パラメータリピート
最終更新: 2025年5月15日
Cubism Editor上で設定したパラメータリピートのON/OFFはCubism 5 SDK R4 以降を利用することで取得が可能になります。
Cubism Editor上でのリピートの設定はEditorマニュアルの「リピート」を参照してください。
また必要に応じたコーディングを行うことでSDKからリピート設定を操作することも可能です。
概要
Cubism SDK上ではリピートは以下のフラグで管理されます。
- パラメータ単位のリピート状態フラグ
- モデル単位でリピート状態フラグを上書きするかのフラグ
- モデル単位で上書きした際のリピート状態フラグ
- パラメータ単位でリピート状態フラグを上書きするかのフラグ
- パラメータ単位で上書きした際のリピート状態フラグ
Cubism Editor上で設定したパラメータリピートをSDKで再現するには、下記のどちらも false になっている必要があります。
- モデル単位でリピート状態フラグを上書きするかのフラグ
- パラメータ単位でリピート状態フラグを上書きするかのフラグ
しかしCubism SDK上では既存のモーションの互換性を保つために、モデル単位でリピート状態フラグを上書きするかのフラグの初期値を true にしています。
Cubism Editor上で設定したパラメータリピートの再現手順
モデル単位のリピートの上書きフラグ設定
モデル単位のリピートの上書きフラグを falseに設定します。デフォルトでは true になっています。
Cubism Editor上で設定したパラメータリピートをSDK上で再現するためにはFrameworkの CubismModel クラスのメンバ変数の初期化時の設定を変更します。
Native
// C++ CubismModel::CubismModel(Core::csmModel* model) : _model(model) ... , _isOverriddenParameterRepeat(false) ... { }
Web
// TypeScript /** * コンストラクタ * @param model モデル */ public constructor(model: Live2DCubismCore.Model) { ... this._isOverriddenParameterRepeat = false; ... { }
Java
// Java /** * Model class created from Mclapoc data. */ public class CubismModel { ... private boolean isOverriddenParameterRepeat = false; ... { }
Unity
// C# /// <summary> /// Whether parameter repetition is performed for the entire model. /// </summary> [SerializeField] private bool _isOverriddenParameterRepeat = false;
Unityは、InspectorでCubismModelの「Is Overridden Parameter Repeat」のチェックボックスを操作することでも設定できます。

動的にフラグを変更する場合は、CubismModel クラスのSetOverrideFlagForModelParameterRepeat(csmBool isRepeat)を用います。
Native
// C++ model->GetModel()->SetOverrideFlagForModelParameterRepeat(false); // リピートのモデル単位の上書きフラグ
Web
// TypeScript model.getModel().setOverrideFlagForModelParameterRepeat(false); // リピートのモデル単位の上書きフラグ
Java
// Java model.getModel().setOverrideFlagForModelParameterRepeat(false); // リピートのモデル単位の上書きフラグ
例としてCubism SDK for Nativeのサンプルプロジェクトではモデルを操作するために CubismModel を基底クラスとした LAppModel クラスを定義しており、上記コードの model は LAppModel クラスです。
LAppModel クラスから CubismModel クラスの関数を呼び出すために GetModel() を仲介しています。
Unity
// C# cubismModel.SetOverrideFlagForModelParameterRepeat(false); // リピートのモデル単位の上書きフラグ
SDK for Unityでは、 CubismModel コンポーネントの void SetOverrideFlagForModelParameterRepeat(bool isRepeat)を使用します。
SDKでパラメータ単位でパラメータリピートを制御する手順
以下の流れで処理を行います。
- パラメータ単位の上書きフラグ設定
- パラメータ単位パラメータリピートの設定
1.パラメータ単位の上書きフラグ設定
まずはパラメータ単位の上書きフラグを true に設定します。デフォルトでは false になっています。
例
// C++ model->GetModel()->SetOverrideFlagForParameterRepeat(parameterIndex, true); // 指定のパラメータの上書きフラグをtrueに設定
// TypeScript model.getModel().setOverrideFlagForParameterRepeat(parameterIndex, true); // 指定のパラメータの上書きフラグをtrueに設定
// Java model.getModel().setOverrideFlagForParameterRepeat(parameterIndex, true); // 指定のパラメータの上書きフラグをtrueに設定
例としてNativeではvoid SetOverrideFlagForParameterRepeat(csmInt32 parameterIndex, csmBool value) はFrameworkの CubismModel クラスに定義されています。
Unityでは、void SetRepeatFlagForParameterRepeat(bool value) は CubismParameter クラスに定義されています。
// C# cubismParameter.SetOverrideFlagForParameterRepeat(true); // 指定のパラメータの上書きフラグをtrueに設定
こちらは InspectorでCubismParameterの「Is Overridden」のチェックボックスを操作することでも設定できます。

2. パラメータ単位のパラメータリピートの設定
パラメータごとにリピートのON/OFFを設定します。
この設定はパラメータ単位の上書きフラグがtrueの場合のみ有効となります。
例
// C++ model->GetModel()->SetRepeatFlagForParameterRepeat(parameterIndex, true); // 指定のパラメータのリピートをONに設定
// TypeScript model.getModel().setRepeatFlagForParameterRepeat(parameterIndex, true); // 指定のパラメータのリピートをONに設定
// Java model.getModel().setRepeatFlagForParameterRepeat(parameterIndex, true); // 指定のパラメータのリピートをONに設定
// C# cubismParameter.SetRepeatFlagForParameterRepeat(true); // 指定のパラメータのリピートをONに設定
SDK for Unityは、 InspectorでCubismParameterの「Is Parameter Repeated」のチェックボックスを操作することでも設定できます。

Tips
モデル単位でリピート状態フラグを上書きするかのフラグが有効な場合、パラメータ単位でリピート状態フラグを上書きするかのフラグの設定は無視されます。