Außerdem gehe och von der Verwendung meines OVLCompHelp aus, das ist nicht notwendig, erspart aber die Kommandozeilen-Operationen.
Zuerst muss ein Objekt im ASE- oder MS3D-Format mit nur einer Mesh vorliegen.
Es muss eine XML-Datei erstellt werden, die die Befehle zur Kompilierung enthält. Sie sieht z.B. so aus:
<?xml version="1.0"?>
<!DOCTYPE ovlcompiler SYSTEM "../ovlcompiler.dtd">
<ovl>
<bsh name="test" model="C:test.ASE">
<geomobj name="TEST" bone="1" ftx="texture" txs="SIOpaque" />
<bone name="testbone">
<pos1>1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0
<pos2>1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0
</bone>
</bsh>
<ban name="test">
<bone name="testbone">
<translate time="0.0">0.0 0.0 0.0
<translate time="2.0">0.0 1.0 0.0
<translate time="5.0">0.0 1.0 0.0
<translate time="7.0">0.0 0.0 0.0
<rotate time="0.0">0.0 0.0 0.0
<rotate time="1.0">1.570796 0.0 0.0
<rotate time="6.0">1.570796 0.0 0.0
<rotate time="7.0">0.0 0.0 0.0
</bone>
</ban>
<ftx name="texture" image="C:test.bmp" alpha="C:test_alpha.bmp"/>
</ovl>
bsh: bsh beschreibt die Bone-Meshes
name: Der Name des Objektes. Muss mit dem Namen im ban-Tag und dem Namen der erzeugten OVL übereinstimmen!
model: Der Pfad der .ase- oderr .ms3d-Datei, die die Mesh enthält.
geomobj: geomobj beschreibt den Zusammenhang zwischen Mesh, Bone und Textur. Ein geomobj-Objekt wird benötigt.
name: Der Name der Mesh. Muss mit dem Namen der Mesh in der Modell-Datei übereinstimmen!
bone: Die Nummer des Bones, der der Mesh zugeordnet wird. Ist dieses Attribut nicht angegeben, wird der vom OVLCompiler erzeugte Root Bone verwendet.
ftx: Name der zu verwendenden Textur. Texturen werden mit dem ftx-Tag definiert.
txs: Der Textur-Style, wie im Importer.
bone: Beschreibt die Bones.
name: Name des Bones. Muss mit dem Namen des Bones im ban-Tag übereinstimmen.
parent: Der Parent Bone für diesen Bone
pos1: Position und Orientierung des Knochens. Die 16 Gleitkommazahlen repräsentieren eine 4x4 Matrix, Reihe für Reihe dargestellt.
pos2: Normallerweise wie pos1.
ban: ban beschreibt die Animationen selbst.
name: Name der Animation. Muss mit dem Namen im bsh-Tag und dem Namen der OVL-Datei übereinstimmen!
bone: Beschreibt die Animation eines Knochens
name: Name des Bones. Muss mit dem im bone-Tag des bsh-Tags definierten Namen übereinstimmen.
translate: Eine Verschiebung, ausgedrückt durch 3 Gleitkommazahlen, die x, y und z Position beschreiben.
time: Der Zeitpunkt, in Sekunden, zu dem dieser Keyframe auftritt.
rotate: Eine Drehung, die mit 3 Gleitkommazahlen, in Radiant, die Drehung um x, y und z Achse des Bone beschreibt.
time: Der Zeitpunkt, in Sekunden, zu dem dieser Keyframe auftritt.
ftx: ftx beschreibt eine Textur.
name: Der Name der Textur. Entspricht dem im geomobj für ftx gewählten Namen.
image: Pfad der .bmp-Datei, die die Textur enthält. Texturen müssen immer 8bpp (256 Farben) und quadratisch bei einer Höhe und Breite von einer Potenz von 2 sein.
alpha: Pfad der .bmp-Datei, die die Alpha-Map dieser Textur enthält. Kann leer gelassen werden. Es gelten die selben Beschränkungen wie für die image-Datei.
Diese XML-Datei wird mit dem OVLCompHelp geladen und ein Speicherort für die Ausgabe-OVL gewählt, wobei deren Name mit dem im bsh-Tag der XML-Datei definierten übereinstimmen muss.
Dann wird der Create-Button gedrückt und der Compiler erstellt die OVL am angegebenen Pfad.
Diese wird wie ein normales Szenerie-Objekt im Importer importiert (natürlich ohne OVL-Erstellung).
Für Ride-Events muss im Scenery-Fenster als Extra-Parameter "Ride Event" ausgewählt werden. Der Scenery Type ist nicht relevant.
Verwendet man nicht den OVLCompHelp (oder möchte die Kommandozeilen-Eingabe selbst z.B. mit einer Batch-Datei kapseln) so lautet der Kommandozeilen-Befehl:
ovlcompiler XML OVL
Also z.B. ovlcompiler c:test.xml c:test.common.ovl
Hoffe, das Tutorial konnte beim Erstellen eigener Animationen helfen. Die Erklärung der XML-Datei ist The_Cooks Original, nur von mir übersetzt.
MfG
errt






