Descent3fischlein.de Ship
MenTop
News D3Edit Levels Mods Tools Links Lan-Pic's Gästebuch Kontakt Fischlein
140652 seit 24.09.2000

Eigene Doors
Geschrieben von Toxxeon
Wenn Ihr Euch diese Anleitung ausdrucken wollt, dann HIER Klicken.
Alle in dieser Anleitung verwendeten Dateien könnt ihr hier als ZIP-File downloaden.

Wir brauchen neben einem aktuellen D3-Editor noch den OOF-Editor, zum Extrahieren der Table.gam, den HOG2-Workshop sowie zum Erstellen eigener gam-Files das gamTool. Wenn ihr diese Programme noch nicht habt, dann ladet sie euch runter.


Zum Anfang erst mal als Überblick: Eine Tür --> ...Door... ist ein Raum mit einem oder mehreren animierten Objekten. Die Bewegung dieser Objekte wird per Script gesteuert. Um eine selbsterstellte Tür in das Level zu integrieren, müssen wir eine vorhandene Tür mit unserer ersetzen. Das hat den Vorteil, dass wir für unsere Tür kein Extra-Script erstellen brauchen. Wir nutzen einfach das der Original-Tür. Aber immer der Reihe nach...
Wir werden in dieser Anleitung eine dreiteilige Tür bauen, bei der sich die einzelnen Tür-Objekte in verschiedene Richtungen öffnen.Öffnet im D3-Eitor einen neuen Raum. Erstellt erst mal den "Türrahmen", so wie ihr ihn speziell in eurem Level benötigt. Ihr braucht einen Durchgang, durch den ihr später durchfliegen wollt, und seitlich (bzw. ober- oder unterhalb) auch noch Taschen. Dorthin schieben sich dann die Türobjekte hinein. Denkt daran, dass dieser Raum ringsrum geschlossen ist. Weil sonst kann man aus dem Level "hinausschauen".

SEHR WICHTIG: Hier müssen erstmal die Faces unbedingt ein geschlossenes Polygonnetz bilden! Es dürfen also keine Extra-Vertices übrigbleiben, wenn ihr Faces kopiert und aneinanderschiebt. Wenn ihr doppelte Verts habt, dann klickt hier drauf. (Bild 1)

(Bild1)
Extra-Verts löschen

Ihr könnt euren "Türrahmen" hier nach eurem Geschmack texturieren, um in der 3D- Ansicht einen besseren Überblick zu bekommen. Manchmal werden allerdings die an dieser Stelle definierten Texturen nicht mit übernommen. Dann müsst ihr das später, wenn die Tür in unsere *.d3l-Datei eingefügt ist,
noch mal extra machen. Aber das ist kein Problem.

O.K. Unser Türrahmen ist fast fertig...und sieht so aus (Bild 2)

(Bild 2)
2D-Ansicht des Türrahmens

Wie schon weiter oben angesprochen, muss bis hierhin alles ein geschlossenes Polygonnetz sein. Jedoch müssen wir nun eine Fläche, die später als FrontFace dient, aus diesem Netz lösen! Diese Fläche muss ein späteres Portal sein!

Dazu klickt ihr am einfachsten in der 3D-Ansicht eine Fläche an, die dieses FrontFace werden soll, und markiert es mit der Leertaste. (Bild 3) Dann kopiert ihr's in den Zwischenspeicher. Nun markiert ihr das Face wieder und löscht es. Anschließend in eine 2D-Ansicht klicken und das Face aus dem Zwischenspeicher wieder in den Editor einfügen. Jetzt das Face am Grid ausrichten und genau wieder an den Platz des soeben gelöschten Faces verschieben.

(Bild 3)
3D-Ansicht mit mariertem Face

ACHTUNG: Ab jetzt dürft ihr NICHT MEHR DIE EXTRA-VERTICES LÖSCHEN!!! Sonst wird das Polygonnetz wieder verbunden!

Was wir bis jetzt modelliert haben, wird unser Door-Shell und das FrontFace. Aber dazu später.

Nun zu den Tür-Flügeln:
Die erstellt ihr am günstigsten an einer anderen Stelle im selben Raum und schiebt sie erst ganz zum Schluss an die richtige Position. Genauer gesagt, an die Positionen, so wie der geschlossene Zustand der Tür aussehen soll. Diese Tür-Flügel könnten bei einer 3teiligen Tür so aussehen. (Bild 4) Im Bild sind die drei Teile nur zum besseren Erkennen noch etwas auseinandergeschoben...

(Bild 4)
Tür-Flügel

Und nicht vergessen: Die Extra-Vertices nicht löschen! Jede Einzel-Tür muss ein selbstständiges Polygonnetz sein. Außerdem müsst ihr hier schon festlegen, welche Textur die Türflügel haben sollen. Die Texturen, die man den Flügeln zuweist, werden übernommen und können dann nicht mehr geändert werden!
Speichert den Raum unter "own_door.orf".

