Ob für eine Animation oder eine Einzelbildkomposition: Die Anforderung, 3D-Objekte in Realfilm bzw. Realbildern zu integrieren, ist immer häufiger gefragt. Mit Kamera kalibrieren ist dies auch in CINEMA 4D kein Hexenwerk. Damit ihr das Tutorial Schritt für Schritt nachvollziehen könnt, findet ihr die Datei "PSD_C4D_R14_Kamera-Matching_start.c4d" mit der Ausgangssituation bei den Arbeitsdateien.
Aufbau der Szene
Damit wir gleich mit dem Einrichten und Einstellen der Kamera beginnen können, habe ich in der Ausgangsdatei ein kleines Partikelsystem bereitgestellt, das wir später in die per Kamera-Matching erzeugte Szenerie integrieren werden.
Ein relativ flacher, dafür umso breiterer Emitter erzeugt dreierlei bunte Kugeln. Dank integriertem Gravitations-Modifikator werden die Kugel-Partikel nicht nur einfach ausgestoßen, …
… sondern fallen auch der Schwerkraft folgend nach unten, wie wir nach einem Klick auf den Abspielbutton feststellen. Sobald unsere Szene einen Boden besitzt, werden wir die Kugeln auch noch aufprallen lassen.
Einrichten der Kamera
Damit uns die Kugeln bei den nun folgenden Schritten nicht im Weg sind, schalten wir den Emitter kurzerhand per Ampelschalter im Objekte-Manager auf unsichtbar.
Fangen wir der Einbindung des Realbildes an, indem wir ein neues Kamera-Objekt erzeugen. Dieses Kamera-Objekt stellt sich durch unsere folgende Kalibrierung auf das fotografische Bildmaterial ein. Um der Kamera die Funktionalität zur Kalibrierung zu verleihen, weisen wir dem Kamera-Objekt per Kontextmenü mit der rechten Maustaste oder auch über das Menü Tags>CINEMA 4D Tags des Objekte-Managers ein Kamera-kalibrieren-Tag zu.
Im Einstellungsdialog des Kamera-kalibrieren-Tags finden wir auf der Bild-Seite die Funktionen zum Einladen und Einstellen des Bildmaterials. Spätestens jetzt solltet ihr überprüft haben, welches Bildseitenverhältnis beim Fotomaterial vorliegt. Wir klicken auf den Button neben dem Feld Bild …
… und laden über den Datei-öffnen-Dialog das gewünschte Realbild in die Kamera. Für dieses Tutorial habe ich den Ladebereich eines Firmengeländes als Bilddatei "Ladebereich.jpg" mitgeliefert. An den Metadaten des Bildes ist das zugehörige Seitenverhältnis abzulesen: 3264 x 2448 = 4:3.
Nach Bestätigung durch den Öffnen-Befehl finden wir das eingeladene Bild im Sichtbereich unserer Kamera.
Bevor wir mit dem Kalibrieren der Kamera auf das Bild beginnen, schalten wir die Kamera über das Kamerasymbol im Objekte-Manager auf aktiv (weiß).
Kalibrieren der Kamera
Für das nun folgende Kalibrieren der Kamera wechseln wir im Einstellungsdialog des Kamera-kalibrieren-Tags auf die Kalibrieren-Seite.
Wie ihr seht, stehen alle Ampeln für den Kalibrierstatus mangels Fluchtpunkten noch auf Rot - das soll sich nun ändern.
Weil es sich aufgrund des Bildinhaltes geradezu anbietet, nicht mit Einzellinien, sondern mit einem vierseitigen Gitter zu arbeiten, erzeugen wir über den Button Gitter erstellen für den ersten Schritt der Kalibrierung ein Gitternetz.
Bei unserem Bild fällt es nicht schwer, "zueinander senkrecht" laufende Linien zu finden. Für den ersten Punkt des Gitters verwendet ihr am besten eine der Ecken unterhalb der Rampe.
Mit dem zweiten Punkt des Gitters spannt ihr das Gitternetz möglichst exakt "parallel" mit dem Verlauf der Rampenkante. Ich habe diesen Eckpunkt in die Ecke der Regenrinne unter der Rampe gesetzt.
Durch den dritten Eckpunkt beginnen wir die zur ersten Seite des Gitters senkrecht verlaufende Kante des Gitternetzes. Orientiert euch am besten am kurzen Absatz des Pflasters und schiebt den Eckpunkt so weit nach links, bis die Gitterlinie parallel mit der Betonstütze der Rampe verläuft.
Die Position des vierten Eckpunktes liegt zwar außerhalb des eigentlichen Bildes, stellt aber weiter kein Problem bei der Anpassung des Gitternetzes dar. Achtet einfach darauf, dass die Linien exakt parallel an den Kanten der Betonrampe aufliegen.
Nachdem das Gitternetz nun in das Bild gelegt ist, müssen wir den zugehörigen Kanten die Achsrichtungen für die Ermittlung der Fluchtpunkte zuweisen. Dazu setzen wir den Mauszeiger auf eine der Gitterkanten und klicken mit gedrückt gehaltener Shift-Taste so oft auf die Kante, bis die korrekte Achsenfarbe für die Gitterlinien vorliegt. In meinem Fall definiert die rote Kante der Betonrampe die X-Achsenrichtung, senkrecht dazu entsprechend die blaue Kante die Z-Achsenrichtung.
Ein Blick auf die Ampelanzeige im Einstellungsdialog des Kamera-kalibrieren-Tags verrät uns, dass aus dem platzierten Gitternetz bereits die Kamerabrennweite und die Kameraausrichtung ermittelt werden konnten.
Über den Button Linie erstellen erzeugen wir nun eine Linie, um die Y-Achse zu definieren.
Für die Positionierung der Linie für die Y-Achse suchen wir uns eine zum Gitternetz senkrechte Kante - in meinem Fall die vordere Kante der Betonstütze.
Auch dieser Linie müssen wir noch mitgeben, welche Achse wir mit ihr definieren möchten. Wiederum durch Klicken mit gedrückt gehaltener Shift-Taste färben wir die Linie grün, um die Y-Achse des Bildes festzulegen.
Nachdem wir alle drei Koordinatenachsen im Bild eingezeichnet haben, fehlt zur sicheren Orientierung noch der Ursprung, der Achsennullpunkt der Szene. Er wird über einen Nagel in das Bild eingesetzt, den wir über den Button Nagel erstellen erhalten.
Wir fassen den Nagel mit der Maus und setzen ihn an den unteren Punkt der grünen Y-Achsen-Linie. Hier wird künftig für diese Kamera der Achsennullpunkt der Szene sein.
Wir werfen wieder einen Blick in den Einstellungsdialog des Kamera-kalibrieren-Tags und stellen fest, dass die Kameraposition aus den von uns bereitgestellten Fluchtpunkt- bzw. Achseninformationen berechnet werden konnte. Noch mehr grüne Felder erhaltet ihr mit weiteren Hilfestellungen in Form von zusätzlichen Fluchtpunkt-Linien.
Einrichten der Szene
Unsere Kamera ist nun auf das von uns vorgegebene Bildmaterial kalibriert. Jetzt gilt es, die Szene mit all den Objekten auszustatten, die für unsere Animation nötig sind.
Praktischerweise stellt uns das Kamera-kalibrieren-Tag gleich einen Automatismus für das Erstellen eines Hintergrunds bereit. Mit Klick auf den Button Hintergrund erstellen generieren wir ein Hintergrund-Objekt mit fertig gemappter Hintergrund-Textur auf Basis unseres Kamera-Bildmaterials.
Dafür wurde ein Material erstellt und per Textur-Tag auf das Hintergrund-Objekt gelegt. Ein Blick auf die Basis-Seite des Materials verrät, dass hier lediglich der Farbe-Kanal zum Einsatz kommt.
Damit die per Partikelsystem ausgestoßenen Kugeln eine Aufprallfläche in Form eines Bodens bekommen, holen wir uns ein Ebene-Objekt aus der Palette der Grundobjekte in die Szene. Das bekannte Boden-Objekt eignet sich für unsere Zwecke nicht, weil es unendlich ausgedehnt ist und Probleme beim korrekten Schattenwurf bereiten würde.
Im Einstellungsdialog des Ebene-Objekts sehr ihr die von mir veranschlagte Breite und Tiefe für das Objekt, zusammen mit einem Versatz von -1500 cm in Z-Richtung über die Koordinaten.
Weil wir möchten, dass die hereinfallenden Kugeln ausschließlich auf der freien Fläche des Hofs Schatten werfen (alles andere würde den dreidimensionalen Effekt zerstören), sollte die Ebene lediglich bis knapp hinter die Kante der Laderampe reichen. Gegebenenfalls korrigiert ihr das einfach durch Ziehen am Parametergriff des Ebene-Objekts.
Dieses neu in die Szene integrierte Objekt benötigt natürlich auch eine passende Textur. Dafür begeben wir uns kurzfristig in den Einstellungsdialog des Kamera-kalibrieren-Tags und nutzen die Automatik zur Erzeugung eines Kamera-Mapping-Tags.
Anders als beim Hintergrund-Objekt benötigen wir für die korrekte Texturierung des Ebene-Objekts die Projektionsart Kamera-Mapping, die wir genau über diesen Button erhalten.
Das auf dem Kamera-Objekt neu entstandene Textur-Tag verschieben wir an die richtige Stelle im Objekte-Manager, natürlich auf das Ebene-Objekt.
Beim Erzeugen des neuen Textur-Tags entstand auch ein neues Material mit der Textur des Ladebereichs. Für unsere Zwecke ist dieses Material allerdings ungeeignet, da die Textur im Leuchten-Kanal liegt und die Schatten der Kugeln auf dem Boden unterdrücken würde.
Wir können dies sehr leicht korrigieren, indem wir einfach das bereits bestehende Material (nicht das Textur-Tag!) des Hintergrund-Objekts für die Texturierung des Ebene-Objekts verwenden. Dazu ziehen wir das Material entweder direkt auf das Textur-Tag im Objekte-Manager oder in das Feld Material des Textur-Tags im Attribute-Manager.
Damit das texturierte Ebene-Objekt beim späteren Lichteinfall keine ins Dunkle verlaufende Schattenbereiche erhält, verleihen wir ihm per Kontextmenü mit der rechten Maustaste bzw. über das Menü Tags>CINEMA 4D Tags im Objekte-Manager ein Render-Tag, …
… in dessen Einstellungsdialog wir die Option Hintergrund-Compositing aktivieren. Jetzt ist das Ebene-Objekt optimal in die Szene integriert und verhält sich wie ein Element des Realbildes.
Um das Partikelsystem in die Szene zu integrieren, schalten wir den Emitter über den Ampelschalter im Objekte-Manager auf sichtbar und deaktivieren vorübergehend die von uns eingerichtete und kalibrierte Kamera. Dies lässt sich schnell über das Kamera-Symbol im Objekte-Manager bzw. über das Menü Kameras in der Editor-Ansicht erledigen.
Aus dieser Perspektive sehen wir zum ersten Mal die kalibrierte Kamera als Element der Szene und - für uns sehr hilfreich - den per Kamera-Matching texturierten Teil der Ebene. Über die Achsanfasser bzw. über die im Attribute-Manager angegebenen Werte richtet ihr nun den Emitter so aus, dass die Kugeln quer über die Bildfläche springen.
Damit die emittierten Kugeln nicht durch die Ebene fallen, sondern von ihr abprallen und weiterspringen, richten wir zusätzlich zur Gravitation noch einen Reflektor ein. Ihr findet diesen Modifikator im Menü Simulieren>Partikelsystem.
Im Einstellungsdialog des Reflektor-Objekts setzen wir die Elastizität auf 70%, so werden die Kugeln nach ihrem Aufprall wieder auf mehr als zwei Drittel der Fallhöhe zurückgeschleudert. Eine Größe von 10000 cm in X- und Y-Richtung sollte ausreichen, um alle emittierten Kugeln über die Dauer der Animation auf dem Boden zu halten.
Wie ihr an der Y-Koordinate des Reflektors seht, liegt die Reflektor-Ebene knapp oberhalb des Ebenen-Objekts. Bei unserem einfachen Partikelsystem ist der Mittelpunkt des Partikelobjekts (Radius der Kugel = 30 cm) entscheidend, daher brauchen wir diesen Versatz. 5 cm habe ich übrigens abgezogen, um die Kugeln leicht in die Oberfläche eintauchen zu lassen.
Aus der Ansicht von vorne ist gut zu sehen, wie die ausgestoßenen Kugeln bis zur gelben Reflektor-Linie fallen und von dort nach oben zurückprallen.
Ausleuchtung der Szene
Nachdem nun die Kamera kalibriert ist und die 3D-Objekte in Form des Partikelsystems in die Szene eingebaut wurden, müssen wir uns noch um eine adäquate Beleuchtung kümmern.
Wir erzeugen uns für das Schatten werfende Hauptlicht der Szene ein Licht-Objekt, dem wir auf der Allgemein-Seite des Einstellungsdialogs eine leicht bläuliche Färbung verleihen. Dies soll den durch den Himmel erzeugten, auf dem Gebäude und Boden wahrnehmbaren Blauschimmer auch auf die Kugeln bringen.
Außerdem aktivieren wir einen weichen Schatten oder nach Wahl auch einen Flächenschatten für das Hauptlicht der Szene.
Auf der Schatten-Seite des Einstellungsdialogs habe ich für meinen weichen Schatten die Dichte auf 70% reduziert und eine Schatten-Map von 500x500 gewählt. Dies lässt den Schatten natürlicher wirken, da es seine Aufhellung durch indirektes Licht nachahmt.
Für die Positionierung dieses Hauptlichts lohnt es sich, kurzzeitig auf die Standardkamera umzuschalten, um sicherzugehen, dass die Lichtquelle weit oberhalb des beleuchteten Bereichs liegt. Schließlich soll das Sonnenlicht einigermaßen stimmig simuliert werden. Platziert die Lichtquelle so, dass unser Hauptlicht möglichst senkrecht auf die Objekte bzw. den Boden einfällt - dies entspricht auch dem Lichteinfall auf unserem Realbild.
Da die emittierten Kugeln bislang nur von oben beleuchtet werden, brauchen wir noch weitere Lichtquellen, um die indirekte Beleuchtung aus der Kamerarichtung zu simulieren. Wir erzeugen dazu zwei identische Punkt-Lichtquellen mit leicht gelblicher Färbung und reduzieren ihre Intensität auf ca. 58%, damit diese Lichtquellen nicht zu dominant wirken.
Die erste dieser beiden sogenannten Fülllichter positionieren wir links von der Kamera. In Y-Richtung kann sie ruhig auf Höhe des Bodens verbleiben, da wir lediglich die indirekte Beleuchtung von der Seite und vom Boden simulieren möchten.
Das zweite Fülllicht positionieren wir gegenüber dem ersten Fülllicht auf die andere Seite. Wenn ihr euch nicht sicher seid, ob von der Beleuchtung auch genug auf den Kugeln ankommt, lasst die Animation einfach kurz anlaufen und schaltet auch in den orthogonalen Ansichten das Gouraud-Shading an.
Mit aktiviertem erweiterten OpenGL in der Editor-Ansicht inklusive Schattenvorschau lässt sich die Szene nun sehr gut beurteilen. Nicht nur die Schatten wirken stimmig, auch die simulierte indirekte Beleuchtung sorgt dafür, dass die Kugel-Unterseiten nicht im Dunklen liegen.
Hier im Vergleich das gerenderte Ergebnis unseres nun fertigen Tutorials. Unsere 3D-Objekte wirken stimmig in die eigentlich nur aus einem einfachen Foto bestehende Szene integriert.