Как сделать чтобы нпс не двигался

Добавил пользователь Alex
Обновлено: 18.09.2024

Надеюсь подскажу идею тем кто может делать, а не писать статьи: В Сталкере НПС может делать пить, курить есть, спать, лечить себя, помогать другу, петь песни, торговать, и мудрецы сидят придумывают чтобы ещё сделать и ни один, я подчёркиваю ни один. Не догадался сделать чтобы непись пусть то бандит и солдат не выскакивал тупо на выстрел, а прятался и ждал противника что в жизни более естественно, особенно для шушеры типа бандитов, а они как комсомольцы идут в атаку и ГГ имея винтовку может спокойно всех выбегающих расстреливать. Может кто-то догадается что Сталкер всё таки стрелялка на 80% и сделать модели поведения Атака, оборона, отступление и их вариации.

  • Вот ты такой умный, а элементарных вещей не знаешь. ИИ у НПС не такой сложный чтобы различать укрытия. И доработать его аж так, чтобы они научились их различать, невозможно. Тем более никакой комп такой ИИ не потянет.
  • --THE ATLAS 22:28, 5 мая 2011 (UTC)

Вот спасибо, был бы умный, не писал бы, а делал -)), но вот если элементарную вещь разобрать которую ты выше указал, это намного проще думаю, сделать чтобы во время алярма, НПС шёл к окну садился на одно колено и сидел стрелял, (3 действия всего) и не бежал куда-то. Действия элементарные. не сложнее чем ходить от точки к точке смотреть куда надо, потом идти к костру садиться на определённом расстоянии от него, играть на гитаре, потом есть(сколько действий?) да ещё и трупы оттаскивает. Даже в описании разницу видно. Неужели занятие позиции сложней сделать? Какой тут ИИ нужен? нужно чтобы НПС тупо сидел и стрелял и всё, я вот о чём писал, а сопровождать в бою и аптечку применять для ГГ помощник, неужели это проще сделать? так это уже сделали. Откройте глаза, люди, кто умеет и знает как делать. Вот строчки из стандартного конфига НПС

State = 7 0 - бежать прямо на врага 1 - бежать на врага петляя 2 - бежать на врага по укрытиям 3 - бежать от врага по укрытиям 4 - паника 5 - прятаться от врага 6 - обходить врага

Я думаю и в движке это уже предусмотрено, жаль что не знаю как. А те кто умеет, наверно уже делают чтобы НПС и какать ходил, ведь это так необходимо -)) в игре.

  • "шёл к окну садился на одно колено и сидел стрелял" - как НПС сможет различать окна?
  • "пить, есть, спать" - они и так умеют (выполняя работу в лагере).
  • "торговать" - это врядли. можно конечно какой нибудь фейк придумать (типа как в ЗП они артефакты типа ищут). Но это всеравно будет не по-настоящему.
  • --THE ATLAS 21:48, 13 мая 2011 (UTC)

2 - бежать на врага по укрытиям - как то ведь различает. 3 - бежать от врага по укрытиям Хорошо спрошу вообще по тупому -)) как записать логику чтобы при тревоге и т.п. НПС сидел на одном месте и никуда не бежал, а просто сидел и стрелял? Куда уже проще? -)) Ничего выбирать не надо, идти никуда не надо просто сидеть на одном месте и стрелять чтоб не съели или не убили. Только пример. Самый большой недостаток статей по логике это отсутствие конкретных примеров, что сводит практически на нет их ценность. Например: Движение по путям и точки куда смотрит пример 4. Написано красиво, но когда пытаешься сделать если для первой точки пишешь flags = 0x1 а для второй flags = 0x2 - вылет связанный с флагом, уже не помню конкретно. А если для обоих точек flags = 0x1 то он и смотрит из любой точки в одно место. Нет примера! и всё, ну прочёл я уже 10 раз это место, а писать то как? распаковал all.spawn там пытался смотреть, но там столько доп. нагрузки идёт что непонятно что для чего. Вот и получается для меня 16 страниц так в общем и ни очем(демагогии). А те кто знает как писать, читать не будут они и так знают. Ты как программист знаешь что даже лишний пробел иногда играет большую роль. Маленький конкретный пример гораздо лучше 2-х страниц объяснений "в общем".

  • Всё что можно было реализовать в Сталкере, уже реализовали. На большее, не движок, не ИИ, неспособны.
  • --THE ATLAS 14:57, 15 мая 2011 (UTC)

