国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Blender參考API用法

MonoLog / 2343人閱讀

摘要:在控制臺中輸入路徑。因此,下一步是通過參考文件檢查訪問畫筆的位置。上下文畫筆紋理對比度由于每個屬性都是按照我們在控制臺中組成數據路徑的方式給出的可以有多種方式來訪問相同的數據,您選擇的方法通常取決于任務。

Blender參考API用法

Blender有許多互連數據類型,它們具有自動生成的引用api,它通常具有編寫腳本所需的信息,但可能難以使用。

本文檔旨在幫助您了解如何使用參考API。

參考API范圍

參考API涵蓋bpy.types,存儲通過以下方式訪問的類型bpy.context- 用戶上下文 或bpy.data- 混合文件數據。

其他模塊,例如bge,bmesh并且aud沒有使用Blenders數據API,因此本文檔不適用于這些模塊。

數據訪問

使用參考API的最常見情況是找出如何訪問混合文件中的數據。

在進一步了解Blender中的ID數據塊之前,您經常會找到與它們相關的屬性。

ID數據

ID數據塊在Blender中用作頂級數據容器。

從用戶界面來看,這不是那么明顯,但在開發時,您需要了解ID數據塊。

ID數據類型包括場景,組,對象,網格,屏幕,世界,電樞,圖像和紋理。有關完整列表,請參閱子類bpy.types.ID

以下是ID數據塊共享的一些特征。

ID是混合文件數據,因此加載新的混合文件會重新加載一組全新的數據塊。
ID可以在Python中訪問 bpy.data.*
每個數據塊都有一個唯一的.name屬性,顯示在界面中。
動畫數據存儲在ID中.animation_data。
ID是唯一可以在混合文件之間鏈接的數據類型。
可以通過Python添加/復制和刪除ID。
ID有自己的垃圾收集系統,可以在保存時釋放未使用的ID。
當數據塊具有對某些外部數據的引用時,這通常是ID數據塊。

簡單的數據訪問

讓我們從一個簡單的案例開始,說你不是一個python腳本來調整對象的位置。

首先在界面中找到此設置 Properties Window -> Object -> Transform -> Location

從按鈕,您可以右鍵單擊并選擇在線Python參考,這將鏈接到: bpy.types.Object.location

作為API參考,此鏈接通常提供的信息比工具提示少,但有些頁面包含示例(通常位于頁面頂部)。

此時你可能會說現在是什么?- 你知道你必須使用.location它的3個浮點數組,但你仍然想知道如何在腳本中訪問它。

所以下一步是找出訪問對象的位置,在頁面底部到References 部分,對于有很多引用的對象,但是訪問對象的最常見的地方之一是通過上下文。

在這一點上很容易被淹沒,因為Object在很多地方引用了它 - 修飾符,函數,紋理和約束。

但是,如果要訪問用戶選擇的任何數據,通常只需要檢查bpy.context引用。

即便如此,在這種情況下,如果您閱讀這些內容還有相當多的內容 - 大多數都是模式特定的。如果您正在編寫僅在重量涂料模式下運行的工具,那么使用weight_paint_object 是合適的。但是,要訪問用戶上次選擇的項目,請查找active成員,有權訪問用戶選擇的單個活動成員是Blender中的約定:例如。active_bone, active_pose_bone,active_node...在這種情況下,我們可以使用- active_object。

所以現在我們有足夠的信息來查找活動對象的位置。

bpy.context.active_object.location

您可以在python控制臺中鍵入它以查看結果。

訪問引用中對象的另一個常見位置是bpy.types.BlendData.objects。

注意 這不是列為bpy.data.objects,這是因為bpy.data是bpy.types.BlendData類的一個實例,所以文檔指向那里。

使用bpy.data.objects,這是一組對象,因此您需要訪問其中一個成員。

bpy.data.objects["Cube"].location
嵌套屬性

前面的示例非常簡單,因為可以直接從上下文訪問location其屬性Object。

以下是一些更復雜的例子:

# access a render layers samples
bpy.context.scene.render.layers["RenderLayer"].samples

