Darf´s denn noch ein Schalter mehr sein?

  • Moin Leute,


    mich treibt seit längerem schon die Frage um, was geht da noch an externen Schaltern in dem Spiel?


    Aus diesem Grund habe ich mich mal hingesetzt und mal geschaut was ich noch so an Bastelzeug da habe.
    Die Idee war also eine "Konzeptstudie" zu erstellen, was man so an externen Tastern noch einbauen kann.
    Leider sieht das Interface von SC keine klassischen Schalter vor. Wie Ihr sicher wisst, arbeiten wir im Spiel ja nur mit Tastern, also den klassischen Joystick-Buttons oder der Tastatur. Dies schränkt natürlich die Möglichkeiten stark ein, sich individuell auszutoben.


    Also habe ich jetzt mal von meinem Cockpitbau (Boeing 737) ein paar Reste entliehen und geschaut.


    Die Einzelteile ->


    Als Interface diente mir eine USB Joystick-Platine der Firma Opencockpits. -> USB Axes Card
    Zusätzlich habe ich mir von Tante Amazone eine kleine Interface Karte besorgt -> Interface Karte
    Dazu noch ein paar vorhandene Taster -> Drucktaster


    Ich habe dann mal ein paar Sperrholz Platten in eine etwas sinnigere Form für meinen Schreibtisch gebracht.
    Und ja, ich weiß, Qualitativ hochwertig sieht anders aus .... aber es ist halt nur eine Konzeptstudie .... mehr nicht ;)


    Der Rohbau Teil 1


    Der Rohbau Teil 2

    Der Rohbau Teil 3




    Ein erster Funktionstest mit den Tastern war bereits erfolgreich. Also grundsätzlich kann man da noch ein wenig mehr rausholen.


    Ende Mai werde ich mir mal von Leo Bodnar die folgende USB Interface Karte besorgen -> Leo Bodnar <- sie gibt da sicherlich ein wenig mehr Möglichkeiten in Sachen
    Anzahl der Buttons und Potis.


    Ich werde von Zeit zu Zeit die "Baufortschritte" hier dokumentieren. Für Anregungen bin ich jederzeit offen :thumbup:


    Beste Grüße


    Kay

  • Nur ein paar Notizen für mich zum Thema "Konfiguration" in SC.
    Ggf. verfolge ich das Ganze weiter und baue mir ein Tool, welches Eingabegeräte wie z.B. ein Arduino nach meinen Bedürfnissen automagisch an die InGame-Konfiguration anpasst.



    Individuelle Änderungen der Keybindings liegen unter
    D:\RSILauncher\StarCitizen\LIVE\USER\Client\0\Profiles\default\actionsmaps.xml
    Der Pfad zur Installation wird sich unterscheiden, wichtig ist der Part ab "LIVE".
    (https://www.starcitizen.gr/3932933-2/ bestätigt meine Annahme)



    Individuelle Änderungen an Devices sind dort jeweils unter "<deviceoptions ..." gesichert.
    So habe ich z.B. die Deadzone meiner Ruderpedale auf 0 geändert und die Empfindlichkeit geändert.

    TODO: Warum sind dort Einstellungen doppelt vermerkt? Ein Bug? Was passiert, wenn ich die von Hand lösche?



    Angeschlossene Geräte werden im Spiel leider nicht beim Namen genannt und heißen dort nur "Mouse, GamePad, Joystick/Hotas 1, Joystick/Hotas 2, Joystick/Hotas 3 und Joystick/Hotas 4".
    Welches Eingabegerät sich dahinter versteckt, findet man unter "<options".
    Das Attribut "instance" scheint die Reihenfolge anzugeben.

    Code
    <options type="joystick" instance="2" Product="Throttle - HOTAS Warthog {0404044F-0000-0000-0000-504944564944}">
       <flight_move_yaw invert="1"/>
       <flight_move_strafe_forward invert="1"/>
       <flight_move_strafe_backward invert="1"/>
      </options>


    Die jeweiligen Untermenus der Device-Konfiguration werden scheinbar in den Sektionen "actionmap" hinterlegt.
    In meinem Fall habe ich vom "Throttle - HOTAS Warthog {0404044F-0000-0000-0000-504944564944}" (Joystick Instanz 2) den Button 15 mit einem Blick nach hinten verknüpft, wenn ich als Pilot in meinem Raumschiff sitze.
    Die Einstellung unter GamePad habe ich im Spiel gelöscht!

    Code
    <actionmap name="spaceship_view">
       ...
       <action name="v_view_look_behind">
        <rebind input="js2_button15"/>
        <rebind input="gp1_ "/>
       </action>

    Änderungen im Spiel werden 1:1 direkt in diese Datei gespeichert (getestet).



    TODO: Actionmaps gegen Optionen im Spiel prüfen.


    TODO: Wo finde ich die Default Keybinds?


    Fortsetzung könnte folgen ... ;)

  • Ich bin mir nicht sicher ob das weiterhilft?


    Ich habe mal ein gespeichertes Keysetting aufgerufen, welches sich ja aus den "originalen" Bindings und den von mir veränderten Bindings zusammensetzt.


    Mein persönliches Keybinding :)
    Zu finden unter (siehe Grafik als Anlage)


    <ActionMaps version="1" optionsVersion="2" rebindVersion="2" profileName="Kay">
    <CustomisationUIHeader label="Kay" description="" image="">
    <devices>
    <keyboard instance="1"/>
    <mouse instance="1"/>
    <joystick instance="1"/>
    <joystick instance="2"/>
    <joystick instance="3"/>
    </devices>
    <categories>
    <category label="@ui_CCSpaceFlight"/>
    <category label="@ui_CGLightControllerDesc"/>
    <category label="@ui_CCFPS"/>
    <category label="@ui_CCEVA"/>
    <category label="@ui_CGInteraction"/>
    </categories>
    </CustomisationUIHeader>
    <deviceoptions name="USBAXEPLUS V3 {000004D8-0000-0000-0000-504944564944}">
    <option input="x" deadzone="0.1881"/>
    <option input="x" saturation="0.93059999"/>
    <option input="x" saturation="0.93059999"/>
    </deviceoptions>
    <options type="keyboard" instance="1" Product="Tastatur {6F1D2B61-D5A0-11CF-BFC7-444553540000}"/>
    <options type="joystick" instance="1" Product="Logitech Extreme 3D {C215046D-0000-0000-0000-504944564944}"/>
    <options type="joystick" instance="2" Product="Generic USB Joystick {00060079-0000-0000-0000-504944564944}"/>
    <options type="joystick" instance="3" Product="USBAXEPLUS V3 {000004D8-0000-0000-0000-504944564944}"/>
    <modifiers />
    <actionmap name="spaceship_general">
    <action name="v_toggle_all_doors">
    <rebind input="js1_button9"/>
    </action>
    </actionmap>
    <actionmap name="spaceship_movement">
    <action name="v_accel_range_abs">
    <rebind input="js3_y"/>
    </action>
    <action name="v_accel_range_rel">
    <rebind input="kb1_ "/>
    </action>
    <action name="v_afterburner">
    <rebind input="kb1_ "/>
    <rebind input="js1_button2"/>
    </action>
    <action name="v_ifcs_toggle_cruise_control">
    <rebind input="js3_button14"/>
    </action>
    <action name="v_pitch_mouse">
    <rebind input="mo1_ "/>
    </action>
    <action name="v_roll">
    <rebind input="js1_x"/>
    </action>
    <action name="v_roll_left">
    <rebind input="kb1_ "/>
    </action>
    <action name="v_roll_right">
    <rebind input="kb1_ "/>
    </action>
    <action name="v_space_brake">
    <rebind input="js3_button21"/>
    </action>
    <action name="v_speed_range_abs">
    <rebind input="js3_z"/>
    </action>
    <action name="v_speed_range_down">
    <rebind input="kb1_np_subtract"/>
    </action>
    <action name="v_speed_range_up">
    <rebind input="kb1_np_add"/>
    </action>
    <action name="v_strafe_back">
    <rebind input="kb1_ "/>
    </action>
    <action name="v_strafe_down">
    <rebind input="kb1_lshift"/>
    <rebind input="js1_button3"/>
    </action>
    <action name="v_strafe_forward">
    <rebind input="kb1_ "/>
    </action>
    <action name="v_strafe_left">
    <rebind input="kb1_ "/>
    </action>
    <action name="v_strafe_right">
    <rebind input="kb1_ "/>
    </action>
    <action name="v_strafe_up">
    <rebind input="js1_button5"/>
    </action>
    <action name="v_toggle_qdrive_engagement">
    <rebind input="js2_button11"/>
    </action>
    <action name="v_toggle_qdrive_spooling">
    <rebind input="js2_button11"/>
    </action>
    <action name="v_yaw">
    <rebind input="js1_rotz"/>
    </action>
    <action name="v_yaw_mouse">
    <rebind input="mo1_ "/>
    </action>
    </actionmap>
    <actionmap name="spaceship_targeting_advanced">
    <action name="v_target_cycle_friendly_reset">
    <rebind input="js3_button20"/>
    </action>
    <action name="v_target_cycle_hostile_reset">
    <rebind input="js1_button6"/>
    </action>
    </actionmap>
    <actionmap name="spaceship_target_hailing">
    <action name="v_target_hail">
    <rebind input="js3_button12"/>
    </action>
    </actionmap>
    <actionmap name="spaceship_mining">
    <action name="v_decrease_mining_throttle">
    <rebind input="js1_ "/>
    </action>
    <action name="v_increase_mining_throttle">
    <rebind input="js1_ "/>
    </action>
    <action name="v_mining_throttle">
    <rebind input="js1_slider1"/>
    </action>
    </actionmap>
    <actionmap name="turret_main">
    <action name="turret_yaw">
    <rebind input="js1_rotz"/>
    </action>
    </actionmap>
    <actionmap name="spaceship_weapons">
    <action name="v_attack1_group2">
    <rebind input="js1_button1"/>
    </action>
    </actionmap>
    <actionmap name="spaceship_defensive">
    <action name="v_shield_raise_level_back">
    <rebind input="js3_button15"/>
    </action>
    <action name="v_shield_raise_level_forward">
    <rebind input="js3_button6"/>
    </action>
    <action name="v_shield_raise_level_left">
    <rebind input="js3_button8"/>
    </action>
    <action name="v_shield_raise_level_right">
    <rebind input="js3_button24"/>
    </action>
    <action name="v_shield_raise_level_up">
    <rebind input="js3_button23"/>
    </action>
    <action name="v_shield_reset_level">
    <rebind input="js3_button16"/>
    </action>
    <action name="v_weapon_countermeasure_decoy_launch">
    <rebind input="js1_ "/>
    </action>
    <action name="v_weapon_countermeasure_decoy_launch_panic">
    <rebind input="js1_button7"/>
    </action>
    <action name="v_weapon_countermeasure_noise_launch">
    <rebind input="js1_button8"/>
    </action>
    </actionmap>
    <actionmap name="spaceship_power">
    <action name="v_power_focus_shields">
    <rebind input="js2_button5"/>
    </action>
    <action name="v_power_focus_thrusters">
    <rebind input="js2_button3"/>
    </action>
    <action name="v_power_focus_weapons">
    <rebind input="js2_button7"/>
    </action>
    <action name="v_power_reset_focus">
    <rebind input="js2_button4"/>
    </action>
    <action name="v_power_toggle">
    <rebind input="js2_button1"/>
    </action>
    <action name="v_power_toggle_shields">
    <rebind input="js2_button6"/>
    </action>
    <action name="v_power_toggle_thrusters">
    <rebind input="js2_button2"/>
    </action>
    <action name="v_power_toggle_weapons">
    <rebind input="js2_button8"/>
    </action>
    </actionmap>
    <actionmap name="lights_controller">
    <action name="v_lights">
    <rebind input="js1_button11"/>
    </action>
    </actionmap>
    <actionmap name="player">
    <action name="crouch">
    <rebind input="kb1_np_1"/>
    </action>
    <action name="leanleft">
    <rebind input="kb1_np_7"/>
    </action>
    <action name="leanright">
    <rebind input="kb1_np_9"/>
    </action>
    <action name="moveback">
    <rebind input="kb1_mouse4"/>
    </action>
    <action name="moveforward">
    <rebind input="kb1_np_8"/>
    </action>
    <action name="moveleft">
    <rebind input="kb1_np_4"/>
    </action>
    <action name="moveright">
    <rebind input="kb1_np_6"/>
    </action>
    <action name="prone">
    <rebind input="kb1_np_3"/>
    </action>
    <action name="sprint">
    <rebind input="kb1_rctrl"/>
    </action>
    <action name="toggleEquipHelmet">
    <rebind input="kb1_f8"/>
    </action>
    </actionmap>
    <actionmap name="zero_gravity_eva">
    <action name="eva_strafe_down">
    <rebind input="kb1_lshift"/>
    </action>
    </actionmap>
    <actionmap name="player_choice">
    <action name="pc_interaction_mode">
    <rebind input="kb1_delete"/>
    <rebind input="js1_ "/>
    </action>
    <action name="pc_qs_grenades">
    <rebind input="kb1_5"/>
    </action>
    </actionmap>
    /ActionMaps>

    Geht die Sonne auf im Westen, musst du deinen Kompass testen.

    Einmal editiert, zuletzt von Cortes ()

  • Dann kann ich ja auch mal gleich ein Update von der "Konzeptstudie" zeigen.


    Ich habe den Throttle jetzt ca. 20 Stunden getestet. Er kann zwar mit den Modellen "Warthog & Co" optisch vielleicht nicht
    mithalten, jedoch ist er sehr kostengünstig entstanden und hätte noch genug Potenzial auf individuelle Anpassungen bei den Knöpfen (Anzahl, Position und Funktion).


    Der obere Teil (nicht lasierte Teil) wird noch getauscht gegen eine andere Form, da ich dort noch einen Button für den Afterburner und die Spacebrake integrieren möchte. Die Kabel habe ich ja schon verlegt :)


    Vorteil dieser Konstruktion ist, man kann Sie innerhalb von 20 Sekunden sauber demontieren und erhält seinen Schreibtisch vollständig wieder.


    Geht die Sonne auf im Westen, musst du deinen Kompass testen.

  • Die von mir genannte actionmaps.xml lag bis vor einiger Zeit noch als Bytecode vor, so wie aktuell noch die Default-Konfigurationen unter StarCitizen\LIVE\USER\Profiles\default\.
    Am Format der individuellen Konfigurationen ändert sich scheinbar laufend etwas.
    Mit dem EXPORT wird scheinbar ein standadisiertes Format abgespeichert, welches per IMPORT in das möglicherweise geänderte Format überführt werden kann.
    Im Export stehen nämlich auch nur Änderungen drin, die du an deiner Konfig vorgenommen hast ;)
    Trotzdem danke!
    Im nächsten Step möchte ich gerne die Dateien im Verzeichnis StarCitizen\LIVE\USER\Profiles\default\ decomilen.

  • Habe dem Kay seine Idee mal gemopst und mir eine "BU0836X 12-Bit Joystick Board (BU0836X)" Platine bei Leobodnar bestellt.
    Unglücklicherweise ist die UK ja nun nicht mehr Mitglied der EU ...

    Non-EU item - preliminary import check

    Na da bin ich aber mal gespannt!


    Nachtrag 22.05.
    Deutsche Post schreibt, dass meine Sendung in der Filiale um die Ecke zur Abholung bereit liegt - YES!
    Ist so ein Schreibwarengeschäft mit Postschalter und die nette Dame am Schalter sagt, dass sie den Eingang frühestens zu Dienstag sortieren wird. Warten auf Spielzeug ist echt doof! :D

  • 10.05. bestellt, heute angekommen. Inkl. Zoll und Gebühren hat mich das gute Stück 87 Euro gekostet.


    Nachtrag 31.05.2021
    Ist euch aufgefallen, dass der Hersteller +5V und GND in der Anleitung vertauscht hat?
    Auf dem Board steht unten links GND - in der darüber abgebildeten Anleitung ist die rote Leitung als +5V gekennzeichnet.

  • Heute konnte ich endlich einmal ein wenig mit meinem Arduino Leonardo, einem Honeywell SS496A1 Hall Sensor und einigen N52 Neodym Magneten 5mm x 5mm x 5mm experimentieren.
    Die Analog-Ports des Leonardos lösen mit 10 Bit auf, es sollten also Werte zwischen 0 und 1024 geliefert werden.


    Hier ein paar Bilder meines Versuchaufbaus.



    Ohne Magneten in der Nähe pendelt sich der ausgelesene Wert am Arduino bei 510 ein, also ca die Hälfte von 1024


    Damit ich die Pole meiner Magneten nicht andauernd verwechsele, habe ich mir keine Papierstückchen dazwischen geklemmt. War tatsächlich gar nicht so einfach, weil diese kleinen Magneten ganz schön garstig sind :)


    Abhängig davon, welcher Pol nahe an den Hall-Sensor kommt, werden im Versuchsaufbau Werte zwischen 0 und 1002 ausgegeben.
    Imo sehr Vielversprechend :)