Dies ist eine alte Version des Dokuments!
Ein Morphmesh ist ein sich bewegendes bzw. animiertes Mesh in Gothic.
Anders als bei zCMovern bei denen die Gothic Engine ein starres Objekt bewegt oder bei Bone-Animationen bei denen Knochen/Bones und die den Knochen/Bones zugeordneten Polygone bewegt werden wird bei Morphmeshes jedes Polygon einzelnd verschoben. Wegen der Performance sollte man sich auf einfache Animationen mit wenig Poylgonen und wenig Frames beschränken. Außerdem gibts bei Morphmehes keine Kolisionserkennung. Für einige Dinge ist das ideal (Grässer, Fische im Wasser, Windmühlenräder), für andere wie Tore oder NPCs sind Morphanis aber ungeeignet. Das Beispielwindmühlrad kann man zum selber testen downloaden: http://wiki.worldofgothic.de/images/bilder/harri/Muehle.rar
Allgemeines Vorgehn:
Ein Morphmesh wird durch eine Kopie von sich selbst gesteuert. Dazu brauch wir ein Mesh was so aussieht wie das was sich in Gothic bewegen soll. Hierbei ist es egal wie die Bewegung aussehen soll. Die Perfektion liegt an dem Geschick dessen der es animiert (Übungssache).
Ein Mesh läst sich auf verschiedene weise animieren.
z.B.: über ein Bones-Verknüpfungen
image002.gif
oder:
mit Space Warps (z.B: Welle)
*dies unterscheidet sich lediglich in der Art der Animation
*alles andere ist äquivalent zu nachfolgenden Beschreibung
image004.gif
Da ich zu ersteren die Datei mitliefere schenk ich mir die Erklärung wie man ein Mesh (hier das Windrad) baut.
*Windrad (oder was auch immer) bauen - ich nenne es Rad
*Dieses Kopieren und als Zm_Rad benennen (Zm_ muß auf jeden Fall voran stehen)
*Zm_Rad markieren ausblenden - brauchen wir später
*aus dem Menü Bones wählen
*mit dem Cursor die Mitte des Rades anklicken
*dann Bones in die gewünschte Richtung und Länge ziehen (Rand des Windrades)
image006.gif
*mit der rechten Mousetaste abklicken
*den „Anhängsel-Bones“ kann man weglöschen
*Das auf 4 mal Komplettieren. (Bild siehe oben)
*Auf Rad den Modifikator Haut anwenden
image008.gif
image010.gif
*Hülle - Hülle bearbeiten - Bones hinzufügen - alle Bones auswählen
image012.gif
*(Die Mühle kann man schließlich auch auswählen und verdecken. Ist hier eh bloß zur verbesserten Anschauung gedacht!)
*Nun können die einzelnen Bones ausgewählt werden und die Querschnitte so verändert werden (durch Verschieben in einer bestimmten Achse - aus Richtung Zentrum-Bones (hier y) werden diese skaliert), das ALLE Scheitelpunkte des Rades erwischt werden (sind dann rot markiert).
image014.gif
Animation:
Ok, ist keine schwere Animation, aber den User sind hier keine Grenzen gesetzt ;)
image020.gif
So, nun müsste man alles außer Zm_Rad verdecken können (dürfte nur das Rad sein) und zur besseren Show die Mühle wieder einblenden und Animation abspielen lassen können.
Das Zm_Rad sollte sich nun drehen.
Mesh-Export:
[Gothic]\_work\DATA\Anims\asc_anims\MOBS\
(es kann auch in einem anderen Unterverzeichnis als in MOBS stehen)
image024.gif
Ani-Export:
image026.gif
3dsMax kann man nun eigentlich schließen (Arbeit speichern versteht sich von selbst)
morphMesh ("Rad_MORPH") { morphRef ("Rad_Mesh.ASC") // Ani-Name / Layer Bl.in / hold /Bl.out /Flags / ASC-Name / von bis / fps // --------------------------------------------------------------------------------------- // Wind-Anis morphAni ("S_WINDY" 1 1.0 -1 1.0 . "Rad_Morph.ASC" 0 99 SPD:3) }
Hier wer ich nicht all zu viel dazu sagen
*Bei anderen Scripts einfach die entsprechenden anderen Dateinamen eingeben
*0 99 (von bis) ist die Anzahl der Frames die 100 wird weggelassen, da sie ja mit der 0 identisch ist
*SPD:3 ist die Geschwindigkeit mit der die ani abgespielt wird - am besten testen bis die gewünschte Geschwindigkeit stimmt.
*Abspeichern: z.B.: rad.mms unter: [Gothic]\\_work\\DATA\\Anims\\[belibiges Unterverzeichnis]\\
Ein Nachteil bei zVobAnimate ist, das diese statisch nicht fest sind. Der Player kann also durchlaufen (kann man natürlich auch als Vorteil sehen z.B.: bei einer Wiese).
Ein Anderer, sie können im Spacer nicht durch ihr Visual markieren kann sondern nur in der Vobliste und komischerweise sind sie beim einfügen nicht in der Position wie in max, aber das kann man ja mit den Steuerungstasten ausgleichen - drehen.
Meine Empfehlung ist daher ein zVobAnimate an ein kleines vob z.B.: ein Stein so anzuhängen das dieser nicht stört bzw. später zu sehen ist. Dieser läst sich wenigstens im Spacerfenster markieren und dient dazu das zVobAnimate damit in die richtige Position zu schieben - drehen.
*Träger-vob einfügen
*Einen signifikanten Namen geben z.B.: RAD (damit er später besser wieder aufzufinden ist)
*zVobAnimate aus dem Objects-fenster wählen
image028.gif
*Mit der rechten Mousetaste auf den Träger-vob (RAD) klicken
image030.gif
*Insert [zVobAnimate] as child of „RAD“ wählen
*Als visual dann den namen des Morphmeshscripts eingeben(z.b. rad.mms) und apply drücken
image032.gif
*Das zVobAnimate gleich in eine zum Träger-Vob (child) günstige Position schieben z.B.: Anfang der Radnabe = Mitte Stein
*Nun kann man den Stein markieren und mit samt dem Windrad so drehen das es die gewünschte Position hat.
*Der weitere Vorteil dieser Methode ist, das man nun durch den Stein ein Vobtree Speichern kann und diesen dann je nach belieben und schon in der fast richtigen Position wieder an anderer Stelle in der World einfügen kann (per Insert vobtree).
image034.gif
Viel Spaß beim Modden
- Harri