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 so konzipiert, dass es einfach zu erlernen ist, aber es gibt dennoch einige wichtige Konzepte, die Sie verstehen müssen.

Diese Lektion erklärt die Begriffe, die Sie überall im Editor sehen werden: Szene, Entität, Komponente, Asset, Entitätstemplate, Transformation, starrer Körper, Charakterkomponente, Python-Komponente, Logikstein, Zeitachse und Laufzeit.

Dies ist eine Übersicht auf höchster Ebene, und sie geht nicht auf die Details jedes Begriffs ein, aber es ist wichtig, um Ihr Verständnis der Engine zu verbessern. Sobald diese Begriffe Sinn machen, wird der Rest der Engine viel einfacher zu lesen.

Das große Ganze

Die meisten Cave-Projekte bestehen aus einigen wiederkehrenden Ideen:

Konzept Einfache Bedeutung
Szene Ein Level, Menü, Testbereich oder spielbarer Raum.
Entität Ein Objekt innerhalb einer Szene.
Komponente Eine Funktion, die einer Entität angehängt ist.
Asset Wiederverwendbare Projektinhalte, die im Asset-Browser gespeichert sind.
Entitätstemplate Ein wiederverwendbares Entitäts-Setup, ähnlich einem Prefab.

Zum Beispiel, stellen Sie sich eine Holzkiste in einem Level vor:

image.png

  • Das Level ist eine Szene.
  • Die Kiste, die im Level platziert ist, ist eine Entität.
  • Die Position der Kiste wird in ihrer Transformation gespeichert.
  • Das sichtbare Modell wird von einer Mesh-Komponente verarbeitet.
  • Die Kollision kann durch eine Rigid Body Component verarbeitet werden.
  • Das Modell, Material und die Textur, die von der Kiste verwendet werden, sind Assets.

Wenn Sie diese Kistenkonfiguration in vielen Szenen wiederverwenden möchten, können Sie sie als Entitätstemplate speichern.

Szene

Eine Szene ist eine Sammlung von Entitäten.

Szenen können verwendet werden für:

  • Spiellevel.
  • Menüs.
  • Testkarten.
  • Prototyp-Räume.
  • Cutscene-Bereiche.

Nur die aktive Szene wird im Haupt-3D-View bearbeitet. Wenn Sie das Spiel testen, läuft Cave die Szene als Gameplay und nicht nur den Inhaltseditor.

Beim Exportieren oder Testen des Projekts als Laufzeit entscheiden die Projekteinstellungen, welche Szene als Startszene verwendet wird. Sie können das ändern, indem Sie zum Einstellungen-Register gehen.

Entität

Eine Entität ist ein Objekt in einer Szene.

Entitäten können sichtbar oder unsichtbar sein. Sie können einfach oder komplex sein.

Beispiele für Entitäten:

  • Ein Spielercharakter.
  • Eine Tür.
  • Eine Kamera.
  • Ein Licht.
  • Ein Trigger.
  • Ein UI-Button.
  • Ein Spawn-Punkt.
  • Ein Ordner zur Organisation.

Eine Entität selbst ist hauptsächlich ein Container. Was sie tatsächlich tun kann, hängt von den angehängten Komponenten ab.

Komponente

Eine Komponente fügt einer Entität Verhalten oder Daten hinzu.

Anstatt einen riesigen Objekttyp für jedes mögliche Element zu haben, lässt Cave Sie Entitäten durch das Kombinieren von Komponenten erstellen. Und genau so sollen Sie die verschiedenen Elemente Ihres Spiels erstellen, indem Sie die Entitäten mit mehreren verschiedenen Komponententypen zusammensetzen.

Zum Beispiel:

Entität Mögliche Komponenten
Statische Wand Transformation, Mesh, Rigid Body.
Spieler Transformation, Charakter, Kamera, Python.
Tür Transformation, Mesh, Rigid Body, Python oder Logiksteine.
Punktlicht Transformation, Licht.
UI-Button UI-Element.

Das ist eine der wichtigsten Ideen in Cave: Entitäten sind Container. Komponenten geben ihnen Funktionen.

Es ist auch wichtig zu erwähnen, dass eine andere Möglichkeit, Ihre verschiedenen Objekttypen zu erstellen, darin besteht, mehrere Entitäten in der Kind-Entitäten-Hierarchie zu verwenden.

Entitätenbenennung

Wenn Sie eine neue Entität erstellen, bietet Cave verschiedene Starttypen an, wie Ordner, Leer, Mesh, Punktlicht, Kamera, UI-Element, Text und Button.

Diese sind nicht vollständig separate Welten. Sie sind praktische Ausgangspunkte.

