블렌더 모델을 유니티에 넣을 때마다 회전값이 -90: 원인은 축 방향 차이
블렌더에서 똑바로 세워 만든 모델을 FBX 파일로 유니티에 넣으면 Inspector의 Rotation X에 -90이 들어와 있습니다. 버전에 따라 -89.98로 보이기도 합니다. 거슬려서 0으로 고치면 모델이 바닥에 엎드립니다. 이 -90은 왜 매번 붙고, 어디서 맞춰야 사라질까요?
세 가지를 순서대로 봅니다. 유니티에서 -90이 무슨 일을 하고 있는지, 그 -90이 어디서 왔는지, 블렌더 FBX 내보내기의 어느 칸에서 축 방향 차이를 맞추는지입니다. 옵션 이름은 Blender 5.0, Unity 6 기준입니다. 크기 단위는 축 방향과 별개 문제라 이 글에서는 다루지 않습니다.
1. 유니티에서 먼저 볼 것: -90이 모델을 세우고 있나
씬에 모델을 끌어다 놓고 Inspector의 Transform을 봅니다. Rotation X가 -90인데 모델이 똑바로 서 있다면, 그 -90은 버그가 아니라 모델을 세우고 있는 숫자입니다. 지우면 서 있을 근거도 함께 사라집니다.
한 가지를 더 봅니다. 씬 뷰의 핸들 기준을 Global에서 Local로 바꾸고 모델을 선택합니다. 유니티에서 파란 화살표 Z는 오브젝트의 앞 방향, 즉 transform.forward입니다. 그 파란 화살표가 앞이 아니라 하늘을 가리킨다면 이 글의 경우입니다.

