今日も今日とてBlenderに関する内容です。以前の記事で以下のようにロボットアームもどきのモデルを作成し、アニメーションをさせました。
rikoubou.hatenablog.com
rikoubou.hatenablog.com
ロボットアームの関節というか、回転軸の数だけ一つ一つ角度を指定してアニメーションさせるというかなり面倒なことをやっていたのですが今回は「1つのオブジェクトを動かすとそれに連動して別のオブジェクトも動く」というオブジェクトの連動させる設定方法の紹介です。
1:以前作成したロボットアームのモデルを読み込む
題材として使うのはなんでもよいのですが、以前作成したロボットアームを使いまわします。
【Blender】別のBlenderファイルを読み込む方法 - ソースに絡まるエスカルゴ
↑の記事にあるように「Append」からモデルを読み込みます。
このままではグリッパー部分は片方ずつしか動かず、連動はしません。
これだとアニメーションづけが面倒なのと、左右で同じだけ開かせるということが難しいので連動できるように設定していきます。
2:連動させたいオブジェクトに「Copy Rotation」を追加する
今回は以下のように正面右のグリッパを動かすと左側のグリッパが連動するようにします。
最初に連動して欲しいオブジェクトである左側のグリッパを選択し、「Constraintアイコン」から「Add Object Constraint」を選び「Copy Rotation」を追加します。
「Target」のアイコンの所をクリックし、連動元のオブジェクト(ここでは07_tsumeL)を選択します。
グリッパ部分はZ軸方向の回転しか行わないので、X、Yのチェックを外します。また爪は左右で逆方向に連動して欲しいのでZの「Invert」にチェックを入れます。
次に「Space」のプルダウンを両方とも「Local Space」に変更します。
これで連動の設定は完了です。
3:連動していることを確認する
2の手順で設定を終えたら実際に連動するかを試してみます。
以下のように正面右側のグリッパを選択して回転させると、もう片側の方も連動しました。また正面左側を選択して移動させようとしても、連動元が動いていないので動かすことができません。
また親オブジェクトを動かして角度や位置がずれても「Local Space」に設定しているため、破綻することなく連動します。
ちなみに両方とも「World Space」に設定した場合は、絶対座標として計算されるらしく、親オブジェクトが移動するとおかしな動きになります。なので基本的には両方とも「Local Space」に設定しておく方が良いと思います。
以上がオブジェクトを回転連動させる方法です。
「Add Object Constraint」で出てくる中には位置やサイズの連動もできる項目があったので、同じような方法で位置やサイズも連動できると思います。
・参考資料