Unity에서 OVRLipsync를 사용하여 만든 BlendShape 애니메이션을 클립으로 변환하는 방법
3802 단어 blendshapeOVRLipsyncUnity
요약
Unity에서 OVRLipsync를 사용하여 만든 BlendShape 애니메이션을 GameObjectRecorder 클래스를 사용하여 애니메이션 세션으로 변환할 수 있습니다.
Unity - Scripting API: GameObjectRecorder
입문
유니티에서 애니메이션을 만들고 싶을 때 립싱크가 귀찮을 때 OVRLipsync라는 새로운 도구를 발견했어요.그러나 거의 상호작용의 용도로 그 애니메이션을 자산으로 삼고 싶어도 방법을 찾지 못한다...그곳에 나타난 구세주!
유니티 사용자 협조소
질문을 하고 소코로 대답했다.정말 감사합니다!
방법
유니티 쓸게요.
Unity에 OVRLipsync를 넣고 BlendShape로 설정된 값은 사운드 데이터에 따라 이동합니다(립싱크).여기까지는 다른 기사를 참고하세요.
Unity - Scripting API: GameObjectRecorder
페이지를 참고하여 아래와 같은 스크립트를 만듭니다.using UnityEngine;
using UnityEditor.Animations;
public class RecordTransformHierarchy : 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<SkinnedMeshRenderer>(gameObject, false);
}
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);
}
}
}
유니티의 표정입니다. 블렌드셰이프가 있는 MTH_.DEF에 할당합니다.
또한 스크립트에 할당된 클립 표시줄을 빈 편집으로 만듭니다.
그런 다음 Unity의 기본 애니메이션 제작 도구인 Idle Changer, Face Updata, Auto Blink를 선택 취소하여 사용할 수 없게 합니다.
그런 다음 Play를 눌러 중지하면 지정된 클립이 키프레임을 트리거합니다.이때 Pause를 누르고 Play를 누르면 Pause를 빼고 재생하는 것이 좋습니다.다음 그림은 실패한 예입니다.
그러나 애니메이션의 키프레임이 맞은 곳의 속성이 노랗게 변하여 이렇게 사용할 수 없다.
따라서 새 세션을 만들고 속성을 수동으로 추가한 다음 키프레임을 이전 세션에서 해당 속성으로 복사합니다.일본어에서_A,_I,_U,_E,_나는 O 속성의 키프레임을 옮기면 된다고 생각한다.(이전의 그림과 이번 그림이 사용한 애니메이션이 다르기 때문에 키프레임이 대응하지 않습니다.)
이후 애니메이션 제작 도구 등에 검사를 넣어 able로 만들어 소리와 함께 재생하면 립싱크가 된다.사운드와 립싱크가 엇갈리면 타임라인 등으로 조절하면 편리하다.
총결산
나는 번거로운 부분을 간소화할 수 있다고 생각하지만, 현재 나는 립싱크의 빈도가 높지 않아서 업데이트하지 않을 것이다.
더 좋은 방법을 생각하는 사람이 있으면 기사를 쓰세요.나를 위해서도 부탁해!번거로울까 봐
Reference
이 문제에 관하여(Unity에서 OVRLipsync를 사용하여 만든 BlendShape 애니메이션을 클립으로 변환하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/itsutsuhashi/items/67f311ef51473f5ad5c5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
유니티에서 애니메이션을 만들고 싶을 때 립싱크가 귀찮을 때 OVRLipsync라는 새로운 도구를 발견했어요.그러나 거의 상호작용의 용도로 그 애니메이션을 자산으로 삼고 싶어도 방법을 찾지 못한다...그곳에 나타난 구세주!
유니티 사용자 협조소
질문을 하고 소코로 대답했다.정말 감사합니다!
방법
유니티 쓸게요.
Unity에 OVRLipsync를 넣고 BlendShape로 설정된 값은 사운드 데이터에 따라 이동합니다(립싱크).여기까지는 다른 기사를 참고하세요.
Unity - Scripting API: GameObjectRecorder
페이지를 참고하여 아래와 같은 스크립트를 만듭니다.using UnityEngine;
using UnityEditor.Animations;
public class RecordTransformHierarchy : 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<SkinnedMeshRenderer>(gameObject, false);
}
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);
}
}
}
유니티의 표정입니다. 블렌드셰이프가 있는 MTH_.DEF에 할당합니다.
또한 스크립트에 할당된 클립 표시줄을 빈 편집으로 만듭니다.
그런 다음 Unity의 기본 애니메이션 제작 도구인 Idle Changer, Face Updata, Auto Blink를 선택 취소하여 사용할 수 없게 합니다.
그런 다음 Play를 눌러 중지하면 지정된 클립이 키프레임을 트리거합니다.이때 Pause를 누르고 Play를 누르면 Pause를 빼고 재생하는 것이 좋습니다.다음 그림은 실패한 예입니다.
그러나 애니메이션의 키프레임이 맞은 곳의 속성이 노랗게 변하여 이렇게 사용할 수 없다.
따라서 새 세션을 만들고 속성을 수동으로 추가한 다음 키프레임을 이전 세션에서 해당 속성으로 복사합니다.일본어에서_A,_I,_U,_E,_나는 O 속성의 키프레임을 옮기면 된다고 생각한다.(이전의 그림과 이번 그림이 사용한 애니메이션이 다르기 때문에 키프레임이 대응하지 않습니다.)
이후 애니메이션 제작 도구 등에 검사를 넣어 able로 만들어 소리와 함께 재생하면 립싱크가 된다.사운드와 립싱크가 엇갈리면 타임라인 등으로 조절하면 편리하다.
총결산
나는 번거로운 부분을 간소화할 수 있다고 생각하지만, 현재 나는 립싱크의 빈도가 높지 않아서 업데이트하지 않을 것이다.
더 좋은 방법을 생각하는 사람이 있으면 기사를 쓰세요.나를 위해서도 부탁해!번거로울까 봐
Reference
이 문제에 관하여(Unity에서 OVRLipsync를 사용하여 만든 BlendShape 애니메이션을 클립으로 변환하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/itsutsuhashi/items/67f311ef51473f5ad5c5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
using UnityEngine;
using UnityEditor.Animations;
public class RecordTransformHierarchy : 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<SkinnedMeshRenderer>(gameObject, false);
}
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);
}
}
}
나는 번거로운 부분을 간소화할 수 있다고 생각하지만, 현재 나는 립싱크의 빈도가 높지 않아서 업데이트하지 않을 것이다.
더 좋은 방법을 생각하는 사람이 있으면 기사를 쓰세요.나를 위해서도 부탁해!번거로울까 봐
Reference
이 문제에 관하여(Unity에서 OVRLipsync를 사용하여 만든 BlendShape 애니메이션을 클립으로 변환하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/itsutsuhashi/items/67f311ef51473f5ad5c5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)