Skripting / Modding / Programmierung von 3D-Objekten. Seminar 3D-Modellierung und Virtuelle Präsenz



Ähnliche Dokumente
Unity 4 Teil II. Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Dozent: Manfred Thaller Marvin Busch

Applets I. Grundlagen der g Applet-Programmierung

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Arbeiten mit UMLed und Delphi

Einführung Internettechnologien. - Clientseitige Programmierung -

ECAD-MCAD Integration: Einfügen eines 3D- Gehäusemodells

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

FTP-Server im System einbinden

Digital Rights Management (DRM) Verfahren, die helfen Rechte an virtuellen Waren durchzusetzen. Asset Management in Second Life

Interactive exploration of neural networks in Python. 3-d simulation of the e-puck robot in virtual environments

Powermanager Server- Client- Installation

Import Zertifikate ELM

Task: Nmap Skripte ausführen

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Kurzanweisung für Google Analytics

Google Chrome. Browsereinstellungen ab Version 33. Portal. erstellt von: EXEC Software Team GmbH Südstraße Ransbach-Baumbach

Die aktuelle Version des SPIEGEL-Bestseller-Widgets können Sie auf unserer Website unter Entwicklertools herunterladen.

Installation und Inbetriebnahme von Microsoft Visual C Express

Wenn Sie neue Kunden gewinnen möchten, müssen Sie von ihnen überall optimal wahrgenommen werden.

Smap3D PDM 10. Installation. Stand-Alone-Migration-Analyzer

TYPO3 (Facett.Net Backend) 33

8 Design Patterns. Events

Einbindung von Videos im ZMS

Grafische Benutzeroberfläche mit Glade und Python

Outlook 2010 Daten importieren und exportieren

Dokumentation für das Spiel Pong

1 Medien einbinden Definition der Medientypen Options-Argumente Ein Bild einbinden... 7

