Morph-Ziele bieten eine Möglichkeit, ein Mesh von seiner Basis in Richtung einer Zielform zu verformen.
Im Allgemeinen werden diese mit Skelett-Meshs als Teil des Animationssystems verwendet. Mit
dem StaticMeshMorpher.ms
-maxscript und der
Materialfunktion StaticMeshMorphTarget
können Statisches Meshs auch für die Deformation durch Morph-Ziele eingerichtet werden.
Diese Methode führt die Deformation mithilfe von mehreren UV-Kanälen, Scheitelpunkt-Farben und dem WorldPositionOffset durch. Die Versätze der Scheitelpunkte für jedes Morph-Ziel werden als Scheitelpunkt-Farben in einem UV-Kanal gespeichert. Die Materialfunktion „StaticMeshMorphTarget“ extrahiert diese dann und macht sie im Material verfügbar. Indem sie an den WorldPositionOffset-Input des Materials weitergeleitet werden, können die Scheitelpunkte des Mesh in die Positionen der Scheitelpunkte im Morph-Ziel transformiert werden.
Script-Einrichtung and Installation
Das maxscript StaticMeshMorpher.ms
finden Sie in Ihrem Build unter UE4/Engine/Extras/FX_tools/3DSMax2012_x64/
.
So führen Sie das maxscript StaticMeshMorpher.ms
aus:
-
Wählen Sie in 3dsMax im Menü MAXScript den Eintrag Skript ausführen aus.
-
Navigieren Sie zu dem Speicherort des maxscript
StaticMeshMorpher.ms
in Ihrem Build und öffnen Sie es. -
Das Interface des Script wird angezeigt und kann verwendet werden.
Das Script kann auch an eine Tastenkombination gebunden oder zu einem benutzerdefinierten Menü hinzugefügt werden, um es schneller und einfacher auszuführen.
Erstellen von Morph-Zielen
Morph-Ziele erfordern mehrere Instanzen desselben Mesh, deren Scheitelpunkte transformiert sind. Beispielsweise könnte eine schmelzende Eiskugel drei Formen haben:
![]() |
![]() |
![]() |
---|---|---|
Spielmodell | Morph-Ziel 1 | Morph-Ziel 2 |
Die Morph-Ziele werden in die UV-Kanäle 2 und 3 gepackt (angenommen, es werden zwei Morph-Ziele gepackt), und die Normalen für Morph-Ziel 1 können auch in den Scheitelpunkt-Farben des Mesh gespeichert werden, wenn Sie das wünschen.
So packen Sie Morph-Ziele:
-
Klicken Sie auf die Schaltfläche
und wählen Sie dann das Spiel-Modell-Mesh in der Szene aus.
-
Klicken Sie auf die Schaltfläche
und wählen Sie dann das Mesh für das erste Morph-Ziel in der Szene aus.
-
Wiederholen Sie den obigen Prozess für das zweite Morph-Ziel in der Szene, sofern vorhanden.
-
Markieren Sie das Kontrollkästchen Store Morph 1 Normals, wenn Sie das wünschen.
-
Klicken Sie auf die Schaltfläche
, um den Prozess des Paketierens der Morph-Ziele in die UV-Kanäle zu starten.
-
Das Mesh kann normal aus 3dsMax exportiert und in Unreal importiert werden. Weitere Informationen zu diesem Prozess finden Sie unter FBX-Statisches-Mesh-Pipeline.
Materialeinrichtung
Die Funktion StaticMeshMorphTargets ermöglicht den Zugriff auf die Morph-Ziele und Normalen innerhalb des Materials, das auf das StaticMesh angewendet wurde. Diese Funktion hat zwei Outputs, die den zwei Morph-Zielen entsprechen, und einen Output für die Normalen. Die Morph-Ziel-Outputs liefern Werte, die mit dem WorldPositionOffset-Input-Kanal des Material-Knotens verbunden werden können, während der normale Output, wie Sie vielleicht erwarten, mit dem Normal- Input des Material-Knotens verbunden werden kann.
Um ein Morphing zwischen dem Basis-Mesh und den Morph-Zielen zu erlauben, werden ein oder mehrere LinearInterpolate-Ausdrücke mit einem einzelnen ScalarParameter verwendet, der den Alpha-Input steuert. Dadurch können die Morph-Ziele zur Laufzeit durch Gameplay-Code oder Matinee gesteuert werden.
Hier wird eine Beispieleinrichtung (nur das Morph-Netzwerk) gezeigt:

Das Ergebnis, wenn der Parameter Time im obigen Netzwerk von 0 auf 1 geht, wird unten angezeigt:
