CEDEC2016 セッションレポート

gumiの渡部です。
今回はCEDECに参加したセッションについてメモ形式で記していきます。

# [ゲーミングとＶＲにおけるマシーン・ラーニングの未来 The Future of Machine Learning in Gaming and VR](http://cedec.cesa.or.jp/2016/session/ENG/15016.html)
## 講演者 Nicolas Meuleau（Unity Technologies）

CEDiL公開予定との事ですが現時点で未公開なのでメモした内容を詳細に記します。

## ニコラ氏の略歴
25年のキャリアでMIT、NASAの火星探索機、NISSANの自動走行車、Appleの研究所などを経験した人工知能のスペシャリストです。PONGの頃からゲーマーでスカイリムを7000時間以上遊ぶほどのゲーム好きでもあるので現在はゲームエンジンメーカーであるUnityで人工知能を活用したツール開発に携わっているようです。

## マシーン・ラーニング（機械学習）・人工知能の現状
* 碁のチャンピオンがGoogle製AIであるAlphaGoに敗北
* 機械学習によるロボティクス・自動走行車の革新的性能向上
* CPUよりも機械学習アルゴリズムの計算に特化したハードウェアの普及（GPU・FPGA）
* 現在のGoogleは機械学習の企業と言っても過言ではない

## マシーン・ラーニングについて
### オフライン・オンライン
* ほぼ全ての機械学習はオフラインで処理される
* オフラインにはSupervised Learning（教師あり）・Unsupervised Learning（教師なし）の二種類が存在
* オフラインの学習結果をオンラインで利用する
* オンラインでも学習処理を行うアプローチがReinforcement Learning（強化学習）

## ゲームにおけるAI
* データサイエンス
* コンテンツ自動生成
* ゲーム開発
    * 問題解決
    * ゲームプレイ
    * ストーリーテリング
    * ビヘイビア生成

## 画像認識を例にした機械学習の具体例
* 各入力データはベクトルにすぎない
* 画像全体の3072ピクセルを行列にする
* その行列を「飛行機」を示す縦列ベクトル、「○○」を示す縦列ベクトル…などが並んだ単純な線形分類器の行列と掛け合わせる
* その結果（スコア）によって画像認識を行う
* ベクトル化されているためGPUのようなハードウェアで高速化できる

