오늘은 Climb 상태 해제를 모든 조건에서 적용하고, 3개의 Trigger에 대한 Climb 상태 변화를 적용하였습니다.
우선 Climb 상태에서 다시 한번 상호작용을 하여 Climb 상태에서 벗어나는 작업은
동시에 처리해줘야 하는 Parameter 중 한가지가 누락되어 작동하지 않았습니다.
이를 적용해주자, 정상적으로 해결되었습니다.
이를 두어번 테스트 하는 도중, 공중에 떠있는 Climb를 오를 때 정상적으로 작동하지 않는 것을 확인했습니다.
이벤트 함수에서 문제가 발생하는거라 debug point가 정상작동하지 않아 log에 의지해서 debug 해야 했습니다.
꽤 오랜 시간이 걸렸지만, 알아본 결과 Interaction Key Released Event 부분에서 임시로 넣어 둔
Parameter 해제 코드가 문제였습니다.
또한 이를 해결하더라도 3개의 Trigger가 공유하는 Critical Section이 있어 같은 문제가 다시 발생할 여지가 있었습니다.
그래서 Parameter 해제 코드를 제거하고, Trigger가 공유하는 Parameter가 정확한 상황에서 바뀌도록 개선했습니다.
세번째로 각 Trigger의 Start/End Overlap, On Interaction Pressed 이벤트에 분포되어 있던 Climb 관련 기능들에
Trigger Parameter 값에 따른 상태 변화를 적용하였습니다.
이를 통해 Character가 Climb중 점프를 하거나, 재 상호작용을 통해서 Climb 상태를 해제하는 것뿐만 아니라
Climb의 정상이나 바닥에 닿았을 때에도 자동으로 Climb 상태가 해제되도록 하였습니다.
이후 이 부분에 적절한 Animation이 재생되면서, Character의 중심이 이동하면 완벽한 Climb 기능이 완성됩니다.
마지막으로 AnimInstance와 Character간의 Parameter Synchronize를 개선했습니다.
이전에는 Character에 각 Parameter별로 get 함수를 두고 있었습니다.
하지만 구조상 AnimInstance 내에서 Character 객체를 가지면서 어쩔수 없이 Coupling이 발생합니다.
때문에 반드시 Character 객체를 가지고 있기 때문에 Character 내부에 public으로 Synchronize 함수를 두었습니다.
공유해야 할 Parameter들이 많아 Category별로 3개의 함수로 분리하였습니다.
이 외에 구현중이거나, 발견한 버그들도 있었습니다.
첫번째. Puzzle에서 버그가 발생했습니다.
Attach Puzzle에서 Interaction을 할 때, 범위와 관계없이 가장 마지막에 Interaction한 Object가 반응합니다.
또한 Key를 Submit 할 때 Attach 위치가 원하는대로 되지 않고 있습니다.
Break Puzzle에서는 주먹을 휘두르는 걸로 파괴가 되지 않고 직접 부딛쳐야 파괴가 됩니다.
두번째. Multiplay 상에서 문제가 발생했습니다.
우선 Character의 Interaction, Melee Attack 애니메이션이 재생되지 않습니다.
변수명을 바꾸었는데 그 때문인지, 더 큰 문제가 있는지 확신이 없습니다.
다만 이 때문에 Break Puzzle에서 주먹이 나가지 않는 문제가 발생한 것 같습니다.
Climb에서도 문제가 발생했습니다.
Host가 Climb 할 때에는 테스트 할때와 같이 정상적으로 움직이는 반면,
Client가 Climb 할 때에는 가만히 멈춰있습니다.
Parameter 중 몇가지가 Replicated 안될 때 비슷한 현상이 있던 걸로 기억하는데,
만약 이게 아니라면 Climb 부분 기능을 다 뜯어 고치는 불상사가 발생할 것 같습니다.
개인적으로 Climb 기능을 금주 내에 구현하여 영상을 찍고,
이를 포트폴리오에 담아 일요일까지 마감인 회사 지원서에 포함하려 했습니다.
하지만 남은 일정으로 보아 하루 이틀 더 무리해서 하지 않는 한 시간 안에 마무리하지 못할 것 같습니다.
그래서 토요일에는 우선 Animation 문제부터 해결하여 기존에 구현했던 기능들에 대한 문제부터 해결하고,
Climb 부분은 그 뒤에 구현할 예정입니다.
그리고 일요일에도 쉬는 날 없이 개발을 하여 최대한 Climb 기능을 시연 가능할 정도로 구현해볼 예정입니다.
제출 날짜가 정확히 21일까지니, 토요일에 Animation 버그를 수정하여 최소한의 영상들을 촬영.
일요일에 자기소개서를 정리하고 남은 시간은 Climb 기능 구현에 투자하여 20일까지 최대한 개발을 해볼 생각입니다.
그리고 20일에 구현이 된다면, 영상을 촬영하고 그대로 제출.
그렇지 못한다면 그대로 제출을 할 생각입니다.
'개발일지 > Treasure Hunter' 카테고리의 다른 글
20.05.18 개발일지 (0) | 2020.05.18 |
---|---|
20.05.16 개발일지 (0) | 2020.05.16 |
20.05.13 개발일지 (0) | 2020.05.13 |
20.05.11 개발일지 (0) | 2020.05.11 |
20.05.09 개발일지 (0) | 2020.05.09 |