GithubHelp home page GithubHelp logo

xenira / techtonicavr Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 0.0 96.75 MB

VR Mod for techtonica

Home Page: https://thunderstore.io/c/techtonica/p/3_141/TechtonicaVR/

License: GNU General Public License v3.0

Shell 0.07% C# 97.72% ShaderLab 2.20%
bepinex techtonica vr vr-mod mod flat2vr

techtonicavr's Introduction

Techtonica VR Mod

1. Prerequisites

  • Version 0.4.0-c of the game. As the game is still in early access, this mod may not work with future versions of the game. If you encounter any issues, please create an Issue.

  • BepInEx version BepInEx Version

  • PiUtils mod. Is included in the github release and as as an external dependency in the thunderstore release.

  • TTIK mod. Is included in the github release and as an external dependency in the thunderstore release.

  • PiVRLoader mod. Is included in the github release and as an external dependency in the thunderstore release.

2. Setup

Important
After installing the mod, you need to restart the game for the mod to take effect. Let the game load into the main menu before restarting it.

You can install the mod from Thunderstore or install it manually:

2.1. BepInEx

  1. Download the latest 5.x release of BepInEx from the Releases page.

  2. Extract the downloaded archive into the game’s installation directory.

  3. Run the game once. BepInEx should be installed automatically.

2.2. VR Mod

  1. Download the latest release (v2.0.0) of this mod from the Releases page.

  2. Extract the downloaded archive.

  3. Copy the BepInEx and Techtonica_Data folders to the Techtonica folder in steamapps/common directory.

  4. Run the game. The mod should be loaded automatically by BepInEx.

2.3. Dependencies

The github release bundles the dependencies with the mod. The thunderstore release does not include the dependencies. You need to install them separately or use a mod manager that can install dependencies.

2.3.1. PiVRLoader (Required)

This mod requires the PiVRLoader mod to be installed. This mod performs most of the VR specific tasks like setting up the VR camera and controllers. It also provides some utility functions that are used by the VR mod.

2.3.2. TTIK (Required)

This mod requires the TTIK mod to be installed. This mod adds inverse kinematics (IK) to the game. This is required to render the player’s body in VR. It also allows both VR and non-VR players to see the player’s body movements. When playing co-op, the host needs to have this mod installed. For other non-VR players the mod is optional.

2.3.3. PiUtils (Required)

This mod requires the PiUtils mod to be installed. This mod provides some utility functions that are used by the VR mod.

2.3.4. Audio Fix (Optional)

Teleport and Snap turn have audio cues that are not played unless Tobey.UnityAudio is installed. You can install it from Thunderstore or the GitHub Releases page.

To manually install the UnityAudio extract the BepInEx folder from the downloaded archive into the game’s installation directory.

2.4. Disabling the Mod

To disable the mod change the Enabled under [General] value in the de.xenira.techtonica.cfg file in the BepInEx/config folder to false.

2.5. Uninstalling the Mod

To uninstall the mod remove the mod’s files from the BepInEx/plugins folder. This should be the following files:

  • 'techtonica_vr' folder

If you installed the audio fix, remove the BepInEx/patches/Tobey/UnityAudio and BepInEx/plugin/Tobey/UnityAudio folder from the game’s installation directory.

There will be some leftover files in the Techtonica_Data folder. To clean those up, delete the folder and verify the game’s files in Steam. This will redownload the game’s files and remove any leftover files. This is not strictly necessary but it will keep your game folder clean.

3. Controls

To view and edit the controls, open the SteamVR dashboard and click Controller Bindings. The game should be listed as Techtonica VR. You can edit the controls there. The mod includes default bindings for the Valve Index Controllers (Knuckles) and the Oculus Touch Controllers. Only the Knuckles bindings have been tested as I don’t own a Quest.

3.1. Motion Controls / Interactions

Toggling the Headlamp

There are two Headlamps. One on the player’s head and one on the right shoulder. To toggle the head mounted lamp, move your right hand on top of your head and press the Use key (Right Trigger). For the shoulder lamp, move your right hand next to your right ear and press the Use key (Right Trigger).

4. Current State

While the mod is in a playable state, it is still in early development. Some features are still missing and there are some known issues. Other things might be a little yanky or not work as expected.

