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 robi | Jak 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
| Ustawienie | Naciśnięcie | Zwolnienie | Do czego służy? |
|---|---|---|---|
| Płynne hamowanie. | 0–80: 0,5 · 80–180: 1,5 · 180–255: 3,0 | 120–255: 1,0 · 0–120: 0,5 | Wyścigi po okręgu i regulacja w progu blokowania. |
| Gładki gaz. | 0–60: 0,3 · 60–200: 1,0 · 200–255: 2,0 | 0–255: 0,8 | Napęd na tylne koła i wyjście z zakrętu bez poślizgu. |
| Jak ABS? | 0–128: 0,2 · 128–255: 2,5 | Natychmiastowo. | Szybkie rozpoczęcie hamowania i stopniowe zwiększanie nacisku. |
| Jak TC? | 0–128: 2,5 · 128–255: 0,2 | Natychmiastowo. | 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 robi | Jak 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.
