Joy Control

Joy Control – precyzyjne sterowanie kontrolerem do symulatorów.

⬇ JoyControl.rar (15 MB)

⬇ JoyControl-PL.pdf (170 KB)

ENGI Live JoyControl to program dla systemu Windows, która działa jako pośrednik między kontrolerem a grą. Program obsługuje kontrolery DualShock 4, DualSense, Xbox (XInput), kierownice i joysticki (HID / DirectInput), a także klawiaturę. Program przetwarza sygnał i przekazuje grze wirtualny kontroler Xbox 360 za pośrednictwem sterownika ViGEmBus.

Dla programu, gra jest niewidoczna. Gra widzi standardowy kontroler, więc ustawienia działają w każdym symulatorze. Nie są potrzebne modyfikacje, nie jest wymagane wsparcie ze strony twórców gry, a pliki gry nie są modyfikowane.

Sedno programu sprowadza się do jednego. Przycisk pada ma zakres ruchu wynoszący około 2 cm, a pedał w samochodzie – około 10 cm. Drążek sterujący odchyla się o 1,5 cm, a kierownica obraca się o pół obrotu. Dlatego właśnie tak trudno precyzyjnie kontrolować przyspieszenie i hamowanie za pomocą pada: palec pokonuje cały zakres od 0 do 100% w ciągu 50–80 milisekund, co powoduje, że samochód wpada w poślizg lub blokuje koła. Joy Control przywraca kontroli zakres ruchu. Program robi to nie za pomocą grafiki, ale w oparciu o rzeczywisty czas i charakterystykę reakcji.

Jak działa przetwarzanie sygnału:

Każda wartość przechodzi przez proces, a na wyjściu otrzymujemy wirtualny kontroler:

  • Martwa strefa. Program traktuje wszystkie surowe wartości poniżej progu jako zero, dlatego szumy i zużycie nie wpływają na wynik gry.
  • Interakcja wyzwalaczy. Jeden wyzwalacz jest odejmowany od drugiego, z uwzględnieniem współczynnika.
  • Krzywa czułości. Określa ona kształt odpowiedzi: czy będzie to łagodne przejście, czy też gwałtowna reakcja.
  • Ograniczenie zakresu wartości. Program określa minimalną i maksymalną wartość, która może zostać użyta w grze.
  • Krzywe wygładzania. Określają one szybkość zmiany w milisekundach na jednostkę, oddzielnie dla momentu naciśnięcia i momentu zwolnienia.
  • Makra i mapowanie akcji. Jeden element sterujący wpływa na inny.
  • Wirtualny kontroler Xbox 360. Gotowy wynik jest przesyłany do gry.

Odczyt danych z kontrolera odbywa się z częstotliwością około 120–125 Hz. Wszystkie opóźnienia są obliczane za pomocą precyzyjnego timera z akumulacją czasu, więc krok 0,1 milisekundy na jednostkę jest przetwarzany poprawnie nawet między kolejnymi odczytami.

