Jump to content
QuiveringT

[Solved] Playing Custom Radio Messages With Vanilla Radio Effects

Recommended Posts

I am making a mission where there will be custom sound dialog happening between multiple characters, including the player. I can effectively create custom text radio messages, but I want sound files to be played as well. Specifically, I am looking to achieve the Vanilla Arma 3 radio sound effects that are produced (i.e, the radio sound distortion, and play while the character is saying it in proximity. Exactly like the way orders are given in Vanilla Arma 3.).

 

I have tried all  the solutions present on the Wiki and other pages, and none of them worked. I keep getting an error message saying that the message is not found, when it is clearly defined in the appropriate places.

Share this post


Link to post
Share on other sites

There is not a lot of information on this subject, but all you have to do is utilize the kbTell related commands to get this to happen. I've seen a few examples and tutorials skirting the issue of getting the exact vanilla radio sound effects and the proximity fade while someone is speaking over the radio, but I have proven that using the kbTell system is identical to the vanilla dialogue system. In addition, I have seen multiple methods of this (i.e. cfgRadio) and other things, but this solution I am presenting is the only one that worked 100%.

 

This does require a bit of setup, and for that I recommend watching this tutorial that I personally have used and verified that it works. The only difference, is that the tutorial does not get a unit to speak over the radio, but only in proximity.

 

The tutorial is important to watch because it talks about specifically how to setup the code, and where to store the dialogue, and even how to lip sync your sound files with the actual units. After you watch the tutorial, you should have setup a "texts.bikb" file, where all of your dialogue will be stored and called.

 

[Actual code from my mission, [SP] Snowy Mountains, in which I utilize this system, and explanation.]

Spoiler

dude KbAddTopic ["introduction","texts.bikb","",""];
papabear KbAddTopic ["introduction","texts.bikb","",""];

dude KbTell [papabear,"introduction","dialog1a","SIDE"];
waitUntil {
dude KbWasSaid [papabear,"introduction","dialog1a",5];
};


//Dialog1

	class dialog1a
	{
		text = "Snow Leopard to Papa Bear, checking in. How copy, over?";
		speech[] = {"\dialog\sounds\dialog1a.ogg"};
		actor = "dude";
		variant = "";
		variantText = "";
		class Arguments {};
	};
	
	class dialog1b
	{
		text = "Papa Bear reads you loud and clear, Snow Leopard. Proceed to primary objective. No casualties this time.";
		speech[] = {"\dialog\sounds\dialog1b.ogg"};
		actor = "papabear";
		variant = "";
		variantText = "";
		class Arguments {};
	};
	
	class dialog1c
	{
		text = "Understood, Papa Bear, beginning mission now, out.";
		speech[] = {"\dialog\sounds\dialog1c.ogg"};
		actor = "dude";
		variant = "";
		variantText = "";
		class Arguments {};
	};
	

 

Some things to note:

  • All you need to do to get these sounds to play over the radio is add the appropriate radio channel in the call code, seen at the beginning of this spoiler.
  • To get the character to say something with subtitles but not over a radio channel, change "SIDE" to "DIRECT".
  • How to trigger multiple conversations: I am taking the simple approach and creating an individual script for each conversation I want to happen.  The first section of code in this spoiler is taken directly from a script called "dialog1a.sqf", in which the above conversation happens.
  • You don't need to add separate topics for each conversation. I was lazy and just used "introduction" for all of them and it worked fine.
  • I'm fairly certain that you don't need to have the character who says the dialog in the "actor" slot in the "texts.bikb" classes. I believe I have tested this and it worked fined, but nothing a simple experiment wouldn't solve.

[To lip sync]

The tutorial also goes into detail on that.

  • Thanks 3

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

×