为什么我认为使用blender一定会用到python

复杂动作

虽然 FCurve
已经提供了非常灵活的对 data_path
的操作,但是试想如果你有一个动画效果周期性波动并且每次波动增加
周期长度这种操作是没办法用鼠标精准做出来的。
blender 的动画是面向它系统内部的值,并不是相对于你想要的系统的值,例如说你只能操作一个对象在那些frame的大小是多少。但是你很难做到相对于两个移动物体的连线的垂直距离的远近来调整物体大小这样的功能。
这时候你会用到 Driver Function。

没有代码很难抽象整个动画系统成为单独的 Component (组件)

如果说 Shift + A 里面这些可以帮助你添加到场景内的 Mesh 都是一种组件。 那么他就太简单了。
试想如果你有 python 可以针对不同类型的需求去创建类似于可以灵活切换文字的 Show Panel 还可以让他自治的控制旋转速度,大小等。每次都手动做会很累, 所以你需要 Python Class 抽象 Blender Mesh component。
当你拥有组件之后,你可以很方便的使用抽象好的组件放到不同的 blender 工程中方便复用, 区别于 Duplicate 或者从一个 Blender 文件到另外一个, 它带有参数行具有一定的可自适应性。比如说根据周围组件的 Dimension 值来自动化调整自己的 Scale。
组件还有一个好处,你可以放到一个干净的blender工程中单独调试它,提升工作效率。

组件的另外一个好处就是抽象化, 当你的一个常用组件出现问题同一类问题可以一起修复。 例如说你设计了一种灯光,它有一个上级(Parent)的对象,并且整个对象可以 face to 某一类对象, 你有场景一百处使用了这种灯光, 如果用的是python你可以很容易的从 Custom Prop
这个工具中找到有问题的分类并且一起修复他们。 这样问题组件就算再久远,还是有机会去调整的。

animation(动画)调度器

试想你有对象拥有 Array Modifier 每个对象都完成同样的动作,但是他们完成的时间是不同的比如说他们完成的时间需要符合 y = ( x+2 ) ^ 2
其中 x [1,2]
你会发现你的动作完成实现是非线性的。这时候用鼠标是无法精确做出阿里的 。 这时候你就需要一个调度器来帮你完成这些函数的实现和具体的调度值设定。

最后

blender API设计的不错,文档也写的很好,社区内容丰富基本上你想找到的接口都可以找到。从社区情况上来看,有非常非常多的人是用python来创作他们的blender作品的。