中国虚拟军事网(VME)- 专注于武装突袭系列虚拟军事游戏

 找回密码
 加入VME

QQ登录

只需一步,快速开始

搜索
查看: 2372|回复: 21

[闲聊] ?????????

[复制链接]
发表于 2014-10-20 14:26:22 | 显示全部楼层 |阅读模式
本帖最后由 1595972673@qq.c 于 2015-9-10 08:54 编辑

??????????????????

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入VME

x
发表于 2014-10-21 07:49:59 | 显示全部楼层
chaoduichen 发表于 2014-10-20 22:56
给定 的定位数据会超越关节极限,这。。。。骨骼绑定,蒙皮不就是用来限制这个的吗?------------我粗浅  ...

No,骨骼只是用来定义什么位置是关节,动作设计决定了肢体围绕关节做何种运动。就是因为骨骼不能限制活动,所以在错误的定义下肢体才会拉伸。

我给你简单举个例子,比如说人开右侧车门这个动作,假设程序员设计的有漏洞,人开门时候,相对车的平面位置是车右侧坐标A。而为了让人的手和门把手结合紧密,手的坐标位置跟门把手同步,门把手的坐标是B。正常情况下,人上车是不会有任何问题的。而特殊情况下,车侧翻90度,右侧车门冲上了。这时候如果程序允许人开车门,人依然是相对车平面位置右侧,可是手会被拉伸到车的上方相对车门把手的3D坐标上。手臂模型必然会被拉长。

因此人动作扭曲和拉伸,跟物理引擎不可能有关联。而是与周边环境互动的时候,设计了绑定的相对坐标位置产生错误才会拉伸人的肢体。

顺便说一句,多数游戏的人物动作跟周边环境物理判定都只是一个简单的碰撞层。这就是为什么第一人称下看起来很正常,第三人称看手臂、枪会穿墙。因为人的物理碰撞层只是身体四周的部分,不包括手臂和枪支伸出的范围。真正把人肢体和身体各部分都当作物理判定的游戏,我玩过的只有一款,GTA4。当然3D格斗游戏咱不能包括在内哈。

哦,ArmA1、2系列也有人肢体碰撞判定,但是这个判定没有任何力学效果,仅仅是你被卡在两面墙之间的时候,举枪不能转身。其实是一个非常惹人嫌的物理效果。
发表于 2014-10-20 14:29:38 | 显示全部楼层
你装了什么MOD??怎么这么奇葩呢。

点评

乱七杂八的MOD一大堆!!  发表于 2014-10-20 14:50
发表于 2014-10-20 14:49:32 | 显示全部楼层
真成了神龟了。
发表于 2014-10-20 16:03:17 | 显示全部楼层
{:soso_e113:}
发表于 2014-10-20 17:39:20 | 显示全部楼层
这个问题我在闪点也碰过,至今不明原因
http://www.chinavme.com/thread-6800-1-1.html

点评

只有搞这个炸弹才会有这个情况!  发表于 2014-10-20 17:54
发表于 2014-10-20 17:45:03 | 显示全部楼层
卡物理引擎了。。。
游戏引擎与物理引擎结合不够紧密,这就是物理引擎外包的结果啊。。。
发表于 2014-10-20 18:46:00 | 显示全部楼层











本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入VME

x
发表于 2014-10-20 18:46:07 | 显示全部楼层











本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入VME

x
发表于 2014-10-20 19:02:00 | 显示全部楼层
本帖最后由 chaoduichen 于 2014-10-20 19:05 编辑
gpgpgpgp 发表于 2014-10-20 17:45
卡物理引擎了。。。
游戏引擎与物理引擎结合不够紧密,这就是物理引擎外包的结果啊。。。


