오늘은 Spawn Trap을 개발하고, 다른 Trap들의 기본까지 만들었습니다.

 

남은 Trap은 Spawn, Fire, Floor Down이었습니다.

 

Spawn은 당연히 범위 안에 캐릭터가 들어올 시 Spawn이 되는 함정입니다.

 

Fire은 범위 안에 캐릭터가 들어오면 탄환이 발사 되는 함정입니다.

 

Floor Down은 범위 안에 캐릭터가 들어오면 바닥이 사라지는 함정입니다.

 

이들의 공통점은 어떠한 Actor를 생성해야 한다는 점입니다.

 

Spawn은 캐릭터를, Fire는 여러 개의 Actor를, Floor Down은 Geometry brush actor를 생성해야 합니다.

 

그래서 SpawnTrapBase를 만들어, 이를 implement하는 SpawnTrapExample을 만들었습니다.

 

이후 ThrowableBase라는 투사체 담당 클래스를 만들고, BulletExample이라는 예시 탄환을 만든 뒤, FireTrapExample와 collision이 발생하면 이를 발사 할 계획입니다. 

 

조금 정리만 된다면 FireTrap은 금방 구현이 될것입니다.

 

문제는 Floor Down입니다.

 

현재 Geometry brush를 런타임 중 Actor BP 안에서 Spawn 하는 방법을 찾지 못하였습니다.

 

이 방법을 찾지 못한다면, 아마 이 함정 자체를 구현하지 못할 수 있습니다.

 

내일은 Fire Trap을 정리하고 이 부분에 대해 더 알아보고자 합니다.

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

20.02.29 개발일지  (0) 2020.02.29
20.02.27 개발일지  (0) 2020.02.27
20.02.24 개발일지  (0) 2020.02.24
20.02.22 개발일지  (0) 2020.02.22
20.02.20 개발일지  (0) 2020.02.20

오늘은 특정 범위 안에 들어가면 다른 곳으로 캐릭터를 전이시키는 Teleport Trap을 개발하였습니다.

 

제가 11시에 개발일지 쓰는 것을 알람 맞춰 놓고 하는데 오늘은 조금 늦었습니다.

 

그 이유는 머리속에서 Teleport Trap을 구현하는 방법이 몇가지 생각이 나서 이것을 하나하나 다 해보느라 늦었습니다.

 

지치네요..

 

결국에는 ActorBase를 상속받은 TeleportTrapBase를 만들고, 이의 하위 Blueprint인 BP_TeleportNodeExample을 만들었습니다.

 

그리고 ActorBase를 상속받은 하위 Blueprit인 BP_TeleportTrapExample에서 두 개의 TeleportTrapBase를 Spawn하면서 위치를 잡아주고 있습니다.

 

BP_TeleportTrapExample을 ActorBase의 하위 클래스로 둔 이유는 혹시나 발생할 다형성을 위해서입니다.

 

개발하고 몇가지 아쉬운 점을 느꼈습니다.

 

첫번째는 확장성이 부족한 점. 여러 텔레포트 노드가 존재 할 때에는 완전히 새로운 클래스를 다시 만들어야 합니다.

 

이를 처음부터 여러개의 노드를 관리할 수 있도록 하면 좋지 않을까 싶습니다.

 

두번째는 이름 선정이 잘못 된 점. Node의 상위 클래스가 Trap이 되어버렸습니다.

 

이런 점들은 이슈에 추가를 해놓고 일정이 빨리 끝난다면 리팩토링 전에, 그렇지 않다면 리팩토링 과정 중에 수정을 하고자 합니다.

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

20.02.27 개발일지  (0) 2020.02.27
20.02.26 개발일지  (0) 2020.02.26
20.02.22 개발일지  (0) 2020.02.22
20.02.20 개발일지  (0) 2020.02.20
20.02.19 개발일지  (0) 2020.02.19

생각보다 blocktrap 개발이 더뎌서 슬픕니다.

 

금방 할 줄 알았는데 계속 인지하지 못한 무언가가 꼬인 느낌을 받으며 엉키고 엉켰습니다.

 

그래도 결국 해냈습니다.

 

우선 범위 안에 들어가면 트리거가 올라갑니다.

 

이 트리거는 Tick에서 체크를 하다가 값이 올라가는 순간 특정 조건이 만족할 때까지 벽이 위로 올라가게 됩니다.

 

이 간단한걸 이틀에서야 구현을 했다니...

 

다음주 월요일에는 Teleport Trap과 Spawn Trap을 먼저 개발하고자 합니다.

 

일주일에 4일 개발하는데 다음주 토요일까지 하루에 1개씩 개발해서 다음주 내로 모든 함정을 개발 완료했으면 합니다.

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