Jetzt erstellen wir unsere Tür mit den Tür-Objekten...
Als erstes schauen wir im D3-Editor nach, welche Tür wir ersetzen wollen. In diesem Beispiel nehmen wir dazu Novak B (Bild 5)

(Bild 5)
Novak B

(Bild 6)
Key-Anzahl

Dann öffnet ihr mit HOG2-Workshop die Datei d3.hog und extrahiert die darin befindlichen Datein Table.gam und novak_b.oof.
Jetzt startetet ihr das Programm OOFEditor.exe und ladet das Objekt novak_b.oof. Schaut in der linken unteren Ecke nach, wieviel Key's die Animation dieses Objektes besitzt. Hier hat der letzte Key die Nummer "60". (Bild 6) Das ist wichtig, weil unsere neue Tür muss die identische Key-Anzahl besitzen, damit's funktioniert!

So, jetzt öffnet ihr im OOFEditor einfach unseren Raum own_door.orf. Das Ergebnis seht ihr hier:

Screenshot des OOFEditors

Auf der rechten Seite (oben) seht ihr den Namen unseres Objektes mit allen seinen Unterobjekten = Sub-Models. Bei uns sind das 5 Stück, sie sind alle mit Unnamed bezeichnet. Wenn ihr die der Reihe nach anklickt, dann färben sie sich in der 3D-Ansicht in ein komisches Lila. Hier seht ihr dann auch, dass der Türrahmen als ein Körper zu sehen ist...und das die einzelne Portal-Fläche als eigenes Sub-Model vorhanden ist. Nun könnt ihr den Sub-Models unter Properties erstmal beliebige Namen vergeben. Ich nenne sie:

  • Türrahmen
  • Portal
  • Flügel_oben
  • Flügel_links
  • Flügel_rechts
Jetzt alles unter own_door.oof speichern!
Anmerkung:
Wenn ihr sehr komplexe Türen erstellt, kann das Tür-Objekt sehr viele Sub-Models besitzen. Um da ein wenig mehr Übersicht zu erlangen, kann man auch die Sub-Models untereinander verschmelzen. Diese können auch räumlich voneinander getrennt sein. Schaut euch also genau an, welche Türteile zum Beispiel die selben Bewegungen haben sollen. Dann zieht im Model/Sub-Model Selector/Viewer bei gedrückter Shift-Taste per Drag'n Drop das eine auf das andere Sub-Model. Fertig. Damit haben dann diese Objektteile die gleichen Eigenschaften und Bewegungen...
In unserem Beispiel hier dürfen wir das jedoch nicht machen!


Als nächstes aktiviert ihr das erste Sub-Model und klickt dann im Register Properties den Button Affekt Pivot Only an. Dort setzt ihr dann alle Koordinaten (X,Y,Z) auf 0.00 (Bild 7) Macht das bei jedem Sub-Model, weil sonst später die Türflügel nicht genau an der gewünschten Position sind. Und lasst bei jedem Submodel den Button aktiviert!

(Bild 7)
Koordinaten ausrichten!

Markiert nun im Model/Sub-Model Selector/Viewer das (Haupt)-Model und klickt dann den Button (SPCL) Special Point Used an, und gebt dann dort unter Name einfach $dummy (Dollar-Zeichen und  dummy  reinschreiben) ein. So wie's im Bild 8 zu sehen ist. Lasst den Button dann aktiviert!

(Bild 8)
$dummy-Eingabe

Wichtig: Jetzt müssen wir dem Submodel Türrahmen im Untermenü Properties die Eigenschaft Shell zuweisen. Klickt auf das Pull-Down-Menü und sucht das Entsprechende aus. (Bild 9) Genauso macht ihr das mit dem Submodel Portal (Das ist die einzelne Fläche von vorhin). Wählt dort die Eigenschaft FrontFace aus. (Bild 10) Bei den anderen Sub-Models, also den Türflügeln müsst ihr dort None auswählen! Dies ist aber standartmäßig voreingestellt, da braucht ihr also nichts zu verändern.

(Bild 9)
Ptoperties --> SHELL !!

(Bild 10)
Properties --> FrontFace !!

Zwischenspeichern!

So, jetzt machen wir uns an den Bewegungsablauf unserer Tür:
Wechselt in das Register Animation.
Ganz rechts unten unter Time Configuration gebt ihr bei End 60 ein, das sind die schon beschriebenen Animations-Keys. Bei Animation Length braucht ihr nichts verändern, die Zeit wird mittels Gam-File gesteuert! Hier könnt ihr lediglich testen, ob euch die Animation der Tür gefällt, wenn ihr wollt, dass zum Beispiel der Öffnungsvorgang 3 Sekunden dauern soll. Zum Start der Animation den Play-Button drücken.

