骑砍战团MOD开发(24)-module_particle_system粒子系统

news/2024/5/18 13:39:27 标签: 游戏程序

 一.粒子实现方式

      创建2D平面模型作为粒子基本单元,系统预制平面在particle_meshes.brf文件中,通过particle_blend着色器实现粒子透明度和着色效果.

#雨点粒子平面
prtcl_rain
#雪粒子平面
prtcl_snow
#烟尘粒子平面(马匹奔跑时产生)
prtcl_dust_a
prtcl_dust_b
#火焰粒子平面
prtcl_fire

二.粒子系统配置

      创建通过module_particle_system.py配置粒子系统.可控制粒子的数量,强度,生命周期,使用粒子平面.

#粒子溅射类型
psf_always_emit         = 0x0000000002
psf_global_emit_dir     = 0x0000000010
psf_emit_at_water_level = 0x0000000020
psf_billboard_2d        = 0x0000000100 # up_vec = dir, front rotated towards camera
psf_billboard_3d        = 0x0000000200 # front_vec point to camera.
psf_billboard_drop      = 0x0000000300
psf_turn_to_velocity    = 0x0000000400
psf_randomize_rotation  = 0x0000001000
psf_randomize_size      = 0x0000002000
psf_2d_turbulance       = 0x0000010000
psf_next_effect_is_lod  = 0x0000020000


#血迹粒子系统配置
("game_blood_2", psf_billboard_3d | psf_randomize_size|psf_randomize_rotation ,  "prt_mesh_blood_3",
     2000, 0.6, 3, 0.3, 0, 0,        #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
     (0.0, 0.25), (0.7, 0.1),        #alpha keys
     (0.1, 0.7), (1, 0.7),      #red keys
     (0.1, 0.7), (1, 0.7),       #green keys
     (0.1, 0.7), (1, 0.7),      #blue keys
     (0.0, 0.15),   (1, 0.35),    #scale keys
     (0.01, 0.2, 0.01),             #emit box size
     (0.2, 0.3, 0),                 #emit velocity
     0.3,                         #emit dir randomness
     150,                       #rotation speed
     0,                       #rotation damping
     ),

引擎定制粒子系统:

#水溅射粒子系统
psys_game_water_splash_3
psys_game_water_splash_2
psys_game_water_splash_1

#马蹄烟雾
psys_game_hoof_dust_mud
psys_game_hoof_dust_snow 
psys_game_hoof_dust

#血迹粒子系统
psys_game_blood_2
psys_game_blood

#天气粒子系统
psys_game_snow
psys_game_rain

三.使用粒子系统

#scene_prop初始化时使用
particle_system_add_new                     = 1965  # (particle_system_add_new, <par_sys_id>,[position]),
                                                    # Adds a new particle system to an object. Uses position offset and color provided to previous calls to (set_position_delta) and (set_current_color). Can only be used in item/prop triggers.
particle_system_emit                        = 1968  # (particle_system_emit, <par_sys_id>, <value_num_particles>, <value_period>),
                                                    # Adds a particle system in some fancy way. Uses position offset and color provided to previous calls to (set_position_delta) and (set_current_color). Can only be used in item/prop triggers.

#在某个位置溅射粒子系统
particle_system_burst                       = 1969  # (particle_system_burst, <par_sys_id>, <position>, [percentage_burst_strength]),
                                                    # Bursts a particle system in specified position.
particle_system_burst_no_sync               = 1975  # (particle_system_burst_without_sync,<par_sys_id>,<position_no>,[percentage_burst_strength]),
                                                    # Version 1.153+. Same as above, but apparently does not synchronize this between server and client.
prop_instance_add_particle_system           = 1886  # (prop_instance_add_particle_system, <scene_prop_id>, <par_sys_id>, <position_no>),
                                                    # Version 1.153+. Adds a new particle system to the scene prop. Note that <position_no> is local, i.e. in relation to scene prop's coordinates and rotation.
prop_instance_stop_all_particle_systems     = 1887  # (prop_instance_stop_all_particle_systems, <scene_prop_id>),
                                                    # Version 1.153+. Removes all particle systems currently associated with scene prop instance.


http://www.niftyadmin.cn/n/5282264.html

相关文章

Ubuntu 常用命令之 passwd 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 在Ubuntu系统中&#xff0c;passwd命令用于更改用户的密码。系统管理员可以使用此命令更改任何用户的密码&#xff0c;而普通用户只能更改自己的密码。 passwd命令的参数如下 -l, --lock&#xff1a;锁定密码&#xff0c;使账户…

【STM32】I2C通信

基本的任务是&#xff1a;通过通信线&#xff0c;实现单片机读写外挂模块寄存器的功能。其中至少要实现在指定位置写寄存器和在指定的位置读寄存器这两个功能。 异步时序的优点&#xff1a;省一根时钟线&#xff0c;节约资源&#xff1b;缺点&#xff1a;对事件要求严格&#…

arm汇编-补充-画图记忆 LDM/STM系列指令

说明 原始文章系列 https://azeria-labs.com/writing-arm-assembly-part-1/ 翻译-进作者的专栏可以翻到所有翻译 系列&#xff1a;https://zhuanlan.zhihu.com/p/109057983 系列&#xff1a;https://www.anquanke.com/post/id/86383 0x00 调试环境 使用arm架构的系统&#…

构建每个聚类的profile和deletion_mean特征

通过summarize_clusters函数构建每个聚类的protein[cluster_profile]和protein[cluster_deletion_mean]特征。目的是把extra_msa信息反映到msa中。 集成函数数据处理流程&#xff1a; sample_msa ->make_masked_msa -> nearest_neighbor_clusters -> summarize_clu…

【Java】从JDK 8迁移到JDK后续版本

自我介绍 做一个简单介绍&#xff0c;酒架年近48 &#xff0c;有20多年IT工作经历&#xff0c;目前在一家500强做企业架构&#xff0e;因为工作需要&#xff0c;另外也因为兴趣涉猎比较广&#xff0c;为了自己学习建立了三个博客&#xff0c;分别是【全球IT瞭望】&#xff0c;【…

【XML】TinyXML 详解(一):介绍

【C】郭老二博文之&#xff1a;C目录 1、简介 优点&#xff1a; TinyXML 是一个简单、小型的 C XML 解析器&#xff0c;可以轻松集成到项目中。 TinyXML 解析 XML 文档&#xff0c;并根据该文档构建可读取、修改和保存的文档对象模型 (DOM) TinyXML 是在 ZLib 许可下发布的&a…

Python办公自动化 – 日志分析和自动化FTP操作

Python办公自动化 – 日志分析和自动化FTP操作 以下是往期的文章目录&#xff0c;需要可以查看哦。 Python办公自动化 – Excel和Word的操作运用 Python办公自动化 – Python发送电子邮件和Outlook的集成 Python办公自动化 – 对PDF文档和PPT文档的处理 Python办公自动化 – 对…

全局代理的詳細使用指南(Windows、Mac、Android、iOS)

全局代理IP又稱全局IP代理&#xff0c;允許用戶通過一個代理伺服器來發送和接收互聯網上的資訊。這個代理伺服器會隱藏用戶的真實IP地址&#xff0c;並將其替換為代理伺服器的IP地址。 除了常見的提高網路安全保護和突破地理限制的功能外&#xff0c;全局代理IP還可以做到以下…