Możliwości programu:

  • Wspierane są wszystkie urządzenia wejściowe. Konsole PS4 i PS5 są automatycznie rozpoznawane, Xbox jest podłączany przez XInput, kierownice i kontrolery działają za pomocą HID i DirectInput, a klawiatura zastępuje kontroler. Można używać kilku urządzeń jednocześnie.
  • Niezależna konfiguracja triggerów. Hamulec i gaz są konfigurowane oddzielnie, a nie za pomocą jednego suwaka dla obu.
  • Do 10 stopni płynności. Stopnie płynności są ustawiane w zakresie od 0 do 255, oddzielnie dla naciśnięcia i dla zwolnienia, a opóźnienie dla każdego stopnia wynosi od 0,1 do 1000 milisekund na jednostkę.
  • Krzywe czułości. Dla przycisków krzywa jest konfigurowana w zakresie od -20 do +20, a dla każdej osi drążka sterującego – w zakresie od -10 do +10.
  • Pełna konfiguracja drążków sterujących. Możliwa jest regulacja wewnętrznych i zewnętrznych stref martwych, ograniczenie zakresu ruchu w osiach X i Y, regulacja zakresu do pełnego wychylenia oraz ustawienie maksymalnej wartości dla osi.
  • Makra. Dostępne tryby: "Śledzenie", "Utrzymanie", "Impuls", "Przełącznik", "Turbo" i "Wyłączone". Każde makro posiada przycisk warunkowy, możliwość odwrócenia działania, priorytet, opóźnienia w mikrosekundach oraz sposób łączenia z sygnałem fizycznym: większa wartość z dwóch, zastąpienie lub dodawanie.
  • Mapowanie akcji. Można powiązać dowolne wejście z dowolnym wyjściem i zdefiniować próg aktywacji, wymagany czas utrzymania oraz opóźnienia przed i po akcji.
  • Oscyloskop w czasie rzeczywistym. Na wykresie, w odniesieniu do ostatnich 3 sekund, szary kolor pokazuje surowe dane z kontrolera, a kolorowy – dane przekazywane do gry. Ustawienia są widoczne, więc nie trzeba zgadywać.
  • Interaktywny obraz przedstawiający kontroler. Kliknięcie w przycisk, drążek, spinki spustowe lub panel dotykowy otwiera okno z ustawieniami tego elementu.
  • Profile. Ustawienia są przechowywane w lokalnej bazie danych SQLite. Każdy profil posiada unikalny, 16-cyfrowy kod, a wymiana danych odbywa się za pomocą formatu JSON. Dla każdej gry warto utworzyć oddzielny profil.
  • Obsługa interfejsu w 14 językach. Program składa się z jednego pliku wykonywalnego i nie wymaga instalacji.
  • Automatyczne zapisywanie. Wszelkie zmiany są natychmiast stosowane i zapisywane, dzięki czemu można konfigurować ustawienia bez wychodzenia z gry.

Dlaczego to jest lepsze dla gier w symulatorach:

Standardowe programy do przypisywania przycisków zmieniają jedynie sposób reakcji, czyli krzywą. Joy Control modyfikuje również prędkość: określa, ile milisekund trwa przekazywanie sygnału do celu na każdym etapie ruchu. To zupełnie inny poziom kontroli, i to właśnie on rozwiązuje typowe problemy związane z używaniem kontrolerów w grach symulacyjnych.

  • Samochód nie wpada w poślizg przy gwałtownym wciśnięciu pedału gazu. Palec natychmiast nacisnął spust, a moc jest stopniowo zwiększana, dzięki czemu samochód przyspiesza tak, jakby płynnie naciskało się pedał gazu.
  • Hamowanie jest dozowane na granicy zablokowania. Pierwsze 30% drogi hamowania jest szybkie, reakcja jest natychmiastowa, a ostatnie 30% jest wolniejsze. W momencie dotarcia do końca drogi hamowania można osiągnąć punkt, w którym koła zaczynają się blokować, co jest fizycznie niemożliwe do osiągnięcia ręcznie.
  • Zwalnianie pedału jest konfigurowane niezależnie od wciskania. W przypadku pedału gazu lub hamulca, zwalnianie nie odbywa się z taką samą prędkością, z jaką następuje wciskanie. Płynne zwalnianie hamulca podczas wchodzenia w zakręt oraz delikatne zmniejszanie prędkości na wzniesieniu są konfigurowane oddzielnie.
  • Płynność działania nie utrudnia wykonywania czynności awaryjnych. Poszczególne przełączniki pozwalają wyłączyć opóźnienie w położeniach skrajnych: natychmiast po całkowitym zwolnieniu pedału, hamulec zostaje natychmiast解除.
  • Kierownica posiada bezwładność. Gwałtowny ruch drążka sterowego nie powoduje natychmiastowego skrętu kół, ponieważ drążek sterowy ma swoje własne zakresy działania, zarówno pod kątem wychylenia, jak i powrotu do pozycji centralnej.
  • Sterowanie staje się bardziej precyzyjne. Ograniczenie zakresu ruchu w osi X powoduje, że pełny zakres ruchu drążka odpowiada 60–70% kąta obrotu, a ten sam dystans przesunięty pod palcem działa dwukrotnie dokładniej.
  • We wszystkich grach wszystko działa w ten sam sposób. Przetwarzanie danych odbywa się przed uruchomieniem gry, na poziomie wirtualnego kontrolera, dlatego nie są wymagane żadne ustawienia w samej grze ani modyfikacje.
  • Lewa noga pozostaje na pedale hamulca. Odejmowanie jednego sygnału od drugiego, z uwzględnieniem współczynnika, naśladuje zachowanie samochodów, w których pedał gazu i hamulca wchodzą w konflikt, lub, odwrotnie, pozwala na delikatne hamowanie bez odpuszczania pedału gazu.

