登录后台

页面导航

本文编写于 1262 天前,最后修改于 1261 天前,其中某些信息可能已经过时。

本文翻译自:https://docs.live2d.com/cubism-sdk-tutorials/animation/

译者注:注意!这并不是一篇严谨的翻译,本人并不是翻译行业从业者,也根本不会日文。官网的中文翻译会连带代码一起翻译,而且还不如机翻日文,官网的英语翻译版本有的语法很奇怪,看起来也是机翻。本文主要来自日文机翻,然后再结合实际开发经验调整到通顺,修改不该翻译的东西并润色。

[最后更新日期: 2020/01/30] 译者注:这是这个日文原文的更新日期

这是一个在 Unity 项目上播放从 Cubism Editor 导出模型的教程。

该说明基于以下假设:已经完成 [导入SDK-放置模型] 这一节的内容。

总览

要在 Unity 项目上播放 Cubism 动画,需要使用 .motion3.json 格式的运动文件。

有关导出运动文件的信息,请参见此处

SDK 还提供了用于转换 motion3.json 和模型的 Importer,在导入时 motion3.json 会自动转换为 Unity 的动画格式 「Animation Clip」。

通过使用转换后的 AnimationClip ,可以仅使用 Unity 的自带函数处理动画,而无需在 Unity 上使用 Live2D 函数。

以下是在 Unity 项目中播放动作的步骤:

  • 导入运动文件
  • 播放 AnimationClip

导入运动文件

将从 Cubism Editor 导出的包含运动文件的动作档文件夹拖放到 「project」 视图中。

img

然后,会自动从 motion3.json 生成一个 AnimationClip,如下图所示。

也可以将生成的 AnimationClip 设置为 Loop。

img

Tips

此 AnimationClip 里面有当前动作动画曲线的每个具体参数,[译注:上图里的那个 open 按钮打开就能看到了]

在此动画曲线上设置的参数的属性在模型预制体(Prefab) 的以下层次结构中。 (Value 在检查器[Inspector]中隐藏)

[模型最外层]/Parameters/[参数ID]/Cubism Parameter/Value

根据参数 ID 的不同,为 Value 设置的最大值和最小值会有所不同,但超出此范围的值将被视为最大值或最小值。

img

此外,零件的不透明度在以下预制体层次结构中。 (Opacity 在检查器[Inspector]中隐藏)

[模型最外层]/Parameters/[零件ID]/Cubism Part/Opacity

不透明度的设置值在0到1之间。超出此范围的值视为0或1。

img

可以使用 AnimationClip 或在 Unity 的代码中指定这些属性。 您可以控制模型的参数和零件的不透明度。

img

播放 AnimationClip

在 Unity 中有几种播放 AnimationClip 的方法,但在这里我们将以动画状态机(Animator)为例进行说明。

将「导入动作档」生成的 AnimationClip 拖放到模型根目录的 GameObject 上。

img

如果在此状态下运行 Scene(场景),就会播放动画了。

img

如上所述,Cubism 的动画格式在导入到项目时会转换为 AnimationClip,因此也可以使用 Animator 管理过渡并混合多个动作。

有关详细信息,请点击这里

img

Tips

在 Unity 的 Live2D Cubism SDK 中,默认情况下禁用 motion3.json 中设置的淡入时间。

有关启用 motion3.json 淡入淡出的说明,请参见“在Mecanim中启用淡入淡出”。