내일배움캠프 34.5일차 - TA강의-1: AI이미지로 모델링 생성해보기, 블렌더→언리얼로 FBX 내보내기
개요
AI는 게임업계에서도 새롭게 떠오르는 뜨거운 감자다. 아직 AI에 대한 인식이 사람마다 천차만별이며, 특히 지구온난화 가속이나 디자이너 인력감축 등으로 부정적인 경향이 매우 강하지만, 내가 좋든 싫든 규모가 작은 직장일수록 적은 인력을 대체하기 위해 AI사용에 능한 사람들을 선호하는 것이 현실이고 미래인 것 으로 보인다.
따라서 미래의 대비를 위해 AI에 대한 경험을 조금이라도 겪어보는 것이 커리어 측면에서 유리하다고 판단, 내일배움캠프 TA특강에서 올린 'AI를 사용한 모델링'을 해보도록 한다.
동시에, 본인이 블렌더를 사용하면서 경험한 문제들을 정리하면서 블렌더에서 작업한 모델링을 언리얼로 내보내는 법을 회고한다.
AI 이미지 생성해보기
구글에서는 Gemini라는 AI툴이 있다. Gemini는 Nano Banana 라는 AI 이미지 생성 엔진이 있으며, 내가 요청한 사항과 참고자료를 바탕으로 이미지를 생성한다.
| 갓이터 레저렉션의 커스터마이징된 내 플레이어 캐릭터 |
| Gemini가 자료를 바탕으로 NanoBanana엔진으로 생성한 AI이미지 |
그렇다면 이걸 토대로 한번 모델링에 용이한 T자 포즈를 한 캐릭터의 그림을 생성해보자.
내가 요청한 사항을 바탕으로 T자 포즈를 한 캐릭터 이미지가 생성되었다. 이걸로 한번 3D모델을 생성해보도록 하자.
AI 모델링을 해주는 사이트는 대표적으로 세 가지가 있다.
1.훈위안: https://3d.hunyuanglobal.com/
2.Meshy AI: https://www.meshy.ai/
3.Tripo: https://www.tripo3d.ai/ko
생성된 모델링중에서 퀄리티가 높고 툰 분위기에 가장 부합한 것은 MeshyAI이다. 그러나 해당 모델링은 구독자 플랜을 적용한 유저만이 다운로드가 가능하기 때문에 유료구독을 하지 않고서는 쓸 수 없다. 또한, 다각도 이미지를 통해 정밀하게 구현하기 위해서는 역시 유료구독을 신청해야 한다. 지금은 아직 AI를 적극적으로 쓸 상황은 아니므로 구독은 시기상조로 판단된다.
Tripo 또한 유료구독을 통해서만 고품질의 모델링 다운로드가 가능하므로 아쉬운대로 훈위안의 것을 블렌더로 옮겨보도록 하자.
해당 모델링을 블렌더로 가져온 모습이다. 당연한 이야기지만, 리깅이 안되어있기 때문에 손수 리깅을 해야하며, 팔찌는 중앙에 구멍이 나 있으며, 머리핀은 이상한 모양으로 돋아 나있고, 머리카락과 옷이 융화된 듯 눌러 붙어있다. 그리고 텍스처는 새로 만들어야 할 정도로 구획이 엉망이다.이정도면 제대로 사용하기 위해서는 조형 만을 가지고 처음부터 만들어야 할 수준이다.
결론
무료플랜 기준으로는 어디까지나 간단한 소품 위주로 구현하는 것이 낫고, 게임에서 사용가능한 캐릭터를 구현하려면 모델러 못지않은 추가작업량을 요구할 것이다. 그럼에도 조형이 있는 것 자체만으로 작업량이 상당수 단축될 것이고, 좀 더 정밀하게 다듬어진 유료플랜 모델을 쓴다면 부담이 덜할 것이다.
부록: 블렌더 → 언리얼 FBX 모델링 내보내기 팁
손수 만든 모델이던, AI로 만든 모델이던, 블렌더 기준에서는 언리얼과는 다른 좌표계를 쓰고 스케일 단위도 다르므로 블렌더에서 언리얼로 Export하기 위해서는 모종의 과정을 거쳐야 한다.
아래의 문제 발생 및 해결책은 내가 블렌더를 독학하면서 얻은 경험을 바탕으로 지은 것이다.
--요약--
1. Root본 추가: 익스포트된 Root본의 값은 기본값을 유지해야함.
2. 단위스케일 맞추기: Armature의 스케일값은 0.01 유지
3. 좌표축 맞추기: 익스포트 시 기본 본축(Z), 보조 본축(X) 로 옵션 맞추기. (1번의 회전값과 연관됨)
1) Root본 추가
언리얼은 기본적으로 루트모션의 존재로 캐릭터의 원점 역할을 해주는 Root본이 사실상 필수다. 따라서 Root가 존재하지 않는다면 원치 않은 캐릭터 무빙 등 여러가지 문제가 발생할 수 있다. 마찬가지로 Mixamo에서 불러온 모델링, 애니메이션은 Root본이 없으므로 직접 추가해주는 것이 안정적이다.| 캐릭터의 좌표를 명확히 해주는 Root본 |
2) 단위스케일 맞추기
언리얼과 블렌더는 1:100의 스케일 대비를 가진다. 만약 블렌더에서 Export했는데 언리얼에서 크기가 터무니 없이 작다면 100배만큼의 스케일이 부족한 탓이다. 만약 스태틱 메쉬라면 언리얼에서 Import옵션으로 스케일 100배 늘려주면 해결되겠지만, 스켈레탈 메쉬라면 약간 복잡하다.스켈레탈 메쉬를 Export할때는 별도의 조치 없이 그대로 내보내면 메시 대비 본의 스케일차이가 심해진다.
| 스케일 보정없는 Export했을 때의 Skeletal Mesh 본의 모습 (UE 5.3) 이렇게 되면 정상적인 작업이 어려워진다. |
| 스케일 보정 없이 Export된 Root본의 스케일 |
어째서인지 몰라도, 스케일보정을 하지 않은 아마튜어는 위 사진 처럼 Root본의 스케일이 100으로 조정되면서 본의 사이즈까지 메시가 안보일 정도로 100배 커진다. 이렇게 되면 피직스 에셋 생성이 어렵고 예상치 못한 곳에서 문제가 발생할 수 있다.
※ 비정상적인 본 크기는 UE5.3에서 발생하는 문제로, UE 5.5부터는 발생하지 않는다.
그러나 Root본 스케일이 100으로 고정되는 문제는 어느 버전이든 똑같다.
따라서 블렌더에서 Export하기 전에 아래의 작업을 거쳐야한다.
1. 블렌더 아마튜어의 스케일을 언리얼 단위에 맞게 100배로 늘린다. 그리고 [Object] → [Apply] → [Scale]하여 스케일을 다시 1배로 적용한다.
: 이 과정에서 모델링 전체의 사이즈가 크게 불어날 것이다. 당황하지 말고 다음 단계를 이행한다.
2. 블렌더 아마튜어의 스케일을 1/100배로 줄인다.
※ 크게 중요하지는 않지만, Scale을 Apply하면서 변화한 메시들의 스케일 100을 다시 Apply해주면 원래의 1로 돌아온다.
| 본 사이즈와 Root본의 스케일 문제가 해결된 모습 (UE 5.3) |
3) 좌표축 맞추기
앞서 말했듯, 블렌더는 오른손 좌표계를, 언리얼은 왼손좌표계로 서로 다른 좌표계를 쓴다. 좌표계가 다른 상태에서 아무런 조치 없이 그대로 언리얼로 Export를 한다면 아래와 같은 문제가 발생한다.
겉으로는 아무 문제가 없어 보이지만, Root본의 회전값이 (0,0,0)으로 맞춰져 있지 않아 Animation을 재생할 때 모델이 Root모션따라 원치않게 회전하는 등의 잠재적 위험을 내포하고 있다.Export된 Root본은 반드시 위치,회전,스케일 값이 모두 기본값이어야 한다.
| 블렌더 Root본의 정보. Root본은 원점에서 수직을 가리켜야 한다. |
| 블렌더→언리얼로의 FBX Export 권장옵션. 아마튜어의 이름은 반드시 Armature여야 한다. (그렇지 않으면 Root 계층구조가 제대로 반영되지 않음) |
특히 아마튜어탭의 기본 본 축, 보조 본 축의 방향이 Root본의 회전값을 결정한다.
(본인은 각 Z축,X축으로 하였다.)
| Export 결과, Root본의 트랜스폼 값이 기본값에 근사하였다. |
위 Export문제는 비단 모델링 뿐만 아니라 애니메이션에도 해당되는 사항이므로 블렌더에서 언리얼로 옮길 때는 언제나 Root본의 트랜스폼값을 예의주시하자.
댓글
댓글 쓰기