关于从Cubism 2.1到3.0的框架变更点

最終更新: 2019年9月3日

在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,并将该参考设置为控制器上的输入属性。

关于本报道,敬请提出您的意见及要求。