Dev:JA/Ref/Release Notes/2.90/Python API

提供: wiki
< Dev:JA‎ | Ref/Release Notes‎ | 2.90
2020年9月1日 (火) 01:43時点におけるYamyam (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

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 プロパティが、VERTICESEDGES オプションの付いた、新しい affect enum に変更されました。(4aa2a5481cec)
  • モディファイアーの Apply(適用)オペレーターの apply_as 引数が新しいオペレーター、modifier_apply_as_shapekey に移動しました。この新しいオペレーターは、シェイプキーをモディファイアーの削除なしで保存することもできます。(01c8aa12a177)

ユーザーインターフェイス

  • Column と row で関連する設定を heading でまとめることができるように。例:
    Release notes layout headings.png
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)にまとめてください。
      Release notes properties checkbox subpanel.png
      デコレーター(decorator)アイテムは以下のような定型コードを使い、手動で挿入しないといけません。
      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")
      
      重要なのは、チェックボックス用と実際のプロパティ用の row レイアウトの親の row レイアウトに、デコレーターを挿入することです。
    • プロパティとチェックボックスの分離すると、単一のレイアウトやフローレイアウト内に片方だけ置かれてしまった場合、見た目が悪くなります。この場合、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 モジュール。lerpclampsmoothstep 関数があります(GLSL の mixclampsmoothstep から着想)。これらはドライバーからも利用可能です。(f8cc01595d)
  • OpenGL コンテクストを RenderEngine.render で使用するオプション。(52543be9a6a)