Somatosensation Emulator for VRChat Avatars (SEVA) | Free Avatar System
Do you have friends that like to sneak up behind you to do crass mimicry and fiddle with your physbones? Have you accidentally posed your breast bones in an embarrassing manner, or had a friend fold your ears or tail in an odd direction, only to discover several minutes later after someone tells you? Are you sick of that one creep in the tiny avatar that likes to lay down on the floor beneath people without them noticing to stare at their feet? Have you been relying on a frame hungry mirror to watch your back this whole time?
Get caught lacking no more with the Somatosensation Emulator for VRChat Avatars!
This is an asset for simulating your avatar's tactile sense by displaying indicators and playing sound cues to alert you when a physbone is grabbed or posed, and when someone's hand is near or touching a certain part of your avatar. It will also alert you to when someone is directly above, below, behind, or flanking you, thusly, improving your situational awareness. You can also disable the Sense, Presence, and Sound functions of the addon separately. SEVA does not require any syncing, since the functional elements are intended to only be seen by you locally, thereby taking up no memory on your expression parameters asset.
Blender 3.3.0 or newer is required for Unity to process the .blend file used in the project.
VRCFury is a dependency for this addon, although it can be configured to work without it, and if you know how, you know how. SEVA should work with write defaults either off or on.
Join the World of Relm Discord Server for Further SupportInstructions:
The configuration process consists of 3 steps
After you have installed the latest version of the VRCFury package, and copied the SEVA folder into your project's asset folder, the first step will be to add the included SEVA Prefab to your avatar's head bone. This prefab contains the VRCFury Script, Indicators, Audio Sources and Presence Fields. Next, drag the prefab under your avatar's neck in the hierarchy to prevent it from being head chopped in game. Now, rotate the prefab so that it faces directly forward. The prefab has a rotation constraint on it. Drag the head bone into the rotation constraint's target source, and click Activate. (Don't check Is Active) If your avatar is roughly human sized, the Indicators object should sit about a quarter of a meter in front of your view positon, and centered over your avatar's nose. That should be a good approximate for a starting position. You can easily adjust it later after testing. You can also customize the arrangement and scale of the indicators to your liking.
The second step is to paste the parameters from the SEVAParameters text document into the parameter fields of their corresponding physbones on your avatar. These parameters control the animations that play the yellow and red SEVA alerts, which are accompanied by sound cues. You can paste the same parameter in multiple different physbone components, and they will all play the same alert. Next, you'll want to set proximity fields. These are VRC Contact Receivers intended to encompass the physbone or part of your avatar's body in question, which enable the parameters that play the green SEVA alerts. There is a SEVA Proximity Field Presets prefab that you can copy the contact receiver components from in order to set up on your avatar around the parts that you want to monitor. Even if you don't have a particular physbone for the alerts, it may behoove you to still set up as many proximity fields as possible so that you are alerted to when someone is reaching around where those physbones would be.
The third step is to configure the Presence Fields. The Presence Fields are VRC Contact Receivers that check to see if another avatar's head or body is within the Receiver. To set these up, all you have to do is adjust the location and boundaries of the receivers by editing their transforms. Adjust them so that they encompass all the area around your avatar that you want to monitor for other players, and it is a good idea to overlap them for redundancy.
Before uploading your avatar, make sure you select the SEVAMesh and set all the BlendShapes to 100. This will make it so that people who don't have your animations turned on won't see the indicators in front of your face, because that would be awkward.
I partially recommend setting up a complete array of VRC Contact Receivers for most of your avatar's body, and having them all use one or multiple of the SEVAExtra parameters, so that you know if any part of your avatar is being touched for complete immersion!