Jump to content
72AG_Olega

TrackIR5 + GlovePIE + Python3 + Opentrack = Расширенное управление обзором.

Recommended Posts

я вечером маппер тоже попробую потестить, как-то joy2key использовал

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
38 минут назад, 154_Viktor сказал:

Сам мапер в блокноте работает при вкл АОМ, но игра видит только нажатия джоя,а не  забенденные кнопки. 

Похоже на то, что GlovePIE при работе перехватывает события с джойстиков на более низком уровне, чем маппер. И, видимо, как-то оставляет это в реестре винды (типа файлов "куки"). После чего маппер не может получить команды от этих самых кнопок... Будем считать пока это первым серьезным подводным камнем. Ждем результатов от Войда. Заранее прошу прощения если из-за АОМ в ваших схемах управления что-то по портилось, кто ж знал то...

Share this post


Link to post
Share on other sites
Только что, 72AG_Olega сказал:

Похоже на то, что GlovePIE при работе перехватывает события с джойстиков на более низком уровне, чем маппер. И, видимо, как-то оставляет это в реестре винды (типа файлов "куки"). После чего маппер не может получить команды от этих самых кнопок... Будем считать пока это первым серьезным подводным камнем. Ждем результатов от Войда. Заранее прошу прощения если из-за АОМ в ваших схемах управления что-то по портилось, кто ж знал то...

Тебе огромное спасибо (для меня это очень критично было)! Мы то свои проблемки решим😉. А вот разрабы могли были  сделать возможность шифт вешать на джой, а не только на клаву. Я уже давно писал в соответствующие темы, но как обычно...

Edited by 154_Viktor

Share this post


Link to post
Share on other sites

Попробуй в GlovePIE нажать Restore Real Trackir - может поможет. Вдруг GlovePIE вместе с откатом dll еще что-то там откатывает...

18 минут назад, 154_Viktor сказал:

шифт вешать на джой, а не только на клаву.

Не вижу проблем сделать это в GlovePIE c назначением исполняемых исполняемых кнопок на ppJoy которые и назначаются в игре. 

 

Хммм... Shift + button в одном поле назначения клавиши в настройках игры прям итригует...☺️

Edited by 72AG_Olega

Share this post


Link to post
Share on other sites
Только что, 72AG_Olega сказал:

Попробуй в GlovePIE нажать Restore Real Trackir - может поможет. Вдруг GlovePIE вместе с откатом dll еще что-то там откатывает...

Не вижу проблем сделать это в GlovePIE c назначением исполняемых исполняемых кнопок на ppJoy которые и назначаются в игре. 

Я вот смотрю примеры скриптов, но буду признателен если подскажешь. Не могу повтор убрать

"if pressed(joystick2.button4) then begin 
press(key.4)
 end if"

Edited by 154_Viktor

Share this post


Link to post
Share on other sites
57 минут назад, Void сказал:

я вечером маппер тоже попробую потестить, как-то joy2key использовал

иногда мапперы в вин 10 работают только при запуске от админа

Share this post


Link to post
Share on other sites
12 минут назад, 154_Viktor сказал:

Я вот смотрю примеры скриптов, но буду признателен если подскажешь.

Restore Real Trackir смотреть с 21:07 https://youtu.be/Mg7rMMvQ36s

 

12 минут назад, 154_Viktor сказал:

Не могу повтор убрать

Импульсные нажатия кнопок в GlovePIE возможно сделать только через таймер-ограничитель. Иначе за то время пока ты держишь кнопку скрипт за секунду успевает её 250 раз обработать (а нам для маппинга нужно лишь одно нажатие). Если невтерпеж - вечером выложу код. Я планировал видео выложить на этой неделе по этому вопросу.

Edited by 72AG_Olega

Share this post


Link to post
Share on other sites

 И я не не готов отказываться от  АОМ))) . Я имел ввиду скрипт GlovePIE .

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

if pressed(joystick2.button4) then begin 
press(key.4) Не могу пока убрать повтор нажатия кнопки.

