https://github.com/python1320/vr_asmr_petting
VR(Chat) Avatar Movement Sounds (rustling)
https://github.com/python1320/vr_asmr_petting
asmr avatar osc python vrchat vrchat-avatar
Last synced: about 2 months ago
JSON representation
VR(Chat) Avatar Movement Sounds (rustling)
- Host: GitHub
- URL: https://github.com/python1320/vr_asmr_petting
- Owner: Python1320
- Created: 2024-12-29T18:04:06.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-08-09T21:33:59.000Z (about 2 months ago)
- Last Synced: 2025-08-09T23:27:21.693Z (about 2 months ago)
- Topics: asmr, avatar, osc, python, vrchat, vrchat-avatar
- Language: Lua
- Homepage: https://python1320.gumroad.com/l/wbxogb
- Size: 4.98 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
**WORK IN PROGRESS UNTIL END OF 2025, MAY NOT WORK**
# Motion Controlled ASMR Sounds System
*Experimental hand-motion đ controlled ASMR sounds system for VRChat*
Smoothly fade in and out your petting sounds while moving hands in VR for enhanced meditation/ASMR experiences.
### Marketplace đ
- https://python1320.gumroad.com/l/vr_asmr_petting
### Includes đĻđĻđĻ
- Installation instructions đ
- VRCFury prefab đĻ
- Petting sounds đ
- Open source utility application (needed for automatic volume control!) đ ī¸**đ NOT YET COMPATIBLE WITH QUEST đ**
### How does it work
When both prefab is installed and app is running, the speed of your hand movement is relayed from SteamVR to a helper application, which continuously sends [OSC](https://docs.vrchat.com/docs/osc-overview) messages to VRChat.
The message changes [avatar parameters](https://creators.vrchat.com/avatars/animator-parameters/), which in turn changes the volume/pitch of the petting sound from 0 up to 1. Sound can be enabled/disabled in [action menu](https://docs.vrchat.com/docs/action-menu) (no fading yet).### Requirements đ
- **Your custom avatar** (and source code). Used [example](https://drive.google.com/drive/folders/1ekIiFBnzJNhH2a6wwYLo2s5G-VuUlIY5)
- **SteamVR** (**NOT YET COMPATIBLE WITH QUEST**)
- **VR controllers**
- **Windows only** *(Author cannot presently run Linux VR due to old PC troubles)*
- **VRChat** (ChilloutVR should also work, but is not documented and probably no longer needed. Resonite also does not need this addon.)
- **Knowledge about [OSC](https://docs.vrchat.com/docs/osc-overview)**
- **[Unity editor](https://creators.vrchat.com/sdk/current-unity-version/)** for avatars
- **[VRCFury](https://vrcfury.com/getting-started)**### Test Avatar đ
- [Free Avatar Base: Toastacuga](https://vrchat.com/home/avatar/avtr_6f59f68e-989e-42a1-8435-25c26d09a841) ([source](https://www.vrcarena.com/assets/ZszLG-toastacuga))
### Installation đ¨
**NOTE**: *Help improve the introductions by [updating this readme](https://github.com/Python1320/vr_asmr_petting/edit/main/README.md)*
(*Video help: [Using VRCFury prefab assets in Unity](https://www.youtube.com/watch?v=QDvzfLa82yI)*)
**Unity** đ§
1. Install [Creator Companion](https://vcc.docs.vrchat.com/) and add [VRCFury](https://vrcfury.com/getting-started).
You also need your avatar as a project!2. In creator companion
1. Add `vr_asmr_petting` by pressing "add to VCC" in [this](https://python1320.github.io/vr_asmr_petting/) page.
2. Install the "VR ASMR Petting" package to your avatar. (*Remember to install VRCfury if not already installed!*)
3. Open the avatar in unity3. **Recommended**: *backup avatar now!*
4. Find the "VR ASMR Petting" package in Unity and the prefab file inside it.
Drag and drop the prefab into your avatar (note: the prefab must be put under avatar (not scene root) in the hierarchy but NOT inside armature/body, see picture):

5. Adjust the sound source positions as needed. Proper sound location depends on hand size and how you pet people.
7. **Optional**: *test with [gesture manager](https://github.com/BlackStartx/VRC-Gesture-Manager?tab=readme-ov-file#how-to-use-sdk-30)* to see if the sound locations are where you want them to be.
8. Publish your avatar9. Remember to [enable OSC](https://docs.vrchat.com/docs/osc-overview#enabling-it) and to regenerate OSC config in VR (otherwise helper app will not work)!
- VRCFury will automatically add a new [expression menu](https://docs.vrchat.com/docs/action-menu#expression-menu) entry and you will be able to toggle the sound on and off there. Test in VRChat and see if it works.
**Helper Application** đ ī¸ *(required)*
1. Download the latest `vr_asmr_petting_helper.zip` from [releases](https://github.com/Python1320/vr_asmr_petting/releases)2. There is no installer! Just extract the ZIP file somewhere where you don't remove/rename it accidentally.
3. **IMPORTANT (Windows SmartScreen / Antivirus):**
Windows SmartScreen or your antivirus might show a warning about an unknown executable. This happens, because the helper application does not have a digital signature as it would cost too much.
If downloaded from the official GitHub release, the helper application should be safe.
**SmartScreen Dialog:** Click "More info" then "Run anyway". For antivirus, choose to "Allow" or "Trust" the application.4. Start SteamVR and run `vr_asmr_petting.exe` once in the extracted zip folder.
*If unsure you can run it a second time and it will give an error about already running. If this does not happen the program is somehow crashing.*5. **Note**: The program runs in background. Look in task manager for status.
6. **Troubleshooting:** In case of trouble, run `vr_asmr_petting_console.exe` to see debug output. You may also need to set debug to true in `config.json`
7. **Advanced**: Look in [`config.json`](https://github.com/Python1320/vr_asmr_petting/blob/main/src/config.json) for additional settings.
8. **Note:** The program quits when SteamVR quits
9. **Optional:** Enable helper autostart in SteamVR settings10. **TEST:** Go in game and check if volume sliders in your avatar menu are moving if you move your controllers:
### What it does NOT do đ
- Does NOT let you experience ASMR, only give it (unless you pet yourself)
- Does NOT automatically activate (you need to enable/disable it it in menu, there is no gesture yet)
- This only modulates the sounds based on movement speed
- Does NOT include hair brush models or the like (Though it's easy to add to the prefab's gameobject)
- Does not (yet) have a collection of high quality ASMR petting sounds, [please help expand](https://github.com/Python1320/vr_asmr_petting/issues/22)!
- Does not (yet) have a guide on how to make your own looping sounds### HARM REDUCTION đ
This is a tool, a tool can be used for good or bad (without realizing it), make note of the following:
1. SOME DO NOT TOLERATE MOVEMENT NEAR THEIR FACE AT ALL
(ask for permission first, maybe do not use sounds at first)
1. (Also, a small minority tolerate only fast (or only slow) hand movement)
2. SOME GREATLY DISLIKE ASMR SOUNDS (but may also be too timid to say it!)
3. MANY DISLIKE UNKNOWN PEOPLE APPROACHING THEIR FACE (again, make sure contact is appreciated)
4. APPROACHING FROM SIDE/BEHIND CAN STARTLE PEOPLE (may appear to be a spider)
5. MANY OTHER PITFALLS (you have been warned)For non-verbal initiation, the following flowchart is provided (no warranty):
### TODO đ
See [github issues](https://github.com/Python1320/vr_asmr_petting/issues?q=is%3Aissue%20state%3Aopen%20label%3Aenhancement%20OR%20label%3Aextra%20OR%20label%3A%22help%20wanted%22%20OR%20label%3Arelease)
### Parameter usage đ
| **path** | **type** | **synced bits** |
|---------------------------------------|-----------|-------------------|
| /avatar/parameters/sounds/pets/normal | bool | 1 |
| /avatar/parameters/sounds/pets/alt | bool | 1 _(optional)_ |
| /avatar/parameters/petting_volume | float | 8 |
| /avatar/parameters/petting_volume_r | float | 8 |
| /avatar/parameters/sounds/cling | bool | 1 _(optional)_ |
| /avatar/parameters/sound_taps_right | bool | 1 _(optional)_ |
| /avatar/parameters/sound_taps_left | bool | 1 _(optional)_ |
| | **TOTAL** | **17 to 21 bits** |### Troubleshooting đ¯
1. Ensure you have Avatar Self Interact enabled in the VRChat settings menu: 
2. [Enable OSC](https://docs.vrchat.com/docs/osc-overview#enabling-it)
3. Use [OSC Debug](https://docs.vrchat.com/docs/osc-debugging) to see if are receiving any data
4. Make sure your VRChat SDK is updated in the companion app! VRCFury usually requires the latest VRChat SDK.
5. Check that antivirus đĄī¸ and firewall đđŽ are not blocking the helper application!**HINT:** *The application generates a `debug.log` file on start if debug is enabled. This can provide clues on what is wrong. You should include this file with bug reports, thank you!*
### How to change the sounds đī¸
- Navigate to your hand bones and just replace the sound files with your own
### Related things đ¤
- [HandSFX](https://booth.pm/en/items/5851561) (Untested!)
- Community recommendations [here](https://github.com/Python1320/vr_asmr_petting/issues/21)
- *There is (apparently) a similar behaving prefab or avatar with sound reaction (that probably does not require a helper application), please list it in the above issues!*
- Similar addons: [ASMR VRChat Prefab](https://fluffyteddy.gumroad.com/l/ASMR), [Dynamic Hairbrush for VRChat avatars](https://iaminvalid.gumroad.com/l/hctbu)
- Recommended: add distance fading to your model hands either using [Poiyomi Proximity Color](https://www.poiyomi.com/special-fx/proximity-color) or via a [custom standard shader (experimental)](https://github.com/python1320/reroStandard)### Known Issues đ¯
https://github.com/Python1320/vr_asmr_petting/issues
### Helper app automatic start âšī¸
After launching the helper exe successfully once, you should be able to enable autostart in SteamVR:
### VRChat Group(s) đ¨âđ¨âđĻâđĻ
- [Dynamic ASMR](https://vrchat.com/home/group/grp_99da3c2f-b0db-442f-a499-10ed1faf8182)
### NO SUPPORT NO WARRANTY
This is a hobby for me. Payment does not give personal support! I may or may not have time to look at github issues but that's about it.
No warranty of any kind, this might even hurt your friendships or get you reported for harassment if used wrong! Likely it just refuses to work because I forgot to document something.
*I cannot afford supporting you, and you cannot afford my support, sorry. Feel free to ask someone else to fix things for you!*