Schlagwort-Archive: Animation

Naiad Test – Venice Tsunami Wave

Das wollt ich schon lange machen …

Schon seit über einem Jahr hab ich die Idee im Kopf mal eine richtig große Welle durch einen Kanal in Venedig laufen zu lassen. Eigentlich wollt ich dazu RealFlow’s Hybrido benutzen, aber in meine Naiad Tests past es auch ganz gut, oder? Irgendwann zwischendurch hatte ich schon mal angefangen ein paar venizianische Häuser zu bauen, vier von sieben sind damals fertig geworden. Die hab ich mir geschnappt und nochmal neu angeordnet und so war das Set schnell fertig.

Mein Laptop an der Leistungsgrenze

Momentan lass ich Naiad auf meinem Laptop laufen und bei der Größenordnung der Szene wurde schnell klar das 4GB Arbeitsspeicher nicht wirklich ausreichen. Man stellt schnell fest das wenn der RAM vollläuft die Simulationszeit für einen Frame extrem in die Höhe schießt (aus 4min wurden 50min). So musste ich die Gridauflösung doch ganz schön runter nehmen und auch beim Meshen war dann nicht mehr viel rauszuholen. Trotzdem finde ich, es vermittelt einen guten Eindruck der Bewegung und Geschwindigkeit … Vieleicht lasse ich es dann nochmal auf meiner Workstation durchlaufen.

Naiad Test – Classic ship

The Golden Hind at full speed (8 knots)

Als zweiten kleinen Naiad Test wollte ich mich an etwas ganz normalem versuchen. Ein Schiff das durchs Wasser gleitet ist so ein Fall – in dieser einfachen Situation stecken schon viele Arbeitsschritte drin. Ein schönes Schiff war schnell organisiert und soweit gecleaned das man es als Colisionsobjekt verwenden kann. Die ganze Sache sollte natürlich in der richtigen Skallierung laufen und so habe ich mir ausgerechnet das die max. Geschindigkeit der Goldenen Hinde etwa 4 m/s entspricht. Damit habe ich mir in 3ds Max eine Animation erstellt in der das Schiff ca. 50m zurücklegt. Mit ein paar smoothen Noise-Controlern kam noch ein angenehmes schwanken drüber und fertig.

Da es für 3ds Max noch keinen Exporter für das emp-Format gibt muste ich mir was überlegen. Ich entschied mich für einen kleinen Umweg über Maya. Es ist eigentlich recht simpel wenn man’s raus hat … in Max baut man alles auf 1 Unit = 1m, das exportiert man per FBX nach Maya, dort nutzt man den Naiad-Buddy um die emp-Sequenz zu schreiben und in Naiad importiert man alles mit einer Einheitenkonvertierung von Centimerter entspricht Meter …

Just try it!

Den Naiad-Graph für die Particle-Liquid-Simulation hatte ich ja recht schnell zusammen gesteckt, aber der Teufel liegt wie so oft in unschienbaren Werten. Als Basis hab ich mir einen Pool (75m x 25m x 3m) mit ca. 6 Mio. Partickeln erstellt in den das Schiff hineinfährt. In meiner ersten Sim fiehlen mir vor allem die blockhaften Collisionen mit dem Schiff auf, als nächstes musst ich irgendwie das heftige Spritzen des Fluids unterdrücken und dann hatte ich noch ein paar Probleme mit entweichenden Partickeln die das Voxelgrid unötig aufgeblasen haben. Das waren alles soche Fehler die mir nicht nochmal passieren, also hat sich der Test schon gelohnt.

Die Splash-Sinulation lief wieder sehr gut, den Graph habe ich im Gegensatz zum Wasserfall etwas abgeändert und so funktioniert der Foam-Effekt nun viel besser. Ich hätte es eigentlich gern nochmal mit einem längerem Lifespan durchlaufen lassen, aber es muss auch mal gut sein. Dann habe ich noch das Naiad-Ocean-Toolkit probiert, dass ziehmlich gute Wasserwellen auf ein fertiges Mesh displaced, hier muss ich sagen das es unglaublich schnell lief im Gegensatz zu den vorangegangenen Simulatioen.

Naiad Test – Waterfall

Naiad ist ein relativ neuer Fluidsolver der beeindruckende Ergebnisse erziehlt. Deshalb kam dieses Simulationtool nun auch schon in vielen Bockbustern zum Einsatz (Avatar, X-Men: First Class um nur zwei zu nennen). Das ganze System ist voxelbasiert, ähnlich wie der Hybrido-Solver in RealFlow und ist somit vor allem bei Large-Scale-Simulationen eine gute Wahl. Das Userinterface ist ein auf Nodes basierendes System und recht übersichtlich. Die Simulationsdaten speichert Naiad im eigenen .emp-Format, weleches eine sehr effektive Komprimierung beinhaltet. Alles in allem haben mich die im Internet kreisenden Videos überzeugt und ich wollte es einfach mal selbst ausprobieren …