7HVWHQYRQ6$3$QZHQGXQJHQPLWGHP([WHQGHG &RPSXWHU$LGHG7HVW7RROH&$77

Deformation Grundlagen Autodesk Maya. Grundlagen. Version Ingo Clemens brave rabbit

Step by Step Webserver unter Windows Server von Christian Bartl

AirKey Das Handy ist der Schlüssel

1. Zugriff des Autostarts als Dienst auf eine Freigabe im Netz

Microsoft Internet Explorer

Java basierte Browser Plug-ins. Martin Kreis 3D-Graphik im Web WS 02/ Java basierte Browser Plug-ins 1. Übersicht

Support-Tipp Mai Release Management in Altium Designer

Einführung in Eclipse und Java

Programmieren einer Lüftungsanlage mit DDC-Suite Vorlagen Arbeiten mit dem Fupla

Exchange Synchronisation AX 2012

AirKey. Das Smartphone ist der Schlüssel

WPF Bindung. Dr. Beatrice Amrhein

Erstellung eines Banderole-Ads Stand 06/10

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Textdokument-Suche auf dem Rechner Implementierungsprojekt

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java-

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Handbuch Offline-Abgleich

Das Modul Hilfsmittel ermöglicht den Anwender die Verwaltung der internen Nachrichten, Notizen, Kontakte, Aufgaben und Termine.

Übung - Arbeiten mit Android

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Grundlagen von Python

Wochenbericht. Firas Zoabi. Studienprojekt A: SIMPL. 28. Dezember 2009 I M P

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Lasersteuerung. Themengruppen FTDI - Interface ILDA Format Ausgabensteuerung Figurenerstellung Lasershowerstellung Lasershowarten Software / Community

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Microsoft Internet Explorer

DCS-3110 EVENT SETUP

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Softwaren Engineering I

Traditionelle Suchmaschinenoptimierung (SEO)

StarCraft Brood War Kampagnen in StarCraft II Installations-Handbuch

HowTo: Ereigniseinrichtung

Magento Theming Ein Einstieg Rainer Wollthan

Daten sichern mit Carbon Copy Cloner

Pascal-Compiler für den Attiny

Wahltaste der Punktzüge. Hier drücken für die Steuerung der Punktzüge. PZ Posidisplay-light

Installation von horizont 4 bei Verwendung mehrerer Datenbanken

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

How To Einbinden von Kartendiensten in eine Java Applikation mit Hilfe des JXMapKit

Snippets - das Erstellen von "Code- Fragmenten" - 1

Systemausgabe des Capture Pro Software FTP-Servers

Das Objektmodell von InDesign

Erstellen eines Screenshot

Qt-Projekte mit Visual Studio 2005

XPubInDesign CS2-PlugIn

Grundlagen der Programmierung APPLETS

Vorkurs Informatik WiSe 15/16

Adobe Encore Einfaches Erstellen einer DVD

Übung - Datenmigration in Windows 7

3D-Modellierung / Motion-Capturing. von Kevin O Brien

Projektthema: Modul Programmiersprachen (Java)

Java Einführung Packages

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Warum kann ein Flugzeug fliegen?

TrueCrypt Anleitung: Datenschutz durch Festplattenverschlüsselung

Installation des Add-Ins für Lineare Algebra in Microsoft Excel

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

DM/I Digitale Medien/Intermedia

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Sculpting und Painting in Maya. Fabian Wilpert 1

Thema: Virtueller 3D Desktop. augmented reality

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Anwenderdokumentation PersoSim

Visual Basic Express Kompilieren mit Skripten

Manual & Installation Guide

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Technische Alternative elektronische Steuerungsgerätegesellschaft mbh. A-3872 Amaliendorf, Langestr. 124 Tel +43 (0)

Adobe Flash CS4»3D-Tool«

Transkript:

Skripting / Modding / Programmierung von 3D-Objekten My-HL Seminar 3D-Modellierung und Virtuelle Präsenz

Überblick Begriff Modding Entstehung von Mods Modifizieren von Spielinhalten Beispiele für Mods Modding: Second Life Scripting: QC, Python 3D-Objekte, Physik ProgrammierBeispiele 2/58

Modding: Eine Einordnung My-HL Ergänzungssets Mutatoren Mods Partial / Total Conversions Standalone Mods Engine-Mods 3/58

Entstehung von Mods Anfänge in der Spieler-Community Manche werden zum kommerziellen Produkt Führen den Erfolg des Spiels weiter Oft erfolgreicher als das Original 4/58

Modifizieren von Spielinhalten Models 5/58

Modifizieren von Spielinhalten Models Texturen 6/58

Modifizieren von Spielinhalten Models Texturen Maps 7/58

Modifizieren von Spielinhalten Hauptspiel Models Texturen Maps Mod1.. z.b. In neuem Ordner mit Struktur des Hauptordners Oft spezielles Container-Dateiformat ähnlich ZIP (z.b. pk3) 8/58

Partial Conversion Nur manche Inhalte werden verändert Wie ableiten von einer Klasse Oft nur neue maps, models und neuer Spielmodus 9/58

Total Conversion Komplett neues Spiel Keine Inhalte aus dem Hauptspiel 10/58

Total Conversion Komplett neues Spiel Keine Inhalte aus dem Hauptspiel Standalone Mod Setzt keine Installation des Hauptspiels voraus Eigenes Spiel auf Basis des anderen Spiels entwickelt 11/58

Bekannte Mods Counter-Strike (Half-Life) Desert Combat (Battlefield 1942) Team Fortress (diverse Spiele) 12/58

Mods - Beispiele Snow War Half-Life 13/58

Mods - Beispiele Wizard Wars Half-Life 14/58

Mods - Beispiele Science & Industry Half-Life 15/58

Mods - Beispiele Worms Half-Life 16/58

Modding in Second Life Aussehen des Avatars Form Haut Haare Augen Kleidung... 17/58

Modding in Second Life Objekte erstellen Aus Grundobjekten Eigene Texturen Auch mit anderen zusammen Video: Suzanne's Guitar 18/58

Modding in Second Life // LSL Beispiel: default { state_entry() { llsay(0, "Hello, Avatar!"); } } Linden Scripting Language Event- und Zustandsbasiert An Objekte gebunden Physik-Simulation Chat-Steuerung 19/58

Modding in Second Life touch_event() { llparticlesystem( [ PSYS_PART_FLAGS, // = PSYS_PART_EMISSIVE_MASK, PSYS_SRC_PATTERN, // = PSYS_SRC_PATTERN_EXPLODE, PSYS_PART_START_COLOR, // = <1,0,0> ] ); } Linden Scripting Language Event- und Zustandsbasiert An Objekte gebunden Physik-Simulation Chat-Steuerung Erstellung und Steuerung von Partikelsystemen 20/58

Modding in Second Life Terrain files 2D Gitter von Höhenwerten 13-Kanal RAW Geometriebild: 1: Height 3: Water Height 5: For Sale 7: Public Edit Land 9: Flying Allowed 21/58

Skripting Kompilierte Sprache Skriptsprache (vorkompiliert) Code Code Compiler Compiler Assembly Code Bytecode CPU Laufzeitinterpretation Software-Interpreter / Virtual Machine 22/58

Skripting Kompilierte Sprache Skriptsprache (vorkompiliert) Code Code Compiler Compiler Assembly Code Bytecode CPU Laufzeitinterpretation Programmierbares Interface Erhöhte Flexibilität Software-Interpreter / Virtual Machine 23/58

Skripting Kompilierte Sprache Skriptsprache (vorkompiliert) Code Code Compiler Compiler Assembly Code CPU Bytecode Software-Interpreter / Virtual Machine Laufzeitinterpretation Programmierbares Interface Erhöhte Flexibilität Skripte oft an bestimmtes Objekt und/oder Ereignis gebunden (Trigger) Viele kleine Skripts 24/58

Skripting in 3D-Umgebungen Objekte platzieren, orientieren, löschen Animationen steuern Spiellogik & Effekte Physik beeinflussen Eventbehandlung Ereignisse auslösen 25/58

QuakeC Eine der ersten Game-Sprachen Speziell für Quake C nachempfunden Vorkompiliert ( qcc ) Bytecode-Interpreter 26/58

QuakeC Individualisierung von Waffen Spiellogik Spielphysik Teile der KI Auslösung von Ereignissen 27/58

QuakeC Individualisierung von Limitierungen Waffen Keine Typdefinitionen Spiellogik Spielphysik Keine Variablendefinitionen Stringfunktionen mit einzelnem Stringbuffer entity ist einziger Referenz-Typ Teile der KI Auslösung von Ereignissen 28/58

Python Weit verbreitet Leicht erlernbar Leicht erweiterbar Eingesetzt z.b. in Blender Maya GIMP Battlefield 2 29/58

Python Skripting in Blender (1) Einbinden über TextWindow -> File Starten mit ALT-P Kann Blender GUI für Parameter nutzen Selektierte Objekte: Blender.Object.GetSelected() 30/58

Python Skripting in Blender (2) # python example - move a plane: import Blender object = Blender.Object.Get("Plane") object.locx += 0.5 object.rotz += 0.2 Blender.Redraw() Objektorientierung ähnlich JavaScript Programm wird im Skript als Objekt eingebunden Programmierung mit der Funktionalität und den Objekten des Hauptprogramms 31/58

Python Skripting in Blender (2) # python example - move a plane: import Blender object = Blender.Object.Get("Plane") object.locx += 0.5 object.rotz += 0.2 Blender.Redraw() # python example - change focal length: import Blender camera = Blender.Camera.Get("Camera") camera.lens = cam.lens * 2.0 Objektorientierung ähnlich JavaScript Programm wird im Skript als Objekt eingebunden Programmierung mit der Funktionalität und den Objekten des Hauptprogramms Blender.Redraw() 32/58

Spezielle 3D-Objekte Kameras 33/58

Spezielle 3D-Objekte Kameras Lichtquellen 34/58

Spezielle 3D-Objekte Kameras Lichtquellen Trigger 35/58

Spezielle 3D-Objekte Kameras Lichtquellen Trigger Effekte 36/58

Spezielle 3D-Objekte Kameras Lichtquellen Trigger Effekte Pfade 37/58

Spezielle 3D-Objekte Kameras Lichtquellen Trigger Effekte Pfade Skelette 38/58

Spezielle 3D-Objekte Kameras Lichtquellen Trigger Effekte Pfade Skelette Sprites 39/58

Modifizieren von 3D-Objekten Affine Transformation (bewegen, drehen,...) 40/58

Modifizieren von 3D-Objekten Affine Transformation (bewegen, drehen,...) Schnittberechnungen (Kollisionserkennung) 41/58

Modifizieren von 3D-Objekten Affine Transformation (bewegen, drehen,...) Schnittberechnungen (Kollisionserkennung) Verformungen (mengenorientiert) 42/58

Modifizieren von 3D-Objekten Affine Transformation (bewegen, drehen,...) Schnittberechnungen (Kollisionserkennung) Verformungen (mengenorientiert) Materialien & Texturen 43/58

Physikalische Eigenschaften Forces Gravity Motor Wind Constraints Point to point Point to path Wheels Ragdoll 44/58

Programmierbeispiel: Türe 45/58

Programmierbeispiel: Türe Trigger-box um die Türe platzieren 46/58

Programmierbeispiel: Türe Trigger-box um die Türe platzieren Drehachse setzen 47/58

Programmierbeispiel: Türe Trigger-box um die Türe platzieren Drehachse setzen Spielfigur schneidet Trigger-box Tastatureingaben Inventar: Keycard? 48/58

Programmierbeispiel: Türe Trigger-box um die Türe platzieren Drehachse setzen Spielfigur schneidet Trigger-box Tastatureingaben Inventar: Keycard? Animation Öffnen 49/58

Programmierbeispiel: Portal 50/58

Programmierbeispiel: Portal Spielfigur berührt Trigger-box im Portal 51/58

Programmierbeispiel: Portal Spielfigur berührt Trigger-box im Portal Translation der Spielfigur zum Zielort??? 52/58

Programmierbeispiel: Jumppad Spielfigur berührt Trigger-box des Jumppads 53/58

Programmierbeispiel: Jumppad Spielfigur berührt Trigger-box des Jumppads Bewegungsrichtung leicht nach oben abändern 54/58

Programmierbeispiel: Jumppad 200 km/h Spielfigur berührt Trigger-box des Jumppads Bewegungsrichtung leicht nach oben abändern Geschwindigkeit auf hohen Wert setzen 55/58

Programmierbeispiel: Jumppad!!! Spielfigur berührt Trigger-box des Jumppads Geschwindigkeit auf hohen Wert setzen & Bewegungsrichtung leicht nach oben abändern Physikengine erledigt den Rest 56/58

Zusammenfassung Begriff Modding Entstehung von Mods Modifizieren von Spielinhalten Beispiele für Mods Modding: Second Life Scripting: QC, Python 3D-Objekte, Physik ProgrammierBeispiele 57/58

Quellenangaben Spielecover & Screenshots: http://images.google.de/ http://www.hlportal.de/ http://secondlife.com/community/land-islands.php http://lindenlifestyles.com/ http://www.kan-ed.org/second-life/using-lsl.html http://www.idsoftware.com/games/quake/quake/ http://www.blender.org/documentation/htmli/c11087.html Videos: http://secondlife.com/showcase/ http://www.youtube.com/watch?v=3rkg-3man3k 58/58