「Dev:JA/Ref/Release Notes/2.90/Animation-Rigging」の版間の差分

提供: wiki
移動先: 案内検索
(ページの作成:「元記事:[https://wiki.blender.org/wiki/Reference/Release_Notes/2.90/Animation-Rigging Reference/Release Notes/2.90/Animation-Rigging - Blender Developer Wiki]…」)
 
(Dependency Graph(依存グラフ)からの取得)
 
(同じ利用者による、間の1版が非表示)
17行目: 17行目:
 
* 3Dビューポートの 'Make Library Override(ライブラリオーバーライドを作成)' オペレーターがアップグレードしました。
 
* 3Dビューポートの 'Make Library Override(ライブラリオーバーライドを作成)' オペレーターがアップグレードしました。
 
** インスタンス化コレクションのオーバーライドに「メイン」オブジェクトを選択する必要がなくなりました(いずれにせよ、もう使うことはなくなりました)。
 
** インスタンス化コレクションのオーバーライドに「メイン」オブジェクトを選択する必要がなくなりました(いずれにせよ、もう使うことはなくなりました)。
** リンク中だが、オブジェクトインスタンスや、そのコレクション以外のオーバーライドが可能に。3Dビューポートでオブジェクトのうち一つを選択し、オペレーターを呼び出してください。(訳注:未検証)
+
** リンク中でも、オブジェクトインスタンスや、そのコレクション以外のオーバーライドが可能に。3Dビューポートでオブジェクトのうち一つを選択し、オペレーターを呼び出してください。(訳注:未検証)
  
 
* オーバーライドをアウトライナーからリセット可能に(設定したオーバーライドプロパティを ID 間の関係の確保を除き、すべて削除し、オーバーライドデータブロックを再読み込みします)。単独でも階層全体でも可能です。
 
* オーバーライドをアウトライナーからリセット可能に(設定したオーバーライドプロパティを ID 間の関係の確保を除き、すべて削除し、オーバーライドデータブロックを再読み込みします)。単独でも階層全体でも可能です。
57行目: 57行目:
 
このドライバーが `is_view_layer_1(depsgraph)` を式内で使用可能になりました。
 
このドライバーが `is_view_layer_1(depsgraph)` を式内で使用可能になりました。
  
'''注意:''' 大雑把に言えば、ドライバー内で `bpy.context` を使用しないでください。例えば、Blender があるウィンドウでレンダリング中、別のウィンドウで3Dビューポートを表示するなど、ドライバーが同時に複数のコンテクストで評価される可能性があります。この場合、`bpy.context` はよく間違った答えを返します。一方、ドライバーへ `depsgraph` を渡す方法では常に正しくなります。
+
'''注意:''' 大雑把に言えば、ドライバー内で `bpy.context` を使用しないでください。例えば、Blender があるウィンドウでレンダリング中、別のウィンドウで3Dビューポートを表示するなどでは、ドライバーが複数のコンテクストで同時に評価される可能性があります。そしてこの場合、`bpy.context` は大抵間違った答えを返してしまいます。一方、ドライバーに `depsgraph` を渡す方法では常に正しくなります。

2020年9月16日 (水) 05:51時点における最新版

元記事:Reference/Release Notes/2.90/Animation-Rigging - Blender Developer Wiki

Blender 2.90: アニメーションとリギング

Library Overrides(ライブラリオーバーライド)

  • より多くのプロパティとデータがオーバーライド可能に(全コンストレイントとモディファイアー、カメラオブジェクトデータなど)。
  • オーバーライドしたデータブロックのコピー時、オーバーライドも複製されるように(例:オブジェクトの階層全体を選択し、3Dビューポートで複製した場合、同じリンクデータの新しいオーバーライドが得られます)。
  • Python 定義のプロパティとカスタムプロパティもオーバーライド可能に(オーバーライド可能として定義されており、属しているデータもオーバーライド可能な場合に限る)。
  • 3Dビューポートからの、オブジェクトやコレクションのオーバーライドの作成時、依存を完璧にチェックし、必要な物すべてをオーバーライドするように(注意:これは典型的な、込み入った制作キャラクターなどでは、多数のデータブロックをオーバーライドします)。
  • アウトライナーからは、選択物までリンクしているデータブロックの階層のオーバーライドが可能です。また、単一のオブジェクトやコレクションに適用する場合は、3Dビューポートでの操作と同様の挙動をします。
  • 3Dビューポートの 'Make Library Override(ライブラリオーバーライドを作成)' オペレーターがアップグレードしました。
    • インスタンス化コレクションのオーバーライドに「メイン」オブジェクトを選択する必要がなくなりました(いずれにせよ、もう使うことはなくなりました)。
    • リンク中でも、オブジェクトインスタンスや、そのコレクション以外のオーバーライドが可能に。3Dビューポートでオブジェクトのうち一つを選択し、オペレーターを呼び出してください。(訳注:未検証)
  • オーバーライドをアウトライナーからリセット可能に(設定したオーバーライドプロパティを ID 間の関係の確保を除き、すべて削除し、オーバーライドデータブロックを再読み込みします)。単独でも階層全体でも可能です。
  • リンクしたライブラリの参照の再読み込み時、オーバーライドが再読み込みされるように。

コンストレイント

  • 負のスケールのある行列を正しく補間可能に。つまり、例えば、Copy Transform(トランスフォームコピー)コンストレイントと、スケール X が -1 のオブジェクトをターゲットにする場合、Influence(影響)スライダーを下げても動作がおかしくなりません。(a5e176a8ed8aと、デモ動画が D8048にあります)

Graph Editor(グラフエディター)

  • スクラビング領域を使用した現在のフレームの変更時、カーソルではなく、フレームだけを変更するように。(fc59febb1b30)

Drivers(ドライバー)

  • 新しい lerpclampsmoothstep 関数。GLSL の mixclampsmoothstep から着想を得ました。(f8cc01595d)
  • Simple Expression(単純な式)サブセットに lerpclampsmoothsteproundlog(val,base) が入りました。(f8cc01595d)

Dependency Graph(依存グラフ)からの取得

ドライバーが現在の依存グラフを、新しい depsgraph 変数で取得可能に(現在のビューレイヤーの取得など)。これはドライバーの式内で使用可能で、さらにカスタムドライバー関数に渡すこともできます(必要なら下記のように、bpy.app.driver_namespace 内に登録してください)。

次の T75553 からのサンプルは、現在のビューレイヤーの名前が View Layer 1 かどうかを調べるのにドライバー関数を使用しています。

式の中で depsgraph を使用するドライバー例
import bpy

def is_view_layer_1(depsgraph: bpy.types.Depsgraph) -> bool:
    print(f"depsgraph={depsgraph.mode} VL={depsgraph.view_layer.name}")
    return "View Layer 1" in depsgraph.view_layer.name

bpy.app.driver_namespace['is_view_layer_1'] = is_view_layer_1

このドライバーが is_view_layer_1(depsgraph) を式内で使用可能になりました。

注意: 大雑把に言えば、ドライバー内で bpy.context を使用しないでください。例えば、Blender があるウィンドウでレンダリング中、別のウィンドウで3Dビューポートを表示するなどでは、ドライバーが複数のコンテクストで同時に評価される可能性があります。そしてこの場合、bpy.context は大抵間違った答えを返してしまいます。一方、ドライバーに depsgraph を渡す方法では常に正しくなります。