Dann aktiviert ihr der Reihe nach die einzelnen Sub-Models und klickt einach nur auf Positional und auf Rotational , ohne dort die Werte zu verändern! Passt auf, dass jeweils Key # 0 (der erste Key) angezeigt wird. (Bild 11)

(Bild 11)
Animation

Wichtig: Auch der Türrahmen und das Portal müssen einen Key # 0 aktiviert haben. Weitere Keys aber nicht!

Einen Key setzt ihr einfach, indem ihr auf -Positional- und/oder -Rotational- klickt. Man erkennt gesetzte Keys in der unteren Leiste an den ovalen Markierungen.

Nun könnt ihr rumexperimentieren, bis ihr einen euch angenehmen Bewegungsablauf für die Tür-Flügel gefunden habt. Die Sub-Models Flügel_oben; Flügel_links und Flügel_rechts sind mit den Koordinaten X, Y, Z oder mit den Winkelangaben verschiebbar. Ihr braucht nicht alle 60 weiteren Keys aktivieren, vielleicht nur 2 oder 3 oder mehr, je nachdem, wie raffiniert der Verschluss-Vorgang eurer Tür sein soll. An welcher Stelle diese Keys innerhalb der Animation sind, ist ebenfalls egal. Es kann auch jedes einzelne Türflügel-Sub-Model verschiedene Keys besitzen. Jedoch muss bei diesen Sub-Models mindestens noch der Key # 60 als Abschluss aktiviert sein. (Nur bei diesen Sub-Models!) Diese Keys sind zur Synchronisation der Einzelbewegungen sehr gut verwendbar.

Zu erwähnen ist noch, dass hier nur die Bewegung vom geschlossenen bis zum geöffneten Zustand zu definieren ist. Also bei Key # 60 muss der geöffnete Zustand der Tür zu sehen sein. Im Level wird dann einfach die Animation rückwärts abgespielt, wenn sich die Tür wieder schließt. Das brauchen wir hier bei unserer Animation nicht zu beachten!

Unsere Tür sieht im geöffneten Zustand im OOFEditor so aus:

fertige Tür

Speichert das Objekt wieder, und schließt den OOFEditor.

Jetzt öffnen wir mit dem gamTool die zuvor schon extrahierte Datei Table.gam
Dort drin suchen wir uns den Abschnitt - Door: NovakB raus, kopieren diesen mit Strg + C in den Zwischenspeicher, klicken auf File ---> New und fügen mit Strg + V den Abschnitt in den neuen Gam-File hinein.

(Natürlich kann man auch gleich einen neuen gam-File öffnen, Alt + D drücken und dann alle notwendigen Daten selber reinschreiben.)

Unter Model File Name den Pfad zu unserem Objekt own_door.oof angeben. (So wie's bei euch halt speziell gespeichert ist...)

Die Optionen Opening Time, Closing Time und Open Time könnt ihr entsprechend anpassen.

Alles andere unter Flags lasst so stehen! Wir wollen ja eben generic.dll für unsere neue Tür nutzen. Auch den Door-Namen (NovakB) nicht verändern!

Das gam-File dann speichern, und beachten, dass diese Datei denselben Namen wie die spätere MN3-Datei besitzt.
Konkret bei unserem Beispiel: own_door.gam ==> own_door.mn3

Geschafft...eigentlich war's das schon!

Wir öffnen jetzt wieder den D3-Editor und laden unter Data ---> Tablefile Manager die Datei own_door.gam hinein.

Wenn wir jetzt im Door-Menü unter Novak B nachsehen, dann sieht man, dass das Original-Door durch die neue Tür ersetzt wurde :)   (Bild 13)
Wundert euch nicht über die Darstellung, in der Door-Vorschau im Editor werden nur die Tür-Objekte (also die Türflügel) dargestellt

(Bild 13)
unser Door!!!

Fügt nun die selbsterstellte Tür in euer Level ein, und texturiert den Türrahmen nochmal nach eurem Geschmack, falls es notwendig ist... Wenn ihr zum Schluss die MN3-Datei packt, dann gebt unter Additional Files die Datein own_door.gam und own_door.oof mit an.

Die hier erstellte Tür könnt ihr in Action im beigepackten Test-Level sehen... Es ist im ganz am Anfang der Seite angebotenen ZIP-File enthalten.

Viel Spaß beim Experimentieren! Der Phantasie sind eigentlich kaum Grenzen gesetzt, was für heftige Doors ihr in die Levels einbauen könnt! Zum Beispiel könnten sich ja erst noch diverse Verriegelungen lösen, bevor sich eine Tür öffnet. Oder ihr baut euch themenspezifische Doors...

Wenn ihr Fragen oder Verbesserungen zu dieser Anleitung habt, schreibt an mich fertige Tür im Level!

Zurück