Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: НПЦ по расписанию RPG Maker MV

НПЦ по расписанию RPG Maker MV 3 года 9 мес. назад #117867

  • Reynor
  • Reynor аватар
  • Вне сайта
  • Оседлый
  • Сообщений: 45
  • Спасибо получено: 21
Здравствуйте уважаемые разработчики!
Видел подобную тему «Перемещени НПЦ», но она мне не помощник.
Суть моей проблемы: есть много НПЦ, все они могут взаимодействовать с игроком, кто-то просто стоит, кто-то ходит случайным образом, у всех есть свои диалоги и варианты развития событий. Мне нужно сделать так, чтобы вечером все пошли по домам А утром на работу и по своим местам (именно пошли).
В игре есть система времени и смены суток. Я могу сделать чтобы вечером они пропадали а вечером появлялись, но когда я задаю им ветвление условий по переменной времени (например если время больше 20 тогда запускается маршрут.) ничего не происходит ветсвление условий я ставлю в самом начале события.

Я новичек в подобной сфере разработки, по этому прошу подробней объяснить что я делаю не так.
Спасибо за понимание.
Администратор запретил публиковать записи гостям.

НПЦ по расписанию RPG Maker MV 3 года 9 мес. назад #117869

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 574
  • Спасибо получено: 1448
  • 2 место Даритель СтимкеяОраторОрганизатор конкурсовУчительПрограммист JavaScript
Ну смотри, по поводу что бы они отреагировали все одновременно, то тебе надо завести два глобальных переключателя, один будет «Вечер» второй «Утро».

events.png


У каждого персонажа (события) делаешь две дополнительные вкладки, условием запуска одной будет переключатель «Утро», и вторая соответственно «Вечер». Условия запуска ставишь «Параллельно», иначе всё будет АДОВО тормозить.

Теперь когда у тебя наступает утро, активируешь переключатель «Утро» и у всех событий (персонажей) начнётся выполнение, то же самое и для «Вечера». Главное потом не забыть их отключить.

К сожалению, для того что бы NPC именно «ПРИШЛИ» в нужную тебе точку на карте стандартных средств нет. Если бы они у тебя стояли на месте, то ещё можно было бы задать пошаговое движение в виде — шаг влево, шаг вперёд, шаг вперёд итд.

Что бы реализовать твою задумку с ходьбой придётся установить плагин, что-то типа «Pathfinding! Follower Control». Тогда у каждого события можно сделать команду «Выполнить скрипт» и написать:
this.path(x, y)

Где x,y координаты на карте куда нужно придти событию (NPC)

Ну вот как-то так :unsure:
Последнее редактирование: 3 года 9 мес. назад от Mur.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Jas6666, Phileas, PringOva, Event1, Alx_Yago, Iq54, LiRo, Reynor

НПЦ по расписанию RPG Maker MV 3 года 9 мес. назад #117870

  • Event1
  • Event1 аватар
  • Вне сайта
  • Бывалый
  • Сообщений: 55
  • Спасибо получено: 72
  • Проект месяца 1 местоПроект месяца 3 место
Судя по всему, "PFC" это отличный плагин. Мне бы такой очень пригодился. Пока что приходится вручную прописывать десятки маршрутов. К сожалению, чтобы им воспользоваться, нужно оформлять подписку. А не подскажете бесплатные аналоги?
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Iq54

НПЦ по расписанию RPG Maker MV 3 года 9 мес. назад #117871

  • Phileas
  • Phileas аватар
  • Вне сайта
  • Мастер
  • Сообщений: 180
  • Спасибо получено: 269
  • ВетеранПроект месяца 1 местоПроект месяца 3 местоПроект месяца 2 место
Если маршруты не слишком сложные (нет всяких препятствий на дороге, типа кустов, деревьев, камней, мусора...), то можно попробовать событийно реализовать это (на каждом шаге уточнять координаты человечка, координаты места назначения мы знаем, в зависимости от этого решаем, куда сделать шаг).
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: LiRo

НПЦ по расписанию RPG Maker MV 3 года 9 мес. назад #117872

  • Event1
  • Event1 аватар
  • Вне сайта
  • Бывалый
  • Сообщений: 55
  • Спасибо получено: 72
  • Проект месяца 1 местоПроект месяца 3 место
Именно что маршруты сложные. Разная местность, лестницы, препятствия. Хотелось бы конечно просто задать конечную точку и чтобы нпс сам дорогу выбирал. Не то, чтобы это очень сложно - маршрут задать, но когда карта большая и статистов много, очень легко ошибиться.
Администратор запретил публиковать записи гостям.

НПЦ по расписанию RPG Maker MV 3 года 9 мес. назад #117873

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 574
  • Спасибо получено: 1448
  • 2 место Даритель СтимкеяОраторОрганизатор конкурсовУчительПрограммист JavaScript
