Ich möchte eine realistische Pizza erstellen und dem Benutzer die Interaktion damit ermöglichen.
Was ich will:
Was ich geschaffen habe:
Ich habe ein Modell der Pizza (8 Stück) in Blender erstellt und dann in Unity importiert. Das Stück Pizza sieht sehr künstlich aus, hauptsächlich weil es ein "starres Dreieck" ist.
Wie kann ich den Käse dehnen und brechen lassen, wenn der Benutzer ein Stück bewegt?
Antworten:
Der einfache Weg
Fügen Sie ein Quad hinzu, das benachbarte Scheiben miteinander verbindet. Texturieren Sie dies mit einer schönen, geschmolzenen Käsetextur mit Löchern. Wenn die Scheibe wegbewegt wird, wird das Quad natürlich gedehnt und somit die Textur gedehnt und verzerrt.
Dies sollte vernünftig aussehen, obwohl es keine Pause geben wird. Was hier zu tun ist, ist, diese Textur zu einer animierten zu machen. Durchlaufen Sie die Animation anhand des Quad-Bereichs (oder nur des Abstands zwischen den Segmenten) anstelle der Zeit. Wenn es weiter weggezogen wird, erscheinen aufgrund der fortschreitenden Animation weitere Löcher.
Wenn eine Distanzschwelle erreicht ist, teilen Sie das Quad in zwei Teile, verkleinern Sie die beiden Quads programmgesteuert in Richtung der angehängten Slices, um sie ein wenig zu verkleinern, und lassen Sie die Animation laufen, in der das Einrasten zu sehen ist. Friere die Animation am Ende ein.
Für etwas mehr Dynamik können Sie das Quad mithilfe eines Gelenks in einer Physik-Engine an die beiden Slices anhängen.
Der harte Weg
Verwenden Sie eine Soft-Body-Physik-Engine oder schreiben Sie eine. Definieren Sie einen Stoffabschnitt zwischen den Scheiben und texturieren Sie ihn mit Käse. Ermöglichen Sie der Physik-Engine, die Dynamik des Dehnens und Schnappens des Materials zu modellieren.
Dies ist eine weitaus intensivere, aber allgemeinere Methode. Es kann auch sehr unkontrollierbar sein, könnte aber insgesamt eine überzeugendere Wirkung haben.
quelle
Verwenden einer voreingestellten Animation:
Erstellen Sie also voreingestellte Animationen in einer 3D-Modellierungssoftware wie Maya / Blender mit Funktionen wie weichen Körpern und Stoff, die das Zerreißen von Pizza simulieren können. Exportieren Sie sowohl die Pizzatextur als auch die Modellanimation nach Unity (wahrscheinlich als eine Reihe von OBJ-Modellen oder dergleichen).
Die Modellanimation stellt den Käse dar, der unter Verwendung vieler Dreiecke gedehnt und zerrissen wird. Diese Dreiecke können Sie in Unity als Satz von Dreifachnetzen laden. Sie sind eine Sammlung vieler Maschenzustände, die jeweils die Käsepizza an verschiedenen Streckpositionen darstellen. Anhand der Position, an der der Benutzer das Pizzastück positioniert, springen Sie in diesen 'Netzstatus' und zeigen diese Dreiecke an.
Es gibt natürlich ein paar Probleme. Die Benutzerinteraktion ist etwas eingeschränkt. Wenn der Käse bereits ein bisschen zerrissen ist, können Sie für diesen Bereich des Käses nicht in den Zustand "ungerissen" zurückkehren. Wenn die voreingestellte Animation die Segmente 1 und 2 entfernt, muss der Benutzer die Segmente in dieser Reihenfolge entfernen. Die Größe der exportierten Daten kann sehr groß werden. Dies hängt davon ab, wie detailliert das Netz ist und wie lange die zerreißende Animation dauert.
Es kann aber sehr realistisch aussehen, wenn der Modellkünstler beim Erstellen der voreingestellten Animation gute Arbeit leistet. Und Sie müssen keinen Weichkörpersimulator implementieren.
Verwenden von Unity:
Für den Fall, dass Sie interessiert sind, implementiert Unity seine eigenen Komponenten für Skinned Cloth und Interactive Cloth . Das interaktive Tuch unterstützt das Aufreißen. Aber die Unterstützung für sie ist auf wenige Plattformen beschränkt, das habe ich zuletzt überprüft.
Mit Ihnen:
Am Ende können Sie immer Ihren eigenen Weichkörpersimulator implementieren. Hier ist ein Forschungsbeispiel, das sehr beliebt ist. Es macht viel Spaß :). Viel Glück.
quelle
@ originalDaemons Antworten sind gut! Ich denke, es gibt einen Mittelweg, der möglicherweise bessere Ergebnisse erzielt als der erste Ansatz und einen angemessenen Aufwand erfordert (möglicherweise im Gegensatz zum Ansatz "Der harte Weg").
Was ich vorschlage, ist, das Käse "Netz" zu modellieren, es sieht für mich sehr nach Stalaktiten aus. Modellieren Sie einige Stücke dehnbaren Käses. Positionieren Sie sie zufällig an den Rändern des Dreiecks der Köstlichkeit und skalieren Sie sie auf 0,
y-axis
und skalieren Sie sie auf der y-Achse langsam auf die erforderliche Größe zurück, wenn das Dreieck von seinen Kompatern entfernt wurde.Möglicherweise müssen Sie eine andere Achse auswählen, anstatt
y
das Dreieck leicht wegzuziehen. In jedem Fall denke ich, dass, obwohl eine flache Textur viel einfacher und kostengünstiger wäre, das Modellieren des Käses für Nahaufnahmen realistischer ausfallen könnte, obwohl eine Textur auch funktionieren könnte. Wenn Sie eine Textur auswählen, verwenden Sie möglicherweise mehr als eine Ebene, um ein realistischeres Gefühl zu erzielen. Vergessen Sie auch nicht, ein wenig Dampf hinzuzufügen, um die Schärfe der Pizza im Schuss zu betonen.Eine andere Sache, die mir aufgefallen ist, ist, dass es den Anschein hat, dass die Peperoni im Moment nur eine Textur sind. Ich würde definitiv erwägen, es zu modellieren oder dem vorhandenen Modell einige Details in diesem Bereich hinzuzufügen. Sie könnten es mit dem dehnbaren Käse für zusätzlichen Realismus runterrutschen lassen.
quelle