Coder Social home page Coder Social logo

shiyongde / dragonbornspeaksnaturally Goto Github PK

View Code? Open in Web Editor NEW

This project forked from doughamil/dragonbornspeaksnaturally

0.0 1.0 0.0 802 KB

SkyrimVR mod for dialogue and other voice control

C++ 90.81% C 7.73% 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

swimmingtiger avatar doughamil avatar odie avatar

Watchers

James Cloos avatar

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.