38ec3d2be8
Addition to the existing headshake/redout to provide some cockpit shaking effect when traversing rough ground. Path from Benedikt HALLINGER.
1195 lines
46 KiB
XML
1195 lines
46 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
###################################################################################
|
|
## ##
|
|
## Improved redout/blackout system for Flightgear ##
|
|
## ##
|
|
## Author: Nikolai V. Chr. (property rules), Thorsten Renk (shaders), ##
|
|
## Benedikt Hallinger (groundshake effect) ##
|
|
## ##
|
|
## ##
|
|
## ##
|
|
## ##
|
|
## Version 2.10 License: GPL 2.0 ##
|
|
## ##
|
|
###################################################################################
|
|
-->
|
|
<PropertyList>
|
|
|
|
<params>
|
|
<onset-b>sim/rendering/redout/parameters/blackout-onset-g</onset-b>
|
|
<fast-b>sim/rendering/redout/parameters/blackout-complete-g</fast-b>
|
|
<onset-r>sim/rendering/redout/parameters/redout-onset-g</onset-r>
|
|
<fast-r>sim/rendering/redout/parameters/redout-complete-g</fast-r>
|
|
<onset-t-b>sim/rendering/redout/parameters/onset-blackout-sec</onset-t-b>
|
|
<fast-t-b>sim/rendering/redout/parameters/fast-blackout-sec</fast-t-b>
|
|
<onset-t-r>sim/rendering/redout/parameters/onset-redout-sec</onset-t-r>
|
|
<fast-t-r>sim/rendering/redout/parameters/fast-redout-sec</fast-t-r>
|
|
<rec-f>sim/rendering/redout/parameters/recover-fast-sec</rec-f>
|
|
<rec-s>sim/rendering/redout/parameters/recover-slow-sec</rec-s>
|
|
<log>
|
|
<g-force>sim/rendering/redout/internal/log/g-force</g-force>
|
|
<onset-b>sim/rendering/redout/internal/log/onset-b</onset-b>
|
|
<fast-b>sim/rendering/redout/internal/log/fast-b</fast-b>
|
|
<g-force-r>sim/rendering/redout/internal/log/g-force-r</g-force-r>
|
|
<onset-r>sim/rendering/redout/internal/log/onset-r</onset-r>
|
|
<fast-r>sim/rendering/redout/internal/log/fast-r</fast-r>
|
|
</log>
|
|
<g-damp>accelerations/pilot-gdamped</g-damp>
|
|
<g-force-inv>sim/rendering/redout/internal/g-force-inv</g-force-inv>
|
|
<blackout>sim/rendering/redout/internal/blackout</blackout>
|
|
<redout>sim/rendering/redout/internal/redout</redout>
|
|
<jsb>sim/rendering/redout/internal/jsb</jsb>
|
|
<alpha>sim/rendering/redout/alpha</alpha>
|
|
<red>sim/rendering/redout/red</red>
|
|
<inside>sim/current-view/internal</inside>
|
|
<sum>sim/rendering/redout/internal/sum</sum>
|
|
<enable>sim/rendering/redout/enabled</enable>
|
|
<g-force>accelerations/pilot-g[0]</g-force>
|
|
<greyout>sim/rendering/als-filters/grey-factor</greyout>
|
|
<tunnel>sim/rendering/als-filters/black-factor</tunnel>
|
|
<als>sim/rendering/shaders/skydome</als>
|
|
<filters>sim/rendering/als-filters/use-filtering</filters>
|
|
<groundshake>
|
|
<!-- inputs -->
|
|
<effect-factor>sim/rendering/headshake/groundshake/effect-factor</effect-factor>
|
|
<aircraft-scale-prop>sim/rendering/headshake/groundshake/custom-aircraft-scaler</aircraft-scale-prop>
|
|
<default-aircraft-scaler-minkts>sim/rendering/headshake/groundshake/default-aircraft-scaler-min-knots</default-aircraft-scaler-minkts>
|
|
<default-aircraft-scaler-maxkts>sim/rendering/headshake/groundshake/default-aircraft-scaler-max-knots</default-aircraft-scaler-maxkts>
|
|
<default-aircraft-scaler-factor>sim/rendering/headshake/groundshake/default-aircraft-scaler-factor</default-aircraft-scaler-factor>
|
|
|
|
<!-- internal -->
|
|
<rng-source>sim/rendering/headshake/groundshake/internal/groundbump</rng-source>
|
|
<terrain-bumpiness>/fdm/jsbsim/ground/bumpiness</terrain-bumpiness>
|
|
<has-ground-contact>sim/rendering/headshake/groundshake/internal/ground-contact</has-ground-contact>
|
|
<is-moving>sim/rendering/headshake/groundshake/internal/is-moving</is-moving>
|
|
<default-aircraft-scaler>sim/rendering/headshake/groundshake/internal/default-aircraft-scaler</default-aircraft-scaler>
|
|
|
|
<!-- outputs -->
|
|
<result>sim/rendering/headshake/groundshake/result-g</result>
|
|
</groundshake>
|
|
</params>
|
|
|
|
<filter><!-- check for NaN -->
|
|
<type>gain</type>
|
|
<gain>0</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<not>
|
|
<less-than>
|
|
<property alias="/params/blackout"/>
|
|
<value>1000.0</value>
|
|
</less-than>
|
|
<greater-than>
|
|
<property alias="/params/blackout"/>
|
|
<value>-1000.0</value>
|
|
</greater-than>
|
|
</not>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<value>0</value>
|
|
</input>
|
|
<output alias="/params/blackout"/>
|
|
</filter>
|
|
|
|
<filter><!-- check for NaN -->
|
|
<type>gain</type>
|
|
<gain>0</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<not>
|
|
<less-than>
|
|
<property alias="/params/redout"/>
|
|
<value>1000.0</value>
|
|
</less-than>
|
|
<greater-than>
|
|
<property alias="/params/redout"/>
|
|
<value>-1000.0</value>
|
|
</greater-than>
|
|
</not>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<value>0</value>
|
|
</input>
|
|
<output alias="/params/redout"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<!-- check if blackout onset has sane value. -->
|
|
<condition>
|
|
<or>
|
|
<less-than>
|
|
<property alias="/params/onset-b"/>
|
|
<value>1.25</value>
|
|
</less-than>
|
|
</or>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<max>
|
|
<property alias="/params/fast-b"/>
|
|
<value>1.25</value>
|
|
</max>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/onset-b"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<!-- check if blackout complete has sane value. -->
|
|
<condition>
|
|
<or>
|
|
<greater-than>
|
|
<property alias="/params/onset-b"/>
|
|
<property alias="/params/fast-b"/>
|
|
</greater-than>
|
|
<less-than>
|
|
<property alias="/params/fast-b"/>
|
|
<value>1.5</value>
|
|
</less-than>
|
|
</or>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<max>
|
|
<sum>
|
|
<property alias="/params/onset-b"/>
|
|
<value>0.50</value>
|
|
</sum>
|
|
<value>1.5</value>
|
|
</max>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/fast-b"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<!-- check if redout onset has sane value. -->
|
|
<condition>
|
|
<or>
|
|
<greater-than>
|
|
<property alias="/params/onset-r"/>
|
|
<value>-1.00</value>
|
|
</greater-than>
|
|
</or>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<min>
|
|
<property alias="/params/fast-r"/>
|
|
<value>-1.00</value>
|
|
</min>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/onset-r"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<!-- check if redout complete has sane value. -->
|
|
<condition>
|
|
<or>
|
|
<greater-than>
|
|
<property alias="/params/fast-r"/>
|
|
<property alias="/params/onset-r"/>
|
|
</greater-than>
|
|
<greater-than>
|
|
<property alias="/params/fast-r"/>
|
|
<value>-1.25</value>
|
|
</greater-than>
|
|
</or>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<min>
|
|
<sum>
|
|
<property alias="/params/onset-r"/>
|
|
<value>-0.50</value>
|
|
</sum>
|
|
<value>-1.25</value>
|
|
</min>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/fast-r"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>-1</gain>
|
|
<enable>
|
|
<!-- check if JSBSim is the FDM. -->
|
|
<condition>
|
|
<equals>
|
|
<property alias="/params/jsb"/>
|
|
<value>1</value>
|
|
</equals>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<sum>
|
|
<div>
|
|
<property>accelerations/pilot/z-accel-fps_sec</property>
|
|
<value>32.174</value>
|
|
</div>
|
|
<property alias="/params/groundshake/result" />
|
|
</sum>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/g-force"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<!-- for backwards compatibility for planes that use gdamped property -->
|
|
<type>exponential</type>
|
|
<filter-time>0.2</filter-time>
|
|
<input alias="/params/g-force"/>
|
|
<output alias="/params/g-damp"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<log10>
|
|
<property alias="/params/fast-b"/>
|
|
</log10>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/log/fast-b"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<log10>
|
|
<property alias="/params/onset-b"/>
|
|
</log10>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/log/onset-b"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<less-than-equals>
|
|
<property alias="/params/g-force"/>
|
|
<value>1</value>
|
|
</less-than-equals>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<value>0</value>
|
|
</input>
|
|
<output alias="/params/log/g-force"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<greater-than>
|
|
<property alias="/params/g-force"/>
|
|
<value>1</value>
|
|
</greater-than>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<log10>
|
|
<property alias="/params/g-force"/>
|
|
</log10>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/log/g-force"/>
|
|
</filter>
|
|
|
|
<filter><!-- reduce blackout -->
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<less-than>
|
|
<property alias="/params/g-force"/>
|
|
<property alias="/params/onset-b"/>
|
|
</less-than>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<min>
|
|
<value>1</value>
|
|
<max>
|
|
<value>0</value>
|
|
<dif>
|
|
<property alias="/params/blackout"/>
|
|
<product>
|
|
<property>sim/time/delta-sec</property>
|
|
<div>
|
|
<value>1</value>
|
|
<max>
|
|
<value>0</value>
|
|
<sum>
|
|
<property alias="/params/rec-f"/>
|
|
<product>
|
|
<div>
|
|
<dif>
|
|
<property alias="/params/log/g-force"/>
|
|
<log10>
|
|
<value>1</value>
|
|
</log10>
|
|
</dif>
|
|
<dif>
|
|
<property alias="/params/log/onset-b"/>
|
|
<log10>
|
|
<value>1</value>
|
|
</log10>
|
|
</dif>
|
|
</div>
|
|
<dif>
|
|
<property alias="/params/rec-s"/>
|
|
<property alias="/params/rec-f"/>
|
|
</dif>
|
|
</product>
|
|
</sum>
|
|
</max>
|
|
</div>
|
|
</product>
|
|
</dif>
|
|
</max>
|
|
</min>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/blackout"/>
|
|
</filter>
|
|
|
|
<filter><!-- increase blackout -->
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<greater-than-equals>
|
|
<property alias="/params/g-force"/>
|
|
<property alias="/params/onset-b"/>
|
|
</greater-than-equals>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<min>
|
|
<value>1</value>
|
|
<max>
|
|
<value>0</value>
|
|
<sum>
|
|
<property alias="/params/blackout"/>
|
|
<product>
|
|
<property>sim/time/delta-sec</property>
|
|
<div>
|
|
<value>1</value>
|
|
<max>
|
|
<value>0</value>
|
|
<pow>
|
|
<value>10</value>
|
|
<sum>
|
|
<log10>
|
|
<property alias="/params/onset-t-b"/>
|
|
</log10>
|
|
<product>
|
|
<div>
|
|
<dif>
|
|
<property alias="/params/log/g-force"/>
|
|
<property alias="/params/log/onset-b"/>
|
|
</dif>
|
|
<dif>
|
|
<property alias="/params/log/fast-b"/>
|
|
<property alias="/params/log/onset-b"/>
|
|
</dif>
|
|
</div>
|
|
<dif>
|
|
<log10>
|
|
<property alias="/params/fast-t-b"/>
|
|
</log10>
|
|
<log10>
|
|
<property alias="/params/onset-t-b"/>
|
|
</log10>
|
|
</dif>
|
|
</product>
|
|
</sum>
|
|
</pow>
|
|
</max>
|
|
</div>
|
|
</product>
|
|
</sum>
|
|
</max>
|
|
</min>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/blackout"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<log10>
|
|
<product>
|
|
<value>-1</value>
|
|
<dif>
|
|
<property alias="/params/fast-r"/>
|
|
<value>2</value>
|
|
</dif>
|
|
</product>
|
|
</log10>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/log/fast-r"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<log10>
|
|
<product>
|
|
<value>-1</value>
|
|
<dif>
|
|
<property alias="/params/onset-r"/>
|
|
<value>2</value>
|
|
</dif>
|
|
</product>
|
|
</log10>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/log/onset-r"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>-1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<dif>
|
|
<property alias="/params/g-force"/>
|
|
<value>2</value>
|
|
</dif>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/g-force-inv"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<less-than-equals>
|
|
<property alias="/params/g-force-inv"/>
|
|
<value>1</value>
|
|
</less-than-equals>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<value>0</value>
|
|
</input>
|
|
<output alias="/params/log/g-force-r"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<greater-than>
|
|
<property alias="/params/g-force-inv"/>
|
|
<value>1</value>
|
|
</greater-than>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<log10>
|
|
<property alias="/params/g-force-inv"/>
|
|
</log10>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/log/g-force-r"/>
|
|
</filter>
|
|
|
|
<filter><!-- reduce redout -->
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<greater-than>
|
|
<property alias="/params/g-force"/>
|
|
<property alias="/params/onset-r"/>
|
|
</greater-than>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<min>
|
|
<value>1</value>
|
|
<max>
|
|
<value>0</value>
|
|
<dif>
|
|
<property alias="/params/redout"/>
|
|
<product>
|
|
<property>sim/time/delta-sec</property>
|
|
<div>
|
|
<value>1</value>
|
|
<max>
|
|
<value>0</value>
|
|
<sum>
|
|
<property alias="/params/rec-f"/>
|
|
<product>
|
|
<div>
|
|
<dif>
|
|
<property alias="/params/log/g-force-r"/>
|
|
<log10>
|
|
<value>1</value>
|
|
</log10>
|
|
</dif>
|
|
<dif>
|
|
<property alias="/params/log/onset-r"/>
|
|
<log10>
|
|
<value>1</value>
|
|
</log10>
|
|
</dif>
|
|
</div>
|
|
<dif>
|
|
<property alias="/params/rec-s"/>
|
|
<property alias="/params/rec-f"/>
|
|
</dif>
|
|
</product>
|
|
</sum>
|
|
</max>
|
|
</div>
|
|
</product>
|
|
</dif>
|
|
</max>
|
|
</min>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/redout"/>
|
|
</filter>
|
|
|
|
<filter><!-- increase redout -->
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<less-than-equals>
|
|
<property alias="/params/g-force"/>
|
|
<property alias="/params/onset-r"/>
|
|
</less-than-equals>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<min>
|
|
<value>1</value>
|
|
<max>
|
|
<value>0</value>
|
|
<sum>
|
|
<property alias="/params/redout"/>
|
|
<product>
|
|
<property>sim/time/delta-sec</property>
|
|
<div>
|
|
<value>1</value>
|
|
<max>
|
|
<value>0</value>
|
|
<pow>
|
|
<value>10</value>
|
|
<sum>
|
|
<log10>
|
|
<property alias="/params/onset-t-r"/>
|
|
</log10>
|
|
<product>
|
|
<div>
|
|
<dif>
|
|
<property alias="/params/log/g-force-r"/>
|
|
<property alias="/params/log/onset-r"/>
|
|
</dif>
|
|
<dif>
|
|
<property alias="/params/log/fast-r"/>
|
|
<property alias="/params/log/onset-r"/>
|
|
</dif>
|
|
</div>
|
|
<dif>
|
|
<log10>
|
|
<property alias="/params/fast-t-r"/>
|
|
</log10>
|
|
<log10>
|
|
<property alias="/params/onset-t-r"/>
|
|
</log10>
|
|
</dif>
|
|
</product>
|
|
</sum>
|
|
</pow>
|
|
</max>
|
|
</div>
|
|
</product>
|
|
</sum>
|
|
</max>
|
|
</min>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/redout"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<dif>
|
|
<property alias="/params/blackout"/>
|
|
<property alias="/params/redout"/>
|
|
</dif>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/sum"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<!-- When system is on, in pilot view and negative G effect, set fading color to red -->
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<equals>
|
|
<property alias="/params/inside"/>
|
|
<value>1</value>
|
|
</equals>
|
|
<less-than>
|
|
<property alias="/params/sum"/>
|
|
<value>0</value>
|
|
</less-than>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<value>1</value>
|
|
</input>
|
|
<output alias="/params/red"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<!-- When system is on, in pilot view and negative G effect, set fading amount -->
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<equals>
|
|
<property alias="/params/inside"/>
|
|
<value>1</value>
|
|
</equals>
|
|
<less-than>
|
|
<property alias="/params/sum"/>
|
|
<value>0</value>
|
|
</less-than>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<product>
|
|
<property alias="/params/sum"/>
|
|
<value>-1</value>
|
|
</product>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/alpha"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<!-- When system is on, in pilot view and positive G effect, set fading color to black -->
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<equals>
|
|
<property alias="/params/inside"/>
|
|
<value>1</value>
|
|
</equals>
|
|
<greater-than-equals>
|
|
<property alias="/params/sum"/>
|
|
<value>0</value>
|
|
</greater-than-equals>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<value>0</value>
|
|
</input>
|
|
<output alias="/params/red"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<!-- When system is on, in pilot view and effect should be black, set fading amount -->
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<equals>
|
|
<property alias="/params/inside"/>
|
|
<value>1</value>
|
|
</equals>
|
|
<greater-than-equals>
|
|
<property alias="/params/sum"/>
|
|
<value>0</value>
|
|
</greater-than-equals>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<min>
|
|
<value>1</value>
|
|
<max>
|
|
<value>0</value>
|
|
<sum>
|
|
<product>
|
|
<property alias="/params/als"/>
|
|
<property alias="/params/filters"/>
|
|
<!-- this will be used when ALS filters are in effect -->
|
|
<div>
|
|
<dif>
|
|
<property alias="/params/sum"/>
|
|
<value>0.66</value><!-- onset of blackout -->
|
|
</dif>
|
|
<value>0.34</value><!-- (full-onset) of blackout -->
|
|
</div>
|
|
</product>
|
|
<product>
|
|
<dif>
|
|
<value>1</value>
|
|
<product>
|
|
<property alias="/params/als"/>
|
|
<property alias="/params/filters"/>
|
|
</product>
|
|
</dif>
|
|
<!-- this will be used when ALS filters are off -->
|
|
<property alias="/params/sum"/>
|
|
</product>
|
|
</sum>
|
|
</max>
|
|
</min>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/alpha"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<!-- When system is off or not in pilot view, set fading to off -->
|
|
<type>gain</type>
|
|
<gain>0</gain>
|
|
<enable>
|
|
<condition>
|
|
<or>
|
|
<not>
|
|
<property alias="/params/enable"/>
|
|
</not>
|
|
<equals>
|
|
<property alias="/params/inside"/>
|
|
<value>0</value>
|
|
</equals>
|
|
</or>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<value>0</value>
|
|
</input>
|
|
<output alias="/params/alpha"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<!-- When system disabled, set blackout amount to 0 -->
|
|
<type>gain</type>
|
|
<gain>0</gain>
|
|
<enable>
|
|
<condition>
|
|
<not>
|
|
<property alias="/params/enable"/>
|
|
</not>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<value>0</value>
|
|
</input>
|
|
<output alias="/params/blackout"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<!-- When system is disabled, set redout amount to 0 -->
|
|
<type>gain</type>
|
|
<gain>0</gain>
|
|
<enable>
|
|
<condition>
|
|
<not>
|
|
<property alias="/params/enable"/>
|
|
</not>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<value>0</value>
|
|
</input>
|
|
<output alias="/params/redout"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<!-- When system is off or not in pilot view or negative G effect, set greyout to off -->
|
|
<type>gain</type>
|
|
<gain>0</gain>
|
|
<enable>
|
|
<condition>
|
|
<or>
|
|
<not>
|
|
<property alias="/params/enable"/>
|
|
</not>
|
|
<equals>
|
|
<property alias="/params/inside"/>
|
|
<value>0</value>
|
|
</equals>
|
|
<less-than>
|
|
<property alias="/params/sum"/>
|
|
<value>0</value>
|
|
</less-than>
|
|
</or>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<value>0</value>
|
|
</input>
|
|
<output alias="/params/greyout"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<!-- When system is off or not in pilot view or negative G effect, set tunnel-vision to off -->
|
|
<type>gain</type>
|
|
<gain>0</gain>
|
|
<enable>
|
|
<condition>
|
|
<or>
|
|
<not>
|
|
<property alias="/params/enable"/>
|
|
</not>
|
|
<equals>
|
|
<property alias="/params/inside"/>
|
|
<value>0</value>
|
|
</equals>
|
|
<less-than>
|
|
<property alias="/params/sum"/>
|
|
<value>0</value>
|
|
</less-than>
|
|
</or>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<value>0</value>
|
|
</input>
|
|
<output alias="/params/tunnel"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<!-- When system is on, in pilot view and positive G effect, set tunnel-vision amount -->
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<equals>
|
|
<property alias="/params/inside"/>
|
|
<value>1</value>
|
|
</equals>
|
|
<greater-than-equals>
|
|
<property alias="/params/sum"/>
|
|
<value>0</value>
|
|
</greater-than-equals>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<min>
|
|
<value>1</value>
|
|
<max>
|
|
<value>0</value>
|
|
<div>
|
|
<dif>
|
|
<property alias="/params/sum"/>
|
|
<value>0.35</value><!-- onset of tunnel -->
|
|
</dif>
|
|
<value>0.65</value><!-- (full-onset) of tunnel -->
|
|
</div>
|
|
</max>
|
|
</min>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/tunnel"/>
|
|
</filter>
|
|
|
|
<filter>
|
|
<!-- When system is on, in pilot view and positive G effect, set greyout amount -->
|
|
<type>gain</type>
|
|
<gain>1</gain>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/enable"/>
|
|
<equals>
|
|
<property alias="/params/inside"/>
|
|
<value>1</value>
|
|
</equals>
|
|
<greater-than-equals>
|
|
<property alias="/params/sum"/>
|
|
<value>0</value>
|
|
</greater-than-equals>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<expression>
|
|
<min>
|
|
<value>1</value>
|
|
<max>
|
|
<value>0</value>
|
|
<div>
|
|
<dif>
|
|
<property alias="/params/sum"/>
|
|
<value>0.15</value><!-- onset of greyout -->
|
|
</dif>
|
|
<value>0.65</value><!-- (full-onset) of greyout -->
|
|
</div>
|
|
</max>
|
|
</min>
|
|
</expression>
|
|
</input>
|
|
<output alias="/params/greyout"/>
|
|
</filter>
|
|
|
|
|
|
<!-- Ground shake effect
|
|
The ground shake effect simulates the roughness of the terrain and the
|
|
resulting forces onto the pilot when moving over it.
|
|
This is achieved by generating random g-forces depending on the current terrain bumpyness.
|
|
The force is then applied to the pilot depending on movement speed of the aircraft.
|
|
|
|
Adjustments reside in sim/rendering/headshake/groundshake and can be done with this properties:
|
|
- effect-factor: Overall effect scaling/enabling, so users can disable/adjust in cockpit-gui
|
|
- default-aircraft-scaler-factor: allows to adjust the default aircraft effect output.
|
|
To be overwritten from aircraft for which the default table is OK but the effect to small/big.
|
|
Set to zero in case a separate scaler is provided
|
|
- default-aircraft-scaler-min-knots: at this speed the effect starts
|
|
- default-aircraft-scaler-max-knots: at this speed the effect reaches its maximum
|
|
- custom-aircraft-scaler: aircraft devs calculate their own scaling algorythm result here.
|
|
Most probably this is based on speed etc.
|
|
Set default-aircraft-scaler-factor to zero, because otherwise the
|
|
default still applies (default+custom effects are added)!
|
|
-->
|
|
<filter>
|
|
<name>groundshake-terrain-g</name>
|
|
<debug>false</debug>
|
|
<type>gain</type>
|
|
<gain><property alias="/params/groundshake/effect-factor"/></gain>
|
|
<input>
|
|
<condition>
|
|
<!-- only act when having ground contact -->
|
|
<property alias="/params/groundshake/has-ground-contact"/>
|
|
<property alias="/params/groundshake/is-moving"/>
|
|
</condition>
|
|
<expression>
|
|
<product>
|
|
<!-- defines bumps of surface -->
|
|
<property alias="/params/groundshake/rng-source"/>
|
|
|
|
<!-- apply bumpiness of terrain -->
|
|
<product>
|
|
<value>1</value>
|
|
<sum>
|
|
<value>0.1</value> <!-- so we have a effect even on taxiway/runway -->
|
|
<property alias="/params/groundshake/terrain-bumpiness"/>
|
|
</sum>
|
|
</product>
|
|
|
|
<sum>
|
|
<!-- apply the default aircraft scaling -->
|
|
<!-- note: in case the aircraft dev wants his own model, he should deactivate the internal one -->
|
|
<!-- this can be done by setting the deafualt-aircraft-factor to zero -->
|
|
<property alias="/params/groundshake/default-aircraft-scaler" />
|
|
|
|
<!-- apply aircraft specific scaling -->
|
|
<!-- (this is intended to model gear damping based on speed etc) -->
|
|
<property alias="/params/groundshake/aircraft-scale-prop"/>
|
|
</sum>
|
|
|
|
</product>
|
|
</expression>
|
|
</input>
|
|
<input><value>0.0</value></input> <!-- in-air: no ground forces -->
|
|
<output alias="/params/groundshake/result" />
|
|
</filter>
|
|
|
|
<filter>
|
|
<name>Ground bumps</name>
|
|
<!-- calculate the ground bump number: The rate and ammount of change simulates bumps in the surface -->
|
|
<type>coherent-noise</type>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<condition>
|
|
<property alias="/params/groundshake/has-ground-contact"/>
|
|
<property alias="/params/groundshake/is-moving"/>
|
|
</condition>
|
|
</enable>
|
|
<input>
|
|
<!-- depending on position: the faster we go, the faster the prop changes, the faster the bumps come in -->
|
|
<expression>
|
|
<product>
|
|
<sum>
|
|
<property>/position/latitude-deg</property>
|
|
<property>/position/longitude-deg</property>
|
|
</sum>
|
|
<value>50</value>
|
|
</product>
|
|
</expression>
|
|
</input>
|
|
<output><property alias="/params/groundshake/rng-source"/></output>
|
|
<amplitude>0.5</amplitude>
|
|
<absolute type="bool">false</absolute>
|
|
<discrete-resolution>1024</discrete-resolution> <!-- frequency of the changes/bumps: the smaller, the more wide the bumps are -->
|
|
</filter>
|
|
|
|
<logic>
|
|
<name>Aircraft has ground contact</name>
|
|
<input>
|
|
<or>
|
|
<property>/gear/gear[0]/wow</property>
|
|
<property>/gear/gear[1]/wow</property>
|
|
<property>/gear/gear[2]/wow</property>
|
|
<property>/gear/gear[3]/wow</property>
|
|
</or>
|
|
</input>
|
|
<output>
|
|
<property alias="/params/groundshake/has-ground-contact"/>
|
|
</output>
|
|
</logic>
|
|
|
|
<logic>
|
|
<name>Aircraft is moving</name>
|
|
<input>
|
|
<greater-than>
|
|
<property>/velocities/groundspeed-kt</property>
|
|
<value>1</value>
|
|
</greater-than>
|
|
</input>
|
|
<output>
|
|
<property alias="/params/groundshake/is-moving"/>
|
|
</output>
|
|
</logic>
|
|
|
|
<filter>
|
|
<name>Default aircraft scaling by speed</name>
|
|
<!-- This filter defines a table for applying the scaled effect by airspeed to
|
|
simulate basic damping of the gear. It allows for defining dynamic min/max knots
|
|
ranges and scales linearly bin between -->
|
|
<debug>false</debug>
|
|
<type>gain</type>
|
|
<gain> <property alias="/params/groundshake/default-aircraft-scaler-factor"/> </gain>
|
|
<input>
|
|
<!-- Formula: (1/(max-min))*speed-(min/(max-min)) lets us scale linearly with given min/max values -->
|
|
<expression>
|
|
<difference>
|
|
<prod>
|
|
<div>
|
|
<value>1</value>
|
|
<difference>
|
|
<property alias="/params/groundshake/default-aircraft-scaler-maxkts"/>
|
|
<property alias="/params/groundshake/default-aircraft-scaler-minkts"/>
|
|
</difference>
|
|
</div>
|
|
<property>/velocities/groundspeed-kt</property>
|
|
</prod>
|
|
|
|
<div>
|
|
<property alias="/params/groundshake/default-aircraft-scaler-minkts"/>
|
|
<difference>
|
|
<property alias="/params/groundshake/default-aircraft-scaler-maxkts"/>
|
|
<property alias="/params/groundshake/default-aircraft-scaler-minkts"/>
|
|
</difference>
|
|
</div>
|
|
</difference>
|
|
</expression>
|
|
|
|
<min>0.0</min>
|
|
<max>1.0</max>
|
|
</input>
|
|
<output>
|
|
<property alias="/params/groundshake/default-aircraft-scaler" />
|
|
</output>
|
|
</filter>
|
|
|
|
</PropertyList>
|