La position actuelle:Accueil du site>Tutoriel sur l'utilisation de la ligne de temps unitaire

Tutoriel sur l'utilisation de la ligne de temps unitaire

2022-07-24 02:29:11Star Mengmeng

J'utiliseUnity 2020.3.25,TimeLineLa version est1.5.2.

TimeLineLes éléments suivants peuvent être ajoutésTrack

1.Activation TrackGénéralement utilisé pour contrôlerGameObjectAfficher et masquer

Par exemple, en contrôlantCineMachineLe changement de lentille est réalisé par l'affichage de la caméra

 

2.Animation TrackContrôle la lecture ou l'enregistrement d'une animation

        a.Changement d'animation du personnage,Peut être compris comme une autre machine d'état

Faites glisser le personnage principal dans le nouveau Animation Track,Encore une fois, la correspondance des rôlesClipsGlisser dans le cadre de séquence,Vous pouvez contrôler la longueur et le mélange de la lecture d'animation.

        b.Emplacement de l'enregistrement、Rotation、Zoom et autres animations(“Petit point rouge”À gauche.“Segment de ligne”Vous pouvez agrandir les courbes d'animation)

 Cliquez sur nouveauAnimation Track Petit point rouge à droite , Entrez l'état d'enregistrement , À enregistrer GameObjectObjet,Clic droitAdd Key

  Si vous modifiez une animation enregistrée ,Vous pouvez choisirUpdate Key

 Mode d'utilisation etAnimation L'enregistrement de l'animation est similaire

 3.Audio Track Il s'agit principalement de contrôler la lecture et la commutation de l'audio , L'audio peut également être mélangé .

 4.Control Track Aucun attribut d'exposition .

  • ControlTrack Utilisation générale actuelle
    1. Contrôle de l'affichage et de la dissimulation des objets
    2. Contrôle la lecture du système de particules , Faire glisser un objet contenant un système de particules et l'attraper ControlTrack Après, Permet de contrôler la progression des émissions de particules , Peut également être inversé
    3. Contrôle autre timelineJouer
  • ControlTrack Vous pouvez faire glisser la plupart des objets de la scène en orbite , Vous pouvez également faire glisser la plupart Assets Sous la table des matières prefab En orbite .
  • ControlTrack Peut contrôler avec Animator L'invisibilité d'un objet , Mais je ne peux pas contrôler la progression de son animation , Pour contrôler la lecture de l'animation, il faut utiliser Animation Track.

5.Signal Track Événements de cadre animés (Event), Un rappel qui peut déclencher un événement à un cadre spécifique

Il faut d'abord créer un Signal ReceiverRécepteur d'événements,Créer un autreSignalDocumentation,ParamètresRuntime Only Objet et fonction de rappel correspondante .

Signal Je garde ça ici. AssetsC'est dans le catalogue.

  Après cela, vous mettez Signal Emitter Faites glisser vers le nouveau Signal Track- Oui.,Encore.AssetsSous la table des matièresSignal Glisser sur le cadre correspondant . Lors de l'exécution au cadre courant , Il déclenche la fonction de rappel à l'intérieur .

 6.Playable TrackPiste personnalisée

Playable Track Vous ne pouvez rien y ajouter. Clip. C'est parce que cette piste est personnalisée Clip,Doit être mis en œuvre par Code.

