Четверг, 28 Марта 2024, 13:10

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Stealth (В теории)
Stealth
DantorSДата: Воскресенье, 25 Мая 2014, 18:37 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Всем привет. Я ещё не подходил практически к стелсу, но есть вопрос по теории. Только не надо писать что-то наподобие: ты сначала сделай хоть что нибудь, а уже потом задавай вопросы. Я пока занят другим. Просто хочу узнать ответы на свои вопросы, так на будущее. Итак, у меня 2 вопроса:
1. Как сделать стелс с тенями (как в сплинтер селл). В игре же есть как тени, так и полутени. Может можно как-нибудь скриптом взять значение теней/света. Если делать всё не динамическим - то вопросов нет, но если делать динамическим - то вопросы всё таки возникают (ведь например, как в сплинтер селл, если выстрелить в лампочку, то появляется тень).
2. Как сделать "маскировку в толпе"? Вообще идей не возникает, а если и возникает то они не подходят (ведь нужно чтобы такая система подходила и к 3, и к 4, и к 10 npc)
RangerДата: Воскресенье, 25 Мая 2014, 19:00 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
1. 2 варианта:
1.1 аналитически считать удаленность от источника света. Задаются зоны освещенности. присутствует источник света - ++ в зоне. Быстро, но не точно.
1.2 с Камеры - глаза npc рендерить в текстуру и анализировать освещенность . (как простой вариант)
2. что такое маскировка в толпе?? как выглядит с точки зрения игрового процесса?


DantorSДата: Воскресенье, 25 Мая 2014, 19:12 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Цитата Ranger ()
.2 с Камеры - глаза npc рендерить в текстуру и анализировать освещенность . (как простой вариант)

Анализировать освещённость? Это как?
Цитата Ranger ()
2. что такое маскировка в толпе?? как выглядит с точки зрения игрового процесса?

Ну знаешь - было в assasins creed, в hitman absolution. Тоесть можно встать посреди толпы и тебя враги не видят.
nwsxДата: Воскресенье, 25 Мая 2014, 19:16 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
можно искать ближайший источник света и от него лучами проверять, есть ли препятствие между игроком и источником.

Добавлено (25.05.2014, 19:16)
---------------------------------------------
Цитата
Ну знаешь - было в assasins creed, в hitman absolution. Тоесть можно встать посреди толпы и тебя враги не видят.

ну можно же проверять сколько непесей вокруг игрока. и использовать эту информацию в скриптах ai и тд


Westboro
Dungeon Journey на Google Play


Сообщение отредактировал nwsx - Воскресенье, 25 Мая 2014, 19:17
DantorSДата: Воскресенье, 25 Мая 2014, 19:18 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
nwsx, такой вариант сработает только если 1 источник света на 1 участок (место, поверхность). А если есть 2 несколько источников света, свет от которых пересекается. Это не точно. Или я ошибаюсь?

Добавлено (25.05.2014, 19:18)
---------------------------------------------

Цитата nwsx ()
ну можно же проверять сколько непесей вокруг игрока. и использовать эту информацию в скриптах ai и тд

Непесей? Что это?
nwsxДата: Воскресенье, 25 Мая 2014, 19:20 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
ты и так догадался. наверное.

Westboro
Dungeon Journey на Google Play
DantorSДата: Воскресенье, 25 Мая 2014, 19:23 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Догадался npc. Но твой вариант не походит. Нужно чтобы npc окружали игрока. Они же могут просто выстроится в линию. И тогда такая система будет неправдоподобной

Сообщение отредактировал DantorS - Воскресенье, 25 Мая 2014, 19:24
RangerДата: Воскресенье, 25 Мая 2014, 19:38 | Сообщение # 8
почти ветеран
Сейчас нет на сайте
Цитата DantorS ()
Анализировать освещённость? Это как?

