Mise à jour : 13 juin 2011
Les effets spéciaux sont utilisés par Flight Simulator pour représenter des effets graphiques tels que le feu, la fumée, la pluie, la vapeur, les gaz d'échappement, et même des effets très brefs et hautement animés.L'outil Special Effects tool est un utilitaire fondé sur le dialogue qui travaille Flight Simulator. Sélectionnez-le depuis le menu Tools (Outils). Il est utilisé pour aider à créer et à peaufiner effets fondés sur un émetteur et des particules.
Ce document décrit l'outil effets spéciaux (FX Tool), le format des fichiers d'effets spéciaux, le format du fichier du contrôleur, et comment ajouter des effets spéciaux à Flight Simulator.
NDT : les données utilisées par le système d'effet sont toutes en métrique. Les distances sont en mètres, les températures en degrés C ou en Kelvin.
The tool itself is coded in visualfxtool.dll, and can be found in the Microsoft Flight Simulator X\SDK\Environment Kit\Special Effects SDK folder.
To install the dll, the dll.xml file in the <Drive>:\Documents and Settings\<alias>\Application Data\Microsoft\FSX folder should contain the following bold lines (if the dll.xml file already exists in this folder), or the dll.xml file should contain all the following (if the dll.xml file does not already exist at the right location).
<?xml version="1.0" encoding="Windows-1252"?> <SimBase.Document Type="Launch" version="1,0"> <Descr>Launch</Descr> <Filename>dll.xml</Filename> <Disabled>False</Disabled> <ManualLoad>False</ManualLoad> <Launch.Addon> <Name>Special Effects Tool </Name> <Disabled>False</Disabled> <Path>..\Microsoft Flight Simulator X SDK\SDK\Environment Kit\Special Effects SDK\visualfxtool.dll</Path> </Launch.Addon> </SimBase.Document> |
Note that the Disabled entries must be False, and that the Path is either absolute or relative to the installation Microsoft Flight Simulator X folder. The path given above will change if the SDK or Flight Simulator were not installed to their default folders. If there are other addons that need to be loaded, such as the Object Placement tool, then they will also need <Launch.Addon> entries.
This is all the setup that is necessary. The tool can be run simply be selecting FX Tool from the Tools menu.
Special effect files all reside in the effects folder, a sub-folder of the main Microsoft Flight Simulator X folder. Special effects are stored in a specific xml file format. The files can be edited directly, but the advantage of using the tool over editing the file is that using the tool will allow you to view changes to the effects without having to exit and restart Flight Simulator each time.
The tool contains a bewildering collection of fields, that is documented in the next section.
Effects files can be opened and edited in Microsoft Notepad or another editor that reads and saves plain text files. You will usually create a separate .fx file for each special effect that you want to create, though one special effect can contain any number of emitters.
The structure of a simple .fx file is as follows:
To add comments to a special effects file use the notation “//” to start a comment line. For example:
// comment text
With multiple emitters the structure of the .fx file is as follows:
There is no limit to the number of emitters that can be added to an effect.
Effects file section or property | Description | Examples |
[Library Effect] | The [Library Effect] section defines several general parameters. | |
Lifetime=5 | A value that is part of an internal (reserved) process. Do not edit this parameter. Lifetime=5 is the only value recognized by Flight Simulator. | Cntrl_Barn.fx( Lifetime=5 ) |
Version=2.00 | The version number of the internal effects tool used for Flight Simulator. Do not edit this parameter. The version number can be 1.00, 2.00 or 3.00. | Cntrl_Barn.fx( Version=1.00 ) fx_animaldust.fx( Version=2.00 ) |
Display Name= |
An internal naming process that does not affect anything displayed in Flight Simulator but may help you keep track of effects files as you work on them. | fx_Aurora1.fx( Display Name=Aurora Outside - small ) fx_Aurora2.fx( Display Name=Aurora Outside - Medium ) fx_Aurora3.fx( Display Name=Aurora_large ) fx_beacong.fx( Display Name=Obstruction Light 2 ) fx_BelgFount1.fx( Display Name=Vegas_Belagio Foutain ) fx_BelgFount2.fx( Display Name=foutain placement ) fx_BldStm_lrg.fx( Display Name=Building steam medium ) fx_explosionFire.fx( Display Name=Explosion Fire ) fx_firework1.fx( Display Name=fw_orange/purple cross ) fx_firework10.fx( Display Name=fw_teal sphere ) |
Radius=200 | The maximal size of the effect. You must give an effect a radius for it to show up as scenery. Measured in meters. | Cntrl_Barn.fx( Radius=200 ) Cntrl_bldstm.fx( Radius=10000 ) fx_Aurora1.fx( Radius=500 ) fx_Barnstorm.fx( Radius=-1 ) fx_BldStm_lrg.fx( Radius=100 ) fx_CampFire.fx( Radius=0 ) fx_cloudlightning01.fx( Radius=100000 ) fx_DDfire.fx( Radius=1000 ) fx_firework1.fx( Radius=25 ) fx_firework11.fx( Radius=130 ) |
Priority=N | The number of particles drawn in any one scene can be limited by the various performance settings. Setting Priority to 0 maximizes the chances of the effect being drawn. Setting it to another number will lower the chances of the full effect being drawn if there are performance issues. | Cntrl_Barn.fx( Priority=0 ) fx_Ngafalls_lrg.fx( Priority=5 ) fx_rtr_cmnt.fx( Priority=9 ) fx_steam1.fx( Priority=4 ) |
Sound=5 Sound param=0 |
These values are legacy and should not be used. See the [sound] section below. | |
Damage, HitPoints, Magnitude, Time, Range | These are values you may see in some legacy effects, and where used in Combat Flight Simulator. They are ignored and have no effect in Flight Simulator X. | |
[Properties] | The [Property] section defines the view modes in which the effect will be displayed. | |
Cockpit=0/1 VirtualCockpit=0/1 Spot=0/1 Tower=0/1 Map=0/1 |
The view modes in which the effect appears. If you don’t want the effect to show up in a view change its value to 0. Note that the FX tool sets all these values to 1. |
fx_animaldust.fx( Cockpit=1 ) fx_animaldust.fx( VirtualCockpit=1 ) fx_animaldust.fx( Spot=1 ) fx_animaldust.fx( Tower=1 ) fx_animaldust.fx( Map=1 ) |
stoptemp | Legacy do not use this. | fx_SmokeStack.fx( StopTemp=10.00 ) |
[Emitter.0] |
The [Emitter.0] section defines the start of the emitter portion of an effect. An emitter creates a flow of particles, like water from a spigot, that is displayed in the effect. | |
Lifetime=0.00, 0.00 | The length of time that an emitter emits particles. Measured in seconds. | fx_animaldust.fx( Lifetime=0.00, 0.00 ) fx_Aurora1.fx( Lifetime=10.00, 10.00 ) fx_Aurora2.fx( Lifetime=15.10, 15.10 ) fx_Barnstorm.fx( Lifetime=0.50, 1.00 ) fx_beacong.fx( Lifetime=1.00, 1.00 ) fx_BelgFount1.fx( Lifetime=5.00, 7.00 ) fx_BelgFount2.fx( Lifetime=3.00, 4.00 ) fx_blowHole.fx( Lifetime=0.50, 0.70 ) fx_cloudlightning01.fx( Lifetime=0.30, 0.40 ) fx_cloudlightning02.fx( Lifetime=0.20, 0.30 ) |
Delay=0.00, 0.00 | The length of delay before the emitter begins emitting particles. Measured in seconds. | fx_animaldust.fx( Delay=0.00, 0.00 ) fx_Aurora1.fx( Delay=5.00, 5.00 ) fx_beaconb.fx( Delay=0.50, 0.50 ) fx_BelgFount1.fx( Delay=8.00, 8.00 ) fx_CampFire.fx( Delay=0.02, 0.02 ) fx_cloudlightning01.fx( Delay=0.10, 0.10 ) fx_contrail_l.fx( Delay=0.30, 0.32 ) fx_dirtspray_l.fx( Delay=0.10, 0.11 ) fx_EmergencyLights.fx( Delay=0.20, 0.20 ) fx_engFire.fx( Delay=0.30, 0.30 ) |
Bounce=0.00 | The reaction of an emitter when it collides with the ground. The higher the number, the larger the bounce. If the parameter is set to 0, no reaction occurs. | fx_animaldust.fx( Bounce=0.00 ) fx_Ngafalls_lrg.fx( Bounce=1.00 ) |
LOD = 0/1 | Set the level of detail (LOD) to be 1 if you want the effect to disappear at a distance. Use this to improve performance, and apply it to small localized effects. The default is 0. | fx_engFire.fx( LOD=1 ) |
Light = 0/1 | If this is set to 1, the effect is treated as a light source. For example beacons and fireworks have this value set to 1. The default is 0. | fx_beacon.fx( Light=1 ) |
No Interpolate = 0/1 | If this is set to 1, interpolation code is not used. Interpolation code attempts to avoid the graphics anomaly of a continuous stream appearing as a sequence of puffs, because the emitter of the stream is moving much faster than the frame rate. Sometimes this interpolation makes the effect appear detached from the emitter, so setting No Interpolate to 1 is one way of “attaching” an effect to an object securely. The default is 0. | fx_beacon.fx( No Interpolate=1 ) |
Rate=0.00, 0.00 | The rate at which particles are emitted. Measured in particles per second. | fx_animaldust.fx( Rate=20.00, 30.00 ) fx_Aurora1.fx( Rate=3.00, 3.00 ) fx_Aurora2.fx( Rate=2.00, 2.00 ) fx_Barnstorm.fx( Rate=200.00, 250.00 ) fx_beacong.fx( Rate=0.50, 0.50 ) fx_BelgFount1.fx( Rate=32.00, 32.00 ) fx_BelgFount2.fx( Rate=10.00, 10.00 ) fx_BilgePump.fx( Rate=5.00, 10.00 ) fx_BldStm_lrg.fx( Rate=10.00, 15.00 ) fx_blowHole.fx( Rate=40.00, 80.00 ) |
X Emitter Velocity=0.00, 0.00 | The X Emitter Velocity, Y Emitter Velocity, and Z Emitter Velocity parameters define the velocity of the launched emitter in the X, Y, and Z directions, respectively. (The Y direction corresponds to vertical.) The larger the number, the greater the velocity of the emitter. | fx_animaldust.fx( X Emitter Velocity=0.00, 0.00 ) fx_explosion.fx( X Emitter Velocity=-2.10, 2.10 ) fx_flare.fx( X Emitter Velocity=-10.00, 10.00 ) fx_launch.fx( X Emitter Velocity=-2.00, 2.00 ) fx_launch2.fx( X Emitter Velocity=0.00, 2.00 ) fx_watercrash.fx( X Emitter Velocity=-1.00, 1.00 ) |
Y Emitter Velocity=0.00, 0.00 | fx_animaldust.fx( Y Emitter Velocity=0.00, 0.00 ) fx_dustcloud_l.fx( Y Emitter Velocity=2.00, 2.00 ) fx_explosion.fx( Y Emitter Velocity=3.00, 4.00 ) fx_firework15.fx( Y Emitter Velocity=8.00, 8.00 ) fx_flare.fx( Y Emitter Velocity=80.00, 80.00 ) fx_launch.fx( Y Emitter Velocity=10.00, 10.00 ) fx_launch2.fx( Y Emitter Velocity=32.00, 32.00 ) fx_launch3.fx( Y Emitter Velocity=42.00, 42.00 ) fx_lightningFire.fx( Y Emitter Velocity=3.00, 5.00 ) fx_watercrash.fx( Y Emitter Velocity=4.50, 4.50 ) |
|
Z Emitter Velocity=0.00, 0.00 | fx_animaldust.fx( Z Emitter Velocity=0.00, 0.00 ) fx_explosion.fx( Z Emitter Velocity=-2.10, 2.10 ) fx_flare.fx( Z Emitter Velocity=-10.00, 10.00 ) fx_launch.fx( Z Emitter Velocity=-2.00, 2.00 ) fx_launch2.fx( Z Emitter Velocity=0.00, 2.00 ) fx_watercrash.fx( Z Emitter Velocity=-1.00, 1.00 ) |
|
Drag=0.00, 0.00 | Drag defines the affect of wind and gravity on the emitter. Negative numbers impart more drag. | fx_animaldust.fx( Drag=0.00, 0.00 ) fx_contrail_l.fx( Drag=0.00, 0.01 ) fx_dirtspray_l.fx( Drag=-1.00, -0.98 ) fx_firework15.fx( Drag=-1.00, -1.00 ) fx_flare.fx( Drag=-3.00, -3.00 ) fx_launch2.fx( Drag=-1.00, -0.50 ) |
X Particle Velocity=-0.00, 0.00 | The velocity at which particles travel in the X, Y, and Z directions, respectively. | fx_animaldust.fx( X Particle Velocity=-0.30, 0.30 ) fx_Aurora1.fx( X Particle Velocity=0.00, 0.00 ) fx_Barnstorm.fx( X Particle Velocity=-10.00, 10.00 ) fx_BelgFount1.fx( X Particle Velocity=-1.00, 1.00 ) fx_BilgePump.fx( X Particle Velocity=-0.20, 0.20 ) fx_BldStm_lrg.fx( X Particle Velocity=-2.00, 2.00 ) fx_deicing.fx( X Particle Velocity=-15.00, -10.00 ) fx_dirtcrash.fx( X Particle Velocity=-5.00, 5.00 ) fx_dirtspray_l.fx( X Particle Velocity=-3.00, 3.00 ) fx_dustcloud_l.fx( X Particle Velocity=2.50, 3.00 ) |
Y Particle Velocity=0.00, 0.00 | fx_animaldust.fx( Y Particle Velocity=0.00, 0.00 ) fx_Barnstorm.fx( Y Particle Velocity=4.00, 10.00 ) fx_BelgFount1.fx( Y Particle Velocity=80.00, 90.00 ) fx_BelgFount2.fx( Y Particle Velocity=100.00, 120.00 ) fx_BilgePump.fx( Y Particle Velocity=1.00, 1.50 ) fx_BldStm_lrg.fx( Y Particle Velocity=5.00, 15.00 ) fx_blowHole.fx( Y Particle Velocity=2.00, 6.00 ) fx_CampFire.fx( Y Particle Velocity=0.80, 1.00 ) fx_DDfire.fx( Y Particle Velocity=-1.00, 1.00 ) fx_deicing.fx( Y Particle Velocity=-8.00, -5.00 ) |
|
Z Particle Velocity=-0.00, 0.00 | fx_animaldust.fx( Z Particle Velocity=-0.30, 0.30 ) fx_Aurora1.fx( Z Particle Velocity=0.00, 0.00 ) fx_Barnstorm.fx( Z Particle Velocity=20.00, 25.00 ) fx_BelgFount1.fx( Z Particle Velocity=-1.00, 1.00 ) fx_BilgePump.fx( Z Particle Velocity=1.00, 2.00 ) fx_BldStm_lrg.fx( Z Particle Velocity=-2.00, 2.00 ) fx_dirtcrash.fx( Z Particle Velocity=-10.00, 10.00 ) fx_dirtspray_l.fx( Z Particle Velocity=-3.00, 3.00 ) fx_dustcloud_l.fx( Z Particle Velocity=-5.00, 5.00 ) fx_engFire.fx( Z Particle Velocity=0.00, 0.50 ) |
|
X Rotation=0.00, 0.00 | The rate at which an effect rotates in the X, Y, or Z plane. To create particles that rotate around a center, combine these Rotation parameters with the Particle Offset parameters. The greater the offset and the greater the rotation, the more dramatic the effect. For example, some of the spectacular fireworks effects in Flight Simulator were done using these two parameters. | fx_animaldust.fx( X Rotation=0.00, 0.00 ) fx_firework13.fx( X Rotation=250.00, 250.00 ) fx_firework15.fx( X Rotation=-100.00, 100.00 ) |
Y Rotation=0.00, 0.00 | fx_animaldust.fx( Y Rotation=0.00, 0.00 ) fx_Aurora1.fx( Y Rotation=0.00, 1110.00 ) fx_BelgFount1.fx( Y Rotation=120.00, 120.00 ) fx_firework13.fx( Y Rotation=250.00, 250.00 ) fx_firework15.fx( Y Rotation=-100.00, 100.00 ) fx_rtr_cmnt.fx( Y Rotation=2000.00, 2000.00 ) |
|
Z Rotation=0.00, 0.00 | fx_animaldust.fx( Z Rotation=0.00, 0.00 ) fx_firework10.fx( Z Rotation=10.00, 10.00 ) fx_firework13.fx( Z Rotation=250.00, 250.00 ) fx_firework15.fx( Z Rotation=-250.00, 250.00 ) fx_tchdwn.fx( Z Rotation=0.00, 2360.00 ) |
|
X Offset=0.00, 0.00 | The distance that the emitter is offset from its point of origin in the X, Y, and Z directions. | fx_animaldust.fx( X Offset=0.00, 0.00 ) fx_Aurora1.fx( X Offset=-300.00, 300.00 ) fx_Aurora2.fx( X Offset=-400.00, 400.00 ) fx_Aurora3.fx( X Offset=-500.00, 500.00 ) fx_Barnstorm.fx( X Offset=4.00, 4.00 ) fx_EmergencyLights.fx( X Offset=-0.50, -0.50 ) fx_firework6.fx( X Offset=-50.00, 50.00 ) fx_ForestBurntHuge.fx( X Offset=-40.00, 40.00 ) fx_kilauea1.fx( X Offset=-20.00, 20.00 ) fx_navgre.fx( X Offset=0.68, 0.68 ) |
Y Offset=0.00, 0.00 | fx_animaldust.fx( Y Offset=0.00, 0.00 ) fx_Aurora1.fx( Y Offset=100.00, 100.00 ) fx_beacon.fx( Y Offset=0.05, 0.05 ) fx_beaconb.fx( Y Offset=-0.05, -0.05 ) fx_CampFire.fx( Y Offset=0.20, 0.20 ) fx_engFire.fx( Y Offset=1.00, 1.00 ) fx_engstrt_cub.fx( Y Offset=-0.50, -0.50 ) fx_firework6.fx( Y Offset=-50.00, 50.00 ) fx_ForestFireHuge.fx( Y Offset=0.00, 100.00 ) fx_luxbeam1.fx( Y Offset=3150.00, 3150.00 ) |
|
Z Offset=0.00, 0.00 | fx_animaldust.fx( Z Offset=0.00, 0.00 ) fx_beacon.fx( Z Offset=0.05, 0.05 ) fx_engFire.fx( Z Offset=1.00, 1.00 ) fx_engstrt_jenny.fx( Z Offset=-1.00, -1.00 ) fx_firework6.fx( Z Offset=-50.00, 50.00 ) fx_ForestBurntHuge.fx( Z Offset=-40.00, 40.00 ) fx_kilauea1.fx( Z Offset=-20.00, 20.00 ) fx_navgre.fx( Z Offset=-0.18, -0.18 ) fx_Ngafalls_lrg.fx( Z Offset=10.00, 10.00 ) fx_Ngafalls_sml.fx( Z Offset=-10.00, 0.00 ) |
|
Pitch=0.00, 0.00 | The angle at which the emitter is tilted. A tilted emitter emits particles at an angle, a feature that is especially helpful when working with static particles. Measured in degrees. | fx_animaldust.fx( Pitch=0.00, 0.00 ) fx_cloudlightning01.fx( Pitch=80.00, 100.00 ) fx_Ngastatic_lrg.fx( Pitch=46.00, 46.00 ) |
Bank=0.00, 0.00 | The bank angle of the emitter. | fx_animaldust.fx( Bank=0.00, 0.00 ) |
Heading=0.00, 0.00 | The heading angle of the emitter. | fx_animaldust.fx( Heading=-10.00, 10.00 ) fx_Aurora1.fx( Heading=0.00, 0.00 ) fx_cloudlightning01.fx( Heading=0.00, 360.00 ) |
temperaturerangec | Set the check box if outside temperature is a factor. If so, the particles will only be emitted if the outside temperature is within the min/max range. This can be used to prevent, for example, steam appearing when the outside temperature is too warm for it to be visible. | fx_BldStm_lrg.fx( TemperatureRangeC=-9999.0, 0.0 ) fx_BldStm_med.fx( TemperatureRangeC=0.0, 5.0 ) fx_BldStm_sml.fx( TemperatureRangeC=5.0, 10.0 ) |
rendertype | This value is specific for wake effects. Set it to 1 for wake. | fx_wake_l.fx( RenderType=1 ) |
[Particle.0] | The [Particle.0] section defines the start of the first particle and the particle’s behavior after it has been emitted. You can include sections for more than one particle (for example, [Particle.0], [Particle.1], and [Particle.2]). | |
Name= |
It is often helpful to give the particle a name, such as “smoke puff”, “fireball”, or whatever. | fx_dirtspray_l.fx( Name=Dust Cloud ) fx_dirtspray_m.fx( Name=Dirt ) fx_dirtspray_s.fx( Name=Plume ) fx_engstrt.fx( Name=Smoke Puff 1 ) |
Lifetime=0.00, 0.00 | The length of time that the particle exists, in seconds. | fx_animaldust.fx( Lifetime=4.00, 6.00 ) fx_Aurora1.fx( Lifetime=3.00, 4.00 ) fx_Aurora2.fx( Lifetime=3.00, 6.00 ) fx_Barnstorm.fx( Lifetime=1.75, 2.00 ) fx_beacon.fx( Lifetime=0.10, 0.10 ) fx_beaconb.fx( Lifetime=0.01, 0.01 ) fx_beacong.fx( Lifetime=0.00, 0.00 ) fx_BelgFount1.fx( Lifetime=0.75, 1.60 ) fx_BelgFount2.fx( Lifetime=1.75, 3.00 ) fx_BilgePump.fx( Lifetime=1.00, 3.00 ) |
Type=19 | For normal particles the type should be set to 19. Some specific effects require a different number: # Effect 3 Lightning 21 Extrusions (such as wake) 22 Debris (the emission of library objects) 25 Light sources 26 Effects emitting effects |
fx_animaldust.fx( Type=19 ) fx_beacong.fx( Type=25 ) fx_cloudlightning01.fx( Type=3 ) fx_contrail_l.fx( Type=21 ) fx_flare.fx( Type=26 ) fx_object_test.fx( Type=22 ) |
X Scale=0.00, 0.00 | The starting size of the particle in the X, Y, and Z directions. Measured in meters. | fx_animaldust.fx( X Scale=0.10, 0.30 ) fx_Aurora1.fx( X Scale=3000.00, 3500.00 ) fx_Aurora2.fx( X Scale=2500.00, 3000.00 ) fx_Aurora3.fx( X Scale=2500.00, 3500.00 ) fx_Barnstorm.fx( X Scale=1.00, 1.50 ) fx_beacon.fx( X Scale=3.00, 3.00 ) fx_beaconb.fx( X Scale=5.00, 5.00 ) fx_beacong.fx( X Scale=3.20, 3.20 ) fx_beaconh.fx( X Scale=1.75, 1.75 ) fx_beaconwhi.fx( X Scale=1.50, 1.50 ) |
Y Scale=0.00, 0.00 | fx_animaldust.fx( Y Scale=0.10, 0.30 ) fx_Aurora1.fx( Y Scale=3000.00, 3500.00 ) fx_Aurora2.fx( Y Scale=2500.00, 3000.00 ) fx_Aurora3.fx( Y Scale=2500.00, 3500.00 ) fx_Barnstorm.fx( Y Scale=1.00, 1.50 ) fx_beacon.fx( Y Scale=3.00, 3.00 ) fx_beaconb.fx( Y Scale=5.00, 5.00 ) fx_beacong.fx( Y Scale=3.20, 3.20 ) fx_beaconh.fx( Y Scale=1.75, 1.75 ) fx_beaconwhi.fx( Y Scale=1.50, 1.50 ) |
|
Z Scale=0.00, 0.00 | fx_animaldust.fx( Z Scale=0.00, 0.00 ) fx_object_test.fx( Z Scale=1.00, 5.00 ) |
|
X Scale Rate=0.00, 0.00 | The rate at which a particle grows from zero to its scale goal (see the [ParticleAttributes] section) in the X, Y, and Z directions. The larger the number, the faster the scaling. | fx_animaldust.fx( X Scale Rate=0.25, 0.30 ) fx_Aurora1.fx( X Scale Rate=0.00, 0.10 ) fx_Barnstorm.fx( X Scale Rate=0.00, 0.00 ) fx_BelgFount1.fx( X Scale Rate=0.40, 0.40 ) fx_BelgFount2.fx( X Scale Rate=0.50, 0.50 ) fx_BilgePump.fx( X Scale Rate=0.10, 0.20 ) fx_BldStm_lrg.fx( X Scale Rate=0.20, 0.20 ) fx_blowHole.fx( X Scale Rate=0.58, 1.00 ) fx_CampFire.fx( X Scale Rate=0.01, 0.01 ) fx_cloudlightning01.fx( X Scale Rate=1.00, 20.00 ) |
Y Scale Rate=0.00, 0.00 | fx_animaldust.fx( Y Scale Rate=0.25, 0.30 ) fx_Aurora1.fx( Y Scale Rate=0.00, 0.10 ) fx_Barnstorm.fx( Y Scale Rate=0.00, 0.00 ) fx_BelgFount1.fx( Y Scale Rate=0.40, 0.40 ) fx_BelgFount2.fx( Y Scale Rate=0.50, 0.50 ) fx_BilgePump.fx( Y Scale Rate=0.10, 0.20 ) fx_BldStm_lrg.fx( Y Scale Rate=0.20, 0.20 ) fx_blowHole.fx( Y Scale Rate=0.58, 1.00 ) fx_CampFire.fx( Y Scale Rate=0.01, 0.01 ) fx_cloudlightning01.fx( Y Scale Rate=1.00, 20.00 ) |
|
Z Scale Rate=0.00, 0.00 | fx_animaldust.fx( Z Scale Rate=0.00, 0.00 ) fx_object_test.fx( Z Scale Rate=-1.00, 1.00 ) |
|
Drag=0.00, 0.00 | Drag defines the effect of wind and gravity on the particles. Negative numbers impart more drag. For positive numbers, don’t use a value greater than 1.00. For a reasonable effect of wind on dust particles use a value around -0.5. | fx_animaldust.fx( Drag=-0.50, -0.50 ) fx_Aurora1.fx( Drag=0.00, 0.00 ) fx_BelgFount1.fx( Drag=-1.00, -0.98 ) fx_BelgFount2.fx( Drag=-2.00, -1.98 ) fx_BldStm_lrg.fx( Drag=-1.50, -1.50 ) fx_blowHole.fx( Drag=-0.20, -0.20 ) fx_contrail_l.fx( Drag=-999.00, -999.00 ) fx_dirtspray_l.fx( Drag=-1.50, -1.49 ) fx_dirtspray_m.fx( Drag=-2.00, -1.95 ) fx_firework1.fx( Drag=-1.00, -1.00 ) |
Color Rate=0.00, 0.00 | The first value gives the percentage of the lifetime of the particle that the particle will be colored with Color Start, between the first and second values the colors will cross-fade, and the second value gives the percentage of the lifetime after which the particle is colored Color End. The percentages are expressed as fractions, for example: 0.50 is 50 percent. | fx_animaldust.fx( Color Rate=0.50, 0.80 ) fx_Aurora1.fx( Color Rate=0.30, 0.60 ) fx_Barnstorm.fx( Color Rate=0.00, 0.00 ) fx_BelgFount1.fx( Color Rate=0.50, 0.50 ) fx_BelgFount2.fx( Color Rate=0.10, 0.50 ) fx_BilgePump.fx( Color Rate=0.20, 0.50 ) fx_blowHole.fx( Color Rate=0.00, 1.00 ) fx_CampFire.fx( Color Rate=0.90, 0.95 ) fx_contrail_l.fx( Color Rate=0.33, 0.45 ) fx_contrail_s.fx( Color Rate=0.10, 0.20 ) |
X Offset=0.00, 0.00 | The distance that the emitted particles are offset from the emitter in the X, Y, and Z directions. These parameters can be combined with the Emitter Rotation parameters to create swirling particle effects. They can also be used to spread particles out over an area. | fx_animaldust.fx( X Offset=0.00, 0.00 ) fx_Barnstorm.fx( X Offset=-7.00, 7.00 ) fx_BelgFount1.fx( X Offset=-10.00, 10.00 ) fx_BelgFount2.fx( X Offset=-70.00, -70.00 ) fx_BilgePump.fx( X Offset=-0.20, 0.20 ) fx_deicing.fx( X Offset=-4.24, -4.24 ) fx_engFire.fx( X Offset=-0.30, 0.30 ) fx_explosion.fx( X Offset=-2.00, 2.00 ) fx_firework13.fx( X Offset=44.00, 45.00 ) fx_FlamingDebris.fx( X Offset=-1.00, 1.00 ) |
Y Offset=0.00, 0.00 | fx_animaldust.fx( Y Offset=0.00, 0.00 ) fx_BilgePump.fx( Y Offset=0.90, 0.90 ) fx_blowHole.fx( Y Offset=0.00, 1.00 ) fx_deicing.fx( Y Offset=13.21, 13.21 ) fx_DolphinSpray.fx( Y Offset=-5.00, -5.00 ) fx_engFire.fx( Y Offset=-0.30, 0.30 ) fx_engstrt_vega.fx( Y Offset=-1.20, -1.20 ) fx_explosionOiltank.fx( Y Offset=5.00, 5.00 ) fx_firework13.fx( Y Offset=54.00, 55.00 ) fx_firework15.fx( Y Offset=45.00, 45.00 ) |
|
Z Offset=0.00, 0.00 | fx_animaldust.fx( Z Offset=0.00, 0.00 ) fx_Barnstorm.fx( Z Offset=0.00, 3.00 ) fx_BelgFount1.fx( Z Offset=10.00, 10.00 ) fx_BelgFount2.fx( Z Offset=-35.00, -35.00 ) fx_BilgePump.fx( Z Offset=1.00, 1.00 ) fx_deicing.fx( Z Offset=-0.04, -0.04 ) fx_engsmoke2.fx( Z Offset=5.00, 5.00 ) fx_engstrt_vega.fx( Z Offset=-2.00, -2.00 ) fx_explosion.fx( Z Offset=-2.00, 2.00 ) fx_explosionOiltank.fx( Z Offset=-10.00, 10.00 ) |
|
Fade In=0.00, 0.00 | The moment during its lifetime that a particle fades in. Expressed as a percentage of total lifetime. | fx_animaldust.fx( Fade In=0.10, 0.20 ) fx_Aurora1.fx( Fade In=0.30, 0.30 ) fx_Barnstorm.fx( Fade In=0.00, 0.00 ) fx_BelgFount1.fx( Fade In=0.10, 0.10 ) fx_BilgePump.fx( Fade In=0.20, 0.20 ) fx_blowHole.fx( Fade In=0.00, 0.05 ) fx_CampFire.fx( Fade In=0.05, 0.10 ) fx_contrail_l.fx( Fade In=0.22, 0.25 ) fx_contrail_s.fx( Fade In=0.15, 0.15 ) fx_DDfire.fx( Fade In=0.50, 0.60 ) |
Fade Out=0.00, 0.00 | The moment during its lifetime that a particle fades out. Expressed as a percentage of total lifetime. | fx_animaldust.fx( Fade Out=0.60, 0.80 ) fx_Aurora1.fx( Fade Out=0.71, 0.71 ) fx_Barnstorm.fx( Fade Out=0.70, 0.80 ) fx_beacon.fx( Fade Out=0.00, 0.00 ) fx_BelgFount1.fx( Fade Out=0.40, 0.51 ) fx_BilgePump.fx( Fade Out=0.50, 0.51 ) fx_BldStm_lrg.fx( Fade Out=0.50, 0.50 ) fx_blowHole.fx( Fade Out=0.10, 0.20 ) fx_CampFire.fx( Fade Out=0.20, 0.40 ) fx_contrail_l.fx( Fade Out=0.75, 0.75 ) |
Rotation=-0.00, 0.00 | The rotation of a particle. It is best to use a negative number first and then a positive number to get the most variation in the amount of rotation. | fx_animaldust.fx( Rotation=-100.00, 100.00 ) fx_Aurora1.fx( Rotation=-2.00, -2.00 ) fx_Aurora2.fx( Rotation=3.00, 3.00 ) fx_Barnstorm.fx( Rotation=-1000.00, 1000.00 ) fx_beacon.fx( Rotation=0.00, 0.00 ) fx_BelgFount1.fx( Rotation=-20.00, 20.00 ) fx_CampFire.fx( Rotation=-15.00, 15.00 ) fx_contrail_l.fx( Rotation=-60.00, 60.00 ) fx_DDfire.fx( Rotation=-200.00, 200.00 ) fx_deicing.fx( Rotation=-50.00, 50.00 ) |
Shade=0/1 | An on/off toggle that determines whether the particle is darkened at night. It is used for night shading. | fx_animaldust.fx( Shade=1 ) |
Static=0/1 | An on/off toggle that, when turned on, makes the particle attach itself to the emitter and shuts off the emitter after the first particle. This parameter was used extensively in creating the lights for the planes. Use this parameter when you need one particle that must stay in a fixed location relative to the emitter (for example, signs or anything that needs to “stick” to the plane). Particle offsets do not work on static particles, use emitter offsets instead. |
fx_beacon.fx( Static=1 ) |
Face=0/1, 0/1, 0/1 | The direction that the particles face. Pitch, bank, and heading are the constraints for the particles’ facing movement. These are on/off switches because the particles either move in the corresponding direction, or they do not. To have the particles face you, use 1,1,1. If one of the values is 0, then the particles will be constrained in the corresponding axis. To have the particles remain perpendicular to the ground but still turn and face you, use 0,0,1. | fx_animaldust.fx( Face=1, 1, 1 ) fx_Aurora1.fx( Face=0, 0, 0 ) fx_Aurora2.fx( Face=0, 1, 1 ) fx_cloudlightning01.fx( Face=0, 1, 0 ) fx_dirtspray_l.fx( Face=0, 0, 1 ) fx_DolphinSpray.fx( Face=1, 0, 1 ) |
ground normal | If this is set to 1 the particle will be rendered parallel to the ground surface. This is for such effects as wake, rotor wash, burn marks, and similar ground effects. If this is set then the Facing options above (Ptich, Bank and Heading) are ignored. | |
emittedeffectname | The name of the effect initiated by this effect. | fx_flare.fx( EmittedEffectName=fx_flareEffect.fx ) |
rotation pitch | The pitch to apply to the library object emitted by the effect. This applies only to the Debris tab. |
fx_object_test.fx( Rotation Pitch=30.00, 30.00 ) |
rotation bank | The bank to apply to the library object emitted by the effect. | fx_object_test.fx( Rotation Bank=0.00, 0.00 ) |
rotation heading | The heading to apply to the library object emitted by the effect. | fx_object_test.fx( Rotation Heading=0.00, 0.00 ) |
[ParticleAttributes.0] |
The [ParticleAttributes] section defines the special attributes of a particle, such as color and texture. | |
Blend Mode=1/2/3 | Blend mode specifies which blending mode is used to display the texture, which should be one of: 0: No Alpha 1: Alpha blending 2: Additive blending 3: M ultiply blending
Alpha textures are full color and include a transparency mask (alpha channel).
|
fx_animaldust.fx( Blend Mode=1 ) fx_beacon.fx( Blend Mode=0 ) fx_beaconb.fx( Blend Mode=2 ) fx_dirtcrash.fx( Blend Mode=3 ) |
Texture=texturename.bmp | The name of the texture to reference in your textures folder. | fx_animaldust.fx( Texture=fx_1.bmp ) fx_Aurora1.fx( Texture=fx_aurora.bmp ) fx_Barnstorm.fx( Texture=fx_barnstorm.bmp ) fx_beacon.fx( Texture=fx_2.bmp ) fx_BelgFount1.fx( Texture=fx_5.bmp ) fx_CampFire.fx( Texture=fx_Firesheet01.bmp ) fx_cloudlightning01.fx( Texture=fx_flash.bmp ) fx_cloudlightning02.fx( Texture=fx_lightning1.bmp ) fx_contrail_l.fx( Texture=fx_smoke.bmp ) fx_DDfire.fx( Texture=fx_fireAdd.bmp ) |
Bounce=0.00 | The reaction of a particle when it collides with the ground. The larger the number, the greater the bounce. If the parameter is set to 0, no reaction occurs. If it is set to 1.0 then it will come off the ground at the same velocity that it hit it. Use a value less than 1.0 to simulate the loss of energy due to the impact. | fx_animaldust.fx( Bounce=0.00 ) fx_BilgePump.fx( Bounce=0.20 ) fx_CampFire.fx( Bounce=1.00 ) fx_WaterFall.fx( Bounce=0.50 ) |
Color Start=000, 000, 000, 000 | The initial color of a particle. The first three numbers define the red, green, and blue (RGB) values and the fourth number specifies the amount of alpha transparency (R, G, B, [00-255]). | fx_animaldust.fx( Color Start=166, 148, 130, 100 ) fx_Aurora1.fx( Color Start=154, 176, 79, 55 ) fx_Aurora2.fx( Color Start=154, 176, 79, 65 ) fx_Aurora3.fx( Color Start=154, 176, 79, 155 ) fx_Barnstorm.fx( Color Start=255, 255, 255, 255 ) fx_beacon.fx( Color Start=30, 8, 0, 0 ) fx_beaconb.fx( Color Start=120, 20, 0, 180 ) fx_beacong.fx( Color Start=0, 200, 50, 180 ) fx_beaconh.fx( Color Start=150, 70, 0, 255 ) fx_beaconwhi.fx( Color Start=200, 200, 255, 180 ) |
Color End=000, 000, 000, 000 | The final color of a particle. The first three numbers specify the red, green, and blue (RGB) values, and the fourth number specifies the amount of alpha transparency (R, G, B, [00-255]). | fx_animaldust.fx( Color End=153, 140, 125, 255 ) fx_Aurora1.fx( Color End=82, 194, 150, 255 ) fx_Aurora2.fx( Color End=202, 181, 62, 255 ) fx_Aurora3.fx( Color End=196, 132, 68, 255 ) fx_Barnstorm.fx( Color End=255, 255, 255, 0 ) fx_beacon.fx( Color End=60, 8, 0, 0 ) fx_beaconb.fx( Color End=120, 20, 0, 0 ) fx_beacong.fx( Color End=0, 200, 50, 0 ) fx_beaconh.fx( Color End=150, 70, 0, 0 ) fx_beaconwhi.fx( Color End=200, 200, 255, 0 ) |
Jitter Distance=0.00 | The distance that the particles jitter. If you don't want the particles to jitter, set the parameter to 0. | fx_animaldust.fx( Jitter Distance=0.02 ) fx_Aurora1.fx( Jitter Distance=0.00 ) fx_Barnstorm.fx( Jitter Distance=0.05 ) fx_BelgFount1.fx( Jitter Distance=0.03 ) fx_contrail_l.fx( Jitter Distance=0.20 ) fx_contrail_s.fx( Jitter Distance=1.00 ) fx_DDfire.fx( Jitter Distance=0.10 ) fx_dustcloud_m.fx( Jitter Distance=0.01 ) fx_firework13.fx( Jitter Distance=0.50 ) |
Jitter Time=0.00 | The length of the delay before particles start to jitter. Measured in seconds. | fx_animaldust.fx( Jitter Time=1.00 ) fx_Aurora1.fx( Jitter Time=0.00 ) fx_Barnstorm.fx( Jitter Time=0.25 ) fx_BelgFount1.fx( Jitter Time=3.00 ) fx_BldStm_lrg.fx( Jitter Time=0.30 ) fx_contrail_s.fx( Jitter Time=5.00 ) fx_dustcloud_l.fx( Jitter Time=2.00 ) fx_engFire.fx( Jitter Time=11.00 ) fx_firework13.fx( Jitter Time=0.50 ) fx_wtrspray_l.fx( Jitter Time=0.20 ) |
FPS=0.00 | The frames per second at which the animation changes textures. For example, a value of 8 means that every eight of a second the animation will advance from one texture cell to the next. | fx_Barnstorm.fx( FPS=30.00 ) fx_CampFire.fx( FPS=16.00 ) fx_DDfire.fx( FPS=8.00 ) fx_ForestFireHuge.fx( FPS=12.00 ) fx_lakewaves.fx( FPS=6.00 ) |
TextureSize=256/512/1024 | The size of the texture (in pixels) that is used for animation. Textures must be square and their size must be a power of two, for example, 256, 512, or 1024. Larger sizes should be avoided because of the lack of support in graphics cards. | fx_Barnstorm.fx( TextureSize=256 ) fx_ForestFireHuge.fx( TextureSize=512 ) |
CellSize=64 | The size of each frame of animation (in this case, 64 pixels by 64 pixels). | fx_Barnstorm.fx( CellSize=64 ) fx_ForestFireHuge.fx( CellSize=128 ) |
CellStart=0 | The location of the first frame of animation on your texture. The code parses your texture from lower left to upper right (horizontally) stepping by CellSize. The value of 0 defines the absolute lower left cell of the texture. | fx_Barnstorm.fx( CellStart=0 ) fx_Ngastatic_sml.fx( CellStart=1 ) |
CellEnd=7 | The location of the last frame of animation on your texture. For example, if you specify TextureSize=256 and CellSize=64, the texture is broken into 16 cells. In this case, a CellEnd value of 7 defines the cell that is halfway up the texture and all the way to the right. A CellEnd value of 15 defines the cell that is in the upper right.You could make a four-frame animation by setting TextureSize=256 and CellSize=128. In Flight Simulator 2004 only the bottom half of a texture could be used for an animation. This no longer applies, the whole texture can be divided into cells. | fx_Barnstorm.fx( CellEnd=7 ) fx_CampFire.fx( CellEnd=15 ) fx_GenevaFountain.fx( CellEnd=4 ) fx_lakewaves.fx( CellEnd=3 ) fx_TropLights.fx( CellEnd=2 ) |
TempK=000.00 | The temperature of the particles, which defines how fast they rise or sink. To approximate room temperature, where particles neither rise nor sink, set TempK to 107 degrees. To make the particles rise, specify a temperature greater than 107; to make the particles sink, specify a temperature less than 107. | fx_Barnstorm.fx( TempK=100.00 ) fx_BilgePump.fx( TempK=106.00 ) fx_BldStm_lrg.fx( TempK=109.50 ) fx_blowHole.fx( TempK=105.00 ) fx_CampFire.fx( TempK=107.00 ) fx_DDfire.fx( TempK=110.00 ) fx_dirtcrash.fx( TempK=90.00 ) fx_dustcloud_l.fx( TempK=108.00 ) fx_explosion.fx( TempK=70.00 ) fx_explosionFire.fx( TempK=120.00 ) |
TempRate=-0.00 | The rate at which the particles cool or heat up. A negative value represents temperatures that are cooling. The faster particles cool, the sooner they fall back to the ground. A positive value represents temperatures that are rising. The faster particles heat up, the sooner they accelerate into the sky. | fx_Barnstorm.fx( TempRate=0.01 ) fx_BelgFount1.fx( TempRate=-0.21 ) fx_BilgePump.fx( TempRate=-1.00 ) fx_BldStm_lrg.fx( TempRate=0.11 ) fx_blowHole.fx( TempRate=0.00 ) fx_CampFire.fx( TempRate=-0.02 ) fx_dirtcrash.fx( TempRate=-0.10 ) fx_dustcloud_l.fx( TempRate=-0.01 ) fx_engFire.fx( TempRate=0.02 ) fx_explosionFire.fx( TempRate=-0.20 ) |
uv1=0.00, 0.50 | The location of the lower-left corner of the texture on the texture page (X, Y) expressed as percentages. The lower-left corner of this texture starts at the left side of the page and 50 percent up its side. | fx_animaldust.fx( uv1=0.00, 0.50 ) fx_Aurora1.fx( uv1=0.00, 0.00 ) fx_Barnstorm.fx( uv1=0.50, 0.50 ) fx_BelgFount1.fx( uv1=0.50, 0.75 ) fx_BelgFount2.fx( uv1=0.50, 0.00 ) fx_cloudlightning01.fx( uv1=0.75, 0.00 ) fx_cloudlightning02.fx( uv1=0.25, 0.00 ) fx_dustcloud_l.fx( uv1=0.25, 0.75 ) fx_firework1.fx( uv1=0.75, 0.50 ) fx_FlourBombLand.fx( uv1=0.25, 0.50 ) |
uv2=0.50, 1.00 | The location of the upper-right corner of the texture lies on the texture page (X, Y) expressed as percentages. The upper-right corner of this texture is 50 percent to the right and at the very top of the page. See the diagram below. | fx_animaldust.fx( uv2=0.50, 1.00 ) fx_Aurora1.fx( uv2=1.00, 1.00 ) fx_beacon.fx( uv2=0.00, 0.00 ) fx_beaconb.fx( uv2=0.50, 0.50 ) fx_BelgFount1.fx( uv2=0.75, 1.00 ) fx_BelgFount2.fx( uv2=1.00, 0.50 ) fx_cloudlightning03.fx( uv2=0.25, 1.00 ) fx_dirtspray_l.fx( uv2=0.75, 0.75 ) fx_dustcloud_l.fx( uv2=0.38, 0.88 ) fx_explosionFire.fx( uv2=1.00, 0.25 ) |
X Scale Goal=0.00 | The maximum size in the X, Y, and Z directions that a particle scales to based on its scale rates in the X, Y, and Z directions, respectively. | fx_animaldust.fx( X Scale Goal=2.00 ) fx_Aurora1.fx( X Scale Goal=0.00 ) fx_BelgFount1.fx( X Scale Goal=65.50 ) fx_BilgePump.fx( X Scale Goal=32.50 ) fx_BldStm_lrg.fx( X Scale Goal=300.00 ) fx_blowHole.fx( X Scale Goal=3.00 ) fx_CampFire.fx( X Scale Goal=1.00 ) fx_cloudlightning01.fx( X Scale Goal=200.00 ) fx_contrail_l.fx( X Scale Goal=20.00 ) fx_DDfire.fx( X Scale Goal=10.00 ) |
Y Scale Goal=0.00 | fx_animaldust.fx( Y Scale Goal=2.00 ) fx_Aurora1.fx( Y Scale Goal=0.00 ) fx_BelgFount1.fx( Y Scale Goal=65.50 ) fx_BilgePump.fx( Y Scale Goal=32.50 ) fx_BldStm_lrg.fx( Y Scale Goal=300.00 ) fx_blowHole.fx( Y Scale Goal=3.00 ) fx_CampFire.fx( Y Scale Goal=1.00 ) fx_cloudlightning01.fx( Y Scale Goal=200.00 ) fx_contrail_l.fx( Y Scale Goal=20.00 ) fx_DDfire.fx( Y Scale Goal=10.00 ) |
|
Z Scale Goal=0.00 | fx_animaldust.fx( Z Scale Goal=0.00 ) | |
Extrude Length=0.00 | The length of each portion of an extruded effect. | fx_animaldust.fx( Extrude Length=0.00 ) fx_contrail_l.fx( Extrude Length=500.00 ) fx_contrail_s.fx( Extrude Length=50.00 ) fx_DolphinSpray.fx( Extrude Length=2.00 ) fx_flareEffect.fx( Extrude Length=20.00 ) fx_skidmark.fx( Extrude Length=5.00 ) fx_trailingFlame.fx( Extrude Length=10.00 ) fx_wake.fx( Extrude Length=40.00 ) fx_wake_l.fx( Extrude Length=60.00 ) fx_wake_m.fx( Extrude Length=70.00 ) |
Extrude Pitch Max=0.00 | The pitch angle at which point the extrusion creates a new section. The smaller the number, the smoother the curves of your extrusions. | fx_animaldust.fx( Extrude Pitch Max=0.00 ) fx_contrail_l.fx( Extrude Pitch Max=2.00 ) fx_DolphinSpray.fx( Extrude Pitch Max=15.00 ) fx_skidmark.fx( Extrude Pitch Max=10.00 ) fx_SnowSkiTrack.fx( Extrude Pitch Max=5.00 ) fx_wake.fx( Extrude Pitch Max=90.00 ) |
Extrude Heading Max=0.00 | The heading angle at which point the extrusion creates a new section. | fx_animaldust.fx( Extrude Heading Max=0.00 ) fx_contrail_l.fx( Extrude Heading Max=2.00 ) fx_DolphinSpray.fx( Extrude Heading Max=15.00 ) fx_skidmark.fx( Extrude Heading Max=10.00 ) fx_SnowSkiTrack.fx( Extrude Heading Max=5.00 ) |
guid | GUID of the library object to be emitted by the effect. Applies only to the Debris tab. Note that the GUID must be enclosed by curly brackets. | fx_object_test.fx( GUID={guid} ) |
[sound] |
||
looping | Set to TRUE to loop the audio file. The file will be played for the lifetime of the particle. | fx_Barnstorm.fx( Looping=FALSE ) fx_BilgePump.fx( Looping=TRUE ) |
minattenuationdistance | The distance from the source of the sound, that the sound will no longer be heard, in meters. | fx_Barnstorm.fx( MinAttenuationDistance=300 ) fx_BilgePump.fx( MinAttenuationDistance=10.00 ) fx_explosion.fx( MinAttenuationDistance=500.00 ) fx_explosionOiltank.fx( MinAttenuationDistance=700.00 ) fx_explosionOiltankSmall.fx( MinAttenuationDistance=600.00 ) fx_FireExhaust_JetTruck.fx( MinAttenuationDistance=180.00 ) fx_FireJets_JetTruck.fx( MinAttenuationDistance=300.00 ) fx_fire_OilRig.fx( MinAttenuationDistance=200.00 ) fx_FlourBombLand.fx( MinAttenuationDistance=50.00 ) fx_OilFireMedium.fx( MinAttenuationDistance=100.00 ) |
filename | The file should be placed in the Microsoft Flight Simulator X/sound folder. | fx_Barnstorm.fx( FileName=barn_fx ) fx_BilgePump.fx( FileName=BoatWaterLOOP.wav ) fx_explosion.fx( FileName=Exp_Gen02.wav ) fx_explosionFire.fx( FileName=Exp_Gen01.wav ) fx_explosionOiltank.fx( FileName=Exp_OilRig02.wav ) fx_explosionOiltankHorizontal.fx( FileName=Exp_OilRig03.wav ) fx_explosionOiltankSmall.fx( FileName=Exp_OilRig01.wav ) fx_FireExhaust_JetTruck.fx( FileName=JetTruckIdleMIX.wav ) fx_FireJets_JetTruck.fx( FileName=Rocket02.wav ) fx_firework1.fx( FileName=firework ) |
The Controller is a powerful feature of Flight Simulator that lets you create sequences of various effects that can be triggered from one place. Essentially, a controller sets up a series of effects (or other controllers), and then it either repeatedly cycles through the effects or randomly selects and triggers some of them. Because controllers are effects themselves, you can spawn controllers from within controllers (just like any other effect). You can use this feature to create a great randomization effect or huge sequences of events that last over long time periods. The only limitation is how many particles you can render onscreen before affecting the frame rate.
There is no tool to create controller's, you will have to create them in a text editing tool, such as Microsoft Notepad or Microsoft Visual Studio.
The format of a controller file is:
Effects file section or property | Description | Examples |
[Library Effect] |
The parameters in the [Library Effect] section are the same as for a regular effects file. | |
[Properties] |
The parameters in the [Properties] section are the same as for a regular effects file. | |
[controller.0] |
The controller number. You can spawn multiple controllers: [controller.1], [controller.2], and so on. | |
Lifetime=0.00, 0.00 | The length of time that the controller exists and emits effects. A Lifetime parameter value of 0.00 creates a controller that has an infinite lifetime. If a controller has an infinite lifetime, the effects engine continues to step through the list of effects until the scenery engine shuts off the controller. A short lifetime can mean that the controller steps through the list of effects only once or twice. | Cntrl_Barn.fx( lifetime=0.0, 0.0 ) Cntrl_fireworks.fx( lifetime=0.01, 0.01 ) Cntrl_ForestFireSingle.fx( lifetime=1.00, 1.00 ) FW_show1.fx( lifetime=0.00, 0.00 ) lakewavecontroller.fx( lifetime=0,0 ) |
Type=0/1/2/3 | This parameter determines how the controller steps through the list of effects.There are four different types:
Type=0 is the Standard controller. The controller steps through each effect in the list sequentially.
Type=1 is the Random controller. This type works together with the Random count parameter described below. The controller takes the random count value that is generated and uses it to determine how many effects in the list to play. Each time through the list of effects, it selects a new random batch.
Type=2 is the Line controller. This type was used to create the waves (using vector data as lines). The line controller uses the X, Y, and Z Offset described below.
Type=3 is the Distance controller. This option works with the Distance parameter, which sets the distance at which this effect becomes visible or audible. |
Cntrl_Barn.fx( type=3 ) Cntrl_bldstm.fx( type=1 ) Cntrl_ForestFireSingle.fx( type=0 ) lakewavecontroller.fx( type=2 ) |
Delay=0.00, 0.00 | The time delay that occurs after the controller steps through all of the effects. (The effects are listed in the table below.) After the delay, the control steps through the effects again. | Cntrl_Barn.fx( delay=10.00, 10.00 ) Cntrl_bldstm.fx( delay=1200.00, 1500.00 ) Cntrl_Deicing.fx( delay=0.20, 0.20 ) Cntrl_fireworks.fx( delay=0.00, 5.00 ) Cntrl_KilaueaEruption.fx( delay=42.00, 43.00 ) Cntrl_KilaueaSteam.fx( delay=45.00, 60.00 ) Cntrl_LV_fnt.fx( delay=25.00, 25.00 ) Cntrl_LV_vol.fx( delay=16.00, 17.00 ) Cntrl_OldFaithfull.fx( delay=300.00, 400.00 ) FW_show1.fx( delay=60.00, 60.00 ) |
X Offset=0.00, 0.00 | Used with the Line controller. The particles are generated this offset distance from the line in the X, Y, or Z direction. | Cntrl_Barn.fx( x offset=0.00, 0.00 ) lakewavecontroller.fx( x offset=0,0 ) |
Y Offset=0.00, 0.00 | Cntrl_Barn.fx( y offset=0.00, 0.00 ) lakewavecontroller.fx( y offset=0,0 ) |
|
Z Offset=0.00, 0.00 | Cntrl_Barn.fx( z offset=0.00, 0.00 ) lakewavecontroller.fx( z offset=50,60 ) |
|
Frequency=0.00, 0.00 | Determines how many particles appear along each section of line. If your lines (vector data) are of fairly even length, you can very accurately fill in along the line. | lakewavecontroller.fx( Frequency=60,60 ) |
Random Count=0, 0 | Picks a random value between the min/max values (in whole numbers) and then randomly chooses that number of effects to run. Use this parameter with the Random Controller (see Type above). | Cntrl_bldstm.fx( random count=1, 1 ) Cntrl_ForestFireSingle.fx( random count=0, 0 ) |
Distance=0 | Determines how close the user has to be before this effect is either visible or audible. You can use this parameter to create location specific sound effects. Use this parameter with the Distance Controller (see Type above). | Cntrl_Barn.fx( distance=15.00, 15.00 ) Cntrl_Deicing.fx( distance=35.00, 35.00 ) |
effect.0=fx_launch, -10.00, 0.00, -10.00, 10.00, 0.00, 10.00, 0.00, 1.00 | The first effect in the list. The format is: effect.#=effect name, X min, Y min, Z min, X max, Y max, Z max, delay min, delay max |
Cntrl_Barn.fx( effect.0=fx_Barnstorm, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 ) Cntrl_bldstm.fx( effect.0=fx_dummy, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 300.00 ) Cntrl_Deicing.fx( effect.0=fx_deicing, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 ) Cntrl_fireworks.fx( effect.0=fw_show1, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00 ) Cntrl_ForestFireSingle.fx( effect.0=fx_ForestFireHuge, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 ) Cntrl_KilaueaEruption.fx( effect.0=fx_Kilauea1, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00 ) Cntrl_KilaueaSteam.fx( effect.0=fx_Kilsteam, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00 ) Cntrl_LightningFire.fx( effect.0=fx_lightningFire, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 ) Cntrl_LV_fnt.fx( effect.0=fx_BelgFount2, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00 ) Cntrl_LV_vol.fx( effect.0=fx_MirVolc, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00 ) |
effect.#=effect name | The effect number and what effect (located in the effects folder) is to be played. You can also trigger another controller from here. | Cntrl_bldstm.fx( effect.1=fx_dummy, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 300.00 ) Cntrl_fireworks.fx( effect.1=fw_show2, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 5.00 ) Cntrl_ForestFireSingle.fx( effect.1=fx_ForestFireSmoke, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 ) Cntrl_LightningFire.fx( effect.1=fx_ForestFireMedium, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 1.00 ) Cntrl_LV_fnt.fx( effect.1=fx_BelgFount1, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00 ) FW_show1.fx( effect.1=fx_launch, -10.00, 0.00, -10.00, 10.00, 0.00, 10.00, 0.00, 1.00 ) FW_show3.fx( effect.1=fx_launch, -5.00, 0.00, -5.00, 5.00, 0.00, 5.00, 0.00, 1.00 ) |
X min | The minimum offset value of the effect in the X direction. These are used to randomize (or specify exactly) the location of the effect when it is played. | |
Y min | The minimum offset value of the effect in the Y direction. | |
Z min | The minimum offset value of the effect in the Z direction. | |
X max | The maximum offset value of the effect in the X direction. | |
Y max | The maximum offset value of the effect in the Y direction. | |
Z max | The maximum offset value of the effect in the Z direction. | |
Delay min Delay max |
The minimum and maximum delays, in seconds, between when the effect is called (when the controller steps through it) and when it actually gets played. The delays are helpful because the controller steps through the effects list quickly (almost instantaneously), so if you want the effects to proceed in a slower sequence, use delays to augment trigger times. |
Like all scenery placement in the Flight Simulator world, effects placement is now handled via an XML file and BGLComp. BGLComp is a tool that will parse an XML stream and extract relevant data such as Latitude and Longitude and create a placement file (BGL file) that will place an object or effect in the Flight Simulator world.
As an example, we will place a small forest fire near Seattle. Before you can place the effect, make sure it is copied to the correct folder in Flight Simulator. Copy the included fx_ForestFire.fx file from the Special Effects\samples folder to your local Flight Simulator effects folder (…\Microsoft Flight Simulator X\\effects).
Note: In Flight Simulator some special effects such as smoke and haze will be rendered behind clouds regardless of their actual relative location. This is a known issue.
To test an effect place it at a location that is viewable at the very start of a flight. For example, if the flight you select starts at Seattle-Tacoma (Sea-Tac) airport, then the Lat/Long of the starting position of the plane is usually Lat N 47 25.89 Long W 122 18.48. If you place the effect you want to test just a little offset from this, then you can quickly view it and then make adjustments accordingly.
A good place to view an effect is just off the runway to the north of the default aircraft location:
The effects\samples folder contains one XML file required for this tutorial: ForestFire.XML. Placing an effect requires BGLComp.exe and BGLComp.xsd. These are located in the BGLComp SDK. Copy BGLComp.exe and BGLComp.xsd into the samples folder next to the ForestFire.XML. The BGLComp.exe application allows you to place an effect in the Flight Simulator X world. BGLComp requires an XML file in order to place an effect. Double click on ForestFire.XML file, its contents should look like this :
<?xml version="1.0" encoding="ISO-8859-1" ?> <FSData version="9.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="bglcomp.xsd"> <SceneryObject lat="47.432" lon="-122.308" alt="0" pitch="0" bank="0" heading="0" altitudeIsAgl="TRUE" imageComplexity="NORMAL"> <Effect effectName="fx_ForestFire" /> </SceneryObject> </FSData> |
The XML file is case sensitive. If you are editing the file be sure to follow the structure of the XML in the sample exactly. The only XML parameters that we will be dealing with are those located within the SceneryObject tag and those within the Effect tag. Here is what each of the parameters means:
Notes
The value of the Pitch field is expressed in degrees, from 0-360. Use this field with effects that have a directional alignment along the x-axis.
The value of the Bank field is expressed in degrees, from 0-360. Use this field with effects that have a directional alignment along the z-axis.
The value of the Heading field is expressed in degrees, from 0-360, with 0 degrees being true north. Use this field with effects that have a directional alignment along the y-axis.
altitudeIsAgl = Whether the altitude is represented in AGL (actual ground level) or MSL (median sea level). “true” is AGL. “false” is MSL. If you want the object to snap to the ground, make “Alt=0” and “Altitude is AGL=true”. Almost all scenery effects will use AGL.
imageComplexity= The minimum scenery complexity in the display settings for this object to show up. They are: “Very Sparse”, “Sparse”, “Normal”, “Dense”, “Very Dense” and “Extremely Dense”.
effectName= The name of the effect to be placed at this location. (This is the full effect name minus the .fx suffix).
effectParams= The parameters of the effect. For example, the following effect will appear at midnight on January 1st every year and exist for 20 minutes:
<Effect effectName="fx_ForestFire" effectParams="MOY=01,01;DOM=01,01;HOD=00,00;MOH=00,20;"/>
The following parameters can be specified in the Effect section of the XML file:
Paramètre | Description |
RANDOM=random_range,random_threshold; | Specifies that the effect occurs randomly. A random number is generated between 0 and random_range; if the number generated is less than random_threshold, the effect is not created. For example: RANDOM=10,9 (10% chance of seeing the effect) RANDOM=10,6 (40% chance of seeing the effect) |
YEAR=year_begin,year_end; | Specifies that the effect occurs only if the simulation time is within the year range, inclusively. To have an effect play for the year 1989, the parameter would be written as: YEAR=1989,1989 |
MOY=moy_begin,moy_end; | Specifies the months of the year (MOY), days of the month (DOM), hours of the day (HOD), minutes of the hour (MOH), and seconds of the minute (SOM) for which the effect occurs. All ranges are inclusive. Any combination of these ranges may be used; the more that are used, the fewer valid date/times the effect occurs. All times are in the local time-zone. MOY range: 1,12;Where "1"= January, and "12"= December |
DOM=dom_begin,dom_end; | DOM range: 1,31;Where "1"= first day of the month, and "31"= last possible day of the month |
HOD=hod_begin,hod_end; | HOD range: 0,23;Where "0"= would be midnight, and “23” is 11pm. |
MOH=moh_begin,moh_end; | MOH range: 0,59;Where "0"= would be the start of the duration of 60 minutes |
SOM=som_begin,som_end; | SOM range: 0,59;Where "0"= would be the start of the duration of 60 seconds |
DAWN=1|0; DAY=1|0; DUSK=1|0; NIGHT=1|0; |
Specifies that the effect should only occur during certain periods of the day. If the value is 1, the effect will occur. If the value is 0, it will not. If none of these parameters are specified, the effect will occur the entire day. |
DURATION=seconds; | Specifies, in seconds, the duration of the effect. This parameter may be a non-integer; i.e. 2.5. |
Vous pouvez ajouter plusieurs effets différents à un fichier XML. Créez simplement plusieurs étiquettes SceneryObject, par exemple (pour créer deux feux de forêt) :
<?xml version="1.0" encoding="ISO-8859-1"?>
<FSData version="9.0" xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation="bglcomp.xsd"> <SceneryObject lat="47.432" lon="-122.308" alt="0" pitch="0" bank="0" heading="0" altitudeIsAgl="TRUE" imageComplexity="NORMAL"> <Effect effectName="fx_ForestFire" /> </SceneryObject> <SceneryObject lat="47.505" lon="-122.308" alt="0" pitch="0" bank="0" heading="0" altitudeIsAgl="TRUE" imageComplexity="NORMAL"> <Effect effectName="fx_ForestFire" /> </SceneryObject> </FSData> |
After you have created the .XML file, you must compile the file into a format that Flight Simulator can use. To do this, you will run ForestFire.XML through the BGLComp.exe to create a new file, ForestFire.bgl.
If you are having troubles getting your XML to successfully create a BGL file, you might want to do it in the MS-DOS Command window in order to see the errors generated. Do this by opening a MS-DOS Command prompt window and navigating to the folder in which you have placed the ForestFire.XML and the BGLComp.exe. Then simply type: “bglcomp ForestFire.XML” at the command prompt. The command-line BGLComp application will warn you if any of the tags in the XML file are invalid.
Before you can see the effect, you must move the compiled ForestFire.BGL file to the proper folder.
To move the BGL File into Flight Simulator:
© 2006 Microsoft Corporation. All rights reserved.
Traduction Jean-Paul Corbier - juin 2011