「Dev:JA/Ref/Release Notes/3.50/Python API」の版間の差分

提供: wiki
移動先: 案内検索
(ページの作成:「■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…」)
 
(内部メッシュフォーマット)
 
(同じ利用者による、間の4版が非表示)
1行目: 1行目:
■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 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 =
 
 
== 統合 ==
 
 
 
* ユーザーの site-packages が、`--python-use-system-env` を使用しなくても利用可能に。({{GitCommit|72c012ab4a3d2a7f7f59334f4912402338c82e3c}})
 
 
 
== 全般 ==
 
 
 
* アセットブラウザーのアクティブカタログを `bpy.types.FileAssetSelectParams.catalog_id` で変更可能に。もう読み込みのみではありません。({{GitCommit|rB80249ce6e4f9}})
 
 
 
* カスタムノードツリーのデフォルト名を `NodeTree.bl_label` に設定できるように。({{GitCommit|59ce7bf}})
 
 
 
== モディファイアー ==
 
* 新しい `ModifierData.execution_time` プロパティ。プロファイリングと最適化に使用できます。UI にはまだ公開していません。({{GitCommit|8adebaeb7c3c663ec775fda239fdfe5ddb654b06}})
 
 
 
* 新しい `object.modifiers.move()` メソッド。オペレーターを使用せずモディファイアーを並べ替えできます。({{GitCommit|rBf7dd7d545472}})
 
 
 
== 内部メッシュフォーマット ==
 
