LOD를 적용해보자 ! Simplygon!



최근 심플리곤(Simplygon)이 인디게임개발자에게 무료로 풀렸습니다. (심폴리곤이 아니라 심플리곤..!)

애초에 유니티보다는 언리얼쪽이 무거운게임이 많다보니 저도 언리얼 공지사항을 보고 확인했습니다.



기존에는 프리/상업적 이용 두가지 가격정책만을 가지고 있었는데요, 

새롭게 변경된 가격정책은 크게 3개로, 인디라이센스가 추가된 것을 확인할 수 있습니다.


Personal

 Indie

 Title License

  (개인적용도)

  (일정금액이하의 상업용)

 상업적, 타이틀 당 가격

 무료

 개발 중 무료

수익이 발생하면 2%의 라이센스

 심폴리곤에 문의


심플리곤의 사용은 꽤나 간단한편인데요, 




1. 심플리곤에 가입 및 인디라이센스 신청



2. 우측 상단의 자신의 이름 클릭 - Profile - 자신의 SDK 라이센스 키 확인 



3. 다운로드


심플리곤은 

 1. 직접 SDK를 실행시켜서 맥스나 마야와 연동하는 방법

 2. Unity에서 연동시켜 사용하는 방법

 3. Unreal에서 연동시켜 사용하는 방법


세 가지 경우가 있습니다만, 

Unreal의 경우에는 이번에 4.14 버전이 업데이트되면서 엔진 자체적으로 Auto LOD 기능을 지원하더군요. 

StaticMesh의 설정창에서 숫자만 입력하면 바로 LOD를 생성이 됩니다.

이게 Simplygon이랑 협업해서 엔진 기능으로 넣은건지는 확실치 않지만, 굉장히 빠른속도에 놀랐습니다... 


Unity에서 연동시켜서 사용하는건 엔진내에서 처리되기 때문에 간편하긴 하지만, 생성된 LOD 메쉬를 밖으로 빼낼 방법이 없어 세부 조절이 불가능하다는것이 커다란 단점입니다. Unity의 경우에는 Unity 에셋스토어에서 Simplygon을 검색하셔서 다운로드 받으시고 Simplygon 사이트에서 SDK를 설치하셔서 SDK의 Agent와 유니티를 연동시켜야 합니다. 


때문에 저는 맥스와 SDK를 연동시키는 방법을 사용하고 있습니다. 스킨드 메쉬에도 적용이 잘되고, 잘못된부분이있으면 직접 수정하기에 간편합니다. (메쉬를 수정해버리면 스킨을 다시 칠해야되는건 어쩔수 없지만)


라이센스 키 우측의 Download 버튼을 눌러보면 SDK 다운로드 페이지가 나오는데,

거기서 Simplygon SDK 를 다운로드 받으면 됩니다. 

참고로 Unreal Engine의 Integrations는 인디라이센스에서는 사용할 수 없다고 나오네요.

Unity Engine의 Integrations는 유니티 에셋스토어에서도 받을수 있습니다.


Simplygon SDK는 용량이 300MB가 넘는데도 외국서버라서 시간이 좀 많이 걸리는 편입니다.



4. 설치 및 Simplygon Agent 실행


SDK를 설치할 때 여러가지 선택적으로 설치가 가능하지만, 일단 두고두고 쓸 것 같아서 저는 전부 선택하였습니다. 설치 후, 두 가지의 실행파일이 생성됩니다.


[ Simplygon Agent ] 를 먼저 실행시켜보면, 

 - 알림영역 아이콘에 Simplygon 마크가 표시됩니다. 

 - 오른쪽 클릭 후 톱니모양 클릭 - License - Launch License Application 을 눌러 라이센스 관리로 들어갑니다.

 - I have a License Key 를 눌러주시고, 적어두었던 라이센스키를 붙여넣으시면됩니다.



5-1. 유니티의 경우


