ビルを破壊する

トップ画像

まえがき

建物が破壊される表現は娯楽映画の醍醐味です。

一方、低予算映画であると、なかなか行うのが難しいのも事実です。

この記事では、できるだけ難しいこと抜きに破壊表現を行うための手順を説明します。どれぐらい簡単かというと、この手順は物理シミュレーションなどやったことのない人が、2週間でこしらえたものです。それから、わたしたちが実際にシリウスの七日間TVスポット15秒版で行った工夫や得た知見を紹介します。

なお、この記事では破壊表現のためにFoundry社のMODO 11を使用しています。一部サンプルはmodo 802を利用しています。ですが、似たような機能があるソフトであれば概ね応用できると思われます。

基本的な流れ

まずはビルを何フロアか爆破することにしましょう。この章ではビルの建設から基本的な破壊までを説明します。

初期設定

画面分割の変更

まずはMODOを起動し、新しいシーンを作ります。

モデルビューが表示されたら、好みにもよりますが、Alt+0で画面を4分割に切り替えると作業しやすいと思われます。

スナッピングの設定

続いてスナッピングを適用します。建築モデリングにはスナッピング機能が極めて便利です。簡単に正確なモデリングが可能になります。

グリッドを活用すると簡単な構造の建築物は作りやすいので、編集>スナッピング>スナッピングオプションかF11キーでスナッピングポップオーバーを立ち上げて、スナップタイプのグリッドにチェックを入れます。

モデリング

柱の作成

立方体を作成し、柱を作ります。ここでは幅と奥行き共に400mm、高さ3.9mの柱を建てました。グリッドにスナップさせれば、簡単に正確な大きさの柱を作れます。

続いて、この柱から上下のポリゴンを除去します。これらは露出しないため、消したほうが良いいです。

建物が巨大になればなるほど、こういう大量複製するパーツからポリゴンを除去することが、最終的な取り回しのしやすさにつながります。このあと破壊のため大量に頂点数を消費するのだから、早い段階で手を打っておいた方が良いでしょう。

床の作成

複製タブから配列を選び、柱を4本に増殖させます。これは、床を作るときの大きさを把握するためのものです。柱同士の間隔をなんとなくつかむために置いているだけですから、数はこれだけでかまいません。あまり近すぎず離れすぎないいい按配を探してください。

つづいてどれか適当な柱の下に、床になる立方体を配置します。この床と柱を大量に複製して一階層を構成するので、床の中心に柱が立ち、かつ床の端は柱同士のちょうど中間になるように調節する必要があります。

なぜ一枚の大きな板で床を作らないのかはあとで説明します。

不用なポリゴンの除去

さらに、この床に対して、柱の端に沿うようにポリゴンを分割します。基本>スライスとするか、Shift-Cでスライスツールを使って切り込んでいきます。スナッピングが有効になっていれば、簡単に正確な位置に切り込みを入れられる筈です。

切り込みを入れ終わったら、柱と重なる部分のみ選択して、これらポリゴンを除去します。柱と重なる部分を手軽に選択するためには、まず正面ビューから投げ縄選択で床の上下側面問わずの中心部分にあたるポリゴンを選択します。

その後不用な部分を上面ビューにおいて、Ctrl+クリックでのドラッグを行い非選択にしてやります。このように一度不要な部分も選択し、その後その部分を非選択にする方が、細かく作業して正確な選択を行うよりも楽なこともあります。

慣れれば、状況に応じて楽な方法を思いつくでしょう。また、MODOには様々な便利選択機能があるので、それを習得するのも良いでしょう。体系的に学ぶのが大変であれば、チュートリアルビデオを見ながらつまみ食いしていってもいいと思います。

同様に側面のポリゴンも選択して除去します。最終的には側面にポリゴンが必要になりますが、このあと複製を行う過程で床の中に埋没してしまうポリゴンが発生します。このため、先制して除去しておき、あとで必要なポリゴンを追加しましょう。

階層の作成

まず、間隔を確認するために置いておいた柱を除去します。続いて、柱と床をまとめて、複製>配列で一気に複製しましょう。

