Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Entity Templates sind Caves wiederverwendbares Entitätssystem.

Sie ermöglichen es Ihnen, ein Entität-Setup einmal zu erstellen, es als Asset zu speichern und Instanzen davon über Szenen hinweg zu platzieren.

image.png

Wenn Sie von einer anderen Engine kommen, können Sie sich Entity Templates wie Caves prefab-ähnlichen Workflow vorstellen. Wenn Sie neu in Game Engines sind, denken Sie an sie als wiederverwendbare Objekt-Rezepte.

Anstatt immer wieder dieselbe Tür, denselben Feind, dasselbe Pickup oder dasselbe UI-Widget zu erstellen, erstellen Sie das Setup einmal und verwenden es überall dort, wo Sie es benötigen.

Was sind Entity Templates?

Ein Entity Template ist ein Asset, das eine Entitätsstruktur speichert.

Es kann folgendes enthalten:

  • Eine Wurzelentität (jedes Template MUSS eine und nur eine Wurzelentität haben).
  • Kind-Entitäten.
  • Komponenten.
  • Komponenteneinstellungen.
  • Asset-Referenzen.
  • Eigenschaften.
  • Tags.

Wenn Sie ein Template in eine Szene platzieren, erstellt Cave eine Instanz dieses Templates.

Die Instanz verwendet das Template-Asset als Basis, was bedeutet, dass sie die gleiche interne Struktur beibehalten kann, während sie weiterhin als platziertes Objekt in einer bestimmten Szene existiert.

Warum Entity Templates wichtig sind

Viele Spielobjekte bestehen nicht nur aus einem Mesh.

Ein Pickup könnte folgendes enthalten:

  • Ein sichtbares Modell.
  • Einen Trigger.
  • Ein Licht.
  • Einen Partikeleffekt.
  • Ein Geräusch.
  • Logik, die die Belohnung vergibt.

Ein Template ermöglicht es Ihnen, das gesamte Setup zusammenzuhalten.

Verwenden Sie Entity Templates für Dinge wie:

  • Spielfiguren.
  • Feinde.
  • Pickups.
  • Türen.
  • Kugeln.
  • Fahrzeuge.
  • Portale.
  • Schadensvolumen.
  • Requisiten.
  • UI-Elemente.
  • Wiederverwendbare Gameplay-Objekte.

Templates sparen Zeit, halten jedoch auch wiederholte Objekte konsistent. Wenn jedes Gesundheits-Pickup aus demselben Template stammt, können Sie das Template einmal verbessern und das Projekt organisiert halten.

Erstellen eines Entity Templates

Sie können ein Entity Template im Asset-Browser erstellen oder eine vorhandene Szenen-Entität in ein Template umwandeln, indem Sie im Szenenbaum mit der rechten Maustaste darauf klicken oder Ctrl + T drücken, um die ausgewählte zu befördern.

Ein gängiger Workflow ist es, das Objekt zuerst direkt in einer Szene zu erstellen, es zu testen und es erst dann in ein Template zu verwandeln, wenn das Setup nützlich ist. Es sieht so aus:

  1. Erstellen Sie eine Entität in einer Szene.
  2. Fügen Sie die benötigten Komponenten und Kinder hinzu.
  3. Passen Sie die Einstellungen an.
  4. Befördern Sie es zu einem Entity Template.
  5. Verwenden Sie dieses Template in derselben Szene oder in anderen Szenen.

Aber sobald Sie sicher sind, dass Sie so etwas wiederverwenden werden, wie den Spieler, Feinde, Power-ups usw., ist es eine gute Praxis, es sofort zu erstellen, entweder im Asset-Browser oder indem Sie es wie zuvor vorgeschlagen befördern.

Im Szenenbaum kann das Schnellbearbeitungsmenü eine Entität in ein Template befördern. Die von dem Editor angezeigte Tastenkombination ist Ctrl + T.

