-
Event Graph가 아래와 같이 구성되어 있다.

-
EnhancedInputAction IA
-
Event Possessed

-
서버 모양
-
Setup Input
-
Update Camera
- 상태에 따른 카메라 위치 갱신. (나중에 좀 더 펼쳐보자)
-
Event Tick

- Update Movement
- 현재 걸어야 하는지, 뛰어야 하는지 상태를 갱신.
- 최대 속도를 갱신.
- Update Rotation
- Strafe, Falling 여부에 따라서 회전값 및 Rotation 형태에 대한 부울값을 갱신.
- Update Camera
-
Event On Landed
- 플레이어가 땅에 닿았을 때 Sound를 실행시켜 준다.
- 이때 Sound크기는, 캐릭터의 Velocity Z를 사용.
-
Event On Jumped
- 플레이어가 점프할 때 Sound를 실행시켜 준다.
- 이때 Sound크기는, 캐릭터의 Velocity X,Y를 사용.
-
PerformTraversalAction
- UpdateWarpTargets
- Traversal 수행 대상이 Vault, Hurdle일 때 Warp Target을 설정해 준다.
- Montage를 플레이 한다.
- 플레이 하는 동안 Traversal 대상을 충돌 ignore 처리하고, Movement를 Flying 상태로 변경해 준다.
- 플레이가 완료되거나 Interrupted 되었다면 ignore처리를 풀어주고, movement를 Traversal check result에 등록된 형태로 변경해준다.
-
EnhancedInputAction IA_Move

-
EnhancedInputAction IA_Move_WorldSpace

- Add Movement Input
- Scale Value와 World Direction을 계산하여 Pawn을 이동 시키는 함수.
- Move Action으로 부터 X,Y 방향의 키 입력 값을 가져와서 Pawn에 적용 시킨다.
-
Camera Input

-
Camera Input - Gamepad

-
Walk Input

- Sprint or Walk 토글 용도로만 쓰고 있다.
-
Jump / Traversal Input
- 액션 Trigger를 받는 용도.
- Traversal이 가능하다면 Traversal Action을 진행하고, 아니라면 Jump를 진행한다.
- Try Traversal Action
- 값 셋팅
- Actor Location, Actor Forward Vector 저장.
- Capsule Radius, Half Height 저장.
- 캐릭터 앞쪽으로 충돌 체크를 해서 LevelBlock_Traversable인지 확인한다.
- 충돌 된게 없거나 LevelBlock_Traversable이 아니라면 점프 처리.
- Traversal Check Result에 값 셋팅
- Hit Component 셋팅.
- HitLocation과 Actor Location을 이용해서 가장 가까운 Front와 Back Ledge의 위치와 Normal값을 찾아서 셋팅.
- Ledge는 LevelBlock_Traversable에 미리 셋팅 되어 있다.
- Front ledge의 정보와 Capsule을 이용해서 실제로 올라갈 공간이 있는지 Trace를 통해서 체크.
- 장애물의 높이를 셋팅 (Obstacle Height)
- Back ledge의 정보와 Capsule을 이용해서 실제로 올라갈 공간이 있는지 Trace를 통해서 체크.
- 지금까지 셋팅된 값을 이용해서 현재 어떤 Action을 수행해야 하는지 설정.
- AnimBP에게 Interation Transform을 셋팅한다.
- Chooser Table을 통해서 어떤 AnimMontage가 실행되어야 하는지를 얻어온다.
- Chooser Table을 통해 얻은 Asset중에 Motion Match를 통해서 가장 어울리는 애님을 찾는다. (TODO: 알고리즘 분석)
- Traversal을 수행 할 수 있는 조건을 다 만족 했다면, PerformTraversalAction을 수행.