반응형
목표
- 캐릭터 설정
- [x] 블루 프린트로 기초 캐릭터 설정하기
- [x] Camera
- [x] RPG View 같은 경우에는 Use Controller Rotation Yaw 를 false 로 설정해 줘야 카메라 회전과 캐릭터 회전이 따로 적용이 된다.
- [x] Use Controller Rotation Yaw = false;
- [x] SpringArm→ Use Pawn Controller Rotation = true;
- [x] Camera → Use Pawn Controller Rotation = true;
- [x] RPG View 같은 경우에는 Use Controller Rotation Yaw 를 false 로 설정해 줘야 카메라 회전과 캐릭터 회전이 따로 적용이 된다.
- [x] Mesh
- [x] Collison (root)
- [x] SpringArm
- [x] Camera
- [x] 블루프린트로 설정한 값 C++로 구현하기
- [x] 블루 프린트로 기초 캐릭터 설정하기
- 캐릭터 상호 작용
- [x] WASD로 오브젝트 이동시키기
- [x] 마우스 클릭 감지하기
- [x] Shift 버튼으로 달리기
- 애니메이션 적용
- [x] 앞 뒤 양 옆 이동 하기 애니메이션 적용하기
- [x] 달리기 애니메이션
궁금점
- 캐릭터를 이동할 때 그냥 지나쳤던 Move 함수 로직에 대해서 좀 더 깊이 있게 알아보았다.
- Controller 가 무엇인가 그리고 왜 위치변수 Rotation에 Controller 에 GetControllerRotation() 값을 넣는가?
- 캐릭터를 이동 함수를 구현할 때 FRotationMatrix 함수를 사용해서 이 함수에 회전값을 전달 해주어서 앞으로 이동하는 AddMovementInput 함수로 이동을 하는데 여기서 FRotationMatrix가 하는 것은 무엇인가?
문제점
- 예제로 나와있는 MoveForward 함수는 시점에 영향을 받는데 여기서 생긴 문제점은 카메라 마우스 포지션을 하늘, 땅으로 하면 캐릭터 이동이 안 된다는 문제가 발생한다. 이러한 문제를 해결하기 위해서
위에 로직에서 아래 로직으로 변경해 주었더니 하늘, 땅을 바라 본 상태에서도 이동이 잘 되었다.해결 방법은 Controller가 향하고 있는 방향 (Yaw: Z) 값 만을 전달해서 방향 벡터를 구한 후 AddMovementInput 함수에 전달하는 것이다.void ARPGPlayer::MoveForward(float value) { if ((Controller != NULL) && (value != 0.0f)) { FRotator Rotation = Controller->GetControlRotation(); const FVector Direction = FRotationMatrix(Rotation).GetScaledAxis(EAxis::X); AddMovementInput(Direction,value); } }
void ARPGPlayer::MoveForward(float value)
{
if ((Controller != NULL) && (value != 0.0f))
{
FRotator Rotation = Controller->GetControlRotation();
const FRotator YawRotation(0, Rotation.Yaw, 0);
const FVector Direction = FRotationMatrix(YawRotation).GetScaledAxis(EAxis::X);
AddMovementInput(Direction,value);
}
}
해결 방법은 Controller가 향하고 있는 방향 (Yaw: Z) 값 만을 전달해서 방향 벡터를 구한 후 AddMovementInput 함수에 전달하는 것이다.
반응형
'Unreal' 카테고리의 다른 글
TPS Project (0) | 2023.03.24 |
---|---|
언리얼 Mobility 특성 (0) | 2023.03.05 |
언리얼 - 블루프린트 사용 (출력하기, 조건문) (0) | 2023.03.05 |
[Unreal 4] 오브젝트 충돌 감지 - C++ (0) | 2023.01.15 |
[Unreal] 캐릭터 이동 및 마우스로 화면 전환 (1) - C++ (Character Class) (0) | 2023.01.04 |