 
        主に、LightWave3Dに関する事を書き記します。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
	モデラーで素材を作り終えましたので、今度はバネを伸縮させる仕掛けを作っていきます。
	
	 
【1.親子関係とIK】
	作業をレイアウトに移り、バネのオブジェクトをシーンに追加。
	[Spring_001:a] → 上ピストンパーツ
	[Spring_001:b] → バネ
	[Spring_001:c] → 下ピストンパーツ
	Nullを4つ追加。
	全体制御の「Master」。
	目標アイテムを適用する側のアイテム「T」。
	バネの動きを制御するIK用のアイテム「IK」。
	ゴールアイテム「Goal」です。
	[Spring_001:a]の中心点に「Master」と「T」をスナップ移動して、
	[Spring_001:c]の中心点に「IK」と「Goal」をスナップ移動。
	
	
	
	
	「その場でペアレント」をオンの状態にして上の図のように親子関係を組んでいきます。
	
	
	
	「T」を選択してモーションオプションパネルを開き、目標アイテムを「Goal」にします。
	
	
	
	すると、上の画像のように意図しない方向にバネが向いてしまうので、[Spring_001:a]を選択してピッチ回転で-90°回転させて位置を修正。
	
	 
さらにこのままだと「T」と[Spring_001:a]がジンバルロックを起こした状態になっていているので、中心点回転記録で軸をリセット。
	「Goal」を移動させると、バネがゴールアイテムに向かって回転してくれてます。
	確認出来たら「Goal」を元の位置に戻す。
	IKを組んでいきましょう。
	ここからはモーションオプションをそのまま開きっ放しにしておいてください。
	[Spring_001:a]を選択してモーションオプションを開き、「子孫のIK効果を及ぼさない」をオンにする。
	子の[Spring_001:c]を選択して、「モーションオプション」→「制御と制限」タブ→「位置」を開いて、「Y位置制御」をキーフレームからインバースキネマティクスに変更。
	 
	そのまま子アイテムの「IK」を選択して、「モーションオプション」→「IKとモディファイヤ」タブ→ゴールオブジェクトから「Goal」アイテムを選択。
	
	 
	これでIK制御が出来るようになりました。
	 
	このままゴールアイテムを動かすと下の[Spring_001:c]が引っこ抜けたり突き抜けたりしてしまいますので、[Spring_001:c]のY位置制御に制限を付ける。
	 
	Y位置制限をオンにして最小値と最大値を入力。
	最小値には、[Spring_001:c]のデフォルトのY軸の数値(-2.6407m)を入力します。
	
	
	
	
	「Goal」アイテムを選択してパーツの一番突き当りまでY軸移動。
	この時の[Spring_001:c]のY位置の数値(-1.2498 m)を最大値に入力します。
これでゴールアイテムが移動して行き過ぎても[Spring_001:c]の位置はあるべき場所に静止してくれるようになりました。
	ここまで出来たら、お待ちかねのバネの動く仕掛けを作っていきます。
	
	
	 
	
	【2.バネのモーフ制御】
