UCameraComponent에서 FieldOfView 라는 변수가 있습니다.

이를 줄이면 줌을 땡기게 되고, 늘리면 줌을 놓는게 됩니다.

거창하지만 대략적인 기능이 완성 되었다는 것입니다.

 

애니메이션에서 꼬여서 아예 다시 만들자는 발칙한 생각을 한지 몇주가 지났습니다.

 

또다른 개발에서 애니메이션은 잘 완성하고 그동안 못한 지금의 프로젝트를 시작한게 4일 전입니다.

 

4일간 데디케이트 서버와 리슨 서버 구축을 공부하였습니다.

 

데디케이트 서버 구축 방법을 대략 알아봤는데 시간이 걸릴 것 같아 잠시 고민했습니다.

 

근데 어느 친절한 러시아 개발자가 약간의 코드만 다를 뿐 기본 골자는 차이가 크게 없다고 하여 흔쾌히 리슨 서버부터 먼저 구축을 시작했습니다.

 

Find, Join 쪽이 문제인지 실행하면 방을 못찾고 바로 Host로 가는 것 같습니다.

 

혹은 둘이 연결 되었는데 이를 인지 못했거나...

 

암튼 좀 더 다듬어야 하지만 기본적인 부분은 완성되어 나름 기쁘네요.

 

이번주 내로 완성을 하고 캐릭터 애니메이션을 다시 구현해볼까 합니다.

 

또 다른 프로젝트는 조준경 화면 전환을 구현해볼 생각입니다.

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

20.05.02 비개발일지  (0) 2020.05.02
20.04.25 비개발일지  (0) 2020.04.25
게임 제작 근황  (0) 2019.06.17
Animation Replicate 삽질 일기  (0) 2019.05.19
5월 1일 공격 판정 적용  (0) 2019.05.02

http://bbagwang.com/unreal-engine/%ec%96%b8%eb%a6%ac%ec%96%bc-%eb%b2%a0%ed%85%8c%eb%9e%91%ec%9d%98-100%ea%b0%80%ec%a7%80-%ed%8c%81%ea%b3%bc-%ed%8a%b8%eb%a6%ad-%ec%a0%95%eb%a6%ac/?fbclid=IwAR3VpqepcmmzRyC4eoE_hzpJQL4x3Y3f2XMVAxE79Ekw5I8cvOSL3XOMYYk

 

언리얼 베테랑의 100가지 팁과 트릭 정리 – BBAGWANG

UE Summit 2019 UE4 Tips and Tricks. by, Chris Murphyall copyright to Chris Murphy DISCLAIMER 현 자료는 Epic Games의 Unreal Engine EVnagelist인 Chris Murphy님의 언리얼 서밋 2019 발표 자료 내용입니다. 모든 내용은 영상을 보며, 작성하였으며, 본인 개인의 공부 목적으로 간단하고 짧게 정리한 내용이라, 부정확한 정보가 존재하니 이점 유념하여 봐

bbagwang.com

 

시간이 되면 한번씩 해보고 다른 곳에 정리해보겠습니다.

 

이런거 어떻게 관리할까 했는데 역시 블로그에 링크 걸어 두고 수시로 보는게 최고인것 같아요.

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

FObjectInitializer constructor fatal error c1853  (0) 2020.04.20
UE4 2개 이상의 Layered blend per bone  (1) 2019.12.20
창문 달린 벽 만드는 법  (0) 2019.08.31
샷건 탄환 구현  (0) 2019.07.29
기능 구현 - Zoom  (0) 2019.07.08

작업한 것이 완료되지 않았지만 나름 큰 분기점인 것 같아서 일지를 간만에 적어봅니다.

 

안 적은지 한달 넘었나...

 

상당히 오랜 시간 리팩토링을 하고 있었습니다.

 

주 목적은 character와 animinstance의 기능들을 정리하여 최대한 깔끔하게 돌아가게 하고, 리소스들을 에디터에서 지정해 코드 안에 경로들을 삭제하는 것이었습니다.

 

근데 delegate에서 runtime error가 발생하여 지난 주말 50시간을 투자하여 고쳐보려 했으나 고치지 못했습니다.

 

일주일동안 커뮤니티 이곳저곳에 질문을 올려보고 답을 못찾으면 기존의 리팩토링들 기능들을 한꺼번에 처리하기 위해 프로젝트를 다시 만들것 같습니다.

 

새로 만드는 프로젝트는 다음과 같은 목표들을 우선으로 하려 합니다.

 

1. 리소스 경로 정리

2. 코드와 리소스의 분리

3. 멀티플레이 기능 우선 구현 후 액터들의 기능의 RPC 기본 제공

 

예전에 글을 적었지만 지금 언리얼 프로젝트를 2개를 하고 있습니다. 

 

