お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2014/09/05 12:17

イベント

[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線

 「ゲームにおいて物理シミュレーションの重要度が増している」などという話はあらためて語る必要もないくらいだが,「どのような物理シミュレーションの実装が適しているのか」については,今なお熱い議論が続いている。

中川展男氏(セガ 第二CS研究開発部 プログラマー)
画像集#002のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線
 そんななか,ゲーム向け物理シミュレーションの実装方法として近年,有望視されてきているのが,位置ベースの物理シミュレーション(Position Based Dynamics,以下 PBD)だ。
 CEDEC 2014では,セガでソニックシリーズなどの開発に携わり,同シリーズの技術的な部分を担当してきた中川展男氏によるPBDの紹介セッション「Position Based Dynamics Omelette コンピュータグラフィックス関連の最新論文紹介」があったので,本稿ではその内容をレポートしたい。


位置ベースの物理シミュレーションとは何か


PBDは極めてゲーム向きの物理シミュレーション手法だと中川氏。NVIDIAが2013年に「GameWorks」の構成要素として発表した「Flex」もPBDベースだ
画像集#003のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線
 従来,コンピュータで取り扱う物理シミュレーションは,質量を持った点である「質点」ベースのことが多かった。

 ゲームにおけるグラフィックスは,連続時間ではなく,毎秒60コマなどといった更新時間単位で1フレームごとに描画する仕様であることから,あるフレームの時刻と前フレームの時刻の差分で表される離散時間「Δt」で管理される。
 そして,(連続時間ではない)一定リズムのΔtベースで質点の挙動を管理していると,計算の結果,衝突などにおいては衝突対象のオブジェクトがめり込んでしまうことがある。物体の移動が,Δtできっちり衝突する確証はなく,衝突してからもそのまま行き過ぎてしまうことがあるからだ。
 その場合は,めり込み量に応じて,めり込んだオブジェクト達が押し出される力(F)を質量(m)で割って,Δtにおける加速度を求め,そこから速度を求めることで,「次のフレームで描画される,めり込んでいない状態のオブジェクト位置」を決定することになる。

質点ベースの物理シミュレーション
画像集#004のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線

 それに対してPBDは速度を持たないのが大きな特徴で,「位置ベースの物理シミュレーション」という表現のとおり,位置を基軸として計算していくものとなる。

 PBDもΔtで管理している以上,めり込むこともあり得るのだが,そのときにはめり込みを解決できるまで衝突対象と自身の位置を修正を繰り返す。なぜ繰り返す必要があるかというと,衝突したオブジェクトは点ではなく,実際には形状を伴っており,破壊が起きない限りは形状を維持したうえで衝突を解決する必要があるからだ。
 また,あるオブジェクトの位置を修正すると,その修正に伴って,これと接触している別のオブジェクトの位置もずれる可能性がある。そして,その位置の修正を何度か繰り返すと,各オブジェクトは挙動が安定方向に導かれていく。「暴れているオブジェクトを押さえつけて,少しずつ静かにしていく(締め落としていく!?)」ようなイメージであり,こうした挙動を特定方向に導いていく物理的な制約パラメータは「拘束条件」と呼ばれる。人間の膝関節が鳥のように前方向に曲がらないのも拘束条件で,人間の足の挙動を計算・決定する際の大きな要因となる。

画像集#005のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線

 そのため,拘束条件を工夫することで,より多彩な物理シミュレーションを行うことができるようになる。たとえば流体であれば,密度に関する拘束条件を与えたり,ヒモやロープのようなものであればねじれ関連の拘束を与えたりすることで,リアルな挙動を作り出せるようになるのだ。

PBD手法で用いられるさまざまな拘束条件
画像集#006のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線

 その最新事例として中川氏は,梅谷信行氏らによってSCA 2014(SCA:Symposium on Computer Animation)で発表された論文「Position-based Elastic Rod」を紹介していた。


 氏はPBDの長所として,シンプルで破綻しにくい堅牢性があり,リアルタイム実装向きである点を挙げていた。氏は同時に「繰り返し回数によって挙動が変わる」「物理的な正確さに欠ける」という短所も挙げつつ,「最新事例ではこうした問題も解決の方向に動きつつある」と補足している。

中川氏が示したPBDの長所と短所。NVIDIAの「PhysX」におけるキーマンで,PBD関連の研究開発を行っているMatthias Müller-Fischer氏が特許を押さえている点も懸念材料として挙げられていた。NVIDIAはPhysXを無償で利用できるよう提供しているので,PBDの実装がすぐ訴訟問題に発展する可能性は低い気もするが,さて……
画像集#007のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線


流体に利用しやすいスムーズドパーティクルハイドロダイナミクス


 PBDの現状説明に続けて中川氏は,煙や液体といった流体(Fluid)の挙動をシミュレーションする必要のあるゲームで利用しやすいPBDの事例として,「スムーズドパーティクルハイドロダイナミクス」(Smoothed Particle Hydrodynamics,以下 SPH)を紹介した。
 SPHは,流体を無数のパーティクル(Particle,粒子。簡単にいえば3Dスプライト)で表現して挙動計算し,レンダリング時には何らかの方法で3D的な表面を持ったものとして可視化させるという流れで処理されるものだ。

SPHの概要
画像集#008のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線 画像集#009のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線

流体物理シミュレーションでは定番のナビエ-ストークス方程式(Navier-Stokes equations)がSPHの挙動計算に用いられる
画像集#010のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線
 乱暴にまとめてしまうと,SPHの挙動計算は,剛体物理の計算に「密度」「圧力」「動粘性係数」を追加して拡張したものだ。耳慣れないキーワードに「動粘性係数」があるが,これは物質の粘り気パラメータで,液体は温度が低いほど,そして気体は温度が高いほどに粘り気が増すという特性があり,それを係数としたものである。

SPHにおける密度と圧力の関係
画像集#011のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線
 SPHで取り扱う「密度」と「圧力」は,あるパーティクルに対し,周囲のパーティクルが密着するような挙動を示すと(=パーティクルの密度が増すと),それを遠ざけようとする力が発生する(=圧力が増す)という関係性で処理される。

 空間を格子で区切って管理して計算するグリッドベースのオイラー(Euler法とは異なり,SPHでは3D空間を移動するパーティクルで流体を表現するため,空間におけるパーティクルの疎密感が生まれる。そのため,流体の「界面」を美しく生成するためには,何らかの方法で平滑化しなければならない。
 実は,この要件こそがSPHにおける「Smoothed」を指しているのだが,では何を用いるか,曲線――3Dならば曲面――補間するカーネル関数ということになる。

画像集#012のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線
オイラー法(格子法,左)と,パーティクルの疎密と移動を見る方法(右)の違い
画像集#013のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線
2つの谷があるように見える界面をなだらかな山にしたり,尖り過ぎた山を自然にしたりする効果をこのカーネル関数で与える

画像集#014のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線
SPHで採用された,現実的な近傍粒子探索法
画像集#015のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線
SPHのビジュアル化アプローチ
 パーティクル同士の挙動計算は,あるパーティクルとほかのすべてとの組み合わせを処理しようとすると,とてつもない計算になってしまうため,あるパーティクルと,その近隣にあるパーティクルの組み合わせだけで計算を行えるようにしているのもポイントだ。

 パーティクルの挙動計算後は,これを可視化するプロセスが必要になるが,その最もベーシックな手法は「マーチングキューブ」(Marching cubes)と呼ばれるポリゴン面生成手法だ。ただ,マーチングキューブは“重い”処理なので,ゲームグラフィックス用途では,パーティクルを適当な球体形状等で深度バッファに書き出して,これをボカして滑らかにしたうえでライティング&シェーディングを行い,カラーバッファに書き出すというテクニックがしばしば用いられる。

 実際,Gearbox Softwareの「Borderlands 2」では,モンスターの流血表現や水面表現等にこの方法が採用された(関連記事)。また,スクウェア・エニックスの新世代ゲームエンジンである「Luminous Studio」ベースの技術デモ「AGNI'S PHILOSOPHY」でも,水や血液の表現にこのアプローチが採用されている(関連記事)。

 中川氏は,そんなSPH法による流体表現の最新研究事例として,Markus Ihmsen氏らによってCGI 2012(CGI:Computer Graphics International)で発表された「Unified Spray, Foam and Bubbles for Particle‐Based Fluids」という論文を紹介した。
 この論文では,SPHによって流体シミュレーションを行って「界面」としての水面を生成する以外に,水動の衝突や飛散によって起こる「飛沫」(Spray)や「泡沫」(Foam),「気泡」(Bubble)をも再現した実装例が公開されている。海辺に押し寄せる「巻き込む波」(Rolling Waves)なども,この手法ならば相当リアルに実現できそうである。


 中川氏は,SPHの長所として「格子法と比べると形状表現の自由度が高い」「計算量と品質がスケーラブルな関係で調整しやすい」「剛体を拡張したような概念なので剛体物理との相互干渉表現なども現実的に実装できる」点を挙げていた。
 短所としては「計算量が相対的には多め」などがあるものの,やはり改善策は徐々に出てきているという。

SPH法の長所と短所
画像集#016のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線


PBDとSPHで実現される「位置ベースの流体物理」


 中川氏は最後に,最新世代のゲーム向けとなり得る流体物理シミュレーションとして,「位置ベースの流体物理」(Position Based Fluid,以下 PBF)を紹介した。
 概念的にいうと,PBFは,SPHにPBDの概念を組み合わせた手法となる。

 前述のとおり,SPHはパーティクルベースでの処理となるため,総質量は変わらなくても,空間的に圧縮されてしまう状況が出てくる。流速が極端に高い流体であればそれでも許容できるが,流速の遅い気体や水のような液体では現実世界における振る舞いとは異なる挙動となり,許容しづらくなってしまう。そこで,非圧縮性の流体として扱う必要が生じるのだ。PBFはある意味で,非圧縮性の流体を扱えるようにPBDの概念を導入して拡張したSPHということができる。

PBFはPBD+SPH
画像集#017のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線

 具体的な拡張内容は,「SPHで圧縮が起こりうる箇所において,密度と圧力の計算をする部分が生じたら,『圧縮が起こらない拘束条件』で反復計算することによって圧縮を回避する」というものになる。

 もっとも,PBDの概念を導入することによってパーティクルがばらけがちになると,今度は流体と言うよりも砂粒のような感じに見えてしまう可能性が生じる。そこでPBFでは,液体の集まりなどで観察される表面張力的な,互いに引っ張られ合う分子間力を再現する人工圧力の概念も導入してある。このあたりは,物理的に正しくするための配慮というよりも,プロシージャル的な工夫に近いものといえるかもしれない。
 とはいえ,その効果は大きく,パーティクルがバラバラにはならず,パーティクル同士がなだらかな丸みを持った集まりを形成するようになり,よりリアルな液体表現ができるようになったそうだ。

PBFでは散らばりを避けるために表面張力的な概念を導入
画像集#018のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線

 PBD概念を導入することによるデメリットはもう1つ挙げられる。それは,パーティクルの挙動が安定方向に行きがちで,SPHの特長ともいえた,水面(=界面)からちぎれて分離するような“水らしい”表現がPBFで起こりにくくなってしまうことだ。
 そこでPBFでは,この問題を回避するために,やはりプロシージャル的な対処として,界面付近のパーティクルの挙動に対して乱流の影響を加えるということを行っている。

千切れるような液体表現の再現を行うにあたっては,乱流を導入した
画像集#019のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線

 このPBFの最新事例として中川氏は,NVIDIAのMiles Macklin氏がSIGGRAPH 2014で発表した「Unified Particle Physics for Real‐Time Applications」を紹介している。

Unified Particle Physics for Real-Time Applications - SIGGRAPH 2014 from Miles Macklin on Vimeo.


 「PBFはSPHの弱点をうまく克服しており,制約条件の与え方や拡張の工夫次第で流体以外の表現にも応用できそうだ」と中川氏はまとめていた。
 Sofien Bouaziz氏がSIGGRAPH 2014で発表した「Projective Dynamics: Fusing Constraint Projections for Fast Simulation」はその好例で,PBFに有限要素法的な拡張を導入し,自己変形するオブジェクトの表現を実現したものになる。


PBFの長所と短所
画像集#020のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線
 ただ,PBFは計算量が多くなる。そのため,中川氏は「実装にはGPGPU支援が不可欠である」とも考察していた。この点は押さえておく必要があるだろう。

 現在,ゲームにおける物理シミュレーションは,剛体物理だとある程度のリアリティを感じられるようになっているが,流体だとまだまだの部分が多い。今回紹介されたような最新技術の数々が,今後,実際のゲームで活用されていくような未来を期待したいものだ。GPGPUを現実的に活用できるPS4&Xbox One世代のタイトルなら,それは決して夢物語ではないのだから。

PBDとSPH,PBFの3技術まとめ
画像集#021のサムネイル/[CEDEC 2014]剛体から流体まで,セガのプログラマーが語る「位置ベース物理シミュレーション」の最前線

CEDEC 2014公式Webページ

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:11月22日〜11月23日