LipSync (UE)
最終更新: 2024年9月5日
このページにはアルファ版に関する記述が含まれます。
概要
LipSync は、設定された音源ファイルの音量に基づき、口の開閉パラメータの値に対して値を適用する機能です。手動のほか、コンポーネントに設定されたパラメータをもとに自動で値を操作することも可能です。
コンポーネントの扱い方
Cubism SDK for Unreal Engine における LipSync は CubismLipSyncComponent を CubismModel アクタの子コンポーネントに追加することで使用することができます。
.model3.json にリップシンク用のパラメータが設定されている場合は、インポートの際に自動的に CubismModel アクタに CubismLipSyncComponent が子コンポーネントとして追加されるため、ユーザー側での設定は不要です。
対象となるパラメータの追加方法
.model3.jsonにリップシンク用のパラメータが設定されている場合は、インポートの際に自動的に CubismModel アクタに CubismLipSyncComponent が子コンポーネントとして追加されますが、手動でLipSyncの対象となるパラメータを追加したい場合は「詳細」タブから CubismLipSync を選択し、下部に表示されるリストから「Live2D Cubism」→「Ids」を開き、指定されているパラメータの名称を手動で書き換えるか、新たにインデックスを挿入してパラメータの名称を手動で書き加えてください。

パラメータの適用
CubismLipSyncComponent は BlendMode で指定されたブレンド方式に基づき、 Ids に設定されたIDに該当するすべてのパラメータに対して一律に Value の値を適用します。
for (const FString& Id : Ids)
{
UCubismParameterComponent* Destination = Model->GetParameter(Id);
if (!Destination)
{
continue;
}
switch (BlendMode)
{
case ECubismParameterBlendMode::Overwrite:
{
Destination->SetParameterValue(Value);
break;
}
case ECubismParameterBlendMode::Additive:
{
Destination->AddParameterValue(Value);
break;
}
case ECubismParameterBlendMode::Multiplicative:
{
Destination->MultiplyParameterValue(Value);
break;
}
}
}
自動で値を操作する
AutoEnabled が true に設定されている場合は、自動で口パクのように動作する値が適用されます。この動作はCubismLipSyncComponentに用意されたパラメータで制御することができます。
- TimeScale
動作の時間スケールを表します。値を大きくすると動作が素早くなり、小さくすると動作が遅くなります。
音源を設定する
AutoEnabled が false に設定されている場合は、 Source に音源データの参照を追加することで、指定したパラメータに対して音源から流れる音量に基づいた値を適用できます。この動作はCubismLipSyncComponentに用意されたパラメータで制御することができます。
- Gain
音源から取得する音量のゲイン、すなわち増幅率を指定します。大きくすると、適用される値が大きくなります。 - Smoothing
音源から取得する音量に基づいた口の動きの滑らかさを指定します。
値を大きくするほど、口の動きが音量変化に対してより滑らかに応答するようになります。