Как сделать реалистическую мигалку?
| |
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, про найти сразу нужное, мне знакомо не понаслышке, уже собирал иформации по крупицам, что-то в одном уроке взял, что -то в другом так и собирал все нужное.
Вобщем тему можно считать закрытой, все напутствия я получил и направления движения понял.
|
|
| |
|