만드는사람/공부하는 공간

3d max - Unity 호환이 잘 되는 유닛(Unit) 설정 하기

sunghye 2020. 2. 27. 01:31
반응형

 

 

유니티 엔진에 필요한 모델링을 할 때 주로 사용하는 3d max.

처음엔 그냥 내보내기를 했는데 스케일 값이 유니티와 맥스의 값이 달라서 고생했다.

유니티에선 1유닛을 1미터로 취급한다. 그러니까 1*1*1짜리 기본 박스가 사실 1제곱미터였던 것.

맥스에서 그걸 일일이 머리로 계산해서 만들기 힘들다. 유닛을 맞춰주자. 

 

3d max - Unity 맞춤형 유닛(Unit) 설정 하는 방법

 

유닛 셋업창은 Customize - Unity Setup 창에 있다. 시스템 유닛 셋업을 눌러주면 창이 뜬다. 

 

나의 맥스의 경우 인치Inch로 되어 있었다. 세상에. 인치는 평소에도 쓰지 않는 단위이기 때문에 더 머리가 아파진다. 어서 바꿔주자.

여기서 중요한 점은 미터가 아니라 센티미터로 바꾸어 주어야 한다는 것이다. 그럼 이런 질문을 하게 될 것이다.

아니 유니티가 1유닛이 1미터라면서 왜 또 머리아프게 센티미터로 바꾸는 게냐!! 라고 물어볼 수 있지만 ...

미터로 하면 맥스에서 작업하기가 너무 빡세다. 작은 단위로 모델링 해야 세부까지 디테일한 작업이 가능하기 때문이다.

 

그럼 끝이다. 내보내기 할때는 어차피 스케일 팩터가 알아서 0.01로 바꾸어서 맞춰서 내보내준다고. (정말?) 

 

아니었다.(단호)

 

유니티에서 100으로 스케일팩터를 조정해 줘야 한다. 그럼 끝! 

 

맥스에서 유니티 스케일 유닛 맞추기 끝.

 


실험의 과정 

저렇게 간단히 알게 되었다면 좋았으련만. 위의 방법은 내가 하기로 한 방법이고, 다른 방법들도 있으니 원리가 궁금한 사람들은 포스팅을 계속 보면 된다. 정말 저렇게만 하면 잘 호환 되는지 우리는 실험을 해볼 것이다. 

 

 

맥스에서 1*1*1 박스를 만든다. 유니티 박스랑 구분하기 위해서 한쪽 면에 살짝 챔퍼를 주었다. 

설정창이 나와봤자 잘 모르겠다. 아무것도 건들이지 않고 Selected Exprot 시켜주었다. (맨 처음 누군가 알려준 방법)

OK를 누른다.

오 맙소사. 안되는걸?

거의 100배쯤 큰거 같으니 정말 맥스 큐브는 1제곱 센티미터고, 유니티 큐브는 1제곱미터라는게 맞나보다...^^

마치 이것은 내일 해가 동쪽에서 정말 뜨는지 굳이 일찍 일어나서 실험해 본 수준이다. 남들 다 아는걸 굳이 확인해보았다.

 

그래 생각해보면 이게 당연한거지.... 1센티로 만들면 1센티로 내보내진다.

하지만 나는 1센티로 만들어도 1미터로 내보내지길 원한다. 그럼 이제 익스포트하는 곳을 들여다 봐야겠다.

왠지 여기가 수상해서 눌러봤다. 

왠지 저기를 바꿔주면 될 것 같다. 싶을땐 눌러보자. Edit Preset을 눌렀다. 

 

 

그럼 그렇지! 여기 센티미터로 되어 있는 Scale Factor의 단위를 미터로 바꾸어 주자. 왜냐면 우린 미터로 보는게 필요하니까! 

자 그럼 이제 Scale Factor에 0.01로 바뀌어 있는 걸 알 수 있다. 

 

결과는...? 왜 이렇게 작을까 봤더니 스케일이 0.01로 되어 나타났다!

1로 바꾸니...! 오! 유니티 큐브와 크기가 같아졌다. 

오호!

인스펙터 창에서 스케일 값을 1로 맞춰주면 원하는 크기의 큐브를 유니티&맥스 유닛 따로 계산하지 않고 얻을 수 있다.

 

하지만! 자주 덤벙거리고 실수하는 나는 최대한 자잘한 신경은 컴퓨터한테 맡기고 싶다. 

인스펙터 창에서 일일이 스케일 조정을 하다보면 분명 실수하기 마련이다. 지금 예시는 박스지만 우리는 비정형의 오브젝트들을 주로 다루게 될 것이기 때문이다. 그럼 컴퓨터가 동일한 비율로 조정을 해줄 수 있게 하는게 낫다.


다시 맥스로 돌아가서 익스포트 스케일 팩터를 오토로 바꾸어 주자.

오토메틱을 다시 켜주면 센티미터가 돌아오고, 스케일도 1로 맞추어 진다. 

그리고 유니티에 가서 모델링 원본에 있는 인스펙터 창에 가서 스케일을 100배로 만들어준다.

그럼 가로세로높이가 일정한 비율(*100)으로 원하는 크기의 유니티 모델을 얻을 수 있다. 


Unity와 3d Max 유닛(Unit) 맞추는 두 가지 방법 최종 정리

 

1. 맥스의 시스템 유닛에 들어간다. -> 맥스의 유닛을 센티미터로 맞춘다.
유니티 1*1*1을 만들고 싶을때 = 맥스 100*100*100으로 만들어 작업한다.
유니티에선 따로 설정할 필요 없이 그냥 쓰면 된다. 

 

P.S 그럼 맥스는 이런 모양이 되는데... 거대해진 박스가 불안했던 나. 

맥스 고수한테 해결책을 물어본다.

격자무늬를 안보면 안불안해질거라고....^^:;

 

2. 맥스의 시스템 유닛에 들어간다. -> 맥스의 유닛을 센티미터로 맞춘다. 
유니티의 1*1*1을 만들고 싶을때 = 맥스도 1*1*1로 만든다.
다 만들어진 모델링을 유니티에 임포트 하고 Scale factor를 100으로 뻥튀겨준다.

머리가 나쁘고 게으른 저는 더 신경 안써도 되게 2번 방법으로 가기로.......

반응형