Zum Beispiel:

  • Eine Leere ist eine grundlegende Entität mit einer Transformation.
  • Eine Mesh-Entität ist eine Entität, die für die Anzeige eines Mesh vorbereitet ist.
  • Eine Punktlicht-Entität ist eine Entität, die so konzipiert ist, dass sie sich wie ein Licht verhält.
  • Eine Kamera-Entität ist eine Entität, die darauf vorbereitet ist, eine Ansicht zu rendern.
  • Ein Ordner ist eine Entität, die hauptsächlich zur Organisation verwendet wird.

Sie können später in der Regel Komponenten hinzufügen, entfernen oder bearbeiten, sodass der Starttyp nur eine nützliche Abkürzung ist.

Transformation

Die Transformation sagt Cave, wo sich eine Entität befindet und wie sie orientiert ist.

Sie umfasst:

  • Position.
  • Rotation.
  • Skalierung.

Fast jede Szeneentität hat eine Transformation, da die meisten Objekte irgendwo in der Welt existieren müssen. Wenn Sie eine Entität mit dem Gizmo bewegen, drehen oder skalieren, bearbeiten Sie ihre Transformation. Wenn eine Entität einer anderen Entität übergeordnet ist, wird ihre Transformation relativ zu dieser Hierarchie bewertet.

Asset

Ein Asset ist wiederverwendbare Projektinhalte, die im Asset-Browser gespeichert sind. Es ist wichtig zu erwähnen, dass, während eine Entität intern als ein Asset betrachtet wird, ein Asset nicht dasselbe ist wie eine Entität.

Zum Beispiel:

  • Ein Mesh-Asset sind die Modellaudaten. Eine Mesh-Entität ist ein Objekt, das in der Szene platziert ist und dieses Mesh-Asset verwendet.
  • Ein Material-Asset definiert, wie eine Oberfläche aussieht. Eine Mesh-Entität kann auf dieses Material verweisen.
  • Ein Python-Skript-Asset enthält Code. Eine Python-Komponente kann dieses Skript verwenden.

Diese Trennung ist leistungsfähig, da ein Asset viele Male wiederverwendet werden kann. Wenn zehn Kisten dasselbe Material verwenden, kann die Bearbeitung des Material-Assets alle von ihnen aktualisieren.

Entitätstemplate

Ein Entitätstemplate ist ein wiederverwendbares Entitäts-Setup. Überprüfen Sie den Screenshot unten. Entitätstemplate-Assets sind mit einer grünen Linie unter dem Miniaturbild gekennzeichnet:

image.png

Wenn Sie aus einer anderen Engine kommen, können Sie daran denken, dass es ähnlich wie ein Prefab ist.

Ein Entitätstemplate kann speichern:

  • Eine Entitätenhierarchie.
  • Komponenten.
  • Komponenteneinstellungen.
  • Asset-Verweisen.
  • Kindentitäten.

Das ist nützlich für alles, was Sie wiederverwenden möchten:

  • Gegner.
  • Einsammelobjekte.
  • Türen.
  • Requisiten.
  • Fahrzeuge.
  • UI-Widgets.
  • Gameplay-Objekte.

Anstatt dasselbe Objekt immer wieder neu zu erstellen, erstellen Sie es einmal als Entitätstemplate und platzieren Instanzen davon, wo es nötig ist.

Rigid Body

Ein starrer Körper gibt einer Entität physikalisches Verhalten. Er wird verwendet, wenn ein Objekt Kollisionen oder physikalische Bewegungen benötigt.

Beispiele:

  • Eine Kiste, die den Spieler blockiert.
  • Ein Ball, der rollen kann.
  • Eine Tür mit Kollision.
  • Eine Wand, durch die der Spieler nicht hindurch kann.

Starre Körper sind Teil der physikalischen Seite der Engine. Sie werden eingesetzt, wenn Objekte physikalisch mit der Welt interagieren müssen.

Charakterkomponente

Eine Charakterkomponente wird für charakterähnliche Bewegungen verwendet. Dies ist anders als ein regulärer starrer Körper, da ein Charakter normalerweise spezielles Verhalten benötigt:

  • Gehen.
  • An Wänden entlang rutschen.
  • Mit Steigungen umgehen.
  • Springen.
  • Auf Spielerinteraktionen reagieren.

Für einen Spieler oder NPC ist eine Charakterkomponente normalerweise ein besserer Ausgangspunkt, als zu versuchen, ein grundlegendes physikalisches Objekt so zu gestalten, dass es sich wie ein Charakter verhält.

Wenn wir über eine Charakterkomponente in Cave sprechen, beziehen wir uns auf die Charakterphysik und nicht auf spielspezifische Logik (wie Bewegung usw.).

Tags und Eigenschaften