Edited by 154_Viktor

Share this post


Link to post
Share on other sites

 

ЗЫ: вообще, я рекомендую отказываться от маппинга клавиш именно клавиатуры, лучше делать маппинг умножения кнопок, чем получать в ненужный момент какую-нибудь не вовремя вплывшую комбинацию клавиш, например, когда пишем что-то в чат... а кнопку(а особенно тумблер) маппинга случайно забыли выключить😁 Эти ситуации я еще в скриптах вархога "ловил"😁

Edited by 72AG_Olega

Share this post


Link to post
Share on other sites
Только что, 154_Viktor сказал:

Да, но это мне пока не мешало и это просто)

Угу, я ж не настаиваю, а рекомендую. Ни чё, справимся думаю с этим чёрным пока ящиком...😁 Главное причину найти, а уж потом методы её обхода...

10 минут назад, 154_Viktor сказал:

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

Эт правильно. Зачем еще другие мапперы, если при запущенном АОМ и так в GlovePIE сделать маппер можно. Ладно, если уж так "горит" и руки "чешутся" вечером выложу код сюда. (всё в хорошем смысле, я тебя понимаю)😁

  • Thanks 1

Share this post


Link to post
Share on other sites
2 часа назад, 72AG_Olega сказал:

Если невтерпеж - вечером выложу код

типа "антидребезг" или по типу триггера?

Edited by Void

Share this post


Link to post
Share on other sites
4 часа назад, 72AG_Olega сказал:

Ждем результатов от Войда

насколько я понял, маппер должен как-от появиться в списке устройств в GlovePI ? пока непонятно, как это должно выглядеть ... навскидку не получилось

Share this post


Link to post
Share on other sites

joy2key нормально игра видит. Мапил на кнопку джоя три фикс вида перебором (Num1, Num5, Num3). В игре с кнопки джоя все перебирается, что с АОМ сенрикё, что без него.

функционал шифта не вкурил, как в joy2key назначать

  • Thanks 1

Share this post


Link to post
Share on other sites

if starting then
PIE.FrameRate = 250

Keyboard.RepeatFakeKeys = False // убирает самопроизвольную генерацию (самой клавиатуры GlovePIE)

var.t1 = 100 // время работы таймера
var.timer1 = 0
end if

 

//-------------------- Работа таймеров ----------------------------------------------------------
if var.timer1 < var.t1 then var.timer1 += 1 //работа таймера t1 - для кнопок
end if
//-------------------- Конец блока таймеров------------------------------------------------------

 

if joystick0.Button24 and var.timer1 = var.t1 then
   press(key.A)
   var.timer1 = 0
end if

 

Короче, при удержании кнопки джоя клавиша повторяется, этот интервал повторного нажатия регулируется параметром var.t1.  Можно делать несколько таймеров t2, t3 и сколько надо... За то время в которое работает таймер, нужно отпустить кнопку, иначе будет повторное нажатие. Вообще в коде есть всего два основных варианта логики: время (таймер) и логические флаги (условия)... Их сочетание увеличивает кол-во вариантов. Время работы таймеров зависит также от частоты выполнения скрипта.

Share this post


Link to post
Share on other sites

Спасибо!!! Как сделать просто без повторения , как просто клава ? 

Интересно почему не работает у меня марперы?

Share this post


Link to post
Share on other sites
8 часов назад, 154_Viktor сказал:

Как сделать просто без повторения , как просто клава ? 

Покумекаю на днях предметно почитав documentation.rtf по GlovePIE. Самому интересно стало.

Edited by 72AG_Olega
  • Upvote 1

Share this post


Link to post
Share on other sites

Там написано так, может это?

Скрытый текст

Эмуляция клавиатуры теперь вызовет автоматический повтор, который вы обычно получаете, когда удерживаете клавишу на реальной клавиатуре. Хотя вы можете отключить это, если хотите. Чтобы отключить его, установите: клавиатура.RepeatFakeKeys = False

