Unity/Unity Robotics

Unity Fusion360 Format (OBJ, FBX, STEP (Pixyz), Fusion To Unity) 정리

pnltoen 2022. 7. 9.
반응형

Unity Imported Format

OBJ, FBX, STEP, (Pixyz), Fusion To Unity


표 요약

 

Unity에서 Import 할 수 있는 여러 CAD Format에 대한 정리입니다. 유니티 Docs에는 상당히 많은 파일 포맷을 Import 할 수 있다고 기재되어 있지만, 실제로는 각각의 Import Format에 따라, 차이가 발생합니다. 이를 설명하기 위해 간단한 모델을 생성해보도록 하겠습니다.

 

모델링

 

박스 하나를 만들었습니다. 지난 포스팅과 마찬가지로 COM에 원점을 지정하였습니다. (회전할 물체가 아니기 때문)
이 후, 링크 홀 2개와 바퀴 4개를 만들어 줍니다.

 

홀 구멍을 뚫고, 링크를 만들어 주었습니다. 3D Fusion이든 다른 CAD은 Join과 같은 기존 접해있는 파트와 합치지 마시고, 꼭 새로운 Body로 만들어주시길 바랍니다. (가장 정석은 별도의 파트를 각각의 파일에 만드는 것)

 

각각을 Component로 만들고 각 Body의 원점을 확인해주도록 하겠습니다.

연습삼아서 링크의 원점을 이동시키겠습니다. 저는 주로 다음과 같은 방법을 사용합니다.

 

 

Move Object를 Components로 설정할 경우 다음과 같이 원점도 같이 이동됩니다.

 

따라서 Move Object를 Body로 설정하고, 다시 Components를 옮깁니다.

 

 

자칫 복잡한 과정으로 보일 수 있지만, 모델러가 해주는 것이 Unity 또는 Omniverse에서 원점을 맞추는 것보다 훨씬! 낫습니다. 마찬가지로 휠과 다른 링크도 설정해주도록 하겠습니다.

 

치수를 잘 모를경우 Point To Point 기능을 이용하면 쉽게 옮길 수 있습니다. 이 경우 COM에 Point 찍어야 함.

 

각 파트에 원점이 회전 축 또는 COM을 기준으로 잘 설정되었습니다. 이제 여러 포맷으로 Export 하겠습니다.

 

 

Export를 누르고, 자주 사용되는 OBJ, STEP, FBX로 Export 하겠습니다.

 

 

각각의 포맷을 유니티에서 불러오도록 하겠습니다. 비교를 하기위해 Fusion에서 전체 치수를 측정합니다.

 

 

적당히 크기를 측정하면, 가로 85mm 세로 58mm입니다. m로 변환하면 0.085m X 0.058m 임을 알 수 있습니다.

높이가 가장 높은 바퀴의 경우 다음과 같이 반지름 7.5mm임으로 지름 15mm 최종적으로 다음과 같이 대략적인 치수를 계산 할 수 있습니다.

 

 

치수는 (0.085m X 0.015m X 0.058m) 입니다. 유니티는 Y축이 높이

 

 

유니티에서 3D Cube를 하나 생성하면, 1m, 1m, 1m인 큐브가 하나 생성됩니다.  이 큐브를 샘플 치수에 맞게 Scale (0.085, 0.015, 0.058)로 조정합니다.

 

 

로봇이 이 크기 안에 안착해야합니다. 

 

FBX Format

 

FBX의 경우입니다. 별도의 포맷 변환 없이도, CAD 프로그램 치수 그대로 Unity로 넘어옵니다.

 

Pivot 비교

하이어리키를 보면 다음과 같이 빈 오브젝트(Pivot 설정용)을 만들고 그 안에 오브젝트를 생성하는 방법으로, 자동으로 Pivot을 잡아줍니다.

 

 

OBJ Format

Obj 포맷으로 변환한 결과입니다.

 

 

