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
Letzte Überarbeitung Beide Seiten, nächste Überarbeitung
quickstart:spacer:mover2 [2016/02/20 08:16]
zollaidal
quickstart:spacer:mover2 [2016/02/23 13:47]
85.180.65.27
Zeile 1: Zeile 1:
  
-................................................................ {{:​spacer:​omega7497construction.gif|}} ...................................  +====== Mover Level 2 ======
-====== Mover-Level 2 ======+
  
 ===== Nutzerinfo ===== ===== Nutzerinfo =====
Zeile 37: Zeile 36:
   *2.1 Im Objektfenste zCVob -> zCTriggerBase(abstract) -> zCTrigger -> zCMover anwählen   *2.1 Im Objektfenste zCVob -> zCTriggerBase(abstract) -> zCTrigger -> zCMover anwählen
   ​   ​
-  *2.2 Mover einsetzen -> Im Moverfenster "MV_KLINGENFALLE_01" eintragen -> OK+  *2.2 Mover einsetzen -> Im Moverfenster "MV_KLINGENFALLE_A_01" eintragen -> OK
  
   *2.3 Im Objektfenster Mesh des Movers visual:​DOPPELKLINGENFALLE.3ds eingeben -> "​Apply"​   *2.3 Im Objektfenster Mesh des Movers visual:​DOPPELKLINGENFALLE.3ds eingeben -> "​Apply"​
Zeile 44: Zeile 43:
 {{:​quickstart:​spacer:​mov2_00.jpg|}} {{:​quickstart:​spacer:​mov2_00.jpg|}}
  
-    *4a Der Nullpunkt des Pendels ist auch der Derehpunkt ​des Movers. In unserem Falle, genau in der Mitte des Achslagers. Solche Teile müsst ihr euch anfertigen in einem 3DS-Prog - wie zB -> [[:​3d_studio_max|]] oder[[:​blender|]]. ​+    *4a Der Nullpunkt des Pendels ist auch der Drehpunkt ​des Movers. In unserem Falle, genau in der Mitte des Achslagers. Solche Teile müsst ihr euch anfertigen in einem 3DS-Prog - wie zB -> [[:​3d_studio_max|]] oder [[:​blender|]]. ​
  
     *Ihr könnt auch in der **Modellschmiede** nachfragen,​wenn ihr so etwas braucht, ob euch das jemand anfertigt. In diesem Falle würde ich empfehlen, bei der Anfrage eine vermasste Skizze zu "​uploaden"​     *Ihr könnt auch in der **Modellschmiede** nachfragen,​wenn ihr so etwas braucht, ob euch das jemand anfertigt. In diesem Falle würde ich empfehlen, bei der Anfrage eine vermasste Skizze zu "​uploaden"​
  
-    *Upload WOG -> http://​upload.worldofplayers.de/​upload2.cgi? ​Passwqort ​bei einem Moderator erfragen.+    *Upload WOG -> http://​upload.worldofplayers.de/​upload2.cgi? ​Passwort ​bei einem Moderator erfragen.
     *Modellschmiede -> http://​forum.worldofplayers.de/​forum/​threads/​1428883-Skin-Skript-und-Modellschmiede-10 ​     *Modellschmiede -> http://​forum.worldofplayers.de/​forum/​threads/​1428883-Skin-Skript-und-Modellschmiede-10 ​
  
Zeile 62: Zeile 61:
   ​   ​
   * Warum bauen wir kein Vobtree -> [[spacer:​vobs:​vobtrees|]] aus den Einzelteilen um das dann leicht überall einsetzen zu können?   * Warum bauen wir kein Vobtree -> [[spacer:​vobs:​vobtrees|]] aus den Einzelteilen um das dann leicht überall einsetzen zu können?
-    * Weil jede der 4 Beilklingen ein Mover sein wird, mit eigener Position und differenter Geschwindigkeit. Wenn ich die Mover jetzt einsetze und Proframmiere, dann __hat jeder Frame eines jeden Movers seine eigenen Positionsdaten **in meiner Welt**.__  ​+    * Weil jede der 4 Beilklingen ein Mover sein wird, mit eigener Position und differenter Geschwindigkeit. Wenn ich die Mover jetzt einsetze und programmiere, dann __hat jeder Frame eines jeden Movers seine eigenen Positionsdaten **in meiner Welt**.__  ​
     * Diese Positionsdaten würden in eurer Welt abgerufen werden und wenn ihr das einsetzen würdet, befänden sich die Mover auf diesen Koordinaten,​ vielleicht irgendwo unter Wasser, oder im Weltall. Ihr müsstet alle Keyframes aller Mover löschen und dann neu aufbauen. Einen Vorteil sehe ich darin nicht.     * Diese Positionsdaten würden in eurer Welt abgerufen werden und wenn ihr das einsetzen würdet, befänden sich die Mover auf diesen Koordinaten,​ vielleicht irgendwo unter Wasser, oder im Weltall. Ihr müsstet alle Keyframes aller Mover löschen und dann neu aufbauen. Einen Vorteil sehe ich darin nicht.
     * Deshalb macht es auch kaum Sinn, einen Mover, den ihr vielleicht noch mal einsetzen wollt zu kopieren, denn der springt dann einfach auf die Position zurück, auf der er kopiert wurde. Muss man dann ebenfalls die Daten neu setzen.     * Deshalb macht es auch kaum Sinn, einen Mover, den ihr vielleicht noch mal einsetzen wollt zu kopieren, denn der springt dann einfach auf die Position zurück, auf der er kopiert wurde. Muss man dann ebenfalls die Daten neu setzen.
