본문 바로가기
[ CODING STUDY ]/》언리얼엔진5 실습

언리얼엔진5 enhanced input

by MRG 2024. 3. 23.
728x90
반응형

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/enhanced-input-in-unreal-engine?application_version=5.0

 

언리얼 엔진의 향상된 입력

언리얼 엔진의 향상된 입력 플러그인을 간략하게 살펴봅니다

dev.epicgames.com

 

 

 

 

▣ enhanced input system을 사용하기 위해서는 플러그인에서 enhanced input을 체크합니다. 

에디터를 재시작하라는 문구가 나오면 재시작합니다.

 

 

▣ Project Settings에 Input메뉴에서 보면 위에 이미지처럼 향상된 입력 시스템을 사용하라고 문구가 나옵니다. 

 

 

▣ Input메뉴에서 쭉 내려가면 Default Classes메뉴에서 Input에 관한 Class를 설정할 수 있습니다. 

 

 

▣ 설정 후 Content에서 Input Action을 생성합니다. 

 

 

▣ 입력 액션(Input Actions) 은 향상된 입력 시스템과 프로젝트 코드 사이의 통신 링크입니다. 점프하기, 문 열기 등 상호작용 캐릭터의 어떤 행동이든 입력 액션이 될 수 있습니다. 이 기능은 버튼을 길게 눌러 캐릭터 이동 방식을 걷기에서 달리기로 바꾸는 경우처럼 캐릭터의 입력 상태를 나타내는 데에도 사용할 수 있습니다. 입력 액션은 원시 입력과 다릅니다. 입력 액션은 액션을 트리거한 특정 입력과 관련이 없지만, 현재 상태를 알고 있으며 입력 값을 최대 3개의 독립된 부동 소수점 축으로 나타낼 수 있습니다.

예를 들어, '아이템 줍기' 액션은 on/off 상태만으로도 사용자가 캐릭터를 통해 아이템을 줍고 싶거나 줍고 싶지 않다는 것을 나타낼 수 있습니다. 반면 '걷기' 액션은 두 개의 축이 있어야 사용자가 캐릭터를 움직이고자 하는 방향과 속도를 나타낼 수 있습니다.

 

 

▣ IA_Jump, IA_Look, IA_Move 이렇게 3개를 생성합니다. 

 

 

 

 

 

▣ 각각 Value Type을 지정합니다. 

IA_Move, IA_Mouse는 1, -1, 0에 형식으로 값을 반환하기 위해 Vector2D로 받았고 

IA_Jump는 점프키를 눌렀을 때와 아닐 때에 대한 bool 값을 받기 위해 지정했습니다.

 

 

▣ 다음으로 Input Mapping Context를 생성합니다. 

 

▣ 입력 매핑 컨텍스트(Input Mapping Contexts) 는 사용자의 입력을 입력 액션으로 매핑합니다. 컨텍스트는 사용자별로 다이내믹하게 추가하거나 삭제할 수 있고 우선순위를 지정할 수 있습니다. 또한, 향상된 입력 로컬 플레이어 서브시스템(Enhanced Input Local Player Subsystem)을 통해 하나 이상의 컨텍스트를 로컬 플레이어에게 적용하고 우선 순위를 지정해 동일한 입력을 사용하고자 하는 여러 액션 사이의 충돌을 처리할 수 있습니다.

예를 들어, 캐릭터가 월드를 걸어다닐 때 눌러서 문을 열거나 캐릭터가 배낭을 들여다볼 때 눌러서 아이템을 선택할 수 있는 버튼이 있다고 가정해 봅시다.

캐릭터가 문 근처에 있으면 '문 열기' 컨텍스트를 추가합니다. 캐릭터가 배낭을 열면 '문 열기'보다 우선순위가 높은 '아이템 선택하기' 입력 매핑 컨텍스트를 추가합니다. 그러면 캐릭터가 문 근처에서 배낭을 들여다볼 때에도 배낭 속 아이템을 선택할 수 있습니다. 캐릭터가 배낭을 닫으면 '문 열기' 컨텍스트의 효과가 나타날 수 있도록 '아이템 선택하기' 컨텍스트를 삭제합니다.

 

 

 

