骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 7183|回复: 10

[霸主] 关于骑砍2的粒子系统 ParticleSystem 的研究

[复制链接]

90

主题

833

回帖

2642

积分

贵族[MOD作者]

独立制作人 [大神]
《火焰领主》MOD发布帖

Rank: 7Rank: 7Rank: 7

UID
46026
第纳尔
2902
精华
5
互助
119
荣誉
127
贡献
164
魅力
29
注册时间
2007-10-26

骑士美德之正义勋章[杰出会员荣誉勋章]骑士美德之仁慈勋章[杰出会员互助勋章]骑士美德之忠诚勋章[杰出会员精华勋章]骑士美德之谦恭勋章[杰出会员财富勋章]原版正版勋章

QQ
鲜花(35) 鸡蛋(0)
发表于 2020-4-18 01:52:23 | 显示全部楼层 |阅读模式
本帖最后由 暗暗十分 于 2020-4-18 04:54 编辑

我已经尝试过能在大部分的GameEntity上附加粒子效果了

  1. ParticleSystem particle = ParticleSystem.CreateParticleSystemAttachedToEntity("psys_game_burning_agent", missile.Entity, ref localFrame);
复制代码


这行代码的效果是在飞行物(箭矢)上附加一个燃烧的粒子效果,从而实现火焰箭。
我知道现在通过修改物品的xml文件就能简单实现火焰箭,但是那个实现是有局限的,只有视觉效果,而且还不能保留箭矢,射中就消失,而如果取消到射中即消失的burning="true"的flag,箭矢虽然会留下,但是燃烧粒子也会一直存在,箭多了之后会占用极大的显存,造成卡顿
而通过代码产生粒子效果来实现的话,就能对粒子进行控制,从而实现射中后箭矢存留且火焰消失,还能改变火光的颜色(改xml的话光照是白色的,很奇怪,我在代码里产生点光源可以修改颜色为橘黄色,更顺眼)
最重要的是,这样还能在代码里判断击中敌人后就点燃敌人,同时造成火焰燃烧伤害。

然后奇怪的事情发生了,任何附着到一个活着的agent的GameEntity上的粒子效果都不能显示


  1. ParticleSystem particle = ParticleSystem.CreateParticleSystemAttachedToEntity("psys_game_burning_agent", weaponEntity, ref localFrame);
复制代码

weaponEntity是玩家当前拿着的剑的GameEntity,这行代码没有效果,运行之后,挥舞着的剑不会产生火焰。
但是奇怪的是只要我把剑扔到地上,剑上就会起火,粒子效果就能正常产生。

最后我还是找到了一个办法将ParticleSystem附着到一个活着的agent上:

  1. Agent.Main.AgentVisuals.CreateParticleSystemAttachedToBone("psys_game_burning_agent",
  2.                             Game.Current.HumanMonster.MainHandItemBoneIndex, ref localFrame);
复制代码

终于!有效果了!虽然是通过直接在玩家的手骨骼上添加粒子效果,但是确实让挥舞的剑上产生了火焰,看起来很棒,我成功实现了火焰剑,一切都没问题了对吧?
当然不!这个API并不会返回产生的ParticleSystem的引用,所以我根本没办法控制,没办法让粒子在需要的时候消失,比如换武器或者空手后,火焰仍然会存在于手上。

以下是我研究 ParticleSystem 时弄出的一些好玩好看的效果,包括火焰剑,火焰射线,让agent全身着火


(点击展开 / 收起)


重述一遍,我的目标是做一个能点燃击中的敌人和地形的火焰箭+火焰剑的mod
现在已经可以用代码逻辑给敌人造成伤害
已经实现了火焰箭的效果
已经实现火焰剑的特效,但是有缺陷,无法移除粒子
并且已经可以将击中的敌人点燃,还是同一个问题,点燃后就没办法熄灭

最大的问题就是拿不到生成的这个ParticleSystem的引用。