Konfiguracja pedałów gazu i hamulca:

Lewy przycisk L2 / LT to hamulec, prawy przycisk R2 / RT to gaz. Każdy z nich jest konfigurowany w oddzielnym oknie, a wszystkie parametry są niezależne.

Parametr:Co robiJak ustawić dla symulatora:
Martwa strefa.Wartość poniżej progu jest traktowana jako zero.W nowym kontrolerze, obszar martwy ustawiany jest na 3–8 jednostek. W przypadku zużytego przycisku, który ma tendencję do "uciekania" gazu, wartość ta jest podnoszona do 10–15 jednostek.
Minimum i maksimum wydajności.Ogranicza zakres wartości przekazywanych do gry, od 0 do 255.W przypadku samochodów z napędem na przednie koła lub mocnych samochodów z napędem na tylne koła, maksymalna wartość ustawiana jest na 190–210 jednostek z 255. W takim przypadku pełny gaz jest niedostępny.
Krzywa czułości.Określa kształt reakcji w zakresie od −20 do +20. Ujemne wartości zapewniają płynne przyspieszenie i precyzję na początku, a dodatnie wartości dają gwałtowne przyspieszenie do maksymalnej wartości.Dla pedału gazu, wartość krzywej ustawiana jest w zakresie od −6 do −10, a dla pedału hamulca od −3 do −6. Dodatnie wartości są rzadko używane, na przykład dla przyciskowego hamulca ręcznego.
Obszary nacisku.Można zdefiniować do 10 punktów w zakresie od 0 do 255, a każdy z nich ma własne opóźnienie w milisekundach na jednostkę. Poza zdefiniowanymi punktami, wartość zmienia się natychmiast, a na punktach łączenia opóźnienia się sumują.Oto przykładowe wartości: 255 jednostek po 1 milisekundzie dają około 0,26 sekundy na cały cykl. Dla gazu przyjmuje się od 0,3 do 2 milisekund na jednostkę, a dla hamulca od 0,5 do 3 milisekund.
Obszary odprowadzania.Ustawia się oddzielny zestaw wartości dla opadania.Zazwyczaj zwalnianie jest szybsze niż przyspieszanie: od 0,5 do 1 milisekundy na jednostkę. W przypadku płynnego zwalniania hamulca w zakręcie, opóźnienie jest zwiększane dla wyższych wartości.
Natychmiastowa wartość minimalna i natychmiastowa wartość maksymalna.Wyłącza funkcję płynności, gdy przycisk jest całkowicie zwolniony lub wciśnięty do końca.Dla hamulca funkcja jest włączana w celu umożliwienia awaryjnego hamowania, a dla gazu zazwyczaj jest wyłączona.
Odejmowanie wartości progowych i współczynnik mnożenia.Hamulec osłabia działanie gazu lub odwrotnie, z określonym współczynnikiem.Współczynnik od 0,5 do 1,0 symuluje hamowanie lewą nogą i pracę z delikatnym przyspieszaniem.

Gotowe ustawienia przycisków

UstawienieNaciśnięcieZwolnienieDo czego służy?
Płynne hamowanie.0–80: 0,5 · 80–180: 1,5 · 180–255: 3,0120–255: 1,0 · 0–120: 0,5Wyścigi po okręgu i regulacja w progu blokowania.
Gładki gaz.0–60: 0,3 · 60–200: 1,0 · 200–255: 2,00–255: 0,8Napęd na tylne koła i wyjście z zakrętu bez poślizgu.
Jak ABS?0–128: 0,2 · 128–255: 2,5Natychmiastowo.Szybkie rozpoczęcie hamowania i stopniowe zwiększanie nacisku.
Jak TC?0–128: 2,5 · 128–255: 0,2Natychmiastowo.Powolne zwiększanie momentu obrotowego przy starcie i swobodny zakres w górnej części.

