【대응 완료】 .motion3.json의 재현성이 저하되는 경우에 대해
업데이트: 2022/12/08
개요
애니메이션의 타깃 버전을 「SDK (기타)」로 설정한 상태에서 베지어 핸들이 크게 조작된 커브를 포함한 motion3.json 파일이 Cubism SDK for Native 및 Cubism SDK for Web에서 올바르게 파형이 재현되지 않는 경우가 있습니다.
본 결함의 대응은 이하의 SDK 버전 이상에서 실시했습니다.
- Cubism 4 SDK for Native R3 beta1
- Cubism 4 SDK for Web R3 beta1
Cubism SDK for Unity에서는 타깃에 「SDK (Unity)」를 설정해 작성된 모션을 사용하는 것이 권장되므로, 본 대응의 대상에서 제외됩니다.
Cubsim SDK for Java는 Cubism 4 SDK for Native R3 이후에 출시되었으므로, 본 대응은 불필요합니다.
영향이 있는 흐름
다음 조건이 모두 적용되는 제작 흐름에 영향을 미칩니다.
- 사용 중인 Cubism SDK가 다음과 같다.
- Cubism 4 SDK for Native R2를 포함한 이전 버전의 제품
- Cubism 4 SDK for Web R2를 포함한 이전 버전의 제품
- Cubism Editor의 모션 작성에서 설정 타깃을 「SDK (기타)」로 하여 모션 작성을 하고 있다.
- 모션의 감수를 Cubism Viewer (for OW)에서 실시해, SDK상에서의 확인을 실시하고 있지 않다.
위의 조건에 해당하는 흐름에서 모션의 정확성을 향상시키기 위해 두 가지 조치를 취하십시오.
- 장면의 인스펙터상에서 설정 타깃을 「SDK (Unity)」로 변경한다.
- 모션 감수 작업을 SDK상에서 실시하도록 한다.
- 4.1alpha4 이상의 OWViewer에서 「4.0 이하의 SDK 모션 재생을 재현」의 체크를 설정한 후 확인을 실시한다.
SDK에서의 버그 내용
버그 상세
애니메이션의 타깃 버전을 「SDK (Unity)」로 지정하면 베지어 핸들의 시간축상의 위치가 커브 사이의 1/3, 2/3 위치로 제한됩니다.
이 제한하에서, 베지어 곡선의 계수 t는 시간축의 움직임과 일치하여 직선의 변화로서 계산을 간략화할 수 있습니다.
본 버그에서는 애니메이션의 타깃 버전을 「SDK (기타)」로 설정한 베지어 핸들의 제한이 없는 상태에서도 제한이 있는 것으로 계산해 버렸기 때문에, 모션으로 재현되는 파라미터의 완급에 약간의 차이가 발생했습니다.
SDK 대응 내용
R3 beta 이상의 Cubism SDK for Native 및 Cubism SDK for Web에서는 정확한 완급이 적용된 베지어 커브로 모션을 재생합니다.
이 변경에 대해 Cubism SDK for Native에서는 CubismMotion.cpp에 있는 UseOldBeziersCurveMotion을, Cubism SDK for Web에서는 cubismmotion.ts에 있는 UseOldBeziersCurveMotion을 true로 변경하면 R2 이전 재생 방법으로 되돌릴 수 있습니다.
또한 Cubism SDK for Java에서는 CubismMotion.java상에 있는 USE_OLD_BEZIERS_CURVE_MOTION 를 true로 함으로써 Native, Web의 R2 이전 재생 방법을 재현할 수 있습니다.