20.02.26 개발일지  (0) 2020.02.26
20.02.24 개발일지  (0) 2020.02.24
20.02.20 개발일지  (0) 2020.02.20
20.02.19 개발일지  (0) 2020.02.19
20.02.17 개발일지  (0) 2020.02.17

오늘부터 함정과 퍼즐을 개발 시작했습니다.

 

그 중 함정을 먼저 개발 중입니다.

 

오늘은 범위 내에 캐릭터가 들어올 시 벽이 생성되는 함정을 개발 하였습니다.

 

벽이 올라오는 부분에서 TimeDelta를 써보고 싶은데 이 부분이 조금 엉켜서 개발을 하다가 일시적으로 마무리 했습니다.

 

개발하기로 한 함정이 6개, 퍼즐이 5개인데 한 5주 정도 개발 일정을 잡은데다 일주일 먼저 시작하다보니까 일주일에 2개 꼴로 개발 하면 시간이 딱 맞더군요.

 

이 생각을 하니까 왠지 좀 풀어진 느낌입니다.

 

가능하면 하루에 1개씩 개발하고, 리팩토링 시간을 더 땡길 수 있도록 하겠습니다.

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

20.02.24 개발일지  (0) 2020.02.24
20.02.22 개발일지  (0) 2020.02.22
20.02.19 개발일지  (0) 2020.02.19
20.02.17 개발일지  (0) 2020.02.17
20.02.15 개발일지  (0) 2020.02.15

사다리 타는 기능에서 트리거 값을 체크하던 도중 한 가지 놓치고 있던 현상을 발견했습니다.

 

클라이언트에서도 상호작용 키를 누르고 있으면 replicated 되지는 않지만 사다리를 타는 것이 가능했습니다.

 

정확히는 트리거 중 MovementMode가 상호작용 중일 때에만 사다리를 타고 올라갈 수 있었습니다.

 

로그로 추측컨데 현재 등반 오브젝트의 collision area에 의한 문제라 예상됩니다.

 

현재의 등반 오브젝트는 bottom, top, middle area로 나뉘어져 있습니다.

 

각 area에 닿을 때마다 EnterDirection이 바뀌고, 사다리에서 내릴 때 ExitDirection이 바뀝니다.

 

그리고 사다리를 타기 위해서는 위 아래로 움직여야 하는데 일반 MovementMode에서는 이것이 불가능합니다.

 

때문에 각 area에 대해 Enter 할 때마다 MovementMode를 Flying으로, Exit 할 때마다 Walk로 변경을 합니다.

 

문제는 여기서 발생합니다.

 

캐릭터가 사다리에 탈 때 bottom area와 middle area에 동시에 collision 하면서 Enter과 Exit이 각각 2번, 1번 발생합니다.

 

아마 여기서 두번째 Enter가 Exit보다 먼저 일어나서 문제가 발생하는 것으로 예상됩니다.

 

여기서 이 작업을 그만둬야겠다는 생각을 굳혔습니다.

 

문제를 해결하고 가기에는 너무 난잡하였습니다.

 

각 area들이 동시에 collision 하지 않게 하면서 exit 조건을 변경해야 했습니다.

 

조건 변경은 넘어가더라도 area 배치는 상당히 손이 가고 반복적인 작업이라 계속 진행 하는 것은 낭비라고 생각되었습니다.

 

조금 이르지만, 우선 작업한 부분들을 PR 처리하고 다음 작업으로 넘어가고자 합니다.

 

새로 개발하는 등반 오브젝트는 예전에 적었던대로 Character에 collision area를 두고 MovementMode를 이용해 사다리 이벤트를 적용 할 예정입니다.

 

이에 따라 Ledge 기능 구현이 불가피하기에 Ledge 기능도 구현을 하고자 합니다.

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

20.02.22 개발일지  (0) 2020.02.22
20.02.20 개발일지  (0) 2020.02.20
20.02.17 개발일지  (0) 2020.02.17
20.02.15 개발일지  (0) 2020.02.15
20.02.13 개발일지  (0) 2020.02.13

오늘은 평소보다 일찍 개발을 했으나 아무것도 개발을 하지 못했습니다.

 

사다리 타는 기능이 제대로 되지 않은 원인을 찾던 도중 몇몇 변수들이 replicated 되지 않는 것을 발견하였습니다.

 

하지만 이를 고쳤음에도 문제는 해결되지 않았습니다.

 

그나마 발견한 점은 

 

1. 사다리 타는 기능이 서버에서는 정상 작동이 되나, 클라이언트에서는 작동되지 않는다.

 

2. 사다리 타고 올라가는데 필요한 트리거를 변경하는 함수 내부에서는 값이 변화가 있다. 하지만 그 함수를 호출하는 함수 내부에서는 값이 변하지 않는다.

 

