Dev:JA/Ref/Release Notes/2.90/Python API
目次
Blender 2.90: Python API
互換性
Operator Search(オペレーター検索)
新しいオペレーター検索ではメニューを介してのみ検索するため、検索のみにオペレーターを公開しているアドオンはアップデートする必要があります。
常にメニューを介してオペレーターを公開し、ユーザーがオペレーターを発見できるようにする方が、一般的に好ましいでしょう。
もっと不明瞭なオペレーター、例えば主に開発者用として意図した物には、TOPBAR_MT_app_system
メニュー内に追加することをお勧めします。これはトップバーの Blender アイコン下の System(システム)メニューからアクセスできます。
その他の変更
- ライブラリ:
bpy.data.libraries.write
relative_remap
boolean 引数が、path_remap
enumeration で置き換えられました。これは書き込み時にリマップする別のパスタイプを選択できます。
BevelModifier.use_custom_profile
プロパティが、新しいprofile_type
enum の一部になりました (6703c7f7f1f6)。これはベベルツールにも適用されます。
- ベベルオペレーターの
vertex_only
プロパティが、VERTICES
とEDGES
オプションの付いた、新しいaffect
enum に変更されました。(4aa2a5481cec)
- モディファイアーの Apply(適用)オペレーターの
apply_as
引数が新しいオペレーター、modifier_apply_as_shapekey
に移動しました。この新しいオペレーターは、シェイプキーをモディファイアーの削除なしで保存することもできます。(01c8aa12a177)
ユーザーインターフェイス
- Column と row で関連する設定を heading でまとめることができるように。例:
col = layout.column(heading="Tooltips")
col.prop(view, "show_tooltips")
col.prop(view, "show_tooltips_python")
レイアウトシステムは heading をプロパティ分割レイアウトの左の列に挿入しようとしますが、無理な時は通常の column や row アイテムのように heading を挿入します。
UILayout.prop_decorator(data, property, index=-1)
が追加、手動でのデコレーター(そのプロパティへのキーフレーム設定や、他のアニメーション状態の表示)の挿入を可能にします。これを動作させるには、ルートレイアウト内に、同じパラメーターのアイテムが存在する必要があります。
- チェックボックスが
UILayout.use_property_split
に従うように。これにより、いくつかのレイアウトの仕様が変更になりました。- 関連するチェックボックスは heading により、一つの列(column)にまとめられます(上記参照)。
- 単一のチェックボックスが単一プロパティのON/OFFをコントロールしている場所では、チェックボックスはそのプロパティと一緒に一行(row)にまとめてください。
デコレーター(decorator)アイテムは以下のような定型コードを使い、手動で挿入しないといけません。重要なのは、チェックボックス用と実際のプロパティ用の row レイアウトの親の row レイアウトに、デコレーターを挿入することです。row = layout.row(align=True, heading="Auto Smooth") row.use_property_decorate = False # Don't automatically insert decorators. sub = row.row(align=True) sub.prop(mesh, "use_auto_smooth", text="") subsub = sub.row(align=True) subsub.active = mesh.use_auto_smooth and not mesh.has_custom_normals subsub.prop(mesh, "auto_smooth_angle", text="") row.prop_decorator(mesh, "auto_smooth_angle")
- プロパティとチェックボックスの分離すると、単一のレイアウトやフローレイアウト内に片方だけ置かれてしまった場合、見た目が悪くなります。この場合、
UILayout.use_property_split
を禁止、または固定の非フローレイアウトを使用してください。
UILayout.menu()
とUILayout.operator_menu_enum()
、UILayout.prop_menu_enum()
が、UILayout.use_property_split
を考慮するように。
追記
- Python スクリプトが Blender のクラッシュを起こしたイベントでは、スクリプトの開発者がエラーの原因を特定できるよう、Blender のクラッシュログに Python のスタックトレースを含めるように。(e9c4325515aed9c)
- Mathutils: ベクトル、行列、クォータニオン用の要素に合わせた乗算。(fa7ace221584be4).
- オブジェクトとボーン用の
constraints.copy()
メソッド。コンストレイントと他のオブジェクトの設定を含めた全設定を複製します。(64a584b38a7)
Screen.is_scrubbing
、タイムライン、ドープシート、グラフエディターなどでユーザーが時間中スクラビングしているかどうかを示します。(2be7a11e4331)
Sequences.new_movie()
が、画像や音声ストリップ同様、ファイルの欠けた動画ストリップの作成に対応しました。MovieSequence.reload_if_needed()
は、欠けたファイルがあった場合、動画ストリップをリロードしようとします。これにより、ネットワークでつながったコンピューター間で動画ファイルを同期する動画ストリップを作成できるようになります。(b9f565881e15)
- Driver(ドライバー)でローカルスコープ内で
depsgraph
変数が利用可能に。詳細はリリースノートのアニメーションとリギングを参照してください。
- 新しい
bl_math
モジュール。lerp
、clamp
、smoothstep
関数があります(GLSL のmix
、clamp
、smoothstep
から着想)。これらはドライバーからも利用可能です。(f8cc01595d)
- OpenGL コンテクストを
RenderEngine.render
で使用するオプション。(52543be9a6a)