Unity Cinemachine og tidslinjeopplæring

Cinemachine er en pakke for Unity som gir utviklere profesjonell kamerakontroll og forbedrer muligheten til å lage filmatiske filmsekvenser.

Denne opplæringen vil dekke følgende emner:

  • Cinemachine installasjon
  • Tredjepersons kameraoppsett
  • Timeline Cutscene Creation

Cinemachine installasjon

Følg trinnene nedenfor for å installere Cinemachine:

  • I Unity går du til Vindu -> Pakkebehandling

Unity Package Manager-meny

  • Endre pakker til "Unity register"

Unity Package Manager Registry

  • Velg "Cinemachine" fra listen og klikk "Install"

Cinemachine er nå klar til bruk.

Tredjepersons kameraoppsett

Nedenfor vil jeg vise hvordan du setter opp et 3. persons kamera ved hjelp av Cinemachines virtuelle kamera.

Et virtuelt kamera er en lettvektsversjon av et Unity kamera, som ikke gjengir seg selv, men bare brukes som et referansepunkt for hovedkameraet.

Som et eksempel for denne opplæringen vil jeg bruke en tredjepersonskontroller, bortsett fra uten å sette opp kamerakollisjonen og uten å flytte kameraet inne i spillerhierarkiet:

Sharp Coder Videospiller

Som du kan se beveger spilleren seg, men kameraet følger ikke med.

Å sette opp et tredjepersonskamera med Cinemachine er veldig enkelt:

  • Gå til GameObject -> Cinemachine -> Virtuelt kamera for å lage et nytt virtuelt kamera

Cinemachine lage virtuelt kamera

  • Gi det virtuelle kameraet et navn "TPS Camera"
  • Velg TPS-kamera og i CinemachineVirtualCamera tilordne Følg-variabel (i mitt tilfelle vil det være "CameraParent" objekt, som er plassert inne i et spillerhierarki og representerer vertikal utseenderotasjon)
  • Sett Kroppsverdi til "3rd Person Follow"
  • Sett Ignorer tag til "Player" og velg også spillerens rotobjekt og sett taggen til "Player" (hvis det er noen barnekolliderer i spillerhierarkiet, sørg for å endre taggene deres til "Player" også)
  • Juster andre verdier i CinemachineVirtualCamera som kameraavstand, kameraside, skulderforskyvning og demping til du er fornøyd med resultatet.
  • Sett Målverdi for CameraParent til "Do nothing"

CinemachineVirtualCamera-komponentverdier

Kameraet skal nå følge spilleren:

Sharp Coder Videospiller

Timeline Cutscene Creation

Her skal jeg vise hvordan du komponerer en filmsekvens ved å bruke Unity's tidslinje.

Timeline er en innebygd editor som gjør det mulig for utviklere å komponere filmsekvenser ved å animere kameraet, og også ved å bruke eksisterende animasjoner (f.eks. karaktervandring), pluss hendelser og signaler ved å arrangere dem på en sekvensiell måte.

Cinemachine-pakken legger til noen ekstra alternativer til en tidslinjeredigerer, for eksempel muligheten til å bytte mellom virtuelle kameraer.

For å lage en filmsekvens, følg trinnene nedenfor:

  • Lag et nytt GameObject og kall det "TimelineManager"
  • Åpne tidslinjevinduet ved å gå til Vindu -> Sekvensering -> Tidslinje

Unity Window Sequencing Tidslinjemeny

  • Velg "TimelineManager" Objekt, og i tidslinjevinduet bør du se et alternativ for å opprette en direktørkomponent og tidslinjeelement, klikk på den.

Cinemachine oppretter Director-komponent og et tidslinjeelement

  • Etter å ha opprettet Director-komponenten og Timeline-elementet, bør du se det tomme tidslinjevinduet (sørg for at TimelineManager-objektet er valgt for å kunne redigere det).

Cinemachine tidslinjevindu

  • Vi kan nå begynne å legge til komponenter til tidslinjen ved å høyreklikke på vinduet.

Opprett tidslinjekomponenter

