Hlavní stránka Multimédia Hry a zábava 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í
autor: Aleš Ulm , publikováno 12.11.2010
Hrátky s Unreal Engine IX: Svět tam někde za zdí

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ě!


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í

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í

 

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í



 
Komentáře naleznete na konci poslední kapitoly.
95 čtenářů navrhlo autorovi prémii: 46.7Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.