-
Notifications
You must be signed in to change notification settings - Fork 5
Unofficial OSC Documentation
Lioncat6 edited this page Jul 2, 2023
·
22 revisions
Disclaimer: This is an unofficial record of what I've learned about the VRChat OSC and its parameters. WIP The goal of this page is to include every avatar parameter out there
All testing was done with python-osc so your results may vary across other osc platforms
(Parameters that can be set from another program or app)
(Sources: osc-as-input-controller, osc-trackers, osc-eye-tracking)
Parameter Path |
Parameter Description *modified from the official wiki 1.0 indicates a Float value while 1 on its own is synonymous with True |
Parameter Data Type *guess due to non-functioning parameter |
Range *guess due to non-functioning parameter |
Notes Float values: Make sure to send the value as a Float or the game occasionally interprets it as a bool Boolean values: You can also send 1 or 0 respectively |
---|---|---|---|---|
/input/Vertical | Move forwards (1.0) or Backwards (-1.0) | Float | -1 to 1 | |
/input/Horizontal | Move right (1.0) or left (-1.0)* | Float | -1 to 1 | |
/input/LookHorizontal | Look Left and Right. Smooth in Desktop, VR will do a snap-turn when the value is 1.0 if Comfort Turning is on* | Float | -1 to 1 | |
/input/UseAxisRight | Use held item, presumably, the one held in the right hand* | bool* | [True, False]* | Does not work in my testing. Tested int, Float, and bool data types on desktop |
/input/GrabAxisRight | Grab item, presumably, the one held in the right hand* | bool* | [True, False]* | Does not work in my testing. Tested int, Float, and bool data types on desktop |
/input/MoveHoldFB | Move a held object forwards (1.0) and backwards (-1.0)* | Float | -1 to 1 | |
/input/SpinHoldCwCcw | Spin a held object Clockwise (1.0) or Counter-Clockwise (-1.0)* | Float | -1 to 1 | |
/input/SpinHoldUD | Spin a held object Up (1.0) or Down (-1.0)* | Float | -1 to 1 | |
/input/SpinHoldLR | Spin a held object Left (1.0) or Right (-1.0)* | Float | -1 to 1 | |
/input/MoveForward | Move forward while this is 1. | bool | [True, False] | |
/input/MoveBackward | Move backward while this is 1. | bool | [True, False] | |
/input/MoveLeft | Move left while this is 1. | bool | [True, False] | |
/input/MoveRight | Move right while this is 1. | bool | [True, False] | |
/input/LookLeft | Turn to the left while this is 1. Smooth in Desktop, VR will do a snap-turn if Comfort Turning is on. | bool | [True, False] | |
/input/LookRight | Turn to the right while this is 1. Smooth in Desktop, VR will do a snap-turn if Comfort Turning is on. | bool | [True, False] | |
/input/Jump | Jump if the world supports it. | bool | [True, False] | |
/input/Run | Walk faster if the world supports it. | bool | [True, False] | |
/input/ComfortLeft | Snap-Turn to the left - VR Only. | bool | [True, False] | Untested |
/input/ComfortRight | Snap-Turn to the right - VR Only. | bool | [True, False] | Untested |
/input/DropRight | Drop the item held in your right hand - VR Only. | bool | [True, False] | Untested |
/input/UseRight | Use the item highlighted by your right hand - VR Only. | bool | [True, False] | Untested |
/input/GrabRight | Grab the item highlighted by your right hand - VR Only. | bool | [True, False] | Untested |
/input/DropLeft | Drop the item held in your left hand - VR Only. | bool | [True, False] | Untested |
/input/UseLeft | Use the item highlighted by your left hand - VR Only. | bool | [True, False] | Untested |
/input/GrabLeft | Grab the item highlighted by your left hand - VR Only. | bool | [True, False] | Untested |
/input/PanicButton | Turn on Safe Mode. | bool | [True, False] | |
/input/QuickMenuToggleLeft | Toggle QuickMenu On/Off. Will toggle upon receiving '1' if it's currently '0'. | bool | [True, False] | Functions the same as pressing escape on desktop |
/input/QuickMenuToggleRight | Toggle QuickMenu On/Off. Will toggle upon receiving '1' if it's currently '0'. | bool | [True, False] | Functions the same as pressing escape on desktop |
/input/Voice | Toggle Voice - the action will depend on whether "Toggle Voice" is turned on in your Settings. If so, then changing from 0 to 1 will toggle the state of mute. If "Toggle Voice" is turned off, then it functions like Push-To-Mute - 1 is muted, 0 is unmuted. | bool | [True, False] | |
/chatbox/input s b n | Input text into the chatbox. If b is True, send the text in s immediately, bypassing the keyboard. If b is False, open the keyboard and populate it with the provided text. n is an additional bool parameter that when set to False will not trigger the notification SFX (defaults to True if not specified). | [str, bool, bool] | ... | |
/chatbox/typing | Toggle the typing indicator on or off. | bool | [True, False] | |
/tracking/trackers/1/position | Hip Position https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/1/rotation | Hip Rotation https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/2/position | Chest Position https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/2/rotation | Chest Rotation https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/3/position | Foot 1 Position https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/3/rotation | Foot 1 Rotation https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/4/position | Foot 2 Position https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/4/rotation | Foot 2 Rotation https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/5/position | Knee 1 Position https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/5/rotation | Knee 1 Rotation https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/6/position | Knee 2 Position https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/6/rotation | Knee 2 Rotation https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/7/position | Elbow 1 Position https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/7/rotation | Elbow 1 Rotation https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/8/position | Elbow 2 Position https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/8/rotation | Elbow 2 Rotation https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/head/position | Head Position https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/trackers/head/rotation | Head Rotation https://docs.vrchat.com/docs/osc-trackers | [Float, Float, Float] | ... | Does not function at all when using desktop Mode |
/tracking/eye/EyesClosedAmount | 0~1 value for how closed the eyes are. Currently, we only support a single value simultaneously controlling the blink of both eyes. In the future, we'll add support for separate per-eye winking. | Float | 1 to 0 | |
/tracking/eye/CenterPitchYaw | https://docs.vrchat.com/docs/osc-eye-tracking | [Float, Float] | ... | |
/tracking/eye/CenterPitchYawDist | https://docs.vrchat.com/docs/osc-eye-tracking | [Float, Float, Float] | ... | |
/tracking/eye/CenterVec | https://docs.vrchat.com/docs/osc-eye-tracking | [Float, Float, Float] | ... | |
/tracking/eye/CenterVecFull | https://docs.vrchat.com/docs/osc-eye-tracking | [Float, Float, Float] | ... | |
/tracking/eye/LeftRightPitchYaw | https://docs.vrchat.com/docs/osc-eye-tracking | [Float, Float, Float, Float] | ... | |
/tracking/eye/LeftRightVec | https://docs.vrchat.com/docs/osc-eye-tracking | [Float, Float, Float,Float, Float, Float] | ... |
Community-made parameters that only work on supporting avatars. Suggest your own parameters in the issues tab. THIS IS VERY WIP
Parameter Path |
Parameter Description *modified from its official wiki 1.0 indicates a Float value while 1 on its own is synonymous with True |
Parameter Data Type *guess due to non-functioning parameter |
Range *guess due to non-functioning parameter |
Notes Float values: Make sure to send the value as a Float or the game occasionally interprets it as a bool Boolean values: You can also send 1 or 0 respectively |
---|---|---|---|---|
/avatar/parameters/onesHR | Ones spot in the Heart Rate reading; 123 (legacy) | int | 0 to 9 | |
/avatar/parameters/tensHR | Tens spot in the Heart Rate reading; 123 (legacy) | int | 0 to 9 | |
/avatar/parameters/hundredsHR | Hundreds spot in the Heart Rate reading; 123 (legacy) | int | 0 to 9 | |
/avatar/parameters/isHRConnected | Returns whether the device's connection is valid or not | bool | [True, False] | |
/avatar/parameters/isHRActive | Returns whether the connection is valid or not | bool | [True, False] | |
/avatar/parameters/isHRBeat | Estimation on when the heart is beating | bool | [True, False] | Code demo for this included below |
/avatar/parameters/HRPercent | Range of HR between the MinHR and MaxHR config value | Float | ... | |
/avatar/parameters/FullHRPercent | Range of HR between the MinHR and MaxHR config value on a scale of -1 to 1 | Float | -1 to 1 | |
/avatar/parameters/HR | HRtoVRChat_OSC - Returns the raw HR, ranged from 0 - 255. (required) | int | 0 to 255 | |
isHRBeat Code Demo |
while True:
client.send_message("/avatar/parameters/isHRBeat", True)
time.sleep(.1)
client.send_message("/avatar/parameters/isHRBeat", False)
if int(heartRate) <= 0: # Prevents Divide by zero error
heartRate = 1
if 60/int(heartRate) > 5: # prevents being stuck on a beat if the heartrate value is too low
time.sleep(1)
else:
time.sleep(60/int(heartRate))
Can be read.