Cave: Einstiegshandbuch
Assets importieren
Lesson 12 of 19 • 50 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
Cave ist eine Spiel-Engine, was bedeutet, dass sie dir ermöglicht, deine Ideen in echte Videospiele umzuwandeln. Es ist ein Mittel, alles zusammenzufassen, deine Level-Designs, Schnittstellen und Logik zu erstellen. Für die tatsächliche Kunstproduktion, wie Texturen, 3D-Modelle, Animationen, Sounds und Musik, möchtest du möglicherweise ein spezialisiertes Tool dafür verwenden. Werkzeuge wie Blender, 3Ds Max, Maya, Sketchup für 3D, Adobe Photoshop, GIMP, Krita für Bildbearbeitung oder Audacity für Audio. Natürlich kannst du auch jedes andere externe Tool für diese Angelegenheit verwenden. Wichtig ist hier:
Die meisten Spiele verwenden Inhalte, die außerhalb der Engine erstellt wurden.
So ist es auch in Cave. Das bedeutet, dass du diese Dateien in die Engine importieren musst, weshalb es essenziell ist, wie und was die guten und schlechten Praktiken zu verstehen. Importieren ist der Schritt, der diese Dateien in Cave bringt, damit sie Teil deines Projekts werden.
Diese Lektion führt in den Anfänger-Import-Workflow ein.
Du wirst lernen:
- Welche Arten von Dateien Cave importieren kann.
- Was importierte Dateien innerhalb von Cave werden.
- Warum einfache erste Importe besser sind als riesige Asset-Pakete.
- Wie Model-Imports mehrere Asset-Typen generieren können.
- Was nach dem Import zu überprüfen ist.
Das Ziel ist es, dir zu helfen, zu verstehen, was passiert, wenn externe Dateien zu Cave-Assets werden.
Was Kann Importiert Werden?
Cave kann mehrere Arten von externen Inhalten importieren.
| Importierter Dateityp | Wird zu |
|---|---|
| Bilder (verschiedene Formate) | Texture-Assets. |
| OGG-Audio | Audio-Assets. |
| TTF-Schriftarten | Schrift-Assets. |
.cavePkg-Dateien |
Importierte Cave-Asset-Pakete. |
| 3D-Modelle | Meshes, Materialien, Texturen, Armaturen, Animationen und Templates je nach Datei. |
Nach dem Import werden diese Dateien zu Cave-Assets im Asset-Browser.
Das bedeutet, dass sie in Szenen, Materialien, Entitäten und Entität-Vorlagen, UI, Audiosystemen, Skripten, Logik, überall verwendet werden können! Importierte Dateien sind nicht mehr nur lose Dateien auf der Festplatte. Sie werden zu Projektinhalten, auf die Cave verweisen, die speichern, organisieren und wiederverwenden kann.
Cave verwendet eigene Formate
Wenn du JEDER Datei in Cave (Bilder, Texturen, Audios, 3D-Modelle usw.) importierst, wird das Asset in Cave Engines proprietäres und benutzerdefiniertes Format konvertiert. Das ist wichtig, weil dieses interne Format viel schneller analysiert werden kann und von der Engine verwendet wird, um die bestmögliche Leistung für dein Spiel zu liefern. Viele interne Optimierungen und Caching werden automatisch von der Engine durchgeführt, um sicherzustellen, dass deine Assets bereit für die Spielproduktion sind.
> All dies ist intern, und du musst dir darüber keine Sorgen machen, aber es ist wichtig für dich zu verstehen, dass dieser Prozess stattfindet und wie er dich beeinflusst (und warum er gut ist).
Wenn du eine .png-Bilddatei in Cave importierst, wird die tatsächliche png-Datei in deinem finalen Spiel nicht verwendet. Es durchläuft einen schnellen Konvertierungsprozess, sobald du es in die Engine ziehst, dann wird stattdessen Caves Format verwendet. Das gleiche passiert, wenn du ein Audio oder ein 3D-Modell importierst. Diese Information ist insbesondere für 3D-Assets wichtig: Cave verwendet keine rohen DCC-Formate wie .fbx, .obj, .glb. Es kann sie importieren, aber sie werden in das Format der Engine konvertiert.
Der Grund, warum dies geschieht, ist, dass das Parsen beliebter Formate wie fbx oder sogar png in einem Spiel teuer ist und die Leistung beeinträchtigen kann. Deshalb extrahiert Cave alle notwendigen Daten, wie Meshes, Materialien, Animationen, Texturen, konvertiert sie und speichert sie im Format der Engine.
Dies hat drei wichtige Implikationen:
- Dein Spiel läuft schneller und nimmt weniger Platz auf der Festplatte ein.
- Das Importieren von Assets ist destruktiv: Cave behält keinen originalen Verweis auf dein RAW-Asset. Wenn du externe Änderungen daran vornimmst, musst du es erneut importieren.
- Einige Funktionen könnten nicht verfügbar sein: Während einige Asset-Formate unterstützt werden, sind einige Funktionen in diesem Format möglicherweise nicht von Cave unterstützt. In diesem Fall wirst du benachrichtigt, und der Importprozess schließt sie nicht in die finalen Assets ein.
Jetzt, da du über den Importprozess informiert bist, lass uns darüber lernen.
Bilder per Drag & Drop importieren
Du kannst Bilder importieren, indem du sie in den Asset-Browser ziehst.
Cave unterstützt die gängigsten Bildformate wie:
- PNG.
- JPG und JPEG.
- TGA.
- BMP.
- HDR.
- PSD.
- PNM.
- GIF.
- PIC.
- DDS.
Importierte Bilder werden zu Texture-Assets und können von Materialien, UI-Elementen, Himmelseinstellungen und anderen Systemen, die Bilddaten benötigen, verwendet werden. Zum Beispiel könnte eine Textur die Farbkarte eines Materialrocks, ein Icon in der UI oder ein Himmel-Bild für eine Szene werden.
Für einen ersten Test halte es einfach: importiere eine Textur, weise sie einem Material zu, platziere dieses Material auf einem Mesh in der Szene und überprüfe das Ergebnis in der 3D-Ansicht.
Audiodateien importieren
Audio kann auch importiert werden, indem du es in das Projekt ziehst. Derzeit importiert Cave OGG-Audiodateien. Wenn du Audio in einem anderen Format hast, konvertiere es vorher in OGG. Du kannst dafür Online-Tools finden, aber wir empfehlen auch die Software Audacity, die kostenlos und extrem einfach zu verstehen ist und das Audio im OGG-Format speichern kann.
Eine OGG-Datei ist ein kostenloses, Open-Source-Multimedia-Containerformat, das von der Xiph.Org Foundation entwickelt wurde. Es wird hauptsächlich verwendet, um qualitativ hochwertige digitale Audiodaten zu streamen und zu speichern, wobei oft eine bessere Klangqualität bei kleineren Dateigrößen als bei traditionellen MP3s erzielt wird. ref
Importierte Audiodateien werden zu einem Audio-Asset, das überall in der Engine verwendet werden kann, zum Beispiel durch Audioplayer-Komponenten, Logik-Bausteine oder über Python-Code aufgerufen werden kann. Beispiel:
cave.playSound("My Audio File")
Gute erste Audioimporte sind kurz und einfach zu testen:
- Ein Münzaufnahme.
- Ein Knopfdruck.
- Eine Türöffnung.
- Eine einfache Ambiente-Schleife.
- Ein Musikstück für den Soundtrack deines Spiels.
Schriftarten und Cave-Pakete importieren
Cave kann TTF-Schriftdateien importieren. TTF (TrueType Font) ist ein Schriftdateiformat, das ursprünglich von Apple entwickelt und später von Microsoft übernommen wurde, und eines der Standardformate ist, das heute für das skalierbare Rendering von digitalem Text verwendet wird.
Schriftarten werden hauptsächlich vom UI-Element-Komponente verwendet, die es dir ermöglicht, HUD, Text, Menüs, Schaltflächen, Untertitel, Credits, Dialogoberflächen usw. zu erstellen. Die Wahl der Schriftart kann einen großen Unterschied machen, selbst in einem einfachen Menü.
Cave-Pakete importieren
Cave kann auch .cavePkg-Dateien importieren. Ein Cave-Paket ist ein Paket von Cave-Assets, das in ein anderes Projekt eingeführt werden kann.
Wenn du zum Asset-Browser gehst und mit der rechten Maustaste auf einen Ordner oder eine Datei klickst, kannst du es als Cave-Paket exportieren. Beim Exportieren eines Pakets kannst du es später in anderen Projekten importieren. Das ist sehr nützlich, um gemeinsame Logik über verschiedene Projekte hinweg zu teilen. Beachte, dass beim Exportieren eines Pakets nur das, was sich im Ordner oder Asset befindet, auf das du mit der rechten Maustaste klickst, eingeschlossen wird. Wenn du also zum Beispiel ein Material exportieren möchtest, das eine Reihe von Texturen verwendet, ist es wichtig, alles in einen Ordner zu packen und dann den Ordner zu exportieren. Andernfalls, wenn du nur das Material importierst, werden die Texturen nicht eingeschlossen.
Wenn du ein Cave-Paket in den Asset-Browser von Cave Engine ziehst und ablegst, wird es importiert, und die ursprüngliche Dateistruktur wird in deinem bestehenden Projekt wiederhergestellt. Sehr nützlich, um wiederverwendbare Assets zu teilen, standardmäßige Inhalte in ein neues Projekt einzufügen oder Teile von Projekten zwischen verschiedenen Projekten zu verschieben.
3D-Modelle importieren
Jetzt haben wir einen der wichtigsten Teile einer 3D-Spiel-Engine erreicht, nämlich das Importieren von 3D-Modellen. Cave verwendet assimp, um eine breite Palette von 3D-Modellformaten über seinen Modell-Importer zu unterstützen.
Er unterstützt mehrere Modellformate über den Importer, aber FBX ist das empfohlene Hauformat für Cave.
Modelle haben die Fähigkeit, mehrere Asset-Typen gleichzeitig zu generieren:
- Meshes.
- Materialien.
- Texturen.
- Armaturen.
- Animationen.
- Entitäts-Templates.
Das genaue Ergebnis hängt von der ursprünglichen Datei ab.
Eine einfache Kiste kann nur ein Mesh, Material, Textur und Template generieren. Ein animierter Charakter kann Meshes, eine Armatur, Animationen, Materialien, Texturen und ein komplexeres Template erzeugen.
Empfohlene erste Importe
Für deine ersten Import-Tests verwende einfache, saubere Assets. Kenney Asset Packs (CC0) sind eine gute anfängerfreundliche Wahl, da sie in der Regel gut organisiert, leichtgewichtig und einfach zu verstehen sind. Du kannst auch Quaternius Assets (CC0) überprüfen oder im FAB Asset Store stöbern.
Gute erste Importe können eine Kiste, einen Stein, einen Low-Poly-Baum, ein einfaches Gebäude oder einen Charakter sein. Vermeide es, mit einem riesigen Charakterpaket oder einer großen Umgebungsdatei zu beginnen. Einfache Assets erleichtern es, zu verstehen, was Cave erzeugt, welche Einstellungen wichtig sind und wie importierte Inhalte im Asset-Browser angezeigt werden. Dann kannst du zu komplexeren Setups übergehen.
Importieren eines Modells Schritt für Schritt
Wenn du ein Asset (wie FBX) in den Asset-Browser von Cave ziehst und ablegst, siehst du ein Fenster wie dieses:

