Анон помоги. Как можно теоретический реализовать такую систему в юнити на c#. Система текстовых диал
Аноним30/08/23 Срд 04:58:43№8958301
Анон помоги. Как можно теоретический реализовать такую систему в юнити на c#. Система текстовых диалогов, но не с игроком, а только между НПС. Если имеются подходящие туториалы, то гуд.
Нужно сделать систему диалогов, где я смогу вносить в инспекторе, такие параметры, как, имя НПС. А также диалоги ( многоуровневые, то есть чел может вернуться к этим диалогам, если триггернется снова ) для следующих случаев:
-Встреча определенного обьекта -Встреча определенной локаций -Встреча определенного НПС -Встреча трех НПС одним НПС -Триггер на определенные события ( теоретический я думаю будет кубик где то в конце локаций, если я делаю что то конкретное, то кубик из положения выключенного переходит во включенный, то псть это реакиция на коллизию обтекта )
И систему диалогов для каждой из них Аноны русские и xoxoлы пожалуйста. В игре теоретический больше 50 НПС. После разработки системы диаллгов и ИИ будут пилить карту из демки, возможно демки
>не с игроком, а только между НПС Текст - это только визуализация (отображение) для человека-наблюдателя. Персонажи в игре могут передавать друг другу числа, ссылки и прочие переменные без единой буквы текста.
Если игрок должен как-то видеть общение между неигровыми персонажами, отдельная система переводит язык персонажей в текст на экране.
>Нужно сделать >для следующих случаев: >И систему диалогов для каждой из них Сколько платишь за выполнение работы? Или что ты вообще просишь у нас? Сделать всё за тебя?
>>895859 Без внятного ТЗ результат ХЗ, а бесплатно тебе придумывать ТЗ по твоим влажным фантазиям, которые ты даже простыми словами описать толком не можешь, никто не будет.
>>895877 Ну допустим, сколько ты возьмешь за такую систему диалогов? Только чтобы я все мог вносить в инспекторе. В том числе и условия, диалоги должны быть многоуровневыми для каждого НПС ( то есть НПС2 может поговорить с НПС1 три раза, разные промежутки времени ). Деньги есть
>>895830 (OP) Ебанул себе год назад систему диалогов, оч удобно делать ветви, залупы назад в себя/в другие ветви, хуе мое. Системе похуй кто с кем разговаривает, игрок с нпц или толпа нпц друг с другом - все решает писатель диалога. Можно целое кино ебануть при желании, камеры, актеры, анимации кек. Если интересно, за основу брал редактор диалогов из нвн1 погугли как там примерно, должно помочь.
>>895926 >реагировать на наличие обьектов в поле зрения не очень понял, система собирает всех актеров в пул когда стартует диалог, можно конечно не собирать, а искать актера когда к нему обращается нода, зависит от игры короче >Скинь ссылку на то, что помогло его построить. https://nwn.wiki/display/NWN1/Conversation+Editor
>>895919 >толпа нпц друг с другом >>895931 >система собирает всех актеров в пул Зочем?
Проектировал похожую систему, решил сделать так: персонажи имеют радиус слышания, если кто-то из персонажей что-то говорит, другие персонажи в определённом радиусе могут его услышать, и если персонаж кого-то слышит, он может ответить.
Правда, я не разобрался, как сделать так, чтобы персонажи не говорили одновременно, перебивая друг друга. По идее, один персонаж должен ждать, когда договорит другой. Наверное, это можно решить разным уровнем терпения: нетерпеливые персонажи чаще перебивают других персонажей...
>>895970 >Зочем? Читаю оп жопой, тогда конечно не надо, сорян.
>как сделать так, чтобы персонажи не говорили одновременно, перебивая друг друга сделой чтобы когда нпц броадкастит фразу, все остальные получают рандомный delay и должны сначала выкрутить его в 0 чтобы отреагировать это если рандомная толпа орет
если это фиксированный (скриптованный) диалог с вежливыми джентельменскими паузами, то я бы сделал говорящего выдерживать паузу (перед тем как броадкастить)
возможно броадкаст состоял бы из двух калбеков: первый - чтобы дать нпц вокруг знать что кто-то че-то спизданул и ждать (как говорится standby) второй означает что нпц закончил прогон и можно реагировать если второй калбек не пришел (нпц упал и здох), нпц подождут и отменят диалог
>>895970 >персонажи имеют радиус слышания, если кто-то из персонажей что-то говорит, другие персонажи в определённом радиусе могут его услышать, и если персонаж кого-то слышит, он может ответить. Всегда было интересно, чем отличается человек с интеллектом от такого бота. Одна из мыслей - даже если он не в радиусе слышанья, он может увидеть, что кто-то общается, и если ему интересно, подойти к ним. Пример 1 - Вася видит двух собутыльников, подходит к ним обсудить их обычные темы. Пример 2 - Вася видит как его Маня общается с Коляном, сразу устремляется к ним, потому что подозревает, что они планируют измену. Понятно, что это еще сложнее реализовать, но статичные болванчики мне уже давно не вставляют, где-то с двухтысячных.
>>896016 >человек с интеллектом >Вася >Маня >Колян Уверен, что с интеллектом?
>чем отличается человек >от такого бота Главное отличие - люди постоянно учатся на своём опыте, так что если твоему Васе бухая компания надаёт в морду пару раз, он в будущем к таким компаниям подходить не будет. В играх боты обычно ничему не учатся, действуют только по заложенным шаблонам, и продолжат повторять свои действия, даже если они безуспешны или убыточны.
Сделать обучаемых ботов возможно, но есть нюансы: во-первых, требуется значительно больше вычислений, во-вторых, боты рано или поздно научатся абузить любые уязвимости игровых правил или движка, в-третьих, боты рискуют стать непобедимыми для игрока, в-четвёртых, боты могут найти что-то вроде наркотика и кайфовать с ним вместо выполнения требуемых от них задач. Поэтому для обычных игр (а не исследовательских симуляций) обычно берут простые необучаемые алгоритмы, далёкие до человека или хотя бы дрессируемого животного.