[Из песочницы] Экспорт Terrain'а из WorldMachin в Unity3D

сегодня в 09:45

77fab7bf4428470491c44b4bd8a16753.png

Эта статья является адаптированным под современны редактор переводом на русский язык оригинальной инструкции: «Terrain export from world machine to unity».


World Machine может служить отличным генератором местности для Unity. Unity же имеет нативную поддержку текстур и splatmaps. Вы можете создать и использовать несколько слоёв текстур местности одновременно. Здесь представлен простой рабочий код для импорта в Unity местности из World Machine. Пожалуйста, обратите внимание, что, хотя этот метод работает для основных местностей в unity, многие продвинутые пользователи могут создать собственные шейдеры местности, которые могут потребовать другую технику исполнения.

Что необходимо сделать для экспорта в World Machine


  • 62f6b5a3481340c690db114ef22cbd54.jpgc3748123ffea4cb3947df765002a7173.JPGВыставите Height Output в вашем мире. Запомните это значение.
  • Создайте маски текстур для ландшафта, основанные на любых критериях (с помощью: Height Selectors, Slope Selectors, Erosion masks и других).
  • Используйте Splat Converter для того, чтобы контролировать и соблюдать вес своих splatmaps. Так же Вы можете использовать Splat Converter, включённый в «New Examples for WM 2.3\Techniques»
  • Чтобы преобразовать отдельные карты в растровом изображении, свяжите их в канал конвертер, который будет производить изображения RGB в течение первых трех каналов. Четвертый будет использоваться в качестве альфа-канале растрового изображения. Разводка полученные карты в одной или нескольких выходных устройств растровые создать splatmap 4 канала. Если вы используете более чем 4 текстуры, просто создайте несколько выходов растровые и отрегулируйте Splat конвертер соответственно.
  • Выберете формат в File Output, который будет использован для экспорта из WM. В данном случае Вы должны использовать формат RAW16.
  • Постройте свой мир и экспортируйте все файлы. Выберите Export Terrain files в меню Files, которое представляет собой централизованное место для таких команд.

Что необходимо сделать для импорта в Unity3D


  • 2f06c67c7d7a403d90bfdf7788d7540c.JPGВ своём проекте в меню GameObject выберите 3D Object->Terrain.
  • Выберите объект и компонент Terrain и откройте раздел Terrain Settings. Рекомендуется отредактировать значения Detail Resolutoin, Control Texture Resolution и Base Texture Resolution.
  • *Если Вы собираетесь импортировать ландшафт в формате RAW16, то лучше предварительно поместить этот файл в свой проект (для RAW8 этого можно можно не делать).
  • Нажмите кнопку Import Raw.
  • В открывшемся окне найдите и выберите ландшафт, который Вы хотите импортировать. Если Вы импортируете файл в формате RAW16, то выберите тип файлов «All files».
  • В появившемся меню в пункте Depth выберите «bit16», если импортируете ландшафт в формате RAW16, для формата RAW8 выберите «bit8». Так же убедитесь, что значение Byte order выставлено на «Windows» и значения Width/Height карты высоты соответствуют значениям импортируемого Вами ландшафта.
  • Измените Terrain Size на значения от импортируемой местности (X соответствует значению Width карты высоты, Z — Height, а значение Y Вам придётся вспоминать самим), чтобы пересозданный terrain соответствовал тому, который Вы экспортировали из WM.
  • 366f5049279244dc826f02ee4c85fb05.jpgНажмите кнопку Import.
  • Назначьте текстуры, которые вы хотите использовать на вашей местности, как обычно. Затем убедитесь, что вы сохранили сцену. Вы должны увидеть красный splatmap для ландшафта, который появится в окне asset'ов.
  • Импортируйте (просто перетащите в окно unity) splatmap, созданный и экспортированный в WM ранее.
  • Перейдите к инспектору для импортированного splatmap'а и измените следующие параметры:

    Texture Type: Advanced
    Read/Write Enabled: checked
    Format: ARGB 32 bit


    Затем нажмите Apply.
  • Скачайте и импортируйте приведённый ниже скрипт в Ваш проект и расположите его в «YourProject/Assets/Editor folder»: скачать.
  • 14275e909f684c02ace61831d38a2b0a.jpgИз меню Terrain, выберите «Replace Splatmap». Если вы не видите эту надпись, значит, что сценарий ReplaceSplatmap.js не был правильно расположен в папке проекта. Перетащите встроенный внутри ландшафта splatmap на первое поле «Splatmap» и импортированный splatmap к полю «New». Убедитесь, что «Flip Vertical» соответствует ориентации Вашей местности.
  • Если Вы — инди-разработчик, то можете взять с полки пирожок: Вы закончили!

e869ab966bc740b7a27d82417b40de51.jpg

P.S.: На этом пока всё. Возможно, ещё будет видеозапись всего этого процесса.

stub-user-middle.gif

© Habrahabr.ru