ニュース
【CEDEC2014】遅延問題を錯覚利用で解決?! 「世界のみんなは4フレーム以内にいる」
バンダイナムコ森口明彦氏「今あらためて見直したいゲームの遅延対策」レポート
(2014/9/4 21:51)
テレビによる遅延、ネットワークによる遅延、入力デバイスによる遅延……ゲームにおける遅延は、ゲーム性の優劣まで決めてしまうほど大きな問題だ。最近ではゲームモードを搭載したテレビや、表示遅延を局限まで削ったゲーミングモニターが一般的になり、残る問題としてネットワーク遅延をどうするか、というところでゲームエンジニアの様々な工夫が凝らされている。
特に近い将来には多くのゲームがクラウド上で稼働することが予測されていたり、大きな注目の集まるVRゲーミング分野ではわずかな遅延でも快適性を大きく損なうことが明らかになっている。現在までに広く知られたノウハウだけでは限界もあるため、今また改めて遅延対策を考えることが時代的背景的にも要求されていると言えるかもしれない。
この課題についてCEDEC 2014にて新しいアプローチを提示したのが、バンダイナムコスタジオで先進技術研究を担当する森口明彦氏だ。「AV機器だけが要因ではない?!今あらためて見直したいゲームの遅延対策」と題された当セッションでは、遅延の原因と対策に焦点を当て、人間の知覚特性に基づく新たな手法を提案、将来のゲーム開発への応用を促した。
遅延とはなにか? 発生要因を分析する
講演を行なった森口氏は、バンダイナムコスタジオのET開発本部 未来開発部 先行技術課に所属するリードエンジニアとして、最新タイトルの開発の基礎となる技術の研究、および開発支援を担当。リズムゲームである「太鼓の達人」や、広域オンライン対戦ができる「エースコンバット」シリーズ、「鉄拳」シリーズなど遅延対策が要となるタイトルの開発に貢献してきた。
その森口氏は、テレビによる表示遅延については各家電メーカーがきちんと対応してきたこともあり、「いざ遅延が数字でわかるようになると、とても恵まれた状況になってきたことがよくわかります」と現状を評価。その上で、まだゲーム開発でやれることがあるのではないか、として自説を展開した。
医療分野における病気に対する対応としては直接の治療、抵抗力の向上、症状の緩和といった3つのアプローチがあるが、遅延対策もこれに似ているという。どのアプローチを取るか決めるうえで大切なのは初期の診察だ。
ゲームにおけるトータルの遅延は、プレーヤーが操作を入力してから、その反応が映像として表示されるまでのプロセス(インタラクションループ)にかかる時間として評価されるが、その計測は近年安価になったデジカメによるハイスピード動画撮影によって直接的に可能になった。「安価なカメラで液晶のスキャンラインの動きまで確認できる」というほどで、森口氏もこれにより定量的な測定を行なえるようになったという。
遅延の発生箇所を大別すると、通信遅延(ネットワーク)、処理遅延(内部ループ)、出力遅延(モニター)となる。モニターで発生する遅延について、森口氏は以前から「脳のプロセスで順序を知覚できるしきい値が30~40msである」という知見を元に、(60fps環境における)2フレーム以下、というのを理想値として設定してきたとのことだが、それは近年ほぼ満足できるようになっている。
処理遅延はゲームが内部的に入力→描画というループ単位で動いている以上、ある程度避けられない部分だ。これについては「処理落ちがなければ3フレーム固定である」と森口氏。
これはおそらくダブルバッファー方式を取るコンシューマー機で、描画処理開始直後にユーザー入力が発生したというワーストケースに基づく数字だ。以下は筆者の見解だが、垂直同期をオフにしたりG-Syncのような適応型リフレシュレートの仕組みをを用いたPCゲーム環境等では2フレーム以下になる。さらに、Oculus Riftのヘッドトラッキングで実装されている入力ループの非同期化+レンダリング後の映像に対する入力値適用、といった仕組みであれば1フレーム以下になる。
これら、処理遅延と出力遅延はゲーム機とテレビのローカルな関係で閉じている遅延要因だ。このため、使用機器が特定できるアーケードタイトルでは厳密な遅延対策が可能になる。森口氏が例に上げたのは「太鼓の達人」。リズムゲームであるため音と映像の厳密な一致が求められるが、音と映像の遅延差は一定であるため、そのぶん表示を先行させる(数フレームはやめに太鼓アイコンを動かす)ことで厳密な解決に成功している。
やっかいなネットワーク遅延。さらに遅延を感じさせなくするには“錯覚”を利用する!
こうして、やはり課題として残るのはネットワーク遅延だ。ネットワーク上で同期が確定したデータを馬鹿正直に表示していては遅延の影響がモロに出てしまうので、多くの場合、いろいろな予測手法に基づいた先行表示のにアプローチが用いられる。
森口氏が例に上げた「エースコンバット」シリーズでは、オンライン対戦の際、自機の動きはユーザーの入力に即時反応して動かし、また、ネットワーク越しの他機については運動状態に基づく位置予測により、遅延分の未来を表示しているとのこと。基本的に慣性に従った滑らかな動きをする乗り物のゲームではよくとられている手法で、誤差はあるが許容範囲だ。おおむねこれで遅延の問題は解決する。
これに対して少しの誤差も許されないのが「鉄拳」シリーズのような1対1の対戦格闘ゲームだ。キャラクターの位置や動きが曖昧になると格闘ゲームとしてのゲーム性を壊してしまうため、「鉄拳」シリーズでは遅延を許し、かわりに厳密な同期を確保するアプローチを取っているという。これは格闘ゲームでは一般的な手法で、古くはセガ「バーチャファイター2」のPC版に始まり、その後同様のアプローチを取る格闘ゲームが多い。
では、これ以上遅延対策を行なうことはできないかというと、森口氏の答えは「できる」だ。それは、人間の脳の知覚プロセスにおけるクセを利用するアプローチだ。
曰く、人間の脳は、加速度的な動きを目にしたとき、動作開始からインパクトの瞬間に至る動き全体を「今」として丸め込んでしまうという習性があるという。パッと一瞬で出てくるものの遅れには敏感だが、じわりと動き出すものには鈍感なのである。
確かに、自キャラの動きに慣性を強く効かせると遅延が感じられにくくなるという現象は昔からよく知られている(このためFPSをマウスで操作すると遅延が感じられる環境でも、アナログスティック操作では遅延の存在がわからないということが起こる)が、森口氏の手法はそれをさらに効果的に推し進めるものだ。
まず、現在までに「鉄拳」シリーズで試されているのが、モーション上の工夫だ。例えばケリの動作は、地面についている足が持ち上げられインパクトを生ずるまで、加速度的な運動をする。動き始めはゆっくりで、はじまりのタイミングが知覚されにくいため、数フレ遅れていても遅延がないように錯覚される。これを応用して様々なアクションで立ち上がりの動きを滑らかにし、動きの起点を消失させる(Easingアニメーションと言われる手法)と、動きの気持ちよさと遅延感覚の解消を図ることができるという。
森口氏の提案はこれをさらに拡張する。動きの起点を消失させることに加えて、遅延の大きさに応じてアニメーションのスピードを早め、インパクトが発生する瞬間を遅延のない環境に合わせる、という手法だ。その効果が動画で示されたが、なんと300ミリ秒の遅延がある環境でも、遅延なしとの違いがよくわからないくらいに錯覚される。遅延の大きさに合わせて正確に調整も可能であり、非常に効果的だ。
上記の手法は将来のタイトルで活用すべく現在は研究段階にあるとのことだが、うまく使われればオンラインゲームの快適さに大きく貢献してくれそうだ。もちろん、遅延が大きいプレーヤーのアニメーションが加速することから、対戦者との対等の条件が崩れることもあり、さじ加減は難しい。ゲーム性をそれに合わせすぎると、全体として動きがモッサリするという問題もあるだろう。ゆえに森口氏は「応用事例は今後の積み上げ次第」と慎重な姿勢だ。
いずれにしても、こういった遅延対策がさらに活用されていけば、ワールドワイドのオンラインプレイももっと快適なものになっていくだろう。森口氏は最後に、「光の速度で考えると、世界のみんなは4フレーム以内にいる。遅延対策ができればきちんと繋がる範囲であり、地球の大きさは我々にとってちょうど面白いマイルストーンではないか」として講演をまとめた。