播放动态时执行动态同步(Unity)

最終更新: 2024年11月28日

从Cubism 5 SDK MotionSync Plugin for Unity R2开始可以在播放动态时使用与.model3.json上关联的音频相同的动态同步设置来执行动态同步。

前提

要在播放动态时应用动态同步,需在输出到.model3.json的动态信息中正确设置了音频和动态同步设置。

具体设置方法请参考Editor手册“动态设置”。

机制

Cubism 5 SDK MotionSync Plugin for Unity R2及更高版本中追加了以下内容。

  • CubismMotionSyncLinkData
    • 载入时关联动态、音频和动态同步设置的资源
  • CubismMotionSyncLinkList
    • 参考CubismMotionSyncLinkData的资产
  • CubismMotionSyncLinkController
    • 播放与所播放的动态关联的音频并应用动态同步设置的组件。

CubismMotionSyncLinkData及拥有其参考的列表的CubismMotionSyncLinkList资产在载入及重新载入时生成。

可以将此次追加的CubismMotionSyncLinkController组件应用到模型中,使用CubismMotionController组件播放动态,使用CubismMotionController.AnimationBeginHandler检测动态播放,并通过播放关联的音频来使用动态同步。

如果将此次追加的CubismMotionSyncLinkController组件应用到模型中,则可以通过使用CubismMotionController.AnimationBeginHandler检测动态播放并播放关联的音频来使用动态同步。

使用CubismMotionController组件播放动态。
关于使用CubismMotionController组件进行动态播放的更多信息,请参考SDK手册“Motion”。

使用已载入的模型时

如果将已设置的模型载入到使用了Cubism 5 SDK MotionSync Plugin for Unity R1或更早版本的项目中,则更新到Cubism 5 SDK MotionSync Plugin for Unity R2或更高版本,并重新载入模型后,将生成CubismMotionSyncLinkDataCubismMotionSyncLinkList资产。

创建动作场景

1. 准备已使用Editor手册“动态设置”完成设置的模型。

2. 将模型置入场景,按照SDK手册“场景中的使用(Unity)”中的说明进行除追加音频之外的设置。

3. 将CubismMotionSyncLinkController组件附加到模型的根。此时,CubismMotionController组件也会自动附加。

4. 将要使用的AudioSource组件链接到CubismMotionSyncLinkController组件的AudioSource,将要使用的模型的CubismMotionSyncLinkList 资产链接到MotionSyncLinkList。 

5. 这次,创建以下脚本。

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

public class MotionLinkTest : MonoBehaviour
{
    private CubismMotionController _motionController;
    public AnimationClip Clip;

    // Start is called before the first frame update
    private void Start()
    {
        _motionController = GetComponent<CubismMotionController>();
    }

    // Update is called once per frame
    private void Update()
    {
        if (_motionController.IsPlayingAnimation())
        {
            return;
        }

        if (Input.GetKeyDown(KeyCode.F))
        {
            _motionController.PlayAnimation(Clip, isLoop: false);
        }
    }
}

6. 将创建的脚本附加到模型,并将已关联音频和动态同步的动态设置到Clip中。

7. 播放场景并按下键盘上的F键后,将播放动态,进行音频播放和动态同步。

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