Wentylator
NecrosiS, Pon, 2005-01-17 11:03 Doom 3 | TutorialeTworzymy malutki brush (4/2/2) na który kładziemy teksturę common/nodraw i zmieniamy go na func_mover. Będzie to środek naszego wentylatora, w związku z tym nazywamy go fan_01_srodek.
Kolejnym krokiem będzie stworzenie simple patch mesh, na który nakładmy teksturę textures/object/fan i umieszczamy go tak by func_mover był centralnie umieszczony w nim.
Simple patch mesh zmieniamy na func_mover i nazywamy go fan_01.
Dodajemy teraz light i klikamy j. W nowym oknie zaznaczmy Projected Light i klikamy Apply. W oknie podglądu pojawi się zarys kształtu i kierunku swiatła. Klikając w czerwone kwadraciki przesuwamy i kształtujemy ten zarys.
Wracając do okienka z właściwościami światła (j) wybieramy teksturę jaka będzie emitowana przez światło : lights/fanblade3 i klikamy Apply.
Przechodzimy teraz do właściwości light aby zmienić prędkość obrotów naszego cienia. Dodajemy klucze shaderParm3 o wartości 0.5 i shaderParm4 o wartości poprzedniego.
Podpowiedź:
Wzór na prędkość obrotów cienia to: (time * -1) * Parm3 + Parm4
To jednak nie wszystko. Aby nasz wentylator działał idealnie musimy napisać skrypt który poruszy func_move w odpowiedni sposób.
Tworzymy plik nazwamapy.script, który umieścimy w katalogu z naszą mapą (najczęściej maps).
Treść tego pliku powinna być następująca:
void fan_init ()
{
$fan_01.bind ($fan_01_srodek);
//zbinduj srodek wentylatora do skrzydeł$fan_03_srodek.rotateOnce ('-35 0 0');
// obróć całośc raz – w celu ustawienia kierunku (x,y,z)sys.waitFor ($fan_01_srodek);
//czekaj na wentylator$fan_01.rotate ('0 0 180');
// obracaj wentylator względem osi z
}void main ()
{
fan_init();
}
Pozostaje nam jedynie dodać dźwięk jaki będzie wydobywał się w pobliżu wentylatora. Tworzymy na mapie speaker z takimi oto kluczami:
- klucz: s_volume wartość: x.xxxx (siła głosu np. 3.0000);
- klucz: s_mindistance wartość: x.xxxx (minimalna odległość np. 1.0000);
- klucz: s_maxdistance wartość: x.xxxx (maksymalna odległość, np. 10.0000);
- klucz: s_looping wartość: 1 (powtarzaj);
Całość powinna wyglądać tak:
Wystarczy teraz zapisać i odpalić mapkę.





