Jump to content
72AG_Olega

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

Recommended Posts

12.01.2020 в 13:01, 72AG_Olega сказал:

Потерпи еще чуть-чуть. Третью часть скоро выложу (жена блин оккупировала все выходные, я как золушка прям, а БзС это типа бал, пока все дела не сделаешь на бал не попадешь :).

Комраден, где видео?

AGF-l7_nnPIpN191pFNGESKXc4ukUlpt8bdUZmmb

  • Haha 2

Share this post


Link to post
Share on other sites

Дайте ссылку на GlovePIE, пожалуйста. Ни сайта разработчика, ни последней версии найти с ходу не получается.

И на opentrack заодно. :)

Edited by SDV_ZoZo

Share this post


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

Дайте ссылку на GlovePIE, пожалуйста. Ни сайта разработчика, ни последней версии найти с ходу не получается.

И на opentrack заодно. :)

В описании на ютубе ко второму видео есть.

Share this post


Link to post
Share on other sites

 

3.1. Управление осью Y с помощью кнопок. (простой пример).

 

  • Like 2

Share this post


Link to post
Share on other sites

 

3.2. Оси X, Y - автоматические смещения в задней полусфере.

 

 

  • Upvote 1

Share this post


Link to post
Share on other sites
Скрытый текст
10.01.2020 в 04:32, 72AG_Olega сказал:

Решение нашли. Пока напишу текстом, потом этот кусок оформлю и всталю в видео и перезалью всё видео, заодно уберу фон и прибавлю громкость.

 

После установки питона, если вылетает ошибка No module named 'pythonosc' нужно сделать следующее:


1.Перейти в папку, куда у вас установился питон, скопировать в память путь папки, у меня он следующий:
C:\Users\Olega\AppData\Local\Programs\Python\Python37>

 

2.Запустить командную строку Windows от имени администратора. В командной строке набрать cd (cheinge directory) и через пробел вставить скопированный путь. Должно получиться следующее:
C:\Users\Olega\AppData\Local\Programs\Python\Python37>  

 

3.Набрать команду C:\Users\Olega\AppData\Local\Programs\Python\Python37>python -m pip install setuptools wheel twine
Питон загрузит установщик модулей

 

4.Не меняя каталога набрать следущую команду
C:\Users\Olega\AppData\Local\Programs\Python\Python37>python -m pip install python-osc
Питон устновит связь с модулем, который он раньше не находил.

 

5. Дальше продолжать как на видео. Проделали вышеуказанную процедуру и всё заработало.

 

КОМАНДЫ МОЖНО СКОПИРОВАТЬ В КОМАНДНУЮ СТРОКУ ИЗ ТЕКСТА ВЫШЕ.

 

ЗЫ: два часа потратили на то, чтобы разобраться, на то, что у грамотного программиста заняло бы 10 минут.

ЗЫ, ЗЫ: питон он такой...не тривиальный (1 час ушел, чтобы понять что нужно писать в команде не pythonosc, а python-osc).

Просьба отписаться кто пробует. Получилось ли избавится от ошибки и заработало ли?

 

После третьего шага:

 

Microsoft Windows [Version 10.0.18362.535]
(c) Корпорация Майкрософт (Microsoft Corporation), 2019. Все права защищены.

C:\WINDOWS\system32> cd C:\Program Files\Python37

C:\Program Files\Python37>python -m pip install setuptools wheel twine
C:\Program Files\Python37\python.exe: No module named pip

C:\Program Files\Python37>

 

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

Переустановил питон. Действительно не все нужные галочки стояли при установке. Сейчас скрипт питона запустился без ошибок.

Вопрос по номерам девайсов. В видео была оговорка, что если они не верно сопоставлены, то работать это не будет. А с чем правильность сопоставленных номеров сверять?

Share this post


Link to post
Share on other sites

Вроде в игре заработало все. Из грустного, то, что опентрек использует протоколы трекира, а это сразу же сводит все усилия на нет. Так как Бзс собран таким образом, что ФФБ и трекир одновременно нормально сосуществовать в нем не могут.

