Unity Cinemachine og Timeline Tutorial

Cinemachine er en pakke til Unity, der giver udviklere professionel kamerakontrol og forbedrer muligheden for at skabe filmiske mellemsekvenser.

Denne vejledning vil dække følgende emner:

  • Cinemachine installation
  • Tredjepersons kameraopsætning
  • Oprettelse af tidslinje Cutscene

Cinemachine installation

Følg nedenstående trin for at installere Cinemachine:

  • I Unity skal du gå til Window -> Package Manager

Unity Package Manager menu

  • Skift pakker til "Unity Registry"

Unity Package Manager Registry

  • Vælg "Cinemachine" fra listen og klik derefter "Install"

Cinemachine er nu klar til brug.

Tredjepersons kameraopsætning

Nedenfor vil jeg vise, hvordan man opsætter et 3.-persons kamera ved hjælp af Cinemachines virtuelle kamera.

Et virtuelt kamera er en letvægtsversion af et Unity kamera, der ikke gengives alene, men blot bruges som referencepunkt for hovedkameraet.

Som et eksempel til denne øvelse vil jeg bruge en tredjepersonscontroller, undtagen uden at konfigurere kamerakollisionen og uden at flytte kameraet inde i spillerhierarkiet:

Sharp Coder Videoafspiller

Som du kan se, bevæger afspilleren sig, men kameraet følger ikke med.

Opsætning af et tredjepersonskamera ved hjælp af Cinemachine er virkelig nemt:

  • Gå til GameObject -> Cinemachine -> Virtuelt kamera for at oprette et nyt virtuelt kamera

Cinemachine opret virtuelt kamera

  • Navngiv det virtuelle kamera "TPS Camera"
  • Vælg TPS-kamera, og tildel Follow-variabel i CinemachineVirtualCamera (i mit tilfælde vil det være "CameraParent" objekt, som er placeret inde i et spillerhierarki og repræsenterer lodret udseenderotation)
  • Indstil Body værdi til "3rd Person Follow"
  • Indstil Ignorer tag til "Player" og vælg også spillerens rodobjekt og sæt dets tag til "Player" (hvis der er nogen underordnede kollidere i spillerhierarkiet, så sørg for at ændre deres tags til "Player" også)
  • Juster andre værdier i CinemachineVirtualCamera såsom kameraafstand, kameraside, skulderforskydning og dæmpning, indtil du er tilfreds med resultatet.
  • Indstil Målværdi for CameraParent til "Do nothing"

CinemachineVirtualCamera-komponentværdier

Kameraet skulle nu følge afspilleren:

Sharp Coder Videoafspiller

Oprettelse af tidslinje Cutscene

Her vil jeg vise, hvordan man komponerer en cutscene ved hjælp af Unity's Timeline.

Timeline er en indbygget editor, der gør det muligt for udviklere at komponere mellemsekvenser ved at animere kameraet og også ved at bruge eksisterende animationer (f.eks. karaktervandring), plus begivenheder og signaler ved at arrangere dem på en sekventiel måde.

Cinemachine-pakken tilføjer et par ekstra muligheder til en tidslinjeeditor, såsom muligheden for at skifte mellem virtuelle kameraer.

Følg nedenstående trin for at oprette en cutscene:

  • Opret et nyt GameObject og kald det "TimelineManager"
  • Åbn tidslinjevinduet ved at gå til Vindue -> Sekvensering -> Tidslinje

Unity Window Sequencing Timeline Menu

  • Vælg "TimelineManager" Objekt, og i tidslinjevinduet skulle du se en mulighed for at oprette en Director-komponent og tidslinjeaktiv, klik på den.

Cinemachine opretter Director-komponent og et tidslinjeaktiv

  • Efter at have oprettet Director-komponenten og Timeline-aktivet, bør du se det tomme Timeline-vindue (sørg for, at TimelineManager-objektet er valgt for at kunne redigere det).

Cinemachine tidslinjevindue

  • Vi kan nu begynde at tilføje komponenter til tidslinjen ved at højreklikke på vinduet.

Opret tidslinjekomponenter

