PlayerInput 오브젝트는 플레이어로부터 받은 입력을 PlayerController나 Pawn 같은 액터가 이해하고 활용할 수 있는 형태의 데이터로 변환하는 작업을 담당. 이는 PlayerInput 매핑과 InputComponent를 가지고 플레이어의 하트웨어 입력을 게임 이벤트와 동작으로 변환 하는 입력 프로세스 흐름의 일부.
하드 웨어 입력
플레이어로부터 하드웨어 입력은 매우 단순. 가장 흔하게는 키 입력, 마우스 클릭. 마우스 이동, 컨트롤러 버튼 입력이나 조이스틱 이동 등이 포함. 표준 축 또는 버튼 인덱스가 아니거나 일반적이지 않은 입력 범위를 갖는 특수 입력 디바이스의 경우, RawInput 플러그인으로 수동 설정할 수 있음.
PlayerInput
PlayerInput은 PlayerController 클래스 안에서 플레이어 입력을 관리하는 UObject이며, 클라이언트에서 스폰. PlayerInput 안에는 구조체가 둘 정의 됨.
- FInputActionKeyMapping: AcionMapping 정의. 별개의 버튼이나 키 입력을 나중에 이벤트 주도형 동작에 바인딩 되는 친근한 이름으로 매핑. 최종 효과로 키, 마우스 버튼, 키패드 버튼을 누르거나 뗄 때.
- FInputAxisKeyMapping: AxisMapping 정의. 키보드, 컨트롤러, 마우스 입력을 나중에 이동과 같은 연속성 게임 동작에 바인딩되는 친근한 이름으로 매핑, AxisMappings에 입력은 그 입력값이 현재 0일지라도.
양쪽에 사용된 하드웨어 입력 정의는 InputCoreTypes에 설정 됨.
InputComponent
InputComponent는 필요에 따라 다른 액터나 레벨 스크립트에서 설정할 수 있지만, 폰과 컨트롤러에서 가장 많이 볼 수 있음. InputComponent는 프로젝트의 AxisMappings와 ActionMappings를 보통 C++나 블루프린트 그래프로 구성되 게임 액션에 연결시킴.
InputComponent가 처리하는 입력에 대한 우선권Priority 스택은 다음과 같음(높은 우선권 먼저)
1. "Accepts Input" 활성화된 액터, 가장 최근에서부터 나중 활성화된 순
* 입력 처리에 있어 항상 특정 액터를 가장 처음 고려하도록 만들고 싶은 경우. "Accept Input"을 재활성화 시키면 스택 최상단으로 올라감.
2. 컨트롤러
3. 레벨 스크립트
4. 폰
한 InputComponent가 입력 받으면, 이 스택 이하에서는 사용가능하지 않음.
'개발자로 > Unreal' 카테고리의 다른 글
[Unreal4] 스켈레탈 메시 액터(SkeletalMesh Actor) (0) | 2022.08.19 |
---|---|
[Unreal4] 캐릭터(Character) (0) | 2022.08.19 |
[Unreal4] 폰(Pawn) (0) | 2022.08.17 |
[Unreal4] 게임 모드와 게임 스테이트 (0) | 2022.08.16 |
[Unreal4] Game Flow Chart(standalone) (0) | 2022.08.12 |