Разрушаемые объекты в играх

Современные игры радуют нас не только красивой графикой, но и впечатляющей физикой. К сожалению, разработчики забывают при этом про сюжет и геймплей, ну да ладно, бывают и исключения. В Unity уже встроен физический движок, с этим проблем нет. Тем не менее, вопрос остается открытым. Как добавить разрушаемый объект на сцену? Для примера, попробуем разбить на части обычный куб. В этом уроке нам понадобиться 3D редактор и лучше всего подойдет бесплатный Blender, у него есть все необходимые инструменты для решения нашей задачи.

Для начала, надо скачать и установить Blender.
Запускаем редактор и идем в настройки File -> User Preferences, нужно подключить аддон, в окне настроек есть поиск, ищем cell fracture, поставьте галочку на Object: Cell Fracture и кликаем кнопку внизу Save User Settings. Готово, приступаем к редактированию.

На сцене у нас куб, камера и источник света. Нужно всё удалить, кроме куба. Чтобы выделить нажмите правую кнопку мыши, затем, нажмите клавишу Х и появится меню, кликаем Delete.

Чтобы текстура правильно отображалась на объекте, нужно сделать UV развертку, переходим в соответствующий экран редактирования:


Выделите куб и нажмите клавишу TAB, это переключатель режимов Object Mode / Edit Mode. Так вот, переходим в Edit Mode и убираем выделение, клавиша А - это выделить всё или убрать выделение.

Для удобства редактирования, нажмем пару кнопок на панели снизу:


Далее, выделаем края объекта (правой кнопкой мыши) с зажатой клавишей "шифт". Это нужно сделать так, словно вы разрезаете бумажный кубик, т.е. выделяете те края, чтоб получилось развернуть куб на плоскости. После того как закончите, нажмите Ctrl+E и жмем Mark Seam. Все выделенные края объекта будут помечены красным цветом.

Нажимаем клавишу А, чтобы снова выделить весь куб, жмем клавишу U -> Unwrap, должно получиться что-то вроде этого:


Если что-то получится не так, то просто выделите весь объект, затем Ctrl+E -> Clear Seam и можно попробовать заново.

Окей, если всё хорошо, возвращаемся в обычный экран Default.

Добавим материал нашему кубу с таким же именем Cube, чтоб не путаться потом. Делается это в правой панели, на вкладке материалов:

Разрушаемые объекты в играх

Экспортируем наш куб в формат FBX


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

Но, продолжим редактировать. Добавьте еще один материал с именем Cube_Cell:


Данный материал для внутренней стороны объекта.

Далее, тут-же переходим на вкладку Particles -> New и настройте так как показано на скриншоте:


Остальные параметры оставьте по умолчанию.

Куб готов к разрушению.
Переходим в режим Object Mode (TAB), на панели слева кликаем Cell Fracture.
Настройте как показано ниже:


Source Limit - сколько будет частей, чтем их больше, тем выше нагрузка соответственно. Matereal - айди материала, который будет использован для внутренних частей. Жмем Ok и готово. Разбитый объект будет создан на новом слое, переключаться между ними можно тут:


Экспортируем в такой же формат как и ранее.

Импортируем нашу модель в Unity, выберете его и поставьте галочку напротив Generate Colliders и жмем Apply.

Добавляем куб на сцену и удаляем первый вложенный объект с таким-же именем, это целый куб, он нам не нужен.


Все части помещены как *_cell выделите их все, затем, добавляем компонент Rigidbody, а так-же поставить галочку Convex в Mesh Collider, иначе физика работать не будет.

В той папке, куда вы импортировали модель, появилась папка Materials с материалами нашего куба. Настраиваем и тестируем.

Комментариев 2

Офлайн
SparoW2021 11 февраля 2018
Заранее прошу прощения за скорее всего глупые вопросы) а для чего добавлялась Particle System?
Офлайн
Light 11 февраля 2018
SparoW2021, попробуй сделать тоже самое, но без партиклов.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Яндекс.Метрика