- 개요
플레이어로부터 입력을 받아 게임 내의 캐릭터를 움직일 수 있도록 설정한다
이를 위해 필요한 클래스들을 생성하고 생성한 클래스들로부터 블루 프린트를 만들어 설정한다
이때 플레이어의 입력 처리는 Enhanced Input 방식을 사용한다
몰아서 처리되는 기존의 Input 처리 방식과 다르게
처리를 여러 부분으로 나눠 처리하므로 훨씬 효율적이며 능동적으로 Input을 처리할 수 있다
1) 언리얼 에디터


우선, 에디터에서 이동을 처리하는 Input Action인 IA_Move를 생성한다
Input Acion은 키가 눌렸을 때 발동되어 Value Type에 해당하는 값을 리턴하는 액션을 의미하는데,
Input Action에서는 Value Type을 설정하여 어떤 자료형의 값을 리턴할지 결정해야 한다
IA_Move는 이동과 관련되었으므로 Vector2D 값을 리턴한다

다음으로 Input Mapping Context인 IMC_Aura를 생성한다
Input Mapping Context는 Input Action과 키를 연결하는 주체인데,
기본적으로 XYZ로 수행하여 (1, 0, 0)으로 값을 처리한다

그러나 Modifier를 통해 옵션을 적용하면 위의 수치값을 변경할 수 있다
사진에서 볼 수 있는 S키의 경우
- Swizzle Input Axis Values로 YXZ를 설정하여 Y를 우선 처리하도록 설정하였다
- Negate를 설정하여 (-1, 0, 0)의 값으로 처리하도록 설정하였다
따라서 설계방향에 따라 Modifier를 설정하여 원하는 방식으로 키 입력이 동작하게끔 설정할 수 있다
2) AuraInputComponent 클래스

EnhancedInputComponent는 컴포넌트로서
Input Action과 콜백함수를 연결하거나 Input Action의 동작을 감시하게끔 돕는다
이때 기본제공되는 EnhancedInputComponent를 사용하지 않고 상속하여 기능을 확장할 수 있다
따라서 확장한 AuraInputComponent 클래스를 생성하고 사용한다
3) AAuraPlayerController 클래스

AuraPlayerController 클래스는 PlayerController 클래스로서 플레이어에 빙의되어 플레이어를 대변한다
따라서 입력에 대한 처리를 수행하기에 적절하다
현재까지 2개의 프로퍼티를 지니고 있는데,
Input Mapping Context와 Input Action을 갖고 있다

생성자에서는 bReplicates를 true로 설정하여 AuraPlayerController가 Replicate하도록 설정한다

BeginPlay 메서드에서는 Input Mapping Context 프로퍼티를 확인하고
EnhancedInput의 Subsystem을 불러와
해당 프로퍼티를 0번째로 설정하여 가장 우선적으로 사용하도록 설정한다
이어서 마우스 커서의 옵션을 설정하고
UI와 인게임의 입력 방식을 설정하여 뷰포트에서 마우스가 잠기지 않게 설정하고
또, 마우스가 캡쳐되어 있는 동안 숨겨지지 않도록 설정한다

SetupInputComponent 메서드에서는 InputComponent를 불러와 Input Action과 콜백 함수를 연결한다

Move 함수에서는 PlayerController가 빙의한 대상의 Rotation을 가져와서 회전에 따른 방향을 가져와 적용한다
위의 방식은 탑다운 시점의 게임에서 사용할 수 있는 이동 방식이다
4) AuraPlayerController 블루 프린트

블루 프린트를 생성하고 위와 같이 프로퍼티를 설정하였다
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| GAS 프레임워크 도입 - 최종) OwnerActor와 AvatarActor 설정 (0) | 2025.06.30 |
|---|---|
| GAS 프레임워크 도입 - 2) Replication 모드 설정 (0) | 2025.06.29 |
| GAS 프레임워크 도입 - 1) ASC와 AttributeSet 추가 및 설정 (0) | 2025.06.29 |
| 프로젝트 설정 - 최종) 프로젝트 세부 설정 (0) | 2025.06.27 |
| 프로젝트 설정 - 1) 기본적인 캐릭터 생성과 애니메이션 설정 (0) | 2025.06.23 |