忍者ブログ

≪ 前の記事

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

▲TOP

3dsMAX:コンストレイント 2回目

今回は位置コンストレイントと方向コンストレイントです。

・位置コンストレイント

ターゲットの位置にオブジェクトを拘束します。
方向やスケールは自由に変更できます。
ターゲットが一つで重みが100%の時にはターゲットを親としてそれにクイック位置あわせ後、位置のXYZをロックしているのと同じです。たぶん。

では、重みを0にするとどうなるでしょうか?
答えはそのオブジェクトの本来の位置(元の位置)になります。
50にすると、オブジェクトの位置とターゲットの位置の中点に位置します。

ターゲットが2つあり重みがそれぞれ100の場合はオブジェクトは2つのターゲットの中点に位置します。
ターゲットが3つ以上の場合・重みがそれぞれさまざまな値の場合、ちょっとややこしくなりそうな気がしますが、ベクトルで考えると意外と簡単です。

・方向コンストレイント

オブジェクトの軸方向をターゲットと同じにします。
コンストレイントというよりはシンクロ、、というイメージに近いです。
位置コンストレイントの角度版です。

扇子なんぞ作るときに向いているかもしれません。

次回はリンクコンストレイントとパスコンストレイントです。
にほんブログ村 デザインブログ コンピュータグラフィックスへ
にほんブログ村
PR

Comment (0) | Trackback () | ▲TOP

3dsMAX:コンストレイント 1回目

モーション(アニメーション)をするときに便利なのが「コンストレイント」です。

ここでは「アニメーション」メニューにある「コンストレイント」を取り上げます。
(他にもreactorやポリゴンの「ジオメトリを編集」ロールアウトにあります。)

上手に使うとアニメーションがずいぶんと楽になります。
ただ、私は使い始めの頃は何のために使うのかよく分からない事も多々ありました。

ということで、今回は良く使う(あくまで私基準)、分かりやすいものから説明します。

・ルックアットコンストレイント

これは指定したターゲットの方向を向くもので、例えば眼球などに適用すると、眼球はターゲットの方向に向きを変える、、というようなことに使います。


29d57e96.jpeg
1.円錐とポイントを準備。円錐を選んだ状態で「アニメーション」→「コンストレイント」「ルックアップコンストレイント」を適用し、ポイントをターゲットとして指定(クリックする)。
そうすると、ターゲットの方向に水色のラインが現れる。
・パラメーター変更などは「モーション」タブでおこなう。

dd4e104c.jpeg
2.ポイントを移動すると、それにつられて円錐がその方向に回転します。
逆に円錐を移動しても、常にポイントの方向に向きを取ります。

2つのオブジェクト双方に適用すると、いつも向き合う形になります。
ショベルカーのアームの油圧シリンダーの再現などに使えます。

相互に適用する場合、直接オブジェクト同士をターゲットとするとおかしなことになるので、ポイントやダミーを各オブジェクトの基点に配置し、それをターゲットとすると問題なく動作します。

14b231ab.jpeg
3.円錐を複製(円錐2とします)し、円錐2のルックアットターゲットをポイントから、円錐1に変更。
円錐2を選んだ状態でクイック位置あわせ(Shift+a)でポイントを指定した例。
動かしやすいように円錐2をポイントにリンク(ポイントが親)して、円錐2を動かしたいときはポイントの移動で出来るようにしました。

ポイントと円錐1のおのおのをボーン(それぞれ違うボーン)にリンク(ボーンが親)すると、油圧シリンダーやサスペンションのような表現が可能です。

コンストレイント全般の特徴として、
1.重み(ウェイト)が可変。
2.ターゲットを複数持てる。
3.複数の種類のコンストレイントがかけられる。
というすごい仕様があげられます。

もちろん、逆に一つのターゲットに複数のオブジェクトをコンストレイントできます。
(ルックアットならば、一つのポイントを「注目の的」にできるということです。)

これらの仕様はカスタムアトリビュートやコントローラーなどと連携することで、非常に多彩な表現が出来たり、実数式などで面倒な記述をしないで済む場合があるなど、多くのメリットがあります。

事例は最後にまとめて紹介します。

次回は位置コンストレイント/方向コンストレイントを説明します。

にほんブログ村 デザインブログ コンピュータグラフィックスへ
にほんブログ村

Comment (0) | Trackback () | ▲TOP