Naiad von Exotic Matter ››

Als erstes mal ein kleiner Wasserfall

Natürlich habe ich auch erstmal das Naiad 101 Tutorial gemacht, aber nun wollte ich gleich mit einer richtigen Beispielszene starten um so viele Arbeitsschritte und Einstellungen wie möglich zu testen. Als erstes muste ich herausfinden in welchen Einheiten Naiad arbeitet und wie groß meine Objekte werden müssen, damit sie 1 : 1 in Naiad anzukommen. Nachdem ich das hatte baute ich mir das Stückchen Flussbett und nutzte erstmal den Obj-Improt. Die Fluidsimulation ist relativ standard, aber ich habe schon mehrere Test gemacht um ein paar Werte des Particle-Liquids kennenzulernen. Die Partikel zu meshen ist in Naiad wirklich einfach und schnell, dass war also kein Problem. Bei den Splash-Particles hatte ich am Anfang einen falschen Node im Graph und so waren sie ziehmlich langsam und sahen irgendwie komisch aus, aber nachdem ich den Fehler entdeckt hatte lief alles wunderbar.

Ich mach sicher noch ein paar Tests solange meine Trail-Version noch läuft …

The Silurian Sea – Scorpion Animation

The swim loop

Als ich das erste mal darüber nachgedacht habe wie ich das Vieh riggen soll war schnell klar das so viel wie möglich automatisiert laufen muss. CAT ist dafür ein wunderbarer Ansatz, auch wenn es ein paar Major Bug’s hat. Also erstellte ich mir in einem leeren CAT-Operator ein eigenes, passendes Rig mit entsprechend vielen Armen und Beinen.

Mit der Default CAT-Motion kommt man bei einer Schwimmbewegung leider nicht weit (damit krabbelt er mehr). Trotzdem ist der CAT-Motion-Layer die richtige Wahl und nachdem man etliche Kurven verschoben und neu skalliert hat wird aus dem Krabbeln ein Schwimmen. Diese Basisbewegung ist der Grundstein für alle Animationen des Skorpions. Er wird dann noch entlang eines Pfades animiert und bekommt die zum Shot passende Geschwindigkeit. Letzte Feinheiten korrigiere ich nochmals mit einem extra Animation-Layer. Wenn eine Animation fertig ist wird diese per PointCache auf der Platte gespeichert und kann dann in der Masterszene geleden und positioniert werden.

The Silurian Sea – Layout

Etwas Planung muss sein

Wenn man sich vornimmt einen solchen Clip in 3 Monaten kommplett umzusetzen, muss man sich schon nen Plan machen. Um die Länge der einzelen Szenen, die Kamerabewegungen und Characteranimationen frühzeitig festlegen zu können, reichen schon ein paar einfache Dummyobjekte. Diese weden an Pfaden animiert oder durch Partikelsysteme gesteuert. Der Meeresboden und Meeresoberfläche vermitteln dabei einen Eindruck der Größe der Szene und man kann schon ganz gut entscheiden welchen Blickwinkel man wählt und was später im Bild zu sehn sein wird.

Ich rendere immer wieder Viewportvideos und schmeiße die gleich auf eine Premiere Timeline um zu sehn wie sie sich im Gesamtkontex so machen. Nach ein paar Versuchen habe ich mich dann für etwas in der Richtung entschieden.

Randy’s – Geppetto Crowds

Using Project Geppetto
for backround chars.

“Bring mehr Leben rein!” – So könnte man vieleicht den Hintergedanken dieses Arbeitsschritts zusammenfassen. Für 3ds Max gibt es ja seit neusten ein neues Crowd- simualtion-Tool namens Geppetto. Wenn man sich die Videos dazu anschaut, scheint dass ja sehr mächtig zu sein. Deshalb will ich es hier bei Randy’s gleich mal ausprobieren und einsetzen. So wird diesmal der Hintergund der Szenerie wirklich bevölkert sein und es werden sich um die 40 Charactere in der Szene befinden. Dieses Testrendering zeigt euch erstmal den aktuellen Stand und die Animation die mit Geppetto geliefert werden.

Projekt Geppetto ››
Geppetto Demo Video ››

Akropolis – Characters and Cloth

Leute – das sind nur Backgroundchars

Das will ich diesem Post mal vorran stellen. Ich wollte Leben auf der Akropolis und natürlich auch mal wieder etwas mit Charakteren machen. Mehr so einen Workflow der auf Schnelligkeit aus ist. Riggen mit Biped, Skinnen mit Envelops, Laden und bearbeiten von Motioncapture-Daten, die passende Clothsimulation drüber und fertig. Klingt ja eigentlich ganz einfach – ist es auch irgendwie und so habe ich insgesamt 7 Charaktere für Akropolis gemacht.

Zwei alte Bekannte