# access to the current weight paint brush size
bpy.context.tool_settings.weight_paint.brush.size

# check if the window is fullscreen
bpy.context.window.screen.show_fullscreen

正如您所看到的,有時您希望訪問嵌套的數據,這種方式會導致您經歷一些間接。

這些屬性被安排為匹配數據在內部存儲的方式(在混合器C代碼中),這通常是合乎邏輯的,但并不總是與使用Blender期望的完全相同。

因此,這需要一些時間來學習,它可以幫助您了解數據在Blender中的組合方式,這對于編寫腳本非常重要。

在開始編寫腳本時,您經常會遇到無法確定如何訪問所需數據的問題。

有幾種方法可以做到這一點。

使用Python控制臺的自動完成來檢查屬性。 這可能會出類拔萃,但其優勢在于您可以輕松查看屬性值并將其分配給交互式查看結果。

從用戶界面復制數據路徑。 進一步解釋:ref:復制數據路徑

使用文檔來關注參考。 進一步解釋:ref:間接數據訪問

復制數據路徑

Blender可以將Python字符串計算為屬性,該屬性顯示在工具提示中,如下所示。這節省了必須使用API??引用來單擊備份引用以查找數據的訪問位置。Python: ...

有一個用戶界面功能可以復制數據路徑,該路徑提供從bpy.types.ID數據塊到其屬性的路徑。

為了了解這是如何工作的,我們將獲得Subdivision-Surface修改器細分設置的路徑。

從默認場景開始,選擇“ 修改器”選項卡,然后將“ 細分 - 曲面”修改器添加到多維數據集。

現在將鼠標懸停在標記為View的按鈕上,工具提示包括bpy.types.SubsurfModifier.levels 但我們想要從對象到此屬性的路徑。

請注意,復制的文本將不包含該bpy.data.collection["name"].組件,因為它假定您不會在每次訪問時進行集合查找,并且通常您希望使用上下文而不是bpy.types.ID按名稱訪問每個實例。

在Python控制臺中輸入ID路徑bpy.context.active_object。包括尾隨點,但不要點擊“輸入”。

現在,右鍵單擊該按鈕并選擇“ 復制數據路徑”,然后將結果粘貼到控制臺中。

所以現在你應該得到答案:

bpy.context.active_object.modifiers["Subsurf"].levels

按“輸入”,您將獲得當前值1.現在嘗試將值更改為2:

bpy.context.active_object.modifiers["Subsurf"].levels = 2

您可以在Subdivision-Surface修改器的UI和多維數據集中看到值更新。

間接數據訪問

在這個例子中,我們將討論更多涉及的內容,顯示訪問活動的雕刻畫筆紋理的步驟。

讓我們說我們想通過Python訪問畫筆的紋理,以調整它contrast的例子。

從默認場景開始,從3D-View標題啟用“Sculpt”模式。

從工具欄中展開“ 紋理”面板并添加新紋理。 注意紋理按鈕,它自己沒有非常有用的鏈接(你可以檢查工具提示)。

對比度設置未在雕刻工具欄中顯示,因此在屬性面板中查看紋理...

在屬性按鈕中,選擇“紋理”上下文。

選擇“畫筆”圖標以顯示畫筆紋理。

展開“ 顏色”面板以找到“ 對比度”按鈕。

右鍵單擊對比按鈕,并選擇在線Python的引用 這需要你bpy.types.Texture.contrast

現在我們可以看到這contrast是紋理的屬性,接下來我們將檢查如何從畫筆訪問紋理。

檢查頁面底部的參考文獻,有時會有很多參考文獻,并且可能需要一些猜測才能找到合適的參考文獻,但在這種情況下顯然是這樣Brush.texture。

現在我們知道可以從中訪問紋理, bpy.data.brushes["BrushName"].texture 但通常您不希望按名稱訪問畫筆,因此我們現在將看到訪問活動畫筆。

因此,下一步是通過參考文件檢查訪問畫筆的位置。在這種情況下,bpy.context.brush我們只需要它。

