목차
소개
유니티 실험 기능인 MeshSync를 이용하면 블렌더와 유니티를 실시간으로 연동하여 블렌더 내에서 편집한 사항을 실시간으로 볼 수 있다.
또한, 유니티에서 편집한 블렌더 메쉬도 블렌더 프로그램에서 실시간으로 확인가능
MeshSync 패키지 설치
https://docs.unity3d.com/kr/2019.4/Manual/com.unity.meshsync.html
유니티 메뉴얼을 참고해서
MeshSync 패키지를 넣을 유니티 프로젝트를 열고
Window > Package Manager > 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프레임이 된다
- Override Frame Rate : 프레임 레이트 변경.
- Make Asset : 블렌더나 맥스, 마야 등으로 만들어진 오브젝트들은 오직 씬에만 존재하기 때문에, 다른 씬에서도 사용하려면 Make Asset을 눌러 에셋으로 추가해야함.
팁
- 싱크 프로세스는 TCP/IP를 이용해서 되기 때문에 유니티와 모델링 툴은 다른 기기에 위치해도 됨
- MeshSyncServer 오브젝트가 유니티의 씬에 있을 때, 서버의 address:port를 브라우저에서 열어 유니티의 게임뷰를 브라우저를 통해 볼 수 있다. (디폴트는 127.0.0.1:8080)
브라우저의 메시지 형태로 메시지를 보내면, 유니티 콘솔에 뜸
(유니티와 모델링 툴을 서로 다른 사람이 사용 중일 경우 소통하기에 좋음) - 만약 포즈/애니메이션만 편집하면, MeshSyncServer에서 Sync Meshes를 끄고 작업하면 훨씬 가볍게 작업 가능
ETC
블렌더에서 작업한 모델링을 유니티로 가져갈 경우, 라이팅이 약해진다는 점이 있으니 참고
'UNITY > BLENDER-UNITY' 카테고리의 다른 글
[Blender] FBX로 내보낸 캐릭터의 재질이 이상해 보일 때 (1) | 2023.09.01 |
---|---|
[Blender-Unity] Generic Rig를 이용해 캐릭터 아바타 생성하기 (0) | 2023.08.31 |
[Blender-Unity] FBX 파일 내보내기/업로드 프로세스 (0) | 2023.04.26 |
[최적화] Occlusion Culling 하는 방법, 이유 (0) | 2023.04.23 |
[Package] MeshSync로 블렌더-유니티 실시간 연동하기② - 적용하기 (2) | 2023.04.22 |