【目指せBlender Master #7】物理計算?そんなのはやつに任せておけ
須々木です。
前回から約2ヶ月あいてしまいましたが、忘れたころに更新される。
それがこのシリーズのスタンスなのです!(威張るところではない)
というわけで、シリーズ第7回をはじめたいと思います。
*バックナンバー*
【目指せBlender Master #1】その名はBlender
【目指せBlender Master #2】お前に何ができるって言うんだ!?
【目指せBlender Master #3】インストールするだけ、ただそれだけ。
【目指せBlender Master #4】日本語にしてやんよ
【目指せBlender Master #5】とりあえずやればできる・・・ハズ
【目指せBlender Master #6】針金の蛇と立体文字
さて、今回はシリーズ7回目にして、ようやく動画を扱います。
Blenderは3D動画制作ソフトなので、ようやく本領発揮というわけです。
今までも画面下にはタイムラインが表示されていましたが、悲しいことに一度の出番もなく、時間だけが経過して…
そして、今回も結局タイムラインはほぼ用がなかったっていう…
それもそのはず、今回扱う「物理シミュレーション」は、ほとんどBlender任せなので、こちらでやることは実はとても少ないんです。
なお、物理シミュレーションといっても、Blenderには様々な機能があります。
その中でも今回は、剛体(リジッド・ボディ)のシミュレーションをします。
剛体とは、変形しない固い物体のことですが、流体や煙や生き物のように柔らかいものについては、いずれ挑戦したいと思います。
それでは、さくっと身につけてしまいましょう!
【1】とりあえずいろいろ配置
シミュレーションする前に、動かしたいものを配置していきます。
配置するのは、平面とその上に転がす球体と、バラバラ崩すためのブロックです。
Blenderを起動し、センターにPlaneを配置(【Shift】+【A】)
そのまま50倍に拡大(【S】→【5】→【0】)
続けて、センターにUV Sphere(球体)を配置(【Shift】+【A】)
そのままModifierのSubdivision SurfaceのLevel2を適用(【Ctrl】+【2】)
画面左側のツール・シェルフの「Smooth」を押して、表面を滑らかにします。
Modifier? なにそれ?と思う人は、あんまり気にしなくて良いです。
今はあんまり重要なことではありません。
とりあえず書いてある通りに実行してみましょう。

そうしたら、【G】で球体をスタート地点まで移動します(お好きな場所へ)。
なお、球体は、平面より上(食いこまないように)である必要があります。
※今回は下の図のようにx軸方向に移動してみました。また、z軸方向も調整し、平面上面に接するような配置にしています。

さらに続けて、センターにCubeを配置(【Shift】+【A】)
妥当な形状にします。
※今回は、x軸方向0.2倍(【S】→【X】→【0】→【.】→【2】)、y軸方向0.3倍(【S】→【Y】→【0】→【.】→【3】)、z軸方向0.4倍(【S】→【Z】→【0】→【.】→【4】)にしています。
そして、平面上に接するように配置します(すき間があったり食いこんでいたりすると、あとで厄介)。
【2】ブロックの物理シミュレーションの設定
配置したオブジェクトそれぞれについて設定していきますが、まずはCube(ブロック)から。
下の画像の通り、画面上部infoエディタのメニューから「Blender Game」を選択します。

次に、Cubeを選択した状態で、画面右側、プロパティ・エディタのヘッダの右端「Physics」を選択しましょう。
※「Physics」のアイコンが画面に表示されていない場合は、マウス中ボタン(ホイール)のドラッグで引き出しましょう。
下に「Physics」パネルが表示されるので、「Physics Type」から「Rigid Body」を選択し、「Radius」を「0.2」とし、「Collision Bounds」にチェックを入れましょう。
以上の設定により、Cubeはシミュレーションにおいて衝突判定をする剛体(リジッド・ボディ)として扱われるようになりました。
※「Radius」は衝突判定をする範囲。

あとは、#5でも多用した複製(【Shift】+【D】)などを駆使して、ブロックを組みあげましょう。
積み上げ方や色については適当なので、各自お好きにどうぞ。
ただし、意外と不安定な動きをしたりするので、すき間や物体同士の食いこみに注意しましょう。
※食いこんでいると、物理シミュレーションで反発力が発生します。
ちなみに、今回はこんな感じにしてみました↓

