「Dev:JA/Ref/Release Notes/3.50/Python API」の版間の差分
(ページの作成:「■2023/03/18(土) 3:51 元記事:[https://wiki.blender.org/wiki/Reference/Release_Notes/3.5/Python_API Reference/Release Notes/3.5/Python API - Blender Developer…」) |
|||
1行目: | 1行目: | ||
− | |||
− | |||
元記事:[https://wiki.blender.org/wiki/Reference/Release_Notes/3.5/Python_API Reference/Release Notes/3.5/Python API - Blender Developer Wiki] | 元記事:[https://wiki.blender.org/wiki/Reference/Release_Notes/3.5/Python_API Reference/Release Notes/3.5/Python API - Blender Developer Wiki] | ||
− | = Python API | + | = Python API = |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | == 互換性のなくなる変更 == | |
− | + | === BGL の廃止予定 === | |
− | + | BGL は OpenGL コールのダイレクトラッパーです。この BGL モジュールは、Blender 3.4で 'gpu' モジュールでリプレースされて以来、廃止予定でした。このリリースから、Metal バックエンド使用時は動作しないようになります。bgl モジュールを使用するアドオンとスクリプトの作者の皆さんは、この廃止予定に注意し、代わりに gpu モジュールを使用してください。 | |
− | + | === クラスの登録 === | |
− | * | + | * 既存のビルトインタイプと名前がマッチするクラスの登録でエラーが発生するようになりました。({{GitCommit|52f521dec4491feb746b458e120d0f3e8d05b19a}}) |
− | + | === ノードグループの仮想ソケット === | |
− | + | 仮想ソケットとは、グループ入力・出力ノードに追加される、特別なソケットです。従来、これらへのリンク接続では、対応するノードグループ内に入出力が生成されていました。 | |
− | |||
− | |||
− | + | この機能は、UI/UX 機能の一つとされてきましたが、今は Blender 内で別々に実装されるようになり、自動的には処理されません。Python からグループ入力を追加する正しい方法は、`node_tree.inputs.new(...)` を使用することです。({{GitCommit|70260960994d}}). | |
− | == | + | === Grease Pencil === |
+ | Auto-masking(自動マスク)設定が、brush から tool_settings に移動しました。詳細は({{GitCommit|4c182aef7ce0}})にて。 | ||
− | |||
− | + | === モーショントラッキング === | |
− | + | Optical Center(光学中心、principal point)の内部的な格納が正規化空間に変更されました。({{GitCommit|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(頂点グループを反転)の効果が反転する古いバグが修正されました。({{GitCommit|rBea1c31a24438}}) | |
− | + | 複雑なアーマチュアモディファイアーセットアップを作成するスクリプトは、Blender のバージョンを正確にチェックするようアップデートする必要があります。 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<source lang="Python"> | <source lang="Python"> | ||
83行目: | 45行目: | ||
</source> | </source> | ||
− | === bpy.ops.object.datalayout_transfer | + | === データ転送 === |
+ | |||
+ | `bpy.ops.object.datalayout_transfer` オペレーターにて、`VCOL` が `COLOR_VERTEX` と `COLOR_CORNER` の二つの違うカラードメインに分離されました。({{GitCommit|93d84e87b26c}}、{{GitCommit|eae36be372a6}}) | ||
− | + | == 内部メッシュフォーマット == | |
− | + | メッシュデータの構造のリファクタリングが以前のリリースから3.5まで続けられていました。[[../../3.40/Python_API#内部メッシュフォーマット|3.4リリースノート]]にも同様のセクションがあります。 | |
− | * | + | *アクティブとデフォルト(レンダー用)のカラー属性が文字列で格納されるようになり、変更と正しい属性へのアクセスが簡単に。({{GitCommit|rB6514bb05ea5a}}) |
− | + | * メッシュの頂点の位置がビルトインの `position` 属性でアクセス可能に。({{GitCommit|rB1af62cb3bf46}}) | |
− | + | * UV レイヤーが面コーナードメインの汎用2Dベクトル属性として格納されるように。({{GitCommit|rB6c774feba2c9}}) | |
− | |||
− | ({{GitCommit| | ||
− | + | * `MeshUVLoop` Python タイプが廃止予定となり、4.0で削除されます。その `data` コレクションメンバも廃止予定で、別々のコレクションメンバである `uv`、`vertex_selection`、`edge_selection`、`pin` で置き換えられます。<br />当分、`data` メンバへのアクセスは後方互換性のためにエミュレートされますが、このエミュレーションにはパフォーマンスペナルティも付いてきます。({{GitCommit|rBa82c12ae32d9}}) | |
− | + | * シャープ辺プロパティが汎用属性として格納されるようになり、`sharp_edge` でアクセス可能に。({{GitCommit|rBdd9e1eded0d4}}) | |
− | = | + | * Loose edge(孤立する辺)の状態が内部的に分離して格納されるように。({{GitCommit|rB1ea169d90e39}}) |
+ | ** `MeshEdge.is_loose` プロパティは編集できなくなりました。 | ||
+ | ** 孤立する辺の状態は `Mesh.update(calc_edges_loose=True)` で再計算可能です。 | ||
− | Python | + | * 属性 API によるアクセス時(`mesh.attributes["sharp_edge"] など)のデータアクセスが、従来より全体的に高速化しましたが、旧プロパティによるアクセス時は若干遅くなりました。 |
+ | |||
+ | == バンドルライブラリ == | ||
+ | |||
+ | 下記のライブラリの Python バインディングが Blender に同梱され、アドオンから利用可能になりました。 | ||
* [https://graphics.pixar.com/usd/release/index.html USD] | * [https://graphics.pixar.com/usd/release/index.html USD] | ||
* [https://www.openvdb.org/documentation/doxygen/python.html OpenVDB] | * [https://www.openvdb.org/documentation/doxygen/python.html OpenVDB] | ||
109行目: | 77行目: | ||
* [https://opencolorio.readthedocs.io/en/latest/ OpenColorIO] | * [https://opencolorio.readthedocs.io/en/latest/ OpenColorIO] | ||
* [https://materialx.org/docs/api/index.html MaterialX] | * [https://materialx.org/docs/api/index.html MaterialX] | ||
+ | |||
+ | == その他の変更 == | ||
+ | |||
+ | * ユーザーの site-packages が、`--python-use-system-env` を使用しなくてもデフォルトで利用可能に。({{GitCommit|72c012ab4a3d2a7f7f59334f4912402338c82e3c}}) | ||
+ | |||
+ | * 新しい `ModifierData.execution_time` プロパティ。プロファイリングと最適化に使用できます。UI にはまだ公開されていません。({{GitCommit|8adebaeb7c3c663ec775fda239fdfe5ddb654b06}}) | ||
+ | |||
+ | * 新しい `object.modifiers.move()` メソッド。オペレーターを使用せずモディファイアーを並べ替えできます。({{GitCommit|rBf7dd7d545472}}) | ||
+ | |||
+ | * アセットブラウザーのアクティブカタログを `bpy.types.FileAssetSelectParams.catalog_id` で変更可能に。これはもう読み込みのみではありません。({{GitCommit|rB80249ce6e4f9}}) | ||
+ | |||
+ | * カスタムノードツリーに、`NodeTree.bl_label` へ設定されるデフォルト名が付きました。({{GitCommit|59ce7bf}}) |
2023年3月25日 (土) 05:06時点における版
元記事: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).
Grease Pencil
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
オペレーターにて、VCOL
が COLOR_VERTEX
と COLOR_CORNER
の二つの違うカラードメインに分離されました。(93d84e87b26c、eae36be372a6)
内部メッシュフォーマット
メッシュデータの構造のリファクタリングが以前のリリースから3.5まで続けられていました。3.4リリースノートにも同様のセクションがあります。
- アクティブとデフォルト(レンダー用)のカラー属性が文字列で格納されるようになり、変更と正しい属性へのアクセスが簡単に。(rB6514bb05ea5a)
- メッシュの頂点の位置がビルトインの
position
属性でアクセス可能に。(rB1af62cb3bf46)
- UV レイヤーが面コーナードメインの汎用2Dベクトル属性として格納されるように。(rB6c774feba2c9)
MeshUVLoop
Python タイプが廃止予定となり、4.0で削除されます。そのdata
コレクションメンバも廃止予定で、別々のコレクションメンバであるuv
、vertex_selection
、edge_selection
、pin
で置き換えられます。
当分、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)