-
Notifications
You must be signed in to change notification settings - Fork 18
ModuleWaterfallFX
Chris Adderley edited this page Jul 17, 2020
·
11 revisions
Adding a ModuleWaterfallFX node starts the process of creating an effect. There is typically a one to one relationship between nodes and engines - you require one node per engine on the part. The example below shows the minimum you need to get started, which is the module with a few fields.
MODULE
{
name = ModuleWaterfallFX
// This is a custom name and should be unique in the config
moduleID = ionFX
// This links the effects to a given ModuleEngines. If not found or not specified, it will use the first one it finds
engineID = basicEngine
// List out all controllers we want available
// This controller scales with atmosphere depth
CONTROLLER
{
name = atmosphereDepth
linkedTo = atmosphere_density
}
// This controller scales with effective throttle
CONTROLLER
{
name = throttle
linkedTo = throttle
}
}
All the fields listed above are mandatory. Without them the effects will not work. To learn more about Controllers, see here. Once the basic configuration is completed, you can start adding EFFECT nodes, which actually create and animate effects. see Effects for more detail.
A completed config looks like this. It is pretty long, but most will be generated by the ingame editor.
MODULE
{
name = ModuleWaterfallFX
// This is a custom name and should be unique in the config
moduleID = ionFX
// This links the effects to a given ModuleEngines. If not found or not specified, it will use the first one it finds
engineID = basicEngine
// List out all controllers we want available
// This controller scales with atmosphere depth
CONTROLLER
{
name = atmosphereDepth
linkedTo = atmosphere_density
}
// This controller scales with effective throttle
CONTROLLER
{
name = throttle
linkedTo = throttle
}
EFFECT
{
name = mainEffect
parentName = thrustTransform
MODEL
{
path = Waterfall/FX/fx-simple-plume-ion
positionOffset = 0,0,-0.0399999991
rotationOffset = 0,1,0
MATERIAL
{
transform = CylMesh
shader = Waterfall/Additive
TEXTURE
{
textureSlotName = _MainTex
texturePath = Waterfall/FX/fx-ion-noise
textureScale = 1,1
textureOffset = 0,0
}
FLOAT
{
floatName = _TintFalloff
value = 0
}
FLOAT
{
floatName = _Falloff
value = 3
}
FLOAT
{
floatName = _Fresnel
value = 3
}
FLOAT
{
floatName = _FresnelInvert
value = 0
}
FLOAT
{
floatName = _Noise
value = 0.5
}
FLOAT
{
floatName = _Brightness
value = 0.100000001
}
FLOAT
{
floatName = _SpeedX
value = 0
}
FLOAT
{
floatName = _SpeedY
value = 8
}
FLOAT
{
floatName = _TileX
value = 1
}
FLOAT
{
floatName = _TileY
value = 1
}
COLOR
{
colorName = _StartTint
colorValue = 0,1,0.655179501,0.582910895
}
COLOR
{
colorName = _EndTint
colorValue = 1,1,1,1
}
}
MATERIAL
{
transform = CylMeshOuter
shader = Waterfall/Additive
TEXTURE
{
textureSlotName = _MainTex
texturePath = Waterfall/FX/fx-ion-noise
textureScale = 1,1
textureOffset = 0,0
}
FLOAT
{
floatName = _TintFalloff
value = 0
}
FLOAT
{
floatName = _Falloff
value = 1.5
}
FLOAT
{
floatName = _Fresnel
value = 5
}
FLOAT
{
floatName = _FresnelInvert
value = 0
}
FLOAT
{
floatName = _Noise
value = 0.800000012
}
FLOAT
{
floatName = _Brightness
value = 0.200000003
}
FLOAT
{
floatName = _SpeedX
value = 0
}
FLOAT
{
floatName = _SpeedY
value = 50
}
FLOAT
{
floatName = _TileX
value = 4
}
FLOAT
{
floatName = _TileY
value = 0.100000001
}
COLOR
{
colorName = _StartTint
colorValue = 0,0.753699601,1,1
}
COLOR
{
colorName = _EndTint
colorValue = 1,1,1,1
}
}
MATERIAL
{
transform = PlaneMesh
shader = Waterfall/Additive
TEXTURE
{
textureSlotName = _MainTex
texturePath = Waterfall/FX/fx-ion-noise
textureScale = 1,1
textureOffset = 0,0
}
FLOAT
{
floatName = _TintFalloff
value = 0
}
FLOAT
{
floatName = _Falloff
value = 3
}
FLOAT
{
floatName = _Fresnel
value = 5
}
FLOAT
{
floatName = _FresnelInvert
value = 3
}
FLOAT
{
floatName = _Noise
value = 0
}
FLOAT
{
floatName = _Brightness
value = 0.600000024
}
FLOAT
{
floatName = _SpeedX
value = 0
}
FLOAT
{
floatName = _SpeedY
value = 1
}
FLOAT
{
floatName = _TileX
value = 1
}
FLOAT
{
floatName = _TileY
value = 1
}
COLOR
{
colorName = _StartTint
colorValue = 0,0.614129484,1,1
}
COLOR
{
colorName = _EndTint
colorValue = 1,1,1,1
}
}
}
SCALEMODIFIER
{
name = throttleScale
controllerName = throttle
transformName = CylMesh
combinationType = REPLACE
useRandomness = False
randomnessController = random
randomnessScale = 1
xCurve
{
key = 0 0.45 0 0
key = 1 0.45 0 0
}
yCurve
{
key = 0 0.6 0 0
key = 1 1 0 0
}
zCurve
{
key = 0 0.45 0 0
key = 1 0.45 0 0
}
}
FLOATMODIFIER
{
name = inner
controllerName = throttle
transformName = CylMesh
combinationType = REPLACE
useRandomness = False
randomnessController = random
randomnessScale = 1
floatName = _Brightness
floatCurve
{
key = 0 0 0 0
key = 1 0.1 0 0
}
}
FLOATMODIFIER
{
name = outer
controllerName = throttle
transformName = CylMeshOuter
combinationType = REPLACE
useRandomness = False
randomnessController = random
randomnessScale = 1
floatName = _Brightness
floatCurve
{
key = 0 0 0 0
key = 1 0.2 0 0
}
}
SCALEMODIFIER
{
name = globalScale
controllerName = throttle
transformName = Waterfall/FX/fx-simple-plume-ion(Clone)
combinationType = REPLACE
useRandomness = False
randomnessController = random
randomnessScale = 1
xCurve
{
key = 0 0.4 0 0
}
yCurve
{
key = 0 1 0 0
}
zCurve
{
key = 0 0.4 0 0
}
}
FLOATMODIFIER
{
name = tGlow3
controllerName = throttle
transformName = PlaneMesh
combinationType = REPLACE
useRandomness = False
randomnessController = random
randomnessScale = 1
floatName = _Brightness
floatCurve
{
key = 0 0 0 0
key = 1 0.9 0 0
}
}
}
}