Обычно клавиатура будет повторять только самую последнюю клавишу, которую вы нажали. Перчатка будет имитировать то же самое поведение по умолчанию. Если вы ненавидите эту функцию и хотите, чтобы вы могли перемещаться по диагонали в блокноте, удерживая две клавиши одновременно, вы можете отключить ее следующим образом:

Клавиатура.RepeatMultipleFakeKeys = False

 

Share this post


Link to post
Share on other sites

Да, именно это я вчера и смотрел, прежде чем код выложить. Но там еще до разбираться нужно с FakeKeys и реальной клавой. Нужно привести в соответствие время нажатия в соответствие с физической клавишей. 

 

ЗЫ: ох уж эти клавиши, с кнопками проще...

В общем, если использовать тот код, который я написал выше, то нужно будет делать следующее:

1. Увеличить время работы таймера с 100 до, например 10000 (в сто раз больше), сколько не держи кнопку (в разумном переделе) повторного нажатия не будет.

2. Назначить сброс этого таймера при отпускании кнопки (по unpressed)

3. Определить сколько максимально кнопок, требующих такой работы, можно нажать ОДНОВРЕМЕННО физически на джойстике.

4. Добавить количество таймеров по количеству кнопок. (типа на каждую кнопку свой таймер)

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

 

Как-то так, если не найдём другой способ в документации.

 

Я вчера так и не проверил (руки не дошли), - назначается ли клавиша по моему коду в самой игре? (проверял работу в блокноте только) То есть успевает ли игра захватить клавишу за один тик скрипта? (думаю что да, т.к. FakeKeys выдает для реальной клавы нужную длительность)

 

11 часов назад, 154_Viktor сказал:

Как сделать просто без повторения , как просто клава ? 

А клава между прочим так и работает. Нажал коротко, - напечаталась одна буква, удерживаешь - напечаталось много. Улавливаешь аналогию с моим кодом?

Edited by 72AG_Olega
  • Thanks 1

Share this post


Link to post
Share on other sites
31 минуту назад, 72AG_Olega сказал:

В клаве стоит алгоритм типа мультивибратора, генерирующий импульсы с определенной задержкой после них.

 

Edited by 72AG_Olega

Share this post


Link to post
Share on other sites

Для того, чтобы запускать все приложения данного способа обзора с помощью единственной иконки, я сделал командный файл Start_AOM.cmd

 

@ECHO OFF
echo AOM Programs Starting

 

set TRACKIR_DIR="C:\Program Files (x86)\NaturalPoint\TrackIR5"
set TRACKIR_FILE="TrackIR5.exe"

set OPENTRACK_DIR="C:\Program Files (x86)\opentrack"
set OPENTRACK_FILE="opentrack.exe"

set GLOVEPIE_DIR="E:\AOM_distrib\glovepie045free"
set GLOVEPIE_SCRIPT="AOM_10-1-Yaw_Trackir-Opentrack.PIE"

set PYTHON_DIR="E:\AOM_distrib\AOM_script_Python"
set PYTHON_SCRIPT="glovepie_opentrack.py"

set BATTLE_OF_STALINGRAD_DIR="C:\Program Files (x86)\1C Game Studios\IL-2 Sturmovik Battle of Stalingrad\bin\game"
set BATTLE_OF_STALINGRAD_FILE="Il-2.exe"

 

start /D %TRACKIR_DIR% "" %TRACKIR_FILE%
TIMEOUT 2

 

cd /d %GLOVEPIE_DIR%

start "" PIEFree.exe -%GLOVEPIE_SCRIPT%
TIMEOUT 2

 

start /D %PYTHON_DIR% "" python -m %PYTHON_SCRIPT%
TIMEOUT 2

 

start /D %OPENTRACK_DIR% "" %OPENTRACK_FILE%

 

REM start /D %BATTLE_OF_STALINGRAD_DIR% "" %BATTLE_OF_STALINGRAD_FILE%

 