Liczby w tabeli oznaczają opóźnienie w milisekundach na jedną jednostkę wyjściową. Presety służą jako punkt wyjścia: następnie poszczególne ustawienia są dostosowywane do konkretnego samochodu i sprawdzane za pomocą oscyloskopu, gdzie linia szara pokazuje wartość wejściową, a kolorowa – to, co otrzymuje gra.

Konfiguracja drążków analogowych

Lewy drążek w symulatorach samochodowych działa jak kierownica, a prawy odpowiada za widok lub kamerę. Dla każdego drążka można konfigurować geometrię, czyli obszary martwe, zakres i krzywą, a także płynność w poszczególnych obszarach, niezależnie dla osi X i Y.

Parametr:Co robiJak ustawić dla symulatora:
Wewnętrzna strefa martwa.Eliminuje poślizg w centrum.Od 3 do 6% dla nowego drążka i od 8 do 12% dla zużytego. Im mniejsza wartość, tym dokładniej samochód utrzymuje prostą trajektorię.
Martwa strefa zewnętrzna.Ogranicza zakres ruchu, dzięki czemu maksymalny zakres jest osiągany nieco wcześniej niż w pełnym zakresie.W zakresie od 92 do 97%, aby zapewnić pełny obrót we wszystkich kierunkach, w tym po przekątnych.
Maksymalny zakres w osiach.Ogranicza kąt wychylenia w osi X lub Y.Jest to główna metoda sterowania: od 60 do 75% w osi X. Kierownica przestaje się obracać do końca, co znacznie zwiększa precyzję.
Rozciąganie do pełnego zakresu.Po ograniczeniu zakresu ruchu, sygnał jest ponownie rozszerzany do maksymalnego poziomu.Włączane, gdy potrzebny jest pełny zakres ruchu przy dużej martwej strefie.
Czułość w osiach.Ustawia krzywą w zakresie od -10 do +10. Ujemna wartość rozszerza środek i zapewnia płynną reakcję, a dodatnia wartość powoduje gwałtowną reakcję.Do sterowania, wartość krzywej w osi X powinna być ustawiona w zakresie od -4 do -7. Do szybkiego obracania głową za pomocą prawego drążka, wartość powinna być ustawiona w zakresie od +2 do +4.
Obszary odchyleń.Umożliwiają płynne oddalanie się od środka. Amplituda od 0 do 255 odpowiada pełnemu zakresowi ruchu od środka, a każdy fragment ma własne flagi dla osi X i Y.Do sterowania nadaje się zestaw opóźnień 0–60: 0,4 · 60–160: 1,2 · 160–255: 2,5 milisekundy na jednostkę. Przycisk reaguje szybko w środkowej części i z większą opornością na krańcach.
Obszary zwrotu.Zapewnia płynny powrót do środkowej pozycji.Opóźnienie od 0,5 do 0,8 milisekundy na jednostkę w całym zakresie symuluje samoczynny powrót kół. Dla kamery, powrót jest szybszy niż odchylenie.
Maksymalna wartość w osi.Przy każdym odchyleniu wzdłuż osi, generowany jest maksymalny sygnał w danym zakresie.Nadaje się do sterowania w stylu arcade oraz do gier, w których wymagany jest cyfrowy obrót.
Całkowite wyłączenie joysticka.Przycisk nie jest przekazywany do gry, ale jego makra nadal działają.Jest to wygodne, gdy sterowanie realizowane jest za pomocą kierownicy, a przycisk służy jedynie jako źródło makr.

Oś X i Y można konfigurować razem lub oddzielnie: każdy obszar ma flagi "X" i "Y", a obszary nakładające się sumują opóźnienia. Obok ustawień znajduje się oscyloskop z skalą od −255 do +255. Przesuwaj przycisk i obserwuj, jak bardzo sygnał wyjściowy opóźnia się w stosunku do ruchu palca.

Co jest potrzebne do działania?

  • System Windows 10 lub 11 w wersji 64-bitowej.
  • Sterownik ViGEmBus w wersji 1.22.0. Program sprawdza, czy sterownik jest zainstalowany i oferuje jego instalację jednym kliknięciem.
  • Kontroler podłączony kablem, przez adapter lub przez Bluetooth.

Program działa w trybie demonstracyjnym przez 20 minut podczas każdego uruchomienia. Pełna funkcjonalność jest dostępna po aktywacji licencji bezterminowej engi.live.