【対応済み】.motion3.jsonの再現性が劣化する場合について
最終更新: 2022年12月8日
概要
アニメーションのターゲットバージョンを「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以前の再生方法を再現することが出来ます。