Dev:JA/Ref/Release Notes/3.30/Python API
< Dev:JA | Ref/Release Notes | 3.30
元記事:Reference/Release Notes/3.3/Python API - Blender Developer Wiki
Python API とテキストエディター
バッググラウンドジョブ
新しくレンダリングとベイキングジョブの状態を Python から取得可能に。(rBf4456a4d3c97):
- 新しい
bpy.app.is_job_running(job_type)
関数。job_type
パラメーターとして、"RENDER"
または"RENDER_PREVIEW"
、"OBJECT_BAKE"
を取り、現在どのタイプのジョブが実行中かをブール値で返します。
ここでは意図的に、Blender の全ジョブタイプのサブセットのみの対応にしています。その方が、これら「隠し」ジョブを現状(Blender の内部の詳細を公にするのではなく、信頼できる一部 API のみ公開)で維持できるからです。
将来的には、明確かつテスト可能なユースケースの場合、対応するジョブタイプのリストが場合に応じて拡張される可能性があります。
- 新しい app ハンドラ
object_bake_pre
、object_bake_complete
、object_bake_canceled
。それぞれオブジェクトベイクジョブ開始、完了、キャンセル時の信号に対応しています。
その他の追加
bpy.props.StringProperty
が、search
とsearch_options
引数に対応。string プロパティ編集時の候補が表示できます。(3f3d82cfe9cefe4)
- XR: XR イベントデータ内の OpenXR ユーザーパスを開放(
XrEventData.user_path/user_path_other
)。(23be3294ff5)
- ID Management: 与えられた ID の参照する ID のリストを取得するユーティリティ関数を追加(26d375467b9)。以下はその例です。
from bpy_extras.id_map_utils import get_id_reference_map, get_all_referenced_ids def suffix_dependents(object: bpy.types.Object, recursive=True, suffix: str): """Append suffix the names of datablocks used by an object, including itself.""" ref_map = get_id_reference_map() if recursive: # Get all IDs referenced by a Blender Object: Its Mesh, Shape Key, Materials, Textures, Node Graphs, etc. datablocks = get_all_referenced_ids(collection, ref_map) else: # Get only directly referenced IDs: Its Mesh and any IDs referenced via Custom Properties. datablocks = ref_map[object] datablocks.add(object) # The object itself is not already included. for db in datablocks: db.name += suffix
- 表示中のメタストリップを選択する VSE API 関数を追加。(6b35d9e6fbef)
mathutils.Matrix.is_identity
読み込み専用属性を追加。行列の同一性をチェックします。(133d398120bfa5c)
FCurveKeyframePoints.clear()
を追加。F カーブ上のすべてのキーフレームの制御点を削除します。(rB4812eda3c5d1)
- Event に
type_prev
とvalue_prev
メンバを追加。(2580d2bab50f399)
その他の変更
blend_render_info
モジュールが、Z 標準圧縮 blend ファイルの読み込みに対応しました。(b3101abcce967c1)
- コンテクストメニューのエントリを追加する API が変更されました。
WM_MT_button_context
を手動で登録する代わりに、Blender 自身で登録を行うUI_MT_button_context_menu
に描画関数を append してください。互換性の維持のため、旧 API は今も利用可能ですが、将来のリリースで廃止される予定です。よってアドオンにはこの新 API へ更新が必要です。(8a799b00f8fa)
### Old API ### class WM_MT_button_context(Menu): bl_label = "Unused" def draw(self, context): layout = self.layout layout.separator() layout.operator("some.operator") def register(): bpy.utils.register_class(WM_MT_button_context) def unregister(): bpy.utils.unregister_class(WM_MT_button_context) ### New API ### # Important! `UI_MT_button_context_menu` *must not* be manually registered. def draw_menu(self, context): layout = self.layout layout.separator() layout.operator("some.operator") def register(): bpy.types.UI_MT_button_context_menu.append(draw_menu) def unregister(): bpy.types.UI_MT_button_context_menu.remove(draw_menu)
互換性のなくなる変更
- Strip のプロパティ
frame_start
、frame_offset_start
、frame_offset_end
が浮動小数点数になりました。(302b04a5a3fc)
SoundSequence.pitch
が、speed_factor
プロパティで置き換えられました。このプロパティは他のエフェクト以外のストリップでも、再生速度のコントロールに利用可能です。(302b04a5a3fc)