클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

RPG 게임 기능 2 - Motion Warping 3 : 완성을 향해 본문

게임 개발 공부/언리얼 엔진

RPG 게임 기능 2 - Motion Warping 3 : 완성을 향해

huenuri 2024. 8. 25. 14:44

이제 얼마 남지 않았으니 힘을 내자! 오후 6시 전까지 이 작업을 마치는 것이 목표이다. 이제 연결해야 하는 노드도 점차 복잡해지고 있다.
아침에 이 기능이 만들어지지 않아 다른 동영상을 참고하면서 어떻게 하면 위쪽으로 레이가 만들어지는지 알게 되었다.

두번째 동영상에서는 게임보다는 그래픽 위주의 영상이라 기능이 계속해서 학습할 영상은 아니었다. 다시 안 되었던 부분부터 이어서 학습하는 중이다.


 

 

모션 워핑 기능 활용하기

 

새로운 함수 만들기

Vault 함수 밑에 모션 워핑 함수를 하나 만든다. 모션 워핑을 할 수 있는지를 묻고, 캐릭터를 가져온다.

 

충돌이 비활성화되었는지 확인하기 위해 update Wrap Targe을 가져온다.

 

 

 

 

 

 

 

 

 

 

 

몽타주의 위치 가져오기

모션 워핑 몽타주에 가서 시작 이름을 그대로 복사하여 가져와 붙여 넣는다. 시작 위치 벡터를 Location에 변수로 넣고, 액터 위치도 얻는다.

 

 

 

두번째와 세번째 위치도 설정하기

 

비슷한 방법으로 두 위치로 설정하여 가져온다.


 

 

 

이벤트 그래프에서 만들기

 

함수로 만들었던 것을 이벤트 그래프에 복사하여 가져온다. 몽타주를 가져오는 건 함수에서 할 수 없기 때문이다.

 

이벤트 그래프에서 사용자 지정 이벤트를 만들었고, 그걸 불러온다.

매시에서 몽타주를 재생하도록 가져오고, 이 재생이 끝난 후 캐릭터가 다시 걷도록 만든다. 그리고 보이는 모든 것을 액터 콜리전으로 설정한다.

 

 

 

 

 

그리고 뒤에 뭔가 다른 설정을 하는데 이 부분은 아직 무슨 말인지 잘 모르겠다.

 

 

 

 

 

Valult 함수에서

 

루프가 끝났을 때 Vault Motion Wrap를 실행하는 노드를 만든다.

 

 

 

 

이벤트 그래프에서

모션 워핑에서 지상 위치를 가져와서 분할한다. 범위를 float으로 받고 and로 연결해서 모션 워핑과 함께 연결한다.

 

그런 다음 메시를 가져와 위치에서 -와 +을 더해서 범위에 넣어준다.

 

 

 

 

 

 

이렇게 설정하는 이유는 세트에서 위차 범위가 -50인 경우에만 모션 워프를 할 예정이기 때문이다.

착지 위치는 업데이트 되지 않으므로 마지막 위치만 얻을 것이다.


 

 

잘 되는지 테스트하기

2개의 동영상을 함께 보며 블루프린트를 만들었더니 혼동되는 부분이 있었다. 원래 내가 시청하던 동영상에는 함수에서 작업을 했으나 새로 시청한 강의에서는 이벤트 그래프로 작업을 했었다.

그러다보니 점프를 할 때 벽을 타는 동작이 실행되지 않아 이 노드를 넣어주었다.

 

이제 잘 된다.

 

 

 

 

 


 

 

 

학습을 마치고

아침 10시부터 작업을 시작했는데 7시간에 걸쳐 마칠 수 있었다. 45분이 안 되는 영상에 이 정도 걸린다면 하나의 기능을 학습하는데 너무나 많은 시간이 소비된다.
다음 세번째 기능을 공부할 때는 이 시간을 6시간 이내로 줄여보고, 5시간, 4시간.. 이런 식으로 점점 줄어가면 될 것 같다. 그러니까 너무 진도가 느리다고 스스로를 자책하며 공부에 흥미를 잃지 않도록 하는 것이 중요하겠다.

처음에는 이보다 2배 이상의 시간이 걸렸다. 48분짜리 동영상을 5번 이상 시청하며 14시간은 시청했던 것 같다. 이제 오늘 배운 것을 활용해 개인 프로젝트에 입혀볼 생각이다~