ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【Blender】写真に合わせたシミュレーション方法

rikoubou.hatenablog.com

 以前の記事でBlamアドオンの紹介をしました。
 今回はその続きとしてBlamで写真に合わせたシミュレーションを作成していこうと思います。

 前回作成したblendファイルを使っていくので必要な場合はダウンロードしてください。


1:レンダリング時の背景に写真を設定する
 前回背景として使用した写真をダウンロードリンクから保存しておきます。

 blamTest.blendを開いたら、右側にある「テクスチャアイコン」を左クリックして選択し「ワールドテクスチャアイコン」を左クリックで選択した後に「New」ボタンを左クリックします。
f:id:rikoubou:20180919174737p:plain

 追加したら「Image」の「Open」ボタンを左クリックして背景にしたい対象画像を読み込みます。
f:id:rikoubou:20180919174850p:plain
f:id:rikoubou:20180919175156p:plain

 画像を読み込んだらスクロールさせた先にある「Influence」の「Horizon」にチェックを入れます。
f:id:rikoubou:20180919175223p:plain

 次に「ワールドアイコン」を左クリックして「Paper Sky」にチェックを入れます。
f:id:rikoubou:20180919175346p:plain

 この状態で「Rendered」画面に切り替えます。
f:id:rikoubou:20180919175605p:plain

 すると、レンダリング時に読み込んだ画像が背景として表示されるようになります。
f:id:rikoubou:20180919175657p:plain

「テクスチャアイコン」からワールドのテクスチャに戻り「Image Mapping」の「Extension」を「Clip」に変更します。
f:id:rikoubou:20180919180211p:plain

 これでレンダリング時にも背景がそのまま使用できます。


2:シミュレーション用に透明なオブジェクトを配置する
 写真に合わせてボールを跳ねさせたいので、壁とベンチに透明なオブジェクトを作成します。

「Rendered」画面から「Material」画面に切り替えます。
f:id:rikoubou:20180919180953p:plain

 次に3D View上で「Shift+Aキー」を押して「Cube」を選択します。
f:id:rikoubou:20180919180856p:plain

 これを変形させてカメラから見て背景のベンチと同じような位置になるよう配置します。
 この時3D View上で「Z」キーを押しすと線だけの表示になるので、それを使うと位置を合わせやすいです。
f:id:rikoubou:20180919181745p:plain

 次に実際にレンダリングする時にこのベンチに見立てたCubeが見えてしまうと困るので、以下の記事にしたがってオブジェクトを透明にします。

 透明にしたら「Physicsアイコン」の「Rigid Body」ボタンを押します。
f:id:rikoubou:20180919182738p:plain

 そして「Rigid Body」の「Type」を「Passive」に変更します。
f:id:rikoubou:20180919182918p:plain

 同じように壁のオブジェクトも追加して以下のようにします。
f:id:rikoubou:20180919183024p:plain

 これで透明なオブジェクトの準備が完了です。


3:シミュレーション用を行う
 「Sphere」を選択した状態で「Physicsアイコン」の「Rigid Body」ボタンを押します。
f:id:rikoubou:20180919183159p:plain

 Rigid BodyをSphereに追加したら下画面を「Dope Sheet」に切り替えます。
f:id:rikoubou:20180919183414p:plain

 3D View上で「i」キーを押して「Location」を選択してSphereの現在位置を1フレーム目に登録します。
f:id:rikoubou:20180919184122p:plain

 次に3フレーム目に移動させ、Sphereを壁に少しだけ近づける位置に移動させて同様に3フレーム目に位置を登録します。
f:id:rikoubou:20180919184548p:plain

 そこまでできたらSphereの「Physicsアイコン」を選択して「Rigid Body」の「Animated」にチェックを入れて「i」キーを押して登録します。
f:id:rikoubou:20180919184840p:plain

 次に4フレーム目にして「Rigid Body」の「Animated」にチェックを外して「i」キーを押して登録します。
f:id:rikoubou:20180919185030p:plain

 これで初速を設定できたのでアニメーションで再生してみると以下のようになります。
f:id:rikoubou:20180919185243g:plain

 地面に透明なオブジェクトを置いてないので落ちていますが、ちゃんと写真の壁とベンチにSphereが当たっているように見えます。

 照明と色を調節してレンダリングすると以下のようになります。

 あとは反発係数を調節したり色や照明を調節すればよりリアルになります。


 以上が写真に合わせたシミュレーション方法です。我流なのでもう少し良い方法があれば教えていただきたいです。

 今回作成したblendファイルも公開しておきます。


・参考資料