The real problem here is that you are using WMC. I get that there are reasons for using it, but one of the many highly annoying things about it is that it won't let you set the volume for WMC without forcing the entire system audio volume to change. What an arrogant decision the developers made there. It boggles the mind.
Normally I would say that you should be leaving your system audio at 100% at all time, and then adjusting the volume of your movie separately so that it doesn't affect your TTS volume.
One solution which has other benefits is to send your TTS audio to a different audio output. This is absolutely necessary if you are using direct audio streaming such as in DTS movies because then you won't be able to use TTS at all unless you use a different output.
It seems counter-intuitive to lower your TTS volume when your system audio is higher because the louder your media is, the louder your TTS would need to be for you to hear it!
OK, so assuming you have to do it this way for various reasons here is what I would suggest.
Kalle's solution is very clever and can be a good method for solving certain types of problems, but you are now asking VC to do an awful lot of work, every single time that you ask it to pay attention. There are two things (or 3) that could be improved here.
0 - don't do this at all (see above)
1 - Find a better way to trigger this command so that it is not being done every time VC turns on. This will depend on you and how you are using it so I'm not sure what to suggest here exactly. But ideally just call it whenever you set the system volume.)
2 - When you do run this command, don't make it do so much work. A long sequence of (--if --(contains) --then --else) is not efficient. Fine if it were the only way, or if it were a command that was only running once in a while...
So here is a way to do it more efficiently. You will need to enable the python plugin but don't be scared by that. We are only using it for a very simple math equation.
Here is the equation I'm using but you can tweak it to your liking: TTSVOL = 100 - (SYSVOL/2)
<?xml version="1.0" encoding="utf-16"?>
<command id="1105" name="tts inverse volume adjustment" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>Sound.GetVol</cmdType>
<cmdString />
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PY.ExecString</cmdType>
<cmdString>result = 100-({LastResult}/2)</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.SetVolume</cmdType>
<cmdString>{LastResult}</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<event>VC.On</event>
</command>