Angepinnt [How To] GTL Klappscheinwerfer

      [How To] GTL Klappscheinwerfer

      Für alle Interessierten möchte ich hier ein How To zum Thema Klappscheinwerfer in GTL vorstellen.

      Ich setze allerdings voraus, das Ihr ein Modell habt was über ausgearbeitete Scheinwerfer verfügt und das ausreichend Erfahrung mit eurer 3D-Software vorliegt ;)

      3D:

      Um die Scheinwerfer in GTL ein- und ausklappen zu lassen müsst Ihr die lokale Achse des Scheinwerfers definieren. In den meisten Fällen sitzt die lokale Achse aller 3D-Teile auf 0;0;0. Das würde jedoch bedeuten, dass die Scheinwerfer um den Koordinatenursprung rotieren würden. Macht bei uns eigentlich keinen Sinn, da die Leuchteinheit dann irgendwo über dem Dach hängen würde.

      Ihr müsst also einen geeigneten Punkt finden, der IM Scheinwerfer selbst sitzt. Nicht über oder unter auch nicht davor oder dahinter. Sonst passt das Ergebnis am Ende überhaupt nicht. Habt Ihr einen Punkt gefunden gibt es mehrere Möglichkeiten ihn dem Scheinwerfer zuzuweisen. Wer den Weg über Max und die ISI-Tools geht, kann direkt einen Pivot in Max festlegen. Wer das nicht kann sucht sich in seinem 3D Programm einen Pivot Punkt aus und notiert sich die Koordinaten.

      Da wir für GTL nicht um den 3DSimEd rumkommen würde sich meiner Meinung nach Variante 2 von vornherein anbieten. Im 3D SimEd V1.18 gibt es die Möglichkeit den Pivot eines Objekts über die Objekteigenschaften zu verändern, so wie wir es auch vom Lenkrad und vom Helm des Fahrers kennen.

      Rechtsklick aufs Objekt -> Edit Objektname


      Im neuen Fenster haben wir dann erst mal die globalen Raumkoordinaten, die Drehachsen und die Skalierung des Objekts. Diese sollten vorerst auf 0 stehen. Daran brauch auch nichts geändert werden.

      Im unteren Teil des Fensters gibt es eine Schaltfläche mit der Aufschrift Tags.


      Im Tag-Fenster kann nun der Pivot Punkt verändert werden.


      Tragt in der rechten Seite des Tag-Fensters eure Pivot Koordinaten ein und klickt auf ok und im Eigenschaftsfenster auf Update.


      Ihr habt eurem Scheinwerfer nun einen Punkt gegeben um den Ihr Ihn im Spiel rotieren lassen könnt.

      Car-Datei-Einträge:

      In der Car-Datei finden wir beim Porsche 914, beim Lotus Elan und auch bei der Corvette, 9 Zeilen zur Steuerung der Rotation.

      Beispiel aus dem Lotus Elan 601:

      Quellcode

      1. LeftPopupAxisPoint1=(0.278, 0.185, -1.38) //Punkt auf der Rotationsachse um die der Scheinwerfer aufklappt
      2. LeftPopupAxisPoint2=(0.672, 0.115, -1.38) //Punkt auf der Rotationsachse um die der Scheinwerfer aufklappt
      3. LeftPopupRotationPoint1=(0.398, 0.119, -1.569) //"geschlossen" Position aller Vertexe, die nicht auf der Rotationsachse liegen
      4. LeftPopupRotationPoint2=(0.436, 0.329, -1.474) //"geöffnet" Position aller Vertexe, die nicht auf der Rotationsachse liegen
      5. RightPopupAxisPoint1=(-0.672, 0.115, -1.38) //Punkt auf der Rotationsachse um die der Scheinwerfer aufklappt
      6. RightPopupAxisPoint2=(-0.278, 0.185, -1.38) //Punkt auf der Rotationsachse um die der Scheinwerfer aufklappt
      7. RightPopupRotationPoint1=(-0.436, 0.329, -1.474) //"geschlossen" Position aller Vertexe, die nicht auf der Rotationsachse liegen
      8. RightPopupRotationPoint2=(-0.398, 0.119, -1.569) //"geöffnet" Position aller Vertexe, die nicht auf der Rotationsachse liegen
      9. PopupTime=0.5 // Zeit in Sekunden zum öffnen/schließen der Scheinwerfer

      Die Koordinaten der PopupAxisPoints geben eine imagninäre Rotationsachse an, dessen Mittelpunkt der Pivotpunkt sein sollte. Das bedeutet, das wir neben dem Pivotpunkt noch zwei andere Punkte brauchen die im Scheinwerfe liegen. Das kann man auch direkt bei der Erstellung des 3D-Modells berücksichtigen, indem man einen Würfel an die entsprechenden Stellen schiebt und sich die Koordinaten notiert.

      Bei den Koordinaten der PopupRotationPoints bin ich jedoch noch etwas ratlos. Ich tippe auf den Mittelwert aller Vertexe die im Modell des Scheinwerfers verwendet wurden. Das würde jedoch bedeuten, dass man erst mal sehr viel rechnen darf. Anders kann ich mir die bisherigen Werte jedoch nicht erklären.

      Wem das zu blöd sein sollte (so wie mir), dem lege ich das Try & Error Verfahren ans Herz. Womit man jedoch schneller zum Erfolg kommt, kann ich nicht sagen.

      Ich denke jedoch, dass diese Mittelwerte zur Berechnung der Drehwinkel für GTL erforderlich sind, um so die exakte Position der geöffneten Scheinwerfer zu ermitteln.

      CAS-Einträge:

      Für die CAS gibt es auch zwei neue Instanzen.

      Quellcode

      1. Instance=LIGHT_LF
      2. {
      3. Moveable=True
      4. <SPIN> MeshFile=PORSCHE_914_LIGHT_LF_A.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(900.00)
      5. <EXPO> MeshFile=PORSCHE_914_LIGHT_LF_A.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(900.00) Reflect=True
      6. <NOTSPIN><DASHHIGH> MeshFile=PORSCHE_914_LIGHT_LF_A.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(20.00)
      7. <LOW> MeshFile=PORSCHE_914_LIGHT_LF_B.gmt CollTarget=False HATTarget=False ShadowReceiver=True LODIn=(0.0) LODOut=(50.0)
      8. <LOW> MeshFile=PORSCHE_914_LIGHT_LF_GLOW.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(50.0)
      9. <MED> MeshFile=PORSCHE_914_LIGHT_LF_B.gmt CollTarget=False HATTarget=False ShadowReceiver=True LODIn=(0.0) LODOut=(50.0)
      10. <MED> MeshFile=PORSCHE_914_LIGHT_LF_GLOW.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(50.0)
      11. <HIGH> MeshFile=PORSCHE_914_LIGHT_LF_B.gmt CollTarget=False HATTarget=False ShadowReceiver=True LODIn=(0.0) LODOut=(70.0)
      12. <HIGH> MeshFile=PORSCHE_914_LIGHT_LF_GLOW.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(70.0)
      13. <MAX> MeshFile=PORSCHE_914_LIGHT_LF_A.gmt CollTarget=False HATTarget=False ShadowReceiver=True LODIn=(0.0) LODOut=(70.0)
      14. <MAX> MeshFile=PORSCHE_914_LIGHT_LF_GLOW.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(70.0)
      15. }
      16. Instance=LIGHT_RF
      17. {
      18. Moveable=True
      19. <SPIN> MeshFile=PORSCHE_914_LIGHT_RF_A.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(900.00)
      20. <EXPO> MeshFile=PORSCHE_914_LIGHT_RF_A.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(900.00) Reflect=True
      21. <NOTSPIN><DASHHIGH> MeshFile=PORSCHE_914_LIGHT_RF_A.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(20.00)
      22. <LOW> MeshFile=PORSCHE_914_LIGHT_RF_B.gmt CollTarget=False HATTarget=False ShadowReceiver=True LODIn=(0.0) LODOut=(50.0)
      23. <LOW> MeshFile=PORSCHE_914_LIGHT_RF_GLOW.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(50.0)
      24. <MED> MeshFile=PORSCHE_914_LIGHT_RF_B.gmt CollTarget=False HATTarget=False ShadowReceiver=True LODIn=(0.0) LODOut=(50.0)
      25. <MED> MeshFile=PORSCHE_914_LIGHT_RF_GLOW.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(50.0)
      26. <HIGH> MeshFile=PORSCHE_914_LIGHT_RF_B.gmt CollTarget=False HATTarget=False ShadowReceiver=True LODIn=(0.0) LODOut=(70.0)
      27. <HIGH> MeshFile=PORSCHE_914_LIGHT_RF_GLOW.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(70.0)
      28. <MAX> MeshFile=PORSCHE_914_LIGHT_RF_A.gmt CollTarget=False HATTarget=False ShadowReceiver=True LODIn=(0.0) LODOut=(70.0)
      29. <MAX> MeshFile=PORSCHE_914_LIGHT_RF_GLOW.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(70.0)
      30. }

      Die GLOW Elemente stellen das eigentliche Leuchtend es Scheinwerfers da. Um diese in GTL zu benutzen bedarf es höchstwahrscheinlich wieder ein wenig Arbeit mit dem Hex-Editor, da der 3D SimEd beim abspeichern der GLOW Elemente etwas verkehrt arbeitet.

      Der Rest sind die High- und Low-Detail Modelle der Scheinwerfer selbst.

      Diese beiden Instanzen stehen zwischen EXTDRIVERHEAD und SUSPENSION und weisen GTL an, das zu tun was wir verlangen :D.

      Die nächsten beiden Instanzen Debris0 und Debris1 sind ausschließlich fürs Schadensmodell der Scheinwerfer verantwortlich. Da normalerweise hier die Scheinwerfer definiert werden, verwenden wir kleine quadratische Objekte als Dummyobjekte, um im Falle eines Unfalls, die kaputten Scheinwerfer zu simulieren. Diese Faces sollten unterhalb der Scheinwerfer liegen (1 cm drunter dürfte etwa ausreichen), sodass man sie von aussen niemals zu sehen bekommt.

      Quellcode

      1. Instance=DEBRIS0
      2. {
      3. Moveable=True
      4. <NOTSPIN> MeshFile=PORSCHE_914_DUMMY0.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(70.00)
      5. }
      6. Instance=DEBRIS1
      7. {
      8. Moveable=True
      9. <NOTSPIN> MeshFile=PORSCHE_914_DUMMY1.gmt CollTarget=False HATTarget=False LODIn=(0.0) LODOut=(70.00)
      10. }


      Habt ihr alles richtig gemacht könnt Ihr im Spiel das Ergebnis bewundern. Und wenn irgendwo ein Fehler auftritt, der GTL abstürzen lässt, denkt immer an die Trace.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Rob“ ()

      Hallo Rob,

      auch von mir noch einmal ein großes Dankeschön für die Beschreibung! Funktioniert tadellos und ist nicht so schwer, wie es zunächst aussieht.
      Super, Meister!

      @all

      Den Tipp mit dem Zusatzkörper zur Ermittlung der Drehachse kann ich nur unterstreichen. Wenn man z.B. einen Quader erstellt, dessen Ursprungspunkt man möglichst so legt, dass er auf der späteren Drehachse liegen könnte, und man diesen Zusatzkörper dann mit exportiert, dann kann man im Simmel die beiden Punkte der Achse herausmessen. Zur korrekten Positionierung brauch man zwar etwas Vorstellungskraft, wie sich der Scheinwerfer öffnet, ist aber keine große Sache.

      Bzgl. der Punkte, von wo nach wo sich der Scheinwerfer öffnen soll, gibts auch ne gute Möglichkeit, bei der man nicht groß probieren muss.
      So kann man z.B. im Maxe alle Punkte eines Klappscheinwerfers markieren und auf verschieben klicken. Dann wird unten die "mittlere Koordinate" aller Punkte angezeigt. Das Gleiche macht man mit dem geöffneten Scheinwerfer, den man zuvor so positioniert hat (durch Attachen zum Hilskörper und Drehung um die Drehachse des Hilfskörpers), dass er genau die Endstellung eingenommen hat.
      Diese beiden Werte notiert man, und rechnet sie mit den Skalierungsfaktoren des Modelles (die man für die richtige Größe des Autos im Simmel ggf. benötigt) um.

      Dann trägt man diese, wie von Rob beschrieben, in die CAR Dateien ein (auch hier immer X,Z,Y).
      Schon sollten die Scheinwerfer klappbar sein. Bei meinem Modell haben sich die Scheinwerfer zunächst in die falsche Richtung geöffnet (nach unten statt nach oben), dies kann man durch vertauschen der beiden Punkte der Drehachse 1<>2 korrigieren.

      Ich hoffe, das war einigermaßen verständlich.

      Cheerio
      Cooky
      Habe gerade mal die cas beim Porsche 914 im GTL-GTR2-Mod mit der originalen aus GT Legends verglichen. Diese sehen exakt gleich aus. Auch die gmt Dateien sind alle vorhanden.

      Verstehe also nicht, warum diese "Technik" dann in GTR2 nicht funktioniert. ;(
      Puhdys, diese Band steht seit 43 Jahren für erstklassischen Deutschrock.

      Weiss denn niemand, warum das in GTR2 nicht funktioniert, obwohl alle Einträge (sowohl cas, als auch in den car Dateien) vorhanden sind. GTR2 basiert doch eigenlich auf der gleichen Engine, wie GT Legends. Oder irre ich mich da?
      Puhdys, diese Band steht seit 43 Jahren für erstklassischen Deutschrock.