Tags und Eigenschaften helfen Ihnen, Entitäten zu identifizieren und zu konfigurieren.

  • Ein Tag ist ein Label, das Skripten oder Logik hilft, Dinge zu finden und zu kategorisieren.
  • Eigenschaften sind bearbeitbare Werte, die im Editor angezeigt werden. Sie ermöglichen es Ihnen, das Verhalten anzupassen, ohne den Code jedes Mal neu schreiben zu müssen.

Zum Beispiel könnte ein Gegner Eigenschaften haben wie:

  • Gehgeschwindigkeit.
  • Gesundheit.
  • Angriffsreichweite.
  • Patrouillenziel.

Ein guter Umgang mit Eigenschaften macht Ihr Spiel einfacher zu optimieren.

Eigenschaften sind nicht auf Entitäten beschränkt: Szenen, Logiksteine und andere Assets können ebenfalls über Eigenschaften verfügen.

Wenn wir in Cave von Eigenschaften sprechen, beziehen wir uns speziell auf solche Eigenschaften, die über Python-Wörterbücher im Code zugänglich sind. Sie sind fast immer auch im Editor verfügbar.

Python-Komponente

Eine Python-Komponente ermöglicht es einer Entität, Python-Logik auszuführen.

Das ist nützlich, wenn Sie individuelles Verhalten wünschen, wie:

  • Eine Tür öffnen.
  • Eine Plattform bewegen.
  • Spielerinteraktion verarbeiten.
  • Ein Objekt erzeugen.
  • UI-Text aktualisieren.
  • Ereignisse auslösen.

Python-Komponenten sind eine der Hauptmethoden, um Gameplay in Cave zu programmieren.

Python-Code-Komponente

Eine Python-Code-Komponente wird verwendet, wenn der Code direkt in der Komponente gespeichert ist, anstatt als separates Skript-Asset verlinkt zu werden. Dies kann nützlich für schnelle Tests, kleine Verhaltensweisen oder Prototypen sein.

Für größere Gameplay-Systeme ist ein separates Python-Skript-Asset normalerweise einfacher zu organisieren und wiederzuverwenden.

Logikstein

Logiksteine sind eine visuelle Möglichkeit, Logik zu erstellen. Sie sind nützlich, wenn Sie Verhalten möchten, ohne Python-Code direkt zu schreiben.

Wenn Sie Unreal's Blueprints kennen, sind Logiksteine in einer ähnlichen Ideenfamilie: Sie verbinden Logik visuell, anstatt alles als Text zu schreiben.

Sie sind speziell nützlich, um jede Art von Logik zu erstellen, die Sie wünschen, ohne dass es notwendig ist, Python-Code zu schreiben. Zum Beispiel Gameplay-Ereignisse und Logik, Objektverhalten, Systeme zu verbinden, Trigger usw.

Sie werden sie später in diesem Leitfaden lernen.

Zeitachse

Eine Zeitachse ist ein Asset, das für autorisierte Sequenzen verwendet wird. Zeitachsen können Animationen oder Auslöser über die Zeit hinweg erstellen.

Sie sind nützlich für:

  • Cutscenes.
  • Kamerabewegungen.
  • Skriptevents.
  • Koordinierten Gameplay-Sequenzen.

Zeitachsen sind nicht für jedes Spiel erforderlich, aber sie sind nützlich, wenn Sie möchten, dass etwas in einer bestimmten autorisierten Reihenfolge geschieht.

Wichtig: Zeitachsen sind keine Mittel zur individuellen Animationsbearbeitung, wie z. B. zur Bearbeitung einer Gehzyklus-Animation für Ihren Charakter. In diesem Fall müssen Sie eine spezialisierte DCC-Software wie Blender verwenden, und diese dann in Cave importieren.

Spieler und Spiellaufzeit

  • Der Cave-Editor ist der Ort, an dem Sie das Projekt erstellen.
  • Der Cave-Player ist die Laufzeit, die das Spiel ausführt.

Wenn Sie im Editor auf Wiedergabe drücken, führt Cave Ihre Szene in einem spielähnlichen Modus innerhalb des Editors aus. Wenn Sie als eigenständige Laufzeit testen, startet Cave das Spiel in einem separaten Player-Fenster.

Das final exportierte Spiel läuft als Player-/Laufzeit-Build, nicht als der Editor. Diese Trennung ist wichtig, denn einige Dinge sind nur im Editor verfügbar (um Ihr Projekt zu debuggen und/oder zu entwickeln), während andere Teil des eigentlichen Spiels sind.

Die Wichtigste Beziehung

Wenn Sie sich nur an eine Sache aus dieser Lektion erinnern, merken Sie sich Folgendes:

Eine Szene enthält Entitäten, Entitäten enthalten Komponenten, und Komponenten verwenden oft Assets.

Das ist das Rückgrat eines Cave-Projekts.