친구들과 약속이 있어 개발을 하지 못하였습니다.

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

20.06.23 비개발일지  (0) 2020.06.23
20.06.13 비개발일지  (0) 2020.06.13
20.04.25 비개발일지  (0) 2020.04.25
0701 리슨서버 골자 구축  (0) 2019.07.01
게임 제작 근황  (0) 2019.06.17

따로 만든 이유는 일지를 쓰는 것이 그날 활동을 빼먹지 않고 계획을 지키는데 큰 도움이 되어서 따로 신설했습니다.

 

앞으로 매주 수요일에 Online Test 1번, Online Judgement 2~3회 정도 진행을 하려 합니다.

 

그리고 그날 풀었던 문제 링크와 결과, 대략적인 풀이 방법 등 복기를 이 일지에 적겠습니다.

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

20.06.02 2015 ACM-ICPC 연습  (0) 2020.06.02
20.05.26 - 2015 ACM-ICPC 연습  (0) 2020.05.26
20.05.19 - 2015 ACM-ICPC 연습  (0) 2020.05.19
20.05.12 - 2015 ACM-ICPC 연습  (0) 2020.05.12
20.05.05 - 2015 ACM-ICPC 연습  (0) 2020.05.05

4월 마지막 개발일지입니다.

 

오늘은 Code 개선 작업을 하였습니다.

 

변수명 변경, 구조 개선 등 다양한 것이 있지만,
여기서 말한 Code 개선은 헤더 정리, 로그 매크로 제공, 오철자 수정입니다.

 

사실 이 작업은 매우 쉽게 끝날 것이라 예상 했습니다. 

 

하지만 매우 어렵고, 꼬여버려서 오늘 다 해결하지 못했습니다.

 

첫번째로 오철자 수정입니다.

Class를 다시 만들어야 되는줄 알았는데,
선언된 부분과 파일명을 수정한 뒤 regenerate project를 하는 것으로 쉽게 마무리 되었습니다.

 

두번째로 로그 매크로 제공입니다.

여기에는 두가지 작업이 포함되어 있었습니다.

하나는 로그 카테고리 정리.
다른 하나는 로그를 찍을 시 클래스 명, 함수 명, 로그가 찍힌 코드 줄 정보가 자동으로 포함되는 것입니다.

로그 카테고리 정리는 선언했던 것을 rename으로 수정해보았으나, 제대로 해결 되지 못하고 에러를 발생했습니다.

로그 찍을 시 자동으로 정보를 포함하게 하는 것도 기존 매크로를 매크로나 함수로 wrapping 해야 하는데,
갯수가 정해져 있지 않는 argument들을 받아 처리하는 작업 부분이 기존 C++과 조금 다른 것 같아
함부로 손을 대지 못했습니다.

 

세번째는 헤더 정리입니다.

이 역시 TreasureHunter라는 헤더에 몇가지 공통적으로 선언된 헤더를 선언 해보았으나, 
에러가 발생하여 원상복구 해놓은 상태입니다.

 

안타깝게도 토요일에는 약속이 있어 다음 개발은 월요일이 될 것 같습니다.

월요일에는 이 두가지 중 헤더 정리를 우선적으로 처리하고자 합니다.

우선 에러가 터졌던 Controller, Widget, GameMode 등의 코드들에서 .h에 헤더 선언이 되어 있는지 확인하고,
이를 .cpp로 옮긴 뒤 오류가 없을 경우 헤더 통합을 해보려 합니다.

 

로그 매크로는 조금 더 이것저것 알아봐야 해결이 될것으로 예상합니다.

Wrapping할 함수/매크로가 받을 것은 printf와 유사한 형태의 포맷입니다.

출력할 텍스트와 파라미터를 받으면 그 앞에 클래스(혹은 파일), 함수 이름과 출력된 줄 번호를 출력하는 텍스트.

그리고 기존 파라미터 앞에 해당 파라미터들을 넣어주면 됩니다.

이 부분을 조사하고, 가능하면 해결해보려 합니다.

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

20.05.06 개발일지  (0) 2020.05.06
20.50.04 개발일지  (0) 2020.05.04
20.04.29 개발일지  (0) 2020.04.29
20.04.27 개발일지  (0) 2020.04.27
20.04.23 개발일지  (0) 2020.04.23

