Как сделать воду в юнити
Перейти к содержимому

Как сделать воду в юнити

  • автор:

Как мне работать с водой?

Важно: содержимое этой страницы применимо только к настольному режиму редактора.

В 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 требует добавления скрипта на плоский меш и использования шейдера воды:

  1. Подберите меш для воды. Это должен быть горизонтально ориентированный плоский меш. UV координаты не требуются. GameObject с водой должен использовать слой ( layer ) Water, который вы можете установить в инспекторе .
  2. Добавьте на объект скрипт WaterSimple (из Standard Assets/Water/Sources ).
  3. Используйте шейдер FX/Water (simple) в материале, или подстройте один из предоставленных материалов воды ( Daylight Simple Water или Nighttime Simple Water ).

Отражающая/преломляющая вода в Unity Pro требует аналогичных шагов для настройки с нуля:

  1. Подберите меш для воды. Это должен быть горизонтально ориентированный плоский меш. UV координаты не требуются. GameObject с водой должен использовать слой ( layer ) Water, который вы можете установить в инспекторе .
  2. Добавьте на объект скрипт Water (из Pro Standard Assets/Water/Sources ).
  3. Используйте шейдер 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 — количество видимого отражения против количества видимого преломления, в зависимости от угла зрения.

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

Свойство: Функция:
Reflective color/cube and fresnel Текстура, которая определяет цвет воды (RGB) и эффект Fresnel (A), в зависимости от угла зрения.
Horizon color Цвет воды на горизонте (используется только в шейдере простой воды).
Fallback texture Текстура для отображения воды на очень старых видео картах, если не может работать ни один из более красивых шейдеров.

Аппаратная поддержка

  • Отражающая + преломляющая вода работает на видео картах с поддержкой pixel shader 2.0 (GeForce FX и новее, Radeon 9500 и новее, Intel 9xx). На более старых адаптерах используется отражающая вода.
  • Отражающая вода работает на видео картах с поддержкой pixel shader 1.4 (GeForce FX и новее, Radeon 8500 и новее, Intel 9xx). На более старых видео картах используется простая вода.
  • Простая вода работает практически везде, с различными уровнями детализации, в зависимости от аппаратных возможностей.

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 требует добавления скрипта на плоский меш и использования шейдера воды:

  1. Подберите меш для воды. Это должен быть горизонтально ориентированный плоский меш. UV координаты не требуются. GameObject с водой должен использовать слой (layer) Water, который вы можете установить в инспекторе.
  2. Добавьте на объект скрипт WaterSimple (из Standard Assets/Water/Sources).
  3. Используйте шейдер FX/Water (simple) в материале, или подстройте один из предоставленных материалов воды (Daylight Simple Water или Nighttime Simple Water).

Отражающая/преломляющая вода в Unity Pro требует аналогичных шагов для настройки с нуля:

  1. Подберите меш для воды. Это должен быть горизонтально ориентированный плоский меш. UV координаты не требуются. GameObject с водой должен использовать слой (layer) Water, который вы можете установить в инспекторе.
  2. Добавьте на объект скрипт Water (из Pro Standard Assets/Water/Sources).
  3. Используйте шейдер 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 — количество видимого отражения против количества видимого преломления, в зависимости от угла зрения.

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

Свойство: Функция:
Reflective color/cube and fresnel Текстура, которая определяет цвет воды (RGB) и эффект Fresnel (A), в зависимости от угла зрения.
Horizon color Цвет воды на горизонте (используется только в шейдере простой воды).
Fallback texture Текстура для отображения воды на очень старых видео картах, если не может работать ни один из более красивых шейдеров.

Вода для Юнити. Как правильно сделать воду в приложении на Unity3D?

Напишем

Чтобы воспользоваться этим префабом , нужно:

  1. Проделать первые 3 пункта, описанные выше.
  2. Потом вам буд у т доступн ы 2 папки: Water и Water4. Выбираем Water4.
  3. Внутри этой папки находим еще одну папку Prefabs.
  4. Тут вам будут доступны 2 префаба: Water4Simple и Water4Advanced. Оба эти компонента в принципе похожи, однако они отличаются некоторыми настройками.
  5. Выполните необходимые настройки положения, а также настройки в «Инспекторе».
  6. Наслаждайтесь результатом.

В 4-м пунк т е вам будет предложено 2 префаба. На первый взгляд они будут очень похож и , но это не так. Они отличаются настройками:

  • зеркального отражения,
  • световыми бликами,
  • составом и цветом воды,
  • гребнями волн,
  • пеной на гребнях,
  • и др.

Заключение

Вода в Unity добавляется не слишком сложно, если вас удовлетвори т качество предоставляемых инструментов самого движка. И сходя и з практики , стандартных инструментов достаточно для создания интересных игр, когда вода — это не основной элемент игры. Если же вам потребуется более «крутая» вода, тогда нужно будет вмешательство в код. А это тема уже для другой статьи.