不明觉厉,火钳刘明。这个跟物理引擎有什么关系?
发表于 2014-10-20 20:23:20 | 显示全部楼层
本帖最后由 gpgpgpgp 于 2014-10-20 20:28 编辑

        一个游戏引擎中的模型,本身是不带物理属性的。决定其碰撞、扭曲参数的是游戏所调用的物理引擎。现在大多数的游戏都使用的是Havok,或者N卡厂的physX,而非自己写一个物理引擎(没事干呐)。
        然而,这些外来的通用物理引擎有时不是那么尽如人意,哪怕在被正确地调用的情况下,还是会发生游戏设计者预料之外的情况,比如说人物关节反方向扭曲,或者人头留原地、脖子拉很长等。游戏引擎的制作者,如果想要修正这些异常,就面临了一个问题:他们的游戏引擎是构建在封装好的物理引擎上面的,很难通过判断“上面的”错误而纠正“下层”的物理引擎代码。
        举个夸张点的例子,游戏世界中,9个苹果老实地落在地上,1个苹果却逆着重力往上飞。“明显是物理引擎坑爹了!”但是在游戏引擎层面中的数据来看,这10个苹果的全部数据很都是完全正常的,呵呵,就是这样。哪怕明明看出了异常,没法获得异常数据,以至于纠错变得几乎不可能。物理引擎用的是外包的,且不说核心代码给你闭源(不给你代码,就给本手册和dll动态链接库),就算给你开源,代码比你游戏都复杂,游戏开发者即使想要找出造成异常的原因,也没有有效数据收集的方法。这时,大多数游戏开发人的心里想法是:“得,反正出现的频率不是很高,咱就得过且过呗!”
        结局就是,我们在很多完全不同类型的游戏中看到许多似曾相识的场景:
        游戏人物关节扭曲,物体卡墙乱抖,模型肢体拉长,残骸满天瞎飞等等...

        游戏引擎开发者只能表示:唉,真是没辙。
发表于 2014-10-20 20:48:51 | 显示全部楼层
太丧心病狂了。。。。。。
发表于 2014-10-20 22:44:07 | 显示全部楼层
gpgpgpgp 发表于 2014-10-20 20:23
一个游戏引擎中的模型,本身是不带物理属性的。决定其碰撞、扭曲参数的是游戏所调用的物理引擎。现在大多 ...

ArmA用的PhysX,也只是一部分。寒霜3、Source、CryEngine都是自家引擎自带物理效果。

我觉得人物死亡之后布娃娃系统是归物理引擎管的。人物动作扭曲就是简单的动作定位点和关节位置不匹配。游戏里动作想要做一个动作,比如手放在什么位置,你要给他一个定位,但是这个定位有时候要相对游戏人物,有时候又是相对一个物体的定位。当你最终给手定位的数据和关节能做到的极限发生冲突,手的模型就可能被拉伸或扭曲。
发表于 2014-10-20 22:46:11 | 显示全部楼层
本帖最后由 chaoduichen 于 2014-10-20 23:06 编辑
gpgpgpgp 发表于 2014-10-20 20:23
一个游戏引擎中的模型,本身是不带物理属性的。决定其碰撞、扭曲参数的是游戏所调用的物理引擎。现在大多 ...


学习了,特意回复一下,哈哈。不过我没遇到过这种问题,官方总有办法修复吧。苹果的例子不恰当,游戏引擎自身对物理层面的东西有自己的Debug方法,玩家都能发现的异常,在游戏引擎层面如果发现不了,怎么来修复bug。逆着重力飞这个例子很怪异,从来没见这种例子(无论是U3D(游戏引擎)还是3dmax,maya(3D软件),这些东西重力模拟没有出现过这种低级问题,更别提游戏了【玩家不喷死制造商才怪】)。卡墙乱抖这个很常见,其实不是物理引擎的问题,而是碰撞检测值设定不太合理或建模尺寸不合理,或者某部分网格的碰撞设置缺失。但物理引擎此时正常。关节扭曲,人物身体拉伸,可能跟模型定义不正确有关(仅针对这个例子,其他游戏我不了解),比如玩家把AA2 武器直接拿到AA3,有时手臂拉伸变形,就是因为两个游戏引擎在定义方面有差异。  还有一种可能,插件冲突(这个纯粹我猜测,没有啥依据。。)。。。。。有不对 的地方,还望指正(班门弄斧了,大神们轻喷)
发表于 2014-10-20 22:56:53 | 显示全部楼层
cycle6 发表于 2014-10-20 22:44
ArmA用的PhysX,也只是一部分。寒霜3、Source、CryEngine都是自家引擎自带物理效果。

我觉得人物死亡 ...

给定 的定位数据会超越关节极限,这。。。。骨骼绑定,蒙皮不就是用来限制这个的吗?------------我粗浅 的疑问
发表于 2014-10-20 23:33:31 | 显示全部楼层
长脖子ALPHA的时候就有,我觉得应该是跟骨骼动画有关的问题

跟物理引擎的碰撞运算有关的身体拉扯BUG一般是布娃娃最常见,比如两个模型互相穿透,抽风之类的
您需要登录后才可以回帖 登录 | 加入VME

本版积分规则

小黑屋|中国虚拟军事网

GMT+8, 2024-5-4 01:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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