A BepInEx plugin for Koikatsu Sunshine (KKS) that allows you to play both the main game and studio in VR. The difference from the official VR modules is that you have access to the full game/studio, while the official modules have limited features and spotty mod support.
Currently only the standing (aka room-scale) mode is fully supported.
The main game part is a fork/port of the KoikatuVR/KK_MainGameVR plugin developed by mosirnik, vrhth, KoikatsuVrThrowaway and Ooetksh.
The studio part is a fork of the KKS_CharaStudioVR plugin.
- Koikatsu Sunshine
- Latest version of BepInEx 5.x and KKSAPI/ModdingAPI
- SteamVR
- A VR headset supported by SteamVR
- VR controllers
- Make sure BepInEx, KKSAPI and all their dependencies have been installed.
- Download the latest release.
- Extract the zip into the game folder (where the abdata and BepInEx folders are).
- Create a shortcut to KoikatsuSunshine.exe and/or CharaStudio.exe, and add
--vr
to the command line.
Warning: This section was written for KK_MainGameVR and might not be accurate, especially in Studio.
This plugin assumes that your VR controller has the following buttons/controls:
- Application menu button
- Trigger button
- Grip button
- Touchpad
You may need to tweak button assignments in SteamVR's per-game settings if your controllers don't natively have these. See the Controller Support section for a list of known-to-work controllers.
In the game, each of the controllers has 3 tools: Menu, Warp and School/Hand. Only one of them can be active at a time. You can cycle through the tools by pressing the Application menu button. Each controller has a cyan icon indicating which tool is currently active.
When any of the tools is active, you can press and hold the Application menu button to see in-game help on button roles.
The menu tool comes with a little screen on which game menus, icons and texts are shown. You can use the other controller as a virtual laser pointer, and pull the Trigger to click on the screen. Most game interactions (specifically, the ones that don't involve touching 3D objects) are done this way.
Pressing the Grip button while the Menu tool is active causes the screen to be detached and left at the current position in the 3D space. Pressing it again reclaims the screen.
A laser pointer can also generate a right click (Touchpad right), middle click (Touchpad center) and scroll up/down (Touchpad up/down). You can also grab a detached screen by holding Grip. Press and hold the Application menu button while the laser is visible to see help about this.
The warp tool allows you to move around in the 3D space.
Use the touchpad to teleport. Before you finish teleporting, you can draw a circle along the rim of the trackpad (or similarly rotate the thumbstick) to change your orientation after teleporting.
Holding the Grip button takes you into grab action. Here you can move around by "grabbing" the world. If you additionally press Trigger, you can also rotate the world. Pressing both Trigger and the touchpad gives you the full power of general 3D rotation, allowing you to turn a wall into the floor, for example. Double click the touchpad to become upright again.
Grab action is also avaible in the school and hand tools.
These tools are collections of Koikatsu-specific action commands and simulated mouse/keyboard inputs. The hand tool is for H scenes, and the school tool is for all other scenes. Other than that, these two are similar to each other. The button mappings are configurable for each of them separately. The default for the school tool is:
- Trigger: Walk (Roam mode)
- Grip: Grab action
- Touchpad up: F3
- Touchpad down: F1
- Touchpad left: Turn left
- Touchpad right: Turn right
- Touchpad center: Right mouse button
For the hand tool:
- Trigger: Left mouse button
- Grip: Grab action
- Touchpad up: Mouse wheel scroll up
- Touchpad down: Mouse wheel scroll down
- Touchpad left: (unassigned)
- Touchpad right: Right mouse button
- Touchpad center: Middle mouse button
For touchpad inputs, you need to press the touchpad or click the thumbstick. Just touching the touchpad or tilting the thumbstick won't be recognized. An exception to this rule is mouse wheel scroll actions, which only require touching.
Warning: This section was written for KK_MainGameVR and might not be accurate, especially in Studio.
The school tool can be used when you need more complex interactions than simple mouse clicks.
There are also a few types of context-specific controls, where you can interact directly with 3D objects using the controllers. This type of interaction does not require any specific tool to be selected. The tool icon disappears when such an interaction is available.
Below is a list of situations that offer special controls.
In the Roaming mode, you can move around by using the school tool to walk (default: Trigger), and turn left and right (default: Touchpad left and right). You can also use the warp tool to teleport.
You can use the school tool to simulate ordinary mouse and keyboard inputs, e.g. right click (default: touchpad center) for interacting with an object.
Use the laser pointer (touchpad center) to open the middle-button menu.
You can crouch by lowering your viewpoint relative to the floor. To do this, you can either physically move your head or use grab action to bring the floor closer. This behavior can be disabled in the config.
When talking to a character, most interactions are done through the menu. In addition, you can touch or look at the character by putting one of the controllers at the position you want to touch/look at, then pulling the Trigger.
Caressing can be done in the same way as touching in talk scenes. Additionally, you can switch to a different mode of caressing by pressing the Application menu button with the controller in place.
Optionally, automatic touching can be enabled, so that you don't even need to pull the Trigger.
You can also kiss or lick the female by moving your head to the right place. This can be turned off in the config.
When changing location, you can use the green laser to point to a new location icon and pull the Trigger to confirm.
Warning: This section was written for KK_MainGameVR and might not be accurate, especially in Studio.
This plugin has a lot of configuration options. It is recommended that you use ConfigurationManager, which allows you to change settings of this plugin from within the game.
Alternatively you can manually edit BepInEx\config\mosirnik.kk-main-game-vr.cfg
with a text editor.
At the moment, most VR controllers seem to work out of the box with this plugin. Below is an incomplete list of the current support status. If your controllers are not listed here, please let us know if they work or not (either edit this file or create a new issue).
- Oculus Rift / Rift S / Quest 2
- Valve Index
- Vive
The following button assignments are needed:
- Enumlated trackpad: (remove assignments)
- B and Y buttons: Application Menu Button
- Joystick: Trackpad position & value
In addition, you need to make it "pretend to be Vive controllers".
You should be able to open the solution in Visual Studio 2019 and just hit Build to build everything.