Unity Cinemachine en tijdlijn-tutorial

Cinemachine is een pakket voor Unity dat ontwikkelaars professionele camerabediening geeft en de mogelijkheid vergroot om filmische tussenfilmpjes te maken.

Deze tutorial behandelt de volgende onderwerpen:

  • Installatie van bioscoopmachines
  • Camera-installatie voor derden
  • Tijdlijn tussenfilmpjes maken

Installatie van bioscoopmachines

Om Cinemachine te installeren, volgt u de onderstaande stappen:

  • Ga in Unity naar Venster -> Pakketbeheer

Unity Pakketbeheermenu

  • Wijzig pakketten in "Unity Register"

Unity Package Manager-register

  • Selecteer "Cinemachine" in de lijst en klik vervolgens "Install"

De Cinemachine is nu klaar voor gebruik.

Camera-installatie voor derden

Hieronder laat ik zien hoe je een 3e persoonscamera instelt met behulp van de virtuele camera van Cinemachine.

Een virtuele camera is een lichtgewicht versie van een Unity camera, die niet zelfstandig rendert, maar alleen wordt gebruikt als referentiepunt voor de hoofdcamera.

Als voorbeeld voor deze tutorial gebruik ik een controller voor derden, behalve zonder de camera-botsing in te stellen en zonder de camera binnen de spelershiërarchie te verplaatsen:

Sharp Coder Video speler

Zoals je kunt zien beweegt de speler, maar de camera volgt niet.

Het instellen van een derde persoonscamera met Cinemachine is heel eenvoudig:

  • Ga naar GameObject -> Cinemachine -> Virtuele camera om een ​​nieuwe virtuele camera te maken

Cinemamachine maakt een virtuele camera

  • Geef de virtuele camera een naam "TPS Camera"
  • Selecteer TPS Camera en wijs in CinemachineVirtualCamera de Follow-variabele toe (in mijn geval is dit een "CameraParent"-object, dat zich binnen een spelershiërarchie bevindt en verticale kijkrotatie vertegenwoordigt)
  • Stel Lichaamswaarde in op "3rd Person Follow"
  • Stel Tag negeren in op "Player" en selecteer ook het hoofdobject van de speler en stel de bijbehorende tag in op "Player" (als er onderliggende botsingen in de spelershiërarchie zijn, zorg er dan voor dat u hun tags wijzigt in "Player" ook)
  • Pas andere waarden in CinemachineVirtualCamera aan, zoals Camera-afstand, Camerazijde, Schouderoffset en Demping, totdat u tevreden bent met het resultaat.
  • Stel de doelwaarde van CameraParent in op "Do nothing"

Componentwaarden van CinemachineVirtualCamera

De camera zou nu de speler moeten volgen:

Sharp Coder Video speler

Tijdlijn tussenfilmpjes maken

Hier laat ik zien hoe je een filmpje componeert met behulp van de tijdlijn van Unity's.

Timeline is een ingebouwde editor waarmee ontwikkelaars tussenfilmpjes kunnen samenstellen door de camera te animeren, maar ook door bestaande animaties (bijvoorbeeld karakterwandeling) te gebruiken, plus gebeurtenissen en signalen door ze opeenvolgend te rangschikken.

Het Cinemachine-pakket voegt een paar extra opties toe aan een tijdlijneditor, zoals de mogelijkheid om tussen virtuele camera's te schakelen.

Volg de onderstaande stappen om een ​​filmpje te maken:

  • Maak een nieuw GameObject en roep het aan "TimelineManager"
  • Open het tijdlijnvenster door naar Venster -> Reeksen -> Tijdlijn te gaan

Unity venstervolgorde tijdlijnmenu

  • Selecteer "TimelineManager" Object en in het tijdlijnvenster zou u een optie moeten zien om een ​​Director-component en een tijdlijnitem te maken. Klik erop.

Cinemachine maakt een Director-component en een tijdlijnitem

  • Nadat u de Director-component en het Tijdlijn-item hebt gemaakt, zou u het lege Tijdlijn-venster moeten zien (zorg ervoor dat het TimelineManager-object is geselecteerd om het te kunnen bewerken).

Tijdlijnvenster van Cinemamachine

  • We kunnen nu beginnen met het toevoegen van componenten aan de tijdlijn door met de rechtermuisknop op het venster te klikken.

Tijdlijncomponenten maken

