はじめまして。
現在、電車の車両のアニメーションを再現しようとしています。
まず1つ目のモデルにパスコンストレイントを設定しました。
その後、等間隔でコピーしたモデルを1つ目のモデルにリンクしたのですが、パスに沿うのは1つ目のモデルだけです。
この様な場合、他の機能とか設定方法が必要なんでしょうか?
ご存知の方、よろしくお願いします。
バージョンは2012です。
ちょっと面倒なのですが、スプラインIKでも出来なくはないです。
スプラインIKを作ると(詳細はヘルプで)末端のボーンにパスコンストが適用されるので、パーセントをいじればボーンが全体的に移動します。
でも、車両のモデルをそれぞれのボーンにリンク(コンスト?)する手間とか、先頭のボーンがパスを超えてしまったりとか問題がありそうです。。。ご参考まで。
このスクリプトはどうでしょう?
http://www.scriptspot.com/3ds-max/scripts/trainmaker
複数のオブジェクトのパスコンストレイントのパーセントを変更するツールのようですが、手動でやるよりは楽できそうです。
他にも同じようなスクリプトはたくさんありそうですけど。
ざっとですが、ツールを起動するまでの手順です。
・MAXScriptメニューのスクリプトを起動からダウンロードしたファイルを選択
・ユーティリティパネルのMAXScriptボタンを押す
・ユーティリティパネルの下の方にユーティリティと書かれたドロップダウンリストがあるので、TrainMakerを選択するとメニューが表示される
インターフェースは英語ですが、適当にさわれば大体どんな動きか分かると思いますよ。
スクリプトは種類が沢山あり過ぎて、どれが使い勝手がいいのかは実際に触ってみるしかないですね。
HALLUCINOサイトにも丁寧な解説があるものが多いので、探してみては。
http://maxuser.com/plugins/
こんにちは!
いろいろ検索してこちらへたどり着きました!
そして便乗の質問させて頂きます!
質問なのですが、
TrainMakerを早速使用してみましたのですが
早々につまずいてしまって!!添付のように先頭⇒真ん中と
指定した場合、後ろの車両は何処で指定したら良いのでしょうか????
いろいろとやってみてるのですが良くわからなくなってしまいました・・・
お手数ですが、よろしくお願い致します。
お世話になっております。
いろいろ試してみるのですが、3両目がなかなかついてきません(T_T)
あまりやった事の無い分野なので、難しく考え過ぎなのかしら・・・
もし、他に良い手があれば教えてください。
件のスクリプトをちょっと見てみましたけど、
単純に指定の車両を指定数分車両の長さに合わせて
パスコンスト(パスに沿わせたアニメーション)をさせるだけのようで
2種類指定できますが、先頭車両とかそういう概念でなく
単純に同一パス上に2台別々の位置に車両を配置するような
感じに見受けられました。
ですので、そのスクリプトを使って先頭・中間とか車両の種類を
替えたいのであれば、車両と同じ長さのダミーのオブジェクト(ボックスとか)を作って
オブジェクトプロパティでレンダリング可能を外しておいて
いったんそれをスクリプトで配置させてアニメーションをつけて、
実際の車両を先頭や中間の位置に合わせてダミーの子供にするとか
電車のアニメーションは、まじめにやると上の方の方の書き込みにあるように
スプラインIKを使った形が一番うまくいきそうな気はしますが
意外とちょっと面倒な作業にはなりそうな気はします
以前電車アニメーションを制作しましたので簡素化してアップします。不得手ゆえ、稚拙さはご容赦頂きたく。。
以下手順です。
1. パスアニメーションしているダミー等を用意して、どこかに車両を並べておきます。
2. 新規ボーンを「スプラインIK」を割り当てするよう設定して、車両と重なり、かつ連結部が節になるように作ります。※
3. 作りきるとスプラインIKのダイアログが出ますが、このときスプラインは自動生成しないようチェックを外します。
4. 車両を同位置のボーンにそれぞれリンクさせます。
5. ボーン先頭をダミーにリンク、かつ同位置に移動します。また「IK Chain」オブジェクトを選択し、モーションパネルにてスプラインIKソルバ項の「シェイプを選択」でパスのスプラインを指定します。※
※なぜか、ボーンを作成と、スプラインIKを設定するプロセスを分けると、ボーンのフリップや高低差のあるパスによるよじれが発生します。恥ずかしながら理由はわかりません。。。
※アップした.maxファイルですが、パスアニメーション進行方向に対して逆にボーンが配置されてしまいます。これもパスのスプラインを逆転させてダミーのキー値を0->100ではなく、100->0にして頂くとかで対処して頂ければ。原因はやはりわかりません。。。