跟大家分享一篇如何在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个大坑
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答想学习UI设计,却不知道哪里的培训机构比较好?本文推荐一家专业的UI设计培训机构,助你快速掌握技能。
想学习平面设计却不知道该去哪里?本文为您介绍学习平面设计的好去处。
想学习VR软件开发但不知道选择哪家?本文为您介绍如何选择学VR软件开发的最佳选择。
想学习后期动画制作技巧?本文详细介绍火星影视后期动画培训,助您成为后期动画专家!
专业的影视美术提升培训机构为学员提供全方位的影视美术技能培训,助力学员在影视美术领域取得成功。
想要学习交互设计却不知道从哪里入手?本文为您提供选择最佳学习路径的指南,助您顺利成为交互设计师。
1. 打开微信扫一扫,扫描左侧二维码
2. 添加老师微信,马上领取免费课程资源
同学您好!