【Blender】他オブジェクトの変化に連動した変化をさせる方法【ドライバーの追加】

201708102010001

オブジェクトBの動き(位置や回転、拡大縮小)によって、オブジェクトAを変化(位置や回転、拡大縮小)させる方法の覚書。Blenderで使われている単語的には、『ドライバーの使い方』ということになるかと。

実際の使い方としては、自動車や自転車の動きに合わせてタイヤ(ホイール)や車輪が回転するような場面で使うことなどをイメージしてもらえればわかりやすいかも……。

上のGIF動画だと、エンプティのY軸移動に合わせて、立方体がX回転する設定になっている。もちろん、エンプティの回転や拡大によって立方体を回転させたり、移動や拡大縮小させることも可能。

ドライバー追加と反映の手順

  1. ユーザー設定内の『ファイルの項目』にある『Pythonスクリプトの自動実行』を有効にしておく。
  2. 3Dビュー上からオブジェクトAとオブジェクトBを追加する。※1
  3. 適当にオブジェクトAとオブジェクトBを編集し、適当な位置に配置する。
  4. オブジェクトAを選択し、トランスフォームの項目のうち、オブジェクトBの動きに連動させて変化させたい項目の上で右クリックする。
  5. 表示されたメニューの中から『ドライバーを追加』 → 『ターゲット中のひとつ』を選択、項目の上で左クリックする。項目がピンク色に変化したら成功。※2
  6. エディタを『3Dビュー』 → 『グラフエディタ』に変更する。
  7. モードを『Fカーブ』 → 『ドライバー』に変更する。
  8. 4で選択した項目のドライバーがあるはずなのでそれを選択し、Nキーで『Nツール』を表示する。
  9. Nツール内の真ん中辺りにあるvarという名称の左側にあるタイプの選択で『トランスフォームチャンネル』を選択する。
  10. オブジェクトの項目に『オブジェクトB』を選択する。
  11. タイプの項目にオブジェクトBの動きで、ドライバーの値として反映させたい『項目(位置、回転、拡大縮小)』を選択する。※3


※1 オブジェクトBが影響を与える側オブジェクトAが影響を受ける側
※2 複数の項目を選択しても可。やり直す場合は追加済みの項目の上で右クリックし、ドライバーの削除を選択する。
※3 影響を与える側の項目であることに注意。

Sample

WS2017KM000019_LI

影響を受ける側のオブジェクトAは立方体、影響を与える側のオブジェクトBはエンプティ。今回はこういうふたつのオブジェクトだけれど、エンプティが円や平面、ランプ、カメラであってもOK。


WS2017KM000020_LI

オブジェクトAを選択した状態で、Nツール内で表示されるトランスフォーム内にあるX回転の項目の上で右クリックし、ドライバーの追加からターゲット中のひとつを選択しようとしているところ。


WS2017KM000021_LI

ターゲット中のひとつを選択し、その後、項目の上でクリックした後、選択したX回転の項目にドライバーが追加され、項目がピンク色に変色したところ。


WS2017KM000022_LI

グラフエディタに移動してNツールを表示し、上の手順の6~を行ったところ。


※ 基本的にオブジェクトAを選択して諸々の設定を行う。これらの設定が上手く行っていれば、オブジェクトBを指定した方法(グラフエディターのNツール内で設定)で変化させると、それに連動してオブジェクトAも変化する。

※ Pythonスクリプトの自動実行が許可された状態でないと、設定が上手く行っていても反映されないので注意。


簡単な応用

WS2017KM000022 (2)_LI

Nツール内に表示される『トライバー』の項目の中にある『タイプ(スクリプト型の式)』の下にある『式』の項目に数式を入力すると、取得された値が数式によって加工されて、ドライバーの値に反映される。

例:var → var * 0.1 とすると、ドライバーの値(反映される値)はvarの1/10に。


また、この式の項目には、Pythonの関数も使える感じだけど、math.floor()やmath.ceil()といった書き方ではなくて、floor()やceil()といった書き方で良い様子。




キングストン Kingston SSD 480GB M.2バージョン NVMe PCIe Gen 3.0 x 4 KC1000 5年保証 SKC1000/480G

Transcend 3D MLC NAND採用 SSD 256GB M.2 2280 PCI Express Gen3 x4 TS256GMTE850
関連記事
スポンサーサイト

0 Comments

Post a comment