VFX editor
|
There are two basic types of visual effects; crust effects and placeable effects. A crust effect is intended to be placed "on" a creature or other object, for example a flame effect to indicate that something is on fire or a glow given by a magical effect. Placeable effects simply exist in a region of space, for example the explosion of a fireball or sparkling dust motes floating in the air.
Visual effects are created using "emitters" that generate "particles". In the case of a crust effect, emitters are linked to specific nodes in the skeletal frame of the creature or placeable that the crust is being applied to. In the case of stand-alone visual effects the emitters are placed in three-dimensional space.
A particle is a two-dimensional image, sometimes animated and usually partially transparent, that moves through space under the control of a physics simulation. Each emitter can be programmed to generate particular types of particles in particular emission patterns.
See the VFX list for a list of existing visual effects, as well as standard naming conventions used in Dragon Age. See VFX_base.xls for information on the 2DA that integrates VFX generated by the VFX editor into the toolset and the game.
Contents
Timelines
A visual effect's timeline is divided into three phases; impact, duration, and cessation.
- The impact phase represents the "lead in" to the visual effect. For example, it could show a fire starting from a small spark and growing to full size, or a building glow as a spell gathers power. The impact phase lasts for a fixed period of time.
- The duration phase is a section of visual effects that can be repeated over and over for as long as the visual effect is supposed to be running. For example, a flickering fire or a shower of lightning bolts.
- The cessation phase is similar to the impact phase, lasting for a fixed period of time and showing the visual effect petering out to nothing. A fire could end with the flames dying down and emitting a brief stream of smoke, or a spell could end with a burst of sparks.
Each emitter has a curve that determines how "strongly" it is emitting particles over time, The curve is divided by these three phases.
Flipbooks
A VFX particle's texture can be set as a "flipbook", which means that the texture is divided into a grid of smaller images that are shown sequentially to create a simple animated image. For example, here is a texture divided into a four row by four column flipbook:
By rapidly flipping through the sixteen cells of this image the illusion of a roiling fireball is produced.
Exporting VFX resources
To export a visual effect in a form that can be used by the game, the VFXRoot node needs to be selected. You can then either right-click on the VFXRoot node to reach the "Post to local" command, or find it via the "Tools" menu. The "Post to local" command won't be present unless VFXRoot is selected.
VFXRoot properties
⊟ | General | |
Always High LOD | True/False | |
Name | Name your Visual Effect Note: This is the resource name, not the art file name - although they can be the same. | |
VFX Range (meters) | This was an old setting for the bounds of the VFX. Don’t think this works anymore, a different method was chosen to set the bounds | |
VFX Type | Either Placeable or Crust, this is defined when the VFX is first created and cannot be changed afterward. | |
⊟ | Animation | |
Impact Length | Time in seconds | |
Duration Length | Time in seconds. If the duration time is set to 2 seconds here in the VFX editor but in game the VFX is applied with a 3 minutes duration, the duration still last 2 sec but will loop for 3 minutes | |
Cessation Length | Time in seconds | |
Custom Animation Length | Time in seconds, this adds to the Total animation length. Note: These times apply to all emitters within the Root VFX. You can enter a custom animation type to the effect. This would have to be coordinated with design to call the fx + play its custom animation. | |
Custom Animation Name | Use whatever name you like here. It will be the name of the custom animation part of your FX. | |
Total Animation Length | Impact+Duration+Cessation+Custom Animation Length | |
Pre-Simulation Time | Seconds of VFX time to simulate before rendering in game. For example: use this to get rain to fall all the way to the ground before the player sees the exterior where it is raining. | |
⊟ | Buffer Effect 1 | |
Brightness | ||
Contrast | ||
GlowIntensity | ||
HBlurWidth | ||
Name | ||
VBlurWidth | ||
⊟ | Buffer Effect 2 | |
Name | ||
⊟ | Buffer Effect 3 | |
Name | ||
⊟ | Layout Setting | |
Layout | Selects a layout to display in the editor window. Useful to give a sense of scale, a sense of how a visual effect will look against a particular background, or to create visual effects that conform to specific landmarks (eg, a waterfall or fountain) | |
Layout Visible | A true/false toggle to display or hide the selected layout | |
⊟ | Material FX | |
Enable Material FX | ||
Color R | ||
Color G | ||
Color B | ||
Decal Alpha | ||
Decal Name | ||
Fresnel Falloff | ||
Invert Fresnel | ||
⊟ | Sound Cessation | |
Pitch | ||
Volume | ||
Sound | ||
⊟ | Sound Duration | |
Pitch | ||
Volume | ||
Sound | ||
⊟ | Sound Impact | |
Pitch | ||
Volume | ||
Sound |
Emitter properties
Properties for visual effect emitters are divided into several tabbed panes.
⊟ | General | |
Level of detail (LOD) | ||
Name | ||
⊟ | Type | |
Visible | true/false | |
Emitter Type | Fountain or Explosion | |
Update Only When Visible | true/false | |
OrientationBehaviour | None, BillboardToEmitterZ, BillboardToWorldZ, AlignedToParticleDirection, AlignedToWorldZ | |
LinkParticlesTogether | true/false | |
Linked Particles UV Distribution Size | ||
External Tint Parameter Name | Alphanumeric and underscores only. You can use the same name across multiple emitters, but it is case sensitive. | |
Use Variation Tint | true/false | |
⊟ | Material | |
Material Library | Material Libraries start with fx_* | |
Material Object | Select a Material from the above Lib | |
Material Library Refresh | Click to refresh the emitter | |
Flipbook Type | None, ContactSheet, Volume. This applies to volume texture materials. In this case rows should be the amount of volume layers, and columns be set to 1. Frame rate's the same. Contact sheets may work on that setting too, but may not work properly. | |
Flipbook Random Start Frame | true/false. If true, the particle's animation cycle will start at a randomly selected frame. | |
Flipbook Rows | Defines how many rows there are in the particle texture's flipbook. | |
Flipbook Columns | Defines how many columns there are in the particle texture's flipbook. | |
Flipbook Frames per Second | Determines how rapidly the cells of the flipbook are cycled through. | |
⊟ | Material | |
Chunky Model Name | This can use most types of models in the game. You have to apply a chunky material to it to see the results. Instead of camera-facing cards, you get meshes flying around. | |
⊟ | Location | |
Position | ||
Relative Position | ||
Orientation | ||
Relative Orientation |
Age Map
⊟ | General | |
Color R | ||
Color G | ||
Color B | ||
Color A | ||
Scale X | ||
Scale Y | ||
⊟ | Animatable Multipliers | |
Red Color Multiplier | ||
Green Color Multiplier | ||
Blue Color Multiplier | ||
Alpha Multiplier | ||
Scale Multiplier |
Emission
⊟ | Emission | |
Birth Rate | The rate at which the emitter spawns particles. By default this is in particles per second, but see below to make an emitter emit particles only as it moves. | |
Birth Rate +/- | Amount that the particle birth rate will randomly vary. For example, if your emitter has a birth rate of 1 second and a variance of 0.5, particles can be emitted anywhere from 0.5 to 1.5 seconds apart. | |
Birth Rate in particles/meter | When this is false (the default) the birth rate variable defines how many particles are emitted every second. When this is true true, the birth rate defines how many particles are emitted for every meter that the emitter travels. This is useful for creating "trails" of particles. | |
Initial Speed | The speed that particles are traveling when first spawned. The direction is always directly "up" from the emitter along the Z axis, rotate the emitter to send the particles moving in a different direction. | |
Initial Speed +/- | As with Birth Rate +/-, this property puts some random variance into the speed particles are spawned with. The directions are still limited to the same axis. | |
Acceleration | Defines an acceleration along the same axis that the initial speed moves the particles along. Negative values cause the particle to slow to a stop, it doesn't reverse its direction. | |
Additional Acceleration Space | Can be set to "World" or "Object". This defines the coordinate space that the next three acceleration values function in. If set to "world", they apply acceleration relative to the outside world. If set to "object", the acceleration is relative to the orientation of the emitter. | |
Additional Acceleration X | ||
Additional Acceleration Y | ||
Additional Acceleration Z | ||
Gravity | Applies a world-based acceleration downward. This is not exactly the same as adding "Additional Acceleration Z" in a World-based coordinate frame, the units are different (1 unit of gravity acceleration is much faster than 1 unit of additional acceleration) | |
Life Expectancy (s) | How long each particle exists before vanishing. | |
Life Expectancy +/- | Adds a random variance on particle life expectancy | |
Infinite Life (for Explosion type) | ||
Scale Range | Adds a random variance to the size of the particles. | |
Spawn Spread X (Deg) | Angle within which the particle's direction will be randomly varied from the vertical along the X axis. Giving this a positive value and leaving Spawn Spread Y at 0 will cause a "fan" effect oriented along the X axis. The angle measures deviation from the vertical, so putting "90" in here will result in a fan covering 180 degrees (90 degrees in the positive X direction and 90 degrees in the negative direction) | |
Spawn Spread Y (Deg) | Angle within which the particle's direction will be randomly varied from the vertical along the Y axis. | |
Rotation (revolutions/s) | ||
Rotation (revolutions/s) +/- | ||
Rotational Acceleration | ||
Initial Rotation (Deg) | ||
Initial Rotation (Deg) +/- | ||
⊟ | Chunky | |
Roll Orientation | ||
Spawn Orientation |
Other
⊟ | Inheritance | |
Inherit Velocity Instead Of Position | ||
Particle Inheritance | ||
⊟ | Colllision | |
Particles Affected By Wind | ||
Physics Emitter | ||
Collision Type | Bounce/Splat | |
Bounce Value | ||
⊟ | Bubble Motion | |
Movement Spread X (Deg) | ||
Movement Spread Y (Deg) | ||
Movement Spread Update Delay (Sec) | ||
⊟ | Point to Point | |
Target Name | Select an existing emitter target from a drop-down list. Any given emitter can only have one target defined for it, though multiple emitters can use the same target. The subsequent properties in this group determines how particles behave in relation to this target. | |
Target Attraction | Defines how strongly particles accelerate toward the target point, provided they are within the target's radius. | |
Target Radius | Radius within which particles are affected by the target's attraction. | |
Spawn Direction Tracks Target | If true, forces the emitter's effective positive Z direction to always point directly at the target, for purposes of emitting particles. You can still rotate the emitter in any direction but the particle pattern will always be emitted towards the target. | |
Kill Particle When Target Hit | If true, causes particles to vanish as soon as they reach the target. Otherwise the particles will remain at the target until their lifespan expires. | |
Particles Follow Path | !!Don't know what this one does, perhaps it causes particles to use a walkable path to travel from emitter to target? !! | |
⊟ | Volume Spawn | |
Volume Spawn Type | Can be set to None, User Specified Mesh, All Physics Objects, Selected Physics Object, Primitive Mesh, Parent Crust. Each option provides a different set of additional properties: |
- User Specified Mesh
- Volume Spawn User Specified Mesh Name
- Spawn within volume
- Invert Spawn Volume Normal
- Use Volume Normals For Direction
- All Physics Objects
- Spawn on Surface
- Use Normal For Velocity
- Selected Physics Object
- Volume Spawn Selected
- Primitive Mesh
- Primitive Mesh Type (can be box, sphere, or cylinder)
- Box:
- Primitive Box Min
- Primitive Box Max
- Sphere:
- Primitive Sphere Radius
- Cylinder
- Primitive Cylinder Radius
- Primitive Cylinder Height
- Primitive Cylinder Alignment
- Box:
- Spawn within volume
- Invert Spawn Volume Normal
- Use Volume Normals For Direction
- Primitive Mesh Type (can be box, sphere, or cylinder)
- Parent Crust
- Spawn on Surface
- Use Normal For Velocity
Splat
⊟ | General | |
Width | ||
Height | ||
Lifetime | ||
Number of Samples H | ||
Number of Samples W | ||
Orientation Range | ||
⊟ | Splat Material | |
Material Library | ||
Material Object | ||
Material Library Refresh | ||
Flipbook Type | ||
Flipbook Random Start Frame | ||
Flipbook Rows | ||
Flipbook Columns | ||
Flipbook Frames per Second | ||
Hold last frame |
Splat Age Map
⊟ | General | |
Color R | ||
Color G | ||
Color B | ||
Color A | ||
Scale X | ||
Scale Y | ||
⊟ | Animatable Multipliers | |
Red Color Multiplier | ||
Green Color Multiplier | ||
Blue Color Multiplier | ||
Alpha Multiplier | ||
Scale Multiplier |