本文翻译自:https://docs.live2d.com/cubism-sdk-tutorials/harmonicmotion/
译者注:注意!这并不是一篇严谨的翻译,本人并不是翻译行业从业者,也根本不会日文。官网的中文翻译会连带代码一起翻译,而且还不如机翻日文,官网的英语翻译版本有的语法很奇怪,看起来也是机翻。本文主要来自日文机翻,然后再结合实际开发经验调整到通顺,修改不该翻译的东西并润色。
[最后更新日期: 2020/01/30] 译者注:这是这个日文原文的更新日期
本节介绍如何实现参数值周期变化,例如呼吸和摇头。
概览
如果要使参数值周期变化,可以通过使用 CubismHarmonicMotionController.cs
和 CubismHarmonicMotionParameter.cs
来实现。
需要以下两步:
- 设置参数周期变化的控制器
- 指定要被周期性修改的参数
设置参数周期变化的控制器
首先,将脚本附加到模型的 GameObject
上,来控制运动。
名称为 CubismHarmonicMotionController.cs
。
CubismHarmonicMotionController.cs
中有两个设置项。
- Blend Mode/混合模式 : 指定如何计算目标参数值的大小。
译者注:不是让一个「值」周期性的变化么,这个参数就是去设置如何计算这个「值」。如果模型里有相关的动画用到了这个值,这个值你不去动他,他也会去自动的变化,Unity 里再去设置就会冲突,这里主要是为了解决那个冲突
- Override/覆盖 : 用 "Channel Timescales" 值覆盖当前值。
- Additive/相加 : 将当前值乘以 "Channel Timescales" 值
- Mutiply/相乘 : 将当前值乘以 "Channel Timescales" 值。
译者注:其中:「当前值」就是模型自带的动画里的值,「Channel Timescales」就是 CubismHarmonicMotionController
的值。最后结果如何混合就是「Blend Mode」决定的了。
- Channel Timescales:您可以选择创建多个 TimeScale 并调整大小。
这次,如下设置[Blend Mode/混合模式]:
Blend Mode:Override
指定要被周期性修改的参数
然后选择要周期性被修改的参数并附加 CubismHarmonicMotionParameter.cs
。
在这里,附加到角度 X。
角度 X 位于 [root]/Parameters/ParamAngleX
。
CubismHarmonicMotionParameter.cs
中有 5 个设置项。
- Channel : 指定在
CubismHarmonicMotionController.cs
中设置的Channel Timescale
。 Direction : 指定相对于参数中心的变化方向。
- Left : 它将仅从参数中心向左变化
- Right : 它仅从参数中心向右变化
- Centric : 整体从参数中心变化
- Normalized Origin : 设置参数中点的位置。
- Normalized Range : 根据 Normalized Origin 确定的中心,设置从中心点开始移动的最大距离。
- Duration : 调整参数周期。
这次,设置如下:
- Channel:0
- Direction:Centric
- Normalized Origin:0.5
- Normalized Range:0.5
- Duration:3
使用以上设置,您可以定期改变参数,如下所示。