Blender 弹出小球

简单建模、插值动画

Posted by Nino Lau on March 20, 2019

目标实现

在 Blender 2.8 beta中,实现一个盒子中的小球被盒子底部弹起,落到地面反弹(有形变),并最终平稳落下的过程。


实现关键

  • 缩放、位移和旋转:新建shift+A正方体经纬球,位移到合适地方;在Z轴缩放S+Z;旋转箱子一个角度R
  • 环切和挤出:箱子的构造一开始用到了环切,control+R进行切分,一个扁长方体切分成了9部分;挤出control+E除了中心块的8部分构造箱子。
  • 箱子形态键:物体模式下加入两个形态键BasisFinish,编辑模式下对Finish进行形变操作(此处把箱子中心部分挤出),设置value,然后右键设置关键帧。
  • 关键帧:位移起末点设置位移关键帧。
  • 曲线编辑器:用来控制小球运动的速度和加速度。
  • 小球形态键:采用同样的方式,用形态键关键帧的方法为小球制造弹起效果。
  • 材质纹理:为箱子和球创建材质,并对材质增加纹理。
  • 灯光:试了所有灯光,发现聚光灯最漂亮。

实现结果

  1. 聚光灯下,一个星空小球在空心磨砂纸盒中。
  • 为了让小球弹出箱子,箱子需要和地面有个夹角(箱子倾斜)。

  1. 星空小球随空心磨砂纸盒底板上升而弹出。
  • 箱底上升的过程显然有滑动。小球在顶面有顺着坡的滑动。

  1. 星空球经历自由落体运动。
  • 这里遵循牛顿第一第二定律,并且至高点有减速。

  1. 星空球落地产生形变(被压扁)。
  • 小球比较软,所以落地有形变。

  1. 星空球再次被弹起,只不过没有那么高了。
  • 弹性碰撞导致能量损失,弹射高度变矮。

  1. 星空球再次落下。
  • 因为不那么高,小球几乎不形变了。

  1. 再次稍稍弹动,旋转着落地(经纬球角度变化)。
  • 为了让弹动更加真实,小球还是会象征性的上升一点点。
  • 因为横向动能由摩擦损失(两次碰撞),弹动摩擦导致小球旋转,所以最后小球一定是转着停下的。


实验心得

  • 3-D 建模很考验方向感。
  • Blender快捷键之众多。
  • 形态帧快捷键之重要性(特殊性)。
  • 调整曲线编辑器和动画摄影表也可能会改变关键帧。
  • 透视物体和视图插件对精确作图的好处。

参考资料