Серия «Reaper Hunt: Survivor»

626

После того как я получил отзывы о тумане в моём предыдущем посте, я немного его доработал. Спасибо всем!

Игра (Steam)

22

Как создать атмосферный туман в Unity: пошаговое руководство

Ссылка на скачивание всех файлов: https://drive.google.com/file/d/1JMFbpmPtTw0qn_EQdWtqJkBVeQDLXdao/view

Ссылка на мою игру (Steam)

В этой статье мы рассмотрим, как создать атмосферный туман в Unity. Материал состоит из двух частей:

1. Создание тумана.

2. Реализация рассеивания тумана вокруг определённого объекта. (Игрока)

Часть 1: Создание тумана

Что понадобится?

Для создания тумана используется всего одна текстура, которую можно скачать по ссылке ниже:

Как создать атмосферный туман в Unity: пошаговое руководство Инди игра, Gamedev, Разработка, Инди, Unity, Шутер, Steam, Видеоигра, VFX, 3D, Видео, Без звука, Короткие видео, Длиннопост

Скачать

Шаги создания

Создайте систему частиц

Добавьте систему частиц в сцену и настройте её параметры. В качестве примера можно взять следующую конфигурацию:

Как создать атмосферный туман в Unity: пошаговое руководство Инди игра, Gamedev, Разработка, Инди, Unity, Шутер, Steam, Видеоигра, VFX, 3D, Видео, Без звука, Короткие видео, Длиннопост
Как создать атмосферный туман в Unity: пошаговое руководство Инди игра, Gamedev, Разработка, Инди, Unity, Шутер, Steam, Видеоигра, VFX, 3D, Видео, Без звука, Короткие видео, Длиннопост
Как создать атмосферный туман в Unity: пошаговое руководство Инди игра, Gamedev, Разработка, Инди, Unity, Шутер, Steam, Видеоигра, VFX, 3D, Видео, Без звука, Короткие видео, Длиннопост
Как создать атмосферный туман в Unity: пошаговое руководство Инди игра, Gamedev, Разработка, Инди, Unity, Шутер, Steam, Видеоигра, VFX, 3D, Видео, Без звука, Короткие видео, Длиннопост

Материал системы частиц с текстурой

После настройки вы получите атмосферный туман, который можно использовать в ваших проектах.

Часть 2: Рассеивание тумана вокруг объекта

Чтобы добиться эффекта, когда туман рассеивается вокруг определённого объекта (например, игрока), нам потребуется немного дополнений в виде шейдера и скрипта.

Сначала скачайте шейдер по ссылке ниже, либо создайте и настройте его:

Как создать атмосферный туман в Unity: пошаговое руководство Инди игра, Gamedev, Разработка, Инди, Unity, Шутер, Steam, Видеоигра, VFX, 3D, Видео, Без звука, Короткие видео, Длиннопост

Ссылка

Если вы используете шейдер отдельно, убедитесь, что у него правильно настроено имя Reference для передачи значений из скрипта.

Как создать атмосферный туман в Unity: пошаговое руководство Инди игра, Gamedev, Разработка, Инди, Unity, Шутер, Steam, Видеоигра, VFX, 3D, Видео, Без звука, Короткие видео, Длиннопост

Создайте новый материал, используя скачанный шейдер.

Как создать атмосферный туман в Unity: пошаговое руководство Инди игра, Gamedev, Разработка, Инди, Unity, Шутер, Steam, Видеоигра, VFX, 3D, Видео, Без звука, Короткие видео, Длиннопост

Ниже приведён простой скрипт на C#, который будет передавать значения в шейдер для контроля рассеивания тумана:

using UnityEngine;

namespace _Code.Scripts.VFX

