Статья:

Использование префабов для работы в нескольких программах

Журнал: Научный журнал «Студенческий форум» выпуск №10(31)

Рубрика: Технические науки

Выходные данные
Бариев И.И., Гильфанов К.Х. Использование префабов для работы в нескольких программах // Студенческий форум: электрон. научн. журн. 2018. № 10(31). URL: https://nauchforum.ru/journal/stud/31/35705 (дата обращения: 31.03.2020).
Журнал опубликован
Мне нравится
на печатьскачать .pdfподелиться

Использование префабов для работы в нескольких программах

Бариев Искандер Ильдарович
магистрант, Казанский национальный исследовательский технологический университет, РФ, г. Казань
Гильфанов Камиль Хабибович
д-р техн. наук, профессор, Казанский государственный энергетический университет, РФ, г. Казань

 

Префаб — это один из типов ресурсов, который предназначен для многократного использования и хранится в Project View. Префаб может быть вставлен в любое количество сцен, а также несколько раз. Когда префаб добавляется в сцену, создаётся его экземпляр, являющейся ссылками на оригинальный префаб и, фактически, его клон. Независимо от того, на сколько много экземпляров в проекте, при изменении префаба изменяются, соответственно, и все его экземпляры.

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

Можно сказать, что, создав один раз префаб, содержащий в себе некоторое количество 3D моделей, скриптов, физических констант, и логик поведения, можно создать некоторый “стереотип поведения ” данной модели. Они будет являться префабом.

Как создать префаб ? Есть несколько способов:

1-й способ, самый быстрый, но очень некачественный:

Выделяете нужные объекты (лкм + ctrl) и жмёте кнопку Create Prefab (находится там, где выбираются объекты). Минусы данного способа: при вставке на карту объект оказывается не в нужном месте, и его приходится искать по карте. У каждого вставленного объекта будут одинаковые имена.

2-й способ, правильный.

Снова выделяете нужные объекты пкм → copy (ctrl +c). File → New и вставляете на карту скопированные объекты. Передвиньте точно на центр координат. Выделите вставленные объекты (если сняли выделение) и жмите Create Prefab. Минусы данного способа: у каждого вставленного объекта будут одинаковые имена.

3-й способ. Продвинутая версия.

Снова выделяете нужные объекты пкм → copy (ctrl +c). File → New и вставляете на карту скопированные объекты. Передвиньте точно на центр координат.

Например, вы хотите создать префаб кнопка, которая включает свет. Если оставить обычные имена, при вставке на карту всё перепутается. Как же этого избежать?

Например, ваша лампочка называется light, и от кнопки идёт команда OnPressed > light > TurnOn. Берём и модифицируем наш префаб двумя символами "i". Изменяем имя лампочки на light_i и в команде тоже меняем на light на light_i ( OnPressed > light_i > TurnOn )

Что же за "i" ?

i - это переменная, которая будет изменяться сама. Первый вставленный на карту префаб будет:

light_1 и OnPressed > light_1 > TurnOn

2-й префаб уже автоматически переименует имя и команду, и в итоге получится:

light_2 и OnPressed > light_2 > TurnOn и.т.д.

Далее как всегда центруете это всё, выделяете и жмёте Create Prefab.

Для того, чтобы вставить префаб на карту, выберем Block Tool [Shift-B], затем в панели New Objects в строке Categories выберем одну из библиотек префабов, у нас будет только box, еще префабы под Half - life 2.

Давайте посмотрим поподробнее на префаб конкретно в программе Unity 5.

Теперь давайте посмотрим на свойства самого Prefab который мы создали и вообще что с ним можно сделать. Во первых в окне Hierarchy он синего цвета. То есть все что создано Prefab в этом окне выделено синим. Если мы в окне Hierarchy выделим Cube то бишь Prefab, то в окне Inspector увидим что появилась строка Prefab, Select, Revert, Apply.

Select показывает к какому именно Prefab относится данный Prefab в проекте, да пока он у нас один это не сложно и так, а когда их будет много полезная опция. Revert возвращает Prefab к изначальному состоянию если вы его переместили, изменили размеры, добавили текстуру и тд. Apply наоборот, позволяет сохранить необходимые изменения, то есть если вы изменили размер, или еще чего, и хотите чтобы дальнейшие Prefab были такие же как тот что вы уже изменили, тогда просто нажимаете Apply и затем кнопкой Revert уже не сможете его изменить. Но и следующие уже будут такие как тот что вы создали.

