Unreal Engine:ブレンドスペースを武器の種類で切り替える

ライフル装備時のブレンドスペースを新たに作成し、ライフルを装備した時にライフル未装備時のブレンドスペースからそのブレンドスペースに切り替わるようにし、さらに、ジャンプの高度を、ライフル装備時、その他の武器装備時、武器未装備時に切り替わるようにしたいと思います。ライフル装備時に限っては静止時と動作時のジャンプアニメを切り替えないようにします。

スポンサーリンク

ライフル用ブレンドスペースの作成

ライフル装備時用のブレンドスペースを作成します。

スケルトンにはキャラクターを選択、ブレンドスペース名はRifleBlendSpaceにします。

RightHandSocketにプレビューアセットを追加します。ここではライフルSK_AR4_Xを選択しています。

アイドル、ウォーク、ジョグの三つのアニメーションで、キャラの銃の持ち位置を最適化していきます。

左右の上腕、前腕、手を3方向に回転させて銃身を持つ手の位置を決めていきます。この作業は必ずフレームの先頭から始める必要があります。

最適な位置が決まったらキーを設定を押して保存を押します。

必ず先頭フレームから修正を始めて最終フレームまで確認してズレが生じた場合そこを再修正してキーを設定を押します。

<h2>武器の種類でブレンドスペースを切り替える</h2>

装備している武器がライフル銃の時にブレンドスペースを切り替えるようにします。アニムBP(ここではBryceAnim_BP)を開いてアニムグラフを選択します。

Locoステートマシーンを開きます。

ライフル未装備からライフル装備のステートを新たに作成します。

ライフル未装備からライフル装備へのトランジションルールを作成します。

MyChar→EquippedGun→Equal→Not→結果へとつないでいきます。銃装備がnullと同等ということは、つまり銃を未装備ということなので、ここではNotを挟んで銃を装備しているとしています。ライフル装備からライフル未装備へのトランジションルールはこのNotを消すだけです。

ライフル装備ステートには先程作成したライフル用のブレンドスペースを使用します。

銃装備時のJump設定は銃未装備時のジャンプを参考にして設定します。銃装備時ジャンプは静止時も走行時も同じジャンプアニメを使用しています。

スポンサーリンク

武器の種類によってジャンプ高度を切り替える

MyCharacter.cppのTick関数に以下のコードを追加して、素手の場合は超高高度、手榴弾と刀の場合は高高度、銃装備時は普通の高度のジャンプに切り替えます。

void AMyCharacter::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);

	if (EquippedGun)
	{
		GetCharacterMovement()->JumpZVelocity = 500.f;
		GetCharacterMovement()->AirControl = 0.1f;
	}
	else if (EquippedWeapon || EquippedGrenade)
	{
		GetCharacterMovement()->JumpZVelocity = 700.f;
		GetCharacterMovement()->AirControl = 0.0f;
	}
	else
	{
		GetCharacterMovement()->JumpZVelocity = 2000.f;
		GetCharacterMovement()->AirControl = 0.1f;
	}
}

Tick関数内にコードを追加しないとジャンプ切り替えが反映されないので注意が必要です。今後の課題としては、ライフル装備時も足跡・足音等の視聴覚効果を付けることと、ライフル銃を実際に撃てるようにするなどがあります。

スポンサーリンク
スポンサーリンク

コメント

タイトルとURLをコピーしました