【3】床の物理シミュレーションの設定
床(Plane)を選択し、先程と同様、プロパティ・エディタで「Physics」を選択しましょう。
下に表示された「Physics」パネルで、「Physics Type」から、今度は「Static」を選択し、「Collision Bounds」にチェックを入れましょう。
「Static」により、Planeは重力に従って落ちない(空間に固定された)状態になりました。
これを設定しないと、シミュレーション開始と同時にすべて仲良く落ちていきます。
【4】球体の物理シミュレーションの設定①
続いて、球体の設定です。
球体(UV Sphere)を選択し、プロパティ・エディタで「Physics」を選択。
「Physics」パネルで、「Physics Type」から、「Rigid Body」を選択し、「Collision Bounds」にチェックを入れましょう。
そして、今回は球体なので、「Collision Bounds」のすぐ下の「Bounds」を「Sphere」にしましょう。

この状態でちょっと試しにシミュレーションを実行してみましょう。
3D View(メインの3D表示画面)上で【P】を押して、シミュレーションを実行。
球体がPlane(床)より高いところにある場合は、床に落下します。
また、Cubeの積み方によっては不安定でバラバラ崩れ落ちるかもしれません。
※シミュレーション結果が気に入らない場合は、ブロックの積み方などやり直した方が良いかもしれません。
特に問題がなければ、球体の動きの設定をしましょう。
【5】球体の物理シミュレーションの設定②
今回は極めてシンプルに、ブロックめがけて一直線に動かそうと思います。
まずは、画面下(おそらくTimelineが表示されているはず)を「Logic Editor」に変えましょう。
画面左下にあるヘッダのEditor Typeメニューから「Logic Editor」を選択すればOKです。

3D View(メイン操作画面)の球体(UV Sphere)を選択しておきます。
そして、「Logic Editor」で以下の通り設定していきましょう。
▽左端、「Sensors」の「Add Sensor」メニューで「Always」を選択。
▽その隣(つまり真ん中)、「Controllers」の「Add Controller」メニューで「And」を選択。
▽さらに隣(つまり右端)、「Actuators」の「Actuator」メニューで「Motion」を選択し、その下のパネルの「Loc」のX成分に「-0.5」と入力。
▽次に、「Sensors」の右側の黒丸をマウスの左ボタンで、隣の「Controller」の左側の白丸までドラッグ&ドロップしましょう。連結されます。
▽「Controller」と「Actuator」も同様の操作で連結します。

これで、球体(UV Sphere)が-X方向に0.5の速さで常に動き続けるという設定が完了しました。
3D View上で【P】を押して、シミュレーションを実行すると、球体が転がってブロックを崩しながら突き進んでいくはずです。
【6】シミュレーション結果の記録
この時点でシミュレーションはできるようになりましたが、まだ動画として扱うことができません。
動画として扱うためには、このシミュレーションを記録する必要があります。
画面上部infoエディタのGameメニューより「Record Animation」を選択します。

そして、普通に【P】でシミュレーションを実行します。
これで、シミュレーションは記録されていきます。
動きがなくなってもうこのくらいでいいだろうと思ったら、そこで【Esc】を押してシミュレーションを終えてください。
【7】レンダリングしましょう
カメラの位置や光源の設定など、各自の好みで調整したら、いよいよレンダリングです。
動画ファイルとして出力しましょう。
まずは、infoエディタで「Blender Game」となっているところを「Blender Render」に戻しましょう。
プロパティ・エディタの「Render」を選択し、レンダリングに関する設定をしていきます。
基本的には各自のお好みでやってもらいたいのですが、設定によっては膨大な時間がかかってしまうので注意しましょう。
特に、出力サイズは無駄に大きくしないのが賢明です。
あとは、とりあえずイメージ通りか確かめるため、「Frame Step」の数字を大きくした状態でレンダリングしてみるのも良いかもしれません。
例えば「Frame Step」を「100」にしてレンダリングすると、フレームが100枚とびでレンダリングされます。
ざっくりどんなものか判断するのに良いでしょう。
※「フレーム」は、デフォルトで1秒あたり24フレーム(FPS=24)となっているので、24枚の静止画で1秒の動画になります。
また、静止画のレンダリングと違い、動画のレンダリングでは先に出力フォルダ、出力ファイルの種類や名称を設定します。
「Render」パネルの下の方の「Output」をうまくいじりましょう。

