[2.8]マジックハンドをつくる
さて、「マジックハンド」ですよ。手元のハンドルを閉じると長く伸びてモノをキャッチできるという。これをBlender 2.80beta で作れるのか。
つくるのは結構面倒臭い部類に入ります。ドライバとかコンストレイントとか使っていたり、ワールド座標とローカル座標の理解も必要になってくるかも。
ということで「自分用メモ」という目的の雑な説明に入ります(詳細な手順ではないですのでお気をつけください。)
仕組みの理解
「点Oと点Pの中点に点Qがあります。ここに菱形を作ってください。あとはこれを繰り返します。」「言い忘れましたが点PはX軸方向に動きます。」とかそんな話ですね。
コントロールするための仕組み(Empty)
・ 基準点とコントロールする点をそれぞれ点Oと点Pとする
・ 点PはX軸方向に可動
・ 点Qは点Oと点Pの間の長さの1/2
点P: Controller
点O: rootオブジェクト を親としてペアレント設定しています。
ローカル座標に対して Limit Locationを設定。0.4 < X <1.95
注意点:ControllerオブジェクトにCpoy Location コンストレイントを設定する前に[Alt]+[G]で位置をクリア。X > 2 に移動するとheadの回転がエラーで止まるので、それぞれのオブジェクトのDriverを設定した箇所に Update Dependicies を実行
点Q: offset
Copy Location の Influence を0.5 とすることで「1/2の長さ」に。
注意点:offsetオブジェクトにCpoy Location コンストレイントを設定する前に[Alt]+[G]で位置をクリア。
回転
手元になる部分、2種のheadオブジェクト。
Driverで offsetオブジェクトのX位置から角度を算出してheadへ。rootを親に。
2段目以降
ピンとなるEmpty(pin)ピンとなるEmpty(pin)、基本形状2パターンのオブジェクト(base)との3つを一組に。
pin:
rootを親とします。Driverで X軸に Controllerの Xの値 * n 倍 を与えます。
base:
pinオブジェクトの位置、平行にリンクするheadオブジェクトの回転をコピー。
先端部分
上記「2段目以降」で複製したものを元に、メッシュの差し替え+挟む部分をくっつけることで作成。
以上で雑な説明は終わりです。
おわりに
Driverについてはこちらのページも参考になると思います。
コンストレイントについてはローカル座標とワールド座標を間違えないように気をつければなんとかうまくいくと思います。
お読みいただきありがとうございます。サポートいただいた分はおやつのグレードアップに使おうかと思います。スキ、SNSにシェアもよろしくお願いします!