БзС вообще кроме протоколов трекира для обзора может что-то еще использовать?

Share this post


Link to post
Share on other sites

Да, может. В АОМ, если в Опентреке использовать только выходной протокол Freetrack, БзС тоже будет работать. Другое дело, что сам ффб может протокол Freetrack не видеть.

Нужно попробовать в Опентрек на вкладее "Настройки" выбрать не both, а only freetrack. Я сейчас не у компьютера, не помню точно как там в опентреке эта опция точно звучит.

Share this post


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

Да, может. В АОМ, если в Опентреке использовать только выходной протокол Freetrack, БзС тоже будет работать. Другое дело, что сам ффб может протокол Freetrack не видеть.

Насколько это точно? Пока у меня только неудачный опыт попыток использования протокола фритрека.

Я включал только протокол фритрека в опентреке. БзС переставал видеть устройство обзора. (может что-то еще сделать надо?) Несколько лет назад я и во фритреке пытался отключать трекировский протокол с тем же успехом.

Share this post


Link to post
Share on other sites

Это настройка захвата игр в опентреке. Которая не на основной странице программы. 

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

Share this post


Link to post
Share on other sites

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

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

А по поводу захвата игр в настройках опентрека. Так ведь это вроде обычный автозапуск опентрека.

Share this post


Link to post
Share on other sites

Надо подумать... Ффб ведь от наличия трекира не зависит...

Edited by 72AG_Olega

Share this post


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

Надо подумать... Ффб ведь от наличия трекира не зависит...

Да, не зависит. Но в игре они как-то мешают друг другу. А вот VR наверняка использует свою систему обзора. Пока не слышал жалоб на форуме, что она с ффб конфликтует.

Share this post


Link to post
Share on other sites

Я конечно дико извиняюсь. А будет видео о том как отключить инверсию оси в задней полусфере?

Share this post


Link to post
Share on other sites

Читаешь мои мысли. Пошёл заниматься этим вопросом вплотную. Есть пара идей, надеюсь за неделю справлюсь. Тогда "костыли", в виде автоматических смещений в задней полусфере будут не обязательны.

Edited by 72AG_Olega

Share this post


Link to post
Share on other sites

Инверсия. Решение  задачи "в лоб", через смещение при проходе через 90(-90) градусов взгляда из передней полусферы в заднюю :

 

if -10 < TrackIR1.RealYaw < 10 then
var.FakeTrackir.x = (TrackIR1.RealX in cm)
var.xv = 0
end if

if -11 < TrackIR1.RealYaw < -10 or 10 < TrackIR1.RealYaw < 11 then
     var.xv = (TrackIR1.RealX in cm)
end if

if TrackIR1.RealYaw < - 10 or TrackIR1.RealYaw > 10 then
var.FakeTrackir.x = -(TrackIR1.RealX in cm)+ var.xv * 2
end if

 

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

  • Like 1

Share this post


Link to post
Share on other sites

Отмена инверсии Опентрека в задней полусфере. Решение нашлось через приращение функции смещения по X. Оказалось красивым и достаточно простым, код для GlovePIE ниже, но требует пару не критичных доработок всё же. В скрипте до вставки этого куска нужно закомментировать исходную строку   var.FakeTrackir.x = (TrackIR1.RealX in cm) (или можно её просто удалить) и добавить код:

 

if -10 < TrackIR1.RealYaw < 10 then
   var.FakeTrackir.x = (TrackIR1.RealX in cm)
end if

if TrackIR1.RealYaw < -10 or TrackIR1.RealYaw > 10 then
     var.FakeTrackir.x = var.FakeTrackir.x - Delta(TrackIR1.RealX in cm)
end if

 

Работает намного лучше штатного костыля самого Опентрека (относительный сдвиг для оси X и Yaw во вкладках настройки). В этой вкладке нужно выбрать "Отсутствует", если эта настройка у вас стояла в Опентреке.

 

Есть пара моментов, которые необходимо доработать:

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

2. Смотрим (вправо/влево)-назад, переводим взгляд в переднюю полусферу, - при большой скорости поворота взгляда иногда происходит смещение по Х на противоположный борт. Поправимо в будущем, подумаю как доработать.

