注册 | 登录

游侠NETSHOW论坛





查看: 4462|回复: 11
打印 上一主题 下一主题

[分享] Sandbox2可破坏物体(Breakable Object)教程翻译 [复制链接]

帖子
9
精华
0
积分
3
金钱
40
荣誉
0
人气
0
评议
0
跳转到指定楼层
楼主
发表于 2008-12-8 15:23:19 |只看该作者 |正序浏览
在这个论坛看了一些朋友发的教程,启发很大。为了回馈,我也翻译了一遍官方教程。希望对大家学习sandbox有所帮助。为了保持文章的连续性,发完之前,请大家不要跟贴。谢谢

使用道具 举报

帖子
1488
精华
0
积分
746
金钱
1955
荣誉
0
人气
0
评议
0
12#
发表于 2010-5-8 10:56:55 |只看该作者
支持一下~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

使用道具 举报

帖子
5
精华
0
积分
3
金钱
55
荣誉
0
人气
0
评议
0
11#
发表于 2010-5-8 08:26:55 |只看该作者
不用到外部插件。。。

使用道具 举报

帖子
6
精华
0
积分
3
金钱
81
荣誉
0
人气
0
评议
0
10#
发表于 2008-12-8 15:55:03 |只看该作者
这个东西好呀!!通过对楼主翻译的中文,试了一下很爽!!希望多出一些精品呀!!

使用道具 举报

帖子
9
精华
0
积分
3
金钱
40
荣誉
0
人气
0
评议
0
9#
发表于 2008-12-8 15:47:29 |只看该作者
OK,全部发完。希望对大家有所帮助。其中的实例文件在官方的网站上有下。

使用道具 举报

帖子
9
精华
0
积分
3
金钱
40
荣誉
0
人气
0
评议
0
8#
发表于 2008-12-8 15:45:04 |只看该作者
程序上破坏3D物体
下面的物理技术在几乎所有的破坏物体上通用,而不仅仅是树干。它只是这个资源所讨论的一个问题。虽然,下面的例子我们只讨论树干
实例文件
cut_shape.max – 树 - 例子文件
sample_tree.max 破坏后物体 – 例子文件
3d程序中的常规设置
•        至于树干材质,在材质编辑器中打开“physicalize”,设置physics参数为“default”。


重要: 从你想要破坏的物体中移除所有的物理代理体(proxy physics)部分(也就是指树干)。
•        建立一个额外的预定义mesh物体的cga文件,它用来“cap”这个破坏的部分。

Sandbox Editor中的设置
•        在Sandbox 材质编辑器中,树干材质的表面类型(surface type)需要设成“mat_wood_breakable”。
•        Surface type 定义那些用来盖在树干上的预定义mesh物体。Mesh物体位置和名称在surface type脚本中描述。
•        可破坏的树需要通过vegetation objects来放置。
调试
•        让物体接受足够的外力来破坏它,在Crysis中用火箭发射器和手雷来爆破能够充分的检查这一功能。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

帖子
9
精华
0
积分
3
金钱
40
荣誉
0
人气
0
评议
0
7#
发表于 2008-12-8 15:41:54 |只看该作者
程序上破坏2D物体
平面物体能够用程序自动计算的方式来破坏(作为随后的附加,一些曲度也是被允许的)。它们可以是任何平面物体,例如:镜子,冰面,桌面,木墙。注意,无论如何,那些物体最好是像瓶子这样的“玻璃器皿”材质,作用于木头可能看上去不自然。
当前只有玻璃材质能够设置成程序破坏-但是新的材质很容易被建立。
例子文件
例子文件:
window.max – 窗户例子文件
window.mtl:材质文件 –在 Sandbox中使用
3d程序中常规的设置
* 程序上的打破玻璃需要平坦或者“细微的”弯曲。(更多的细节查看引擎部分)。
•        把Cryshader材质赋给多边形;允许 physics 为 "Default" 更多的技术细节部分可在
CryENGINE® 部分: CryPhysicsBrokenObject 中找到。
Sandbox中的设置
* 物体面类型(surface type)需要设置成mat_glass (在sandbox的材质编辑器中)
•        一个可能是一个玻璃物体在程序上破坏之后,碎片能够转变纹理(变成它后面紧接的带“broken”字眼的子材质,那个子材质必须跟着赋给可破坏物体那个材质的后面而且必须在名称中包含“broken”字眼)。
•        Geom Entities, Basic Entities 或 Brushes 能够定义成程序上破坏的2d物体。
调试
*在console中打开 "p_draw helpers" 来查看这个物理化几何体。

