14일에 발견했던 Multiplay 상에서의 Climb 기능 문제를 오늘에서야 해결했습니다.

 

그것도 너무나도 당연한 것을 확인하지 않고 말입니다.

 

문제 현상은 Climb 시 Client의 Character는 움직이지 않는 것이었습니다.

 

확인한 원인은 Character에 Attach 되어있는 MovementComponent가 가진 변수 MovementMode가 Interaction 시 값이 변했다가 몇 tick만에 원상복귀 되기 때문입니다.

 

처음에는 구현 방식을 살펴보고, 그 다음에는 통신 문제. 마지막으로 내부 구현상의 문제로 예상하고 살펴보았으나 별 다른 효과를 얻지 못했습니다.

 

그러던 중, 23일에 RPC 함수로 한번 묶어볼까 싶은 아이디어를 떠올렸습니다.

 

그리고 오늘, 구현 결과 기능이 작동하였습니다.

 

생각해보면 너무나도 당연한 것이었습니다.

 

Multiplay 상에서 Character가 움직이는 방식은 현재 두가지입니다.

 

하나는 유저가 조작 권한을 가지고 있는 Controller가 Character에 Possess 하여 직접 움직이는 것.

 

다른 하나는 다른 Client가 조작하는 Character의 트리거가 RPC를 통해 Replicated 되어 그 유저의 조작에 따라 동일하게 움직이는 것.

 

즉, Character는 각 Client에게 별도로 선언이 되어 있다는 것입니다.

 

이는 MovementComponent 또한 Client별로 하나씩 따로 존재한다는 것을 의미합니다.

 

때문에 정상적으로 움직이려면 모든 Client에서 동일한 Character의 움직임이 공유되어야 하고, 이는 RPC를 이용해야 한다는 것을 의미합니다.

 

MovementComponent라는 낯선 Component의 사용. 그리고 RPC 구조와 목적의 망각이 2주 가까운 시간의 낭비를 야기했습니다.

 

그리고 기능은 작동하지만, 완벽한 것은 아닙니다.

 

Client에서 Climb 할 때, Trigger 조작이 처음 1회 때 씹힙니다.

 

무슨 말인가 하면, Trigger 값이 처음 1회 때에는 변하지 않고, 그 뒤로는 정상적으로 들어갑니다.

 

결과적으로 기능이 동작은 하지만, Trigger를 로그로 찍어보면 값이 반대로 움직이고 있다는 것입니다.

 

오랫동안 고민한 문제가 어이 없게 풀리면서 긴장도 풀리고, 컨디션도 급격히 안좋아졌습니다.

 

이것 저것 시도를 해보았으나 유의미한 결과를 얻지 못하였고, 이 문제 해결은 수요일로 보류하겠습니다.

 

이전 3일 정도 적었던 이슈들은 평소에 이슈를 관리하던 GitKraken Board롤 옮겼습니다.

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

20.05.28 개발일지  (0) 2020.05.28
20.05.27 개발일지  (0) 2020.05.27
20.05.23 개발일지  (2) 2020.05.23
20.05.21 개발일지  (0) 2020.05.21
20.05.20 개발일지  (0) 2020.05.20

EnableInput can only be specified on a PlayerController for itself 에러 발생.

한번 사라졌다가 rebuild 한 후 다시 발생.

시도해볼 해결 방안 링크를 첨부한다.

https://stackoverflow.com/questions/59857336/how-to-fix-enableinput-can-only-be-specified-on-a-pawn-for-its-controller-erro

 

How to fix "EnableInput can only be specified on a Pawn for its Controller" error in output log

I'm creating a weapon system for my third person shooter project and I'm having some problems getting input to the gun. With the way I have set up my classes, I have ACharacter parented player cla...

stackoverflow.com

Client에서 Interaction시 MovementMode가 변경 되었다가 다시 원상복귀 됨.

MovementComponent 내에 MovementMode가 호출되는 함수를 탐색해 보았다.

MovementMode
  DefaultLandMovementMode
    SetDefaultMovementMode
      Character::PostInitializeComponent
        - Controller is False, so SetDefautlMovementMode called
  GroundMovementMode
    SetGroundMovementMode
    ApplyNetworkMovementMode
  SetMovementMode
    SetDefaultMovementMode
    SetGroundMovementMode

OnMovementModeChanged
  SetMovementMode
  Character::OnMovementModeChanged

그 결과 Character의 PostInitializeComponent에서 Controller가 없을 경우, MovementComponent::SetDefaultMovementMode가 호출이 된다.

