CubismParameterStore
업데이트: 2020/01/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()`로 실시하고 있습니다.