Да я же не про логику уже спрашиваю -)) без всякой логики, как сделать чтобы НПС стоял на месте и никуда не ходил при опасности, а просто стоял и стрелял по собакам или по врагам? ну какая тут логика? Есть такая поговорка: "Один дурак, может своим вопросом тысячу мудрецов поставить в тупик".(близко к тексту -)) ) Так вот я и задаю "мудрецам" вопрос -)).

Функции и возможности схемы:

1. Селектор целей - каждый NPC имеет свой список целей, и самостоятельно выбирает из него наиболее угрожающую. 2. Контроль прицеливания - NPC целятся во врага, с умом подбирая точку прицеливания зависимо от расстояния до противника и положения его тела в пространстве. К точке прицеливания так же применяются отклонения, величина которых зависит от ранга неписей. 3. Контроль ведения огня - чем выше ранг NPC тем более адекватно он использует оружие, например не пытается лупить очередями из самозарядных дробовиков (если не выдерживать небольшую паузу, второй и последующие выстрелы уходят значительно выше цели - этому NPC учатся с опытом) 4. Боевое маневрирование - NPC стрейфятся в бою, перебегают от укрытия к укрытию, стараются обойти противника с флангов и зайти за спину. Агрессивность поведения опять же зависит от ранга. 5. Использование укрытий - NPC динамически выбирают укрытия от огня противника, стараются не подставляться под огонь. Получив хит в укрытии стараются сменить его на другое. 6. Командная работа - схема построена таким образом, что поведение одних NPC дополняет других. Например в бою с несколькими противниками пара из них может вести по вам подавляющий огонь, не давая высунуться, в то время как другие будут обходить с флангов. 7. Совместимость со стандартной игровой логикой - схема принимает во внимание стандартные логические построения - игнор боя, схему кемпера, схему фанатика.

Проблема в том что враг идет в точку которая указана в префабе игрока(Player) и эта точка не меняется, в отличии от точки самого игрока на сцене, когда я им управляю. Надеюсь понятно объяснил. Так как сделать что бы враг следовал на игроком на сцене, а не за его префабом.

Движение к игроку
Сделал движение врага к игроку, но враг идет-идет и поднимается вверх. На картине изобразил путь.


Стрельба ИИ по игроку
Здравствуйте! Спасибо, что решили уделить мне время :) Проблема такая: есть у меня ИИ, он лучник.


Шарик, движущийся к игроку
public Transform target; Rigidbody2D a; public Vector2 b; void Start () < a.

Удар врага по игроку
Здравствуйте. Ни как не пойму как правильно сделать удары врага с задержкой. Он должен подойти к.

Как то так, должно работать

У меня есть префаб Player. я вытащил одного на сцену. потом создал скрипт там объявил GameObject Player. потом закинул скрипт на врага. перетащил префаб в поле скрипта в инспекторе

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

Решение

Спасибо, работает. Слушайте, у меня так задумано ,что враги появляются в разных местах на сцене и их достаточно много и все бегут на плеера. Я так понял, что каждый появляющийся враг будет отдельно запускать свой EnemyScript и каждый будет искать игрока на сцене и вроде как, это сильно нагружает игру(могу ошибаться) может как то сделать ,что один раз находится игрок и его координаты и уже отсюда каждый EnemyScript будет брать эти значения чтобы заного не загружать. Или не стоит и я сильно "загоняюсь"?

Наши услуги подойдут как профессионалам, так и начинающим администраторам серверов. Для полноценного управления сервером и настройки любых конфигов даже не требуются навыки пользования FTP клиентом. Абсолютно все настройки можно проводить прямо через панель управления.

Для проведения кланваров предусмотрена функция 1000fps, чтобы сделать стрельбу максимально точной. Наша тех. поддержка поможет решить любые вопросы по серверу в кратчайшие сроки.

Наши проекты

Услуги

  • VDS Сервера
  • Counter-Strike 1.6
  • Сборка сервера CS 1.6
  • Counter-Strike: Global Offensive
  • Counter-Strike: Source
  • Counter-Strike: Source v34

