角色动画(Character Animation)的现状与趋势
逆向运动学(Inverse Kinematics)求解
一、个人需求
需求:
- 靠游戏手柄(用户)以虚拟人物的根轨迹trajectory来控制用户朝向,同时通过控制输入来合成出人难以做到的动作。
- 若缺少数据集,可以用强化学习来完成一些靠手柄来控制的动作如飞踢,还要可以完成用户指哪踢到哪的需求,而身体其他部位的动作靠动捕完成(可以考虑不同人物动作风格),即每一种语义必须由用户来决定。
- 考虑过插帧的方法,即用不同来源动作库、游戏控制、捕捉等来组合进行插帧,经讨论过后还是决定采用第二点。
现有问题:
动捕数据比较贵缺少大的数据集,并且已有的数据集比如人物动画目前动捕数据位移不完善,动捕是无法让角色在VR中无限行走,动捕也无法让用户完成飞跃等动作,这也是通过用户控制输入来合成动作完成的…
二、角色动画(Character Animation)的现状与趋势
- 状态机动画,工程量大、过渡容易失真,脚步打滑穿模等;
- Motion Matching,通过算法去选择动画的“状态”,需要大量动捕数据讲究匹配速度;
- 基于数据驱动的AI方法,PFNN等,引入深度学习由神经网络记忆动捕动画来预测下一帧的动画,训练时采用动捕数据片段的下一帧作为标签;
这一类被称为运动学动画(Kinematic-based Animation)
,主要都是Daniel Holden及他的师兄弟的工作。它的局限性在于所有的动画样本都是预设的(比如动捕录制),AI学的也是这些预设动作,在输出动画时AI并没有考虑虚拟的物理环境对角色的影响。 物理动画(Physics-based Animation)
物理动画驱动角色的方式和运动学动画的方式是完全不同的。对于运动学动画,我们直接对角色的姿态进行赋值,比如它的关节位置;而对于物理动画,我们则是像驱动机器人一样控制每一个关节的电机,由关节电机输出扭矩来改变关节的位置,同时这个过程严格受物理定律影响。
这块的开山之作是Xuebin Peng的DeepMimic,以一段动捕数据作为输入,然后用DRL训练得到一个控制策略,然后利用这个控制策略让模拟的agent在物理引擎中复现这个动作。DeepMimic提供了一套可扩展的的DRL框架来模仿学习不同的motion skill。
后续几年的大多工作基本都基于DeepMimic,这些工作大同小异,想法都是用一个基于kinematic-based的motion generator (PFNN等神经网络或者motion matching等传统技术)来生成refenece motion,然后用physical-based的方法来track这些reference motion。
1. 运动学动画
Phase-functioned neural networks for character control’17
所以当多个运动片段被插值合成一个新的运动时,通过调整混合权值可以构建一个平滑自然的大范围变化的运动。
如上图所示,粉色是前一帧中角色关节的位置和速度。黑色部分为下采样轨迹位置、方向和高度。黄色是角色的网格,使用系统输出的关节位置和旋转进行变形。
- 相位标签:
当脚着地时间得到了以后,把右脚刚着地时的相位phase标记为0,把左脚刚着地时的相位标记为π,把下次右脚着地的相位标记为2 π。 - 步态标签:
二值标签向量,表示不同场景中的8种不同运动风格,需要人工标记。
Neural State Machine for Character-Scene Interactions’19
- 动作标签:
每一帧数据都用一个当前和目标动作标签注释。比如“空闲”、“行走”、“运行”、“坐”、“打开”、“爬”或“携带”,或两个组合(“携带+闲置”、“携带+行走”),它们描述了当前帧的运动类型。通过使用目标标签作为目标参数G()的一部分来训练系统。 - 相位标签:
对于周期性运动,根据左/右/左脚着地时的相位定义为0、π和2π,中间的相位通过插值计算得到。对于像坐这样的非周期性运动,在转换开始和结束的坐标系中,相位被定义为0和2π,中间部分再次通过插值计算。
learned motion matching’20
右下图是用神经网络来预测下一帧的方法,其中用来代替数据库Motion Matching的网络可拆解为三个独特的神经网络P、S、D。
2. 物理学动画
DeepMimic: Example-Guided Deep Reinforcement Learning’18
总的来说,作者仅仅通过为人形动物提供不同的参考动作,就能够学习超过24种技能。
除了模仿动作捕捉之外,还可以训练人形执行一些额外的任务,例如踢随机放置的目标,或将球扔向目标。
在没有动捕数据的情况下。作者通过手动制作一些霸王龙的关键帧的动画,然后训练一个策略来模仿这些关键帧。
trick1:
参考状态初始化(Reference State Initialization,RSI)
RSI 通过将智能体初始化至从参考动作随机采样的状态,为它提供丰富的初始状态分布。(包括直接从半空中开始)
trick2:
提前终止(Early Termination,ET)
如果智能体在某个状态被困住了,不再可能成功学习到动作,那么该 episode 将提前终止,以避免继续模拟。
左:RSI+ET;中:无 RSI;右:无 ET
AMP: Adversarial Motion Priors for Stylized Physics-Based Character Control’21
- Unity笔记(5):Make Character Animation【2D】
目录 1.新建项目 2.导入资源 复习一下前两篇笔记: 3.搭建场景 4.控制角色移动 5.制作角色动画 发现问题: 解决问题: 1.新建项目 2.导入资源 Sunny Land | 2D Chara ...
- AE教程——2D角色动画设计(Science of Character Animation)
课程名称: AE教程--2D角色动画设计(Science of Character Animation) 课程简介: 学习如何从零开始创造生动而有魅力的角色,并自己导演有趣的动画场景.在本课程中,马库 ...
- After Effects Guru: Character Animator After Effects 大师教程之角色动画 Lynda课程中文字幕
After Effects Guru: Character Animator 中文字幕 After Effects 大师教程之角色动画 中文字幕After Effects Guru: Characte ...
- 试用《Cascadeur》:一款基于物理的角色动画软件
<Cascadeur>的特殊之处 最直接的调整角色姿势的方式是:旋转关节,让角色达到想要的姿势 稍微"高级"的方式:是使用"IK(反向运动学)",指 ...
- Unity3d动画脚本 Animation Scripting(深入了解游戏引擎中的动画处理原理--旧的动画系统)
(来自:http://blog.sina.com.cn/s/blog_409cc4b00100qmgz.html) 也许这一篇文章的内容有点枯燥,但我要说的是如果你想深入的了解游戏引擎是如何处理动画片 ...
- Unity3d动画脚本 Animation Scripting
Unity3d动画脚本 Animation Scripting(深入了解游戏引擎中的动画处理原理) 也许这一篇文章的内容有点枯燥,但我要说的是如果你想深入的了解游戏引擎是如何处理动画片断或者素材并 让 ...
- 《强化学习周刊》第39期:近似最优深度、多智能体广义、角色动画强化学习
文章转载|智源社区 本期贡献者|李明.刘青.小胖 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和资讯,智源社区结合领域内容 ...
- D3D角色动画学习笔记(一)——角色动画简介与初步规划
D3D角色动画学习笔记(一)--角色动画简介与初步规划 写这个系列是基于自己学习角色动画之后,相对自己的成果做一个整理,还可以给大家做一个角色动画的预览,可能会节省大家的一点时间,同时也希望各位大神能 ...
- 【建议收藏】找不到免费的角色动画?来试试mixamo
你好,我是你的技术探路者郑洪智,你可以叫我大智. 今天给你分享我的一个秘密武器. 很多童鞋问我,我自己做游戏,从哪搞角色和动画啊?Asset Store负担不起,各种网站上的资源质量参差不齐,耗费了很 ...
最新文章
- Python的pycurl库升级升级失败的解决方法
- 【upc 9523】Shopping II
- arp 不同网段 相同vlan_同vlan不同网段能否ping通?
- 《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)--宋宝华...
- 游戏王怪兽胶囊Android,游戏王怪兽胶囊GB是什么?
- 阿里巴巴JAVA开发手册最新版pdf
- 数据中心机房搬迁实施方案流程
- C++学习第九课--类的成员函数、对象复制与私有成员笔记
- 路飞学城Python-Day1
- 身体质量指数(Body Mass Index,BMI)是根据人的体重和身高计算得出的一个数字,BMI对大多数人来说,是相当可靠的身体肥胖指标,其计算公式为:,其中体重单位为公斤,身高单位为米。编写程序
- 说说DBA职责和目标
- 阿里1688产品图片和视频资料下载
- (翻译自用)TG^2———IJDAR杂志论文
- 优秀WordPress版微信小程序推荐(二)
- 如何打包浏览器的扩展程序
- 微信辅助注册平台源码
- PCA降维方法及在ATT人脸数据集的应用实例
- 2021-10-02
- WIN7系统忘记密码怎么办?忘记开机密码的解决方法
- Lambda表达式_Stream流_File类
热门文章
- 量子计算机多可怕,量子力学有多可怕?
- 图片太普通,教你轻松制作画中画特效
- 170929 逆向-Reversing.kr(Ransomware)
- composer出现Invalid credentials for ‘https://packagist.phpcomposer.com/packages.json’的错误
- 小菜鸟学浏览器之感悟
- 11个销售心理学方法,帮你搞定客户!
- 策略模式、工厂模式、装饰者模式总结解析
- winscp 同步_使用WinSCP进行简单代码文件同步
- 阿昆同学的Java学习日记Day5
- Adobe Acrobat XI Pro闪退问题解决办法