Dev:JA/Ref/Release Notes/3.50/Python API

提供: wiki
< Dev:JA‎ | Ref/Release Notes‎ | 3.50
2023年3月25日 (土) 05:07時点におけるYamyam (トーク | 投稿記録)による版
移動先: 案内検索

元記事:Reference/Release Notes/3.5/Python API - Blender Developer Wiki

Python API

互換性のなくなる変更

BGL の廃止予定

BGL は OpenGL コールのダイレクトラッパーです。この BGL モジュールは、Blender 3.4で 'gpu' モジュールでリプレースされて以来、廃止予定でした。このリリースから、Metal バックエンド使用時は動作しないようになります。bgl モジュールを使用するアドオンとスクリプトの作者の皆さんは、この廃止予定に注意し、代わりに gpu モジュールを使用してください。

クラスの登録

  • 既存のビルトインタイプと名前がマッチするクラスの登録でエラーが発生するようになりました。(52f521dec4491fe)

ノードグループの仮想ソケット

仮想ソケットとは、グループ入力・出力ノードに追加される、特別なソケットです。従来、これらへのリンク接続では、対応するノードグループ内に入出力が生成されていました。

この機能は、UI/UX 機能の一つとされてきましたが、今は Blender 内で別々に実装されるようになり、自動的には処理されません。Python からグループ入力を追加する正しい方法は、node_tree.inputs.new(...) を使用することです。(70260960994d).

グリースペンシル

Auto-masking(自動マスク)設定が、brush から tool_settings に移動しました。詳細は(4c182aef7ce0)にて。

モーショントラッキング

Optical Center(光学中心、principal point)の内部的な格納が正規化空間に変更されました。(7dea18b3aa)

正規化空間では座標 (0, 0) がフレームの中心に対応し、(-1, -1) がフレーム左下隅に、(1, 1) がフレーム右上隅に対応しています。この表記は clip.tracking.camera.principal_point プロパティから利用可能です。

一部のアルゴリズムではピクセル空間での処理の方が便利です。この手の用途には新しく clip.tracking.camera.principal_point_pixels プロパティが追加されました。

clip.tracking.camera.principal は、API のあいまいな命名を回避するため削除されました。

Armature(アーマチュア)モディファイアー

アーマチュアモディファイアーで Multi Modifier(マルチモディファイアー)有効時、Invert Vertex Group(頂点グループを反転)の効果が反転する古いバグが修正されました。(rBea1c31a24438)

複雑なアーマチュアモディファイアーセットアップを作成するスクリプトは、Blender のバージョンを正確にチェックするようアップデートする必要があります。

modifier.use_multi_modifier = True
if bpy.app.version_file < (3, 5, 8):  # Blender bug T103074
    modifier.invert_vertex_group = True

データ転送

bpy.ops.object.datalayout_transfer オペレーターにて、VCOLCOLOR_VERTEXCOLOR_CORNER の二つの違うカラードメインに分離されました。(93d84e87b26ceae36be372a6)

内部メッシュフォーマット

メッシュデータの構造のリファクタリングが以前のリリースから3.5まで続けられていました。3.4リリースノートにも同様のセクションがあります。

  • アクティブとデフォルト(レンダー用)のカラー属性が文字列で格納されるようになり、変更と正しい属性へのアクセスが簡単に。(rB6514bb05ea5a)
  • メッシュの頂点の位置がビルトインの position 属性でアクセス可能に。(rB1af62cb3bf46)
  • UV レイヤーが面コーナードメインの汎用2Dベクトル属性として格納されるように。(rB6c774feba2c9)
  • MeshUVLoop Python タイプが廃止予定となり、4.0で削除されます。その data コレクションメンバも廃止予定で、別々のコレクションメンバである uvvertex_selectionedge_selectionpin で置き換えられます。
    当分、data メンバへのアクセスは後方互換性のためにエミュレートされますが、このエミュレーションにはパフォーマンスペナルティも付いてきます。(rBa82c12ae32d9)
  • シャープ辺プロパティが汎用属性として格納されるようになり、sharp_edge でアクセス可能に。(rBdd9e1eded0d4)
  • Loose edge(孤立する辺)の状態が内部的に分離して格納されるように。(rB1ea169d90e39)
    • MeshEdge.is_loose プロパティは編集できなくなりました。
    • 孤立する辺の状態は Mesh.update(calc_edges_loose=True) で再計算可能です。
  • 属性 API によるアクセス時(`mesh.attributes["sharp_edge"] など)のデータアクセスが、従来より全体的に高速化しましたが、旧プロパティによるアクセス時は若干遅くなりました。

バンドルライブラリ

下記のライブラリの Python バインディングが Blender に同梱され、アドオンから利用可能になりました。

その他の変更

  • ユーザーの site-packages が、--python-use-system-env を使用しなくてもデフォルトで利用可能に。(72c012ab4a3d2a7)
  • 新しい ModifierData.execution_time プロパティ。プロファイリングと最適化に使用できます。UI にはまだ公開されていません。(8adebaeb7c3c663)
  • 新しい object.modifiers.move() メソッド。オペレーターを使用せずモディファイアーを並べ替えできます。(rBf7dd7d545472)
  • アセットブラウザーのアクティブカタログを bpy.types.FileAssetSelectParams.catalog_id で変更可能に。これはもう読み込みのみではありません。(rB80249ce6e4f9)
  • カスタムノードツリーに、NodeTree.bl_label へ設定されるデフォルト名が付きました。(59ce7bf)