그 중 하나는 기능 구현을 어느정도 해놓으면 1~ 2주 쉬면서 못했던 또다른 프로젝트에 좀 더 투자를 할 예정입니다.

 

7월 내로 정리가 되어 일지를 다시 쓸 수 있도록 해보겠습니다.

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

20.04.25 비개발일지  (0) 2020.04.25
0701 리슨서버 골자 구축  (0) 2019.07.01
Animation Replicate 삽질 일기  (0) 2019.05.19
5월 1일 공격 판정 적용  (0) 2019.05.02
Paragon Animation List  (0) 2019.04.01

평소에 하던 프로젝트 내용은 아닙니다.

 

아는 선배가 같이 게임 개발 공부 해보지 않겠냐고 하셔서 또다른 언리얼 프로젝트를 개발하고 있습니다.

 

기능 구현을 주 목표로 하고 있는데 1년 넘게 삽질 하면서 듣도 보지도 못한 것을 근 3주만에 배웠습니다.

 

개인적으로 서버, 통신 쪽은 잼병이라 혼자 개발 할 때도 멀티플레이는 항상 나중으로 미뤘었는데 이 부분을 먼저 처리해주셔서 replicate를 제대로 고려해야 하는 상황을 직면했습니다.

 

해야한 일은 멀티 플레이에서 모든 모션이 동기화 되고, 기존의 FPS 템플릿에는 없는 전신 스켈레톤을 붙여야 했습니다.

 

스켈레톤을 붙이는 것 까지는 어떻게 됐는데 애니메이션 리플리케이션에서 일주일 넘게 막혔습니다.

 

덕분에 한 3일동안 먹는 족족 얹히기도 했고요.

 

문제는 당연히 "동기화가 되지 않는다." 입니다.

 

원인을 좀 꼽아보자면

 

1. RPC에 대한 이해 부족.

 

RPC를 안다고 생각했는데 이게 무엇인지만 알고 사용법은 몰랐던것 같습니다.

 

RPC 함수 호출을 어떻게 해야 하고 어떤 함수를 써야 하는지 아는데 이틀이 걸렸습니다.

 

2. 애니메이션에 대한 서툴름

 

애니메이션을 한번 만져봐서 자신 있었는데 안 만진 부분에서 4일 정도 시간을 먹었습니다.

 

특히 Montage Replicate를 하려고 하루에 12시간 넘게 인터넷 예시 코드를 따라 했었는데

 

결국 코드 문제는 아니었다고 합니다.

 

문제 해결하고 바로 글 쓰느라 뭔가 이상하네요.

 

저랑 비슷한 문제를 직면할 사람들을 위해 팁 형식으로 간단하게 정리하겠습니다.

 

1. RPC는 클라이언트가 UFUNCTION(Server, Reliable, WithValidation) 함수 A를 호출하면, A 함수가 서버에서 UFUNCTION(NetMulticast, Reliable) B 함수를 호출한다. 그럼 각 서버와 클라이언트에서 B 함수가 원하는 동작을 시행한다.

 

2. 선언 할 때는 A, B라 선언하지만 정의 할 때는 A_Implementation, B_Implementation라 정의해야 한다. 언리얼 코드 제너레이터가 뒤에 Implementation가 붙은 함수를 호출한다.

 

3. 추가로 bool A_Validate 함수가 필요하다. 아직까지 정확한 목적은 모르나 보통 return true만 넣어두면 정상 작동한다.

 

4. 모든 동작마다 replicate를 따로 해줘야 한다.

 

5. 발사와 같이 특정 방향 캐릭터 기준의 변수가 필요한 경우에는 UFUNCTION(Server, Reliable, WithValidation) 함수에 파라미터로 넘겨줘야 한다. 

 

6. 몽타주 실행을 위한 AnimInstance는 5번을 생각해서 파라미터로 넘겨주면 문제가 생길 수 있다. AnimInstance는 Transient하다. UFUNCTION(NetMulticast, Reliable) 내부에서 생성하자.

 

7. 몽타주의 전체 재생 시간보다 blend 시간을 압도적으로 짧게 잡아야 한다. 그렇지 않으면 blend 하는 사이에 애니메이션이 끝나 결과적으로 애니메이션이 재생되지 않는 것처럼 보인다.

 

거의 하루에 1개씩 깨달음을 얻은 수준이네...

 

암튼 이 글이 누군가에게는 도움이 되어 저처럼 오랜시간 삽질하지 않기를 빕니다.

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

0701 리슨서버 골자 구축  (0) 2019.07.01
게임 제작 근황  (0) 2019.06.17
5월 1일 공격 판정 적용  (0) 2019.05.02
Paragon Animation List  (0) 2019.04.01
3월 29일 복-귀 및 콤보 어택 수정  (0) 2019.03.29

까먹은거 아닙니다. 유의미한 결과가 없어서 글을 쓰지 않았습니다.

 