오늘은 AttachPuzzle에서 비정상적으로 작동하는 TwoBlockTrap 문제를 해결하고,
Trap에서 아직 구현하지 않았던 기능들을 구현 한 뒤, 코드를 정리하였습니다.

 

우습게도, AttachPuzzle이 비정상적으로 작동하는 이유는
생성자 노드에서 노드 연결이 중간에 끊겨 있었기 때문이었습니다.

이를 연결하자 거짓말처럼 정상 작동하였습니다.

 

이를 해결하고 Push한 뒤, Trap의 Wall들을 다시 내리는 기능을 THWallBase에 맞게 구현하였습니다.

비록 아직 동작을 확인하지는 못했으나, Trap을 개선하면서 동시에 테스트를 해볼 수 있기에 일단 마무리 했습니다.

 

구현 방법은 게임 시작 시 Wall의 World Location을 저장하고,
벽이 멈출 때마다 이 World Location과 거리가 일정 이상 멀어지면
Control Point를 음수로 reverse 하여 원래 거쳐왔던 경로를 되돌아가도록 하였습니다.

 

마지막으로 안쓰는 코드를 지우고, 최종적으로 Push를 함으로서
MovementComponent 적용 부분을 최종적으로 마무리하였습니다.

 

당장 내일부터 다시 개발을 시작하는데, 우선 Code Arrange부터 하려 합니다.

이후 Ledge부터 시작하여 Climb 기능을 구현해나갈 계획입니다.

 

이 부분이 마무리가 되면 구현 방식을 수정하거나 새로 구현해야 하는 Trap들을 구현하고,
Trap의 동작을 Multiplay에 맞게 변경 할 계획입니다.

 

뒤이어 Character의 피격 애니매이션 적용이나 얼굴 부분 회전 등의 기능을 구현 할 예정입니다.

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

20.50.04 개발일지  (0) 2020.05.04
20.04.30 개발일지  (0) 2020.04.30
20.04.27 개발일지  (0) 2020.04.27
20.04.23 개발일지  (0) 2020.04.23
20.04.22 개발일지  (0) 2020.04.22

오늘은 Puzzle에서 사용되고 있던 TwoBlockTrap의 벽을 Static Mesh에서 THWall로 교체하고, 
이에 의해 Puzzle에서 변경되는 부분을 변경해주는 작업을 진행하였습니다.

 

그리고 이에 앞서, AllBlockTrap에서 Wall이 제대로 작동하지 않는 문제를 해결하였습니다.

 

원인은 Control Point 초기화 위치가 잘못 되었기 때문입니다.

 

기존에는 Begin Play에서 초기화를 하였는데, 이를 Constructor에서 초기화를 해주자 원하는대로 작동하였습니다.

 

또한 BlockTrap에 적용되었던 Initialize 함수를 C++상에서 InitializeTrap 함수로 대체,

이를 Implement하여 사용하도록 변경하였습니다.

 

게임이 시작하자마자 벽의 움직임을 일시정지하는 로직도
BlueprintImplementableEvent로 선언된 StopAllInterpWall 함수로 정리하였습니다.

 

현재 대부분의 문제는 해결 되었습니다.

 

Trap은 물론이고 DestroyPuzzle에서도 잘 작동합니다.

 

하지만 AttachPuzzle에서 Trap이 정상작동하지 않고 있습니다.

 

다음에는 이 버그를 고치는 것이 첫번째 작업이 될 것입니다.

 

두번째는 Trap Class 생성입니다.

 

예를 들어, Initialize 함수의 경우에는 Puzzle에 언제든지 붙을 수 있는 Trap 계열에는 모두 선언되어야 하는 함수입니다.

 

또한 현재의 Trap은 THObjectBase를 상속받아서 선언했기에 선언에 있어서 흩어져 있는 감이 없지 않습니다.

 

이를 위해 Trap Class를 생성하고자 합니다.

 

이는 아마 기존의 코드 전반적인 Refactoring과 병행 될 것 같습니다.

 

4월 안에는 Trap 관련 자잘한 수정 작업은 끝낼 수 있도록 하려 합니다.

 

그럼 5월에는 큼직한 구현 이슈들을 해결하고, 월말에는 영상을 촬영할 계획입니다.

 

