嗨，欢迎来到"艺术家的脚本"
这是一个关于Blender脚本的系列视频教程
它针对的是那些不一定想成为进程员的人
但对他们来说，脚本可能是有所帮助的
而且它可以在很多事情上都很有用
我们很快就会看到
在我们开始之前，让我先介绍一下我自己
我的名字是Subren Stuvel
我是一名核心Blender开发者
我曾在Blender研究所工作过
我有在艺术家身边工作的经验
我曾在Blender Cloud本身工作过
也曾在Flamenco做过tractor
我还有一个计算机动画专业的博士学位
期间我在Blender游戏引擎上工作过
之后，我开始在Blender研究所这里工作
这个系列的内容是关于Blender的脚本编写
基本上就是让Blender自己按按钮
如果你曾做过任何需要大量点击
和大量重复的“猴子”工作
这可能是可以帮助到你的系列教程
脚本编写的例子会很有用
我们对骨骼或对象进行批量命名
或者在某个目录下喧染10000个OBJ文档
有一点要记住的是，计算机是愚蠢的
他们只会按照要求去做
一行一行，一个字一个字地去做
而不会真正去思考你的意思
所以说，一定要谨记字面意思，这是很好的
那麽这个系列的介绍就到这里了
我们先去用Blender本身做一些实用的东西
然后就可以用Python来编程了
那是一门相当不错的语言，读起来相当容易理解
而且，它还可以让你在交互式地玩弄它
所以，让我们深入到Blenders的"python控制台"中
在我切换完之后，就是这样子了
所以这里是默认的启动文档
我们可以把时间线换成Python控制台
因为我们现在不需要时间线
我们来做一些计算，3×4=12，2加3×4=14
因为乘法和除法都是先于加法和减法
所以如果要先做加法，就要用小括号，(2加3)×4=20
我们去看看能不能对那个默认的立方体做一下
如果我们在3D窗口中按N键
可以看到x y z的位置
让我们把它移到别的地方去
所以如果把鼠标悬停在位置输入框上
可以看到Python信息
bpy.data.objects.cube.location.0
这基本上是指从Blender界面的点得到物体的数据
有对象，从这些对象中，我要有cube
cube有一个位置，而位置有几个分量
X是分量0，Y是分量1，Z是分量2
我们可以把它复制到我们的Blender Python控制台中
bpy.data.objects["Cube"]，location[0]
这样就可以得到X的位置
而location 1就可以得到Y的位置，当然2就可以得到Z
另外，你也可以用字母来表示
所以实际上有一个".X"，做同样的事情
我比较喜欢那些稍微有点好的名字
如果你只给它们取名X Y和Z
会让你的脚本更容易读懂一点
这并不局限于读取，我们还可以写到它
所以我们可以把".Z"设置为0
然后cube会回到0点，或1，或者加=，表示增量
增量0.1，我们就可以继续使用
我在控制台按下向上箭头键，它给出了前面的命令
然后按回车键，这样就不用再用手输入所有的内容了
我们还可以直接指定位置
而不是单独指定每个组件
通过删除最后一个组件
然后在括号里给它分配三个数字
比如象这样，然后我们同时设置X Y Z
这对Scale也是有效的
对Rotation也是如此
只是在 Python 的方面，旋转总是与 Radiance 一起工作
而不是与你在 UI 中可能看到的 Degrees 一起工作
所以这可能需要一点时间来适应
还有一件事可能会让事情更容易打字
那就是Python控制台支持自动完成
所以你可以先输入bpy.da
然后按Ctrl加Space，自动补全data
再输入.ob，ctrl加空格，补全object，["Cube"]你要自己打
但是.ro，ctrl加空格补全後再来个euler
所以这个是用Ctrl加空格完成的，可以很好用
也可以帮你搞清楚有什麽东西要打字
所以这里就有一整张清单了
顺便说一下，你可以在文档中找到
如果你去帮助，然后Python API 参考
你就会得到所有这些信息
但我们稍后会讲到这一点
让我们来看看其他一些东西
我们可以在Blender用户手册中找到关于Python的信息
我们已经看到了现有对象的这些属性
让我们看看我们是否可以删除或许创建一些新的对象
这是用operators来完成的
operators是Blender将某些功能
绑定到界面中的菜单项或按钮的方式
所以我们可以做的就是将鼠标悬停在Button上
然后你就会看到operators命令
你甚至不需要记住它
你只需按Ctrl加C键复制
然后按Ctrl加V键粘贴到控制台，就可以了
所以，现在我们已经删除了一个对象
我们来看看创建一个对象
你按Shift加A
然后在一个操作项上悬停鼠标
你看到bpy.ops.mesh.primitive_uv_sphere_add()
那麽再按Ctrl加C
然后在控制台中按Ctrl加V键，输入，就有了你的球体
这个有点无聊，是默认的
让我们来看看能不能做一些事情
不要害怕
如果你还不了解这些选项，我稍后会给你一些数据
你可以在这里找到它们的具体作用
那麽，让我们在(1，2，3)的位置
创建一个大小等于0.10的小球
在那里，你有一个非常小的球体
让我们在不同的位置创建一个大一点的球体
就这麽简单
我们已经在Blenders用户手册中找到了不少信息
但也有Blenders的API文档
你可以在这里找到Blender，Python API参考
它为你打开浏览器的信息
你可以再用那个复制粘贴的技巧
所以我们来看看，Shift加A，mesh UV sphere，Ctrl加C
然后我到浏览器里，在快速搜索里粘贴进去
点击第一个链接，在那里就有什麽是什麽的解释了
另一个不错的信息来源是Python标准库
那麽到当前为止，我们看到了什麽？
我们知道计算机很笨，只是把命令一个个做出来
我们已经看到了如何使用Python控制台
以及如何创建对象、移动对象和修改现有对象
我们已经看到了如何从Blenders用户界面复制信息的方法
而且它还指向了一些信息来源
你可以在这里找到更多的东西
所以，在下一个视频中，我们将看看名称和对象
因为输入
bpy.data.objects.cube.something.something.something
过一段时间後，就会变得非常无聊
在下一个视频中见
再见