翻译自: http://tsubakit1.hateblo.jp/ 此人是日本Unity的开发者, 经常分享Unity最新的技术。
AnimationRigging是Animation C# Jobs 程序的功能。例如,设置IK,调整移动。
也有时间轴工作,如尝试对角色的腰添加旋转, 如在一个特定的场景微调一个有趣的功能。
IK 在动画 (Mcacanim) 标准中, 但 Mcanim IK 只对人型角色有效, AnimationRigging 就不一样。
例如,如下图 (显然不是人类型) (动漫玩具) Lacter 的腿运动在 ik 中创造了。 据说在调整了 IK 的功能后, 只显示了脚的最终位置。
用IK移动你的腿
此外,您似乎可以执行各种操作,例如覆盖动画角色的Transform和多个动作的混合。
- Blend Constraint
- Chain IK Constraint
- Damped Transform
- Multi-Aim Constraint
- Multi-Parent Constraint
- Multi-Position Constraint
- Multi-Referential Constraint
- Multi-Rotation Constraint
- Override Transform
- Twist Correction
- Two Bone IK Constraint
实际上尝试一下
我实际上会使用Kore。这次尝试的功能是TwoBoneIK。IK表达式由两个关节执行。
当移动臂的尖端时,臂的位置被补充以便连接到尖端。
环境测试
- .NET 4.x
- Unity 2019.1
- Animation Rigging ver 0.1.4
程序
首先做一个手臂。
在根的GameObject“ARMS”下,构建一个父子结构,以便Root> Mid> Tip。此时,如果您转动父游戏对象,请调整网格的位置,以便孩子的骨骼能够精美地转动。
用父子结构制作手臂
接下来,设置Rig。
在ARMS下创建名为Rig的GameObject 并添加Rig
组件和TwoBoneIKConstraint
组件。
在Rig对象下,创建名为Target和Hint的GameObject并 将这两个游戏对象添加到 TwoBoneIKConstraint 组件上赋值
。此时,Target被置于与Tip大致相同的位置 。
ARMS上添加 RigBuilder组件,并赋值
之前创建的Rig对象。TwoBoneIK现在可以在游戏运行时运行。
更多可以观看这个视频: https://www.youtube.com/watch?v=DzW_jQGO1dc
还有官方示例:
[Unity]微调时间轴动画(Generic版)
在某些情况下,您需要在从DCC将动画带入Unity后对时间轴上的动画进行微调。例如,如果龙咬的位置略微偏离,则击中杆的位置略有不同等。移动DCC工具和Unity编辑器似乎有点麻烦,尤其是在游戏中放置对象时。
所以我将在时间轴上进行微调。另外,这次关于Generic的方法,下次是Humanoid。
1.在时间轴上播放动画
首先,我们在时间轴上设置Generic模型的动画。
在此状态下,骨骼的位置由时间轴的AnimationClip确定,因此无法移动颈部或稍微移动它。
2.使动作易于编辑
一点点骨骼结构。我只是不想编辑AnimationClip,所以我将在FK的基础上略微覆盖动画运动。
第一步。
Aniamtion Rigging
使用Bone Renderer
组件查看SceneView上的骨骼结构。
通过拖放网格的骨骼结构(游戏变换时移动的游戏对象,由OptimizedGameObject隐藏的游戏对象)到BoneRenderer的Transforms上,可以在视觉上确认骨骼结构。它还使得更容易选择和编辑骨骼结构本身。
3.覆盖动画
- 右键单击AnimationTrack并
Add Override Track
选择 录制按钮
按开始录音- 在您想要移动的时间注册关键帧
4.限制被覆盖动画的范围
如果您在上述步骤中编辑了动画,则编辑的内容将从开头到结尾反映出来。这是不可取的,因为您只想在特定时刻覆盖。
因此,我们限制动画的范围,以便覆盖动画自然地导致现有动画。
Convert to clip track
在AnimationTrack中选择- 选择Converted AnimationClip
Ease in duration
和Ease out duration
大于0的值