この後Loss Function（損失関数）・Gradient Descent（勾配降下法）、Back Propagation（誤差逆伝播法）などのニューラルネットワークのアルゴリズムの説明が入り、認識だけでは無く入力データをニューラルネットワークで改変して出力データを生成するものが[Deep Dream](http://deepdreamgenerator.com/)などの画像処理サービスという分かりやすい説明

## 機械学習によって生まれるアプリケーション
* VRでの自然言語処理（Watsonなど）
* 拡張現実のための3D Reconstruction（Project Tangoなど）
* コンテンツ生成
    * 写真の画像から光源を推定しライティングの打ち消し（有用なテクスチャの作成）
    * 写真を解析してスムースネス（ラフネスとも呼ばれる）テクスチャの生成
* アニメーション生成
    * アニメーションを作成するコストの軽減

## AlphaGoの解説
* 全ての手をツリーとして表現（旧来はランダム）
* 全ての手を評価
* 木のサイズは10の360乗になってしまう（リアルタイム処理不可）
* そこでGoogleはニューラルネットワークを使って解決
    * 一つ目のネットワークは碁の譜面データによる教師あり学習
    * 二つ目のネットワークはコンピュータ同士で戦わせる強化学習
    * 三つ目のネットワークは勝ち負けをデータベース化した教師あり学習
    * これらポリシーネットワークとバリューネットワークを用いて10の360乗から適切な枝刈りを行った
* 碁の名人に勝つAIに

## ゲームにおける人工知能
ビデオゲームでもゲームをプレイさせる事によって非常に多くのデータが得られる
* チェスの分岐幅は35（10の80乗）なので早々にコンピュータが人間に勝った
* 碁は10の360乗なのでコンピュータが人間に勝つには近年まで時間がかかった
* スタークラフトは…

## セッションの感想
　機械学習も興味はありますが、まとまった時間を取って学習する余裕は無いので今回のセッションは概念を理解する入門として非常に有用でした。後述する機械学習を用いたモーションマッチングのセッションにも通じる内容があり、CEDiLで資料が出たら必見だと思います。

# [PlayStation®VR向けコンテンツに対するConsultation Serviceの取り組み](http://cedec.cesa.or.jp/2016/session/PRD/15599.html)
## 講演者 大貫 善数（株式会社ソニー・インタラクティブエンタテインメント）

こちらも資料公開が無くSNS共有可なので詳細にメモを

## Playstation VR Consultation Serviceとは？
* PSVR向けコンテンツの品質とユーザー体験の向上のための活動

## VRコンサルの目的
**VRコンテンツを初めて体験するユーザーに出来る限り不快感の無いVR体験を提供するためにVRコンテンツ開発者と協力して不快感を感じる可能性となる要因を見極め改善していく**
### 目指すもの
* 不快感は嫌なものなので自衛本能が働くのでこれを軽減する
* そして安全にVRの世界を楽しむ

### 不快感とは
* VR酔い
* ステレオ違反
* 目への違和感
* 目への刺激

VRコンサルではこれらの不快感を与える可能性がある要因の解消をサポート

## 酔いのメカニズム
個人差がある前提の上で

* 画面表示（動き、表示範囲）
    * 主観評価：SSQ、時系列多段階評価
    * 生体影響：心電図、脈波、呼吸、重心

### 生体影響要因解明の考え方
動揺病の原因仮説（産総研提供）

* 動き要因：映像酔いの主要因
* 映像要因：空間周波数
* 提示環境要因：視野サイズ

### 良くある指標
* MSQ：モーションシックネスクエスチョネア（乗り物酔い等）
* SSQ：シミュレーターシックネスクエスチョネア（映像酔い等）
    * 頭部への違和感
    * 頭痛
    * 発汗
    * 吐き気
    * 胃の存在感
    * 嘔吐

* ソニー・インタラクティブ・エンターテインメントで用いたSSQ
    * 体調
    * 乗り物酔いのしやすさ
    * 頭の違和感
    * 胃の違和感
    * 目の違和感
    * 平衡障害

## 実際の運用
* 3人中2人が不快感を訴えた場合、人数を増やして更に検証を行う
* 酔いには慣れが存在するため出来る限りフレッシュな人材を導入する必要がある

## 不快感の要因分析
* VRの世界では現実で有り得ない状況を作れる
* VR酔い
    * 動きの不整合
    * 動きの違い
* 目への違和感
    * グラフィックスの不整合
    * 低解像感
    * 全天周映像のつなぎ目
* 目への刺激
    * Depth Conflict（オブジェクトの深度がおかしい）
* 疲労
    * 首によるカーソル制御

## 不快感の対策
* 遅延・フレームレート
    * PSVRでは120・60 Reprojection・90の3種
    * フレームレートが一定を下回るとDebug Messageを表示
* 顕著な遅延は出来る限り指摘
    * 高処理負荷
    * Reprojectionの扱いミス→カクツキ、Latentな揺れ
    * ハイスピードカメラを2台用意して片方は外、片方はパンチフィルターで画面を撮影することで遅延を評価

* Depth Conflict
    * UI/メニューで字幕の問題が発生することが多い
    * World座標系で少し離れた場所に置くことを推奨
    * Head座標系に貼り付ける場合は横幅を短く
    * Controller座標系に貼り付ける場合も横幅に制限を
    * 厳密に距離感を表現できればいいが、できない場合はオブジェクトの透明度を上げる

* Control Scheme
    * 探索系ゲームの場合
    * キャラクターの移動
        * 連続移動型
            * 比較的ゆっくりした移動を推奨
            * VRヘッドセットの向きで緩やかに方向修正する
            * スティック押し込みで高速移動など
        * Teleport型
            * 左スティック、コントローラの向き、VRヘッドセットの向きなど
            * キャラクターが3人称視点で動く
            * 必要に応じて細かい動き制御が付加的にある
    * キャラクターの向きを変更
        * Snap Turnを強く推奨（無段階ではなく一定間隔ずつ旋回させる）
    * 選択
        * コントローラの向き、ヘッドセットの向きなど
        * VRヘッドセットの向きを利用する場合は首の疲労に注意
    * ロボット走行系ゲームの場合
        * 歩行の上下動を抑える
        * 跳躍などによる強制視点移動に注意
    * 車走行系ゲームの場合
        * スピン、クラッシュ時の表現に注意
    * 戦闘機系ゲームの場合
        * ロール旋回による不快感に注意
        * コントローラの向きやVRヘッドセットの向きの利用による操作の簡略化
* Camera Controller
    * ❌視点の強制並進移動
    * ❌視点の強制回転移動
    * 非現実な動きの体験
        * 錯覚の世界、不思議体験などVR特有の世界
* Confort Sample
    * Latency、Prediction Timeの設定などによる違いを体験可能
* Other Tips
    * 特にビギナー向けのサポートとしてコントローラやVRヘッドセットの向きをうまく利用してControl Schemeの難易度や複雑度の緩和を
* コックピット効果について
    * 確かに効果がある傾向が出ている
    * ただし、必要以上にFOVを狭めることは目への刺激に
    * コックピットとUIのDepth Conflictも起きやすくなってしまうので採用は計画的に
* ウロウロさせない
    * 広いステージでも最初は一本道に誘導
    * ヒントをうまく配置して
    * 全体像がつかめたころに開放など
* チュートリアルの重要性
    * Control Schemeに慣れてもらう
    * Control Schemeを何種類か用意してユーザーが選択可能にする

##感想
　非常に考えられていて資料が公開されないのが勿体無いくらいの良講演でした。Playstation VR向けコンテンツを作っていない開発者でも必ず聞くべき内容だったと思います。7月末にLTした[ガンナーオブドラグーンの作り方＆酔わせずに興奮させるVR体験デザイン](http://www.slideshare.net/HarutoWatanabe/vr-64443542)でも喋りましたが、第1世代コンシューマVR HMDの現在は制約が多い中いかに快適に遊べるコンテンツを作るかが課題となっています。そのため今回のような情報共有は非常にありがたいです。

# [モーションマッチング - 次世代アニメーションへの道　Motion Matching - Road to Next-Gen Animation](http://cedec.cesa.or.jp/2016/session/VA/14910.html)
## 講演者 Michael Buttner（Ubisoft Toronto Studio）

この講演は残念ながら人気のため立ち見となってしまいメモが取れず写真を撮ることしか出来ませんでした。
そのため簡単な概要のみを書きます。

## 従来のアニメーションシステムの問題点
* 長時間モーションキャプチャを撮影
* キャプチャを加工し膨大なアニメーションクリップを作成
* 長大なブレンドツリーを構築
* 複雑なステートマシンを整理
* アニメーターに厳しい作成ルールが課される

## モーションマッチングのアプローチ
* モーションキャプチャのデータを加工しない
* アニメーションクリップの作成を行わない
* 複雑なブレンドツリー・ステートマシンを作らない

## どうするのか？
* 数十分の1キャラクター分モーションキャプチャを撮影
* モーションキャプチャデータの姿勢の機械学習によってデータベース化
* オンラインで「キャラクターの姿勢」「コントローラの操作入力」「モーションデータベース」からの情報を元に「次の動作として最適なモーション」を決定し再生

## 感想
　立ち見となってしまいメモを取れなかった事が本当に悔しい講演です。興味のある方はGDC2016時の講演資料が[GDC Vault](http://www.gdcvault.com/play/1023115/Animation-Bootcamp-Motion-Matching-The)で読めるので確認してください（CEDEC時の資料よりも短いです）
佐藤カフジさんによるGDC講演の[レポート記事](http://game.watch.impress.co.jp/docs/news/749136.html)もあります。
モーションデータベースの作成にはがっつりオフラインでの機械学習が行われており、セッション中でもニコラ氏の講演が引用されていました。既に機械学習とゲーム開発は切っても切れない関係にある事を実感できる良いスケジュールでした。

# [ノンゲームコンテンツ Making : PlayStationⓇVR ノンゲームコンテンツの制作事例](http://cedec.cesa.or.jp/2016/session/GD/15705.html)
## 講演者 秋山 賢成（株式会社ソニー・インタラクティブエンタテインメント）

　乃木坂46・シンゴジラのPSVRコンテンツ開発を担当した秋山氏の講演です。私はシンゴジラ for Playstation VRについては[特別先行体験会](https://www.jp.playstation.com/blog/detail/3459/20160804-shingodzilla.html)に当選したので既に体験して来ました。

　このセッションについては[ファミ通.com](http://www.famitsu.com/news/201608/25114089.html)で詳細なレポートが上がっているためメモは割愛します。個人的に特筆すべき所は音声編集にAudacityが使われていた事と映像用モデルを使った事による壮絶なリダクションのお話でした。

# [「VR ZONE Project i Can」の知見、全部吐き出します！](http://cedec.cesa.or.jp/2016/session/BP/14804.html)
## 講演者 小山　順一朗・田宮　幸春（株式会社バンダイナムコエンターテインメント）

お台場ダイバーゾーンで運営中のVR ZONE Project i Canのコヤ所長こと小山氏とタミヤ室長ことタミヤ氏によるVR ZONEの開発・運営によって得られたノウハウの講演です。こちらもファミ通・PANORA・Mogura VRなどで記事が上がっているため本記事での詳細は差し控えますが、初めて見るコヤ所長とタミヤ室長のもはやコントそのもののプレゼンは必見でした。足を運ばないと得られないリアルがそこにはある。

# [ダイクストラ法を用いた最大寄与値の高速取得による半透明物体のリアルタイムレンダリング](http://cedec.cesa.or.jp/2016/session/AC/8179.html)
## 講演者 小澤　禎裕（早稲田大学）
## [CEDiL資料リンク](https://cedil.cesa.or.jp/cedil_sessions/view/1539)
　本レポートで初めてCEDiLへのリンクを貼ることが出来ました。
詳しい内容はCEDiLの資料に丸投げすることとして、ゲームのようなリアルタイムレンダリングにおける課題は描画の高速性です。秒間30～120回のレンダリング（含ライティング）が必要なゲームにおいては現在のハードウェアで「完璧に正確ではないがそれらしく見えるライティング計算結果」を高速に得る必要があり、かなりの部分がこれまでの研究開発の結果現在のゲームはフォトリアリスティックな見た目となっていますが、現在でも鬼門となっているものが半透明物体のリアルタイムレンダリングです。
　本セッションの手法は、最短経路探索アルゴリズムのダイクストラ法を用いて「半透明物体の中で最も光が通りやすい経路」を算出し、その部分のみを半透明描画の光源に利用する事でリアルタイムの表示を行うというものでした。現在の実装では高速な変形アニメーションを行うとアーティファクトが見えてしまい、精度を上げるためにボクセル数を増やすと処理時間が増えてしまうとのことでしたが、個人的に現状でもゲームに利用できそうな印象を受けました。またリアルタイムレンダリングだけではなく半透明物体を含んだライトマップを適度な忠実度で高速に生成することに応用できないかと思いました。

# [不均一な半透明物体のリアルタイムレンダリング手法](http://cedec.cesa.or.jp/2016/session/AC/10405.html)
## 講演者 持田　恵佑（早稲田大学）
## [CEDiL資料リンク](https://cedil.cesa.or.jp/cedil_sessions/view/1502)
　この講演もCEDiLの資料があるため詳細は割愛します。上のセッションと同じく半透明物体のリアルタイムレンダリングに関する研究ですが、こちらは「ワインが入ったガラス瓶」「中に球状の空洞がある立方体」など複数の半透明物体が重なっているオブジェクトを高い忠実度でリアルタイムレンダリングすることを試みたものとなっています。既存手法との違いは事前計算によって内部の構造を考慮する事でより忠実度の高い映像を表現できる点です。デモもIntelオンボードGPU上で動作しておりかなり有用な気がしました。レンダリングについては専門外ですがゲームとくにVRにおいて「完全に忠実ではないが高速に処理できる近似手法」はとても重要なものとなるので、今回はこの2つの半透明物体のセッションを聴講しましたが非常に充実感がありました。

# [ノードベースで創る次世代の音響表現　～コードいらずのプロシージャルオーディオ～](http://cedec.cesa.or.jp/2016/session/ENG/8550.html)
## 講演者 伏見 洋人・久保田 裕章・中西 哲一（株式会社バンダイナムコスタジオ）
## [CEDiL資料リンク](https://cedil.cesa.or.jp/cedil_sessions/view/1472)

　VR ZONEにも設置されていたREAL DRIVEのエンジンサウンドでも実際に用いられたということで聴講しました。ソース音声ファイル無しで波形を生成するノードベースによるプロシージャルサウンド作成はMax/MSPやReaktorなどのソフトが存在しますが、ゲームエンジンではまだ無く今回のツールもバンダイナムコスタジオ内製のものとなっています。これまでも計算によるプロシージャルサウンド生成をC++ソースで行っていたそうですが、ソースコードを変更するごとに実機で再生が必要になっていたものが今回ノードベースのツールを作成したことでエディタ再生が可能になりイテレーションが劇的に早くなったそうです。
　ヤマハのシンセサイザー部門出身の伏見氏とACE COMBAT/リッジレーサーシリーズのサウンドを担当された中西氏が関わっているためエンジン・エディタの質も高く実際に生成されたエンジンサウンドも非常にリアルなものとなっており、頭では理解できても真似するのはかなり難しいだろうなという印象を受けました。
　REAL DRIVEはnamcoラゾーナ川崎店に置いてあるため関東在住の方はぜひ遊びましょう。

# 終わりに
　本当はインタラクティブセッション展示やデベロッパーズナイトの話も書く予定でしたが文字数が相当多くなったので一旦ここで切ります。CEDEC現地での情報量は記事としてまとめられたメディアの情報やこのレポートよりも多いため、このページを読まれた方も来年のCEDECやGDC等には機会と時間があれば是非参加してみてください。