游戏中动画的实现有很多不同方法,帧动画、骨骼动画、基于物理的动画、基于Shader的动画、粒子等。

在这篇文章中,列出了我最近读到过的不同种类动画入门级的文章、视频。关于Unity动画状态机这一类太常见的,这里不再赘述。

所分享的内容都亲自品尝,保证无毒无害,营养价值极高!在互联网上我们缺少的不是内容,而是索引。

1. 基于物理的动画

与其他的动画相比,基于物理动画最大的好处是交互时更真实。


  • 《Verlet Integration(Verlet积分)》

这篇文章非常详细的介绍了Verlet Integration,基本不需要什么数学基础。并且有大量示例直接在浏览器运行。最后两个示例可以说非常酷炫了。

一个示例是rag-doll(布娃娃)。虽说这里只是2D模型,很多AAA游戏中,尸体也是用类似的方法在3D中模拟的。

另一个示例是Fabric(布)。


用上面学到的Verlet Integration或者别的方法,可以简单的实现Spring(弹簧)的效果。利用Spring,可以实现头发、丝带、裙子等真实物理效果。这里提供两种效果抛砖引玉。

  • 《Creating Dynamic 2D Water Effects in Unity(在Unity中创建动态的2D水面效果)》
  • 《Interactive 2D Foliage(可交互的2D植物)》

第一篇文章更加具体,从如何写Mesh讲起,第二篇只讲了大体思想。如果觉得第一篇中的Mesh编程还不够入门,推荐**《Unity实现欢乐球球(上)Mesh生成》**。

第二篇文章的作者也写过Spring实现2D水面的文章,仍然非常简洁,感兴趣也可以看一看:

  • 《Modeling 2D Water with Springs: Part 1(用弹簧建模2D水面1)》
  • 《Modeling 2D Water with Springs: Part 2(用弹簧建模2D水面2)》

2. 骨骼动画

我本身3D动画实践得非常少,而且传统骨骼动画值得阅读的材料非常容易找,这里不再推荐。


Unity有一个免费的插件叫做Anima2D,提供了非常好的2D动画开发流程。其中的一些原理与3D动画是相同的(例如骨骼、IK等)。一套基本使用教程:

  • 《Anima 2D Basics (EP.1) Tutorial - Setting up Project and Sprites》(视频)
  • 《Anima 2D Basics (EP.2) Tutorial - Setting up Meshes and Character》(视频)
  • 《Anima 2D Basics (EP.3) Tutorial - Setting up Bones and IK》(视频)

提到骨骼动画,有一个不得不提的东西,就是Inverse Kinematics(IK)。如果对其原理感兴趣推荐几篇博文:

  • 《An Introduction to Procedural Animations》
  • 《The Mathematics of Forward Kinematics》
  • 《Implementing Forward Kinematics》
  • 《An Introduction to Gradient Descent》
  • 《Inverse Kinematics for Robotic Arms》
  • 《Inverse Kinematics for Tentacles》

又是Alan Zucconi的博文,这位老哥每次都写得具体、全面。这一系列中为了避免通过数学推导求解IK,直接使用Gradient Descent(梯度下降)求解,如果了解过机器学习的话,应该不陌生。

但梯度下降是个迭代算法,效率比较低。之后他又写过在只有两个自由度下2D机械臂IK的数学推导:

  • 《Inverse Kinematics in 2D – Part 1》
  • 《Inverse Kinematics in 2D – Part 2》

3.物理与骨骼动画的结合

前面基于物理的动画中已经提到了Ragdoll、Spring。基于物理的动画和帧动画、骨骼动画各有优劣,很多时候能够组合在一起。


Unity中,Springs与骨骼动画的结合:

  • 《Anima2D Spring Bones Tutorial (EP 1) - Setting up base bones》(视频)
  • 《Anima2D Spring Bones Tutorial (EP 2) - Converting Bones to Spring Bones》(视频)

仍然是Anima2D,只是使用了有Spring特性的特殊骨骼。下面的头发就是使用这种骨骼完成的。


EA的一些体育游戏中,Ragdoll与骨骼动画结合:

  • 《physics driven Ragdolls and Animation at EA: from sports to start wars》(PPT)

这是18年GDC的一个talk,可惜youtube上还没有对应视频。

4. 粒子

使用粒子,能够实现技能特效、火焰、天气等效果。


  • 《Particles 102 - Intro to Particle Systems》(视频)

这是我见过最好的Unity粒子系统入门的视频。

5. 其他


  • 《GDC-Animation Bootcamp: An Indie Approach to Procedural Animation》(视频)

在动画资源非常少的情况下,将IK、Ragdolls等方法发挥到极致来做出非常好的游戏动画。很有乐趣的一个分享。


  • 《GDC-Motion Matching, The Future of Games Animation》(视频)

