Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/doughamil/dragonbornspeaksnaturally
SkyrimVR mod for dialogue and other voice control
https://github.com/doughamil/dragonbornspeaksnaturally
Last synced: about 1 month ago
JSON representation
SkyrimVR mod for dialogue and other voice control
- Host: GitHub
- URL: https://github.com/doughamil/dragonbornspeaksnaturally
- Owner: DougHamil
- License: mit
- Created: 2018-05-01T02:18:23.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-05-02T03:32:06.000Z (9 months ago)
- Last Synced: 2024-12-15T20:53:28.108Z (about 2 months ago)
- Language: C++
- Size: 695 KB
- Stars: 20
- Watchers: 6
- Forks: 21
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Dragonborn Speaks Naturally
==============================DSN is composed of two projects, a plugin and a background service.
The [dsn_plugin](dsn_plugin) is a DLL written in `C++` which hooks into SkyrimVR/SE and communicates with the background service.
The background service [dsn_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](dsn_service) only
You need a [Visual Studio](https://visualstudio.microsoft.com/) with `.NET Desktop Development` modules.
Then enter [dsn_service](dsn_service) directory and double-click `dsn_service.sln`, a Visual Studio C# project will be loaded.
## Build [dsn_plugin](dsn_plugin) only
You need a [Visual Studio](https://visualstudio.microsoft.com/) (with `C++ Desktop Development` module) and a [CMake](https://cmake.org/).
Then enter [dsn_plugin](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:
```bat
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/](dsn_plugin/dsn_plugin) | The code of the plugin itself.
[sse/](dsn_plugin/sse) | The [SKSE64](http://skse.silverlock.org/) codes for linking to `dsn_plugin` to generate a SkyrimSE-compatible DLL.
[svr/](dsn_plugin/svr) | The [SKSEVR](http://skse.silverlock.org/) codes for linking to `dsn_plugin` to generate a SkyrimVR-compatible DLL.
[CMakeLists.txt](dsn_plugin/CMakeLists.txt) | A project description file used by the `CMake` build tool.
[configure.bat](dsn_plugin/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](dsn_service) and [dsn_plugin](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](https://www.nexusmods.com/site/mods/4) and [Vortex](https://www.nexusmods.com/site/mods/1).
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:
```powershell
Update-Package -reinstall -projectname dsn_service
```4. Then you can build `dsn_service` normally.