3. Если взгляд в передней полусфере был не сильно по X отклонен трекиром, в задней полусфере работает вообще отлично, почти как сам трекир.

 

Просьба отписаться кто попробует.

 

P.S. Головастый мужик однако этот GlovePIE сочинял... Продолжаю работу...

ЗЫ, ЗЫ: чую, что владельцы вебкамер+опентрек скоро будут немного завидовать владельцам трекир+опентрек...😁

 

 

Edited by 72AG_Olega
  • Like 1

Share this post


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

Отмена инверсии Опентрека в задней полусфере. Решение нашлось через приращение функции смещения по X. Оказалось красивым и достаточно простым, код для GlovePIE ниже, но требует пару не критичных доработок всё же. В скрипте до вставки этого куска нужно .............

Очень красиво сделано! Спасибо! Действительно, работает лучше, точнее - чище, чем в трекире.

 

Цитата

 Есть пара моментов, которые необходимо доработать:

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

2. Смотрим (вправо/влево)-назад, переводим взгляд в переднюю полусферу, - при большой скорости поворота взгляда иногда происходит смещение по Х на противоположный борт. Поправимо в будущем, подумаю как доработать.

3. Если взгляд в передней полусфере был не сильно по X отклонен трекиром, в задней полусфере работает вообще отлично, почти как сам трекир.

...........

P.S. Головастый мужик однако этот GlovePIE сочинял... Продолжаю работу...

ЗЫ, ЗЫ: чую, что владельцы вебкамер+опентрек скоро будут немного завидовать владельцам трекир+опентрек...😁

 

1.  У меня в настройках опентрека по-прежнему включено инвертирование осей Х и Z. 

Взгляд вперед - смещения по Х, повороты по Yaw - в норме (реакция головы лучше чистого трекира).

При взгляде назад начинает неправильно работать инвертирование оси Z. Приближение по Z к бронеспинке (уже глядя назад)  отодвигает ее дальше. По логике - она в этом случае должна приближаться. Если, уже глядя назад отодвинуться (прижаться спиной к приборке), бронеспинка приближается вместо отдаления. Длина движений (длина хода головы) на мой взгляд, соответствует моим движениям. У меня в кривой отклика по Z фильтр исходной оси  15, изменение значений - от 0.5 до 10. От значения 10 - горизонтальная полка вправо. 

 

2. Здесь, мне кажется, все в идеале. Во-первых, если я очень быстро перемещаю взгляд на правый борт, то так и должно быть - есть небольшая мертвая зона для взгляда вперед на 0 град. и этого достаточно, чтобы остановить взгляд вовремя. Да это и естественно, что взгляд  при быстром повороте "проскакивает" на правую сторону.  Может это не стоит править? В жизни же тоже так - если ты в машине быстро крутанешь голову, то никаких задержек на взгляд в 0 град. не происходит. Надо, чтобы взгляд не проскакивал - не крути голову так, что она остановиться не успевает. :) 

 

3. Ты все сказал правильно. Добавить нечего. Я бы сказал, что получше трекира, по крайней мере - Трекир4-го.

 

P.S. Мне эта связка: трекир+опентрек очень нравится. На мой взгляд, обзор поживее.по естественнее стал. Особенно впечатляет действие приближения - только в трекире очень трудно держать нужное направление взгляда при приближении. В АОМ все становится намного проще.

  • Thanks 1

Share this post


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

1.  У меня в настройках опентрека по-прежнему включено инвертирование осей Х и Z. 

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

 

56 минут назад, =SF=Thresher сказал:

При взгляде назад начинает неправильно работать инвертирование оси Z.

Оси Z будет посвящена отдельная тема позже. Будет классно, - обещаю! У меня она пока обнулена кривыми, пользуюсь кнопками.

 

58 минут назад, =SF=Thresher сказал:

Может это не стоит править?

Стоит. Должен быть выбор - оставлять или нет, выбор будет за пользователем.

 

59 минут назад, =SF=Thresher сказал:

по крайней мере - Трекир4-го

