Dev:JA/Ref/Release Notes/4.50/python api
< Dev:JA | Ref/Release Notes | 4.50
元記事:Python API - Blender Developer Documentation
目次
Blender 4.5 LTS: Python API
互換性のなくなる変更
gpu
gpu.types.GPUShaderコンストラクタが廃止予定になり、Blender 5.0で削除されます。変わりにgpu.shader.create_from_info()を使用してください。(9d06508837)
shader.programが廃止予定になり、つねに-1を返すように。(3562433ae7)
GPUVertFormat.attr_add()内でのINT_TO_FLOATの使用が非推奨に。これらを使用する属性はデータ転送前、またはシェーダー内部で明示的に float へ変換すべきです。(91627b3d47)
- 4バイトに揃っていない頂点フォーマットの使用が非推奨に。これらの属性タイプは5.0では対応されなくなる予定です。(57d9c2c098)
- ビルトインシェーダーで
GPUBatchを使用したワイドラインまたはスムーズラインの描画では、POLYLINEの使用が必要になりました ([シェーダーバリアント](https://docs.blender.org/api/4.5/gpu.shader.html)。(3d8854b021)
- ビルトインシェーダーによるポイントの描画では、
POINTの使用が必須となりました。[シェーダーバリアント](https://docs.blender.org/api/4.5/gpu.shader.html). (c56a855b9f)
ビデオシーケンサー
strips.new_effect()関数の、エフェクトストリップの入力を指定するオプションパラメータのseq1とseq2が、input1とinput2と呼ばれるように。(41781df1a6)
レンダーパス
scene.render.frame_path()は絶対失敗しない物として使用されてきましたが、今後はレンダー出力パスに、パステンプレート(英文)のエラー処理がある場合、失敗する可能性があります。
シェーダー
- Bump(バンプ)と Displacement(ディスプレイスメント)ノードのデフォルト距離が変更されました。これらのノードを作成するインポーターは、同じ結果を得るにはこれらの値を1.0に設定する必要があるでしょう。(bb6a88b95d)
追加
ユーザーインターフェイス
KeyConfig.keymaps.find_match(keymap)
他のキー設定のキーマップとマッチする物を探すのに便利な関数を追加。
これは既存のfindメソッドに複数の引数を渡す必要を回避します。(28126b83a5)
KeyMap.keymap_items.find_match(keymap, keymap_item)
他のキーマップのキーマップアイテムの参照に対応するメソッドを追加しました。
これにより、アドオンが元のキーマップエントリを("Reset to Default"(デフォルトにリセット)の使用で)維持しつつ、アドオン用のキーマップアイテムを定義するためのキーマップエディターをプリファレンスに表示できます。
一般的に、アドオンがcontext.window_manager.keyconfigs.addon内で作成したキーマップアイテムを参照するには、context.window_manager.keyconfigs.userのキーマップでfind_matchメソッドを呼ぶべきです。(4a6d687d53)
GIZMO_GT_button_2dGizmo タイプのicon_valueプロパティ
カスタムアイコン値の使用に対応すべく、GIZMO_GT_button_2dGizmo タイプに新しくicon_valueプロパティを追加しました。これにより、(カスタムプレビューコレクションを通じて)ユーザー定義のアイコンを、またはマテリアルや画像のプレビューのように生成したアイコンを使用できます。(ec149a919a)
このプロパティは新しい Python テンプレート内にもドキュメント化されており、Text Editor(テキストエディター)の Templates(テンプレート)メニュー→ Python → Gizmo Simple 2D にあります。(bcb343c597)
ウィンドウマネージャ
- NDOF モーション(3Dマウスモーションデータ)を、
Event.ndof_motionにて公開。(776e2eb707)
パイプラインと入出力
Mesh.calc_smooth_groups(use_bitflags=False, use_boundary_vertices_for_bitflags=False)
スムーズグループを計算する Mesh API が更新、オプションで境界の辺だけではなく、境界の頂点も考慮されるように。
これは他の DCC ツールやゲームエンジンなどで、法線をこのデータから正しく再計算してスムーズグループを生成するのに適した方法だと思われます。
詳細は PR#105516とPR#135248をお読みください。(00de07f752)
blf
blf.bind_imbufとblf.draw_buffer関数による、画像バッファへの描画に対応しました。
with blf.bind_imbuf(font_id, imbuf):
blf.draw_buffer(font_id, text)
bpy.app
bpy.app.build_options.image_webpに対応。(e94068e8d2)
imbuf
imbuf.load_from_bufferによるメモリからの画像読み込みに対応。(10e1aaf02c)
スカルプト
brush.asset_activateが、バックグラウンドモードでの使用中は読み込みをブロックするように。(898e6f3687)
sculpt.mask_by_colorに、locationパラメーターが付き、スクリプトから region 空間のマウス位置を指定してオペレーターを実行できるようになりました。(956a0fad80).
GeometrySet
- 新しく
GeometrySetAPI が追加、従来よりもっと直接的な方法でオブジェクトから評価済みジオメトリデータの取得できるようになりました。(29fddf4710)
ライト
if object.type == 'LIGHT':
light = object.data
energy = light.energy * math.pow(2.0, light.exposure)
if not light.normalize:
energy *= light.area(matrix_world=object.matrix_world)
color = light.color
if light.use_temperature:
temperature_color = light.temperature_color
color[0] *= temperature_color[0]
color[1] *= temperature_color[1]
color[2] *= temperature_color[2]
ノード
- 新しい
NodeSocket.is_inactiveとNodeSocket.is_icon_visibleアクセサ。(fbb1204913).
グリースペンシル
グリースペンシルのページの Python APIの項をご覧ください。