Уроки Uniti3d - Отведите Меня Домой! Внедрение моделей

Теперь, когда наш остров готов к созданию геймплея, первое ключевое понятие, которое мы изучим, является внедрение модели из внешних приложений. Поскольку мы предоставили вам модели для упражнений в этой книге, вы должны будете загрузить и импортировать в ваш проект пакет Unity, который содержит вашу первую модель – outpost.

Импорт модели из пакета.
Importing the model package.
Скачайте (если вы не сделали это раньше) архив ресурсов с сайта Packt publishing - 93-komponenty.zip. Найдите файл с именем Outpost.unitypackage из списка файлов, связанных с этой книгой, а затем вернуться в Unity, идите в главное меню, далее Assets -> Import Package.
Фото

Оставьте все файлы отмеченными и нажмите кнопку Import. Теперь, когда вы импортировали содержимое пакета, вы увидите новую папку ресурсов под названием outpost в окне Project, а, следовательно, и в папке Assets вашего проекта в вашей операционной системы. Откройте эту папку, щелкнув на серой стрелке слева.
Фото
Импортированная папка будет содержать саму модель и два подкаталога, один из них Materials,а второй Textures, содержит текстуры для материала из первого каталога.

Общие настройки моделей.

Прежде чем размещать любую модель на сцене, вы должны настроить их параметры в Inspector-е. Когда Unity новую модель она преобразует ее в FBX формат.
Когда выбран файл модели в окне проекта (Project), с помощью компонента FBX Importer в инспекторе объектов, вы можете настроить Meshes, Materials, и Animations, перед тем как модель станет частью игры.

Meshes.

В разделе Meshes компонента FBX Importer, вы можете указать:
• Scale Factor: Обычно установлен в значение 1 и указывает, что 1 unit (единица) должен быть равен 1 метру в игровом мире. Если вы хотите, что бы ваша модель имела другую размерность, то укажите ваше соотношение тут, прежде, чем добавить модель на сцену. Тем не менее, вы всегда можете масштабировать ваш объект на сцене, используя параметр компонент Scale компонента Transform.
• Generate Colliders: Если включено, то меши импортируются с автоматически присвоенным Mesh Colliders. Это рекомендуется для вторичной геометрии и не рекомендуется для той, которую будет передвигать игрок.
• Calculate Normals: Если включено, генерирует нормали к импортированной геометрии.
• Smoothing Angle: Используя функцию Calculate Normals, сглаживание позволяет вам определять, в какой степени острые грани будут рассматриваться как тупые.
• Split Tangents: Этот параметр позволяет корректировки, для моделей, импортированных с неправильной Bump Mapped. Bump Mapping представляет собой систему с использованием двух текстур, одна представляет внешний вид модели, и другая карту высот (heightmap). Техника заключается в том, что отклонение каждого пикселя от нормали к поверхности просчитываемого объекта смотрится в карте высот и применяется перед обсчётом освещения, что создает эффект рельефной поверхности.
• Swap UVs: Позволяет коррекцию ошибок импортированных lighting shaders.

Materials.

Раздел Materials позволяет вам выбирать, как толковать материалы, созданные в сторонних 3D приложениях. Пользователь может выбрать из выпадающего меню Generation, либо Per Texture (создает материал Unity для каждого найденного файла текстуры), либо Per Material (создает Материалы (Materials) только для существующих материалов в оригинальном файле)

Animations.

Раздел Animations позволяет интерпретировать анимацию, созданную в сторонних 3D приложениях. Из выпадающего меню Generation вы можете выбрать один из следующих способов:
• Don't Import: Анимация не импортируется.
• Store in Original Roots: Модель воспроизводит анимацию отдельных родительских объектов, поскольку родительский или корневой объекты могут импортировать в Unity по-разному.
• Store in Root: Модель воспроизводит анимацию только родительских объектов для всех групп.
• Store in Nodes: Модель воспроизводит анимацию отдельных дочерних объектов, получаем больший контроль над анимацией каждой части из скрипта.

Далее раздел Animations содержит следующие настройки:
• Bake Animations: При использовании IK (Inverse Kinematics) в импортируемой модели, включите эту опцию.
• Split Animations: Опция используется, если в одном файле импортируется сразу несколько анимаций.

Настройка модели outpost.

Выберете модель outpost в окне проекта (Project), мы будем использовать компонент FBX Importer в инспекторе свойств (Inspector), для настройки этой модели. Убедитесь, что:
• Раздел Meshes: Scale Factor = 1, и Generate Colliders/Calculate Normals выбраны.
• Раздел Materials: Generation установлен в Per Texture.
• Раздел Animations: Reduce Keyframes и Split Animations выбраны.
Теперь, используя таблицу внизу окна Inspector, добавим три анимационных клипа, нажав на + (плюсик), расположенный справа.
Первой анимации будет автоматически присвоено имя idle (простой), это хорошо, но нам еще надо указать диапазон кадров. Для этого в столбце Start запишите 1, указав Unity, что надо начинать с первого кадра, а в столбце End - 2.

Подобным образом укажите еще две анимации:
• dooropen (открытие двери) — кадры от 3 до 12;
• doorshut (открытие двери) — кадры от 13 до 24.

Имейте в виду, что имена анимаций чувствительны к регистру, когда к ним обращаются из скрипта, поэтому убедитесь, что вы задали имена как указанно в книге.

Поле Loop в таблице Animations может ввести в заблуждение новых пользователей. Если оно включено, то в конце анимации будет вставлен дополнительный кадр, соответствующий первому кадру анимации. Используется в случаях, когда нужно ‘закольцевать’ анимацию, но первый и последний кадры не совпадают.
Фото
Нажмите на клавишу Apply, что бы подтвердить все внесенные изменения – модель гоова для размещения на сцене.

Резюме.

В этой главе мы научились основам для создания окружения. Начав с простой плоскости, мы создали готовый к исследованию остров. Кроме того, мы рассмотрели основыне принципы работы со светом и звуком.
Помните, что вы всегда можете доработать ваш остров, добавив ему больше детализации и реалистичности.
В дальнейшем мы добавим на остров дополнительные детали, заставим работать наш вулкан и много другое.
В следующем уроке мы рассмотрим, как можно заставить открываться двери нашего outpost-а, когда к ней подходит игрок. Что бы сделать это мы начнем изучать JavaScript для Unity.