vrc-worldobject
vrc-worldobject copied to clipboard
Network-synced world space object for avatars
vrc-worldobject
vrc-worldobject is no longer maintained. Check out WorldSync instead!
vrc-worldobject allows you to create world space props that are network-synced for late joiners.
Prerequisites
- 19 bits of available parameter space (2 floats and 3 bools)
- TouchOSC
- A custom Fx layer and expression parameters already configured (even if they're empty)
- 1 material slot
Installation
Don't forget to MAKE A BACKUP
- Drag the
WorldObjectprefab into the root of your scene. Then, drag it under the root of your avatar. This will ensure that the WorldObject scale is correct, even if your avatar is scaled. - Add the
WorldObjectSetupscript to your Avatar. - (Optional) Set the max range of your object. A smaller range will give you more resolution in placement, while a larger range will allow you to place your object farther from the world origin. 1000 (1 kilometer!!) is a good default that will work for most worlds.
- Press the "Build Animator" button.
- Remove the
WorldObjectSetupscript from your avatar before uploading. - Open
WorldObject.toscto control your new world object parameters.- Don't forget to set up the correct mappings in your JSON config!
- Closing TouchOSC will break syncing for late joiners.
Change Log
1.0.2
- Fixes issue where TouchOSC was sending float params, but a default VRC OSC config file would require bool params. TouchOSC will now properly send bools.
1.0.1
Bug fixes:
- Hopefully fixes #2 (NullReferenceException when building animator)
- Fixes PositionPanel compile error
Contributing
Pull requests are welcome. Contributors will be listed below.
Contributors
Major credit goes to VRLabs for the development of the original World Constraint on which this project builds.
TODO
Because no self-respecting project is ever complete.
- Is there a simpler way to blend the X/Y/Z animations, so we don't have to have 3 separate "mover" objects in a hierarchy? (I don't think it's a problem, it's just untidy.)
- Put an actual explanation in the methodology section, instead of just dumping my napkin notes.