Unity Cinemachine- und Timeline-Tutorial

Cinemachine ist ein Paket für Unity, das Entwicklern professionelle Kamerasteuerung bietet und die Möglichkeit zur Erstellung filmischer Zwischensequenzen verbessert.

Dieses Tutorial behandelt die folgenden Themen:

  • Cinemachine-Installation
  • Einrichtung einer Third-Person-Kamera
  • Erstellung der Timeline-Zwischensequenz

Cinemachine-Installation

Um Cinemachine zu installieren, führen Sie die folgenden Schritte aus:

  • Gehen Sie in Unity zu Fenster -> Paketmanager

Menü des Unity-Paketmanagers

  • Ändern Sie die Pakete in „Unity Registry“

Unity Package Manager-Registrierung

  • Wählen Sie "Cinemachine" aus der Liste aus und klicken Sie dann "Install"

Die Cinemachine ist jetzt betriebsbereit.

Einrichtung einer Third-Person-Kamera

Im Folgenden zeige ich, wie man mit der virtuellen Kamera von Cinemachine eine Third-Person-Kamera einrichtet.

Eine virtuelle Kamera ist eine leichte Version einer Unity-Kamera, die nicht selbstständig rendert, sondern lediglich als Referenzpunkt für die Hauptkamera dient.

Als Beispiel für dieses Tutorial verwende ich einen Third-Person-Controller, außer ohne die Kamerakollision einzurichten und ohne die Kamera innerhalb der Spielerhierarchie zu verschieben:

Sharp Coder Videoplayer

Wie Sie sehen, bewegt sich der Player, aber die Kamera folgt nicht.

Das Einrichten einer Third-Person-Kamera mit Cinemachine ist ganz einfach:

  • Gehen Sie zu GameObject -> Cinemachine -> Virtuelle Kamera, um eine neue virtuelle Kamera zu erstellen

Cinemachine erstellt eine virtuelle Kamera

  • Benennen Sie die virtuelle Kamera "TPS Camera"
  • Wählen Sie die TPS-Kamera aus und weisen Sie in CinemachineVirtualCamera die Variable „Folgen“ zu (in meinem Fall ist es das Objekt "CameraParent", das sich innerhalb einer Player-Hierarchie befindet und die vertikale Blickdrehung darstellt).
  • Stellen Sie den Body-Wert auf ein "3rd Person Follow"
  • Setzen Sie Tag ignorieren auf "Player", wählen Sie außerdem das Player-Stammobjekt aus und setzen Sie dessen Tag auf "Player" (wenn es in der Player-Hierarchie untergeordnete Collider gibt, stellen Sie sicher, dass Sie deren Tags ebenfalls auf "Player" ändern).
  • Passen Sie andere Werte in CinemachineVirtualCamera an, z. B. Kameraabstand, Kameraseite, Schulterversatz und Dämpfung, bis Sie mit dem Ergebnis zufrieden sind.
  • Setzen Sie den Zielwert von CameraParent auf "Do nothing"

CinemachineVirtualCamera-Komponentenwerte

Die Kamera sollte nun dem Player folgen:

Sharp Coder Videoplayer

Erstellung der Timeline-Zwischensequenz

Hier zeige ich, wie man mit Unity's Timeline eine Zwischensequenz erstellt.

Timeline ist ein integrierter Editor, der es Entwicklern ermöglicht, Zwischensequenzen zu erstellen, indem sie die Kamera animieren und auch vorhandene Animationen (z. B. Charaktergang) sowie Ereignisse und Signale verwenden, indem sie diese nacheinander anordnen.

Das Cinemachine-Paket fügt einem Timeline-Editor einige zusätzliche Optionen hinzu, beispielsweise die Möglichkeit, zwischen virtuellen Kameras zu wechseln.

Um eine Zwischensequenz zu erstellen, führen Sie die folgenden Schritte aus:

  • Erstellen Sie ein neues GameObject und nennen Sie es "TimelineManager"
  • Öffnen Sie das Timeline-Fenster, indem Sie zu Fenster -> Sequenzierung -> Timeline gehen

Zeitleistenmenü für die Unity-Fenstersequenzierung

  • Wählen Sie das Objekt "TimelineManager" aus. Im Zeitleistenfenster sollte eine Option zum Erstellen einer Director-Komponente und eines Zeitleisten-Assets angezeigt werden. Klicken Sie darauf.

Cinemachine erstellt eine Director-Komponente und ein Timeline-Asset

  • Nachdem Sie die Director-Komponente und das Timeline-Asset erstellt haben, sollten Sie das leere Timeline-Fenster sehen (stellen Sie sicher, dass das TimelineManager-Objekt ausgewählt ist, um es bearbeiten zu können).

Cinemachine-Timeline-Fenster

  • Wir können nun mit dem Hinzufügen von Komponenten zur Zeitleiste beginnen, indem wir mit der rechten Maustaste auf das Fenster klicken.

Timeline-Komponenten erstellen