이 함수 내부에는 GameMode를 MOVE_Walk로 초기화 하는 구문이 있다.

 

이것이 원인이라면 Character를 찾지 못했다는 warning과 문제가 하나로 합쳐진다.

하지만 Interaction시 한번 수정되었다가 몇 tick 이후 원상복귀 된다는 점에서 이 부분이 문제라 하기에는 애매하다.

 

그래서 MovementComponent의 OnMovementModeChanged를 탐색해보았다. 

로그에서 Override 한 OnMovementModeChanged 함수의 로그가 찍혀있었기 때문이다.

하지만 이렇다 할 원인을 찾지 못했다.

 

현재 여기까지 탐색을 함.

다음 시도는 "Character에서 MovementComponent가 가지고 있는 MovementMode의 RPC Function 구현"입니다.

 

"ProcessRemoteFunction: No owning connection for actor THCharacterBP_Sample_C_0" Warning 발생

Controller와 Character가 연결되지 않아서 발생했다.

단순 네트워크 문제라는 것도 있고, Possess를 하라는 글도 있다.

이에 대해 그나마 가장 자세한 문서를 첨부한다.

https://dawnarc.com/2017/09/ue4no-owning-connection-for-actor-xxx.-function-xxx-will-not-be-processed/

 

[UE4]No owning connection for actor XXX. Function XXX will not be processed

keywords:UE4, Dedicated Server, Replication Issue Client execute a server function failed: LogNet: Warning: UIpNetDriver::ProcesRemoteFunction: No owning connection for actor TopDownCharacter_C_0. Function ServerMoveToDest will not be processed. Cause: B

dawnarc.com

우선 Possess를 따로 어떻게 해줘야 하는지를 잘 모르겠다.

그 부분을 먼저 고민해야 할 것 같다.

 

만약 Listen Server라서 발생하는 문제 중 하나라면 Climb 관련 기능들을 모두 Dedicate Server 구현 이후로 미뤄야 한다.

하지만 다른 Animation에서는 이런 문제가 발생하지 않는 것으로 보아 이런 가능성은 매우 낮다고 생각한다.

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

20.05.27 개발일지  (0) 2020.05.27
20.05.25 개발일지  (0) 2020.05.25
20.05.21 개발일지  (0) 2020.05.21
20.05.20 개발일지  (0) 2020.05.20
20.05.18 개발일지  (0) 2020.05.18

해결해야 할 부분

  • 멀티플레이 시 Character를 찾지 못한다는 warning
    • 결국에는 Client에서 Controller가 Character를 찾지 못해서 생기는 문제.
      • Player Start Point가 하나였던걸로 기억하는데 이걸 여러개로 늘려서 테스트 해보려 한다.
    • Editor 테스트 뿐만 아니라 제대로 실행 시켰을 때도 같은 문제가 발생함.
  • Client에서 Interaction시 MovementMode가 변경 되었다가 몇 tick 후 원상복귀 됨
    • MovementMode를 write 하는 부분을 지워보았으나 여전히 값이 원상복귀됨.
    • 로직 상 문제라기 보다는 원래 구현상 있는 기능 중 무언가를 놓친 것 같다.
    • MovementComponent 코드를 읽어보면서 예상되는 부분을 찾아보자.
      • defaultground 어쩌고 부분에서 초기화가 될 수도 있을 것 같다. 
      • 하지만 정확한 것은 아니니 좀 더 정리를 해보자.

 

진도가 정말 느립니다.

posses 관련해서 찾아봤는데 명확한 해결 방법이 보이지 않습니다.

시간이 정말정말 오래 걸릴 것 같습니다.

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

20.05.25 개발일지  (0) 2020.05.25
20.05.23 개발일지  (2) 2020.05.23
20.05.20 개발일지  (0) 2020.05.20
20.05.18 개발일지  (0) 2020.05.18
20.05.16 개발일지  (0) 2020.05.16

오늘은 저번에 작성했던대로 Character의 Tick에 있던 정지 시 달리기 속도 초기화를 하는 작업을 MovementComponent의 OnMovementUpdated로 옮겼습니다.

처음에는 Character에 선언된 변수를 접근할 방법이 없어서 이 작업이 불가능 한줄 알았습니다.

하지만 MovementComponent의 MovementMode 값이 변하는 문제를 해결하기 위해 코드를 뜯어보다가 MovementComponent가 OwningCharacter라는 변수를 가지고 있는 것을 확인했습니다.

