Wentylator

Tworzymy 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ę.