Энтузиаст писал(а):
Доброго времени суток, vedaviz. Я тоже немного умею кодить мышкой. В общем, на мой полупросвещенный взгляд имеются объекты-персонажи. Имеется база данных, которая сопоставляет изменение полей объектов вводимому тексту (пользовательский язык), в результате изменения полей прокручивается желаемая последовательность действий. Анимируется, потом из этого клепается видео. Пока ничего сверхъестественного - или я ошибаюсь?
Энтузиаст, извините отвлекся =-)
объекты персонажи - да, в майкрософт агент - это файлы с расширением .acs.
куча персонажей здесь -
http://bellcraft.com/mash/chars.aspxно мне больше нравится делать своих..
конечно если я нахожу картинки или изображения каких-то персонажей скажем из Вед, и создаю для них файлы acs - это конечно же не мистика... все очень просто...
походить по сайтам в гугл-картинки. найти нужную на нужном сайте...
подчистить в фотошопе, можно вырезать ненужное, масштабировать и т д... сделать прозрачный фон...
поставить 256 цветов и т д...
но вот когда вопрос стоит о синтезе речи - это сложнее... выбрать качественный движок голоса - где его взять...?
но даже если есть несколько... впрочем можно как-то работать... на русском и английском хотя бы...
но как понятно - ударения он не правильно ставит. и там тоже заморочка со словарем ударений, и т д... - для голосового движка... но да - с каждым годом они все более совершенны... так что.
персонажи можно создать в программе "майкрософт агент создавалка" (microsoft agent character creator)...
"
Имеется база данных, которая сопоставляет изменение полей объектов вводимому тексту (пользовательский язык), в результате изменения полей прокручивается желаемая последовательность действий
"
да именно так!
я очень просто это сделал.
программа показывает персонажа - главное чтобы он был прописан в системном реестре (разумеется я программирую для виндовз. если бы я это делал в юниксах, андроиде и маках и т д - это было все намного мрачнее..."
хотя впрочем юнити-3д, с из "автодополнением" комманд - тоже работает замечательно - даже несмотря на то что это Си, или джаваскрипт. или Бу =-)
...
работает все просто...
текст, сценарий нужно написать в типичном виде:
например
КРИШНА: Оставь все виды религий и предайся Мне
АРДЖУНА: Хорошо Кришна, я так и сделаю...
Программа просто считывает строчку (если реплика разбита абзацами - немного сложнее...
вы совершенно правы что один знак, запятая и т д могут все испортить, как в "казнить нельзя помиловать")
...
Короче, все просто..
Считывается текст до двоеточия - это будет имя персонажа... или если хотите - аватара...
И если в системном реестре, то есть базе данных этот персонаж прописан - то его нужно показать...
комманда простая - на подобии
msagent.character("character").load
msagent.character("character").show
вместо character подставляется предварительно acs файл, полученный считыванием из системного реестра.
работает как часы... (и мне это нравится! =-) )
но да, разумеется все персонажи должны быть предварительно созданы и перекинуты в формат мсагент - *.acs
...
то есть не нужно ничего перекомпилировать для включения поддержки новых персонажей...
"перекомпилируются" только ацс файлы, только файлы персонажей...
там есть проблема - им всем нужно присвоить уникальные идентификаторы...
я пытался сделать так чтобы ...
даже если нет в базе данных нужного ацс файла - чтобы он все равно создавался...
просто он копируется из стандартного...
и здесь очень помогает программка виджит (widgit)...
в ней... слову душа (soul) - отвечает простая картинка - изображение человечка с лучами вокруг тела...
конечно как это сопоставить с тем что есть 8 400 000 видов жизни, видом материальных тел - растения, птицы, рыбы, животные, полубоги, люди, демоны и т д...
кстати кроме них есть еще и Вишну-таттва - то есть аватары, Бог богов (Дэва дев, как он называется даже в зороастризме, проклинающем богов Вед) - источник всех полубогов и атеистов в т ч...
...
итак, все действительно очень просто -
msagent.character("character").speak("textafter:")
я условно пишу.
переменной textafter: - присваивается текст тот, что после двоеточия, то есть после имени персонажа или "аватара"...
...
но самое интересное начинается когда... когда нужно эти персонажи еще и анимировать...
в мсагент это просто - нужно просто создать набор кадров анимации...
и потом это слайд-шоу запускать когда находим в тексте нужное слово...
пример... да. берем пример из Вед. из Бхагавад Гиты, а откуда же ? Ведь Кришна говорит что к Нему приходят единицы - только после миллионов жизней...
...
например такое предложение -
"Кришна подошел в убитому горем Арджуне и сказал"...
Это понятно... если бы у нас был доступ к какому-нибудь алгоритму вроде Гугл-переводчик, или тому же ПРОМТ...
В Базелевс Инновациях, Киноязыке используется разумеется- алгоритм от ABBYY Compreno... Что хорошо =-)
итак, проблема конечно в том еще, что нужно . не просто проанализировать где в предложении какая часть речи (а одно слово может быть ... сопоставлено с несколькими частями речи. нужно решать многозначность... даже если одна часть речи - решать ... многозначность в этих рамках... но это возможно.. даже в китайском языке =-) )...
...
итак... например "КРишна подошел к Арджуне"...
Если у меня движок Юнити-3д, то я просто использую стандартного персонажа - "рабочего" с гаечным ключем...
(хорошо что не вовкулака)... хотя ябы использовал какого-то более абстрактного существа без такой конкретной одежды... и как в юнити создавать персонажей автоматически - не понятно... это еще сложнее чем в мс-агент (даже в агенте не все так просто, но возможно - это просто вопрос времени. главное чтобы была иллюстрация к персонажу. остальное дело техники - осуществимо... если иллюстрации нет - нужно... да, нужно показать какую-то условную картинку. если это имя человека - показать просто человека без детализации внешнего вида - рост, одежда и т д... но это можно в следующих версиях =-) )...
...
итак...
в юнити то что в мс-агенте делать сложно - заставить скажем человека идти -
в юнити это делается просто. есть персонаж. есть анимация. Идти.
применяются две вместе. получается "чудо"...
но чудо ли?
ну... если таким образом удается заставить аватар идти, контроллировать Его (Бога)... то это... некое чудо...
"
В общем, на мой полупросвещенный взгляд имеются объекты-персонажи. Имеется база данных, которая сопоставляет изменение полей объектов вводимому тексту (пользовательский язык), в результате изменения полей прокручивается желаемая последовательность действий. Анимируется, потом из этого клепается видео. Пока ничего сверхъестественного - или я ошибаюсь?
"
да, объекты не всегда есть. у меня лично их немного даже в двухмерном виде... может несколько десятков. от силы сотня (с вариантами)...
база данных реализуется... сопоставление "полей" - тоже реализуемо... пока что я это проработал в мсагент...
на очереди - юнити 3д...
" в результате изменения полей прокручивается желаемая последовательность действий"
да... это в идеале... впринципе... именно это делает Киноязык...
но он пока что-то уж очень закрыт... даже то что было доступно - парамаунт камеди -
и то закрыли... но зато какая классная штука!
ведь можно эту технологию использовать даже ... в игровых движках!
просто вместо программирования долго и нудно - можно писать комманды движку... в виде обычных предложений -
"Кришна подошел", "Кришна сказал"- и все происходит. включается синтез речи... аватар Кришна подгружается базы данных, Он идет, что-то делает...
конечно здесь сразу можно увязнуть в матрицу... но не советую слишком в это вникать =-)
ведь вконце концов нужно с матрицы вылезти =-)
" Анимируется, потом из этого клепается видео. Пока ничего сверхъестественного - или я ошибаюсь?"
да. но вы видели Киноязык? лично мне это все очень понравилось... =-)
по поводу "ничего сверхъестественного"...
ну не знаю... если взять сценарий обычной сказки - колобка, или там "сказка о рыбаке и рыбке" -
я пробовал две эти сказки и еще некоторые другие - то да ничего особенного...
хотя сразу прикольно - одного зайца сделал для колобка - и тот же заяц - во всех других сказках =-) хаха =-)
...
впринципе... я подумал так, что можно все еще упростить тем что...
нужно из текста создать базу слов... ну там отсортировать их и т д...
и разным там существам сопоставить картинки...
и посадить на это дело людей, которые бы заполнили такую базу данных... подобно тому как это сделали в Виджит...
с единственной разницой... что нужно для начала создать список только существ, опуская все другие картинки...
вцелом можно даже не включать в базу данных картинки тех существ, которые ничего не говорят... ...
...
вот я думал... если персонажи еще и передвигаются и им нужно задавать какие-то комманды - идти туда-то, сделать то-то (кроме произнести что-то) - это сложно... и не знаю всегда ли это нужно...
нужно находить баланс между синтезом речи и набором других комманд...
ведь если реализовывать всевозможные анимации - программа сильно возрастает в сложности...
...
но конечно же, если в играх они все равно есть - почему бы их не задействовать в каком-то киноязыке?
"
Анимируется, потом из этого клепается видео. Пока ничего сверхъестественного - или я ошибаюсь?
"
то есть если это не сверхъестественно, то ... естественно?
тогда вернемся к моей истории с Дулуманом...
Я ему показываю Кришну...
Или лучше - программу (теоретически я возможно бы так и сделал)...
вот взял бы Бхагавад Гиту (Гитамриту) отсюда -
http://www.newjaipur.narod.ru/Buk/gitamrita.zip"Гитамрита" Пурначандра Прабху
...
возможно бы пришлось показать ему это на каком-нибудь планшете с Виндовз (хотя если бы удалось эту программу запустить на андроиде или айпаде - тоже хорошо) =-)
хотя... понятно что Дулуман не специалист в искусственном интеллекте...
...
вот и показал бы ему гитамриту...
ну или ее часть...
Например,
"
Кришна: ... Знай же, что любые формы бытия, относятся ли они к гуне благости, страсти или невежества, - это проявления Моей энергии. Но, хотя все они исходят от Меня, Я нисколько не завишу от них. Я не подвержен влиянию гун материальной природы; наоборот, это они подвластны Мне. Весь материальный мир околдован тремя гунами, но Я всегда пребываю над ними. Потому-то обитатели этого мира и не знают Меня.
"
Но проблема в том что скорее всего Дулуман не захотел бы слушать. ... хоть синтезированную речь, хоть естественную...