유니티 내에서 처리하실 경우 Simplygon UI는 굳이 실행시켜보실 필요없이 유니티 상에서 Simplygon을 실행시키신 후, 표시되는 창에 아이디와 비밀번호 대신 user / user 를 입력합니다. 

(아이디와 비밀번호를 입력하는 것은 Free License 입니다.) 

서버는 루프백 IP로 포트는 Agent에서 확인할 수 있습니다.



이 때, 라이센스가 활성화된 Simplygon Agent가 실행중이라면 메쉬파일을 서버로 보내는 대신 컴퓨터 내에서 로컬로 처리하게 됩니다.


- 다른 버튼을 눌렀을때 수치가 초기화 되는걸로보아, 각각의 버튼은 개별적인 것같다.

  (Reduction에 따라서 생성할껀지 LOD Chain에따라서 생성할껀지 선택하라는 느낌)

- Reduction 수치는 디폴트값이 50%고, 30%정도가 적당할듯.

- 진행을 누르면 Manage Jobs에 등록되고, 최적화를 서버에서 수행 한뒤, 다운로드가 가능하다.

- 다운받으면 프로젝트 내의 LODs 폴더에 위치하게된다.



5-1. 맥스의 경우


[ Simplygon UI ] 를 실행시켜보면 마야와 굉장히 흡사한 화면이 나오게 되고,

FBX가 있다면 여기서 바로 실행할 수 있습니다만, 개인적으로는 맥스랑 연동하는게 편하기 때문에 플러그인으로 실행하는 편입니다. 


일단 SDK 설치 중 생성된 플러그인을 맥스에 가져와야합니다.


아래의 경로에서 파일을 가져와서

  C:\Users\[컴퓨터계정명]\Documents\Simplygon\8\UI\Max\Max2016


아래 경로에 붙여넣습니다.

  C:\Program Files\Autodesk\3ds Max 2016\plugins


이후 맥스의 툴킷 쪽에서 Simplygon SDK를 목록에 올리고 사용하시면 됩니다.


1. LOD를 원하는 오브젝트를 선택

2. 툴킷에서 Simplygon을 실행

3. Simplygon UI가 열리면 초기세팅(file-up 세팅 등).

4. 오른쪽 위의 Settings Editor에서 오른쪽> 버튼을 눌러 단계를 하나 추가한 뒤, 다시 Setting으로 돌아와서 메쉬의 %를 설정해준다. 

5. 생성된 단계를 누르고 Make Default를 눌러 원하는 값을 설정

6. 오른쪽 아래의 심플리곤 마크를 눌러 작업 실행

7. 이때 SImplygon Agent가 실행되어있어야 프로세스가 실행된다.

8. 작업이 완료되면 왼쪽아래에 있는 Jobs 가 초록색이 되고, 다운로드 버튼을 눌러야 끝이난다.

9. 임포트가 완료되면 위쪽의 Return to Max를 눌러서 맥스로 임포트.

10. 가져갔다면 Proxy나 추가 LOD로 생성된 본은 다 지우자.



[소소한 팁]

- 맥스에서는 유니티에서 오류나던 것들도 거의 다 씹어먹는다

- 한 번 설정해놓으면 다시켜도 그 설정을 유지하기때문에 많은 오브젝트 작업할 때 유리하다. 



- 유니티 퀄리티 설정에 있는 LOD bias는 해당 수치만큼 고퀄리티 모델링이 오래남아있게된다.

- 따라서 타겟플랫폼에서는 반드시 1을 잡고, 상위 하드웨어에서는 수치를 높게, 하위 하드웨어는 낮게 설정,



- Simplygon: JobManager failed to export job (The given key was not present in the dictionary.

- 해당 오류가 뜬다면. 혹시 본 최적화(Optimize Game Object)가 체크되어있는지 확인한다!

- 혹은 본아래에 오브젝트가 있지는 않은지 확인한다. 순수 본만으로 이루어져야함.


댓글

Designed by JB FACTORY