VRCJoyCon
Link Nintendo Switch Joy-Cons to VRChat! Uses the new OSC system.
For now, only simple on/off rumble haptics are supported!
Requirements
- Nintendo Switch Joy-Con controller(s). Only tested with knockoffs from Aliexpress.
- A customisable avatar or a compatible avatar
- Bluetooth Dongle or similar. You can use another Windows device as relay
- Something to attach controller to body/headset straps, for example "Exercise Patch Self Adhesive Tape Sports Gym Fitness"
- Unity editor
vrcjoycon.exefrom this repository's Releases
HELP WANTED
Only tested with knockoff joycons. Does it work with real joycons?
TODO
- Example haptics avatar world
- Button input possibility
- Gyroscope?
- Switch joy-con to poll only to reduce wireless interference
Haptics: Setting Up / Usage
Unity
- Position one or multiple Contact Receivers components to your chosen avatar bone
-
Choose at least some collision tags or you will receive no contacts
-
Haptics can be set to
local only.Allow Selfis recommended for testing. -
Select
ProximityfromReceiver Type. -
Set target parameter to
joyconrumble1. For right controller choosejoyconrumble2. -
Add the above parameters to your animator parameters with default float value of 0.0. This is used by OSC to relay the status to VRCJoyCon.
-
VRChat
- Put controllers into pairing mode by pressing the pairing button.
- Pair controllers manually over Bluetooth with Windows.
- Launch vrcjoycon.exe
- When pairing is successful, the controller should vibrate. You may need to press the pair button in the controllers a few times before Windows notices the controllers. They should say "connected" in the windows settings when this is so.
- In case of trouble, test with other joycon software first
- Launch VRChat if not already launched
- From the VRChat's circular menu, inside settings, inside OSC, choose Enable OSC. Additional help here. (If the haptics do not work, try reset configuration option in the same menu ATTN. The OSC Debug menu does not help you with debugging haptics, only output)
Relay
If you have no bluetooth on your VR PC or are experiencing interference it should also be possible to use vrcjoycon.exe on a different Windows Laptop, for example.
- You will need to configure VRChat to relay the OSC output data to your target computer: https://docs.vrchat.com/docs/osc-overview#vrchat-ports
- Start
vrcjoyconwith command line argumentsvrcjoycon.exe --listen=any --port=9001- You can replace
anywith an IP address. Any is an alias for0.0.0.0 - The default port is 9001
- Make sure your firewall allows listening on
UDPprotocol port9001forvrcjoycon.exe
- You can replace
Troubleshooting
Test with OSC receiver to see if your avatar is transmitting. Try transmitting 1 to /avatar/parameters/joyconrumble1 with OSC sender to see if vrcjoycon.exe works.
Credits / components used
- joycon-python library
License
PENDING MISSING LICENSE ON: https://github.com/tocoteron/joycon-python

