이틀 전 토요일, 정오 즈음에 이를 사용하는 Constructor를 작성하였으나 fatal error c1853이 발생.

 

에러 코드 절반은 crushed 되어 있어서 문제를 알 수 없는 상황.

 

하루 종일 검색과 시도를 하였으나 해결하지 못하였다.

 

오늘도 1시간 정도 삽질을 하다가 log 중 intermediate 경로의 파일이 있어서

혹시나 하는 마음에 중간 생성 파일을 모두 지우고 VS project 재생성 뒤 rebuild를 하였다.

 

그 결과 문제 해결...

 

기존의 아무 인자도 없는 Constructor의 build 정보가 코드를 엉키게 하는 것 같다.

 

어쩌면 Unreal을 쓰는 사람들에게는 손 발을 사용하는것 만큼 익숙한 것일수도 있지만 내게는 아직 이런 과정을 거치는 것이 어색하다.

 

나와 같은 문제를 겪는 사람들은 고통을 받기 전에 Rebuild를 한번 해보자.

'메모장 > 개발 지식' 카테고리의 다른 글

C++ Lambda Capture 주의사항  (0) 2021.11.13
Print client side log in listen server  (0) 2020.06.25
UE4 2개 이상의 Layered blend per bone  (1) 2019.12.20
창문 달린 벽 만드는 법  (0) 2019.08.31
샷건 탄환 구현  (0) 2019.07.29

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

저는 매주 화요일, 금요일에 Unity 개발을 합니다.

 

그리고 왜인지 모르겠지만, 이 날마다 Unity 업데이트나 VS 업데이트가 생깁니다.

 

오늘은 운이 나쁘게도 둘 다 있었습니다.

 

그리고 코로나의 영향인지 둘 다 업데이트 다운 속도가 50kb를 채 넘지 못하더군요.

 

장장 6시간 넘게 업데이트를 하였습니다.

 

그리고 잠깐 개발에 임했습니다.

 

RPC 함수를 예시대로 작성을 해보았습니다.

 

게임에 접속하면 Player number를 출력하도록 해보려 했습니다만, 
RPC를 호 출하는데 필요한 PhotonView 객체가 예시대로 했을 때 선언되지 않았습니다.

 

잠깐 찾아보았는데 아직 명확한 이유나 원인, 해결 방안을 찾지 못했습니다.

 

다음에는 이 부분을 해결하고, 플레이어 숫자를 출력하여 멀티플레이가 제대로 되고 있는지 확인하고자 합니다.

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

20.04.24 개발일지  (0) 2020.04.24
20.04.21 개발일지  (0) 2020.04.21
20.04.14 개발일지  (0) 2020.04.14
20.04.10 개발일지  (0) 2020.04.10
20.04.07 개발일지  (0) 2020.04.07

오늘 처음 시도한 일은 Character에게 Pawn Collision이 설정된 Capsule Component를 배치하여 Character의 말단 부분에서도 중앙 부분과 같이 충돌이 되는 것이었습니다.

 

하지만 실제로 적용 해보았지만, 여전히 몸통을 관통하였습니다.

 

이 문제는 당장 해결할 수 없다고 판단하여 뒤로 미루어 두었는데, 다른 Issue를 해결하기 위해 검색하다가 한가지 방법을 찾았습니다.

그것은 Root Motion을 이용하는 방법이었습니다.

 

우선은 현재 고민 중인 Issue를 해결하고 적용해볼 예정입니다.

 

 

두번째로 시도한 것은 bLayeredMotion의 값이 반대로 들어가는 문제였으나, 확인 결과 문제를 찾을 수 없었습니다.

 

아마도 수 개월간의 코드 수정 과정에서 해결이 된 것으로 보입니다.

 

 

세번째로 Dash Jump Bug인데, 이 부분은 두가지 문제로 인해 보류하였습니다.

 

하나는 버그가 발생하는 조건이 명확하지 못해서 상황을 파악하지 못한다는 것.

 

다른 하나는 뒤에서 얘기 할 MovementComponent 부분을 해결하면 문제가 해결 될 수 있다는 것 입니다.

 

 

네번째로 Check Interaction Object Enhance인데 이는 앞서 미리 수정하였기에 Issue만 정리하였습니다.

 

 

다섯번째로, CharacterMovementComponent에 Character의 행동 관련 기능들을 이동하는 Issue입니다.

 

찾아본 결과, Action Bind는 Character와 Player Controller에서 구현이 가능합니다.

 

이 중 RTS와 같이 Player가 한번에 여러 Character를 조종하는 경우가 아니면, 보통은 Character에서 Bind합니다.

 

다만 이동이나 회전과 같은 기본 기능들은 Player Controller에서 bind 한다고 합니다.

 

MovementComponent의 역할은 이 이동, 회전 이벤트에서 호출하는 함수들을 따로 제공하는 역할입니다.

 

이 구조를 기억하고, 토요일에는 기능들을 재분리, 구현 할 예정입니다.

 