테스트 해 본 결과, MovementComponent가 Attach한 Character 객체였습니다.

이를 통해 Character가 선언한 변수나 함수에 접근이 가능해졌고,

OnMovementStop 함수를 선언해 기능을 이전했습니다.

 

이 외에는 크게 문제 해결을 하지 못했습니다.

길어도 일주일이면 갈피를 찾을 줄 알았는데 생각보다 정리가 잘 되지 않습니다.

그래서 당분간 우선적으로 수정 할 문제들과 시도한 것, 시도할 것을 개발일지로 적으려 합니다.

문젲가 모두 해결될 때까지 누적으로 위 사항들을 작성해나가겠습니다.

 

해결해야 할 부분

  • 멀티플레이 시 Character를 찾지 못한다는 warning
  • Client에서 Interaction시 MovementMode가 변경 되었다가 몇 tick 후 원상복귀 됨
    • MovementMode를 write 하는 부분을 지워보았으나 여전히 값이 원상복귀됨.
    • 로직 상 문제라기 보다는 원래 구현상 있는 기능 중 무언가를 놓친 것 같다.
    • MovementComponent 코드를 읽어보면서 예상되는 부분을 찾아보자.

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

20.05.23 개발일지  (2) 2020.05.23
20.05.21 개발일지  (0) 2020.05.21
20.05.18 개발일지  (0) 2020.05.18
20.05.16 개발일지  (0) 2020.05.16
20.05.14 개발일지  (0) 2020.05.14

몇 주간의 개발 진행 기간을 거쳐 일주일간 발버둥 쳤으나 결국 정체기가 왔습니다.

 

오늘은 Multiplay 시작 시 발생하는 warning과 Climb 아무때나 시도되는 현상 수정,

그리고 Multiplay 상에서의 Climb를 살펴보았습니다.

 

우선 warning부분입니다.

로그를 자세히 보니, 상단에 Error가 발생하였습니다.

LogPlayerController: Error: EnableInput can only be specified on a PlayerController for itself 

이런 오류인데, EnableInput 호출 시 발생하는 문제입니다.

어디선가 무언가가 꼬인 것이라는 느낌이 있는데 아직 해결할 겨를이 안나기도 하고,

테스트에 문제가 없다고 판단하여 우선은 보류하고자 합니다.

 

Climb 문제는 Interaction 조건이 MovementMode로만 판단이 되고 있어서

실제로 벽이 있는지 없는지는 상관 없이 벽타기가 가능했습니다.

이를 해결하면서, 점프 중에 Climb가 되지 않는 현상도 수정했습니다.

 

마지막으로 Multiplay 중 Client의 Climb가 불가능한 현상입니다.

결론적으로 MovementType은 코드가 일부 누락이 되어 이를 추가해 수정하였지만.

MovementMode는 상호작용 시 값이 변했음에도 그 직후 값이 원상복귀가 되고 있습니다.

만약 Replicated라면 편안하게 RPC 함수를 만들었을테지만, 그렇지도 않아 해결방안에 고민이 듭니다.

 

다음에는 우선 Character의 Tick에 구현되어 있는 속도 조절 코드를 제거할 생각입니다.

MovementComponent에 OnMovementUpdate 함수에 추가를 해보고자 합니다.

그 이후에는 군데군데 건드려보면서 Multiplay상에서 Client의 Climb가 가능하도록 할 예정입니다.

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

20.05.21 개발일지  (0) 2020.05.21
20.05.20 개발일지  (0) 2020.05.20
20.05.16 개발일지  (0) 2020.05.16
20.05.14 개발일지  (0) 2020.05.14
20.05.13 개발일지  (0) 2020.05.13

Climbing 관련 기능이 점점 더 미궁에 빠져들고 있습니다.

 

우선 영상 촬영을 위해 Character의 Layered Motion 부분을 먼저 수정하였습니다.

역시 예상대로 Montage 변수명을 수정하면서 BP에서 연결이 끊겨 있었습니다.

이 부분을 연결해주자 대체로 잘 돌아갔습니다.

 

다만 Melee Attack 부분에 Print Log로 인한 crash가 발생하여 Print Log를 삭제하였습니다.

요즘들어 이런 문제가 자주 발생합니다.

Print Log에서 잘못된 메모리를 건드려 Crash가 나거나, 

잘 실행 되다가 Crash가 나는데 제가 작성한 코드 부분에서 발생하지 않았거나.

