Unity Timeline의 Playable Track과 그 구현 방법에 대해

6493 단어 PlayableDirectorUnity

기사의 목적



Playable Track과 그 구현 방법에 대해 간략하게 설명할 것

리포지토리



Playable Track이란?



애니메이션 및 음원 재생 시간을 관리하는 TimeLine에 스크립트 제어를 설정할 수 있는 Track
아래 동영상에서는 Playable Track을 사용하여 슬라이드를 전환하고 있습니다.
※동시에 Animation Track으로 구의 사이즈를 크고 작은
Playing Slide TimeLine

Playable Track의 장점


  • 시간 관리가 편하다
  • 동영상의 타이밍에 맞는 공간 연출이 가능 (프레젠테이션이나 연수 동영상 등을 3D 디자인 할 수 있다)
  • 스크립트를 모르는 사람에게 일을 맡긴다

  • 설정 방법


  • PlayableBehaviour 클래스를 상속받은 클래스로 동작을 설정합니다.

    SlideChange.cs
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.Playables;
    
    public class SlideChange : PlayableBehaviour
    {
        public Sprite slideImage;
        public GameObject spriteObject;
    
        //タイムライン開始時実行される
        public override void OnGraphStart( Playable playable ) {
            base.OnGraphStart( playable );
    
            //スライドを表示するGameObjectを取得
            spriteObject = GameObject.FindGameObjectWithTag("Window");
        }
    
        //PlayableAsset(コマ)再生時実行される
        public override void OnBehaviourPlay( Playable playable, FrameData info ) {
    
            //スライドの画像(Sprite)を変更
            spriteObject.GetComponent<SpriteRenderer>().sprite = slideImage;
    
        }
    }
    
  • PlayableAsset 클래스를 상속받은 클래스로, 동작을 Track에 꽂을 수있는 Asset를 작성합니다.

    SlideAsset.cs
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.Playables;
    
    public class SlideAsset : PlayableAsset
    {
        public Sprite image;
    
        public override Playable CreatePlayable( PlayableGraph graph, GameObject owner ) {
            //PlayableBehaviourを継承したSlideChangeクラスを元に、PlayableAsset(コマ)を作る
            var player = ScriptPlayable<SlideChange>.Create( graph );
    
            //SlideChangeクラスにあるプロパティを設定
            var behaviour = player.GetBehaviour();
            behaviour.slideImage = image;
    
            return player;
        }
    }
    
    ※基本的にはPlayableAssetでコマの設定が出来、そのPropertyを設定できる。
    ただしMonobehaviourを継承していないので、Scene内のものを取得したい場合は
        ExposedReference<Object>
    といった記述が必要になる。
    
  • Unity GUI에서 Timeline의 Playable Track에 Playable Asset 삽입 (오른쪽 클릭으로 마음대로 나온다)
  • Asset 에 프로퍼티가 있는 경우, Asset 를 클릭했을 때 Inspector 에 표시되는 장소에 데이터를 넣어 둔다.
  • 좋은 웹페이지 즐겨찾기