MAYA里面做多刚体系统动力学碰撞,如何控制撞击力度?

> 怎么制作Maya粒子和物体碰撞时的效果
怎么制作Maya粒子和物体碰撞时的效果
做物体与粒子碰撞特效时,我们要追求好效果,要求粒子必须发射到精确的位置。比如剑在墙上刮起的火花,石头从山上滚下来带起来的灰尘和小石子,一个人走路时,脚带起来的尘土等等。怎么制作Maya粒子和物体碰撞时的效果?很多朋友都有疑问,那么今天就利用这个Maya教程来好好展示展示。
1 、石头(暂且将石头命名为 boulder )从小山丘上滚下来,会带起很多灰尘。我们现在实现这种效果。我们做个石头(命名为 boulder ),进入 Dynamics 主菜单,给石头加 active rigid body 和 gravity field 效果。然后建个( plane )平面,给 plane 加个 passive rigidbody 。再选择附加了 rigidbody 效果的石头,再给它个 softbody (如下图),选择 Duplicate, make Copy S勾选 ''hide non-soft Object ,勾选 'make non soft a goal' ,然后设置 weight 为 0.8 ,点 Create 按钮。我们打开 Outliner ,选择石头中的( copy0boulder )节点,将它隐藏,粒子不要隐藏,我们只要看到 'soft boulder' 就行了。
2 、我们这一步要做的是把 softbody particles 与 plane 进行碰撞。选择 plane ,进行 Particles %26Make Collide ,设置如下属性:
resilience 为 0
friction 为 0 ;
然后打开 window %26Relationships editor %26Dynamics Pelationships, 使 softbody particle's collision 和 plane 连接,现在这两个物体就可以碰撞了。
选择 softbody particle 对象,打开 Particles %26Particle Collision Events ,在弹出的框中,按下图设置属性:
3 、现在 hardware (硬件)动画,大家会看到 boulder 与 plane 碰撞时产生的点是灰色的,也就是 softbody particles 是灰色的。我们就给这些粒子加颜色。进入粒子的 particleShape Attribute ,点击 Add Dynamic Attributes 里的 Color ,给它个如下图的颜色。在它的 opacity attribute 里设置 value 为 0 。
4 、最后要注意的是,这个技巧不是要我们怎么用 rigid body ,而是要大家延伸这个技巧。假设角色走路所带起来的灰尘,路面还要用 'make collide' ,但不需要 rigid body 了,同样角色的脚也不需要变成 softbody ,我们只要选择脚骨骼那的皮肤进行 softbody 就行了。
关于怎么制作Maya粒子和物体碰撞时的效果的介绍就到这,说实话,这次的Maya教程还是有些粗糙,这点我承认。不过思路至少清晰了,希望各位朋友能做出好效果。
相关教程列表:广州代代星电子科技有限公司
广州亚鹰广告设计有限公司
广州中楷教育信息有限公司
广州墨泉映画动漫有限公司
北京天神互动科技有限公司
北京天九科技有限公司
广州吉帆传媒有限公司
齐齐乐网络有限公司
广州六翼视界科技有限公司
广州思雨文化传播
深圳环球数码
南京维塔士
西安水晶石
北京大呈印象文化传播公司
翌日动漫设计有限公司
翌日动漫设计有限公司
翌日动漫设计有限公司
珠江电影制片厂
深圳数影影像科技有限公司
南京维塔士
保辉动漫科技有限公司
保辉动漫科技有限公司
深圳七里香珠宝礼品公司
广州卓越软件开发有限公司
重庆狼影动漫
重庆狼影动漫
火星科技游戏动漫制作
柒天动画设计有限公司
迈克斯软件科技公司
迈克斯软件科技公司
迈克斯软件科技公司
上海808GAME游戏
深圳宏智力
广州明朝网络
EPIC Games(上海英佩)
北京水魔方数字科技
蓝弧文化传播有限公司
广州保辉公司
广州保辉公司
上海河马动画设计公司
莱昂动画设计有限公司
西华国际艺术动画学院
深圳环球数码
欧贰动漫设计
MAYA特效合成:刚体碰撞与投石模拟
本视频为CGWANG课堂现场录制,非经授权,请勿挪作它用,违者必究!
MAYA刚体碰撞与投石模拟
(责任编辑:zeal_lee)
本视频为CGWANG课堂现场录制,非经授权,请勿挪作它用,违者必究!
------神一般的分割线----------------------------
联系我们:【Maya】刚体动力学特效-撞击破碎特效的完整流程
现在我们来弄一个比较复杂的刚体动力学特效。一个大铁球撞破墙壁,一辆路过的小轿车被碎石击中,然后变向(危险行为,请勿模仿)。
1.墙壁的创建。
这里就不与BlastCode这样专业的破碎插件进行比较了,我使用Maya最平常的方法创建出即将破碎的墙壁。
Maya制作模型碎片的一些方法:
(1)使用CutFacesTool对模型进行直线切割。这种方法可以得到很规整的模型,尤其可以应用于复杂几何体的切割,不过缺点就是操作繁琐。
(2)使用SplitPolygonTool在简单的平面上描绘出裂痕,然后使用提取面命令分离这些面(执行Extract命令前KeepFacesTogether要先去掉勾选)。
(3)使用内核布料系统的布料切割,不过碎片会比较整齐。
(4)使用Dynamics动力学模块下Effects菜单的Shatter。此命令要求模型无历史,且材质不能太复杂,在圆弧表面的几何体上容易发生形变。
(5)使用SplitVertex切分点工具。此命令会将点周围的边全部分离,与布料的切割类似。
(6)使用自定义的色块贴图,执行贴图转几何体命令(TextureToGeometry),然后提取面分离。这是最省事的方法,可控性也高,不过太复杂的贴图Maya会需要大量的运算时间。与BlastCode插件的破碎贴图有点类似。
这里,我所进行的步骤如下:
(1)使用CutFacesTool将面片切割为几大块;
(2)对撞击中心的区域模型进行细分操作:EditMesh-&AddDivisions;
(3)删除所有碎片的历史,对细分后的碎片执行:Effects-&CreateShatter(粉碎);
(4)全选整个墙体模型,执行Extrude(挤压)命令,制作出厚度;
(5)全选整个墙体模型,执行Combine(合并)命令,合并为一个物体以方便编辑UV;
(6)选择这个合并后的模型,使用一个平面的UV贴图投射PlanarMapping(如果也需要对模型的厚度进行单独UV展开,可以在侧视图选择这些模型面后进行AutomaticMapping);
(7)选择模型,执行Separate(分离),再次将模型分离为独立的小块,然后删除所有历史。
(8)除了删除操作历史,冻结坐标(FreezeTransformations)和轴心居中(CenterPivot)也是很重要的操作。如果你在执行刚体解算时发生异常(如碰撞后刚体方向,旋转或大小很不合理的变化),那么最大的可能就是刚体物体或者其所在的组的变形属性(位置,旋转,缩放)的初始态有数值变化。
(9)赋予模型贴图。与常规的模型贴图是一样的,没太多需要说明的,不过要注意的一点就是:由于是会产生动力学动画的物体,因此不可使用3D纹理节点进行贴图(谁用谁知道……)。
2.其他场景物体。斜坡,地平面,小车,大铁球。
3.制作包裹物体(刚体代理)。刚体的模拟是很耗费资源的,尤其是过于复杂的模型。配合分层渲染,我们应尽可能的优化刚体的解算。包裹物体就是参考复杂模型的基本外观,制作出一个简单的多边形几何体;将复杂模型作为包裹物体的子物体,然后在渲染的时候排除包裹物体(方法很多,最简单的就是将该包裹物体放于物体层中,设置层选项为Template参考模式-T字母标志;不过如果使用的是MentalRay渲染,就需要使用渲染过滤,因为MR不支持参考模式的层设置)。
4.赋予包裹物体刚体属性。
包裹物体刚体属性参数设置如下:
InitialVelocityZ(Z轴向的初速度):-20(负号表示朝Z轴的相反方向运动)
ImpulseZ(Z轴向的推力):-10(抵消部分总摩擦力)
Mass(质量):500
Bounciness(弹性):0.3
5.动力场连接。选择车的包裹物体,执行Fields-&Gravity,将重力场增加至刚体解算中。
6.对地面创建被动刚体。
7.刚体约束。选择墙壁后的球体,执行CreateNailConstraint(创建钉子约束)。创建约束或动力场连接时,Maya会自动将几何体转为刚体属性,所以可以跳过赋予刚体属性的步骤。
球体刚体属性参数设置如下:
Mass(质量):1000
Bounciness(弹性):0.1
8.设定初始位置。可以使用风场将球体吹至一定高度后,再将此位置的球体设置为初始态InitialState;这里我使用一个NURBS曲线圆圈进行定位,直接移动球体的位置(钉子约束点位置不变)。
9.手动将刚体与场景中已存在的动力场进行连接。选择球体,执行Window-&RelationshipEditors-&DynamicRelationships(动力学关系编辑器),点击Fields栏下的GravityField,当文字背景为默认的橙色时表示所选物体已经受重力场的影响。
10.&测试场景。为使小球穿过墙体撞击小车,根据需要改变小车的初速度或推力。因为总摩擦力与小车的质量有关,因此初速度的能量消耗程度取决于物体质量和摩擦因数的大小。
11.墙壁刚体的制作――由于墙壁有较多的碎片小块,因此我将它留到最后再制作。全选墙壁物体,执行CreateActiveRigidBody。此时最好不要播放场景动画,因为基本上都会卡机,甚至Maya崩溃。
解决方案(任选其一):(1)缩小所有刚体,使它们之间具有一定间隔,并修改刚体解算器下的参数值-步长和碰撞容差。
(2)设置刚体代理-方体和球体,降低解算质量。
(3)设置碰撞层。
(4)设置穿插属性。如果撞击发生在很短的一瞬间,且镜头上不会过多的停留在碎片的飞行中,那么可以使用方案(4),这是快速实现效果的最优选择;
如果镜头不会停留在撞击点上(或者距离较远,可以忽略模型块的间距),我们可以使用方案(1),这可以较为完美的实现碎片飞行中的碰撞;
如果碎片较为规则,接近于方体,可使用方案(2)刚体代理来完成;
如果你需要对不同区域的碎片进行碰撞设置,方案(3)则可以考虑,我们可以将之理解为方案(4)的扩展。
有时由于一些画面视觉的要求,我们需要同时将多种方案应用于一个场景动画中,但往往还是难以达到理想的动力学解算效果。此时,我们可以对个别物体的烘焙关键帧进行细节动画的调整;如果工作量太大,对碎片进行分层渲染来避免穿插镜头也是可以考虑的。
12.选择方案(4)进行。一般撞击后飞行的碎片之间的碰撞不会太多,这里我直接忽略(谁叫我使用的是一个过时了的笔记本……效率优先),遇到穿插时我更倾向于对烘焙了关键帧的物体进行个别处理。
(1)全选墙壁的各刚体几何体,执行CreateActiveRigidBody;
(2)保持刚体全选,点击右边通道栏SHAPES下的RigidBody节点,展开属性列表,直接修改参数值如下(所有选择物体的相同属性都会被同时修改):
Mass(质量):20
Bounciness(弹性):0.1
StandIn(替代):Cube(为了正确解算,最后我还是设为了None)
(3)保持刚体全选,执行Solvers-&SetRigidBodyInterpenetration(设置刚体穿插);
(4)选择最下面的几何体,将通道栏中的Active改为Off(输入0,回车即可)。
因为底部几何体不参与动力学解算,此步操作将所选几何体变为被动刚体,可避免它们与被动刚体地面的穿插(或者你也可以将它们与地面设置刚体穿插)-被动刚体间不会出现解算穿插的问题。
(5)设置了刚体间的穿插,可以获得流畅的动力学解算效果,并且除了刚体碎片间的碰撞,它们与场景中其他刚体的碰撞还是会被真实的解算出来。如果仍打算将解算质量降到最低来提高解算速度,可以将所选刚体的通道栏的StandIn设置为Cube,并将刚体解算器RigidSolver节点的StepSize(步长)和CollisionTolerance(碰撞容差)数值提高,而RigidSolverMethods设置为MidPoint。
(6)播放场景动画进行测试。当动画达到预想效果,对墙体刚体设置重力场。
在碎片被撞击飞出之前,我不打算让它受到重力场的作用而运动,因此我需要加入一个新的重力场,并对力场设置关键帧:将重力场的Magnitude(强度)设置为0;在发生撞击的那一帧设置关键帧(KeySelected),然后在下一帧更改Magnitude数值为9.8并设置关键帧。
(7)选择那些不打算参与解算的模型,将它们通道栏的Ignore设置为On。
(8)播放动画,发现碰撞区的一些碎片与剩余的墙体发生穿插。
要解决这个问题,可以选择这些刚体,恢复它们的碰撞属性(SetRigidBodyCollision)――如果恢复的刚体太多,那又回到了设置穿插属性之前;根据镜头需要,常常需要进行分层渲染或调节烘焙关键帧来解决物体穿帮的镜头(华丽的特效是要慢慢磨出来的)。
(9)当动画效果基本达到,烘焙动力学模拟的关键帧(BakeSimulation),然后删除所有刚体属性。
*国际惯例,将关键帧的总长度压缩为一半左右。
13.设置镜头及灯光,渲染。当加入一些粒子特效(3D粒子或平面粒子)及碎片飞行的运动模糊,并在后期合成中完成震镜效果,一个很酷的撞击特效也就产生了。以下使用平面粒子软件ParticleIllusion素材中的一个简单烟效进行合成的效果演示。
14.最终效果(太大图片网络观看会比较卡,因此设置为低质量的GIF图片)。
15.技术点总结:
切割物体-设置刚体属性-添加力场和碰撞-设置刚体穿插-烘焙动力学关键帧
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
阅读(7717)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_094067',
blogTitle:'【Maya】刚体动力学特效-撞击破碎特效的完整流程',
blogAbstract:'现在我们来弄一个比较复杂的刚体动力学特效。一个大铁球撞破墙壁,一辆路过的小轿车被碎石击中,然后变向(危险行为,请勿模仿)。\r\n'
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}现在我们来弄一个比较复杂的刚体动力学特效。一个大铁球撞破墙壁,一辆路过的小轿..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
【Maya】刚体动力学特效 撞击破碎特效的完整流
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 maya刚体 的文章

 

随机推荐