続いて、頂点タブの結合を選択し、頂点を結合します。今回に限らず、何か複製したりして、頂点同士が同じ座標に複数置かれる仕事をしたら、これを行って頂点を結合し、後の取り回しを良くしておくことを心がけます。頂点数が削減されるから描画が軽くなりますし、他にも様々な利点があります。

意外と大量の頂点を浪費しているものです。

この工程は柱と床を一つの物体として認識させ、物理的に存在し得ない継ぎ目を除去するための工程です。この工程を飛ばすと、あとでひどい目にあいますが、その結果についてはあとで説明します。

続いて、一つ一つの床部分のつなぎ目であったエッジも必要ないのでこれを選択します。これも正面および右面ビューから投げ縄選択すると楽です。

エッジ>エッジの除去で、エッジを除去すると階層が完成します。複製>複製として一気に階層を複製してビルを建ててしまいましょう。

破壊対象の分離

破壊対象の床とそこに直に接する柱を選択します。まず対象の床を正面ビューで投げ縄選択し、Shift+クリックでドラッグしながら対象の柱を触って選択していきます。

カットアンドペーストで新たに作成した別のメッシュアイテムへと移行します。このとき、選択がうまくいっていないと、柱が残ることがありますが、そういうときは落ち着いてカットを取り消し、柱を再度Shift+クリックからのドラッグでゆっくり触れてやれば上手く選択できるはずです。

柱の閉鎖

このままだと、すべての柱に穴が開きっぱなしになってしまいますので、これを閉鎖します。まず、一旦下側の柱における、先端の頂点を選択し柱を除去します。こうするとポリゴンを選択するよりも投げ縄の操作精度を粗くできますから、簡単に選択できます。

上側の柱の同じ側の一エッジをすべて選択し、これをエッジ>エッジ拡張して柱の穴を塞ぎます。

上側の柱をポリゴン選択し、複製>ミラー複製で軸をYにとって鏡面複製し、下側にも穴を塞いだ柱を複製します。

エッジ選択が面倒なので、一旦柱を消して再度複製した方が楽だろうという判断です。ついでに頂点を結合しておきましょう。

なお、破壊部分の上部と下部のフロアにも穴が開きっぱなしになっていますが、これはあまり気にしなくても今回の場合は大丈夫です。

効果

メッシュの粉砕

形状>メッシュシャッターでメッシュを粉砕します。

破片の個数は200ぐらいにしておかないと、破砕対象が巨大なため、一つ一つの破片が大きすぎて不自然になります。

メッシュシャッターを適用した結果、このように結果が破綻することがあります。

こんなときは、一度メッシュ全体をポリゴン選択した後にShift+エッジモードで境界を選択させます。

すると、このように閉めそこねた柱が見つかるかもしれません。一見穴が塞がっているように見えても、実は同じもしくは大変近い座標にエッジが二つあって、実際は結合されていない場合もあります。

ここは物理的にはありえない状態です。どんなに薄い物体でも、このように裏からみたらなにもない、という、板ポリゴンの状態はありえないからです。

原理は省略しますが、閉じていないメッシュと呼ばれるこのように穴が空いたメッシュは様々な問題を引き起こすので、適宜頂点を結合し穴を塞いで、現実において実現可能なモデルを作るよう心がけましょう。

破壊部分の上部をより自然にする

このまま物理演算を開始すると、破壊部分の上が見事に柱の付け根で切断されて落ちていくことになり、極めて不自然になります。これに対処しましょう。

アイテム編集モードで、破壊部分の上部の柱の末端部分を投げ縄選択すると、そこにかかるパーツがすべて選択されます。

これをAlt(Option)+ポリゴンとしてポリゴンによる選択に変換し、カットして最初に作業していたメッシュアイテムにペーストします。

これにより、破壊部分の上部に粉砕されたメッシュが接合され、より自然な切断面が得られます。

その後、これらをまとめた破壊部分の上部も別のメッシュアイテムにペーストします。

物理演算

