A fully functional graffiti can for avatars in VR Chat (VRC). This prefab allows you to tag any opaque object in a VRC world, even your friends. Supports three different tag slots that are easily customizable with any graphic of your choosing. Has customizable size control and togglable sound effects.
The condensed installation process follows:
- Backup your avatar.
- Download the latest
VRC_Graffiti.unitypackage
file from the Github release page. - Drag it into your Unity project which should create a
Assets/VRC_Graffiti
folder. - Add the prefab
Assets/VRC_Graffiti/VRC_Graffiti.prefab
to the root of your avatar. - Inside the prefab on your avatar, Enable
VRC_Graffiti/GraffitiAnchor/GraffitiCanHolder
to make the spray can visible. - Set the source of the parent constraint on the game object
VRC_Graffiti/GraffitiAnchor/GraffitiCanHolder
to the body part you want on your avatar (for hand use the wrist target). - Adjust the location/rotation/scale of the game object
VRC_Graffiti/GraffitiAnchor/GraffitiCanHolder/GraffitiObject
in a way that makes sense for your avatar (make sure the can is facing the right way). - Disable
VRC_Graffiti/GraffitiAnchor/GraffitiCanHolder
once your done. - If you already have your avatar set up with custom expressions you should probably be using VRLabs Avatar Manager to help with this step. Update / Append the following avatar properties:
- Add expression sub-menu with
Assets/VRC_Graffiti/VRC_Graffiti_Menu.asset
- Update expression parameters with
Assets/VRC_Graffiti/VRC_Graffiti_Parameters.asset
- Update FX graph with
Assets/VRC_Graffiti/VRC_Graffiti_Controller.asset
- Add expression sub-menu with
A detailed step by step guide with screen shots can be found in the INSTALL.md.
With the graffiti can active, use the following gesture controls (any hand):
The best part of this prefab is customizing your tags with any image you want such as memes, photos, graffiti, etc. Customizing your tags takes only three steps:
- Add the the image you want to be your tag to your Unity project (I recommend the tag folder under
VRC_Graffiti/Materials/Tags
). Create a copy of the image for the menu icon. - For the tag slot of your choosing (1-3), replace the texture on the tag decal object material located under
VRC_Graffiti/GraffitiAnchor/Tags/DecalTag#
in the prefab on your avatar. - Update the icon of the tag you editted in the
VRC_Graffiti/VRC_Graffiti_Tag_Menu.asset
file.
A more detailed guide with screenshots can be found in the CUSTOMIZE.md.
To customize the graffiti can model change the game object VRC_Graffiti/GraffitiAnchor/GraffitiCanHolder/GraffitiObject/VRCSprayCanModel
.
| Does this work in any VRC world on any object?
Generally speaking yes, anything that with an opaque material should work fine. Note, its been observed this prefab will fail to function entirely in some worlds. If you're on a popular world where it doesnt work, drop a comment on the open issue with the world name.
| Why does it make my avatar poor? Is there a way to get around this?
Its poor because theres a inactive light in the prefab. This light allows the graffiti to work across VRC worlds, but is not essential. The light, "DepthLight", can be removed but at the cost of limiting functionality of the graffiti to a much smaller number of VRC worlds (e.g. this will break things on maps like The Black Cat or The Great Pug).
| Does this work for VRC SDK version xx.xx.xx?
Odds are yes, the shield up top indicates which verion I have personally tested but compatability with newer/older versions is very likely but not "officially" supported.
| Are these animations 'Write Defaults' on or off?
Developed for 'Write Defaults' off.
| Why don't the tags work with shadows / fog / etc?
They are unlit shaders right now, may get around to updating them to lit if there is an ask.
If you find an issue / bug, have a feature request or have a question, create an issue on this repo. Support isn't guaranteed, but its the best way to get into contact with me.
If you enjoy this project, support my work by simply starring this repo! Thanks Spartan!
- Alpharaka for beta testing
- Sippbox for concise tutorials