目录
本文源自官方直播,以文字形式记录绑定过程。
使用的Unity版本:2019.2.0f1
🟥 技术简介
基于Animation C# Job构建的程序化动画绑定系统。特点:高质量、高性能、可扩展
该资源包位于Unity Packages,记得勾选预览。
如果加载不出资源包看这篇文章。
🟧 基本组件介绍
在人物(带有状态机)物体上添加Rigbuilder、BoneRenderer。
Rigbuilder:与Animator位于同一物体上,利用Animator中的动画生成PlayableGraph并添加到现有的动画状态机上,支持同时添加多个Rigs。能够对所有的Playable动画进行混合,混合树也是利用PlayableGraph实现动画混合。
BoneRenderer:是一个工具,骨骼信息可视化,方便你绑定、编辑
Rigs:自己建立的物体rig,添加Rig组件,与骨骼的根节点位于同一层级。收集子节点的约束组件,并按照顺序(深度优先)生成AnimationJob的列表,交给Rigbuilder来进行执行。
🟨 预定义约束介绍
RigConstraints。
这里面包含了很多预定义约束。
🟩 Demo阶段
1、导入Unity商城里免费的Post apocalyptic survival character模型,调整shader
2、找到模型fbx文件,调整Humanoid,拖到场景。
3、骨骼初始设置:
a、人物模型Animator位置添加Rigbuilder、BoneRenderer,
b、在与骨骼同级别的位置新建rig物体,添加Rig组件,Rig控制下方物体运动。
c、将骨骼下方所有父节点(除了最末尾的物体),全选添加进BoneRenderer的Transform里面,渲染出骨骼。
4、添加脚步IK动画
1)程序配置:
a、在rig下新建ik物体,ik下新建两个空物体lfik、rgik,位置分别在模型脚踝的位置,给lfik、rgik分别添加两个骨头之间的约束:TwoBoneIKConstraint
接着来解决一个坑:无法添加TwoBoneIKConstraint脚本
Q1:这时,我们AddComponent,是搜不到TwoBoneIKConstraint的。
A1:我们要先导入约束案例,这里面有该脚本(视频怎么不讲-_-||)
20191121更新:
注意,下面展示的bug,是由于Unity版本不是2019.2.0f1导致的,Unity版本必须在2019.2.0f1及以上!
因此暂停更新,Unity原视频链接:[Unity 活动]-官方直播- Unity最新程序化动画绑定(Animation Rigging)技术介绍_哔哩哔哩_bilibili
想继续学习的同学可以根据视频继续往下学习。
且还有一个bug,在最下方说明。
Q2:我们导入约束案例了,仍无法添加该脚本。即使看他们的案例,物体上的该脚本仍是报错状态。
A2:打开该脚本时,我们发现提示该脚本是只读状态。将脚本属性只读取消不管用。正确办法:
将TwoBoneIKConstraint脚本从packages里另存到你的项目Assets里去,现在即可进行添加。
b、将骨骼及控制器配置到TwoBoneIKConstraint里面
视频上说点击骨骼,将骨骼对应的物体这样配置,Tip是Mid的子物体。但没有说为什么这样选。猜测是IK控制脚步移动,脚步涉及到大腿、小腿、
Target就是控制器了,自身。
2)、K动画
即制作动画。
a、先给Animator的物体创建Animation
b、把IK的属性添加进Animation
就是在创建的Animtion里,AddProperty,找到你创建的rig,把你创建的lfik、rgik两个控制器的Position和Rotation添加进去。
该地方Preview有预览动画功能,点击后可在不运行状态下,调整lfik、rgik属性即可实时预览动作变化。
Preview不运行预览仅在2019.2.0f1及以上支持,我测试了一下2019.1,发现不运行开启Perview,调整lfik、rgik属性并没有什么动作变化。运行后这两个属性还锁定不能改了。。
大家还有什么问题,欢迎在下方留言!
如果你有 技术的问题 或 项目开发
都可以加下方联系方式
和我聊一聊你的故事🧡