Benutzer-Werkzeuge

Webseiten-Werkzeuge


Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
quickstart:spacer:mover [2016/02/16 17:08]
zollaidal
quickstart:spacer:mover [2016/03/08 09:54] (aktuell)
zollaidal
Zeile 1: Zeile 1:
-====== Mover 1 ======+====== Mover Level 1 ======
  
 ===== 1. Beschreibung ===== ===== 1. Beschreibung =====
Zeile 11: Zeile 11:
   * Für unser Moverbeispiel setzen wir zuerst mal ein Gittertor, das sich bei Betätigung eines Schalters nach oben bewegt und den Eingang freigibt und bei erneuter Betätigung den Eingang wieder verschliesst.   * Für unser Moverbeispiel setzen wir zuerst mal ein Gittertor, das sich bei Betätigung eines Schalters nach oben bewegt und den Eingang freigibt und bei erneuter Betätigung den Eingang wieder verschliesst.
  
-Wer das nachvollziehen will, benötigt Kenntnisse, wie man im Spacer z.B Vobs in die Welt setzt. -> [[spacer:​vobs:​allgemein|]].\\ Wie man diese Objekte im Spacer bewegt zum platzieren kann man hier erlernen -> [[spacer:​vobs:​allgemein#​vobs_bewegen_und_rotieren|]]+Wer das nachvollziehen will, benötigt Kenntnisse, wie man im Spacer z.B Vobs in die Welt setzt. -> [[spacer:​vobs:​allgemein|]].\\ Wie man diese Objekte im Spacer bewegtzum platzierenkann man hier erlernen -> [[spacer:​vobs:​allgemein#​vobs_bewegen_und_rotieren|]]
   ​   ​
  
Zeile 18: Zeile 18:
  ==== 2.1 Kollision Mover ====  ==== 2.1 Kollision Mover ====
  
-  * Ein Gittertor als Mover ergibt natürlich nur Sinn, wenn das Tor/Mover auch Kollision gegenüber ​PC/Npc hat. Sonst laufen die einfach durch das Gitter durch+  * Ein Gittertor als Mover ergibt natürlich nur Sinn, wenn das Tor/Mover auch Kollision gegenüber ​Pc/Npc hat. Sonst laufen die einfach durch das Gitter durch
     * **Kollision:​** Besitzt ein Mover nur, wenn man selbige auch einschaltet. (dazu später mehr)     * **Kollision:​** Besitzt ein Mover nur, wenn man selbige auch einschaltet. (dazu später mehr)
     * Logischerweise ist es so, dass nicht nur der Npc, nicht durch einen Mover mit aktivierter Kollision laufen kann, sondern der Mover kann sich dann auch nicht durch einen Npc bewegen.     * Logischerweise ist es so, dass nicht nur der Npc, nicht durch einen Mover mit aktivierter Kollision laufen kann, sondern der Mover kann sich dann auch nicht durch einen Npc bewegen.
Zeile 39: Zeile 39:
  
 ===== 3. Mover einsetzen ===== ===== 3. Mover einsetzen =====
 +
 +  * ** Wir starten den Spacer und öffnen die zu bearbeitende *.ZEN**
 +    * Wir nehmen uns das Objekt**Pages**Fenster vor, setzen einen Haken bei "​Hold"​ und stellen jetzt die Zeit auf etwa 12:00. Jetzt wird es, egal wie lange wir arbeiten, nicht regnen im Spacer und auch nicht dunkel werden. 12:00 habe ich gewählt, weil es da eigentlich am hellsten sein müsste. ​
 +{{:​quickstart:​spacer:​timehold.jpg|}}
  
   * 3.1 Der Mover wurde im Objektfenster des Spacers leider ein wenig versteckt.   * 3.1 Der Mover wurde im Objektfenster des Spacers leider ein wenig versteckt.
Zeile 73: Zeile 77:
 ===== 5. Mover Keyframes ===== ===== 5. Mover Keyframes =====
  
-  * 5.1 Ein Keyframe ist die Position die ein Mover einnehmen kann. Für eine Geradeausfahrt benötigt man üblicherweise lediglich 2 Keyframes, ​es sei denn, dass die Fahrt des Movers auf seiner Wegstrecke vom Start zum Ziel unterbrochen werden soll. Das bedarf aber besonderer SteuerelementeDa wir unser Gitter nur nach oben fahren aus der Startposition (geschlossen) zur Endposition (geöffnet) benötigen wir ebenfalls nur zwei Keyframes.+  * 5.1 Ein Keyframe ist die Position die ein Mover einnehmen kann. Für eine Geradeausfahrt benötigt man üblicherweise lediglich 2 Keyframes, ​__es sei denn, dass die Fahrt des Movers auf seiner Wegstrecke vom Start zum Ziel unterbrochen werden soll.\\__  
 +Das bedarf aber besonderer Steuerelemente ​-> [[quickstart:​schaltelemente|]] - benötigen wir aber für diesen Beispielmover nicht!  
 + 
 +  * Da wir unser Gitter nur nach oben fahren aus der Startposition (geschlossen) zur Endposition (geöffnet) benötigen wir ebenfalls nur zwei Keyframes.
       * 5.2__ Keyframe 0 Startposition__       * 5.2__ Keyframe 0 Startposition__
       * Wenn wir unseren Mover sauber in den Durchgang eingebaut haben und der Durchgang durch das Gitter geschlossen ist, befindet sich unser Mover bereits in Startposition,​ also auf der Position des Keyframes 0. Allerdings müssen wir das dem Mover noch "​sagen",​ dass er sich auf der Keyframe 0 Position befindet und gehen folgendermassen vor:       * Wenn wir unseren Mover sauber in den Durchgang eingebaut haben und der Durchgang durch das Gitter geschlossen ist, befindet sich unser Mover bereits in Startposition,​ also auf der Position des Keyframes 0. Allerdings müssen wir das dem Mover noch "​sagen",​ dass er sich auf der Keyframe 0 Position befindet und gehen folgendermassen vor:
Zeile 107: Zeile 114:
  
   * 6.1 Was immer wieder Verwirrung schafft, ist, dass wenn wir, wie im Punkt oben beschrieben den Button "​Apply"​ geklickt haben, der Mover zwar in die Ausgangsposition zurückspringt,​ nun steht er ja wieder auf Keyframe 0, das aber im Objekt**Pages**fenster nicht angezeigt wird. Dort wird immer noch Keyframe 1 signalisiert.   * 6.1 Was immer wieder Verwirrung schafft, ist, dass wenn wir, wie im Punkt oben beschrieben den Button "​Apply"​ geklickt haben, der Mover zwar in die Ausgangsposition zurückspringt,​ nun steht er ja wieder auf Keyframe 0, das aber im Objekt**Pages**fenster nicht angezeigt wird. Dort wird immer noch Keyframe 1 signalisiert.
 +
   * 6.2 Wir können das ändern, wenn wir auf den linken der beiden Pfeilbuttons klicken - dann zeigt sich sofort die 0 zwischen den beiden Pfeilbuttons,​ ohne dass sich der Mover (Stellung Gitter geschlossen) bewegt.   * 6.2 Wir können das ändern, wenn wir auf den linken der beiden Pfeilbuttons klicken - dann zeigt sich sofort die 0 zwischen den beiden Pfeilbuttons,​ ohne dass sich der Mover (Stellung Gitter geschlossen) bewegt.
 +
   * 6.3 Der darf sich dabei auch nicht bewegen, da das Gitter ja geschlossen ist und geschlossen ist Keyframe 0   * 6.3 Der darf sich dabei auch nicht bewegen, da das Gitter ja geschlossen ist und geschlossen ist Keyframe 0
 +
   * 6.4 Wenn ihr zwischen den Pfeiltasten hin <- -> her klickt schnappt das Movergatter auf und zu.   * 6.4 Wenn ihr zwischen den Pfeiltasten hin <- -> her klickt schnappt das Movergatter auf und zu.
     * Pfeiltasten ​     * Pfeiltasten ​
Zeile 114: Zeile 124:
  
   * 6.5 __RESET__   * 6.5 __RESET__
-  ​* Wenn ihr genug mit den Pfeiltasten gespielt habt :o) dann bitte die Keyframe-Anzeige im Objekt**Pages**Fenster wieder auf Keyframe 0 stellen und den Butten "​Apply"​ im Objekt-Fenster drücken (**reset aller Testaktionen**) So lange ihr bei den Frame Positionen nichts neugespeichert habt, erhaltet ihr immer wieder eure in 5.1 - 5.3 programmierte Grundeinstellung. Das ist auch praktisch, wenn ihr mal aus Versehen eine falsche Positionierungstaste (Tastatur) betätigt und das Movergatter verdreht oder verschiebt. Einfach resetten mit dem "​Apply"​ Button des Objektfensters und alles ist wieder in bester Ordnung. +    ​* Wenn ihr genug mit den Pfeiltasten gespielt habt :o) dann bitte die Keyframe-Anzeige im Objekt**Pages**Fenster wieder auf Keyframe 0 stellen und den Butten "​Apply"​ im Objekt-Fenster drücken (**reset aller Testaktionen**) So lange ihr bei den Frame Positionen nichts neugespeichert habt, erhaltet ihr immer wieder eure in 5.1 - 5.3 programmierte Grundeinstellung. Das ist auch praktisch, wenn ihr mal aus Versehen eine falsche Positionierungstaste (Tastatur) betätigt und das Movergatter verdreht oder verschiebt. Einfach resetten mit dem "​Apply"​ Button des Objektfensters und alles ist wieder in bester Ordnung, aber nur, wenn ihr nicht zwischenzeitlich den Button "New Key" betätigt habt. 
-  * 6.6 __TESTFAHRT__ ​  + 
 +  * 6.6 __LÖSCHEN__  
 +    * Habt ihr zwischenzeitlich den "New Key" Button betätigt und seid im "​Insert"​ Modus, so habt ihr einen neuen Keyframe erzeugt (Keyframe 2) 
 +      * Falls der unerwünscht ist, müsst ihr den Keyframe 2 mit den Pfeiltasten anwählen <- 2 -> und mit einem Klick auf den Button "Del Key" wieder löschen und anschliessend im Objektfenster auf "​Apply"​ klicken. 
 + 
 +  * 6.7 __TESTFAHRT__ ​  
     * Wir klicken im Objekt**Pages**Fenster im linken Teilefenster auf den Eintrag "​TRIGGER" ​     * Wir klicken im Objekt**Pages**Fenster im linken Teilefenster auf den Eintrag "​TRIGGER" ​
 {{:​quickstart:​spacer:​mov_17.jpg|}} {{:​quickstart:​spacer:​mov_17.jpg|}}
