GithubHelp home page GithubHelp logo

doughamil / dragonbornspeaksnaturally Goto Github PK

View Code? Open in Web Editor NEW
19.0 6.0 21.0 712 KB

SkyrimVR mod for dialogue and other voice control

License: MIT License

C++ 90.64% C 7.90% C# 1.02% CMake 0.29% Batchfile 0.14% PowerShell 0.01%

dragonbornspeaksnaturally's Introduction

Dragonborn Speaks Naturally

DSN is composed of two projects, a plugin and a background service.

The dsn_plugin is a DLL written in C++ which hooks into SkyrimVR/SE and communicates with the background service.

The background service dsn_service is a Windows application written in C# which uses Microsoft's System.Speech API to do speech recognition. It communicates with the dsn_plugin over stdin/stdout.

Build dsn_service only

You need a Visual Studio with .NET Desktop Development modules.

Then enter dsn_service directory and double-click dsn_service.sln, a Visual Studio C# project will be loaded.

Build dsn_plugin only

You need a Visual Studio (with C++ Desktop Development module) and a CMake.

Then enter dsn_plugin directory and double-click configure.bat, a Visual Studio project will be created by Cmake and loaded automatically.

Auto install dlls to game directory after building

When you run configure.bat for the first time, you are asked about the installation path of SkyrimVR and SkyrimSE. If you want to enable the automatic installation feature, please provide the root directory of your games. If you want to disable the installation, just press Enter.

An example:

Set plugin install directories after building:
SkyrimVR game root path (empty to disable installation): E:/Games/SteamLibrary/steamapps/common/SkyrimVR
SkyrimSE game root path (empty to disable installation): E:/Games/SteamLibrary/steamapps/common/Skyrim Special Edition
CMakeFlags: -DSVR_DIR="E:/Games/SteamLibrary/steamapps/common/SkyrimVR" -DSSE_DIR="E:/Games/SteamLibrary/steamapps/common/Skyrim Special Edition"

And these commands will be execute for the example:

md build
cd build
cmake -A x64 -DSVR_DIR="E:/Games/SteamLibrary/steamapps/common/SkyrimVR" -DSSE_DIR="E:/Games/SteamLibrary/steamapps/common/Skyrim Special Edition" ..
start dsn_plugin.sln

A file named install-path.ini will be created after the first running of configure.bat. You can delete it and run configure.bat again to reset the path, or edit it directly.

How the auto installation works

The installation will be triggered each time you build dsn_plugin_xx.

Notice: The Visual Studio project INSTALL is generated by CMake for the project PACKAGE which is used to generate a FOMod/NMM/Vortex Compatible ZIP MOD file. It will only copy files into the build/package_tmp directory. It is different from the auto install mentioned here.

Directory structure of dsn_plugin

name description
dsn_plugin/ The code of the plugin itself.
sse/ The SKSE64 codes for linking to dsn_plugin to generate a SkyrimSE-compatible DLL.
svr/ The SKSEVR codes for linking to dsn_plugin to generate a SkyrimVR-compatible DLL.
CMakeLists.txt A project description file used by the CMake build tool.
configure.bat A script to create a Visual Studio project in the build directory via CMake and load it.
build/ After you run configure.bat, the directory will be created automatically to hold the Visual Studio project and all build outputs. You can delete this directory at any time and re-run configure.bat to generate it. Files in this directory should not be commited to the repository.

About Visual Studio project dsn_plugin_se and dsn_plugin_vr

They are the same directory and have the same codes. Modifying the code in one place is equivalent to modifying the other.

The only difference between the two is that they linked to different SKSE libraries and header files.

Build dsn_service and dsn_plugin at the same time

Double-click configure.bat in the root directory of the repo, a Visual Studio project will be created by Cmake and loaded automatically.

Generate FOMod/NMM/Vortex Compatible ZIP Package

You can build the Visual Studio project PACKAGE to Generate a ZIP Package for dsn_service and dsn_plugin.

A fomod directory will be added to so the ZIP can be installed via NMM and Vortex.

The package name will be build/DSN-0.1.1-win64.zip.

Cannot build dsn_service because some assemblies missing

3>------ Build started: Project: dsn_service, Configuration: Debug x64 ------
3>C:\work\DragonbornSpeaksNaturally\dsn_service\dsn_service\CommandList.cs(1,7,1,16): error CS0246: The type or namespace name 'IniParser' could not be found (are you missing a using directive or an assembly reference?)
3>C:\work\DragonbornSpeaksNaturally\dsn_service\dsn_service\Configuration.cs(64,24,64,31): error CS0246: The type or namespace name 'IniData' could not be found (are you missing a using directive or an assembly reference?)
...

For technical reasons, CMake can't automatically restore the NuGet package and update references for project dsn_service.

If you met assembly missing, please restore and reinstall NuGet packages manually:

  1. open NuGet Package Manager Console first:

    Tools > NuGet Package Manager > Package Manager Console

  2. A prompt box will appear:

    Some NuGet packages are missing from this solution. Click to restore from your online package sources.

    Click the restore button. If you can't find it, just skip this step. The restore may be finished automatically.

  3. Run this command in your NuGet Package Manager Console:

    Update-Package -reinstall -projectname dsn_service
  4. Then you can build dsn_service normally.

dragonbornspeaksnaturally's People

Contributors

doughamil avatar odie avatar swimmingtiger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

dragonbornspeaksnaturally's Issues

The Algorithm

I am talking about this mod in my college presentation, as i wanted to talk about the future of gaming. but to do so i must show the algorithm which i don't have. i was hoping some one could provide it ??

SSE crash when teleport with a dialogue line

From usermx100 at NexusMods:

This newest build still has this major bug: CTD when submitting to goto jail or trying to enter the Dark Brotherhood Sanctuary. I love this mod but I'd really like to see this fixed. Thanks.

It seems an old issue within SSE. The cause of this issue seems to be that a teleport was triggered before the dialogue menu was closed, so dialogueMenu became a ghost pointer.

The Issue does not exist in SkyrimVR.

Sub Menu Shortcut Support

Great project! Is there a way to create voice binds to the sub menus in Skyrim?

I was able to open the standard menus which have keyboard shortcuts using the press key function in the ini, but I don't know of console commands to open the sub menus like, destruction, apparel, potions, etc.

This would be ultra handy.

Bethesda coded this into their XBOX 360 Kinect mod during Game Jam, but it's not available anywhere else.

https://en.uesp.net/wiki/Skyrim:Kinect_Commands

Feature: SkyUI filter voice input

Thought occurred to me the other day, it would be an awesome feature to use voice recognition for skyui inventory filter input. For instance while inventory is open, just say "filter: health" or "filter: whatever keywords", maybe also a "clear filter". I imagine that might require changes in both mods as you would need a way to pass the keywords from the one mod to the other unless SkyUI already has a means to accept such input. Though I imagine SkyUI would be happy to take a patch if needed. Just a random thought.

VR support?

thanks for the work you've done here.

Wasn't sure where to comment/ask - do the keypress commands integration work on VR?

Done a bunch of other mods for VR here, installing in a second and will be testing shortly. Happy to be a QA/test user if helpful.
(am hoping to use this in conjunction with way of the voice)

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.