이 두가지입니다.

 

1번도 결국 2번에서 파생된 문제 같습니다.

 

테스트 할 때 클라이언트를 2개를 생성하는데, 하나는 값이 정상적으로 변하고 다른 하나는 값이 정상적으로 변하지 않습니다.

 

정확한 것은 아니지만, 느낌상 Host 로그에서는 값이 변하고, 클라이언트 로그에서는 값이 변하지 않는 것 아닐까 싶습니다.

 

결국 2번 문제를 해결해야 하는데, 제가 여태까지 해왔고 잘 작동해 왔던 방식대로 replicated variable을 처리 했는데 문제가 생겨 해결 방안이 감도 안잡힙니다.

 

게다가 Unreal Answer Hub가 한동안 열릴 것 같지도 않고.

 

마일스톤까지 개발을 해보겠지만 그 안에 해결이 되지 않는다면 사다리 타는 기능을 제거하거나 일시적으로 마무리 하고 다른 작업으로 넘어갈 것 같습니다.

 

마일스톤을 지키지 못했을 때 작업을 고수 하는 것이 옳은지, 다음 마일스톤으로 옮기는게 옳은지 잘 모르겠습니다.

 

다만 사다리 타는 기능이 한번 refactoring을 결정 했던 만큼 계속 잡는 것은 그리 좋지 못하다고 판단하여 다음 작업으로 넘어가고자 합니다.

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

20.02.20 개발일지  (0) 2020.02.20
20.02.19 개발일지  (0) 2020.02.19
20.02.15 개발일지  (0) 2020.02.15
20.02.13 개발일지  (0) 2020.02.13
20.02.12 개발일지  (0) 2020.02.12

오늘은 사다리 타기 기능을 조금 만져보다가 쓰러지려 합니다.

 

컨디션이 안좋은지 아침에도 1시간도 아니고 2시간이나 넘게 늦잠을 자고

 

운동 하고 나서도 몇 시간을 쓰러져 있다가 겨우 키보드를 붙잡고 몇 시간 끄적였습니다.

 

캐릭터의 MovementBase를 Walk에서 Flying으로 바꾸면 된다는 글을 보고 이를 적용해 보았으나 다른 곳에서 문제가 발생했습니다.

 

벽에 매달려 있는 도중에 작동해야 할 MovementType 트리거가 작동하지 않네요.

 

이 때문에 이동 애니메이션도 재생이 안되고 있습니다.

 

이동 자체는 이랑 관계 없지 않을까 싶으면서도 혹시 몰라서 이 부분에서 멈추었습니다.

 

마일스톤이 일주일 남았는데 막판에 이렇게 큰 문제가 있을 줄은 몰랐네요.

 

여태까지처럼 최대한 빠르게 문제를 해결했으면 합니다.

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

20.02.19 개발일지  (0) 2020.02.19
20.02.17 개발일지  (0) 2020.02.17
20.02.13 개발일지  (0) 2020.02.13
20.02.12 개발일지  (0) 2020.02.12
20.02.10 개발일지  (0) 2020.02.10

오늘은 어제 개발하다가 고치지 못했던 등반 기능의 버그를 구현하였습니다.

 

오늘도 이벤트에 의한 트리거들의 값의 변화가 너무 복잡하여 처음부터 다시 정리를 하였습니다.

 

몇 가지 중간 트리거를 두었더니 대부분의 문제들이 해결되었습니다.

 

지금은 매달린 채로 위 아래로 이동을 하지 않은 문제를 해결해야 합니다.

 

이 부분만 해결이 되면 필요한 것은 모두 해결 된 샘입니다.

 

그리고 함정과 퍼즐 종류를 결정하였습니다.

 

함정은 범위 안에 들어갔을 때 길목을 막는 함정, 몬스터를 소환하는 함정, 특정 위치로 이동시키는 함정, 탄환을 발사하는 함정, 바닥이 꺼지는 함정, 위에서 물체를 떨어뜨리는 함정 등이 있습니다.

 

퍼즐은 오브젝트를 1개 혹은 여러개를 순서대로 부수는 퍼즐, 홈에 넣는 퍼즐, 소환된 몬스터를 쓰러트려야 하는 퍼즐을 기획했습니다.

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

20.02.17 개발일지  (0) 2020.02.17
20.02.15 개발일지  (0) 2020.02.15
20.02.12 개발일지  (0) 2020.02.12
20.02.10 개발일지  (0) 2020.02.10
20.02.08 개발일지  (0) 2020.02.08

오늘은 어제 만들었던 Climb Object의 기능 구현 여부를 확인하고 이를 수정하였습니다.

기능은 예상대로 제대로 동작하지 않았습니다.

