243's 게임&애니메이션 Archive

unreal engine

언리얼 학습일지-11-애니메이션 블루프린트 리타깃팅

243 2021. 6. 2. 17:46


스압입니다..매우..

믹사모에서 받은 캐릭터에 언리얼의 기본 마네킹 애니메이션을 리타깃팅하고 게임 플레이했을 때 이동하는 모션과 총 쏘는 것을 구현해볼 것입니다.




-------------------------




써드 퍼슨(3인칭)게임 모드로 프로젝트를 생성한 다음 MIXAMO 에서 다운받은 캐릭터를 불러온다.





플러그인에서 이것이 활성화되어있어야 한다.






월드세팅에서 게임모드를 써드 퍼슨 게임모드로 변경해준다.






애니메이션 fbx를 임포트한다. Skeleton을 밑에 것으로 선택해준다.




이런 식으로 들어온다.





써드 퍼슨 캐릭터의 블루프린트를 복사한 후 이름을 믹사모 캐릭터 이름과 맞춰 변경한 후
디폴트 폰 클래스를 해당 블루프린트로 바꿔준다. (이후부터 M_BP라고 부름)




M_BP 의 이벤트그래프에서 이것들만 남기고 다 삭제해준다. 컴파일 필수




M_BP 의 스켈레탈 메쉬를 믹사모 캐릭터로 바꾼다.









이거를 해야되는데 하기위해서








다운받은 캐릭터의(이하 M) 스켈레톤을 찾아 창을 연다.





리타깃 매니저에서 새 리타깃 소스 추가 버튼을 누른 뒤 M을 선택해준다.





릭 선택에서 인간형 릭 선택 선택 (?)
그리고 밑에 저장 버튼이 있는데 저장을 해준다.




마네킹 스켈레톤에 들어가서 아까 저장한 거에 덮어써서 저장한다.




M의 스켈레톤을 우클릭해서 눌러준다.




마네킨 스켈레톤을 선택해서 리타깃 해준다.





써드 퍼슨 애니메이션 블루프린트를 우클릭 해서 애님 블루프린트 복제 후 리타깃을 해준다.





M 선택해서 리타깃 해준다.





리타깃팅이 잘 된 것을 확인할 수 있다.


M_BP에 들어가서 메쉬를 선택하고, Anim Class를 M_Anim BP로 선택해준다.

그럼 플레이 했을 때 기존에 써드 퍼슨 캐릭터가 움직이는 메카니즘을 그대로 할 수 있다.










블렌드 스페이스를 생성해서 왼쪽에 Axis Settings를 이렇게 바꾼다.







가만히 있는(idle)을 선택해서 그래프 가운데 맨아래에 드래그 드롭한다.




right 를 가져와서 놔준다.




얘도 놔줌.


이렇게 위치시킨다.






이렇게 하고 저장 해준다…아 가운데 맨 위는 foward step이다.




M_Anim BP에 들어가서 애님 그래프를 연다.







Idle/Run 에서 기존에 있던 블렌드 스페이스를 삭제하고 방금 만든 블렌드 스페이스를 연결한다.





플로트 변수를 만들어준다.




연결해준다.





 




이벤트 그래프 노드 연결





앞쪽의 노드에서 쭉 뽑아준다.




위에서 뽑아서 Get Control Rotation을 연결한다.




이렇게 만들어준다.





이 노드의 Return Value 에서 우클릭을 하면 구조체 핀 분할을 선택할 수 있다.





그럼 이렇게 XYZ로 분리된다.





Direction 변수를 SET으로 가져온다.





연결해준다.





밑에 있는 아까 만든 델타 노드와 연결해준다.





코멘트를 달아준다. 해당하는 노드들이 새로만든 것들이다.






M_BP 에서 캐릭터 무브먼트를 선택하고 디테일 창에 Orient를 검색해서 나오는것을 체크해준다.






가장 상위를 선택하고 yaw를 검색해서 체크해준다.




총질을 하게 하기 위해서 총이 필요하기 때문에 1인칭 게임 팩을 추가해준다.








M의 스켈레톤 창에서 프리뷰 애니메이션을 총을 들고 가만히 있는 애니메이션으로 설정해준다.





스켈레톤 트리에서 소켓을 추가해주고 이름을 변경한다.