3ds Max:ボーンとスキン 6回目 ~最終回~

今回で「ボーンとスキン」は最終回にします。
説明用画像はものすごくあるのですが、画像のアップロードが実質2~3枚づつの繰り返しで疲れました。

ということで、「こんなやり方もある」というパターンを紹介します。

fbcad64f.jpeg
1.円柱/緑ボックス/赤ボックスを準備。基点は全て底辺のセンターにあります。
もしそうでなくても後からどうにでも出来ます。

911688f0.jpeg
2.円柱にスキンを適用。ボーンにボックス2つを追加して、適当にウェイト調整。
その後に、ボーンを描き、各ボックスをボーンにリンクします。(ボックスが子)


330d746e.jpeg
3.曲げてみると、、イマイチです。


02f73f98.jpeg
4.そこで、ボーンの位置を調整します。丁度、蝶番の位置を変えるような感じです。
このときに「基点」の「基点を調整」の「子に影響を与えない」をオンにして作業します。
これは結構便利で、楽にボーンの位置変更・調整が出来ます。
画像を見てもらうと分かりますが、ボーンの長さも変わっています。

作業が終わったらオフにするのを忘れずに。



79b4762b.jpeg
5.再度曲げてみます。 曲がる基点が変わったのがわかるでしょうか。
でも形はまだイマイチです。

ac2ef2e3.jpeg
6.そこで、スキンを抜け、ポリゴンの頂点を編集します。
移動してもウェイト値が変わったりしません。
(私はエンベロープを無視して、必ずウェイト調整をするのですが、そうでない場合、ウェイト値が変わる可能性があります。)

d62c54c7.jpeg

7.いい感じになりました。ただ、ボックス同士が当たってなんか嫌な感じです。
この直接スキンが適用されたオブジェクト(今回はボックス2つ)を移動などすると、そのまま変形します。
オブジェクトのみ動かすだけならば、「基点」→「オブジェクトにのみ影響」でもOKです。
ただし、あとで、このボックスに仕掛けを仕込みたい場合などは基点の位置が重要になります。


fab62f9d.jpeg
8.そんな場合は、スキンの「拡張パラメータ」の「常に変形」をオフにして作業を行います。
Bipedのフィギュアモードのような感じです。
これも作業が終わったら必ずオンにしてください。


4727e318.jpeg
9.折角なので、ポリゴン編集しました。

5596e268.jpeg
10.ついでにウェイトも再調整。


0fb6266d.jpeg
11.まだまだ調整の余地がありますが、ここまでにします。

今回直接ボーンをスキンのボーンとしなかったのはいろいろなアプローチがあるということを説明するためです。 最初の段階で、ボックス同士をリンクして、終端を追加して、ボーンとする方法も出来ます。

ボックスだけでなく、見やすい「ポイント」やスプラインでやるのも手です。

私は素人なので、途中で修正する機会が多くあります。
なので、「常に変形」「子に影響を与えない」は重宝します。
IKがある場合はそれも一旦無効にするなどの手続きがありますが、それはまたの機会にします。


にほんブログ村 デザインブログ コンピュータグラフィックスへ
にほんブログ村

Comment (0) | Trackback () | ▲TOP

3ds Max:ボーンとスキン 5回目

さて、今回はボーンです。

最初にリンクをボーンにする方法から。
bone1.jpg
・アニメーション→ボーンツール で、ボーンにしたいオブジェクトを選択して「オブジェクトプロパティ」ロールアウトの「ボーンのプロパティ」の「ボーンのオン」のチェックマークを入れるだけです。
このボーンのオンはいつでも切り替え可能です。

画像左にあるのが本来の「ボーン」です。
ボーンの最小構成は本体(?)+終端の2オブジェクト構成です。


bone2.jpg

・ボーンとリンクの動作の違いは、リンクは子の言うことを親は聞かないのが基本でしたが、ボーンは子の移動に対して、親ボーンが双方の距離、方向を拘束させつつ親の角度が変わります。

各ボーンで回転変換する場合ならば、ボーンもリンクも動作は同じですが、自分の子の移動で親を回転変換させられる、こちらのやり方の方が何かと便利な場合が多いです。

ボーン使用時のコツは終端を準備することです。
ボーンシステムの場合、ボーンの作成を抜ける際に自動的に終端が作成されます。
自分の親の角度を変えるわけなので、オブジェクトの(見た目の)末端の角度を変えるためのオブジェクト(終端)が必要になるということです。