처음에는 한 두줄 조금씩 수정을 했는데 점점 수정해야 할 부분이 많아지면서 뇌정지가 왔습니다.

그래서 숨좀 돌리고 종이에 이벤트와 변수별 발생 이벤트, 값의 변화를 한번 정리를 하고 기능을 새로 구현하였습니다.

그러자 대략적인 가닥이 잡히기 시작했습니다.

 

현재 발견되는 문제는 2가지입니다.

첫째. 범위 내에 들어간 캐릭터의 트리거 값이 제대로 변하지 않는다.

둘째. 호출 되어야 할 함수가 호출되지 않고 다른 함수가 호출된다.

셋째. 벽을 한번 탔다가 내려오면 애니메이션이 정지한다.

넷째. 벽에 매달리는 동안 위로 이동하지 않는다.

 

이 4가지를 해결하면 기능 구현이 완료가 될 것 같습니다.

원래는 더 오래 하려 했는데 요즘 컨디션이 매우 안좋기도 하고. 

취업 준비 하면서 한번씩 이유 없이 멘탈이 나가는데 오늘 그 시기도 겹쳐 일찍 마무리 하였습니다.

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

20.02.15 개발일지  (0) 2020.02.15
20.02.13 개발일지  (0) 2020.02.13
20.02.10 개발일지  (0) 2020.02.10
20.02.08 개발일지  (0) 2020.02.08
20.02.06 개발일지  (0) 2020.02.06

오늘은 등만이 가능한 Actor들의 최상위 C++클래스인 THClimbBase와

현재 구현이 가능한 Rope와 Ladder의 C++ 상위 클래스인 THRopeBase, THLadderBase를 작성했습니다.

"작성"이라 한 이유는 아직 기능이 구현 됨을 확인하지 못했기 때문에...

 

그저께부터 시작한 오버워치 리그 때문에 생활 패턴이 좀 꼬였는데 이 때문에 오늘 체력이 많이 부족해 개발 시간이 적었습니다.

그래도 개발 양은 크게 차이가 없는 것 같습니다.

시간 부족하니까 양 채우려고 집중 해서 그런가...

이것 외에 평소와의 차이점이 한가지 더 있습니다.

바로 개발하면서 구조 개선이 되었다는 점입니다.

처음부터 좋은 구조를 바로 생각해 냈으면 더 좋았겠습니다만,

이전에는 하루 개발을 다 하고 자기 전에 개선된 구조가 생각이 났다면 오늘은 개발을 하고 잠깐 숨을 돌릴 때 개선된 구조가 생각이 났습니다.

 

구체적으로는 Character와 THClimbBase와의 Collision 시 필요한 트리거들과 이벤트 할당에 관한 것입니다.

처음 생각 했을 때에는 이 모든 것들을 THClimbBase에서 처리하도록 했습니다.

이벤트는 당연히 이 Actor 안에서 처리하고, 처리 과정에서 Character를 받아야 하니 트리거도 Actor 안에서 처리했습니다.

그런데 이를 개발하면서 트리거들 중 동일한 부분이 반복되었습니다.

그래서 이 부분을 함수로 묶었는데, 묶인 함수에서 선언하는 함수가 모두 Character의 함수들이었습니다.

게다가 원래 외부로 공개되지 않은 변수에 대한 Setter들을 선언해야 했습니다.

결국 트리거 처리를 Character에서 해주었습니다.

이 뒤로는 손쉽게 정리가 되었습니다.

상황 별로 차이가 나는 트리거 값들은 두가지로 나뉘었습니다.

현재 캐릭터가 처한 상황을 나타내거나, 캐릭터가 collision을 하는 Actor를 가르키거나.

전자는 파라미터로 Actor 안에서 넘겨주었고, 후자는 THClimbBase를 상속 받는 THRopeBase와 THLadderBase에서 Character의 트리거 처리를 wrapping하는 함수를 override한 뒤 해당 설정을 추가했습니다.

 

Unreal을 쓰면서 정말 간만에 기존에 알던 구조로의 개발을 고민하고 적용해본 것 같습니다.

이 뒤로는 각 Base Actor를 상속받는 BP Example들을 만든 뒤 맵에 추가했습니다.

다만 컴파일 에러가 없을 뿐 기능 확인은 아직 못한 상태입니다.

수요일, 목요일동안 이 부분을 처리해 구현을 할 예정입니다.

 

 

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

20.02.13 개발일지  (0) 2020.02.13
20.02.12 개발일지  (0) 2020.02.12
20.02.08 개발일지  (0) 2020.02.08
20.02.06 개발일지  (0) 2020.02.06
20.02.05 개발일지  (0) 2020.02.05

+ Recent posts