2023

Soft Body

Allgemeines

Mit den Einstellungen dieses Tabs können Sie aus dem Kleidungsstück einen Soft Body machen.

Was ist ein Soft Body im Vergleich zu einem normalen Kleidungsstück (im Folgenden einfach nur “Kleidungsstück” genannt)?

Ein Kleidungsstück ist voreinstellungsgemäß nur mit seinen Struktur-Constraints (einstellbar mit Biegsamkeit und Dehnbarkeit) versehen, d.h. ein Kleidungspunkt ist unmittelbar nur mit seinem Nachbarn (Dehnbarkeit) und per Biegsamkeit maximal mit dem übernächsten Punkt verbunden. Stellen Sie sich ein viereckiges Taschentuch einmal gefaltet vor: an einer Ecke angelupft, bekommt die darunter liegende Ecke davon nichts mit: es gibt kein direktes Constraint, was die beiden Ecken verbinden würde.

Ganz anders, wenn Sie das einmal gefaltete Taschentuch als Soft Body definieren. Hierbei würden mittels gesondert angelegter Contraints (sog. “Streben” - engl. “Poles”) Punkte über der ganzen Objektfläche miteinander verbunden, was dem Objekt eine gewisse, formerhaltende Steifigkeit verleiht.

Diese Streben haben eine einstellbare Weichheit und können sich etwas verlängern bzw. verkürzen. Streben verbinden primär weiter auseinander liegende Objektpunkte und sind daher in der Lage, einem Objekt eine innere, formerhaltende Struktur zu verleihen.

Allgemein gilt für Streben bzgl. Festigkeit und auch Constraints allgemein, je größer Zwischenschritte bzw. Iterationen, desto strikter hält ein Constraint seine per Parameter vorgegebene Verhaltensweise ein. In der Praxis ist ein Constrain mit dort höheren Werten meist fester bzw. unnachgiebiger.

Möchten Sie einen besonders stabilen und steifen Soft Body erzeugen, so sollten Sie die Weichheit auf einen niedrigen Wert setzen, sowie viele Streben mit großer Streuung erzeugen. Darüber hinaus können auch die Zwischenschritte in den Projektvoreinstellungen erhöht werden.

Beachten Sie: ein Soft Body wird nicht nur durch seine Streben definiert. Die strukturerhaltenden Contraints auf unterster Ebene - primär zwischen benachbarten bzw. eng beieinander liegenden Punkten wirkend - Biegsamkeit und Dehnbarkeit sind auch stets aktiv!

Beispiel

Sie sehen hier in der Abbildung den Unterschied zwischen Kleidungsstück und Soft Body. Ein schlauchförmige Objekt fällt auf eine Querstange. Der Soft Body (rechts) biegt sich etwas durch, bleibt aber in seiner Gesamtform mehr oder weniger erhalten, während das Kleidungsstück (Mitte, Soft Body deaktiviert) wie ein Handtuch in sich zusammenfällt: es fehlen die versteifenden Streben.

Wo und wie diese Streben erzeugt, angezeigt oder beeinflusst werden, definieren die im Folgenden beschriebenen Parameter.

Soft Body

Sobald Sie diese Option aktivieren (oder bei Aufruf von Simulations-Tags / Soft Body) wird das zugehörige Objekt gemäß den Einstellungen unter “Erzeugen” mit Streben versehen und arbeitet fortan als Soft Body.

Zeichnen

Damit Sie ungefähr einschätzen können, wie sich Anzahl und Lage der Streben auswirken, können diese in der Ansicht als Linien zwischen Objektpunkten dargestellt werden. Allerdings können diese auch störend sein. Sie haben deshalb folgende Darstellungsmöglichkeiten (beim Rendern werden diese selbstverständlich nicht angezeigt):

Beachten Sie auch die Zeichneneinstellungen in den Projektvoreinstellungen unter Zeichnen.

Weichheit[0.00..+∞]

Map

Hiermit stellen Sie die Verformbarkeit/Flexibilität der Streben in Zug- und Druckrichtung ein. Kleine Werte lassen lassen weniger Verformungen zu als große Werte: der Soft Body verhält sich also etwas steifer bzw. elastischer.