Es unterstützt das Ziehen und Ablegen mehrerer Dateien auf einmal, und für jede Datei wird ein Tab erstellt. Für jeden Tab kannst du die Assets auswählen, die du importieren möchtest. Dies zeigt auch, welche Asset-Typen erkannt wurden, und wenn du jeden Asset-Typ-Header erweiterst, welche Assets von Cave Importer erkannt und konvertiert wurden. Es wird dir auch ermöglichen, individuell auszuwählen, was du importieren möchtest oder nicht, und die Dateien entsprechend umzubenennen. Du kannst die importierten Asset-Namen später ebenfalls ändern.
Oben, vor jedem Dateitab, finden Sie zwei globale Optionen (pro Asset-Import):
- Die Einstellungen, die es Ihnen ermöglichen, auszuwählen, ob Sie einen Unterordner für das importierte Asset erstellen möchten oder nicht, oder ob Sie automatisch Physik im Entity-Template generieren möchten, das von der Engine erstellt wird.
- Und auch die Filter-Optionen, die nützlich sind, wenn Sie Dutzende von Assets und Knoten importieren und nur an einer bestimmten Sache in der Datei interessiert sind, wie z.B. dem Mesh.
Ein grundlegender Modellimport sieht normalerweise so aus:
- Erstellen oder wählen Sie einen Ordner im Asset-Browser.
- Ziehen Sie die Modell-Datei in diesen Ordner.
- Warten Sie, bis Cave die Datei geparsed hat.
- Überprüfen Sie die Importoptionen.
- Wählen Sie aus, welche generierten Assets importiert werden sollen.
- Passen Sie den Importmaßstab bei Bedarf an.
- Bestätigen Sie den Import.
- Überprüfen Sie die generierten Assets im Asset-Browser.
Die Importoptionen können generierte Assets nach Typ gruppiert anzeigen.
Dies ermöglicht es Ihnen zu entscheiden, was importiert werden soll, anstatt alles blind zu akzeptieren. Das ist nützlich, weil Modell-Dateien mehr Daten enthalten können, als Sie tatsächlich benötigen.
WICHTIGER TIPP:
Wenn Sie Hunderte von Assets oder ein Asset-Pack herunterladen, wie das Kenney- oder Quaternius-Asset-Pack, werden Sie feststellen, dass diese Packs normalerweise eine andere FBX-Datei pro Objekt haben, und in jeder FBX-Datei befindet sich eine Kopie des Materials und manchmal sogar die Textur, die über all diese Assets verwendet wird.
Wenn Sie alle diese Assets, die eine Kopie desselben Materials in jeder Datei enthalten, ziehen und ablegen, wird Cave, wie zu erwarten, auch alle Kopien importieren, wodurch eine Menge unnötiger Daten in Ihr Projekt eingefügt werden und letztlich die Leistung Ihres Spiels beeinträchtigen. Das ist kein Fehler der Engine, es liegt einfach daran, dass in jeder FBX-Datei eine Kopie der Materialien vorhanden ist.
Die beste Praxis in diesem Fall besteht darin, zuerst eine einzige FBX-Datei in die Engine zu importieren, zu überprüfen, was sich in dieser Datei befindet, und das Material darin zu bestätigen. Sobald diese erste Datei importiert ist und das Material in Ihrem Projekt vorhanden ist, importieren Sie alle anderen, indem Sie die Filter verwenden, um den Import von Material und Textur zu deaktivieren, da sie bereits von der Engine für Ihre erste Datei importiert wurden. Dann wird Cave, wenn Sie importieren, tatsächlich versuchen, dieses bereits importierte Material anhand des Namens zu finden und es stattdessen zu verwenden.
Verständnis importierter Meshes
Ein importiertes Modell kann ein Mesh oder viele Meshes erzeugen. Dies hängt davon ab, wie das Modell im ursprünglichen DCC-Tool erstellt wurde.
Zum Beispiel:
| Quellmodell | Möglicher Importergebnis |
|---|---|
| Einfache Kiste | Ein Mesh, ein Material, ein Entity-Template. |
| Objekt mit separaten Teilen | Mehrere Meshes und Materialien, ein Entity-Template. |
| Animierter Charakter | Meshes, Armatur und Animationen, ein Entity-Template. |
Überprüfen Sie nach dem Import die generierten Mesh-Assets und das generierte Entity-Template.
Beachten Sie, dass für jeden Import ein Entity-Template erstellt wird.
Das Entity-Template versucht, die von Ihnen in Ihrem DCC-Tool, wie Blender, erstellten Szeneneinstellungen zu replizieren, wie das Anordnen von Objekten an bestimmten Stellen usw. Es wird als Entity-Template vorhanden sein. Sie werden normalerweise nicht das rohe Entity-Template verwenden, aber es ist nützlich, um die Objekte in Ihrer Szene schnell zu identifizieren oder sie lokal zu machen, anstatt ein Template zu verwenden und in Cave mit der Bearbeitung zu beginnen.
Sobald Sie Ihr Asset importiert haben, überprüfen Sie auf häufige Probleme:
- Ist das Objekt zu klein?
- Ist es zu groß?
- Ist es falsch rotiert?
- Wurde es auf unerwartete Weise gesplittet?
- Sieht das generierte Template korrekt aus?
Es ist besser, diese Probleme sofort zu erkennen, anstatt nachdem Sie das Asset bereits in einem Level verwendet haben.
Wenn Sie ein Problem mit den importierten Assets feststellen, ist es ratsam, sie in Blender oder in einem beliebigen DCC zu öffnen, um zu sehen, ob sie korrekt sind. Wir empfehlen auch, die Asset-Meshes vor dem Import in Cave zu triangulieren.
WICHTIG: Wenn Sie ein 3D-Modell in Cave importieren, versucht die Engine automatisch, die Flächen zu triangulieren. Aber manchmal kann es zu Triangulationsfehlern kommen, die dazu führen, dass Ihr 3D-Modell "Löcher" oder falsch erstellte Flächen hat. Um dies zu vermeiden, empfehlen wir Ihnen stets, in Ihrem DCC-Modellierungstool selbst die Flächen zu triangulieren.
Verständnis von Materialien und Texturen
Importierte Modelle können auch Materialien und Texturen generieren.
Ein Material steuert, wie eine Oberfläche aussieht. Eine Textur liefert Bilddaten, die vom Material verwendet werden.
Überprüfen Sie nach dem Import immer das Material:
- Ist die Albedo-Textur zugewiesen?
- Sind die Normalmaps korrekt zugewiesen?
- Wurden Rauheits- oder Metallkarten importiert?
- Sieht das Material in der Ansicht korrekt aus?
Importe sind nützlich, aber sie sind keine Magie.
Es ist normal, Materialien nach dem Import anzupassen. Beispielsweise müssen Sie möglicherweise die Rauheit anpassen, eine fehlende Textur reparieren oder eine bessere Materialkonfiguration für den visuellen Stil Ihres Spiels wählen.
Multimaterial-Meshes
In Cave verwendet ein Mesh ein Material. Wenn ein Objekt in Ihrem DCC-Tool mehrere Materialien verwendet, stellt Cave dies als mehrere Meshes dar.
Eine Entity kann weiterhin mehrere Mesh-Komponenten haben, sodass das endgültige Objekt in der Szene gleich aussehen kann. Die Struktur ist nur unterschiedlich:
Objekt Mit Mehreren Materialien
Mesh-Komponente verwendet Material A
Mesh-Komponente verwendet Material B
Mesh-Komponente verwendet Material C
Dies gibt Cave eine saubere Eins-zu-Eins-Beziehung zwischen Mesh und Material und ermöglicht es dennoch, dass komplexe importierte Objekte korrekt angezeigt werden.
Aufgrund der Funktionsweise von Cave werden Sie beim Import eines Multimaterial-Meshes in Ihr Projekt feststellen, dass das Mesh im Asset-Browser in verschiedene Teile aufgeteilt wird. Aber Cave wird versuchen, die endgültige Entity im Entity-Template für Sie mit allen kombinerten Meshes wiederherzustellen.
Importiertes Entity-Template
Beim Importieren eines Modells erstellt Cave ein Entity-Template, das das ursprüngliche Setup repräsentiert. Dieses Template ist nützlich, da es die beabsichtigte Zusammensetzung so gut wie möglich bewahrt.
Ein importiertes Gebäude könnte beispielsweise folgendes erzeugen:
- Mehrere Mesh-Assets.
- Mehrere Material-Assets.
- Textur-Assets.
- Ein Entity-Template, das die Teile zusammenfügt.
Dieses Template ist normalerweise das einfachste Asset, das in die Szene gezogen werden kann.
Wenn das importierte Objekt als Template korrekt aussieht, können Sie es wie jedes andere Cave-Template wiederverwenden. Ziel ist es, diese Assets in Szenen zu bringen und sie in spielbare Räume zu verwandeln.
Grundlegende Importtipps
Halten Sie Importe sauber:
- Bevorzugen Sie FBX für Modelle.
- Triangulieren Sie die Flächen vorher.
- Verwenden Sie OGG für Audio.
- Halten Sie die Asset-Namen leserlich.
- Bevorzugen Sie Namen mit Leerzeichen oder PascalCase.
- Importieren Sie in organisierte Ordner.
- Überprüfen Sie den Importmaßstab.
- Überprüfen Sie generierte Materialien.
- Testen Sie das importierte Template in der Ansicht.
- Speichern Sie nach dem Import.
Der Import ist ein normaler Teil der Entwicklung.
Führen Sie ihn in kleinen Schritten aus, inspizieren Sie das Ergebnis und bauen Sie dann weiter auf. Ein sauberer Importworkflow spart Ihnen viel Zeit, sobald Ihr Projekt mehr benutzerdefinierte Inhalte verwendet.