通常のオブジェクトをボーンにするような場合は、終端として、ヘルパーの「ダミー」あるいは「ポイント」をあてがうのが良いかと思います。

スキンする場合、通常終端オブジェクトはボーンとして含めません。


にほんブログ村 デザインブログ コンピュータグラフィックスへ
にほんブログ村

Comment (0) | Trackback () | ▲TOP

3ds Max:ボーンとスキン 4回目

ということで、4回目はリンクとボーンについてのつもりでしたが、、、リンクだけにします。
ボーンはまた後日。

リンクもボーンはさほど難しい概念ではありませんが、ボーンは深く突っ込んで使おうとするときには私にはよく意味が分からないところもあります。特にモーション付けのとき。

実験的なことをすると、ほぼ(?)取り返しのつかないことになるので、ポイントごとのセーブが肝要だとおもいます。(リファレンスにも書いてあったりします。)

それではまずはリンクから。

リンクのやり方は簡単です。「選択してしてリンク」のボタンが押された状態で、「子」のオブジェクトの上でクリック&ドラッグしつつ、「親」のオブジェクトの上まで来たら手を離す、、それだけです。 各オブジェクトの上に来たときにアイコンが四角形が二つ重なったものになっているときが選択可能状態です。 

スケマティクビューの「コネクト」でも可能ですが、以前リファレンスか他の書籍にこっちではあまりやらない方がよい、、というようなことが書かれていたような気がします。 しかし、オブジェクトが入り混じっているときはこちらが楽なので、わたしはスケマティクビューの方を良く使います。

リンクにはルールがあって、
1.親は複数の子がもてる。
2.子の親は一つだけ。
というものがあります。

また、特に何も設定していない状態では(デフォルト)次のような動作をします。

1.親を変換(移動/回転/スケール 以下変換は同意)すると、親の基点、座標系を元に子も変換される。
2.子を変換しても、親は全く無関係。その際の基点、座標系は子のものが適用される。

そして、「階層」タブの「リンク情報」のロックの各変換全てにチェックをいれると、子の自由度は0です。
物によりますが、例えばY回転だけロックを外して使う、、、などすると、作業がやりやすくなったりします。

リンクの度合い(親の子に対する影響度)は通常100%ですが、「リンクコンストレイント」でリンクした場合は、0~100%まで可変できます。例えば50%に設定した状態で、親をX方向に10移動すると、子は5移動します。

また、子は親を複数持つことはできませんが、代替として、親の親を作り、その子になる(=二人とも祖先の子になる。)或いは単純に親の親を作る などはできます。

裏技(?)として、親を複数作る方法があります。
それはスキンモデファイヤを作ることです。親をボーンに入れます。
そして、各ボーンの設定時に全頂点を選んだ状態で、任意のウェイトを入れるのです。
元々スキンの場合、スキン適用オブジェクトにとって、ボーンは親に当たります。
スキンモデファイヤをネストするのも手です。

ただ、、あまり使いどころはないと思います。

最後にリンクはボーンになることが出来ます。
これは非常に便利で、切り替えもボタン一つです。

ということで、次回のボーンにつなげます。


にほんブログ村 デザインブログ コンピュータグラフィックスへ
にほんブログ村

Comment (0) | Trackback () | ▲TOP

3ds Max:ボーンとスキン 3回目


前回分までで、「結局ボーンを使っているじゃないか」「意味がわからない」と友人より苦情(?)ありましたので、今回はスキンだけを取り上げて説明します。

使い方というよりはどのような役割や仕組みになっているのかメインで説明します。


ss1.jpg
1.ポリゴン化した球とボックスを2つ準備します。
球に「スキン」モデファイヤを適用し、ボーンとして、青ボックスを選択します。
ボーンがひとつの場合、エンベロープの位置や形状に関係なく、全ての頂点がそのボーンにバインドされます。
(オプション設定で、この動作を変える事ができますが、お勧めはしません)

これで、青ボックスに対し変形(移動/回転/スケール)を行うと、連動して球も同じ変形をします。
ただし、変形の基点は青ボックスの基点を基にされます。
青ボックスを親とした通常の「リンク」と同じ動作をします。
しかし、実際には通常のリンクとは異なります。

