Blastcode
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Maya Blastcode
Blastcode 主控制窗口面板介绍
我们通过制作墙面的爆炸来熟悉下Blastcode的窗口面板和基本操作流程
先看下墙面爆炸的最终效果
注意:Blastcode的运算基于一个控制平面,这个控制平面必须是一个Nurbs的物体。
在场景中创建Nurbs平面,修改通道栏属性
选择刚创建的NURBS平面,打开Blast Code>Blast Window命令,可以看到这是Blast Code的主控制窗口,按New Control创建一个新的Control, 可能看到在Control Source窗口中创建一个nurbsPlane1
转到Explosive模块中,点击Locator Explosive,创建一个爆炸
选择Explosive1,在Source Control Surface窗口可以看到刚才创建的nurbsPlane1(注意:默认爆炸对它是不起作用的,必须点击这个名字,才起作用),点击nurbsPlane1名字,使它激活。
播放动画,发现爆炸的位置和方向不正确。
在大纲中选择(我们以后就叫它为炸弹)在场景中移动到
控制平面的中心
保持炸弹被选择的状态点击Ctal+A 打开其属性编辑窗口,将Use Origin Flag 勾选。
Origin 后面的三个数值框代表的是爆炸的三个轴向,分别为X、Y、Z。
数值越大爆炸的效果越倾向于该轴向。
如果爆炸的方向是X、Y、Z的正方向则输入负值,反方向则正值。
再次播放动画,方向正确。
时间轴回到第一帧,选择NURBS平面执行Blast Code > Create Slab命令
在大纲中选择NurbsPlane1 打开属性编辑窗口,选择Slab1 将Mesh Thickness 修改为0.5个单位
播放动画
打开属性编辑窗口,选择Slab1节点,把Fracture Option 改为Fracture Map,它碎裂的方式以贴图表示。
给Fracture Map一个Leather的3D程序纹理帖图
修改Leather节点属性
选择Slab1节点,把Fracture Threshold的值改为大约0.6。
Fracture U和Fracture V 的参数是碎裂的UV,如果碎片的大小不理想,可以作合适的修改。
播放动画,观察爆炸形态
将控制平面隐藏。
打开Blast Window,选择nurbsPlane1 和Blayer1 , ALL off 隐藏控制平面
确定当前没有任何物体被选择的状态下,为场景添加MAYA的动力学模块Fields(力场)>Gravity(重力场)。
打开超级材质编辑器创建一个Lambert材质球,帖一张墙面的帖图,把file1用中键拉到Lambert材质上释放,从菜单下拉菜单中选择Bump连接,再把材质给予模型
播放动画将材质给予爆炸出的碎块
创建一个Polygons 平面大小比例匹配墙面完成之后删除历史、冻结坐标
打开Blast Window,选择Particle 窗口,点击Update List 刷新,将Debris ParticleShape1(控制爆炸碎片的粒子)与gravity Field1(重力)关联。
选择创建的Polygons 平面执行New Collision 。
确定粒子、碰撞平面、重力场再选择的状态下执行 Attach Collision 关联碰撞
OK 完成以上操作之后播放动画
我们通过制作墙面的爆炸大致熟悉了Blast Code 的基本操作流程接下来我们看一下Blast Window 窗口
隐藏控制平面
BlastCode的三种爆炸模式
1、Slab:
2、Sweep:
3、glue:
slab和sweep是BlastCode 自动产生的内部的爆炸模式glue是手动添加的外部物体进行爆炸
打开slab的属性编辑窗口
Mesh Thickness :厚度
Fracture Option :选择破碎的纹理模式
Fracture Map :使用程序纹理作为破碎的贴图Fracture File :使用手动绘制的纹理作为破碎贴图Fracture Size U :
Fracture Size V :破碎纹理的密度
大纲中选择“炸弹”打开属性编辑窗口
Explosive Parameters:爆炸模式
Deform Flag:变形模式
Pressure Flag:挤压模式
注意:勾选 Pressure Flag 时要打开slab属性编辑器,将Primary Debris Attributes > Debris Tensile Option > Pressure,Debris Trajectory Option > Pressure Delta .
Secondary :次级爆炸(产生小碎片)
勾选是打开slab属性编辑器,将Secondary Debris Attribute>Secondary Flag 勾选,Sec Debris Amount 数值1-3 个单位。
Crack Flag:产生裂纹
勾选时打开slab属性编辑窗口将Hard Quad Mesh >Crack Flag勾选,Crack Upper Amount和Crack Lower Amount 数值给到3左右。
Magnitude:爆炸强度
Size:爆炸半径
Velocity:爆炸速度
Start:爆炸的开始时间(在第几帧开始爆炸)
Object Explosive 物体爆炸
在场景中创建一个爆炸的控制平面在侧视图绘制一条一段的EP曲线
在BlastCode Window 窗板里的 Explosive 点击Object Explosive 生成物体爆炸再将下面的爆炸条件关联如图所示。
选择EP曲线打开属性编辑窗口,调整爆炸方向、激活使用点的爆炸物(在线段上的每个控制点上添加炸点)如图所示。
将控制平面生成slab 打开其属性编辑窗口Primary Debris Attribute(主要碎片)
seed:随机值(值为“0”时返回第一帧重新播放都是不一样的轨迹,为其他整数则重新播放后都是一样的轨迹)
Inherit Rotation:继承旋转
Inherit Motion:继承轨迹
注意:继承旋转和继承轨迹的数值为1时完全继承为0时完全不继承
Debris Random Rotation:被炸出的主要碎片的随机旋转
Debris Random Trajectory:被炸出的主要碎片的随机轨迹
Debris Random Velocity:被炸出的主要碎片的随机速度
slab属性编辑窗口中Secondary Debris Attribute为次级碎片
Sec Debris Length:次级碎片的长度
Sec Debris Width:次级碎片的宽度
Sec Debris Scale Min:次级碎片缩放的最小值
Sec Debris Scale Max:次级碎片缩放的最大值
Glue 手动添加外部物体进行爆炸
在场景中创建一个爆炸控制平面,如下图所示
创建一个Polygon 的盒子执行动力学模块的破碎物体命令,将盒子打碎
选择盒子选择控制层执行BlastCode Window> Glue Object to Lay
播放动画,盒子被炸碎
创建刚体解算器
在BlastCode 中默认的是Particle Solver 粒子解算粒子解算的缺点是爆炸物体和碰撞物体有穿插,因为粒子控制爆炸碎块,与碰撞物体碰撞的是粒子。
刚体解算能弥补这一点,计算出来的是比较真实的碰撞。
在场景中创建爆炸控制平面在Blast Window中选择控制面和控制层点击Attach Rigid Solver创建刚体解算器
保持空选的状态下在场景中创建重力场创建Polygon 平面作为地面
注意:地面的位置大小调整好之后一定要冻结坐标、归物体中心、删历史。
选择地面>Blastcode>Create External RB 创建外部刚体。
打开地面的属性编辑窗口选择BxRigidBody1将Stand Ins >Stand In Option 改为Height Field 高场显示(实体模式,适合只是面的物体)。
打开Blast Window 选择控制面和控制层点击Rigid Solver 使用刚体解算
在RigidBody刚体中将相应条件Attach Field关联
播放动画
再来看下粒子解算的结果两者对比
Blastcode 缓存
打开Blast Window 面板 Record Mode 缓存
Off 关闭缓存
Record 录制缓存
Play 播放缓存
Blast Data Handler
Path:缓存路径
Set Blast Data Handler Path:指认缓存路径
首先选择缓存路径Path 指认缓存路径 Set Blast Data Handler Path 点击录制Record 播放时间条动画点击Play。