登录后台

页面导航

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

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

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

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

本节介绍如何实现参数值周期变化,例如呼吸和摇头。

img

概览

如果要使参数值周期变化,可以通过使用 CubismHarmonicMotionController.csCubismHarmonicMotionParameter.cs 来实现。

需要以下两步:

  1. 设置参数周期变化的控制器
  2. 指定要被周期性修改的参数

设置参数周期变化的控制器

首先,将脚本附加到模型的 GameObject 上,来控制运动。

名称为 CubismHarmonicMotionController.cs

img

img

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

    img

    img

    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

    使用以上设置,您可以定期改变参数,如下所示。

    img