[Spring_001:b]を選択して、「セットアップ」タブ→「追加」カテゴリ→「ボーン」から骨(Bone)を一本生成。
「Bone」選択状態でモーションオプションパネルを開き、モディファイヤ追加から「Follower」を追加して開きます。
	Item To Followを[Spring_001:c]にしてPitch Angle以外は全てオフにします。
	from(から「Y」を選択してxに「10.0」と入力。
	(xの数値は特に触る必要がありませんが、連動するアイテム座標の変化の度合いを視覚的に見易くする為に数値を高くしています。)
	続行ボタンを押すとボーンが勝手に上向きへと回転してくれています。
	 
	試しにGoalアイテムを動かしてみると、[Spring_001:c]の動きに合わせてボーンが回転しているのが分かります。
	これで[Spring_001:c]の移動とボーンの回転がリンクされました。
	
	
	
	ちょっとここで作業の手を止めます。
	
	この時点で、どうしてボーンを追加してFollowerを使う意味があるのか?
	今やってるこの作業はいったい何なのか?
	
	・・・このように疑問に思われるかもしれないので、その訳をここに書き残しておきます。
	
	 
	
	モーフはシーン上にあるアイテムと違ってグラフチャンネルのみの編集に限定されてしまっています。
	[Spring_001:c]のIK移動ではグラフチャンネルに変化は無いので、モーフとの連動が出来ずにとても頭を悩ませていました。
	あれこれ考えて、IK操作に合わせてモーフを変位させる方法で「JointMorph」が候補にあがってきました。
	 
	しかし、これはボーンしか使えないのですぐに候補から外れましたが、後々になって何の意味も持たないボーンを追加して、モーションExpression(Follower)の利点であるAfter IKを利用すれば、[Spring_001:c]の動きに合わせてボーンが回転してJointMorphに使えるのではないかと思いました。
	
	結果、JointMorphにボーンの回転値を入力してモーフの最小値最大値を合わせていけば、ボーンを通じてIKの動きに合わせたモーフ変形が可能になったのです。
	
	 
	
	と、こんな感じでこの回りくどい手法を取っているのです。
	分かっても分からなくても誰にでも簡単に作れるのでこの説明は不要と言えば不要なんだけど・・・それだけこのやり方を見つけるのに苦労したってことで個人的に話したかったのですよ。(笑
	
	
	再び作業に入っていきたいと思います。
	あとはもう、ちょっとした作業をこなしていくだけです。
	[Spring_001:b]を選択してオブジェクトのアイテムプロパティを開き、「変形タブ」→「変位プラグイン追加」からJointMorphを追加して開きます。
	 
HeadingとBankのチェックをオフにして、Boneから「Spring_001:b-->Bone」を選択して、PitchのEndoMorphからSpring(モーフ名)を選択します。
	
	
	
	Angle Minimumにデフォルト時のボーンの最小値(-26.41°)を入力。
	Angle Maximumに[Spring_001:c]の一番突き当りまでY軸移動時のボーンの最大値(-12.5°)を入力。
	IKの位置移動に従ってバネのモーフが変形してくれるようになりました。
	これで、スプリングリグの完成です。
	 
	
	しかし、このままではちょっとした欠点があります。
	図のように、ゴールアイテムをアウトゾーンに移動するとモーフ効果がオフになってしまいます。
	現実的に考えればアウトゾーンにゴールを動かす事は無いので、この空間を避けて動かせば問題ありませんがこれは何かとデリケートでやっかい・・・何とかならないものか。
	↑[解決]
	JointMorphのAngle Maximumに入力した回転値を(-12.5°)から(-12.4°)に変更。
	ボーンの最大値を丁度にせず、余分に+0.1°(マイナス値の場合は「-」)入力すれば、アウトゾーン内にゴールが移動してもモーフ効果がオフになることはありません。
	 
	
	これでバネ作りは終わり。
	長々とすみませんでした、お疲れ様です~。^^;
	サンプルも用意しましたのでご自由にどうぞ。
	
	
	2012_06_07_spring_RIG_sample
	
	
	(9.6/10.1/11 動作確認済み。)
JointMorphPlusを使えば、「伸」⇔「中間」⇔「縮」の多段階のモーフ変形が可能になるのでシーン上でパーツを組み立て易くなるし、より弾力のあるバネの動きが出来るかもしれない。
実際のところ、これが出来たところで凄い動きとかそういうのでは無いので、普通の人から見たら「ふ~ん」で終わるかと思います。(笑
	でも、こういうささやかな拘りは大切にしたいです。
	きっと気付いてくださる方もいると思いますから・・・。
「ふ~ん」
\((((゚Д゚;))))/ エエェェェェ!?
| 09 | 2025/10 | 11 | 
| S | M | T | W | T | F | S | 
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | 
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | 
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | 
| 26 | 27 | 28 | 29 | 30 | 31 | 
COMMENT