디버그를 할 수가 없어 상당히 난감합니다.

 

두번째로 Climb 부분의 Animation Trigger 변경을 위해 우선 Rope 부분만 변경을 해보았습니다.

하지만 정상적으로 작동하지 않았습니다.

게다가 Multiplay 테스트를 하면서 Host 쪽 Character를 움직일 때마다 warning이 발생하였습니다.

그 warning이 Climb Animation과 관련이 있는지 없는지 확인이 되지 않았습니다.

 

버그도 몇가지 발견했습니다.

첫번째로, Client를 두개 이상 띄울 때, 간혹 Session은 탐색은 했으나 Inactive 되어 접속을 못하는 현상을 발견했습니다.

또한 BlockTrap에 Character가 들락날락 하는 것만으로 벽이 움직이는 현상도 발견했습니다.

 

오늘 너무 심란하고 힘들었습니다.

문제가 해결되지 않을 뿐더러 정리도 잘 안되고, 그 때문에 진행도 더뎌지고 의욕을 많이 잃었습니다.

무엇보다 동기 부여가 많이 약해진것을 느꼈습니다.

그래서 당장 마무리 할 수 있는 기능들을 우선적으로 마무리를 하고, 영상을 촬영하여 포트폴리오에 추가했습니다.

 

내일은 개발을 집중적으로 하기 보다는 천천히 정리를 해보는 시간을 가지려 합니다.

무언가 해결이 되면 좋지만, 그렇지 못하다고 해서 스트레스를 받았다가는 이후 일에 더 지장이 생길 것 같아서입니다.

잘 추스려서 월요일부터 다시 열심히 개발하겠습니다.

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

20.05.20 개발일지  (0) 2020.05.20
20.05.18 개발일지  (0) 2020.05.18
20.05.14 개발일지  (0) 2020.05.14
20.05.13 개발일지  (0) 2020.05.13
20.05.11 개발일지  (0) 2020.05.11

오늘은 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

오늘은 Climb 상태에서 이동 Climb 상태 해제 부분을 구현하였습니다.

 

이 부분도 알아본 결과 굉장히 사소한 실수로 인해 구현에 실패를 한 것이었습니다.

Climb 상태를 판단하는데에는 4가지 트리거가 요구됩니다.

MovementComponent 안의 MovementMode.

Character 안에 IdleType, MovementType, InteractionType.

 

MovementMode는 현재 Character의 이동이 어떤 이동인지를 내부적으로 판단합니다.

IdleType은 현재 Character가 어느 이동이 가능한 상태인지 외부적으로 판단합니다.

MovementType은 Character가 이동 중임과 어느 상태에서 이동중인지 판단합니다.

InteractionType은 이동과 관계가 있지는 않고 상호작용 종류와 상태와 관계 있지만,

Climb 상태가 상호작용으로 이루어지므로 반드시  필요합니다.

 

Clmib 상태 판단이 안되던 것은 이 중 IdleType 값을 바꿔주지 않아서였습니다.

이를 적용해주자, 이동과 관련된 모든 문제가 말끔히 해결되었습니다.

 

그리고 나서 한 작업은 Climb 상태 해제입니다.

Climb 상태 해제는 두가지 조건이 있습니다.

Climb 중 점프를 하는 것과 상호작용을 하는 것.

이 두가지를 모두 구현하였으나, 이 중 재 상호작용 부분은 정상적으로 작동하지 않았습니다.

 

내일은 이 재 상호작용을 통한 Climb 상태 해제를 구현하고,

Climb 속도 조절과 중력 상태 해제를 통해 정지 시 가만히 멈춰있도록 구현할 예정입니다.

Animation 부분은 쉽게 구현이 되나, Exit이나 Ledge 부분에서 자동으로 Character가

올라가는 부분 구현 방법을 아직 몰라 조금 시간이 오래 걸릴 것 같아 이 뒤에 구현 할 예정입니다.

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

20.05.16 개발일지  (0) 2020.05.16
20.05.14 개발일지  (0) 2020.05.14
20.05.11 개발일지  (0) 2020.05.11
20.05.09 개발일지  (0) 2020.05.09
20.05.07 개발일지  (0) 2020.05.07

오늘은 늦잠을 자기도 했고, 최근 체중 감량을 위해 운동 시간을 늘리기도 했고,

컨디션도 안좋아서 늦게까지 해서야 겨우 할당량을 채웠습니다.

 

오늘은 Interaction 상에서 Character가 Flying 상태로 움직이도록 해보았습니다.

 