我同样还尝试过以下代码

  1. ParticleSystem particle = ParticleSystem.CreateParticleSystemAttachedToBone("psys_game_burning_agent",
  2.                            Agent.Main.AgentVisuals.GetSkeleton(), Game.Current.HumanMonster.MainHandItemBoneIndex, ref localFrame);
复制代码

这个方法跟Agent.Main.AgentVisuals.CreateParticleSystemAttachedToBone() 作用相似,但是会返回产生的ParticleSystem,本来是很完美的
但是问题是这个就是我一开始说的问题,它没效果,粒子效果不会显示。
目前唯一一个可以在活的agent身上产生粒子效果的方法就是AgentVisuals.CreateParticleSystemAttachedToBone(),但是它却不返回ParticleSystem的引用。

评分

参与人数 1荣誉 +1 第纳尔 +20 互助 +1 收起 理由
小丑遊戲 + 1 + 20 + 1 文章不错,继续<span id="transmark"

查看全部评分

0

主题

95

回帖

29

积分

扈从

Rank: 2Rank: 2

UID
1091372
第纳尔
69
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2012-11-25

元老骑士勋章

鲜花(3) 鸡蛋(0)
发表于 2020-4-18 09:57:25 | 显示全部楼层
辛苦了  大力支持        

65

主题

304

回帖

211

积分

见习骑士

兵器匠人

Rank: 3

UID
109635
第纳尔
1081
精华
0
互助
12
荣誉
4
贡献
0
魅力
98
注册时间
2009-1-18

霸主正版勋章

QQ
鲜花(4) 鸡蛋(1)
发表于 2020-4-19 08:18:28 | 显示全部楼层
牛叉啊, 兄弟, 真羡慕会看代码, 会做代码的人。
杯具和餐具成套啊~~~

0

主题

6

回帖

2

积分

平民

Rank: 1

UID
2815222
第纳尔
46
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2017-3-17
鲜花(0) 鸡蛋(0)
发表于 2020-4-20 10:30:30 | 显示全部楼层
修改xml文件的话,把代码加在哪里呢

6

主题

222

回帖

73

积分

扈从

Rank: 2Rank: 2

UID
1472364
第纳尔
475
精华
0
互助
1
荣誉
0
贡献
0
魅力
1
注册时间
2013-8-3
鲜花(1) 鸡蛋(0)
发表于 2020-4-20 11:52:12 | 显示全部楼层
最佩服楼主这种牛逼的人
头像被屏蔽

73

主题

1万

回帖

5799

积分

囚犯[禁止发言]

大汉虎贲军[DH]
战团ID:义和团护菊五师妹[副队]

民间工匠

UID
411524
第纳尔
17649
精华
2
互助
114
荣誉
65
贡献
660
魅力
2807
注册时间
2011-4-16

元老骑士勋章战团正版勋章维京征服正版勋章骑士美德之英勇勋章[杰出会员活跃勋章]骑士美德之大无畏勋章[杰出会员高级活跃勋章]骑士美德之仁慈勋章[杰出会员互助勋章]骑士美德之谦恭勋章[杰出会员财富勋章]骑士美德之正义勋章[杰出会员荣誉勋章]骑士美德之奉献勋章第一届战团中国联赛亚军勋章骑砍中文站微博会员勋章骑砍中文站微信会员勋章骑友真人秀勋章骑友真人秀Ⅱ勋章骑友真人秀Ⅲ勋章骑友真人秀Ⅳ勋章第五届战团中国联赛亚军勋章霸主正版勋章

鲜花(2275) 鸡蛋(286)
发表于 2020-4-21 13:48:06 | 显示全部楼层
二十米大砍刀
签名被屏蔽

0

主题

29

回帖

14

积分

随仆

Rank: 1

UID
641919
第纳尔
243
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2012-2-1

霸主正版勋章

