Benutzer-Werkzeuge

Webseiten-Werkzeuge


Dies ist eine alte Version des Dokuments!


= Sich bewegende bzw. animierte Meshes 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 [http://wiki.worldofgothic.de/images/bilder/harri/Muehle.rar downloaden].

Allgemeines Vorgehn:
*1. In 3dsMax ein Morphmesh erstellen
*2. Entsprechend exportieren
*3. Das Script dazu schreiben
*4. Im Spacer einfügen

Morphmesh erstellen

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:
*alle Bones auswählen
*Anim. - Aktivieren (Key-Zähler-Balken wird rot)
*Key-Zähler auf die Mitte (hier 50) schieben
*Bones drehen um 180°
image016.gif
*Key-Zähler zum Ende (hier 100) schieben
*Und um Bones um weitere 180° drehen(natürlich in die gleich Richtung;))
*Anim. wieder deaktivieren
*Sollte das Rad sich nicht sauber mitdrehen (z.B. verzerren) ist bei der Operation Haut nicht das vollständige Mesh erfasst worden. Das kann man aber auch noch nachträglich ausbessern.
Ok, ist keine schwere Animation, aber den User sind hier keine Grenzen gesetzt ;)
*Ausgewählte Bones gleich verdecken
*Zm_Rad einblenden und auswählen
*Animations-Modifikaroren: Morpher wählen
*Am einfachsten mehrere Ziele laden und dann das Rad auswählen - laden
image018.gif
*Ziele automatisch neu laden aktivieren
*Morph-Facktor auf 100% einstellen
*(bei anderen Animationen kann man auch unter 100 bleiben - somit kann man eventuell die Amplitute der Animation ändern. Bei einer 360°-Drehung ist aber unbedingt 100 einzustellen.)
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.

Export

Mesh-Export:
*Zm_Rad markieren
*Datei/Auswahl exportieren… anklicken
*Dateityp: ZenGinASC Exporter (*.ASC) wählen (die richtigen Plugins sollte man aber schon installiert haben)
*Dateiname: z.B.: RAD_MESH.ASC → Speichern
*Gothic-Path: [Gothic]\\_work\\DATA\\Anims\\asc_anims\\MOBS\\ (es kann auch in einem anderen Unterverzeichnis als in MOBS stehen)
image022.gif
*Export Morph Mesh anklicken und mit OK bestätigen
image024.gif
Ani-Export:
*Zm_Rad markieren (ist ja noch)
*Datei/Auswahl exportieren…
*Dateityp: ZenGinASC Exporter (*.ASC) wählen (ist ja noch)
*Dateiname: z.B.: RAD_MORPH.ASC → Speichern
*Export Morph Animation anklicken und mit OK bestätigen
image026.gif
3dsMax kann man nun eigentlich schließen (Arbeit speichern versteht sich von selbst)

Script
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]\\

Im Spacer einfügen

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

tutorials/morphmesh.1439928979.txt.gz · Zuletzt geändert: 2016/02/09 00:09 (Externe Bearbeitung)