모양만 보면 멀쩡하니 그냥 두는 경우가 많습니다. 문제는 코드에서 터집니다. Instantiate(prefab, 위치, Quaternion.identity)로 생성하면 루트 회전이 0이 되어 모델이 누운 채로 나옵니다. Unity 문서에 따르면 Quaternion.identity는 오브젝트의 축을 월드 축에 맞추는 ‘회전 없음’이기 때문입니다. transform.forward로 걷게 만든 코드는 앞이 하늘이니 모델을 위로 띄웁니다.
| 보이는 모습 | Inspector Rotation | 뜻 | 볼 곳 |
|---|---|---|---|
| 서 있지만 파란 Z가 하늘 | X -90 (또는 -89.98) | 블렌더 FBX 기본값이 축 변환을 오브젝트 회전에 실음 | 2·3절 |
| 엎드려 누움 | 0 (직접 지웠거나 Quaternion.identity로 생성) | 위 경우에서 -90을 지운 것 | -90으로 되돌리고 3절, 다시 못 내보내면 5절 |
| 서 있지만 뒤를 봄 | Y 180 등 | Forward·Up 설정을 바꿨거나 모델 앞이 -Y가 아님 | 4절 |
가장 흔한 경우는 첫째 줄입니다. 그런데 블렌더에서 분명히 세워서 만든 모델에 왜 -90이 붙을까요?
2. 원인은 축 방향 차이: 블렌더는 Z가 위, 유니티는 Y가 위
두 프로그램은 위쪽을 가리키는 축이 다릅니다. 블렌더는 Z가 위이고, 정면도(숫자 패드 1)에서 보이는 모델의 앞은 -Y 쪽입니다. 유니티는 Y가 위이고 Z가 앞입니다. 같은 사람 모델이라도 블렌더에서는 키가 Z 방향으로, 유니티에서는 Y 방향으로 적혀야 합니다.
| Blender | Unity | |
|---|---|---|
| 위쪽 축 | Z | Y |
| 모델의 앞 | -Y (정면도에서 보이는 쪽) | +Z (transform.forward) |
| 좌표계 | 오른손 | 왼손 |
그러니 옮기는 도중에 누군가는 모델을 90도 돌려 줘야 합니다. 블렌더 FBX 내보내기 기본값은 그 90도를 버텍스가 아니라 오브젝트 회전에 맡깁니다. Blender 5.0에서 앞이 -Y인 사람 모양 모델을 만들고 기본값으로 내보낸 뒤 파일 안을 읽어 보면 이렇게 적혀 있습니다.
파일 업 축(UpAxis) Y
버텍스 블렌더 그대로 (키는 Z 방향, 앞은 -Y 방향)
오브젝트 Lcl Rotation X -90
파일은 ‘Y가 위’라고 적어 두고, 버텍스는 Z가 위인 채로 둡니다. 둘 사이를 오브젝트의 X -90 회전이 잇습니다. 유니티는 이 회전을 그대로 Inspector에 보여 줍니다. 모델 모양은 서 있지만 오브젝트의 축은 누워 있는 셈입니다. 파란 Z가 하늘을 보는 이유가 이것입니다.
이 동작은 내보내기 창 Transform 항목의 세 칸이 정합니다. Forward -Z Forward, Up Y Up, Use Space Transform 켜짐이 기본값입니다. Use Space Transform은 블렌더 설명대로 ‘좌표계 변환을 오브젝트 회전에 적용’하는 칸입니다. 그렇다면 이 90도를 회전 칸 대신 어디에 실어야 할까요?
3. 블렌더 FBX 내보내기에서 축 변환을 버텍스에 굽기
축 변환을 버텍스 데이터에 구우면 오브젝트에 남는 회전값을 줄일 수 있습니다. 정적 메시의 회전 0 해결 사례가 있지만, 최종 결과는 FBX 계층과 유니티 가져오기 설정에 따라 확인해야 합니다. 아래는 정적 모델과 리그 모델을 나눠 살펴봅니다.
정적 소품·배경: Apply Transform 켜기
- 앞 방향 확인: 블렌더에서 숫자 패드 1(Front)로 봤을 때 모델의 얼굴이나 정면이 보이는지 봅니다. 그러면 앞이 -Y입니다.
- 오브젝트 값 정리: 오브젝트를 선택하고 Ctrl+A > All Transforms를 실행합니다.
- 내보내기: File > Export > FBX (.fbx)의 Transform 항목에서 Apply Transform을 켭니다. Forward -Z Forward, Up Y Up은 그대로 둡니다.
- 확인: 유니티에서 Rotation이 0, 0, 0이고 모델이 서 있으며, Local 기준 파란 Z가 모델 정면을 가리키면 성공입니다.
같은 모델을 Apply Transform으로 내보내면 파일의 오브젝트 회전 칸이 비고, 버텍스가 Y가 위인 방향으로 돌아가 적힙니다. 앞도 +Z 쪽을 봅니다. 유니티의 앞 방향과 같습니다. 단, 블렌더는 이 칸을 실험적 기능으로 표시하고 아마추어·애니메이션에서는 깨진다고 경고합니다. 실제로 아마추어를 붙인 모델에 켜 보면 아마추어의 X -90은 그대로 남고, 메시 쪽에 X 90 회전 보정이 새로 붙었습니다.
리그 캐릭터(믹사모 포함): 역회전 후 적용
리그 모델에서는 역회전 후 적용하는 방법을 시험할 수 있습니다. -90을 모양에 굽고 오브젝트에는 +90을 남겨 내보낼 때의 -90과 상쇄시키는 방식입니다. 아래 파일값은 본 하나와 애니메이션이 없는 리그에서 확인했습니다. 원본을 복제한 뒤 적용하고, 믹사모처럼 본과 애니메이션이 많은 캐릭터는 유니티에서 본 방향과 애니메이션을 반드시 확인하세요.
- -90 넣기: 아마추어(리그가 없으면 메시)를 선택하고 N 패널 Rotation X에 -90을 넣습니다. 모델이 뒤로 누워 하늘을 봅니다.
- 모양에 굽기: Ctrl+A > Rotation을 실행합니다. Rotation X가 0으로 바뀌고 모델은 누운 채입니다.
- 90 되돌리기: Rotation X에 90을 넣습니다. 모델이 다시 섭니다. 이 값은 적용하지 않습니다.
- 자식 메시 확인: 아마추어의 자식인 메시를 선택해 Rotation을 봅니다. X -90이 생겼다면 메시만 Ctrl+A > Rotation으로 적용합니다.
- 내보내기: Apply Transform은 끄고, Forward -Z Forward와 Up Y Up을 그대로 둔 채 내보냅니다.
Blender 5.0에서 본 하나짜리 리그로 이 순서를 따라 내보내면, 파일 안의 아마추어·본·메시 회전값이 모두 0이었습니다. 4단계를 건너뛰면 아마추어는 0이어도 자식 메시에 X -90이 남았습니다. 블렌더에서 부모의 회전을 적용하면 자식이 그만큼 반대로 보정되기 때문입니다. 3단계 뒤 블렌더의 Rotation X가 90으로 보이는 것은 정상입니다. 여기서 다시 Ctrl+A를 하면 상쇄가 풀립니다.
믹사모 캐릭터처럼 애니메이션이 이미 붙은 리그라면, 유니티에서 애니메이션을 한 번 재생해 팔다리 방향까지 확인합니다. 테스트 리그보다 본이 훨씬 많기 때문입니다.
| 내보내기 방법 | FBX 파일의 오브젝트 회전 (Blender 5.0 확인) | 유니티 예상 결과·사용자 보고 | 리그 모델 |
|---|---|---|---|
| 기본값 | X -90 (리그면 아마추어에 X -90) | X -90, 모델은 서 있음 | – |
| Apply Transform 켬 | 없음, 버텍스에 구움 | 0 | 아마추어 -90이 남아 비권장 |
| 역회전 후 적용 | 0 (자식 메시까지 적용했을 때) | 0 | 복제본으로 시험, 애니메이션 재생 확인 |
| Use Space Transform만 끔 | 없음, 파일엔 Y Up인데 버텍스는 Z가 위 | 축과 버텍스 불일치로 누울 수 있음 | – |
표의 FBX 파일값은 Blender 5.0 실험 결과이고, 유니티 열은 문서·사용자 보고와 파일 구조에 따른 예상입니다. 가져온 뒤 실제 회전과 모델 방향을 확인하세요. Use Space Transform만 끄면 파일의 축 표시와 버텍스 방향이 어긋날 수 있습니다. 축 설정 칸들은 무엇을 바꾸는 걸까요?
4. Forward·Up이나 Bake Axis Conversion만 바꾸면 생기는 일
축이 문제라니 Up을 Z Up으로 바꾸고 싶어집니다. Forward Y Forward, Up Z Up으로 내보내면 파일에는 ‘Z가 위’라고 적히고, 오브젝트 회전 칸은 비어 있습니다. 블렌더 좌표를 그대로 넘기는 셈입니다. 그러면 이번에는 유니티가 축을 바꿔야 합니다.
유니티가 축을 바꾸는 방식은 FBX 파일을 선택했을 때 Inspector Model 탭의 Bake Axis Conversion이 정합니다. Unity 문서에 따르면 이 칸이 꺼져 있으면 유니티는 루트 게임오브젝트의 Transform을 돌려 축을 맞춥니다. -90이 블렌더 대신 유니티에서 붙는 것입니다. 켜 두면 그 변환을 버텍스와 애니메이션 데이터에 굽습니다.
그래서 블렌더 좌표 그대로 내보내고 Bake Axis Conversion을 켜는 조합으로 회전 0을 얻었다는 보고가 Unity 포럼에 있습니다. 반대로 같은 조합에서 모델이 180도 돌아 뒤를 본다는 보고도 꾸준히 나옵니다. 블렌더 모델은 정면도 기준 -Y를 앞으로 만드는데, 내보내기는 +Y를 앞으로 가정하기 때문이라는 분석입니다. 이렇게 만든 파일은 블렌더로 다시 가져올 때도 돌아가 보인다는 지적이 있어, 혼자 쓰는 프로젝트가 아니라면 권하기 어렵습니다.
Forward를 -Y Forward로, Up을 Z Up으로 두면 블렌더가 오브젝트에 Z 180도 회전을 얹어 적었습니다. 축은 그대로이고 회전값만 하나 더 늘어납니다.
정리하면 Forward·Up과 Bake Axis Conversion은 ‘축 변환을 누가 하느냐’만 바꿉니다. 블렌더가 오브젝트 회전에 싣거나, 유니티가 루트 Transform에 싣거나, 유니티가 데이터에 굽습니다. 유니티 Rotation이 0이 되느냐는 결국 그 변환이 버텍스에 구워졌느냐로 갈립니다. 여기까지를 한 문장으로 줄이면 이렇습니다.
회전값 -90은 유니티에서 지울 숫자가 아니라, 블렌더 FBX 내보내기에서 버텍스에 구울 축 방향 차이입니다.
5. 다시 내보낼 수 없을 때: 유니티에서 빈 부모로 감싸기
에셋으로 받은 FBX 파일처럼 원본 .blend가 없다면 유니티 안에서 감쌉니다. -90은 그대로 두고, 회전과 생성을 걸 부모를 하나 더 두는 방법입니다.
- 빈 부모 만들기: Hierarchy에서 Create Empty로 빈 게임오브젝트를 만들고 Rotation을 0, 0, 0으로 둡니다.
- 모델 넣기: 모델을 빈 부모의 자식으로 끌어 넣습니다. 모델의 Rotation X -90은 지우지 않습니다.
- 부모를 프리팹으로: 빈 부모를 Project 창으로 끌어 프리팹으로 만들고, 이동·회전·Instantiate는 이 부모에 겁니다.
부모의 파란 Z는 월드 앞과 같습니다. 그래서 Quaternion.identity로 생성해도 모델은 서 있고, transform.forward도 수평을 가리킵니다. Unity 문서도 localRotation에 Quaternion.identity를 넣으면 부모의 축을 따른다고 설명합니다. -90은 자식 안에 갇혀 모양을 세우는 일만 합니다.
마야로 옮길 때도 같은 -90이 붙습니다
마야도 Y가 위라서 블렌더 FBX 기본값으로 넘기면 채널 박스에 Rotate X -90이 들어옵니다. 원리는 같고, 마야에서는 Freeze Transformations로 모양에 굳히는 길이 하나 더 있습니다. 순서는 블렌더3D 모델을 마야로 옮길 때 단위·업 축·FBX 설정 맞추는 법에 정리했습니다.
결국 하나로 말하면 이것입니다. 회전값 -90은 지우지 말고, 축 방향 차이를 버텍스에 굽습니다.
참고 자료
vfx 잡학지식


댓글 0
첫 댓글을 남겨보세요.