붉은원 위치에 비교용 큐브가 보이지 않을 정도로 크게 로봇이 Import 되었습니다. FBX의 경우에는 유니티와 CAD 프로그램의 Default Unit을 잡아줬지만 Obj는 잡아주지 않는 것을 확인할 수 있습니다.

 

 

인스펙터 창에서 스케일을 0.001로 설정합니다.

 

 

크기가 정상적으로 들어오는 것을 확인할 수 있습니다.

 

 

하지만 Fusion에서 명명한 파트의 이름이 넘어오지 않습니다. 추가적으로 설정한 Pivot 모두 제대로 출력되지 않습니다.

 

 

바퀴, 링크, 베이스 바디 모두 원점으로 지정되있는 것을 확인할 수 있습니다.

 

STEP Format

기본적으로 Unity에서 STEP를 Import 할 수 없습니다. 따라서 Pixyz 플러그인을 사용하도록 하겠습니다.

 

유니티 풀 라이센스 너무 좋아~

 

 

Fusion 360은 Y축이 유니티와 동일하게 연직상방향인데 다른 Solidworks, Catia를 배려해서 Import 할 때 Y축을 정면으로 인식한 것 같습니다. Rotate해주고 유니티로 Export 해줍니다.

 

 

 

크기가 딱 맞습니다.

 

 

Hierarchy는 FBX와 유사하게 빈 오브젝트를 넣고, Pivot을 맞추는 방식을 택하고 있습니다. 대신 한번 Pixyz를 거쳤기 때문에 Object가 좀 더 생성된 것을 확인할 수 있습니다. 다른점은 빈 오브젝트 뿐만 아니라 자체 오브젝트 Pivot도 CAD와 동일하게 설정되어 있습니다.

 

부모
자식

번외 : Unity File Exporter

 

Unity File Exporter에서 상세한 내용 및 설치 방법 확인 가능합니다. Mesh 및 Material이 깨지는 문제가 있어서 잘 사용하지는 않지만 비교해보도록 하겠습니다.

 

Unity File Exporter

Exports Solid Autodesk® Fusion 360™ Models into a unitypackage format to be digested by the Unity Editor.

apps.autodesk.com

 

 

Export시 Rigidbody, Colliders 등과 같은 설정을 할 수 있지만, 유니티에서도 쉽게 가능합니다.

 

 

가장 큰 차이점으로 UnityPackage 형식으로 저장이됩니다. OBJ와 마찬가지로 다음과 같이 별도의 Scale 조정이 필요합니다.

 

이 때, 0.001배가 아닌 0.01배로 하셔야합니다. 이건 또 cm을 기준으로 Export가 됩니다.

 

 

0.001배시 다음과 같이 작게 나타나는 것을 확인할 수 있습니다.

 

 

Pivot을 확인해보도록 하겠습니다.

 

 

Pivot이 정상적으로 잡히는 것을 확인할 수 있습니다.

 

 

 

Primitive한 방식과 비슷하지만 조금 다르게 Mesh를 최적화해서 Collider를 만들어줍니다. 이는 정말 매우 큰 장점입니다. 

 

기존 다른 포맷과 Fusion To Unity를 비교하면 다음과 같습니다

 

(좌) Fusion To Unity (우) 기타 Mesh Renderer

하지만 이를 위해 다음과 같이 메쉬가 짤려서 넘어오는 경우가 있습니다.

 

(좌) Fusion (우) Unity

결론

구분 Pivot Scale Mesh Renderer 특이사항
OBJ X X (0.001) O 쓸 이유 없음
FBX O O O 메쉬 재설정 필요
STEP (Pixyz) O O O
"주의" Pixyz Mesh Optimaztion은 Unity Collider와 연동 X
메쉬 재설정 필요
하이어리키 다소 난잡
Fusion to Unity O X (0.01) O Mesh Auto 최적화
Mesh Renderer 이슈

 

반응형

댓글