1. 게임 모드
플레이어 컨트롤러를 만들었고 이를 실제로 사용하게 해야 캐릭터가 움직일 것이다. 그러기 위해서는 커스텀 게임모드가 필요하다.
게임모드 베이스를 기반으로 C++ 클래스를 만드려고 한다.
바로 컴파일을 한 뒤 이를 기반으로 블루프린트 클래스를 만들자. 현재는 게임모드에서 할 작업이 딱히 존재하지 않는다.
블루프린트 클래스를 만들고 플레이어 컨트롤러 클래스와 디폴트 폰 클래스를 우리가 원하는 클래스로 바꿔준다.
그리고 월드 세팅을 바꿔준다. 이제 테스트하면 캐릭터가 움직인다. 다만 현재는 캐릭터에 카메라가 존재하지 않아 시점이 이상하다. 탑다운 게임으로 만들것이고 이에 맞는 카메라 설정을 해주면 된다.
카메라는 C++에서 설정할 수도 있고 C++에서 많이 설정하는 것 같지만 사실 블루프린트로 만들어도 성능상 차이는 거의 존재하지 않고 블루프린트가 세세한 조절이 편하기 때문에 그냥 블루프린트로 만드는 것이 낫다고 한다.
카메라 설정이 완료되었다. 현재는 캐릭터 이동 방향과 캐릭터 방향이 일치하지 않는다. 이 부분은 C++에서 설정하도록 하자.
2. 캐릭터 방향 설정
캐릭터 클래스에서 생성자를 만들어 준다.
AAuraCharacter::AAuraCharacter()
{
GetCharacterMovement()->bOrientRotationToMovement = true;
GetCharacterMovement()->RotationRate = FRotator(0, 400.f, 0);
GetCharacterMovement()->bConstrainToPlane = true;
GetCharacterMovement()->bSnapToPlaneAtStart = true;
bUseControllerRotationPitch = false;
bUseControllerRotationRoll = false;
bUseControllerRotationYaw = false;
}
기본적인 설정을 해준다.
평면에서 움직이도록 제한하는 기능들을 넣었다. 밑에 3개의 false 구문은 원래 디폴트도 false지만 확실히 명시해두었다.
컴파일하고 에디터로 돌아가자.
이 설정을 전부 false로 바꿔준다.
이렇게 캐릭터의 이동이 완성되었다.
'게임프로그래밍 > 실습2' 카테고리의 다른 글
[실습2] 8. 에너미 하이라이트 하기 (0) | 2024.11.28 |
---|---|
[실습2] 7. 에너미 인터페이스 만들고 함수 호출하기 (0) | 2024.11.28 |
[실습2] 5. 인풋 매핑하기 (0) | 2024.11.28 |
[실습2] 4. 커스텀 플레이어 컨트롤러와 향상된 인풋 (0) | 2024.11.27 |
[실습2] 3. 애니메이션 블루프린트 만들기 (0) | 2024.11.27 |