그리고 포트폴리오에 적용하여 상시 채용중인 회사에 지원해볼 계획입니다.

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

20.04.30 개발일지  (0) 2020.04.30
20.04.29 개발일지  (0) 2020.04.29
20.04.23 개발일지  (0) 2020.04.23
20.04.22 개발일지  (0) 2020.04.22
20.04.20 개발일지  (0) 2020.04.20

오늘은 어제부터 준비하던 방 청소 및 인테리어 변경을 하느라 개발을 하나도 하지 못했습니다.

 

몇가지 이슈를 적어보자면

 

1. 구조를 바꾸기 전에 파워포인트로 대략적인 견적을 맞추는데,
침대 사이즈를 잘못 적어놓아서 구조가 변경되었습니다.

 

기껏 판때기 주워서 드릴로 나사 조이고 시트지 붙였는데 필요가 없어져서 슬픕니다.

 

2. 방 형광등이 3개 들어가는데 그 중 2개만 불이 들어오고 있습니다.

 

마침 구조를 바꾼 뒤 책상이 들어가는 쪽 형광등이 불이 없는데 저녁이 되니 게임하기에는 적당한 밝기가 되었습니다.

 

마지막으로 방 사진을 올리며 마칩니다.

 

 

 

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

20.06.13 비개발일지  (0) 2020.06.13
20.05.02 비개발일지  (0) 2020.05.02
0701 리슨서버 골자 구축  (0) 2019.07.01
게임 제작 근황  (0) 2019.06.17
Animation Replicate 삽질 일기  (0) 2019.05.19

오늘은 BlockTrap에 THWallBase를 적용해 보았습니다.

 

현재 구현해 놓은 BlockTrap은 AllBlockTrap과 TwoBlockTrap. 두가지입니다.

 

이 중 TwoBlockTrap은 Puzzle에도 사용 되어있어 비교적 수정하기 용이한 AllBlockTrap을 먼저 수정하였습니다.

 

이전 기능과 햇갈리긴 했지만 예시로 만들어놓았던 것을 보면서 큰 문제 없이 작성하였습니다.

 

하지만 정작 동작은 예시 함정도, 이 함정도 제대로 되지 않았습니다.

 

몇가지 문제를 간추려보자면

 

1. Wall이 바닥을 뚫고 올라오지 못합니다.

Wall에 직접 Control Point를 작성해주면 부드럽게 올라오는데, 그렇지 않으면 바닥과 부딛쳐 바로 멈추어버립니다.

 

2. 모든 벽이 올라와야 하는데 일부 벽만 올라오는 경우가 있습니다.

 

3. 상대 좌표로 Control Point를 주었는데 절대좌표로 작동합니다.

 

아직 관련 사항 검색도 해보지 못했지만 느낌상

원인을 파악하고 이를 수정하려면 꽤 많은 시간과 수고를 들여야 할 것 같습니다.

 

토요일에는 이 문제를 먼저 해결하고, 해결이 되는 즉시 Puzzle에 적용되는 Trap도 수정하고자 합니다.

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

20.04.29 개발일지  (0) 2020.04.29
20.04.27 개발일지  (0) 2020.04.27
20.04.22 개발일지  (0) 2020.04.22
20.04.20 개발일지  (0) 2020.04.20
20.04.18 개발일지  (0) 2020.04.18

오늘은 Trap. 정확히는 BlockTrap에서 Tick에 If문으로 구현되어 있던 Wall의 움직임을

MovementComponent로 처리하는 부분을 개발하였습니다.

 

이를 위해 먼저 Actor를 하나 생성해서 부착이 가능한 MovementComponent들을 살펴봤습니다.

 

그 중 InterpToMovementComponent가 있었습니다.

 

나머지는 다 예시로 봤던 것인데, InterpToMovementComponent는 처음 본 것이라 검색을 조금 해보았습니다.

 

예시 영상을 보니 플랫폼 게임에서 일정 궤도만 왔다갔다하는 움직임을 구현하는데 쓰이는 것이었습니다.

 

제가 원하는 벽의 움직임은 위로 올라갔다가, 아래로 내려오는 것이었습니다.

 

때문에 이 움직임을 runtime 상에서 원하는대로 끊었다가 다시 시작하거나,

