Умный AI
| |
DESOL | Дата: Понедельник, 27 Сентября 2010, 19:26 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Всем привет! Сталкнулся с проблемой. Мне нужно сделать более ли менее умного AI. Чтобы когда ГГ подходит к AI на дистанцию 250, AI начинал за ним бегать и стрелять, но тоже не подходя вплотную к ГГ. И еще желательно сделать так чтобы AI не видел ГГ из за стены. Кто знает как реализовать просьба написать как, а не тупо выложить пример...
Unity, Blender, Zbrush, Substance Designer/Painter, TopoGun, RizomUV, Studio One 4
|
|
| |
ezhickovich | Дата: Понедельник, 27 Сентября 2010, 19:36 | Сообщение # 2 |
[Великий и могучий хозяинъ]
Сейчас нет на сайте
| DESOL, пусть у AI есть несколько состояний допустим "простой, патруль, атака, смерть" Вначале у AI состояние "простой" Если расстояние до ГГ <= 250, то состояние меняется на "атака" и AI начинает преследовать ГГ... Если ГГ смог оторваться состояние AI меняем на патруль и AI начинает патрулировать местность в определённом радиусе... Если после ухода ГГ из поля видимости AI прошло достаточно времени, то AI его забывает и переходит в "простой"Добавлено (27.09.2010, 19:36) --------------------------------------------- Полагаю состояние "смерть" пояснять не надо?
Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
|
|
| |
DESOL | Дата: Понедельник, 27 Сентября 2010, 19:47 | Сообщение # 3 |
участник
Сейчас нет на сайте
| ezhickovich, Ну теорию, я тоже знаю! А как это реализовать в коде?
Unity, Blender, Zbrush, Substance Designer/Painter, TopoGun, RizomUV, Studio One 4
|
|
| |
ezhickovich | Дата: Понедельник, 27 Сентября 2010, 20:02 | Сообщение # 4 |
[Великий и могучий хозяинъ]
Сейчас нет на сайте
| Quote (DESOL) А как это реализовать в коде? Я C программист - не ГМЛщик... Да и чё там такого реализовывать? Расчёт расстояния? Само поведение AI при соответствующем состоянии тоже реализовать не сложно...
Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
|
|
| |
Gavolot | Дата: Понедельник, 27 Сентября 2010, 20:02 | Сообщение # 5 |
Последователь Тени
Сейчас нет на сайте
| DESOL, раньше тоже парился с подобным: Вот что я делал для своей RTS, ну это так кусок того что я делал, но ты пока спрашиваеш именно это. Code Set_to_Hunt //Скрипт охоты за ближайшим противником //argument0 -- это цель //argument1 -- расстояние от цели //argument2 -- скорость передвижения
if instance_number(instance_nearest(x,y,argument0))>0{ if distance_to_object(instance_nearest(x,y,argument0))>=argument1 { mp_potential_step(instance_nearest(x,y,argument0).x,instance _nearest(x,y,argument0).y,argument2,false) } else if distance_to_object(instance_nearest(x,y,argument0))<=argument1 and collision_line(x,y,instance_nearest(x,y,argument0).x,instance_nearest(x ,y,argument0).y,Wall_2,0,0) { mp_potential_step(instance_nearest(x,y,argument0).x,instance_nearest(x,y,argument0).y,argument2,false) } } вот такой скрипт я создал. Тут-же и набераеш если расстояние больше такого-то то мы двигаемся, если расстояние сложилось стоим и стреляем (то что он будет типо моневрировать или что-то еще, это другая история. Если будет нужно постараюсь помоч. Кстати так-же в конце там имеется вещь, что если ты за обьктом Wall_2 то он уже будет идти на тебя вплотную конечно, ну вдруг ты решил спрятаться в кладовой или еще типо того, а он тебя не видет, но уже давно преследовал. Вызывал скрипт следующим образом: Code //Набор команд для юнита ИИ if comand = 1 { Set_to_Hunt(PL_Target,distance,2) } Весь свой код беру из моего Star_Gate, PL_Target это метка за кем бежит бот, дистанция думаю ты понял, переменная с определенным числом, цифра 2 скорость движения.
В общем что-то делаю, но пока не пойму ни как :) Тень - выражение основной сущности человека.
Сообщение отредактировал Gavolot - Понедельник, 27 Сентября 2010, 20:09 |
|
| |
ezhickovich | Дата: Понедельник, 27 Сентября 2010, 20:04 | Сообщение # 6 |
[Великий и могучий хозяинъ]
Сейчас нет на сайте
| Поиск пути? Тоже ничего сложного... В гугле куча статей по сабжу... ( поиск пути )
Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
|
|
| |
Gavolot | Дата: Понедельник, 27 Сентября 2010, 20:06 | Сообщение # 7 |
Последователь Тени
Сейчас нет на сайте
| Ну так зачем надо что-то сложное, для более менее.
В общем что-то делаю, но пока не пойму ни как :) Тень - выражение основной сущности человека.
|
|
| |
DESOL | Дата: Понедельник, 27 Сентября 2010, 20:17 | Сообщение # 8 |
участник
Сейчас нет на сайте
| Так спасибо всем, вроде разобрался... А еще вопросик. Как сделать через скрипт чтобы AI обходил стены?
Unity, Blender, Zbrush, Substance Designer/Painter, TopoGun, RizomUV, Studio One 4
|
|
| |
Gavolot | Дата: Понедельник, 27 Сентября 2010, 20:29 | Сообщение # 9 |
Последователь Тени
Сейчас нет на сайте
| DESOL, он и будет вроде обходить стену если я неошибаюсь, mp_potential_step оно и есть, простой, но вроде эффективный. + поставь если помог
В общем что-то делаю, но пока не пойму ни как :) Тень - выражение основной сущности человека.
|
|
| |
DESOL | Дата: Понедельник, 27 Сентября 2010, 20:56 | Сообщение # 10 |
участник
Сейчас нет на сайте
| Gavolot, Я б с радостью + поставил, но мне пишет только через 7 дней! Через 7 дней обязательно поставлю, не забуду!
Unity, Blender, Zbrush, Substance Designer/Painter, TopoGun, RizomUV, Studio One 4
|
|
| |
Gavolot | Дата: Понедельник, 27 Сентября 2010, 21:38 | Сообщение # 11 |
Последователь Тени
Сейчас нет на сайте
| DESOL, так все хватит у меня было 10 стало 11)) Добавлено (27.09.2010, 21:38) --------------------------------------------- + в личке образовалось твоё сообщение, так-что все нормально.
В общем что-то делаю, но пока не пойму ни как :) Тень - выражение основной сущности человека.
|
|
| |
DESOL | Дата: Понедельник, 27 Сентября 2010, 21:52 | Сообщение # 12 |
участник
Сейчас нет на сайте
| Gavolot, Я рад что смог тебя отблагодарить!!!
Unity, Blender, Zbrush, Substance Designer/Painter, TopoGun, RizomUV, Studio One 4
|
|
| |
|