「Dev:JA/Ref/Release Notes/3.50/Python API」の版間の差分
(→内部メッシュフォーマット) |
|||
49行目: | 49行目: | ||
`bpy.ops.object.datalayout_transfer` オペレーターにて、`VCOL` が `COLOR_VERTEX` と `COLOR_CORNER` の二つの違うカラードメインに分離されました。({{GitCommit|93d84e87b26c}}、{{GitCommit|eae36be372a6}}) | `bpy.ops.object.datalayout_transfer` オペレーターにて、`VCOL` が `COLOR_VERTEX` と `COLOR_CORNER` の二つの違うカラードメインに分離されました。({{GitCommit|93d84e87b26c}}、{{GitCommit|eae36be372a6}}) | ||
− | == 内部メッシュフォーマット == | + | == <span id="Internal_Mesh_Format">内部メッシュフォーマット</span> == |
メッシュデータの構造のリファクタリングが以前のリリースから3.5まで続けられていました。[[../../3.40/Python_API#内部メッシュフォーマット|3.4リリースノート]]にも同様のセクションがあります。 | メッシュデータの構造のリファクタリングが以前のリリースから3.5まで続けられていました。[[../../3.40/Python_API#内部メッシュフォーマット|3.4リリースノート]]にも同様のセクションがあります。 |
2023年10月19日 (木) 04:11時点における版
元記事: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
オペレーターにて、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)