「Dev:JA/Ref/Release Notes/4.20/python api」の版間の差分
(ページの作成:「{{MARKDOWN}} 元記事:[Python API - Blender Developer Documentation](https://developer.blender.org/docs/release_notes/4.2/python_api/#statically-typed-idproperties)…」) |
|||
1行目: | 1行目: | ||
{{MARKDOWN}} | {{MARKDOWN}} | ||
− | 元記事:[Python API - Blender Developer Documentation](https://developer.blender.org/docs/release_notes/4.2/python_api | + | 元記事:[Python API - Blender Developer Documentation](https://developer.blender.org/docs/release_notes/4.2/python_api) |
# Blender 4.2LTS: Python API | # Blender 4.2LTS: Python API |
2024年11月16日 (土) 20:17時点における最新版
元記事:Python API - Blender Developer Documentation
目次
Blender 4.2LTS: Python API
アドオンのパッケージ化
新しいエクステンションプラットフォームに伴い、アドオンをパッケージ化する新しい方法も登場しました。これはスクリプト内に bl_info
を入れる代わりに、別の blender_manifest.toml
ファイルを使用します。詳細は エクステンションユーザーマニュアル(英文)を参照してください。
旧パッケージ化方法も動作しますが、Legacy(旧版)とみなされるため、アドオンをこの新しいマニュフェストファイルに切り替えることをお勧めします。
追加
オンラインアクセス
-
bpy.app.online_access
は読み込み専用のプロパティで、Blender(とアドオン)がインターネットへのアクセスを要求しているかどうかをチェックします。 -
アドオンはインターネットへアクセスする前に、このプロパティのチェックが求められます。ドキュメント(英文)をチェックしてみてください。
-
また、
bpy.app.online_access_override
で、Blender が--offline-mode
や--online-mode
で起動したのかどうかがわかります。
bpy.utils
モジュール
-
EXTENSIONS
オプションがbpy.utils.user_resource()
に追加。(dc9430c480) -
bpy.utils.register_cli_command
とunregister_cli_command
が追加、スクリプトが(-c
,--command
)による専用のコマンドライン機能を設定可能に。(9372e0dfe0) -
bpy.utils.extension_path_user(__package__, path="", create=False)
を追加。(96906536db).
アニメーション
-
rna_struct.keyframe_insert()
に、キータイプを設定する新しいオプションキーワード引数keytype
が追加(1315991ecb)。これにより、新規キーのタイプを直接設定可能になりました。
例:bpy.context.object.keyframe_insert("location", keytype='JITTER')
-
F カーブの新しい関数:
bake
。既存のカーブに与えられた間隔で与えられた範囲にキーを作成します。(20a4c9c928
レイアウトパネル
ポップアップや Redo(やり直す)パネル、ファイルブラウザーのサイドバー内のオペレータープロパティ表示用のレイアウトパネルに対応しました。現在、アドオンは Blender ユーザーインターフェイスの仕様に準じ、プロパティの構成にパネルを使用することを推奨します。 (aa03646a74, 02681bd44d)
エクスポーター
エクスポーターアドオンが、新しいエクスポーターコレクションに対応しました。
これには bl_export_operator
を設定した FileHandler
と、そのオペレーターにエクスポートするコレクションを示す、collection
という名の文字列プロパティが必要です。サンプルとして FBX と glTF アドオンをチェックしてみてください。
モーダルオペレーター
-
Window.modal_operators
。実行中のモーダルオペレーターのリストを提供します。(#122193) -
bl_options
にMODAL_PRIORITY
を追加し、モーダルオペレーターが他のモーダルオペレーターより前にイベントを処理できるようになりました。(6efd7a6a50)
ハンドラー
- Render: "render_stats" ハンドラーに情報文字列を入れることができるように。(fcc481a407)
UI
-
オペレーターの確定・キャンセルボタン用で、キャンセルのデフォルト化に対応:
WindowManager.invoke_props_dialog(..., cancel_dfault=False)
。(1cfc83d5f6) -
Region.tag_refresh_ui
を追加、ポップオーバーやオペレーターダイアログなどのポップアップのリフレッシュに対応。(fa27d2fe65) -
Context.region_popup
を追加、ポップアップの領域にアクセスできます。(742a8b47cd)
互換性のなくなる変更
静的型付けされた ID プロパティ
従来、IDプロパティは静的型付けがされておらず、Python で簡単に変更できていました。IDProperty への float 値の割り当てを Python コードで、例えばこのプロパティを 'double' に変換するなど。
これは特にシステム定義の ID プロパティで問題になっていました(つまり、これらがジオメトリノードモディファイアープロパティや、Python 定義の「動的 RNA」プロパティなどの内部 Blender データ用のバックエンドストレージとして使用されているため)。
また、簡単にライブラリオーバーライドを壊してしまい、参照の型とオーバーライドデータの型に違いがある時に、望ましくない結果になる可能性があります
以下の ID プロパティは Python API から変更できない、固定の静的な型になりました。配列(vector)の場合、長さも型の一部とみなされ、固定となります。
-
システム定義:
- ジオメトリノードモディファイアー設定 ID プロパティ
- Python 定義の(
bpy.props.
モジュールを通じた)プロパティ
-
ユーザー定義:
- UI から作成したプロパティ(「Properties」(プロパティ)エディター内の「Custom Properties」(カスタムプロパティ)パネルから作成した プロパティ)で「Overridable」(オーバーライド可)オプションを有効にした時
このようなプロパティに値を割り当てる時、可能であれば「適切な変換」を試します(例えば整数は float に変換可能ですが、float は整数の ID プロパティに割り当てできません)が、無理であれば割り当てに失敗します。
注意
技術的には、これは互換性が失われる変更の一つです。特にジオメトリノードモディファイアーの場合、現在の Python からの、これらのデータに「予測される」アクセス方法は、「生の」 ID プロパティパスを通じた物です。しかし、実際に「適切でない」使用による ID プロパティの互換性はなくなると思われます。
詳細は 設計タスク(英文) をご覧ください。
コミット:4d1fe98604、b278e37f70、76f03eb141、9c41bf4fa2
bpy.utils
モジュール
AUTOSAVE
オプションがbpy.utils.user_resource()
から削除されました。(6bfc8612bf)
レンダー設定
-
EEVEE 識別子が
BLENDER_EEVEE_NEXT
に変更されました。 -
モーションブラー設定が Cycles と EEVEE で統合され、
bpy.types.RenderSettings
に移動しました。(74b8f99b43)scene.cycles.motion_blur_position
→scene.render.motion_blur_position
scene.eevee.use_motion_blur
→scene.render.user_motion_blur
scene.eevee.motion_blur_position
→scene.render.motion_blur_position
scene.eevee.motion_blur_shutter
→scene.render.motion_blur_shutter
-
ライトの影の投射(cast)設定が Cycles と EEVEE で統合され、
bpy.types.Light
に移動しました。(1036d9bdb2)light.cycles.cast_shadow
→light.use_shadow
-
EEVEE の Bloom(ブルーム)は廃止予定となりました。(#123059)
view_layer.eevee.use_pass_bloom
scene.eevee.use_bloom
scene.eevee.bloom_threshold
scene.eevee.bloom_color
scene.eevee.bloom_knee
scene.eevee.bloom_radius
scene.eevee.bloom_clamp
scene.eevee.bloom_intensity
-
EEVEE(4.2より前)固有のマテリアル設定は廃止予定となり、可能な物はエイリアスになりました。(c7807a425a)
bpy.types.Material.blend_method
→bpy.types.Material.surface_render_method
。'Opaque' と 'Alpha Clip' は deferred(Dithered)になります。show_transparent_back
はuse_transparency_overlap
にリネームされました。use_screen_refraction
はuse_raytrace_refraction
にリネームされました。use_sss_translucency
とuse_sss_translucency
は廃止予定です。
-
Light probe(ライトプローブ)API が変更されました。(6a71a91b83)
- 各ライトプローブタイプが自身のタイプを持つように。
grid_
接頭辞が削除され、ボリュームプローブへのアクセスに制限されました。- Parallax と他の球型(sphere)プローブのみのプロパティは球型プローブに限定されました
visibility
プロパティは廃止予定です。
-
廃止予定の影(shadow)の設定
shadow_cube_size
とshadow_cascade_size
はもう使用されておらず、将来のリリースで削除される予定です。
ノード
-
ノードグループパネルを作成する
NodeTreeInterface.new_panel
関数から、未使用のparent
引数が削除されました。(#118792) -
一部ノードプロパティは名前の衝突の修正のためリネームされました。(deb332601c):
- コンポジターの Box/Ellipse Mask(ボックス/楕円)マスクノード:
width
→mask_width
(height
も同様) - シェーダー AOV の Output(出力)ノード:
name
→aov_name
- ジオメトリノードの Color(カラー)ノード:
color
→value
- コンポジターの Box/Ellipse Mask(ボックス/楕円)マスクノード:
Image Object オペレーター
-
"add image object"(画像オブジェクト追加)オペレーターが廃止予定となり、単一オペレーター
object.empty_image_add
に統合されました。(013cd3d1ba) 従来、画像エンプティを追加するオペレーターは二つあり(object.load_reference_image
とobject.load_background_image
)、ドロップ用のオペレーターが分かれていました(object.drop_named_image
)。 -
"add/remove background image from camera" オペレーターがリネームされ、カメラオブジェクト専用とはっきりわかるようになりました。(013cd3d1ba):
view3d.background_image_add
→view3d.camera_background_image_add
view3d.background_image_remove
→view3d.camera_background_image_remove