▣ Input Mapping Context을 열어서 IA_Move를 Mappings에 key를 지정한 다음 Modifiers를 지정합니다. 

 

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/enhanced-input-in-unreal-engine?application_version=5.0

 

언리얼 엔진의 향상된 입력

언리얼 엔진의 향상된 입력 플러그인을 간략하게 살펴봅니다

dev.epicgames.com

 

▣ 모디파이어(Modifiers) 는 사용자의 디바이스에서 나오는 원시 입력의 값을 조절합니다. 입력 매핑 컨텍스트는 입력 액션에 대해 각 원시 입력과 관련된 모디파이어를 원하는 만큼 가질 수 있습니다. 대표적인 모디파이어로는 데드존, 여러 프레임에 걸친 입력 스무딩, 로컬에서 월드 스페이스로의 입력 벡터 변환, 기타 플러그인에 포함된 여러 모디파이어가 있습니다. 개발자가 자신만의 모디파이어를 만들 수도 있습니다.

▣ 트리거(Triggers) 는 모디파이어 이후의 입력 값이나 다른 입력 액션의 출력 크기를 사용해 입력 액션의 활성화 여부를 결정합니다. 입력 매핑 컨텍스트에 포함된 모든 입력 액션은 입력마다 하나 이상의 트리거를 가질 수 있습니다. 예를 들어, 사진을 찍기 위해 카메라 위치 조절을 위한 별도의 입력 액션이 활성화된 상태에서 사용자가 왼쪽 마우스 버튼을 0.25초 동안 클릭해야 할 수도 있습니다.

 

 

▣ Dead Zone  : 조이스틱에 정확한 중앙에 위치하지 않는 문제를 해결할 때 사용합니다.

▣ Negate  : 모든 입력 값에 -1을 곱합니다. 일반적인 입력이 축의 반대 방향에 영향을 미치게 하기 위해 사용합니다.

▣ Swizzle Input Axis Values : 입력 축 값 수정자는 입력 값이 적용되는 축의 순서를 변경하는데 사용합니다.

▣ FOV Scaling : 크기가 조정될 때마다 시야각과 동일한 양으로 입력 값의 크기를 자동으로 조정하는데 사용합니다. 

Scalar : 수정자는 입력 값에 지정된 양을 곱하는데 사용합니다.

 

 

 

▣ IA_Look, IA_Jump도 위에 이미지처럼 지정합니다.

 

 

 

▣ Player 블루프린트에와서 Enhancedinput을 검색하여 Enhanced Input Local Player Subsystem 노드를 추가하고 또 검색해서 Add Mapping Context도 추가합니다. 

 

 

▣ 위에 이미지처럼 노드를 연결합니다. 

그리고 Add Mapping Context노드에서 아까 만든 IMC_PlayerInput로 지정합니다. 

 

https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/Input/AddMappingContext?application_version=5.0

 

Add Mapping Context

Add Mapping Context

dev.epicgames.com

 

 

 

▣ IA_Move을 검색하여 IA_Move를 가져와서 Action Value에서 오른쪽마우스를 클릭하여 Split Struct Pin을 눌러 나누고 위에 이미지처럼 노드를 완성합니다. 

 

 

▣  IA_Jump도 가져와서 입력을 하면 Jump함수를 호출하는 노드를 완성하고 IA_Look은 Action Value를 나눠서 각각 회전에 대한 부분을 완성합니다. 

 

https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/Utilities/Time/GetWorldDeltaSeconds?application_version=5.0

 

Get World Delta Seconds

Get World Delta Seconds

dev.epicgames.com

 

728x90
반응형

댓글