Аренда

Хостинг серверов Counter-Strike 1.6, Counter-Strike Sourse, Counter-Strike GO, а также MineCraft с демократичными ценами на слот.

Я пыталась выполнить квест "Колледж магов", но Мирабель Эрвин застыла на месте и не может никуда идти. Я могу поговорить с ней, но это все, что я могу сделать. Как я могу сбросить ее или сбросить NPC в целом?

Что будет если в СПАСТИ ЛОКИРА в СКАЙРИМЕ?

как воскресить любого нпс в скайриме - skyrim

Skyrim. Как воскресить пропавшего NPC

Как поменять навыки скайрим - секреты - сброс перков - баг |How to change skills Skyrim reset perks

5 ПОЛЕЗНЫХ ЛАЙФХАКОВ ДЛЯ ИГРЫ SKYRIM !

SKYRIM: Как Успокоить Сюжетного, Квестового NPC

Как Спавнить NPC В Скайриме и Заставлять их драться!

Как без модов сделать в игре скайрим НПС смертными

Почему Ты НЕ Должен Вступать В Гильдии ( Скайрим )

консольные команды для skyrim

Как прокачать неограниченное число перков в Skyrim

БАГ С ПОЛЗАЮЩИМИ NPC В SKYRIM

КАК АТАКОВАТЬ ЗА ЛЮБОГО NPC В СКАЙРИМЕ!

Как изменить расу NPC в Скайриме))

Я бы попробовал консольные команды enable и disable .

Сначала сделайте сохранение игры, а затем в игре откройте консоль, нажав ~ , затем нажмите на Mirabelle Ervine. На экране должен появиться ее RefID (0001C1B9). Если RefID правильный (это означает, что вы правильно выбрали Мирабель, а не другой объект), введите disable , а затем enable .

Если это не сработает, попробуйте телепортировать ее в свое местоположение, чтобы попытаться 'отвязать' ее. Когда Мирабель все еще выбрана в консоли (ее RefID (0001C1B9) все еще отображается на экране, когда вы нажимаете ~ [если нет, выберите ее снова]), введите moveto player .

Попробуйте открыть консоль (клавиша ` по умолчанию), щелкнуть на NPC и ввести "resetAI". Это сбросит ИИ NPC и, надеюсь, избавит ее от привязки. Если это не сработает, вы можете попробовать "переработать реактор", но это может иметь побочные эффекты.

У меня возникла проблема с застрявшей Адрианной Авениччи. Сработала следующая последовательность команд:

Console ` Нажмите на NPC, о котором идет речь - появится его код. Команды в последовательности (не обязательно ставить ID, если объект выбран)

Символ будет отображаться в положении по умолчанию.

Я знаю, что это происходит с опозданием на 5 лет, но поскольку у меня только что возникла эта проблема, и ни одно из предложенных здесь решений не помогло, я решил дать решение, которое сработало для меня:

  1. Вызовите враждебного моба, который вызовет реакцию боя у вашего целевого NPC с player.placeatme BaseID NumberofObjects

(например: player.placeatme 0002D1DE 5 вызовет 5 скелетов в вашей локации)

  1. Убейте или уберите враждебного(ых) моба(ов), как только ваш целевой NPC отреагирует на это. После этого NPC должен переместиться куда-нибудь самостоятельно (это может решить проблему прямо здесь).
  2. Используйте консольную команду disable, а затем enable на целевом NPC. Теперь они должны возродиться в правильном месте с правильным поведением.

У меня была проблема в Ривервуде, когда я сказал ребенку, что сделал его невидимым, и с тех пор он просто стоял там, не двигаясь.

Через несколько игровых дней я вернулся в Ривервуд и обнаружил, что все просто остановились на месте возле трактира (рядом с тем местом, где был ребенок) и никто не двигался.

Команда "включить" "выключить" ни на кого не действовала.

Мне помогло то, что я напал на кого-то, а затем набрал на консоли "paycrimegold 0 0".

Я потерял 40 золотых за нападение на человека, но меня не посадили в тюрьму и не забрали мои предметы, если вы просто используете "paycrimegold", вас посадят в тюрьму и заберут предметы.

Читайте также: