设为首页收藏本站

红警DIY论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 400|回复: 2

【教程】粒子及粒子系统说明

[复制链接]
发表于 2017-3-12 21:13:47 | 显示全部楼层 |阅读模式
本帖最后由 紫色放逐 于 2017-3-17 16:03 编辑

基础知识:什么是粒子和粒子系统?
粒子和动画、单位等一样,是游戏中的一种“物体”,粒子系统则是控制粒子产生的一种逻辑
举个例子:工程师步兵车维修时会冒出火花,每一个火花“点”都是一个粒子,而控制这些粒子的产生数量、分布方式和产生速度的是粒子系统
其他的还有病毒狙击手的病毒、坦克损伤时的烟雾、喷火器、轨道炮等


粒子不一定必须由粒子系统产生 例如动画也能直接产生粒子

粒子和粒子系统皆须注册才能使用
粒子及粒子系统的调用方式:

1 下文的[XXXWeapon]为在武器上调用粒子系统的方式
注:武器发射粒子系统时 必须等上一次发射的粒子消失 才能再次发射
举个栗子:某轨道炮武器burst=2 粒子持续时间为20 则第二发要等20帧才能发出来


2 动画调用粒子(非系统) 动画结束产生粒子
art里
[XXXAnim]

SpawnsParticle=填写粒子名
NumParticles=粒子数量

3 弹头调用粒子系统
[XXXXWH]

Particle= 填写粒子系统名称 (你可以做个远程维修车 火花在被维修的目标上产生)

4 覆盖物调用粒子系统 (比如打死金矿后刷出一团毒气)
[TIB01];一种金矿

Explodes=yes ;必须
BarrelParticle=填写粒子系统名称

5 单位损伤调用粒子系统 (坦克残血冒烟)
[MTNK]

DamageParticleSystems= 填粒子系统名称
(ares有更多相关功能 具体看ares说明书)
运用实例 来自mk 受损粒子刷维修罩:http://bbs.ra2diy.com/forum.php?mod=viewthread&tid=10177

6 ares新功能 抛射体调用烟雾粒子系统 具体看ares说明书


粒子系统通用代码
[XXXSys]
HoldsWhat = 粒子系统产生的粒子名称
BehavesLike= 填写系统类型  Gas Smoke Fire Spark Railgun

注:粒子系统和粒子的BehavesLike不一定是同类的。你完全可以用火花系统产生毒气粒子
例如:Railgun粒子系统如果用smoke粒子形态就可以自定义轨道炮粒子的动画,用GAS的话更可以直接散布大量毒气粒子


毒气粒子系统 无甚可说 (弹头和覆盖物刷毒气专用?)
[GasCloudSys]
HoldsWhat=GasCloud1
BehavesLike=Gas

烟雾粒子系统(车辆黄血冒烟等)
[SmokeStackSys]
HoldsWhat=SmokeStackPuff
BehavesLike=Smoke
Spawns=yes 是否用此系统不停刷出粒子
SpawnFrames=2 和上一句连用,刷粒子的间隔
SpawnRadius=3 粒子产生的范围
ParticleCap=15 此粒子系统最高产生的粒子数目
SpawnCutoff=13.0 与持续时间及停止产生粒子有关 算法不明
SpawnTranslucencyCutoff=13.0 与持续时间及粒子透明度有关 算法不明
Lifetime=75 系统持续的时间

喷火粒子系统和喷火粒子 特征为射出一团向前运动的粒子 (西木SB 逻辑糟糕 懒得说明 也就改改什么速度、伤害、图像、持续时间之类的吧)
[XXXWeapon]

UseFireParticles=yes
AttachedParticleSystem=FireStreamSys
[FireStreamSys]
HoldsWhat=FireStream
Spawns=yes
SpawnFrames=4
BehavesLike=Fire
Image=TWLT036
Lifetime=30
[FireStream]
Image=FLAMEALL
Deacc=0.01
Velocity=28.0
BehavesLike=Fire
MaxEC=400
MaxDC=1
Warhead=Fire
Damage=4
StartStateAI=1
EndStateAI=19
StateAIAdvance=6
Translucent50State=15
Translucent25State=10
DeleteOnStateLimit=yes
Normalized=yes
FinalDamageState=14
Report=FLAMTNK1