Теперь по сути 4-й приравнялся к 5-му.😁

 

1 час назад, =SF=Thresher сказал:

трекир+опентрек очень нравится

Мне тоже. Я три года об это мечтал...😁

1 час назад, =SF=Thresher сказал:

При взгляде назад начинает неправильно работать инвертирование оси Z

Можешь попробовать убрать инвертирование оси Z в ОТ. Смещения по Z есть только в скрипте AOM_Olega, в 6DOF_only их еще нет.

Share this post


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

При взгляде назад начинает неправильно работать инвертирование оси Z

Можешь попробовать убрать инвертирование оси Z в ОТ. Смещения по Z есть только в скрипте AOM_Olega, в 6DOF_only их еще нет.

По сути, пока по оси Z нет прочего упоминания в скрипте кроме как назначение на ось FakeTrackir, в ОТ можно делать с неё всё то же в настройках, что и для обычных веб-камер.

Share this post


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

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

Предположу, что было бы проще для начинающих пользоваться АОМ, если бы по умолчанию опентрек и трекир грузились со своими настройками "как есть": трекир - с профилем, в котором кривые отклика (кроме Roll) по оси Rotation имеют значение 1, опентрек без инвертирования осей и включения относительных сдвигов ( в нашем случае их нет) в настройках. Не все сразу смогут определить куда лезть в опентреке, если оси работают в обратную сторону (инвертированы), а кто-то может так его настройки ушатать, что не сразу в "по умолчанию" вернуть сможет. :) 

Это я так намекаю, что если возможно переделать код так, чтобы галки были не нужны, было бы логичнее. :biggrin:  Нет, сейчас получается все правильно: установил опентрек, подгрузил профиль и "поехал". Это в нормальном режиме, а начинающий, споткнувшись в работе АОН, вдруг залезет в настройки: "А это откуда галки вылезли - я, вроде их не ставил?" На самом деле он вообще ничего нигде не менял, но от непонимания почему не пошло ... Может из-за этого и не идет? И смахнет их. :)

 

1 час назад, 72AG_Olega сказал:

Можешь попробовать убрать инвертирование оси Z в ОТ. Смещения по Z есть только в скрипте AOM_Olega, в 6DOF_only их еще нет.

По сути, пока по оси Z нет прочего упоминания в скрипте кроме как назначение на ось FakeTrackir, в ОТ можно делать с неё всё то же в настройках, что и для обычных веб-камер.

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

Наверное, пока галки в чекбоксах с инвертирования осей Х и Z убирать не стоит? ;)  

Share this post


Link to post
Share on other sites

Проще тогда уж оформить инструкцию в ПДФ файле, как всё происходит, и что за что отвечает, где чего можно трогать и где чего нельзя. Мы с вами должны из всего многообразия доступности и хотелок обкатать и выработать конструкции обзоров, удобные большинству. Это же конструктор. Кто-то возьмёт и повертит кривые, найдя оптимальное сочетание, кто-то найдёт удачное сочетание в Аселле сглаживания с динамической МЗ и настройками камеры в игре. У меня еще в планах стоит оптимизация записи кода настроечных констант. Так что давайте подключайтесь, кому интересно и не лень. Первые главы инструкций это установка, настройка, возможности. Я не знаю когда до этого доберусь. По прграммированию собственно осталось не много, дальше оптимизация и набор блоков кода.

Share this post


Link to post
Share on other sites

Я не уверен, что проще. :)  Сейчас в большей степени стараются получить этот же ПДФ в виде видео, т.к. донести до всех понятно и последовательно какую-то информацию словами намного труднее, чем  в виде комментария голосом в видео.  Да и объем текста получиться может ого-го, если кратко изложить не получается. А сделать ПДФ ради сделать - очень уж это будет неправильно: информация очень интересная и нужная.

Неоднократно сталкивался сам с этим. Даже такой вариант - посмотрел видео, записал (составил небольшой конспект).  Потом начал читать его через недели 2 и появились вопросы. Пришлось смотреть видео снова. Законспектил еще раз, жду 2 недели. :) 

  • Like 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...