이전 글에서 Input Action을 이용해서 키 입력에 대한 이벤트를 발생시켜 점프 기능을 구현해 보았다.
이번 글에서는 이 Input Action 노드의 다양한 트리거 핀에 대해서 알아보고자 한다.
먼저 아래 그림과 같이, 각 이벤트가 발생했음을 알 수 있기 위해 Print String 노드를 모두 연결했다.
그리고 점프 기능을 구현할 때 사용했던 'IA_Jump' 액션의 'Trigger' 프로퍼티를 수정해 본다.
트리거의 종류는 총 10가지가 있다. 아무 것도 설정되어 있지 않으면 기본 값으로 'Down' 트리거가 설정되어 있다.
이제 스페이스 바를 눌러보면서 각 트리거가 어떻게 동작하는지 알아보자
Down
- 키를 누른 순간에 'Started' 이벤트가 발생
- 키를 누르고 있는 동안 매 틱마다 'Triggered' 이벤트가 발생
- 키를 뗀 순간에 'Completed' 이벤트가 발생
Pressed
- 키를 누른 순간에 'Started', 'Triggered', 'Completed' 이벤트가 차례대로 발생
Released
- 키를 누른 순간에 'Started' 이벤트가 발생
- 키를 누르고 있는 동안 매 틱마다 'Ongoing' 이벤트가 매 틱마다 발생
- 키를 뗀 순간에 'Triggered', 'Completed' 이벤트가 차례대로 발생
Hold
'Hold Time Threshold' 프로퍼티에 키 입력을 유지하고 있을 시간을 설정
- 키를 누른 순간에 'Started' 이벤트가 발생
- Threshold 이전까지는 누르고 있는 동안 'Ongoing' 이벤트가 매 틱마다 발생
- Threshold가 지나면 누르고 있는 동안 'Triggered' 이벤트가 매 틱마다 발생
- Threshold가 지나기 전에 키를 떼면 'Canceled' 이벤트가 발생
- Threshold가 지나고 난 후 키를 떼면 'Completed' 이벤트가 발생
- 'is one shot' 프로퍼티가 체크되어 있다면, Threshold가 지남과 동시에 'Triggered', 'Completed' 이벤트가 발생하며 더 이상의 이벤트가 발생하지 않음
Hold and Release
- 키를 누른 순간에 'Started' 이벤트가 발생
- 키를 누르고 있는 동안 'Ongoing' 이벤트가 매 틱마다 발생
- Threshold가 지나기 전에 키를 떼면 'Canceled' 이벤트가 발생
- Threshold가 지나고 난 후 키를 떼면 'Triggered', 'Completed' 이벤트가 차례대로 발생
Pulse
- 키를 누른 순간에 'Started' 이벤트가 발생
- 키를 누르고 있는 동안 'Ongoing' 이벤트가 매 틱마다 발생
- 'Interval' 프로퍼티의 시간 간격마다 'Triggered' 이벤트 발생
- 'Trigger limit'은 Triggered 이벤트가 발생할 수 있는 최대 횟수를 명시. 이 횟수만큼 도달했을 때 'Completed' 이벤트 발생
- 'Trigger limit'이 명시되지 않았거나, 도달하기 전에 키를 뗐을 경우 'Canceled' 이벤트 발생
- 'Trigger on start' 프로퍼티는 입력 시작에 Triggered 이벤트를 발생시킬지 말지에 대한 설정
Tap
- 키를 누른 순간에 'Started' 이벤트가 발생
- 키를 누르고 있는 동안 매 틱마다 'Ongoing' 이벤트가 매 틱마다 발생
- 'Tap Release Time Threshold' 에 명시된 시간 이내에 키를 떼면 'Triggered', 'Completed' 이벤트 발생
- 시간이 지나도록 키를 누르고 있으면 'Canceled' 이벤트 발생
Chorded Action
트리거되기 위해 다른 특정 액션이 Triggered 되어 있어야 하는 액션이다.
가령, 게임에서 점프 공격은 점프 액션이 선행되어야 트리거되어야 할 것이다.
예시를 위해 'IA_JumpAttack' 액션을 만들고, 'A' 키로 할당한다.
그리고 아래와 같이 트리거됨을 잘 확인할 수 있도록 print string 노드를 연결한다.
점프 액션은 누른 시간동안 계속 트리거되어야 하므로 'down' 으로 설정한다.
이후 실행해 보면 다음과 같은 결과를 확인할 수 있다.
그냥 A 키를 누르면 아무 것도 출력되지 않지만, 점프 키를 누른 채로 A 키를 누르면 사진과 같이 잘 발생하는 것을 확인할 수 있다.