Car Customization - Project 1
Детали проекта:
Студия заинтересована в создании кроссплатформенной игры с гонками и кастомизацией автомобилей. Команде дизайнеров нужен прототип взаимодействия со следующими функциями визуальной настройки:
- Настраиваемый шейдер поверхности, который позволяет игроку рандомизировать или выбрать новую цветовую схему для автомобиля. Цветовая схема должна гармонично (но не идентично) изменять цвета краски и обивки, сохраняя при этом детали поверхности, такие как ржавчина и износ. Должен быть возможен полный спектр RGB.
- Система наклеек, которая позволяет игроку при желании добавить один из 4 различных наборов «татуировок» для дальнейшей настройки внешнего вида. Татуировки могут быть однотонными.
- Система автомобильных украшений, которая позволяет игроку по желанию добавить одно из 4 различных украшений, например. спойлеры, орнамент на капоте и т. д. Они также должны использовать пользовательский шейдер поверхности.
- Экранный графический интерфейс с кнопками и ползунками для управления настройкой.
- Конечный автомобиль должен экспортироваться из сцены «Построй свою машину» в сцену «Гонка!» сцена.
Используемые активы:
- Retro Cartoon Cars – ресурс Cidada от RCC Design, https://assetstore.unity.com/packages/3d/vehicles/land/retro-cartoon-cars-cicada-96158.
- Бесплатный пакет универсальных аксессуаров, https://assetstore.unity.com/packages/3d/props/free-universal-accessories-asset-pack-141691
- бесплатные научно-фантастические наклейки Yughues,https://assetstore.unity.com/packages/2d/textures-materials/yughues-free-sci-fi-decals-13322 (не используется, так как декали не добавлялись)
Видео, демонстрирующее функциональность: https://youtu.be/lVZNjOTO3Lk
Анализ:
На основании требуемых функций было задано несколько вопросов:
- Как изменить оттенок шейдера через пользовательский интерфейс?
- Как с помощью одного ползунка сделать интерьер и экстерьер автомобиля разными?
- Как экспортировать доработанную машину в новую сцену?
- Как применить отдельные украшения к машине?
Подход:
После исследования и тестирования шейдеров, ползунков и дочерних объектов был выбран следующий подход:
- Шейдер с плавающим свойством "hue" со значением от 1 до 360, которое определяет цвет материала по всему спектру RGB.
- Второй шейдер с тем же использованием свойства оттенка, что и внешний шейдер, но также проходит через узел, который обесцвечивает его для салона автомобиля.
- Ползунок, который одновременно управляет оттенком обоих автомобильных шейдеров, изменяя значение свойства оттенка от 1 до 360 на графике шейдера.
- Кнопки, которые активируют один из четырех дочерних объектов украшения автомобиля на автомобиле и деактивируют все остальные дочерние элементы украшения автомобиля при нажатии.
- Скрипт, использующий класс DontDestroyOnLoad.перевезти машину на новую сцену
Разбивка подхода:
- Шейдеры экстерьера и интерьера автомобиля:
И внешний, и внутренний шейдер используют плавающее свойство под названием "hue", которое подключается к узлу Multiply, умножающему float на 360, что делает его диапазоном от 1 до 360. Узел Multiply подключается к узлу Hue, который установлен на красный по умолчанию, а диапазон 1-360 затем определяет оттенок узла.
В шейдере экстерьера различные типы шума объединяются для создания сверкающей текстуры краски. Узел Hue и узел с окончательным шумом, узел Divide, затем подключаются к узлу Multiply, чтобы применить оттенок к текстуре шума, и этот узел Multiply подключается к узлу Albedo мастера PBR. Узел «Эффект Френеля» и узел «Простая кубическая карта», использующий отражающую кубическую карту Unity по умолчанию, затем подключаются к узлу «Умножение», который подключается к узлу «Излучение» PBR Master для создания отражающего блеска на автомобиле.
Шейдер интерьера работает аналогично, но оттенок применяется к текстуре, которая идет с моделью автомобиля, а не к текстуре, созданной в графе шейдера. Узел Texture 2D Asset, настроенный на использование текстуры салона автомобиля, затем подключается к узлу Sample Texture 2D для использования в узле Multiply. Система оттенков, идентичная внешнему шейдеру, также подключается к узлу Multiply, устанавливая цвет текстуры таким же, как оттенок.Затем узел «Умножение» подключается к узлу «Насыщенность», который обесцвечивает его, чтобы он отличался от внешнего оттенка, но при этом выглядел эстетически хорошо. Наконец, этот узел Saturation подключается к узлу Albedo мастера PBR.
- Интерфейс:
Ползунок в пользовательском интерфейсе имеет скрипт, который позволяет ему управлять плавающим свойством «оттенок» для изменения узла оттенка любого материала, применяемого к указанному игровому объекту.
Каждый из украшений автомобиля задается как дочерний элемент сборного автомобиля, а кнопки в пользовательском интерфейсе имеют скрипт, который активирует соответствующие украшения, деактивируя остальные три.
- Экспорт:
Сценарий экспорта загружает следующую сцену, не уничтожая объект автомобиля из сцены настройки.
Как скачать Car Customization - Project 1 через торрент
Всего несколько простых шагов:
- Устанавливаем программу μTorrent, через которую мы будем скачивать торренты
- Выбираем и скачиваем подходящий торрент-файл репака Car Customization - Project 1
- Двойным кликом открываем скаченный файл, программа μTorrent запустится автоматически и предложит выбрать место для сохранения дистрибутива.
- После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!