Event1 пишет:
Судя по всему, "PFC" это отличный плагин. Мне бы такой очень пригодился. Пока что приходится вручную прописывать десятки маршрутов. К сожалению, чтобы им воспользоваться, нужно оформлять подписку. А не подскажете бесплатные аналоги?

Ну насчёт бесплатных не подскажу, но если не смущает старая версия, то можно поискать проекты на том же github. Например тут сохранённая версия 1.05 (судя по патреону, то последняя версия 1.11) Так же автор абсолютно не удосужился в заголовке указать лицензию, можно его версию использовать в коммерческих проектах, нельзя, неизвестно. :unsure:
//=============================================================================
// Follower Control
// by Tyruswoo
//
// Be sure to save as:
// TYR_FollowerControl.js
//============================================================================
Последнее редактирование: 3 года 9 мес. назад от Mur.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: tvorimvsevmeste, Phileas, Event1, LiRo, Reynor

НПЦ по расписанию RPG Maker MV 3 года 9 мес. назад #117874

  • Event1
  • Event1 аватар
  • Вне сайта
  • Бывалый
  • Сообщений: 55
  • Спасибо получено: 72
  • Проект месяца 1 местоПроект месяца 3 место
Спасибо :) Даже если откинуть такую очевидную вещь как автоматизация процесса, то у плагина перед ручным вводом огромное преимущество. Например нпс занимается своими делами, то есть рандомно что-то делает (допустим ищет что-то), а после срабатывания триггера он должен уйти в определённое место. Мы не знаем, где он будет в этот момент и вручную подобный маршрут не прописать.
P.S. Если судить по тому, что автор выкладывает свои работы исключительно на патреоне с ежемесячной подпиской, можно предположить, что нельзя. Но это не точно :)
P.P.S. Оказывается, всё-таки можно, нашёл: "This plugin is free to use in both commercial and non-commercial games."
Последнее редактирование: 3 года 9 мес. назад от Event1.
Администратор запретил публиковать записи гостям.

НПЦ по расписанию RPG Maker MV 3 года 9 мес. назад #117876

  • Reynor
  • Reynor аватар
  • Вне сайта
  • Оседлый
  • Сообщений: 45
  • Спасибо получено: 21
Mur пишет:
Ну смотри, по поводу что бы они отреагировали все одновременно, то тебе надо завести два глобальных переключателя, один будет «Вечер» второй «Утро».

events.png


У каждого персонажа (события) делаешь две дополнительные вкладки, условием запуска одной будет переключатель «Утро», и вторая соответственно «Вечер». Условия запуска ставишь «Параллельно», иначе всё будет АДОВО тормозить.

Теперь когда у тебя наступает утро, активируешь переключатель «Утро» и у всех событий (персонажей) начнётся выполнение, то же самое и для «Вечера». Главное потом не забыть их отключить.

К сожалению, для того что бы NPC именно «ПРИШЛИ» в нужную тебе точку на карте стандартных средств нет. Если бы они у тебя стояли на месте, то ещё можно было бы задать пошаговое движение в виде — шаг влево, шаг вперёд, шаг вперёд итд.

Что бы реализовать твою задумку с ходьбой придётся установить плагин, что-то типа «Pathfinding! Follower Control». Тогда у каждого события можно сделать команду «Выполнить скрипт» и написать:
this.path(x, y)

Где x,y координаты на карте куда нужно придти событию (NPC)

Ну вот как-то так :unsure:


Не ожидал я такого быстрого ответа.
Огромное спасибо! Вы очень помогли, моя ошибка была в том, что я не создавал новую вкладку для этого события, наверное потому, что нет опыта, а это событие я писал в самой первой (думал так правильно) :cheer: нужно мне больше разобраться в самой механике.
По поводу скриптов, я ещё не знаю как их использовать, и строил игру только с тем что есть в движке, ну кроме мапинга и анимаций.
Буду смотреть как работать с скриптами.
Ещё раз большое Вам спасибо за быструю и внятную помощь!
И спасибо всем кто откликнулся!
Администратор запретил публиковать записи гостям.

НПЦ по расписанию RPG Maker MV 3 года 9 мес. назад #117893

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 574
  • Спасибо получено: 1448
  • 2 место Даритель СтимкеяОраторОрганизатор конкурсовУчительПрограммист JavaScript
По просьбе Reynor и Event1 распишу более подробно, как я вижу реализацию данной задачи.

К сожалению, выше предложенный плагин (PFC) оказался на практике не совсем то что нужно. Возможно, в последующих обновлениях автор и довел до ума (сделал поддержку перемещения событий по координатам), но в старой версии (1.05) присутствует только управление членами группы игрока.

Как альтернативный вариант был взят условно-бесплатный плагин от GALV «MV Move Route Extras».

Из плюсов:
  • он действительно позволяет задать движение ивента(события) к произвольным координатам;
  • позволяет задать движение к другому ивенту, указав ID того;
  • можно задать область с помощью региона, где ивенту будет разрешено свободное перемещение;

