Ein wichtiger Aspekt des Gruppenverhaltens ist die Fähigkeit, Hindernissen auszuweichen. Hindernisse sind jegliche Objekte, die die Bewegung eines Gruppenmitglieds behindern, beispielsweise Wände, Telefonmasten, Zäune oder auch andere Gruppenmitglieder. Wenn ein Gruppenmitglied auf ein solches Objekt trifft, kann das Ausweichverhalten ausgelöst werden. Dieses Verhalten besteht aus einer beliebigen Kombination der folgenden Aktivitäten: Abbremsen, Drehen und Stoppen.
Character Studio bietet mehrere Möglichkeiten, das Ausweichverhalten zu implementieren:
- Das Ausweichverhalten ist eine der am häufigsten verwendeten Verhaltensweisen. Mit diesem Verhalten können Sie dafür sorgen, dass Crowd-Mitglieder nicht mit anderen Crowd-Mitgliedern oder kugelförmigen Objekten in der Szene zusammenstoßen. Dazu wird ein kugelförmiges Ausweichvolumen um das zu umgehende Objekt erstellt; es kann also keine unregelmäßig geformten Objekte aufnehmen.
Das Ausweichverhalten unterscheidet sich von den anderen Verhaltensweisen in Crowd. Im Gegensatz zu den anderen Verhaltensweisen, bei denen die Bewegung durch die auf die Vertreter einwirkenden Kräfte beeinflusst wird, übernimmt das Ausweichverhalten die Steuerung der Bewegung. Dieses Verhalten ist sogar in der Lage, den Vertreter einen Richtungswechsel vollführen, die Geschwindigkeit reduzieren und sogar anhalten zu lassen, um einem Hindernis auszuweichen.
- Das Wandabstoß-Verhalten bewirkt, dass Gruppenmitglieder breiten, flachen Objekten ausweichen, wie beispielsweise Wänden und Zäunen. Sie können eine maximale Entfernung für die Abstoßung einstellen und angeben, wie stark die Abstoßkraft mit zunehmender Annäherung des Vertreters an die Wand zunimmt.
Im Gegensatz zum Ausweichverhalten, das einen Vertreter zum Anhalten oder Verlangsamen der Bewegung veranlassen kann, wirkt beim Wandabstoß-Verhalten eine Kraft auf den Vertreter ein, die den Vertreter lediglich von der Wand abstößt. Dieses Verhalten gewährleistet nicht, dass der Vertreter der Wand ausweicht. Die Kraft des Abstoßens steuern Sie über die Parameter für Entfernung und Falloff sowie über die Gewichtung im Dialogfeld für Verhaltenszuordnungen und Teams.
- Verwenden Sie das Abstoßverhalten, um zu erreichen, dass sich Gruppenmitglieder von einem Objekt abwenden. Es ähnelt dem Wandabstoß-Verhalten, mit dem Unterschied, dass an Stelle einer ebenen Fläche ein kugelförmiges Volumen verwendet wird. Sie können eine maximale Entfernung für die Abstoßung einstellen und angeben, wie stark die Abstoßkraft mit zunehmender Annäherung des Vertreters an das Hindernis zunimmt.
Beim Abstoßen wirkt eine Kraft auf den Vertreter ein, damit dieser sich von einem Hindernis abwendet. Dieses Verhalten gewährleistet nicht, dass der Vertreter dem Hindernis ausweicht. Die Kraft der Abstoßung steuern Sie über die Parameter für Entfernung und Falloff sowie über die Gewichtung im Dialogfeld Verhaltenszuordnungen und Teams. Für Figuren, die sich schwimmend oder fliegend fortbewegen, können Sie an Stelle des Ausweichverhaltens das Abstoßverhalten als einfache Ausweichmethode verwenden.
- Verwenden Sie ein Vektorfeld. Dabei handelt es sich um eine besondere Art von Space Warp, das Gruppenmitgliedern dabei hilft, unregelmäßigen Objekten, wie gekrümmten oder konkaven Oberflächen, auszuweichen. Sie können den Space Warp "Vektorfeld" gemeinsam mit dem Ausweichverhalten einsetzen, damit Vertreter beim Näherkommen an ein komplexes Objekt langsamer werden und dem Objekt ausweichen. Dies gewährleistet, dass der Vertreter nicht die Oberfläche des Hindernisses durchquert.
Sie können den Space Warp "Vektorfeld" auch gemeinsam mit dem Space Warp-Verhalten einsetzen. Dabei wirkt auf den Vertreter eine Kraft ein, die die Umrisse des Objekts simuliert. Dies gewährleistet nicht, dass der Vertreter die Oberfläche des Hindernisses nicht durchquert. Sie können ein Vektorfeld sowohl gemeinsam mit einem Space Warp-Verhalten als auch mit einem Ausweichverhalten verwenden, um die Effekte miteinander zu kombinieren.
Prozeduren
So verwenden Sie das Ausweichverhalten:
- Fügen Sie dem Crowd-Objekt ein Ausweichverhalten hinzu.
- Wählen Sie im Rollout "Ausweichverhalten" die Schaltfläche "Keine" oder die Schaltfläche (Mehrere auswählen), um das oder die Zielobjekte anzugeben, denen ausgewichen werden soll.
Tipp: Wenn sich alle Mitglieder in einem Vertreterteam aus dem Weg gehen sollen, wählen Sie alle Vertreter im Team aus. Das Crowd-System sorgt dann dafür, dass jeder Vertreter allen Vertretern außer sich selbst ausweicht.
- Wenn der radiale Ausweichbereich in den Ansichtsfenstern angezeigt werden soll, aktivieren Sie die Option "Engen Radius anzeigen". Passen Sie die "Enger Radius"-Einstellungen für Ihre Vertreter an.
- Passen Sie den "Bremsdruck"-Wert an, um festzulegen, ob der Vertreter langsamer werden soll, wenn er ein Objekt bemerkt, dem er ausweichen soll.
- Ändern Sie den Wert des Parameters "Voraussicht", um anzugeben, wie viele Frames der Vertreter voraussehen soll, um den besten Weg zur Vermeidung von Zusammenstößen mit anderen zu finden.
- Weisen Sie im Dialogfeld Verhaltenszuordnungen das Verhalten einem Vertreter oder einem Team zu.
So verwenden Sie das Wandabstoß-Verhalten:
- Klicken Sie in der Erstellungsgruppe auf (Helfer) und anschließend auf "Raster". Erstellen Sie ein Raster in der Szene.
Tipp: Raster sollten nicht mit dem Befehl "Spiegeln" kopiert werden, wenn sie mit Verhaltensweisen zusammen verwendet werden sollen. Verwenden Sie stattdessen Klonen bei gedrückter Umschalttaste.
- Verschieben und drehen Sie das Raster so lange, bis es sich an der gewünschten Position befindet.
Tipp: Das Wandabstoß-Verhalten stößt die Vertreter in der Richtung der lokalen Z-Achse des Rasters vom Raster ab. Lassen Sie das Raster ausgewählt, und ermitteln Sie mithilfe des lokalen Koordinatensystems die Richtung der Z-Achse in den Ansichtsfenstern. Der Achsenpfeil zeigt in die Richtung der positiven Z-Achse. Die Ermittlung der Ausrichtung der Z-Achse beschleunigt die Einrichtung des Verhaltens.
- Wählen Sie das Crowd-Objekt aus, und fügen Sie ein Wandabstoß-Verhalten hinzu.
- Klicken Sie im Rollout "Wandabstoß-Verhalten" auf "Keine", und wählen Sie das Raster aus.
- Wählen Sie "Positive Achse", wenn die Vertreter von der Z-Achsen-Seite des Rasters abgestoßen werden sollen. Sollen die Vertreter von der gegenüberliegenden Seite des Rasters abgestoßen werden, wählen Sie "Negative Achse". Wenn sie von beiden Seiten abgestoßen werden sollen, müssen Sie "Beide Achsen" wählen.
- Wenn die Vertreter nur dann vom Raster angezogen werden sollen, wenn sie sich innerhalb eines bestimmten Bereichs vor dem Raster befinden (statt von jedem Punkt innerhalb der Szene), aktivieren Sie die Option "Entfernung verwenden". Legen Sie mithilfe der Parameter "Innenentfernung" und "Außenentfernung" den Bereich fest, in dem die Vertreter vom Raster angezogen werden. Aktivieren Sie die Option "Entfernung anzeigen", wenn der Entfernungsbereich im Ansichtsfenster angezeigt werden soll.
- Weisen Sie im Dialogfeld Verhaltenszuordnungen das Verhalten einem Vertreter oder einem Team zu.
So verwenden Sie das Abstoßverhalten:
- Fügen Sie dem Crowd-Objekt ein Abstoßverhalten hinzu.
- Wählen Sie im Rollout "Abstoßverhalten" die Schaltfläche "Keine" oder die Schaltfläche (Mehrere auswählen), um das oder die Objekte anzugeben, die Vertreter abstoßen sollen.
- Ändern Sie die Vorgabeeinstellungen nach Wunsch.
- Weisen Sie im Dialogfeld Verhaltenszuordnungen das Verhalten einem Vertreter oder einem Team zu.
So fügen Sie den Space Warp "Vektorfeld" hinzu:
Den Space Warp "Vektorfeld" fügen Sie auf dieselbe Weise hinzu wie den Geometrie-Grundkörper "Quader".
- Klicken Sie im Rollout "Objekttyp" auf "Vektorfeld".
- Ziehen Sie die Maus in einem Ansichtsfenster, um das Anfangsmaß der Dimensionen festzulegen.
- Wenn Sie die Erstellungsmethode "Würfel" verwenden, werden alle drei Dimensionen gleichzeitig festgelegt.
- Wenn Sie die Erstellungsmethode "Quader" verwenden, lassen Sie die Maustaste los, und bewegen Sie die Maus dann vertikal, um die Höhe festzulegen.
- Klicken Sie, um den Space Warp zu erstellen.
So verwenden Sie den Space Warp "Vektorfeld" mit Vertretern:
Dieses Verfahren enthält allgemeine Richtlinien zur Verwendung des Space Warps "Vektorfeld" mit Vertretern in einer Crowd-Simulation.
- Erstellen Sie ein Objekt, das als Hindernis dienen soll. Dieses Objekt muss ein bearbeitbares Netz oder ein Geometrie-Grundkörper sein; es kann über Modifikatoren verfügen.
- Fügen Sie den Space Warp "Vektorfeld" hinzu.
- Positionieren und skalieren Sie das Space Warp-Gitter so, dass es das Hindernisobjekt umschließt.
Das Gitter sollte um einiges größer als das Objekt sein. Es sollte sich etwa in der Mitte des Gitters befinden.
- Erhöhen Sie im Rollout "Gitterparameter" die Einstellungen für "Längensegmente/Breitensegmente/Höhensegmente", sodass die Gittersegmente das Objekt in brauchbaren Abständen schneiden.
Um die geeignete Segmentanzahl für Ihre Hindernisobjekte festzustellen, sehen Sie sich zunächst an, wie komplex das Objekt ist. Wenn das Hindernis sehr detailliert ist und das im Vektorfeld widergespiegelt werden soll, benötigen Sie eine relativ hohe Gitterauflösung.
- Klicken Sie im Rollout "Hindernisparameter" Bereich "Vektoren berechnen" "Vektorfeldobjekt" (zunächst mit "Keine" beschriftet), und klicken Sie dann in einem Ansichtsfenster auf das Objekt, das als Hindernis in der Crowd-Simulation dienen soll.
Dadurch wird das Hindernisobjekt angegeben. Das Bereichsvolumenraster wird auf der Oberfläche des Objekts als olivfarbenes Drahtgitter angezeigt.
- Erhöhen Sie im Rollout "Hindernisparameter" Bereich "Vektoren berechnen" Einstellung "Bereich".
Während Sie diese Einstellung erhöhen, sehen Sie, wie sich das Bereichsvolumenraster ausdehnt. Das Bereichsvolumen sollte den Raum einschließen, in dem die Crowd-Mitglieder mit dem Richtungswechsel beginnen müssen, um dem Objekt auszuweichen.
- Deaktivieren Sie im Bereich "Anzeige" "Gitter zeigen" und "Bereich zeigen", sodass das Vektorfeld bei der Generierung besser sichtbar ist.
- Aktivieren Sie im Bereich "Anzeige" "Vektorfeld zeigen".
- Klicken Sie im Bereich "Vektoren berechnen" auf die Schaltfläche "Berechnen". Dadurch wird das Vektorfeld erzeugt.
Tipp: Um die Vektorlinien deutlicher sichtbar zu machen, erhöhen Sie im Bereich "Anzeige"
Einstellung "Vektorskalierung".
Die Vektoren werden als blaue Linien um das Hindernisobjekt angezeigt. Für jeden Gitterschnittpunkt innerhalb des Bereichsvolumenrasters wird ein Vektor berechnet. Jeder Vektor entspricht der Normalen des Objekts an dem Punkt auf der Oberfläche des Objekts, der dem Gitterpunkt am nächsten liegt.
Die Vektorkraft nimmt mit steigender Entfernung vom Objekt ab, wie durch die immer kürzer werdenden Vektorlinien im äußeren Rasterbereich symbolisiert wird.
- Fügen Sie Crowd- und Vertreter-Helferobjekte hinzu.
- Wählen Sie das Crowd-Objekt aus, und wechseln Sie in die Änderungsgruppe.
- Klicken Sie im Rollout "Setup" Bereich "Verhalten" auf die Schaltfläche "Neu".
- Wählen Sie im daraufhin angezeigten Dialogfeld "Verhaltenstyp auswählen" die Option "Space Warp-Verhalten", und klicken Sie dann auf "OK".
- Klicken Sie im nun angezeigten Rollout "Space Warp-Verhalten" auf die Schaltfläche (zunächst "Keine" genannt), und klicken Sie dann in einem Ansichtsfenster auf den Space Warp "Vektorfeld".
Tipp: Am einfachsten verwenden Sie dazu die Methode "Nach Namen auswählen".
- Klicken Sie im Rollout "Setup" auf die Schaltfläche "Verhaltenszuordnungen", und weisen Sie im Dialogfeld Verhaltenszuordnungen und Teams dem Space Warp-Verhalten einen oder mehrere Vertreter zu.
- Fügen Sie weitere Objekte und/oder Verhaltensweisen hinzu, die für die Simulation benötigt werden.
- Wählen Sie das Crowd-Objekt aus, und lösen Sie dann die Simulation, indem Sie im Rollout "Lösen" Schaltfläche "Lösen" klicken.
- Passen Sie das mit dem Space Warp "Vektorfeld" verknüpfte Verhalten weiter an, indem Sie die Gitterparameter und Hindernisparameter einstellen.
- Berechnen Sie nach jeder Änderung wieder das Vektorfeld, und lösen Sie die Simulation. In manchen Fällen müssen Sie die Vektorfeldparameter animieren, damit die Objekte innerhalb des Feldes bleiben.