Описание

Компонент для преобразования 3D моделей в Unity Terrain. Может работать как со всеми объектами на слое, так и только с выбранными объектами. Не требует добавления компонентов физики.

 

Использование

Добавьте в сцену 3D модели, которые вы хотите преобразовать в Terrain. Количество моделей не ограничено, и они могут иметь любую вложенность.

Важно: Вы можете использовать любую модель, но Unity Terrains могут быть только прямоугольной формы.

Выберите в меню пункт «Window / Infinity Code / Mesh to Terrain», чтобы открыть окно компонента.

 

Окно компонента состоит из трех разделов:

  • Meshes – Настройки моделей, которые будут преобразованы в местности.
  • Terrains – Список местностей.
  • Textures – Настройки генерации текстур.

 

В пункте «Mesh select type» раздела Meshes, выберите каким образом вы хотите определять модели для преобразования:

  • GameObjects – Объекты нужно добавить вручную. Для всех добавленных объектов учитываются подобъекты. В целях исключения ошибок необходимо убрать из подобъектов все лишние объекты не относящиеся к местностям.
  • Layers – В качестве моделей для конвертации используются все модели на слое. В целях исключения ошибок необходимо со слоя убрать все лишние объекты, не относящиеся к местностям.

 

В пункте «Direction», укажите направление трассировки лучей:

  • Normal – Лучи идут сверху-вниз.
  • Reversed – Лучи идут снизу-вверх. Нужно использовать в случае, если полигоны модели обращены вниз.

 

В пункте «Y Range», укажите требуемый диапазон высот. Доступные значения:

  • Minimal Range – диапазон значений будет определен автоматически на основе границы Y meshes.
  • Long Mesh Side – диапазон значений будет определен автоматически на основе максимального размера границ X и Z выбранных mesh.
  • Fixed Value – позволяет указать диапазон значений вручную. Чем больше значение, тем ниже точность.

 

В пункте «Type» раздела Terrains, выберите:

  • Exist Terrains – Если вы хотите преобразовать существующие terrains. Для этого расположите terrains под моделями и добавьте их в список.
  • New Terrains – Terrains будут созданы и расположены под моделями автоматически. В соответствующих полях укажите количество terrains, которые будет созданы.

 

Если в пункте «Type» раздела Terrains выбрано «New Terrains», то открываются дополнительные настройки:

  • Count – Количество terrains, которые вы хотите получить.
  • Bounds – Границы моделей:
    • Auto Detect – границы модели определяются автоматически.
    • From GameObject – границы модели задаются другим GameObject. GameObject границ должен быть Cube без вращения и включать в себя всю область, которую необходимо преобразовать.
    • Select Bounds – вы самостоятельно определяете границы (как в Collider). Нажмите «Show Selector», чтобы начать задавать границы.
  • Настройки создаваемых terrains.

 

Если вы хотите использовать сглаживание, отметьте пункт «Use smoothing of height maps» и установите степень сглаживания.

 

Поле «Holes» определяет поведение Mesh to Terrain для участков модели, где высота не известна (дыры и края модели, если модель не прямоугольная):

  • Minimum Value – будет использовано минимальное значение высоты.
  • Neighbor Average – высота будет рассчитываться на основе соседних известных значений.

 

Нажмите кнопку «Start» и дождитесь окончания конвертации. В зависимости от мощности компьютера, количества и настроек это может занять от нескольких секунд, до нескольких минут.

 

Внимание. Если на модель добавлен collider, отличный от «Mesh Collider», она может быть некорректно обработана. Для решения проблемы удалите с модели компонент collider.

 

Конвертирование из контекстного меню

В окне «Hierarchy» нажмите правой кнопкой на GameObject, который вы хотите конвертировать в terrain. Откроется окно «Mesh to Terrain» с выбранным GameObject.

 

Дыры

Unity Terrains не поддерживает дыры, но вы можете обойти это.

Используйте поле «Holes», чтобы определить поведение Mesh to Terrain для участков модели, где высота не известна (дыры и края модели, если модель не прямоугольная).

Если вы хотите сделать дыры, то вы можете использовать сторонние assets (Terrain Hole System или аналоги).

 

Работа с Relief Terrain Pack

Relief Terrain Pack не поставляется вместе с Mesh to Terrain и по умолчанию его поддержка отключена.

Импортируйте Relief Terrain Pack в ваш проект. Откройте окно Mesh to Terrain. Third-party / Enable Relief Terrain Pack.

Никаких настроек Relief Terrain Pack не требуется. Если у вас возникли какие-нибудь вопросы по работе Relief Terrain Pack, вы можете найти ответы на них в документации Relief Terrain Pack.

Если вы хотите удалить Relief Terrain Pack из проекта, сначала отключите его в Mesh to Terrain (Third-party / Disable Relief Terrain Pack).

Если вы забыли отключить поддержку Relief Terrain Pack и удалили его, то вы увидите ошибки в консоли. Чтобы вручную удалить поддержку Relief Terrain Pack, откройте PlayerSettings (Edit / Project Settings / Player) и удалите соответствующую запись из «Scripting Define Symbols».

 

Обновление версий

В Unity Asset Store мы отправляем только стабильные версии. Период обновления несколько месяцев.

Mesh to Terrain имеет встроенную систему обновления, с использованием которой вы можете получить ранний доступ, ко всем версиям и обновлениям.

Выберите в меню «Window / Infinity Code / Mesh to Terrain / Check Updates», чтобы открыть окно проверки обновлений. Укажите ваш Invoice Number, выберите канал обновления и нажмите «Check New Versions».

Если обновления доступны, то вы можете прочитать список изменений и скачать обновление.

Если у вас возникли проблемы с установкой обновления, то:

  1. Откройте пустую сцену.
  2. Удалите папку «Infinity Code / Mesh to Terrain».
  3. Импортируйте новую версию в проект.

 

Решения проблем

После запуска вы получаете ошибку границ или вообще ничего не происходит.

Бывают 2 причины:

  1. Модели в сцене имеют размер, недостаточный для корректной работы физики. Вам нужно увеличить модели в 1000+ раз и запустить компонент заново. Проблема заключается в том, что по умолчанию Unity импортирует модели с коэффициентом масштабирования «0.01».
  2. Вы выбираете модели не находящиеся в сцене. Добавьте модели в сцену и конвертируйте их.

 

Terrains не соответствуют моделям по оси Y.

Увеличьте модели в несколько раз.

 

Созданные terrains имеют недостаточную разрешение/точность.

  1. Увеличьте параметр Height Map Resolution.
  2. Увеличьте количество создаваемых terrains.

 

Вы не видите траву или деревья.

  1. Приблизьте камеру, к месту где вы рисуете траву или деревья.
  2. Увеличьте значение «Tree Distance» в настройках Terrain.

 

Вы получаете ошибку «Selected meshes not in the scene.», а модель находится в сцене.

Пожалуйста, убедитесь, что вы выбираете модель из вкладки «Scene».

Русский