In dieser Anleitung erfahren Sie, wie Sie eine Chaos-Flesh-Simulation mit einem bereitgestellten Seestern-Asset einrichten können.
Dateieinrichtung
Beispieldatei-Referenz
Nachfolgend erfahren Sie, wo Sie die Beispieldateien herunterladen können und wo Sie sie in Ihrem Projekt platzieren können.
Erstellen Sie leeres Projekt aus dem Launcher
Um die gelieferte Datei zu verwenden, müssen Sie ein leeres UE-Projekt aus dem Launcher erstellen.
Editor-Version
Vergewissern Sie sich, dass Sie Version 5.5.0-37670630+++UE5+Release-5.5 oder später verwenden.
Datei-Download
Fleshtutorials-ExampleContent.7z herunterladen.
Die Datei enthält auch einen .fbx-Ordner, der für den Abschnitt Rig-gebundene Raycasts in dieser Anleitung verwendet wird.
Ordner „ExampleContent“
Extrahieren Sie die Zip-Datei Fleshtutorials-ExampleContent.7z. Verschieben Sie dann den extrahierten Ordner ExampleContent manuell in Ihr Content-Verzeichnis.
Wenn Sie bereits einen Ordner ExampleContent haben, der möglicherweise einem früheren Stoff-Beispiel folgt, ziehen Sie einfach den Ordner 5_5_ChaosFlesh aus der Zip-Datei in diesen Ordner ExampleContent.
Plugins laden
Sie müssen zuerst das Chaos Flesh-Plugin aktivieren.
Laden Sie dann die Plugins ML Deformer Framework und ML Deformer Neural Morph Model**.
Seestern-Start
Schnelleinrichtung
Das Flesh-System implementiert eine volumetrisch-elastische Simulation unter Verwendung eines tetraedrischen Stützstruktur. Die Tetraeder werden vom Solver ausgewertet und stellen Stützkräfte bereit, die versuchen, das Volumen zu erhalten und zu verhindern, dass die Oberfläche des Charakters unter seinem eigenen Gewicht zusammenbricht. Dieses Beispiel beschreibt, wie Sie aus einem geschlossenen Statisches Mesh (einem einfachen Würfel) eine tetraedrische Geometrie erstellen und das Asset dann innerhalb von Unreal Engine simulieren.
Seestern importieren
Die Flesh-Simulation erfordert tetraedrische Meshs, die aus der Oberflächengeometrie erstellt wurden. Dieses Beispiel beschreibt, wie man Geometrien aus FBX-Dateien importiert und mithilfe von Datenfluss-Knoten ein tetraedrisches Mesh des Seesterns erstellt.
Einschränkungen
Importieren von Flesh-Assets und einfacher Kinematik
Kinematische Einschränkungen erlauben es den Künstlern, Scheitelpunkte durch Animation zu steuern. Die Kinematik wird über die Scheitelpunkte des Tetraeders definiert. Wenn ein Scheitelpunkt als kinematisch definiert ist, wird die Masseeigenschaft für diesen Scheitelpunkt auf unendliche Masse festgelegt, und er wird nicht simuliert. Kinematische Scheitelpunkte können als Grenzbedingungen für die Dynamik verwendet werden, wobei die mit ihnen verbundenen freien Scheitelpunkte durch die Bewegung der Kinematik gesteuert werden. Dieses Beispiel beschreibt, wie Partikel gemalt und kinematisch eingeschränkt werden, damit sie im Raum relativ zur Komponentenposition bleiben.
Scheitelpunkt-Attributtransfer
Das tetraedrische Mesh ist anfällig für Änderungen und der Malfortschritt auf dem Tetraeder-Mesh wird nach jeder Topologieänderung ungültig. Dieses Beispiel zeigt, wie auf dem Skelett-Mesh gemalt und Scheitelpunktattribute (gemaltes Attribut und Farbe) auf das Tetraeder-Mesh übertragen werden.
Kinematische Skelett-Einschränkung
Skelett-Transformationen können auch verwendet werden, um Kinematiken zu definieren. Ein typischer Anwendungsfall ist das Ankoppeln einer Flesh-Komponente an einem Skelett. Wenn sich die Flesh-Komponente am selben lokalen Raum wie das Skelett befindet, unterliegen die Scheitelpunkte in den Tetraedern, die sich mit dem Skelett schneiden (Parent-Child-Liniensegmente), kinematischen Einschränkungen. Dieses Beispiel zeigt, wie kinematische Scheitelpunkte auf dem Seestern-Asset automatisch basierend auf seinem co-lokalisierten Skelett definiert werden.
Animierte kinematische Einschränkung
Wenn die kinematischen Scheitelpunkte auf ein animiertes Skelett beschränkt sind, wird die tetraedrische Geometrie auf die Bewegung des Skeletts beschränkt. Dieses Beispiel zeigt den Aufbau zum Steuern eines Flesh-Mesh aus einer animierten Transformationshierarchie.
Schwache Einschränkungen
Positionsziele oder schwache Einschränkungen sind eine weitere Möglichkeit, die Geometrie auf eine Zielposition zu beschränken. Die Differenzierung zwischen schwacher Einschränkung und kinematischer Einschränkung besteht darin, dass eine schwache Einschränkung eine Steifheit hat, die ein leichtes Abgleiten vom tatsächlichen Kameraziel erlauben. Durch die Einführung schwacher Einschränkungen in eine übermäßig eingeschränkte Umgebung kann die Simulation einen vernünftigen Zustand finden, der reibungslos und optisch akzeptabel bleibt. Dieses Beispiel zeigt, wie man die Bindung des Flesh-Assets an das kinematische Gelenk-Kameraziel mit schwacher Einschränkung erreicht.
Kollisionen
Weltkollision
Der tetraedrische Solver wird unabhängig vom primären Welt-Solver ausgeführt. Ähnlich wie beim Chaos-Stoff-Solver müssen während der Simulation alle Kollisionen mit der Tetraedergeometrie hinzugefügt werden. Diese Demo veranschaulicht, wie zu Beginn der Simulation mithilfe eines Kollisions-Managers, der an den Flesh-Solver angekoppelt ist, Kollisionskörper hinzugefügt werden.
Streaming von Kollisionen
Kollisionen mit der Welt-Geometrie werden derzeit über ein Streaming-System implementiert. Der tetraedrische Solver kann auf eine begrenzte Anzahl von Kollisionstypen reagieren, die basierend auf der Nähe zur Tetraedersimulation geladen und freigegeben werden sollten. Kollisionen mit dem tetraedrischen Solver werden als scheitelpunktbasierte Kollisionen mit dem Festkörpervolumen implementiert. Mit zunehmender Auflösung des Tetraeders steigt also auch der Rechenaufwand der Kollisionsreaktion.
Derzeit unterstützt der Solver konvexe und einige analytische Typen (Kugel, Würfel, Ebene) und die Kollision erfolgt nur einseitig, vom Festkörper zum Tetraeder. Dies bedeutet, dass das Tetraeder den Zustand des Festkörpers nicht beeinflusst und dass es sich bei dem Festkörper tatsächlich um eine kinematische Interaktion mit unendlicher Masse handelt. Normalerweise werden Position und Geschwindigkeit des Festkörpers mit dem primären Festkörper-Solver berechnet und das Flesh reagiert nur auf die Bewegung der Festkörper.
Blueprint-Asset und Mesh-Deformer
Flesh-Assets können eingebettete Skelett-Meshs verformen. Verwenden Sie den Knoten „GenerateSurfaceBindings“ im Datenflussdiagramm des Flesh-Assets, um Korrespondenzdaten zwischen den Renderoberflächen eines Skelett-Mesh und einem Tetraeder-Mesh zu erstellen. Verwenden Sie dann den „DG_FleshDeformer“ auf dem Skelett-Mesh, um die Deformation des Tetraeder-Mesh auf das Skelett-Mesh anzuwenden.
Wenn der Deformer nicht zu funktionieren scheint, überprüfen Sie das Log auf weitere Informationen. Ein potenzielles Problem entsteht, wenn der Actor über mehrere Flesh-Komponenten verfügt und dem Deformer mitgeteilt werden muss, welches Skelett-Mesh durch welches Flesh-Asset deformiert werden soll. Die Vereindeutigung wird durch das Festlegen der optionalen TransformSelection oder GeometryGroupGuids im Knoten GenerateSurfaceBindings erreicht. Außerdem muss überprüft werden, ob das Flesh-Asset (Restsammlung) mithilfe von GenerateSurfaceBindings Bindungen an das richtige Skelett-Mesh aufweist. Wenn sich die Topologie der Renderoberfläche oder des Tetraeder-Mesh ändert, müssen die Bindungen natürlich neu generiert werden. Renderpunkte, die keine Bindung haben, werden geskinnt. Wenn der Deformer Punkte zurücklässt, haben diese entweder keine Bindung oder sie wurden maskiert (was derzeit nur gemacht wird, wenn keine Bindung besteht, aber in Zukunft wird es Datenflussknoten zum Maskieren geben).
Pro-Partikel-Attribut
Viele der vom tetraedrischen Solver verwendeten Simulationseigenschaften haben eine Pro-Partikel-Basis. Zum Beispiel kann die Masse über das Mesh variiert werden und wird auf dem Scheitelpunkt des simulierten Tetraeders gespeichert. Dies kann ein tetraedrisches Mesh mit variierender Uniformität erlauben, um eine gleichmäßige Verteilung der Masse über das Volumen des Mesh zu haben. Die Masse ist nur ein Beispiel für eine Pro-Partikeleigenschaft und veranschaulicht, wie jede auf dem Partikel gespeicherte Eigenschaft im Setup des Assets konfiguriert werden kann. Diese Demo veranschaulicht die Verwendung von Feldern zum Festlegen von Eigenschaften pro Partikel auf dem Tetraeder.
Spawnen und Zerstören in Blueprint
Das Flesh-Asset kann auch während Blueprint-Operationen gespawnt werden. Der Blueprint-Actor wird auf eine Art und Weise arbeiten wie der Skelett-Mesh-Actor, wo Sie eine Mesh-Komponente erstellen und sie einem Mesh-Asset zuordnen. Der Spawn- und Destroy-Actor-Blueprint-Knoten können dann verwendet werden, um Blueprint-Actors dynamisch zur Simulation hinzuzufügen und zu entfernen.
Ergebnisse der Sampling-Simulation
Während die Renderansicht für die Flesh-Komponente das Ergebnis der gesamten Tetraedersimulation zeigt, kann es manchmal nützlich sein, nur eine Teilmenge der Deformationen aus der Simulation abzutasten. Beispielsweise wurde das WPO-Rendering (Welt-Positionsversatz) des Nanite-Mesh in der Electric Dreams-Demo implementiert, indem Positionen in der Nähe der Reifenoberfläche abgetastet und diese in eine Textur abgebildet wurden, die die Reifengeometrie auf der GPU verschoben hat. Diese Demo veranschaulicht, wie ein Sample-Satz aus den Deformationsergebnissen interpoliert wird, auf den während des Gameplay zugegriffen werden kann.
Zwischenspeicherung
Datenfluss-Zwischenspeicherung und ML Deformer
Mesh-Simulationen können teuer sein. Während ein Asset mit niedriger Auflösung in einem Spiel ausgeführt werden kann, kann die Tetraedersimulation nicht in Echtzeit ausgeführt werden, um Ergebnisse mit hochauflösender Geometrie zu erzielen. Das Zwischenspeicherungssystem erlaubt es dem Künstler, die Ergebnisse einer Simulation aufzuzeichnen und sie im Datenfluss-Diagramm wiederzugeben. Aus dem Cache können wir auch einen Geometrie-Cache als Trainingsdaten im ML Deformer generieren. Dieses Beispiel veranschaulicht, wie die Ergebnisse der Simulation zwischengespeichert werden, ein Geometrie-Cache erzeugt und ein ML Deformer trainiert wird.
Zwischenspeicherung im Editor
Wir können auch im Editor zwischenspeichern und die Wiedergabe in einer Level-Sequenz anzeigen. In diesem Beispiel wird beschrieben, wie ein simuliertes Flesh-Asset (oder ein Blueprint) zwischengespeichert und die Simulationsergebnisse im Detail untersucht werden.
Simulationseigenschaften
Simulationseigenschaften sind an verschiedenen Stellen im gesamten Chaos-Flesh-System festgelegt. Der tetraedrische Solver verfügt über Eigenschaften, die sich auf das gesamte Simulationssystem auswirken. Beispielsweise können Nutzer Zeitschritt- und Threading-Eigenschaften sowie Kollisionskontrollen konfigurieren. Während die Eigenschaften auf dem Flesh-Actor die spezifische Konfiguration einer einzelnen Instanz eines Assets erlauben, konfigurieren die Datenfluss-basierte Eigenschaften das Asset selbst. Diese Demo geht auf einige der wichtigsten Eigenschaften der Simulation ein und gibt Ihnen einen Überblick, wo Sie bestimmte Arten von Steuerelementen erwarten können.
Rig-gebundene Raycasts
Um diesem Abschnitt der Anleitung zu folgen, sehen Sie sich die bereitgestellte .fbx-Datei im Datei-Download an.
Rig-gebundene Raycasts erlauben bestimmten Typ von Objekten, mit statischer Geometrie in der Umgebung zu interagieren. Der Raycast-Ansatz ist kein allgemeiner Umgebungskollisions-Ansatz, aber unter bestimmten Voraussetzungen kann ein verformbarer Körper auf die Szenengeometrie reagieren. Zum Beispiel wurde diese Einrichtung in der Electric Dreams-Demo verwendet, um den Reifen zu erlauben, auf Szene-Geometrie zu reagieren.
Es gibt einige Anforderungen, die erfüllt sein müssen, damit dieser Ansatz verwendbar ist. Die Raycast-Scheitelpunkte müssen konvex um eine Transformationsposition im Modell sein, die Tetraederkomponente muss in einer Skelett-Mesh-Blueprint enthalten sein und das Asset muss kinematisch auf ein Skelett beschränkt sein. Aufgrund der Art und Weise, wie die Kollisionsreaktion implementiert wird, muss der Raycast-Ursprung von einem inneren Punkt des Modells ausgehen, und die Kollisionsreaktion verschiebt den Scheitelpunkt entgegen der Richtung des Raycasts in Richtung des inneren Ursprungs.
Erweiterter Workflow
Unter Chaos-Flesh für Muskelsimulation erfahren Sie, wie Sie mit Chaos-Flesh eine Muskel- und Fettsimulation einrichten.