В целом, все описанные 3 инструмента отличаются внешним видом самой воды. Поэтому вы смело можете опробовать все и для себя решить , с каким работать дальше.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Вода для Юнити. Как сделать воду на Unity 3d?

Вода в играх на Unity — это не редкость. Но вода воде рознь. В некоторых играх она
может быть:

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

Поэтому в некоторых случаях, достаточно внутренних инструментов в Unity, в более
сложных комбинациях потребуется вмешательство в код.

Вода в Unity

Unity — это кросс-платформенный движок для создания видеоигр, в которые можно
играть на:

  • смартфонах,
  • компьютерах,
  • игровых консолях,
  • web-сайтах.

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

  • наличия мощной бесплатной версии;
  • средней сложности изучения;
  • широкой функциональности;
  • взаимодействия с популярными API: Direct3D, OpenGL, OpenGL ES, Vulkan;
  • и др.

Технологические инструменты, которыми обладает Unity позволяют разрабатывать
очень реалистичные игры. Одним из таких инструментов является создание воды.
Вода в Unity может добавлена в вашу игру в трех видах:

  1. Water Basic.
  2. Water PRO.
  3. Water4.

В Юнити уже включены по умолчанию основные скрипты, шейдеры и визуальные
ресурсы для создания этих типов воды.
Можно предположить, что раз вы ищите воду для Юнити, то у вас уже:

  • установлен Unity последней версии;
  • есть свой собственный проект на этом движке;
  • вы создали собственный ландшафт.

Вода «Water Basic» в Unity

Итак, чтобы воспользоваться этим типом воды нужно:

  1. Открыть вкладку с вашим проектом.
  2. Найти там папку Assets и открыть в ней Enviroment.
  3. Там вам будет доступно 2 папки с водой: Water и Water(Basic), выбираем Water
    Basic.
  4. В этом типе воды вам откроется два префаба: Water Basic Daytime — вода для
    дневного времени и Water Basic Nighttime — вода для ночного времени.
  5. Исходя из того, какую сцену вы разрабатываете, выбирайте необходимый
    префаб и путем простого переноса перенесите его в игровую сцену в нужное
    место(допустим в дырку в земле).
  6. Уже в самой сцены выделите воду и отрегулируйте ее местоположение и
    масштаб.
  7. Для более тонкой настройке этого элемента, когда он будет выделен, то
    перейдите во вкладку Inspector и осуществите желаемую настройку. Там вы
    сможете изменить генерацию теней, поменять свойства отражения, добавить
    волны и отрегулировать их скорость и масштаб.
  8. Когда закончите с настройками, то можете перейти в режим «Сцена» и
    посмотреть, что у вас получилось.

Water PRO, как вода для Unity

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

  1. Открыть вкладку со своим проектом.
  2. Найти папку Assets-Standart Assets-Enviroment.
  3. В этой папке вам будет доступно две папки: Water и Water Basic. Открываем
    папку Water.
  4. Внутри опять вас будут ждать 2 папки: Water и Water4. Нас интересует папка
    Water.
  5. Зайдя в нее, откройте папку Prefabs.
  6. Там как и при Water Basic будут доступны два компонента: для дневной и
    ночной сцены.
  7. Выпираете нужный префаб и тоже путем переноса переместите его в игровую
    сцену.
  8. С ним можно те же манипуляции в настройках и в «Инспекторе», как и с Water
    Basic. Только в «Инспекторе» у этой воды будет доступно большее количество
    различных настроек.

Главное отличие этой воды от Water Basic — это более реалистичный внешний вид и
более тонкие настройки света, отражения и сцен. Но при этом нужно помнить, что
для этой всей реалистичности потребуется больше вычислительной мощности.

Water 4, как компонент воды в Unity

Чтобы воспользоваться этим префабом нужно:

  1. Проделать первые 3 пункта, описанные выше.
  2. Потом вам будет доступно 2 папки: Water и Water4. Выбираем Water4.
  3. Внутри этой папки находим еще одну папку Prefabs.
  4. Тут вам будут доступны 2 префаба: Water4Simple и Water4Advanced. Оба эти
    компонента в принципе похожи, однако они отличаются настройками состава
    вод, отражения света, пеной и др.
  5. Выполните необходимые настройки положения, а также настройки в
    «Инспекторе».
  6. Наслаждайтесь результатом.

В 4-м пунке вам будет предложено 2 префаба. На первый взгляд они будут очень
похоже, но это не так. Они отличаются настройками:

  • зеркального отражения,
  • световыми бликами,
  • составом и цветом воды,
  • гребнями волн,
  • пеной на гребнях,
  • и др.

Заключение

Вода в Unity добавляется не слишком сложно, если вас удовлетворить качество
предоставляемых инструментов самого движка. Из практики, стандартных инструментов достаточно для создания интересных игр, когда вода — это не основной элемент игры. Если же вам потребуется более «крутая» вода, тогда нужно будет вмешательство в код. А это тема уже для другой статьи. В целом, все описанные 3 инструмента отличаются внешним видом самой воды. Поэтому, вы смело можете опробовать все и для себя решить с каким работать дальше.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *