从脚本播放动态

最終更新: 2020年1月30日

此页面适用于Cubism 4.2及更早版本的旧版本。 点击此处查看最新页面

此页面说明为Cubism模型设置MotionController的步骤。
以下内容以追加到已执行“载入SDK”的项目为前提。

概述

如果您想在不使用Unity的Mecanim的情况下从脚本播放动画,您可以使用Cubism SDK for Unity中名为“CubismMotionController”的组件进行设置。

参考“Motion”了解有关CubismMotionContoller的更多信息。 

CubismMotionController需要Animator组件才能动作。
但是,CubismMotionController不能与使用Animator的AnimatorController的动态播放共存。
因此,在使用CubismMotionController播放动态时,不要将AnimatorController设置为Animator。

要为您的Cubism模型进行上述设置,请按照以下步骤操作。

  1. 附加CubismMotionController
  2. 准备一个调用播放AnimationClip指令的组件
  3. 创建一个播放动态的按钮

1. 附加CubismMotionController

将播放动画的“CubismMotionController”附加到作为模型根的GameObject。

CubismMotionController有一个设置项目。

– Layer Count:CubismMotionController管理的动画层总数。要设置的值的范围是1或更多。

当附加CubismMotionController时,如果Animator或CubismFadeController没有附加到该GameObject上,则会同时附加。

CubismMotionController需要Animator,因为它使用Playable来播放动态。
如果在Animator组件的Controller中设置了AnimatorController,则优先。
如果您使用CubismMotionController,请不要在此处设置任何内容。

此外,CubismFadeController是必需的,因为CubismMotionController使用MotionFade将动态与动态混合。
如果未设置CubismFadeController.CubismFadeMotionList,则请设置生成的.cadeMotionList。
.fadeMotionList的设置请参考 “在Mecanim中启用动态渐变” 。

2. 准备一个调用播放AnimationClip指令的组件

创建一个名为“MotionPlayer”的C#脚本,并重写代码如下:
这里播放了参数的AnimationClip。

using Live2D.Cubism.Framework.Motion;
using UnityEngine;

public class MotionPlayer : MonoBehaviour
{
    CubismMotionController _motionController;

    private void Start()
    {
        _motionController = GetComponent<CubismMotionController>();
    }

    public void PlayMotion(AnimationClip animation)
    {
        if ((_motionController == null) || (animation == null))
        {
            return;
        }

        _motionController.PlayAnimation(animation, isLoop: false);
    }
}

将创建的MotionPlayer附加到1中附加了CubismMotionController的GameObject中。

这样就完成了从脚本播放动态的设置。
您可以通过从外部脚本等调用MotionPlayer.PlayMotion(),并传递要播放的AnimationClip作为参数来播放动态。

这里我们通过按钮调用这个函数。

3. 创建一个播放动态的按钮

右键单击Hierarchy视窗顶部的Create按钮或Hierarchy视窗,然后单击UI> Button以在Scene中创建一个Button。
将创建的Button置入任意位置。

选中创建的Button,从Inspector视窗单击Button的“On Click()”底部的“+”。
将Hirarchy中的模型GameObject拖放到您追加的列表中,然后从右侧的下拉菜单中选择MotionPlayer/PlayMotion()。

最后,在参数中设置要播放的AnimationClip。

这样就完成了设置。 如果您在此状态下执行它,则当您在Game视图中单击按钮时将播放动态。

请问这篇文章对您有帮助吗?
关于本报道,敬请提出您的意见及要求。