blender2.8用集合替換之前版本的圖層功能,python腳本代碼更新

2021-01-04 blender幫

在場景添加一個blender吉祥物猴頭

obj=bpy.data.objects['Suzanne']

blender2.8版本之後,集合取代了原來的圖層功能,成為新加對象的管理區。

以前2.7版本運行代碼如下:

bpy.context.scene.objects.link(obj)

用在2.8版本就會報錯# (2.7) Links object to active scene

在blender 2.8 中,等效功能是將對象添加到場景中使用的集合,或將它們直接添加到附加到場景本身的主集合中

bpy.context.scene.collection.objects.link(obj) # (2.8) Links object to scene master collection

當然,你可以使用適當的代碼 if hasattr(context, "collections")使其仍然可以工作在blender 2.7 和 2.8兩個版本

相關焦點

  • 在Blender 2.8 Python API 中選擇對象代碼大調整
    自從Blender 2.8更新後,對python腳本調整了原有設置選擇物體代碼,根據 Blender 2.8 Python API 更改網格(對象)可以使用 getters 和設置器進行選擇。嘗試通過調用blender2.79代碼「bpy.context.active_object.select」屬性檢查網格的選定狀態時,Blender 會引發錯誤:AttributeError: 'Object' object has no attribute 'select'要檢查是否在 Blender 2.8 中選擇了對象,請使用獲取器:bpy.context.active_object.select_get
  • 使用Blender2.9 python 腳本複製多個對象
    blender python 腳本在 Blender2.79 到 2.8 之間發生了巨大的變化,2.8之後變更了代碼使用方式,原來2.79腳本不起作用,如果你是2.8之後才開始學習blender python 腳本,儘量參考BlenderPythonAPI2.8之後,建議直接用BlenderPythonAPI2.9
  • 使用Visual studio code 作為外部 IDE 編寫 Blender2.9 腳本
    Blender 有自己的內置文本編輯器,用於編寫腳本和加載項,但在外部 IDE中開發它們非常方便,這些 IDE 為用戶提供了更多功能,如自動完成、語法突出顯示、與版本控制系統的集成以及其他使開發更快、更容易的工具。這是一個免費的通用環境,支持各種程式語言的開發,包括 Blender API 和 Python語言。
  • blender python處理矩陣乘法變更符號
    如果對矩陣對象執行任何乘法,要注意一件事情,Python 的最新版本(當然還有包含Blender內置Python版本)為適當的矩陣乘法實現了新的表示方法。用blender腳本編寫器編寫任何矩陣乘法,乘法* 語法仍然有效,這個只能作為 2.8 中嘗試普通乘法,而不是 2.7 中的矩陣乘法。如果你用在矩陣乘法會報出有趣的錯誤,因為這並不一定會拋出一個錯誤,a * ba @ b想要支持 2.7 和 2.8 的相同矩陣乘法樣式?
  • 如何設置PyCharm2020,連接到blender進行代碼編寫
    問題描述開發blender功能多插件可能會帶來嚴重的麻煩,尤其是當代碼庫很大時。Blenders 內部文本編輯器功能相當少,雖然有一些強大的附加插件在那裡改善體驗,但功能點也不及IDE 寫代碼高效。沒有明確的方式將 IDE 連接到允許快速工作流程的blender建議本文檔展示了一個blender2.9-pycharm2020 開發代碼工作流程,你會發現,方便處理你好多的麻煩。
  • blender python基礎知識大集合
    使用 blender python編寫代碼需要對 blender python基礎有一定的了解,本文很好地介紹了基礎代碼bpy.context 當前環境的所有選擇內容的bpy.context.object 當前活項物體,只能選擇一個mesh = bpy.data.objects["mesh"] Mesh變量存儲物體網格數據
  • blender2.9 python3實用腳本合集
    添加新腳體,直接開始編寫腳本!更改所有材料的設置您想要更改材質設置,但不僅能作用單個材質,而且對於文件中的所有材質:# 導入blender模塊import bpy#枚舉所有材質for item in bpy.data.materials:#設置 "use_shadeless"item.use_shadeless = True
  • blender2.9 python3網格編輯模式內定字符串
    在 blenderpython腳本中,對字符串處理比較多,初學者都認為簡單就用它來修改對象名,或者用它來劃分列表等等,其實 blender python中定義了很多大寫的字符串,如果寫錯了,系統會報錯,所以有必要先了解一下內部定義的字符串。
  • blender python腳本重點基礎-context選擇
    今天主要講解一下blender上下文context選擇,活動項,選擇物體,可選物體,各種方法和細節的區別在3D視窗我放置了立方體命名為A,球體命名為P,相機命名為C,點光源命名為L,各自一個,方便記憶01bpy.context.object活動項,系統會把一堆所選物體,把單獨激活為活動項外框顯示顏色同其它選擇物全不一樣,活動項算是Blender
  • 用上一個函數就能讓對象選擇腳本支持blender2.7和2.8兩個版本
    對象選擇,一個小功能但經常使用到的操作,blender2.8 版本後獲取和設置對象的選擇狀態已更改。選定一個對象,以前你曾經能夠通過獲取選擇狀態,然後通過更改它。現在,您必須分別幾條代碼來操作。和 2.8,要在代碼加入 hasattr () 函數來判斷才能讓兩個版本都能上功能:def select_get(object):if hasattr(object, "select_get"):return object.select_get()
  • BLENDER2.9 PYTHON 適合初學者:一些有用的循環
    學 python和 bpy API需要花費一些時間,你可以很容易地理解 blender python API,只要你按TAB鍵它是自動完成代碼關鍵詞的,所以你可以在 blender python控制臺中找到可用的選項。
  • blender2.9 python3 如何檢查Blender版本號
    平時有三個方法能查到所用的blender的版本號啟動圖畫關於Blender軟體右下角當然可以通過 Python API 獲取當前的 Blender 版本號,我們需要執行以下命令:bpy.app.version#
  • Blender遊戲引擎的 Python 腳本
    您將學習如何在 Blender 中使用 Python 腳本用腳本調整車輛移動,加速,停車。請記住,汽車只是用作使用 Python 的示例。本教程將教您 Blender 遊戲引擎的 Python 腳本基礎知識,包括通過腳本訪問和更改邏輯信息。即使您對 Python 有所了解,本教程也很容易理解。1使用腳本讓我們真正的遊戲腳本。
  • Python簡化代碼機器學習庫PyCaret 2.0發布
    PyCaret是一個開源的,低代碼的Python機器學習庫,旨在自動化機器學習工作流。它是端到端的機器學習和模型管理工具。它可以加速機器學習的實驗周期,提高你的效率。和其他開源機器學習庫相比,PyCaret是低代碼的。它可以用幾個單詞取代上百行代碼。這大大提高了實驗的速度和效率。在版本說明 release notes  中查看PyCaret 2.0的更多細節。
  • 適用於非程式設計師的Blender 2.8 Python腳本超級能力
    通過腳本,可以!不僅如此,Python還可以創建有趣的新功能,這些功能甚至通過單擊界面都無法實現。 如果您像我一樣,並且沒有接受過計算機科學方面的任何培訓,那麼編程看起來像是四個字母的單詞,除了帶有十一個字母(差了2.75倍!)。
  • Blender 2019
    1.3D掃描可以直連3D掃描儀,掃描後導入blender2.視頻序列編輯器更好的類似PR的動畫剪輯器
  • blender2.9 python訪問網格三角形
    在調用calc_loop_triangle方法之前,Mesh loop_triangles的引用屬性將引用空集合。調用calc_loop_triangles 方法後,loop_triangles 屬性將引用MeshLoopTriangle對象的集合,其中頂點屬性將包含 3 個整數數組,這些整數是三角形頂點的索引。
  • 漫談算法設計與腳本語言(grasshopper, python)
    當你運用範式的思想去編程的時候, 在構建自己的代碼的時候,為了結構的清晰可讀,你也一樣在架構上可以把代碼分層,層與層之間的接口儘量聲明式。這樣你的代碼自然在上一層主要描述從人的角度需要什麼, 下一層用計算機邏輯實現人的需要。
  • 從blender 2.7 移植到blender 2.8 的附加調整
    在最新版本的 Blender 開發人員對 API 進行了許多更改,因此為早期 Blender 版本(2.7 及以下)編寫的所有腳本和加載項都停止工作。若要在新的 Blender 2.8 中運行加載項,您需要移植它們 — 更改其代碼以使用新的 Blender API 正常工作。
  • 最終的Python 2版本標誌著時代的終結
    對於不願(或無法)升級到版本3的Python用戶,還有另一個動機:python.org發布了Python 2.7.18,這是Python 2的絕對最新正式版本。 儘管在功能方面並沒有增加太多,但它確實是一個裡程碑。