Blenderで物理シミュレーションをしてみる その1

どうやらBlenderで物理シミュレーションができると聞いてテストしてみました。いきなり難しいのをやっても自分でも意味わかんなくなっちゃうので簡単なのから。「Cubeの自由落下」と、「Planeとの衝突」をやってみます。

まず初期画面↓

真ん中にキューブ(Cube)があって、あと光源とカメラが設置されてます。この画面だけでも、なんかいろいろ設定項目があって、なにをどうしたらいいのかよくわからないのですが…(まぁそれだけた多機能でいろいろできるんでしょう)。

とりあえず、このCubeを自由落下させてみたいので、Z軸方向で上にあげておきます。


次にCubeのオブジェクトの設定画面をよく見たいので、右のプロパティをいじるヤツ(ちゃんとした呼び方は知らない)をドラッグして広げてやります。
広げたら、その中から一番右のPhysicsを押すと下の画面のようになります。

すると、いくつか物理演算?のタイプが選択できるようになるので、ここでは「Rigid Body」を選択しておきます。日本語でいうところの剛体ですかね?まぁ、とりあえずこれでやってみましょう。
すると、下の画面のようにいろいろとパラメーターが選択できる画面になります。とりあえず、よくわからないので、この設定のまま進めましょう。
ここまでの設定で、物理シミュレーションをするには、画面下の矢印で示したボタンを押してやります。これを押すと、「Rigid Body」に設定されてある値から自動でアニメーションが作成されます。
押してみると、画面に次のようなアニメーションが表示されます。あとはレンダリングすればアニメーションが完成するのですが、レンダリングは時間がかかるしカメラとかの調整も面倒なので今回は飛ばします。

ストーンと落ちていきますね。下に床がないので放っておくと、どこまでも?下に落ちていきます。まぁ、アニメーションの設定が250コマまでなので、そこまで行ったらまた初めからアニメーションが始まりますけど。
こんなに簡単にシミュレーションできると、おもしろいですね。これだけで30分くらいは遊べます。



さて、ただCubeを落とすだけじゃつまらないので、下に床を敷いてそこに落としてみることにしましょう。
まず、床の代わりにPlaneのオブジェクトを置いてやります。
メニューバーの「Add」→「Mesh」→「Plane」とやると下の画面のようにPlane(板)が設置されます。
このままだとちょっと狭すぎるので、広げてやります。やり方は、Planeを選択してキーボードの「S」キーを押してマウスを動かしてやれば大きくなります。
さて、Planeも敷いたので、ここにCubeを落としてやりましょう。先ほどと同じようにアニメーションのスタートボタンを押してやると以下の動画のようになります。

…( ^ω^ )
えーと、板を置こうがストーンと突き抜けていきましたね…。

そうです。単純にPlaneを置いてもCubeとの物理衝突がシミュレーションできるわけではないのです!Cubeに設定したように、ちゃんとPlaneにも「Physics」プロパティを設定してやる必要があります!
まぁPlaneのオブジェクトと選択してやって「Rigid Body」の設定をすればいい話ですので、ちゃっちゃとやってみましょう。
さっきのCubeに設定したように「Physics」の「Rigid Body」を選択してやると以下のアニメーションができます。


うん、まぁそうなるよね…。見たとおり、Cubeと一緒にPlaneも落下していきます…。実験失敗!!!くぅ…。

そこで、Planeを「Rigid Body」の設定を保ったまま空中で浮かせたままにする設定を施します。下の画面で、Typeの右のボックスを選択すると「Active」の他に「Passive」が選択できるので、それにしてやります。
さて、これでPlaneを空中に保ったまま、Cubeを落とすことができます。動画で見てみましょう。

おぉ!やりました!!!ちゃんとPlaneが落下しないで、その上にCubeが落ちてますね!


えーと、ただし、Cubeの底面とPlaneが並行なので動画としてはあんまりおもしろくないですねぇ…。
もうちょっとおもしろくするために、Cubeを回転させてから落としてみることにしましょう。
Cubeのオブジェクトを選択してキーボードの「R」キーを押して、マウスで調節することでオブジェクトの回転ができます。では、動画でCubeの落下を見てみましょう。

おぉ!一段と物理シミュレーションっぽくなりましたね!Cubeがコロンと転がる感じがたまりませんね。これだけで1時間は遊べます!!!

さて、最後にちょこっとパラメーターをいじって遊んで終わりにしましょう。
Cube、Planeの両方のFriction(摩擦)とBounciness(弾性?)をいじってやると、以下のような感じのアニメーションができます。




今回はここまでにしますけど、パラメーターいじったり、物理モデルを変更したりでいろいろと遊べると思います。それからそれから、フォースフィールド(力場)とかも設定できて、これもなかなか遊んでいて飽きないです。
若干、Blender自体の制限?みたいなのがあって、思い通りにならないというか設定がよくわからないのがありますけど、興味があったらいろいろと試してみて下さい。

それではまた〜。




この前、試しで作ってみたヤツ : Blenderで遊んでみる








コメント

スポンサーリンク


このブログの人気の投稿

gnuplotでプロットなどの色をcolornameの指定で変更する

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

Pythonのformat()を使って1桁の16進数でも2桁で出力する方法

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)

gnuplot : グラフにグリッド線を描く方法(set grid)