Expression (UE)

最終更新: 2024年9月5日

このページにはアルファ版に関する記述が含まれます。

概要

Expressionは、現在のパラメータの値に対して、表情用のパラメータの値を加算または乗算して設定することができる、Cubismの表情モーションを扱う機能です。

表情機能の設定ファイルは.exp3.json形式で書き出されます。
表情の仕組みにつきましては こちら をそれぞれご覧ください。

コンポーネントの扱い方

Cubism SDK for Unreal Engine における Expression は CubismExpressionComponent を CubismModel アクタの子コンポーネントに追加することで使用することができます。

.model3.json に .exp3.json のパスが設定されている場合は、インポートの際に自動的に CubismModel アクタに CubismExpressionComponent が子コンポーネントとして追加されるため、ユーザー側での設定は不要です。

表情モーションの再生方法

モデルをインポートすると、 .exp3.json がUnreal Editor用の .uasset に変換され、CubismExpressionComponent の Jsons 配列に追加されます。
Unreal Editor上では、 Jsons に登録されている再生したいモーションのインデックスを Index として指定することで、表情モーションを適用することができます。Index が配列のインデックスの範囲外にある場合は適用されません。
モーションの登録順はエディタ上で任意に変更可能なほか、通常は不要ですが、ユーザーが任意にモーションを追加・削除することも可能です。

モーションの再生・停止を制御する場合は CubismExpressionComponent に用意されている以下の関数を使用します。

UFUNCTION(BlueprintCallable, Category = "Live2D Cubism")
void PlayExpression(const int32 InIndex);

UFUNCTION(BlueprintCallable, Category = "Live2D Cubism")
void StopAllExpressions(const bool bForce = false);
  • PlayExpression
    • InIndex
      再生したいモーションの Jsons におけるインデックスを指定します。
  • StopAllExpressions
    • bForce
      true を指定した場合、フェードを適用せずに強制的に停止します。
      false を指定した場合、フェードを適用する方法で停止します。

更新順について

CubismExpressionComponent は表情モーションの更新処理を担いますが、その更新は CubismParameterStoreComponent の更新の後に適用されます。
これは CubismExpressionComponent が行う更新が次のフレームに影響を与えないようにするためです。
CubismExpressionComponent の更新の後に CubismParameterStoreComponent::LoadParameters() を呼び出すと、意図しない動作になる恐れがあります。

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