Motion Tracker
Was ist Motiontracking?
Unter "Motiontracking" – auch als "Matchmoving" oder "Kamera-Tracking" bekannt – versteht man das Rekonstruieren der ursprünglichen, aufnehmenden Kamera (Position, Ausrichtung, Brennweite) ausgehend von einem Video. Stellen Sie sich vor, Sie haben als Ausgangsmaterial eine Videosequenz (auch "Footage" genannt), in die Sie nachträglich ein gerendertes Objekt einpassen wollen. Damit dieses perspektivisch korrekt dargestellt werden kann und auch jeden Kameraruckler glaubhaft mitmacht, muss die Videosequenz analysiert und daraus die 3D-Szenerie – nämlich die aufnehmende Kamera nebst markanten Bildpunkten in ihren dreidimensionalen Positionen – rekonstruiert werden.
Zur Funktionalität des Motion Trackings kann auch das Objekt-Tracking gezählt werden. Details hierzu finden Sie unter Objekt Tracker.
Dieser Prozess ist aufwändig und erfolgt daher in mehreren Schritten:
-
Im Video werden markante, leicht zu verfolgende Punkte (die sog. "Tracks") ermittelt und zeitlich verfolgt. Dieser Vorgang kann automatisch, per Hand oder auch in Kombination erfolgen und nennt sich "2D-Tracking".
-
Danach werden aus diesen Tracks eine repräsentative, räumliche Punktewolke (die sich aus sog. "Features" zusammensetzt), sowie die Kameraparameter rekonstruiert.
- Mit einigen Hilfs-(Constraint)-Tags kann die Szene jetzt kalibriert werden, d.h. die mehr oder wenig orientierungslos im Raum liegende Punktewolke (natürlich inklusiv der relativ dazu eindeutig definierten Kamera) wird in Bezug auf das Weltkoordinatensystem definiert.
In Kürze: wie funktioniert Motiontracking?
Motiontracking basiert auf dem Analysieren und Nachverfolgen von markanten Punkten (Tracks) im Videomaterial. Aufgrund dieser sich in Abhängigkeit von der Kameradistanz unterschiedlich weit verschiebenden Tracks (dieser Effekt nennt sich "Parallaxe") können daraus Positionen im 3D-Raum errechnet werden.
Beachten Sie bei dieser Abbildung den Unterschied zwischen Videobild 1 und 2. Die Kamera fährt hier horizontal von links nach rechts. Die weiter hinten angeordnete rote Vase bewegt sich scheinbar weniger weit (Pfeillänge) als die blaue Vase. Aus diesen Parallaxenunterschieden kann eine entsprechende Stelle (im weiteren Verlauf der Hilfe "Track" genannt) relativ zur Kamera räumlich bestimmt werden.
Hieraus folgt unmittelbar, dass Motiontracking leichter zu bewerkstelligen ist, wenn im Videomaterial viele Parallaxen – also sich unterschiedlich schnell bewegende Bereiche aufgrund unterschiedlicher Distanzen zur Kamera – vorkommen. Stellen Sie sich einen Kameraflug über eine Wolkenkratzerstadt vor: traumhafte Motiontracking-Bedingungen für CINEMA 4D; sich voreinander schiebende Häuser, rechtwinklige Straßenzüge, klare Konturen.
Schwieriger wird es bei großen, leeren Flächen oder Kameraschwenks (die Kamera dreht sich auf der Stelle), wenn im ersten Fall markante Stellen fehlen oder bei letzterem schlicht keine Parallaxe zu finden ist. Aber selbst hierfür gibt es Lösungen, die intern dann nicht mehr auf Parallaxen basieren. Sie müssen dann explizit angeben (Berechnungsmodus im Tab "Rekonstruktion), welcher Art das Motiontracking sein soll.
Motiontracking-Workflow für Kamera-Tracking
Gehen Sie so vor, wenn Sie ausgehend von einer Videosequenz die Kamera rekonstruieren wollen:
- Rufen Sie im Hauptmenü: Tracker/Volle Rekonstruktion auf und wählen Sie die zu rekonstruierende Videosequenz. Jetzt wird der oben abgebildete Workflow bis (inkl.) "3D-Berechnung" durchlaufen.
- Wurden im Objekt-Manager ein Motion Tracker Objekt, sowie eine rekonstruierte Kamera und Auto-Features erzeugt (s.a. 3D-Rekonstruktion) hat alles geklappt. Sie sollten jetzt mittels der Constraint-Tags die 3D-Rekonstruktion kalibrieren, dann proberendern und überprüfen, ob sie gut genug ist. Ist das nicht der Fall, heißt es, 2D-Tracks zu justieren (s. Was sind gute und schlechte Tracks?) und danach erneut zu rekonstruieren/kalibrieren.
- Steht in der Statusleiste etwas anderes als "3D-Rekonstruktion beendet", können Sie gleich dazu übergehen, 2D-Tracks zu justieren (s. Was sind gute und schlechte Tracks?), und danach erneut zu rekonstruieren/kalibrieren, bis es schließlich zu einer erfolgreichen 3D-Rekonstruktion kommt.
Das ist eine vereinfachte Darstellung der Abläufe. Natürlich kann es auch zu fehlerhaften Rekonstruktionen kommen, wenn Sie einen falschen Berechnungsmodus oder eine falsche Brennweite/Sensorgröße im Motion-Tracker-Objekt (Tab "Rekonstruktion") angeben, aber die wichtigsten, leider aber auch zeitaufwendigsten Arbeiten ist das Justieren der 2D-Tracks.
Allgemein
Beim Motiontracking gibt es nur eine Methode um festzustellen, ob alles korrekt abgelaufen ist. Und das sehen Sie am Ende, wenn sich die einzufügenden 3D-Objekte glaubhaft gegenüber der Videosequenz verhalten. Wenn diese also visuell nicht rutschen oder springen, also einfach nur jede Kamerabewegung mitmachen.
Ist das nicht der Fall, müssen Sie in den allermeisten Fällen zurück zur 2D-Track-Erzeugung bzw. -Justierung gehen. Sie können zwar bei den Zwischenschritten die ein oder andere Einstellung ändern, aber hauptsächlich steht und fällt das Motiontracking mit der Qualität der Tracks. Motion Tracker unterstützt Sie so gut wie möglich mit den Auto-Tracks, aber am Ende können nur Sie beurteilen, welche Tracks gut/schlecht sind und wie viele Tracks Sie selbst neu anlegen müssen (s.a. Was sind gute und schlechte Tracks).
Beispielhafter Szenenaufbau
Nach erfolgreicher Kamerarekonstruktion gilt es, Objekte zu platzieren und mit entsprechenden Tags auszustatten.
Bei diesem Beispiel wirft ein Emitter Kugeln auf den Tisch, die über die Tischkante rollen, mit der Lautsprecher-Box kollidieren und auf den Boden fallen. Es werden hier also (unsichtbare!) Proxy-Objekte benötigt, die als Dynamics-Kollisionsobjekte dienen und im Falle des Monitors dahinter verschwindende Kugeln abdecken:
Die Ebenen wurden jeweils mittels "Ebene erstellen" eines Ebenen-Constraint-Tags orientiert (allerdings eignet sich dazu auch der Polygon-Stift hervorragend; schalten Sie dazu das Snapping an und aktivieren Sie 3D-Snapping und Achsen-Snapping). Alle diese Proxy-Objekte tragen dann folgende Tags:
- Render-Tag mit aktivierter Option Hintergrund-Compositing und deaktiviertem Schatten werfen.
- Material-Tag mit dem Video-Material in Frontal-Mapping.
- ggf. ein Rigid-Body-Tag, um das Objekt als Kollisionspartner zu definieren.
Mittels dieser Einstellungen sind die Proxy-Objekte beim Rendern bis auf darauf fallende Schatten unsichtbar (für die Schatten müssen natürlich separate Lichtquellen erzeugt werden, die Sie je nach Beleuchtungssituation sinnvoll im Raum platzieren).