{

public class ParticleSystem_FogAvoidPlayer : MonoBehaviour

{

public Transform player;

public float minDistance = 2f;

public float maxDistance = 10f;

public float updateInterval = 0.1f;

private ParticleSystemRenderer particleRenderer;

private MaterialPropertyBlock propBlock;

private float nextUpdateTime;

private readonly int playerPosId = Shader.PropertyToID("_PlayerPosition");

private readonly int minDistId = Shader.PropertyToID("_MinDistance");

private readonly int maxDistId = Shader.PropertyToID("_MaxDistance");

public void Init(Transform playerTransform)

{

player = playerTransform;

}

void Start()

{

particleRenderer = GetComponent<ParticleSystemRenderer>();

propBlock = new MaterialPropertyBlock();

UpdateShaderParameters();

}

void Update()

{

if (Time.time >= nextUpdateTime)

{

UpdateShaderParameters();

nextUpdateTime = Time.time + updateInterval;

}

}

void UpdateShaderParameters()

{

if (player == null || particleRenderer == null)

return;

particleRenderer.GetPropertyBlock(propBlock);

propBlock.SetVector(playerPosId, player.position);

propBlock.SetFloat(minDistId, minDistance);

propBlock.SetFloat(maxDistId, maxDistance);

particleRenderer.SetPropertyBlock(propBlock);

}

}

}

Применение скрипта

  1. Добавьте скрипт Прикрепите скрипт ParticleSystem_FogAvoidPlayer к системе частиц.

  2. Настройте ссылку на объект в инспекторе укажите ссылку на объект (например, игрока)

Как создать атмосферный туман в Unity: пошаговое руководство Инди игра, Gamedev, Разработка, Инди, Unity, Шутер, Steam, Видеоигра, VFX, 3D, Видео, Без звука, Короткие видео, Длиннопост

Результат:

Ссылка на мою игру

Показать полностью 9 3
18

Пикабу увеличил количество вишлистов моей игры в 2 раза

Пикабу увеличил количество вишлистов моей игры в 2 раза Инди игра, Gamedev, Разработка, Инди, Unity, Шутер, Steam, Видеоигра, Длиннопост, Игры

Страница игры в Steam

Первый пост про мою игру на Пикабу был сделан 23 дня назад, и результат превзошёл все ожидания!

До постов на Пикабу было ~475 вишлистов. А сейчас 1070 вишлистов!

Пикабу увеличил количество вишлистов моей игры в 2 раза Инди игра, Gamedev, Разработка, Инди, Unity, Шутер, Steam, Видеоигра, Длиннопост, Игры

Мой первый пост здесь:

Пикабу увеличил количество вишлистов моей игры в 2 раза Инди игра, Gamedev, Разработка, Инди, Unity, Шутер, Steam, Видеоигра, Длиннопост, Игры

Для сравнения — вот результаты с других площадок:

DTF (самый популярный пост):

Пикабу увеличил количество вишлистов моей игры в 2 раза Инди игра, Gamedev, Разработка, Инди, Unity, Шутер, Steam, Видеоигра, Длиннопост, Игры

Reddit:

Пикабу увеличил количество вишлистов моей игры в 2 раза Инди игра, Gamedev, Разработка, Инди, Unity, Шутер, Steam, Видеоигра, Длиннопост, Игры

Что получилось:

  • Пикабу — больше всего развёрнутых отзывов и конструктивной критики по игре

  • DTF — тоже были те, кто давал фидбек после того, как поиграл

  • Reddit — люди в основном отмечали визуальную составляющую

Каждая платформа дала свой уникальный отклик, и я искренне благодарен всем, кто нашёл время написать отзыв, добавить в вишлист или просто поддержать! 🥰

Особенно приятно, что именно на Пикабу люди не просто лайкают, а реально вникают в проект и дают полезную обратную связь. Это очень ценно для меня как инди-разработчика. 🫡

Ещё раз спасибо вам всем! 🙏

Страница игры в Steam: https://store.steampowered.com/app/3551540/Reaper_Hunt_Survivor/

Показать полностью 4
11

Небольшая часть того, как я делаю уровень для своей игры с использованием инструмента террейна MicroSplat

Игра (Steam)

Отличная работа, все прочитано!