Top.Mail.Ru
Перейти к содержанию

Использование GlovePIE в мирных целях


Andrey Zotov

Рекомендуемые сообщения

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

 

У этой программы есть замечательная функция под названием FakeTrackIR - имитация TrackIR. Известная программа Motion Cockpit тоже построена на имитации TrackIR, из чего следует, что пользователи TrackIR/Freetrack или Motion Cockpit не смогут воспользоваться этой функцией, не отказавшись от них.

 

Что же можно сделать с помощью GlovePIE:

1) настроить положение сиденья пилота в кокпите (аналогично настройкам Motion Cockpit);

2) вращать головой пилота с помощью клавиатуры, мышки или джойстика.

 

В горизонтальной плоскости можно повесить на кнопку клавы или руля поворот на любой угол в диапазоне 0-155 градусов. Можно сделать поведение как в LFS:

1) нажимаем кнопку "влево", голова поворачивается на один угол влево;

2) не отпуская ее нажимаем кнопку "вправо" - голова поворачивается на другой угол влево;

3) можно еще дальше пойди - при отпускании кнопки "вправо" голова поворачивается на третий угол.

Видео прилагается:

http://www.youtube.com/watch?v=aNmUnZ4lWnA

 

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

 

Также, для GlovePIE на форуме иР выложен скрипт VOICE Crew Chief, позволяющий управлять окнами F1-F9 голосом.

 

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

Ссылка на комментарий

Спасибо за наведение =). И как раньше мне а голову не приходила мысль использовать голосовые команды. Это же просто мега удобство. Достаточно посмотреть видяху из этой темы на форуме иР. Все пошел настраивать.

Ссылка на комментарий

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

 

http://glovepie.org/...ePIE045Free.zip

Скачиваем и распаковываем программу, запускаем файл PIEFree.exe

 

!!! ВНИМАНИЕ !!! Если будете удалять GlovePIE или использовать другую TrackIR программу, не забудьте в GlovePIE выбрать CP-Settings -> Restore Real TrackIR для восстановления работоспособности интерфейса TrackIR

 

Начинаем набирать скрипт:

1) Настройка положения пилота. Просто поэксперементируйте с этими числами, как вам удобнее в игре.

FakeTrackIR.x = 0 ; позиция пилота в кокпите в продольном направлении в метрах
FakeTrackIR.y = 0 ; в поперечном направлении
FakeTrackIR.z = 0 ; в вертикальном направлении
FakeTrackIR.pitch =0 ; наклон головы пилота вперед-назад, градусов
FakeTrackIR.roll = 0 ; наклон вбок

 

2)Крутить мышкой вид влево-вправо при нажатии средней кнопки. Если вам не надо, можно не писать. "1280" - разрешение экрана по горизонтали, напишите свое. В полноэкранном режиме не проверялось.

if mouse.MiddleButton then begin
FakeTrackIR.yaw = MapRange(mouse.cursorposx, 0,1280, -90,90)
end

 

3)Поворот головы влево-вправо по кнопкам руля.

а) Для начала нужно найти свой руль. Если руль - это единственное устройство типа "игровой контроллер", подключенное к вашему компу, то можно просто писать "joystick". Если нет - то пишем:

debug = joystick1.Name

Запускаем скрипт и если в верхнем правом углу окна GlovePIE видим название своего руля, значит мы его нашли. Если нет - меняем единицу на двойку, на тройку и т.д., пока не найдем.

 

б) Дальше надо найти нужные кнопки. Пишем (с учетом предыдущего пункта):

debug = joystick1.button1

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

 

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

if released(joystick1.button8) then FakeTrackIR.yaw = 0 ; возврат в исходное положение
if released(joystick1.button7) then FakeTrackIR.yaw = 0 ; возврат в исходное положение
if pressed(joystick1.button8) then FakeTrackIR.yaw = -30 ; влево
if pressed(joystick1.button7) then FakeTrackIR.yaw = 30  ; вправо

 

г) Поворот головы на фиксированный угол до 155 градусов. Для этого надо настроить в игре поворот головы на кнопки клавиатуры "Стрелка влево" и "Стрелка вправо" и имитировать их нажатие скриптом, увеличивая угол поворота головы на 65 градусов.