Wenn Sie Weichheit auf Punktebene festlegen wollen, so können Sie eine Vertex-Map bei Map unterbringen. Da Streben stets an 2 Punkten befestigt sind, wird der Durchschnittswerte der beiden Punkte herangezogen (hat der eine Punkt 100% und der andere 50%, so wirken 75% des zugehörigen Wertes).

Ziellänge[0..+∞%]

Map

Bei Erzeugung einer Strebe - üblicherweise Bild 0 - gibt eine Ziellänge von 100% einfach den Punktabstand zwischen Strebenanfang und -ende an. Sie können diesen Wert jederzeit verändern bzw. animieren, womit sich der Soft Body entweder ausdehnt (Werte über 100%) oder zusammenzieht (Werte kleiner 100%). Wenn Sie diesen z.B. zwischen 90% und 110% schwanken lassen, können Sie ein Pulsieren des Soft Bodys erzeugen.

Lassen Sie den Wert nicht zu plötzlich um große Werte springen, da die Simulation dann instabil werden kann, da zu viel Energie ins System kommt.

Wenn Sie Ziellänge auf Punktebene festlegen wollen, so können Sie eine Vertex-Map bei Map unterbringen. Da Streben stets an 2 Punkten befestigt sind, wird der Durchschnittswerte der beiden Punkte herangezogen (hat der eine Punkt 100% und der andere 50%, so wirken 75% des zugehörigen Wertes).

Min. Ziellänge[0..+∞%]

Sofern Sie für Ziellänge eine Vertex-Map verwenden, kann mit Min. Ziellänge festgelegt werden, welcher Ziellängenwert dort herrscht, wo die Vertex-Map einen Wert von 0% vorgibt.

In der folgenden Abbildung sehen Sie den links oben abgebildeten Soft Body samt Streben (die Seitenwände wurden aus Anschauungsgründen entfernt), der rechts oben mit einer Vertex-Map versehen wurde:

Links unten wurde eine Ziellänge von 500% mit geladener Vertex-Map definiert. Die Vertex-Map steuert dann die Ziellänge auf Punktebene von 100% bis 500%. Stellen Sie jetzt zusätzlich Min. Ziellänge auf 50%, (rechts unten) werden Vertex-Map-Werte von 0% mit der entsprechenden Ziellänge von 50% versehen, was bedeutet: die Vertex-Map steuert dann die Ziellänge auf Punktebene von 50% bis 500%.

Zerreißen

Werden Streben über ein gewisses Maß (durch Riss nach definiert) gedehnt oder gestaucht, brechen diese und haben fortan keinen weiteren Einfluss auf den Simulationsverlauf. Für diese Funktionalität gibt es folgende Einstellungen:

Strebenriss

Schalten Sie hiermit die Strebenrissfunktionalität an und aus.

Rissrichtung

Streben können reissen, wenn sie in ihrer Längsrichtung gedehnt oder gestaucht werden. Das können Sie hier einstellen. Bei Beide reissen die Streben sowohl bei Dehnung und Stauchung, wenn der bei Riss nach definierte Grenzwert überschritten wird.

Riss nach[0..+∞%]

Map

Bei Start der Simulation haben die Streben eine individuelle Ausgangslänge. Wird diese Länge im Laufe der Simulation um den hier eingestellten Wert über- oder unterschritten (je nachdem, was Sie bei Rissrichtung definiert haben), so verlieren entsprechende Streben ihre Funktion und reißen.

Wenn Sie Riss nach auf Punktebene festlegen wollen, so können Sie eine Vertex-Map bei Map unterbringen. Ein Vertex-Wert von 100% entspricht dem bei Riss nach festgelegten Wert. Da Streben immer zwischen 2 Punkten befestigt sind, wirkt der Durchschnittswert beider Punktwichtungen.

Riss nach Minimum[0..+∞%]

Sofern Sie bei Map eine Vertex-Map untergebracht haben, definiert die Einstellung hier, welcher Wert für Riss nach 0% Wichtung entspricht.

Erzeugen

