Jump to content

VAC Friendly Radio Mod


Recommended Posts

VAC Friendly Radio Mod

by AJ.eightFive

v1.2

 

Summary:

- Supresses virtual pilot speech, leaving AI flight members, ATC, JTAC, Tanker, AWACS and Ground Crew speech intact.

- Eliminates the delay between issuing a command and receiving a response. Dialog with AI feels much more natural.

- Fixes several AI speech/audio bugs.

- Includes detailed VAC profile designed for more realistic speech interaction with AI.

- Restructures radio command menu, creating three static ATC recipient pages instead of a single dynamic one. This allows actual airfield callsigns to be used when building commands with VAC.

 

Description:

The purpose of this mod is to improve the player's experience when using the software VAC to issue radio commands. For an example of VAC being used in conjunction with DCS A-10C, please see Fish's post here.

 

With an unmodified DCS A-10C, every time the player issues a command through the radio menu, scripts generate appropriate phrases which are then spoken aloud by the virtual pilot. Several VAC users have expressed a desire to supress the virtual pilot's speech in order to enjoy a more believable interaction with the AI entities.

 

This was previously accomplished by deleting all sound files from the DCSInstallDir\\Sounds\Speech\Sound\ENG\DCS A-10C\Player\ folder (which I still recommend for this mod... just in case). Unfortunately, for long messages (such as the JTAC check-in message) this would result in a large delay between when the command was issued, and when the AI would respond. The speech scripts automatically generate a "buffer" to allow the speech audio to finish playing before the response is generated or new commands can be issued. The duration of the "buffer" is based on the length of the message subtitle string which is still produced even when the player sound files are removed.

 

This mod eliminates the "buffer" by changing the speech scripts so that subtitles and audio messages are no longer generated for player issued commands. Now AI responses will begin almost immediately after the player issues the command.

 

This mod also restructures the radio command menu, creating three static ATC recipient pages instead of a single dynamic one which sorts ATC recipients by distance. This allows actual airfield callsigns to be used when building a VAC profile. For example, with the VAC profile included, the user can say "Anapa One One, Enfield One One, Inbound For Landing" where previous VAC profiles could only use a generic callsign such as "Tower" or "ATC One" to issue the desired command due to the dynamic nature of the ATC recipients list. One of my goals for future versions of this mod is to extend this behavior to dynamic entities such as JTAC, Tankers and AWACS.

 

Finally several problems with the default speech scripts that cause the AI responses to produce no speech audio have been addressed. Examples are the Tanker's "Cleared to pre-contact" message, and AWACS' "Vector to Tanker" and "Vector to Home Plate" messages. If you are aware of any other AI speech that does not correctly generate audio, please let me know and I will try to find a fix for future versions of this mod.

 

This mod contains a VAC profile which I recommend using or basing your own custom VAC profiles upon when using this mod.

 

Enjoy!

 

Notes:

- I realize receiving instant responses isn't a perfect solution either, as in real life there is always a delay while the other party thinks about their response. I intend to experiment with ways to gracefully create such a delay and will tie the delay length with the complexity of the response such that a simple response such as "roger" will be received almost instantly, amd a more complex response such as a 9-line briefing, will take considerably longer.

- In order to allow the direct selection of ATC recipients, the default menu behavior whereby ATC recipients were sorted by distance is no longer enabled. However, in order to make all ATC recipients available, there are now three seperate ATC submenus accessed by function keys 5-7. The tanker submenu has been reassigned function key 8, AWACS function key 9, and Ground Crew function key 10. The "Other..." submenu previously displayed in the main menu has been moved, and is now a submenu of the Ground Crew menu. In the future I hope to be able to avoid this by creating a "Next page..." menu item in the ATC submenu to be able to access all of the ATC recipients without the need for three seperate menus. If anyone has suggestions as to how this might be accomplished please let me know as I've hit a brick wall trying to make this work.

- This mod was tested only for DCS A-10C (v1.1.1.1) in a single player environment. Please advise if your own testing confirms the mod also works in multiplayer (somewhat likely) or for DCS:2 (unlikely).

- This mod is likely to be broken by subsequent patches. If future patches do not improve the radio experience for VAC users I will attempt to release an update version of this mod that does.

 

Changelog:

 

v1.2

- ModMan 7.3 compatible.

- Compatibility with DCS A-10C version 1.1.1.1.

- Fixed wingman commands that were broken by v1.1.

- Added several missing commands to included VAC profile (All ATC submenus, "JTAC 1-1" command).

Note: Some player subtitles may still be generated now until I can find a safe way to remove them. Recommend disabling subtitles in DCS A-10C's audio options if you find this distracting.

 

v1.1

- Fixed discrepancies in ATC recipient sorting between single player missions.

- Modified "Other..." radio menu to be a sub-menu of "Main Menu > Ground Crew" so that missions that require it can still be completed. Added the VAC voice command "Other" to access the menu.

- Removed the redundant word "callsign" from the menu text describing Kolkhi airfield.

- Removed some additional player subtitles that were still being generated.

VAC Friendly Radio Mod v1.2.zip


Edited by AJ.eightFive
  • Like 2
