« 雪の八王子キャンパス | トップページ | コミュニケーションにおけるジェスチャーの重要性 »

先端メディア「先端 Procedural Animation」紹介:剛体シミュレーション編

2018年1月23日 (火) 投稿者: メディアコンテンツコース

本ブログをご覧の皆様,こんにちは.

メディア学部准教授 菊池 です.

本日のブログでは,メディア学部が開講している「先端メディア学・ゼミナール」という科目のなかで,私が担当している「先端 Procedural Animation」に関して紹介したいと思います.
「先端メディア学・ゼミナール」がどのような授業かというのは,是非こちらをご覧ください.

「先端 Procedural Animation」では,CG 映像のなかでも「ビジュアルエフェクト( VFX )」分野で用いられる様々なシミュレーション手法に関して,基本的なアルゴリズムの解説,およびSIGGRAPH などのトップカンファレンスに採録されている論文を輪講しながら学び,理解を深めます.

その後,Side Effects Software 社が開発・販売している「Houdini」を利用し,学んだアルゴリズムがどのように実装可能なのか,どのようなシミュレーション結果になるのか,さらにどのような映像表現が可能なのかを実際にノードベースのビジュアルプログラミングを行いながら実装していきます.

今回のブログでは,この「先端 Procedural Animation」で取り組む「剛体シミュレーション」に関して紹介します.

剛体シミュレーションとは,変形しない物体である剛体の運動や衝突,破壊を物理ベースで計算するものです.基本的に剛体の運動はニュートンの運動方程式に従い,速度変化と移動ベクトルを求めることによって再現が可能です.
ただし,剛体が複雑な形状をしている場合や他の物体との衝突などがある場合は,エネルギー保存則や衝突判定を考慮する必要があり,計算はより複雑になります.

「先端 Procedural Animation」の剛体シミュレーションでは,まず簡単なボックスと平面を以下の図 1 のようにセッティングし,重力による落下と衝突判定を行います.
衝突判定には,「OOBB ( Object Oriented Bounding Box )」を利用して,ミンコフスキー差を用いた分離軸の理論による判定を行っています( GJK アルゴリズム).

01
図1.ボックスと平面の衝突


次に,ボックスを事前に「ボロノイ分割」によって分割します(図 2).そして,ボックスが重力によって平面に落下した際,事前に分割した破片にバラバラになるというシミュレーションを行います(図 3).

2
図2.ボックスを事前にボロノイ分割した様子

3
図3.ボロノイ分割しておいたボックスと平面の衝突シミュレーション


このシミュレーションは,剛体であるボックスに事前に「ボロノイ分割」を利用して破片形状を生成しておき,平面と衝突するまでは拘束条件を与えて密着させて,平面と衝突したと同時にバラバラに分割するというものです.

このような前処理を行っておくことで,ボックスの破壊を動的に計算することなく,バラバラになった破片のそれぞれは上記の「GJK アルゴリズム」による平面との衝突判定を行うだけで運動を再現することができます.

同様の手法を応用すると,図 4 のような「ゾンビが歩きながらバラバラになる」ような映像も生成可能です.

4_2
図4.ゾンビが歩きながらバラバラになるシミュレーション例

「先端 Procedural Animation」では,流体(FLIP)やクロスシミュレーションも行っており,下記のブログ記事で紹介していますので,是非併せてお読みください.
流体アニメーション編
Cloth シミュレーション編


文責 : 菊池 司

コンテンツ」カテゴリの記事

卒業生向け」カテゴリの記事

在学生向け」カテゴリの記事

授業紹介」カテゴリの記事

高校生向け」カテゴリの記事

« 雪の八王子キャンパス | トップページ | コミュニケーションにおけるジェスチャーの重要性 »