Четверг, 18 Апреля 2024, 03:09

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как сделать реалистическую мигалку?
Как сделать реалистическую мигалку?
AtrekДата: Вторник, 15 Мая 2018, 09:56 | Сообщение # 1
частый гость
Сейчас нет на сайте
Доброго времени суток.
Недавно посетила идея, сделать гонки с ментами.
Информацию о машине и прочем нашлась довольно быстро, а вот как сделать хорошую мигалку так и не понял.
Нашел видео смотреть (оно с тайм кодом, а если нет, то смотрите с 14-05)
Но в нем мигалка так себе ведь она взаимодействует только с окружающими объектами, а нужна примерно вот с такими эффектами смотреть (смотреть с 5-53).
Понятное дело, что есть наверное ассеты, но платить за ассет для игры, которая не покинет пределы одного города, пока желания нет.
Логика подсказивает, что нужно разбираться с системой света в юнити, но хотелось бы получить более конкретные указания, что читать и где.
Проблем с пониманием английского языка нет.


Сообщение отредактировал Atrek - Вторник, 15 Мая 2018, 09:59
InsaneSystemsДата: Вторник, 15 Мая 2018, 10:56 | Сообщение # 2
участник
Сейчас нет на сайте
Atrek, если возникают подобные вопросы, то стоит задуматься о повышении качества знаний о разработке игр в целом, трудно будет сделать хорошую игру, не понимая основ.
AtrekДата: Вторник, 15 Мая 2018, 11:24 | Сообщение # 3
частый гость
Сейчас нет на сайте
InsaneSystems, Позвольте уточнить, что по вашему значит основа, которая поможет мне седлать реалистическую мигалку?
Ведь по сути ваш ответ ну никак не наталкивает на правильный путь, я ведь не прошу писать за меня скрипт, а дать направление.
Также видно мы с вами по разному помогаем людям, спросив меня , о том как создать турель для юнити то я даю человеку ссилку на пример и пусть он смотрит урок и заполняет пробелы в знаниях.
InsaneSystemsДата: Вторник, 15 Мая 2018, 12:10 | Сообщение # 4
участник
Сейчас нет на сайте
Atrek, потому что это основополагающие знания, и ответ на ваш вопрос приходит сам, если вы понимаете программирование и разбираетесь в логике. Задача настолько примитивная, что по ней не требуется какой-то туториал. К тому же, из вашего вопроса неясно, что именно вы не можете сделать. А как известно - какой вопрос, такой и ответ.

Конкретно в видео-уроке по таймкоду используется по-моему лишь вращение двух разноцветных источников света. Гайд не смотрел, но это делается в одну строку кода, не считая того, что юнити генерирует в скрипте при старте.

Для того, чтобы сделать как в GTA 5, нужно работать не столько с источниками света, сколько с свойством Emission материала сирен, это позволит подсвечивать объект даже без освещения. Чтобы сделать анимацию, самое простое - подставлять в поле Emission разные текстуры с нужным интервалом времени. Подобный код будет выглядеть примерно так:

Код

public class Siren : MonoBehaviour
{
    [SerializeField] Texture[] textures;
    [SerializeField] Light[] lights;
    [SerializeField] new Renderer renderer;
    [SerializeField] float delay = 0.25f;

    int currentLightId = 0;

    private void Start()
    {
        StartCoroutine(SirenWork());
    }

    IEnumerator SirenWork()
    {
        while (true)
        {
            lights[currentLightId].intensity = 0f;

            currentLightId++;

            if (currentLightId >= textures.Length)
                currentLightId = 0;

            renderer.material.SetTexture("_EmissionMap", textures[currentLightId]);
            lights[currentLightId].intensity = 1f;

            yield return new WaitForSeconds(delay);
        }
    }
}


В renderer подставляется Mesh Renderer сирены, в textures - список Emission-текстур с нужной подсветкой, в lights - соответствующие цвету текстур по списку источники освещения. delay - время смены освещения.
Результат: Ссылка на видео

Пример текстуры подсветки:


Хочу так же отметить, что для того, чтобы Emission красиво работал - необходимо использовать пост-эффект Bloom, это позволит создать красивое свечение (на видео он использован). Если игра ночная - это отличный выбор. Днём лучше попробовать использовать настройки Halo или Flare у источников освещения.

Для реализации разных вариантов скорости мигания, как в ролике про GTA 5, нужно использовать всё то же самое, только добавить несколько вариантов поведения. Например, можно раз в N секунд менять свойство delay. Чтобы мигалки подсвечивались по-другому - через те же N секунд менять набор текстур, который им задаётся по проходу delay. Тут можно либо несколько массивов сделать, либо использовать ScriptableObject, в котором задаётся нужный набор текстур, в общем, вариантов - масса.


Сообщение отредактировал InsaneSystems - Вторник, 15 Мая 2018, 12:27
drcrackДата: Вторник, 15 Мая 2018, 12:54 | Сообщение # 5
старожил
Сейчас нет на сайте
с такими вопросами настоятельно рекомендую начать с 2д гонок безо всяких мигалок, типо таких:


Сообщение отредактировал drcrack - Вторник, 15 Мая 2018, 12:55
AtrekДата: Вторник, 15 Мая 2018, 12:58 | Сообщение # 6
частый гость
Сейчас нет на сайте
InsaneSystems, согласен, вопрос не четкий, по этой причине добавил видео.
Второй ваш ответ как раз то что искал, и верно предполагал, что ступор в работе у меня, из-за пробела в часьте эффектов и работе с рендером.
Так как создать машину и заставить ее двигаться одно, а что бы у нее реалистично светили фары, совсем другое.
И хотелось понять, для моей задачи хватило бы вдумчивого прочтения раздела графика в оф. справке клик ?

drcrack, спасибо что откликнулись, но я не совсем понимаю, какая связь между 2д гонкой и работой с эффектами.
Хотя мб я смотрел не те туториали.
В тех которые я видел, все делали по принципц, спарйт + скрипт + текстура трассы = профит, о какой либо работе с эффектами речи не велось.


Сообщение отредактировал Atrek - Вторник, 15 Мая 2018, 13:09
InsaneSystemsДата: Вторник, 15 Мая 2018, 16:19 | Сообщение # 7
участник
Сейчас нет на сайте
Atrek, справку в любом случае стоит изучать почаще, однако точного ответа на все ваши вопросы там может и не быть. У Unity есть блоги, там много гайдов, но найти сходу нужное сложно. Можно гуглить что-то вроде: Unity point light, Unity spot light, Unity light flares, Unity material emission, Unity post processing bloom и так далее.
AtrekДата: Вторник, 15 Мая 2018, 18:13 | Сообщение # 8
частый гость
Сейчас нет на сайте
InsaneSystems, про найти сразу нужное, мне знакомо не понаслышке, уже собирал иформации по крупицам, что-то в одном уроке взял, что -то в другом так и собирал все нужное.

Вобщем тему можно считать закрытой, все напутствия я получил и направления движения понял.
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как сделать реалистическую мигалку?
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг