跟大家分享一篇如何在Maya里面基于骨骼绑定制作具有自动碰撞的裙子,一起来看下吧!
<以裙子为例,裙子会随著物体的碰撞并改变>
作者简介: 刘俐伶 (Liling Liu)现任于Amazon Game Studios担任Technical Artist,正制作一款 AAA-Crucible游戏,毕业于旧金山艺术大学游戏发展所,曾经在Universal creative, Kinosys Films,Chaosmonger Studios等其他公司担任于角色绑定师,本身也是一位 Freelance Rigger参与其他的游戏和动画电影的专案。
由于能够使用两者物体之间的碰撞来产生互动,让动画师能够快速方便制作动作,并且可以将物体输出到游戏引擎。个人的想法是利用这样的技术来制作一个裙子的绑定,在互相的碰撞让裙子能够自然产生变化。首先要有两个物体,在这教学使用一个长条和简单裙子模型(如图)。
一、概念原理
当物体一快碰撞到物体二之前,让物体二开始受到变动。首先要在两者物体之间製作一个圆圈,利用圆圈简单表示为裙子的构造,让物体一移动的过程在这圆圈上找到物体一和这圆圈的距离和角度,并利用这角度使的物体二产生碰撞。物体二也要计算和圆圈的距离是多少才能开始受到碰撞。
二、具体操作
(1):计算物体一与圆圈之间的距离
首先在每一个物体上新增骨头,并製作一个圆圈(如图),
由于要得知物体一在移动时与圆圈的距离是多少,创立一个Locator (loc_hand_sp) ,将放置在长条物体的骨头底下,利用这个 Locato r 与圆圈上的点做计算。在计算之前,必须先知道圆圈上的点目前是处于多少 。
创立一个Locator(loc_cuv)加选上圆圈线,到 Constrain > Motion Paths > Attach to Motion Path。在Motion Path Attribute可以看到U Value被锁起来,这时候可以解除锁定,在移动U Value可以看到Locator在圆圈里面移动。
接著计算loc_hand_sp和圆圈线(Cuv_skirt)的点:
1.在 Maya里面到 Windows> Node Editor,在编辑区新增 NearestPointOnCurve 节点;
2.loc_hand_spShape的worldPosition连结至该节点的position Cuv_skirtShape的 worldspace连结至该节点的curve;
3.再将此结点的参数输出至U Value的值。
如果你对Maya的节点不太熟悉,可以到 Autodesk 官网上得知资讯
(2):计算物体二( 裙子) 与圆圈之间的距离
在Maya里面到:Create > Measure Tools > Distance Tool。将裙子的骨头与圆圈线上的locator(loc_cuv)测量距离。
(3) :判断物体二 ( 裙子)和圆圈之间距离产生变化
• 在Node Editor新增2个multiplyDivide计算距离多少内开始进行变动,此两节点的计算改为Divide,距离线(DD_L_skirt_02_DistShape)连结至multiplyDivide1上的input2,此节点上的input1设为 1,再将此节点连结上multiplyDivide2的input1,将复制input1的值到input2。
• 得出此数值之后,要判定此数值是否介于距离之内,如果数字是在距离内,可产生变动,如果不是,那就保持原地。创立一个remapValue,这个节点可以放置以判断出的数值和自己设定的最大和最小的数值,如果数字介于之间就开始产生计算出结果,如果数值不是介于之间就输出想要的最大和最小的值,在这边最小值以 0,最大值以1输出。将multiplyDivide2输出至remapValue的值,并更改最低数值。
(4) :计算物体的角度并产生碰撞
创立一个新的multiplyDivide,将刚刚remapValue的值输出此节点(multiplyDivide3)的input1再将此节点输出至裙子骨头上,等等要使用multiplyDivide3的input2作为物体的角度判定。如果角度超过一个数值,那就可以开始转动裙子的骨头。对每一个裙子的骨头重复上述步骤。
角度判定:
• 创建两组骨头,并将各自的底端骨头放置在 locator上(如图),
在将其中一组的骨头(直的) 放置在另一组底下,由于骨头旋转值会自动转到骨头方向,将此数字複製到骨头的旋转上,这样就可以得知此两组骨头的角度为多少。
• 在骨头(斜的)加上IK Handle并将它放置在圆圈线上的locator。
• 利用之前所创立的loc_hand_sp加选上骨头(直的)做aim constraint,将 world up type改为Object rotation up并将另一组骨头名称放上。根据此locator的轴向,更改 up vector and world up vector 数值。只要两个相碰再一起此角度就归0,继续在超过角度,就进行裙子骨头转动。
• 创立clamp节点,将刚刚骨头(直的)连上clamp的inputR,并在MaxR调整数值,此角度如果介于此就输出为0,否则为1。将clamp值输出multiplyDivide3的input2。
• 由于为了让自己方便能够调整角度可以旋转为多少,再新增一个multiplyDivide,将 multiplyDivide3输出是此点,然后就可以在相关控制器连接上input2。
关于在Maya里面基于骨骼绑定制作具有自动碰撞的裙子的分享就到这里了。
来源:Thepoly公众号
作者:刘俐伶
软件使用: Maya
上一篇 做动画不要踩的6个大坑
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答有关剪辑学习,网上有很多动辄几万甚至几十万阅读的高赞问答。可见近来对视频剪辑制作,以及对AI视频创作动心的人,还是蛮多的
很多人都知道3ds Max是一款强大的3D软件,但不少艺术家觉得,在动画方面,它似乎没那么出色。这并不是说3ds Max本身不......
你有没有想过游戏设计师和游戏程序员的区别是什么?因为有时他们被称为游戏工程师或软件工程师,而且你经常听到开发者、程序员、工程师......
创作《环太平洋》里的机甲特别复杂。这个过程得靠SGI的精细设计,还得小心地跟实景拍摄的画面融合在一起
你要相信,任何行业或领域,都是有一套学习方法的。找对方法,事半功倍。 今天就给大家分享以下平时做短视频时用得比较多的剪辑干货。
《英雄联盟》官宣新赛季打法:火了这么多年,这款游戏咋做出来的?
今天下午,夏尔天逸公司来火星举办专场人才招聘会,招聘游戏原画、3D模型、角色动画、游戏特效等岗位。该公司目前在职游戏制作人已经......