Umhang erstellen

In der Szene “cloth_06_Constraint.max” habe ich unseren Charakter mit einem Umhang und einem Point Helper ausgestattet, der die offenen Träger des Umhangs halten soll. Ohne Constraint würden die Träger unter Einwirkung der Schwerkraft von den Schultern des Charakters gleiten. Damit der Helper etwaigen Bewegungen folgen kann, muss dieser über Link in die Biped-Hierarchie eingegliedert sein.

Innerhalb des Object Properties-Dialogs erweitern wir über Add die Simulation um das “nils_cloak”-Mesh und machen dieses zum Cloth-Objekt. Dem Umhang wurde automatisch eine Instanz des ClothFX-Modifiers zugewiesen. Um “Intersections” mit dem anderen Cloth-Objekt zu vermeiden, erhöhen wir den Thickness-Parameter auf 10.

Den Cloth-Elementen habe ich ein Standardmaterial zugewiesen. Hierzu muss lediglich der ClothFX-Modifier deaktiviert und anschließend im Garment Maker-Modifier die Option Flat Panels ausgewählt werden.

Als Nächstes selektieren wir den Umhang und öffnen den Group-SubObject-Level. Hier werden die Vertices angezeigt, aus denen das Objekt aufgebaut ist. Wir wählen die markierten Vertices aus und erstellen mittels Make Group die Strap-Gruppe. Danach koppeln wir die Gruppe durch Aktivierung der Constraint-Option “Node” und durch anschließendes Klicken auf den Point Helper “strap_dummy” an das Helper-Objekt. Die Option Use Soft Selection sorgt für weichere Ergebnisse zwischen der Gruppe und dem restlichen Cloth-Objekt. Als Letztes koppeln wir den Point Helper “via Lin” an das Biped-Element “nils_Bip Spine2”. Die “Strap”-Gruppe kann jetzt über den Point Helper gesteuert und animiert werden.

Das Cloth-Setup ist jetzt nahezu abgeschlossen. Wir aktivieren die Option Self Collsion, die verhindern soll, dass es zu “Intersections” zwischen den beiden Cloth-Objekten kommt, was jedoch nicht immer funktioniert und den Berechnungsaufwand der Simulation stark erhöht.

Eine zweite constraint-gestützte Gruppe soll den Schulterbereich zusätzlich vor “Intersections” schützen. Siehe Szene “cloth_07_Constraint.max”.

Damit der Umhang zuerst eine ungefähre Form annehmen kann, stellen wir den Gravity-Wert auf 0. Dies hat zur Folge, dass sich die Nähte des Umhangs zusammenziehen, ohne dabei von der Schwerkraft beeinflusst zu werden. Wenn die Nähte geschlossen wurden, stellen wir die Gravity wieder auf “–980” ein.

Simulation

Die Berechnung des Stoffverhaltens innerhalb einer Animation wird durch Simulate gestartet und kann gegebenenfalls durch Erase Simulation wieder gelöscht werden. Idealerweise erzeugt ein Motion Flow (siehe Szene “cloth_08_Simulation.max”) einen langsamen Übergang zwischen neutraler Pose und Bewegungsanimation. Was ein Motion Flow ist und wie ein solcher erstellt wird, kann in Kapitel 5 nachgelesen werden. Die Funktion Truncate Simulation ermöglicht die Stückelung einer Simulation, in der Anzahl oder Eigenschaften der an der Simulation teilnehmenden Objekte verändert werden können. Rechenintensive Parameter, wie zum Beispiel “Subsample”, können in den kritischen Teilen der Bewegung erhöht werden, ohne sich dabei auf die gesamte Länge der Animation auszuwirken. In unserem Beispiel wurde die Simulation in Frame 21 aufgrund von “Intersections” und übermäßigem “Stretching” abgebrochen. Aus diesem Grund habe ich im vorhergehenden Frame mittels Truncate Simulation einen Einschnitt vorgenommen, die “Subsamples” auf fünf erhöht und die Simulation erfolgreich fortgesetzt. Insbesondere bei schnellen Bewegungen und Drehungen kann das Simulationsverhalten von Cloth-Elementen durch den Subsample- Parameter verbessert werden – allerdings zu Lasten der Berechnungsdauer. Der Wert Subsample legt fest, wie oft die Position des Collision Objects pro Frame überprüft wird. Da während der Simulation der Step-Wert, also die Unterteilung der Simulation in zu berechnende Zeitsegmente, automatisch angepasst wird, erübrigt sich hier meistens ein Eingreifen. Sollten weitere Probleme während der Simulation auftreten, dann sollte das Cloth-Setup zuerst auf Schwächen überprüft werden. Die von uns angelegte Shoulder-Gruppe könnte bei starken Schulterbewegungen Probleme verursachen. Ein möglicher Lösungsansatz könnten zwei Schulter-Gruppen sein, deren Constraints an die Biped-Schultern gekoppelt sind. Neben den ClothFX-Interna sollten natürlich auch die Bewegungen cloth-freundlich angelegt werden. Beispielsweise sollte das Schwingen der Arme nicht zu nah am Körper erfolgen, da hierdurch Intersections erzeugt werden. Die fertigen Simulationsergebnisse können dann am Ende über Create Keys in normale Keyframes umgewandelt werden. Die so entstandenen Daten verzichten dann komplett auf die Verwendung des Plugins. Da dieser Prozess nicht umkehrbar ist, sollte im Vorfeld eine Sicherheitskopie der Szene erstellt werden. Die berechneten Cloth-Simulationen sind unter “cloth_01.avi”, “cloth_02.avi” und “cloth_03.avi” einsehbar.

Cloth-Interaktion im Self Collision-Modus funktioniert zwar, jedoch nur in begrenztem Maße. Die Frage, ob “simulierte” Kleidung das althergebrachte Mesh-Pendant komplett ersetzen kann, ist mit einem klaren Jein zu beantworten. Die erzielbaren Ergebnisse sind insbesondere dann, wenn es um interagierende Stoffschichten geht, häufig noch unberechenbar. Machbar ist dennoch einiges mit dem ClothFX-Plugin, wenn ein wenig Einarbeitungszeit investiert wurde! Einzelne Cloth-Elemente lassen sich problemlos in ein Character-Setup mit einbinden und erzielen damit hervorragende Effekte.