4.1. Working

  • Rendering of the game world with 6DOF Tracking

  • Tracking of the player’s head and hands

  • Smooth locomotion and turning

  • Comfort options (Teleportation, Snap turning, Vignette)

  • Basic controller bindings (Although they might not be optimal)

  • Controller haptics

  • Smooth turning

  • UI

  • IK with coop support and finger tracking (TTIK)

4.2. Missing

  • Gesture support (e.g. Mining using pickaxe motion)

  • Object outlines. Disabled for now as the shader is broken in VR.

  • Ability to switch primary hand (#153)

  • Ability to yeet paladin down the waterfall

  • Hand crank using uhhhhh…​ hands?

4.3. Known Issues

  • Haptics are played on both controllers by the game. One improvement would be to play them on the hand that is actually holding the tool.

  • The game is locked to 60fps when running in windowed mode. This is based on the refresh rate of your monitor. To unlock the framerate, switch to fullscreen mode. (#10)

4.4. Cool stuff to try

  • Tobii eye tracking for dynamic foveated rendering

5. Configuration

The configuration file is located in BepInEx/config/de.xenira.techtonicavr.cfg. You can edit it using a text editor like vim.

Note
Some configuration options moved into the Pi VR Loader mod. Please refer to the PiVRLoader documentation for those options.

5.1. Resetting the Configuration

To reset the configuration, delete the de.xenira.techtonicavr.cfg file in the BepInEx/config folder. The mod will create a new configuration file with the default values the next time you run the game.

To reset only a specific section, delete the section from the configuration file. The mod will create a new section with the default values the next time you run the game.

5.2. Configuration Options

General
Enabed

Enables or disables the mod. Default: true

Input
Smooth Turn Speed

Speed of smooth turning. Default: 90

Comfort
Snap Turn Angle

Angle of snap turns. Default: 30

Vignette Enabled

Enables or disables vignette. If this is disabled the other vignette effects will be disabled as well. Default: false

Vignette On Teleport

Enables or disables vignette when teleporting. Default: true

Vignette On Smooth Locomotion

Enables or disables vignette when using smooth locomotion. Default: true

Vignette On Snap Turn

Enables or disables vignette when using snap turning. Default: true

Buttons
Long Press Time

Time in seconds before a button press is considered a long press. Default: 1

UI
Menu Spawn Distance

Distance of the menu from the player. Default: 0.8

Menu Scale

Scale of the menu (X/Y/Z). Default: {"x": 0.001,"y":0.001,"z":0.001}

Inventory and Crafting Menu Scale Override

Scale of the inventory and crafting menu (X/Y/Z). This menu has different scaling and needs separate config. Default: {"x": 0.001,"y":0.0005,"z":0.001}

Menu Downward Offset

Offset of the menu in the downward direction. Default: 0.2

Graphics
Display Body

Enables or disables rendering of the player’s body. When false only hands are rendered. Default: true

6. Troubleshooting

If you encounter any issues while using this mod, please check the BepInEx console for any error messages. You can also report issues on the Issues page of this repository.

6.1. Q&A

  1. Why is my framerate locked to 60fps?

    The game is locked to x fps when running in Windowed mode. This is based on the refresh rate of your monitor. To unlock the framerate, switch to fullscreen mode. (For now)

  2. I am experiencing periodic stuttering / freezes. What can I do?

    This is most likely caused by autosave. Try setting the autosave interval to a higher value using the AutoSaveConfig mod.

  3. The games performance is bad. What can I do?

    Try lowering the graphics settings. VR is very demanding and the game is not optimized for VR. While I am working on improving the performance, there is only so much I can do.

  4. Does this mod work with Gamepass?

    Yes, the mod needs to be installed in Gamepass/Techtonica/Content.

  5. Why is the mod not open source?

    It is. You are looking at the source right now (duh!).

  6. Why is the mod not on NexusMods?

    I don’t like NexusMods. I don’t like their ToS and I don’t like their mod manager. I don’t want to support them.

7. License

This mod is licensed under the GNU General Public License v3.0 (GPL-3.0).

Contents of the unity, tools and libs folders are licensed under their respective licenses.

8. Disclaimer

This mod is not affiliated with the game’s developers Fire Hose Games, Unity Technologies or Valve Corporation. All trademarks are the property of their respective owners.

techtonicavr's People

Contributors

xenira avatar dependabot[bot] avatar

Stargazers

 avatar  avatar Trevor Jones avatar suP! avatar Alexander Samuelsson avatar  avatar

Watchers

 avatar Farmboy0 avatar  avatar

techtonicavr's Issues

[FEAT] Add grab as alternative to auto scroll

Is your feature request related to a problem? Please describe.
Currently scrolling is handled by moving the cursor to the edge. Clicking and dragging would be a great alternative and maybe future default way of handling this.

[FEAT] Add comfort options

Is your feature request related to a problem? Please describe.

Currently only smooth movement and turning is supported. Comfort options would be great.

Describe the solution you'd like

  • Teleportation
  • Snap turning
  • Vignette

[FEAT] Improved menu interaction

Is your feature request related to a problem? Please describe.

Currently menus use controller bindings. It would be great to point and click.

Describe the solution you'd like

General stuff:

  • Add laser pointers
  • Change canvases to world spaced
  • Add collision detection and cursor
  • Add drag n' drop

Menus fixes:

  • Allow selecting hotbar items
  • Allow reordering of hotbars
  • Allow move between inventory and hotbar
  • #57
  • Allow drag'n'drop in inventories

[FEAT] Add default bindings for Quest controllers

Is your feature request related to a problem? Please describe.

Currently there are no default bindings for quest controllers.

Additional context

As I don't own a Quest a contribution would be welcome. Otherwise Ill create a untested config.

[BUG] Save icon is not visible

Describe the bug
Save icon is not visible in VR

To Reproduce
Steps to reproduce the behavior:

  1. Play
  2. Game auto saves
  3. Icon is not rendered

Expected behavior
Save icon is shown in lower right corner

Screenshots

[BUG] Frequency UI to low

Describe the bug
Frequency UI is at the bottom of the screen. Should probably be attached to tool

[BUG] Production icon is not shown

Describe the bug
Icon displaying the current production is not shown on machines

To Reproduce
Steps to reproduce the behavior:

  1. Build machine
  2. Make it produce something
  3. Icon is not shown

Expected behavior
Icon is shown

[BUG] Invisible UI interactions

Describe the bug
After UI is closed interaction is sometimes still possible

Expected behavior
UI stops being interactable

[BUG] Map can not be moved

Describe the bug

The map ui seems to ignore controller buttons

To Reproduce
Steps to reproduce the behavior:

  1. Open map UI

Possible Solutions

  1. Fix/Figure out button mappings
  2. Spawn 3D version of map, that can be manipulated using hands (Prefered)

[BUG] Building ghosts block ui

Describe the bug
Building ghosts block ui

To Reproduce
Steps to reproduce the behavior:

  1. Select building
  2. Open Menu
  3. Point to an object near you

Expected behavior
Building ghosts are disabled while in menus

[FEAT] Show machine info

Is your feature request related to a problem? Please describe.

Machine info should be displayed at target position

[DOC] Update README to include downloading and installing Tobey.UnityAudio for manual installation

Now that you've updated TechtonicaVR so that it doesn't directly distribute Tobey.UnityAudio as part of the package, you'll probably want to update the install docs to let manual installers know they need to download and install it :)

Probably best to link people to the releases page of the Tobey.UnityAudio GitHub (https://github.com/toebeann/Tobey.UnityAudio/releases) for consistency with your README

Cheers 😃

[FEAT] Add FBT

Is your feature request related to a problem? Please describe.
Game includes finalIK, make use of it

[FEAT] Add finger tracking

Is your feature request related to a problem? Please describe.

Current hand models don't have a skeleton and don't utilize the Knuckles finger tracking.

Describe the solution you'd like

  • Add skeleton to model
  • Bind to controllers

[BUG] Game shows keybord / gamepad / broken button prompts

Describe the bug

Game shows button prompts for keyboard / controller or entirely broken prompts

Expected behavior

Multiple solutions would work here:

  1. Remove button prompts (Steam VR has an inbuilt UI to display key mapping)
  2. Show generic VR controller icons
  3. Somehow retrieve controller specific ones

Additional context
2 + 3 would require to query the current mapping

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.