내일 온라인 코딩 테스트가 있어 오늘 하루 알고리즘 위주로 공부합니다.

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

20.07.01 비개발일지  (0) 2020.07.01
20.06.23 비개발일지  (0) 2020.06.23
20.05.02 비개발일지  (0) 2020.05.02
20.04.25 비개발일지  (0) 2020.04.25
0701 리슨서버 골자 구축  (0) 2019.07.01

오늘은 Climb 상태에서 적절하게 재생되지 않는 Animation이 재생되도록 수정을 하였습니다.

 

이전에 새 구조를 구상 했는데 이미 구현된 구조랑 동일 했다고 한번 언급 했을 것입니다.

사실 두 구조에는 한가지 차이가 있습니다.

이미 구현된 구조체는 FullBodyMotion이 모두 하나의 FSM으로 구현되어 있습니다.

즉, 각 행동들은 State로 구분되고, Climb는 Conduit으로 구분되어 내부적으로 FSM을 다시 갖습니다.

하지만 새 구현체는 바로 Blend by IdleType으로 바로 Sub-FSM으로 구분됩니다.

이렇게 구현한 이유는 Climb는 Enter만 지나면 각자 다른 형태로라도 Idle 상태가 유지되기 때문입니다.

 

그래서 이전과 동일하지만, 조금 다른 구조를 적용하자 Enter Climb Animation이 작동하였습니다.

비록 아직은 Lower Enter만 확인했지만, 어차피 Upper 부분은

Ledge와 Enter/Exit 시 위치 보정을 해줘야 하기 때문에 당장 확인을 못합니다.

그러니 현재로써는 이정도가 성공적인 구현 수준인 것 같습니다.

 

여세를 몰아 Movement도 구현하였고, 이 또한 성공적으로 작동하였습니다.

Animation에 비해 이동 속도가 빠르지만, 이는 나중에 조절하면 됩니다.

 

다만 Exit 부분이 제대로 작동하지 않습니다.

조건문이 문제가 되는데 이 부분만 좀 더 노력해서 처리하면 그 다음은 다른 Climb Object들의 Animation.

그리고 Ledge 처리 하면서 Climb Enter/Exit Upper Side에서의 위치 보정을 하면 될 것 같습니다.

 

이 과정이 짧아도 2주는 걸릴 것 같고, 이게 되면 비로소야 Climb 기능이 완성이 됩니다.

그 뒤에는 Puzzle, Trap의 버그 수정 및 MultiPlay기능 적용, 그 뒤에는 Teleport Trap 개선과 VanishTrap 구현.

그리고 게임 편의성 및 더 그럴듯한 Character Movement 및 Animation 적용을 할 것입니다.

 

Climb 기능 완성을 6월 중으로 마무리 하고, Puzzle과 Trap쪽을 7월까지 마무리 하는 것이 목표입니다.

물론 그 전에 게임 회사에 입사하면 계획이 달라질것이지만.

 

이왕이면 언리얼이나 C++을 사용하는 회사에 입사를 했으면 합니다.

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

20.06.15 개발일지  (0) 2020.06.17
20.06.15 개발일지  (0) 2020.06.15
20.06.08 개발일지  (0) 2020.06.08
20.06.06 개발일지  (0) 2020.06.06
20.06.04 개발일지  (0) 2020.06.04

새로 구상한 FSM을 적용하려고 보았더니 이전에 적용했던 것과 완벽히 동일한 것이었습니다.

 

차이점이라면 Entry Point를 잘못 잡았다는 것...

 

테스트 해보면서 필요 없는 부분을 깎아 냈는데 여전히 원하는대로 움직이지는 않습니다.

 

Animation을 Loop 하지 않았음에도 정상적으로 작동하지 않는 것이 혼란스럽습니다.

 

내일은 Project Rebuild를 해보려 합니다.

 

그래도 안된다면 Enter Animation을 Montage로 적용해보려 합니다.

 

예전에 언리얼 커뮤니티의 한 분이 "Montage에 지원하는 기능이 많아 가능하면 Montage로 처리하는 것이 더 좋다."라고 했던 기억이 있는데, 이 부분에 대해 실제로 어떤지는 잘 모르겠습니다.

 

Montage를 쓰지 않아도 되는 곳에서도 Montage를 쓰는 편이 좋은지, 필요한 곳에서만 써야 하는 것인지.

 

Animation 부분은 유난히 깊이 있게 하는 사람이 적어 정보를 구하기 힘든 것 같습니다.

 

 

그리고 당분간 개발 시간이 줄어들 것 같습니다.

 

요일을 줄이는 것은 아니고, 개발 하는 날에 개발하는 시간을 조금만 줄일 예정입니다.

 

그 이유는 상반기 입사 지원을 했던 회사 중 한 곳에서 온라인 테스트를 보라는 메일을 받았기 때문입니다.

 

금주 일요일에 보는데, 아마 다른 회사들도 2주 내로 온라인 테스트를 보라는 메일이 올 것 같습니다.

 

