Hrátky s Unreal Engine X: Dost bylo ticha | Kapitola 10
Seznam kapitol
Minule jsme se podívali ven z první místnosti a naučili se různé fígle s kamerou při skriptování. V dnešním díle se naučíme, jak si usnadnit vytváření hráčova příbytku a jeho okolí pomocí prefabů. Také ozvučíme ten doteď víceméně němý svět nějakými těmi efekty a trochu si odpočineme při dalším skriptování.
Pokud budeme chtít, aby se kamera zaměřila na nějaké místo, můžeme to udělat dvěma způsoby.
Můžeme prostě nastavit jednotlivé složky rotace tak, aby kamera mířila na zadané místo a protože určit je z hlavy nebude v mnoha případech nijak snadné, můžete si v editoru nastavit vlastní kameru a hodnoty přepsat z ní. Pokud si nevzpomínáte jak na to, osvěžte si pamě v díle věnovaném Matinee a práci s kamerami. Nezapomeňte také, že v Unrealscriptu pracujeme se specifickými jednotkami rotace a nemůžete tedy zadat přímo stupně z editoru (správný postup naleznete v minulém díle).
Druhá možnost je podstatě rychlejší, ale vyžaduje určitou znalost matematiky (a nebo si alespoň tenhle postup zapamatujte a berte ho jako fakt) – rotaci kamery si vypočteme díky znalosti pozice kde se nechází a k jakému bodu má být natočena. K tomu se používají vektory, respektive jejich odečítání. Když od pozice cíle odečteme pozici kamery a výsledek převedeme na hodnoty, které engine může použít jako rotaci, nemusíme nikde opisovat nějaké hodnoty a rotace bude přesně sedět.
Konkrétně to provedeme pomocí následujícího řádku:
out_CamRot = rotator(Location - out_CamLoc);
Pamatujte, že jakmile takhle „naplníte“ proměnnou out_CamRot těmi správnými hodnotami rotace, nesmíte do ní do konce funkce signalizované příkazem return už nic „dávat“, protože byste si výsledek přepsali . Občas ale může být tento postup zvolený úmyslně – například pokud byste chtěli kameru zaměřit na určité místo a pak jí v nějaké ose ještě trochu nějak pootočit atp.