Набор утилит и скриптов для Assetto Corsa (2014) под Windows:
- чтение/запись телеметрии (Shared Memory);
- компактный оверлей руля/педалей и запись значений;
- маппер кнопок руля/геймпада → горячие клавиши;
- интеграция с музыкой: системные медиаклавиши/SMTC, регулировка громкости по скорости, запись текущего трека в файл.
Проект ориентирован на Assetto Corsa (не ACC). Рекомендуются Content Manager (CM) и Custom Shaders Patch (CSP). Требуется Windows 10/11 и Python 3.10+ (лучше 3.11).
Все файлы лежат в корне:
Assetto-Corsa-Script/
├─ __pycache__/
├─ # moza_ac_music_combo.py # файл с ведущим символом '#'. См. заметку ниже.
├─ README.md
├─ ac_telemetry.py
├─ ac_telemetry_calib.json
├─ moza_buttons_mapper.py
├─ moza_monitor.py
└─ ym_smtc_to_file.py
Заметка про # moza_ac_music_combo.py: имя начинается с # — это похоже на опечатку при загрузке. Windows и Python такое имя поддерживают, но из командной строки запускать удобнее после переименования в moza_ac_music_combo.py. Пока не переименовали, можно запускать так:
python "# moza_ac_music_combo.py" (в кавычках).
Рекомендуется изолировать зависимости в виртуальном окружении.
# 1) Клонирование
git clone https://github.com/Iosif2321/Assetto-Corsa-Script.git
cd Assetto-Corsa-Script
# 2) Виртуальное окружение
py -3.11 -m venv .venv
.\.venv\Scripts\activate
# 3) Зависимости (requirements.txt отсутствует — ставим вручную)
pip install pygame pywin32 keyboard psutil matplotlib Pillow winsdkДля захвата геймпада вне фокуса некоторые скрипты используют
SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS=1(переменная выставляется из кода).
Ниже — краткое назначение и типичные способы запуска. Актуальные флаги/горячие клавиши смотрите в шапке соответствующего .py.
Чтение телеметрии AC (Shared Memory), отображение ключевых параметров, опциональный экспорт в файлы.
Пример запуска:
python ac_telemetry.py --csv telemetry.csv --fps 30Типичные параметры:
--csv <path>— лог в CSV;--json <path>— лог в JSON;--fps <N>— частота обновления;--headless— запись без окна.
Компактный оверлей поверх всех окон: угол руля (в градусах и %), педали (0–100%), индикаторы. Поддерживается запись значений в файл и набор горячих клавиш (переключение мини/полного вида, always-on-top, запись и т.п.).
Пример запуска:
python moza_monitor.pyЕсли педали показывают 2–98%, откалибруйте в драйвере руля (MOZA Pit House и т.п.) и/или в самом скрипте (мертвые зоны/автокалибровка). Для руля задайте корректный угол блокировки (обычно 900°).
Маппер кнопок руля/геймпада на горячие клавиши/комбинации (например: камеры, взгляд назад, мигалки, навигация по меню пит-стопа и др.). Эмуляция осуществляется через WinAPI/скан-коды, чтобы работало поверх любых окон.
Запуск (желательно от имени администратора):
python moza_buttons_mapper.pyСвязка AC ↔ плеер: системные медиаклавиши, опциональная регулировка громкости по скорости, пауза на пит-лейне, хоткеи след/пред трек и т.д.
Пример запуска:
python moza_ac_music_combo.py
# или если ещё не переименовали:
python "# moza_ac_music_combo.py"Типичные параметры (если реализованы):
--player yandex|aimp|system--speed-volume on|off--hotkeys on|off
Интеграция с SMTC (System Media Transport Controls) Windows: считывает текущий трек из активной медиасессии (Яндекс.Музыка, Spotify, браузер и т.п.) и пишет строку в файл (по умолчанию — aimp_now_playing.txt в Документах/Assetto Corsa). Также может обрабатывать кнопки на руле для Play/Pause/Next/Prev.
Запуск:
python ym_smtc_to_file.pyДля полноценной SMTC-интеграции нужен пакет
winsdk. Путь файла можно поправить в константах в начале скрипта (ищитеOUTPUT_FILE).
Файл хранит экстремумы и настройки инверсии осей для обнаруженных устройств. Пример структуры:
{
"joystick": {
"<DEVICE_ID>": {
"min": -1.0,
"max": 0.250213623046875,
"invert": false
}
}
}min/max— зафиксированные крайние значения;invert— инверсия оси;<DEVICE_ID>— уникальный ключ устройства.
Файл создаётся/обновляется автоматически соответствующими скриптами. Удалите его для «чистой» перекалибровки.
CM → Settings → Drive → Launchers → Run program (Before/After):
Создайте .bat, чтобы активировать venv и поднять нужные процессы:
@echo off
cd /d "%~dp0"
call ".venv\Scripts\activate.bat"
start "" python "%~dp0\moza_monitor.py"
start "" python "%~dp0\moza_buttons_mapper.py"
rem при необходимости:
rem start "" python "%~dp0\moza_ac_music_combo.py"- Если нужен админ-доступ для маппера — запускайте .bat с повышенными правами (ярлык → Свойства → Совместимость → «Запуск от имени администратора») либо через Планировщик заданий с флажком Run with highest privileges.
Если проект полезен — ⭐ звезда репозиторию очень поможет. Удачи на трассе! 🏁