Template-Asset vs. Template-Instanz

Es ist hilfreich, das Template-Asset von der platzierten Instanz zu trennen.

Konzept Bedeutung
Template-Asset Das wiederverwendbare Objekt-Setup, das im Asset-Browser gespeichert ist.
Template-Instanz Eine platzierte Kopie dieses Templates innerhalb einer Szene.

Das Asset definiert die wiederverwendbare Struktur.

Die Instanz ist der Ort, an dem diese wiederverwendbare Struktur in einer bestimmten Szene erscheint.

Bearbeiten eines Entity Templates

Templates werden als eigenes Asset bearbeitet.

Wenn Sie ein Template zur Bearbeitung öffnen, wechselt Cave zu einer Template-Bearbeitungsszene, sodass Sie die interne Entitätsstruktur des Templates direkt bearbeiten können.

Die wichtige Idee ist:

> Das Template besitzt seine interne Hierarchie.

Szeneninstanzen verwenden diese Hierarchie, aber sie besitzen nicht direkt jedes Kind darin. Dies hält alle Instanzen mit demselben wiederverwendbaren Setup verbunden.

Es ist erwähnenswert, dass dies falsch wird, sobald das Spiel startet, da beim Start des Spiels die gesamte Hierarchie des Templates sofort verfügbar ist, um angepasst zu werden. Während Sie Ihre Spiel-Logik programmieren, können Sie erwarten, mit der Instanz von Entity Templates, Kindern usw. interagieren zu können.

Zum Beispiel, wenn Sie ein Enemy-Template öffnen und ein neues Health Bar-Kind darin hinzufügen, kann jede Instanz dieses Feind-Templates von der aktualisierten Struktur profitieren.

Warum Template-Kinder nicht direkt in der Szene bearbeitet werden

Wenn eine Template-Instanz in einer Szene platziert wird, gehören die internen Kinder weiterhin zum Template. Deshalb schützt Cave die Template-Kinder vor dem direkten Bearbeiten in der Szene.

Zum Beispiel, wenn ein Feind-Template enthält:

Enemy
  Body Mesh
  Detection Area
  Health Bar

Sollten Sie diese internen Kinder im Template bearbeiten und nicht als separate, von der Szene besessene Objekte.

Dies hält jede Instanz konsistent. Wenn jeder platzierte Feind seine internen Kinder frei bearbeiten könnte, würde das Template aufhören, ein zuverlässiges wiederverwendbares Objekt zu sein.

Instanziierung eines Templates in einer Szene

Nachdem ein Template existiert, können Sie es in eine Szene platzieren.

Zum Beispiel können Sie ein Template aus dem Asset-Browser in die 3D View ziehen.

Wenn das Template platziert wird:

  • Es erscheint im Szenenbaum als Template-Instanz.
  • Cave verwendet eine andere Template-Farbe (grün) für die Instanz.
  • Die Instanz behält ihre Verbindung zum Template-Asset.

image.png

Aus der Sicht des Workflows ist dies eine der schnellsten Möglichkeiten, Levels zu erstellen. Sie erstellen einmal eine wiederverwendbare Tür, ein Pickup, einen Feind oder eine Requisite und platzieren dann Instanzen, wo immer das Level sie benötigt.

Lokale Template-Anpassungen

Template-Instanzen können dennoch lokal angepasst werden:

image.png

Der Hauptweg dafür ist über Eigenschaften, die von der Wurzel-Template-Entität bereitgestellt werden.

Dies gibt Ihnen ein nützliches Gleichgewicht:

  • Die Struktur bleibt wiederverwendbar.
  • Jede platzierte Instanz kann ihre eigenen Werte haben.

Zum Beispiel können mehrere Feinde dasselbe Feind-Template verwenden, während jede Instanz unterschiedliche Gesundheits-, Geschwindigkeits-, Patrouillen- oder Verhaltensparameter hat.

