Personal Mirror Drop (PMD)
EDIT:
VRChat has implemented a Portable Mirror. 7/30 its in beta. Likely to live within a week. Its really good. I'd recommend using that. I can still maintain this and update it if desired though.
This is a droppable local mirror that you can use within VRChat. This has limited range/depth. It is 2d. It's not a perfect replacement for a mirror, but it works decently.
Requirements.
RollTheRed VRFaceChecker 2.0 https://rollthered.booth.pm/items/3918977
VRLabs World Constraint https://github.com/VRLabs/World-Constraint
I've included these as compressed files within the project if you do not have them. Simply extract them into your assetts folder.
This project has the following in terms of rating components.
1 Material
1 Phys Bone Component
2 Bools
2 Floats
Suggested tools
VRLabs Avatar 3.0 Manager https://github.com/VRLabs/Avatars-3.0-Manager
This is an extremely helpful tool for merging your animator. (Always make a BACKUP OF YOUR ORIGINAL ANIMATOR FIRST.)
Installation guide.
Youtube Guide:
1. Place the World (Not World Constraint!) object from VR Labs World constraint in your scene by dragging and dropping it into your Hierarchy.
2. Place the World Constraint object from this folder (not the VR Labs one) onto your avatar directly under your armature(not in). Check the World Constraint object to make sure that the Constraint says World. (Not in bold)
3. Place the MirrorTarget onto the Wrist or Hand that you would like to move the mirror with. Adjust the placement so that the center of the object is close to the palm of your hand.
4. Open the World Constraint object on your avatar and drag the MirrorTarget object we just set up into the Parent Constraint section. This should be BOLD.
5. Place the PMD_Controller on your avatars FX layer.
6. Place the PMD_Menu and PMD_Params on your expression menu and expression parameter slots respectively.
6b. If you are combining this with an existing project. You will want to add the PMD_Menu as a menu within your existing Expressions_Menu. Make sure to add the parameters as well required.
That should be it.
When the mirror is spawned the CENTER of the mirror should be grabbable. Use the hand you put the MirrorTarget on or it will teleport to the hand with the MirrorTarget on it.
Please be respectful of others and leave this as Local ONLY. I will not be responding to questions about how to make it global.
Big thank you to Yash and RolltheRed for their help on this.
https://linktr.ee/Rollthered
Compiled by Juzo#0001/Juzo~
Feel free to reach out to me on discord with questions.
Common issues.
Q. The mirror isn't staying in place. It's following wherever I look.
A. This means that when you imported in the "World Constraint" object you dragged the World object from your scene into it. Don't do that. To fix this remove the "World Constraint" object from your avatar and add it back again. The World Constraint object should still say "World" inside of it. It should NOT be bold. Then open the Container and drag your mirror target to it. Then you're done!
Q. The mirror is way too small and I can't seem to adjust the size.
A. The size is adjusting, but your scale might be off on your avatar. Check your avatars scale and adjust the "Container" scale accordingly. (If your avatar Scale is 0.1 0.1 0.1 put the Container to 10 10 10 for example)