[2019/09/06 03:10]

人間の脳のスペックはどれくらい？

スペックを超える2つの例外

人間に最適なフレームレートとは

もっと上のフレームレートはどうなのか？

可変フレームレートは使うべきか

2019年9月5日，日本最大のゲーム開発者会議CEDEC 2019の2日めにバンダイナムコ研究所のから，と題する講演が行われた。ゲームの体験で大きな問題になりうる「遅延」については，CEDECでもたびたび取り上げられ，森口氏も何度かCEDECで講演を行っている。遅延はプレイヤーの操作から画面に反映されるまでの時間差のことを指すものだが，今回の講演では，プレイヤー側の事情に踏み込んでどの程度の対策が必要とされているのか，どの程度の対策があれば十分なのかなどについて定量的な分析と考察が披露されたので，そのあたりを中心に紹介してみたい。人間に対する視覚や聴覚の処理は小脳の運動中枢の一部で行われているとのことで，小脳をプロセッサとみなした場合の基本スペックが挙げられていた。それによると，脳はクロック同期型のシングルスレッド処理で，動作クロックはになるという。MHzでもGHzでもKHzでもないHzだ。なお，これは個人差や多少の揺らぎがあるものの，残念ながら鍛えても速くならない要素だそうだ。ゲームで多用される，視覚をもとにタイミングを計って操作を行うというような処理では，感覚の知覚処理と操作の実行処理の間に，タイミングを計る処理，つまり状態繊維の判定演算が行われる。このようなものを順序反応と呼ぶようだが，タイミングの変化を知覚すること，タイミング判定と読み替えてもよいだろう。知覚処理は，視覚，聴覚，触覚，記憶などを統合して行われ，1クロック分の時間がかかる。これは人間の場合，タイミングなどの知覚は秒間25回から33回程度しか行えないということを意味している。1クロックでこれ全部を行うプロセッサはとてつもないとも言えるのだが，一度にそんなに多くのことはできないのが人間の脳の構造だ。脳が一定のクロックで動いている以上，与えられる刺激も一定の安定性を持っていることが望ましい。表示などが不安定だと，その揺らぎも含めた反応学習が行われるため，プレイヤーの負荷が高くなる。また，普段遊んでいる環境と微妙にタイミングが違うような環境でプレイすると，強化学習の内容が台なしになってミスが多発することになる。だからゲームは安定性を重視すべきだというのが森口氏の主張である。また，人間の認識の許容度や反応時間などのスペックが示された。表では同時性限界という難しい用語で表記されている部分は，単純に単に視覚や聴覚の認識時間だと思っておけばいいだろう。映像の場合，認識に20ms掛かるがサウンドの場合はもっと速く，2msで処理できることが分かる。全体的に聴覚のほうが反応速度は速く，画面を見て反応するよりも，隣のコンパネの打撃音などを聞いて反応するほうが有利になるといった事情の一端もこのあたりに由来するとのことだった（音速の限界から10m程度離れるとメリットも薄くなるそうだが，それ以外の表示までの遅延のほうが大きそうな気はする）。視覚の場合，目の中心視野では反応速度が鈍いのに対して，周辺部分では反応が速い。じっくり見ることに特化した部分と，周囲の急激な動きを見張る部分との機能差だろうか。これは画面中心では気にならないちらつきなどが画面周辺部では知覚されるということも意味している。視野角が広いディスプレイやVRヘッドセットなどでは周辺視野部のほうが高いリフレッシュレートが要求され，広視野角のVRヘッドセットなどは90Hz以上が望ましいとされていた。そのほか，こういった入力処理以外に，データ処理に30〜40ms，筋肉を動かして反応するには200ms近くが掛かることが示されている。このうち，運動の反応は訓練すれば高速に反応できるとされている部分だ。陸上競技などでは，スタートから0.1秒以内に動くとフライング認定されるルールだが，最近では反応速度が0.1秒を切るような反射神経の人も出てきており，ルール改正が取り沙汰されるようになってきているのだという。さて，ゲームでは安定した周期でのプレイや表示が望ましいとはされているものの，まったく同じ周期を持続するのは難しいこともあるだろう。刺激の遅延に対して脳側のマージンもあり，だいたい0.1秒くらいは許容してくれるという。なんらかの調整が必要な場合は，このマージン内で処理することが望ましいとのことだ。このように人間の脳による処理にはスペック上の限界があり，それを超えたところで処理しても正常に知覚されない。しかしいくつか例外があるようだ。最初は文脈効果というものだ。前後関係から判断して遅延が発生していることの判断がスペックを超えて行われる。たとえば，タッチスクリーン上にペンで線を描いていくような処理で，ペン先の位置と描線の間に隙間があると遅延があるように認識されるなどといった例が紹介されていた。これはUIの追従性での遅延がバレやすいということも意味しているのだが，とくに素通しの画面に対して映像を重ねるようなMR処理では，遅延に対する知覚が非常にシビアになるだろうと森口氏は語っていた。また，遅延に対する要求がシビアなクラウドゲームが，真っ先に標準コントローラの使用を決めるのにも相応の意味があるのだという。もう一つはリズム同期だ。プロの演奏家などは，人間のスペックの限界を超えた精度での演奏を行っているが，これはリズム同期の効果で，周期的なリズムに対しての補正が学習された結果，限界を超えた精度が実現されるということのようだ。そのような効果が発生するのは確かなのだろうが，その精度を想定してリズムゲームを作るのは好ましくない。学習されていない人の最大値となる40msくらいを目安にタイミング設定すべきだと語っていた。このような人間のスペックに合わせた場合，ゲームではどの程度のフレームレートが適切なのかについての検討も行われた。まず40ms以上だと反応の遅い人でも取りこぼしはない。が，知覚の周期で画面の更新が認識されない局面も出てくる。表示間隔が30〜40msというのは，人間の反応速度に即した値ではあるが，その間のどこにするかで個人差がはっきり表れるので好ましくない。30ms以下だと個人差は出なくなるが，人間側の処理周期との間で「うなり」の影響が大きめになるなので，もう少し周期を上げたい。20msだとうなりは抑えられるものの，人間の中央視野の反応速度ギリギリのところなのでフリッカーが知覚される恐れがある。ということで，16.6ms（60fps）というのは実はかなり理にかなった数字なのだと説明されていた。ではフレームレートは60fpsが理想なのか。続いては，フレームレートが低いことのデメリットや表示されるフレームレートとコンテンツのフレームレートの違いが生み出すエイリアスなどから，より高いフレームレート表示を行う場合に，どれくらいあれば十分なのかといった話が行われた。フレームレートを高くできればさまざまな利点がある。まず動きが滑らかになるというのは分かりやすいが，それだけではない。映像のブレやボケの発生を防ぎ，さまざまなフレームレートのコンテンツの再生に対応しやすくなる。フレームレートが低い場合に目立つのが，映像のボケやブレである。これはホールドボケと呼ばれるもので，実際に映像がボケているわけではない。滑らかに動いているはずだという脳の判断に対して，実際の映像は飛び飛びにしか動いていないので，脳が予測していた映像の動きと実際に目に見えている停止した絵の位置の違いがボケとして認識されるという現象だ。回避法としては，フレームレート自体を上げるか，黒挿入が一般的だ。表示した直後に液晶画面のバックライトを次の表示まで消して，動いていない絵を脳に見せないようにするという手法である。期待どおりでない位置の絵が見えなくなるので，脳が誤解することはなくなる。もちろん，黒画面を出している分だけ画面が暗くなり，フレームレートによってはフリッカーも発生する。また，単純にフレームレートを上げれば，単純に想定位置とのズレが少なくなり不自然さがなくなる。だいたい120fpsくらいでボケは許容範囲に収まるとされている。一方，映画やアニメの24fpsから30fpsや60fpsに変換すると，どうしても不均一な動きになる。最近だとみんな幼い頃からそういうのを見慣れているので不自然に感じる人はほぼいないとのことではあるが，映画の横パンがなんでこんなにガクガク動くんだろうと思ったことのある人は多いのではないだろうか。これを解消する方法の一つは，24fpsの整数倍のフレームレートで表示してやることだ。となると24の5倍となる120Hzは（60Hzの2倍でもあり）なにかと都合がよさそうだ。PC用ディスプレイだと144Hzや240Hzのものも多いが，それぞれ24Hzの6倍，10倍といった数値のものとなっている。整数倍であることが望ましいが，フレームレートが高くなれば，割り切れなくて不均等な配分になってもガタつきは軽減される。さまざまなコンテンツを表示するという目的で考えて，24Hzと60Hzの整数倍である120Hzというのは非常に現実的だ。HDMI 2.0ではフルHDでの120Hz表示にまで対応しているので，HDMI 2.0対応テレビが普及してくれば，将来的には120Hz駆動のゲームも当然登場しておかしくない。それであればオープニングにアニメの24fps映像が入っていてもカクつくことはない。倍速処理，フレーム補間，時間的超解像処理，アップコンバートなどいろいろ呼び方はあるが，最後に映像のフレームレートを上げる処理についての解説が行われた。低フレームレートの映像しかない場合に，どうすれば映像品質を改善できるかといった問題に対応するものだ。最も簡単なのはなにも処理せず，フレームレートだけ上げる処理だが，これではフレームレートを上げる意味はほぼない。次に継ぎ目のフレームの部分を前後の映像の合成で補う処理だが，動きの速い映像には向いていない。最後に多くのテレビで行われているようなオプティカルフローと呼ばれるもの，つまり動きを補間して新しいフレームを作り出す処理だ。この手の補間技術では，アニメ絵が難しいという。実写であれば特徴点の情報が多くて補間しやすく，フレームレート自体も24fps分は保証されているが，アニメ映像だと実質的な情報量は8fps分しかないといったことも珍しくない。会場ではバンダイナムコ製のツールによる30fpsの動画を60fpsにアップコンバートしている様子も紹介された。映像の動きベクトルを検出して中割り的な補間処理を行っているそうで，実際の動きベクトルの様子を示した影像なども紹介されていた。こういった処理をオフラインでやる場合，下手に考えるより既存のツールを使うほうが絶対に楽で品質がよいとのことだった。お勧めはこの手のツールの老舗であるRE:VisionのTwixtorだそうだ。最近ではGPUと機械学習を用いてリアルタイムに途中のフレームを自動生成するような技術も出てきているので，将来的にはそのような方法でのゲームのフレームレートを上げるのもアリなのかもしれない。まあそれくらい強力なGPUを載せているのなら，描画に使えばフレームレートは自然に上がるという話もないではないのだが。さて，一方で昨今ではG-SYNCやFree-Syncといった可変フレームレート技術が登場しており，最適な表示が行えると喧伝されている。この仕組みはHDMIなどの映像規格にも組み込まれ，すでにXbox OneではFree-Syncがサポートされており，次世代機ではもっと一般化する可能性すらある。これからのゲーム開発では，可変フレームレートを使うべきなのだろうか，それとも安定したフレームレートを維持することを目指すべきなのだろうか？ Q＆Aセッションの時間に余裕があったようなので質問をしてみた。それに対し森口氏は，可変フレームレートは制作者側にとって都合のよい絵を出す仕組みだが，プレイヤーにとっては最適とは限らない。安定したフレームレートを目指すほうが望ましいと述べていた。時間当たりの画面情報量は最適化されるのだろうが，前述のように脳の動作サイクルに対して外乱要因が増えることはゲーム体験を損なうおそれがあるということだ。旧ナムコ時代から，同社ではフレームレートの安定を第一に，オブジェクトを減らしたり，解像度を下げたりと負荷を軽くする方策を練ってゲームを作ってきたという。その結果，軽くてテンポのよいゲームデザインが育まれている。フレームレートの安定を第一に据えてゲームを開発することは，表現的な制限を受けることもあるだろうが，それ以上に快適なゲームプレイを確立するノウハウが培われてきた。ちなみに最近では遅延でフレーム落ちする場合に「ラグる」などの言葉が使われることが多いと思うが，昔のナムコでは「ゾサる」と言っていたそうだ。「ぞうさんのようになる」の意であるらしい。遅延をなくし，フレームレートを上げてゲームというフィクションの世界に説得力を持たせる。それが豊かなゲーム体験につながると森口氏は語っている。脳の仕組み的にも安定したゲームのほうが快適であることが示されて，同社の方針に間違いはなかったことも確認されたといっていいだろう。遅延を少なくするというよりも，動作を安定させることがゲームには重要だということが，原理的な部分から分かるセッションであった。