【GAMES104】总结

Lecture 09

reference

PPT

Animation Blending 动作融合

在这里插入图片描述
不同的动作通过LERP进行插值。

Blend Space

包括1D的和2D的。
在这里插入图片描述
在这里插入图片描述
但是动画素材在采样空间(Blend Space)上的分布其实是不均匀的,比如侧向走到侧向跑,其实很快就进入到跑步的一个过程里去了。所以为了更真实的表达,会加入很多动画,但是在计算的时候,好多一起做blend,代价会比较大,所以用Delaunay三角空间。
在这里插入图片描述
每次做Blend时候,选择临近的三个节点做重心坐标。

Skeleton Masked Blending

在这里插入图片描述
在引擎(Unity)里面做类似这样的效果,就可以在Blend Tree处多加几个Layer,每个Layer控制不同的部位,做出对应的动作。

Additive Blending

在原有的Animation Clip里引入新的动作,生成不同的动作,就叫Additive Blending;可能会带来意想不到的错误,所以尽量少用。

Animation State Machine (ASM)

有了动画之间的融合Blending之后,不同的动画片段该怎么控制呢?
比如对于起跳而言,我们一般是拆成三步来做,分别是“起跳——在空中——着地”,对于有多个状态连起来构成的动作,我们用动画机来做。

ASM的定义

ASM包括nodes和transitions。nodes包括Blend Space,即融合动作的空间,和动画片段;transition包括出入节点、持续时间和曲线。

Fades

动画之间的fade可以是smooth的,也可以是frozen的。比如跑步起跳,可以是跑步的贡献越来越少,逐渐跳起,也可以是站住不动,起跳的。
在这里插入图片描述

Animation Blend Tree(动画树)

结构化的、分layer的ASMs和操作。类似表达式树:
在这里插入图片描述
动画树里的非叶子节点,是通过子节点运算、插值得到的。
在这里插入图片描述

Inverse Kinematics(IK)

在这里插入图片描述
比如在地面上走路,没有IK就只能穿模行走。

Two Bones IK

在这里插入图片描述
在这里插入图片描述
但是IK可能得到很多结果,通过一个参考向量。如下是通过参考向量得到平面,确定了唯一的位姿。
在这里插入图片描述

IK的问题

IK还有很多问题亟需解决。
在这里插入图片描述

在这里插入图片描述
IK的问题有很多,其中最首先可以解决的是,判断一个物体够不够得到。
在这里插入图片描述
人类的骨骼是很复杂的。
在这里插入图片描述

IK的优化

CCD (Cyclic Coordinate Decent)

FABRIC (Forward And Backward Reaching Inverse Kinematics)

Jacobian Matrix

Other IK Solution

在这里插入图片描述

IK is still chanllenge

在做IK的时候,是把骨骼当成理想线,但实际上加上蒙皮之后,模型应该是有厚度的,这点需要考虑进去;
还要就是IK在运动的时候,引入预测,即预先知道要做什么,身体做出反馈;在很多游戏里其实是基于距离的检测,比如当玩家靠近山洞的时候,半弯腰。

Facial Animation

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Key Pose Blending

在这里插入图片描述
在这里插入图片描述

FACS In Morph Target Animation

引入Morph,存放不同的面部表情中,相对于标准脸的顶点的偏移。
在这里插入图片描述

UV Texture Facial Animation

在这里插入图片描述
使用一系列的2D纹理呈现面部表情。

基于真实面部肌肉的表情模拟

在这里插入图片描述

Animation Retargeting

动画重映射:在不同角色间共享动画。
忽视了不同角色本身骨骼的不同,保存的是每个骨骼相互之间的偏移量,所以原本驼背的角色不会因为用了笔直的角色的动画而变得笔直。
动画重映射还有问题是角色体型、服装可能会导致穿模,且有些动作的语义(比如拍手)不能完美复刻。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值