다른 회전

17 장에서 키 입력을 통한 회전이 아닌, 마우스의 입력값을 통해서 회전을 구현해본다

Untitled

따로 함수를 구하지 않고 , 기존에 Pawn 에 내장되어있는 함수를 호출하도록 한다

Y 축 반대 회전

FPS 를 할때 Y 축을 반대로 ( 마우스를 올릴경우 밑으로 회전 ) 을 할 수 있는 반대 옵션이 있는데 , 외국인들은 이렇게 반대로 플레이하는 사람이많나보다.

엇 그러고보니… 이동이.. Look 각도에 따라 상관이 없다

GIF 2023-02-21 오후 5-59-45.gif

위는 기본 MovementComponent 를 사용하게 되면 , 바라보고 있는 y 축 각도에 따라서 이동속도가 달라진다. 하지만 강의에서 작성했던 이동 코드를 살펴보자.

void AShooterCharacter::MoveForward(float Value)
{
	if ((nullptr != Controller) && (0.0f != Value))
	{
		// find out which way is forward
		const FRotator Rotation{ Controller->GetControlRotation() };
		const FRotator YawRotation{ 0,Rotation.Yaw,0 };

		const FVector Direction{ FRotationMatrix{YawRotation}.GetUnitAxis(EAxis::X) };
		UE_LOG(LogTemp, Warning, TEXT("VecSize : %.5f"), Direction.Size());

		AddMovementInput(Direction, Value);
	}
}

여기서 Ratation 행렬을 통해서 축의 방향을 꺼내올때 Normalized 가 일어나서 반환이 된다..!

Untitled

이 처럼 직렬화가 되서 나오기 때문에 이는 LookUp 에 관계없는 이동이 가능했던 것이었던 것이었던 것 이였다

그렇다면 기본 Movement 는..? ( 추측 )

Untitled

이 그림처럼 원래는 벡터가 정규화가 진행되어 1 벡터만큼 움직이는데 , 빨간 시선방향처럼 벡터가 밑을 향한 상태에서 ? World 의 정면 벡터가

Untitled

어어 이것처럼 무튼 그렇고 그렇게 되서 이동 속도가 느려지는게 아닐까~~

? 나 이거 왜하고있음