.motion3.jsonの整合性を検証する
最終更新: 2026年5月22日
Cubism SDKは、.motion3.jsonを読み込む前に、改ざんによってモデルに不正なデータが含まれていないかを検証することができます。
不特定の .motion3.jsonファイルが読み込まれることが想定される場合、CubismMotionでインスタンスを生成する前に、読み込ませる .motion3.jsonファイルの整合性の確認を行うことを推奨します。
ただし、整合性の検証はパフォーマンスに影響する可能性がありますのでご注意ください。
モデルの整合性の検証には、SDK for UnityではFrameworkの CubismMotion3Json.HasConsistency() を、それ以外ではFrameworkの CubismMotionJson::HasConsistency() を使用します。
Cubism SDK for Nativeの CubismMotion::Parse()では、CSM_DEBUGマクロの有効時のみモデルの読み込み時に .motion3.jsonファイルの整合性を検証します。
// Cubism SDK for Native
void CubismMotion::Parse(const csmByte* motionJson, const csmSizeInt size)
{
CubismMotionJson* json = CSM_NEW CubismMotionJson(motionJson, size);
if (!json->IsValid())
{
CSM_DELETE(json);
return;
}
if (shouldCheckMotionConsistency)
{
csmBool consistency = json->HasConsistency();
if(!consistency)
{
CSM_DELETE(json);
CubismLogError("Inconsistent motion3.json.");
return;
}
}
…
CSM_DELETE(json);
}
Cubism SDK for Webの CubismMotion.parse() では CubismMotion._debugMode がtrueの時のみ、モデルの読み込み時に .motion3.jsonファイルの整合性を検証します。
// Cubism SDK for Web
public parse(
motionJson: ArrayBuffer,
size: number,
shouldCheckMotionConsistency: boolean = false
): void {
...
if (shouldCheckMotionConsistency) {
const consistency = json.hasConsistency();
if (!consistency) {
json.release();
CubismLogError('Inconsistent motion3.json.');
return;
}
}
...
CubismMotion._debugMode は CubismMotion.setDebugMode() を利用して変更することが出来ます。
Cubism SDK for Javaの CubismMotion.parse() では CubismFrameworkConfig.CSM_DEBUG がtrueの時のみ、モデルの読み込み時に .motion3.jsonファイルの整合性を検証します。
// Cubism SDK for Java
private void parse(byte[] motionJson, boolean shouldCheckMotionConsistency) {
...
if (shouldCheckMotionConsistency) {
boolean consistency = json.hasConsistency();
if (!consistency) {
CubismDebug.cubismLogError("Inconsistent motion3.json.");
return;
}
}
...
Cubism SDK for Unity の CubismMotion3Json.LoadFrom() では、shouldCheckMotionConsistencyがtrueの時のみ、.motion3.jsonのインポート時にファイルの整合性を検証します。
// Cubism SDK for Unity
public static CubismMotion3Json LoadFrom(string motion3Json, bool shouldCheckMotionConsistency = true)
{
...
if (shouldCheckMotionConsistency)
{
var consistency = cubismMotion3Json.HasConsistency();
if (!consistency)
{
return null;
}
}
...