Игровые сервера:

TF2.Tomsk.ru:27015 Public
 UPDATE
 
TF2.Tomsk.ru:27016
 UPDATE
 


Мини-чат:


Авторизуйтесь для общения в чате

Сейчас на сайте:

  • Гостей (11)


Публикации

Голосовое управление персонажем

image 
Про голосовые команды типа "Put dispenser here" или "Sentry ahead" знают все. 

Некоторые из них настолько часто используются, что их биндят на отдельные кнопки (например выкрики "Medic!" и "Spy!"). Но их настолько много, что они разнесены в три отдельных менюшки, и кнопок на всех вряд ли хватит (покрайней мере тех кнопок, до которых удобно доставать пальцами). Использовать их через менюшки тоже не всегда удобно: для выбора некоторых выкриков нужно нажимать кнопки 7 или 8, которые расположены далековато от WASD.

Между тем, использовать именно эти голосовые команды иногда прикольно, даже при наличии микрофона. Например, играешь медиком, подбегает к тебе какой-нибудь слегка поцарапанный снайпер и начинает орать прямо в лицо: "Медик, медик", а ты ему: "Nicht!". Или, когда бежишь в атаку, прикольно сказать "Go! Go! Go!" - персонаж при этом героически тычет пальцем вперёд.

И вот была у меня мечта: как было бы здорово, если бы мой персонаж меня понимал с полуслова. Например, говорю я вслух: "Нет" - и персонаж говорит "No" - и не надо тыкаться по менюшкам и искать нужные кнопки.

Вчера моя мечта сбылась!  Читайте дальше, если тоже хотите управлять персонажем голосом.
 
Есть такая замечательная программка: GlovePIE. Вообще она предназначена для того, чтобы эмулировать различные устройства ввода с помощью других устройств ввода. Например, можно эмулировать MIDI-клавиатуру с помощью мышки, или мышку - с помощью перчатки виртуальной реальности, или джойстик - с помощью клавиатуры, или клавиатуру - с помощью WiiRemote. Поддерживает она и такое устройство ввода, как микрофон. То можно сделать так, что мы говорим какое-то слово или ключевую фразу в микрофон, а GlovePIE преобразует это в нажатие клавиши.

Скачать программку.

Установка не требуется - просто разархивируйте в любую папку и можно сразу запускать.

Помимо этого пользователям Windows XP может потребоваться MS SAPI. Лежит там же под названием IE-speech_add-in_v1.zip
Его уже надо будет установить. 
У пользователей Vista и Win7 он уже стоит (причём ещё более новой версии), так что им не требуется.

Итак, вы скачали и запустили GlovePIE.
Далее в окне программы надо написать скрипт, который расскажет программе, что же мы хотим получить.

Я пока использую такой:

Key.LeftBracket = said("dah",3)
Key.RightBracket = said("net",3)
P = said("go",3)
P = said("poshlee",3)
O = said("oober",3)
I = said("pushkah",3)

Что он делает?
Первая строчка 
Key.LeftBracket = said("dah",3)
означает, что если в микрофон было сказано "Да", то надо нажать кнопку "[".
Обратите внимание, что записывать ключевые фразы с помощью микрофона не требуется (да и не возможно в этой программе) - нужно лишь написать их. Так как распозновалка ориентирована на английский язык, то и писать слова придётся с учётом английской фонетики. В частности "да" лучше написать как "dah", а "убер" лучше распознается, если написан как "oober". Умейте это в виду при составлении собственных фраз.

Итак, скрипт говорит:
на слово "да" нажимать кнопку [
на слово "нет" нажимать кнопку ]
на слова "гоу" или "пошли" нажимать кнопку P
на слово "убер" нажимать кнопку O
на слово "пушка" нажимать кнопку I

Я специально выбрал кнопки, которые расположены далеко от WASD и в игре практически никогда не используются (кроме тех случаев, когда что-то пишешь в чат или в консоль). 
 
Нажмите кнопку Run и проверьте, правильно ли работает. Появится специальное текстовое поле - можно проверить прямо там. Просто тыкните в него мышкой и начинайте говорить в микрофон.

Если всё работает, то остаётся только настроить TF2. Либо сразу пропишите в конфиге, либо запустите игру и пропишите в консоли:
bind "[" "voicemenu 0 6"
bind "]" "voicemenu 0 7"
bind "p" "voicemenu 0 2"
bind "o" "voicemenu 1 7"
bind "i" "voicemenu 1 2"
 
Обратите внимание, здесь на фразу "убер" я выбрал фразу медика "I'm fully charged". Работает она только если вы играете медиком. Если хотите, можете вместо неё поставить фразу "Charge me, doctor", для этого просто поменяйте одну цифирку.

Вот и всё! Запускайте игру, если ещё не запущена, и проверяйте в деле. Обратите внимание, что для отдачи голосовых команд вам не требуется удерживать кнопку голосового чата. Просто говорите в микрофон и всё! Программа вас услышит и так, а другим игрокам вас слышать не обязательно :)

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

2. Иногда бывают ложные срабатывания. Порой фраза, никак не связанная с перечисленными, вдруг срабатывает. Даже просто вздох радости или отчания может быть воспринят распозновалкой как "нет" :)
Опять же для простых выкриков это не страшно, но не советую использовать голосовое управление для чего-то более серьёзного, типа переключения оружия или taunt'ов, иначе рискуете наблюдать внезапные действия прямо в горячке боя из-за случайного сказанного вслух "блин".
Теги: управление, голос, скрипты
Дата: 11.12.2009 23:20 | Обновлено: 11.12.2009 23:32
Dan | все публикации автора →
 

Уже высказались: 13. В форум →

Оставить комментарий




Похожие публикации

  Все права защищены © 2025 tf2.tomsk.ru
runcore.cms