<3>Pull down itを使用した破壊表現のワークフロー②
ポイントは求める結果になるまで、何度も調整をくり返すことだ。時にはゲーム内の仕様に合わせて、特殊なカプセルが用意されることもある。敵キャラクターがスコップでテーブルを破壊するシーンでは、ゲームの展開に合わせて敵キャラクターがあらゆる方向からテーブルを破壊するという仕様に対応する必要があった。そのため、敵キャラクターにカプセルを設定するのではなく、キャラクターのアクションに合わせて上空からボール上のカプセルを落下させ、テーブルを破壊する方法が採られた。
テーブル破壊シーンのカプセル設定の様子
上空からキーフレーム剛体に設定されたカプセルが、ダイナミック剛体に設定されたテーブルにぶつかり、破片が周囲に飛び散る設定がほどこされている。なお、ボールは大小2つが時間差をつけて落下することで、よりテーブルが複雑に破壊されるように工夫されている。また、テーブルの周囲には同様にダイナミック剛体に設定された枠がつけられている。なお、ボールや枠は実際には透明であることは言うまでもない。
当初は単純にテーブルを破壊してみたが、あまり面白い破壊表現にならなかった。そのためテーブルの周囲に前述した枠を設定することで、大きな破片が上空に飛び散るような動きが表現でき、よりダイナミックな印象を与えることに成功したという。なお、床や壁はシミュレーションの負荷を下げるため、簡易メッシュに置き換えられている。
単純にテーブルを破壊した場合のシミュレーション結果
テーブルの周囲にダイナミック剛体の枠を設定した場合
しかし、Pull down itを使うと断面の形状も自動的に作成してくれるが、元の形状が複雑な場合は、断面が入り組むなど、綺麗に表現されない場合がある。そのため断面を手作業で埋めることもあったという。断面のUV展開もスクリプトで自動化するように工夫する必要があったという。
木材の破片。緑の部分が断面にあたる
また、テーブルが破壊されることで、その前後でのポリゴン数が飛躍的に増加する。下図の例では3倍近くポリゴン数が増加している。そのため前述の通り、床や壁などは簡易メッシュに置き換えて、シミュレーションの負荷を軽減させる必要もあった。
破壊作成前後のポリゴン数比較