ダイナミクスを利用したアイテム配置
ダイナミクス機能を使用して、入れ物いっぱいにアイテムを配置する方法をご紹介します。
まずは、入れ物となるメッシュを作りましょう。サンプルということで少し厚みをつけた簡単なボックス状のメッシュを作ります。中に入るメッシュがわかるように、透明にしておきます:
次に、入れ物の中へと配置するメッシュを作ります。こちらも今回は単純にボックスを作ります。当然入れ物よりも小さめに作りましょう。このボックスが入れ物の中にぐちゃっと入るイメージです:
さて、次はこのボックスを入れ物いっぱいに入るぐらいの量に増やさないといけません。今回はリプリケータ機能(アイテム追加 > Particles > Replicator)を使用して、ボックスメッシュを増やしていきますが、その場合には配置元となるポイントソースが必要となります。配置元のポイントソースはどのような形で用意しても構わないのですが、今回は簡単にParticle Generatorを使いましょう。アイテムツリーのアイテム追加 > Particles > Point Clouds > Particle Generatorを追加します。
Replicator Generatorは任意の法則に従って自動的に整列されたパーティクル(ポイント)メッシュですが、ここでは入れ物メッシュの上に、この入れ物の空いている口の中に入るようなサイズでパーティクルを作ります。パーティクルを作ったら、今度はReplicatorのプロパティで原型となるアイテムにボックスメッシュを、ポイントソースに先ほど設定したParticle Generatorを設定します。ばらつきのパラメータで、各ボックスメッシュにばらつきを与えておくとよいでしょう。
良い感じになったら、Particle Generatorの位置を、ちょうど入れ物の真上になる位置まで移動させてください。
この真上の位置からばらばらとボックスを入れ物の中に落としていきます。しかし、現在ボックスはReplicatorで生成されているため、実体を持ちません。Replicatorを選択し、アイテムメニュー > リプリケータ > リプリケータをフリーズを実行し、このボックス一つ一つをインスタンスへと変換します。ただし!この作業を行うと、元のReplicatorには戻せません。元のReplicatorに戻って、あとで何度もやり直したいという方は、Replicatorを複製しておき、複製元のReplicatorをバックアップとして非表示にし、複製されたReplicatorをフリーズしてください。
そうすると、実体を持つインスタンスメッシュができました。あとはいよいよダイナミクス機能の出番です。まずは入れ物の中へと落下する元となるボックスメッシュを選択し、セットアップタブ > ダイナミクスタブでアクティブリジッドボディをクリックします。これでボックスメッシュおよびボックスメッシュを元とするインスタンスメッシュはダイナミクスを適用するアイテムとなります。次に入れ物となるメッシュを選択したら、こちらはパッシブリジッドボディをクリックします。これで入れ物側はダイナミクスが適用されたアイテムを受け止めるアイテムとなります。
ここまで設定できたら、あとはシミュレーションボタンをクリックしましょう。
上からばらばらとボックスの上へと落ちてきますが、なぜか入れ物の中に入らずに、滑り落ちているかもしれません。この時には、入れ物となるメッシュを選択し、ダイナミクスプロパティの衝突シェイプをメッシュへと設定してください。これで口が開いている形状をきちんと認識できるようになったはずです。もう一度、シミュレーションボタンをクリックし、結果を確認してみましょう。
ボックスが入れ物の中に入っていくようになったらOKです。あまりにも勢いよく落下して、跳ね上がるようであれば、アイテムツリーからsolverを選択し、ソルバータブから重力を少し弱めにしたり、ボックスメッシュのダイナミクスプロパティタブにある跳ね返りの値を低くしてみてください。またボックス同士がめり込むようであれば、マージンの値を少しずつ大きくしながら、調整してみると良いでしょう。
入れ物の中に入ったボックスの具合が良い具合であれば、右端にあるシミュレーションボタンからシミュレーションをキャッシュします。
タイムライン上のスライダを動かし、入れ物にボックスメッシュが収まっている状態のフレームまで移動します。アイテムツリーでボックスインスタンスをすべて選択したら、ダイナミクスメニュー > トランスフォームへベイクを選択します。これでインスタンスメッシュに対し、キャッシュされていた位置情報がすべてベイクされましたので、あとは微調整が可能です。
駆け足でひとつのボックスメッシュを入れ物に詰め込む工程をご紹介してきましたが、複数のアイテムを一つのグループにまとめ、Replicatorで原型となるアイテムにグループを指定すれば、様々なメッシュを入れ物に詰め込むことが可能です。ダイナミクス機能を使わず、ひとつひとつ入れ物にメッシュを配置することを考えると、作業負担がかなり軽減されますよね。こういった用途でもダイナミクス機能は活用できますので、ぜひいろいろと試してみてください!