This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
more_dts [2021/12/06 10:45] – [Attaching Emitters] hneg | more_dts [2021/12/06 12:08] (current) – ["Importing" Parameters] hneg | ||
---|---|---|---|
Line 163: | Line 163: | ||
To detach emitter from terrain object selection: just drag the emitter away from the object. | To detach emitter from terrain object selection: just drag the emitter away from the object. | ||
+ | |||
+ | ==== Global Attach ==== | ||
+ | {{: | ||
+ | With this you can attach the emitter on any objects surface at any position. This can be a tad annoying to use because the object surface detection is checked from many directions so which ever, the cursor or the emitter itself, collides with the surface there' | ||
+ | Does not work properly on " | ||
+ | Active **//Global attach//** is indicated by a globe icon over the navigation widget: | ||
+ | {{ : | ||
+ | To attach an emitter to the an entity: select the emitter, select global attach mode, hover over the entity and press ``ALT + A``. | ||
+ | You will hear an attach sound play, and the emitter/ | ||
+ | {{ : | ||
+ | NOTE that the object surface detection is multi-sided so in some camera-angle-to-the-object situations the tool will decide the emitter is not over an object surface even though it looks it is. | ||
+ | |||
+ | <wrap important> | ||
+ | This works also inside buildings so you can attach emitters to building inside ceiling, walls etc. | ||
+ | <WRAP important> | ||
+ | <WRAP important> | ||
+ | |||
+ | ==== SHIFT + ALT + A " | ||
+ | This keybind attaches the emitters dragged over an Eden entity with the Eden //Surface snapping// and the tools //Surface Snapping slavery// **//on//** (this ' | ||
+ | |||
+ | This is very similar to the **//Global attach//** mode, the key differences are that this is of course done via dragging the emitters to the desired spot on the entity instead of the emitters following the camera aim, and unlike with **//Global attach//** this works on the outside surfaces of the entity only. | ||
+ | |||
+ | So, to reiterate: drag some emitter onto an Eden entity and press ``SHIFT + ALT + A`` and the emitter will be attached to that spot on the entity. | ||
+ | |||
+ | |||
+ | ==== Attach Finesse ==== | ||
+ | Emitters attached to an entity with any of the attach methods, except Selection Attach, can have their positioning fine-tuned in two ways: | ||
+ | - Adjusting the values in the Position field. Note that the values are in model space. | ||
+ | - Adjusting the emitter' | ||
+ | {{ : | ||
===== Trigger Sync ===== | ===== Trigger Sync ===== | ||
+ | Like already touched on in the various examples this allows for a control over when emitter emits via a trigger synced to the emitter. | ||
+ | <WRAP important> | ||
+ | The sync works so that when synced to a trigger the emitter will not start emitting in-game until the trigger is activated, and if the trigger is set to // | ||
+ | |||
+ | To sync an emitter to a trigger: select the emitter/ | ||
+ | {{ : | ||
+ | <WRAP important> | ||
+ | To de-sync emitter from the trigger: select emitter, hover mouse cursor over empty area and press ``SHIFT + ALT + S`` (or delete the blue "sync line" | ||
===== Importing BI Fire/Smoke Modules ===== | ===== Importing BI Fire/Smoke Modules ===== | ||
+ | This is done by pressing the **//Import Modules//** button that can be found under the [[ped_ui# | ||
+ | What it does it imports any BI fire or smoke effect modules present in the scenario into the tool. | ||
+ | <WRAP important> | ||
+ | If the module has a name the name will be adopted for the created emitter, if not the emitter will get a default // | ||
+ | |||
+ | When loading a scenario with the modules into Eden the tool will give you a prompt asking if you wish to import the modules: | ||
+ | {{: | ||
+ | If you check the // | ||
===== Die Out ===== | ===== Die Out ===== | ||
+ | This can be found under the [[ped_ui# | ||
+ | As explained in the examples this is timer in seconds after which the selected emitter/ | ||
+ | The timer starts from the moment the emitter starts to emit in-game. | ||
+ | <WRAP important> | ||
+ | |||
+ | NOTE that this will start a looping script for the emitter, and in an emitter set for each individual emitter.</ | ||
===== Follow objectHide ===== | ===== Follow objectHide ===== | ||
+ | This can be found under the [[ped_ui# | ||
- | ===== Diagnostics ===== | + | Does what it says on the tin, makes the selected emitter/ |
+ | Meaning if the object is hidden with ??obj hideObject true?? in-game the emitter will also " | ||
+ | <WRAP alert> | ||
+ | Ie. if you have 50 emitters attached to one object there’s still only one spawned script. But still optional as it might raise a performance concern if forced on each object by default, if you have 50 objects with attached emitters it would mean 50 scripts... | ||
+ | The loop is " | ||
+ | <WRAP important> | ||
+ | |||
+ | Why a looping script? Because there is no eventhandler to detect if object is hidden or not.</ | ||
+ | <WRAP important> | ||
+ | ===== Diagnostics ===== | ||
+ | When running the [[url|diagnostic.exe]] of the game the particle related diagnostic switches are available in the [[ped_ui# | ||
+ | * **// | ||
+ | * **// | ||
===== Data Validation ===== | ===== Data Validation ===== | ||
+ | The parameter fields on the tool UI all except the menus have a data validation system " | ||
+ | When you insert some value into a parameter field the field and the data in it will turn briefly to yellow which indicates the data is being validated: | ||
+ | {{: | ||
+ | Once it validates it turns back to white. | ||
+ | <WRAP important> | ||
+ | If it doesn’t validate it turns red: | ||
+ | {{: | ||
+ | Also a notification is shown on the top of the screen which can vary: usually you will get " | ||
+ | When using some global variable that doesn' | ||
+ | |||
+ | The param field stays red for annoyingly long time to remind you what you just did and then turns back to white and fills the field with either its default data or last successfully validated data. | ||
+ | |||
+ | Some faulty data is so faulty that the game can't continue with it and a visible scripting error is shown and the validation for that field can break down (stays yellow or red). That I can't do anything about because there is no way to detect scripting errors, so you just have to be careful.. | ||
+ | <WRAP important> | ||
===== " | ===== " | ||
+ | As mentioned in the Export/ | ||
+ | |||
+ | Meaning that you can paste emitter parameters into the " | ||
+ | <WRAP important> | ||
+ | |||
+ | Obviously each parameter " | ||
+ | * parameters for [[https:// | ||
+ | * parameters for [[https:// | ||
+ | * parameters for [[https:// | ||
+ | * parameters for [[https:// | ||
+ | * parameter for [[https:// | ||
+ | |||
+ | And for lights | ||
+ | * parameters for [[https:// | ||
+ | * parameters for [[https:// | ||
+ | * parameters for [[https:// | ||
+ | * parameter for [[https:// | ||
+ | * parameter for [[https:// | ||
+ | * parameter for [[https:// | ||
+ | * parameter for [[https:// | ||
+ | * parameters for [[https:// | ||
+ | * parameter for [[https:// | ||
+ | * parameters for [[https:// | ||
+ | * parameters for [[https:// | ||
+ | |||
+ | This works the same for both particle and light emitters. Let’s say you have something like this in your script: | ||
+ | < | ||
+ | [" | ||
+ | "", | ||
+ | " | ||
+ | 1, | ||
+ | 0.5, | ||
+ | [0, 0, 0], | ||
+ | [0, 0, 0], | ||
+ | 1, | ||
+ | 1.23, | ||
+ | 1, | ||
+ | 0.2, | ||
+ | [0.6, 1.8, 2.5], | ||
+ | [[0.5, 0.5, 0.5, 0.14],[0.6, 0.6, 0.6, 0.06],[0.7, 0.7, 0.7, 0.02],[0.8, 0.8, 0.8, 0.006], | ||
+ | [5], | ||
+ | 0.1, | ||
+ | 0.1, | ||
+ | "", | ||
+ | "", | ||
+ | "", | ||
+ | 0, | ||
+ | false, | ||
+ | 0, | ||
+ | [[0, 0, 0, 0]] | ||
+ | ]; | ||
+ | |||
+ | _p setParticleRandom [ | ||
+ | 0.2, | ||
+ | [0.08, 0.08, 0.08], | ||
+ | [0.3, 0.3, 0.3], | ||
+ | 20, | ||
+ | 0.15, | ||
+ | [0, 0, 0, 0], | ||
+ | 0, | ||
+ | 0, | ||
+ | 1, | ||
+ | 0 | ||
+ | ]; | ||
+ | |||
+ | _p setDropInterval 0.0035;</ | ||
+ | |||
+ | To " | ||
+ | There is already data because the placed emitter by default has some parameters. So wipe those off first (press the **// | ||
+ | <WRAP important> | ||
+ | Then copy paste the parameters only, as in the value after the scripting command (array or number), on their respective fields on the tool and once done press the **//Paste Params//** button. The " | ||
+ | In case of this example the " | ||
+ | {{: | ||
+ | |||
+ | It’s exactly the same method for lights, with the only exception of the export/ | ||
+ | <WRAP important> | ||
+ | - Change setLightBrightness into setLightIntensity and multiply the value with 3000 (brightness x 3000 = intensity) | ||
+ | - just paste the brightness value into the Intensity field and hold down ``CTRL`` while pressing the **// | ||
+ | </ |