HarmonicMotion (UE)
最終更新: 2024年9月5日
このページにはアルファ版に関する記述が含まれます。
概要
HarmonicMotionは、指定したパラメータの値を周期的に反復させる機能です。
主に呼吸のように常に動作し続けるものに対して使用します。
コンポーネントの扱い方
Cubism SDK for Unreal Engine における HarmonicMotion は CubismHarmonicMotionComponent を CubismModel アクタの子コンポーネントに追加することで使用することができます。
動作させるパラメータ指定用のコンポーネント
HarmonicMotion は CubismHarmonicMotionComponent を CubismModel アクタの子コンポーネントに追加することで使用することができます。
CubismHarmonicMotionComponent は Parameters
の各要素に対し、個別の反復動作を実現します。各々の BlendMode
で指定されたブレンド方式に基づき、 Id
に設定されたIDに該当するパラメータに対して Value
の値を適用します。
for (FCubismHarmonicMotionParameter& Parameter : Parameters) { if (!Parameter.bEnabled) { continue; } UCubismParameterComponent* Destination = Model->GetParameter(Parameter.Id); if (!Destination) { continue; } Parameter.Value = Parameter.CalcValue(Time, Destination->MinimumValue, Destination->MaximumValue); switch (Parameter.BlendMode) { case ECubismParameterBlendMode::Overwrite: { Destination->SetParameterValue(Parameter.Value); break; } case ECubismParameterBlendMode::Additive: { Destination->AddParameterValue(Parameter.Value); break; } case ECubismParameterBlendMode::Multiplicative: { Destination->MultiplyParameterValue(Parameter.Value); break; } } }
対象となるパラメータを追加・削除したい場合は、コンポーネントの Parameters
の要素を追加・削除します。
Enabled
が true に設定されている場合は、周期的に振動する値が適用されます。
この動作は CubismHarmonicMotionParameter に用意されたパラメータで制御することができます。
- Channel
CubismHarmonicMotionControllerで設定された、正弦波の周期の倍率を指定します。
HarmonicMotionでは、一つのモデルに対して複数の周期を設定することができ、CubismHarmonicMotionControllerで設定することができます。
ここには、CubismHarmonicMotionController.ChannelTimescalesのインデックスを設定します。 - Direction
パラメータの中心を基準に、どの範囲で周期的に動作させるかを設定します。
設定項目は以下の3つです。- Left : パラメータの中心から左半分の範囲だけで動作します。
- Right : パラメータの中心から右半分の範囲だけで動作します。
- Centric : パラメータの全体で動作します。
- NormalizedOrigin
Directionで基準にするパラメータの中心を設定します。
そのパラメータの最小値を0、最大値を1としたときの値を中心に設定します。 - NormalizedRange
NormalizedOriginで設定された値を中心から値を動作させる振幅を設定します。
そのパラメータの最小値を0、最大値を1としたときの、中心からの移動距離を設定します。
この値は、NormalizedOriginで設定された中心の位置からパラメータの最小値または最大値までの範囲だけ設定できます。 - Duration
パラメータの周期を調整します。
この記事はお役に立ちましたか?
はいいいえ