Comment créer une piste personnalisée dans la chronologie?

How Create Custom Track Timeline



Bonjour, je suis le nouvel apprentissage mignon de Unity, je m'appelle Xiaoxin, voici mon rapport de synthèse d'étude de cette semaine.

Après avoir utilisé Timeline pendant un certain temps, j'ai demandé à Dazhi: `` Y a-t-il si peu de pistes dans Timeline? J'ai trouvé que certaines de ces pistes ne peuvent pas du tout être satisfaites. Utilisation Piste jouable que j'ai apprise avant Aussi gênant, y a-t-il un autre moyen? '



Dazhi: 'Quel problème avez-vous rencontré?'



Xiaoxin: `` Celui que nous avons appris avant Piste jouable L'un des problèmes est le suivant: chaque fois que vous ajoutez un clip personnalisé, vous devez lui attribuer un composant Light. S'il y a beaucoup de clips, ce sera très gênant. '



Dazhi: «Ce n'est pas grave, ce n'est pas un gros problème, vous pouvez tout obtenir en même temps en choisissant plusieurs options. Mais ce dont vous pourriez avoir besoin davantage, c'est d'une piste personnalisée. Il y a plusieurs avantages à utiliser des pistes personnalisées: '
1. Peut utiliser votre cerveau pour réaliser des possibilités illimitées avec du code
2. Il peut résoudre le problème de la liaison de la piste (objet lié dans la figure ci-dessous). Il ne doit être lié qu'une seule fois et tous les clips de la piste sont accessibles. Tels que la piste d'animation et la piste d'activation.
3. Si de nombreux types de clips sont mixés sur la piste jouable, cela finira par être très déroutant et peu intuitif. Les pistes personnalisées peuvent distinguer intuitivement les pistes à des fins différentes.

image

Voyons ensuite comment apprendre avant Piste jouable Remplacez le clip lumineux personnalisé par une piste personnalisée, puis liez le composant Light.



Notez que ce qui suit est basé sur le précédent Piste jouable Si vous n'avez pas étudié dans cette section, il est recommandé d'étudier d'abord Piste jouable

Piste personnalisée

Tout d'abord, vous devez créer un script de suivi personnalisé qui hérite de TrackAsset:

using UnityEngine using UnityEngine.Timeline [TrackClipType(typeof(LightControlAsset))] [TrackBindingType(typeof(Light))] public class LightControlTrack : TrackAsset {}

Ce code utilise deux attributs:

  • TrackClipType Spécifie le type PlayableAsset pour la réception de la piste
  • TrackBindingType Spécifie le type d'objet dont la piste a besoin pour se lier.

Vous devez maintenant modifier PlayableAsset et PlayableBehaviour, qui sont les précédents LightControlAsset et LightControlBehaviour.

Le code de LightControlBehaviour est le suivant:

using UnityEngine using UnityEngine.Playables public class LightControlBehaviour : PlayableBehaviour { //public Light light = null no longer need it public Color color = Color.white public float intensity = 1f public override void ProcessFrame(Playable playable, FrameData info, object playerData) { Light light = playerData as Light // There are changes in this place if (light != null) { light.color = color light.intensity = intensity } } }

Dans PlayableBehaviour, la variable membre Light n'est plus nécessaire, car elle peut être obtenue à partir du playerData de la méthode et convertie dans le type correspondant.

using UnityEngine using UnityEngine.Playables public class LightControlAsset : PlayableAsset { //public ExposedReference light No need for it public Color color = Color.white public float intensity = 1f public override Playable CreatePlayable (PlayableGraph graph, GameObject owner) { var playable = ScriptPlayable.Create(graph) var lightControlBehaviour = playable.GetBehaviour() //lightControlBehaviour.light = light.Resolve(graph.GetResolver()) lightControlBehaviour.color = color lightControlBehaviour.intensity = intensity return playable } }

Il n'est pas nécessaire de conserver ExposedReference dans PlayableAsset, la piste fournira directement cet objet Light.

Ajouter dans la chronologie

Vous pouvez maintenant ajouter la piste de contrôle de la lumière directement dans la chronologie.

Après avoir ajouté Track, vous devez définir l'objet lié. De cette manière, chaque clip peut obtenir l'objet lié.

Il peut être utilisé comme le Track intégré!

Les pistes personnalisées peuvent vous aider à jouer à volonté et peuvent même transformer la chronologie en une animation de séquence interactive non linéaire, suscite-t-elle à nouveau votre intérêt? Alors viens avec moi Xiaoxin.

[Apprentissage étendu] Chaussures pour enfants intéressées par Timeline & Cinemachine: plus de tutoriels sur École Hongliu Réponse du compte public timeline Obtenez gratuitement des manuels graphiques et des didacticiels vidéo.


D'accord, laissez Xiaoxin discuter ici aujourd'hui. Les commentaires qui ne sont pas clairement expliqués sont les bienvenus, non aimerCollecter Je ne peux pas vous répondre (et pas 、 & non) (¬_¬)

Je suis Dazhi, votre éclaireur technique, à la prochaine fois!

N'y allez pas! aimerCollecter Oh!

D'accord, vous pouvez y aller maintenant.