하는 과정에서 하나의 함수로 처리 했던 Climb Trigger 초기화 함수와 각 Trigger에 대한 overlap 이벤트들이

각자 다른 작업을 해야 복잡하게 이루어져야 한다는 점을 깨달았습니다.

 

이전에 작성해놓았던 트리거 작동 방식을 보면 알 수 있었지만,
이전 코드를 지우면서 새 코드를 넣는 복잡한 과정에서 인지를 못한 것 같습니다.

 

그래서 이 부분을 각기 다른 코드들로 분리를 하고, 동작을 확인했습니다.

 

그리고 Interaction 상 Climb 상태로의 변화는 생각한 것은 구현 하였으나, 
의도한대로 움직이지 않았습니다.

좌우 이동을 막고, 전후 이동은 상하이동으로 해놓았으나 정상적으로 작동하지 않았습니다.

어쩌면 중력이 적용 했을수도 있고, 코드가 빌드가 꼬여서 적용이 안된 것일 수도 있을 것 같습니다.

 

좀 더 이 부분은 시도를 해봐야 할 것 같습니다.

 

번외로 오늘 몇몇 Customized Log Category를 수정 하였는데 코드가 문제 없이 잘 작동하였습니다.

그래서 위 작업을 마무리 하고 commit 한 뒤, Log Category 수정을 해보았습니다.

그 결과 정상적으로 작동을 하여, 뒤로 미루었던 작업 중 하나은 Log 정리를 완료하였습니다.

 

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

20.05.14 개발일지  (0) 2020.05.14
20.05.13 개발일지  (0) 2020.05.13
20.05.09 개발일지  (0) 2020.05.09
20.05.07 개발일지  (0) 2020.05.07
20.05.06 개발일지  (0) 2020.05.06

오늘은 Climb를 판단하는데 사용되는 3개의 Trigger의 Start/End Overlap 시 호출되는 함수의 내용물을 채워넣고,
이전 Climb 구현에서 사용 했던 불필요한 함수나 변수들을 일부 제거하였습니다.

 

처음에는 호출되는 함수에서 상호작용되는 Climb에 따라 MovementMode를 변경해 주었습니다.

하지만 테스트를 해보니, 사다리 근처에 닿기만 해도 사다리를 타는 모양세가 되었습니다.

 

그래서 MovementMode 값은 상호작용쪽에서 수정하도록 주석으로만 처리를 하고, 
Overlap 함수에서는 어떤 Climb와 상호작용이 가능한지 저장하는 변수와, ClimbTrigger만 영향을 받도록 하였습니다.

 

이 과정에서 3개로 분리되어 있던 Overlap 함수는 다시 하나로 합쳐졌고, 
기능을 테스트 한 뒤 이전에 Climb를 구현하다가 실패했을 때 사용했던 함수, 변수들을 삭제하였습니다.

 

그리고 Climb가 Rope, Ladder, Wall이 있었는데,
Wall은 Trap에서 MovementComponent 적용을 하면서 구현을 해두었습니다.

그러다보니 Wall은 THObjectBase 하위 클래스이고, Rope, Ladder는 THClimbBase의 하위 클래스로 구현되어 있습니다.

오늘 확인해본 결과 THWallBase와 THClimbBase이 구현상 충돌나는 부분이 없어
THWallBase를 THClimbBase의 하위 클래스로 변경하였습니다.

이를 통해 상호작용 가능한 Climb 값을 저장하는 것이 일관성 있어졌습니다.

 

월요일에는 상호작용 시 Climb가 가능한 상태로 만들려고 합니다.

아마 이동 자체를 하루만에 구현할수는 없겠지만, 등반 상태로의 변화와 해제는 구현할 것으로 예상합니다.

 

원래는 5월 말까지 느긋하게 구현하려 했으나, 최근 인턴쉽을 모집하는 회사가 있어 기한을 조금 당기려 합니다.

다음주 목요일까지 등반 기능을 구현한 뒤 조금 이르지만 기능 영상 촬영을 하고자 합니다.

그리고 이를 기반으로 포트폴리오를 개선하고, 지원서에 넣을 예정입니다.

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

20.05.13 개발일지  (0) 2020.05.13
20.05.11 개발일지  (0) 2020.05.11
20.05.07 개발일지  (0) 2020.05.07
20.05.06 개발일지  (0) 2020.05.06
20.50.04 개발일지  (0) 2020.05.04

+ Recent posts