火花粒子系统(维修车)
[XXXWeapon]

UseSparkParticles=yes
AttachedParticleSystem=WeldingSys
[WeldingSys]
HoldsWhat=WeldingSpark
BehavesLike=Spark
ParticleCap=15 此粒子系统最高产生的粒子数目
SparkSpawnFrames=20 产生粒子的时间间隔
SpawnSparkPercentage=.4 每次产生粒子的几率
LightSize=25 闪光大小
OneFrameLight=true 是否产生闪光


轨道炮粒子系统(特征为 在发射者和目标之间的连线上立刻产生一列螺旋分布的粒子)
[XXXWeapon]

IsRailgun=true
AttachedParticleSystem=PsyBeamSys
[XXXRailgunSys]
HoldsWhat=XXXPart (该粒子类型非Railgun时 粒子不会运动)
BehavesLike=Railgun
SpiralRadius=6 轨道炮粒子扩散的最大半径
ParticlesPerCoord=a 这是粒子密度,越大越密 算法为 1/a (例:填写.05 即每1/.05=20个像素产生一个粒子)
SpiralDeltaPerCoord=b 波长 控制粒子排列的弯曲度 越大弯曲度越小 算法为b/a (例:填写 .3 即.3/.05=6 每像素粒子方向绕圆柱轴心旋转.3,那么每相邻的两个粒子之间角度相差6)以上两条具体算法来自耗神
VelocityPerturbationCoefficient=0 速度扰动系数 算法不明 影响railgun粒子出膛后的运动速度
MovementPerturbationCoefficient=0 运动扰动系数 算法不明 影响railgun粒子出膛后的运动方向
PositionPerturbationCoefficient=0 位置扰动系数 算法不明 影响railgun粒子出膛后的位置
增大以上三条的数值能让轨道炮粒子的弥散运动更加不确定
Laser=yes 是否产生一条激光细线
LaserColor=255,0,255 线的颜色


;粒子注释
;乱七八糟的太多 说几个常见的 (以下代码并非对所有类型粒子都有效,建议用的时候复制原版写好的粒子再改数据)
; BehavesLike= 粒子类型
Spark   火花(维修车)
Smoke   烟雾(车辆损伤等)
Fire    火焰(喷火)
Gas  毒气
RailGun 轨道炮
; Image = 此粒子的外形 直接写shp名 无需且无法在art里定义 色盘默认为anim (Spark和RailGun无效)
; Translucency= 图像透明度 25 50 75
; MaxEC = 此粒子的存在时间
; StartFrame = 粒子动画的起始帧号
; EndStateAI = 粒子动画的结束帧号
; StateAIAdvance= 图像每帧持续多少帧时间 控制图像播放速度 越大越慢(相当于art里的rate,算法相反)
; Damage = 每次产生的伤害
; Warhead = 用来产生伤害的弹头(弹头范围无效)
; MaxDC = 间隔多少帧产生一次伤害
; NumLoopFrames =多少帧是一个循环
; NextParticle= 循环结束后产生另一粒子的名称
; ColorList=(255,0,0),(150,150,150) 轨道炮粒子颜色渐变始末
; ColorSpeed=.009 变色速度
; Persistent =永远是yes,当成无效代码好了
; WindEffect = 风力影响,改数值貌似没用
; Velocity = 粒子运动的速度,默认0
; Deacc= 速度衰减
; DeleteOnStateLimit=yes 烟雾粒子在图像结束后消失
; Radius = 伤害范围?貌似无效,粒子最多影响1X1


编写修订: moderKenosis & 紫色放逐
2017 03 12




评分

参与人数 1威严 +3 收起 理由
Iowa3 + 3 滋瓷一个!

查看全部评分

 楼主| 发表于 2017-3-18 18:35:10 | 显示全部楼层
无耻的给自己加个精 233
发表于 2017-3-19 22:59:42 | 显示全部楼层
可以的,写的不错,受教了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|手机版|管理员邮箱|红警DIY官方论坛    

GMT+8, 2017-5-27 00:57 , Processed in 0.066405 second(s), 20 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表