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

    パラメータの周期を調整します。
この記事はお役に立ちましたか?
はいいいえ
この記事に関するご意見・
ご要望をお聞かせください。