Som du kan se, har tidslinjevinduet forskjellige alternativer:

  • Spor gruppe – dette er en gruppe som kan inneholde tidslinjehandlinger og er nyttig for organisering.
  • Aktiveringsspor - dette definerer objektet som bare skal være aktivt i løpet av en fastsatt tidsramme.
  • Animasjonsspor – dette vil spille av en spesifikk animasjon i løpet av en bestemt tidsramme.
  • Lydspor – dette vil spille av spesifikk lyd i løpet av en bestemt tidsramme.
  • Kontrollspor - et spor hvis klipp kontrollerer tidsrelaterte elementer på et GameObject.
  • Signal Track – dette gjør det mulig å utføre et bredt utvalg av handlinger på et spesifikt spillobjekt på et spesifikt tidspunkt (f.eks. aktivere spillerbevegelsesskript eller kalle en spesifikk funksjon når tidslinjen når en bestemt ramme, osv.)
  • Spillbart spor - et spor hvis klipp er egendefinerte spillbare.
  • Cinemachine Track - dette gjør det mulig å blande mellom flere virtuelle cinemachine-kameraer.

For formålet med denne opplæringen vil jeg bare bruke Animasjonsspor og Signalspor.

Sett opp

  • Lag et annet virtuelt kamera og navngi det "CutsceneCamera" og sett "Priority"-verdien til ett nivå over "TPS Camera" (eks. 11)
  • Høyreklikk i prosjektvisning -> Opprett -> Signal og navngi det "DisablePlayer"

Unity Lag tidslinjesignal

  • Dupliser "DisablePlayer" signal og gi det nytt navn til "EnablePlayer"

Unity Timeline Signal Assets

  • Opprett et nytt GameObject i scenen og navngi det "SignalReceiver"
  • Fest signalmottakerkomponent til et "SignalReceiver" objekt
  • Klikk "Add Reaction" 2 ganger
  • Tilordne "DisablePlayer" til en første reaksjon og "EnablePlayer" til en andre reaksjon

Unity Timeline Signal Add Reaction

"DisablePlayer" vil aktivere videokameraet, deaktivere spillerkameraet og spillerkontrollskriptet, og vil bli plassert ved starten av tidslinjen.

"EnablePlayer" vil deaktivere videokameraet, aktivere spillerkameraet og spillerkontrollskriptet, og vil bli plassert på slutten av tidslinjen.

  • Klikk (+) for å legge til et reaksjonsspor og tilordne deretter objektet hvis skript eller komponent måtte aktiveres/deaktiveres.

Tips: For å lage et motsatt signal kan du bare sette opp reaksjonene for "DisablePlayer" og deretter klikke på Gear-ikonet -> Dupliser, endre signalet til "EnablePlayer" og invertere avmerkingsboksene.

Unity Duplicate Signal

Unity Timeline Signal Reactions Setup

  • Velg "TimelineManager" objekt og legg til et nytt signalspor i tidslinjevinduet ved å høyreklikke -> Signal Track og tilordne deretter "SignalReceiver" objekt til det.
  • Dra og slipp "DisablePlayer" signalelement ved starten av tidslinjen og "EnablePlayer" til bildet du vil at klippscenen skal avslutte:

Unity Timeline Signal Forhåndsvisning

Dette vil gjøre spillerkontrollerskriptet og kameraet deaktivert i begynnelsen og deretter reaktivert når tidslinjen når slutten.

Til slutt skal vi lage en enkel kameraanimasjon.

  • Høyreklikk på Tidslinje -> Animasjonsspor og tilordne deretter "CutsceneCamera" (dette vil be om å legge til Animator-komponent til objektet hvis det ikke er noen)
  • Klikk på opptaksknappen

Unity Timeline Animation Clip Record

  • Flytt "CutsceneCamera" litt, slik at nøkkelbildet er brukt, flytt deretter tidslinjerammehåndtaket til slutten, og til slutt, flytt kameraet til en ny posisjon og klikk på Stopp opptak.

Unity Cinemachine Cutscene-tidslinje

La oss trykke play og se resultatet:

Sharp Coder Videospiller

Cutscenen spilles i begynnelsen av spillet.

Foreslåtte artikler
Hvordan male trær på terreng i enhet
Hvordan importere animasjoner til Unity
Velg riktig Skybox for miljøet ditt i Unity
Strategier for å beskytte Unity Games fra piratkopiering
Hvordan lage et FNAF-inspirert spill i Unity
Viktigheten av historiefortelling i Unity-spillutvikling
Hvordan velge riktig bakgrunnsmusikk for spillet ditt i Unity