实现小球弹动的动画效果:
- 建模(Model something)
- 材质(Create materials)
- 光照 (Add lighting)&& 摄像机(Camera)
- 动画(Animation)
建模:
根据要求共需要如下四个模型:
- 圆形小球
- 我使用的是棱角球(不用经纬球的原因是经纬球的软体碰撞效果很差,会穿过平面)。
- 然后在编辑模式下对棱角球进行细分处理,选择切割次数为10,平滑度为1.0。
- 给小球添加物理属性为软体,设置其边的弯曲,并在设置中调大它的硬度和阻尼(否则小球碰撞会像一滩泥一样)。
- 正方体弹板
- 因为制作动画,通过编辑模式让弹板在正方体内部移动不太方便,于是将弹板单独隔离出来做为一个物体。
- 给弹板添加的物理属性为碰撞。在弹板弹出小球的过程中模拟真实场景小球会发生弹性形变然后弹出正方体内。
- 正方体
- 在编辑模式下删除其底部面和顶部面,然后使其侧向摆放便于小球抛物线弹出。
- 底部平板
- 底部平板存在的意义是为了让小球碰撞弹起,这是模拟真实的地板。
- 给其添加的物理属性为碰撞。
PS: 总结以上的难点在于如何真实的模拟小球反弹过程,虽然一帧一帧地去动画插值也能实现,但是毕竟不灵敏,所以采取了各种物理材质以及调节参数来尝试。关键就是底部和地面要添加碰撞属性,小球采取棱角球并细分处理成球体而不要用经纬球添加软体属性并设置硬度与阻尼系数。
实现的效果如下:
材质:
材质采用着色器的方式添加,也就是shader editor,着色器真的真的很好用!计图学习过用它来建模的原理,所以用起来也算比较顺手。
其中分别为木箱添加箱子的纹理材质,为小球添加棋盘格纹理并设置金属属性,将其模拟成足球的样子。在为地板添加砖墙纹理属性。
最后再为背景添加世界环境,也是通过添加着色器的方式设置一个草地的世界环境。
PS:至此我们的建模基本完成,效果如下:
光照&&摄像机
这个的添加比较简单,我在图中设置了两个光源一处是自带的点光另一个是我自己添加的spot光源,然后调整光的能量颜色半径高光等设置合适的光照。
摄像机是关乎我们渲染出的动画的视角,我通过调整它的位置,角度等设置了一个舒服的视角。
PS: 至此我们以及完成了静态的渲染,之后就可以进行制作动画的操作了,效果如下:
动画:
通过使用曲线编辑器配合关键帧插值动画来实现小球的整个动画过程。关键帧插值可调整曲线的插值方式(二次函数反弹等),曲线编辑器则可以通过拖动锚点来设置球的运动轨迹,使用如下: