blender python入門系列教程一:認識bpy.data.objects

2020-12-23 blender幫

啟動blender軟體,如果沒有變更系統設置,默認3d視窗就有一個燈,一個相機和一個立方體。

直接選用Scripting界面,在python控制臺,直接輸入bpy.data.objects,系統返回

<bpy_collection[3], BlendDataObjects> 中文翻譯:bpy集合[3],blender數據對象

輸入:bpy.data.objects[0]

結果返回:bpy.data.objects['Camera']

輸入:bpy.data.objects[1]

結果返回:bpy.data.objects['Cube']

輸入:bpy.data.objects[2]

結果返回:bpy.data.objects['Light']

bpy 可以解釋當前blender打開的當前文件的根,data就系統數據,對應Objects就是當前文件數據集,要訪問單個物體,可以用這個集合的索引號來訪問,由0開始,其實物體序號是跟物體的創建順序來定義。

現在3d視窗創建一個猴頭

輸入:bpy.data.objects[3]

結果返回:bpy.data.objects['Suzanne']

當然可以直接用bpy.data.objects['物體名字']來訪問

輸入:bpy.data.objects.items()

[('Camera', bpy.data.objects['Camera']), ('Cube', bpy.data.objects['Cube']), ('Light', bpy.data.objects['Light']), ('Suzanne', bpy.data.objects['Suzanne'])]

用這個可以返回整個數據集的字典,對應鍵就是物體名稱,值就這個數據塊,入門第一課就要好好了解以上這些概念

以下視頻就是本文的視頻教學

相關焦點

  • blender python入門系列教程二:data.objects對應的大綱位置說明
    大綱視窗是一個好神奇界面,這個功能都比其他3D軟體好用,主要因為blender是開源,系統打開了好多底層數據給用戶使用。點擊blender小頭像在這個顯示模式選擇blender文件模式在入門系列一教程中所提及bpy.data.objects,其實它是blender Python最基本的數據結構中的序列。
  • blender python類別
    Blender python 使用面向對象的方法處理其數據。對象類包含泛型屬性,如對象的位置。然後,它使用它的數據屬性來使用特定於對象類型的類來存儲對象特定數據,每個數據類型都是 ID 的子類bpy.data.objects是 Object類實例的列表。
  • blender python基礎知識大集合
    使用 blender python編寫代碼需要對 blender python基礎有一定的了解,本文很好地介紹了基礎代碼bpy.context 當前環境的所有選擇內容的bpy.context.object 當前活項物體,只能選擇一個mesh = bpy.data.objects["mesh"] Mesh變量存儲物體網格數據
  • 使用Blender2.9 python 腳本複製多個對象
    blender python 腳本在 Blender2.79 到 2.8 之間發生了巨大的變化,2.8之後變更了代碼使用方式,原來2.79腳本不起作用,如果你是2.8之後才開始學習blender python 腳本,儘量參考BlenderPythonAPI2.8之後,建議直接用BlenderPythonAPI2.9
  • blender python腳本重點基礎-context選擇
    所有選擇物體包括活動項物體,結果是一個列表,要了解一件事情,活動項物體不會指定列表在前或尾,物體排序是按物體在場景生成的順序來排列,內順序是不可調整>>> bpy.context.selected_objects[bpy.data.objects['L'], bpy.data.objects['C'], bpy.data.objects['A'], bpy.data.objects
  • BLENDER2.9 PYTHON 適合初學者:一些有用的循環
    學 python和 bpy API需要花費一些時間,你可以很容易地理解 blender python API,只要你按TAB鍵它是自動完成代碼關鍵詞的,所以你可以在 blender python控制臺中找到可用的選項。
  • blender2.8用集合替換之前版本的圖層功能,python腳本代碼更新
    在場景添加一個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
  • Blender Python:數學網格
    在這一階段,我們可以通過使用頂點數組和空面數組創建網格來驗證如何繪製點。range(0,numY): x = scale * i y = scale * j z = scale*((amp*math.cos(i*freq))+(amp*math.sin(j*freq))) vert = (x,y,z) verts.append(vert) #create mesh and objectmesh = bpy.data.meshes.new
  • blender2.9 python3實用腳本合集
    更改所有材料的設置您想要更改材質設置,但不僅能作用單個材質,而且對於文件中的所有材質:# 導入blender模塊import bpy#枚舉所有材質for item in bpy.data.materials:#設置 "use_shadeless"item.use_shadeless = True
  • bpy.data.materials Blender材質類
    ) 用type來檢查一下bpy.data.materials。bpy.data.materials是一種類2.list(bpy.data.materials) list() 方法用於將元組或字符串轉換為列表,列舉Blender材質庫的材質3.bpy.data.materials.new
  • blender2.9 python訪問網格三角形
    以下示例腳本創建和將球體對象位於立方體三角形的中心:import bpymesh = bpy.data.objects['Cube'].datamesh.calc_loop_triangles()for tri in mesh.loop_triangles: tri_center = (mesh.vertices
  • 利用blender2.9python3選擇空面網格物體實用教程
    import bpy#新建空列表zenmesh = []#全部不選擇bpy.ops.object.select_all(action='DESELECT')for i in bpy.data.objects:#選取網格物體,檢查網格物體面數是否為零,如果為零就加入空組if i.type==
  • Blender Python:網格定義
    #Define mesh and objectmymesh = bpy.data.meshes.new("Plane") #the mesh variable is then referenced by the object variablemyobject = bpy.data.objects.new("Plane", mymesh)現在我們來定義將在何處創建網格。
  • 如何在 Blender 2.8 Python API 中將對象網格設置為活動
    嘗試使用"bpy.context.scene.objects.active"使對象處於活動狀態時,Blender 會引發錯誤:屬性Bpy_prop_collection:未找到屬性「active」,blender升到2.8之後,Python API已經把這個屬性移走若要使 Blender 2.8 中的對象處於活動狀態,請使用以下代碼:obj =
  • blender python標準數據類型——Dictionary字典
    字典中的元素可通過鍵訪問,並且鍵是唯一的,例如使用「 Plane」作為字典中的關鍵字,並使用bpy.data.objects ['Plane']作為值,以便可以分別處理不同的類別,並且已構建了字典。攪拌器對象名稱已構建為鍵,因為攪拌器對象名稱也是唯一的,「 3dmax對象可以具有相同的名稱」import bpyplane_dic={bpy.data.objects['Plane'].name:bpy.data.objects['Plane'], bpy.data.objects['Plane.001'].name:bpy.data.objects['Plane.001
  • 如何通過Blender Python API從場景中刪除對象
    要僅刪除必需的對象,我們需要取消選擇所有場景對象,bpy.ops.object.select_all(action='DESELECT')接下來,選擇所需的對象。如果我們選擇多個對象,則將所有對象從場景中刪除。bpy.data.objects['Suzanne'].select_set(True)現在讓我們使用delete運算符。
  • 如何通過Blender Python API創建網格
    接下來,使用「 new_mesh」名稱製作網格結構,new_mesh=bpy.data.meshes.new('new_mesh')並從數據塊中填充它。new_object=bpy.data.objects.new('new_object',new_mesh)我們創建了對象。但是還有更多工作要做。我們需要一個集合,其中將添加創建的對象。讓我們使用「 new_collection」名稱創建一個新集合,並將其放入主場景集合中。
  • blender python處理矩陣乘法變更符號
    用blender腳本編寫器編寫任何矩陣乘法,乘法* 語法仍然有效,這個只能作為 2.8 中嘗試普通乘法,而不是 2.7 中的矩陣乘法。如果你用在矩陣乘法會報出有趣的錯誤,因為這並不一定會拋出一個錯誤,a * ba @ b想要支持 2.7 和 2.8 的相同矩陣乘法樣式?
  • Blender Python中的3d Mandelbrot分形
    import bpyimport math mesh variablesnumX = 100numY = nbsp;        vert = (x,y,z)        verts.append(vert) create mesh and objectmesh = bpy.data.meshes.new
  • 用上一個函數就能讓對象選擇腳本支持blender2.7和2.8兩個版本
    對象選擇,一個小功能但經常使用到的操作,blender2.8 版本後獲取和設置對象的選擇狀態已更改。選定一個對象,以前你曾經能夠通過獲取選擇狀態,然後通過更改它。cube = bpy.data.objects["Cube"]selected = cube.selectcube.selection = Trueselected = cube.select_get()