Arcane University: Voice Line Implementation
This guide covers how to implement voice files, starting from raw audio and ending with lip-synced lines in-game.
Contents
Introduction
What's Covered
This guide will teach you how to add voice lines to your mod or modding project. It will cover:
- Creating a voice type and adding it to your NPC.
- Taking audio submitted to you by a voice actor (or recorded yourself) and cutting it into individual files using a label track.
- Lip syncing the lines.
- Compressing them to Skyrim’s “.fuz” format.
What's NOT Covered
This guide will NOT cover how to implement the dialogue itself—that is, Creation Kit entries for Dialogue Branches, Topics, TopicInfos, and so on. It is assumed for this guide that you already have all of this implemented. Guides for dialogue implementation can be found here:
Additionally, this guide will not teach you how to master the audio (Equalization, noise reduction, etc…). It is assumed that this will be done at some point prior to lip syncing & compression, although the exact point in time does not matter so much. Also, note that "Compression" in this case means "File Compression", unrelated to audio mastering.
Before You Start
What you need before starting this guide:
- The audio file(s) for the voice you will be implementing
- A script of the lines your voice actor read, ideally with filenames for each line
- You may need a spreadsheet editor, such as Microsoft Excel or OpenOffice Calc, for this. Excel is expensive, so if you don't already own it I recommend open-source software like OpenOffice or LibreOffice.
- Audacity, a free audio-editing program. You can download it here: https://www.audacityteam.org/
- FonixData.cdf for lip syncing. This specifically should be in the Data/Sound/Voice/Processing/ folder in your Skyrim directory. This file is reportedly created when the Creation Kit is installed; if not, then see here: https://www.nexusmods.com/skyrimspecialedition/mods/40971
- If you are using Skyrim Special Edition then you will need to download and install Nukem’s CK fixes: https://www.nexusmods.com/skyrimspecialedition/mods/20061. (If you are using the SSE CK, you should be using this anyways—trust me.)
Audio File Naming Convention
Before I get started, I want to briefly talk about voice line filenames. This isn’t really a “step” in implementation, more like an explainer.
In short: Voice filenames are implicit. They are defined by the quest & topic they reside in, as well as their FormID (load-order independent). What this means is that when you have a line of dialogue in-game, you don’t get to pick what audio file corresponds to it in a file selection window, the way you would for a sound effect, or the way you’d pick a mesh for a static object. Instead, when you create a line of dialogue in the Creation Kit, the filename for that line is immediately defined for you.
This also means that if any aspect of the line changes (e.g. it moves between quests, between topics, or its Form ID changes (such as during a merge)) then the assigned filename will change as well. For this reason, it is often easiest to wait until dialogue implementation is finalized before implementing the voiced lines.
The exact way that the filename is defined isn’t important here, only that it’s not something you get to control. (If you are interested in how it’s defined, look at the “InfoFileName” function inside xEdit’s “Export Dialogues” function.)
There are two main ways to find what a voice line’s filename is. The first is to navigate to the Response Window and look at the “Voice Filename”.
File:QI-VoiceLines-Fig1-ResponseWindowFilename.png
The second is to use the Creation Kit’s “Export Dialogue” function. You can reach this by selecting “Filtered Dialogue” from the “Character” menu on the Creation Kit’s menu bar. Then, filter for the NPC or Voice Type that you want, and click “Export Dialogue.” This will create a text file in your Skyrim directory. You should open this and copy it’s contents to a spreadsheet editor, such as Excel, Libre Office Calc, Google Sheets, etc… This will contain the lines, filenames, and other dialogue related information.
File:QI-VoiceLines-Fig1-ResponseWindowFilename.png
Alternatively, if you are a part of a larger project, that project may have it’s own method of generating scripts and matching lines to filenames.
In a similar vein, the folder in which your voice lines will be placed is also implicitly defined, based on your plugin and voice type names—more on this in the next section.
Create SEQ file
Right click on your .esp, go down to Other and then click 'Create SEQ File'.
File:QI-VoiceLines-Fig1-ResponseWindowFilename.png
Success message
Wait a moment and you should see the log post a successful message. If not, try again or relaunch xEdit.
Check and distribution
You are done. Go to Skyrim\Data\seq
and you should see the name of your .esp. You can now run it in-game, provided you've set it up properly in the CK, of course. Remember to include this file with the archive when uploading to the Nexus or Steam Workshop.