diff --git a/KerbalVR_Mod/KerbalVR/Assets/Input/actions.json b/KerbalVR_Mod/KerbalVR/Assets/Input/actions.json
index b188cf1f..9d08fc4e 100644
--- a/KerbalVR_Mod/KerbalVR/Assets/Input/actions.json
+++ b/KerbalVR_Mod/KerbalVR/Assets/Input/actions.json
@@ -61,6 +61,10 @@
"name": "/actions/flight/in/ThrottleStick",
"type": "vector2"
},
+ {
+ "name": "/actions/flight/in/InteractClick",
+ "type": "boolean"
+ },
{
"name": "/actions/EVA/in/Teleport",
"type": "boolean"
@@ -149,7 +153,8 @@
"/actions/flight/in/FlightStick": "Flight Stick",
"/actions/flight/in/YawStick": "Yaw Control",
"/actions/flight/in/ThrottleStick": "Throttle Control",
- "/actions/EVA/in/Teleport": "Teleport"
+ "/actions/EVA/in/Teleport": "Teleport",
+ "/actions/flight/in/InteractClick": "Interaction Click"
}
]
}
\ No newline at end of file
diff --git a/KerbalVR_Mod/KerbalVR/Assets/Input/bindings_knuckles.json b/KerbalVR_Mod/KerbalVR/Assets/Input/bindings_knuckles.json
index 4c5443d7..6513e059 100644
--- a/KerbalVR_Mod/KerbalVR/Assets/Input/bindings_knuckles.json
+++ b/KerbalVR_Mod/KerbalVR/Assets/Input/bindings_knuckles.json
@@ -70,15 +70,6 @@
"mode" : "force_sensor",
"path" : "/user/hand/right/input/grip"
},
- {
- "inputs" : {
- "click" : {
- "output" : "/actions/default/in/teleport"
- }
- },
- "mode" : "button",
- "path" : "/user/hand/left/input/trackpad"
- },
{
"inputs" : {
"click" : {
@@ -88,43 +79,6 @@
"mode" : "button",
"path" : "/user/hand/right/input/trigger"
},
- {
- "inputs" : {
- "click" : {
- "output" : "/actions/default/in/teleport"
- }
- },
- "mode" : "button",
- "path" : "/user/hand/right/input/trackpad"
- },
- {
- "inputs" : {
- "north" : {
- "output" : "/actions/default/in/teleport"
- }
- },
- "mode" : "dpad",
- "parameters" : {
- "deadzone_pct" : "25",
- "overlap_pct" : "30",
- "sub_mode" : "touch"
- },
- "path" : "/user/hand/left/input/thumbstick"
- },
- {
- "inputs" : {
- "north" : {
- "output" : "/actions/default/in/teleport"
- }
- },
- "mode" : "dpad",
- "parameters" : {
- "deadzone_pct" : "25",
- "overlap_pct" : "30",
- "sub_mode" : "touch"
- },
- "path" : "/user/hand/right/input/thumbstick"
- },
{
"inputs" : {
"east" : {
@@ -188,6 +142,10 @@
]
},
"/actions/editor" : {
+ "chords" : [],
+ "haptics" : [],
+ "poses" : [],
+ "skeleton" : [],
"sources" : [
{
"inputs" : {
@@ -210,6 +168,10 @@
]
},
"/actions/eva" : {
+ "chords" : [],
+ "haptics" : [],
+ "poses" : [],
+ "skeleton" : [],
"sources" : [
{
"inputs" : {
@@ -232,6 +194,10 @@
]
},
"/actions/flight" : {
+ "chords" : [],
+ "haptics" : [],
+ "poses" : [],
+ "skeleton" : [],
"sources" : [
{
"inputs" : {
@@ -271,6 +237,24 @@
"smooth_scroll_trackpad_aspect_ratio" : "0.6"
},
"path" : "/user/hand/left/input/trackpad"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/flight/in/interactclick"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/b"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/flight/in/interactclick"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/b"
}
]
},
diff --git a/KerbalVR_Mod/KerbalVR/Assets/Input/bindings_oculus_touch.json b/KerbalVR_Mod/KerbalVR/Assets/Input/bindings_oculus_touch.json
index 0bbaf55e..3e0ac854 100644
--- a/KerbalVR_Mod/KerbalVR/Assets/Input/bindings_oculus_touch.json
+++ b/KerbalVR_Mod/KerbalVR/Assets/Input/bindings_oculus_touch.json
@@ -1,231 +1,290 @@
{
- "app_key": "application.generated.unity.kerbalvr_unitysteamvr.exe",
- "bindings": {
- "/actions/buggy": {
- "chords": [],
- "poses": [],
- "haptics": [],
- "sources": [],
- "skeleton": []
- },
- "/actions/default": {
- "chords": [],
- "poses": [
- {
- "output": "/actions/default/in/pose",
- "path": "/user/hand/left/pose/raw"
- },
- {
- "output": "/actions/default/in/pose",
- "path": "/user/hand/right/pose/raw"
- }
- ],
- "haptics": [
- {
- "output": "/actions/default/out/haptic",
- "path": "/user/hand/left/output/haptic"
- },
- {
- "output": "/actions/default/out/haptic",
- "path": "/user/hand/right/output/haptic"
- }
- ],
- "sources": [
- {
- "path": "/user/hand/left/input/trigger",
- "mode": "button",
- "parameters": {},
- "inputs": {
- "click": {
- "output": "/actions/default/in/interactui"
- }
- }
- },
- {
- "path": "/user/hand/left/input/grip",
- "mode": "button",
- "parameters": {
- "click_activate_threshold": "0.8",
- "click_deactivate_threshold": "0.7"
- },
- "inputs": {
- "click": {
- "output": "/actions/default/in/grabgrip"
- }
- }
- },
- {
- "path": "/user/hand/right/input/trigger",
- "mode": "button",
- "parameters": {},
- "inputs": {
- "click": {
- "output": "/actions/default/in/interactui"
- }
- }
- },
- {
- "path": "/user/hand/left/input/joystick",
- "mode": "dpad",
- "parameters": {
- "deadzone_pct": "85",
- "overlap_pct": "0",
- "sub_mode": "touch"
- },
- "inputs": {
- "east": {
- "output": "/actions/default/in/snapturnright"
- },
- "west": {
- "output": "/actions/default/in/snapturnleft"
- }
- }
- },
- {
- "path": "/user/hand/right/input/joystick",
- "mode": "dpad",
- "parameters": {
- "deadzone_pct": "85",
- "overlap_pct": "0",
- "sub_mode": "touch"
- },
- "inputs": {
- "east": {
- "output": "/actions/default/in/snapturnright"
- },
- "west": {
- "output": "/actions/default/in/snapturnleft"
- }
- }
- },
- {
- "path": "/user/hand/right/input/grip",
- "mode": "button",
- "parameters": {
- "click_activate_threshold": "0.8",
- "click_deactivate_threshold": "0.7"
- },
- "inputs": {
- "click": {
- "output": "/actions/default/in/grabgrip"
- }
- }
- },
- {
- "path": "/user/hand/left/input/grip",
- "mode": "trigger",
- "parameters": {},
- "inputs": {
- "pull": {
- "output": "/actions/default/in/squeeze"
+ "action_manifest_version" : 0,
+ "alias_info" : {},
+ "app_key" : "application.generated.unity.kerbalvr_unitysteamvr.exe",
+ "bindings" : {
+ "/actions/buggy" : {
+ "chords" : [],
+ "haptics" : [],
+ "poses" : [],
+ "skeleton" : [],
+ "sources" : []
+ },
+ "/actions/default" : {
+ "chords" : [],
+ "haptics" : [
+ {
+ "output" : "/actions/default/out/haptic",
+ "path" : "/user/hand/left/output/haptic"
+ },
+ {
+ "output" : "/actions/default/out/haptic",
+ "path" : "/user/hand/right/output/haptic"
}
- }
- },
- {
- "path": "/user/hand/right/input/grip",
- "mode": "trigger",
- "parameters": {},
- "inputs": {
- "pull": {
- "output": "/actions/default/in/squeeze"
+ ],
+ "poses" : [
+ {
+ "output" : "/actions/default/in/pose",
+ "path" : "/user/hand/left/pose/raw"
+ },
+ {
+ "output" : "/actions/default/in/pose",
+ "path" : "/user/hand/right/pose/raw"
}
- }
- }
- ],
- "skeleton": [
- {
- "output": "/actions/default/in/skeletonlefthand",
- "path": "/user/hand/left/input/skeleton/left"
- },
- {
- "output": "/actions/default/in/skeletonrighthand",
- "path": "/user/hand/right/input/skeleton/right"
- }
- ]
- },
- "/actions/editor": {
- "chords": [],
- "poses": [],
- "haptics": [],
- "sources": [
- {
- "path": "/user/hand/left/input/joystick",
- "mode": "joystick",
- "parameters": {},
- "inputs": {
- "position": {
- "output": "/actions/editor/in/move"
+ ],
+ "skeleton" : [
+ {
+ "output" : "/actions/default/in/skeletonlefthand",
+ "path" : "/user/hand/left/input/skeleton/left"
+ },
+ {
+ "output" : "/actions/default/in/skeletonrighthand",
+ "path" : "/user/hand/right/input/skeleton/right"
}
- }
- },
- {
- "path": "/user/hand/right/input/joystick",
- "mode": "joystick",
- "parameters": {},
- "inputs": {
- "position": {
- "output": "/actions/editor/in/move"
+ ],
+ "sources" : [
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/interactui"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/trigger"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/grabgrip"
+ }
+ },
+ "mode" : "button",
+ "parameters" : {
+ "click_activate_threshold" : "0.8",
+ "click_deactivate_threshold" : "0.7"
+ },
+ "path" : "/user/hand/left/input/grip"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/interactui"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/trigger"
+ },
+ {
+ "inputs" : {
+ "north" : {
+ "output" : "/actions/default/in/teleport"
+ }
+ },
+ "mode" : "dpad",
+ "parameters" : {
+ "deadzone_pct" : "25",
+ "overlap_pct" : "30",
+ "sub_mode" : "touch"
+ },
+ "path" : "/user/hand/left/input/joystick"
+ },
+ {
+ "inputs" : {
+ "north" : {
+ "output" : "/actions/default/in/teleport"
+ }
+ },
+ "mode" : "dpad",
+ "parameters" : {
+ "deadzone_pct" : "25",
+ "overlap_pct" : "30",
+ "sub_mode" : "touch"
+ },
+ "path" : "/user/hand/right/input/joystick"
+ },
+ {
+ "inputs" : {
+ "east" : {
+ "output" : "/actions/default/in/snapturnright"
+ },
+ "west" : {
+ "output" : "/actions/default/in/snapturnleft"
+ }
+ },
+ "mode" : "dpad",
+ "parameters" : {
+ "deadzone_pct" : "85",
+ "overlap_pct" : "0",
+ "sub_mode" : "touch"
+ },
+ "path" : "/user/hand/left/input/joystick"
+ },
+ {
+ "inputs" : {
+ "east" : {
+ "output" : "/actions/default/in/snapturnright"
+ },
+ "west" : {
+ "output" : "/actions/default/in/snapturnleft"
+ }
+ },
+ "mode" : "dpad",
+ "parameters" : {
+ "deadzone_pct" : "85",
+ "overlap_pct" : "0",
+ "sub_mode" : "touch"
+ },
+ "path" : "/user/hand/right/input/joystick"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/grabgrip"
+ }
+ },
+ "mode" : "button",
+ "parameters" : {
+ "click_activate_threshold" : "0.8",
+ "click_deactivate_threshold" : "0.7"
+ },
+ "path" : "/user/hand/right/input/grip"
+ },
+ {
+ "inputs" : {
+ "pull" : {
+ "output" : "/actions/default/in/squeeze"
+ }
+ },
+ "mode" : "trigger",
+ "path" : "/user/hand/left/input/grip"
+ },
+ {
+ "inputs" : {
+ "pull" : {
+ "output" : "/actions/default/in/squeeze"
+ }
+ },
+ "mode" : "trigger",
+ "path" : "/user/hand/right/input/grip"
}
- }
- }
- ],
- "skeleton": []
- },
- "/actions/flight": {
- "chords": [],
- "poses": [],
- "haptics": [],
- "sources": [
- {
- "path": "/user/hand/right/input/joystick",
- "mode": "joystick",
- "parameters": {
- "deadzone_pct": "10",
- "invert": "y"
- },
- "inputs": {
- "position": {
- "output": "/actions/flight/in/flightstick"
+ ]
+ },
+ "/actions/editor" : {
+ "sources" : [
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/editor/in/move"
+ }
+ },
+ "mode" : "joystick",
+ "path" : "/user/hand/left/input/joystick"
+ },
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/editor/in/move"
+ }
+ },
+ "mode" : "joystick",
+ "path" : "/user/hand/right/input/joystick"
}
- }
- },
- {
- "path": "/user/hand/left/input/joystick",
- "mode": "joystick",
- "parameters": {
- "deadzone_pct": "10"
- },
- "inputs": {
- "position": {
- "output": "/actions/flight/in/yawstick"
+ ]
+ },
+ "/actions/eva" : {
+ "sources" : [
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/eva/in/teleport"
+ }
+ },
+ "mode" : "trigger",
+ "path" : "/user/hand/left/input/trigger"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/eva/in/teleport"
+ }
+ },
+ "mode" : "trigger",
+ "path" : "/user/hand/right/input/trigger"
}
- }
- },
- {
- "path": "/user/hand/left/input/trigger",
- "mode": "scalar_constant",
- "parameters": {
- "on/x": "0",
- "on/y": "1"
- },
- "inputs": {
- "value": {
- "output": "/actions/flight/in/throttlestick"
+ ]
+ },
+ "/actions/flight" : {
+ "sources" : [
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/flight/in/flightstick"
+ }
+ },
+ "mode" : "joystick",
+ "parameters" : {
+ "deadzone_pct" : "10",
+ "invert" : "y"
+ },
+ "path" : "/user/hand/right/input/joystick"
+ },
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/flight/in/yawstick"
+ }
+ },
+ "mode" : "joystick",
+ "parameters" : {
+ "deadzone_pct" : "10"
+ },
+ "path" : "/user/hand/left/input/joystick"
+ },
+ {
+ "inputs" : {
+ "value" : {
+ "output" : "/actions/flight/in/throttlestick"
+ }
+ },
+ "mode" : "scalar_constant",
+ "parameters" : {
+ "on/x" : "0",
+ "on/y" : "1"
+ },
+ "path" : "/user/hand/left/input/trigger"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/flight/in/interactclick"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/b"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/flight/in/interactclick"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/y"
}
- }
- }
- ],
- "skeleton": []
- },
- "/actions/platformer": {
- "chords": [],
- "poses": [],
- "haptics": [],
- "sources": [],
- "skeleton": []
- }
- },
- "controller_type": "oculus_touch",
- "description": "Default VR controls for use with Kerbal Space Program and the KerbalVR mod.",
- "name": "KerbalVR (Oculus Touch) Defaults"
-}
\ No newline at end of file
+ ]
+ },
+ "/actions/platformer" : {
+ "chords" : [],
+ "haptics" : [],
+ "poses" : [],
+ "skeleton" : [],
+ "sources" : []
+ }
+ },
+ "category" : "steamvr_input",
+ "controller_type" : "oculus_touch",
+ "description" : "Default VR controls for use with Kerbal Space Program and the KerbalVR mod.",
+ "name" : "KerbalVR (Oculus Touch) Defaults",
+ "options" : {},
+ "simulated_actions" : []
+}
diff --git a/KerbalVR_Mod/KerbalVR/Assets/Input/bindings_vive_controller.json b/KerbalVR_Mod/KerbalVR/Assets/Input/bindings_vive_controller.json
index 01772048..2977eaa1 100644
--- a/KerbalVR_Mod/KerbalVR/Assets/Input/bindings_vive_controller.json
+++ b/KerbalVR_Mod/KerbalVR/Assets/Input/bindings_vive_controller.json
@@ -1,110 +1,196 @@
{
- "bindings": {
- "/actions/default": {
- "chords": [],
- "poses": [
- {
- "output": "/actions/default/in/pose",
- "path": "/user/hand/left/pose/raw"
- },
- {
- "output": "/actions/default/in/pose",
- "path": "/user/hand/right/pose/raw"
- }
- ],
- "haptics": [
- {
- "output": "/actions/default/out/haptic",
- "path": "/user/hand/left/output/haptic"
- },
- {
- "output": "/actions/default/out/haptic",
- "path": "/user/hand/right/output/haptic"
- }
- ],
- "sources": [
- {
- "path": "/user/hand/left/input/trigger",
- "mode": "button",
- "parameters": {},
- "inputs": {
- "click": {
- "output": "/actions/default/in/interactui"
+ "action_manifest_version" : 0,
+ "alias_info" : {},
+ "app_key" : "application.generated.unity.kerbalvr_unitysteamvr.exe",
+ "bindings" : {
+ "/actions/default" : {
+ "chords" : [],
+ "haptics" : [
+ {
+ "output" : "/actions/default/out/haptic",
+ "path" : "/user/hand/left/output/haptic"
+ },
+ {
+ "output" : "/actions/default/out/haptic",
+ "path" : "/user/hand/right/output/haptic"
}
- }
- },
- {
- "path": "/user/hand/left/input/grip",
- "mode": "button",
- "parameters": {
- "click_activate_threshold": "0.05",
- "click_deactivate_threshold": "0",
- "force_input": "force"
- },
- "inputs": {
- "click": {
- "output": "/actions/default/in/grabgrip"
+ ],
+ "poses" : [
+ {
+ "output" : "/actions/default/in/pose",
+ "path" : "/user/hand/left/pose/raw"
+ },
+ {
+ "output" : "/actions/default/in/pose",
+ "path" : "/user/hand/right/pose/raw"
}
- }
- },
- {
- "path": "/user/hand/right/input/trigger",
- "mode": "button",
- "parameters": {},
- "inputs": {
- "click": {
- "output": "/actions/default/in/interactui"
+ ],
+ "skeleton" : [
+ {
+ "output" : "/actions/default/in/skeletonlefthand",
+ "path" : "/user/hand/left/input/skeleton/left"
+ },
+ {
+ "output" : "/actions/default/in/skeletonrighthand",
+ "path" : "/user/hand/right/input/skeleton/right"
}
- }
- },
- {
- "path": "/user/hand/right/input/grip",
- "mode": "button",
- "parameters": {
- "click_activate_threshold": "0.05",
- "click_deactivate_threshold": "0",
- "force_input": "force"
- },
- "inputs": {
- "click": {
- "output": "/actions/default/in/grabgrip"
+ ],
+ "sources" : [
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/interactui"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/trigger"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/grabgrip"
+ }
+ },
+ "mode" : "button",
+ "parameters" : {
+ "click_activate_threshold" : "0.05",
+ "click_deactivate_threshold" : "0",
+ "force_input" : "force"
+ },
+ "path" : "/user/hand/left/input/grip"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/interactui"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/trigger"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/grabgrip"
+ }
+ },
+ "mode" : "button",
+ "parameters" : {
+ "click_activate_threshold" : "0.05",
+ "click_deactivate_threshold" : "0",
+ "force_input" : "force"
+ },
+ "path" : "/user/hand/right/input/grip"
+ },
+ {
+ "inputs" : {
+ "pull" : {
+ "output" : "/actions/default/in/squeeze"
+ }
+ },
+ "mode" : "trigger",
+ "path" : "/user/hand/left/input/trigger"
+ },
+ {
+ "inputs" : {
+ "pull" : {
+ "output" : "/actions/default/in/squeeze"
+ }
+ },
+ "mode" : "trigger",
+ "path" : "/user/hand/right/input/trigger"
}
- }
- },
- {
- "path": "/user/hand/left/input/trigger",
- "mode": "trigger",
- "parameters": {},
- "inputs": {
- "pull": {
- "output": "/actions/default/in/squeeze"
+ ]
+ },
+ "/actions/editor" : {
+ "sources" : [
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/editor/in/move"
+ }
+ },
+ "mode" : "trackpad",
+ "path" : "/user/hand/left/input/trackpad"
+ },
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/editor/in/move"
+ }
+ },
+ "mode" : "trackpad",
+ "path" : "/user/hand/right/input/trackpad"
}
- }
- },
- {
- "path": "/user/hand/right/input/trigger",
- "mode": "trigger",
- "parameters": {},
- "inputs": {
- "pull": {
- "output": "/actions/default/in/squeeze"
+ ]
+ },
+ "/actions/eva" : {
+ "sources" : [
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/eva/in/teleport"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/trackpad"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/eva/in/teleport"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/trackpad"
}
- }
- }
- ],
- "skeleton": [
- {
- "output": "/actions/default/in/skeletonlefthand",
- "path": "/user/hand/left/input/skeleton/left"
- },
- {
- "output": "/actions/default/in/skeletonrighthand",
- "path": "/user/hand/right/input/skeleton/right"
- }
- ]
- }
- },
- "controller_type": "vive_controller",
- "description": "VR controls for use with the KerbalVR mod in Kerbal Space Program",
- "name": "KerbalVR (Vive Controller) Defaults"
-}
\ No newline at end of file
+ ]
+ },
+ "/actions/flight" : {
+ "sources" : [
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/flight/in/flightstick"
+ }
+ },
+ "mode" : "trackpad",
+ "path" : "/user/hand/right/input/trackpad"
+ },
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/flight/in/yawstick"
+ }
+ },
+ "mode" : "trackpad",
+ "path" : "/user/hand/left/input/trackpad"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/flight/in/interactclick"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/application_menu"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/flight/in/interactclick"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/application_menu"
+ }
+ ]
+ }
+ },
+ "category" : "steamvr_input",
+ "controller_type" : "vive_controller",
+ "description" : "VR controls for use with the KerbalVR mod in Kerbal Space Program",
+ "name" : "KerbalVR (Vive Controller) Defaults",
+ "options" : {},
+ "simulated_actions" : []
+}
diff --git a/KerbalVR_Mod/KerbalVR/InteractionSystem/KerbalVR_Hand.cs b/KerbalVR_Mod/KerbalVR/InteractionSystem/KerbalVR_Hand.cs
index c27e9272..68f075a7 100644
--- a/KerbalVR_Mod/KerbalVR/InteractionSystem/KerbalVR_Hand.cs
+++ b/KerbalVR_Mod/KerbalVR/InteractionSystem/KerbalVR_Hand.cs
@@ -1,5 +1,6 @@
using KerbalVR.InternalModules;
using System;
+using System.Collections.Generic;
using UnityEngine;
using Valve.VR;
@@ -49,9 +50,17 @@ public class Hand : MonoBehaviour {
protected InteractableInternalModule hoveredObject;
protected InteractableInternalModule heldObject;
protected SteamVR_Action_Boolean actionGrab;
+
+ // interacting with mouse-clickable objects
+ protected FingertipCollider fingertipInteraction;
+ protected SteamVR_Action_Boolean actionClick;
#endregion
+ ///
+ /// Creates the render models for the hands; sets up behavior scripts on the hands,
+ /// including colliders for interacting with objects.
+ ///
public void Initialize() {
// verify members are set correctly
if (handType != SteamVR_Input_Sources.LeftHand && handType != SteamVR_Input_Sources.RightHand) {
@@ -67,7 +76,8 @@ public void Initialize() {
DontDestroyOnLoad(handObject);
// cache the hand renderers
- string renderModelPath = (handType == SteamVR_Input_Sources.LeftHand) ? "slim_l/vr_glove_right_slim" : "slim_r/vr_glove_right_slim";
+ string renderModelParentPath = (handType == SteamVR_Input_Sources.LeftHand) ? "slim_l" : "slim_r";
+ string renderModelPath = renderModelParentPath + "/vr_glove_right_slim";
Transform handSkin = handObject.transform.Find(renderModelPath);
handRenderer = handSkin.gameObject.GetComponent();
handRenderer.enabled = false;
@@ -104,10 +114,18 @@ public void Initialize() {
handRigidbody.useGravity = false;
handRigidbody.isKinematic = true;
+ // add fingertip collider for "mouse clicks"
+ string fingertipTransformPath = renderModelParentPath + "/Root/wrist_r/finger_index_meta_r/finger_index_0_r/finger_index_1_r/finger_index_2_r/finger_index_r_end";
+ Transform fingertipTransform = handObject.transform.Find(fingertipTransformPath);
+ fingertipInteraction = fingertipTransform.gameObject.AddComponent();
+
// set up actions
actionGrab = SteamVR_Input.GetBooleanAction("default", "GrabGrip");
actionGrab[handType].onChange += OnChangeGrab;
+ actionClick = SteamVR_Input.GetBooleanAction("flight", "InteractClick");
+ actionClick[handType].onChange += OnChangeInteractClick;
+
#if DEBUG
GameObject gizmo = Utils.CreateGizmo();
gizmo.transform.SetParent(this.transform);
@@ -122,6 +140,12 @@ public void Initialize() {
#endif
}
+ ///
+ /// Handle grabbing Interactable objects
+ ///
+ /// SteamVR action that triggered this callback
+ /// Hand type that triggered this callback
+ /// New state of this action
protected void OnChangeGrab(SteamVR_Action_Boolean fromAction, SteamVR_Input_Sources fromSource, bool newState) {
if (newState) {
if (hoveredObject != null) {
@@ -140,6 +164,25 @@ protected void OnChangeGrab(SteamVR_Action_Boolean fromAction, SteamVR_Input_Sou
}
}
+ ///
+ /// Handle interacting with mouse-clickable objects (like RPM props)
+ ///
+ /// SteamVR action that triggered this callback
+ /// Hand type that triggered this callback
+ /// New state of this action
+ protected void OnChangeInteractClick(SteamVR_Action_Boolean fromAction, SteamVR_Input_Sources fromSource, bool newState) {
+ if (newState) {
+ foreach (GameObject go in fingertipInteraction.CollidedGameObjects) {
+ go.SendMessage("OnMouseDown");
+ }
+ }
+ else {
+ foreach (GameObject go in fingertipInteraction.CollidedGameObjects) {
+ go.SendMessage("OnMouseUp");
+ }
+ }
+ }
+
protected void Update() {
// should we render the hands in the current scene?
bool isRendering = false;
@@ -243,5 +286,42 @@ protected void OnTriggerExit(Collider other) {
}
}
}
+
+
+ ///
+ /// A helper class to collect objects that collide with the index fingertip.
+ ///
+ protected class FingertipCollider : MonoBehaviour {
+
+ #region Properties
+ public List CollidedGameObjects { get; protected set; } = new List();
+ #endregion
+
+ #region Private Members
+ protected SphereCollider fingertipCollider;
+ protected Rigidbody fingertipRigidbody;
+ #endregion
+
+ protected void Awake() {
+ fingertipRigidbody = this.gameObject.AddComponent();
+ fingertipRigidbody.isKinematic = true;
+ fingertipCollider = this.gameObject.AddComponent();
+ fingertipCollider.isTrigger = true;
+ fingertipCollider.radius = 0.006f;
+ }
+
+ protected void OnTriggerEnter(Collider other) {
+ // only interact with layer 20 (Internal Space) objects
+ if (other.gameObject.layer == 20 && !CollidedGameObjects.Contains(other.gameObject)) {
+ CollidedGameObjects.Add(other.gameObject);
+ }
+ }
+
+ protected void OnTriggerExit(Collider other) {
+ if (CollidedGameObjects.Contains(other.gameObject)) {
+ CollidedGameObjects.Remove(other.gameObject);
+ }
+ }
+ }
}
}
diff --git a/KerbalVR_Mod/KerbalVR/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_flight.cs b/KerbalVR_Mod/KerbalVR/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_flight.cs
index 663b50f7..cf36a343 100644
--- a/KerbalVR_Mod/KerbalVR/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_flight.cs
+++ b/KerbalVR_Mod/KerbalVR/SteamVR_Input/ActionSetClasses/SteamVR_Input_ActionSet_flight.cs
@@ -40,5 +40,13 @@ public virtual SteamVR_Action_Vector2 ThrottleStick
return SteamVR_Actions.flight_ThrottleStick;
}
}
+
+ public virtual SteamVR_Action_Boolean InteractClick
+ {
+ get
+ {
+ return SteamVR_Actions.flight_InteractClick;
+ }
+ }
}
}
diff --git a/KerbalVR_Mod/KerbalVR/SteamVR_Input/SteamVR_Input_Actions.cs b/KerbalVR_Mod/KerbalVR/SteamVR_Input/SteamVR_Input_Actions.cs
index cc0380ad..14172bbf 100644
--- a/KerbalVR_Mod/KerbalVR/SteamVR_Input/SteamVR_Input_Actions.cs
+++ b/KerbalVR_Mod/KerbalVR/SteamVR_Input/SteamVR_Input_Actions.cs
@@ -45,6 +45,8 @@ public partial class SteamVR_Actions
private static SteamVR_Action_Vector2 p_flight_ThrottleStick;
+ private static SteamVR_Action_Boolean p_flight_InteractClick;
+
private static SteamVR_Action_Boolean p_eVA_Teleport;
public static SteamVR_Action_Boolean default_InteractUI
@@ -159,6 +161,14 @@ public static SteamVR_Action_Vector2 flight_ThrottleStick
}
}
+ public static SteamVR_Action_Boolean flight_InteractClick
+ {
+ get
+ {
+ return SteamVR_Actions.p_flight_InteractClick.GetCopy();
+ }
+ }
+
public static SteamVR_Action_Boolean eVA_Teleport
{
get
@@ -184,6 +194,7 @@ private static void InitializeActionArrays()
SteamVR_Actions.flight_FlightStick,
SteamVR_Actions.flight_YawStick,
SteamVR_Actions.flight_ThrottleStick,
+ SteamVR_Actions.flight_InteractClick,
SteamVR_Actions.eVA_Teleport};
Valve.VR.SteamVR_Input.actionsIn = new Valve.VR.ISteamVR_Action_In[] {
SteamVR_Actions.default_InteractUI,
@@ -199,6 +210,7 @@ private static void InitializeActionArrays()
SteamVR_Actions.flight_FlightStick,
SteamVR_Actions.flight_YawStick,
SteamVR_Actions.flight_ThrottleStick,
+ SteamVR_Actions.flight_InteractClick,
SteamVR_Actions.eVA_Teleport};
Valve.VR.SteamVR_Input.actionsOut = new Valve.VR.ISteamVR_Action_Out[] {
SteamVR_Actions.default_Haptic};
@@ -212,6 +224,7 @@ private static void InitializeActionArrays()
SteamVR_Actions.default_HeadsetOnHead,
SteamVR_Actions.default_SnapTurnLeft,
SteamVR_Actions.default_SnapTurnRight,
+ SteamVR_Actions.flight_InteractClick,
SteamVR_Actions.eVA_Teleport};
Valve.VR.SteamVR_Input.actionsSingle = new Valve.VR.SteamVR_Action_Single[] {
SteamVR_Actions.default_Squeeze};
@@ -235,6 +248,7 @@ private static void InitializeActionArrays()
SteamVR_Actions.flight_FlightStick,
SteamVR_Actions.flight_YawStick,
SteamVR_Actions.flight_ThrottleStick,
+ SteamVR_Actions.flight_InteractClick,
SteamVR_Actions.eVA_Teleport};
}
@@ -254,6 +268,7 @@ private static void PreInitActions()
SteamVR_Actions.p_flight_FlightStick = ((SteamVR_Action_Vector2)(SteamVR_Action.Create("/actions/flight/in/FlightStick")));
SteamVR_Actions.p_flight_YawStick = ((SteamVR_Action_Vector2)(SteamVR_Action.Create("/actions/flight/in/YawStick")));
SteamVR_Actions.p_flight_ThrottleStick = ((SteamVR_Action_Vector2)(SteamVR_Action.Create("/actions/flight/in/ThrottleStick")));
+ SteamVR_Actions.p_flight_InteractClick = ((SteamVR_Action_Boolean)(SteamVR_Action.Create("/actions/flight/in/InteractClick")));
SteamVR_Actions.p_eVA_Teleport = ((SteamVR_Action_Boolean)(SteamVR_Action.Create("/actions/EVA/in/Teleport")));
}
}
diff --git a/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/actions.json b/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/actions.json
index b188cf1f..9d08fc4e 100644
--- a/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/actions.json
+++ b/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/actions.json
@@ -61,6 +61,10 @@
"name": "/actions/flight/in/ThrottleStick",
"type": "vector2"
},
+ {
+ "name": "/actions/flight/in/InteractClick",
+ "type": "boolean"
+ },
{
"name": "/actions/EVA/in/Teleport",
"type": "boolean"
@@ -149,7 +153,8 @@
"/actions/flight/in/FlightStick": "Flight Stick",
"/actions/flight/in/YawStick": "Yaw Control",
"/actions/flight/in/ThrottleStick": "Throttle Control",
- "/actions/EVA/in/Teleport": "Teleport"
+ "/actions/EVA/in/Teleport": "Teleport",
+ "/actions/flight/in/InteractClick": "Interaction Click"
}
]
}
\ No newline at end of file
diff --git a/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/bindings_knuckles.json b/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/bindings_knuckles.json
index 4c5443d7..6513e059 100644
--- a/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/bindings_knuckles.json
+++ b/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/bindings_knuckles.json
@@ -70,15 +70,6 @@
"mode" : "force_sensor",
"path" : "/user/hand/right/input/grip"
},
- {
- "inputs" : {
- "click" : {
- "output" : "/actions/default/in/teleport"
- }
- },
- "mode" : "button",
- "path" : "/user/hand/left/input/trackpad"
- },
{
"inputs" : {
"click" : {
@@ -88,43 +79,6 @@
"mode" : "button",
"path" : "/user/hand/right/input/trigger"
},
- {
- "inputs" : {
- "click" : {
- "output" : "/actions/default/in/teleport"
- }
- },
- "mode" : "button",
- "path" : "/user/hand/right/input/trackpad"
- },
- {
- "inputs" : {
- "north" : {
- "output" : "/actions/default/in/teleport"
- }
- },
- "mode" : "dpad",
- "parameters" : {
- "deadzone_pct" : "25",
- "overlap_pct" : "30",
- "sub_mode" : "touch"
- },
- "path" : "/user/hand/left/input/thumbstick"
- },
- {
- "inputs" : {
- "north" : {
- "output" : "/actions/default/in/teleport"
- }
- },
- "mode" : "dpad",
- "parameters" : {
- "deadzone_pct" : "25",
- "overlap_pct" : "30",
- "sub_mode" : "touch"
- },
- "path" : "/user/hand/right/input/thumbstick"
- },
{
"inputs" : {
"east" : {
@@ -188,6 +142,10 @@
]
},
"/actions/editor" : {
+ "chords" : [],
+ "haptics" : [],
+ "poses" : [],
+ "skeleton" : [],
"sources" : [
{
"inputs" : {
@@ -210,6 +168,10 @@
]
},
"/actions/eva" : {
+ "chords" : [],
+ "haptics" : [],
+ "poses" : [],
+ "skeleton" : [],
"sources" : [
{
"inputs" : {
@@ -232,6 +194,10 @@
]
},
"/actions/flight" : {
+ "chords" : [],
+ "haptics" : [],
+ "poses" : [],
+ "skeleton" : [],
"sources" : [
{
"inputs" : {
@@ -271,6 +237,24 @@
"smooth_scroll_trackpad_aspect_ratio" : "0.6"
},
"path" : "/user/hand/left/input/trackpad"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/flight/in/interactclick"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/b"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/flight/in/interactclick"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/b"
}
]
},
diff --git a/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/bindings_oculus_touch.json b/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/bindings_oculus_touch.json
index 0bbaf55e..3e0ac854 100644
--- a/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/bindings_oculus_touch.json
+++ b/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/bindings_oculus_touch.json
@@ -1,231 +1,290 @@
{
- "app_key": "application.generated.unity.kerbalvr_unitysteamvr.exe",
- "bindings": {
- "/actions/buggy": {
- "chords": [],
- "poses": [],
- "haptics": [],
- "sources": [],
- "skeleton": []
- },
- "/actions/default": {
- "chords": [],
- "poses": [
- {
- "output": "/actions/default/in/pose",
- "path": "/user/hand/left/pose/raw"
- },
- {
- "output": "/actions/default/in/pose",
- "path": "/user/hand/right/pose/raw"
- }
- ],
- "haptics": [
- {
- "output": "/actions/default/out/haptic",
- "path": "/user/hand/left/output/haptic"
- },
- {
- "output": "/actions/default/out/haptic",
- "path": "/user/hand/right/output/haptic"
- }
- ],
- "sources": [
- {
- "path": "/user/hand/left/input/trigger",
- "mode": "button",
- "parameters": {},
- "inputs": {
- "click": {
- "output": "/actions/default/in/interactui"
- }
- }
- },
- {
- "path": "/user/hand/left/input/grip",
- "mode": "button",
- "parameters": {
- "click_activate_threshold": "0.8",
- "click_deactivate_threshold": "0.7"
- },
- "inputs": {
- "click": {
- "output": "/actions/default/in/grabgrip"
- }
- }
- },
- {
- "path": "/user/hand/right/input/trigger",
- "mode": "button",
- "parameters": {},
- "inputs": {
- "click": {
- "output": "/actions/default/in/interactui"
- }
- }
- },
- {
- "path": "/user/hand/left/input/joystick",
- "mode": "dpad",
- "parameters": {
- "deadzone_pct": "85",
- "overlap_pct": "0",
- "sub_mode": "touch"
- },
- "inputs": {
- "east": {
- "output": "/actions/default/in/snapturnright"
- },
- "west": {
- "output": "/actions/default/in/snapturnleft"
- }
- }
- },
- {
- "path": "/user/hand/right/input/joystick",
- "mode": "dpad",
- "parameters": {
- "deadzone_pct": "85",
- "overlap_pct": "0",
- "sub_mode": "touch"
- },
- "inputs": {
- "east": {
- "output": "/actions/default/in/snapturnright"
- },
- "west": {
- "output": "/actions/default/in/snapturnleft"
- }
- }
- },
- {
- "path": "/user/hand/right/input/grip",
- "mode": "button",
- "parameters": {
- "click_activate_threshold": "0.8",
- "click_deactivate_threshold": "0.7"
- },
- "inputs": {
- "click": {
- "output": "/actions/default/in/grabgrip"
- }
- }
- },
- {
- "path": "/user/hand/left/input/grip",
- "mode": "trigger",
- "parameters": {},
- "inputs": {
- "pull": {
- "output": "/actions/default/in/squeeze"
+ "action_manifest_version" : 0,
+ "alias_info" : {},
+ "app_key" : "application.generated.unity.kerbalvr_unitysteamvr.exe",
+ "bindings" : {
+ "/actions/buggy" : {
+ "chords" : [],
+ "haptics" : [],
+ "poses" : [],
+ "skeleton" : [],
+ "sources" : []
+ },
+ "/actions/default" : {
+ "chords" : [],
+ "haptics" : [
+ {
+ "output" : "/actions/default/out/haptic",
+ "path" : "/user/hand/left/output/haptic"
+ },
+ {
+ "output" : "/actions/default/out/haptic",
+ "path" : "/user/hand/right/output/haptic"
}
- }
- },
- {
- "path": "/user/hand/right/input/grip",
- "mode": "trigger",
- "parameters": {},
- "inputs": {
- "pull": {
- "output": "/actions/default/in/squeeze"
+ ],
+ "poses" : [
+ {
+ "output" : "/actions/default/in/pose",
+ "path" : "/user/hand/left/pose/raw"
+ },
+ {
+ "output" : "/actions/default/in/pose",
+ "path" : "/user/hand/right/pose/raw"
}
- }
- }
- ],
- "skeleton": [
- {
- "output": "/actions/default/in/skeletonlefthand",
- "path": "/user/hand/left/input/skeleton/left"
- },
- {
- "output": "/actions/default/in/skeletonrighthand",
- "path": "/user/hand/right/input/skeleton/right"
- }
- ]
- },
- "/actions/editor": {
- "chords": [],
- "poses": [],
- "haptics": [],
- "sources": [
- {
- "path": "/user/hand/left/input/joystick",
- "mode": "joystick",
- "parameters": {},
- "inputs": {
- "position": {
- "output": "/actions/editor/in/move"
+ ],
+ "skeleton" : [
+ {
+ "output" : "/actions/default/in/skeletonlefthand",
+ "path" : "/user/hand/left/input/skeleton/left"
+ },
+ {
+ "output" : "/actions/default/in/skeletonrighthand",
+ "path" : "/user/hand/right/input/skeleton/right"
}
- }
- },
- {
- "path": "/user/hand/right/input/joystick",
- "mode": "joystick",
- "parameters": {},
- "inputs": {
- "position": {
- "output": "/actions/editor/in/move"
+ ],
+ "sources" : [
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/interactui"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/trigger"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/grabgrip"
+ }
+ },
+ "mode" : "button",
+ "parameters" : {
+ "click_activate_threshold" : "0.8",
+ "click_deactivate_threshold" : "0.7"
+ },
+ "path" : "/user/hand/left/input/grip"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/interactui"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/trigger"
+ },
+ {
+ "inputs" : {
+ "north" : {
+ "output" : "/actions/default/in/teleport"
+ }
+ },
+ "mode" : "dpad",
+ "parameters" : {
+ "deadzone_pct" : "25",
+ "overlap_pct" : "30",
+ "sub_mode" : "touch"
+ },
+ "path" : "/user/hand/left/input/joystick"
+ },
+ {
+ "inputs" : {
+ "north" : {
+ "output" : "/actions/default/in/teleport"
+ }
+ },
+ "mode" : "dpad",
+ "parameters" : {
+ "deadzone_pct" : "25",
+ "overlap_pct" : "30",
+ "sub_mode" : "touch"
+ },
+ "path" : "/user/hand/right/input/joystick"
+ },
+ {
+ "inputs" : {
+ "east" : {
+ "output" : "/actions/default/in/snapturnright"
+ },
+ "west" : {
+ "output" : "/actions/default/in/snapturnleft"
+ }
+ },
+ "mode" : "dpad",
+ "parameters" : {
+ "deadzone_pct" : "85",
+ "overlap_pct" : "0",
+ "sub_mode" : "touch"
+ },
+ "path" : "/user/hand/left/input/joystick"
+ },
+ {
+ "inputs" : {
+ "east" : {
+ "output" : "/actions/default/in/snapturnright"
+ },
+ "west" : {
+ "output" : "/actions/default/in/snapturnleft"
+ }
+ },
+ "mode" : "dpad",
+ "parameters" : {
+ "deadzone_pct" : "85",
+ "overlap_pct" : "0",
+ "sub_mode" : "touch"
+ },
+ "path" : "/user/hand/right/input/joystick"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/grabgrip"
+ }
+ },
+ "mode" : "button",
+ "parameters" : {
+ "click_activate_threshold" : "0.8",
+ "click_deactivate_threshold" : "0.7"
+ },
+ "path" : "/user/hand/right/input/grip"
+ },
+ {
+ "inputs" : {
+ "pull" : {
+ "output" : "/actions/default/in/squeeze"
+ }
+ },
+ "mode" : "trigger",
+ "path" : "/user/hand/left/input/grip"
+ },
+ {
+ "inputs" : {
+ "pull" : {
+ "output" : "/actions/default/in/squeeze"
+ }
+ },
+ "mode" : "trigger",
+ "path" : "/user/hand/right/input/grip"
}
- }
- }
- ],
- "skeleton": []
- },
- "/actions/flight": {
- "chords": [],
- "poses": [],
- "haptics": [],
- "sources": [
- {
- "path": "/user/hand/right/input/joystick",
- "mode": "joystick",
- "parameters": {
- "deadzone_pct": "10",
- "invert": "y"
- },
- "inputs": {
- "position": {
- "output": "/actions/flight/in/flightstick"
+ ]
+ },
+ "/actions/editor" : {
+ "sources" : [
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/editor/in/move"
+ }
+ },
+ "mode" : "joystick",
+ "path" : "/user/hand/left/input/joystick"
+ },
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/editor/in/move"
+ }
+ },
+ "mode" : "joystick",
+ "path" : "/user/hand/right/input/joystick"
}
- }
- },
- {
- "path": "/user/hand/left/input/joystick",
- "mode": "joystick",
- "parameters": {
- "deadzone_pct": "10"
- },
- "inputs": {
- "position": {
- "output": "/actions/flight/in/yawstick"
+ ]
+ },
+ "/actions/eva" : {
+ "sources" : [
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/eva/in/teleport"
+ }
+ },
+ "mode" : "trigger",
+ "path" : "/user/hand/left/input/trigger"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/eva/in/teleport"
+ }
+ },
+ "mode" : "trigger",
+ "path" : "/user/hand/right/input/trigger"
}
- }
- },
- {
- "path": "/user/hand/left/input/trigger",
- "mode": "scalar_constant",
- "parameters": {
- "on/x": "0",
- "on/y": "1"
- },
- "inputs": {
- "value": {
- "output": "/actions/flight/in/throttlestick"
+ ]
+ },
+ "/actions/flight" : {
+ "sources" : [
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/flight/in/flightstick"
+ }
+ },
+ "mode" : "joystick",
+ "parameters" : {
+ "deadzone_pct" : "10",
+ "invert" : "y"
+ },
+ "path" : "/user/hand/right/input/joystick"
+ },
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/flight/in/yawstick"
+ }
+ },
+ "mode" : "joystick",
+ "parameters" : {
+ "deadzone_pct" : "10"
+ },
+ "path" : "/user/hand/left/input/joystick"
+ },
+ {
+ "inputs" : {
+ "value" : {
+ "output" : "/actions/flight/in/throttlestick"
+ }
+ },
+ "mode" : "scalar_constant",
+ "parameters" : {
+ "on/x" : "0",
+ "on/y" : "1"
+ },
+ "path" : "/user/hand/left/input/trigger"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/flight/in/interactclick"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/b"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/flight/in/interactclick"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/y"
}
- }
- }
- ],
- "skeleton": []
- },
- "/actions/platformer": {
- "chords": [],
- "poses": [],
- "haptics": [],
- "sources": [],
- "skeleton": []
- }
- },
- "controller_type": "oculus_touch",
- "description": "Default VR controls for use with Kerbal Space Program and the KerbalVR mod.",
- "name": "KerbalVR (Oculus Touch) Defaults"
-}
\ No newline at end of file
+ ]
+ },
+ "/actions/platformer" : {
+ "chords" : [],
+ "haptics" : [],
+ "poses" : [],
+ "skeleton" : [],
+ "sources" : []
+ }
+ },
+ "category" : "steamvr_input",
+ "controller_type" : "oculus_touch",
+ "description" : "Default VR controls for use with Kerbal Space Program and the KerbalVR mod.",
+ "name" : "KerbalVR (Oculus Touch) Defaults",
+ "options" : {},
+ "simulated_actions" : []
+}
diff --git a/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/bindings_vive_controller.json b/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/bindings_vive_controller.json
index 01772048..2977eaa1 100644
--- a/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/bindings_vive_controller.json
+++ b/KerbalVR_UnitySteamVR/Assets/StreamingAssets/SteamVR/bindings_vive_controller.json
@@ -1,110 +1,196 @@
{
- "bindings": {
- "/actions/default": {
- "chords": [],
- "poses": [
- {
- "output": "/actions/default/in/pose",
- "path": "/user/hand/left/pose/raw"
- },
- {
- "output": "/actions/default/in/pose",
- "path": "/user/hand/right/pose/raw"
- }
- ],
- "haptics": [
- {
- "output": "/actions/default/out/haptic",
- "path": "/user/hand/left/output/haptic"
- },
- {
- "output": "/actions/default/out/haptic",
- "path": "/user/hand/right/output/haptic"
- }
- ],
- "sources": [
- {
- "path": "/user/hand/left/input/trigger",
- "mode": "button",
- "parameters": {},
- "inputs": {
- "click": {
- "output": "/actions/default/in/interactui"
+ "action_manifest_version" : 0,
+ "alias_info" : {},
+ "app_key" : "application.generated.unity.kerbalvr_unitysteamvr.exe",
+ "bindings" : {
+ "/actions/default" : {
+ "chords" : [],
+ "haptics" : [
+ {
+ "output" : "/actions/default/out/haptic",
+ "path" : "/user/hand/left/output/haptic"
+ },
+ {
+ "output" : "/actions/default/out/haptic",
+ "path" : "/user/hand/right/output/haptic"
}
- }
- },
- {
- "path": "/user/hand/left/input/grip",
- "mode": "button",
- "parameters": {
- "click_activate_threshold": "0.05",
- "click_deactivate_threshold": "0",
- "force_input": "force"
- },
- "inputs": {
- "click": {
- "output": "/actions/default/in/grabgrip"
+ ],
+ "poses" : [
+ {
+ "output" : "/actions/default/in/pose",
+ "path" : "/user/hand/left/pose/raw"
+ },
+ {
+ "output" : "/actions/default/in/pose",
+ "path" : "/user/hand/right/pose/raw"
}
- }
- },
- {
- "path": "/user/hand/right/input/trigger",
- "mode": "button",
- "parameters": {},
- "inputs": {
- "click": {
- "output": "/actions/default/in/interactui"
+ ],
+ "skeleton" : [
+ {
+ "output" : "/actions/default/in/skeletonlefthand",
+ "path" : "/user/hand/left/input/skeleton/left"
+ },
+ {
+ "output" : "/actions/default/in/skeletonrighthand",
+ "path" : "/user/hand/right/input/skeleton/right"
}
- }
- },
- {
- "path": "/user/hand/right/input/grip",
- "mode": "button",
- "parameters": {
- "click_activate_threshold": "0.05",
- "click_deactivate_threshold": "0",
- "force_input": "force"
- },
- "inputs": {
- "click": {
- "output": "/actions/default/in/grabgrip"
+ ],
+ "sources" : [
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/interactui"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/trigger"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/grabgrip"
+ }
+ },
+ "mode" : "button",
+ "parameters" : {
+ "click_activate_threshold" : "0.05",
+ "click_deactivate_threshold" : "0",
+ "force_input" : "force"
+ },
+ "path" : "/user/hand/left/input/grip"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/interactui"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/trigger"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/default/in/grabgrip"
+ }
+ },
+ "mode" : "button",
+ "parameters" : {
+ "click_activate_threshold" : "0.05",
+ "click_deactivate_threshold" : "0",
+ "force_input" : "force"
+ },
+ "path" : "/user/hand/right/input/grip"
+ },
+ {
+ "inputs" : {
+ "pull" : {
+ "output" : "/actions/default/in/squeeze"
+ }
+ },
+ "mode" : "trigger",
+ "path" : "/user/hand/left/input/trigger"
+ },
+ {
+ "inputs" : {
+ "pull" : {
+ "output" : "/actions/default/in/squeeze"
+ }
+ },
+ "mode" : "trigger",
+ "path" : "/user/hand/right/input/trigger"
}
- }
- },
- {
- "path": "/user/hand/left/input/trigger",
- "mode": "trigger",
- "parameters": {},
- "inputs": {
- "pull": {
- "output": "/actions/default/in/squeeze"
+ ]
+ },
+ "/actions/editor" : {
+ "sources" : [
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/editor/in/move"
+ }
+ },
+ "mode" : "trackpad",
+ "path" : "/user/hand/left/input/trackpad"
+ },
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/editor/in/move"
+ }
+ },
+ "mode" : "trackpad",
+ "path" : "/user/hand/right/input/trackpad"
}
- }
- },
- {
- "path": "/user/hand/right/input/trigger",
- "mode": "trigger",
- "parameters": {},
- "inputs": {
- "pull": {
- "output": "/actions/default/in/squeeze"
+ ]
+ },
+ "/actions/eva" : {
+ "sources" : [
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/eva/in/teleport"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/trackpad"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/eva/in/teleport"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/trackpad"
}
- }
- }
- ],
- "skeleton": [
- {
- "output": "/actions/default/in/skeletonlefthand",
- "path": "/user/hand/left/input/skeleton/left"
- },
- {
- "output": "/actions/default/in/skeletonrighthand",
- "path": "/user/hand/right/input/skeleton/right"
- }
- ]
- }
- },
- "controller_type": "vive_controller",
- "description": "VR controls for use with the KerbalVR mod in Kerbal Space Program",
- "name": "KerbalVR (Vive Controller) Defaults"
-}
\ No newline at end of file
+ ]
+ },
+ "/actions/flight" : {
+ "sources" : [
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/flight/in/flightstick"
+ }
+ },
+ "mode" : "trackpad",
+ "path" : "/user/hand/right/input/trackpad"
+ },
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/flight/in/yawstick"
+ }
+ },
+ "mode" : "trackpad",
+ "path" : "/user/hand/left/input/trackpad"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/flight/in/interactclick"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/application_menu"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/flight/in/interactclick"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/application_menu"
+ }
+ ]
+ }
+ },
+ "category" : "steamvr_input",
+ "controller_type" : "vive_controller",
+ "description" : "VR controls for use with the KerbalVR mod in Kerbal Space Program",
+ "name" : "KerbalVR (Vive Controller) Defaults",
+ "options" : {},
+ "simulated_actions" : []
+}