CubismParameterStore
最終更新: 2020年1月17日
概述
通过使用CubismParameterStore,您可以保存/恢复CubismModel的参数和部件值。
如果不使用CubismParameterStore,则通过Expression等处理值的结果可能不正确。
如果在恢复~保存之间进行了Expression等值的操作,值的操作结果会被保存,所以将与恢复的操作后的值进行加算/正片叠底,不会得到预期的结果。
如果您在恢复~保存之外操作该值,则您操作该值之前的状态会被恢复,因此之后通过加算/正片叠底操作值的结果将是正确的。
请参考 此处 查看相关教程文章。
执行以下处理来保存/恢复CubismModel的参数和部件值。
- 获取保存/恢复的参数和部件参考
- 保存参数和部件值
- 恢复参数和部件值
获取保存/恢复的参数和部件参考
在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()”执行。
请问这篇文章对您有帮助吗?
是否