游戏中的骨骼拉伸动画怎么做 - 上篇

游戏中的动画拉伸效果 - 上篇

3ds MAX 中的拉伸效果 - 虚假的拉伸

在这里插入图片描述

创建一根骨骼 ,在尾骨处创建一个Help ,然后把尾骨位置约束到这个help ,再把这一节骨骼注视约束到这help ,就完成了一个基础拉伸结构

在这里插入图片描述

下图就是一个用这种方法创建的拉伸绑定,一个球,三节骨骼,都是Bone骨骼的默认拉伸效果,没有做缩放处理的。

在这里插入图片描述

在来看下直接导出FBX资源后在Ue4 引擎中的效果 - 虚假的拉伸只是位移

在这里插入图片描述

这里是录屏GIF,而且动画比较简单,所以对比不太明显,但是能看出来蒙皮效果差别还是很大的。

下图是处理骨骼结构之后的动画效果 - 真实的拉伸是位移加缩放

在这里插入图片描述

同是第11帧两者蒙皮变形效果对比:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注意以上截图中,动画都是一样的,从一个MAX文件导出的,只是一个是正常的一级链一级的骨骼链接层级,另一种是打断链接的平级骨骼链。


为什么3ds MAX里拉伸缩放效果到引擎之后就出问题呢?

1.2 - 拉伸

因为游戏引擎不支持3ds max 中的Bone骨骼链拉伸效果,这个拉伸效果FBX也导不出来。

为什么? 因为Bone骨骼的那种用后一节骨骼位置来控制前一节骨骼的拉伸效果他不是缩放,(bone骨骼拉伸属性 Bone.stretchTM) 所以在导出FBX资源之后,你在MAX看到的那节拉伸骨骼其实是没有缩放动画的,只有后一节骨骼的位移动画。

1.3 - 缩放

那为什么Biped骨骼的缩放动画,导出FBX到引擎也会出问题呢?

Biped骨骼添加缩放控制之后,虽然在MAX里,父级骨骼的缩放是不影响子级骨骼,但是在引擎里,父级骨骼的缩放是会影响子级骨骼的,当然了 Bone骨骼也是一样的,这涉及到引擎里骨骼动画计算方式,这里不提。


游戏里的拉伸效果是怎么做的?真实的拉伸

  • 从骨骼结构入手,总用最后一节骨骼缩放,不用Bone骨骼的拉伸效果,另寻方法用缩放拉伸效果。

  • 引擎里后处理骨骼动画再实现。

2.1 - 打断骨骼链

所有骨骼都是平级的,只有一个BoneRoot根骨骼,这样缩放的总是骨骼链的最后一节骨骼,绝对不影响子级骨骼了,不管你怎么缩放那肯定是没问题的,而且Biped主体骨骼是可以随意改变链接关系的,也不会影响动画,当然这样做之后,在引擎里肯定是没法使用Ik之类的。

在这里插入图片描述

2.2 - 再加一节骨骼,

主体骨骼结构还是正常的,但是给每节需要缩放的骨骼再加一个子骨骼,蒙皮也从主骨骼上替换到这个子骨骼上,这样主骨骼负责主要动画,用这个子骨骼来缩放拉伸。

在这里插入图片描述

2.3 - 用Bone的拉伸控制另一根骨骼的缩放

将需要缩放骨骼的缩放控制改为 scale script . 创建一个变量boneMax ,把该变量指认为那根拉伸的骨骼,然后填上表达式即可, 具体操作如下图。

在这里插入图片描述

缩放控制表达式

[boneMax.stretchTM [1] [1],boneMax.stretchTM [2] [2],boneMax.stretchTM [3] [3]]

当然了这种不能保持体积的缩放拉伸效果也不太好,但是一般用用也是不错了,更复杂的保持体积拉伸这里就不说了。

2.4 - Bone拉伸转缩放工具

在这里插入图片描述

先选择需要转换的骨骼(pick bones),再选择蒙皮的模型(pick skinned object)。然后点 转换(Convert and reskin )

会直接创建新的骨骼替换旧骨骼并且自动替换蒙皮权重。但是会改变链接关系,骨骼结构会变成平级结构的,动画不变。

2.5 - UE4 缩放动画约束

直接在动画蓝图中使用 constraint 约束节点,锁定不需要缩放的骨骼,可以避免骨骼受到父骨骼的缩放影响。

在这里插入图片描述

Bone to Modify : 即需要锁定缩放的骨骼 受约束对象。

Target Bone : 约束的目标,选一个全程无缩放的骨骼。

其他设置自己可以测试下(我也没用过,不太清楚其他参数)

我这个案例动画是缩放了 spine_01 第一节脊椎,所以我选 pelvis 盆骨 为目标,第二节脊椎 spine_02 为约束对象,就可以让 spine_02 的缩放是跟着 pelvis 的,而不是他的父级骨骼 spine_01 。这样就实现了父级骨骼缩放但是不会缩放子级骨骼。在不更改骨骼层级关系的情况下实现缩放拉伸。

在这里插入图片描述

原始动画

在这里插入图片描述

加了约束节点之后的动画效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q8Hvmcah-1596453832957)(/assets/005/lashen008.gif)]

下载

链接:https://pan.baidu.com/s/1_iqpHqmyi5mdF0Br_ub7sw
提取码:21mk
复制这段内容后打开百度网盘手机App,操作更方便哦


参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值