イベント
[GDC 2017]AI時代のUIデザインに取り組む「Magic Lab VR」,そしてPS4標準SDKに搭載の「OpenSubdiv」が世界初公開となったPlayStationブース
「THE PLAYROOM」の雰囲気を継承したPS VR用の技術デモ「Magic Lab」〜AI時代のUIはこうなる!
PS4の「PlayStation Camera」対応ソフトとしてプリインストールされていた「THE PLAYROOM」というソフトがある。その後,PS VR向けのミニゲーム集の決定版「THE PLAYROOM VR」としても登場しているので,「人気シリーズ」と言ってしまっていいだろうが,そのエンジニアの一人でもある横川 裕氏の参加している実験プロジェクトが,今回取り上げるMagic Lab VRである。
前提の話をしておくと,VRに関わらず,ゲーム世界におけるキャラクターのインタラクションは,「対象をマークして話す」といったコマンド(命令)を発動することで行っている。
それに対して,今後,ゲーム世界のバーチャルキャラクターにおいて機械学習型の人工知能(以下,AI)が当たり前になり,ユーザーとバーチャルキャラクターとの間で相互能動的なインタラクションが生じるようになると,既存の「選択→命令」型インタフェースではうまく対応できない状況が出てくるはずだ。
Magic Lab VRプロジェクトチームは,そういう「AIが当たり前になった状況」を想定した,次世代のインタフェースもしくはインタラクションの研究開発に取り組んでいるのである。
今回公開となったデモは,THE PLAYROOMに登場したMini Bots的なかわいらしいロボット――大小1体ずつ――が佇んでいる,子供部屋のような室内が舞台だ。室内には鉄道模型が広げられていて,この部屋にやってきたプレイヤーは,「PlayStation Move」(以下,PS Move)を駆使して,ロボット達とのインタラクションを楽しむことになる。
ロボット達は,プレイヤーを目で追い続ける基本姿勢で立っているが,部屋の中を走り回る鉄道模型が汽笛を鳴らすとビクっとしてそちらを向いたりする。ロボット達は,プレイヤーだけでなく,自分を取り巻く環境にも意識を払っているという証拠だ。
プレイヤーが手に持つPS Moveは,Magic Lab内でプレイヤーの手に相当しており,室内にある気になる家具などの調度品を指したうえで,小型のロボットと目を合わせて「うんうん」と頷くと,それを取って来てくれるという動作も確認できた。
現実世界では,大勢の群衆の中の特定の人物に対して目線で合図を送ったりすることが普通にあるわけだが,Magic LabではそうしたことをVRやAR,MRなどで実現するための基礎技術開発をしているのかもしれない。
「OpenSubdiv」相当の機能をPS4標準SDKが搭載
トイストーリーシリーズの制作などで知られるPixar Animation Studios(以下,Pixar)は,少ポリゴン3Dモデル――実際には制御点メッシュからなるモデル――でアニメーション処理を行い,描画するときは数学的にこれを分割し,滑らかな多ポリゴンモデルへと変換する「Subdivision Surface」(細分割曲面。本稿では以下,略称の「Subdiv」ないしは広義的に「テッセレーション」と呼ぶ)技術を長短すべての映像作品で採用している。
付け加えると,このSubdiv技術に関連した基本特許を広く押さえているのがPixarなのである。
たとえば鱗(うろこ)で覆われた腕があったとして,この腕をアニメーションさせる場合,その計算は,少ポリゴン3Dモデルからなる「鱗のない腕」で計算して,腕の姿勢が決まった後で鱗のディテールを付加する。こうしたほうが,腕の位置を計算するときに,鱗側の頂点データが必要にならない分だけ,GPU側の頂点シェーダにかかる負荷は小さく済ませられるといった具合だ。
そんなPixarは2012年,Subdivに関連する特許を突如として無償開放し,同時に,このSuvdiv技術をGPU向けにオープンソースプロジェクトで実装していく「OpenSubdiv」を発表した。
OpenSubdivとは何かについてはCEDEC 2013のレポート前編と後編が詳しいので,本稿では割愛するが,この時点でSubdiv技術は,ゲームなどのリアルタイム3Dグラフィックスにおける応用が期待されていたのだ。しかしその期待に反し,実際のゲームエンジンがSubdiv技術を採用した事例は,これまでほとんどなかった。
PlayStationブースでは,「PS4向けに実装したリアルタイムSubdivのデモ」をPS VRから見られるようになっていた。
デモに登場する3Dモデルはオリジナルデザインのモンスター達だ。
もともと多ポリゴンで精巧にモデリングしてあるこれらモンスターの3Dモデルを,オフラインのツールなどによって少ポリゴン化し,保持しておく。
少ポリゴン化モデルは,「多ポリゴン化するときに基準点になる制御点の集合体」からなるそうだ。モデリング段階において多ポリゴンで表現していたディテール情報は,3Dの変移情報(=ティスプレースメント)として3Dモデルから分離し,テクスチャとして持っておく。
実際に描画するランタイムでは,その少ポリゴンの3Dモデルに対して,視点からの距離に応じて適宜テッセレーションを行って多ポリゴンモデル化し,さらに,多ポリゴン3Dモデルに対し,「分離して持っておいたディスプレースメントテクスチャ」に基づく,盛ったり削ったりといった処理を施して,最終形状として描画するのである。
この仕組みが持つ利点は,視点からの距離に応じて動的かつ適切なポリゴン数で描画できるため,視点からの距離に応じたLoD(Level of Detail)モデル切換の必要がなくなることだ。
一般的なゲームでは,遠距離にいるキャラクターを少ポリゴンモデルで描画しておいて,これが近づいてきたら多ポリゴンモデルに切り換える制御(=LoD処理)を行うが,このとき,描画3Dモデルの切り換えがバレることが往々にしてある。これには「ポッピング現象」という呼び名まで付いているが,Subdivを使えば,3Dモデルの切り換え自体が生じないので,ポッピング現象を抑止できる。1つのキャラクターに対して,LoDレベルに応じた少ポリゴンモデルを複数用意したりもしなくていいため,メモリ占有量の削減にもつながる。
さらにPS VRを使ったデモで興味深かったのは,ユーザーが見ている視界中央に対して対して多ポリゴン化のバイアスを強めにしつつ,逆に視界外周はテッセレーションの度合いを低くするという制御モードの効果だ。そう,これはいわゆる頂点数の大小方向で制御を行う「Foveated Rendering」(≒注視箇所重点高解像化レンダリング)である。
ワイヤーフレームモードで見ると,ポリゴンの増減がアグレッシブに行われているのがよく分かるのだが,シェーディング付きの最終描画状態にしてしまうと,違いはほとんど分からない。つまり,少ポリゴンで描画していることに,ユーザーはほとんど気付けないのだ。
少ポリゴン化されている箇所ではGPU負荷が低くなるため,全体として見れば効果の高い最適化を行えることになる。
SIE担当者によると,現在,直近でこの技術を活用したタイトルはないそうだが,「効果が高いことだけは分かっているので,今後,実際のゲームタイトルで採用が進むかもしれない」とのこと。SIEが開発しているゲームエンジン「PhyreEngine」では採用が決まったそうなので,今後,ファーストパーティタイトルで積極的な活用が始まるかもしれない。
OpenSubdiv 公式Webページ(英語)
4GamerのGDC 2017取材記事一覧
- この記事のURL: