Если у вас уже настроен Opentrack в linux системе (я использую Debian), вы столкнетесь с тем что он работает как эмулятор мышки.
Что приносит неудобство его использования, т.к. необходимо возвращать камеру сместив голову в противоположном направлении... ну совсем не то что хотелось бы увидеть в игре.
Настройка Opentrack.
Основные источники.
Источником данных использовался "PointTracker". Для обработки данных о расположении головы я использовал 3 ИК-диода расположенных по модели "Кепка".
В операционной системе windows в opentrack есть опция вывода эмулирующая аппаратное устройство - "трекер", к сожалению в операционных системах семейства linux данный вариант отсутствует. Для игры ETS2/ATS подходящим будет эмуляция геймпада/джойстика, таким образом за выходной интерфейс будет выступать "libevdev joystic reciever". Ниже приведен скриншот главного экрана opentrack с запущенной работой:
Горячие клавиши.
Нажимаем кнопку Настройки и в первой же вкладке назначаем клавишу или комбинацию клавиш для центрирования модели. Я использовал комбинацию клавиш Win+F11:
Выходной интерфейс.
На следующей вкладке настройка выходных данных которые будут поступать от программы в игру. Тут уже зависит от вашего желания и восприятия организма на изменение изображения. Мне достаточно использования 2-х осей - поворота головы влево/вправо и вверх/вниз. Эти оси и будут далее использоваться в настройке конфигурационного файла самой игры. Забегая вперед, у меня одна ось в игре обрабатывалась противоположно повороту головы, поэтому было добавлена опция инвертирования данных:
Tracker.
Следующая вкладка для настройки будет Tracker. Тут выставляем желаемые параметры для вашей вебкамеры и используемой модели. Доработку самой вебкамеры и создание физической модели я тут не рассматриваю.
На вложенной вкладке Камера произведем подстройку работы камеры. Главным критерием для нас это работа камеры с максимально возможной для нее скоростью передачи данных. Поэтому использовалось низкое разрешение и выставлялось желаемое количество FPS. Но на практике у меня максимально полученное соответствовало 15.
Далее вам предстоит настроить блок Изменение точек. К сожалению порог и размеры точек индивидуальны. Это уже вы подстроите по своим ощущениям обработки данных программой. Для облегчения настройки могу порекомендовать расположить окно настроек в центре, а главное окно передвигая мышкой по экрану отслеживать его головой, где вы будете видеть как происходит обработка точек (ИК светодиодов).
На вложенной вкладке Модель. Выбираем вложенную вкладку вашей модели. У меня используется модель Кепка и соответствующая ей вкладка. Укажите соответствующие размеры и проведите калибровку модели используя только две плоскости поворота головы - вверх/вниз и влево/вправо.
Кривые.
Так как я использовал интересующие меня только две оси, ниже приведу скриншоты возможного варианта использования углов реального поворота головы и в зависимости от них передачи углов поворота в игру. Данные соответствия вы подстроите под себя в зависимости от ваших ощущений в самой игре.
Настройка игры.
Необходимо найти конфигурационный файл controls.sii, он расположен в библиотеке steam в том месте где игра установлена, по умолчанию домашней папке ~/.steam/steam или если вы добавляли новую директорию то в ней. Переходим по следующему пути в директории библиотеки:
/steamapps/compatdata/227300/pfx/drive_c/users/steamuser/Documents/Euro Truck Simulator 2/steam_profiles/КОД_ПРОФИЛЯ
Где КОД_ПРОФИЛЯ - буквенно-цифровое наименование директории, возможно таких директорий будет несколько, если вы используете несколько аккаунтов steam на одном компьютере для игры.
В данной директории нас интересует файл controls.sii. На всякий случай сделайте копию файла перед началом внесения правок, например сохраните с именем controls.sii.bak.
Открываем в своем любимом редакторе этот файл. Внимание, номера строк могут отличаться от приведенных ниже!!! Не изменяйте эти номера.
Если вы настраивали например оси головы влево/вправо и вверх/вниз, то в строчке параметра input j_look_ud будет наименование необходимого устройства:
config_lines[14]: "input j_look_ud `joy2.ry`"
config_lines[15]: "input j_look_lr `joy2.rx`"
У меня это joy2.
Теперь очистим привязку к нашему устройству данных настроек. Приводим строки к такому виду, удалив содержимое в одиночных кавычках - значения параметра. Наименования в указанных строчках что вы удалите нам пригодятся чуть ниже, поэтому перепишите их себе хотя бы на листик или запомните:
config_lines[14]: "input j_look_ud ``"
config_lines[15]: "input j_look_lr ``"
Далее ищем строку с параметром mix headtron. Например вы найдете вот такие строчки:
config_lines[307]: "mix headtron `c_ht_on & (trackiron | hmdon | eyeposon)`"
config_lines[308]: "mix headtryaw `sel(trackiron, trackiryaw, 0) + sel(hmdon, hmdyaw, 0) + sel(eyeposon, eyeposyaw, 0)`"
config_lines[309]: "mix headtrpitch `sel(trackiron, trackirpitch, 0) + sel(hmdon, hmdpitch, 0) + sel(eyeposon, eyepospitch, 0)`"
Приступаем к корректировке. В первой строчке mix headtron мы оставим только одно значение параметра. В следующих строчках содержащие mix headtryaw и mix headtrpitch допишите ранее найденные значения параметров самое начало после одиночной кавычки. Получаем похожее на это:
config_lines[307]: "mix headtron `c_ht_on`"
config_lines[308]: "mix headtryaw `joy2.rx + sel(trackiron, trackiryaw, 0) + sel(hmdon, hmdyaw, 0) + sel(eyeposon, eyeposyaw, 0)`"
config_lines[309]: "mix headtrpitch `joy2.ry + sel(trackiron, trackirpitch, 0) + sel(hmdon, hmdpitch, 0) + sel(eyeposon, eyepospitch, 0)`"
Сохраняем изменения. Загружаем игру. Назначаем клавишу на активацию режима отслеживания положения головы. Для этого настройках уже самой игры выбираем Клавиши и кнопки, затем находим там Включить отслеживание движений головы и привязываем клавишу.
Если все правильно выполнено - пользуемся.
Если после загрузки игры вы немного сместились и в игре расположение отрисовывает не по центру - используйте ранее назначенную в opentrack клавишу.
ПС. Если у вас перепутано влево/вправо с вверх/вниз - поменяйте в последних двух строчках дописанные значения параметров местами.







Комментариев нет:
Отправить комментарий