Voici un petit châtaignier . Maintenant, faisons un petit objectif. :Par personnalisationClip Modifier la couleur et la luminosité de la lumière (Bien sûr.,Cette fonction peut être activée parAnimation TrackRéalisation, Mais je n'en ai pas besoin. ). Nous apprenons à personnaliser Clip, Donc, en utilisant la personnalisation, ClipPour réaliser.

Créer une personnalisationclip Deux scripts sont nécessaires

  • Un pour la logique de traitement :Héritage requisPlayableBehaviour
  • Un pour les données :Héritage requisPlayableAsset

Je vais l'utiliser ci - dessous.Playable API,Playable API Le principe de base est de séparer la logique des données .

Logique de traitement

Commençons par créer un héritage de script PlayableBehaviour, Écrivez la logique du traitement dans ce script . Quelle est la logique du traitement? ? En fait, Timeline Changement de temps ,C'estclipComment ça va changer.Les codes sont les suivants::

using UnityEngine;
using UnityEngine.Playables;

public class LightControlBehaviour : PlayableBehaviour
{
   public Light light = null;
   public Color color = Color.white;
   public float intensity = 1f;  

    public override void ProcessFrame(Playable playable, FrameData info, object playerData)
   {
       if (light != null)
       {
           light.color = color;
           light.intensity = intensity;
       }
   }
}

À quoi sert ce code? ? Il détermine d'abord qu'il faut modifier Light Quelles propriétés du composant .

Et ensuite réécritPlayableBehaviourDeProcessFrameMéthodes.ProcessFrameIl sera là.Timeline Appelé lorsque chaque cadre est mis à jour .Dans cette approche,,Vous pouvez modifierLightPropriétés du composant.

Traitement des données

Ensuite, Personnaliser clipCréationPlayableAsset,Utilisé pour enregistrer les données,Les codes sont les suivants::

using UnityEngine;
using UnityEngine.Playables;

public class LightControlAsset : PlayableAsset
{
   public ExposedReference<Light> light;
   public Color color = Color.white;
   public float intensity = 1.0f; 

   public override Playable CreatePlayable (PlayableGraph graph, GameObject owner)
   {
       var playable = ScriptPlayable<LightControlBehaviour>.Create(graph);      

       var lightControlBehaviour = playable.GetBehaviour();
       lightControlBehaviour.light = light.Resolve(graph.GetResolver());
       lightControlBehaviour.color = color;
       lightControlBehaviour.intensity = intensity; 

       return playable;  
   }
}

Vous verrezPlayable API Pour réaliser la séparation des données et de la logique ,Un petit problème,Il y a encore beaucoup de code..

PlayableAssetIl y a deux objectifs.

  • Tout d'abord, il contient clipDonnées,Ces données seront disponibles à l'adresse suivante:Timeline Sérialisation dans les ressources .
  • Ensuite, il crée PlayableBehaviourEt lui assigner une valeur,La dernière sortie estPlayableFig..(PlayableGraph, Vous pourriez avoir raison Playable La photo ne comprend pas ,C'est bon, Sautez d'abord .)

CreatePlayable La première ligne de la méthode est la suivante: :

var playable = ScriptPlayable<LightControlBehaviour>.Create(graph);

Cette ligne de code sera graph Ajouter un comportement personnalisé LightControlBehaviour,Pour que vous puissiezPlayableBehaviourParamètresLightPropriétés de.

LightControlAsset Dans les propriétés des membres de la classe ExposedReferenceQu'est - ce que ça fait??Parce quePlayableAsset C'est une ressource. , Il ne peut pas faire directement référence à un objet dans la scène .En ce momentExposedReferenceIl diraLight Exposé comme un attribut ,Ça pourrait être dansTimelineSet it in,Et aprèsCreatePlayable L'objet peut être utilisé dans .

UtiliserPlayable Track Et ajouter des personnalisations Clip

On peut le faire maintenantTimlineAjouterPlayable Track, Puis faites un clic droit sur la nouvelle piste pour ajouter une personnalisation clip, La personnalisation que vous venez d'ajouter apparaît dans le menu Clip.

  • Add From Light Vous pouvez choisir parmi un LightAjouter
  • Add Light Control Asset Vous pouvez en ajouter un directement clip,Puis sélectionnezclipAprès,Oui.Light Composant assigné à clip, Vous pouvez prévisualiser les résultats .

IntégréPlayable Track Est une personnalisation de réception Clip Une piste universelle pour , Il peut recevoir des personnalisations simples Playable clip,Par exemple, l'exemple ci - dessus. Pour des situations plus complexes , Vous pouvez également utiliser des pistes personnalisées .

7.Cinemachine Track Fonctionnement en série de la caméra , Ceci est également disponible pour la commutation de lentilles .

TimeLine Les différentes voies sont plus flexibles , Le même effet peut être réalisé de plusieurs façons , Trouvez le bon. . 

Les captures d'écran des travaux sont les suivantes:

 

Mentions de copyright
Auteur de cet article [Star Mengmeng],Réimpression s’il vous plaît apporter le lien vers l’original, merci
https://fra.chowdera.com/2022/205/202207240226275486.html

Recommandé au hasard