使用道具 举报

帖子
9
精华
0
积分
3
金钱
40
荣誉
0
人气
0
评议
0
6#
发表于 2008-12-8 15:39:14 |只看该作者
调试
* p_debug_joints 1 显示joint默认的调试方式(见下图); p_draw_helpers 需要被激活。  
警告:绝对不可以缩放joint!如果你需要一个新的尺寸,就建立一个新的joint。缩放数值将会传递给引擎并导致错误的计算结果。
•        Joint上的"spikes(尖刺)"显示方向。为了使结果协调一致,它们指向Z轴正方向。(见下图)
•        蓝色数字显示单个碎片的质量。注意那个“0.00kg ”是根节点的质量(它是一个虚拟体)。
•        Joint和世界连接显示成红色。
•        当一个joint接受外力,它的方向会显示出来(在摇动和弯曲情况下),同时附着上面的力和特定joint的限制也将显示。绿色文字描述一个小于joint限制的推力冲撞。黄色值描述接近joint限制的外力。红色描述超过joint限制的外力-这种情况下joint被打破。
•        注意: 调试模式很容易看到武器的冲击在可破坏物体起作用。首先设置常规的限制,然后再精确的微调特别的限制来准确的控制偏移力和弯曲力等等 。
•        调试信息显示实例:

附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

帖子
9
精华
0
积分
3
金钱
40
荣誉
0
人气
0
评议
0
5#
发表于 2008-12-8 15:37:48 |只看该作者
连接物体用于简单输出
  被连接的物体不需要被输出,仅仅需要将根节点添加到输出列表。所有的子节点将会自动输出。输出的名称将取决于根joint的名字。
•        连接物体和joint来简单输出的实例:
  
Sandbox中的设置
  以brush或Geom.Entity的方式添加物体。假定是一个brush,引擎会自动的探测这个物体是否是可破坏物体,因为在多人游戏中在可破坏物体可能会对数据传输产生巨大影响,破坏会自动禁止。 (可以稍后改变它)
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

帖子
9
精华
0
积分
3
金钱
40
荣誉
0
人气
0
评议
0
地板
发表于 2008-12-8 15:36:20 |只看该作者
解散成粒子\碎片
  连接的物体能够设置成当它从joint上断开时破裂成小碎片。也就是说,一块木板能够破裂成几块。这个物体的属性栏必须包括要使用的碎片,例如: "pieces=$blah1", "pieces=$rock1"。几个物体可以共享同一个名称,但也可以 设置不同的碎片于不同的名称,例如: "pieces=$blah1,$blah2"。碎片需要连接到物体上,稍后将替代它。

•        样例设置


细节级别(LOD)设定
   LODs 每一个物体能很容易的命名成: $lod1; $lod2, $lod3... 然后将他们连接到相关的子物体上。为了很容易的区分,可以给他们加一个后缀;例如: "$lod1_wooden plank"。  
Occlusion(闭塞) 代理
   一个 Occlusion 代理能够附加命名它为$occlusion然后与有关联的joint物体连接。像金属栏杆的一个金属片或者棚屋的一堵木墙。 Occlusion代理允许存在开放的边界而且需要尽可能的低面(通常2到10个面 )。
可破坏实例物体
   实例物体常常通过减小重画来优化渲染时间以及内存消耗。引擎自动的在导出物体中探测同样的物体元素。利用这一特性不需要特殊的设置。为了成为合格的实例物体,在物体中UVs和相关点的位置相对于轴心需要一样 。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

帖子
9
精华
0
积分
3
金钱
40
荣誉
0
人气
0
评议
0
板凳
发表于 2008-12-8 15:30:26 |只看该作者
•        joint 属性例子:

        每次,一个外力(其他物体的碰撞或子弹击中)作用于物体,系统计算使物体连接在一起的内部力量,如果一些作用力突破这个极限,相应的joint会被移除 。然后碎片 的连接性通过残留在他上面的joint被重新计算,单独的孤立将变成新的实体 。

节点属性     
     节点必须有属性(不同的软件设定不同)才能在引擎中正确的工作。
