система диалогов

Общие вопросы о Unity3D

система диалогов

Сообщение gnoblin 13 июн 2012, 02:54

подскажите, кто чем пользуется для диалогов?

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

меня интересует какой-либо удобный визуальный редактор диалоговых деревьев!

спс
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: система диалогов

Сообщение Derek 13 июн 2012, 10:26

Не визуальный. Lua, во всем мире используют ее, а в Blizzard на ней даже скриптуют логику для карт. Второй аналог AngelScript, он приятней синтаксисом.
Правда через luaInterface плохой вариант. Где-то видел реализацию lua полностью на шарпе, но не пробывал еще.
ИМХО если гибко и универсально тогда скрипты, (например в диалоге сыграть в крестики нолики). Если простой в духе "привет я @name." , тогда и обычный словарь подойдет.
Derek
UNIт
 
Сообщения: 66
Зарегистрирован: 05 май 2011, 11:30
Откуда: Донецк

Re: система диалогов

Сообщение AndreyMust19 13 июн 2012, 11:41

Смотря какие диалоги нужно реализовать.
Если у вас просто "текстовой квест" с выбором пунктов меню, без воспроизведения речи, а единственное действие игрока при разговоре - нажатие на цифру 1, 2, 3, то диалог должен содержать ссылку на фоновое изображение, основной текст, пункты меню, к-е в свою очередь содержат текст и ссылку на другой диалог, активируемый при выборе этого пункта. Каждый диалог можно создать в виде отдельного игрового объекта, для удобства каждому диалогу дать модель и название, чтобы его было видно в окне сцены, а связи между пунктами и диалогами показывать Gizmos-линиями в режиме редактора. Выглядеть будет как граф из блоков, где визуальным редактором выступает сам Unity3D.
Перемещать объекты-диалоги, как вы знаете, можно из окна иерархии прямо в поле в окне-инспекторе. Для запуска этого графа достаточно одного скрипта в первой вершине.
Нужна помощь? Сами, сами, сами, сами, сами... делаем все сами
AndreyMust19
Адепт
 
Сообщения: 1119
Зарегистрирован: 07 июн 2011, 13:19

Re: система диалогов

Сообщение bomberest 13 июн 2012, 12:11

Я пытался делать свой редактор диалогов как расширение юнити. Есть класс, который содержит ссылку на родителя и детей, все они одного и того же класса. Проблема только в том, что после сохранения\загрузки ссылки переставали работать, но значения показывались. Не слишком углублялся в проблему.
Основы Unity3D Свой 2D-движок Фильм для разработчиков Кастомизация едитора
Лекции игрового программирования
Skype: Andrewf56 | Steam: bomberest (-AnF-) | Vk: _https://vk.com/andrewshut
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ

Re: система диалогов

Сообщение eligma 13 июн 2012, 14:55

тут возьми viewtopic.php?f=13&t=7524&p=59758#p59758 в самом низу
Gleeko Multiplayer Gameplay------Знаете ли вы что протокол IPV6 в 1 000 000 раз превышает по возможностям протокол IPV4? А также протокол IPV6 официально был запущен в прошлом году 6.06 числа в 6 часов утра. Это событие отмечали во всем мире.
Аватара пользователя
eligma
Старожил
 
Сообщения: 778
Зарегистрирован: 29 фев 2012, 03:35
  • Сайт

Re: система диалогов

Сообщение gnoblin 13 июн 2012, 17:25

eligma писал(а):тут возьми viewtopic.php?f=13&t=7524&p=59758#p59758 в самом низу


спасибо, но тут не очень наглядно создавать дерево диалогов в инспекторе как мне кажется

UDE кто-нибудь использовал?
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: система диалогов

Сообщение gnoblin 13 июн 2012, 23:45

eligma писал(а):тут возьми viewtopic.php?f=13&t=7524&p=59758#p59758 в самом низу


