SSUNBORI Archive

3d Generalist를 꿈꾸는 Modeler ssunbori 입니다. 생성형 ai, 모델링 툴, 게임 엔진을 주로 공부하고 있습니다.

Artstation 자세히보기

UNITY/BLENDER-UNITY

[Package] MeshSync로 블렌더-유니티 실시간 연동하기② - 적용하기

ssunbori 2023. 4. 22. 12:54

목차

    소개

    유니티 실험 기능인 MeshSync를 이용하면 블렌더와 유니티를 실시간으로 연동하여 블렌더 내에서 편집한 사항을 실시간으로 볼 수 있다.

    또한, 유니티에서 편집한 블렌더 메쉬도 블렌더 프로그램에서 실시간으로 확인가능

    MeshSync 사용하기

    Gameobject > MeshSync > Create Server 선택

    그럼 이렇게 meshsync server 오브젝트가 생성된 모습을 확인 가능

     

    애드온 설치

    유니티 프로젝트에서 Preference > MeshSync에 들어가보면 플러그인을 설치할 수 있는 창이 뜬다...고 하는데 내 컴퓨터에서는 안떴었다.

    Edit > Preferences > MeshSync (우측은 공식 메뉴얼 예시 이미지. 저기에 뜨면 저기서 설치하면 되고 안될경우 수동설치하면 됨)

    플러그인 수동 설치 방법

    먼저, 유니티 프로젝트에서 MeshSync DCC Plugins 패키지를 받아야 한다.

    1. Package Manager 열기
    2. +버튼 클릭, Add package from git URL 선택
    3. com.unity.meshsync.dcc-plugins 입력
    4. Edit > Preferences > MeshSync > Open Plugins Folder 클릭
    5. 플러그인 폴더에서 필요한 플러그인 찾아서 압축 풀기
      UnityMeshSync_Blender_Windows(맥이면 _Mac, 리눅스는 _Linux 선택하면 됨)
    6. 원하는 버전 찾아서 옮겨두기(경로가 복잡하니 찾기 편한 곳에 옮겨두는 걸 추천)

    플러그인 압축 해제했을 때 모습. 블렌더 버전별로 애드온이 나뉘어 있다.

    이제 블렌더로 넘어와서

    1. Edit > Preferences > Add-ons 선택
    2. Install 버튼 클릭
    3. 버전에 맞는 애드온 선택
    4. Install Add-on 클릭
    5. 애드온 활성화된 것을 확인하고 설정창 닫기

    블렌더 3D Viewport 옆 패널 중 Tool을 보면 MeshSync가 생겨있다! 야호!

    Tool 탭에 MeshSync 패널이 생긴 모습

    처음에 Bake Modifier 옵션을 꺼뒀더니 섭디비전이 안들어가 있어서, Bake Modifier를 켜줬더니 잘 됨

    유니티와 블렌더가 연동된 모습

    Bake Modifier와 Bake Transform을 켰더니 오브젝트 이동, 모디파이어 적용한 모습이 유니티에 그대로 반영된다

    실시간 연동되는 모습

    재질 연동하기

    procedural shader도 UV맵 펼치고 bake해주면 유니티에 연동시킬 수 있다.

     

    예시로 아무 재질이나 넣고 bake 해봤음

    블렌더 재질 shader 노드 / 오브젝트에 적용한 모습

    이렇게 생긴 재질을 오브젝트에 넣고, MeshSync에서 Bake to Individual materials 클릭

    베이킹하는데 시간이 좀 걸린다. 기다렸다가 Materials 칸에서 Sync버튼을 누르면 유니티에 연동됨

    유니티에 연동된 모습

     

    주의사항

    블렌더 버전을 잘 확인해야 함

    블렌더 버전과 맞는 애드온을 설치하고 Auto Sync를 켜야 충돌이 일어나지 않고 잘 실행할 수 있다.

    (3.5 버전에서 3.4애드온을 설치하고 sync했더니 충돌이 생겼다. 3.3 버전에서 3.4애드온을 실행해도 마찬가지.)\

     

    유니티에 Sync한 메쉬들은 해당 신에만 존재

    유니티로 Sync해서 불러온 메쉬들은 에셋으로 존재하는 게 아니라 해당 씬에만 있는 오브젝트이기 때문에, 다른 신에서도 활용하고 싶다면 유니티 내 MeshSync 오브젝트에서 Make Asset을 눌러 재질과 메쉬를 에셋으로 저장해야 함.

     

    재질을 Baking할 때에는 UV맵을 잘 펼치고 Baking

    메쉬싱크에서 제공해주는 베이크 기능은 Ambient Occlusion, Diffuse, Emission, Metal 등 다양한 재질을 한꺼번에 베이킹해줘서 편리하지만, UV맵을 제대로 펼쳐주지 않으면 이상하게 베이킹이 된다.

    지금까지 해본 바로는 UV맵이 Texture 이미지 바깥으로 넘어가도 잘 베이킹 된다.

     

    Restore Material 시 주의

    Restore Material을 누르면 이전에 베이킹했던 재질이 적용해제되거나 날아가는 경우가 종종 보인다.

    근본적인 원인은 찾지 못했는데, 나중에 알아볼 예정

     

    Sync Material

    주의사항은 아니고, Sync Material을 누르면 따로 베이킹해뒀던 재질을 Unity에 연동시킬 수 있다.

    다른 블렌더 파일에서 베이킹해둔 파일도 Sync시킬 수 있음