CubismParameterStore

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

이 기사가 도움이 되었나요?
아니요
이 기사에 관한 의견 및 요청사항을 보내 주시기 바랍니다.