Link to comment
Share on other sites

Just took a look at the VAC profile...looks extensive! I'm definitely going to try out your mod and profile later on today and report back. Thanks for taking the time to put this together.

[sIGPIC][/sIGPIC]

Mobo: ASUS Crosshair III Formula / CPU: AMD Phenom II X4 965 BE @ 3.4 GHz / RAM: Corsair XMS3 8GB / GPU: HIS Radeon HD 6850

Display: Sony Bravia 32" HDTV / Peripherals: TM Warthog, Saitek Combat Rudder Pedals, TIR5, Bose A20, Mini fridge w/ Yuengling

Link to comment
Share on other sites

VAC Friendly is exactly what I was looking for too, thank you! I noticed there is a lot of file copying required, however. If possible, please consider making your mod JSGME -compatible in the next release. All you need to do is include the correct directory structure so your mod's users do not have to care about where to put each file.

Link to comment
Share on other sites

This sounds really good, I will try it out and let you know what I think.

Mods I use: KA-50 JTAC - Better Fire and Smoke - Unchain Rudder from trim KA50 - Sim FFB for G940 - Beczl Rocket Pods Updated!

Processor: Intel Q6600 @ 3.00GHz

GPU: GeForce MSI RTX 2060 6GB

RAM: Crucial 8GB DDR2

HDD: 1TBGB Crucial SSD

OS: Windows 10, 64-bit

Peripherals: Logitech G940 Hotas, TrackiR 5, Voice Activated commands , Sharkoon 5.1 headset. ,Touch Control for iPad, JoyToKey

Link to comment
Share on other sites

Thanks for the tip Superbus! I wasn't sure what the best way to package it would be, I haven't used MODMAN since LOMAC and this is the first real tinkering I've done with the sim. I'll definitely take a look at the tool you suggested.

 

Look forward to everyone's feedback on the mod.


Edited by AJ.eightFive
  • Like 1
Link to comment
Share on other sites

I made your mod files into a modman package, but I couldn't figure out how to make modman clear the "\Player" sound files so I had to back them up manualy.

 

Also in the read me is says \player is in DCSInstallDir\\Sounds\Speech\Sound\ENG\DCS A-10C\

 

I dont have the DCS A-10C folder in \sounds\ENG

its just \Sounds\Speech\Sound\ENG\Player\...

I think it might be a typo.

 

Modman File:

http://forums.eagle.ru/attachment.php?attachmentid=59856&stc=1&d=1323169872

 

Very good VAC Profile. I spent hours on mine but never got it to such a high standard, Thank you!

VAC Friendly Radio Mod v1.0 ModMan.zip

Mods I use: KA-50 JTAC - Better Fire and Smoke - Unchain Rudder from trim KA50 - Sim FFB for G940 - Beczl Rocket Pods Updated!

Processor: Intel Q6600 @ 3.00GHz

GPU: GeForce MSI RTX 2060 6GB

RAM: Crucial 8GB DDR2

HDD: 1TBGB Crucial SSD

OS: Windows 10, 64-bit

Peripherals: Logitech G940 Hotas, TrackiR 5, Voice Activated commands , Sharkoon 5.1 headset. ,Touch Control for iPad, JoyToKey

Link to comment
Share on other sites

This is a great mod, it gives a big boost to immersion and must have taken a lot of work to set up.

 

However, I'm seeing a problem with the ATC menus. It looks as if the order in which airfields are listed in the menus can vary from one mission to another. This means that key mapping in the VAC profile can be wrong, e.g. you say "Batumi" and this opens the submenu for Nalchik (or whatever).

 

Looking at the details, I can see that the modded ATC menu scripts have disabled the line which calls the "distanceSorter" function, meaning airfields are no longer listed in order of distance from the player's location. It seems to me that there needs to be some other way to order the list, so that they always come out in the same sequence. Ordering by A to Z would be the obvious solution, but I don't know enough about LUA scripting to know how to do that. Hopefully it's a feasible thing to do.

 

Hope this makes sense. Apart from the above, this is an excellent mod, and I'd love to see it working as intended.

Link to comment
Share on other sites

Hey TooBad51,

 

The script that generates the list of ATC recipients just iterates through a database that is static, so in the absense of the sort by distance function, or any sort function for that matter, the list should always be ordered the same way. I've also disabled the filtering of enemy coalition airfields from the list so that the list should always contain all of the airfields and not vary from mission to mission.

 

Please let me know if you find that I am mistaken!

Link to comment
Share on other sites

EXcelent mod but the " submenu previously displayed in the main menu has been assigned "function key 13" where it is no longer accessible."

The are missions that cant be completed without the fighter cover or the SEAD operations.There are no way to use the 13. other menu? Without that i think the mod cant work for me.

Fly and let fly

Link to comment
Share on other sites

Hey TooBad51,

 

The script that generates the list of ATC recipients just iterates through a database that is static, so in the absense of the sort by distance function, or any sort function for that matter, the list should always be ordered the same way. I've also disabled the filtering of enemy coalition airfields from the list so that the list should always contain all of the airfields and not vary from mission to mission.

 