Som du kan se, har tidslinjevinduet forskellige muligheder:

  • Spor gruppe - dette er en gruppe, der kan indeholde tidslinjehandlinger og er nyttig til at organisere.
  • Aktiveringsspor - dette definerer det objekt, der kun skal være aktivt i en fastsat tidsramme.
  • Animationsspor - dette vil afspille en specifik animation inden for en fastsat tidsramme.
  • Lydspor - dette vil afspille specifik lyd inden for en fastsat tidsramme.
  • Kontrolspor - et spor, hvis klip styrer tidsrelaterede elementer på et GameObject.
  • Signal Track - dette giver mulighed for at udføre en bred vifte af handlinger på et specifikt spilobjekt på et bestemt tidspunkt (f.eks. aktivering af spillerbevægelsesscript eller kald en specifik funktion, når tidslinjen når en bestemt ramme osv.)
  • Afspilbart spor - et spor, hvis klip er brugerdefinerede afspilbare.
  • Cinemachine Track - dette gør det muligt at blande flere virtuelle cinemachine-kameraer.

Til formålet med denne tutorial vil jeg kun bruge Animationsspor og Signalspor.

Opsætning

  • Opret endnu et virtuelt kamera og navngiv det "CutsceneCamera" og indstil dets "Priority" værdi til et niveau over "TPS Camera" (f.eks. 11)
  • Højreklik i projektvisning -> Opret -> Signal og navngiv det "DisablePlayer"

Unity Opret tidslinjesignal

  • Dupliker "DisablePlayer" signal og omdøb det til "EnablePlayer"

Unity Timeline Signal Assets

  • Opret et nyt GameObject i scenen og navngiv det "SignalReceiver"
  • Tilslut SignalReceiver-komponent til et "SignalReceiver" objekt
  • Klik "Add Reaction" 2 gange
  • Tildel "DisablePlayer" til en første reaktion og "EnablePlayer" til en anden reaktion

Unity Timeline Signal Tilføj reaktion

"DisablePlayer" aktiverer cutscene-kameraet, deaktiverer afspillerens kamera og spillerkontrolscriptet og placeres i starten af ​​tidslinjen.

"EnablePlayer" vil deaktivere cutscene-kameraet, aktivere afspillerens kamera og spillerkontrolscriptet og placeres i slutningen af ​​tidslinjen.

  • Klik på (+) for at tilføje en reaktionsplads, og tildel derefter det objekt, hvis script eller komponent skulle aktiveres/deaktiveres.

Tip: For at oprette et modsat signal kan du bare konfigurere reaktionerne for "DisablePlayer" og derefter klikke på Gear-ikonet -> Dupliker, ændre signalet til "EnablePlayer" og invertere afkrydsningsfelterne.

Unity Duplicate Signal

Unity Timeline Signal Reactions Setup

  • Vælg "TimelineManager" objekt og tilføj derefter et nyt signalspor i tidslinjevinduet ved at højreklikke -> Signalspor og tildel derefter "SignalReceiver" objekt til det.
  • Træk og slip "DisablePlayer" signalaktiv ved starten af ​​tidslinjen og "EnablePlayer" til det billede, du vil have cutscenen til at slutte:

Unity Timeline Signal Preview

Dette vil gøre afspillerens controller-script og kameraet deaktiveret i begyndelsen og derefter genaktiveret, når tidslinjen når slutningen.

Til sidst skal vi lave en simpel kameraanimation.

  • Højreklik på Tidslinje -> Animationsspor og tildel derefter "CutsceneCamera" (dette vil bede om at tilføje Animator-komponent til objektet, hvis der ikke er nogen)
  • Klik på optag-knappen

Unity Timeline Animation Clip Record

  • Flyt "CutsceneCamera" lidt, så keyframen anvendes, flyt derefter tidslinjerammehåndtaget til slutningen, og til sidst flytter du kameraet til en ny position, og klik på stop optagelse.

Unity Cinemachine Cutscene-tidslinje

Lad os trykke på play og se resultatet:

Sharp Coder Videoafspiller

Cutscenen spilles i begyndelsen af ​​spillet.