Jump to content

В помощь пилотажникам - создание роботов своими руками.


Recommended Posts

В помощь пилотажникам - создание роботов своими руками.

 

Итак, думаю, всем будет интересно прочитать о том, как можно самостоятельно, при наличии двух компьютеров в одной сети, создать пилотажного бота и фантома, научить их синхронизировать действия с игроком и говорить.

 

Для начала немного истории и терминологии.

По сути, все пилотажные примочки разрабатывались большим энтузиастом виртуального пилотажа - WR=210=Vladimir, более известного на данном форуме под ником Bublik. Именно его перу принадлежат "памятка для ведомых", создание и разработка автоматизированных комплексов типа "Бот", "Фантом", "Раз". Все эти прекрасные вещи создавались для свободного распространения в мире виртуальной авиации. Но, к сожалению, разработка была остановлена, а инструкции по вводу роботов в эксплуатацию неточны, что непозволяло неискушённым пользователям заставить их работать... Возьму на себя смелость продолжить дело Владимира, и продолжу нести знание в массы.

 

Итак, разберёмся, что есть что.

"Бот" - пилотажный робот, который выдерживает заданные высоту и скорость, и совершает заданные крены в обе стороны поочередно. Очень помогает начинающим пилотам осваивать азы группового пилотажа, поскольку, для живого ведущего, подобная тренировка из кренов скучна и утомительна.

"Фантом" - продвинутый пилотажный робот. По сути, призрак реального человека, поскольку в основе своих действий держит ранее записанный трек живого ведущего, который повторяет с высокой точностью.

"Раз" - программа синхронизации действий группы, посылает звуковой сигнал, который звучит в один момент времени на всех клиентских машинах. Позволяет свести на нет паразитное действие пинга и добиться высокой синхронности выполняемых действий.

 

Теперь, коснусь того, что нам понадобится для комфортной работы.

http://www.autohotkey.com/ - программа, которая умеет имитировать действия пользователя по запуску программ, нажатия кнопок, кликов мышкой и многое другое, настоятельно рекомендую (свободно распространяемая).

http://nncron.ru/ - мощный планировщик, может пригодится в обычной жизни или при создании полностью автоматизированного сервера (бесплатен для жителей СНГ, подробнее на сайте).

http://www.asnr47.dsl.pipex.com/files/bubl/Raz/RazClient.zip - "раз" клиент (клиентская часть, то, что будет издавать звук)

http://www.asnr47.dsl.pipex.com/files/bubl/Raz/RazServer.zip - "раз" сервер (серверная часть, которая и выполняет синхронизацию)

http://www.asnr47.dsl.pipex.com/files/bubl/LOPhantom04alpha.zip - программа управления "фантомом" (для установки понадобится Loman 2.1 Final)

http://slil.ru/25614472 - скрипты для создания "раз" меток фантома (для отработки скриптов понадобится перл, думаю, найти его не станет проблемой)

http://forums.eagle.ru/attachment.php?attachmentid=18699&d=1218115317 - программа управления "ботом"

 

Для начала. хотелоcь бы коснуться условий запуска роботов в самом Локоне. Бот всегда стартует в воздухе, и в отношении скорости и высоты полёта будет придерживаться параметров, заданных миссией. О других настройках напишу позднее. Фантому желательно стартовать в той же миссии, в которой записывался оригинальный трек - погодные условия, запас топлива, его расход (ограниченное/неограниченное), тогда фантом получится весьма точным.

 

В папке ~1C\Lock On 1.1\Config\Export есть файлик config.lua, необходимо проследить, что-бы в нём следующие функции имели такой вид:

EnableExportScript = true

EnableExportScript = true

 

Далее, идём в панель управления, заходим в "язык и региональные стандарты", на первой же вкладке жмём кнопку "настройка" и меняем разделитель целой и дробной части с "," на ".". Сохраняем.

 

Начнём с бота. Берём архив, распаковываем его в корневую папку локона, на вопрос о замене файлов соглашаемся. В папке ~1C\Lock On 1.1\Config\Export найдём несколько новых файлов:

export.lua~tcp_bot_m_t - экспорт для подмены;

exportbot_new.bat - собственно, батничек, который заменяет оригинальный export.lua на ботовский;

TCPBotM_Project2.exe - вот оно, сердце бота, то, что и руководит его слепыми действиями;

tcp_bot.ini - параметры конфигурации бота.

 

В tcp_bot.ini можно найти следующий блок:

[banks]

bank1 = 60

bank2 = 45

это и есть крены на которые будет поочерёдно выходить робот.

 

Алгоритм запуска следующий:

exportbot_new.bat - подменяем экспорт;

TCPBotM_Project2.exe - запускаем управляющую программу;

запускаем Локон, заходим в сеть, создаём сервер. Выбираем ранее сделанную мисcию, где борт, которым будет управлять бот, стартует в воздухе. Выбираем этот борт, стартуем. После загрузки миссии отжимаем "S" и, если всё хорошо, самолёт должен качнуться вниз-вверх, фиксируя высоту.

 