그리고 오늘 유의미한 구현을 하여 글을 작성합니다.

 

캐릭터의 행동을 여러가지 적용하다가 게임 그 자체에는 크게 필요하지 않은 것들이 많아서 다 삭제했습니다.

 

지금은 점프 앉기 공격 뛰기와 이들의 혼합체만 구현되어 있습니다.

 

이게 한 4월 8일 언저리였습니다.

 

근데 만들고 나니까 일반 공격의 1타는 타격 판정이 나는데. 일반 공격 2타 3타와 점프 공격, 대쉬 공격, 대쉬 중 점프 공격은 타격 판정이 나지 않았습니다.

 

이 부분을 코드만 계속해서 들여다보던게 한 3주.

 

29일 쯔음에 부끄럽게도 디버그 방법을 알아서 디버그를 해보며 생각대로 호출 되는 함수 그렇지 못한 함수 나누어 보았으나 델리게이트가 작동해야 하는데 작동하지 않은 것을 고치려면 어떻게 작동해야하는지 알아야 한다는 사실에 늘어져 있었습니다.

 

혹시 뭔가 놓친게 있나 싶어 다시 보다가 AnimNotify 부분을 찾아 보고 혹시나 해서 Montage를 봤는데...

 

notify 부분이 비어 있었습니다.

 

그렇습니다. 

 

코드의 델리게이트와 Montage가 연결이 되어있지 않았던 것입니다.

 

정확히는 모든 공격은 Attack 함수 안에서 구현하여 델리게이트 함수는 공유하였으나, 참고도서를 보고 만든 일반 콤보 공격은 notify가 설정되어 있어 montage에서 AttackCheck가 되었는데 다른 공격들은 이 부분이 빠진 것이었습니다.

 

안그래도 요즘 회사 공채 열려서 멘탈 약해졌는데 이게 멘탈을 다 깨트려버렸네요.

 

이번주는 짬을 내서 꼭 게임을 할것입니다.

 

이 부분에서 남은 것은 공격 별로 피해량에 차등을 주는 것입니다.

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

게임 제작 근황  (0) 2019.06.17
Animation Replicate 삽질 일기  (0) 2019.05.19
Paragon Animation List  (0) 2019.04.01
3월 29일 복-귀 및 콤보 어택 수정  (0) 2019.03.29
2월 16일 오브젝트 현황  (0) 2019.02.16

캐릭터 기능을 위해 애니메이션을 위주로 보고 있었습니다.

파라곤 애셋... 무료에 퀄 좋은 애니메이션, 이펙트 들이 이미 구현 되었다고 하니 써보기로 결정했었습니다. 

일단 쓰려면 뭐가 있는지 알아야 하니 분석....

그 결과 사용 불가라는 판정을 내릴 수 밖에 없었습니다.

 

첫번째로, 사람이 아니라 뭘 하든 이질적이었습니다.

사람형 캐릭터가 플레이 하는 것을 생각했는데 갑자기 외계인이 뿌슝빠슝하니까 기존의 기획을 부정하기 시작했습니다.

왠지 이게 아닌다라는 생각이 들기 시작하는데 개발 과정이 아니라 에셋을 보고 느껴지니까 느낌 묘하더군요.

 

두번째로, 스킬이 컨셉과 잘 맞지 않았습니다. 6개 정도?는 기획한 바와 정확히 들어 맞는 경우가 있었으나, 그 외에는 그다지 컨셉에 맞지 않았습니다. 그렇기에 사용을 하기 위해서는 기획을 변경해야 하는 상황이었죠.

 

이런 이유로 원상복귀 했습니다.

 

지금은 기존의 애니메이션들을 하나로 묶을 생각을 하고 있습니다.

상당히 많은 애니메이션 에셋들을 가지고 있는데 이들이 모두 다른 스켈레탈을 기반으로 움직여서 포기했었습니다.

하지만 retarget이란걸 찾아서 이걸 잘 써보면 애니메이션을 하나의 스켈레탈을 기반으로 움직이게 할 수 있지 않을까... 하는 작은 희망을 얻었습니다.

그리고 파라곤 에셋에서 스켈레탈의 일부분만 움직여 애니메이션을 만드는 것과 같은 것을 보았는데 이를 이용하면 왠만한 애니메이션은 자급자족이 가능하지 않을까 싶습니다.

 

잠깐 돌아간 길을 다시 돌아오고 또다시 먼 길을 떠나려나 착잡합니다...

Paragon Animation List.zip
0.03MB

어딘가에서 제공 될 수도 있지만 에픽에서 공짜로 배포한 파라곤 캐릭터 에셋들을 쓰고 싶어서 이것저것 보고 있었습니다.

 

근데 언리얼 에디터로 보면 클릭을 꽤 해야 해서 귀찮더군요.

 

