Elric
|
Category: |
Code |
Level: |
Intermediate
|
Created: |
Sunday January 23, 2011 - 19:36 |
Updated: |
Sunday June 16, 2013 - 19:51 |
Views: |
12040 |
Summary: |
Almost all you need to know about intermediate coding... |
|
Rating
Staff says
2.0
|
Members say
3.8
|
Average
3.6/5.0
|
7 votes
|
Making And Adding Particle Systems
Note- Add Word Of Power To Your Hero.ini before proceeding.
You do not usually need to make a new particle system because there are already hundreds in the game already for example: "Gandalfs Word Of Power" is made up of particle systems. The the only time by which you would need to make a new particle system is if you are going to change the color or the TGA or even the lifetime of the particles. The ini by which we will be working in is fxparticlesystems.ini found in "C:\YourMod\data\ini" mine is "C:\Users\Carla\Desktop\Powers 2\data\ini"
Ok so once you have the ini open it looks all confusing (unless you already know how to edit it) I will break it down into parts and explain what each part does.
I will be using Gandalfs Word Of Power particle systems. To find what particle systems go with what powers look in weapon .ini and look at the
If there is not a fire FX then there is no particle system
Once you know the FX then go to FXlist.ini and type in the FX that you saw and then you will see something like this:
Code |
; This is Gandalf's Shockwave Blast Attack (version)
FXList FX_GandalfBlast
ParticleSystem
Name = GandalfBlastFinalLight
Offset = X:0.0 Y:0.0 Z:60 ;Z:8.0
End
ParticleSystem
Name = GandalfBlastFinalShockWave
Offset = X:0.0 Y:0.0 Z:20.0
End
ParticleSystem
Name = GandalfBlastDust
Offset = X:0.0 Y:0.0 Z:15.0
End
; ViewShake
; Type = CINE_EXTREME
; End
Sound
Name = GandalfBlastWeapon
End
End |
This is Word Of Power Traced back.
After that look at the Particle System piece and it says GandalfBlastFinalLight, So go to fxparticlesystem.ini and type that in and you have found it.
Word Of Power Particle System Example:
Code |
FXParticleSystem GandalfBlastDust <----- Name Of The System
System
Priority = VERY_LOW_OR_ABOVE <-----
Shader = ALPHA <----- Transparency level
ParticleName = EXsmokeplume.tga <----- the texture being used
PerParticleAttachedSystem = GandalfBlastDustCore <-----particlesystem its attached to(rare)
Lifetime = 100 100 <----- How long it is alive (Colors for example)
SystemLifetime = 5 <----- How Long the actual system is alive
SortLevel = 1 <----- Not Really Sure Only goes up to 2 I think
Size = 1 2 <----- How big the Dust is
BurstCount = 25 50 <----- How many particles there are
InitialDelay = 5 5 <----- Delay time
End
Color = DefaultColor <----- Color (Don't Change)
Color1 = R:181 G:190 B:196 0 <----- Change the numbers to change the color
End
Alpha = DefaultAlpha <----- Transparency (Don't Change)
Alpha1 = 0.2 0.3 0 <----- How Much Transparency
Alpha2 = -2 0 100 <----- Whats the second layer of Transparency
End
Update = DefaultUpdate <-----Don't Change
SizeRate = 2 15 <----- size by which it increases coming to its end
SizeRateDamping = 0.8 0.8 <----- Not Sure
AngleZ = 0 7 <----- Angle
AngularRateZ = -0.1 -0.1 <----- Angle
AngularDamping = 0.92 0.94 <----- Angle
Rotation = ROTATE_V <----- Type Of Rotation
AngularDampingXY = 1 1 <----- Angle
End
Physics = DefaultPhysics <----- Don't Change
VelocityDamping = 0.92 0.94 <----- How High Or Level by which it goes up at (best keep it low)
DriftVelocity = X:0.032 Y:0.064 Z:0.15 <----- Drift or angle by which it goes.
End
EmissionVelocity = OutwardEmissionVelocity <----- Look At other systems for advice
Speed = 20 20 <----- Self Explanatory
End
EmissionVolume = CylinderEmissionVolume <----- Look At other systems for advice
Radius = 12 <----- V
End
Draw = DefaultDraw <----- Don't Change
End
End
|
Ok now you no what each does.
Here are all the codes for Gandalfs Word Of Power
Code |
FXParticleSystem GandalfBlastDust
System
Priority = VERY_LOW_OR_ABOVE
Shader = ALPHA
ParticleName = EXsmokeplume.tga
PerParticleAttachedSystem = GandalfBlastDustCore
Lifetime = 100 100
SystemLifetime = 5
SortLevel = 1
Size = 1 2
BurstCount = 25 50
InitialDelay = 5 5
End
Color = DefaultColor
Color1 = R:181 G:190 B:196 0
End
Alpha = DefaultAlpha
Alpha1 = 0.2 0.3 0
Alpha2 = -2 0 100
End
Update = DefaultUpdate
SizeRate = 2 15
SizeRateDamping = 0.8 0.8
AngleZ = 0 7
AngularRateZ = -0.1 -0.1
AngularDamping = 0.92 0.94
Rotation = ROTATE_V
AngularDampingXY = 1 1
End
Physics = DefaultPhysics
VelocityDamping = 0.92 0.94
DriftVelocity = X:0.032 Y:0.064 Z:0.15
End
EmissionVelocity = OutwardEmissionVelocity
Speed = 20 20
End
EmissionVolume = CylinderEmissionVolume
Radius = 12
End
Draw = DefaultDraw
End
End |
Code |
FXParticleSystem GandalfBlastFinalLight
System
Priority = ALWAYS_RENDER
ParticleName = EXexplo01.tga
Lifetime = 10 10
SystemLifetime = 5
SortLevel = 1
Size = 10 10
BurstCount = 2 2
End
Color = DefaultColor
Color1 = R:89 G:168 B:255 0
Color2 = R:0 G:0 B:0 10
End
Update = DefaultUpdate
SizeRate = 80 160
SizeRateDamping = 0.8 0.7
AngleZ = -1 1
AngularDamping = 1 1
AngularDampingXY = 1 1
End
Physics = DefaultPhysics
Gravity = 1
VelocityDamping = 1 1
End
EmissionVelocity = OutwardEmissionVelocity
Speed = 1 1
End
EmissionVolume = PointEmissionVolume
End
Draw = DefaultDraw
End
End |
Code |
FXParticleSystem GandalfBlastFinalShockWave
System
Priority = ALWAYS_RENDER
ParticleName = EXRing01.tga
Lifetime = 40 40
SystemLifetime = 5
SortLevel = 1
Size = 1 1
BurstCount = 1 1
IsGroundAligned = Yes
End
Color = DefaultColor
Color1 = R:136 G:172 B:255 0
Color2 = R:0 G:0 B:0 40
ColorScale = -40 40
End
Update = DefaultUpdate
SizeRate = 35 35
SizeRateDamping = 1 1
AngleZ = -1 1
AngularDamping = 1 1
AngularDampingXY = 1 1
End
Physics = DefaultPhysics
VelocityDamping = 0.8 0.8
End
EmissionVelocity = OutwardEmissionVelocity
End
EmissionVolume = PointEmissionVolume
IsHollow = Yes
End
Draw = DefaultDraw
End
End |
Notice They all have the same type structure.
For this tutorial I will make Word Of Power green and get it to show in game.
First copy all the Word Of Power particle systems and paste them at the bottom or top of fxpaticlesystem.ini. Then all you have to do to the particle system is change it to this:
Code |
FXParticleSystem GandalfBlastDust2
System
Priority = VERY_LOW_OR_ABOVE
Shader = ALPHA
ParticleName = EXsmokeplume.tga
PerParticleAttachedSystem = GandalfBlastDustCore
Lifetime = 100 100
SystemLifetime = 5
SortLevel = 1
Size = 1 2
BurstCount = 25 50
InitialDelay = 5 5
End
Color = DefaultColor
Color1 = R:0 G:255 B:0 0 <-----255 is the max for each color
End
Alpha = DefaultAlpha
Alpha1 = 0.2 0.3 0
Alpha2 = -2 0 100
End
Update = DefaultUpdate
SizeRate = 2 15
SizeRateDamping = 0.8 0.8
AngleZ = 0 7
AngularRateZ = -0.1 -0.1
AngularDamping = 0.92 0.94
Rotation = ROTATE_V
AngularDampingXY = 1 1
End
Physics = DefaultPhysics
VelocityDamping = 0.92 0.94
DriftVelocity = X:0.032 Y:0.064 Z:0.15
End
EmissionVelocity = OutwardEmissionVelocity
Speed = 20 20
End
EmissionVolume = CylinderEmissionVolume
Radius = 12
End
Draw = DefaultDraw
End
End |
Code |
FXParticleSystem GandalfBlastFinalLight2
System
Priority = ALWAYS_RENDER
ParticleName = EXexplo01.tga
Lifetime = 10 10
SystemLifetime = 5
SortLevel = 1
Size = 10 10
BurstCount = 2 2
End
Color = DefaultColor
Color1 = R:0 G:255 B:0 0
Color2 = R:0 G:0 B:0 10
End
Update = DefaultUpdate
SizeRate = 80 160
SizeRateDamping = 0.8 0.7
AngleZ = -1 1
AngularDamping = 1 1
AngularDampingXY = 1 1
End
Physics = DefaultPhysics
Gravity = 1
VelocityDamping = 1 1
End
EmissionVelocity = OutwardEmissionVelocity
Speed = 1 1
End
EmissionVolume = PointEmissionVolume
End
Draw = DefaultDraw
End
End |
Code |
FXParticleSystem GandalfBlastFinalShockWave2
System
Priority = ALWAYS_RENDER
ParticleName = EXRing01.tga
Lifetime = 40 40
SystemLifetime = 5
SortLevel = 1
Size = 1 1
BurstCount = 1 1
IsGroundAligned = Yes
End
Color = DefaultColor
Color1 = R:0 G:255 B:0 0
Color2 = R:0 G:0 B:0 40
ColorScale = -40 40
End
Update = DefaultUpdate
SizeRate = 35 35
SizeRateDamping = 1 1
AngleZ = -1 1
AngularDamping = 1 1
AngularDampingXY = 1 1
End
Physics = DefaultPhysics
VelocityDamping = 0.8 0.8
End
EmissionVelocity = OutwardEmissionVelocity
End
EmissionVolume = PointEmissionVolume
IsHollow = Yes
End
Draw = DefaultDraw
End
End |
Notice the differences!
Now go to the fxlist.ini and find:
Code |
; This is Gandalf's Shockwave Blast Attack (version)
FXList FX_GandalfBlast
ParticleSystem
Name = GandalfBlastFinalLight
Offset = X:0.0 Y:0.0 Z:60 ;Z:8.0
End
ParticleSystem
Name = GandalfBlastFinalShockWave
Offset = X:0.0 Y:0.0 Z:20.0
End
ParticleSystem
Name = GandalfBlastDust
Offset = X:0.0 Y:0.0 Z:15.0
End
; ViewShake
; Type = CINE_EXTREME
; End
Sound
Name = GandalfBlastWeapon
End
End |
Copy and paste it at the bottom of the ini and change it to this:
Code |
; This is Gandalf's Shockwave Blast Attack (version)
FXList FX_GandalfBlastGreen
ParticleSystem
Name = GandalfBlastFinalLight2
Offset = X:0.0 Y:0.0 Z:60 ;Z:8.0
End
ParticleSystem
Name = GandalfBlastFinalShockWave2
Offset = X:0.0 Y:0.0 Z:20.0
End
ParticleSystem
Name = GandalfBlastDust2
Offset = X:0.0 Y:0.0 Z:15.0
End
; ViewShake
; Type = CINE_EXTREME
; End
Sound
Name = GandalfBlastWeapon
End
End |
Notice the differences!
Ok, Now to get it to show in game go to weapon.ini and Find GandalfWordOfPower.
Looks Something Like This:
Code |
----------------------------------------------------------------------------
Weapon GandalfWordOfPower ; Big Blue Ring Blast
IdleAfterFiringDelay = 0
AttackRange = GANDALF_WORD_OF_POWER_RANGE
MinimumAttackRange = 0.8
WeaponSpeed = 401 ; dist/sec
MinWeaponSpeed = 241
MaxWeaponSpeed = 601 ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
RadiusDamageAffects = ENEMIES NOT_SIMILAR
DelayBetweenShots = 5000 ; time between shots, msec
PreAttackDelay = 2600
PreAttackType = PER_ATTACK ; Do the delay each time we attack a new target
PreAttackFX = FX_GandalfPreAttackBlastReal
FireFX = FX_GandalfBlast
FiringDuration = 1400
DamageNugget ; A basic Nugget that just does damage
Damage = GANDALF_WORD_OF_POWER_DAMAGE
Radius = 500.0
DamageType = MAGIC
DamageFXType = MAGIC
DeathType = EXPLODED
DamageSpeed = 700.0 ; must match the ShockWaveSpeed below
End
MetaImpactNugget ; A Nugget that throws things back with force
; HeroResist = .75
ShockWaveAmount = 75.0
ShockWaveRadius = 500.0
ShockWaveTaperOff = 1.0
ShockWaveZMult = 1.000
ShockWaveSpeed = 700.0
End
End |
Then copy and paste it and change FireFX = FX_GandalfBlast to FX_GandalfBlast2 and rename the copy, WordOfPowerGreen.
After the change it should look like this:
Code |
----------------------------------------------------------------------------
Weapon WordOfPowerGreen ; Big Blue Ring Blast
IdleAfterFiringDelay = 0
AttackRange = GANDALF_WORD_OF_POWER_RANGE
MinimumAttackRange = 0.8
WeaponSpeed = 401 ; dist/sec
MinWeaponSpeed = 241
MaxWeaponSpeed = 601 ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
RadiusDamageAffects = ENEMIES NOT_SIMILAR
DelayBetweenShots = 5000 ; time between shots, msec
PreAttackDelay = 2600
PreAttackType = PER_ATTACK ; Do the delay each time we attack a new target
PreAttackFX = FX_GandalfPreAttackBlastReal
FireFX = FX_GandalfBlast2
FiringDuration = 1400
DamageNugget ; A basic Nugget that just does damage
Damage = GANDALF_WORD_OF_POWER_DAMAGE
Radius = 500.0
DamageType = MAGIC
DamageFXType = MAGIC
DeathType = EXPLODED
DamageSpeed = 700.0 ; must match the ShockWaveSpeed below
End
MetaImpactNugget ; A Nugget that throws things back with force
; HeroResist = .75
ShockWaveAmount = 75.0
ShockWaveRadius = 500.0
ShockWaveTaperOff = 1.0
ShockWaveZMult = 1.000
ShockWaveSpeed = 700.0
End
End |
Now go to your Hero.ini and Change:
Code |
SpecialWeapon = GandalfWordOfPower |
To
Code |
SpecialWeapon = WordOfPowerGreen |
Then Go To Game and Check It Out.