現在,您可以使用Python控制臺來形成訪問畫筆紋理對比所需的嵌套屬性,邏輯上我們現在知道了。

上下文 - >畫筆 - >紋理 - >對比度

由于每個屬性都是按照我們在python控制臺中組成數據路徑的方式給出的:

bpy.context.brush.texture.contrast

可以有多種方式來訪問相同的數據,您選擇的方法通常取決于任務。

訪問相同設置的備用路徑是......

bpy.context.sculpt.brush.texture.contrast

或者直接訪問畫筆......

bpy.data.brushes["BrushName"].texture.contrast

如果您正在編寫用戶工具,則通常需要使用,bpy.context因為用戶通常希望該工具對他們選擇的內容進行操作。

對于自動化,您更有可能使用,bpy.data因為您希望能夠訪問特定數據并對其進行操作,無論用戶當前具有何種視圖集。

操作

Blender中的大多數按鍵和按鈕都會調用一個操作符,該操作符也會暴露給python via bpy.ops,

要查看Python等效項,請將鼠標懸停在按鈕上并查看工具提示,例如,如果沒有工具提示或缺少行,則此按鈕不使用運算符,無法從Python訪問。Python: bpy.ops.render.render()Python:

如果要在腳本中使用它,可以Control-C在鼠標懸停在按鈕上時將其復制到剪貼板。

您也可以右鍵單擊按鈕并查看在線Python參考,這主要顯示參數及其默認值,但是用Python編寫的運算符顯示其文件和行號,如果您有興趣檢查源代碼,這可能很有用。

注意 并非所有運算符都可以從Python中有用地調用,有關詳細信息,請參閱使用運算符。

信息視圖

Blender記錄您運行的運算符并在信息空間中顯示它們。它位于文件菜單上方,可以向下拖動以顯示其內容。

選擇Blender默認的腳本屏幕以查看其輸出。您可以執行某些操作并看到它們顯示 - 例如刪除頂點。

可以選擇每個條目(右鍵 - 鼠標 - 按鈕),然后復制Control-C,通常粘貼到文本編輯器或python控制臺中。

注意 并非所有操作員都注冊顯示,例如縮放視圖對于重復這樣做是沒有用的,因此將其排除在輸出之外。
要顯示運行的每個運算符,請參閱顯示所有運算符

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42159.html

相關文章

  • Blender Python API概述

    摘要:在交互式控制臺中運行此操作時,您將看到視口更新。鍵入或粘貼到交互式控制臺中。用戶首選項加載項列表使用顯示有關每個加載項的信息。最后兩行僅用于測試這允許腳本直接在文本編輯器中運行以測試更改。 Blender Python API概述 本文檔的目的是解釋Python和Blender如何組合在一起,涵蓋了一些在閱讀API參考和示例腳本時可能不明顯的功能。 Python in Blender ...

    魏憲會 評論0 收藏0
  • Blender插件教程

    摘要:插件教程什么是插件插件只是一個帶有一些附加要求的模塊,因此可以在包含有用信息的列表中顯示它。安裝附加組件時,將在控制臺中打印源和目標路徑。現在嘗試將此腳本復制到并在默認多維數據集上運行它。 Blender插件教程 什么是插件?插件只是一個帶有一些附加要求的Python模塊,因此Blender可以在包含有用信息的列表中顯示它。 舉個例子,這是最簡單的插件: bl_info = {name...

    scola666 評論0 收藏0
  • Blender下用Python實現模型文件導入、渲染和動畫生成

    摘要:為了讓數值計算的結果能夠有更好的渲染效果,這段時間一直在用這個開源軟件來處理計算結果。 為了讓數值計算的結果能夠有更好的渲染效果,這段時間一直在用Blender這個開源軟件來處理計算結果。 因為是處理大量數據的計算結果,所以不得不考慮用Python編寫腳本來實現批量處理,編寫過程中,Google幫我解決了大部分實現過程中的障礙,下面是完整的實現過程: 將計算結果的mesh文件導入到...

    villainhr 評論0 收藏0

發表評論

0條評論

MonoLog

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<