Zeile 127: Zeile 142:
     * Das könnt ihr mehrere Male machen und wenn eure Freude und der Spieltrieb nachgelassen haben, dann bitte den Mover wieder, wie unter 6.5 beschrieben resetten.     * Das könnt ihr mehrere Male machen und wenn eure Freude und der Spieltrieb nachgelassen haben, dann bitte den Mover wieder, wie unter 6.5 beschrieben resetten.
  
-===== 7. Mover Einstellungen ​=====+===== 7. Mover Frame-Korrektur ​=====
  
-  * 7.1 Betrachten wir doch mal wieder unser Objektfenster bei angewählem Movergatter ....erschreckend!!! Es wimmelt nur so von Einträgen und Einstellmöglichkeiten,​ von denen wir nicht mal 10% für unseren Mover benötingen - also... keine Bange! ich habe mal alles mit einem Punkt versehen, was für unseren Mover relevant ist:+  * 7.1 Wenn wir bei der Testfahrt evtll. festgestellt haben, dass uns die "obere Position"​ (Keyframe 1) nicht zusagt und wir den Mover nicht ganz so hoch fahren lassen wollen, gehen wir vor wie folgt: 
 + 
 +    * 7.2 Wir klicken mit der linken Maustaste auf das Movergitter,​ das daraufhin seine BoundingBox zeigt und sicherheitshalber im Objektfenster auf den Button "​Apply"​. 
 +{{:​quickstart:​spacer:​mov_09.jpg|}} 
 + 
 +    * 7.3 Jetzt bearbeiten wir das Objekt**Pages**Fenster,​ indem wir auf die "​rechte"​ Pfeiltaste klicken, worauf sich der Mover in seine programmierte Keyframe 1 Position begibt (Endposition oben) 
 +{{:​quickstart:​spacer:​mov_12.jpg|}} 
 +  
 +      *Pfeiltasten:​ __Linke Pfeiltaste <- zählt nach unten - Rechte Pfeiltaste -> zählt nach oben__ 
 +      *Zwischen den Pfeiltasten <- 1 -> zeigt sich die "​1",​ da sich jetzt der Mover auf Keyframeposition 1 befindet. 
 +{{:​quickstart:​spacer:​mov_24.jpg|pic_24}} 
 + 
 +    * 7.4 Wir klicken in diesem Objekt**Pages**Fenster auf "​Overwrite"​ (überschreiben) und das ObjektPagesFenster sieht jetzt so aus: 
 +{{:​quickstart:​spacer:​mov_25.jpg|}} 
 + 
 +    * 7.5 Wir aktivieren den Move-Modus (Objekte bewegen) entweder mit der Tastaturtaste "​M"​ oder mit einem Klick auf den Move-Modus Button in der senkrechten Buttonleiste.{{:​quickstart:​spacer:​mov_27_button.jpg|}} 
 + 
 +    * 7.6 Wir verschieben den Mover mit der Tastaturtaste "​Y"​ (abwärts )auf die jetzt gewünschte (korrigierte) Position. Zum besseren Verständmis habe ich jetzt die halbe Höhe der Toröffnung gewählt, damit die Korrektur deutlich sichtbar wird.   
 +{{:​quickstart:​spacer:​mov_26.jpg|}} 
 + 
 +    * 7.7 Wenn die gewünschte Position erreicht ist klicken wir auf: 
 +      * "New Key" und anschliessend auf "​Apply"​ 
 + 
 +      * Das Movergitter springt auf Position 0 (unten, Gitter geschlossen) und jetzt haben wir wieder das oben schon angesprochene Phänomen, dass das Objekt**Pages**Fenster den Keyframe 1 anzeigt, obwohl sich der Mover auf der Position von Keyframe 0 befindet 
 + 
 +    * 7.8 Wir korrigieren das wieder, in dem wir auf die __linke Pfeiltaste__ klicken und die "​0"​ erscheint  
 + 
 +      * (**paradox ist, dass nur in dieser Situation __- nach Keyframe Programmierung -__ die linke Pfeiltaste abwärts zählt, wohingegen, wenn wir unter normalen umständen einen Keyframe direkt anwählen wollen, das genau umgekehrt ist.**) 
 + 
 +    * 7.9 Wir deaktivieren den Move-Modus und klicken im Objektfenster auf "​Apply"​ und machen eine Testfahrt -> [[quickstart:​spacer:​mover#​mover_testfahrt|]] ​ -> Punkt 6.7 
 + 
 +===== 8. Mover Einstellungen ===== 
 + 
 +  * 8.1 Betrachten wir doch mal wieder unser Objektfenster bei angewählem Movergatter ....erschreckend!!! Es wimmelt nur so von Einträgen und Einstellmöglichkeiten,​ von denen wir nicht mal 10% für unseren Mover benötingen - also... keine Bange! ich habe mal alles mit einem Punkt versehen, was für unseren Mover relevant ist:
   ​   ​
     * GRÜN =..Einstellungen die wir schon vorgenommen haben im Verlaufe dieses WIKI, oder aber Standard-Einstellungen die zu unserem Mover passen und nicht verändert werden müssen     * GRÜN =..Einstellungen die wir schon vorgenommen haben im Verlaufe dieses WIKI, oder aber Standard-Einstellungen die zu unserem Mover passen und nicht verändert werden müssen
Zeile 174: Zeile 222:
     * **SOUND**(Ordner) (FAHRGERÄUSCHE)     * **SOUND**(Ordner) (FAHRGERÄUSCHE)
       * __sfxOpenStart__:​GATE_START (metallisches Startgeräusch)       * __sfxOpenStart__:​GATE_START (metallisches Startgeräusch)
-      * __sfxOpenEnd__:​GATE_END ​(metallisches Ankunftsgeräusch)+      * __sfxOpenEnd__:​GATE_STOP ​(metallisches Ankunftsgeräusch)
       * __sfxMoving__:​GATE_LOOP (metallisches-Laufgeräusch während der Fahrt)       * __sfxMoving__:​GATE_LOOP (metallisches-Laufgeräusch während der Fahrt)
-      * __sfxCloseStart__:​GATE_START (metallisches ​Entriegelungsgeräusch und Anlauf....+      * __sfxCloseStart__:​GATE_START (metallisches ​Startgeräusch
-      * __sfxCloseEnd__:​GATE_STOP (metallisches Ankunftsgeräusch ​zum Ende der Fahrt)+      * __sfxCloseEnd__:​GATE_STOP (metallisches Ankunftsgeräusch)
       * Wenn ihr ein __**Steintor**__ hättet... Stone_START,​ STONE_STOP... etc...       * Wenn ihr ein __**Steintor**__ hättet... Stone_START,​ STONE_STOP... etc...
  
-===== 8. Mover Ansteuern =====+===== 9. Mover Ansteuern =====
  
-  * 8.1 Jetzt benötigen wir noch ein Steuerelement um unseren Mover anszusteuern,​ das heisst, die Fahrt auszulösen. Wir benützen dazu zuerst einmal einen Switch.+  * 9.1 Jetzt benötigen wir noch ein Steuerelement um unseren Mover anszusteuern,​ das heisst, die Fahrt auszulösen. Wir benützen dazu zuerst einmal einen Switch.
     ​     ​
     * Wer noch nie einen Switch, das ist ein oCMob, genauer gesagt ein oCMobSwitch im Spacer gesetzt hat, der sollte sich jetzt zuerst mal folgendes Wiki durchlesen und dessen Inhalt auch verinnerlichen -> [[quickstart:​spacer:​mobsplatzieren:​ocmobswitch|]]     * Wer noch nie einen Switch, das ist ein oCMob, genauer gesagt ein oCMobSwitch im Spacer gesetzt hat, der sollte sich jetzt zuerst mal folgendes Wiki durchlesen und dessen Inhalt auch verinnerlichen -> [[quickstart:​spacer:​mobsplatzieren:​ocmobswitch|]]
  
-  * 8.2 Wir platzieren den Switch (LEVER_1_OC.MDS)+  * 9.2 Wir platzieren den Switch (LEVER_1_OC.MDS)
 {{:​quickstart:​spacer:​mov_21.jpg|}} {{:​quickstart:​spacer:​mov_21.jpg|}}
  
Zeile 208: Zeile 256:
       * Die orangefarbene Boundingbox die den Mover bei Bewegung umgibt, sehen wir jetzt nicht, da ja der Mover nicht angewählt ist, sondern der Switch.       * Die orangefarbene Boundingbox die den Mover bei Bewegung umgibt, sehen wir jetzt nicht, da ja der Mover nicht angewählt ist, sondern der Switch.
  
-    * 8.3 Triggertarget des Movers. Auch ein Mover hat, genau so wie der Switch ein Triggertarget. +    * 9.3 Triggertarget des Movers. Auch ein Mover hat, genau so wie der Switch ein Triggertarget. 
-      * Reihenfolge:​ Wenn der Mover ngesteuert ​wird, führt er zunächst mal seinen Befehl aus, seine Keyframes abzuarbeiten. Erst wenn er beim letzen Keyframe angekommen ist (Endposition),​ führt er anschliesend ​noch den Befehl aus, der im Triggertarget eingetragen ist. Das können wir uns zum Beispiel folgendermassen zu nutze machen:+      * Reihenfolge:​ Wenn der Mover angesteuert ​wird, führt er zunächst mal seinen Befehl aus, seine Keyframes abzuarbeiten. Erst wenn er beim letzen Keyframe angekommen ist (Endposition),​ führt er anschliessend ​noch den Befehl aus, der im Triggertarget eingetragen ist. Das können wir uns zum Beispiel folgendermassen zu nutze machen:
       * Wir triggern den Mover auf sich selbst. Damit erreichen wir, dass wenn der Mover seine Endposition erreicht hat, also das Gatter hochgefahren ist, selbiges wieder automatisch nach unten fährt und dann wieder in der geschlossenen Stellung verbleibt.       * Wir triggern den Mover auf sich selbst. Damit erreichen wir, dass wenn der Mover seine Endposition erreicht hat, also das Gatter hochgefahren ist, selbiges wieder automatisch nach unten fährt und dann wieder in der geschlossenen Stellung verbleibt.
       * Allerdings muss die Movergeschwindigkeit so langsam sein, dass der Hero auch durchlaufen kann, bevor das Gitter wieder nach unten fährt.       * Allerdings muss die Movergeschwindigkeit so langsam sein, dass der Hero auch durchlaufen kann, bevor das Gitter wieder nach unten fährt.
Zeile 216: Zeile 264:
       * Was auch immer, es ist eine zusätzliche Steuermöglichkeit.       * Was auch immer, es ist eine zusätzliche Steuermöglichkeit.
  
-    * 8.4 Scriptseitige Steuerung: Über den Switch, der ja auch die Optionen: +    * 9.4 Scriptseitige Steuerung: Über den Switch, der ja auch die Optionen: 
-      * ConditionFunc:​ +      * ConditionFunc:​........... 
-      * onStatFunc:​ +      * onStatFunc:.............. besitzt. 
-      * besitzt ​kann man ebenfalls den Mover aufrufen unter irgend welchen Bedingungen.+      * Damit kann man ebenfalls den Mover aufrufen unter irgend welchen Bedingungen. 
 + 
 +    * 9.5 TriggerBox: Über einen oCTriggerscript kann man ebenfalls den Mover aufrufen ->  [[quickstart:​triggerscript|]] 
 +      * Da kann man zum Beispiel das Delay des oCTriggerscript nutzen ( Mover aufrufen mit Zeitverzögerung),​ da alle diese nachfolgend gezeigten Optionen die im Objektfenster eines __Movers__ angeboten werden __nicht funktionieren.__  
 +{{:​quickstart:​spacer:​mov_28.jpg|}} 
 + 
 +  * Die Befehlszeile zum Aufruf unseres Movers in Scripten lautet im Beispielfalle:​ 
 + 
 +  *<​code>​ Wld_SendTrigger("​TESTMOVER"​);</​code>​
  
-    * 8.5 TriggerBox: Über einen oCTriggerscript kann man natürlich ebenfalls den Mover aufrufen.+Wer mehr über Mover erfahren möchte -> [[quickstart:​spacer:​mover2|]]
    
-2016/02/16(dlz)         +2016/02/17(dlz)         
  
  
quickstart/spacer/mover.1455638884.txt.gz · Zuletzt geändert: 2016/02/16 17:08 von zollaidal