Convert VRCLens to a drag-n-drop VRCFury prefab
VRCLens directly modifies your avatar’s FX controller, menu, and parameters, making it hard to share or have different versions of your avatar with/without VRCLens.
As a VRCFury prefab, VRCLens can be set up once, then drag-n-drop’d to different avatar versions, and then be easily deleted :D
Last updated:
In your Project files, create a new folder under Assets to store files for the VRCFury prefab. Or use an existing folder. I just made a new folder called “VRCLens”
Right-click inside the folder and Create a new VRChat > Expressions Parameters, VRChat > Expressions Menu, and Animator Controller. Give them good names like FX_VRCLens
, Menu_VRCLens
, Params_VRCLens
Create the Expression Parameters and Menu
Create the Animator Controller
Double-click the parameters and delete the VRCEmote
parameter with the Minus button, as it won’t be used. The other two parameters should be kept though.
Temporarily replace your avatar’s FX layer, Expressions Menu, and Expressions Parameters with the new files. Remember what the original FX layer, menu, and params were, as you’ll have to swap them back in at the end.
Install VRCLens onto your avatar as usual using the VRCLens installer. Auto-arrange the camera positions, change your settings, then Apply VRCLens. VRCLens will then modify the new separate FX/menu/params instead of your original avatar’s
On the VRCLens
object on your avatar, click Add Component and add a Full Controller (VRCFury)
On the Full Controller, click the Plus button on the Controller, Menu, and Parameters, and place the new FX controller, menu, and parameters there
Click the Advanced Options arrow. Under Path Rewrite Rules, type VRCLens
under If animated path has this prefix. Leave the other settings alone. In newer VRCFury versions, there is an Auto-Fix button that will do the same thing, so you can just click that if you have it.
Add Global Parameters and set it to *
to make all VRCLens parameter global. This is optional in most cases though, and only necessary if you want to use VRCLens with OSC extensions or other mods.
Restore the original FX layer, Expressions Menu, and Expressions Parameters on your avatar. If you just wanted to add VRCLens to a single avatar and keep the animator separate, you can stop here and not make the prefab. Otherwise, move on…
VRCLens puts 3 objects in your avatar armature: PickupC
on the Head, PickupA
on the Right Hand, and PickupB
on the Left Hand. These need to be moved to the prefab.
Note: The left and right hand objects will be swapped if you installed VRCLens on your left hand instead.
Expand your Armature, find all 3 objects, and Ctrl + Click
to select them all
Drag them to be directly under the VRCLens
object instead
On PickupC
, add an Armature Link (VRCFury)
component.
Set Link To (Avatar) to Head
PickupC
also has a Scale Constraint on your avatar neck that’s specific to this particular avatar. Otherwise, right click the VRCLens
object, and select Create Empty to create a new object. Name it Neck
.
Click the new Neck
object and add an Armature Link (VRCFury)
component, with Link To (Avatar) set to Neck
Go back to PickupC
, and drag the Neck
object into the Scale Constraint source