Gamasutra Iwan Gabovitch s Blog - Mit Blender 3D als 3D-Map-Editor, anstatt die Programmierung Ihrer

Mit Blender 3D als 3D-Map-Editor, anstatt Ihre eigene Programmierung von Grund auf neu

Die folgende Blog-Post, sofern nicht anders angegeben, wurde von einem Mitglied von Gamasutra-Community geschrieben.
Die Gedanken und Meinungen sind diejenigen des Verfassers und nicht Gamasutra oder ihre Muttergesellschaft.

Ein Problem, das bei der Entwicklung von Spielen gelöst werden muss, ist, wie die Kunst aus dem Modellierungswerkzeug in das Spiel zu bekommen.

Die Antwort mag trivial sein: „das Modell exportiert Nur in einem Dateiformat, das von der Grafik-Engine gelesen werden kann!“ Leider ist dies nicht so einfach ist, auch wenn sowohl die Modellierungssoftware und Ihre Grafik-Engine unterstützt das gleiche Dateiformat.

Inhalt, Inhalt, Metadaten

Viele nicht-grafischen Informationsstücke (Metadaten) vorgesehen werden müssen. In unserem Rennspiel SuperTuxKart (STK) zum Beispiel, müssen Kartenmodelle weiter Detail:

  • Kart Startpositionen.
  • Netz der Einfahrt.
  • Position von Elementen Box (Power-Ups) und Bananen (Fallen).
  • Art der Spur (Arena oder Rennen).
  • Name des Kartendesigner.
  • Kann die Karte in umgekehrter Richtung gefahren werden?
  • Welche Musik gespielt werden sollte?
  • Wie animierte Objekte zu handhaben?
  • Was für grafische Effekte (Partikel, animierte Texturen, Schnee) und welche Geräusche sollten und wo eingesetzt werden?
  • Optimierungen wie Backface-Culling.

Das Rad neu erfinden. nicht!

Usualy, ist die Antwort auf diese Fragen über einen eigenen Editor zu erstellen, die 3D-Modellierung ermöglicht und exportiert die zusätzlichen Daten erforderlich, um tatsächlich eine Ebene oder ein Objekt (oder Kart) im Spiel zu verwenden.

Erstellen und so ein Stück des Inhalts pipleline Aufrechterhaltung erfordert Ressourcen und verlangsamen oder sogar andere Entwicklung zu stoppen, je nach Teamgröße. Mit den drei Freizeit Programmierern in unserem Team, konnten wir diese Investition nicht leisten.

Ein Track-Editor hat vor von einem Community-Mitglied Jahren entwickelt worden, aber es war nie auch nur annähernd zu der Möglichkeit, den Überblick über eine ausreichende Qualität zu entwerfen und wurde schließlich aufgegeben. Statt einen solchen Aufwand neu zu starten, haben wir uns für einen etwas anderen Ansatz.

Die Erweiterung des Modellierungswerkzeug

Wir erweitern das bestehende Modellierungswerkzeug häufig zum Erstellen von Spuren verwendet: Blender (ein Werkzeug, zum Beispiel von der renommierten Indie-Spiel creatorsWolfire verwendet wird), so dass die notwendigen Optionen können in Blender GUI eingestellt werden. Unsere Skripte für Spuren und Karts Export machen diese Optionen in Spiel verfügbar.

Dieses Verfahren reduziert die Entwicklungszeit und erlaubt ein Werkzeug, das bereits viele Künstler gibt, ist bekannt und hat Tonnen von Dokumentation zur Verfügung, Inhalte zu erstellen, die perfekt passen vier unser Spiel ist. Wir brauchen nur unsere spezifische Erweiterungen zu dokumentieren.

Die Magie hinter der Szene, die es möglich, nehmen eine Karte in Blender und führen Sie es in SuperTuxKart macht wird von mehreren Python-Plugins aus. Das erste Plugin, das im Screenshot zu sehen ist, ist das „Panel“ Plugin. Sobald dieses Plugin, um Blender, ein paar spielspezifische Panels hinzugefügt wird, erscheinen in der Eigenschaftenansicht (eine für Objekteigenschaften, eine für Szeneneigenschaften, eine für Materialeigenschaften).

Mit ein paar Klicks in dem Fenster Eigenschaften, können Sie ändern den Himmel, machen es Schnee oder regen, fügen Nebel, machen Sie eine Wasseroberfläche animiert oder angeben, dass Partikel oder Sound-Effekte von einem Punkt emittiert werden!

Da ist zunächst die Spur Exportskript, die diese Eigenschaften liest und exportiert sie in XML-Dateien für das Spiel Kern zu lesen (die Unterstützung für die Bewegung / animierte Objekte enthält). Der „B3D“ Skript exportiert auch das Netz an das B3D-Dateiformat (die auch Skelett-Animation sowie Vertexfarben und mehrere UV-Karten für Lightmaps und Normal Maps unterstützt).

Die Materialtafel führt automatisch alle Texturen in der Mischung Datei und ermöglicht mehrere Eigenschaften spezifiziert, zum Beispiel:

Powerups und Fallen (Leckereien und baddies)

Es ist schön, das statische Modell haben, aber nach all dies ist ein Spiel, so müssen wir dem Spieler einige Goodies und Bösewichte geben! Glücklicherweise gibt es eine einfache Möglichkeit, um sie hinzuzufügen. unsere Plug-in, das globale Menü „Hinzufügen“ von Mixern mit neuen Objekttypen spezifisch SuperTuxKart, wie Geschenk-Boxen, Nitro oder Bananen erstrecken.

Antriebsstrang und checklines

Diese einfachen Maschen werden dann von dem Ausführer in etwas verarbeitet, die in dem Spiel einfach zu importieren und von KIs zu folgen. Checklines werden zusätzlich zu dem hinzugefügt Betrug zu verhindern.

Schlussfolgerung

Während die Python-API-Dokumentation ist nicht immer optimal, und während ein paar API-Änderungen alles brach und hat uns in der Vergangenheit, Blender Python API ist sehr flexibel und leistungsstark und ein wesentlicher Bestandteil unseres Spiels Entwicklung Workflow laut schwören, die hoffentlich andere inspirieren ihre Werkzeuge mit ihm zu entwerfen.

Immer auf der Suche nach Content-Ersteller

Wir suchen immer nach Modellierer uns unsere älteren, weniger beeindruckenden Welten zu verbessern. Wenn Sie Erfahrung in der Modellierung) haben und fühlen Sie sich wie zu helfen, werden Sie herzlich auf unserem Forum begrüßt. Mailingliste und ein IRC-Kanal!

Weitere Einzelheiten unserer Kartenherstellung Prozess kann in der Spur Makers Guide.

Passende Jobs

Gamasutra Iwan Gabovitch s Blog - Mit Blender 3D als 3D-Map-Editor, anstatt die Programmierung Ihrer

Sanzaru Games Inc. - Foster City, Kalifornien, USA
[07.21.17]
Umwelt Künstler

Gamasutra Iwan Gabovitch s Blog - Mit Blender 3D als 3D-Map-Editor, anstatt die Programmierung Ihrer

In Verbindung stehende Artikel