반응형
런타임 도중 애니메이션 녹화 필요성
플레이어를 런타임 도중에 조작하고, 움직인 동작을 애니메이션 클립으로 저장할 수 없을까?
GameObjectRecorder를 사용하면 런타임에 실행된 변화를 애니메이션 클립으로 저장할 수 있다.
이렇게 하면 인게임에서 리플레이 시스템으로 활용할 수 있고 버츄얼 프로덕션 등에도 유의미하게 활용할 수 있다.
어떻게 런타임에 녹화할 수 있을까?
GameObjectRecorder를 사용하면 가능하다.
아래의 스크립트는 예시중 일부이다.
using System.Collections;
using System.Collections.Generic;
using UnityEditor.Animations;
using UnityEngine;
public class RuntimeRecorder : MonoBehaviour
{
public AnimationClip clip;
private GameObjectRecorder m_Recorder;
void Start()
{
// Create recorder and record the script GameObject.
m_Recorder = new GameObjectRecorder(gameObject);
// Bind all the Transforms on the GameObject and all its children.
m_Recorder.BindComponentsOfType<Transform>(gameObject, true);
m_Recorder.BindComponentsOfType<RecordingTest>(gameObject, true);
}
void LateUpdate()
{
if (clip == null)
return;
// Take a snapshot and record all the bindings values for this frame.
m_Recorder.TakeSnapshot(Time.deltaTime);
}
void OnDisable()
{
if (clip == null)
return;
if (m_Recorder.isRecording)
{
// Save the recorded session to the clip.
m_Recorder.SaveToClip(clip);
}
}
}
반응형
'유니티 > 애니메이션' 카테고리의 다른 글
[Unity] 애니메이션 리깅 (2) - Constraint (0) | 2023.06.27 |
---|---|
[Unity] 애니메이션 리깅 (1) - Overview (0) | 2023.06.26 |