Implementation
Overview

Basic Concepts

We use the Creation Kit (CK) for all of our audio implementation needs, no other middleware*. The Creation Kit is Bethesda's proprietary software and official learning resources are scarce. It can definitely be an adjustment! We recommend following any basic level design tutorial to get your feet wet.

To install the build, please follow the instructions on the Installation Guide. If you have any issues with getting the game installed, please reach out on the Discord for help.

As an implementer, you will create a "plugin" which contains all of the changes you want to make. Once a month, you will submit your plugin to be merged into the build. Shortly afterwards, a new build will be created with everyone's changes, and the process repeats. More information on plugins and merges is below.

* Technically, we do use Creation Kit Platform Extended, which is an open source project that adds a few bells and whistles to the Creation Kit.

Creating a Plugin File (.esp)

When working on Skywind, you should always be saving your work into a plugin file (extension .esp). This file is what is submitted for merge at the end of each monthly development cycle. It is important that your plugin is correctly parented by the Skywind master file (extension .esm).  Here are the steps for creating a new plugin file to house your work.

[myName]_[nextBuildNumber].esp

// Examples

gingerstork_0.9.9.62.esp

ganz_0.9.9.62.esp

When loading your plugin in CK: select it, set it as active, and confirm that the parent masters are correct.

How to Merge

Once a month, all Skywind developers submit their changes to be merged into the main build. It is important that every developer submit their changes (even if they are unfinished!) so that we are all in sync, working off of the same build. There is a specific delivery format that is required for your content to be merged correctly.

You are expected to deliver an archive (.zip or .7z) containing all of the assets relevant to your changes. Typically, that means you need to include your .esp plugin as well as any new or modified audio files. Files must be put into a folder structure that matches the build's, so that the merger can unzip your archive directly into their Data folder. For example...

.

└── ganz_0.9.9.62.zip

    ├── ganz_0.9.9.62.esp

    └── sound/

        └── fx/

            └── morrowind/

                └── water/

                    ├── splash_01.wav

                    └── splash_02.wav

Once your deliverable is ready, upload it to our shared Google Drive. Then, look at the pins in the #dev-chat Discord channel to find the merger sheet. Follow the instructions there -- you'll be adding a link to your work and describing your changes in the changelog.

The end! If there's any issues with your submission then someone will reach out. Within a few days, a new build will be released. You must update your build and create a fresh new plugin or else weird conflicts might happen.

Sound Categories

Sound categories are similar to a group or bus on a mixing console. With it you can control sound descriptors that are linked to it en masse. These also determine whether the sound will play when the game is paused, when the player is underwater.

Sound Descriptors

This is where you specify the name of the ID of the sound effect, the output model, category and a few other properties of the sound. You can also set up conditions for the sound to play.

It is important to note that you have to end the name of the sound effect with the letters LP if the sound is a loop (and also select that it is a loop sound right below the static attenuation settings).

Note that the files specified in the sound descriptor will always play in sequence, top to bottom.

Examples of conditions: time of day, player gender, player race, player HP and many more.

Sound Descriptor Settings

Sound Output Models

All sound descriptors use output models. You can set up a sound to act as a mono point-source sound using HRTF (head-related transfer function) for proper placement relative to the camera/listener, or as a stereo sound with radius or no radius (i.e. no apparent position), or even with specific speaker assignments and levels in mono, stereo, or surround formats.

There will be enough of these created that you will not need to create additional ones when implementing sound effects.

Sound Output Model Settings

Reverb Parameters

These settings define the reverb parameters that will be applied to any and all sounds played in an acoustic space that uses these reverb parameters.

You can test the reverb parameters using any sound descriptor. Just click the ‘test’ button and select the sound descriptor you want to test, and click play.

Reverb Parameter Settings

Acoustic Spaces

Acoustic spaces link the reverb parameters and sound descriptor sets, which are defined in the regions tab, together, to be used in an interior cell (or exterior if you want to override the default reverb settings, but not the sound descriptors that play in that area).

You can add a looping sound that will play whenever you are in that acoustic space.

You can also create an acoustic space cube in any interior to override the acoustic space that is applied via the cell menu. You can do the same for exterior areas, but it will not override the sound sets used in that area, only the reverb parameters.

Exterior Worldspace SFX 101

For exterior areas the workflow is fairly simple:

To open up the region editor, click on World > Regions on the toolbar of the CK. We want to be editing the Skywind worldspace which is called “WrldMorrowind”. Click on the little downwards arrow and select “WrldMorrowind” from the dropdown list.

Once we have the correct worldspace selected, select the correct region from the list. In this instance I am doing Bitter Coast sounds, so I  selected the “0BitterCoastRegion”. Once you have your region selected, click on the sound tab, and check the box ‘Enable this type of data’ if you havent already.

Now its a simple case of dragging the sound descriptors into the white box. Once you’ve done that, you can double click on any sound there and tweak the percentages of the sound effect playing randomly while you are in the region.