Dev:JA/Ref/Release Notes/2.80/Python API
目次
- 1 Blender 2.80: Python API の変更
Blender 2.80: Python API の変更
Blender 2.80では API の互換性が失われています。アドオンとスクリプトを2.80で実行するには新機能の処理と、API の一貫性と信頼性を向上させるための変更への適合の、両面においてアップデートが必要です。
注意:現在、Blender 2.80の開発はベータ段階であり、最終リリースの準備中ですが、すでにコードが2.80で実行できるよう、アドオン作者の皆さんが更新できるようになっています。Python API はほぼ安定しているといえますが、バグ修正やユーザーフィードバックに関連した小さな変更がいくつかあります。互換性がなくなる変更が出てくる可能性も依然あるものの、最小限にとどめる予定です。
[Addoons API(英文)]
モジュールとクラスの登録が変更され、全アドオンはこれらの処理を更新する必要があります。
[Scene and Object API(英文)]
新しいビューレイヤー、コレクション、選択と依存グラフシステムになり、スクリプトの更新が必要です。
[Mesh API(英文)]
メッシュ API では主にトライアングルテッセレーション用のデータ構造について少し変更があります。
[Preferences API(英文)]
リデザイン・再構成された Preferences の UI に合わせるため、Python API も更新されました。
[User Interface API(英文)]
新しいツールバー、プロパティレイアウト、アイコンでアドオンの更新が必要です。
[アドオンの2.8ユーザーインターフェイスへの適合(英文)]
Blender 2.8は新しい UI になり、アドオンを適合させる必要があります。
[Draw API(英文)]
Blender が OpenGL コアプロファイルにアップグレードされた影響を、アドオンも受けます。
[Timer API(英文)]
指定の時間の間隔で関数を実行させるための新しい API です。
[ヘルパーモジュール]
様々なヘルパーモジュールが追加・削除・変更されました。
名前の変更
ユーザーインターフェイス内でいくつかの語句が変更され、Python API もこれに追従しています。主な物は、
- Lamp → Light
- Group → Collection
- Dupli → Instance
- Render Layer → View Layer
- User Preferences → Preferences
キーワードのみの引数
すべてのキーワード引数は同じキーワードを与える必要があり、位置によって渡すことはできなくなりました。
2.7x
context.scene.frame_set(10, 0.25) noise.noise(position, noise.types.BLENDER)
2.8x
context.scene.frame_set(10, subframe=0.25) noise.noise(position, noise_basis='BLENDER')
行列の乗算
従来の行列の乗算は * を使用していましたが、現在スクリプトは @ を乗算に使用してください(PEP 465 より)。これは以下に適用されます。
- Vector * Vector
- Quaternion * Vector
- Matrix * Vector
- Vector * Matrix
- Matrix * Matrix
注意:将来的に * は要素ごとの積に使用される予定です。
2.7x:
mat = Matrix() vec = Vector() result = mat * vec
2.8x:
mat = Matrix() vec = Vector() result = mat @ vec
2.7xの構文を2.80以降で使用した場合、下記のエラーが出ます。
TypeError: Element-wise multiplication: not supported between 'xxx' and 'yyy' types
インプレース行列乗算
注意:従来 mat_a *= mat_b では元の行列を変更しませんでしたが、2.8では変更するようになりました(Vector や Python のリストなどの他のタイプと合わせました)。
新しい行列を作成するスクリプト、特に行列が関数の引数として渡され、不意に変更される場合、互換性が失われる変更となる可能性があるため、気をつけてください。
オペレーターの更新
削除:
object.select_by_layer
リプレース:
view3d.viewnumpad (代わりに view3d.view_axis または view3d.view_camera を使用してください)
プロパティの更新
リプレース:
SpaceView3D.viewport_shader → SpaceView3D.shading.type
その他
- Bone と PoseBone に新しくボーン特有の計算と、Bボーン形状用のユーティリティメソッドが追加。(a58f0eea4f、48a3f97b23)