游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

问答求助

关注:554

当前位置:游戏蛮牛 技术专区 问答求助

_____________________________________________________________________________________________________________
问答求助版块规则:

  1、问题尽量描述清楚
      2、代码要放在代码块里
      3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
      4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
      5、问题得到解决,请选择最佳答案。
      6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 456|回复: 15

[技术讨论] 请教大佬绝地求生子弹碰撞的思路

[复制链接]  [移动端链接]
排名
17812
昨日变化
15

1

主题

21

帖子

84

积分

Rank: 2Rank: 2

UID
277232
好友
0
蛮牛币
618
威望
0
注册时间
2018-4-15
在线时间
30 小时
最后登录
2018-8-4
发表于 2018-6-29 17:09:53 | 显示全部楼层 |阅读模式
30蛮牛币
绝地求生这款游戏中的子弹效果,有弹道应该是带有Rigidbody组件的,但是子弹速度超快会穿透物体检测不到碰撞,子弹刚的碰撞检测改成Continuous Dynamic也会有穿透,我测试角色离目标是1000米,从发射到到达目的地的时间大概是3.5秒,应该还不够绝地求生的子弹速度快,如果用射线检测,射线是笔直的,与弹道下落的碰撞点不一致,试过用outHit.distance /(shootingSpeed * Time.deltaTime)通过计算时间检测碰撞,但也会因为outHit.Point位置跟子弹重力下落的最终碰撞位置不一致计算的时间也不准确。虽然相差不是很多,但是考虑如果1000米远的目标是个人,肯定是通过子弹最终碰撞点接触到人才算击中目标掉血,跟射线的点又是不一致的,有什么思路可以解决这个问题



回复

使用道具 举报

7日久生情
2354/5000
排名
602
昨日变化
3

1

主题

127

帖子

2354

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
108793
好友
1
蛮牛币
5071
威望
0
注册时间
2015-6-16
在线时间
912 小时
最后登录
2018-9-20
发表于 2018-6-30 09:59:00 | 显示全部楼层
绝地求生是用虚幻4开发的,虚幻不了解,不知道具体情况,但虚幻和unity的物理引擎本就是有差异的

回复

使用道具 举报

7日久生情
2954/5000
排名
491
昨日变化
1

3

主题

272

帖子

2954

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
127556
好友
0
蛮牛币
7150
威望
0
注册时间
2015-11-2
在线时间
1213 小时
最后登录
2018-9-20
发表于 2018-6-30 11:50:54 | 显示全部楼层
可以告诉你100%不是用的刚体。

回复

使用道具 举报

3偶尔光临
240/300
排名
10788
昨日变化
9

6

主题

32

帖子

240

积分

Rank: 3Rank: 3Rank: 3

UID
177893
好友
1
蛮牛币
187
威望
0
注册时间
2016-10-24
在线时间
114 小时
最后登录
2018-9-20
发表于 2018-6-30 16:43:24 | 显示全部楼层
应该不是射线碰撞这个方法
[发帖际遇]: 一个袋子砸在了 DysonKJ 头上,DysonKJ 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

排名
17812
昨日变化
15

1

主题

21

帖子

84

积分

Rank: 2Rank: 2

UID
277232
好友
0
蛮牛币
618
威望
0
注册时间
2018-4-15
在线时间
30 小时
最后登录
2018-8-4
 楼主| 发表于 2018-7-1 22:03:52 | 显示全部楼层
0度单舞 发表于 2018-6-30 09:59
绝地求生是用虚幻4开发的,虚幻不了解,不知道具体情况,但虚幻和unity的物理引擎本就是有差异的 ...

感谢热心答复,我知道引擎不一样,就是想试一下能否实现这个功能

回复

使用道具 举报

排名
17812
昨日变化
15

1

主题

21

帖子

84

积分

Rank: 2Rank: 2

UID
277232
好友
0
蛮牛币
618
威望
0
注册时间
2018-4-15
在线时间
30 小时
最后登录
2018-8-4
 楼主| 发表于 2018-7-1 22:10:00 | 显示全部楼层
ma1238906 发表于 2018-6-30 11:50
可以告诉你100%不是用的刚体。

感谢答复,如果不是刚体的话弹道效果解释不通啊,今天又测试了一下,想尝试一下在某段不会被穿透的距离下,使用物理碰撞检测,在会穿透的距离间,用射线检测,因为试过近距离穿透基本上也无所谓,近距离弹道几乎可以忽略,但是遇到了个神奇的现象,同样100米的两个完全一样的cube,一个始终无法穿透,另一个始终会穿透,实在是费解

回复

使用道具 举报

排名
17812
昨日变化
15

1

主题

21

帖子

84

积分

Rank: 2Rank: 2

UID
277232
好友
0
蛮牛币
618
威望
0
注册时间
2018-4-15
在线时间
30 小时
最后登录
2018-8-4
 楼主| 发表于 2018-7-1 22:11:43 | 显示全部楼层
DysonKJ 发表于 2018-6-30 16:43
应该不是射线碰撞这个方法

感谢答复,目前确实没有想到很好的办法,想用两个配合完成又出现了我回复2楼的现象,哎

