Ten artykuł został stworzony dla starszych wersji GameMakera i może nie być aktualny.

Półprzeźroczystość - czyli kanały alpha w GM6

Niedziela, 09 Marca 2008, 15:14
Czas czytania 2 minuty, 22 sekundy
Zgodne z GM: gm6 gm7
GM7 pozwala na wczytywanie plików PNG z kanałami alpha, ale GM6 wcale nie jest pod tym względem gorszy. Istnieje bowiem funkcja sprite_set_alpha_from_sprite()
GM7 pozwala na wczytywanie plików PNG z kanałami alpha, ale GM6 wcale nie jest pod tym względem gorszy. Istnieje bowiem funkcja sprite_set_alpha_from_sprite(); W tym artykule pokażę jak uzyskać efekt półprzeźroczystych grafik.

Grafika Statyczna

Po pierwsze przyda nam się Photoshop i to na jego podstawie opowiem jak przygotować grafiki.
Odpalamy więc Photoshopa i wstawiamy tekst.
Do swojego napisu użyłem czcionki Showard Gothic, 72px, wygładzanie na Smooth.
Dodałem efekty:
- Outer Glow (Blending Mode: Normal, Kolor: #000000, Spread: 10%, Size: 20px)
- Bevel and Emboss (Size: 1)
- Stroke (3px, Kolor: #EA7125)

Otrzymałem coś takiego (zapisz sobie ten obrazek jako plik, najlepiej PNG lub BMP, ostatecznie GIF lub JPG):
Grafika: upload/gm/o1.png

Teraz trochę trudniej. Tworzymy nową, pustą warstwę i łączymy ją z obecną. Powinna zniknąć możliwość edycji tekstu, oraz efektów - warstwa stanie się gotową grafiką. Dodajemy teraz efekt Color Overlay i ustawiamy biały kolor. Tworzymy poniżej obecnej warstwy nową i wypełniamy ją czarnym kolorem.
Otrzymamy taką grafikę:

Grafika: upload/gm/o2.png

Ok, mamy już nasze logo oraz jego maskę. Teraz przejdziemy do edycji w Game Makerze 6.
Tworzymy dwa osobne sprity i dodajemy w pierwszym grafikę kolorową (spr_0), a w drugim (spr_1) tą czarno białą (maskę). Możemy odznaczyć transparent, chociaż nie jest to konieczne. Teraz tworzymy nowy obiekt, ustawiamy mu jako sprite spr_0. W create dodajemy taki kod:
kodsprite_set_alpha_from_sprite(spr_0,spr_1);Dodajemy nowy room, ustawiamy nasz obiekt i odpalamy grę. Jak widać, blask dookoła napisu jest teraz widoczny, a gdy pod obiektem ustawimy tło lub postacie, będzie on w połowie prześwitujący. Oczywiście można sprawić, aby napis był jeszcze bardziej przeźroczysty, ale to już pozostawiam waszej wyobraźni i umiejętnościom pracy w Photoshopie bądź innym programie.

Animacja

Dobra, a teraz czas na animację (grafikę wziąłem z RPG Maker XV). Mamy, ot taką grafikę, w formacie PNG z kanałami Alpha (Użytkownicy Internet Explorera 6 zobaczą niestety błękitne tło zamiast pięknego prześwitu :P).

Grafika: upload/gm/k1.png

Co zrobić z tym fantem? Otwieramy tą grafikę w Photoshopie i tak jak poprzednio dodajemy efekt Color Overlay i ustawiamy biały, potem tworzymy nową warstwę poniżej obecnej i wypełniamy czarnym kolorem. Otrzymamy takie coś:

Grafika: upload/gm/k2.png

Teraz przechodzimy do naszego projektu w GM6. Przechodzimy do edycji pierwszego sprita i wybieramy opcję Create from Strip. Ustawiamy Number of images na 4, Images per row na 2 a Width i Height na 192. Wczytujemy grafikę i to samo robimy z jej maską. Do naszego obiektu warto jeszcze dodać kod image_speed=0.3; żeby animacja nie zasuwała zbyt szybko i pozostaje nam podziwiać naszą pracę.

Miłego eksperymentowania.
Komentarze (łącznie 22, wyświetlam 16 - 30):
p
Pivot18 (Pią., 20 Mar. 09, 18:44)
#16

Napewno się przyda =D

p
Pivot18 (Nie., 04 Paź. 09, 17:30)
#17

a jak to ustawić do zmienej

Platyna (Nie., 04 Paź. 09, 17:36)
#18

W jakim sensie?

p
Pivot18 (Nie., 04 Paź. 09, 17:44)
#19

bo tak to ustawiasz do sprita.
a jak ustawić do zmiennej

Platyna (Nie., 04 Paź. 09, 17:49)
#20

Ale co ty chcesz ustawić do zmiennej?
Sprite'a z kanałami alpha?
No to zrób sobie kopię sprite'a w zmiennej i nałóż alfę na tą kopię.

p
Pivot18 (Nie., 04 Paź. 09, 17:50)
#21

A n sry to ustawia d sprita z indexu xd

p
Pivot18 (Nie., 04 Paź. 09, 22:52)
#22

O można to użyć to wycinania czegoś w spritu

Najnowsze wersje GameMakera:

Stabilna
2024.11.0.179 • 2024.11.0.227
wydana 62 dni temu
LTS
2022.0.3.85 • 2022.0.3.99
wydana 78 dni temu
Beta
2024.1300.0.743 •
2024.1300.0.753
 0.15.4

wydana 7 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
41 użytkowników online na discordzie:
🧁Cupcake🧁, Draczeq, Alice, LeD, Carl-bot, Saus, p..., lethian, Grela, Wielki Druid, TobiasM (Morgo), Kysiu, Kowu, Kuzyn, GMRussell, Tival, 𝕳𝖚𝖌𝖔 𝕲𝖔𝖓𝖝𝖆𝖑𝖊𝖝, m..., Kalor, antek, HappyOrange, Arrekin, Sporek, Domeen0, LadyLush, Dyno, Deusald, szmalu, Morro, Miłosz, Marco, bagno, Danieo, Mtax, g..., l..., Jayu, s..., Krzysiek1250, d..., Shockah
Shoutbox
gnysek (10:35, 18.02.25)
W ciągu 10 dni mają wyjść w końcu Layery UI :D
Wojo (10:25, 27.12.24)
Jak tworzyłeś* ah ta niecną autokorekta (kiedyś też stworzyłem apki na androida w sumie)
Wojo (10:23, 27.12.24)
O siemka baca, czasami myślę o tobie w kontekście tego jak tworzyłem apki na androida. Swoją drogą czasami zapominam, że forum istnieje bo cały ruch teraz utrzymuje się na discordzie, ale pora to zmienić!
Uzjel (20:17, 10.12.24)
Cały ruch przeniósł się na Discorda.
MagnusArias (17:43, 01.12.24)
O matko... a ja tutaj jestem od ponad 15 lat i czasami zaglądam... biernie bo biernie, ale czasem wpadnę
gnysek (11:46, 17.11.24)
Witamy, witamy!
baca (12:22, 16.11.24)
To już 25 lat.. Witam po paru latach nieobecności.
gnysek (11:05, 15.11.24)
Natomiast obecne forum istnieje od 2004, jak z iglu.cz na gmclan.org przeszliśmy i od tego czasu nie było resetów danych.
gnysek (12:35, 13.11.24)
Ogólnie GMCLAN istnieje 22 lata, ale na to trofeum nie zrobiłem (jeszcze xD)
Chell (20:41, 08.11.24)
wow, ta emotka w ogóle nie wygląda jak : O xD
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?