новую текстуру создать с небольшим разрешением типа 4*4
рендерить в нее с камеры и texture2d.GetPixel проверить каждую точку на цвет. если сумма всех составляющих всех точек текстуры < k - значит там темно
Этот метод даст только ответ на освещенность. + каждая камера отбирает ФПС. это тоже нужно иметь ввиду.

Для более детального анализа уже алгоритмы значительно сложнее.

Цитата DantorS ()
А если есть 2 несколько источников света, свет от которых пересекается.

Сделай свой аналог калькуляции лайтмапа. это просто. я написал в первом посте.




Сообщение отредактировал Ranger - Воскресенье, 25 Мая 2014, 19:39
DantorSДата: Воскресенье, 25 Мая 2014, 19:48 | Сообщение # 9
заслуженный участник
Сейчас нет на сайте
Что такое k?
RangerДата: Воскресенье, 25 Мая 2014, 19:54 | Сообщение # 10
почти ветеран
Сейчас нет на сайте
значение, которое нужно будет подобрать

lentinantДата: Воскресенье, 25 Мая 2014, 19:58 | Сообщение # 11
ленивый программист
Сейчас нет на сайте
Цитата DantorS ()
Но твой вариант не походит. Нужно чтобы npc окружали игрока. Они же могут просто выстроится в линию. И тогда такая система будет неправдоподобной

В том же Assassin's Creed все npc, в толпе которых можно затеряться, никогда не выстраиваются линиями. Более того, игрок мог просто стать сбоку группы, прямо на глазах у стражников, и все равно считаться частью толпы. Во всяком случае, во второй части игры.

Если уж хочется усложнять себе жизнь более сложными вариантами, можно попарно проверять угол между каждой парой npc возле игрока (угол, формируемый линиями, идущими от игрока до этих двух npc), и если у каждого npc будет минимум два других npc под подходящим углом - считать, что игрока окружают.


Когда-то тут будут ссылки на крутые проекты. Или нет.
DantorSДата: Воскресенье, 25 Мая 2014, 20:12 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
Для статического варианта хорошо но никак не динамического, тогда придётся непрерывно проверять каждый угол что не есть хорошо. А если просто задать условие маскировки - 1 или больше должен быть слева, 1 или больше справа, спереди. Сзади не обязательно, так как спрятаться в толпе можно также среди 3 npc. И не будет такого как в assasins creed, т.к. если идити сбоку группы npc не будут слева и следовательно маскировка будет нарушена. Просто чтобы нельзя было идти сбоку угол слева надо поставить не 180 градусов, а какой-нибудь 200 градусов. И ещё нужно определять расстояние до каждого npc в группе. Чисто предположительно, как думаешь такой вариант будет нормальный

Добавлено (25.05.2014, 20:12)
---------------------------------------------
Но как определить расстояние, ведь пуская raycast и тому подобное не знаешь на какой угол его пускать?

lentinantДата: Воскресенье, 25 Мая 2014, 20:19 | Сообщение # 13
ленивый программист
Сейчас нет на сайте
Цитата DantorS ()
Но как определить расстояние, ведь пуская raycast и тому подобное не знаешь на какой угол его пускать?

Пустой объект с коллайдером, прикрепленный к персонажу. Расчет вести только с теми персонажами, которые внутри коллайдера.

Добавлено (25.05.2014, 20:19)
---------------------------------------------

Цитата DantorS ()
Для статического варианта хорошо но никак не динамического, тогда придётся непрерывно проверять каждый угол что не есть хорошо. А если просто задать условие маскировки - 1 или больше должен быть слева, 1 или больше справа, спереди.

Ты будешь постоянно считать углы и там, и там. Какая разница?


Когда-то тут будут ссылки на крутые проекты. Или нет.
DantorSДата: Воскресенье, 25 Мая 2014, 20:21 | Сообщение # 14
заслуженный участник
Сейчас нет на сайте
Ты прав. Я в общем понял, что такие вещи теорией не решить.
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Stealth (В теории)
  • Страница 1 из 1
  • 1
Поиск:

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