Marker / Pen for VRChat Avatar SDK 3.0
- Modular Avatar compatible.
- Simple pen that can be toggled on or off with expressions.
- Can be rainbow ink or any flat color, selectable with a color wheel.
- Works on any avatar built with VRCAvatarSDK 3.0.
- Visible in mirrors.
- Simple setup.
- Not Quest compatible.
- Unity 2019.4.31f1 (recommended)
- Latest VRCAvatarSDK3.0
- An avatar already setup and ready to be uploaded to VRChat
- Ensure you have Modular Avatar setup in your project.
- Get the latest version of the unity package in the releases
- Import into your Unity project
- Drag the prefab "QTMarker-ModularAvatar" into the root of your avatar.
- Optionally customize where the menu is installed.
- That's it.
- Get the latest version of the unity package in the releases
- Import into your Unity project
- Add the QTMarker prefab to the hierarchy and unpack it
- Move the QTMarkerPosition game object as the child of the bone you want to draw from, and align it(typically the tip of the right hand index finger)
- Move the QTMarker game object as the child of the avatar object, the parent of this should have the animation controller / VRCAvatarDescriptor
- On the QTMarker game object, on the VRC Parent Constraint component, click on Zero and then Activate.
- On the avatar's VRCAvatarDescriptor, replace the FX in the playable layers with QTMarkerFX (WD)
- On the avatar's VRCAvatarDescriptor, replace the Expressions Menu with QTMarkerExampleMenu asset
- On the avatar's VRCAvatarDescriptor, replace the Expressions Parameters with QTMarkerExampleParameters asset
- Upload the avatar and you are done!
- Get the latest version of the unity package in the releases
- Import into your Unity project
- Add the QTMarker prefab to the hierarchy and unpack it
- Move the QTMarkerPosition game object as the child of the bone you want to draw from, and align it (typically the tip of the right hand index finger)
- Move the QTMarker game object as the child of the avatar object, the parent of this should have the animation controller / VRCAvatarDescriptor
- On the QTMarker game object, on the VRC Parent Constraint component, click on Zero and then Activate.
- Download and install the latest version of AV3Manager.unitypackage from VRCLabs
- From the VRLabs menu, open the Avatars 3.0 Manager.
- Drag your VRC avatar descriptor into the panel.
- Open the FX section and click on add animator to merge.
- If you know what is 'Write Default' and know whether you use it or not, pick from the appropriate animator from the QTMarkerFXs folder. If you have no idea what 'Write Default' is, you will be using the QTMarkerFX (WD) from the QTMarkerFXs folder.
- Drag the appropriate QTMarkerFX (WD) or (no-WD) into the controller to merge and merge as new.
- On the avatar's VRCAvatarDescriptor, open your existing Expression Menu and add QTMarkerSubMenu as a sub menu item to your existing menu.
- On the avatar's VRCAvatarDescriptor, open your existing Expression Parameters and copy all the parameters from QTMarkerExampleParameters over exactly the same way.
- That's it!
To draw, toggle on from the expressions menu the "Marker Toggle". Use the fist gesture on the left and and fingerpoint gesture with the right hand to draw. You can draw without the gestures by turning on the "Draw" toggle in the expression menu. You can clear by selecting the "Clear" button in the expression menu. You can use a simple color instead of rainbow by using the "Use simple color" toggle in the expression menu. You can select the simple color with the color wheel in the expression menu.
Youtube video on how to add to customize gestures
-
You can look at the animation controller "QTMarkerFX (WD)" or "QTMarkerFX (no-WD)" to see how the 3 layers are built.
-
If you wish to change the gestures used to draw or clear the drawings, you need to edit the QTMarkerInking layer of the animation controller by changing the conditions in the transition between "Any state" and "QTMarkerInking" or "QTMarkerClear". Don't forget to change the reverse conditions for "QTMarkerIdle". This is also useful if you want to switch it to be left handed. Just swap all the GestureRight for GestureLeft and vice-versa in this layer. You also will want to place the QTMarkerPosition game object on the left hand.
This asset is under GNU General Public License v3.0 So do whatever with it, I will not be liable for anything and I provide no warranty.