Turning Waltzer into an Avatar with Avatar Dynamics

What sparked it all?

Thanks to the inspiration I got from @NinjaSteeve's shopkeeper avatar, I decided to try to turn the Waltzer into an avatar and check out the different features and capabilities of VRChat's Avatar Dynamics while at it.

jjAJHfPgdS.jpg


Replicating the physics

One of the primary selling points of my in-world Waltzer is its realtime physics, and I wanted to replicate them as accurately as possible on the avatar. After a bit of exploration and experimentation on the different options, I decided to utilize PhysBones for the realtime physics of the cars.

Demo video on Twitter

The result isn't by any means perfect, but for what it is, I'm thoroughly impressed by the stability and performance of VRChat's implementation of PhysBones.


Performance

With worlds you obviously have a lot more room for resources in terms of both CPU and GPU usage, but how do you fit an entire world's center piece into an avatar and still keep it medium?

image.png

The optimizing process is till ongoing, but for now I've managed to keep in in medium ranking by applying following steps:

One huge factor that contributes to the relatively low material count is the heavy use of vertex colors on the meshes using the paint shader:

image.png


Features

VRChat_Z2mCCdtOsZ.jpg

I ended up implementing several different features into the avatar in order to make it more flexible and suitable for nearly any sized avatar or space for deploying it.


To Do


Revision #4
Created 2023-01-06 00:16:02 UTC by Varneon
Updated 2023-01-09 01:30:20 UTC by Varneon