Zoals u kunt zien, heeft het tijdlijnvenster verschillende opties:

  • Trackgroep - dit is een groep die tijdlijnacties kan bevatten en die handig is bij het organiseren.
  • Activeringstrack - dit definieert het object dat alleen actief mag zijn gedurende een bepaald tijdsbestek.
  • Animatietrack - hiermee wordt een specifieke animatie afgespeeld gedurende een bepaald tijdsbestek.
  • Audiotrack - hiermee wordt specifieke audio afgespeeld gedurende een bepaald tijdsbestek.
  • Controletrack - een track waarvan de clips tijdgerelateerde elementen op een GameObject besturen.
  • Signaaltrack - hiermee kunt u een breed scala aan acties uitvoeren op een specifiek spelobject op een specifiek tijdstip (bijvoorbeeld het spelersbewegingsscript activeren of een specifieke functie oproepen wanneer de tijdlijn een bepaald frame bereikt, enz.)
  • Afspeelbare track - een track waarvan de clips op maat kunnen worden afgespeeld.
  • Cinemachine Track - hiermee kunt u meerdere virtuele camera's van cinemachine combineren.

Voor deze tutorial gebruik ik alleen Animatietrack en Signaaltrack.

Opgericht

  • Maak nog een virtuele camera en noem deze "CutsceneCamera" en stel de waarde ervan in "Priority" op één niveau boven "TPS Camera" (bijv. 11)
  • Klik met de rechtermuisknop in de projectweergave -> Maken -> Signaal en geef het een naam "DisablePlayer"

Eenheid Creëer een tijdlijnsignaal

  • Dupliceer het signaal "DisablePlayer" en hernoem het naar "EnablePlayer"

Unity tijdlijn signaalmiddelen

  • Maak een nieuw GameObject in de scène en geef het een naam "SignalReceiver"
  • Koppel de SignalReceiver-component aan een "SignalReceiver"-object
  • Klik twee keer op "Add Reaction"
  • Wijs "DisablePlayer" toe aan een eerste reactie en "EnablePlayer" aan een tweede reactie

Eenheidstijdlijnsignaal Reactie toevoegen

"DisablePlayer" activeert de tussenfilmpjecamera, deactiveert de spelercamera en het spelerbesturingsscript en wordt aan het begin van de tijdlijn geplaatst.

"EnablePlayer" deactiveert de tussenfilmpjecamera, activeert de spelercamera en het spelerbesturingsscript en wordt aan het einde van de tijdlijn geplaatst.

  • Klik op (+) om een ​​reactieslot toe te voegen en wijs vervolgens het object toe waarvan het script of de component geactiveerd/gedeactiveerd moest worden.

Tip: Om een ​​tegengesteld signaal te creëren, kunt u gewoon de reacties voor "DisablePlayer" instellen en vervolgens op het tandwielpictogram -> Dupliceren klikken, het signaal wijzigen in "EnablePlayer" en de selectievakjes omkeren.

Eenheid dubbel signaal

Unity tijdlijn signaalreacties instellen

  • Selecteer het object "TimelineManager" en voeg vervolgens in het tijdlijnvenster een nieuw signaalspoor toe door met de rechtermuisknop te klikken -> Signaalspoor en wijs er vervolgens het object "SignalReceiver" aan toe.
  • Sleep "DisablePlayer" signaalitem naar het begin van de tijdlijn en "EnablePlayer" naar het frame waar je het filmpje wilt laten eindigen:

Unity-tijdlijnsignaalvoorbeeld

Hierdoor worden het script van de spelercontroller en de camera in het begin gedeactiveerd en vervolgens opnieuw geactiveerd zodra de tijdlijn het einde bereikt.

Ten slotte gaan we een eenvoudige camera-animatie maken.

  • Klik met de rechtermuisknop op Tijdlijn -> Animatietrack en wijs vervolgens "CutsceneCamera" toe (hierbij wordt gevraagd om de Animator-component aan het object toe te voegen als die er niet is)
  • Klik op de opnameknop

Unity tijdlijn animatieclipopname

  • Verplaats de "CutsceneCamera" iets, zodat het hoofdframe wordt toegepast, verplaats vervolgens de framehandgreep van de tijdlijn naar het einde en verplaats ten slotte de camera naar een nieuwe positie en klik vervolgens op Opname stoppen.

Unity Cinemamachine Tijdlijn tussenfilmpjes

Laten we op play drukken en het resultaat bekijken:

Sharp Coder Video speler

Het filmpje wordt aan het begin van het spel gespeeld.