第十五章:物理对象.doc

  1. 1、本文档共105页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十五章:物理对象

第15章:物理对象 物理对象是根据精确的物理仿真而产生移动、碰撞等行为的实体对象, 而这种仿真就是通过PhysX物理引擎来展现的。PhysX引擎已经整合到Unreal Engine 3中,并且负责所有的在gameplay中的物理仿真(通常称为动态仿真)。在Unreal Engine的物理模型中最典型的就是刚体,或者是通过Constraints(约束)而相互联系在一起的一系列刚体。随着这章的进程,我们将会为您解答什么是刚体和约束,同时也包括如何使用它们。 15.1 物理对象的种类 在Unreal中使用物理仿真的时候,一定要记住它有4种主要的物理对象种类可用。它们是KActors, KAssets, Constraints(约束)和Impulse(冲力).任何您创建的物理对象都将会是其中的一种类型。 总的来说,这四种类型的不同之处在于:KActor仅指单一的刚体物理对象,如撞球。KAsset是一种带有骨骼的网格物体,它能够通过使用一组由constraints(约束)条件联系在一起的的物理对象来产生动画,如ragdoll(布娃娃)。 Constraint(约束)是能够把两个或两个以上的KActor连接在一起,或者在某些方面能影响它们的一种力。Impulse(冲力)和Force actor(力)actor会在物理对象上施加某种力,以使它们产生运动。这些物体类型接下来都将会在各自的部分中深入讨论。 指 南15.1—— 创建一个基本的物理仿真 1. 运行UnrealEd, 打开PhysicsPlatform地图和Basic_Physics文件包,它们都在配套DVD本章内容中可以找到。 2. 打开Generic Browser。在Basic_Physics包中双击sm_crate静态网格物体来打开静态网格模型(Static Mesh)编辑器。打开Collision菜单, 选择Simplified 6-DOP 碰撞项, 如果您被提示覆盖当前的碰撞设置就选择Yes。添加碰撞网格对创建一个动态对象是十分必要的。 图15.1——碰撞网格看上去就像是围绕在物体周围的线框。 3. 打开静态模型属性面板的BodySetup(体设置)选项,并且将MassScale(质量比例)属性设为0.5。如此将会使箱子的质量减半,而更容易移动。 图15.2——MassScale(质量比例)属性调整物体的质量大小。 关掉静态网格编辑器并确保sm_crate已经在Generic browser中被选中。 4. 在关卡地表上点击右键, 选择Add Actor - Add RigiBodyRight:StaticMesh Basic_Physics.sm_crate。如此就创建了一个使用选择的静态网格物体的KActor。 图15.3——确保摆放的是刚体,而不是静态网格物体。 5. 选中视口区域的网格物体,按F4,打开属性窗口。打开KActor选项, 检查bWakeOnLevelStart(关卡启动时唤醒)属性条. 如此,一旦关卡启动,KActor就被激活了。 图15.4——bWakeOnLevelStart(关卡启动时唤醒)属性使KActor在关卡开始时处于运动中。 6. 重编这个关卡,保存,然后运行检验。现在,可以与网格物体交互并且在场景中任意移动它。在箱子上点击左键,就会产生轻微推进力,使箱子远离您。如果右键拖动可以拾起物体或抛掷物体。 指南结束 15.2 刚体的概念 在我们详细介绍在Unreal Engine 3中会用到的实际的物理对象的类型之前,首先需要对刚体有个大概的了解。从概念上说,刚体表现为理想固体,而且在任何情况下不管对其施加多少力,它都不会发生形变。既然如此,刚体是在现实世界不存在的物体,因为,任何现实物体在足够强的力的影响下最终都会发生形变(至少是轻微形变)。由于刚体非常利于计算,所以被广泛应用于计算机中的物理仿真。尽管刚体不能完全表现真实世界的物质表现,但是却能在逼真程度上非常接近现实物理表现。 刚体代表了在Unreal Engine 3中物理对象计算的主要方法。KActors通过使用静态网格物体作为基础来进行刚体运算。即使是KAssets,由于是具有骨骼的网格物体而无法通过自身所包含或者关联的刚体来进行计算,但是仍可以使用不可见的刚体碰撞模型来计算骨骼如何运动,以及如何带动整个网格物体发生形变。 由于在UnrealEd的视口区域创建一个KActor需要选择Add Actor菜单下的Add RigidBody(添加刚体)选项,大家可能会对刚体和KActors的区别有些混淆。然而根据本文的目的是将刚体看作一个更概念的对象,而KActor是一个物理对象,它通过使用刚体计算来实现仿真。 15.3 在Unre

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档