이 때문에 본 프로젝트 개발 시간을 조금 줄이고 온라인 테스트 준비를 하려 합니다.

 

 

날이 더워서 개발 능률이 불과 일주일 전보다 절반 가량 떨어진 것 같습니다.

 

빨리 회사 붙어서 에어콘 빵빵한 곳에서 코딩하고 싶습니다.

https://redchiken.tistory.com/136

 

20.05.26 - 2015 ACM-ICPC 연습

https://www.acmicpc.net/contest/view/116 2015 ACM-ICPC 연습 www.acmicpc.net 오늘 늦잠 잘 정도로 컨디션도 안좋고, 오른쪽 손목이 좋지 않아서 조금만 하려고 했습니다. 하지만 막상 문제를 풀려니까 저번에..

redchiken.tistory.com

풀수 있는 문제는 다 풀었고 이 뒤로는 넘기려고 합니다.

 

해결법은 예측이 가는데 너무 오래 잡으니까 도저히 손이 가지를 않습니다.

 

앞으로는 이런 하나의 문제 세트를 풀 때는 한달 단위로 시간을 제한해야 할 것 같습니다.

 

못풀었던 문제 중 Party는 아직 마땅한 해결법을 찾지 못했습니다.

Dynamic Programming을 쓰면 어떻게 될 것 같은데 구조를 명확히 떠올리지 못했습니다.

 

Save the computer는 Dynamic Programming을 쓸 것도 없이, 반복적인 계산으로 해결이 될 것 같습니다.

다만 이 계산을 유추해내는 과정이 수학적으로 복잡한 연산을 취해줘야 합니다.

 

Scorched Earth는 일반적인 식 하나로는 유추가 되지를 않았습니다.

풍속이 없는 경우, 동일 고도에 있는 경우, 동일 위도에 있는 경우 등에 대해 모두 경우를 나누어서 생각해야 합니다.

그 결과 적절한 식을 구하기는 했으나, 이를 프로그래밍까지 할 기운이 남지 않았습니다.

 

Free Willy는 연습 문제 중 가장 어려운 문제였던 것 같습니다.

전형적인 Branch and Bound로, 제한 횟수보다 1 낮을 때에만 연산이 줄어드는 경우라 생각합니다.

이대로 구현을 한다면 정답은 구하겠지만, 제한 시간 내에 풀지는 의문입니다.

 

다음주에는 DP를 문제를 2개 정도 풀어보려 합니다.

문제는 역시 backjoon 사이트에서 구해올 것 같습니다.

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

20.06.14 Baekjoon - 피보나치 수 6  (0) 2020.06.14
20.06.10 개발일지  (0) 2020.06.10
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

3주 연속으로 일주일 중 유일하게 쉬는 날인 주말 일요일에 입사지원을 하느라 많이 지쳤습니다.

 

또한 오랫동안 고민한 이슈를 해결하였기에 하루 정도 휴가를 주고자 합니다.

 

체력도 보충하고 집중력도 충전하는 시간을 갖도록 하겠습니다.

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

20.06.15 개발일지  (0) 2020.06.15
20.06.11 개발일지  (0) 2020.06.11
20.06.06 개발일지  (0) 2020.06.06
20.06.04 개발일지  (0) 2020.06.04
20.06.03 개발일지  (0) 2020.06.03

이전 문제가 해결된 이후로 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

오늘도 이 문제 부분을 고치기 위해 이것저것 시도를 했고, 실패했습니다.

얻은 결과가 몇가지 있다면, MovingDirection이 Climb 상태에서 해제된 이후로도 변하지 않는다는 점.

이 값이 변해야 하는 부분의 다른 함수는 잘 작동하고 있다는 점입니다.

 

다음에는 

1. 프로젝트 rebuilding 해보기

2. 해당 함수가 실행되어야 할 부분에 로그를 찍어서 제대로 동작하는지 확인해보기

 

이정도 먼저 해보려 합니다.

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

20.06.08 개발일지  (0) 2020.06.08
20.06.06 개발일지  (0) 2020.06.06
20.06.03 개발일지  (0) 2020.06.03
20.06.01 개발일지  (0) 2020.06.01
20.05.30 개발일지  (0) 2020.05.30

3달정도 자르는 것을 미루던 머리를 깎느라 개발 시간이 조금 줄어들었습니다.

오늘은 Climb의 위와 아래에 다다라서 상태에 벗어난 이후 Animation이 재생되지 않는 문제를 체크해 보았습니다.

 

우선 문제를 조금 더 상세히 분류했습니다.

탈출 시 이동 키를 누르고 있으면 문제가 발생하는데, 그렇지 않으면 정상적으로 작동했습니다.

심지어 애니메이션도 정상 작동했습니다.

문제가 일어날 가능성이 있는 부분이 Overlap 함수에서 Movement 함수까지 넓어졌습니다.

 

Movement 함수를 살펴보니, Climb 상태에서 이동하는 동안에 MovementType이 계속 Climb로 덮어씌워지고 있었습니다.