Beispiele für lokale Template-Eigenschaften

Nützliche lokale Eigenschaften sind:

Eigenschaft Beispielnutzung
Feindgesundheit Machen Sie einen Feind schwächer oder stärker.
Feindgeschwindigkeit Erstellen Sie langsame und schnelle Varianten.
Schadenshöhe Verwenden Sie ein Hazards-Setup mit unterschiedlichen Gefahrenstufen.
Portal-Zielniveau Senden Sie jedes Portal zu einer anderen Szene.
Pickup-Wert Machen Sie Münzen, Edelsteine oder Belohnungen, die unterschiedlich wertvoll sind.
Tür-gesperrter Zustand Verwenden Sie eine Tür-Setup für gesperrte und entsperrte Türen.
UI-Text Verwenden Sie ein UI-Widget mit unterschiedlichen Beschriftungen.

Zum Beispiel kann ein Portal-Template an vielen Orten verwendet werden, wenn jedes platzierte Portal eine lokale Eigenschaft hat, die die Zielszene auswählt.

Starter-Projekt-Template-Beispiele

Starter-Projekte können mehrere nützliche Templates enthalten, abhängig von den Projektoptionen, die Sie ausgewählt haben.

Sie finden möglicherweise Beispiele wie:

  • Spieler-Template.
  • Feind-Template.
  • Schadens-Template.
  • Portal-Template.
  • Fahrzeug-Template.
  • Wiederverwendbare Gameplay-Stücke.

Diese sind es wert, inspiziert zu werden. Öffnen Sie sie, schauen Sie sich die Hierarchie an, inspizieren Sie die Komponenten und sehen Sie, welche Eigenschaften verfügbar sind.

Der generierte Inhalt ist nicht nur da, um verwendet zu werden. Er dient auch dazu, Ihnen zu zeigen, wie echte Cave-Objekte aufgebaut werden können.

Gute Anwendungsfälle für Entity Templates

Erstellen Sie ein Template, wenn ein Objekt:

  • Häufig wiederholt wird.
  • Über mehrere Szenen hinweg verwendet wird.
  • Aus mehreren Komponenten erstellt ist.
  • Aus mehreren Kind-Entitäten erstellt ist.
  • Konsistent verhalten soll.
  • Nützlich als wiederverwendbares Gameplay-Stück ist.

Gute Kandidaten sind:

  • Feinde.
  • NPCs.
  • Waffen.
  • Kugeln.
  • Sammlerstücke.
  • Türen.
  • Checkpoints.
  • Fallen.
  • Levelportale.
  • Fahrzeuge.
  • Zerstörbare Requisiten.
  • UI-Widgets.
  • Wiederverwendbare Level-Design-Stücke.

Je öfter Sie ein Objekt wiederverwenden, desto wertvoller wird ein Template.

Wann man kein Template verwenden sollte

Nicht alles muss ein Template sein.

Ein einzigartiges Objekt, das einmal erscheint und nur in einer Szene Sinn macht, kann als normale Szenen-Entität bleiben.

Zum Beispiel:

  • Ein einmaliges filmisches Requisit.
  • Ein spezieller, levelspezifischer Trigger.
  • Eine einzigartige Dekoration, die niemals wiederverwendet wird.
  • Ein temporäres Testobjekt.

Templates sind mächtig, aber sie sind am nützlichsten, wenn Wiederverwendung tatsächlich wichtig ist. Jedes kleine Objekt zu früh in ein Template zu verwandeln, kann es schwieriger machen, das Projekt zu verwalten, nicht einfacher.

Eine einfache Template-Regel

Wenn Sie bemerken, dass Sie dasselbe Entität-Setup mehr als einmal kopieren, ziehen Sie in Betracht, es zu einem Entity Template zu machen.

Diese eine Gewohnheit kann viel Zeit sparen und Ihr Projekt viel sauberer halten, während es wächst.