Zeile 118: Zeile 117:
   * Nach beendeter Keyframe-Programmierung sieht das dann so aus.... ​   * Nach beendeter Keyframe-Programmierung sieht das dann so aus.... ​
 {{:​quickstart:​spacer:​mov2_11.jpg|}} {{:​quickstart:​spacer:​mov2_11.jpg|}}
 +
 +==== 4.a KeyFrame-Korrigieren ====
 +
 +Position eines Keyframes noch mal ändern -> [[quickstart:​spacer:​mover#​mover_frame-korrektur|]]
  
 ===== 5. Mover-Test ===== ===== 5. Mover-Test =====
Zeile 195: Zeile 198:
     * Wenn sich der Player durch die Klingen laviert hat, soll er die Falle abschalten können ​     * Wenn sich der Player durch die Klingen laviert hat, soll er die Falle abschalten können ​
  
-  *Dazu benötigen wir zwei Steuerelemente,​ einen "​oCTriggerscript"​ und einen zCMoverController. +  *Dazu benötigen wir zwei Steuerelemente,​ einen "​oCTriggerscript"​ und einen zCMoverController . 
-      * oCTriggerScript -> +      * oCTriggerScript -> [[quickstart:​triggerscript|]] 
-      * zCMoverController ->+      * zCMoverController -> [[quickstart:​movercontroller|]]
    
   * Der Schaltweg ist folgender: Zum starten der Falle lösen wir einen ins Nirwana gesetzen oCTriggerScript aus. Das können wir über die Startup.d machen, dann läuft die Falle bei Gamestart an.....   * Der Schaltweg ist folgender: Zum starten der Falle lösen wir einen ins Nirwana gesetzen oCTriggerScript aus. Das können wir über die Startup.d machen, dann läuft die Falle bei Gamestart an.....
     ​     ​
-    *1/1 Schritt1 ​- **1.Runde** - Wir brauchen einen Startbefehl für unseren oCTriggerScript den wir uns von der Startup.d bei Gamestart geben lassen.  ​+    * Schritt ​1 - **1.Runde** - Wir brauchen einen Startbefehl für unseren oCTriggerScript den wir uns von der Startup.d bei Gamestart geben lassen.  ​
  
-    *2/1 Schritt2 ​- 1. Runde - Triggertarget von oCTriggerScript ruft -> zCMoverController auf (Einstellung gotoNextKey)+    * Schritt ​2 - 1. Runde - Triggertarget von oCTriggerScript ruft -> zCMoverController auf (Einstellung gotoNextKey)
  
-    *3/1 Schritt3 ​- 1. Runde - zCMoverController ruft Beilpendel (Mover auf) -> **gehe von Frame 0 nach Frame1** (intern verlinkt im Spacer "blaue Linie"​)+    * Schritt ​3 - 1. Runde - zCMoverController ruft Beilpendel (Mover auf) -> **gehe von Frame 0 nach Frame1** (intern verlinkt im Spacer "blaue Linie"​)
  
-    *4/1 Schritt4 ​- 1. Runde - Mover ruft nach Abarbeitung seiner Bewegung über sein TriggerTarget wiederum ​ oCTriggerScript auf, wobei wir wieder am Anfang wären.......+    *Schritt ​4 - 1. Runde - Mover ruft nach Abarbeitung seiner Bewegung über sein TriggerTarget wiederum ​ oCTriggerScript auf, wobei wir wieder am Anfang wären.......
  
-    *1/2 Schritt1 ​- **2. Runde** - oCTriggerScript wird aufgerufen (diesmal kommt der Befehl nicht von der Startup, sondern vom Ende der Schaltschlange aus der 1. Runde Schritt4)+    *Schritt ​1 - **2. Runde** - oCTriggerScript wird aufgerufen (diesmal kommt der Befehl nicht von der Startup, sondern vom Ende der Schaltschlange aus der 1. Runde Schritt4)
  
-    *2/2 Schritt2 ​- 2. Runde - Triggertarget von oCTriggerScript ruft -> zCMovercontroller auf (Einstellung gotoNextKey)+    *Schritt ​2 - 2. Runde - Triggertarget von oCTriggerScript ruft -> zCMovercontroller auf (Einstellung gotoNextKey)
  
-    *3/2 Schritt3 ​- 2. Runde - zCMoverController ruft Beilpendel (Mover auf) -> **gehe von Frame 1 nach Frame 0** (intern verlinkt im Spacer "blaue Linie"​)+    *Schritt ​3 - 2. Runde - zCMoverController ruft Beilpendel (Mover auf) -> **gehe von Frame 1 nach Frame 0** (intern verlinkt im Spacer "blaue Linie"​)
  
-    *4/2 Schritt4 ​- 2. Runde - Mover ruft nach Abarbeitung seiner Bewegung über sein TriggerTarget wiederum automatisch oCTriggerScript...... usw. .....endlos....+    *Schritt ​4 - 2. Runde - Mover ruft nach Abarbeitung seiner Bewegung über sein TriggerTarget wiederum automatisch oCTriggerScript...... usw. .....endlos....
  
   * Endlos wäre das, wenn wir nicht noch einen Schalter eingebaut hätten, dass wenn der Player sich durch die Pendelklingen laviert hat, er die Pendelklingen ausschalten kann. Wir setzen mit dem Scriptfunc des Schalters zum abschalten die Variable auf 1..    ​   * Endlos wäre das, wenn wir nicht noch einen Schalter eingebaut hätten, dass wenn der Player sich durch die Pendelklingen laviert hat, er die Pendelklingen ausschalten kann. Wir setzen mit dem Scriptfunc des Schalters zum abschalten die Variable auf 1..    ​
Zeile 281: Zeile 284:
 ==== 7.a oCTriggerScript ==== ==== 7.a oCTriggerScript ====
  
-  * 7.a.0 **__Grundwissen__** Was ist ein oCTriggerScript?​ -> (link)+  * 7.a.0 **__Grundwissen__** Was ist ein oCTriggerScript?​ ->  ​[[quickstart:​triggerscript|]]
  
 **Wer sein Wissen über oCTriggerScript vertiefen möchte, der sollte das tun, indem er obenstehenden Link anklickt. __Die Einstellungen hier, sind speziell unserem Beispiel angepasst__.** **Wer sein Wissen über oCTriggerScript vertiefen möchte, der sollte das tun, indem er obenstehenden Link anklickt. __Die Einstellungen hier, sind speziell unserem Beispiel angepasst__.**
Zeile 297: Zeile 300:
 ==== 7.b zCMoverController ==== ==== 7.b zCMoverController ====
  
-  * 7.b.0 **__Grundwissen__** Was ist ein zCMoverController?​ ->  ​(link)+  * 7.b.0 **__Grundwissen__** Was ist ein zCMoverController?​ -> [[quickstart:​movercontroller|]]
  
 **Wer sein Wissen über zCMoverController vertiefen möchte, der sollte das tun, indem er obenstehenden Link anklickt. __Die Einstellungen hier, sind speziell unserem Beispiel angepasst__.** **Wer sein Wissen über zCMoverController vertiefen möchte, der sollte das tun, indem er obenstehenden Link anklickt. __Die Einstellungen hier, sind speziell unserem Beispiel angepasst__.**
Zeile 316: Zeile 319:
   * __Jetzt ändern wir noch 2 Einstellungen am **Mover KLINGENFALLE_A_01**__ (Objektfenster)   * __Jetzt ändern wir noch 2 Einstellungen am **Mover KLINGENFALLE_A_01**__ (Objektfenster)
     * moverBehavior:​**NSTATE_SINGLE_KEYS** anstatt 2STATE_TOGGLE ​     * moverBehavior:​**NSTATE_SINGLE_KEYS** anstatt 2STATE_TOGGLE ​
-    * triggerTarget:​TS_BEIL_A (das ist der Loop-Aufruf) ​+    * triggerTarget:​**TS_BEIL_A** (das ist der Loop-Aufruf) ​
     * "​Apply"​     * "​Apply"​
  
Zeile 325: Zeile 328:
  
 ===== 8. Schadensregelung ===== ===== 8. Schadensregelung =====
 +
 +  *Um bei Berührung eines Npc mit den Beilklingen einen Schaden zu erzielen benutzen wir einen oCTriggerSCript,​ den wir als Child of Mover an die Beilklingen hängen -> [[quickstart:​triggerscript#​trigger_touch|]] 2.A
  
  
quickstart/spacer/mover2.txt · Zuletzt geändert: 2016/03/08 21:40 von zollaidal