【cn-stem】使用Blender的driver功能做动画。

in #steempress5 years ago (edited)

blender UI

图一:blender用户界面,本人电脑上的截图,以下均是。

上个星期发的《如何直观地理解欧拉恒等式的含义》一文中用动画演示了虚数指数函数是如何将纵轴(虚数轴)上的平移变换映射成旋转变换,如下图:

animation

图2:虚数指数的意义以及欧拉恒等式的直观表达 作者:cheva 版权:CC0

这个动画是用免费的开源CG软件Blender制作的,这里先打个广告,blender虽然是个开源软件。但是功能一点不比商业软件差,只要你能力足够强,完全可以用它作出电影级的CG。我们这种说明数学概念的小动画,自然不在话下。大家感兴趣可以到官网www.blender.org免费下载学习。学习资源在YouTube上就有很多,也是免费的。

言归正传,制作动画是blender的主要功能之一,除了像一般动画软件那样通过设置关键帧来制作动画,blender还可以利用driver功能非常方便的制作出复杂的动画。driver顾名思义就是驱动的意思。driver动画就是用一个参数去驱动另一个参数。而在blender中几乎所有的性质都是用参数表达的,比如物体的大小,朝向,颜色,亮度。。。这种特性很容易和数学中的函数映射联系在一起,所以我们的演示动画用driver来实现再合适不过。我们要做的就是用红色小方块的Z轴的位移去驱动圆圈的旋转:

设置过程如下:

1.右键点击选择圆圈。

2.在右侧属性栏上右键点击rotation Y,在弹出菜单上选Add Drivers→Single from Target

drivers

3.打开Graph Editor 将模式切换为Drivers,右侧有Drivers选项卡,选项卡分上下两部,下半部分是驱动来源,可以理解为函数的自变量,就像函数一样,要设置一个变量名,默认的是var(即variable 的简写)object就是驱动物体,这里我们选择用方块在Z轴的坐标去驱动圆圈旋转。

4.设定好驱动源即函数的自变量之后,我们需要设定函数表达式了,就在Drivers选项卡的上方。将自变量名var填写进去之后,在场景中沿Z轴移动方块,会发现圆圈会随之转动,但是转动角度并不是我们想要的,这时和以将自变量var乘上一个参数,调整旋转角度与方块位移的关系,我不是很清楚blender里面的旋转是如何定义的,似乎既不是角度也不是弧度,于是我采用不断试验的方法,最终确定将var乘上-1939.5可以实现当方块移动到i时,圆圈正好转动180度。

driver setting

最后,有一点小提示,如果Drivers不能运行,可以到User Preference菜单下面的File选项 勾选Auto Run Python Scripts.

security setting


Posted from my blog with SteemPress : https://darwincheva.000webhostapp.com/2019/04/%e3%80%90cn-stem%e3%80%91%e4%bd%bf%e7%94%a8blender%e7%9a%84driver%e5%8a%9f%e8%83%bd%e5%81%9a%e5%8a%a8%e7%94%bb%e3%80%82


Sort:  

你那里天气如何?欢迎在steemauto里设置跟赞 @cnbuddy 给整个cn区点赞倘若你想让我隐形,请回复“取消”。



This post has been voted on by the SteemSTEM curation team and voting trail. It is elligible for support from @curie.

If you appreciate the work we are doing, then consider supporting our witness stem.witness. Additional witness support to the curie witness would be appreciated as well.

For additional information please join us on the SteemSTEM discord and to get to know the rest of the community!

Please consider setting @steemstem as a beneficiary to your post to get a stronger support.

Please consider using the steemstem.io app to get a stronger support.

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.033
BTC 63855.79
ETH 3113.00
USDT 1.00
SBD 4.04