イベント
[CEDEC 2013]早稲田大学が発表した次世代のグラフィックス表現は「埃」と「口内」に注目?
降り積もる「埃」をリアルタイムにレンダリング?
毛皮や芝のように,背の低い繊維状のオブジェクトをレンダリングする手法に,「シェル法」というものがある。
シェル法では,毛皮や芝の断面図ともいえるテクスチャを用意して,これを積層させたポリゴンに適用することで,細い繊維を表現する。簡易的ボリュームレンダリングのようなものだが,ゲームグラフィックスでは比較的古くから採用されている手法だ。
この手法で重要なのは,断面図テクスチャ(シェルテクスチャ)をどう作るかなのだが,2012年に同研究室が発表した毛皮再現用のプロシージャルテクスチャ生成は,写真を基にして半自動生成するという仕組みだった。
「なぜ埃なのか」といえば,「埃が積もる」という描写は,経年変化を表すグラフィックス表現として有効だからだ。積もった埃を表現するテクスチャを,アルゴリズムで生成できるのであれば,開発効率の向上にもつながる。
「積もった埃」は,経年変化を表現するのに有効な手法だ |
埃をリアルタイムレンダリングするにはシェル法を応用する |
安達氏らの研究グループは,このアルゴリズム開発のために,「大局モデリング」と「局所モデリング」の2つのアプローチを検討したという。
大局モデリングとは,埃の堆積具合,つまり埃がどこにどれだけ積もっているかという,厚みの分布をモデリングする手法である。埃は均一に積もるわけではなく,やや不規則に積もるほうが自然なので,ある種のゆらぎを与えないと,リアルな積もり方を表現できないわけだ。これを実現するために,安達氏らは雲や波,山岳のような“大局的な周波数変化”の中に,微細な振動を伴わせることができる「Perlin Noise」と呼ばれる手法を採用したという。
堆積した埃の厚みの変化を表現するのに,Perlin Noiseというアルゴリズムを選んだ |
Perlin Noiseは,プロシージャルアルゴリズムでよく利用される算術ノイズ発生手法である |
一方の「局所モデリング」とは,シェル法で各テクスチャを描画する部分であり,今回の例であれば,埃の繊維を表現するためのものだ。
今回は短い繊維状の埃を表現するので,短いランダムな曲線を描けばいいわけだが,単に初期位置からランダムに点を動かして線分を描画するだけでは,リアルな埃に見えなかったという。そこで,研究グループが実際の埃を分析したところ,埃の繊維には時々大きく折れ曲がって(屈曲と呼ぶ),「ちぢれ毛」のようになっている部分があることに気付いたため,この要素を取り込むことにしたとのことだ。
局所モデリングとは,埃のシェルテクスチャ生成部分。テクスチャ平面上で点をランダムに移動させて線を描くのが基本だが,研究グループではこれに「ちぢれ」を加えた |
研究グループは実装に当たって,運動回数(線分の長さ),屈曲回数,屈曲角度という3つのパラメータと,「運動確率」マップというものを用意した。
運動確率マップとは,点を打ちながら進むときに,「どの方向に進路を取るか」を確率分布で表したものだ。運動確率マップには,最初に与えた基本進路(繊維が伸びる方向)に重み付けした確率が設定されているので,これを使うと「微妙に曲がりながらも一定の方向に伸びる線」が描けるというわけだ。この「線が微妙に曲がる」ことを,講演では「微動」と呼んでいる。
曲がった繊維を描くための3つのパラメータと,それにより描写された繊維の例 |
運動確率マップの概念。繊維がどちらの方向に伸びるかを8方向に分けて確率を定義した |
さて,実際に繊維を描画するときには,ランダムに選んだテクスチャ上の初期位置からスタートして,運動確率マップで伸びる方向を決定しつつ,運動回数分の点を打って描画していく。その途中で,低い確率に設定されてはいるが,最初のパラメータで指定した特定の方向(屈曲角度,下のスライドでは45度)が,運動確率マップで選ばれると,今度はその方向を新たな基本進路として,運動確率マップを更新するといった処理も組み込まれている。
こうしたアルゴリズムにより,一定方向に微動しながら伸びつつ,ときどき屈曲するという線が,埃を構成する繊維のテクスチャとして描かれるというわけだ。
思い返せば,
結果は,以下のスライドにあるとおりで,なかなかリアルな綿埃が表現できている。繊維の長さを変えたものや,色を緑に変えて「コケ」を模した画像も公開されたので,合わせて掲載しておこう。ゲームグラフィックスに応用すれば,埃にまみれた室内や調度品を表現するのに,効果を発揮するでのはないだろうか。
埃の繊維を短くして堆積させたもの。上の画像と比べて,積もっている埃が少なく見える |
こちらは左の画像を基に,繊維の色を緑に変えて,コケが生えているような表現にした例 |
よりリアルな顔面アニメーションを実現するために
口内の表現に注目
ゲームに登場する人物のキャラクターは,グラフィックスがアニメ調であろうとリアル志向であろうと,現実の人間と同じように口を動かして会話することが多い。プレイヤーがそうしたキャラクターを見るときには,無意識に「人間の動きに近いもの」を期待して見るので,違和感を感じさせないように顔面のアニメーションをリアルにしていこうという流れは,ますます強くなっている。役者が演じる顔の動きをキャプチャして,それを基にキャラクターに表情を付ける「フェイシャルキャプチャ技術」を実用化しているゲームも少なくない。
なお,今回発表された研究の主眼は,あくまでも口の中を表現することにあるので,唇の動きは既存の手法をほぼそのまま流用しているという。それは,まず正面から顔の静止画を撮影して,そこから顔面の特徴点を抽出し,仮の3D顔面モデルを構築。その顔面モデルに対して,音素と唇の動きに対応するアニメーションを適用するという手法だ。
しかし,これだけでは表面しか描写できず,口の中まで表現することはできない。下に掲載した2本のムービーがその例で,口の中を一切描写していないものと,口の中を簡易に描写したものを掲載している。
口内の表現に必要な要素といえば,歯と舌の動きだ。そこで川井氏らは,まず歯の表現に取り組むことにした。
歯をむき出した状態での正面写真を撮影し,この写真から上歯と下歯の画像をそれぞれ取得しておく。
川井氏らの研究によると,発話で口を動かしているときには,鼻の頂点から上歯までの距離や下歯から下あごまでの距離は,ほとんど変化しないのだという。そこでこの法則を応用して,口の動きに合わせた上歯と下歯の画像を合成することで,口と歯の動きを表現することが可能になった。
鼻頂点と上歯,下あごと下歯までの距離は,開口の具合に寄らずほぼ一定と見なせる |
この法則に従って,歯画像の位置を計算して発話アニメーションに挿入した |
歯はこれでいいとして,難関なのは舌の動きだ。
川井氏らはまず,器具を使って口を大きく開かせた状態で,「ある音素から別の音素へ推移する」ビデオを撮影し,舌の動きをデータベース化した。この音素推移による舌の動きは,全部で149通りもあるそうだが,一度データベースを作ってしまえば,これを基にしてあらゆる発話で舌の動きが再現できるとのことだ。
こうして,入力音声に合わせた舌の動きを作り出し,口内に歯と舌を合成することができるようになった。しかし,これだけでは合成の境界にジャギーが出てしまったり,合成画像っぽい不自然さが残ってしまう。そこで合成後の映像に対して,見栄えをよくするための処理を施すことにしたと,川井氏は説明する。
その処理には,「Detai-lization」(ディタイリゼーション)と呼ばれる手法を駆使したという。入力画像を基に,データベース内の画像パーツを探索して,適切な状態になるよう入力画像を再構成する「Visio-lization」(ビジョリゼーション)という手法があるのだが,Detai-lizationはこれを基盤として,データベース探索をより厳密に行うことで,さらに精度の高い画像の再構成を行う手法とされている。
下に掲載したムービーを見ると,これらを適用したアニメーションの違いが分かるだろう。
講演では,実写の映像と今回の手法による合成映像を並べて表示し,「どちらが実写映像なのか」を来場者に当てさせるクイズが行われた。来場者は当然ながら,CGアニメーションを見慣れた人々ばかりなのだが,それでもほぼ半々に答えが分かれたのだから驚きだ。それだけこの手法がリアルに見えたと言うことだろう。
このクイズに使われたムービーを,下に掲載しておこう。どちらが実写でどちらが合成映像か,見分けられるだろうか? 答えは記事の最後に記しておこう。
以上のように,川井氏らが開発したこの手法は大変ユニークである。しかし,これをゲームグラフィックスに応用するとなると,いくつかの課題が残されているとのことだ。
筆者が見たところ,Detai-lizationで映像を再構成する部分は,処理に要する時間(CPU負荷)を考えると,リアルタイム性重視のゲームグラフィックス向きではないように思える。実写に匹敵する映像を再構成しようというのだから,現状では致し方ない部分かもしれないが。
また,アニメ調のキャラクターやCGらしさを残した人形っぽいキャラクターには,実写をベースとする今回の手法は適用が難しいだろう。そういうキャラクターに口内の表現まで必要か,というのはまた別の問題だが。
手法の是非はともかくとして,顔の表現はゲームグラフィックスの最先端として盛んに研究が行われている部分である。その中でも,あまり手つかずだった「口内」の表現に着目した本研究は,価値の高い研究であるといえるのではないだろうか。
ちなみにクイズの答えだが,左が実写で右が合成映像である。あなたは正解できただろうか?
CEDEC 2013 公式Webサイト
- この記事のURL:
キーワード