이 부분을 제거해 보았더니, Climb 상태에서 이동 중 Climb Animation이 재생되지 않았습니다.

그래서 Animatiton에 Stand Idle만 있던 것을 여러 종류의 Idle 값에 따른 Animation을 붙여주었고,

그 결과 함수를 제거해도 Animation이 예전처럼 적용되었습니다.

애니메이션은 여전히 작동하지 않았습니다.

 

슬슬 Anim Instance에서도 문제가 있는건가 의심이 되기 시작했습니다.

갈피가 잘 안잡히는게 이번 달 안에 끝낼 수 있을지 의문이 들기 시작합니다.

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

20.06.06 개발일지  (0) 2020.06.06
20.06.04 개발일지  (0) 2020.06.04
20.06.01 개발일지  (0) 2020.06.01
20.05.30 개발일지  (0) 2020.05.30
20.05.28 개발일지  (0) 2020.05.28

https://redchiken.tistory.com/136

 

20.05.26 - 2015 ACM-ICPC 연습

https://www.acmicpc.net/contest/view/116 2015 ACM-ICPC 연습 www.acmicpc.net 오늘 늦잠 잘 정도로 컨디션도 안좋고, 오른쪽 손목이 좋지 않아서 조금만 하려고 했습니다. 하지만 막상 문제를 풀려니까 저번에..

redchiken.tistory.com

저번주에 링크와 더불어 문제 해석을 해놓았기에 이전 글 링크로 대체합니다.

오늘은 Fridge of Your Dream 문제를 풀고, Scortched World 문제를 해결하다가 멈추었습니다.

 

Fridge of Your Dream은 이전에 생각해 놓았던대로 문제를 해결하니까 매우 쉽게 해결이 되었습니다.

그만큼 매우 쉬운 문제였구요.

 

하지만 Scortched World는 생각해 놓은 식대로 풀이가 되지 않았습니다.

적을 맞추는 궤적은 두가지가 있습니다. 종달속도에 도달하기 전에 맞추는 것과, 그 뒤에 맞추는 것.

하지만 막상 발사하기 전에는 이것이 어떻게 될지 모릅니다.

그러다 보니 종달높이를 이용해 식을 분할하는 방식을 채택할 경우, 같은 작업을 반복해야 합니다.

결국 사용할 수 있는 식이 한정되 버리게 되었습니다.

V를 구해야 하는데 그 와중에 도달 시간 T가 필요합니다.

이 과정에서 식이 매우 복잡해집니다.

 

우선은 다음주에는 이 문제를 좀 더 시도 했다가, 아니다 싶으면 다른 문제를 풀어보려 합니다.

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

20.06.10 개발일지  (0) 2020.06.10
20.06.09 - 2015 ACM-ICPC 연습  (0) 2020.06.09
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

늦잠 + 입사지원 겹쳐서 개발을 늦게 시작했지만, 의외로 집중이 잘 되어서 이것저것 잘 한 것 같습니다.

 

오늘은 Climb 중 위아래로 이동 중 갑자기 Climb 상태가 해제되는 현상을 수정했습니다.

정확히는 수정 당했습니다.

문제 상황을 좀 더 명확하게 체크하기 위해 로그를 좀 더 찍어보았습니다.

그 결과 이동 중 갑자기 TriggerEndOverlap 이벤트가 발생하면서 문제가 발생하는 것을 확인했습니다.

이게 조건으로 걸러질수 있는가 하면, Climb의 맨 위와 아래에서 동일한 이벤트로 탈출하기에 불가능합니다.

 

그러다가 Climb의 Component를 Actor 크기와 최대한 비슷하게 맞춰보았더니 문제가 해결되었습니다.

다만 이 상황이 이해가 되지 않는게, 이벤트 발생 조건이 Component가 아니라 Actor입니다.

프로젝트에서 포괄적으로 사용하는 THActorBase에 Component가 있긴 하지만, Climb에는 사용되지 않습니다.

그래서 좀 기묘하고  해결 당했다는 것입니다.

 

이 뒤로는 Climb 위와 아래에 다다라서 상태가 해제된 이후에
Locomotion Animation이 재생되지 않는 현상을 수정해보려 했습니다.

이것도 기묘한 것이, 동일한 함수가 호출되는 Jump나 Re-Interaction에 의한 상태 해제 시에는 정상 작동합니다.

하지만 EndOverlap에 의한 것들만 작동하지 않습니다.

이 함수들을 Enter/ExitClimb로 묶어서 선언해도 마찬가지입니다.

아무래도 뭔가 다른 문제가 있는 것 같습니다.

이 문제가 Client에서만 발생한 것으로 보아 통신 쪽 문제라 생각됩니다.

다음에도 이 부분을 중점적으로 고쳐보고자 합니다.

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

20.06.04 개발일지  (0) 2020.06.04
20.06.03 개발일지  (0) 2020.06.03
20.05.30 개발일지  (0) 2020.05.30
20.05.28 개발일지  (0) 2020.05.28
20.05.27 개발일지  (0) 2020.05.27

+ Recent posts