Cubism 2.1에서 3.0으로의 프레임 워크 변경 사항에 대해

업데이트: 2019/09/03

2.1의 SDK에서는 물리 연산이나 시선 추종 등의 기능이 framework 내의 클래스나 모델 클래스의 Update에 하드 코딩되어 있었습니다.
3.0 이상의 CubismComponents에서는 그 기능의 구성을 전면적으로 재검토해, 각각을 기능마다 하나의 컴포넌트로 변경했습니다.
프로퍼티의 값을 Inspector에서 시각적으로 설정할 수 있어 각 기능을 런타임상에서 추가 또는 삭제하는 것도 용이해졌습니다.

CubismComponents 내의 각 기능의 컴포넌트는 기본적으로 이하와 같은 구조로 되어 있습니다.

  • 컨트롤러
  • 출력 대상 지정
  • 컨트롤러가 처리할 값 입력

컨트롤러

이것은 CubismComponents를 제어하는 각 기능의 기본 컴포넌트입니다.
「Cubism[기능 이름]Controller」라는 이름이 설정되어 있습니다.
기능에 관한 각종 설정은 이 컴포넌트로 설정되어 후술하는 컨트롤러로 처리하는 값의 입력처 지정도 여기에 있습니다.

컨트롤러 초기화 시에 후술하는 출력처 지정용 컴포넌트의 참조를 취득합니다.
그 때문에, 참조의 취득을 외부로부터 호출할 수 있도록 하면 출력처용 컴포넌트를 실행 중에 추가/삭제하는 것도 가능합니다.

사용하려면 생성된 모델의 루트에 있는 GameObject에 연결합니다.

출력 대상 지정

이것은 컨트롤러가 처리한 결과를 반영하는 출력용 컴포넌트입니다.

이 컴포넌트를 사용하는 경우 [모델 루트]/Parameters/아래 파라미터 또는 [모델 루트]/Parts/아래 파츠,
[모델 루트]/Drawables/아래 메쉬의 GameObject에 연결합니다.

이 컴포넌트에는 「Cubism[기능명]Parameter」「Cubism[기능명]Part」「Cubism[기능명]able」이라는 이름이 설정되어 있으므로,
어떤 오브젝트에 연결해야 하는지를 이름으로 추측할 수 있습니다.

컨트롤러가 처리할 값 입력

이 컴포넌트는 립싱크로 사용하기 위한 음량이나 시선을 추종시키기 위한 좌표 등
컨트롤러가 처리하기 위한 값을 입력하는 컴포넌트입니다.

2.1에서는 하드 코딩되어 있던 부분이지만, 3.0부터는 인터페이스를 구현해 취급하기 때문에 자유도가 높고,
사용자에 의한 커스터마이즈가 매우 용이하게 되어 있습니다.

using UnityEngine;


namespace Live2D.Cubism.Framework.LookAt
{
    /// <summary>
    /// Target to look at.
    /// </summary>
    public interface ICubismLookTarget
    {
        /// <summary>
        /// Gets the position of the target.
        /// </summary>
        /// <returns>The position of the target in world space.</returns>
        Vector3 GetPosition();


        /// <summary>
        /// Gets whether the target is active.
        /// </summary>
        /// <returns><see langword="true"/> if the target is active; <see langword="false"/> otherwise.</returns>
        bool IsActive();
    }
}

이 컴포넌트를 사용하려면, 이 컴포넌트를 임의의 GameObject에 연결해 그 참조를 컨트롤러에 있는 입력용 프로퍼티에 설정합니다.

이 기사가 도움이 되었나요?
아니요
이 기사에 관한 의견 및 요청사항을 보내 주시기 바랍니다.