Die folgenden Einstellungen dienen dem Erzeugen von versteifenden Streben. Sie haben verschiedenste Einstellungen, um Streben automatisch zwischen Objektpunkten erzeugen zu lassen. So können Sie z.B. eine maximale Anzahl von Streben pro Punkt, oder Streben nur ab einer gewissen Länge zulassen. Zusätzlich können die meisten der folgenden Einstellungen auf Punktebene per Vertex-Maps beeinflusst werden. Die Streben werden grundsätzlich zufällig verteilt.

Allgemein gilt: je weniger Streben Sie einsetzen, desto mehr verhält sich der Soft Body wie ein normales Kleidungsstück. Je mehr Streben vorhanden sind, desto präziser und “artgerechter” verhält sich der Soft Body; allerdings steigt auch die Rechenzeit. Hier gilt es - wie so oft - zwischen Geschwindigkeit und Päzision abzuwägen.

Definieren Sie unter Zeichnen am besten Wenn selektiert oder Immer, damit Sie direkt sehen können, wie beim Ändern der Einstellungen die Streben platziert werden.

Beachten Sie, dass die Änderungen an folgenden Einstellungen bei laufender Simulation nicht berücksichtigt werden können. Erst bei Simulationsneustart werden Änderungen ausgewertet.

Aktualisieren

Wenn Sie nach bereits erfolgtem Erzeugen der Streben etwas am Mesh oder evtl. geladenen Vertex-Maps ändern, sollten die Streben unter Berücksichtigung der geänderten Gegebenheiten neu erzeugt werden. Klicken Sie dann auf diesen Button.

Max. Streben pro Punkt[1..100]

Map

Mit diesem Wert geben Sie vor, wie viele Streben ein Objektpunkt maximal haben darf. Diese Begrenzung ist nötig, da sich ansonsten evtl. jeder Objektpunkt mit jedem anderen per Strebe verbinden könnte und deren Anzahl explodieren würde - mit entsprechenden Folgen für die Rechengeschwindigkeit.

Wie der Parametername schon vermuten lässt, wird hier keine abolute Anzahl vorgegeben, sondern ein oberes Limit, das unter Berücksichtigung der anderen Einstellungen nicht überschritten werden soll.

Die allgemeine Strebenanzahl kann auch per Dichte beeinflusst werden.

Minimale Länge[-∞..+∞m]

Map

Maximale Länge[-∞..+∞m]

Map

Möchten Sie die Strebenverteilung bzgl. ihrer Länge begrenzen, so können Sie hier minimale und maximale Längen vorgeben. Unterschreiten bzw. überschreiten potentielle Streben diese Vorgaben, so werden diese ausgefiltert. Für gut funktionierende Soft Bodys ist es meist sinnvoll, eine gleichmäßige Verteilung der Streben sowohl im Nah- als auch im Fernbereich einzustellen, was die Voreinstellungen auch gut vorgeben, indem Sie bzgl. der Länge kaum Limitierungen vornehmen. Für Spezialfälle kann es sinnvoll sein, nur möglichst lange oder nur möglichst kurze Streben zu definieren. Für ersteres erhöhen Sie Minimale Länge, für letzteres verringern Sie Maximale Länge.

Machen Sie sich dabei bewusst, was die Strebenlänge in der Praxis bedeutet:

Wenn Sie Minimale Länge und Maximale Länge auf Punktebene festlegen wollen, so können Sie jeweils eine Vertex-Map bei der entsprechenden Map unterbringen. Ein Vertex-Wert von 100% entspricht dem bei Minimale Länge festgelegten Wert.

Streuung[0..180°]

Map

Von links nach rechts steigende Werte für Streuung.

Mit der Streuung beschränken Sie die Streben um einen Winkel um die Punktnormale. Definieren Sie hier also z.B. 0% (Abbildung oben linke Seite) darf eine Strebe nur in Richtung der Punktnormalen zeigen. Es werden also praktisch Streben nur zwischen gegenüberliegenden Punkten erzeugt. Je höher Streuung gestellt wird, desto weiter dürfen die Streben von der Punktnormalen abweichen. Beim Maximalwert von 180° (Abbildung oben rechte Seite) können Streben innerhalb einer Halbkugel um den Punkt erzeugt werden.