見方を変えると、通常球の頂点は球の基点が管理(所有)しているのに対して、青ボックスの基点に(この例では全ての)頂点を渡したということです。 このことによって、球の基点は管理する頂点数は0になっています。

117566ae.jpeg

これは球のほうを移動してみた例です。
このように動いたように見えますが、、選択を解除すると、基点だけはここに残り、球は元の位置に戻ります。
つまり、球の基点は存在するけれども、変形への影響度合いは0なので、球の基点がどのように動いたとしてもなんらオブジェクトの変形に影響しないということです。



ss3.jpg
2.次にボーンに緑ボックスを加えます。
影響範囲は0だったので、適当に設定しました。
影響範囲は本来エンベロープで変化します。また、エンベロープの形状はボーンとするオブジェクトの形状によって決まるようですが、そのあたりの詳細については今回は割愛します。

ss4.jpg
3.緑ボックスを上に移動します。ありきたりな変形をします。
今、このシーンの中にリンクは一切存在しません。


ss5.jpg

4.そのため、青ボックスを移動したとしても、緑ボックスも、球の基点も動くことはありません。
動くのは青ボックス(オブジェクト/基点)とバインドされている頂点だけです。

ここで、「階層」タブの「基点調整」ロールアウトの「基点にのみ影響」を押した状態で、青ボックスの基点を移動してみます。青ボックス自体は動きませんが、基点とバインドされている頂点が動くのがわかるかと思います。

これで、おおよそのスキンの基本的仕様が理解していただけたかと思います。
(私が行ったテストを元に推測している部分もありますので、完全な答えではありません。)
この中に、リンクやボーン(システムの方)は出てきていません。
簡単に言うと、オブジェクトの基点を増やしてくれるもの、、のように認識するといいかも知れません。

アニメーションのためだけでなく、モデリング時のポリゴンの変形(デフォーム)にも使用できます。
(確定するときはスキンモデファイヤを「集約」すればよい)

また、基本的特徴のひとつとして、各頂点を複数のボーンにウェイトを振り分けたとしても、合計値は基本的に1になります。例えばある頂点ひとつを例にすると、 青ボックスが0.4なら自動的に緑ボックスは0.6になります。

では、今回の青ボックス/緑ボックスにバインドされたものとは違う影響範囲で変形したいときはどうするのでしょうか? 

答え(のひとつ)は、そのスキンモデファイヤにさらにスキンモデファイヤを適用すればよいのです。



ものの本にはなかなかこのようなことは書かれていません。

「モデルを作り、ボーンを作って位置あわせをして、スキンを適用して、動かしましょう、、」
というパターンがほとんどです。
ボーン/スキンの変わりにChractorStudioのBiped/Phisiqueになっているパターンもあります。

基本的な流れをマスターするのには非常に有益ですが、それを外れたことをしようとした場合、なかなか進めず、結局その基本以上のことはできない、、ということにもなります。

そんなときに理屈(原理)を理解しておくと、何かと便利です。
Maxの様な高価なアプリケーションは低級レベルの機能からそれらを組み合わせて、特定のことを簡単にできるようにした高度なレベルの機能まである場合がほとんどです。

その為、あることをしたいときに、いろいろなアプローチが考えられます。
特に慣れるまではそれがネックとなるケースもあると思います。

それでは、、「高度なものだけでよいのでは?」となりそうですが、それだけではうまく行かないときもあります。
なぜなら、高度なものほど汎用性が低くなります。

例えば「自動何とか機能」というものがあって、ボタン押すだけで、何かをしてくれるものがあったとします。
これは高級レベルに分類されるものですが、もし仮にそれがあなたの希望の90%までしか満たさなかったとき、残りの10%を埋めてくれる解決策はこの「自動何とか機能」の中にはありません。

そんなときに、原理を理解していたら、低級レベルの基本的な仕様を知っていたら、解決できるかもしれません。そういう問題に直面したときに原理を理解するものいいかもしれません。


ちょっと脱線しましたが、スキンを適用後にボーンの位置を変えたい時があるかと思います。
そのときは「拡張パラメーター」ロールアウトの「常に変形」のチェックを一旦はずすとよいです。


ss6.jpg

これはかなり強力で、下図のようにボーンを移動した状態(オブジェクトは変形している)で、このチェックをはずすとオブジェクトは強制的に最初の状態に戻ります。 しかし、ボーンオブジェクトの位置はチェックをはずす前と変わらず、その後チェックを入れると、この場所が新しいボーンの位置(基点)になります。

