SSUNBORI Archive

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

Artstation 자세히보기

UNITY/BLENDER-UNITY

[Package] MeshSync로 블렌더-유니티 실시간 연동하기① - 기능설명

ssunbori 2023. 4. 21. 12:04

목차

    소개

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

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

    MeshSync 패키지 설치

    https://docs.unity3d.com/kr/2019.4/Manual/com.unity.meshsync.html

     

    MeshSync - Unity 매뉴얼

     

    docs.unity3d.com

    유니티 메뉴얼을 참고해서

    MeshSync 패키지를 넣을 유니티 프로젝트를 열고

    Window > Package Manager > Add package from git URL > com.unity.meshsync 넣고 Add

    Add package from git URL칸에 com.unity.meshsync 넣고 Add 누르기

    그러면 이렇게 메쉬싱크 패키지가 추가된 모습을 볼 수 있다.

     

    MeshSync 기능 설명

    • auto start : 특정한 포트로 메쉬 싱크 자동으로 시작
    • Root Object : 싱크로 생성된 오브젝트의 root로 활용할 오브젝트. 
    • Sync Visibility, Sync Transform : 각 오브젝트마다 싱크를 활성화/비활성화하는 옵션
      • Play Mode에서 시뮬레이션을 실행시킬 때, transform 싱크 없이 시뮬레이션 결과물을 오브젝트에 세세하게 적용할 때 좋음.
      • 만약 Update Mesh Colliders가 활성화되어 있고 메쉬에 MeshCollider가 있을 경우, MeshCollider 속성 또한 메쉬가 업데이트될 때 같이 업데이트됨
    • Animation Interpolation : 애니메이션 interpolation 방식 설정
      • 대부분의 경우 그냥 디폴트 값으로 설정해도 괜찮지만, 영상을 제작할경우 애니메이션 샘플 수를 편집중인 프로그램(블렌더,맥스,마야 등)에서 타겟 framerate를 맞추고 interpolation 방식을 constant로 바꿔서 animation interpolation을 비활성화해주는 편이 낫다
    • Keyframe Reduction : 애니메이션을 불러올 때 키프레임을 낮춤
      • Threshold : 에러 허용 오차. 수치가 높아질 수록 키프레임이 낮아지는 비율이 올라가지만, 그만큼 에러도 많아짐
      • Erase Flat Curves : 변화가 없는 커브 삭제
    • Z-up correction : 맥스나 블렌더에서 Z-up 축을 사용하기 때문에 사용
      • Flip YZ를 사용하면 모든 Transform과 메쉬를 Y-up으로 바꿔줌(블렌더는 Z축이 세로축인데 유니티에 맞춰서 Y축을 세로축으로 바꿔주는 것)
      • Rotate X는 루트 오브젝트를 X축으로 -90도 회전시켜 메쉬의 Z-up을 유지하면서 Transform을 Y-up으로 바꿔줌
      • 대부분의 경우 Flip YZ를 사용예를 들어 유니티의 표준 fbx importer는 rotate X와 동일한 역할을 함
    • Material List : 오브젝트에 사용된 재질 리스트를 보여줌
      • 리스트에 있는 재질들을 편집하면 관련된 오브젝트에 반영됨
      • 이 리스트는 Import List/Export를 이용해 저장하고 불러올 수 있다
      • 블렌더에서 사용한 재질(셰이더)을 Bake하면 유니티에서도 재질로만들어짐...
    • Progressive Display
      • 켜지면 : 씬 데이터를 받는 도중에 업데이트가 실시간으로 반영됨
      • 꺼지면 : 모든 씬 데이터를 받고 나서 업데이트가 반영됨
    • Animation Tweak : 기본적인 애니메이션 조정
      • Override Frame Rate : 프레임 레이트 변경.
        유니티의 표준 "Set Sampel Rate"와 다르게, 프레임레이트 바뀌고 애니메이션 실행 중의 키 길이는 달라지지 않음.
      • Time Scale : 애니메이션 시간을 scale
        예를 들어, 0.5로 설정하면 속도가 두배로 빨라짐
        스케일을 -1로 설정하고 offset을 -5에서 5초로 설정한 애니메이션은 역재생됨
      • Drop Keyframes : 키프레임을 낮춤
        30의 key stroke를 가진 애니메이션에 Step=2를 적용하면 홀수 프레임은 제거되고 애니메이션이 15프레임이 됨
        비슷하게, 동일한 애니메이션에 Step=3을 적용하면 10프레임이 된다
    • Make Asset : 블렌더나 맥스, 마야 등으로 만들어진 오브젝트들은 오직 씬에만 존재하기 때문에, 다른 씬에서도 사용하려면 Make Asset을 눌러 에셋으로 추가해야함.

    • 싱크 프로세스는 TCP/IP를 이용해서 되기 때문에 유니티와 모델링 툴은 다른 기기에 위치해도 됨
    • MeshSyncServer 오브젝트가 유니티의 씬에 있을 때, 서버의 address:port를 브라우저에서 열어 유니티의 게임뷰를 브라우저를 통해 볼 수 있다. (디폴트는 127.0.0.1:8080)
      브라우저의 메시지 형태로 메시지를 보내면, 유니티 콘솔에 뜸
      (유니티와 모델링 툴을 서로 다른 사람이 사용 중일 경우 소통하기에 좋음)
    • 만약 포즈/애니메이션만 편집하면, MeshSyncServer에서 Sync Meshes를 끄고 작업하면 훨씬 가볍게 작업 가능 

    ETC

    블렌더에서 작업한 모델링을 유니티로 가져갈 경우, 라이팅이 약해진다는 점이 있으니 참고