設定が完了したら、最後に「Render」パネルの上部にある「Render」の「Animation」を押しましょう。
ここからは座してただ待つのみ。
※明らかに数時間かかりそうなときは、思い直して出力サイズを小さくしたりした方が良いと思います。
【8】感動のフィナーレ
で、こんなのができるわけです。
意外と両側が崩れ落ちなかった…
極めればいろいろできると思われますが、とりあえずよくわからなくてもこんな感じにできちゃったりします。
みんなもレッツ・トライ!
sho
前回から約2ヶ月あいてしまいましたが、忘れたころに更新される。
それがこのシリーズのスタンスなのです!(威張るところではない)
というわけで、シリーズ第7回をはじめたいと思います。
*バックナンバー*
【目指せBlender Master #1】その名はBlender
【目指せBlender Master #2】お前に何ができるって言うんだ!?
【目指せBlender Master #3】インストールするだけ、ただそれだけ。
【目指せBlender Master #4】日本語にしてやんよ
【目指せBlender Master #5】とりあえずやればできる・・・ハズ
【目指せBlender Master #6】針金の蛇と立体文字
さて、今回はシリーズ7回目にして、ようやく動画を扱います。
Blenderは3D動画制作ソフトなので、ようやく本領発揮というわけです。
今までも画面下にはタイムラインが表示されていましたが、悲しいことに一度の出番もなく、時間だけが経過して…
そして、今回も結局タイムラインはほぼ用がなかったっていう…
それもそのはず、今回扱う「物理シミュレーション」は、ほとんどBlender任せなので、こちらでやることは実はとても少ないんです。
なお、物理シミュレーションといっても、Blenderには様々な機能があります。
その中でも今回は、剛体(リジッド・ボディ)のシミュレーションをします。
剛体とは、変形しない固い物体のことですが、流体や煙や生き物のように柔らかいものについては、いずれ挑戦したいと思います。
それでは、さくっと身につけてしまいましょう!
【1】とりあえずいろいろ配置
シミュレーションする前に、動かしたいものを配置していきます。
配置するのは、平面とその上に転がす球体と、バラバラ崩すためのブロックです。
Blenderを起動し、センターにPlaneを配置(【Shift】+【A】)
そのまま50倍に拡大(【S】→【5】→【0】)
続けて、センターにUV Sphere(球体)を配置(【Shift】+【A】)
そのままModifierのSubdivision SurfaceのLevel2を適用(【Ctrl】+【2】)
画面左側のツール・シェルフの「Smooth」を押して、表面を滑らかにします。
Modifier? なにそれ?と思う人は、あんまり気にしなくて良いです。
今はあんまり重要なことではありません。
とりあえず書いてある通りに実行してみましょう。

そうしたら、【G】で球体をスタート地点まで移動します(お好きな場所へ)。
なお、球体は、平面より上(食いこまないように)である必要があります。
※今回は下の図のようにx軸方向に移動してみました。また、z軸方向も調整し、平面上面に接するような配置にしています。

さらに続けて、センターにCubeを配置(【Shift】+【A】)
妥当な形状にします。
※今回は、x軸方向0.2倍(【S】→【X】→【0】→【.】→【2】)、y軸方向0.3倍(【S】→【Y】→【0】→【.】→【3】)、z軸方向0.4倍(【S】→【Z】→【0】→【.】→【4】)にしています。
そして、平面上に接するように配置します(すき間があったり食いこんでいたりすると、あとで厄介)。
【2】ブロックの物理シミュレーションの設定
配置したオブジェクトそれぞれについて設定していきますが、まずはCube(ブロック)から。
下の画像の通り、画面上部infoエディタのメニューから「Blender Game」を選択します。

次に、Cubeを選択した状態で、画面右側、プロパティ・エディタのヘッダの右端「Physics」を選択しましょう。
※「Physics」のアイコンが画面に表示されていない場合は、マウス中ボタン(ホイール)のドラッグで引き出しましょう。
下に「Physics」パネルが表示されるので、「Physics Type」から「Rigid Body」を選択し、「Radius」を「0.2」とし、「Collision Bounds」にチェックを入れましょう。
以上の設定により、Cubeはシミュレーションにおいて衝突判定をする剛体(リジッド・ボディ)として扱われるようになりました。
※「Radius」は衝突判定をする範囲。

あとは、#5でも多用した複製(【Shift】+【D】)などを駆使して、ブロックを組みあげましょう。
積み上げ方や色については適当なので、各自お好きにどうぞ。
ただし、意外と不安定な動きをしたりするので、すき間や物体同士の食いこみに注意しましょう。
※食いこんでいると、物理シミュレーションで反発力が発生します。
ちなみに、今回はこんな感じにしてみました↓

