.motion3.jsonの整合性を検証する

最終更新: 2024年12月19日

Cubism SDKは、.motion3.jsonを読み込む前に、改ざんによってモデルに不正なデータが含まれていないかを検証することができます。

不特定の .motion3.jsonファイルが読み込まれることが想定される場合、CubismMotionでインスタンスを生成する前に、読み込ませる .motion3.jsonファイルの整合性の確認を行うことを推奨します。
ただし、整合性の検証はパフォーマンスに影響する可能性がありますのでご注意ください。

モデルの整合性の検証には、 Frameworkの CubismMotionJson::HasConsistency() を使用します。

Cubism SDK for Nativeの CubismMotion::Parse()では、Debugビルドの時のみモデルの読み込み時に .motion3.jsonファイルの整合性を検証します。

// Cubism SDK for Native
void CubismMotion::Parse(const csmByte* motionJson, const csmSizeInt size)
{
    _motionData = CSM_NEW CubismMotionData;

    CubismMotionJson* json = CSM_NEW CubismMotionJson(motionJson, size);

    if (!json->IsValid())
    {
        CSM_DELETE(json);
        return;
    }

#if _DEBUG
    json->HasConsistency();
#endif // _DEBUG
…
    CSM_DELETE(json);
}

Cubism SDK for Webの CubismMotion.parse() では CubismMotion._debugMode がtrueの時のみ、モデルの読み込み時に .motion3.jsonファイルの整合性を検証します。

// Cubism SDK for Web
public parse(motionJson: ArrayBuffer, size: number): void {
    ...

    if (this._debugMode) {
      json.hasConsistency();
    }

    this._motionData.duration = json.getMotionDuration();

    ...

CubismMotion._debugMode は CubismMotion.setDebugMode() を利用して変更することが出来ます。

この記事はお役に立ちましたか?
はいいいえ
この記事に関するご意見・
ご要望をお聞かせください。