Michael Winterberg und die Auszubildende Luca Narwutsch verwandeln bei G DATA CyberDefense physische Objekte in virtuelle und erwecken diese zu digitalem Leben. Sonst ein Zweier-Team, waren sie vor Kurzem für zwei Wochen zu fünft: Im Rahmen eines zweiwöchigen Praktikums haben Louisa, Obiri und Sarah die Welt der Multimediaprogrammierung kennengelernt. In ihrer Zeit auf dem G DATA Campus erstellten sie animierte 3D-Avatare, die ihre Köpfe tragen. Ich habe mich gefragt, wie ein 3D-Avatar entsteht, welche Programme sie dazu benötigen und wie das Ergebnis der digitalen Version von Louisa, Obiri und Sarah aussieht. Da fast ausschließlich kostenfreie Programme zum Einsatz kamen, ist dieser Beitrag auch eine Orientierung für alle 3D-Begeisterten, die sich selbst einmal als 3D-Avatar modellieren wollen und sich fragen, welche Schritte notwendig sind.
Was ist ein Avatar?
Ein Avatar ist eine künstliche Person, die in der virtuellen Welt als Bild, Icon oder 3D-Figur für eine reale Person steht – zum Beispiel in einem Computerspiel – und sowohl Menschen, Tiere als auch Fantasiewesen zeigt.
Multimediaprogrammierung: Aus Nullen und Einsen entstehen kreative Objekte und Welten
Luca ist im zweiten Lehrjahr ihrer Ausbildung als Mediengestalterin und lernt von Ausbilder Michael auch zu programmieren und 3D-Objekte zu gestalten – ein kreativer Job, bei dem mit Hilfe spezieller Software eine ganz neue virtuelle Welt entsteht. Bereits seit einem Jahr gibt Michael sein umfangreiches Wissen an Luca weiter. Ihr gemeinsames Projekt: Sie modellieren ein virtuell begehbares Security Lab. Der Plan: Neben Besucher*innen an unserem Multitouch-Tisch am G DATA Campus in Bochum, sollen Menschen von überall aus einen Einblick in die aktuelle Bedrohungslage bekommen und in die spannende Welt der Zahlen und Fakten rund um Malware eintauchen. Das Ziel: Es soll ein virtueller Raum entstehen, in dem es Erklärungen und Visualisierungen zu Cyberbedrohungen gibt. Da während des Großprojekts auch immer mal kleinere Aufgaben anfallen, konnten ihnen drei Praktikant*innen über die Schulter schauen, wie ein 3D-Avatar entsteht und dabei auch selbst aktiv werden.
Mir ist es wichtig, dass unsere Praktikant*innen von ihrer Zeit bei uns in der Multimediaprogrammierung auch etwas mitnehmen und ihren Eltern oder in der Klasse zeigen können. Jemandem beim Programmieren zuzuschauen, ist erstmal langweilig. Neben Wissen rund um Photogrammetrie, Tools, Bildbearbeitung und Datenverarbeitung bekamen die Jugendlichen auch mit, wie wir uns bei einer Aufgabe langsam immer weiter bis zum Ergebnis vortasten. In unserem Berufsfeld lernen wir jeden Tag dazu.
Mit Hilfe einer Software wird aus einzelnen Bildern ein 3D-Modell
Die Grundlage für eine 3D-Modellierung sind ganz viele Bilder eines Objekts. In diesem Fall von dem Kopf der Schüler*innen, der im ersten Schritt von allen Seiten und aus unterschiedlichen Perspektiven aufgenommen werden musste. Insgesamt entstanden von jedem Kopf um die 130 Bilder. Zur Orientierung: Optimal sind 200 Bilder, aber schon mit 130 lässt sich ein sehr gutes Ergebnis erzielen. Im Anschluss daran hieß es: aussortieren und die gemachten Bilder bearbeiten. Bildbearbeitungsprogramme wie Lightroom und Photoshop kamen dazu zum Einsatz – aber auch kostenfreie wie GIMP sind zur Nachbearbeitung möglich, um die Belichtung, Schärfe, Kontraste usw. anzupassen, sodass alle Bilder einheitlich aussehen. Danach wurden alle Bilder eines Kopfes in eine 3D-Software – hier Meshroom – geladen, mit der ganz automatisch und mit Hilfe eines Algorithmus in drei bis sechs Stunden ein sogenanntes „High Poly“ entsteht. Dabei fügt die Software die Bilder zu einem ersten Modell zusammen, das aus Abertausenden von Dreiecken besteht. „High Poly“ bedeutet, dass so viele Details wie möglich abgebildet werden. Je mehr Details vorhanden sind, desto höher ist die Anzahl der Polygone. Bei dem erstellten Modell von Obiri sind der Kopf und auch das Gesicht sehr gut erkennbar. Wie auf den Bildern aber zu sehen, ist die Textur – sozusagen die „Hülle“, die um das spätere Modell gelegt wird und das Gesicht sowie die Haare darstellt – noch fehlerhaft oder weist Lücken auf. Aber auch das Modell, auf dem die Textur liegt, hat noch „Beulen“ und Unstimmigkeiten, wenn die Textur ausgeblendet wird.
Bei den Aufnahmen der Bilder mussten wir bewegungslos bleiben und durften nicht blinzeln. Das war gar nicht so einfach die ganze Zeit versteinert zu sitzen. Nach 10-15 Minuten waren wir mit den Bildern bei mir fertig.
Feinarbeit mit Geduld und digitalem Fingerspitzengefühl
Je nachdem, für was ein 3D-Modell erstellt wird, muss nun das High Poly aus Meshroom in ein Low Poly umgewandelt werden, um ein gröberes Modell zu erhalten. Dazu kommt ein kostenfreies 3D-Editor-Programm wie z. B. Blender zum Einsatz, in dem die in Meshroom erzeugte Datei importiert wird und die Optimierung und Feinarbeit erfolgt. In unserem Fall mussten die 500.000 bis 1 Million Flächen mit Hilfe der Software auf zwei bis dreitausend Flächen reduziert werden. Dieser Vorgang nennt sich Retopology – durch einen Algorithmus werden die sehr kleinen Flächen automatisch zu größeren zusammengefasst. Das ist notwendig, um einen 3D-Avatar zu erstellen, der in Echtzeit animierbar ist. Das Low Poly sieht schon viel glatter aus und die Textur kann bearbeitet werden.
Die Textur ist die zweidimensionale Bilddatei aus dem 3D-Editor, die auf die Oberfläche des 3D-Modells gelegt wird. Mit Hilfe von Texturkoordinaten ist auf dem erzeugten 3D-Modell jeder Bereich einem bestimmten Punkt zugeordnet, sodass der Optimierungsprozess in Form von Retuschierung in dem Bildbearbeitungsprogramm erfolgen kann und in der Regel drei bis sechs Tage dauert.
Die Optimierung des 3D-Modells hat länger gedauert, als ich vorher gedacht habe. Die Feinarbeit hat mir viel Spaß gemacht, um die vorhandenen Beulen, Dellen und Fehler des automatisch generierten Modells zu korrigieren. Schnell war ich sehr sicher im Umgang mit Blender.
Ein fertig animierter 3D-Avatar und viele Learnings
Ist das Ergebnis zufriedenstellend, kann der fertig modellierte Kopf einen Körper bekommen. Dazu griffen Michael und Luca auf bereits fertige Avatare zurück, die es im Netz zur freien Verfügung gibt. Diese Körper sind bereits animiert. Der Kopf konnte einfach gegen einen anderen ausgetauscht werden. Die Datei aus dem 3D-Editor (im *.FBX-Dateiformat) enthält alle wichtigen Informationen, wie die Hülle, die Textur, die sogenannten Knochen und die Animation. Diese Datei wird dann in das Programm Unity hochgeladen. Unity ist eine kostenfreie Entwicklerumgebung, für die Gestaltung von Computerspielen. Viele bekannte Spiele wie etwa Among Us oder Pokemon Go wurden in Unity entwickelt. Hier kann der Hintergrund angepasst werden – so bewegt sich der Avatar von Louisa am Strand, Sarahs Avatar kniet sich hin und Obiris Avatar tanzt Breakdance in der Disco.
Natürlich nehmen insbesondere Michael und Luca einige Learnings aus dem zweiwöchigen Projekt mit. Zum Beispiel ist es ist wichtig, dass die Bilder draußen bei bewölktem Himmel gemacht werden, da hier das Ergebnis am besten wird. Direktes Sonnenlicht und harte Schatten führen dazu, dass das spätere Modell fehlerhaft wird und nicht gut aussieht. Der Algorithmus konnte diese bei bedecktem Wetter entstandenen Aufnahmen besser verarbeiten und es gab ein zufriedenstellenderes Ergebnis. Um zu lernen, was gut und was weniger gut funktioniert, machten sie von allen insgesamt zweimal Aufnahmen. Die Haare waren dabei für den Algorithmus die größte Herausforderung und es gilt: Es ist wichtig ausprobieren, um ein gutes Ergebnis zu erzielen. Natürlich können auch drinnen Aufnahmen erfolgen, hier ist jedoch darauf zu achten, dass alles gleichmäßig ausgeleuchtet ist. Was beide hinterher nicht vermutet hatten: Auch ein gutes Handy ist völlig ausreichend für die Aufnahmen.
Das Endergebnis
Checkliste – In fünf Schritten mit kostenfreien Tools zum 3D-Modell
1: Handykamera oder Kamera; Ziel: Bilder von einem Objekt aus allen Perspektiven aufnehmen (ca. 130 – 200 Stück)
2: Bildbearbeitungsprogramm, z. B. GIMP; Ziel: Bilder bearbeiten und aussortieren
3: Programm, das automatisch 3D-Modell erstellt, z. B. Meshroom; Ziel: Alle Bilder in 3D-Software laden, z. B. Meshroom, automatisch wird in 3-6 Stunden ein 3D-Objekt in High Poly erstellt
4: 3D-Editor, z. B. Blender oder 3ds Max; Ziel: 3D-Objekt in 3D-Editor bearbeiten, um das Modell zu optimieren (High Poly wird zu Low Poly)
5: Unity; Ziel: Import in Unity, hier kann eine Animation auf das 3D-Objekt gelegt werden