Публикации
Голосовое управление персонажем |
Про голосовые команды типа "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 | все публикации автора → |