이후 시간이 남는다면, Trap에도 MovementComponent를 적용하고자 합니다.

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

20.04.20 개발일지  (0) 2020.04.20
20.04.18 개발일지  (0) 2020.04.18
20.04.15 개발일지  (0) 2020.04.15
20.04.13 개발일지  (0) 2020.04.13
20.04.11 개발일지  (0) 2020.04.11

총선 투표날. 사전투표를 하였기에 개발만 하였습니다.

 

오늘은 Character의 Hit Event가 여러번 일어나는 것을 방지하는 작업을 하였습니다.

 

처음에 고려한 것은 Semaphore였습니다.

 

Component와 OverlapStart 이벤트가 발생하면 Semaphore 값을 올려주고,
OverlapEnd 이벤트가 발생하면 Semaphore 값을 내려주는 방식입니다.

 

그리고 Semaphore 값이 1일 때에만 최초 타격으로 인정하여 데미지가 가해집니다.

 

하지만 막상 구현을 해놓으니, 움직일 때는 물론이고 가만히 있을 때에도 생각하는것 만큼 Semaphore 값이 잘 작동하지 않았습니다.

 

다음 구현한 방식은 Mutex를 사용하는 방식입니다.

 

nullptr로 초기화된 UCapsuleComponent 변수를 하나 두고, OverlapStart 할 때마다 이 변수 값을 체크합니다.

 

변수 값이 nullptr이면 최초 타격으로 인식하여 데미지를 주고, 값을 저장합니다.

 

변수 값이 nullptr이 아니면 두번째 세번째 타격이기에 데미지를 주지 않습니다.

 

하지만 이 방식도 문제가 있었습니다.

 

여러번 타격을 하는 과정에서 Mutex가 꼬이는 경우가 발생하였고, 값의 초기화가 안되기도 하였습니다.

 

최종적으로 결정한 것은 이 Mutex를 두개를 사용하는 것입니다.

 

각각의 변수는 최초 타격 Component와 피격 Component입니다.

 

판정 시 두 변수가 모두 nullptr이면 최초 타격으로 인식하고, 타격 Component와 피격 Component를 저장합니다.

 

또한 기존에는 OverlapEnd 시에 판정을 초기화 하지만, 이번에는 이 과정도 OverlapStart 이벤트에 추가하였습니다.

 

아직은 팔에는 Collision이 Ignore 되지 않아 몸을 통과하기에, 동일 Component에 2번 Hit 이벤트가 발생할수도 있기 때문입니다.

 

위의 두 변수에 저장된 Component들과 동일한 타격 판정이 일어나면, 두 변수 값을 nullptr로 초기화 합니다.

 

또한 이 외에 Hit Montage가 재생이 끝난 뒤에도 위 초기화 과정을 추가하였습니다.

 

그 결과, 타격 모션 1회당 판정이 1번만 발생하도록 하였습니다.

 

이후 각 Mesh의 Part들에게 Ignore Collision을 두려고 하였으나, 한번 오류가 나서 실패를 하고 원래대로 돌린 상태입니다.

 

내일은 이 실패한 부분을 구현하고, Hit 이벤트 부분에 변화된 점을 살펴본 뒤 구현을 수정할 예정입이다.

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

20.04.18 개발일지  (0) 2020.04.18
20.04.16 개발일지  (0) 2020.04.16
20.04.13 개발일지  (0) 2020.04.13
20.04.11 개발일지  (0) 2020.04.11
20.04.09 개발일지  (0) 2020.04.09

오늘은 PUN2에서 Session(Room)과 Client간에 정보를 주고받는 방식에 대해 조사를 해보았습니다.

 

찾아보니 RPC를 이용하는 방법이 있어 해당 자료를 읽고 공부를 하였습니다.

 

하지만 아직 어떻게 쓰는 것인지 정확히 파악하지 못하여 개발 단계로는 진입하지 못했습니다.

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

20.04.21 개발일지  (0) 2020.04.21
20.04.17 개발일지  (0) 2020.04.17
20.04.10 개발일지  (0) 2020.04.10
20.04.07 개발일지  (0) 2020.04.07
20.04.03 개발일지  (0) 2020.04.03

오늘은 병원에서 진료를 받고 와서 하루 쉬었다 가고자 합니다.

 

그리고 좀... 현타가 오기도 해서 하루 넉넉히 투자해서 쉬었다가 가겠습니다.

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

20.04.16 개발일지  (0) 2020.04.16
20.04.15 개발일지  (0) 2020.04.15
20.04.11 개발일지  (0) 2020.04.11
20.04.09 개발일지  (0) 2020.04.09
20.04.08 개발일지  (0) 2020.04.08

오늘은 Trigger의 위치를 수정하고, Editor에서 변경 가능하도록 개별 변수로 전환했으며 데미지 이벤트를 넣었습니다.

 

그 결과 마지막 부분만 미완성이고, 나머지는 완성할 수 있었습니다.

 

Trigger의 위치도 사실 개별 변수로 바꾸면서 해결되었습니다.

 