Wie Sie sehen, bietet das Zeitleistenfenster verschiedene Optionen:

  • Track-Gruppe – Dies ist eine Gruppe, die Timeline-Aktionen enthalten kann und für die Organisation nützlich ist.
  • Aktivierungsspur – Dies definiert das Objekt, das nur während eines festgelegten Zeitraums aktiv sein soll.
  • Animationsspur – Hiermit wird eine bestimmte Animation während eines festgelegten Zeitrahmens abgespielt.
  • Audiospur – Hiermit wird während eines festgelegten Zeitraums ein bestimmtes Audio abgespielt.
  • Control Track – eine Spur, deren Clips zeitbezogene Elemente auf einem GameObject steuern.
  • Signalspur – Dies ermöglicht das Ausführen einer Vielzahl von Aktionen an einem bestimmten Spielobjekt zu einem bestimmten Zeitpunkt (z. B. Aktivieren des Spielerbewegungsskripts oder Aufrufen einer bestimmten Funktion, wenn die Zeitleiste einen bestimmten Frame erreicht usw.).
  • Abspielbarer Track – ein Track, dessen Clips benutzerdefiniert abspielbar sind.
  • Cinemachine Track – ermöglicht die Überblendung zwischen mehreren virtuellen Cinemachine-Kameras.

Für dieses Tutorial verwende ich nur Animation Track und Signal Track.

Aufstellen

  • Erstellen Sie eine weitere virtuelle Kamera, nennen Sie sie "CutsceneCamera" und setzen Sie ihren Wert "Priority" auf eine Stufe über "TPS Camera" (Bsp. 11).
  • Klicken Sie mit der rechten Maustaste in die Projektansicht -> Erstellen -> Signal und benennen Sie es "DisablePlayer"

Unity Timeline-Signal erstellen

  • Duplizieren Sie das Signal "DisablePlayer" und benennen Sie es in um "EnablePlayer"

Unity-Timeline-Signal-Assets

  • Erstellen Sie ein neues GameObject in der Szene und benennen Sie es "SignalReceiver"
  • Hängen Sie die SignalReceiver-Komponente an ein "SignalReceiver"-Objekt an
  • Klicken Sie zweimal auf "Add Reaction"
  • Weisen Sie "DisablePlayer" einer ersten Reaktion und "EnablePlayer" einer zweiten Reaktion zu

Unity-Timeline-Signal Reaktion hinzufügen

"DisablePlayer" aktiviert die Zwischensequenzkamera, deaktiviert die Player-Kamera und das Player-Steuerungsskript und wird am Anfang der Zeitleiste platziert.

"EnablePlayer" deaktiviert die Zwischensequenzkamera, aktiviert die Player-Kamera und das Player-Steuerungsskript und wird am Ende der Zeitleiste platziert.

  • Klicken Sie auf (+), um einen Reaktionsslot hinzuzufügen, und weisen Sie dann das Objekt zu, dessen Skript oder Komponente aktiviert/deaktiviert werden muss.

Tipp: Um ein gegenteiliges Signal zu erzeugen, können Sie einfach die Reaktionen für "DisablePlayer" einrichten, dann auf das Zahnradsymbol -> Duplizieren klicken, das Signal in "EnablePlayer" ändern und die Kontrollkästchen umkehren.

Unity-Doppelsignal

Einrichtung der Unity-Timeline-Signalreaktionen

  • Wählen Sie das Objekt "TimelineManager" aus, fügen Sie dann im Zeitleistenfenster eine neue Signalspur hinzu, indem Sie mit der rechten Maustaste klicken -> Signalspur und weisen Sie ihr dann das Objekt "SignalReceiver" zu.
  • Ziehen Sie das Signal-Asset "DisablePlayer" per Drag & Drop an den Anfang der Zeitleiste und "EnablePlayer" an das Bild, in dem die Zwischensequenz enden soll:

Vorschau des Unity-Timeline-Signals

Dadurch werden das Player-Controller-Skript und die Kamera am Anfang deaktiviert und dann wieder aktiviert, sobald die Zeitleiste das Ende erreicht.

Zuletzt erstellen wir eine einfache Kameraanimation.

  • Klicken Sie mit der rechten Maustaste auf Zeitleiste -> Animationsspur und weisen Sie dann "CutsceneCamera" zu (dadurch werden Sie aufgefordert, dem Objekt eine Animator-Komponente hinzuzufügen, falls keine vorhanden ist).
  • Klicken Sie auf die Aufnahmeschaltfläche

Unity-Timeline-Animationsclip-Aufzeichnung

  • Bewegen Sie "CutsceneCamera" leicht, damit der Keyframe angewendet wird. Bewegen Sie dann den Timeline-Frame-Griff bis zum Ende. Bewegen Sie schließlich die Kamera an eine neue Position und klicken Sie dann auf „Aufnahme stoppen“.

Zeitleiste der Unity Cinemachine-Zwischensequenz

Drücken wir „Play“ und sehen uns das Ergebnis an:

Sharp Coder Videoplayer

Die Zwischensequenz wird zu Beginn des Spiels abgespielt.

Empfohlene Artikel
Vergleich von 2D- und 3D-Entwicklungsumgebungen in Unity
Unity Scripting API und Unity Pro
So malen Sie Bäume auf Gelände in Unity
So importieren Sie Animationen in Unity
Wählen Sie in Unity die richtige Skybox für Ihre Umgebung
Strategien zum Schutz von Unity-Spielen vor Piraterie
So erstellen Sie ein FNAF-inspiriertes Spiel in Unity