以前の記事でBlamアドオンの紹介をしました。
今回はその続きとしてBlamで写真に合わせたシミュレーションを作成していこうと思います。
前回作成したblendファイルを使っていくので必要な場合はダウンロードしてください。
1:レンダリング時の背景に写真を設定する
前回背景として使用した写真をダウンロードリンクから保存しておきます。
blamTest.blendを開いたら、右側にある「テクスチャアイコン」を左クリックして選択し「ワールドテクスチャアイコン」を左クリックで選択した後に「New」ボタンを左クリックします。

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


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

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

この状態で「Rendered」画面に切り替えます。

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

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

これでレンダリング時にも背景がそのまま使用できます。
2:シミュレーション用に透明なオブジェクトを配置する
写真に合わせてボールを跳ねさせたいので、壁とベンチに透明なオブジェクトを作成します。
「Rendered」画面から「Material」画面に切り替えます。

次に3D View上で「Shift+Aキー」を押して「Cube」を選択します。

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

次に実際にレンダリングする時にこのベンチに見立てたCubeが見えてしまうと困るので、以下の記事にしたがってオブジェクトを透明にします。
透明にしたら「Physicsアイコン」の「Rigid Body」ボタンを押します。

そして「Rigid Body」の「Type」を「Passive」に変更します。

同じように壁のオブジェクトも追加して以下のようにします。

これで透明なオブジェクトの準備が完了です。
3:シミュレーション用を行う
「Sphere」を選択した状態で「Physicsアイコン」の「Rigid Body」ボタンを押します。

Rigid BodyをSphereに追加したら下画面を「Dope Sheet」に切り替えます。

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

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

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

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

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

地面に透明なオブジェクトを置いてないので落ちていますが、ちゃんと写真の壁とベンチにSphereが当たっているように見えます。
照明と色を調節してレンダリングすると以下のようになります。
ブログ用 pic.twitter.com/XKyaWXIurD
— シン・ほいっぷ (@sin_deviding) September 19, 2018
あとは反発係数を調節したり色や照明を調節すればよりリアルになります。
以上が写真に合わせたシミュレーション方法です。我流なのでもう少し良い方法があれば教えていただきたいです。
今回作成したblendファイルも公開しておきます。
・参考資料