기존에는 C++에서 생성하는 즉시 TArray에 저장을 하였습니다.

 

하지만 이 때문에 Editor에서 간단히 수정을 해볼 수 없어서 생성 후 개별 변수를 선언하여 이에 저장하였습니다.

 

그 결과 Trigger의 위치에 대한 문제가 해결되었ㅅ브니다.

 

이후 Melee Attack에 대한 데미지 적용을 해보았는데, 한번에 여러 Trigger가 발생 하는 문제가 발생했습니다.

 

또한 이로 인해 Character가 사망 판정을 받을 때 에러가 발생하였습니다.

 

다음에는 이 부분을 Semaphore를 적용하여 해결을 해보고자 합니다.

 

이후 시간이 남는다면 Character의 충돌 판정을 조금 더 상세히 나눠볼까 합니다.

 

방법은 HitTrigger와 같이 Mesh의 Part별로 Component를 배치하고, 이 Component의 Collision을 조정하는 방식입니다.

 

이것이 구현 될 경우, 지금처럼 Melee Attack 때 손이 Character의 머리를 뚫고 지나가는 일은 없을 것입니다.

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

20.04.15 개발일지  (0) 2020.04.15
20.04.13 개발일지  (0) 2020.04.13
20.04.09 개발일지  (0) 2020.04.09
20.04.08 개발일지  (0) 2020.04.08
20.04.06 개발일지  (0) 2020.04.06

오늘은 PUN2를 이용해 버튼 이벤트에 따라 Session(PUN2 library 상 Room)을 생성, 참가 하는 함수를 구현하였습니다.

 

이 중, 생성 함수는 정상 작동을 확인하였으나 참가 함수는 정상 작동을 하는지 확인할 수 없었습니다.

 

이를 확인하기 위해서는 Session에 참가한 Player 정보가 표시되어야 할 것 같습니다.

 

문제는 이를 위해서는 Player들간에 Session과 관련된 정보들이 공유되어야 하는데, 아직 이에 대해 아는 바가 없습니다.

 

다음 주에는 이 부분에 대해 먼저 알아볼 것 같습니다.

 

이 외에 한가지 깨달은 점은, PUN2의 구조가 기본적은 P2P가 아니라는 점이었습니다.

 

프로젝트 빌드 전에 PUN2 서버에 연결을 해놓고, 게임이 실행되면서 이 서버에 접속이 되었는지를 확인해야 했습니다.

 

그리고 서버로부터 생성된 Room 정보를 받아야 합니다.

 

이로 봐서는 PUN2는 개발자에게 메인 서버를 제공하는 것 같습니다.

 

아무래도 처음 해보는 부분들이라 Milestone 안에는 구현하지 못할 것 같습니다.

 

하지만 어느정도 끝이 보이는 것 같아 마음이 놓입니다.

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

20.04.17 개발일지  (0) 2020.04.17
20.04.14 개발일지  (0) 2020.04.14
20.04.07 개발일지  (0) 2020.04.07
20.04.03 개발일지  (0) 2020.04.03
20.03.31 개발일지  (0) 2020.03.31

오늘은 Mesh와 Component들간의 Hit, Overlap 이벤트를 다시 구현을 해보았습니다.

 

다시 해본 결과, Mesh-Component들간의 Hit와 Overlap 이벤트가 발생은 하였습니다.

 

하지만 공격하는 개체가 아니라 공격 받는 개체의 이벤트가 발생을 하였고,
Component-Component간의 Overlap 이벤트만큼 잘 작동하는 구조가 없었습니다.

 

그래서 기존의 Component-Component Overlap방식을 채택했습니다.

 

다만 기본에는 머리와 몸통을 애매하게 구분 하였다면,
이번에는 부위별로 Component를 Socket에 Attach하여 15개의 Component를 두었습니다.

 

하지만 여기까지 배치를 하고 기능을 구현하려던 찰나, Trigger Component가 원래 위치를 벗어난 것을 발견했습니다.

 

이를 수정하려고 하였으나, 계속해서 수정되지 않아 일단 개발을 마무리 하였습니다.

 

토요일에는 이 부분을 수정하기에 앞서, 배열로 관리하여 Editor에서는 직접 접근이 되지 않았던 Component들을 변수로도 관리를 하도록 변경하고자 합니다.

 

그리고 나서 Component의 위치 문제를 해결하겠습니다.

 

시간이 남는다면 Attach Interaction 전용 Component를 따로 두고 싶습니다.

 

원래는 Climb Interaction과 혼용하였는데, 생각해보니 Attach는 하나의 Component가 정면을 광범위하게 커버하면 될 것 같기 때문입니다.

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

20.04.13 개발일지  (0) 2020.04.13
20.04.11 개발일지  (0) 2020.04.11
20.04.08 개발일지  (0) 2020.04.08
20.04.06 개발일지  (0) 2020.04.06
20.04.04 개발일지  (0) 2020.04.04

+ Recent posts