Blender 5.2LTS: Python API

元記事:Python API - Blender Developer Documentation

Annotations(アノテーション)

ストロークとポイントを編集する関数を追加しました。

  • 新しい関数 frame.strokes.new() は、新規アノテーションストロークを追加します。(a84a01733e)

  • 新しい関数 stroke.points.add(count=..., pressure=..., strength=...) は、アノテーションストロークにポイントを追加します。(a84a01733e)

  • 新しい関数 stroke.points.remove(index=...) は、アノテーションストロークからポイントを削除します。ストロークの最後のポイントは削除できないことに注意してください。(a84a01733e)

  • 新しい関数 frame.strokes.remove(stroke) は、アノテーションフレームからアノテーションストロークを削除します。(a84a01733e)

GPU

  • gpu.init() を追加。Blender がバックグラウンドモード(--background)で実行中に、GPU バックエンドを初期化します。(a6f60f8657)

Geometry Nodes(ジオメトリノード)

  • ジオメトリノードモディファイアーのプロパティにアクセスする API が変更されました。モディファイアーは入出力属性名にカスタムプロパティを使用するのではなく、固有の RNA プロパティを持つようになりました。(1561c1ea4a).

    # 従来
    modifier["identifier"] = 5.0
    modifier["identifier_use_attribute"] = True
    modifier["identifier_attribute_name"] = "some_input_attribute"
    modifier["identifier_attribute_name"] = "some_output_attribute"
    # 以降
    modifier.properties.inputs.identifier.value = 5.0
    modifier.properties.inputs.identifier.type = "ATTRIBUTE"
    modifier.properties.inputs.identifier.attribute_name = "some_input_attribute"
    modifier.properties.outputs.identifier.attribute_name = "some_output_attribute"
  • Compare(比較)と Random Value(ランダム値)ノードのソケット識別子が変更されました。(3a5cd7862b)

Nodes(ノード)

  • Python からノードのパネルの開閉が可能に。(80ed71c7ac).

imbuf

画像バッファ API が、バッファプロトコルを使用した直接ピクセルアクセス同様、違うファイルフォーマット間の変換にも使用可能になりました。

  • 画像の品質と圧縮へのアクセス。(3152423683)

  • グレースケール・RGB・RGBA 画像に対応。(6944a44e2a)

  • ピクセルデータアクセス用のバッファメソッドとコンテクストマネージャ。(e0f91aed38)

  • 既知のファイルタイプ拡張子同様、違うファイルタイプの読み書きにも対応。(3abf54cf3f)

Paint(ペイント)

  • スカルプトモードの自動マスク設定が、専用の structMeshAutomaskingSettings に移動しました。PaintBrush オブジェクトにあります。(6a46a5a46b, 6a46a5a46b)
    下記は旧プロパティと対応する新プロパティです。

    use_automasking_topology mesh_automasking_settings
     .use_automasking_topology
    use_automasking_face_sets mesh_automasking_settings
     .use_automasking_face_sets
    use_automasking_boundary_edges mesh_automasking_settings
     .use_automasking_boundary_edges
    use_automasking_boundary_face_sets mesh_automasking_settings
     .use_automasking_boundary_face_sets
    use_automasking_cavity mesh_automasking_settings
     .use_automasking_cavity
    use_automasking_cavity_inverted mesh_automasking_settings
     .use_automasking_cavity_inverted
    use_automasking_start_normal mesh_automasking_settings
     .use_automasking_start_normal
    use_automasking_view_normal mesh_automasking_settings
     .use_automasking_view_normal
    automasking_boundary_edges_propagation_steps mesh_automasking_settings
     .boundary_edges_propagation_steps
    automasking_cavity_factor mesh_automasking_settings
     .cavity_factor
    automasking_cavity_blur_steps mesh_automasking_settings
     .cavity_blur_steps
    automasking_cavity_curve mesh_automasking_settings
     .cavity_curve
    automasking_cavity_curve_op mesh_automasking_settings
     .cavity_curve_op
    automasking_start_normal_limit mesh_automasking_settings
     .start_normal_limit
    automasking_start_normal_falloff mesh_automasking_settings
     .start_normal_falloff
    automasking_view_normal_limit mesh_automasking_settings
     .view_normal_limit
    automasking_view_normal_falloff mesh_automasking_settings
     .view_normal_falloff


    (訳注:長さの都合により、右列のクラスと属性名を改行で分割して表記)

mathutils

  • Mathutils のタイプ(Vector、Matrix、Color、Euler)がスライスステップに対応しました。
    例:vector[begin:end:step]。(141af3d117)