그래서 간단하게 경로를 입력해서 파일 리스트를 출력했습니다.

 

 

OpenWorldAnim이나 TraversalAnimset처럼 PDF로 했으면 좀 더 깔끔했을수도 있겠으나 PDF는 뭔가 다시 하려니 귀찮더군요.

 

기타 정보들도 있으면 좋겠지만 우선은 txt 파일로 만족해 주시면 감사하겠습니다.

 

캐릭터 이름이 완벽히 동일하지 않을 수 있습니다. 

 

애니메이션 경로가 [Paragon + heroName1]/Characters/Heros/[heroName2]/Animations/*인데 대부분은 heroName 1과 heroName 2가 동일한데 한 3개? 정도는 이 둘이 달라서 임의로 하나로 통일했습니다.

 

그래도 대부분 알아보실 수 있으실겁니다.

 

그리고 파라곤 캐릭터 에셋은 스켈레탈이 모두 다릅니다. 

 

당연할 수도 있지만 전 지금 이걸 체크 안해서 큰 수정을 직면했습니다.

 

이 점 참고하세요.

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

Animation Replicate 삽질 일기  (0) 2019.05.19
5월 1일 공격 판정 적용  (0) 2019.05.02
3월 29일 복-귀 및 콤보 어택 수정  (0) 2019.03.29
2월 16일 오브젝트 현황  (0) 2019.02.16
1월 31일 캐릭터 기능 구현  (0) 2019.02.04

우연히 넣은 서류가 잘 풀려서 한동안 개발을 멈추고 있었습니다.

 

근데 김치국 씨게 마셔서 그런지 면접 보고 떨어졌네요.

 

이제 어떻게 해야 할지 모르겠습니다.

 

해야 할건 너무 많고 자신은 없고...

 

운동도 더이상 미룰수 없고...

 

1월 2월에는 오전에 운동하고 오후에 게임 개발만 했었는데 이제 좀 분산해야 할 것 같습니다.

 

개발하던 게임은 최소한의 모습이 나올 때까지 계속 개발을 할 생각입니다.

 

그리고 알고리즘 공부를 다시 해볼까 합니다.

 

너무 오래 놓고 있었더니 꼴이 말이 아닙니다.

 

이 두가지는 일단 주중에 항상 잡고 가고 주말이나 평소에 시간 남을때는... 공부 좀 더 해야겠네요.

 

서류, 면접 결과 기다리는 동안 문명을 계속 잡고 있었는데 하던 것만 빨리 마무리하고 이제 놓아줘야겠습니다.

 

아 그리고 어디까지 했나 확인 차 다시 키고 좀 만지다가 콤보 어택이 제대로 되지 않는 것을 수정했습니다.

 

단순히 공격 모션 시간 신경 안쓰고 대략 인식 시간을 잡았더니 시간이 너무 짧아 콤보를 인식하기 전에 애니메이션이 끝났던 거더군요.

 

시간 두배로 늘려주니까 잘 되었다고 합니다.

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

5월 1일 공격 판정 적용  (0) 2019.05.02
Paragon Animation List  (0) 2019.04.01
2월 16일 오브젝트 현황  (0) 2019.02.16
1월 31일 캐릭터 기능 구현  (0) 2019.02.04
Unreal Project Setting 1  (0) 2018.12.28

맵 상에 존재 할 오브젝트로 문, 함정, 퍼즐, 아이템, 기타 장치를 설정해 놓았다.


이 중 문은 좀 많이 전에 사실 끝내버렸다(...)


그렇다 또 일지 쓰는게 늦어버렸다.


destructible mesh에 material 적용하고 hit 이벤트 붙이는데 시간 좀 할애를 했다.


그 외에는 크게 문제 되는건 없었다.


문제는 함정이었는데 rotate 중심을 돌리는데 일주일을 써버렸다.


구상하는 함정은 가시바닥이 내려 찍는 함정이었다.


그렇기에 board가 한쪽 변을 중심으로 돌아야 한다.


그런데 보통 rotate를 하면 mesh 바닥 중심에 잡혀 있다.


이걸 자연스럽게 옮기기 위해 온갖 생쇼를 다 하다가 답을 찾았다.


https://unrealcpp.com/rotate-actor-around-player-with-rotation/


똑같은건 아니지만 FVector::RotateAngleAxis()를 사용하는 것이 힌트가 되어 일주일만에 구현하였다.


구현된 기능은 모두 영상 촬영을 하였으며 나중에 정리해서 올려보겠다.

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

Paragon Animation List  (0) 2019.04.01
3월 29일 복-귀 및 콤보 어택 수정  (0) 2019.03.29
1월 31일 캐릭터 기능 구현  (0) 2019.02.04
Unreal Project Setting 1  (0) 2018.12.28
windows에서 git2go 사용하기 - 2(完)(실패)  (0) 2018.07.30

+ Recent posts