Перейти к содержимому

PP-joy и glovepie (дополнительные возможности настройки управления)


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

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

Для этого понадобятся две программы: ppjoy (версия для Вин7х64 http://ppjoy.blogspo...ew-version.html)

и glovepie http://glovepie.en.softonic.com/

В чем суть: glovepie распознает любые подключенные к компьютеру устройства, которые могут быть источником каких-либо управляющих сигналов от пользователя (мыши, клавиатуры джойстики, геймпады, трекиры... хоть контроллер от wii). Распознает собственно эти сигналы и позволяет производить с ними любые логические и математические операции. Единственное ограничение: нельзя присваивать значения аналоговым осям реальных устройств, именно для этого нам нужен ppjoy, с которым эта чудесная прога совместима.

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

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

Например, вы хотите развесить положения заслонки радиатора на кнопки 1234, или более привычное иловодам - тягу двигателя на цифры от 1 до 0 с шагом в 10%, а шаг винта на shift+ те же цифры - нет проблем. Относительное управление раддером - пожалуйста, мышеджой с любой кривой отклика и центрированием по кнопке, любой алгоритм обзора...

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

Как это выглядит на практике: интерфейс glovepie представляет собой окошко, в котором в довольно свободной форме пишется скрипт, состоящий из отсылок к устройствам ввода/вывода и стандартных логических операций, скрипт сохраняется, если потом его открыть и нажать RUN, система выполняет все, записанные в нем условия, пока не нажмешь STOP. Подробности, если кому станет интересно, есть в мануалах, прилагающихся по ссылкам в начале поста, а пока например, вот как-то так будет выглядеть вожделенное относительное управление для раддера:

if key.A = 1 then ppjoy1.analog3 :=(ppjoy1.analog3 - 0.2)

if key.D = 1 then ppjoy1.analog3 :=(ppjoy1.analog3 + 0.2)

if key.S = 1 then ppjoy1.analog3 :=0

Т.е. вешаем в игре на 4-ю (нумерация от нуля) ось ппджоя рысканье и получаем: однократное нажание А - на одну пятую хода левее D - на одну пятую хода правее, S - центрирование

А так выглядит мой вариант для этой игры (на правах мануала с комментариями):

Вешаем две первые оси фэйкоджойстика на мышь, а последнюю (на самом деле все равно какую) на скролл:

PPJoy1.analog0 = Mouse.DirectInputx/600

PPJoy1.analog1 = Mouse.DirectInputy/500

PPJoy1.analog5 = Mouse.DirectInputZ/600

цифра 500 означает, что при смещении курсора на 500 тех самых d, которые в dpi мыши, значение оси джойстика меняется на 1, например, смещается от центра в крайнее положение (диапазон значений аналоговой оси от -1 до +1, т.е. эти 500 и 600 определены рабочим dpi мыши и удобной для меня чувствительностью.

Ограничиваем возможные значения положения мыши,чтобы не выходить за рабочий диапазон и не бояться шуровать мышью с запасом, если нужно быстро задвинуть ось в кайнее положение (актуально для крена и газа):

if Mouse.DirectInputx > 600 then Mouse.DirectInputx := 600

if Mouse.DirectInputx < -600 then Mouse.DirectInputx := -600

if Mouse.DirectInputy > 500 then Mouse.DirectInputy := 500

if Mouse.DirectInputy < -500 then Mouse.DirectInputy := -500

If Mouse.DirectInputZ > 600 then Mouse.DirectInputZ := 600 ;

If Mouse.DirectInputZ < -600 then Mouse.DirectInputZ :=-600

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

Самое главное, центрирование осей крена и тангажа по нажатию средней кнопки мыши:

if mouse.MiddleButton = 1 then Mouse.DirectInput2D = [0, 0]

Так как у меня есть клевый руль с педальками, самый дешевый, какой попался, и у таких рулей газ/тормоз – это логически одна ось, грех не использоватьтакие педальки на раддер:

PPJoy1.analog3 = -Joystick.y

И самая хитрая фича - обзор, кто играл в того же ила, поймет :) :

if (key.NUMPAD5 = 1 and PPJoy1.analog4 = 0) then PPJoy1.analog2 = 1

if (key.NUMPAD5 = 1 and (PPJoy1.analog4 <> 0 or key.NUMPAD8 = 1)) then PPJoy1.analog2 = 0.5

if key.NUMPAD5 = 0 then PPJoy1.analog2 = 0

if key.NUMPAD6 = 1 then PPJoy1.analog4 = 0.5

if key.NUMPAD4 = 1 then PPJoy1.analog4 = -0.5

if key.NUMPAD7 = 1 then PPJoy1.analog4 = -0.25

if key.NUMPAD9 = 1 then PPJoy1.analog4 = 0.25

if key.NUMPAD1 = 1 then PPJoy1.analog4 = -0.85

if key.NUMPAD3 = 1 then PPJoy1.analog4 = 0.85

if key.NUMPAD2 = 1 then PPJoy1.analog4 = -1

if (key.NUMPAD8 = 1 and key.NUMPAD4 = 1) then PPJoy1.analog4 = -0.25

if (key.NUMPAD8 = 1 and key.NUMPAD6 = 1) then PPJoy1.analog4 = 0.25

if (key.NUMPAD2 = 1 and key.NUMPAD4 = 1) then PPJoy1.analog4 = -0.85

if (key.NUMPAD2 = 1 and key.NUMPAD6 = 1) then PPJoy1.analog4 = 0.85

if (key.NUMPAD6 = 0 and key.NUMPAD1 = 0 and key.NUMPAD2 = 0 and key.NUMPAD3 = 0 and key.NUMPAD4 = 0 and key.NUMPAD7 = 0 and key.NUMPAD9 = 0)then PPJoy1.analog4 = 0

Обзор в игре вешается на две оси того же фэйкоджойстика, которым присваиваются определенные значения при удержании заданных комбинаций кнопок и автоматически возвращается в центр, если все отпустить, позволяет поворачивать голову ровно на нужный угол с максимально доступной в игре скоростью. Стандартный вариант: кнопки нумпада вокруг пятерки - 8 направлений взгляда по горизонтали, любай из них +5 - взгляд дополнительно на 45 градусов вверх, 5 - ровно вверх, если нужно, на отдельную кнопку вешается взгляд на приборы.

Если кому интересно, ставится все очень просто, любые вопросы гуглятся, мануал к главпаю (правда на английском) качается одновременно с ним, единственный подводный камень - ppjoy это драйвер, но цифровой подписи у него нет, соответственно семерка схавает его только с тестовом режиме, причем включен он должен быть не только во время установки, но и во время использования. А так как его включение требует перезагрузки, приходится просто включать его на постоянной основе, благо ничем, кроме подписи мелкими буквами в углу рабочего стола он себя не выдает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не хватает видео с догфайтом и работой штурма по земле, чтобы люди не выбрасывали это управление после первых 10 секунд знакомства.

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не хватает видео с догфайтом и работой штурма по земле, чтобы люди не выбрасывали это управление после первых 10 секунд знакомства.

Ну оно такое, да, не читерное. Если освоить, позволяет летать на максимальном реализме с полным управлением, но сел_и_полетел не прокатит, это скорее именно для тех, кто хочет летать на САМОЛЕТЕ и нагибать на нем бородатых альфатестеров, и готов учиться, но не может или не хочет (на работу не притащишь) покупать джойстик, или просто еще не решил, так ли это ему интересно. Или для тех, у кого есть джойстик, но он привык к такому режиму обзора хаткой, которого тут нет, или не хочется никакого хардкора, но хочется просто юзабельный раддер на кнопках... Масса возможностей.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добавлю скрин как вкл в игре ( на настройки на скрине не обращайте внимание):

post-5680-0-96535200-1346272980_thumb.jp

Еще раз спс ТС за тему! :salute:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Так, добрался до фрапса: приключения мессера на мышеджое - несколько боев, стрельба и довольно экстремальная посадка на ремонт, к сожалению, во время записи видео трек подтормаживает даже на минимальных настройках, плюс на этих настройках да после переноса в видео не все моменты понятны. Если что: первый из встреченных Лаггов, И-16 и Ар-2 в самом конце - фраги (mgff хороша).

Это был второй вообще вылет на 109, поэтому он полон лажи, глупых промахов, а во время самой первой атаки я вообще забыл нажать кнопку стрельбы из пушек и спугнул верный килл мелкашками. Но так даже показательнее - это не супер-пупер удачный вылет мегоаса, это нормальный бой, с успехами, ошибками и хэппи-ендом.

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

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

P.S: Извиняюсь за 15 минут, но принципиально не хотел вырезать только удачные моменты, чтобы был виден целиком реальный вылет, совсем скучные места я старался перематывать ускоренно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Скрипт:

PPJoy1.analog0 = Mouse.DirectInputx/600

PPJoy1.analog1 = -Mouse.DirectInputy/500

If Mouse.DirectInputZ > 600 then Mouse.DirectInputZ := 600 ;

If Mouse.DirectInputZ < -600 then Mouse.DirectInputZ :=-600

PPJoy1.analog5 = Mouse.DirectInputZ/600

if Mouse.DirectInputx > 600 then Mouse.DirectInputx := 600

if Mouse.DirectInputx < -600 then Mouse.DirectInputx := -600

if Mouse.DirectInputy > 500 then Mouse.DirectInputy := 500

if Mouse.DirectInputy < -500 then Mouse.DirectInputy := -500

if mouse.MiddleButton = 1 then Mouse.DirectInput2D = [0, 0]

PPJoy1.analog3 = -Joystick.y

debug = PPJoy1.analog5

if (key.NUMPAD5 = 1 and PPJoy1.analog4 = 0) then PPJoy1.analog2 = 1

if (key.NUMPAD5 = 1 and (PPJoy1.analog4 <> 0 or key.NUMPAD8 = 1)) then PPJoy1.analog2 = 0.5

if key.NUMPAD5 = 0 then PPJoy1.analog2 = 0

if key.NUMPAD6 = 1 then PPJoy1.analog4 = 0.5

if key.NUMPAD4 = 1 then PPJoy1.analog4 = -0.5

if key.NUMPAD7 = 1 then PPJoy1.analog4 = -0.25

if key.NUMPAD9 = 1 then PPJoy1.analog4 = 0.25

if key.NUMPAD1 = 1 then PPJoy1.analog4 = -0.85

if key.NUMPAD3 = 1 then PPJoy1.analog4 = 0.85

if key.NUMPAD2 = 1 then PPJoy1.analog4 = -1

if (key.NUMPAD8 = 1 and key.NUMPAD4 = 1) then PPJoy1.analog4 = -0.25

if (key.NUMPAD8 = 1 and key.NUMPAD6 = 1) then PPJoy1.analog4 = 0.25

if (key.NUMPAD2 = 1 and key.NUMPAD4 = 1) then PPJoy1.analog4 = -0.85

if (key.NUMPAD2 = 1 and key.NUMPAD6 = 1) then PPJoy1.analog4 = 0.85

if (key.NUMPAD6 = 0 and key.NUMPAD1 = 0 and key.NUMPAD2 = 0 and key.NUMPAD3 = 0 and key.NUMPAD4 = 0 and key.NUMPAD7 = 0 and key.NUMPAD9 = 0)then PPJoy1.analog4 = 0

Оси -

PPJoy1.analog0 - элероны

PPJoy1.analog1 - тангаж

PPJoy1.analog5 - газ

PPJoy1.analog3 - раддер (у меня это педальки от руля, если нет педалек, то нужно что-то вроде:

if key.A = 1 then ppjoy1.analog3 :=(ppjoy1.analog3 - 0.2)

if key.D = 1 then ppjoy1.analog3 :=(ppjoy1.analog3 + 0.2)

if key.S = 1 then ppjoy1.analog3 :=0

для относительного управления.

PPJoy1.analog2 - обзор по Y

PPJoy1.analog4 - обзор по X

Настройки всех осей: чувствительность 100%, мертвая зона 0, нелинейность 0, множитель 1, коррекция 0.

В общем, чтобы логическая ось один в один повторяла движения "физичской" без запаздываний.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Благодарю. Но откалибровать не удается. Скачал скрипт для калибровки PPJoy. Калибрую, все ОК.

Запускаю твой скрипт, центровка с`езжает, соответственно ось X и Y в игре (в настройках) отрабатывают не корректно. Пытался менять цифры в скрипте, не помогает. Видно не догоняю в чем причина.

Хотя в гугле много чего нарыл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Благодарю. Но откалибровать не удается. Скачал скрипт для калибровки PPJoy. Калибрую, все ОК.

Запускаю твой скрипт, центровка с`езжает, соответственно ось X и Y в игре (в настройках) отрабатывают не корректно. Пытался менять цифры в скрипте, не помогает. Видно не догоняю в чем причина.

Хотя в гугле много чего нарыл.

Попробуй вместо mouse.directinput использовать mouse.cursorpos для х/у:

PPJoy1.analog0 = ((mouse.CursorPosX*2)/1024)-1

PPJoy1.analog1 = ((mouse.CursorPosY*2)/768)-1

if mouse.middlebutton = 1 then mouse.CursorPos := [512, 384]

(из скрипта для warbirds)

Правда если вартандер на манер Ил-2 перехватывает мышь полностью, может не работать.

И попробуй через дебаг главпаевский посмотреть, что со значениями Mouse.DirectInput и соотв. PPJoy1.analog происходит, чтоб видеть, что именно не так. вроде кнопка центрирования там не может не работать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А можно ли в ВТ включить курсор мыши поверх экрана, как это можно было сделать в ИЛе? т.к. не очень удобно, не видешь на сколько отклонил ручку...

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А можно ли в ВТ включить курсор мыши поверх экрана, как это можно было сделать в ИЛе? т.к. не очень удобно, не видешь на сколько отклонил ручку...

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А можно ли в ВТ включить курсор мыши поверх экрана, как это можно было сделать в ИЛе? т.к. не очень удобно, не видешь на сколько отклонил ручку...

Я так понимаю, что с момента появления встроенного мышеджоя, недобность в данных прогах пропала более, чем полностью

medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я так понимаю, что с момента появления встроенного мышеджоя, недобность в данных прогах пропала более, чем полностью

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

Собственно список необходимых умений:

1. Центрирование по кнопке.

2. "Относительное управление" на раддер.

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

4. Настройка визуальной индикации (регулируемая прозрачность и возможность убрать вообще).

5. Обзор, позволяющий быстро и не отвлекаясь от управления самолетом вертеть головой во все стороны при помощи клавиатуры. Т.е. стандартный "нумпадный" обзор с фиксированными ракурсами, даже в не самом дружественном пользователю Ил-2 был.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я так понимаю, что с момента появления встроенного мышеджоя, недобность в данных прогах пропала более, чем полностью

Полностью согласен, пусть встроенный и недоделан, но гемороя с установкой и настройкой нет. А остальное можно допилить.

P.S. чтобы установить ППджой нужно перед установкой на Windows 7 надо было отключить UAC (контроль учетных записей), потом запустить командную строку от имени администратора (пуск->все программы->стандартные->командная строка->правая кнопка мыши->запуск от имени администратора), ввести "BCDEDIT -SET TESTSIGNING ON", нажать Enter. После этого перезагрузить комп и только потом устанавливать. +ППджой не самая удачная программа

medal medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я так понимаю, что с момента появления встроенного мышеджоя, недобность в данных прогах пропала более, чем полностью

Если встроенный мышеджой позволяет цеплять и назаначать оси 2-3 мышей то всё ок , если более чем с одной мышью он работать не может то это слабая бледная пародия на GlovePIE .

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

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 7 месяца/месяцев спустя...

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

gil---

Спасибо тебе огромное. Действительно очень полезно и мне очень помогло. :salute:

Я давно мечтал две мышки юзать)))

