20. listopadu 2015

Particle Type Editor 1.2

Particle Type Editor 1.2


Tak konečně je to tady. Editor definicí částic pro Game Maker je hotový a funkční. Je to na jednoho člověka obří program, tak asi nějaké bugy obsahovat nutně bude, ale doufám, že snad ne nijak fatální. Koneckonců už jsem v něm vyrobil dost pěkných částicových efektů, takže vím, že se to dá používat.


Něco málo o částicových efektech obecně

Dneska jsou částicové efekty ( částice je anglicky "particle" ) nedílnou součástí skoro všech her a občas se dostanou i do jiného software. Jde o princip vytváření dynamických grafických prvků. Typicky všemožné záře, ohňostroje, třpytky, záblesky nebo třeba tekoucí voda se často vytvářejí pomocí částic. Myšlenka částicových efektů je v tom, že neprogramujete chování jedné každé částice, ale nastavíte jen mezní hodnoty jejich chování. Řeknete, že hejno bílých teček v počtu od 100 do 200 má poletovat rychlostí nejméně tolik a nejvíce tolik. Neřešíte chování jedné tečky. Výsledek je pak pro počítač velmi efektivní a můžete si dovolit vykreslovat desetkrát i možná i stokrát víc prvků než použitím GM objektů. Nevýhodou je, že například nemůžete snadno ověřit, jestli hráč na jednu z částic nekliknul, protože částice tuto kontrolu nemají.

O Particle type editoru

Při tvorbě PTE jsem vycházel ze způsobu, jakým se nativně v Game Makeru ( GMS verze 1.4 ) částice programují. Takže, když se naučíte používat tento editor, vlastně tím budete zároveň umět i programovat částice přímo v GML, protože názvy jednotlivých parametrů se prakticky shodují. Editor jen umožňuje lepší přehled o nastavených hodnotách a rovnou ukazuje, co se stane a částečně napovídá, jaké hodnoty kam zadat.

Co v editoru je a co není

Všechny nefyzikální částicové efekty používají jako základ definici jedné částice. Ve skutečnosti ale nejde o jednu částici jako takovou, ale o jeden typ částic. Samotných částic pak mohou být klidně stovky z tohoto jednoho typu. Neznamená to však, že by všechny částice jednoho typu byly stejné. Například pokud definujeme "modrobílou částici" jako všechny částice v odstínech od sytě modré do namodralé bílé, bude to jeden typ a přitom spousta částic ve všech možných odtínech mezi těmi dvěma barvami. PTE umožňuje vytvořit právě definici typu částic.
Aby částice byly vidět, je třeba s nimi udělat tzv. emisi ( prostě je odněkud na obrazovce sypat ) a to editor neřeší. Pro snadné vytváření jednoduchých emisí částic je k dispozici gamemakerovský objekt ( editor ho při exportu vyrobí ) a ten pouhým zkopírováním do vaší hry potřebné emise zajistí. To vám ovšem nebrání si naprogramovat vlastní způsob emisí částic. Další věc, co editor neřeší je fyzika částic. Tzv. soft body particles mají zcela jinou logiku vytváření a počítám s tím, že se jim budu věnovat samostatně. Takže bublina s tekutinou uvnitř reagující na zatřepání šplouchnutím se v tomto editoru nekoná. Nicméně většina běžných efektů je bez fyziky a na ty se editor perfektně hodí ( navíc běžné GM kolize a objektová fyzika s celým efektem možné jsou ).
( Pozn. jediný parametr nefyzikálních částic, který v editoru chybí obdoba GM funkcí part_type_colour_hsv a part_type_colour_rgb, které dělají částice s uzamčenou barevnou složkou. Například částice s konstatní hodnotou saturace a proměnlivým odstínem. Vzhledem k tomu, že způsob obarvení mix a blend je používanější, nechal jsem tyto dvě funkce stranou a teoreticky se mohou objevit v případných dalších verzích PTE. )
Editor neexportuje videa ani obrázky částic, protože takové funkce se editace netýkají a brzdily by vykreslování částic. Pokud bude zájem, můžu napsat nějaký jednoduchý rekordér pro převod efektu na sadu png ( včetně alfa kanálu ).

Jak editor použít

Princip použití je extrémně jednoduchý. V editoru si naklikám efekt, který se mi líbí. Kliknu na tlačítko Export. Soubory, které Export vytvoří, natahám drag&drop do Game Makeru, přímo do projektu s nějakou svou hrou. Ve GM resource složce Objects tím přibude objekt s názvem podle názvu částice. Když objekt umístíte do místnosti (room), tak ve hře generuje daný efekt. V základní podobě se efekt pohybuje spolu s kurzorem myši. Pokud toto chování nechcete, stačí v objektu přepnout proměnnou follow_mouse na hodnotu false ( najdete ji v Create, v kódu s názvem mouse motion ). Pak bude efekt následovat polohu objektu samotného. Když tedy budete chtít aby efekt například připlul zleva doprava, stačí v objektu nastavit hspeed=1 a stane se. Tím, že je efekt vázaný na objekt, jde s ním dělat všechny triky, co jdou dělat s objektem. Pokud chcete efekt klikatelný, dejte mu průhledný sprite a do eventu Draw přidejte funkci draw_self().

Systémové požadavky, download a licence

Licence:
Program Particle Type Editor (PTE) je pod licencí CreativeCommons, konkrétně CC-BY 3.0 CZ. To stručně řečeno znamená, že se program smí šířit a upravovat s podmínkou uvedení autora ( code: TomBen, gui graphics: TomBen & Likandro ), země původu ( CZ ) a s uvedením případných vlastních úprav původního programu. Efekty vytvořené v programu ( soubory .ini ) jsou vaše a jste jejich autoři. Kód exportovaného objektu je ale součástí programu PTE a tudíž také pod licencí CC-BY.

Požadavky:
Ke spuštění editoru v předpřipravené spustitelné podobě, potřebujete OS Windows ( testováno na Win7 ) a jelikož zdrojový kód GML obsahuje některé win-only funkce, pro úspěšnou portaci je třeba víc než jen vlastnit exportní plugin. Výkonnostně by neměl být problém s libovolným PC vyrobeným po roce 2005 ( čili deset let starý ) a omezení bude vidět jen na množství částic, které se podle výkonu počítače mění. Viděl bych to jednoduše tak, že na čem rozjedete Game Maker Studio, na tom PTE pojede taky. K uplatnění efektu ve hrách budete potřebovat Game Maker Studio Proffesional nebo Master. Teoreticky lze asi rozjet vytvořené efekty i na verzi Standard ( zdarma ), ale není to ověřeno.


Download:

Spustitelný portable .exe pro Windows:  STÁHNOUT
Zdrojový kód .gmz pro GameMakerStudio 1.4.( vytvořeno na 1657 r40001 ) : STÁHNOUT
Obojí v zipu:  STÁHNOUT


Žádné komentáře:

Okomentovat

Komentář vypovídá většinou o autorovi víc, než by byl jinak ochoten sdělit.