====== Examples ====== ===== Lightpoint Man ===== Select some man unarmed class entity like Competitor and open it’s attributes. * Expand the Emitter 3Ditor section and check the //Use object as emitter// box. * Select emitter count 4. * For the first emitter select Emitter type **//lightpoint//**, then the Effect type **//Chemlight_Blue//** and Model selection **//leftfoot//**. * For the second emitter select Emitter type **//lightpoint//**, Effect type **//Chemlight_Green//** and Model selection **//lefthand//**. * For the third emitter select Emitter type **//lightpoint//**, Effect type **//Chemlight_Red//** and Model selection **//rightfoot//**. * For the fourth emitter select Emitter type **//lightpoint//**, Effect type **//Chemlight_Yellow//** and Model selection **//righthand//**. * Press **//OK//**. * Then from the Eden editor’s Intel change the time so that it is dark. Now you should see the lights glow on the entity on those selected positions, something like this: {{ :att_xmpl_001_006.png |}} The emitter icons will appear on the center/feet of the entity model regardless of selected selections. If you drag the entity around you will see that the lights nicely follow along. Press **//Play Scenario//** and run around, the lights should follow the characters movements. If you would export the scenario and play it it would do the same there. You can try that if you wish, save and export the scenario into SP scenarios, exit the editor and load the scenario from the scenarios list and play. The same process works for particles, of course. If you check the **//Use default emitter set//** box you will see that most of the attributes get disabled and the **//Link model selections//** and **//link die out//** get checked. The default set will appear as one, with the possibility for one model selection and one die out value, because it is a set. You can name the individual emitters in the set though. It also overrides any previous emitter attributes you have selected for the entity. So, on that same entity as we did the lights (or just pick another one) check the **//Use default emitter set//** box and select some selection from the selection list. You can see how all the disabled attributes will also have the same selected selection in their selection list. This is because of the **//Link model selections//** is checked automatically. Press **//OK//**. NOTE that every time you change something the change has to be processed which causes a coffee mug progress indicator to show up. Now you should see the previously mentioned warning about damage. Just click Continue and the emitter icon set is created at the feet of the soldier and the particles appear on the selection on the soldier model. {{ :att_xmpl_002_002.png |}} Press **//Play Scenario//** and you can see your guy is on fire and "he" soon perishes. To remove the emitters open the attributes and un-check **//Use object as emitter((** and press **//OK//**, or you can delete them by selecting the emitter object (the "? in a box") and pressing ``DELETE`` on your keyboard. The default set behaves as one single emitter in this regard as well, so the whole set gets deleted. ===== Die out ===== To see how the Die out attribute works, set some entity to use the default emitter set as described above. Try some wreck, like a boat wreck for example as it allows you to see the effects nicely. Then type into the **//Die out//** attribute field the number **//5//**. Press **//OK//**. You can place down a player entity to watch the flames with if you don’t have one placed already. Press **//Play Scenario//** and once the preview has started after five seconds (roughly, it takes some moments for the scenario to init) you will see the particles disappear. ===== Follow objectHide ===== Using the same entity as with the above example, give the entity some name, like ??foo??. Set the **//Die out//** back to 0, check the **//Follow objectHide//** box, and press **//OK//**. If you didn’t place down player entity previously, do it now. Press **//Play Scenario//**. Open the debug console (``ESC``) and type in the Execute window: [] spawn { while {true} do { sleep 3; foo hideObject true; sleep 3; foo hideObject false; }; }; Press Local Exec (or ``ENTER``), then press ``ESC``. You can observe the boat disappearing and appearing back in 3 second intervals and the effect going out and starting up again with the boats hiding status. So, for example when dynamic simulation hides the entity the particles also disappear, or if you hide the entity for any reason during your scenario, so no need to worry about that. Of course the downside is that this spawns a looping script for each entity this is used on because there is no eventhandler to check if entity was hidden/shown… ===== Using a trigger ===== In addition to **//Follow objectHide//** there’s another way you can control when the attribute emitter effects appear/disappear. This done with a trigger. All you need to do is sync a trigger with the emitter (__not the entity!__) and the emitters will start emitting when that trigger is activated and stop emitting when it’s deactivated. NOTE that the regular Eden Sync does NOT work with this, you have to use a method specific to this tool. This sync is done by selecting the emitter you want to sync with the trigger, then hovering over the trigger (so that it "lights" up) and pressing ``SHIFT + ALT + S``. NOTE that if you change something other than the name of emitter(s) via the attributes after you have synced a trigger to the emitter(s) the sync will be lost so you need to sync the trigger again. In case of emitter sets such as the default emitter set used in these examples you only need to select one of the emitters in the set and sync that with the trigger using ``SHIFT + ALT + S``. ==== Some examples ==== === Simple === Place a player entity. Then place for example two BMP2 wrecks side by side with some space in between them and set them to emit **//CMeasures3//**. Or, set one BMP, set it to emit //Cmeasures3// and clone it by selecting either the BMP or the emitter and pressing ``SHIFT + ALT + C``. Place a 10x10x10 trigger about halfway between the two wrecks, then select the first wreck’s emitter, hover over the trigger and press ``SHIFT + ALT + S``. Then do the same for the other wreck’s emitter. The trigger’s visible name (text) changes to indicate it is now an activator for the emitters. You can not change this text, it’s "hard coded". {{ :att_xmpl_005_002.png |}} Set player as trigger owner (and make sure play is out of the trigger’s area). {{ :att_xmpl_005_001.png |}} Press **//Play Scenario//**. As you can see, wrecks don’t emit anything. Start walking between the wrecks and as you trigger the trigger both wrecks start emitting. Yay. Return to Eden. In the trigger attributes check the **//Repeatable//** box, press **//OK//**. Press **//Play Scenario//**. As previously, walk between the wrecks, emitters start emitting when you enter the trigger but now they also stop emitting when you exit the trigger. You can walk in and out of the trigger as many times as you like to see this effect. === A bit more complex(ish) === Remove the BMP wrecks and the trigger. Make sure the player entity has handgrenades. Place for example an empty Hunter. In it’s attributes write on the init field: this addEventHandler ["Explosion", {mynade = true}] Then set it to emit two particle emitters, first one’s class to **//BigDestructionFire//** and the second one’s class to **//BigDestructionSmoke//**. Press **//OK//**. Then place a trigger (size doesn’t matter). In it’s condition field write: missionNamespace getVariable ["mynade", false] Press **//OK//** and ``SHIFT + ALT + S`` the emitter with the trigger. {{ :att_xmpl_007_001.png |}} Press **//Play Scenario//** and throw the grenade at the hunter, make sure it lands close enough to trigger the "Explosion" eventhandler. Once the nade has exploded the flames and smoke erupt. Another one in the same vein, silly Twin Peaks-esque, but anyhoo: Remove the hunter and the trigger. Place down some man class entity that doesn’t have a weapon as target for you. In that entity’s attributes set it’s name to //nmeloon// and set it to emit 1 emitter. Set the emitter to emit class //ObjectDestructionRefractSmall// (refract is the heat haze effect) and select selection //Spine2//. Press **//OK//**. You can see how the entity is all hazy now. Place a trigger, in it’s condition field write: !alive nmeloon Set it’s timeout to min 1, mid 2, max 3. ``SHIFT + ALT + S`` the emitter with it. {{ :att_xmpl_008_001.png |}} Press **//Play Scenario//** and shoot the entity in the face. It drops dead and starts refracting. === Let’s do one more === Remove the previous example stuff except the player entity. Place down a metal barrel (not burning one). In its init write: this addEventHandler ["hit", {if (player in _this) then {flameon=true}}] Set it to emit three particle emitters; first two to //BigDestructionFire// and //BigDestructionSmoke//. Set the third to emit //SecondaryExp// and put in it’s **die out** field 0.1 This makes the emitter die fast enough to spurt out only a short burst of flames (otherwise it will loop like in the editor). By this point you probably think "well this sucks, can’t see anything now because of the particles." No need to worry, pressing ``SHIFT + ALT + D`` disables all the emitters in the scenario in the editor. They still emit normally when previewing but will not emit in the editor until you press ``SHIFT + ALT+ D`` again. With ``CTRL + ALT + D`` you can disable/enable selected emitters. Disabled emitters names turn red in 3D and on the map. Anyways, then place two men next to the barrel and set both to emit the default emitter set on selection //spine3//. (Note that unarmored men like Competitor die faster). Place down a trigger and sync all the emitters with it, in the trigger’s init field write: missionNamespace getVariable ["flameon", false] {{ :att_xmpl_009_001.png |}} **//Play Scenario//** and shoot at the barrel. It erupts in flames and so do the two men next to it.