CubismParameterStore

最終更新: 2020年1月17日

概述

通过使用CubismParameterStore,您可以保存/恢复CubismModel的参数和部件值。

如果不使用CubismParameterStore,则通过Expression等处理值的结果可能不正确。

如果在恢复~保存之间进行了Expression等值的操作,值的操作结果会被保存,所以将与恢复的操作后的值进行加算/正片叠底,不会得到预期的结果。
如果您在恢复~保存之外操作该值,则您操作该值之前的状态会被恢复,因此之后通过加算/正片叠底操作值的结果将是正确的。

请参考 此处 查看相关教程文章。

执行以下处理来保存/恢复CubismModel的参数和部件值。

  1. 获取保存/恢复的参数和部件参考
  2. 保存参数和部件值
  3. 恢复参数和部件值

获取保存/恢复的参数和部件参考

在CubismParameterStore.OnEnable中缓存对CubismModel参数和部件的参考。

if(DestinationParameters == null)
{
    DestinationParameters = this.FindCubismModel().Parameters;
}

if(DestinationParts == null)
{
    DestinationParts = this.FindCubismModel().Parts;
}

这个处理由“CubismParameterStore.OnEnable()”执行。

保存参数和部件值

保存模型的当前参数和部件值。
在应用动画之后和在Cubism各个组件中操作值之前保存值。

// 保存参数值
for(var i = 0; i < _parameterValues.Length; ++i)
{
    _parameterValues[i] = DestinationParameters[i].Value;
}

// 保存部件Opacity(不透明度)
for(var i = 0; i < _partOpacities.Length; ++i)
{
    _partOpacities[i] = DestinationParts[i].Opacity;
}

这个处理由“CubismParameterStore.SaveParameters()”执行。

恢复参数和部件值

恢复保存的参数和部件值。
在应用动画之前恢复值。

// 设置保存的参数值
for(var i = 0; i < _parameterValues.Length; ++i)
{
    DestinationParameters[i].Value = _parameterValues[i];
}

// 设置保存的部件Opacity(不透明度)
for(var i = 0; i < _partOpacities.Length; ++i)
{
    DestinationParts[i].Opacity = _partOpacities[i];
}

这个处理由“CubismParameterStore.RestoreParameters()”执行。

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