本文翻译自: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」 视图中。
然后,会自动从 motion3.json 生成一个 AnimationClip,如下图所示。
也可以将生成的 AnimationClip 设置为 Loop。
Tips
此 AnimationClip 里面有当前动作动画曲线的每个具体参数,[译注:上图里的那个 open 按钮打开就能看到了]
在此动画曲线上设置的参数的属性在模型预制体(Prefab) 的以下层次结构中。 (Value 在检查器[Inspector]中隐藏)
[模型最外层]/Parameters/[参数ID]/Cubism Parameter/Value
根据参数 ID 的不同,为 Value 设置的最大值和最小值会有所不同,但超出此范围的值将被视为最大值或最小值。
此外,零件的不透明度在以下预制体层次结构中。 (Opacity 在检查器[Inspector]中隐藏)
[模型最外层]/Parameters/[零件ID]/Cubism Part/Opacity
不透明度的设置值在0到1之间。超出此范围的值视为0或1。
可以使用 AnimationClip 或在 Unity 的代码中指定这些属性。 您可以控制模型的参数和零件的不透明度。
播放 AnimationClip
在 Unity 中有几种播放 AnimationClip 的方法,但在这里我们将以动画状态机(Animator)为例进行说明。
将「导入动作档」生成的 AnimationClip 拖放到模型根目录的 GameObject 上。
如果在此状态下运行 Scene(场景),就会播放动画了。
如上所述,Cubism 的动画格式在导入到项目时会转换为 AnimationClip,因此也可以使用 Animator 管理过渡并混合多个动作。
有关详细信息,请点击这里
Tips
在 Unity 的 Live2D Cubism SDK 中,默认情况下禁用 motion3.json 中设置的淡入时间。
有关启用 motion3.json 淡入淡出的说明,请参见“在Mecanim中启用淡入淡出”。