ss7.jpg

さて今度は、この球を移動したいときはどうするとよいでしょうか?

今の状態では青ボックス/緑ボックス/球オブジェクトを選択して移動です。
できれば移動、回転などの基点は球の基点にしたいところです。

そこで使うと便利なのが「リンク」になります。
今回のケースでは一工夫必要になりますが、逆に理解できればあとは簡単です。
ボーンシステムもリンクの塊です。

いずれにしても「基点」が重要になります。

次回はボーンシステムとリンクを取り上げる予定です。
にほんブログ村 デザインブログ コンピュータグラフィックスへ
にほんブログ村

Comment (0) | Trackback () | ▲TOP

3ds Max:ボーンとスキン 2回目

~前回からの続きです。~

bone_9.jpg

1.今度は球を2つ追加します。
青が下腕に、赤が上腕にリンクしてます。

bone_10.jpg

2.赤球のスキンウェイト調整。


bone_11.jpg

3.青球のスキンウェイト調整


bone_12.jpg
4.早速動かしてみます。 わかりやすいようにターボスムーズをかけています。
青球をXの方向に動かすとウェイトに応じて持ち上げられます。


bone_13.jpg
5.赤玉はスケール(XYのみ)してみました。


bone_14.jpg

6.どちらも移動/回転/スケールが可能です。
ただし、変形は基点基準なので、今回の場合だと、青球をスケールで拡大すると逆にへこんだようになります。


bone_15.jpg

7.シェーディングビューではこのようになります。
このままでは青球はレンダリングされてしまうので、プロパティでレンダリングしないように設定する必要があります。

次回はこれをベースとして実際に使いやすいやり方を検証したいと思います。


にほんブログ村 デザインブログ コンピュータグラフィックスへ
にほんブログ村

Comment (0) | Trackback () | ▲TOP

3ds Max:ボーンとスキン 1回目

業務上、ボーンやスキンはまず使いません。
たまにテストのために使用したときも特に問題なく使っていました。

ただ、今日始めて知りました。 スキニングの際に対象はボーンでなくて良いことを。
まだ一部引っかかるところがありますが、基本部分を紹介します。

なお、今回スキニングには「スキン」モデファイヤを使用します。

bone_1.jpg
1.まず普通にボーンを作るパターンです。
円柱で腕をイメージしています。


bone_2.jpg

2.エンベローブの編集。 最近はエンベローブは面倒なので、頂点ウェイトを調整するようにしています。エンベローブ自体は非表示にしています。

bone_3.jpg

3.セットアップ完了です。 普通に曲がります。


bone_4.jpg

4.今度は球を上腕と下腕との間(下腕の原点)に配置します。
リンクを球が下腕ボーンの子になるように貼ります。


bone_5.jpg
5.スキンモデファイヤで「ボーンの追加」→この球を選択。その後、適当にウェイト調整します。
今回は分かりやすいようにこの2列をリジッド(ウェイト=100%)にしています。



bone_7.jpg

6.肘を曲げてみます。 このように影響範囲が変わります。
ただそれだけですが、これが出来る/出来ないでは作業に大きな差が出る可能性があります。

bone_8.jpg
7.ここからがいろいろと使い道がありそうな部分です。
球は下腕の子なので、親とは別に移動/回転/スケールが可能です。
なので、画像のようにエンベロープの編集で割り当てたウェイトの分だけに対して調整が可能です。
移動/回転/スケールは「ローカル」での作業をおすすめします。

また、移動/回転/スケールの基点は球の基点になります。
さらに、これらの変形は「基点しか意味をなしません。」
なので、この後球をポリゴン化して、好きな形にしてもスキンには何も影響しません。
(ただし、ポリゴン編集などは必ずサブレベルで行ってください。メインレベルでの移動/回転/スケールすると、スキンにそのまま影響します。

ここまでくると、お分かりかと思いますが、スキンの「ボーンの追加」の「ボーン」は本当のボーンでなくてもボーンにリンクされたオブジェクトでもかまわないということです。
つまり、関節を曲げたりするのをボーンシステムでやればよいということです。

~~次回へ続く~~


にほんブログ村 デザインブログ コンピュータグラフィックスへ
にほんブログ村

Comment (0) | Trackback () | ▲TOP