您好,登錄后才能下訂單哦!
小編給大家分享一下BlenderPython中bpy模塊有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
簡介
bpy全稱Blender Python API,是blender使用python與系統執行數據交換和功能調用的接口模塊。通過調用這個模塊的函數,一般來說可以實現以下功能(下面的功能說明摘自《Blender權威指南》11.2.1部分):
代替界面操作去完成對物體的修改,例如修改網格屬性或添加修改器。
自定義系統的相關配置,例如重設快捷鍵或修改主題的色彩。
自定義工具的參數配置,例如自定義雕刻筆刷的參數。
自定義用戶界面,例如修改面板的外觀和按鈕的排列效果。
創建新的工具,例如Surface Sketching(表面繪制)工具。
創建交互式工具,例如游戲的邏輯腳本。
創建與外置渲染器的接口調用,例如配置Vray等外置渲染器。
從定義Blender的數據結構。
同時在Blender的界面中,為python腳本書寫提供了非常人性的功能,把鼠標放在某個控件(按鈕、輸入框)上一段時間,系統就會提示相應的python接口代碼,如把鼠標放在Render
按鈕上,提示如下圖:
當然上面的提示比較簡單,僅僅是函數的提示,如果想獲得詳細的提示,再該控件上右鍵,顯示如下圖,然后點擊Online Manual
或者Online Python Reference
即可進入該控件相應官方的API文檔界面。(Edit Source
還提供了修改該控件系統代碼的功能,不過一般應該用不到。)
blender界面上所有可使用調節的對象內容(包括mesh模型、lamp燈光、camera攝像機,material材質等)都在python中以特定的類型存儲起來,在控制臺輸入bpy.types.class_name
就可以查看相應的類別(bpy.types
里面存了特別多的類型),同時對這些對象的在界面上的修改操作也對應這些類型屬性的修改,這樣就把界面操作和python腳本操作對應起來了。
當然使用bpy.data
子模型可以訪問在界面出現的對象(對個對象是以collection
方式存儲)
訪問對象列表
bpy.data.objects #訪問場景內普通對象列表,包括lamp、camera以及mesh模型的bpy.data.scenes #訪問場景列表bpy.data.materials #訪問材質對象列表
訪問具體的對象,可以通過bpy.data.objects[name/id]
,很明顯通過使用對象的名稱(使用自動補全會提示對象名稱)或者在列表中的id來獲取這個對象(對scenes和materials列表訪問同理),如下
bpy.data.objects['Camera'] #訪問名為`Camera`的攝像機對象bpy.data.objects[1] #訪問列表中的第一個對象
訪問對象的屬性,可以通過點方法進行調用,一般使用自動補全會提示可以使用的屬性。
bpy.data.objects['Camera'].name #訪問對象名稱bpy.data.objects['Camera'].location #訪問對象的位置
bpy.ops
子模塊提供了很多內置的Operator
(操作符),這些操作符既可以在控制臺中使用,也可以被集成到界面中由按鈕操作來完成(這里只關注python腳本的使用)。在我看來這些操作符就是類似其他語言中聲明的工具函數,可以通過bpy.ops.ops_name(parameters)
傳入相應的參數來直接進行調用(一般的程序員同學都應該會吧)。當然和工具函數一樣,也可以定義自己的操作符,注冊到系統中,就可以像內置的操作符一樣使用了。
具體的操作這里面就不講究了(方法太多),如果要使用其中對應的請查看相應的api。
context(正文)是blender數據管理中的一個全局變量集合,它包含了目前被選擇的和激活的(物體的兩種屬性狀態)的物體的信息,還記錄了當前物體的編輯模式(data中沒有這方面的信息)。當然使用context對物體對象的訪問以及屬性的操作和data子模塊中相似。
bpy.context.selected_objects #訪問選擇上的對象列表,明顯看出可以同時選擇多個對象bpy.context.active_object #訪問目前激活的對象,激活的對象在某一時刻只有一個,或者沒有(激活對象這個功能主要是因為很多的屬性操作和變換都是對激活對象進行操作的)
以上是“BlenderPython中bpy模塊有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。