Как показать, что враг тебя ищет / Devlog

Всем привет! Я продолжаю пилить свой маленький проект по выходным, и в этот раз мне есть что рассказать.

Дисклеймер: это не вопрос, а девлог про решение конкретной задачи :)

Ситуация: в мире игры есть большой враг, геймплейная функция которого – поиск игрока и привлечение к нему внимания врагов поменбше.

Враг иногда сидит в кресле, иногда ходит и поглядывает по углам. Вопрос: как показать, что идет поиск, а также как показать куда именно смотрит гигант? Вариант "просто написать в подсказке" очевидно слабый :) Чего я хочу добиться: интуитивное понимание, что идет осмотр локации и то, что лучше на глаза не попадаться. Ниже то, как я решил эту задачу для себя.

Решение первое

Первое и очевидное решение: сделать его глаза направленным источником света. Выглядит прикольно, но на устройстве (Android) выявились проблемы со светом. У меня уже есть один рилтайм источник, и хотелось бы им и ограничиться. Поэтому фонарь был выпилен и заменен лучом.

Первое решение

Вторая идея

Луч, который происходит из головы монстра, находит ближайший коллайдер. В эту точку перемещается невидимый параллелепипед, который разворачивается по нормали к точке соприкосновения. Этот объект триггерит все объекты, у которых есть определенный скрипт и с которыми у него есть пересечение. Сделано так, а не просто лучом, чтобы "поле зрения" врага было пошире. При этом невидимый объект очень тонкий, благодаря чему бот не смотрит сквозь объекты.

Объекты, который узнали, что их "видят", вспыхивают на несколько секунд красным цветом (красный у нас в сеттинге зашит). Сейчас объектов на сцене не много, но я завалю всё коробками (потому что это 6 полигонов на объект :D). Мне кажется получилось прикольно, и не жрет столько ресурсов, как свет.

Кроме того, глаза монстра имеют блик, а вперед смотрит эффект из партиклей. Ниже запись с камеры гг :)

Че за проект

1) Приключения в мрачном, но рождественском сеттинге с намёком на хоррор

2) Unity, Android

3) Пока что это делается просто потому, что могу

4) Текущий билд весит около 30 мб, но еще есть, что сжать. Эту сцену целиком надо уместить в 40, максимум 50 мб.

77
37 комментариев

нужен либо визуальный маркер, либо звуковой, либо комбинация
1. простенький эмбиент во время поиска
2. лёгкая красная/чёрная/любая дымка по рамке камеры во время поиска
3. звуковой эффект для начала поиска и для окончания

2
Ответить

Как показать, что враг тебя ищетСоветую обратить внимание на игру Милиционер. Там приём был простой, враг видит тебя всё время, но когда теряет из виду, начинает искать
https://store.steampowered.com/app/1373530/Militsioner/?l=russian

1
Ответить

Ну Милиционер это очевидное сравнение, да)
Однако у меня эта механика всё-таки другая, потому что я точно не успею сделать взаимодействие гиганта с мелким, да и темп игры должен быть низким: всё-таки это мобильная игра. Поэтому надзиратель не должен постоянно выслеживать игрока, это скорее мета-механика :)

1
Ответить

Зачем на этом концентрировать внимание?

Как по мне ебака должна по умолчанию его искать, всегда и везде. Если же не знает что он рядом то должна заниматься своими ебаковскими делами по которым сразу видно что она сосредоточена на чем-то другом.

1
Ответить

Затем, что это часть геймплея так-то) Я не против, если вы сделаете иначе в своем проекте :)

Ответить

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

1
Ответить

По сути, я так и сделал)

Ответить