В статье о создании разрушаемого стекла в Unity был использован достаточно простой скрипт. В данной статье мы создадим более мощный C# скрипт под Unity 5. Начнем с того, что нам нужно создать две модели: 1 - объект, который мы будем ломать, 2 - сломанная версия. В первой статье был использован 3D Max, сегодня мы будем моделировать в Blender3d, скачать можно тут. Версия 2,77a на момент написания статьи. В Блендере есть один очень интересный аддон - Cell Fracture. Он используется для разрушений в кат-сценах, фильмах и прочем. Мы же будем использовать его для своих целей. Подключить аддон очень просто: Заходим в File > User Preferences (Или комбинация клавиш Ctrl Alt U), переходим во вкладку Add-ons, в поиске ищем: Cell Fracture и ставим галочку, чтобы включить аддон. 

Уроки Unity5, gamedev

Unity 5 tutorials, destructible objects, destructible glass, devgam, gamedev, unity

Создание разрушаемого стекла в Blender

Заходим в Blender, выделяем куб и начинаем делать форму стекла. Для этого нажмите S и X,Y или Z, чтобы масштабировать по одной из осей. Должно получиться что-то подобное.

уроки unity5, unity 5, devgam, gamedev, scripting, разрушаемый объект

Создание разрушаемого стекла, разрушаемость в unity, уроки, видеоуроки, для начинающих

Текстурированием и созданием материалов мы займемся позже. Сейчас мы должны сохранить модель в формате FBX.

devgam, gamedev, геймдев

Вернемся к Блендеру, откроем панель инструментов (слева), нажав горячую клавишу T. Слева есть несколько вкладок: Tool, Create, Relations, Animation, Physics, Grease Pencil. Перед тем, как использовать Cell Fracture, нам нужно создать эффект пробития стекла пулей. Для этого нам нужен Grease Pencil. Заходим в эту вкладку, ставим галочку Continuous Drawing, в Data Source выбираем Object, в Stroke Placement > Surface. Затем нажимаем Draw. Если что-то не понятно, то выделите так, как на этом скриншоте.

devgam tutorials, tutorial, unity tutorials, туториал юнити

Теперь нам нужно нарисовать два круга, как на скриншоте ниже.

Разрушаемость в играх, unity уроки для начинающих, геймдев, создание игр

Теперь можно приступить к разбитию стекла. Заходим в Cell Fracture (Tool > Cell Fracture). В открывшемся меню мы видим огромное количество функций, но мы будем работать только с теми, что выделены на фото ниже.

Unity 5 для начинающих, уроки unity 5

Source Limit отвечает за количество деталей, на которые мы разобьем модель. Noise - рандомизатор разрушений, от нуля до единицы. Material отвечает за то, какой материал будет в разрушенной модели, то есть в тех местах, где будет разлом. По умолчанию стоит 0, то есть тот материал, который вы сейчас используете. Если параметр Margin стоит не равный нулю, то в конечной модели у нас будут щели, поэтому выставляем Margin=0. В окне сцен рекомендуется поставить галочку в Next Layer, чтобы разрушенная модель была на новом слое. В итоге мы должны получить вот такие значения: Source Limit=50, Noise=0,25, Material=0, Margin=0,0 и самое главное - Grease Pencil.

Grease Pencil, Blender, Unity 5, Unity, Blender3d

Теперь жмем OK и дожидаемся конечного результата.

Blender Cell Fracture, Unity 5

На этом этапе мы получили разрушенную модель, теперь нам нужно экспортировать ее в Unity 5. Также, как и в первый раз, заходим в File > Export > FBX
Открываем Unity, создаем новый проект или открываем старый. Импортируем модели в Юнити, перенося их в папку Assets

Настраиваем сцену в Unity

Сейчас мы должны настроить нашу сцену. Выделяем нашу модель, в окне Inspector добавляем Box Collider и Rigidbody. Также создаем материал, называем как вам угодно, пусть будет GlassMat. На фото ниже отмечены те настройки, которые нам понадобятся для создания прозрачного стекла.

Unity Scene, Destruction in Unity

Прозрачность в Blender, Transparent Unity 5, Прозрачность Unity

Поменяем Rendering Mode на Transparent, Metallic=0,3, Smoothness=0,8. Нажмите на выбор цвета и поставьте такие значения: R=214, G=250, B=256, A=50. Последний параметр отвечает за прозрачность объекта, можете выставить больше или меньше, как вы считаете нужным. Должен получиться материал, похожий на этот:

Material Unity 5, Unity 5 materials, gamedev, unity

На сцене для примера мы должны поставить 3 одинаковых целых стекла, над ними 3 сферы, на каждой должен висеть Rigidbody и SphereCollider. Данные три сферы будут разбивать наши стекла. Можно, конечно, добавить что-то другое, но смысл будет один и тот же. Перейдем к разрушенной модели. Модель состоит из множества осколков, которые не имеют не коллайдеров, ни Rigidbody. Выделив все части, добавим RigidBody и MeshCollider в окне Inspector. Теперь все готово к тесту.

Скрипт разбивания в Unity 5

Код можно будет скачать с GoogleDrive здесь, изучите его сами, мы расскажем вам только то, как им нужно пользоваться.
Скрипт содержит несколько переменных: Broken Prefabs, Collision Sounds, Breaking Sounds, Apply Collision Forcem Apply Hp, Max Hp, Current Hp, Apply Explosion Force и т.д. В Broken Prefabs можно вставить несколько сломанных версий, выбираться будут рандомно. Со звуками также, можно выбрать несколько. Обязательно ставим Apply Collision Force, Collision Force=1, можно добавить жизни объекту и так далее. Очень интересными будут последние переменные: Explosion Force и Radius. Можно поэкспериментировать с ними. Вот результат, который должен у нас получиться:

Unity tutorial

Unity breaking tutorial, broken glass, devgam, gamedev, unity