Articles of 刚体动力学

进入/离开区域时跳转GameObject大小

下面我有一个图像描述了我要去的所需function。 假设你控制一个正方形,当你把这个正方形移动到一个给定的区域时,在这个区域内的任何一个刚体/模型都将在进入时放大,在离开时缩小。 所以现在你或多或less都由两个矩形组成,一个小一个大。 什么是实现这一效果的优雅方法?

我怎么能把复合刚体合并起来?

我正在开发一个统一的游戏,它具有准确的破坏物理学,并且从我的理解来看,团结使用了简单的旧的刚体物理学。 我想知道是否有办法通过插件或图书馆或其他方式使复合刚体物理成为统一体? 谢谢,新星 编辑:所以复合刚体物理几乎和正常的刚体物理一样。 但主要区别在于,在复合刚体物理中,所有的资产都不会被视为基于物理的物体,直到外力撞击它们为止。 例如,一个建筑物和所有这些部分被制成的部分将不会被处理为基于物理的对象,直到被火箭击中。 这种复合刚体物理的方法使用更less的内存,因为它只处理被影响的东西,而不是其他的东西。

许多弹跳球沉入对方

我试图模拟一个系统,模拟任意数量的重力弹跳球。 到目前为止,我已经想出了一个可以在这里看到的解决scheme: https : //github.com/ahahalol/BouncingBalls 如果球的数量很less(几十个),或者如果我没有设置任何重力,它工作正常。 但是一旦我把重心转移到了数百个球上,那么随着时间的推移,“下方”的球开始沉入对方,因为新球落在他们身上。 当我有重力和数百个球时,这张照片显示了很多沉没的球: 我想要一个完美模拟刚体物理的系统:无论顶部有多less物体推动底部的物体,任何东西都不应该下沉。 我怎样才能做到这一点?

在两个物理世界/实例之间交互刚体

我会在这里发表我的第一个问题。 这是一个很难的! 但也许你知道一个简单的解决scheme:) 我正在尝试使用子弹物理来制作多人游戏。 我遇到了很多问题,但现在只有一个(我希望)需要一个我无法find的解决scheme。 这是一个简化的scheme:我的游戏有人(玩家),船只和海洋。 船只和玩家可以通过海运。 玩家可以上船走进里面。 使用普通的物理,当玩家在船上快速行驶时,会发生不好的事情。 远航导航时也有单浮点精度损失,我要在船上精确到毫米。 所以我想出了一个主意:每艘船都有自己的坐标原点设在船中心的物理世界,当玩家登上时,它的刚体将从主海洋世界移动到船的世界。 但是:当人们在船上时,将不能与靠近船只的物体发生碰撞,但不能靠近它,反之亦然。 IE挂在船边的一个玩家修理船体突破口被认为是在船上(在船的世界),所以他们不能被另一艘船击中。 我唯一要做的就是为两个世界的玩家设定一个刚体 – 主要是海洋世界和船只世界 – 但是我不知道他们如何“分享”物理效应,所以当某些东西与主要玩家rb碰撞时海洋世界,船舶世界的rb反应了碰撞。 事情是,海洋世界rb将需要跟随rb在船上的运动,除非它碰撞,应该导致船只rb对此作出反应。 考虑到: 不能使用双浮点精度。 如果需要的话,不能使用许多碰撞标志。 在海洋世界里,船只只有一个主要的外部复合对撞机,而船的世界将有所有的地板,门等。 虽然船上的玩家可能会静止不动,但是海洋世界的玩家将以船速移动。 那么,有什么想法? 将非常感激。

用于对象交互testing的浏览器沙箱

我正在寻找一个可以上传/导入STL或OBJ文件(我可以从CAD软件导出的刚体)的沙箱,以便通过重力和接触进行快速交互testing。 这个想法对于导入/上传来说是最小的摩擦,所以CAD软件之间的文件输出到接头等的testing将尽可能快。 因此,在Unity中创建沙箱模板,然后每次构建游戏都是不可能的。 有任何想法吗?

将物理添加到UE4中的蓝图演员

