SPC – TM2020 – SimHub Plugin für Trackmania 2020

SPC – TM2020 – SimHub Plugin für Trackmania 2020

Nach einigen Dashboards und weiteren Projekten rund um SimHub war es nun Zeit für das erste größere SimHub-Projekt: Ein eigenes Plug-in für Trackmania 2020. Dieses erlaubt das Auslesen der Telemetriedaten aus dem Arcade-Titel, um in SimHub verschiedene nutzbare Variablen zu erzeugen. Die erste Version ist jetzt kostenlos verfügbar, ebenso wie ein Beispiel-Dashboard, ein LED-Profil und ein Overlay für Streamer.

Plugin – Vorstellung

Das hier vorgestellte Plugin schlägt eine Brücke zwischen der Telemetrieausgabe von Trackmania 2020 und SimHub (Download). Dazu nutzt es die bereitgestellte Datei ManiaPlanet_Telemetry und verarbeitet die darin enthaltenen Daten so, dass sie von SimHub als eigene Variablen [TM2020.xxx] weiterverarbeitet werden können. Dadurch ist es möglich, die gesamte Bandbreite der von SimHub gebotenen Features voll auszunutzen. Diese reichen von den hier vorgestellten Verwendungsmöglichkeiten bis hin zu Bass Shakern, Motion Systemen, der Steuerung von Beleuchtung oder weiteren DIY-Projekten.

Projekte

Um einen ersten Überblick über die Möglichkeiten zu erhalten, die sich durch die Kombination von Trackmania 2020 und SimHub ergeben, findet ihr hier drei verschiedene kleine Beispielprojekte.

Beispiel – Dashboard

Das erste Projekt ist ein Custom-Dashboard für Trackmania, das vom SPC iRacing Dash (SPC iRacing Dashboard Design für SimHub) inspiriert wurde. Hier wurden bereits einige Variablen genutzt und auf verschiedene Weise dargestellt. So verändern beispielsweise die Reifen ihre Farbe abhängig vom Status und die Lenkradbewegung sowie die Pedalwege werden angezeigt. Mit SimHub ist es möglich, völlig eigene Dashboards zu designen.

Beispiel – RPM-LEDs

Eine weitere Verwendungsmöglichkeit sind RGB-LEDs, wie sie beispielsweise in High-End-Lenkrädern verbaut werden. Auf einem Forte Pro Steering Wheel von Asetek wird hier beispielsweise die aktuelle Drehzahl in einem Bereich von 7.000 bis 10.000 RPM angezeigt.

Beispiel – Overlay

Als drittes Beispiel seht ihr hier ein Overlay, das verschiedene Statistiken anzeigt. Diese können entweder über das Spiel gelegt oder direkt in OBS eingebunden werden. Auch hier könnt ihr das Design und die verwendeten Werte über den in SimHub integrierten Editor frei konfigurieren.

Status der Entwicklung und Bugs

Die grundlegende Funktionalität des Plug-ins ist bereits jetzt gegeben. Während des Testzeitraums kam es weder zu Abstürzen noch zu Performanceproblemen. Aktuell sind allerdings noch einige Feinheiten zu verbessern.

  • Die Werte im Memory-mapped File werden nicht geleert. Dadurch kann es nötig sein, bei der Verwendung der Variablen bestimmte Abfragen miteinzubeziehen, um falsche Werte auszuschließen.
  • Bei der Beobachtung von Replays können die Werte letzte Zeit und beste Zeit inkorrekt gesetzt werden.
  • Wenn das Plugin keine Daten erkennt, muss möglicherweise TM 2020 als Admin ausgeführt werden.

Download + Installation

Für die Nutzung des Plugins ist eine aktuelle SimHub-Installation erforderlich. Im nächsten Schritt werden die beiden Dateien User.SPCTM2020.dll und User.SPCTM2020.pdb im Hauptverzeichnis von SimHub abgelegt. Beim Start des Programms wird automatisch abgefragt, ob das neue Plugin installiert werden soll. Nach Bestätigung wartet das Plugin auf Daten von Trackmania und ist betriebsbereit.

Die Testprojekte sind ebenfalls Bestandteil des Downloads und können jeweils durch Doppelklick installiert werden.

Rechtklick für „Speichern unter“ – Keine kommerzielle Nutzung

Demo

Bereitgestellte Werte

Nachfolgend findet ihr eine Übersicht der Werte, die das Plugin zur Verfügung stellt.

Trackmania 2020 – Telemetry

Hier sind die unveränderten Telemetriedaten aufgeführt, die direkt aus dem Speicher ausgelesen wurden.

ValueCode
Map Name[TM2020.MapName]
Start Timestamp[TM2020.StartTimestamp]
No Respawns[TM2020.NoRespawns]
No Checkpoints[TM2020.NoCheckpoints]
Race State[TM2020.RaceState]
Position X[TM2020.PositionX]
Position Y[TM2020.PositionY]
Position Z[TM2020.PositionZ]
Velocity X[TM2020.VelocityX]
Velocity Y[TM2020.VelocityY]
Velocity Z[TM2020.VelocityZ]
Input Steering[TM2020.InputSteering]
Input Gas Pedal[TM2020.InputGasPedal]
Input is Braking[TM2020.InputisBraking]
Input is Horn[TM2020.InputisHorn]
Wheels Ground Contact FL[TM2020.WheelsisGroundContactFrontLeft]
Wheels Ground Contact FR[TM2020.WheelsisGroundContactFrontRight]
Wheels Ground Contact RL[TM2020.WheelsisGroundContactRearLeft]
Wheels Ground Contact RR[TM2020.WheelsisGroundContactRearRight]
Wheels Slipping FL[TM2020.WheelsisSlippingFrontLeft]
Wheels Slipping FR[TM2020.WheelsisSlippingFrontRight]
Wheels Slipping RL[TM2020.WheelsisSlippingRearLeft]
Wheels Slipping RR[TM2020.WheelsisSlippingRearRight]
Is In Water[TM2020.IsInWater]
Is Flying[TM2020.IsFlying]
Engine Turbo Ratio[TM2020.EngineTurboRatio]
Vehicle Timestamp[TM2020.VehicleTimestamp]
Gameplay Variant[TM2020.GameplayVariant]
Checkpoint Times 0 – 128[TM2020.CheckpointTimes](0-128)

Computed Data

Hier findet ihr zusätzlich experimentelle berechnete Werte.

ValueCode
Computed No. Checkpoints[TM2020.ComputedNoOfCheckpoints]
Computed Last Time[TM2020.ComputedLastTime]
Computed Best Time[TM2020.ComputedBestTime]
Computed Best Checkpoint Times 0 – 128[TM2020.ComputedCheckpointTimes](0-128)
Computed Current Time[TM2020.ComputedCurrentTime]

Session Data

Unter Session Data finden sich einige gesammelte Statistiken zur aktuellen Sitzung. Dazu gehören beispielsweise die Dauer seit Beginn und die Anzahl der Lenkvorgänge.

ValueCode
Session Braking Events[TM2020.Computed_SessionBraking]
Session Finishes[TM2020.Computed_SessionFinishes]
Session Attempts[TM2020.Computed_SessionAttempts]
Session Left Steering Events[TM2020.Computed_SessionLeftSteering]
Session Right Steering Events[TM2020.Computed_SessionRightSteering]
Session Timer (ms)[TM2020.Computed_SessionSessionTimer]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert