오늘은 Character의 Hit 이벤트를 Mesh에 직접 적용하는 작업을 하였습니다.

 

매우 간단한 작업일 줄 알았는데 예상치 못한 문제에 막혀 마무리하지 못했습니다.

 

공격 기능을 작동하려 할 때 트리거가 제대로 작동하지 않은 것입니다.

 

공격 기능은 다음 트리거들이 만족해야 합니다.

 

1. 상대 Character가 존재하는가?

2. 공격한 주체가 공격을 입력했는가?

 

이 중, 2번 트리거가 버튼 입력에 bind 된 함수에서는 값이 변한 것이 확인되었는데,

트리거 직전에는 값이 작동되지 않은 걸로 확인되었습니다.

 

여러 함수들에 로그를 찍어보면서 한참을 들여다 보다가, 잠깐 공격자가 아닌 피격자의 것을 넣어봤더니 정상적으로 바뀌는 것을 확인하였습니다.

 

이 때문에 크게 혼란이 와서 마무리 하였습니다.

 

다음에는 좀 더 상황을 정확히 파악하고 이를 수정한 뒤, 안쓰는 함수들을 제거하고자 합니다.

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

20.04.09 개발일지  (0) 2020.04.09
20.04.08 개발일지  (0) 2020.04.08
20.04.04 개발일지  (0) 2020.04.04
20.04.02 개발일지  (0) 2020.04.02
20.04.01 개발일지  (0) 2020.04.01

오늘은 개발을 하지는 않았습니다.

 

대신에 월요일부터 시작할 Refactoring Milestone에서 적용 할 Issue들을 정리하였습니다.

 

오늘 개발일지는 이들을 작성한느 것으로 마무리하겠습니다.

 

1. Code arrange

코드 단위에서 정리해야 하는 내용들

 - Class명 중 잘못 적힌 것을 수정

 - Debug에 필요한 매크로 정리

 - TreasureHunter.h에 자주 사용되는 header들 선언

 

2. Fill out blank animation

적절한 모션이 없어 적용되지 않고 있는 기능들

 - Crouch walk with 8 destination

 - Wall - Bottom exit or enter

 - Slide

 

3. Check Interaction Object Enhance

현재는 3개의 Trigger 하나의 OverlappedObject 값을 공유한다.

이 경우, 화면을 위아래로 흔들 때 알맞게 OverlappedObject가 탐색되지 않을 수 있다.

이를 해결하기 위해 아래 방법을 제시한다.

 - 각각의 Trigger에 대응하는 OverlappedObject를 둔다.

 - Interaction시 위 OverlappedObjects들이 담긴 TArray의 index를 따라 탐색하여 접근한다.

 

4. Change Hitbox

현재 Character의 Hit Event는 별도의 CapsuleComponent가 담당한다.

이를 Mesh에 직접 적용이 가능한지 확인하고, 가능하면 Mesh의 Socket에 따라 차등 적용을 하고자 한다.

 

5. bLayeredMotion reversed

bLayeredMotion이 예상한 값과 반대로 움직여야 정상 작동하는 중이다.

 

6. Dash Jump Bug

달리면서 점프를 하면 이동속도가 현저히 떨어지는 버그가 있다.

 

7. Use MovementComponent to Move Wall

현재 BlockTrap의 벽은 Tick에서 움직임을 구성하고 있다.

이는 현저한 성능 하락을 야기할 수 있어, 각 벽마다 MovementComponent를 두어 기능을 개선하고자 한다.

 

8. Use CharacterMovementComponent

Character에 너무 많이 구현된 함수들을 분리하고

저번에 구현 실패한 Climb 기능 구현을 위해 CharacterMovementComponent를 사용.

기능들을 최대한 해당 Component로 옮기고, 가능하면 Character Movement와 관련된 함수들과 변수들도 옮기고자 한다.

 

9. Damaged Animation

피격 시 Animation을 재생하도록 적용

 

10. Detailed component when character move

Character가 이동 시 조정되어야 하는 세부사항들

 - Jump, Crouch, Slide, Climb 시 Camera가 Z값에 따라 움직일 것

 - Slide 시 달리기 초기 속도에서 감속운동을 하면서 정지하도록 적용

 - 화면을 돌리면 그에 따라 얼굴 부분이 회전하도록 적용.

 - 화면을 돌리는 각도를 제한.

 - 제한된 각도 이상 회전하면 몸도 따라 옴직이도록 할 것.

 

11. Trap Activate in Multiplay

Trap이 현재는 매우 간단하게 발동되도록 하고 있다.

또한 한번 해제 후 다시 Overlap 하여도 중복 발동도 가능하다.

이를 더 그럴듯하게 적용하기 위해 다음 방법을 제시한다.

 - Trap 내부에 다음 항목들을 추가

   * Overlap된 Character들을 저장하는 TArray - [A]

   * Overlap중인 Character들을 저장하는 TArray - [B]

   * 발동 최소 인원 수 - [C]

 - Character가 Overlap 할 때마다 B에 Character를 추가

 - B의 길이가 C보다 작을 경우, Character가 Trap 밖으로 나가면 B에서 Character 제거

 - B의 길이가 C랑 같아지면 함정 활성화, B 안의 값들을 A에 추가

 

12. Vanish Trap

바닥이 꺼지는 함정을 Geometry Brush로 구현을 시도했다가 실패했다.

이에 대해 더 알아보고, 불가능할 시 다른 방법을 탐구

 

13. Teleport Trap

Teleport Trap은 다른 Trap들과 다르게 Wrapping Object를 따로 두고 있다.

이러한 Wrapping Object 없이 Trap들간 이동을 할 수 있게하는 방법을 탐구

 

14. Climbing

Climbing 기능 구현에 대한 정리.

정면에 있는 3개의 Trigger들의 Collision 상태에 따라 트리거가 다르게 적용된다.

 

15. Ledge

Climbing의 구현 방식 변화로 인해 Ledge 기능 구현이 불가피하다.

때문에 Ledge 기능을 추가하고자 한다.

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

20.04.08 개발일지  (0) 2020.04.08
20.04.06 개발일지  (0) 2020.04.06
20.04.02 개발일지  (0) 2020.04.02
20.04.01 개발일지  (0) 2020.04.01
20.03.30 개발일지  (0) 2020.03.30

오늘은 게임 시작 시 TextList에서 저장된 Profile 정보를 지정하는 기능을 구현하였습니다.

 

이는 예상대로 coroutine을 이용해서 쉽게 적용할 수 있었습니다.

 

개발 과정에서 abstract function을 선언하면서 TextListController가 abstract class가 되었습니다.

 

또한 최종 검수 과정에서 GameInfo가 제대로 호출되지 않는 문제를 발견하였습니다.

 

확인 결과 GameInfo와 ProfileInfo가 서로 반대로 저장 되어 있었습니다.

 

이를 바꿔주자, 문제없이 잘 작동하였습니다.

 

 

근 2주동안의 리팩토링 끝에, 겨우 원래 자리로 되돌아왔습니다.

 

milestone 상으로는 2주. 4번의 개발이 남았는데, 주말에도 짬짬히 시간을 투자하여 PUN2를 이용한 Multiplay 기능을 구현해보겠습니다.

'폐기된 게시판 > MBGC' 카테고리의 다른 글

20.04.10 개발일지  (0) 2020.04.10
20.04.07 개발일지  (0) 2020.04.07
20.03.31 개발일지  (0) 2020.03.31
20.03.27 개발일지  (0) 2020.03.27
20.03.24 개발일지  (0) 2020.03.24

+ Recent posts