Hinweis: Beachten Sie, dass die Streuung nur von der Schussseite aus gerechnet wird (s.a. Schussseite), d.h. das ein Punkt auf der Trefferseite, der von mehreren anderen Streben aus verschiedenen Richtungen angelaufen wird, sich dort nicht um dieses Limit kümmert.

Wenn Sie Streuung auf Punktebene festlegen wollen, so können Sie eine Vertex-Map bei Map unterbringen. Ein Vertex-Wert von 100% entspricht dem bei Streuung festgelegten Wert.

Dichte[0..100%]

Map

Dichte ist ein allgemeiner Parameter, um die Strebenanzahl zufällig zu dezimieren. Haben Sie z.B. große Werte für Max. Streben pro Punkt und Streuung, ergeben sich Unmengen von Streben, die die Rechenzeit mitunter unnötig erhöhen, wenn die halbe Strebenanzahl (Dichte 50%) z.B. ein fast identisches Verhalten erzielt.

Wenn Sie den Wert von 100% absenken, werden die Streben gleichmäßig dezimiert, d.h. in Bereichen großer Dichte werden auch bei der Dezimierung mehr Streben übrig bleiben, als in Bereichen kleinerer Dichte.

Wenn Sie Dichte auf Punktebene festlegen wollen, so können Sie eine Vertex-Map bei Map unterbringen. Ein Vertex-Wert von 100% entspricht dem bei Dichte festgelegten Wert.

Schussseite

Trefferseite

Um Streben zu erzeugen, werden von den Punkten einer zu definierenden Objektseite Strahlen entlang der Punktnormalen geschossen und geprüft, auf welcher Seite desselben Objekts der Strahl trifft, um zu dortigen Punkten möglicherweise eine Strebe einzuziehen.

Mit Vorderseite ist die Seite der Polygonnormalen - also die Außenseite - gemeint, während sich die Rückseite im Objektinneren befindet.

Die voreingestellte Kombination Rückseite/Rückseite erzeugt Streben ausschließlich im Inneren eines Objekts.

Vorderseite/Vorderseite hätte bei einer Kugel z.B. keine Funktion, da von der Vorderseite abgeschossene Strahlen niemals eine andere Kugelseite treffen könnten. Dazu bräuchten Sie Einstülpungen oder verschlungene Objektformen wie in der Abbildung oben rechts.

Beide/Beide schiesst Strahlen von der Vorder- und der Rückseite auf andere Vorder- und Rückseiten (Abbildung unten links).

Füe spezielle Objektformen können auch Kombinationen wie Vorderseite/Rückseite verwendet werden. Meist reicht aber eine gleichnamige Kombination aus.

Streben werden auf der Trefferseite nur beim ersten Treffer erzeugt. Sollte der Strahl im weiteren Verlauf auf eine weitere gültige Seite treffen (z.B. könnte bei einem Ring bei Rückseite/Rückseite der Strahl zuerst auf die gegenüberliegende Innenseite treffen und im weiteren Verlauf eine weitere Innenseite des “Schlauchs” gegenüber finden), so wird diese ignoriert.

Startwert[0..2147483647]

Da Streben unter Berücksichtigung der Parameter zufällig erzeugt werden, können Sie mit Startwert in die Zufälligkeitsverteilung eingreifen (s.a. Startwerte).

Richtung

Links ein Würfelfeld (produziert annähernd rechtwinklig zueinander stehende Streben), rechts ein Lineares Feld in Richtung.

Manchmal kann es gewünscht sein, die Streben nur in bestimmte Richtungen verlaufen zu lassen. Hierzu bietet sich diese Felderliste an. Achten Sie zunächst darauf, Streuung auf einen kleinen Wert zu setzen.

Ziehen Sie hier z.B. ein Linearfeld hinein, um eine bervorzugte Strebenrichtung zu definieren.

Außerhalb von Feldern werden übrigens keine Strahlen zur Strebenerzeugung abgeschossen.

Hinweis:Um Feldrichtungen sichtbar zu machen, bringen Sie ein Feld in einem Kraftfeld unter.