/vrc-owo-suit

A python application for VRChat players to use OWO Suits in game

Primary LanguagePython

Disclaimer

This application is not affiliated with VRChat or OWO. By using this software you agree to not sue or get upsetti spaghetti with me if it breaks something. Use at your own risk.

Table of Contents

Installation

Head over to the Releases page to get the latest release.

  1. Download the executable.

  2. Download the Unity Package.

  3. Open your Unity Project, open the provided Unity package, and setup your avatar (More Instructions on this below)

  4. Run the executable

  5. Open the OWO app and head to Games > Scan Game

  6. Click connect in the application

  7. Click connect in the OWO app

  8. If everything works, both applications should say that they are connected!

Settings

  1. OWO Suit IP Address

    You should leave this empty and leave the checkbox below checked, the OWO app can detect your suit fairly easily. I'm not sure what their usecase is for an IP address, maybe multiple suits on one machine?

  2. Server Port Number

    Leave this at 9001, only change if you know what you're doing!

  3. Frequency Settings

    I keep this at 100, I think it's for how abrupt the sensation is?

  4. Intensity Settings

    When calibrating your suit with the OWO app you will set some limitations for each muscle group, to prevent from shocking yourself too much.

    When you enter VRChat, you'll realize that you have a higher tolerance for some muscles rather than others.

    You can adjust the intensity settings in real time, and when you are done, you can click Save Settings to keep the app's settings for the next time you start it.

    Also, if you're having trouble telling which muscle is active when you're feeling them, the intensity settings labels will change when your muscles are being interacted with.

    In other words, if your Left Pectoral is touched, it will update in the UI as [Left Pectoral]

Contributing

Requirements

  • Python 3.10.9
  • Windows 10
  • OWO Suit or Visualizer
  1. Clone the repository

    git clone git@github.com:shadorki/vrc-owo-suit.git
    cd vrc-owo-suit
  2. Install Dependencies

    pip install -r requirements.txt
  3. Run

    python main.py
  4. Build a standalone executable

    This repository is setup with a Github action to compile the standalone executable. If you would like to compile it on your local machine you can read the action for the command via pyinstaller here.

Setting up your avatar

If this your first time working with OSC head over to the VRChat docs to learn more.

This doc assumes you have a Unity Package with an avatar already set up to be published to VRChat along with some knowledge of how to use Unity.

  1. Head over to the releases page and download the unity package from the latest release.

  2. Open your Unity Project with your avatar.

  3. Import the unity package from the latest release.

  4. In the toolbar click Shadoki > OWOSuit, add your avatar to the field, and click add.

  5. Place the newly generated game objects in the armature of your avatar. In a future update I expect to automatically place them in the generation, but for the initial release you will have to do it manually. Keep in mind the names of your bones may differ, but their placements should just match where they would be on your body.

    • Place both owo_suit_Lumbar_R and owo_suit_Lumbar_L into your Hip Bone.

    • Place owo_suit_Abdominal_R, owo_suit_Abdominal_L, owo_suit_Dorsal_R, and owo_suit_Dorsal_L into your Spine Bone.

    • Place owo_suit_Pectoral_L and owo_suit_Pectoral_R into your corresponding Breast bones. If you do not have Breast bones, then your Chest bone will suffice.

    • Place owo_suit_Arm_R and owo_suit_Arm_L into your corresponding UpperArm bones.

    • (OPTIONAL) Add a parameter called "owo_intensity" to the avatar parameters and also add it to the menu with a radial control.

  6. Every avatar is different in size therefore every avatar's collissions will be different. Go through each game object starting with owo_suit and adjust the VRC Contact Receiver script to change the size of the capsule collider. This is where the detection will occur, so you can make the area for each collision bigger or smaller if you'd like.

    In the example below you can see that this contact is for the right abdomen. I adjusted the capsule size to map out the right portion of the abdomen.

  7. If you are having trouble getting the OSC program to communicate with VRChat, checkout this troubleshooting doc that Wizard wrote for their TTS App: https://github.com/VRCWizard/TTS-Voice-Wizard/wiki/OSC-Troubleshooting