Unreal Engine:エイム時のみキャラクターが回転しないようにする

エイム時、キャラクターがコントローラー操作によって回転してしまうと、例えば、キャラクターが右に向いているのにもかかわらず、弾丸は正面の照準に向かって発射されてしまいます。なので、エイム時のみ、キャラクターが、常に正面を向くように回転しないようにする必要があります。


MyCharacter.cppのコンストラクタに置いてあるキャラクタームーブメント関連のコードをtick関数に移動しますが、エイム時のみ、キャラクターが回転しないようにします。

if (bAimingButtonPressed)
	{
		bUseControllerRotationPitch = false;
		bUseControllerRotationRoll = false;
		bUseControllerRotationYaw = true;		
		GetCharacterMovement()->bOrientRotationToMovement = false;
		GetCharacterMovement()->RotationRate = FRotator(0.f, 540.f, 0.f);
	}
	else
	{
		bUseControllerRotationPitch = false;
		bUseControllerRotationRoll = false;
		bUseControllerRotationYaw = false;
		GetCharacterMovement()->bOrientRotationToMovement = true;
		GetCharacterMovement()->RotationRate = FRotator(0.f, 540.f, 0.f);
	}

エイム時、
bUseControllerRotationYawをtrueに設定
bOrientRotationToMovementをfalseに設定
エイム時以外の設定はそのままにしておきます。これで、エイム時のみ、キャラクターが回転せずに視点だけが回転するようになります。

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

コメント

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