Charaktere zu modeln dauert ja immer, deshalb hab ich hier meine alten Chars Natalie und Igor recycled, die waren soweit fertig texturiert und für die Frauen fehlten nur noch ein paar unterschiedliche Frisuren. Die Rigg’s und das Skinning hab ich neu aufgesetzt, aber alles recht einfach gehalten. Diese Grundmodelle kann man ja dann duplizieren und verschieden ankleiden und ausstatten, so entstehen dann relativ einzigartige Figuren.

Animation and Cloth

Für die Animationen habe ich als Grundlage ein paar MotionCapture-Daten verwendet. Die lagen als bhv-Dateien vor. Wenn man die auf ein Biped läd sieht das erstmal ziehmlich zerschossen aus. Der Trick ist, dass Ganze so wie’s ist nochmal als .bip zu speichern und dann auf den gewünschten Char anzuwenden. Meistens sind in den rohen MoCap’s einige Fehler drin – diese kann man auch mit Max cleanen indem man die Key’s reduziert. Wenn ich das hab mach ich noch etwas Feintunig über Animation-Layers.

Für die antike Kleidung hab ich mir Referenzen gesucht und danach die verschiedenen Kleidungsstücke modelliert (meistens modellier ich die Kleidung per Hand und nutze nicht die Garmet-Maker-Funktion, das geht auch ganz gut). Die Simulation selbst ist nicht sonderlich detalliert, aber dafür stabil. Wichtig war mir die saubere Interaktion der Kleidungsstücke untereinander, durchdringen darf sich natürlich auch nichts. Als kleinen Test habe ich hier auch mal Armreifen, die Halskette und die Gürtel mit Cloth gelöst, dass geht besser als gedacht.

Akropolis – PDI RigidBody’s

Wenn Zeus Blitze schleudert …

In dem Clip stecken zwei Pdi simulationen. Nach dem ersten Aufblitzen dreht sich die Kamera und man sieht wie das Gebäude im Hintergrund zum Teil in sich zusammen fällt. Der zweite Blitz trift eine der Säulen am Eingang der Akropolis und schleudert große Bruchstücke gegen die dahinterliegende Säule, so dass auch diese zerbricht. Nachdem der Halt durch die Säulen fehlt fällt noch ein ganzes Stück der Dachkonstruktion mit nach unten und zerbricht die Säulen in noch kleinere Stücke.

Nach dem die Modelierung und Texturierung des Sets abgeschlossen ist, kopiere ich mir die für eine Simulation notwendigen Objekte in eine neue Datei und arbeite dann dort an dem Facturing und der Physiksimulation. Ich find das sehr praktisch, da so die Max-Szene wieder kleiner wird. Hier erstelle ich dann die notwendigen Low-Poly Kollisionsobjekte und optimiere die Einstellungen in PullDownIt spezifisch für diese Situatuation und den gewählten Kamerawinkel. Nach dem alle grundlegende Eigenschaften wie das “Bounding Volume”, “Passive or Cached” und die Fractur Bodys deklariert sind erstellt Pdi ja bereits mit den default Werten eine gute Animation. Mit weiterem Feintuning lässt sich aber noch vieles verbessern. So stelle ich bei besonders großen Bruchstücken auch größere Massen ein und erhöhe auch etwas die Reibung der Collisionsobjekte um das Rutschen der Steine zu unterdrücken.

Die wichtigsten Werte sind aber Hardness und Clusterize der einzelnen FBodys, um eine kleinteilige Sprengung zu erreichen nutzte ich Hardness 70 und 40 % Clusterize. Eine der letzten Änderungen war die Erhöhung der Schwerkarft um die Geschindigkeit der fallenden Objekte der Dynamik des Shots anzupassen. Für die finale Simulation verwendete ich 25 Subsamples, was bei über eintausend Objekten immernoch zügig simuliert wird. Nachdem ich mit dem Ergebniss zufrieden war konnte ich all die Bruckstücke inclusive der gebakten Simulation wieder in meine Hauptszene mergen und dort so auf der Timeline verschieben das sie im richtigen Moment startet.

Read the complete article ››

Hello Kinect

Markerless Motioncapturing with Kinect

Wie bereits angesprochen will ich kommende Charakteranimationen selbst capturen. Ich habe mir jetzt einen Kinect Sensor gekauft und mir das Wochenende zeit genommen ein erstes stabiles System aufzusetzten. Ich nutze den Kinect Hack von Jasper Brekelman um die Skeleton-Daten in Motionbuilder zu streamen. Das Kinect zu installieren war nicht das Problem, aber das Brekel Device in Motionbuilder 2012 auf einen Char zu übertragen hat mich viele Versuche gekostet. Jetzt läuft Alles sogar so gut das währender Aufnahme der Akteur gewechselt werden kann. Das Video ist eine Aufnahme der Realtimedarstellung in Motionbuilder und wirklich Live :D . Die nächste RnD-Stufe ist jetzt wohl das capturen von zwei Personen gleichzeitig.

Kinect bei Microsoft | Kinecthacks | Brekel