我正在尝试在ue4中创建一个骰子,并能够读取它给出的值。 我在Blender中创建了一个网格物体,创建了一个纹理,导入它们并创建了一个蓝图演员,并添加了静态网格物体。 当我开始游戏时,骰子漂浮在空中,不受重力的影响。 我已经尝试使用静态网格,我可以得到这个受重力影响。 然而,我需要添加脚本到对象,所以我可以给它一个随机旋转和读取它的价值,所以我创建了一个蓝图的演员。 我已经在网上寻找一种方法来给这个演员物理学,坚果什么都没有。 有谁知道我可以如何添加物理蓝图演员? 此外,如果任何人有任何信息给予演员随机旋转,并阅读骰子的价值将是伟大的。

我如何模拟3D世界中从墙上弹起的刚体?

我怎样才能模拟一把刚刚从墙上弹起来的剑,并击中地面(如在物理世界中)? 我想用这个简单的animation。 我可以检测到这个数字和剑的大小(可能需要做反弹)。 旋转可以通过四元数/matrix/​​欧拉角来控制。 它应该转动头部并转动并飞向地面。 我怎样才能模拟这个物理过程? 也许我需要的是一个方程和一些参数? 我需要这些数据,并将它们合并到我的电影文件中,我使用Mathematica来完成生成电影文件(如果有数据,我也可以将其导出到3DSMax脚本中)。

Unity AddExplosionForce不做任何事情

最近我开始学习Unity3D。 我正在制作一个游戏,作为一个练习,在这个练习中你控制了一艘太空船,并且必须躲避小行星。 如果你觉得它有点太多了,你可以打空间吧,向附近的小行星发射爆炸声。 要创建这个爆炸,我有以下代码: public class PlayerBlastScript : MonoBehaviour { public ParticleSystem BlastEffect; // Update is called once per frame void Update () { if (Input.GetKeyUp(KeyCode.Space)) { Fire(); } } public void Fire() { ParticleEmitter effect = (ParticleEmitter) Instantiate (BlastEffect, transform.position, Quaternion.identity); effect.Emit(); Vector3 explosionPos = transform.position; Collider[] colliders = Physics.OverlapSphere(explosionPos, 25.0f); foreach(Collider hit in […]

利用摩擦使刚体停止

我想如何将摩擦力应用到物体上,以便在施加力的时候最终减速到零? 这是我的物理对象: 刚体“球体” 碰撞形状:btSphereShape(0.50) 质量:1.0公斤 恢复原状:0.5 摩擦:10.0 刚体“平台” 碰撞形状:btBoxShape(btVector3(23.0,0.5,23.0)) 质量:0.0公斤 恢复原状:0.75 摩擦:1.0 我将btVector3(0,0,-100)的中心力施加在按键“W”上。 球体移动但从未停止。 还有什么我应该考虑的? 球体不是滚动的(力量在中心),阻尼不能被使用,因为它减缓了任何力量,甚至重力。 我曾经尝试过: 增加了平台的质量。 我将线性和角度因子设置为(0,0,0),因此平台不会受到任何作用力的影响。 应用总施加力的负面。 我得到了一个工作结果,但不是我想要的。 如果我有摩擦,物体会更加现实地减速

AddRelativeForce工作不正常

我困在了几天的代码,但无法弄清楚。 因此,我原来在这里看到的答案,但无法find任何符合要求希望有人可能会帮助 这里是代码 /* Part1 *Step Horizontal Movement * Use to get left and right movement */ if(Input.GetKey ("right")||Input.GetKey ("left")){ moveDir.x = Input.GetAxis("Horizontal"); // get result of AD keys in X } rigidbody.velocity = moveDir * speed; /*Part2 *Continuse Forward Movement */ if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.W)) { moveDir.z = Input.GetAxis("Vertical"); rigidbody.AddRelativeForce(moveDir*50); } 我有一个添加了刚体组件的多维数据集。 当按下左键或右键时,立方体应该朝这个方向移动,当键被释放时,当运行注释部分2代码正确运行时,它应该停止第一部分 我试图实现的另一个动作是立方体应该连续移动。但是按键时应该增加幅度,释放时应该保持幅度并不断移动。这同样也是通过part2代码实现的通过评论第1部分代码但是,当运行没有评论他们中的任何一部分1结果是正确的,但部分2并没有提供正确的结果,通过评论part1代码 […]