「Dev:JA/Ref/Release Notes/3.40/Python API」の版間の差分
< Dev:JA | Ref/Release Notes | 3.40
(→内部メッシュフォーマット) |
(→内部メッシュフォーマット) |
||
21行目: | 21行目: | ||
* ファイル選択ダイアログが、設定したオペレーターの `directory`、`filename`、`filepath` プロパティの `update` コールバックを呼び出すように({{GitCommit|48d7ff68f0df209c77bbb081ab46fbc109fd825a}})。これにより、従来より大幅にインタラクティブなダイアログが可能になります。例えば、オペレーターが現在選択中のファイルを元に、別のオプションを表示することができるようになりました。 | * ファイル選択ダイアログが、設定したオペレーターの `directory`、`filename`、`filepath` プロパティの `update` コールバックを呼び出すように({{GitCommit|48d7ff68f0df209c77bbb081ab46fbc109fd825a}})。これにより、従来より大幅にインタラクティブなダイアログが可能になります。例えば、オペレーターが現在選択中のファイルを元に、別のオプションを表示することができるようになりました。 | ||
− | == | + | == 内部メッシュフォーマット == |
メッシュの内部データ構造が、主に格納データの別の配列への分離により、大幅な変更を受けました。詳細は[https://developer.blender.org/T95965 設計タスク]を参照してください。 | メッシュの内部データ構造が、主に格納データの別の配列への分離により、大幅な変更を受けました。詳細は[https://developer.blender.org/T95965 設計タスク]を参照してください。 |
2023年10月19日 (木) 04:13時点における最新版
元記事:Reference/Release Notes/3.4/Python API - Blender Developer Wiki
目次
Python API & テキストエディター
Python モジュールとしての Blender
Python モジュールとしての Blender の実行の対応を向上させるため、様々な変更が行われました。
bpy.app.program_path
のデフォルトを書き込み可能な空の文字列にし、スクリプトが Blender バイナリを指し示すことができるように。(f7a4ede79f9512f)
- モジュールが自身を含む Python パッケージ "bpy" としてビルドされるようになりました。(81558783e40394c)
- Linux で EEVEE / WorkBench を通じた GPU レンダリングに対応しました。(3195a381200eb98)
追加
- 2Dと3Dの両方で動作する、新しい GPU ビルトインシェーダーの列挙。2Dと3Dバージョンは廃止予定です。(8cfca8e1bd85)
- 新関数
bmesh_utils.bmesh_linked_uv_islands
。BMesh の UV アイランドにアクセスできます。(de570dc87ed17ca)
- ファイル選択ダイアログが、設定したオペレーターの
directory
、filename
、filepath
プロパティのupdate
コールバックを呼び出すように(48d7ff68f0df209)。これにより、従来より大幅にインタラクティブなダイアログが可能になります。例えば、オペレーターが現在選択中のファイルを元に、別のオプションを表示することができるようになりました。
内部メッシュフォーマット
メッシュの内部データ構造が、主に格納データの別の配列への分離により、大幅な変更を受けました。詳細は設計タスクを参照してください。
さらに多くのメッシュデータが、汎用属性システムにより Python から mesh.attributes[name]
でアクセス可能になりました。既存のこのデータを取得する API は残りますが、速度は劣り、新しいメソッドの方が大抵は高速になります。対象の属性がない場合は、先に作成する必要があります。
- Mesh の頂点、辺、ポリゴンの "hidden" 状態が、別の汎用 boolean 属性に格納されるように。(2480b55f216c31)
- 属性名はそれぞれ、
.hide_vert
、.hide_edge
、.hide_poly
で、BOOLEAN
タイプになります。
- 属性名はそれぞれ、
- 同様に、メッシュの選択が汎用属性に移動しました。(rB12becbf0dffe)
- 属性名は
.select_vert
、.select_edge
、.select_poly
で、BOOLEAN
タイプになります。
- 属性名は
- メッシュポリゴンのマテリアルインデックスが汎用属性に格納されるように。(f1c0249f34c417)
- 属性名は
material_index
、INT
タイプです。
- 属性名は
- スカルプトの Face Set(面セット)が汎用属性に格納されるようになり、Python API でアクセス可能になりました。(rB060a53414194)
- 名前は "
.sculpt_face_set
"、INT
タイプです。
- 名前は "
- 内部的に、ベベルウェイトが状況に応じて別の配列に格納されるようになりました。ただしこの属性へのアクセスは未変更なままです。(rB291c313f80b4)
use_customdata_vertex_bevel
とuse_customdata_edge_bevel
プロパティが、レイヤーの削除と追加を行うオペレーター(MESH_OT_customdata_bevel_weight_{vertex,edge}_{add,clear}
)で置き換えられました。
- サブディビジョンサーフェスの辺クリースが、状況に応じて別の配列に格納されるように。(rBa8a454287a27)
- Mesh に新しく
edge_creases
プロパティが追加、辺とは独立してクリース値にアクセスするのに使用します(高速)。 - プロパティ
use_customdata_vertex_crease
とuse_customdata_edge_crease
が削除されました。これらは前述の API やMESH_OT_customdata_crease_{vertex,edge}_{add,clear}
オペレーターで置き換え可能です。
- Mesh に新しく
下記はスカルプトの面セットが存在しない時に作成するサンプルです。
if ".sculpt_face_set" not in mesh.attributes:
face_sets = mesh.attributes.new(".sculpt_face_set", "INT", "FACE")
face_sets.data[10] = 14
互換性のなくなる変更
- 未使用の「ノードを追加しリンクする」オペレーター、
NODE_OT_add_and_link_node
が削除されました。(rB543ea415690f)
- 未使用オペレーター
MESH_OT_vertex_color_add
、MESH_OT_vertex_color_remove
、MESH_OT_sculpt_vertex_color_add
、MESH_OT_sculpt_vertex_color_remove
が削除されました。- これらのオペレーターは、
Mesh.vertex_colors.new()
と.remove()
関数(これも廃止予定)、または属性 API(Mesh.attributes
)で置き換え可能です。
- これらのオペレーターは、
Mesh
プロパティのuse_customdata_vertex_bevel
、use_customdata_edge_bevel
、use_customdata_vertex_bevel
、use_customdata_edge_crease
が、has_bevel_weight_edge
、has_bevel_weight_vertex
、has_crease_edge
、そしてレイヤーを追加・クリアする特定のオペレーター、MESH_OT_customdata_bevel_weight_{vertex/edge}_{clear/add}
、MESH_OT_customdata_crease_{vertex,edge}_{add,clear}
で置き換えられました。(291c313f80b4cc, rBa8a454287a27).
- グリースペンシルのフィルツール用の
Leak Size
が削除されました。(bdbf24772a0d)
- グリースペンシルのフィルツール用に、ラインを延長する方法を設定する新しいメソッドを追加。(172b0ebe6adf)
- UV 編集の丸めモード、
Snap to Pixels
が、Round to Pixels
(ピクセルに揃える)にリネームされました。(b5115ed80f19)
- UV カスタムグリッドの細分化が X 軸と Y 軸で別々に設定可能に。(a24fc6bbc1ae)
- もうジオメトリノードが
NodeItem
システムを使わないようになりました。(rB837144b4577f)nodeitems_utils.node_items_iter
などの関数でも取得できなくなりました。代わりに直接ノードタイプを反復してください。
(訳注:この変更で Node Wrangler に問題が発生しています。詳しくはこちら)
- ビルトインノードタイプのソケットの追加・削除・移動が不可能になりました。(rB52bd198153e)
レンダーエンジンパス
デフォルトの Render results は Combined(統合)パスのみになり、レンダーエンジンは生成する他のパスをすべて明示的に指定する必要があります。Blender はそのレンダーエンジンの update_render_passes
関数を問い合わせ、register_pass
を使用し、そのエンジンが指定した全レンダーパスを追加します。(3411a96e74)
以前は、対応する ViewLayer.use_pass_*
プロパティが有効化されていれば、ビルトインレンダーパスが自動的に追加されていました。もしレンダーエンジンがこれに依存しているのなら、そのパスを update_render_passes
内で明示的に追加する必要があります。