Skin Touch is out as a Poiyomi module, free on BOOTH.
Your homies' hands can now dent your soft skin and clothes in VRChat, fingers and all. ๐ฏ
https://t.co/ijcA4ecsya
Thanks @zanariyo for the testing.
@FreyjaNSFWW@zanariyo It is a pre-release package. idk how to enable it via the UI, but go to settings.json in VCC/ALCOM and then replace:
"showPrereleasePackages": false,
with
"showPrereleasePackages": true,
with any editor of your choice and restart VCC/ALCOM
That's a bit confusing, you are right.
The toggle is built at upload, and it only does something when a clothing material also has Skin Touch ticked which mesh counts as clothing is detected automatically). I will make it give an info when there's nothing to switch and lets you mark clothing in the material or component by yourself, then it won't be confusing anymore.
@Ren_Protogen@zanariyo Of course!
I already had this in there in the first version. You could create a map for each body part. But after thinking about it wasn't that good of an idea...
The presets are just custom settings for the whole material. You are right the preset naming doesn't make sense like that.
If you got an idea for proper preset names that won't confuse people, am open for feedback! (Softskin, Roughskin, Leather?)
People would have to make masks for different areas of the skin.
@flexuhVR Yes it works with self collision, check out the settings on booth.
When its turned off it costs no performance. It comes with Modular avatar and its own installer for toggles.
The touchening is happening soon as poiyomi module.
Added a few settings, different modes (optimized & higher quality) and some QoL features.
Will test a bit more in-game with some friends and then it will be available for everyone (hopefully tomorrow ๐).
#VRChat
Mine is "simpler" on purpose. Material Contacts give the shader the 8 nearest hand sensors every frame. It rebuilds each hand from them (palm plus three-bone fingers, scaled to each player's measured hand) and computes the dent per vertex and pixel, with no state between frames.
- Clipping through clothes: mask it, or give the clothes the same effect and adjust the settings, with the body sinking slightly more. It can and honestly will clip a little on tight layers.
- Metric units: everything is in cm on the avatar's scale: dent depth, flesh thickness, softness, and the hand size measured from each player's sensors.
- Anatomy: per-material depth, flesh thickness, pile-up and folds, presets per body part, plus a mask for parts that should give more. Masks for every property could come later.
- Jiggle, recoil, impulse, prediction: these need memory between frames. That's possible with a CRT buffer holding the last frames, so it's planned for a later version, as an option because of the performance cost.
- Natural, non-snappy behaviour: touches blend smoothly into one dent, and when more hands come close than the 8 slots hold, the farthest fade out instead of popping.
- Several people at once: the player id in each contact keeps everyone's sensors apart, so a finger never attaches to someone else's palm and two hands stay two dents.
- Math: the squish is based on Hertz contact theory (how a round object presses into an elastic surface), adapted for flesh over bone and capped at the dent depth.
It's honestly a sophisticated process to make this look good, since the shader only gets each sensor's position and rotation, not its shape or size.
I'll write a lesson/article about it in the future. If you want to read about Material Contacts (there is also one for CRTs), but it sounds like you already know enough :D
https://t.co/ZT2XamTbGy
Poiyomi Contact Receiver Tutorial and Demo.
I worked super hard on this one. I wanted it to be simple for people without removing power from power users. Don't forget to show me what you make with it!!!
Examples in first comment