소켓을 우클릭하면 프리뷰 에셋 추가를 할 수 있는데 총을 선택하면




이렇게 총을 미리보기로 붙여넣어 줄 수 있다. (실제가 아님)

















반드시 건 소켓을 선택하고 위치를 맞춰준다. (다른 거 선택하지 않도록 주의)





M BP 로 돌아와 메쉬를 선택해준다.





컴포넌트 추가 - 스켈레탈 메쉬 클릭, 이름을 Gun_SK로 바꿔준다.





오른쪽 디테일 창에서 메쉬를 총으로 설정해준다.
그럼 총이 바닥에 소환되는데





소켓 - 부모 소켓 - 돋보기 클릭해서 아까 만든 건 소켓을 선택해준다.

이렇게 하면 아까 조정한 위치로 이동한다.






프로젝트 세팅 - 입력 에서 아까 일인칭 모드를 추가했기 때문에 이미 Fire가 있는데 이것을 사용할 것이기 때문에 이름만 바꿔준다.





M BP의 이벤트그래프에서 노드를 추가해준다.
파이어의 입력 키가 눌렸을 경우(pressed) 무엇이 나오는지를 연결해줘야 하는데
총을 쏘면 총알이 나와야 하기 때문에 총알 블루프린트를 연결해주어야 한다.
하지만 그런 게 아직 없기 때문에 총알 블루프린트를 만들어야 한다.





액터 블루프린트를 생성하고 이름을 바꿔준다. 당연히 이것은 총알의 블루프린트이다.





컴포넌트 추가 - 스태틱 메쉬 추가하기


또다시 컴포넌트 추가해서 프로젝타일 무브먼트 추가



메쉬를 총알 메쉬로 바꿔 주어야 하는데 마땅한 게 없으니 만들어준다.





기본 원뿔 도형을 가져온 뒤 우클릭 - 저걸 선택한다. (어휴 손아파)

원하는 대로 머티리얼을 생성해서 적용해주고

이제 다시 아까 생성했던 B_BP의 메쉬에 적용해준다.





B_BP창에서 스태틱 메쉬를 선택하고 각도를 총알 진행방향으로 바꿔준다.



디테일 창에서 Initial Speed를 바꿔준다. (총알의 속도)
메뉴의 시뮬레이션을 눌러서 어떻게 발사되는지 확인할 수 있다.
총알 진행방향과 총알의 각도가 다르다면 맞춰준다.






M_BP로 돌아가서 건 소켓을 선택한 채로 컴포넌트 추가 - arrow 검색해서 추가해준다.





Arrow가 총구의 위치, 방향과 맞게끔 조절해준다.






다시 M_BP 이벤트그래프로 돌아와서 MFire 입력 액션 노드를 소환해준다.





스폰 액터 노드에서 Class 부분을 아까 만든 B BP(총 블루프린트)로 설정해준다.




Arrow를 드래그 드롭해준다.







이렇게 연결해준다.





카메라 붐을 선택하고




디테일 창의 타겟 암 렝스를 조절해준다. (뷰포트에서 눈으로 볼 수 있다.)




이제 제대로 진행했다면 플레이 했을 때 총 쏘는 액션 시 총알이 나가는 것을 확인할 수 있다.




DestroyActor를 만들지 않으면 총알이 무한으로 앞으로 나가서 계속 데이터가 쌓이기 때문에 영 좋지 않다.





현재는 점프했을 때도 총알이 나가기 때문에 점프중에는 총알이 나가지 않도록 만들어야한다.
캐릭터 무브먼트 노드를 소환한다.





이렇게 연결해준다. 캐릭터가 떨어지고 있는가를 물었을 떄 참(True)이면 총 쏘는 동작이 나타나지 않고 False(거짓)이면 동작이 가능하다는 의미이다.





----------------------




이제ㅔ...끝….
이거 보기에도 복잡하고 직접 해도 이해 잘 안간다. 당연하다.
플머 아닌 이상 나같은 그래픽 아티스트는 기계마냥 아무 생각없이 따라할 뿐이다.
하지만 그걸로 괜찮다고 생각한다.
완벽하게 이해는 못할지언정 몇번 하다보면 블루프린트의 메카니즘에 대해 조금은 감이 온다.
강제로 입에 쑤셔넣다보면 (뇌가 아니고요?) 언젠간..이해하게 될지도..