メッシュシャッターによって粉砕されたメッシュは、破片ごとにメッシュアイテムとなり、グループロケータに格納されます。まずこのグループロケータをダブルクリックしてグループロケータ以下すべてのメッシュを選択し、さらにグループロケータをCtrl+クリックして選択解除します。これで、演算対象のメッシュアイテムのみを選択できます。

レイアウトに移動し、ダイナミクス>複合リジッドボディとして、選択中のアイテムをまとめて剛体物理演算の対象とします。また、上部はダイナミクス>アクティブリジッドボディとして、最初に作業していたメッシュつまり破壊部分の下部にしてはダイナミクス>スタティックリジッドボディとして同様に物理演算の対象とします。

これにより、破壊部分の上部と破壊部分は物理演算の影響を受け移動し、破壊部分の下部は静止したままそれらを受け止めるという動きになります。

さらに、それぞれのプロパティのダイナミクスタブからプリセット「岩石」を選択します。コンクリートなので、石として重さや跳ね返りの大きさを扱えるわけです。

ここまできたら、物理シミュレーションを開始し、結果をキャッシュしましょう。

タイムラインで再生ヘッドを移動させるなり、アニメーションを再生すれば、破壊表現ができたことがわかると思います。

応用と工夫

内容

場面

ビルが吹っ飛んだ瞬間、あるいは登場した瞬間に画面の品質が落ちて興冷めされることを避けるために、できるだけ見づらい状況を用意しましょう。

とにかく場面を暗くしてごまかした例
とにかく場面を暗くしてごまかした例

動作

慣れないうちは破壊部分を一気に吹き飛ばしましょう。着弾した部分だけが壊れる、とかならまだしも、ビームで少しずつ崩壊していく、とかは考えただけでも面倒で頭が痛くなります。

ビームが貫通しているときに破壊は起きず、一通り薙ぎ払ったあと爆破するという逃げ方の例
ビームが貫通しているときに破壊は起きず、一通り薙ぎ払ったあと爆破するという逃げ方の例

材質

ビルを構成する材質は、コンクリート、ガラスおよび金属の三種類で十分です。この三つがあればそれなりに見えます。

これは、筆者の記憶が正しければ、CG WORLDのシン・ゴジラメイキングでエフェクトアーティストの米岡氏がおっしゃっていたことです。残念ながらこの放送は、現在見る手段がないので確認できません。

破壊の有無

元から小さい窓ガラスのようなパーツは、破壊せずにそのまま吹き飛ばしても遠目にはバレないのでそのままやりましょう。演算資源を浪費することがなく、仕事が早く済みます。

これは、筆者の記憶が正しければ、巨神兵東京に現わるで行われた破壊方法です。このメイキングビデオも、現在見る手段がないので確認できません。

窓ガラスが原型を留めたまま窓枠から外れて吹き飛んでいる例
窓ガラスが原型を留めたまま窓枠から外れて吹き飛んでいる例

環境

作業マシン

3D CGIの作業だとモンスターマシンが必要だと思って、ありったけの構成を考える人がいますが、特にMODOの場合は注意が必要です。

今回の作業の場合、もっとも重いのはメッシュシャッターによるメッシュの粉砕ですが、これはシングルスレッドで動作するため、CPUのコア数を増やしたり、グラフィックスカードを強化しても何の価値もありません。

確かに、CPUのコア数を増やせばレンダリングは高速化されますし、GPUレンダラプラグインを導入すればGPUを用いて高速なレンダリングが可能です。しかし、物理シミュレーションやモデリング操作は2017年春現在シングルスレッドで行われていると考えられ、単一のコアの処理性能が極端に高いCPUを選択することに最も価値があります。

別の表現をするのなら、MODOによる物理シミュレーションの高速化はコンシューマのハイエンドCPUを使用することで事実上の上限に達しており、高額の投資を行って複数のスレッドを走らせられる強力なマシンを仕立て上げても何の効果もありません。

このため、マシンの強化の際にはモニタリングツール等を用いて、不用な出費を避けましょう。

むすび

この記事では、第一に簡単な3D CGIによる破壊表現を、破壊対象のモデリングから物理シミュレーションまで説明しました。続いて、応用する際に必要な配慮などについて記しました。