Games104现代游戏引擎学习笔记09

Animation Blending
两个动画衔接

Math of blending:LERP:线性插值
在两个动画之间取关键帧插值
weight1+weight2等于1
在这里插入图片描述
两个动画必须都是循环的,归一化之后能一致在这里插入图片描述
Blend Space
在采用空间里的所有动画(clips),必须保持一致循环性,要么都循环,要么都不循环
在这里插入图片描述
混合空间的采样点分布是不均匀的,如果在某个地方需要更细腻的表达,可以在对应地方增加一个clips
在这里插入图片描述
并非采用全部的clips,根据划分的三角形。通过重心坐标,在邻近的三个顶点插值
在这里插入图片描述
有些动画只应用到上半身,有些动画只应用到下半身。如此自由的组合各种上下半身的动画pose

在这里插入图片描述
只存动画的变化量,不存绝对量。无论如何改变skeleton,再改变的基础上应用变化量。

三种blending:
线性Lerp Blending:全身
Mask Blengding:局部
Additive Blending:blending做完后,加上的修饰的差分量

状态机:
在这里插入图片描述
frozen模式会先将动画1停住,再让动画2进来
在这里插入图片描述
多层状态机,不同的状态机控制模型的不同部位
在这里插入图片描述
Animation Blend Tree:动画树
在这里插入图片描述
线性插值节点:对每个clips单独输入权重
在这里插入图片描述
动画树的核心:定义控制变量,暴露给gameplay系统。(例如速度,朝向,是否受到攻击。。。)
控制变量会改变动画树的混合行为

控制:1.各种环境参数(速度,血量。。。) 2.事件。当event发生时会修改掉一些动画树内部的标记(类的私有变量)(切换武器)
在这里插入图片描述
一般动画,是从根节点往前一层层传递驱动

反向动力学:有约束条件的反向解,例如手抓住一个点。
End-effector:末端效果器。
在这里插入图片描述
例如:移动时踩的非平地,有各种凹凸,希望保持脚始终踩在地上。会有两个Bones IK,模型的小腿和大腿,确定三角形的两条边,踩的目标点位置确定,可以算出距离根节点的位置(第三条边)。确定唯一的三角形。算出大腿和小腿迈出的角度
在这里插入图片描述
最后需要一个reference vector,确定方向。否则三角形360度旋转都是正确解
在这里插入图片描述
不同的IK
在这里插入图片描述
长链IK有多种解
在这里插入图片描述
判断骨骼能否到达目标点。1:所有骨骼拉长,向外判断target,2:选出最长的骨骼,其余向内,判断向内target
在这里插入图片描述
每个骨骼活动的范围也有限制
在这里插入图片描述
CCD算法
在这里插入图片描述
CCD优化
在这里插入图片描述
在这里插入图片描述
FABRIK
在这里插入图片描述
Retarget
源角色和目标角色,源动画和目标动画
骨骼一一对应。
传递骨骼变化的相对量
平移,缩放根据骨骼长度等比例变化
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Mhypnos/article/details/130736262