回复

使用道具 举报

2初来乍到
103/150
排名
22918
昨日变化
19

0

主题

25

帖子

103

积分

Rank: 2Rank: 2

UID
253985
好友
0
蛮牛币
309
威望
0
注册时间
2017-11-13
在线时间
60 小时
最后登录
2018-9-20
发表于 2018-7-2 09:01:51 | 显示全部楼层
没试过使用一组射线吗?子弹飞行路径是一段抛物线,把它切成一段段直线按飞行时间进行顺序检测。

回复

使用道具 举报

5熟悉之中
571/1000
排名
5087
昨日变化
11

18

主题

143

帖子

571

积分

Rank: 5Rank: 5

UID
45756
好友
0
蛮牛币
591
威望
0
注册时间
2014-9-19
在线时间
148 小时
最后登录
2018-9-4
发表于 2018-7-2 10:47:41 | 显示全部楼层
FixedUpdate 一般是0.02s ,你可你减少这个检测时间,不过需要较大的性能消耗就是了;我是觉得可以计算两帧之间子弹的位置,如果人处于两个位置之间,就算中弹,你可以试一下。

回复

使用道具 举报

7日久生情
2954/5000
排名
491
昨日变化
1

3

主题

272

帖子

2954

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
127556
好友
0
蛮牛币
7150
威望
0
注册时间
2015-11-2
在线时间
1213 小时
最后登录
2018-9-20
发表于 2018-7-2 11:21:23 | 显示全部楼层
alextlq 发表于 2018-7-1 22:10
感谢答复,如果不是刚体的话弹道效果解释不通啊,今天又测试了一下,想尝试一下在某段不会被穿透的距离下 ...

都是用的射线,弹道用直线拟合。

回复

使用道具 举报

7日久生情
3508/5000
排名
534
昨日变化

95

主题

595

帖子

3508

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
7831
好友
3
蛮牛币
16309
威望
0
注册时间
2013-11-12
在线时间
1110 小时
最后登录
2018-9-20

活力之星一掷千金

发表于 2018-7-2 15:17:17 | 显示全部楼层
alextlq 发表于 2018-7-1 22:10
感谢答复,如果不是刚体的话弹道效果解释不通啊,今天又测试了一下,想尝试一下在某段不会被穿透的距离下 ...

大哥,刚体也是代码实现了,就算他们没用任何引擎,也是可以代码模拟一个弹道啊

回复

使用道具 举报

排名
17812
昨日变化
15

1

主题

21

帖子

84

积分

Rank: 2Rank: 2

UID
277232
好友
0
蛮牛币
618
威望
0
注册时间
2018-4-15
在线时间
30 小时
最后登录
2018-8-4
 楼主| 发表于 2018-7-3 18:12:26 | 显示全部楼层
筑于梓 发表于 2018-7-2 09:01
没试过使用一组射线吗?子弹飞行路径是一段抛物线,把它切成一段段直线按飞行时间进行顺序检测。 ...

好高深,不知道怎么计算,求指教
[发帖际遇]: 一个袋子砸在了 alextlq 头上,alextlq 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

排名
17812
昨日变化
15

1

主题

21

帖子

84

积分

Rank: 2Rank: 2

UID
277232
好友
0
蛮牛币
618
威望
0
注册时间
2018-4-15
在线时间
30 小时
最后登录
2018-8-4
 楼主| 发表于 2018-7-3 18:15:05 | 显示全部楼层
qiqunlong 发表于 2018-7-2 10:47
FixedUpdate 一般是0.02s ,你可你减少这个检测时间,不过需要较大的性能消耗就是了;我是觉得可以计算两帧 ...

感谢答复,这个确实有点消耗性能
[发帖际遇]: alextlq 在网吧通宵,花了 3 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

排名
17812
昨日变化
15

1

主题

21

帖子

84

积分

Rank: 2Rank: 2

UID
277232
好友
0
蛮牛币
618
威望
0
注册时间
2018-4-15
在线时间
30 小时
最后登录
2018-8-4
 楼主| 发表于 2018-7-3 18:17:01 | 显示全部楼层
370688535 发表于 2018-7-2 15:17
大哥,刚体也是代码实现了,就算他们没用任何引擎,也是可以代码模拟一个弹道啊 ...

还是太嫩了,太底层的了解甚少,需要学习

回复

使用道具 举报

2初来乍到
103/150
排名
22918
昨日变化
19

0

主题

25

帖子

103

积分

Rank: 2Rank: 2

UID
253985
好友
0
蛮牛币
309
威望
0
注册时间
2017-11-13
在线时间
60 小时
最后登录
2018-9-20
发表于 2018-7-10 09:06:11 | 显示全部楼层
alextlq 发表于 2018-7-3 18:12
好高深,不知道怎么计算,求指教

平抛和斜抛公式,然后按距离取样点,每个点之间按直线发射射线。
按取得的点的斜率来获取得下一个取样点的距离,来解决越远下降越厉害。
每把枪的计算和取样可以在加载时提前算好。
(还可以用来画曳光弹轨迹这种效果)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

关闭

站长推荐 上一条 /1 下一条

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