CubismParameterStore
Updated: 01/17/2020
Summary
CubismParameterStore can be used to store/restore CubismModel parameters and part values.
If CubismParameterStore is not used, the results of processing values with Expression or other methods may not be correct.
If a value operation such as Expression is performed between restore and save, the result of the value manipulation is saved, so the value is added/multiplied to the restored post-operation value, and the result is not as expected.
When value manipulation is performed outside of restore-to-save, the state before the value was manipulated is restored, so that subsequent manipulation of the value through addition/multiplication will result in the proper result.
Click here for the corresponding tutorial article.
The following process is used to save/restore CubismModel parameters and part values.
- Get reference to parameters and parts to be saved/restored
- Save parameter and part values
- Restore parameter and part values
Get reference to parameters and parts to be saved/restored
CubismParameterStore.OnEnable caches references to CubismModel parameters and parts.
if(DestinationParameters == null) { DestinationParameters = this.FindCubismModel().Parameters; } if(DestinationParts == null) { DestinationParts = this.FindCubismModel().Parts; }
This is done by `CubismParameterStore.OnEnable().’
Save parameter and part values
Stores the current parameter and part values for the model.
The timing for saving the values is after the animation is applied and before manipulating the values in the various Cubism components.
// Save parameter values for(var i = 0; i < _parameterValues.Length; ++i) { _parameterValues[i] = DestinationParameters[i].Value; } // Save the part opacity for(var i = 0; i < _partOpacities.Length; ++i) { _partOpacities[i] = DestinationParts[i].Opacity; }
This is done by `CubismParameterStore.SaveParameters().’
Restore parameter and part values
Restores saved parameter and part values.
The timing for restoring the values is before the animation is applied.
// Set saved parameter values for(var i = 0; i < _parameterValues.Length; ++i) { DestinationParameters[i].Value = _parameterValues[i]; } // Set the saved part opacity for(var i = 0; i < _partOpacities.Length; ++i) { DestinationParts[i].Opacity = _partOpacities[i]; }
This is done by `CubismParameterStore.RestoreParameters().’