Из минусов:
  • очень примитивный алгоритм нахождения кратчайшего пути (если он вообще есть) в результате чего ивент просто упрётся в препятствие и будет тупить;
  • для того что бы ивент не попал в такую ловушку, приходится включать режим прохождения, и все начинают ходить через стены напрямки, выглядит по идиотски;
  • команду «иди к координатам» нужно вызывать в каждый раз и каждый раз ивент делает только 1 шаг в направлении заданной точки; *facepalm*

Вывод, реализовать задумку автора можно, но выглядеть это будет всё не очень!

Что делать? Писать свой плагин без «детских» болезней (сейчас времени 0, в будущем, возможно я возьмусь написать что-то своё)

p.s. Возможно уже существует супер-пупер плагин с точным построением маршрута и я прост его не знаю :silly:


1-28.png



Теперь по поводу как всё это реализовать. В архиве небольшой проект, есть три NPC один стоит на месте, два гуляют по заданному региону. Есть два рубильника, один включает режим «утро»(слева) второй режим «вечер»(справа). При активации рубильника, включается переключатель, и у NPC начинается в цикле вызывается команда «иди к координатам». Если рубильник принудительно выключить, то NPC встанут колом не дойдя до места назначение. Так же в рубильниках стоит таймер ожидания, после чего они выключаются (время подобрано примерно, что бы NPC успели доползти до точки)

Подробно описывать проект не стану, приведу лишь пару описаний.

Как настроить NPC:

Изначально создаём у события три вкладки. Первая вкладка без условий (обычный режим), вторая вкладка активируется при включенном переключателе «Вечер» и режим запуска «Параллельно». Третья вкладка всё тоже самое только для переключателя «Утро». На второй и третьей вкладке так же делаем режим «прохождения через стены» что бы NPC не застрял:

2-19.png


Теперь добавляем саму команду движение события (NPC) — «Set Movement Route…» (я специально вставляю скриншоты, не знаю как там будет в русской версии, но визуально догадаться можно где это)

3-15.png


Указываем, что двигать будем именно «это событие», а не игрока (как по умолчанию). Затем жмём кнопку добавить скрипт и пишем команду:
this.step_toward(14,9)

14,9 это координаты X,Y на карте, куда будет «ломится» наш NPC. Так же можно указать одну цифру и тогда это будет считаться как номер события, куда надо двигаться. (можно даже сделать вариант, когда два NPC бегут навстречу друг дружке, или один убегает от другого применений масса)

4-7.png


Как уже было сказано выше, к сожалению, вызывать this.step_toward нужно постоянно :( в противном случае NPC сделает один шаг и будет стоять. Поэтому переключатель «Утро(Вечер)» должен быть активен на всё время следования.
После того как все NPC прибыли в нужные нам координаты, переключатель можно де активировать. У меня это сделано тупо через определённое время, но можно зацепится за какой-нибудь счётчик или переменную.

И ещё один момент, в задачу это не входило, но для теста понадобилось. С помощью вышеописанного плагина, можно задать регион где будет бродить NPC. При активации условия, он с любого места движется к данным координатам.

Для того, что бы сделать такого «бродячего» NPC. Нужно переключится в режим задания регионов и задать область:

5-4.png


А в настройках самого NPC (события) выставить режим движения «Custom», нажать «Route» и по аналогии, задать движение, нажав опять «Script». Только команда уже будет другая:
this.step_rand(1);

Где 1 - это номер региона по которому можно «тусоваться» нашему NPC

6-3.png


Так же важно задать чекбокс «Repeat movements».

Ну как бы и всё, если будут какие-либо вопросы пишите.
Ссылка на готовый архив с проектом (~58.7Mb)


p.p.s. Если у Анн будет желание, пост можно выдрать в отдельный урок для академии. :blush:
Последнее редактирование: 3 года 9 мес. назад от Mur.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Демий, Jas6666, Cabbit, WhitePaper, PringOva, Event1, Alx_Yago, LiRo, Reynor

НПЦ по расписанию RPG Maker MV 3 года 9 мес. назад #117913

  • Reynor
  • Reynor аватар
  • Вне сайта
  • Оседлый
  • Сообщений: 45
  • Спасибо получено: 21
Спасибо за такое вместительное разъяснение :) рад вступить в Ваше сообщество :whistle:
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Mur

НПЦ по расписанию RPG Maker MV 3 года 9 мес. назад #117917

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 574
  • Спасибо получено: 1448
  • 2 место Даритель СтимкеяОраторОрганизатор конкурсовУчительПрограммист JavaScript
Reynor пишет:
Спасибо за такое вместительное разъяснение :) рад вступить в Ваше сообщество :whistle:

Всегда пожалуйста, думаю завтра будет ещё один «супрыз» :blush:
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Event1
Время создания страницы: 0.282 секунд