Motion Matching是比较现代化的游戏动画技术,在《For Honor》、《The Last of Us Part II》等游戏中已经使用。但由于他要求捕捉一套完备的动画,在很多种类的动作中仍然是不可行的。在《For Honor》中,也几乎只应用在了脚部动作。

【游戏开发阅读列表2】动画(Anima2D、粒子、物理等)相关推荐

  1. 【Visual C++】游戏开发笔记之八——基础动画显示(二)游戏循环的使用

    在笔记七中我们讲解了用定时器来产生动画的效果.定时器的使用固然简单方便,但是事实上这样的方法仅适合用在显示简易动画及小型的游戏程序中.因为一般而言,游戏本身需要显示顺畅的游戏画面,使玩家感觉不到延迟的 ...

  2. 【Visual C++】游戏开发五十三 骨骼动画学习资料推荐打包下载

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8865942 作者:毛星云(浅墨 ...

  3. 不容错过的超棒游戏开发资源列表

    #原创 iOS HTML5游戏 申请达人,去除赞助商链接 开发工具 一套游戏开发工具,来自一些天才的开发者 Magic Tools Graphics Assets/Placeholders 2D To ...

  4. Unity3D游戏开发之使用Mecanim动画系统控制2D动画

    各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是http://blog.csdn.net/qinyuanpei.博主今天想和大家分享的是在Unity3D中使用Mecanim动画系统来 ...

  5. 《UE4游戏开发》之 《动画与特效、声音配合的方式》

    直接通过ue4的动画编辑器中,添加通知 骨骼通知,可以在动画蓝图中实现,添加通知时,ue4会自动创建对应的通知事件 声音通知,可以直接指定声音资源 通过逻辑控制,在代码里手动控制动画与声音 可加通知类 ...

  6. 【游戏开发实战】Unity使用ParticleSystem粒子系统模拟药水在血管中流动(粒子碰撞)

    文章目录 一.前言 二.最终效果 三.制作过程 1.导入血管模型 2.血管Shader 3.血管材质球 4.添加碰撞体 5.药水粒子 四.测试效果 五.结束语 一.前言 点关注不迷路,持续输出Unit ...

  7. 游戏开发基础笔记:逻辑帧和物理帧辨析 | Gameloop | 游戏循环

    显卡帧,物理帧(渲染帧),逻辑帧(轮)辨析 首先显卡帧是指显卡接口输出的采样时间,这个理论采样时间无限短?但是由于物理信道线材的限制,传输是带通/低通信道,所以实际受限于接口和线材的带宽,所以才有 3 ...

  8. unity 2D游戏开发 制作帧动画的两种方法

    本小主在这里给大家分享一下unity 2D游戏开发中制作帧动画的两种方法. 比较简单,一学即会. 方法一: 是用代码控制: 先创建一个2D工程.导入图片资源,并设置texture的texture ty ...

  9. 《Unity 2D与3D手机游戏开发实战》简介

    #好书推荐##好书奇遇季#<Unity 2D与3D手机游戏开发实战>,京东当当天猫都有发售.彩色印制,定价89元,网店打折销售更便宜.本书配套源码.PPT课件,适合Unity游戏开发初学者 ...

最新文章

  1. py3提取json指定内容_python3 取页面指定数据(json)
  2. BGP基本实验拓扑图--《献给学习的人》
  3. Nodejs介绍及其安装
  4. 2018年11月份GitHub上最热门的开源项目
  5. ABAP:向自建表写入数据时,需要注意的问题
  6. 10行代码让你轻松搞定对象检测
  7. 网站备案靠谱吗_网站外包靠谱吗目前都是什么价位
  8. 现代ups电源及电路图集_不间断电源维修,服务靠谱
  9. 完善的IaaS云服务的个人理解
  10. python如何处理文本文件_python如何选择合适的异常处理方式?
  11. 生物信息学数据库分类概览
  12. 互联网大厂知识点整理
  13. 网络工程师(软考中级-华为认证)
  14. java 获取当前时间是第几周
  15. 数据链路层的成帧方法
  16. Python将普通视频变成动漫视频,这就是知识的力量~
  17. 数据服务门槛再提升,这个“TOP1玩家”凭何再度领军?
  18. 截图工具snipaste安装和使用
  19. 猜数字小游戏(JAVA)
  20. 往日不忆,来日可追-你好,2019!

热门文章

  1. ros中关于ros::Rate 和ros::spin()等的理解
  2. 期货近远月价差的含义(期货远月比近月价格高)
  3. 开发日志_Jan.6.2017
  4. 还说Facebook创始人扎克伯格开飞度?这回被打脸了
  5. 关于STM32F103 TIM2重映射
  6. 【Lua从青铜到王者基础篇】第一篇:Lua初始教程和环境安装
  7. linux etc fstab 重启,如何重新挂载/etc/fstab而无须重启
  8. 树莓派:10行代码体验红外检测
  9. 以小25倍参数量媲美GPT-3的检索增强自回归语言模型:RETRO
  10. 【华为 AC+AP】