entity (可渲染几何体属性)
如果可渲染几何体属性含有“entity”,这个物体与主物体断开时将不会消失 。
box (可渲染几何体属性)
如果可渲染几何体属性含有“box”,引擎使用简单的box(比如用物体的范围框作为物体的几何代理)来作为它的碰撞几何体。它的好处是能够快速的物理计算。
mass=数值 (可渲染几何体属性)
Mass 定义在真实物理世界上的重量。
mass=0 规定这个物体将"不能移动"。它常常用在无法移动且一直留在原地的物体,例如:房子的基座,标示牌的支撑杆。 当它在 brushes 和 Geom Entities中使用时,这是物体最终的质量。 当它在regular Entities中使用时,所有的部分被缩放,所以它们的总质量在实体属性中被指定。注意! 你最好定义density值确保解算能够正确地进行。
density=数值 引擎基于物体的density和bounding box大小自动的计算一个物体的质量。作为选择也可以使用MASS。
limit=数值 (Joint 物体属性)
limit 是几个不同种类的力作用在joint上,当低于这个数值它会尽力的连接。
注意! 这个值必须被定义,否则,这个计算将不会正确。Crysis中常用的值:100-500能够被子弹破坏,10000能够被车辆冲撞和爆炸破坏。
以下的值可选择使用来细微调整“limit”设置:
bend=数值 (Joint 物体属性)
环绕垂直轴心的法线最大扭矩。
twist=数值 (Joint 物体属性)
环绕法线的最大扭矩。
pull=VALUE (Joint 物体属性)
joint的第一物体能够接受与joint法线反方向的最大力。(反作用于拉开他们的外力)
push=VALUE (Joint 物体属性)
joint的第一物体(也就是说,joint名称中显示的首个物体,或者这个名称没有指定,joint的z轴指向的物体)能够接受与joint法线方向的最大力。 Joint法线就是这个 joint的 z轴, 所以这个值就是推开力。 (反作用于挤压他们在一起的外力),这个轴向必须指向第一个物体。
shift=数值 (Joint 物体属性)
与法线方向垂直的最大力。

[ 本帖最后由 wanggogo1980 于 2008-12-8 15:34 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

帖子
9
精华
0
积分
3
金钱
40
荣誉
0
人气
0
评议
0
沙发
发表于 2008-12-8 15:26:45 |只看该作者
可破坏物体   
     可破坏物体由一些可分离物体组成。它们使用joints连接在一起。
   它们单独的一个部分接受的物理作用(子弹,玩家交互,爆炸)超过连接限制便可以脱离。
   通常,可破坏物体放在Sandbox的brushes栏中。
   一些路标,木栅栏,杂木是理想的可破坏物体。
实例文件
   实例文件 breakable_example.max  
3d程序的常规设置
           * 这些物体在max中必须拥有一些节点,每一个有自己的物理属性。  
•        Joints能够将节点连接在一起(每个Joints只能够连接两个部分)。
•        Joints命名习惯一般为: $joint01, $joint02,...
•        Joints在3d程序中表现为一个帮助物体(虚拟体,空物体……)。它们必须和一个或两个物体的物理代理体相交。
•        Joints轴心的z轴方向通常指向上方。(见Debug部分)
•        作为选择,在joint的名称中可以加入详细说明部分,其格式如: $joint1_part1_part2. 这在一些几何体相交的复杂连接中找到超过两个碎片的情况下通常很有用。
•        当一个joint物体仅仅与一个节点相交,那么这个在物体和场景(地面)之间的连接就被建立起来了。
•        Dummy物体的尺寸不具有任何功效。
•        是的,无论如何,习惯上如果一些几何体在破坏后也需要用joint重连接。(即:当一个碎片在程序中破坏,所有连接它的joint将被检查最近形成碎片的相交,然后视需要重新连接)
•        Joints的效果和碎片的质量在节点属性中定义。(不同的3d程序有不同的名称;在3ds中为:objects Properties)
•        特定的joint限制与joint的法线有关,表现为这个帮助物体的Z轴。根据joint指明碎片的名称,需小心放置法线点在第一个碎片中。(否则,pull和push限制值将转变含义)
•        在输出时关闭 "Merge All Nodes"  (在cryengine export中)
•        物体可以放在brush 或 geom. Entity 栏中
•        dummy放置实例:


[ 本帖最后由 wanggogo1980 于 2008-12-8 15:33 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

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

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2025-8-10 13:19 , Processed in 0.379475 second(s), 12 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到