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

提供: wiki
移動先: 案内検索

元記事:Reference/Release Notes/3.1/Python API - Blender Developer Wiki

Blender 3.1: Python API

バンドル Python

Python 3.10

Python が3.9から3.10に更新されました。一部の変更がスクリプト作者に影響を与える可能性があります。

Text Editor(テキストエディター)

Crazy space(クレイジースペース)

crazy space は、デフォーム空間(デフォーム前のオブジェクトとシェイプキーとデフォームモディファイアーを適用したオブジェクト間の、頂点毎の位置の写像)と呼ばれる物の実装の一つです。

crazy space はデフォームされたメッシュでのスカルプトなどの機能で、ブラシストロークにおけるメッシュの変形を「キャンセル」し、ベースメッシュに適用するのに内部的に使用されていました。

この crazy space が Python API から利用可能になりました(196da819ba4)下記はサンプルです。

object.crazyspace_eval(depsgraph, scene)

# 二つの頂点間に違いがあり
# 格納する空間(シェイプキー)に変換したい場合
delta_in_orig_space = rigged_ob.crazyspace_displacement_to_original(
    vertex_index=i, displacement=delta)
    
# 上の逆
delta_in_deformed_space = rigged_ob.crazyspace_displacement_to_deformed(
    vertex_index=i, displacement=delta)

object.crazyspace_eval_clear()

これにはデフォームメッシュでのスカルプトと同じ制限があります。主にシェイプキーがある場合に、アクティブシェイプキーが未デフォーム空間用の basis を定義していると仮定して空間の変換が計算されるなどです。 (訳注:この辺はあまり自信がないので元記事を参照されたし)

Demeter Dzadik 氏がリガーにとってどう役に立つかを、解説とデモの動画で行っています。

その他の追加

  • Mesh に新しく vertex_normalspolygon_normals プロパティが追加、値の配列への連続的なアクセスを提供します。(b7fe27314b25a7cfa53e0fbeed71)
    • 内部的には法線はもう MeshVertex に直接格納されなくなりました。MeshVertex.normal プロパティは今も利用可能です。

互換性がなくなる変更

  • Action.frame_range が、利用可能であれば手動でセットしたフレーム範囲が返ってくるようになりました。アドオン作者にはこれがユースケースに適しているか、もしくは常にキーから計算した範囲が返ってくる Action.curve_frame_range に切り替える必要があるかどうかを確認することをお勧めします。(rB5d59b38605d6)