Please let me know if you find that I am mistaken!

 

 

When I try this mod with different SP missions, I find that the ATCs are always listed in a different sequence. If I load up the same mission twice, I get them in the same order, but if I go to a different mission the sequence changes. I haven't figured out what the ordering is based on, but it still looks to be dynamic in some way. Try it yourself: Fly two different missions and comparing the lists. Are they the same for you?

 

EDIT: Just to clarify, I see the same 21 airfields every time. It's just the order that changes, but obviously that messes up my VAC key mapping.


Edited by TooBad51
Clarification
Link to comment
Share on other sites

Ah! Thanks for the feedback jotaele. To be honest I haven't spent a lot of time in the campaign missions and had thought this submenu was vestigial. Now you mention it I do remember using it in one of the single missions a long time ago.

 

I will try to come up with a better solution. Thank you!

Link to comment
Share on other sites

I think the least labour intensive solution for the "Other..." menu will be to nestle it within the "Ground Crew" submenu. I've confirmed that this works as desired in the Shooting Gallery mission. I'm still working on the ATC sorting issue, sorry I didn't catch that before. Hope to get some new files in everyones hands by tomorrow.

Link to comment
Share on other sites

TooBad51, can you send me a pair of missions (or just name them if they are stock missions) that you have found to result in ATC menus that sort differently?

 

I think I may have solved this now but even without the modified files I'm having a hard time finding two missions where this behavior exists.

Link to comment
Share on other sites

Can't remember exactly which are the stock missions, but.... Try any two SP missions that begin at different locations. For example, in Free Flight Ramp Start, the ATC 3 menu has Kolkhi as its single item; in the CSAR mission, the ATC3 menus shows Beslan (and the entries in the other menus are shifted around accordingly).

 

I should mention that I've been looking more closely at this problem, and I think I've stumbled on a solution which seems to work... I've figured out how to sort the names in the ATC lists so that they remain consistent. If you can replicate the problem, I can tell you how I fixed it if you're interested :)

Link to comment
Share on other sites

Great mod AJ!

 

TooBad51, I'm interested in your fix. I found the lua function that sorts the listed airports by distance, and replacing it with a function that sorts alphabetically by name. I don't know how to get the name yet? How are you accomplishing this?

I'd also like to mod the ATC menu so that F10 is a "Next Page" option, so we can keep the main menu structure the same as original.

 

BTW I use WSR Macros, so this mod is not only VAC-friendly!

Link to comment
Share on other sites

@y2kiah:

 

I added the following lines to each of the 3 ATC.lua scripts:

 

local function alphaSorter(a, b)

local aname = a:getUnit():getName()

local bname = b:getUnit():getName()

return (bname > aname)

end

 

base.table.sort(atcs, alphaSorter)

 

 

If you insert those lines directly after line 97 in each file, that will sort the names consistently. (Took me a bit of trial and error to figure that out!)

 

If you make that change, run a mission, and take a screenshot of the ATC menus, then you can edit your VAC profile to match the sequence of names. After that everything should work fine.... at least it does for me.

  • Like 1
Link to comment
Share on other sites

I think the least labour intensive solution for the "Other..." menu will be to nestle it within the "Ground Crew" submenu. I've confirmed that this works as desired in the Shooting Gallery mission. I'm still working on the ATC sorting issue, sorry I didn't catch that before. Hope to get some new files in everyones hands by tomorrow.

 

That would be a perfect solution!! It is important in example for 979launch speciall triggers for missions, like helis pickup etc.

Thx for your effort.Im new to all this vac thing, but i really enjoy it.

Fly and let fly

Link to comment
Share on other sites

@y2kiah:

 

I added the following lines to each of the 3 ATC.lua scripts:

 

local function alphaSorter(a, b)

local aname = a:getUnit():getName()

local bname = b:getUnit():getName()

return (bname > aname)

end

 

base.table.sort(atcs, alphaSorter)

 

 

If you insert those lines directly after line 97 in each file, that will sort the names consistently. (Took me a bit of trial and error to figure that out!)

 

If you make that change, run a mission, and take a screenshot of the ATC menus, then you can edit your VAC profile to match the sequence of names. After that everything should work fine.... at least it does for me.

 

Great minds think alike! ;) I did essentially the same thing but used the getCallsign method instead. Tested in all of the sp missions and seemed to work (and for the most part the order remained the same as what I had built the VAC profile around) but wanted to confirm with the missions you supplied to be certain I wasn't missing something. I'll release v1.1 with all of the changes shortly.

 

 local function nameSorter(l, r)

local lcallsign = l:getCallsign()
local rcallsign = r:getCallsign()

return lcallsign < rcallsign

end

base.table.sort(atcs, nameSorter) 


Edited by AJ.eightFive
Link to comment
Share on other sites

Perfect! yes that :getName() is the magic word I was looking for. I didn't do any trial and error though thanks.

I'm going to try and get everything buried under the one ATC menu, where F10 is a "Next Page" option.

 

I hope you can get this working! That was the ideal solution I was looking for but ran into a lot of trouble and it was becoming very time consuming to debug by trial and error.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...