Ziel dieser Diplomarbeit ist die Entwicklung eines automatisierten interaktiven Geschichtengenerators, welcher durch die Einbindung neuester Technologien die Generierung eines 3DAnimation-Films unter Berücksichtigung der interaktiven Steuerung des Benutzers ermöglichen soll und diesen dann auf verschiedene Ausgabegeräte versendet. Hierbei soll der Benutzer seine persönlichen Erlebnisse mittels Photos, Dialogen etc. mit in die Geschichte einbringen und somit eine personalisierte Version an andere als Kurzfilm verschicken können. Im Vordergrund dieses Projekts stand die Ermöglichung der Interaktivität des Benutzers, welcher jederzeit durch die Benutzung der von ihm gespeicherten Daten eine aktuelle Geschichte selbst anfertigen kann und somit über seine Erlebnisse während der Fußballweltmeisterschaft 2006 andere auf dem Laufenden halten kann. Natürlich soll auch eine spätere Anwendung für ähnliche Großereignisse oder andere Anwendungen durch Änderung der Gestaltung der Geschichte realisierbar sein. Der StoryGenerator ist ein Baustein des Servingo-Projekts, welches zur Aufgabe hat, durch die Zusammenarbeit mehrerer Unternehmen (Zentrum für Graphische Datenverarbeitung e. V. (ZGDV), T-Systems International GmbH, Fraunhofer Institut für Graphische Datenverarbeitung (IGD), itCampus Software- und Systemhaus GmbH, infoRoad GmbH, ehotel AG, Fraunhofer Institut für Materialfluss und Logistik (IML), DAI-Labor der TU Berlin, CAS Software AG, Intergraph (Deutschland) GmbH, GIStec GmbH [1]) und
die Förderung des Bundesministeriums für Wirtschaft und Arbeit ein komplexes Online-Portal (www.servingo.org) für die Fußball WM 2006 in Deutschland zu schaffen, welches dem Interessierten eine breite Vielfalt von Informations- und Unterhaltungsmöglichkeiten bieten soll. Das Servingo-Projekt soll den effizienten und innovativen Ablauf der FIFA WM 2006 fördern und eine IT-gestützte Serviceplattform
schaffen, die es erlaubt, bei (sportlichen) Großveranstaltungen eine integrierte Informations- und Logistikunterstützung über verschiedenste Zielgruppen hinweg anbieten zu können. Das Logo von Servingo ist in Abbildung 1.1 dargestellt. Die Services bzw. Inhalte werden über unterschiedliche und innovative Kanäle abrufbar sein: von Internet über Mobilfunk (GSM, GPRS, UMTS) bis hin zu breitbandigem DVB-Playout.
Inhaltsverzeichnis
1 Einleitung
1.1 Zielsetzung der Arbeit
1.2 Gliederung der Arbeit
2 Der StoryGenerator
2.1 Automatisierte Geschichtengenerierung
2.2 Aufbau der Komponenten
2.2.1 Erstellung und Archivierung
2.2.2 Generierung und Publizierung
2.3 Zusammenfassung
3 Design der 3D-Komponenten
3.1 Einleitung
3.2 Die Software Blender
3.2.1 Charaktere
3.2.2 Armatur
3.2.3 Materialien und Texturen
3.2.4 Aufbau der Szene
3.2.5 Animationen
3.2.6 Gestaltung des Servingo-Logos
3.3 Zusammenfassung
4 Realisierung der Generierung
4.1 Einleitung
4.2 Beschreibung der Komponenten
4.2.1 Sprachgenerierung
4.2.2 Die Programmiersprache Python
4.2.3 Python Module
4.2.4 XML Integration
4.2.5 Das DOM Modell
4.3 Ablauf der automatisierten Generierung
4.3.1 Sprachgenerierung
4.3.2 Python-Blender Schnittstelle
4.3.3 Synthese der Ausgabeformate
4.3.4 Ausgabe auf mobilen Endgeräten
4.4 Zusammenfassung
5 Fazit und Ausblick
6 Literaturverzeichnis
Anhang A: Storyboard
1 Einleitung
1.1 Zielsetzung der Arbeit
Ziel dieser Diplomarbeit ist die Entwicklung eines automatisierten interaktiven Geschichtengenerators, welcher durch die Einbindung neuester Technologien die Generierung eines 3D- Animation-Films unter Berücksichtigung der interaktiven Steuerung des Benutzers ermöglichen soll und diesen dann auf verschiedene Ausgabegeräte versendet.
Hierbei soll der Benutzer seine persönlichen Erlebnisse mittels Photos, Dialogen etc. mit in die Geschichte einbringen und somit eine personalisierte Version an andere als Kurzfilm verschicken können. Im Vordergrund dieses Projekts stand die Ermöglichung der Interaktivität des Benutzers, welcher jederzeit durch die Benutzung der von ihm gespeicherten Daten eine aktuelle Geschichte selbst anfertigen kann und somit über seine Erlebnisse während der Fußballweltmeisterschaft 2006 andere auf dem Laufenden halten kann. Natürlich soll auch eine spätere Anwendung für ähnliche Großereignisse oder andere Anwendungen durch Änderung der Gestaltung der Geschichte realisierbar sein.
Der StoryGenerator ist ein Baustein des Servingo-Projekts, welches zur Aufgabe hat, durch die Zusammenarbeit mehrerer Unternehmen (Zentrum für Graphische Datenverarbeitung e. V. (ZGDV), T-Systems International GmbH, Fraunhofer Institut für Graphische Datenverarbeitung (IGD), itCampus Software- und Systemhaus GmbH, infoRoad GmbH, ehotel AG, Fraunhofer Institut für Materialfluss und Logistik (IML), DAI-Labor der TU Berlin, CAS Software AG, Intergraph (Deutschland) GmbH, GIStec GmbH [1]) und die Förderung des Bundesministeriums für Wirtschaft und Arbeit ein komplexes Online-Portal (www.servingo.org) für die Fußball WM 2006 in Deutschland zu schaffen, welches dem Interessierten eine breite Vielfalt von Informations- und Unterhaltungsmöglichkeiten bieten soll.
Das Servingo-Projekt soll den effizienten und innovativen Ablauf der FIFA WM 2006 fördern und eine IT-gestützte Serviceplattform schaffen, die es erlaubt, bei (sportlichen) Großveranstaltungen eine integrierte Informations- und Logistikunterstützung über verschiedenste Zielgruppen hinweg anbieten zu können. Das Logo von Servingo ist in Abbildung 1.1 dargestellt. Die Services bzw. Inhalte werden über unterschiedliche und innovative Kanäle abrufbar sein: von Internet über Mobilfunk (GSM, GPRS, UMTS) bis hin zu breitbandigem DVB-Playout.
Diese Plattform integriert mobile Aspekte und berücksichtigt entsprechende Ansätze, wie z. B. Location-Based-Services, geht aber über die ausschließliche Unterstützung mobiler Systemkomponenten hinaus und ermöglicht auch den stationären Zugriff auf Daten, die durch den Benutzer in seinem „Tagebuch" abgelegt wurden.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1.1: Logo von Servingo [2]
Die Abteilung Digital Storytelling des ZGDV e. V. übernahm die Fertigstellung dieses Projekts, wobei die Aufgaben im Rahmen dieser Diplomarbeit im Folgenden bestanden:
- Design und Erstellung einer Plattform für automatisiertes Generieren von 3D-Szenen und Geschichten mittels der Software Blender.
- Schnittstellenprogrammierung, um eine Anbindung der XML- Inhalte über die Programmiersprache Python nach Blender zu ermöglichen.
- Generierung des Films unter Blender und die Ausgabe aufverschiedene Endgeräte (Notebook, PDA, Mobiltelefon).
Durch die Erstellung eines Demonstrators sollte die Funktionsweise des StoryGenerators bereits zum Confederation Cup 2005 einem breiten Fachpublikum vorgestellt werden. Hierbei handelte es sich um eine noch nicht automatisierte Version des Projekts, welche einen sehr positiven Anklang in den Medien fand.
Die Kombination der verschiedenen Technologien der graphischen Datenverarbeitung, der Informatik und des Mediendesigns, machten dieses Projekt zu einer praktischen Demonstration der Nutzung der neuen Medien. Einen Überblick darüber bietet die nachfolgendeAbbildung 1.2 .
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1.2: Servingo-Plakat StoryGenerator [1]
1.2 Gliederung der Arbeit
Im Nachfolgenden Kapitel 2 wird zunächst das Konzept des automatisierten Geschichtenerzählens vorgestellt und der Aufbau und die Funktionalität der einzelnen Komponenten des StoryGenerators erläutert. Außerdem werden die einzelnen Bestandteile des online Portals und deren Funktionsweise vorgestellt.
Kapitel 3 beschreibt die Design Anforderungen der Plattform und die Realisierung der 3D-Komponenten mittels der Software Blender, sowie die Verwirklichung der Animationen.
Das vierte Kapitel befasst sich mit der technischen Umsetzung der an das Projekt gestellten Aufgaben. Hier werden die Anbindungen der einzelnen Schnittstellen, sowie die programmiertechnische Bewerkstelligung der an das Projekt gestellten Anforderungen erklärt.
2 Der StoryGenerator
2.1 Automatisierte Geschichtengenerierung
Das personalisierte Informationsportal ist ein zentraler Service des Servingo-Systems. Es ist in besonderer Weise dazu gedacht, den sportbegeisterten Besucher zu begleiten und ihm ein durchgängiges Spielerlebnis zu ermöglichen. Der Fan soll die Möglichkeit erhalten, auf für ihn abgestimmte, Spiel begleitende und ortsbezogene Informationen zuzugreifen.
Der registrierte Nutzer soll dabei in jeder Situation optimal und ansprechend über Spiel bezogene Themen informiert werden und zugleich auch die Möglichkeit erhalten, seine Erlebnisse wie in einem persönlichen Tagebuch „festzuhalten". Nachdem der Nutzer sich mit seinem Profil im System registriert hat, wird ein persönliches WM-Logfile für ihn angelegt.
Dieses enthält außer den allgemeinen und öffentlichen Spielinformationen Berichte und Sequenzen, die seinem Interessenprofil und vor allem auch seiner Beteiligung an den Meisterschaften entsprechen. Bucht sich der Fan z. B. bei einem bestimmten Spiel ins System ein, kann er seine eigenen Informationen - wie mit dem Mobiltelefon/PDA aufgenommene Bilder oder SMS - in sein EventLogbuch aufnehmen und zusammen mit den allgemeinen Spielinformationen zu einer „Geschichte" verarbeiten [3]. Einen kurzen Überblick über die Funktionalität bietet die Abbildung 2.1 .
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.1: Personalisiertes Portal [4]
Durch den verbreiteten Einsatz mobiler Endgeräte, wie z. B. Photohandys und PDAs, soll dem Benutzer durch die automatisierte Geschichtengenerierung eine Möglichkeit gegeben werden, seine Eindrücke aktuell, visuell und mittels des Einsatzes neuer Medien an andere weiterzugeben. Der Grundgedanke des StoryGenerators war eine voll automatisierte Plattform, die dem Benutzer erlauben sollte, durch eine Vielzahl von Einstellungsmöglichkeiten eine maßgeschneiderte Geschichte zu erzeugen und diese als Film an Notebooks oder Handys zu versenden. Dies wird in Abbildung 2.2 demonstriert.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.2: Ausgabe auf Endgeräten [4]
Der Benutzer kann nach dem Login, durch den Zugriff auf sein persönliches Tagebuch, auch auf seine früher abgelegten Daten zugreifen und diese immer wieder in der neuen Geschichte verwenden. Außerdem hat er die Möglichkeit, durch die Anbindung an das Servingo-Portal, seine Points of Interest („seine Sehenswürdigkeiten") einzusehen und diese Orte in seine Geschichte mit einzubeziehen. Durch die Verwendung von 3D-Charakteren soll die Geschichte lebendiger und visuell attraktiver für andere Betrachter gemacht werden. Die Charaktere können vom Benutzer selbst zusammengestellt werden und es wird ihm die Möglichkeit gegeben, die Dialoge der Figuren zu beeinflussen. Somit ergibt sich ein individueller Film, welcher die Photos und die gespeicherten Tagebucheinträge des Benutzers auf eine attraktive Weise darstellt.
2.2 Aufbau der Komponenten
Der dem Benutzer sichtbare Bestandteil des Servingo-Portals ist die Servingo-Homepage, welche vom Portal aus nach erfolgtem Login erreicht werden kann. Vorher musste er sich bereits erfolgreich als Benutzer registriert haben. Sämtliche Eingaben, die er dann später in dem StoryGenerator tätigt, werden über HTML- Forms an das StoryGenerator-Servlet gesendet und dort weiterverarbeitet. Die Abbildung 2.3 verdeutlicht den Ablauf.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.3: Funktionsweise des Portals [4]
Das Servlet verfügt seinerseits auch über eine Verbindung zur pPOI (personal Points of Interest)/Tagebuch-Schnittstelle, die durch ein XML-Formular realisiert wird. Dadurch erfolgt die Anbindung an die Datenbank und somit auf die Inhalte, die der Anwender früher in seinem Profil abgelegt hat.
Nach erfolgreicher Beendigung des benutzerseitigen Generierungsprozesses wird eine StoryGenerator-interne finale XML erstellt, wobei die von pPOI und Tagebuch gesammelten Daten veredelt und mit vorgefertigten Inhalten kombiniert werden. Diese XML dient für die serverseitige Generierung des finalen Films mittels Blender. Außerdem werden die vom Benutzer eingegebenen Dialoge in WAVE- Dateien umgewandelt und später in die fertige Geschichte eingebaut. Somit erhält man nicht nur einen visuell ansprechenden Film, sondern auch eine simultane sprachliche Begleitung, die durch den Dialog der zwei Charaktere und der Eingabe des Benutzers realisiert wird.
2.2.1 Erstellung und Archivierung
Der Autor einer Geschichte benutzt hierfür eine HTML-Seite, die er als registrierter Benutzer über das Servingo-Portal aufrufen kann. Diese wird von einer anderen Abteilung des ZGDV e.V. geliefert. Später sollen auch offline Editoren dazukommen, die allerdings nur auf ausgewählten Plattformen zur Verfügung gestellt werden (wie z. B. Stadion, Messe).
Um die Geschichte zu erstellen, wählt der Autor entweder Medien aus seiner lokalen Datenhaltung aus oder greift auf die im persönlichen Tagebuch archivierten Inhalte zu. Hierfür kann er eine Auswahlmenge („alle mit 5 Sternen", „alle aus der Kategorie people", etc.,..) angeben, die dann als Miniaturansicht oder mit Titeln angezeigt werden. Er kann nun ein spezielles Medienelement oder eine Auswahlmenge angeben.
Dieser Vorgang wird wiederholt, bis alle Szenen der Geschichte ausgefüllt sind. Der aktuelle Status wird jeweils auf dem Client zwischengespeichert. Der Benutzer kann auch jederzeit zu den einzelnen Auswahlmasken zurückkehren und seine Angaben korrigieren. Hat der Autor seine Geschichte finalisiert, schickt er diese per SOAP und HTTP auf den Server. Eine detaillierte Übersicht stellt die Abbildung 2.4 dar.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.4: Diagramm der Erstellungsaktion
In dieser Auswahlmaske hat der Anwender die Möglichkeit, den Titel der Geschichte, das Geschlecht, die Frisur, diverse Accessoires und die Kleidung des Avatars zu wählen. Die fertige Version soll es auch möglich machen, die einzelnen Kleidungsstücke mit verschiedenen Texturen zu belegen (wie z. B. Länderfahnen der teilnehmenden Nationen als Aufdruck auf den T-Shirts). Dadurch soll es dem Fan ermöglicht werden, sein persönliches Aussehen über den 3D-Charakter seinen Freunden mitzuteilen, oder eben nach Lust und Laune den Charakter zu gestalten. Bei jeder Auswahl wird der dargestellte Avatar aktualisiert, wodurch der Benutzer zu jeder Zeit seine Entscheidung ändern kann. Beispiele dazu bieten die Abbildungen 2.5 und 2.6 .
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.5: Auswahlmaske Servingo-Portal [4]
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.6: Auswahlmaske Servingo-Portal, Kleider [4]
Die Inhalte der Auswahlmaske können jederzeit modifiziert werden und somit für andere Großereignisse, oder ähnliche Events angepasst werden, d. h. durch die Modifikation der Charaktere und den Umbau der Szene und der Dialoge kann der StoryGenerator dem jeweiligen Anlass angeglichen werden. Dadurch ist ein multifunktionales Portal entstanden, welches auch in Zukunft für zahlreiche Anlässe nutzbar sein wird.
Nach der Gestaltung des Charakters kann der Anwender auf seine zuvor gespeicherten Mediendaten zugreifen und nun seine Geschichte zusammenstellen. Dazu hat er die Möglichkeit seine Bilder, die er zuvor in seinem Tagebuch abgelegt hat, einzusehen und diese dann in die Geschichte zu integrieren. Die Abbildung 2.7 zeigt ein Beispiel der Bilder Auswahlmaske.
Abbildung in dieser Leseprobe nicht enthalten
Hierbei wird er durch Aufforderungen, wie z. B. „Was war dein schönstes Erlebnis?" oder „Hast du etwas Spannendes erlebt?" durch die Erstellung der Geschichte begleitet. Diese Fragen dienen dazu, dass die spätere Geschichte in der die Charaktere einen Dialog über die Bilder führen, logisch stimmig ist. Der Benutzer hat dann die Möglichkeit während des Erstellungsvorgangs zu jedem Bild einen Namen und einen kurzen Dialog anzugeben und dieser wird dann zusammen mit der Darstellung des Bildes, z. B. wie folgt, im späteren fertigen Film von den Charakteren präsentiert (Bild: Elfmeterschießen (Abbildung 2.8), Benutzereingabe kursiv):
„A: Das Elfmeterschießen in der 86. Minute, das war vielleicht ein spannender Moment!
B: Da stimme ich Dir zu, so was sieht man nicht alle Tage!"
Abbildung in dieser Leseprobe nicht enthalten
Nachdem die Bilder ausgesucht und die Dialoge ausgefüllt wurden, kann der Benutzer den Film generieren lassen. Hier hat er dann auch die Möglichkeit, die E-Mail Adresse oder Telefonnummer des Empfängers einzutragen, welcher den fertig generierten Film erhalten soll. Außerdem kann die Geschichte gespeichert werden, um sie später verändern zu können oder an andere zu verschicken. Die Abbildungen 2.9 und 2.10 stellen Beispiele dazu dar.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.9: Fertige Filmzusammenstellung [4]
Zur Fußball-WM 2006 soll es auch noch möglich sein, verschiedene Sprachen für das Portal zu wählen und andere Szenarien und Hintergründe für den Dialog der Charaktere auszusuchen. Außerdem ist es später möglich, durch Änderungen der Dialoge, Charaktere und des Designs, die Servingo-Funktionalität in anderen Projekten zu verwenden.
Abbildung in dieser Leseprobe nicht enthalten
2.2.2 Generierung und Publizierung
Serverseitig findet die Generierung der Story statt (Abbildung 2.11). Hierfür werden auf Basis eines StoryModels vorgefertigte Inhalte mit persönlichen Inhalten kombiniert und als Film in folgenden Formaten kodiert: .3gp für Smartphones, .mpg für Notebook/PC. Die Filme werden auf der persönlichen Website über das Portal zur Verfügung gestellt und gleichzeitig eine Meldung (wahlweise per SMS, MMS, E-Mail) an den Autor versandt. Diese Meldung beinhaltet die URL zum finalen Film und kann wiederum an Freunde per SMS/MMS/E-Mail versendet werden.
Technisch gesehen wird aus den Benutzereingaben eine XML- Datei gebildet, die alle benötigten Informationen an den Server sendet und dieser dann den Generierungsprozess durchführt. Die genauen technischen Einzelheiten werden im Kapitel 4 erläutert.
2.3 Zusammenfassung
In diesem Kapitel wurde der Umfang und die Zielsetzung des Servingo-Projekts und des StoryGenerators erklärt. Nachdem die theoretische und die zeitliche Planung abgeschlossen war und die Anforderungen an das Projekt festgelegt waren, wurde die Realisierung der einzelnen Komponenten in Angriff genommen. Dabei stand die Entwicklung und das Design der 3D-Objekte im Vordergrund, um diese schon vorläufig auf Messen und Events vorstellen zu können und sie gegebenenfalls anpassen zu können. Der Entstehung der 3D-Objekte widmet sich das folgende Kapitel.
3 Design der 3D-Komponenten
3.1 Einleitung
Eine der Hauptaufgaben bei dem Projekt StoryGenerator, die im Rahmen dieser Diplomarbeit durchgeführt wurde, war die graphische Umsetzung der Vorstellungen des Teams, welche die Gestaltung der Charaktere, die Animationen und der Bühne beinhaltete. Dabei war es wichtig, durch den steten Kontakt mit den Kollegen, die zwar für andere Teile des Projekts zuständig waren, gemeinsam unsere Vorstellungen über das endgültige Aussehen der einzelnen Komponenten zusammen zu diskutieren. Durch diesen effizienten Austauschprozess konnten schon während der Entwicklungsphase Probleme bei der Gestaltung und Programmierung verhindert oder behoben werden.
Außerdem wurden die Zwischenergebnisse äußerst erfolgreich auch auf Messen und vor allem zum Confederation Cup am 29.06.2005 in Frankfurt am Main in einem Demonstrator dem breiten Publikum und den Medien vorgestellt, wodurch die Wirkung getestet werden konnte und es möglich war, Verbesserungsvorschläge in das laufende Projekt zu integrieren.
Um die Visualisierung der generierten Geschichte zu ermöglichen, wurde eine 3D-Szene entwickelt, die die vom Benutzer eingegebenen Dialoge und Bilder auf unterhaltsame und optisch ansprechende Weise erzeugen sollte. Die nachfolgenden Kapitel bieten einen Überblick über die Entstehung der einzelnen 3D-Komponenten unter der Benutzung der 3D-Software Blender.
3.2 Die Software Blender
Bei Blender (Abbildung 3.1) handelt es sich um eine vollwertige Open Source 3D-Modellierungssoftware, d. h. sie ist kostenlos und ihr Quellcode ist frei zugänglich und wird deshalb ständig weiterentwickelt. In ihrer aktuellen Version 2.37 bietet diese Software vieles, was auch die bekannteren 3D-Programme, wie z. B. Maya und 3ds Max ermöglichen, mit dem Unterschied, dass die komplexeren Funktionalitäten nicht so leicht wie bei den Marktführern zugänglich sind. Das bedeutet, dass der Anwender zuerst viel Zeit investieren muss, um die einzelnen Funktionen und den Aufbau des Programms zu verstehen.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 3.1: Startlogo von Blender 2.37
Dafür beherrscht er dann ein Programm, welches ständig in zahlreichen Foren und über Plug-ins weiterentwickelt wird und was vor allem kostenlos ist. Blender besitzt unter anderem eine eigene leistungsfähige Game Engine, hervorragende integrierte Renderer (wie z. B. Yafray), ein individuell einstellbares Benutzer-Layout, alle gängigen Modellierungstechniken, eine sehr leistungsfähige Python Schnittstelle (die im nächsten Kapitel näher erläutert wird), Animationswerkzeuge (Skelett Animation mit Kinematik, Vertex Key framing fürs Morphing, Character Animation Pose Editor etc.) und die Möglichkeit Blender-Dateien in zahlreichen Formaten (wie z. B. TGA, JPG, PNG, SGI Movie, IFF, AVI, GIF, TIFF) zu exportieren und auch zahlreiche Dateiformate zu importieren. Einen detaillierten Überblick über diese Software kann man auf der Homepage von Blender gewinnen [5].
Der Aspekt des nicht vorhandenen Kostenfaktors und die hervorragende Anbindungsfähigkeit an andere Programme und Programmiersprachen war auch der ausschlaggebende Punkt, welcher den Entschluss für die Nutzung von Blender für das Projekt StoryGenerator brachte. Die Abbildungen 3.2 und 3.3 zeigen Beispieloberflächen von Blender.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 3.2: Beispieloberfläche Blender [5]
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 3.3: Beispieloberfläche Blender [5]
[...]
-
-
-
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X.