LookAt (UE)

最終更新: 2024年9月5日

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

概要

LookAtは、任意のパラメータを特定の座標に追従するよう値を操作する機能です。
追従させる座標は、指定したレベル内のアクタが持つ位置トランスフォームの値を介して設定することができます。

コンポーネントの扱い方

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

対象となるパラメータの指定方法

LookAtの対象となるパラメータを追加したい場合は「詳細」タブから CubismLookAt を選択し、下部に表示されるリストから「Live2D Cubism」→「Parameters」を開き、新たにインデックスを挿入した際に作成されるインデックスリストの「Id」にパラメータの名称を手動で書き加えてください。

パラメータの適用

CubismLookAtComponent は Parameters の各要素に対し、個別の追従動作を実現します。各々の BlendMode で指定されたブレンド方式に基づき、 Id に設定されたIDに該当するパラメータに対して Value の値を適用します。

for (FCubismLookAtParameter& Parameter : Parameters)
{
	if (!Parameter.bEnabled)
	{
		continue;
	}

	UCubismParameterComponent* Destination = Model->GetParameter(Parameter.Id);

	if (!Destination)
	{
		continue;
	}

	switch (Parameter.Axis)
	{
		case ECubismLookAtAxis::X:
		{
			Parameter.Value = Parameter.Factor * LastPosition.X;
			break;
		}
		case ECubismLookAtAxis::Y:
		{
			Parameter.Value = Parameter.Factor * LastPosition.Y;
			break;
		}
		case ECubismLookAtAxis::Z:
		{
			Parameter.Value = Parameter.Factor * LastPosition.Z;
			break;
		}
	}

	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 に設定されている場合は、 Target に対して追従の対象となるアクタの参照を追加することで、指定したパラメータに対してモデルの原点に対する
アクタの相対位置に基づいた値を適用できます。
参照できるアクタが存在しない場合は、レベル内に追従対象となるアクタをスポーンしてください。
この動作は CubismLookAtParameter に用意されたパラメータで制御することができます。

  • Axis
    追従する座標のうち、どの軸の値を参照するかを指定します。
  • Factor
    追従量の倍率を指定します。値を大きくするほど、参照した座標の値に対する追従の量が大きくなります。
  • Smoothing
    追従する座標に対する、追従の滑らかさを指定します。
    値を大きくするほど、追従する座標の変化に対してより滑らかに応答するようになります。
この記事はお役に立ちましたか?
はいいいえ
この記事に関するご意見・
ご要望をお聞かせください。