Jump to content
Pomi Git

Configuring new voice profile

Recommended Posts

I'm looking to use a custom voice for characters in a mod I'm working on. So by this I mean the standard voice a soldier uses whenever an instruction is given, responses, etc.

I've spent a fair amount of time looking through the games pbo's and configs. I can see CfgVoices, CfgIdentities and CfgFaces are relevant and I've also found all the .ogg files needed for the various commands and responses for each voice profile e.g Male01.

Despite this I cant quite figure out what exactly I need in a config file to use my own voice sound files. I had a crack and ended up with soldiers with no voice. "LanguageENG" seems relevant but I cant see where this is defined.

I've trawled the forum and see this has been asked in the past but no one appears to have been able to provide a complete answer. And there is nothing I could see in the BIS wiki.

Does anyone know exactly whats needed?

Cheers

Pomigit

  • Like 1

Share this post


Link to post
Share on other sites

CfgVoice >> [VoiceClass] >> protocol defines which radio protocol will be used (e.g., "RadioProtocolENG"). Protocol class can then be found directly in the config root.

I must warn you that protocol configuration is one of the most complicated things in Arma 3, so I suggest to take existing protocol structure and replace it with custom files. The list of all words to be recorder is in [ProtocolClass] >> Words. For example official protocol has 691 words. Have fun ;)

  • Like 4

Share this post


Link to post
Share on other sites
CfgVoice >> [VoiceClass] >> protocol defines which radio protocol will be used (e.g., "RadioProtocolENG"). Protocol class can then be found directly in the config root.

I must warn you that protocol configuration is one of the most complicated things in Arma 3, so I suggest to take existing protocol structure and replace it with custom files. The list of all words to be recorder is in [ProtocolClass] >> Words. For example official protocol has 691 words. Have fun ;)

Thanks for responding Karel. I may need a little more info. Here is what I have in a config file:

class CfgPatches
{
class MYMOD_Dubbing_Radio_F
{
	units[] = {};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {};
};
};

class CfgVoice
{
voices[] = {"MYDUB01ENG"};
micOuts[] = {"micOut1","micOut2","micOut3","micOut4","micOut5","micOut6"};
preview = "preview.ogg";
default = "MYDUB01ENG";
class ENG;
class MYDUB01ENG: ENG
{
	directories[] = {"\mymod\myvoice\","\mymod\myvoice\"};
	scope = 2;
	displayName = "Test Voice";
	author = "Pomigit";
};
};

"mymod" is the pbo directory where I have my modified version of the sound files for "male01". Is this all I need to define it?

If so, what do I then need to put in the unit class to get him to use it? I assumed I needed to define some sort of identity.

Cheers

Pomigit

Edited by pomigit
  • Like 2

Share this post


Link to post
Share on other sites

Figured it out and got it working. For anyone else interested, here is a full breakdown guide on what you need to do:
 

  • depbo 'dubbing_radio_f_data' and copy one of the voice profiles e.g Male01 to your mod folder
  • You'll note the voice profile contains a series of folders for radio protocols e.g RadioProtocolENG, RadioProtocolENGB, etc. You only need one, unless you intend to do different versions. So stick with RadioProtocolENG and delete the rest
  • Rename the folder "Male01" to your own preferred name (ive used Sample01 below)
  • Within RadioProtocolENG you will see more folders e.g Combat, CombatContact, etc and within these are the sound files you need to replace.
  • Note: its really important you dont change the file structure after "Male01". In particular you need to keep the folder "RadioProtocolENG" and this needs to be last folder before the standard sound file folders. So in my example the folder structure is 'mymod\Sample01ENG\RadioProtocolENG\'. This was my key mistake.
  • The most time consuming part of this process; go through every single one of these sound files and replace them with your own version. They need to be in .ogg file format
  • Create a new config file and copy/paste my sample below
  • Rename all the class and reference names to your own preference. You need both an identity and a voice class defined in order to use the new voice profile.
  • Within the voice class, update 'directories' with your voice profile folder path excluding 'RadioProtocolENG';. It needs to be stated twice. No idea why
  • Open the config file for your mod which contains your units and update identity types to reference the identity you created. So e.g in my case its "identityTypes[] = {"SampleID"};
  • Lastly and most obvious. Recompile your mod and it should work

Sample voice config is as follows:

class CfgPatches
{
class samplemod_Dubbing_Radio_F
{
units[] = {};
weapons[] = {};
requiredVersion = 0.1;
requiredAddons[] = {};
};
};
class CfgIdentities
{
class SampleID
{
name = "Sample ID";
face = "whiteHead_01"; // doesnt have to be this one, you can use any head you want. Just look up the class names
glasses = "None";
speaker = "Sample01ENG"; // your voice class defined below
pitch = 1;
nameSound = "Kerry"; // I believe this ties to the sound file for Kerry, I'm guessing you can change this but I havent bothered
};
};

class CfgVoice
{
voices[] = {"Sample01ENG"};
micOuts[] = {"micOut1","micOut2","micOut3","micOut4","micOut5","micOut6"};
preview = "preview.ogg";
default = "Sample01ENG";
class ENG;
class Sample01ENG: ENG
{
protocol = "RadioProtocolENG";
directories[] = {"\mymod\Sample01ENG\","\mymod\Sample01ENG\"};
identityTypes[] = {"SampleID"};
scope = 2;
displayName = "Sample Voice";
author = "Pomigit";
};
};
};

Within the units class you add:
identityTypes[] = {"SampleID"}; // Change to your identity class

Final note: one thing I couldn't figure out is how to create a group of voice profiles and Id's which are randomly picked by a unit. What I have above locks in a unit to use one specific face and one specific voice Edited by pomigit
  • Like 3

Share this post


Link to post
Share on other sites

Hi Karel (or anyone else for that matter)

 

I've subsequently successfully deployed a voice profile for the star wars mod however I have a problem I'm struggling to resolve.

 

The voice is being picked up by all sides. I've tried a few different tweaks to the config and nothing seems to fix it. The outcome I desire is to have the voice profile available only to units in the mod. Specifically within the Empire faction.

 

Any ideas of how I can resolve this?

Share this post


Link to post
Share on other sites

I think you forgot to define identityTypes[] in your cfgVoice - it defines wich units should use the voice profile.

Share this post


Link to post
Share on other sites

I think you forgot to define identityTypes[] in your cfgVoice - it defines wich units should use the voice profile.

 

Hey, thanks for the response. That was my first thought, I noticed it was missing from the released version. But adding it didnt resolve the issue.

Share this post


Link to post
Share on other sites

Thanks for figuring that out! 

 

Not sure if you fixed the issue with all units getting the identity instead of just the modded units. If not i think this is how to fix that

 

voices[] + = {"Sample01"};

 

The + means it does not overwrite the whole voices class but instead it keep the original entries and adds the new class on top

Share this post


Link to post
Share on other sites
On 3/12/2015 at 10:27 AM, Pomi Git said:

 


Final note: one thing I couldn't figure out is how to create a group of voice profiles and Id's which are randomly picked by a unit. What I have above locks in a unit to use one specific face and one specific voice

 

 

Were you able to fix it so that the units aren't stuck with one specific face? I got my voice working however it only works when you specify it in editor in the identity section, and it doesnt work on the unit that you start out playing as, It only works on other units....

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×