워크 플로우에 의한 모션 작성의 차이에 대해

[마지막 갱신일: 2019/09/03]

각 SDK의 모션에 관한 특징

  Workflow for Unity Original Workflow(Native, Web, Unity)
사용기구 Mecanim CubismMotionManager (Native, Web),
CubismMotionController (Unity),
Mecanim (Unity)
모션 종료 후의 미지정 요소의 거동 초기값으로 재설정 모션 종료시의 값
파츠 간의 무결성 보호 없음 있음
모션 전환 직선 보간에서의 전환
Mecanim에서 지정한 모션 단위
파라미터는 여유 보간
파츠 불투명도는 직선 보간
3개의 구획에서의 페이드값의 등록이 가능

 

Unity, Mecanim의 특징

Workflow for Unity의 모션 제어는 Unity의 내장 기능인 Mecanim에서 수행됩니다.
사용하는 컴포넌트는 Animator의 그래픽 환경에서 상태 전이의 형태로 모션 컨트롤을 만듭니다.
상태 천이의 전환 제어에는 Animator로 설정할 수 있는 파라미터를 사용해,
이 파라미터의 제어에는 스크립트나 AnimationClip에 Animator 제어용 커브 등을 사용합니다.

 

BrendTree는 OWSDK에 없는 모션끼리의 블렌딩이 가능합니다.
이 기능은 표정의 블렌드 등에 사용하면 강력합니다.

Mecanim에 대한 자세한 내용은 Unity 공식 매뉴얼의 애니메이션을 참조하십시오.

 

UnitySDK로 모션을 만들 때의 주의점

파츠 무결성

가장 주의해야 할 것은 전환 파츠의 무결성입니다.
Unity에서도 Original Workflow 방식에서는 포즈 기능에 의해 자동으로 일관성이 유지되지만,
Workflow for Unity에서는 파츠의 무결성을 유지하기 위해 모션에서 Animator의 상태 전이까지 주의해야 합니다.

 

・전환 파츠 모두에 일관성이 잡힌 값을 입력한다.

지정하지 않은 파라미터, 파츠의 값은, Write Defaults가 설정되어 있는 경우는 초기치로 돌아가기 때문에, 예상치 못한 동작을 하는 일이 있습니다.

 

또한 레이어 기능을 사용할 때 다른 레이어의 영향을 받을 수 있습니다.

・BlendTree로 전환이 있는 모션을 넣지 않는다.

파츠의 값이 중간에 영향을 주어 표시가 흐트러질 수 있습니다.

 

모션 전환시 선형 보간

모션의 전환시의 보간 방법은 NativeSDK가 이징(EaseInOutSine) 보간인 것에 비해,
Unity의 Mecanim이 제공하는 보간 방법은 직선 보간입니다.
이 보간 방법은 투명도 등에서는 위화감이 없지만, 회전 디포머 등의 직선 보간에서는 기계적인 인상을 받습니다.

 

Original Workflow의 특징

Original Workflow는 Cubism Viewer (for OW)를 사용하여 .model3.json에 등록하고 코드 호출로 모션을 제어합니다.
그래픽 환경이 아닌 대신 포즈 기능을 통해 자동으로 실시간으로 전환 파츠의 무결성을 유지합니다.
모션 종료 후에 값이 남는 특성이 있기 때문에 최종 모션을 상태 천이로 사용할 수도 있습니다.
개별적으로 합성 방법을 지정할 수 있는 표정 모션도 이용할 수 있습니다.

 

프로그램 개조

Original Workflow의 특징으로서 열거하는 항목은 모두 SDK에 포함되는 Framework와 샘플을 그대로 사용했을 경우의 특성입니다.
Framework를 그대로 사용하거나 샘플을 기반으로 프로그램을 작성한 경우에는 앞서 언급한 특성을 인계합니다.
그러나, Cubism SDK는 Core 이외의 프로그램은 모두 공개되어 있으므로, 어플리케이션의 사양에 맞추어 SDK측의 구현을 변경하는 것이 가능합니다.
궁극적으로 Live2D 모델을 사용하는 프로그램의 사양을 따르십시오.

 

포즈 기능을 올바르게 작동시키기 위해

포즈 기능은 해당 파츠에의 모션으로부터의 지정을 감시하고 최초로 0이 아닌 조작을 찾은 파츠를 표시 파츠로 인식하는 방식입니다.
Workflow for Unity에서 운용할 때와 마찬가지로 모든 전환 파츠에 값을 칠 필요가 있습니다.
또한 작은 값이라도 남아 있으면 반응하므로 확실히 숨기기에 대해 0을 설정하는 것이 중요합니다.

 

모션에서 포즈 기능 이외의 파츠 불투명도 조작 불능

포즈 기능을 통해 파츠의 불투명도를 조작하는 관계상,
파츠 조작의 지정이 없는 파츠는 비록 모션 중에 지정이 있어도 조작이 반영되지 않습니다.
단일 파츠 표시 숨기기를 조작할 때는 쌍이 될 빈 파츠를 준비해야 합니다.

 

모션의 호출 특성

우선순위

CubismMotionManager를 사용하여 모션을 재생할 때 재생 우선 순위를 설정하는 항목이 있습니다.
또한 앞으로 재생할 때 우선순위를 예약할 수 있습니다.
재생중, 예약중의 우선순위와 모션의 재생 요구의 우선순위를 비교하는 것으로 재생의 선별할 수 있습니다.

 

 

페이드 지정 우선 순위

Original Workflow 방식에서는 페이드 시간 지정을 3개의 구획으로 등록할 수 있습니다.

우선순위 1 2 3 4
명세 파라미터 단위 모델에 모션 등록 모션 표준 지정되지 않은 표준값(1초)
설정 방법 「페이드 값 설정」 「모션 설정」 「페이드 값 설정」  

 

루프 설정

현재 Cubism Animator에서는 루프 설정을 할 수 없기 때문에 Motion 파일을 읽을 때 루프 설정은 기본 False로 고정되어 있습니다.

모션 파일로부터의 설정을 읽으려면 상기의 코멘트 아웃하고 있는 부분을 아래와 같이 변경해 복귀시키는 것으로 가능해집니다.

[주의] ret->_loop은 올바른 변수 이름이 아니므로 주석 처리를 제거하고 ret->_isLoop로 설명을 변경하십시오.

또한 편집기에서 설정을 할 수 없으므로 모션 파일의 설정을 변경하려면 텍스트 편집기에서 직접 .motion3.json을 처리해야합니다.

게다가 루프시의 페이드 인 설정에 관해서 false를 지정하면 에디터와 같은 동작이 됩니다.
루프시의 페이드 인 설정을 변경하려면 이전 루프 설정을 지정한 다음 아래와 같이 추가하십시오.

 

루프시의 페이드 인 설정에 관해서는 현재 모션 파일 내에 설정 항목이 없는 것에 주의해 주세요.

Loop 설정은 전환에 페이드를 사용하고 싶지만 유휴 중에는 페이드를 켜고 싶지 않은 경우에 유효한 설정입니다.

Loop 설정을 사용하지 않는 샘플의 유휴 동작은 작동 중인 모션이 없는 경우에만 유휴 모션을 재생하기 위한 메커니즘입니다.
이 때문에, 샘플로부터 그대로 파생시키는 형태로 프로그램 작성할 때는,
공회전 모션 전환이 눈에 띄지 않도록 고려해야 합니다.

 

© 2010 - 2022 Live2D Inc.