На компьютерах с включенным UAC, то есть, когда ОС спрашивает дополнительное разрешение на запуск программы, надо запускать этот файл через Планировщик заданий.
Для этого делаем следущее:
1. Командой taskschd.msc откройте Планировщик заданий, в левой колонке выделите «Библиотека планировщика заданий», а в правой нажмите ссылку «Создать задачу».
2. В открывшемся окошке во вкладке «Общие» укажите название задачи Start_AOM и её описание (могут быть произвольными), а в нижней части окна установите галочку в чекбоксе «Выполнить с наивысшими правами».
3. Переключитесь на вкладку «Действия» и нажмите кнопку «Создать».
4. В окошке создания нового действия укажите полный путь к файлу Start_AOM.cmd, которая должна запускаться без запроса UAC. Сохраните настройки, нажав «OK».
5. Кликните по рабочему столу правой кнопкой мыши и выберите в меню «Создать» -> «Ярлык».В поле расположения объекта пропишите команду

schtasks /run /tn "Start_AOM", где «Start_AOM» — имя вашей задачи.

 

Теперь дважды щёлкнув на эту иконку запустятся все требуемые приложения и требуемые скрипты. Если вы хотите, чтобы и игра запускалась тут же, то уберите комментарий (REM) с последней строки командного файла.
Не забудьте подставить свои пути. Всё проверялось в Windows 10.

  • Thanks 4
  • Upvote 1

Share this post


Link to post
Share on other sites

Для остановки всех запущенных приложений создал командный файл Stop_AOM.cmd

 

taskkill /f /im Il-2.exe
taskkill /f /im opentrack.exe
taskkill /f /im python.exe
wmic process where name='PIEFree.exe' delete
wmic process where name='TrackIR5.exe' delete

  • Thanks 3
  • Upvote 1

Share this post


Link to post
Share on other sites

Круто! Ай молодец!

Если нарежешь коротенькое видео, добавлю ссылку на него и закреплю комментарий под видео по установке АОМ. Или могу бат файл в дистрибутив добавить и инструкцию к нему твою приложить, сославшись на твоё авторство.

Edited by 72AG_Olega
  • Upvote 1

Share this post


Link to post
Share on other sites

Откуда скачать Pithon 3.7.1?

И FaceTrackNoIR?

Edited by -DED-MAO

Share this post


Link to post
Share on other sites

Все дистрибутивы питона, нужно только выбрать нужную версию для скачивания https://www.python.org/downloads/

А тебе зачем версия 3.7.1, если не секрет? В AOM стоит версия питона 3.7.4, на другой версии скрипт сервера передачи данных может не запуститься (я не проверял, во всяком случае)

11 минут назад, -DED-MAO сказал:

И FaceTrackNoIR?

Сайт разработчика http://www.facetracknoir.nl/ Раздел Downloads. Плагин бесплатный, но сама программа стала платной.

 

Edited by 72AG_Olega

Share this post


Link to post
Share on other sites
8 часов назад, oraclenok сказал:

Для того, чтобы запускать все приложения данного способа обзора с помощью единственной иконки, я сделал командный файл Start_AOM.cmd...

 

 

Не получается запустить все программы следуя вашему совету. Точнее, все запускается, кроме как мне кажется питона. "set PYTHON_DIR="E:\AOM_distrib\AOM_script_Python"" -что должно быть в данной директории кроме самого скрипта?

Share this post


Link to post
Share on other sites
7 часов назад, oraclenok сказал:

Для того, чтобы запускать все приложения данного способа обзора с помощью единственной иконки, я сделал командный файл Start_AOM.cmd

 

@ECHO OFF
echo AOM Programs Starting

.........

set PYTHON_DIR="E:\AOM_distrib\AOM_script_Python"
set PYTHON_SCRIPT="glovepie_opentrack.py"

...........

start /D %TRACKIR_DIR% "" %TRACKIR_FILE%
TIMEOUT 2