Blender の配列

  • 配列のアクセスが、スライスアクセスのステップ値に対応しました。
    例:image.pixels[begin:end:step]。(5f2f7b0d0f)

Blender の報告

  • Blender の報告が読み込み専用リストで WindowManager ID タイプに公開されました。これらにはセッション単位での固有の整数識別子があります。(PR#15643979e02e1405)

パスイテレータ

bpy.data.file_path_foreach 用の三つの新オプションが追加、レンダーファームや他のスクリプトは新しい Cycles のテクスチャキャッシュを含む、関連画像テクスチャをすべて検索可能です。(PR#159159)

  • EXPAND_TOKENS: 各 UDIM タイプパス用
  • EXPAND_SEQUENCES: 各画像とボリュームシーケンスファイルパス用
  • EXPAND_CACHES: 画像に対応するテクスチャキャッシュファイルなどのキャッシュファイル用

従来の予約メタデータフィールドは、ファイルの種類を示す is_expandedis_cache ブール値で呼び出し側に提供されるようになりました。さらに is_readonly は、パスが編集可能な場合に、展開されたパスでは不可能なことを示します。

全 ID イテレータ

all_ids イテレータbpy.data に追加されました。全データブロックを一度に巡回できます。(PR#155782fef4836e0c)

「libraries.load()」への API 改善

一部の限られたライブラリ情報が bpy.data.libraries.load() 入力コンテクストマネージャ に公開されました。読み込まれた blend ファイルに使用されたライブラリ blend ファイルのパスへの特別なアクセスを与えます。

>>> with D.libraries.load("/home/path/to/singularity/pro/shots/050_contact/050_0070/050_0070-anim.blend") as (input, output):
...     for l in input.libraries:
...         print(l)
...         
bpy_lib.libraries(filepath='//../../../assets/scripts/update_bake_path.blend', is_archive=False)
bpy_lib.libraries(filepath='//../../../assets/nodes/star_backdrop.blend', is_archive=False)
bpy_lib.libraries(filepath='//../../../assets/sets/space_background-ice_belt/space_background-ice_belt.blend', is_archive=False)
bpy_lib.libraries(filepath='//../../../assets/props/singularity/singularity.blend', is_archive=False)
bpy_lib.libraries(filepath='//../../../../../local/blender/linux/5.0/datafiles/assets/nodes/procedural_hair_node_assets.blend', is_archive=True)

Window Manager

  • Window.screenshot メソッドが追加。先に(オペレーターで)ファイルに保存する必要なく、ピクセルデータにアクセスできます。(using the operator) (05b30f7c35)

ユーザーインターフェイス

  • 新メソッド UILayout.link。スタイル設定可能なリンクボタンを追加できます。(0cc55f2c9b)

  • 新メソッド UILayout.textbox。複数行に対応したテキストボタンを追加できます。(f19c08ae54)

    • 引数 initial_visible_lines を追加、テキストボックスの最初の高さがカスタマイズ可能です。(7dd20f6f68)
  • UILayout.template_palette の引数 color が削除されました。不明瞭な説明で使用されなかったためです。(79a60b4816)

Hydra

  • Hydra 2.0 API に実装を更新。OpenUSD は違う Hydra API バージョン間の抽象化を提供しており、既存のレンダーデリゲートは変更なしで使い続けることができるでしょう。(PR#158456)

アセット

  • もう PreferencesFilePaths.active_asset_library 内のインデックスが、PreferencesFilePaths.asset_libraries 内のアセットライブラリのインデックスと合わなくなりました (625e8c1e9d)。これはプリファレンスのアセットライブラリのリストには、"All Libraries" と "Essentials" エントリが含まれるようになり、これらが最初の二つのインデックスを使用するためです。

  • bpy.types.FileAssetSelectParams.asset_catalog_visibility was added so the catalog displayed in the UI ("All", "Unassigned" or a specific catalog) can be accessed and modified. (318bbcf4b9)

ID プロパティの入れ子制限

  • ID プロパティの最大入れ子数が1024に設定されました(従来は制限なしで、スタックメモリの限界に達した時にコード内で再帰的にクラッシュを引き起こしていました)。これはユーザープロパティ(グループの中のグループの中のグループなど)と、Python 定義のデータ(RNA 構造体の中の RNA 構造体の中の RNA 構造体など)の両方が影響を受けます。(PR#160274, c8a6c96db2)

Blender Foundation の文書を翻訳、ライセンスは CC-BY-SA 4.0 Int にて公開