【3】床の物理シミュレーションの設定
床(Plane)を選択し、先程と同様、プロパティ・エディタで「Physics」を選択しましょう。
下に表示された「Physics」パネルで、「Physics Type」から、今度は「Static」を選択し、「Collision Bounds」にチェックを入れましょう。
「Static」により、Planeは重力に従って落ちない(空間に固定された)状態になりました。
これを設定しないと、シミュレーション開始と同時にすべて仲良く落ちていきます。
【4】球体の物理シミュレーションの設定①
続いて、球体の設定です。
球体(UV Sphere)を選択し、プロパティ・エディタで「Physics」を選択。
「Physics」パネルで、「Physics Type」から、「Rigid Body」を選択し、「Collision Bounds」にチェックを入れましょう。
そして、今回は球体なので、「Collision Bounds」のすぐ下の「Bounds」を「Sphere」にしましょう。

この状態でちょっと試しにシミュレーションを実行してみましょう。
3D View(メインの3D表示画面)上で【P】を押して、シミュレーションを実行。
球体がPlane(床)より高いところにある場合は、床に落下します。
また、Cubeの積み方によっては不安定でバラバラ崩れ落ちるかもしれません。
※シミュレーション結果が気に入らない場合は、ブロックの積み方などやり直した方が良いかもしれません。
特に問題がなければ、球体の動きの設定をしましょう。
【5】球体の物理シミュレーションの設定②
今回は極めてシンプルに、ブロックめがけて一直線に動かそうと思います。
まずは、画面下(おそらくTimelineが表示されているはず)を「Logic Editor」に変えましょう。
画面左下にあるヘッダのEditor Typeメニューから「Logic Editor」を選択すればOKです。

3D View(メイン操作画面)の球体(UV Sphere)を選択しておきます。
そして、「Logic Editor」で以下の通り設定していきましょう。
▽左端、「Sensors」の「Add Sensor」メニューで「Always」を選択。
▽その隣(つまり真ん中)、「Controllers」の「Add Controller」メニューで「And」を選択。
▽さらに隣(つまり右端)、「Actuators」の「Actuator」メニューで「Motion」を選択し、その下のパネルの「Loc」のX成分に「-0.5」と入力。
▽次に、「Sensors」の右側の黒丸をマウスの左ボタンで、隣の「Controller」の左側の白丸までドラッグ&ドロップしましょう。連結されます。
▽「Controller」と「Actuator」も同様の操作で連結します。

これで、球体(UV Sphere)が-X方向に0.5の速さで常に動き続けるという設定が完了しました。
3D View上で【P】を押して、シミュレーションを実行すると、球体が転がってブロックを崩しながら突き進んでいくはずです。
【6】シミュレーション結果の記録
この時点でシミュレーションはできるようになりましたが、まだ動画として扱うことができません。
動画として扱うためには、このシミュレーションを記録する必要があります。
画面上部infoエディタのGameメニューより「Record Animation」を選択します。

そして、普通に【P】でシミュレーションを実行します。
これで、シミュレーションは記録されていきます。
動きがなくなってもうこのくらいでいいだろうと思ったら、そこで【Esc】を押してシミュレーションを終えてください。
【7】レンダリングしましょう
カメラの位置や光源の設定など、各自の好みで調整したら、いよいよレンダリングです。
動画ファイルとして出力しましょう。
まずは、infoエディタで「Blender Game」となっているところを「Blender Render」に戻しましょう。
プロパティ・エディタの「Render」を選択し、レンダリングに関する設定をしていきます。
基本的には各自のお好みでやってもらいたいのですが、設定によっては膨大な時間がかかってしまうので注意しましょう。
特に、出力サイズは無駄に大きくしないのが賢明です。
あとは、とりあえずイメージ通りか確かめるため、「Frame Step」の数字を大きくした状態でレンダリングしてみるのも良いかもしれません。
例えば「Frame Step」を「100」にしてレンダリングすると、フレームが100枚とびでレンダリングされます。
ざっくりどんなものか判断するのに良いでしょう。
※「フレーム」は、デフォルトで1秒あたり24フレーム(FPS=24)となっているので、24枚の静止画で1秒の動画になります。
また、静止画のレンダリングと違い、動画のレンダリングでは先に出力フォルダ、出力ファイルの種類や名称を設定します。
「Render」パネルの下の方の「Output」をうまくいじりましょう。

設定が完了したら、最後に「Render」パネルの上部にある「Render」の「Animation」を押しましょう。
ここからは座してただ待つのみ。
※明らかに数時間かかりそうなときは、思い直して出力サイズを小さくしたりした方が良いと思います。
【8】感動のフィナーレ
で、こんなのができるわけです。
意外と両側が崩れ落ちなかった…
極めればいろいろできると思われますが、とりあえずよくわからなくてもこんな感じにできちゃったりします。
みんなもレッツ・トライ!
sho