на андроид не компилится (-|
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: система диалогов

Сообщение Guyver 14 июн 2012, 07:36

Я может не в тему ..
но удивлён, что у такого программера как ты ... система диалогов вызвала затруднения =)

я вот подумал минут 5 над темой и в голове возникла примерно неплохая на 1й взгляд иерархия классиков ... и XML.

В конце концов ХМЛ является могучей шнягой, которую мелкомягкие сделали мега популярной ... и из чего породилось море тонн всяческих редакторов ...
Пример визуального редактора ХМЛь: Liquid XML Studio http://www.liquid-technologies.com/xml-studio.aspx (это что пришло 1м в голову .. я уверен их тонны).

Если претит ХМЛь и сторонние редакторы .. то можно поморщить моск и накатать что то визуальное в самой [unity 3D] ... в конце концов есть Визио от Нео ... который при рассмотрении под правильным углом, тоже может быть визуальным редактором неких графов диалогов.

п.с. В голове ещё крутятся всяческие Rational Rose и Microsoft Visio ... но не работал с ними плотно .. не знаю как можно из них забрать результат.
Xcombat: 3D шутер на летающих тарелках!
Аватара пользователя
Guyver
UNIверсал
 
Сообщения: 392
Зарегистрирован: 21 июл 2010, 08:04
Откуда: Челябинск

Re: система диалогов

Сообщение Tolking 14 июн 2012, 08:21

Система диалогов затруднений не вызывает... Затруднение вызывает автоматизация процесса создания диалогов...

Гноблин, найдешь что-нибуть толковое отпишись, пожалуйста.
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2718
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: система диалогов

Сообщение gnoblin 14 июн 2012, 16:36

мне хочется сесть и писать диалоги, а не придумывать/писать какой-то код )
когда я работаю, стараюсь с минимальными затратами получить максимальный результат :D

я попробовал treeview control с ассет стора, штука прикольная - но подглючивает и диалоги стираются ))

xml не дает легко создавать древовидные диалоги (когда мы разными путями можем придти в одну и ту же точку)

последний вариант на котором я остановился это создавать го прямо в иерархии и в имя геймобъекта вбивать текст фразы - пока нравится,
для прыжков в другую часть иерархии можно будет сделать скрипт с public Transform :).
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: система диалогов

Сообщение bomberest 14 июн 2012, 23:30

Почему бы не сделать что-то такое, вместо го + написать простенький редактор?

Синтаксис:
Используется csharp
        public class Node
        {
                public List<DialogClasses.Node> childrens = new List<DialogClasses.Node>();
                public string text = " ";
                public DialogClasses.Node parent = new DialogClasses.Node();
        }
Основы Unity3D Свой 2D-движок Фильм для разработчиков Кастомизация едитора
Лекции игрового программирования
Skype: Andrewf56 | Steam: bomberest (-AnF-) | Vk: _https://vk.com/andrewshut
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ

Re: система диалогов

Сообщение Guyver 15 июн 2012, 07:17

bomberest писал(а):Почему бы не сделать что-то такое, вместо го + написать простенький редактор? ... [/syntax]


потому что он не хочет кодить диалоги )) он их хочет писать ) ... уже ответил.

-----


мне кажется в более менской РПГ ... возмём в пределе фалаутоподобное .. деревьев диалогов у тебя на сцене будет тьма тьмущая! =(
таким образом это же палюбому будет тормозить при обработке сцены рендером, апдейтером и прочими встроенными штуками (он же их дёргает при каждом чихе ... как вариант отключить рендер а в идеале пометить эти ноды для юньки как несуществующие, чтобы она их игнорила при всех ситуациях стандартного своего пайплайна)
Xcombat: 3D шутер на летающих тарелках!
Аватара пользователя
Guyver
UNIверсал
 
Сообщения: 392
Зарегистрирован: 21 июл 2010, 08:04
Откуда: Челябинск

Re: система диалогов

Сообщение Syberex 15 июн 2012, 10:57

А потом по дереву диалогов перемещаться через transform и parent ???
Это же будет "не оптимально" :) ...