더 나아가 runtime 상에서 움직임을 멈추거나 바꿀 수 있는지 알아보았습니다.

 

Document를 읽고 검색을 해본 결과, 가능하다는 결론을 내릴 수 있었습니다.

 

이후 THWallBase를 생성하고, InterpToMovementComponent를 부착하며 기본 함수들을 구현하였습니다.

 

내일은 이를 Trap에 직접 적용을 해보고, 원하는대로 적용이 되면 이전 구현체를 삭제하려 합니다.

 

혹, 시간이 조금 남는다면 다른 일로 넘어가기 전에 클래스 이름 오타나, 헤더 정리를 해보려 합니다.

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

20.04.27 개발일지  (0) 2020.04.27
20.04.23 개발일지  (0) 2020.04.23
20.04.20 개발일지  (0) 2020.04.20
20.04.18 개발일지  (0) 2020.04.18
20.04.16 개발일지  (0) 2020.04.16

오늘은 Custom CharacterMovementComponent를 Character에 적용하고, Character의 Movement와 Rotation을 이 CharacterMovementComponent를 통해 이루어지도록 변경하였습니다.

 

첫번째 이슈였던 FObjectInitializer 문제입니다.

 

여전히 검색과 질문으로 해결을 할 수 없었습니다. 

 

한 1시간 정도를 다시 삽질을 하다가 Log에 Intermediate 폴더 안 파일에서 에러가 발생 했다는 메세지를 발견합니다.

 

제가 아는 한 Intermediate 폴더를 건드려야 하는 경우는 한가지.

 

빌드가 꼬이는 등의 이유로 Project Regenerate를 할 때 Saved, Binaries 폴더와 함께 이 폴더를 지워야 한다는 것입니다.

 

그렇게 혹시나 하는 마음에 Project Regenerate를 하였고, 이것은 정답이었습니다.

 

아마도 기존에 Build 했던 Default Constructor 부분이 새 Constructor 빌드를 엉키게 한 것 같습니다.

 

이리하여 길고 길었던 삽질을 허무하게 마무리 하고, 드디어 MovementComponent를 적용하였습니다.

 

혹시나 하는 마음에 Server Character의 Mesh가 화면 전환과 같이 회전되는 현상은 자동으로 수정 되었는지 확인하였는데, 이는 여전하였습니다.

 

수요일에는 Trap에 MovementComponent를 적용해보고자 합니다.

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

20.04.23 개발일지  (0) 2020.04.23
20.04.22 개발일지  (0) 2020.04.22
20.04.18 개발일지  (0) 2020.04.18
20.04.16 개발일지  (0) 2020.04.16
20.04.15 개발일지  (0) 2020.04.15

오늘은 MovementComponent를 적용하다가 이슈를 해결하지 못해 일찍 마무리 했습니다.

 

Character에 지정 된 MovementComponent를 바꾸려면 FObjectInitializer를 Constructor에서 Parameter로 받고, Parent Constructor도 명시적으로 FObjectInitializer를 받는 것으로 선언해줘야 한다.

 

하지만 MoveComponent의 Constructor 부분에서 에러가 발생하였다.

 

왠만하면 직접 고치려 하였으나, 에러 메시지 후반부 절반이 깨져있었다.

 

아마 윈도우 언어가 한국어라 경로 쪽에서 깨진 것이 아닐까 싶은데, 가지고 있는 정보로만 원인을 찾으려 했지만 원인을 발견할 수 없었다.

 

그래서 Unreal AnswerHub에 질문을 올려놓았다.

 

주말동안 답이 없으면 다시 삽질을 해야 하는데 가능하면 답이 나왔으면 좋겠다.

 

마지막으로 이 글을 발견한 숙련된 프로그래머들이 혹시나 답을 올려 줄 수 있다는 기대를 가지며 질문 링크를 첨부한다.

 

https://answers.unrealengine.com/questions/955145/occur-fatal-error-1853-after-use-fobjectinitialize.html

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

20.04.22 개발일지  (0) 2020.04.22
20.04.20 개발일지  (0) 2020.04.20
20.04.16 개발일지  (0) 2020.04.16
20.04.15 개발일지  (0) 2020.04.15
20.04.13 개발일지  (0) 2020.04.13

+ Recent posts