if released(joystick1.button8) then begin ; возврат в исходное положение
FakeTrackIR.yaw = 0
release(key.Left)
release(key.Right)
end
if released(joystick1.button7) then begin ; возврат в исходное положение
FakeTrackIR.yaw = 0
release(key.Left)
release(key.Right)
end
if pressed(joystick1.button8) then begin ;влево
FakeTrackIR.yaw = -30
press(key.Left)
release(key.Right)
end
if pressed(joystick1.button7)  then begin ;вправо
FakeTrackIR.yaw = 30
release(key.Left)
press(key.Right)
end

 

Продолжение следует.

Ссылка на комментарий

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

1) нажать и держать "влево" - поворот на 30 градусов;

2) нажать "вправо" - поворот на 65 градусов (поворот головы TrackIR - 0 градусов, имитация клавиши "стрелка влево");

3) отпустить "вправо" - поворот на 155 градусов (поворот головы TrackIR - 90 градусов, имитация клавиши "стрелка влево").

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

 

if released(joystick1.button8) and not joystick1.button7 then begin ; возврат в исходное положение
FakeTrackIR.yaw = 0
release(key.Left)
release(key.Right)
end
if released(joystick1.button7) and not joystick1.button8 then begin ; возврат в исходное положение
FakeTrackIR.yaw = 0
release(key.Left)
release(key.Right)
end
if pressed(joystick1.button8) and not joystick1.button7 then begin ; влево
FakeTrackIR.yaw = -30
release(key.Left)
release(key.Right)
end
if pressed(joystick1.button7) and not joystick1.button8 then begin ; вправо
FakeTrackIR.yaw = 30
release(key.Left)
release(key.Right)
end
if pressed(joystick1.button7) and joystick1.button8 then begin ; влево + вправо
FakeTrackIR.yaw = -0
press(key.Left)
release(key.Right)
end
if pressed(joystick1.button8) and joystick1.button7 then begin ; вправо + влево
FakeTrackIR.yaw = 0
press(key.Right)
release(key.Left)
end
if released(joystick1.button7) and joystick1.button8 then begin ; влево + вправо - вправо
FakeTrackIR.yaw = -90
press(key.Left)
release(key.Right)
end
if released(joystick1.button8) and joystick1.button7 then begin ; вправо + влево - влево
FakeTrackIR.yaw = 90
press(key.Right)
release(key.Left)
end

 

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

Ссылка на комментарий

Проверить количество осей можно NumberOfAxisis, а можно как-то проверить какая ось нажата? например по типу как проверять нажатие кнопок debug = joystick1.button1

 

И там что-то про джойстики для PS3, на консоль макросы тоже можно перекинуть?

Ссылка на комментарий

Проверить количество осей можно NumberOfAxisis, а можно как-то проверить какая ось нажата? например по типу как проверять нажатие кнопок debug = joystick1.button1

Оси называются по-особому debug = joystick1.x

joystick1.y

joystick1.yaw

и т.д.

 

Из документации:

x = sideways position. -1 = left, 0 = centre, 1 = right

y = forwards/backwards position -1 = forwards, 1 = backwards

z = Right Analog stick forwards/backwards -1 = forwards, 1 = backwards

roll = joystick twist, or right analog stick left/right -1 = left, 1 = right

pitch = not usually used

yaw = not usually used

slider = throttle rudder control, -1 = forwards (full speed), 1 = backwards (no speed)

dial = some other dial

 

 

И там что-то про джойстики для PS3, на консоль макросы тоже можно перекинуть?

Не думаю, скорее контроллеры от консолей подключаются к компу.

Ссылка на комментарий
  • 10 месяцев спустя...

Именно ей пользуюсь, а там решения этой проблемы нет?

Боюсь, что нет. Для Motion Cockpit View ее автор выпустил 64-битную библиотеку для работы с TrackIR, а вот GlovePIE похоже заброшен и написание такой библиотеки в ближайшее время не ожидается. Так что остается только два варианта - пользоваться GlovePIE с 32-битной версией иР или переходить на Motion Cockpit View с 64-битной версией иР.

Ссылка на комментарий
  • 5 месяцев спустя...
  • 7 месяцев спустя...

Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...