跟大家分享一篇如何在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个大坑
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答腾讯游戏美术春招已经启动啦!25、26、27、28届均有机会投递,实习岗位有动画、特效、3D场景/角色、2D场景/角色、技术美......
刚入学的同学,在第一次学到新软件的时候,经?;岜桓髦挚旖菁?。但是网上download的快捷键记忆图,不一定就是合适的。这里......
官方宣布3月共134款新游戏版号过审,网传68家游戏公司超1000岗位
提前了解行业趋势,关注热门游戏和新技术如AI、UE5等;或通过了解和参加线上、线下行业游戏大赛或交流峰会,增加行业信息来源,积......
今天要分享的是武汉校区剪包专场招聘会,企业代表是曾就读于武汉校区2210期的剪包学长,这次代表公司返校,招聘视频拍摄剪辑岗位。
AI时代找不到工作怎么办?瞄准这6个常青树行业,火星全专业可匹配!
科技在创新,社会在发展,自动化、机器人和AI人工智能的应用,让很多重复性高、低技能要求的传统工作岗位正在被逐步取代,这是一个无......
一般发生在下半年,如果公司上半年业绩未达标,有些公司可能会在年中发起招聘需求,为团队储备一些新人,到年底以“试用期不通过”为理......