Cache
Simulationen werden bildweise berechnet und entwickeln sich durch die Auswertung von Eigenschaften, Kräften und Randbedingungen über die ablaufende Animationszeit hinweg. Es ist daher nicht möglich, z. B. durch manuelles Navigieren in der Animationszeit immer den korrekten Zustand der Simulation angezeigt zu bekommen. Die Lösung dafür liegt in der Speicherung der Simulation als RAM- oder Datei-Cache. Eine gängige Praxis bei allen Simulationssystemen in Cinema 4D und auch für die Partikel. Sie finden daher hier die notwendigen Einstellungen zum Berechnen oder Auslesen einer Alembic-Datei. Ist diese vorhanden und in der Partikel-Gruppe geladen, müssen die Partikel nicht länger simuliert werden. Sie können sich beliebig in der Zeit bewegen und bekommen immer den korrekten Zustand der Partikel angezeigt. Auf diese Weise lassen sich auch Simulationen archivieren und zwischen verschiedenen Szenen oder gar verschiedenen 3D-Programmen austauschen, da das Alembic-Datenformat ein Standardformat für den Austausch von Simulationen und Animationen ist.
Die Speicherung als Cache-Datei ist generell auch vor dem Rendern empfohlen, da nur so z. B. auch Motion Blur (Bewegungsunschärfe) für die Partikel berechnet werden kann.
Das Berechnen und Speichern einer neuen Cache-Datei aktiviert nach Abschluss der Berechnungen diese Option automatisch. Ist eine Alembic-Datei mit der Partikelsimulation im Feld Pfad zur Alembic-Datei angegeben, kann mit dieser Option bestimmt werden, ob diese Datei ausgelesen werden soll oder nicht. Wenn eine Cache-Datei gelesen wird, verlieren alle Simulationselemente dieser Partikel-Gruppe automatisch ihre Funktion. Die Partikel-Eigenschaften und Bewegungen werden ausschließlich der Datei entnommen, zumindest wenn diese Eigenschaften auch in der Datei enthalten sind. Das aktive Auslesen der Alembic-Datei deaktiviert auch die Darstellungsoptionen für die Partikel an der Partikel-Gruppe.
Hier finden Sie zwei Optionen, mit denen das Bezugssystem für die Speicherung der Partikel-Eigenschaften gewählt werden kann:
- Lokal: Die Partikel werden relativ zum Achsensystem der Partikelgruppe gespeichert. Das bedeutet, dass Sie die Positionen und Flugrichtungen dieser Partikel auch nach dem Backen noch manuell, z. B. durch das Verschieben der Partikelgruppe, verändern können.
- Global: Hierbei werden die Partikel relativ zum Weltursprung und den Weltachsen gespeichert. Das bedeutet, dass die Partikelbewegungen immer exakt so wie bei Erstellung der Speicherung wiedergegeben werden. Die Partikel werden in diesem Modus unabhängig von der Lage der Partikelgruppe im Raum.
Über das Ordnersymbol rechts neben dem Feld können Sie manuell eine bereits gespeicherte Partikel-Simulationsdatei laden lassen. Diese wird dann ausgelesen, wenn die Option Speichermodus aktiviert wird.
Wenn Sie eine neue Cache-Datei erstellen möchten, reicht die Betätigung der Objekt berechnen-Schaltfläche aus. Sie werden dann nach einem Speicherort und Namen für diese Datei gefragt. Nach Abschluss der Berechnung wird der Pfad zur Datei automatisch in dieses Feld eingetragen und die Auswertung durch Aktivierung von Speichermodus angeschaltet.
Dieses Kürzel gibt die Identifizierung der Partikeldaten innerhalb der geladenen Alembic-Datei an. Für von Cinema 4D erzeugte Dateien ist dies immer /hash_0/hash_0Cloud. Im Fall einer durch andere Programme erzeugten Simulation kann diese ID anders ausfallen.
Geladene Partikeldaten können über diesen Wert individuell skaliert und an den Maßstab Ihrer Szene angepasst werden. Dies kann vor allem für geladenen Daten aus anderen Simulationssystemen interessant sein, die ggf. andere Maßeinheiten verwenden.
Cache-Exporteinstellungen
Hier finden Sie einzelne Optionen für die Eigenschaften der Partikel, die Sie in die Alembic-Datei speichern mochten. Diese Optionen müssen also vor der Berechnung der Cache-Datei konfiguriert werden. Normalerweise können hier immer alle Eigenschaften aktiviert bleiben. Nur wenn Sie sicher sind, dass Sie z. B. einzelne Eigenschaften, wie z. B. die Farben nicht benötigen, da Sie Objekte mit eigenen Materialien an die Partikel binden möchten, können Sie diese Eigenschaften deaktivieren und damit ggf. die Größe der Datei verringern.
Über diese Schaltfläche lösen Sie die Berechnung der Cache-Datei aus. Sie werden automatisch nach einem Speicherort und Namen für diese Datei gefragt. Während der Cache-Berechnung wird die Simulation in der Zeitleiste bildweise abgespielt. Wenn Sie mehrere Partikel-Gruppen in der Simulation verwendet oder auch noch andere Simulationssysteme, z. B. für Rigid Bodies in der Szene enthalten sind, können Sie diese ebenfalls automatisch als Caches speichern lassen, indem Sie Szene berechnen anklicken.
Während mit Objekt berechnen nur die Partikel der aktuellen Partikel-Gruppe gespeichert werden, kann hierüber alles in der Szene als Cache berechnet und gespeichert werden. Dabei ist diese Aktion nicht nur auf Partikel-Gruppen beschränkt, sondern schließt auch andere Simulationssysteme, wie z. B. Pyro-Simulationen mit ein. Auch hierbei werden Sie bei Betätigung der Schaltfläche nach einem Speicherort gefragt. Standardmäßig wird dafür das Verzeichnis genutzt, in dem auch die Szene gespeichert wurde.
Beachten Sie, dass auch die Nutzung von Szene berechnen nur Simulationssysteme berücksichtigt, welche die gleiche Simulationsszene verwenden. Wenn Sie also z. B. mehrere Partikel-Simulationen in unterschiedlichen Simulationsszenen verwalten, müssen Sie diese separat als Cache berechnen lassen. Die Nutzung von Simulationsszenen mit Partikeln wird u. a. auf der Einführungsseite zur Partikel-Simulation beschrieben.
Hiermit wird der Speichermodus deaktiviert und der Cache aus dem Arbeitsspeicher entfernt. Die gespeicherte Alembic-Datei bleibt dabei erhalten und kann jederzeit wieder durch Anschalten des Speichermodus aktiviert werden.
Diese Option zeigt nur Wirkung, wenn eine Alembic-Datei bei Pfad zur Alembic-Datei angegeben wurde und Speichermodus angeschaltet ist. In dem Fall wird die Alembic-Datei dann automatisch entsprechend den nachfolgenden Einstellungen durchlaufen und beim Abspielen der Animation automatisch ausgelesen. Ist diese Option ausgeschaltet, können Sie bei Bild das in der Alembic-Datei auszulesende Simulationsbild selbst angeben. Dies ermöglicht z. B. das individuelle Abspielen der Alembic-Datei durch Keyframes für die auszulesende Bildnummer der Simulation.
Diese Einstellung ist nur verfügbar, wenn Animation verwenden ausgeschaltet ist und in der Partikel-Gruppe auf eine Cache-Datei zugegriffen wird (Speichermodus aktiviert). Sie können dann bei Bild die Bildnummer der Simulation angeben, die Sie aus der Datei auslesen möchten. Da sich dieser Wert z. B. auch über Keyframes animieren lässt, kann auf diese Weise individuell auf alle einzelnen Simulationsbilder in der Alembic-Datei zugegriffen werden.
Wenn Animation verwenden aktiv ist, kann hier ein Bildversatz zwischen der geladenen Alembic-Datei und der aktuellen Animationszeit in Ihrer Szene eingestellt werden. Mit negativen Werten kann dann z. B. die Alembic-Datei schon zu einem späteren Zeitpunkt der Simulation ausgelesen werden, obwohl Sie sich in Cinema 4D noch in Bild 0 befinden. Ebenso führen positive Werte dazu, dass die Simulation z. B. erst später in der Zeit beginnt als ursprünglich während der Speicherung der Cache-Datei.
Hier können Sie prozentual die Abspielgeschwindigkeit der gespeicherten Simulation beeinflussen. Bei Werten unter 100% bewegen sich dann die Partikel z. B. entsprechend langsamer als in der ursprünglichen Simulation. Werte über 100% beschleunigen das Auslesen der Alembic-Datei.
Mit dieser Vorgabe legen Sie fest, wie mit Alembic-Dateien verfahren werden soll, deren Simulation kürzer ist als die Animation in Ihrer aktuellen Szene:
- Abspielen: Die Simulation wird entsprechend obigen Angaben, z. B. bezüglich Offset und Geschwindigkeit einmalig abgespielt und endet dann automatisch mit dem letzten in der Datei enthaltenen Simulationsbild.
- Loop: Wird das Ende der Simulation innerhalb der Alembic-Datei erreicht, beginnt die Wiedergabe der Simulation erneut.
- Ping Pong: Beim Erreichen des Endes der gespeicherten Simulation wird diese rückwärts bis zum Erreichen des ersten gespeicherten Simulationsbilds abgespielt. Die Wiedergabe beginnt dann dort erneut in normaler Abspielrichtung.
Die im Cache gesicherten Daten werden dort bildweise gespeichert. Über diese Einstellung legen Sie daher fest, wie Zwischenwerte daraus generiert werden können, z. B. um Bewegungsunschärfe (Motion Blur) berechnen oder unterschiedliche Bilderraten zwischen dem Cache und der Szene ausgleichen zu können:
- Linear: Eine einfache, lineare Interpolation zwischen den im Cache gespeicherten Werten. Dies entspricht der Standardinterpolation älterer Cinema 4D-Versionen beim Auslesen von Partikel-Caches.
Hier werden drei im Cache gespeicherte Werte symbolhaft durch rote Punkte dargestellt. Um auch Zwischenwerte ausgeben zu können, werden lineare Übergänge zwischen den Cache-Werten berechnet, entlang derer neue, interpolierte Werte berechnet werden können.
- Kubisch: Eine kubische Interpolation zwischen den gespeicherten Partikelwerten sorgt für einen weichen, harmonischen Übergang. In diesem Modus kann es allerdings auch zum Überschwingen von Werten kommen, was bedeutet, dass auch Positionswerte resultieren können, die außerhalb des ursprünglich gespeicherten Wertespektrums liegen. Die Wichtung dieser Interpolation kann über den Wert für Tangentengröße beeinflusst werden. Je größer diese gewählt wird, desto weiter verschiebt sich die Interpolation der benachbarten Werte in die zeitliche Mitte zwischen zwei gespeicherten Werten. Die gespeicherten Werte bleiben dadurch also länger erhalten, auch wenn eine etwas frühere oder spätere Zeit aus dem Cache interpoliert wird.
Hier werden jeweils drei im Cache gespeicherte Werte symbolhaft durch rote Punkte dargestellt. Um auch Zwischenwerte ausgeben zu können, werden kubische Übergänge zwischen den Cache-Werten berechnet, entlang derer neue, interpolierte Werte berechnet werden können. Diese kubischen Übergänge lassen sich durch Tangentengröße steuern. Links ist eine kleine, rechts eine große Tangentengröße dargestellt. Wie jeweils rechts von dem mittleren Datenpunkt zu erkennen, kann es in diesem Modus zum Überschwingen kommen. Es werden dann in diesem Zeitbereich auch Werte ausgegeben, die außerhalb des durch die benachbarten Datenpakte definierten Wertebereichs liegen können.
- Kubisch monoton: Diese Interpolationsart funktioniert genau wie Kubisch, nur dass es hierbei nicht zu überschwingenden Werten kommen kann. Alle interpolierten Positionswerte der Partikel bleiben innerhalb des durch die im Cache gespeicherten Werte definierten Bereichs. Ansonsten kann auch in diesem Modus die Interpolation durch den Wert für Tangentengröße beeinflusst werden.
Hier werden jeweils drei im Cache gespeicherte Werte symbolhaft durch rote Punkte dargestellt. Um auch Zwischenwerte ausgeben zu können, werden kubische Übergänge zwischen den Cache-Werten berechnet, entlang derer neue, interpolierte Werte berechnet werden können. Diese kubischen Übergänge lassen sich durch Tangentengröße steuern. Links ist eine kleine, rechts eine große Tangentengröße dargestellt. Dabei werden überschwingende Interpolationen vermieden.
Diese Einstellung kann zur Steuerung der Interpolationen Kubisch und Kubisch monoton verwendet werden. Je größer dieser Wert ist, desto länger werden die gespeicherten Cache-Werte gehalten, bevor die Interpolation mit einem benachbarten Cache-Wert erfolgt. Betrachten Sie dazu die Beispielbilder oben.
Mit dieser Kurve können Sie die Wiedergabegeschwindigkeit der Simulation in der Alembic-Datei beeinflussen. Normalerweise wird für jedes neue Animationsbild Ihrer Szene ein Bild der Simulation aus der Datei ausgelesen. Die Abspielgeschwindigkeiten bleiben dadurch unverändert. Dies entspricht der Nutzung von Geschwindigkeit 100% und einer linear von links unten nach rechts oben verlaufenden Kurve. Entsprechend steht der linke Rand des Graphen für den Start der gespeicherten Simulation und der rechte Rand für deren Ende. Die Höhe der Kurve steht prozentual betrachtet für den Fortschritt des Auslesens. Über eine geschwungene Kurve lässt sich nun z. B. auch ein Bullet Time-Effekt, also eine eingefrorene Zeit simulieren, bei der die Simulation kurzzeitig stark verlangsamt oder gar eingefroren wird, bevor diese dann wieder Fahrt aufnimmt. Je horizontaler die Kurve verläuft, desto langsamer oder gar in der Zeit eingefroren erscheint die Simulation. Je steiler die Kurve verläuft, desto schneller wird die Wiedergabe der Simulation. Das nachfolgende Video bringt dazu ein einfaches Beispiel.
Ebenso kann auch jederzeit die Simulation in ihrer Wiedergabe umgekehrt werden, wenn ein Kurvenabschnitt von links oben nach rechts unten verläuft.