Теперь перейдём к фантому.

Также, как и для бота (будем считать, что фантом был корректно установлен с помощью Loman), фантому требуется подмена экспорта, что, собственно, и вдыхает жизнь в кучку программного кода. Экспорт подменяется управляющей программой, без участия пользователя.

 

Для начала, нужен записанный трек. Перед записью трека нужно запустить Phantomcontrol и убедиться в том, что все чекбоксы находятся в положении OFF. Записываем трек, сохраняем. Далее, запускаем Phantomcontrol, ставим чекбокс Trace в положение ON, остальные OFF, закрываем программу, запускаем Локон, проигрываем трек. Выходим из ЛО, запускаем Phantomcontrol, нажимаем CONVERT, вводим имя файла (.phtrk), нажимаем SAVE. Закрываем PhantomControl.

Ну вот мы плавно и подошли к запуску призрака. Запускаем PhantomControl, выбираем нужный ph-трек (по умолчанию стоит крайний использованный), нажимаем USE, в чекбоксах ставим Phantom ON, остальные OFF. Закрываем Phantomcontrol.

Теперь запускаем ЛО, создаём сервер, выбираем машину, на которой писался трек (обычно, для удобства это первый слот), жмём СТАРТ, отжимаем "S" после загрузки, и, ничего не трогаем - фантом должен начать действовать в соответствии с треком.

 

Всё, что касается технологий "Раз", вполне доступно описано ридмишках, которые идут с ними, думаю, освоить их труда не составит.

 

Теперь расскажу о том, как помочь фантому обрести голос. Суть достаточно простаи базируется на понимании работы микшера звоковой карты и функции в голосовом клиенте "активация голосом". Например, если мы возьмём любой музыкальный файл, предварительно настроив "активацию голосом" и выставив в микшере нормальный уровень записи wave (называется по разному, стереомикс, "то, что вы слышите"), то, как только компьютер начнёт воспроизводить любой звук, произойдёт активация и этот звук станут слышать все, кто находится в канале.

 

Надеюсь, после всего вышенаписанного, понятно, для чего применяется автохоткей?


Edited by Wer
Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 4 months later...
  • 8 months later...
  • 2 weeks later...

Скажите, уважаемые Вирпилы, данные программы (бот и фантом) предназначены для того, чтобы давать народу полетать на моем серваке без непосредственно моего присутствия, я так понимаю? Т.е. создав фантома, сам я не смогу потом за ним полетать у себя же на компе?

Link to comment
Share on other sites

  • 3 months later...

да не только фантома, но и raz сервер с клиентом.

и подробнее по поводу голоса, там что на машине с фантомом создать серверы: ЛО, РАЗ, Вентрило. В вентриле посадить эту же машину и как настроить чтобы при звучании звуков включалось вещание?

 

P.S Надеюсь поймете что я написал :)

Link to comment
Share on other sites

Перезальём, найдём место понадёжнее, что-бы ссылки не дохли.

 

D3MON, в твоём вопросе содержатся все ответы, а с активацией голосом как-нибудь разберёшься сам, это штатная функция любой сетевой говорилки.

Link to comment
Share on other sites

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

и еще, слышал что нужен хороший джой для записи с минимальным шумом, иначе фантом будет бунтовать. Это правда?

Link to comment
Share on other sites

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

 

"Прямо БИНГО!" (с) Ганс Ланд, Бесславные Ублюдки

На самом деле, это наиболее естесственный и простой путь. Есть ещё интересная тема, использовать типовые фразы и скриптом превращать их в необходимое предложение, как это реализовано в том же Локоне.

 

и еще, слышал что нужен хороший джой для записи с минимальным шумом, иначе фантом будет бунтовать. Это правда?

 

Доля истины в этом есть - чем точнее джойстик, тем точнее будет и сам фантом :)

 

Самое главное - ни один фантом не заменит живого ведущего, это как резиновая женщина или безалкогольное пиво :) Если с живым сложности, можно аккуратно тренироваться, например, у нас на сервере, не думаю, что кто-то будет против.

Link to comment
Share on other sites

С болталкой фантома разобрался. С самим фантомом думаю разберусь. Но пока не представляю как можно засинхронизировать их дейтсвия. (наплевать на разклиент, сделаю раз в звуках, все равно фантом будет в сетке 100мб\с).

Хочется чтобы фантом отлетав программу запускался снова (фунуция loop вроде), но и чтобы запись команд включалась заного вовремя, чтобы не происходило рассинхронизации.

Вроде обьяснил понятно

Link to comment
Share on other sites

Loop - штатная функция фантома, есть в меню фантомконтрол. Про синхронизацию - необходима внешняя программа, которая будет и фантома запускать и голос к нему.

Link to comment
Share on other sites

Wer, большое спасибо за помощь. Настроил и фантома и голос к нему, работает стабильно и на 5+.

Правда пока только без Raz, но отставание небольшое ~0.5с поэтому на это можно закрыть глаза :)

Link to comment
Share on other sites

  • 10 months later...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...