鲜花(1) 鸡蛋(0)
发表于 2020-4-26 23:09:07 | 显示全部楼层
大佬好厉害 从文件里看能修改光源的颜色 不知道能否设置粒子颜色 要是可以就能自定义各种颜色的火焰了 如果配合一个其他将武器前端(剑刃刀刃斧刃等)材质设置为半透明的话 效果将是比较炫酷的 像骑砍1那样
火矛.png

火剑.png

17

主题

3706

回帖

2142

积分

贵族[MOD作者]

世纪风云制作组[主程序]
《以耶路撒冷之名》MOD发布帖

锻造宗师

Rank: 7Rank: 7Rank: 7

UID
297953
第纳尔
12878
精华
0
互助
87
荣誉
59
贡献
185
魅力
659
注册时间
2010-8-16

有生之年勋章战团正版勋章火与剑正版勋章维京征服正版勋章骑士美德之英勇勋章[杰出会员活跃勋章]骑士美德之仁慈勋章[杰出会员互助勋章]骑士美德之正义勋章[杰出会员荣誉勋章]霸主美术大奖赛第一届战团中国联赛季军勋章

鲜花(260) 鸡蛋(0)
发表于 2020-4-27 09:27:11 | 显示全部楼层
清渊 发表于 2020-4-26 23:09
大佬好厉害 从文件里看能修改光源的颜色 不知道能否设置粒子颜色 要是可以就能自定义各种颜色的火焰了 如果 ...

这需要开放美术资源修改 目前还做不到
http://i4.bvimg.com/664741/d461bdb2e4c3004c.jpg 以耶路撒冷之名

0

主题

29

回帖

14

积分

随仆

Rank: 1

UID
641919
第纳尔
243
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2012-2-1

霸主正版勋章

鲜花(1) 鸡蛋(0)
发表于 2020-5-4 19:45:48 | 显示全部楼层
埃里斯修士 发表于 2020-4-27 09:27
这需要开放美术资源修改 目前还做不到

可惜了 期待如果开放以后的大佬们的各种奇迹

6650

主题

2390

回帖

3032

积分

男爵[离任版主]

圣殿骑士团[KT]
战团ID:KT_305

民间工匠

Rank: 5Rank: 5Rank: 5

UID
357277
第纳尔
26727
精华
0
互助
44
荣誉
10
贡献
635
魅力
168
注册时间
2010-12-30

骑士美德之忠诚勋章[杰出会员精华勋章]战团正版勋章骑士美德之英勇勋章[杰出会员活跃勋章]元老骑士勋章骑士美德之谦恭勋章[杰出会员财富勋章]骑士美德之奉献勋章骑士美德之大无畏勋章[杰出会员高级活跃勋章]骑士美德之公正勋章[杰出会员高级财富勋章]骑士美德之高贵勋章

QQ
鲜花(544) 鸡蛋(16)
发表于 2020-6-6 19:46:38 | 显示全部楼层
厉害了,这个是真的酷炫厉害
饮茶一盏,武运昌隆
——自由骑士

39

主题

726

回帖

235

积分

见习骑士

Rank: 3

UID
591814
第纳尔
1639
精华
0
互助
1
荣誉
0
贡献
0
魅力
6
注册时间
2011-12-16

原版正版勋章战团正版勋章汉匈决战正版勋章元老骑士勋章

鲜花(52) 鸡蛋(3)
发表于 2020-10-18 20:50:43 | 显示全部楼层
最近才买了砍2,开始看看代码,楼主大佬的问题好像可以这样解决?可能大佬已经知道啦?从另外一个火焰MOD里看出来的,会不会和楼主是同一个作者。反正贴出来吧
ParticleSystem.CreateParticleSystemAttachedToEntity("psys_game_burning_agent", weaponEntityFromEquipmentSlot, ref matrixFrame);
skeleton.AddComponentToBone((int)Game.Current.HumanMonster.MainHandItemBoneIndex, component);
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2024-12-21 22:29 , Processed in 0.160980 second(s), 38 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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