이전 문제가 해결된 이후로 2주 가까이 지났습니다.

 

오늘에서야 문제를 해결할 수 있었습니다.

 

저번에 적었듯이, MovingDirection이 Climb 중 Moving Input이 들어오는 상태에서 해제 될 시 값이 고정되는 문제가 있었습니다.

 

처음에는 Climb 중 이동을 맡는 MoveForward 함수 내부를 수정할까 고민을 했는데,

내부에서 무언가를 추가/제거 하는 것으로 문제가 해결 될 것 같지가 않았습니다.

그 이후 생각이 나는 해결책은 Tick에서 상태를 조절해주는 것인데,

기껏 Tick에서 기능들을 빼고 다시 넣는 것도 웃기는 것 같았습니다.

 

그러다가 이전에 Tick에 있던 기능들을 제거 할 때 CharacterMovementComponent의 OnMovementModeChanged 등과 같은 Event를 이용했던 것을 떠올렸습니다.

이번에도 문제가 발생하기 직전에 OnClimbEndOverlap Event가 호출이 되기에, 그 안에서 MovingDirection을 초기화 했습니다.

그러자 아무 일도 없다는듯이 문제가 해결되었습니다.

 

처음에는 Climb 상태가 아닐 때에도 Move Input이 들어오면 MovingDirection 값이 변하는데 왜 고정이 되는지 야속했습니다.

하지만 조금 더 생각을 해보니, Animation에 대해 열 댓개의 트리거들을 사용하고 있는데 작은 예외라도 처리를 해주는게 옳지 않았나 싶은 생각이 들었습니다.

 

그렇게 저를 괴롭히던 Climb 기능은 기능적인 측면에서는 모두 완성되었습니다.

남은 것은 각 기능 별 적절한 Animation이 재생이 되는 것인데,

Animation Blueprint를 수정해본 결과 State Machine에 구조적 결함이 있는 것을 발견했습니다.

 

그래서 FullBodyMotion쪽 State Machine들을 전면 개선해야 Animation이 정상 재생 될 것 같습니다.

이 과정에서 Ledge, Slide 등의 Animation도 같이 수정되기에 이 두 기능들 적용이 병행되어야 할 것 같습니다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.06.11 개발일지  (0) 2020.06.11
20.06.08 개발일지  (0) 2020.06.08
20.06.04 개발일지  (0) 2020.06.04
20.06.03 개발일지  (0) 2020.06.03
20.06.01 개발일지  (0) 2020.06.01

+ Recent posts