Hrátky s Unreal Engine IX: Svět tam někde za zdí
i Zdroj: PCTuning.cz
Hry Článek Hrátky s Unreal Engine IX: Svět tam někde za zdí

Hrátky s Unreal Engine IX: Svět tam někde za zdí | Kapitola 10

Aleš Ulm

Aleš Ulm

12. 11. 2010 03:00 4

Seznam kapitol

1. Svět za zdí 2. Není terén jako terén 3. Malujeme po terénu 4. Jak rozdělat oheň 5. Nastavujeme emitor 6. Částice a materiál
7. Částice a klíče 8. Skriptařův koutek 9. Pitváme kameru 10. Naše vlastní kamera 11. Experimentujeme

V dnešním díle se s naším hrdinou podíváme do širých šedomodrých kostkovaných polí obestírajících jeho příbytek, společně rozděláme svůj první oheň a v části věnováné skriptování si začneme hrát s kamerou. A nebojte se, pořád pěkně jednoduše a doufejme pro většinu čtenářů i pochopitelně!

Reklama

Vnitřek i téhle jednoduché funkce je na nás ale ještě pořád trochu komplikovaný a navíc už nás svrbí prsty a tak začneme dělat něco vlastního. Zbavíme se tedy jejího „vnitřku“ a nahradíme ho naší vlastní představou toho, co by měla kamera dělat.

Díky tomu porušíme jedno poměrně zásadní pravidlo a to, že do zdrojových souborů UDK by se podobné úpravy neměly dělat. Správná cesta vede jinudy, ale protože v tomto díle už nebude dostatek místa na poctivé vysvětlení, jak to udělat „čistě“, dobře se rozhlédneme, zda se někdo nedívá a sáhneme přímo do toho souboru - ovšem nejdřív z něj budeme muset odstranit nastavení read-only a zázálohujeme si ho ještě pod jiným jménem nebo koncovkou (např. .bak).

Vnitřek funkce tzv. vykomentujeme. Využijeme možnosti do skriptu vepisovat komentáře – tedy libovolný text, který engine zcela ignoruje. Existují dvě možnosti, jak to udělat. Pokud se někde objeví zdvojené lomítko //, engine považuje za komentář vše, co následuje za ním až do konce řádku, ať už je na jeho počátku, nebo třeba uprostřed. Pokud chceme vytvořit víceřádkový komentář, použije znaky pro začátek komentáře a jeho konec - /* a */ (viz obrázek). Komentáře se však nepoužívají jen k zapisování vysvětlujícícho textu, ale i k „vypnutí“ částí skriptu, které se tak pro engine stanou „neviditelné“.

Hrátky s Unreal Engine IX: Svět tam někde za zdí
i Zdroj: PCTuning.cz

Teď tedy změníme původní vnitřek funkce na komentář, čímž přestane engine zajímat a vložíme vlastní kód.

Pod úvodní závorku se zobáčkem (ta pod řádkem s názvem funkce) vložíme prázdný řádek a zkusíme napsat například:

out_CamLoc.x = 0;
out_CamLoc.y = 0;
out_CamLoc.z = 0;
out_CamRot.yaw = 0;
out_CamRot.pitch = 0;
out_CamRot.roll = 0;

a zakončíme to řádkem

return true;

Co jsme to udělali? Způsobili jsme, že do proměných, podle kterých se poziciuje kamera teď v každém frejmu vkládáme nuly. Díky tomu bude kamera ve hře na pozici 0,0,0 a bude mít rotaci 0,0,0.

A ten řádek return true? Tím říkáme programu, že tady má skončit s prováděním příkazů v této funkci a jako výsledek oznámit hodnotu true – popravdě nás to ale nemusí nijak trápit. Jen vezměte v potaz, že tam tenhle řádek musí být.

Hrátky s Unreal Engine IX: Svět tam někde za zdí
i Zdroj: PCTuning.cz

Zde je na místě ještě poznamenat něco ke způsobu zadávání pozice a rotace objektů v UDK. Pozicování je jednoduché – u objektu se nastavuje jeho pozice v osách X, Y a Z. U rotace objektu se nastavuje jeho natočení ve třech osách označovaných obvykle jako yaw, pitch a roll (tedy dle způsobu rotace objektu). Ve většině enginů se tyto tři hodnoty uvádí ve stupních (samozřejmě se mohou používat i radiány, nebo jiný druh počítání rotace – quaterniony). Ne tak v UDK. Zde se používají interní jednotky, kdy 360ti stupňům odpovídá 65536 (programátoři už, předpokládám, vědí proč, ostatní to budou muset prostě přijmout), 90ti stupňům pak logicky 16384. Pokud byste ale radši ve skriptu zadávali rotace ve stupních, můžete použít zápis “vaše hodnota * DegToUnrRot“, tedy naříklad out_CamRot.yaw = 90 * DegToUnrRot;

Hrátky s Unreal Engine IX: Svět tam někde za zdí
i Zdroj: PCTuning.cz

Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama