嗨，歡迎來到"藝術家的腳本"
這是一個關於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
過一段時間後，就會變得非常無聊
在下一個視頻中見
再見