Но несмотря на все преимущества префабов программисты работают в разных программах, и поэтому у всех будут разные форматы итоговых работ. Что может как отразиться на результате, так и сделать невозможным интеграцию двух работ разных программистов.

Поэтому Unity воспринимает один из самых распространённых форматов-fbx.

FBX (Filmbox) — технология и формат файлов, разработанный Kaydara. В настоящее время принадлежит компанией Autodesk и продолжает ею разрабатываться. Технология используется для обеспечения совместимости различных программ трехмерной графики.

FBX —недокументированный формат.

Почему именно FBX и в чем его достоинства?

Универсальное представление данных трехмерной модели изделия – это основное достоинство формата FBX. Отдельные конструктивные элементы, полученные в CAD различного уровня, могут быть преобразованы в единый формат обработки данных – формат FBX. Разработчиками данного формата предпринята попытка научить проектировщиков 3D-моделей “разговаривать на одном языке”.

Тип файла: Autodesk FBX Interchange File

Разработчик: Autodesk Категория: 3D-изображения

2D- и 3D-чертеж, сохраняемые в формате Autodesk FBX, поддерживает всю точность и функционал оригинального файла и может управляться различными программами. Применяется для создания возможности взаимодействия между 3D-приложениями.

Файлы FBX могут конвертироваться из форматов .OBJ, .DXF, .3DS и .DAE (COLLADA) при помощи бесплатной утилиты преобразований FBX.

При всех своих достоинствах формат и все обслуживающие его программы бесплатны. Поэтому в большинстве программ уже перешли на этот формат.

Unity поддерживает FBX файлы, которые могут быть получены из многих популярных 3D-приложений. Используйте эти указания, чтобы гарантировать лучший результат.

Select > Prepare > Check Settings > Export > Verify > Import

Что вы хотите экспортировать?

Будьте внимательны при экспорте контекстов, например, мешей, камер, источников света, рига анимаций и т.д.

Приложения часто позволяют экспортировать выбранные объекты или всю сцену.

Убедитесь, что вы экспортируете из вашей сцены объекты, которые вы хотите использовать. Делайте это путём экспортирования выбранных, или удаляя нежелательные данные из сцены.

Обычно хорошей практикой является работа с файлом, в котором находятся все источники освещения, направляющие, контрольные риги и т.д., при этом экспортируя только нужные вам данные с помощью export selected, предустановок экспорта или даже с помощью пользовательского экспортера сцены.

Что вам следует включать в экспорт?

Подготовьте ваши ассеты:

Меши - Удалите историю построения, неоднородные рациональные безье-сплайны (Nurbs), неоднородные рационально сглаживаемые сетки (Nurms), высокополигональные поверхности должны быть конвертированы в полигоны, например, в трёхсторонние или четырёхсторонние

Анимация - выберите верный риг, проверьте частоту кадров, длину анимации и т.д.

Blend Shapes / Морфинг - Убедитесь, что ваши Blendshapes (в Maya) или Morph targets (в Max) соответственно назначены / настроены в экспортируемом меше

Текстуры - Убедитесь, что ваши текстуры уже загружаются из папки проекта Unity или скопипрованы в папку с названием \textures в вашем проекте

Сглаживание - Проверьте, нужны ли вам группы сглаживания и/или сглаживание меша

Как мне включить в экспорт эти элементы?

Проверьте настройки экспорта FBX.

Проверяйте настройки в диалоговом окне экспорта, чтобы знать чего ожидать и какие выставлять настройки для fbx в Unity - ниже см. изображения 1, 2 и 3

Убедитесь, что Animation / Deformations / Skins / Morphs настроены верно

Узлы, маркеры и их трансформации можно экспортировать

Камеры и источники света в Unity импортируются некорректно

Какую версию FBX вы используете?

Используйте последнюю версию FBX по возможности.

Autodesk регулярно обновляют их инсталлятор FBX, что может привести к разным результатам с разными версиями их собственного ПО и других сторонних 3D приложений

Версию можно посмотреть в Advanced Options > FBX file format.

Если вы столкнулись с какими-либо проблемами, то при необходимости вы можете откатиться до версии 2012.2

 

Список литературы:
1. Game Optimization (+code) http://mirknig.su/knigi/programming/32690-unity-5-game-optimization-code.html
2. Getting Started With Unity 5 http://freepdf-books.com/getting-started-with-unity-5/