メッシュデータの構造のリファクタリングが、以前のリリースから3.5まで続けられていました。[[../../3.40/Python_API#内部メッシュフォーマット|3.4リリースノート]]に同様のセクションがあります。
 
  
Internal_Mesh_Format
+
== 互換性のなくなる変更 ==
  
The mesh data structure refactoring from earlier releases has continued in 3.5. See the similar section in the [[Reference/Release_Notes/3.4/Python_API#Internal_Mesh_Format|3.4 release notes]].
+
=== BGL の廃止予定 ===
  
* The active and default (for render) color attributes are now stored as strings, making it easier to change them and access the correct attributes ({{GitCommit|rB6514bb05ea5a}}).
+
BGL は OpenGL コールのダイレクトラッパーです。この BGL モジュールは、Blender 3.4で 'gpu' モジュールでリプレースされて以来、廃止予定でした。このリリースから、Metal バックエンド使用時は動作しないようになります。bgl モジュールを使用するアドオンとスクリプトの作者の皆さんは、この廃止予定に注意し、代わりに gpu モジュールを使用してください。
  
* Mesh vertex positions are now accessible via the builtin `position` attribute ({{GitCommit|rB1af62cb3bf46}}).
+
=== クラスの登録 ===
  
* UV layers are now stored as generic 2D vector attributes on the face corner domain ({{GitCommit|rB6c774feba2c9}})
+
* 既存のビルトインタイプと名前がマッチするクラスの登録でエラーが発生するようになりました。({{GitCommit|52f521dec4491feb746b458e120d0f3e8d05b19a}})
  
* The sharp edge property is now stored as a generic attribute, accessible with the `sharp_edge` name ({{GitCommit|rBdd9e1eded0d4}}).
+
=== ノードグループの仮想ソケット ===
  
* Loose edge status is stored separately internally ({{GitCommit|rB1ea169d90e39}}).
+
仮想ソケットとは、グループ入力・出力ノードに追加される、特別なソケットです。従来、これらへのリンク接続では、対応するノードグループ内に入出力が生成されていました。
** The `MeshEdge.is_loose` property is no longer editable.
 
** Loose edge status can be recalculated with `Mesh.update(calc_edges_loose=True)`
 
  
* Data access is generally faster than before when accessed with the attribute API (i.e. `mesh.attributes["sharp_edge"]), but slightly slower than before when accessed with the old properties.
+
この機能は、UI/UX 機能の一つとされてきましたが、今は Blender 内で別々に実装されるようになり、自動的には処理されません。Python からグループ入力を追加する正しい方法は、`node_tree.inputs.new(...)` を使用することです。({{GitCommit|70260960994d}}).
  
== Breaking changes ==
+
=== グリースペンシル ===
  
=== Grease Pencil Auto-masking moved to Global setting. ===
+
Auto-masking(自動マスク)設定が、brush から tool_settings に移動しました。詳細は({{GitCommit|4c182aef7ce0}})にて。
  
({{GitCommit|4c182aef7ce0}})
+
=== モーショントラッキング ===
  
Props Removed:
+
Optical Center(光学中心、principal point)の内部的な格納が正規化空間に変更されました。({{GitCommit|7dea18b3aa}})
  
`brush.gpencil_settings.use_automasking_strokes,  
+
正規化空間では座標 `(0, 0)` がフレームの中心に対応し、`(-1, -1)` がフレーム左下隅に、`(1, 1)` がフレーム右上隅に対応しています。この表記は `clip.tracking.camera.principal_point` プロパティから利用可能です。
brush.gpencil_settings.use_automasking_layer,
 
brush.gpencil_settings.use_automasking_material`
 
  
Replaced by:
+
一部のアルゴリズムではピクセル空間での処理の方が便利です。この手の用途には新しく `clip.tracking.camera.principal_point_pixels` プロパティが追加されました。
  
`tool_settings.gpencil_sculpt.use_automasking_stroke,
+
`clip.tracking.camera.principal` は、API のあいまいな命名を回避するため削除されました。
tool_settings.gpencil_sculpt.use_automasking_layer_stroke,
 
tool_settings.gpencil_sculpt.use_automasking_material_stroke,
 
tool_settings.gpencil_sculpt.use_automasking_layer_active,
 
tool_settings.gpencil_sculpt.use_automasking_material_active`
 
  
=== Motion tracking optical center ===
+
=== Armature(アーマチュア)モディファイアー ===
  
The internal storage of the optical center (principal point) has been changed in {{GitCommit|7dea18b3aa}} to a normalized space.
+
アーマチュアモディファイアーで Multi Modifier(マルチモディファイアー)有効時、Invert Vertex Group(頂点グループを反転)の効果が反転する古いバグが修正されました。({{GitCommit|rBea1c31a24438}})
  
The normalized space refers to coordinate `(0, 0)` corresponding to the frame center, `(-1, -1)` the left bottom frame corner, `(1, 1)` is the top right frame corner. This notation is available via `clip.tracking.camera.principal_point` property.
+
複雑なアーマチュアモディファイアーセットアップを作成するスクリプトは、Blender のバージョンを正確にチェックするようアップデートする必要があります。
 
 
For some algorithms it is convenient to operate in the pixel space. For those usecases the new `clip.tracking.camera.principal_point_pixels` property has been added.
 
 
 
The old `clip.tracking.camera.principal` has been removed to avoid ambiguous naming in the API.
 
 
 
=== Inverted the meaning of the armature modifier vertex group in some cases ===
 
 
 
Fixed an old bug where the effect of the Invert Vertex Group toggle of the Armature modifier was inverted when Multi-Modifier was active. ({{GitCommit|rBea1c31a24438}})
 
 
 
Scripts creating complex armature modifier setups need updating to check the exact blender version:
 
  
 
<source lang="Python">
 
<source lang="Python">
83行目: 45行目:
 
</source>
 
</source>
  
=== bpy.ops.object.datalayout_transfer operator ===
+
=== データ転送 ===
 +
 
 +
`bpy.ops.object.datalayout_transfer` オペレーターにて、`VCOL` が `COLOR_VERTEX` と `COLOR_CORNER` の二つの違うカラードメインに分離されました。({{GitCommit|93d84e87b26c}}、{{GitCommit|eae36be372a6}})
  
Since we now feature two domains since {{GitCommit|eae36be372a6}}, the single "VCOL" in the enum has been split into "COLOR_VERTEX" and "COLOR_CORNER" ({{GitCommit|93d84e87b26c}}).
+
== 内部メッシュフォーマット ==
  
=== Class Registration ===
+
メッシュデータの構造のリファクタリングが以前のリリースから3.5まで続けられていました。[[../../3.40/Python_API#内部メッシュフォーマット|3.4リリースノート]]にも同様のセクションがあります。
  
* Registering classes with the names matching existing built-in types now raises an error ({{GitCommit|52f521dec4491feb746b458e120d0f3e8d05b19a}}).
+
*アクティブとデフォルト(レンダー用)のカラー属性が文字列で格納されるようになり、変更と正しい属性へのアクセスが簡単に。({{GitCommit|rB6514bb05ea5a}})
  
=== Node Group Input Output Creation with virtual sockets ===
+
* メッシュの頂点の位置がビルトインの `position` 属性でアクセス可能に。({{GitCommit|rB1af62cb3bf46}})
  
Virtual sockets are the extra sockets added to group input and output nodes. Previously connecting a link to them would create an input or output in the corresponding node group.
+
* UV レイヤーが面コーナードメインの汎用2Dベクトル属性として格納されるように。({{GitCommit|rB6c774feba2c9}})
That feature was meant as a UI/UX feature though, and is now implemented differently in Blender and doesn't happen automatically. The correct way to add a group input from Python is to use `node_tree.inputs.new(...)`
 
({{GitCommit|70260960994d}}).
 
  
=== BGL Deprecation ===
+
* `MeshUVLoop` Python タイプが廃止予定となり、4.0で削除されます。その `data` コレクションメンバも廃止予定で、別々のコレクションメンバである `uv`、`vertex_selection`、`edge_selection`、`pin` で置き換えられます。<br />当分、`data` メンバへのアクセスは後方互換性のためにエミュレートされますが、このエミュレーションにはパフォーマンスペナルティも付いてきます。({{GitCommit|rBa82c12ae32d9}})
  
BGL is a direct wrapper around OpenGL calls. The BGL module is deprecated for and since Blender 3.4 has been replaced with the 'gpu' module. From this release it will not work when using the Metal backend. Add-ons and scripts that uses the bgl module are warned about the deprecation and should use the gpu module in stead.
+
* シャープ辺プロパティが汎用属性として格納されるようになり、`sharp_edge` でアクセス可能に。({{GitCommit|rBdd9e1eded0d4}})
  
== Bundled Libraries ==
+
* Loose edge(孤立する辺)の状態が内部的に分離して格納されるように。({{GitCommit|rB1ea169d90e39}})
 +
** `MeshEdge.is_loose` プロパティは編集できなくなりました。
 +
** 孤立する辺の状態は `Mesh.update(calc_edges_loose=True)` で再計算可能です。
  
Python bindings for the following libraries are now bundled with Blender, and available to use by add-ons.
+
* 属性 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年10月19日 (木) 04:13時点における最新版

元記事: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)