- Вода для Юнити. Как правильно сделать воду в приложении на Unity3D?
- Вода в Unity
- Вода «Water Basic» в Unity
- Water PRO как вода для Unity
- Water 4 как компонент воды в Unity
- Заключение
- Как мне работать с водой?
- Настройка воды
- Создание воды с нуля (для продвинутых пользователей)
- Свойства в материалах воды
- Water in Unity
- Setting up water
Вода для Юнити. Как правильно сделать воду в приложении на Unity3D?
Вода в играх на Unity — это не редкость. Но вода воде рознь. В некоторых играх она может быть:
отдаленной и практически не иметь влияния на игровой процесс , и быть больше в качестве декора: океан где-то на недосягаемом горизонте;
частично включена в игровой процесс в небольших количествах: дождь, лужи и должна быть более-менее реалистичной ;
полноценным игровым элементом, соответственно , от нее потребуется реалистичность, физика, цвет и т. д. , чтобы максимально приблизит ь ся к реалистичности: должны плавать корабли, подводные лодки, люди, рыбы и др.
Поэтому в некоторых случаях достаточно внутренних инструментов в Unity, в более сложных комбинациях потребуется вмешательство в код.
Вода в Unity
Unity — это крос сп латформенный дви ж ок для создания видеоигр, в которые можно играть на:
Это очень надежный, портативный и широкоформатный инструмент для создания игр. Он получил свое распространение среди многих компаний и особенно среди начинающих разработчиков игр из-за:
наличия мощной бесплатной версии;
средней сложности изучения;
взаимодействия с популярными API: Direct3D, OpenGL, OpenGL ES, Vulkan;
Технологические инструменты, которыми обладает Unity , позволяют разрабатывать очень реалистичные игры. Одним из таких инструментов является создание воды. Вода в Unity может быть добавлена в вашу игру в трех видах:
В Юнити уже включены по умолчанию основные скрипты, шейдеры и визуальные ресурсы для создания этих типов воды.
Можно предположить, что раз вы ищите воду для Юнити, то у вас уже:
установлен Unity последней версии;
есть свой собственный проект на этом движке;
вы создали собственный ландшафт.
Вода «Water Basic» в Unity
Итак, чтобы воспользоваться этим типом воды , нужно:
Открыть вкладку с вашим проектом.
Найти там папку Assets и открыть в ней Enviro n ment.
Там вам будет доступно 2 папки с водой: Water и Water (Basic), выбираем Water Basic.
В этом типе воды вам откро ю тся два префаба: Water Basic Daytime — вода для дневного времен и и Water Basic Nighttime — вода для ночного времени.
Исходя из того, какую сцену вы разрабатываете, выбирайте необходимый префаб и просто перенесите его в игровую сцену в нужное место (допустим , в дырку в земле).
Уже в самой сцен е выделите воду и отрегулируйте ее местоположение и масштаб.
Для более тонкой настройк и этого элемента, когда он будет выделен, то перейдите во вкладку Inspector и осуществите желаемую настройку. Там вы сможете изменить генерацию теней, поменять свойства отражения, добавить волны и отрегулировать их скорость и масштаб.
Когда закончите с настройками, можете перейти в режим «Сцена» и посмотреть, что у вас получилось.
Water PRO как вода для Unity
Чтобы воспользоваться этим префабом, нужно проделать следующее:
Открыть вкладку со своим проектом.
Найти папку Assets-Standar d Assets-Enviro n ment.
В этой папке вам буд у т доступн ы еще две папки: Water и Water Basic. Открываем папку Water.
Внутри опять вас будут ждать 2 папки: Water и Water4. Нас интересует папка Water.
Зайдя в нее, откройте папку Prefabs.
Там , как и при Water Basic , будут доступны два компонента: для дневной и ночной сцены.
Вы б ираете нужный префаб и тоже путем переноса переме щаете его в игровую сцену.
С ним можно проделать те же манипуляции в настройках и в «Инспекторе», как с Water Basic. Только в «Инспекторе» у этой воды будет доступно большее количество различных настроек.
Главное отличие этой воды от Water Basic — это более реалистичный внешний вид и более тонкие настройки света, отражения и сцен. Но при этом нужно помнить, что для всей этой реалистичности потребуется больше вычислительной мощности.
Water 4 как компонент воды в Unity
Чтобы воспользоваться этим префабом , нужно:
Проделать первые 3 пункта, описанные выше.
Потом вам буд у т доступн ы 2 папки: Water и Water4. Выбираем Water4.
Внутри этой папки находим еще одну папку Prefabs.
Тут вам будут доступны 2 префаба: Water4Simple и Water4Advanced. Оба эти компонента в принципе похожи, однако они отличаются некоторыми настройками.
Выполните необходимые настройки положения, а также настройки в «Инспекторе».
В 4-м пунк т е вам будет предложено 2 префаба. На первый взгляд они будут очень похож и , но это не так. Они отличаются настройками:
составом и цветом воды,
пеной на гребнях,
Заключение
Вода в Unity добавляется не слишком сложно, если вас удовлетвори т качество предоставляемых инструментов самого движка. И сходя и з практики , стандартных инструментов достаточно для создания интересных игр, когда вода — это не основной элемент игры. Если же вам потребуется более «крутая» вода, тогда нужно будет вмешательство в код. А это тема уже для другой статьи.
В целом, все описанные 3 инструмента отличаются внешним видом самой воды. Поэтому вы смело можете опробовать все и для себя решить , с каким работать дальше.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Источник
Как мне работать с водой?
Важно: содержимое этой страницы применимо только к настольному режиму редактора.
В Unity включены некоторые префабы с водой (включая необходимые шейдеры, скрипты и ассеты с графикой) в пакетах Standard Assets и Pro Standard Assets. Unity содержит обычную простую воду, в то время как Unity Pro содержит воду с отражениями в реальном времени и преломлениями. В обоих случаях вода поставляется в качестве отдельных дневных и ночных префабов.
Дневная вода с отражениями (Unity Pro)
Дневная вода с отражениями и преломлениями (Unity Pro)
Настройка воды
В большинстве случаев вам достаточно просто разместить один из существующих префабов в вашей сцене (убедитесь, что у вас установлен набор стандартных ассетов):
- В Unity есть Daylight Simple Water и Nighttime Simple Water в Standard Assets->Water .
- В Unity Pro есть Daylight Water и Nighttime Water в Pro Standard Assets->Water (но также требуются некоторые ассеты из Standard Assets->Water ). Режим воды (Simple (простая), Reflective (отражающая), Refractive (преломляющая)) можно изменить в инспекторе.
Для воды префаб использует меш в форме овала. Если вы желаете использовать другой меш, то проще всего просто поменять его в Mesh Filter у объекта воды:
Создание воды с нуля (для продвинутых пользователей)
Простая вода в Unity требует добавления скрипта на плоский меш и использования шейдера воды:
- Подберите меш для воды. Это должен быть горизонтально ориентированный плоский меш. UV координаты не требуются. GameObject с водой должен использовать слой ( layer ) Water, который вы можете установить в инспекторе .
- Добавьте на объект скрипт WaterSimple (из Standard Assets/Water/Sources ).
- Используйте шейдер FX/Water (simple) в материале, или подстройте один из предоставленных материалов воды ( Daylight Simple Water или Nighttime Simple Water ).
Отражающая/преломляющая вода в Unity Pro требует аналогичных шагов для настройки с нуля:
- Подберите меш для воды. Это должен быть горизонтально ориентированный плоский меш. UV координаты не требуются. GameObject с водой должен использовать слой ( layer ) Water, который вы можете установить в инспекторе .
- Добавьте на объект скрипт Water (из Pro Standard Assets/Water/Sources ).
- Используйте шейдер FX/Water в материале, или подстройте один из предоставленных материалов воды ( Daylight Water или Nighttime Water ).
Свойства в материалах воды
Эти свойства используются в шейдере отражающей и преломляющей воды. Большинство из них также используется и в шейдере простой воды.
Свойство: | Функция: |
---|---|
Wave scale | Изменение масштаба карты нормалей волн. Чем меньше значение, тем больше будут волны у воды. |
Reflection/refraction distort | Как сильно отражение/преломление будет искажаться картой нормалей волн. |
Refraction color | Дополнительный оттенок отражения. |
Environment reflection/refraction | Render текстуры для отражения и преломления в реальном времени. |
Normalmap | Определяет форму волн. Итоговые волны производятся путём совмещения этих двух карт нормалей, каждая из которых смещается в разном направлении, с разным масштабом и скоростью. Вторая карта нормалей в два раза меньше первой. |
Wave speed | Скорость смещения для первой (1е и 2е числа) и второй карты нормалей (3е и 4е числа). |
Fresnel | Текстура с альфа-каналом, управляющим эффектом Fresnel — количество видимого отражения против количества видимого преломления, в зависимости от угла зрения. |
Остальные свойства не используются отражающим и преломляющим шейдером, но должны быть настроены в случае, если графический ускоритель пользователя не поддерживает его и вынужден откатиться на более простой шейдер.
Источник
Water in Unity
Unity includes several water Prefabs (including the necessary Shaders, scripts and art Assets) within the Standard Assets packages. Separate daylight and nighttime water Prefabs are provided.
Note that the water reflections described in this document do not work in VR.
Reflective daylight water
Reflective/Refractive daylight water
Setting up water
Place one of the existing water Prefabs into your Scene. Make sure you have the Standard Assets installed:
- В Unity есть Daylight Simple Water и Nighttime Simple Water в Standard Assets->Water.
- В Unity Pro есть Daylight Water и Nighttime Water в Pro Standard Assets->Water (но также требуются некоторые ассеты из Standard Assets->Water). Режим воды (Simple (простая), Reflective (отражающая), Refractive (преломляющая)) можно изменить в инспекторе.
Для воды префаб использует меш в форме овала. Если вы желаете использовать другой меш, то проще всего просто поменять его в Mesh Filter у объекта воды:
Создание воды с нуля (для продвинутых пользователей)
Простая вода в Unity требует добавления скрипта на плоский меш и использования шейдера воды:
- Подберите меш для воды. Это должен быть горизонтально ориентированный плоский меш. UV координаты не требуются. GameObject с водой должен использовать слой (layer) Water, который вы можете установить в инспекторе.
- Добавьте на объект скрипт WaterSimple (из Standard Assets/Water/Sources).
- Используйте шейдер FX/Water (simple) в материале, или подстройте один из предоставленных материалов воды (Daylight Simple Water или Nighttime Simple Water).
Отражающая/преломляющая вода в Unity Pro требует аналогичных шагов для настройки с нуля:
- Подберите меш для воды. Это должен быть горизонтально ориентированный плоский меш. UV координаты не требуются. GameObject с водой должен использовать слой (layer) Water, который вы можете установить в инспекторе.
- Добавьте на объект скрипт Water (из Pro Standard Assets/Water/Sources).
- Используйте шейдер FX/Water в материале, или подстройте один из предоставленных материалов воды (Daylight Water или Nighttime Water).
Свойства в материалах воды
Эти свойства используются в шейдере отражающей и преломляющей воды. Большинство из них также используется и в шейдере простой воды.
Свойство: | Функция: |
---|---|
Wave scale | Изменение масштаба карты нормалей волн. Чем меньше значение, тем больше будут волны у воды. |
Reflection/refraction distort | Как сильно отражение/преломление будет искажаться картой нормалей волн. |
Refraction color | Дополнительный оттенок отражения. |
Environment reflection/refraction | Render текстуры для отражения и преломления в реальном времени. |
Normalmap | Определяет форму волн. Итоговые волны производятся путём совмещения этих двух карт нормалей, каждая из которых смещается в разном направлении, с разным масштабом и скоростью. Вторая карта нормалей в два раза меньше первой. |
Wave speed | Скорость смещения для первой (1е и 2е числа) и второй карты нормалей (3е и 4е числа). |
Fresnel | Текстура с альфа-каналом, управляющим эффектом Fresnel — количество видимого отражения против количества видимого преломления, в зависимости от угла зрения. |
Остальные свойства не используются отражающим и преломляющим шейдером, но должны быть настроены в случае, если графический ускоритель пользователя не поддерживает его и вынужден откатиться на более простой шейдер.
Источник