.........

start /D %PYTHON_DIR% "" python -m %PYTHON_SCRIPT%
TIMEOUT 2

...

Спасибо! У меня в win7 х64  ругался словами "Не удается найти python. Проверьте правильно ли указано имя и повторите попытку" вот на эту связку:

=====

set PYTHON_DIR="i:\DIST\Games\BzS\Manual\AOM_script_Python"
set PYTHON_SCRIPT="glovepie_opentrack.py"
...

start /D %PYTHON_DIR% "" python -m %PYTHON_SCRIPT%
TIMEOUT 2

======

Никак не мог заставить работать. :( Помогло  в PYTHON_DIR="c:\Users\avkvi\AppData\Local\Programs\Python\Python37\Lib\idlelib".  

А  запускать строкой  start /D %PYTHON_DIR% "" idle.pyw %PYTHON_SCRIPT%

 

И еще при запуске файла заметил, что если таймаут после запуска TrackIR4 равен 2 сек. - не загорается индикатор TrackIR'a. Изменил на 4 сек. - связка TrackIR - Glovepie заработала. Как реагирует запуск TrackIR5 проверить не могу.

 

  • Thanks 2

Share this post


Link to post
Share on other sites
21 минуту назад, 72AG_Olega сказал:

А тебе зачем версия 3.7.1, если не секрет?

image.thumb.png.a145c44100a221757c25ea06c87f20cf.png

Вот зачем...

Share this post


Link to post
Share on other sites
27 минут назад, -DED-MAO сказал:

Откуда скачать Pithon 3.7.1?

И FaceTrackNoIR?

Альтернативные ссылки для скачивания:
Python 3.7.4: https://www.python.org/downloads/
Opentrack-2.3.11-beta3: https://sourceforge.net/projects/opentrack.mirror/files/opentrack-2.3.11-beta3/
GlovePIE 0.45 free: https://glovepie.software.informer.com/

Edited by 72AG_Olega

Share this post


Link to post
Share on other sites

 

27 минут назад, 72AG_Olega сказал:

В AOM стоит версия питона 3.7.4

Тогда 3.8.1 нужна?

3 минуты назад, 72AG_Olega сказал:

Opentrack-2.3.11-beta3

А opentrack-2.3.11-win32-setup не пойдёт?

 

 

Edited by -DED-MAO

Share this post


Link to post
Share on other sites
8 минут назад, -DED-MAO сказал:

Тогда 3.8.1 нужна?

Тебе же Олега пишет, что надо ту версию ставить, которая будет правильно работать с написанным скриптом. Зачем тебе версия 3.8.1? Эта картинка была давно сделана и сейчас все на версии 3.7.4 сделано.

Все, абсолютно все нужный программы и все остальное лежит в файле. Файл - в ссылке под видео https://www.youtube.com/watch?v=Mg7rMMvQ36s Там так и написано: Ссылки на архив 7z для скачивания: и указана ссылка на Гугл-диск и на Яндекс-диск. Иди по ссылке на видео и качай. Скачаешь файл (архив) внутри которого есть все, что нужно для АОМ.

 

Edited by =SF=Thresher
  • Thanks 1

Share this post


Link to post
Share on other sites

Ты единственный, кто заметил это несоответствие. Я думаю что:

Скриптв  питоне 3.7.1 будет работать также как и в 3.7.4

32х разрядная версия опентрек тоже будет работать.

Share this post


Link to post
Share on other sites
1 минуту назад, =SF=Thresher сказал:

Зачем тебе версия 3.8.1? 

Потому, что Олега прислал ссылку именно на неё.

Share this post


Link to post
Share on other sites
2 минуты назад, -DED-MAO сказал:

Потому, что Олега прислал ссылку именно на неё.

В моем сообщении - ссылка на видео. Пройди по ней (кликни 2 раза по ссылке в моем сообщении) и под видео по ссылке скачай архив. Там все то, что надо.

Edited by =SF=Thresher

Share this post


Link to post
Share on other sites
3 минуты назад, =SF=Thresher сказал:

по ссылке скачай архив

Скачал, спасибо!

Share this post


Link to post
Share on other sites
33 минуты назад, =SF=Thresher сказал:

Никак не мог заставить работать. :( Помогло  в PYTHON_DIR="c:\Users\avkvi\AppData\Local\Programs\Python\Python37\Lib\idlelib".  

А  запускать строкой  start /D %PYTHON_DIR% "" idle.pyw %PYTHON_SCRIPT%

 

Скрипт то автоматом не запустится?

Только подгрузится.

Edited by =989ShAP=Ahtuba

Share this post


Link to post
Share on other sites

Может кто-нибудь знает - как сделать запуск сервера Питона из командной строки так, чтобы не требовалось нажимать F5 или идти в меню Run и там кликать мышью по Run Module?

Я имею ввиду, что сам сервер запускается через idle.pyw с указанием скрипта glovepie_opentrack.py. После этого надо в окне надо нажать F5 или зайти в меню Run и там кликнуть Run Module. Можно ли в строку запуска прописать "что-то", после чего сервер будет запускаться в нужном виде и останется только свернуть его, чтобы не мешал. :) 

Share this post


Link to post
Share on other sites
4 минуты назад, =SF=Thresher сказал:

сам сервер запускается через idle.pyw с указанием скрипта glovepie_opentrack.py. После этого надо в окне надо нажать F5 или зайти в меню Run и там кликнуть Run Module. Можно ли в строку зап

Можно и без IDLE сделать через bat-ник: запустить не IDLE а сам Питон там уже запустить с "ключом" без всяких F5, но я пока не буду с этим рабираться.

48 минут назад, -DED-MAO сказал:

Потому, что Олега прислал ссылку именно на неё.

-DED-MAO прав, и от меня ему спасибо! На такое же расхождеие могут обратить внимание и другие пользователи. Более того, универсальность АОМ для любой игры, даже старой, работающей на 32-х разрядной машине, по хорошему требует и проверки 32-битной работы АОМ и проверки работы питона 3.7.1, раз уж он указан на картинке. Поэтому обращаюсь к вам с просьбой, кто-нибудь, да откликнется думаю:

1. Проверить работу скрипта в версии питона 3.7.1 для текущей конфигурации витрибутива АОМ (для этого параллельно пожно поставить питон 3.7.1 в другую папку в Программ файлс)

2. Проверить работу АОМ и в 32-х битных сочетаниях

     - Питон 3.7.4 x 32bit + Opentrack 2.3.11-beta3 x 32bit

     - Питон 3.7.1 х 32bit + Opentrack 2.3.11-beta3 x 32bit

 

У самого сейчас нет времени этим заниматься. Готовлю видео, показывающее мощь работы АОМ в задней полусфере обзора (виды на шесть, смещения атомат и по кнопкам). Вам точно понравиться...☺️ Планирую в эти выходные управиться, по крайней мере с кодом.

14.02.2020 в 08:41, 72AG_Olega сказал:

Покумекаю на днях предметно почитав documentation.rtf по GlovePIE. Самому интересно стало.

Виктор, пока этот вопрос откладывется из-за более глобальных и неотложных задач по АОМ.

Share this post


Link to post
Share on other sites
31 минуту назад, 72AG_Olega сказал:

 

 

У самого сейчас нет времени этим заниматься. Готовлю видео, показывающее мощь работы АОМ в задней полусфере обзора (виды на шесть, смещения атомат и по кнопкам). Вам точно понравиться...☺️ Планирую в эти выходные управиться, по крайней мере с кодом.

Виктор, пока этот вопрос откладывется из-за более глобальных и неотложных задач по АОМ.

Проверил твой код, в игре кнопка залипает ( постоянное нажатие).Мой наоборот не успевает прихватить игра (при многократном нажатии коротко 1 раз срабатывает).

  • Sad 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...