Изменено пользователем Бомбовоз
medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 6 месяца/месяцев спустя...

Помогите плиз.

 

система 7х32, да, я извращенец, поставил PPJ, перегрузил, но PPJ не появился в УСТРОЙСТВАХ и принтерах. 

 

чего делать, может кто подсказать?

 

PS нашел в общей закладке :-). но думаю что вопросы будут :-)

 

PSS Собственно вот и вопрос.

 

задача - подключить MJOY к WT,

 

Условие - при разработке  WT не подумали что есть устройства с большИм количеством кнопок и WT не работает с MJOY

 

Примечание - MJOY наверное самый доступный контроллер для решения задач типа - у меня сдох твист и дай ка я себе сам сделаю педали. 

 

 

поставил я себе виртуальный джой, но как заставит его подружиться с МДЖОЕМ пока не увидел.... может кто поможет, Я знаю 11 людей у которых есть подобная проблема. И 3 из них хотят здесь летать, но не могут, потому что педали на МДЖОЕ.

 

Заранее благодарю за любую помощь.

 

PSS не могу найти русского руководcтва по GlovePIE, а все что нашел - настройка мышеджоя, а мне то надо перехвати другое устройство....

medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Может с подключениеи намудрили?В винде кнопки отображаются при нажатии?

У меня Mjoy16(как понял про него речь,ну или 8) все работает и тундра видит.Стоит прога кодекса.

Проблема кнопок больше 32  решается через SV mapper.

 

post-91346-0-21052500-1386476137_thumb.j

medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо.

 

Собственно инфа была от человека, который:

 

 - пробовал МДЖОЙ в WT

 - и блин его мнению я доверяю, что проверять не стал, а стал сразу решать :-), ну все мы ошибаемся :-)

 

подключил МДЖОЙ напрямую. в WT, тоже оси видятся, только у меня МДЖОЙ к устройствам не подключен и облетать не могу....

 

если Вы пишите что у Вас оси работают отлично, и проблемы нет, то спасибо, пойду народ радовать :-).

medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×
×
  • Создать...