В конечном счете надо строить либо хэш-таблицу, либо связанный список, либо многомерный массив ;)
Чтобы в рантайме все это крутить.
С xml деревьями в рантайме тоже не будешь связываться ...
Я бы сделал свой класс диалог
class Dialogue {
int id;
string caption;
string text;
List<Dialogue> links;
}

вешал бы его на геймобъекты, дочерние главному геймобъекту "ДиалогСистема", а потом из этой системы либо в рантайме, либо до этого
(но нужно будет как то хранить) строим "хэш-таблицу, либо связанный список, либо многомерный массив" (с) B-)
Где класс ДиалогСистема будет свободно возвращать диалог по id-шнику и тд

Собственно щас у меня так построена система waypoint-ов для поиска пути, и есть кнопочка для удобного связывания в редакторе двух waypoint-ов (ну и развязывания) ...

Могу переделать свой скриптик под диалоги вечером если автор захочет :)

Вообщем удобно писать диалоги это одно, их надо удобно хранить это 2, их надо удобно пользовать в рантайме это 3!
Последний раз редактировалось Syberex 15 июн 2012, 15:23, всего редактировалось 1 раз.
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: система диалогов

Сообщение Guyver 15 июн 2012, 11:22

"и как тебе такие мысли в голову приходят?" (с) одна моя знакомая своему вдупель пьяному мужу ..

удобно хранить - графы (иначе никак да ?!) ...
то, что предложил гноблин - графы ..
то, что предложил я в первый раз (ХМЛЬ) - графы (если вам это не графы, значит вы не умеете его готовить)

что за богохульство про хеши, словари, мгновенные поиски по айди ?? ..
связанный граф с кольцами это ничто иное как связанный список причём однонаправленного нужно и достаточно... ноде достаточно знать лист из детей ... (это можно описать и гноблинским способом и моим через ХМЛЬ)

в системе диалогов, вы имеете текущую ноду и в зависимости от развития диалога вы идёте на того или иного чилдрена ... на кой лят нам мгновенный ПОИСК по какой то там айди? .. взять класс по указателю это более неоптимально ? ...

п.с. про связь в рантайме с ХМЛЬ деревьями .. я мало что понял, но лично я использую ХМЛЬ как хранилище структурированных данных ... на выходе получая удобную мне структуру нужных мне классов как правило иерархичную ..
не догнал что такое "связь с ХМЛЬ в рантайме" ...
Xcombat: 3D шутер на летающих тарелках!
Аватара пользователя
Guyver
UNIверсал
 
Сообщения: 392
Зарегистрирован: 21 июл 2010, 08:04
Откуда: Челябинск

Re: система диалогов

Сообщение Syberex 15 июн 2012, 15:43

Про XML в рантайме это да, это я? ;)) Это была шутка =))

Про классы это хорошо, это просто разные варианты реализации...
Guyver писал(а):что за богохульство про хеши, словари, мгновенные поиски по айди ?? ..

Почему же это "богохульство" ... какой Бог запрещает использовать структуры хранения и обработки данных для данных имеющих особую структуру?
Это же их прямая обязанность!
Классы тоже хорошо, но у этих подходов свои плюсы и минусы :)

Да по цепочке ссылок пройтись нормально, но все цепочки диалогов будут иметь свое начало. Начало или от НПС или от квестов или хз от чего еще ... Но вероятно потребуется показать начальный диалог НПС/квеста и тд, или диалог из середины, не имея ссылки на текущий класс-диалог ...
Ну не знаю как с вашей точки зрения, а мне перебор диалогов по цепочке ссылок, причем если с цикличными ссылками - кажется извратом, по сравнению с поиском по id в хэш-таблице, причем переход по ссылке здесь никто не отменял ...

В случае с классами, придется хранить полный путь до нужного диалога? Тогда придется юзать рекурсивную функцию, для получения ссылки на этот диалог?
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

След.

Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12