【Unite2017】360度動画や音声認識をフル活用してノリ・ツッ...2017.05.12【Unite2017】360度動画や音声認識をフル活用してノリ・ツッコミ『漫才VR』メイキングdoron活用事例5月9日から2日間に渡って開催されたUnite2017ではVRに関するさまざまな講演が行われました。今回は「VIVEとUnityで、1週間で作る漫才VR」についてレポートしていきます。マルチディスプレイ制御をVRと組み合わせる方法を知る」という2点が上げられました。講演の内容を紹介していきます。『漫才VR』はコンビ芸人のツッコミ役になってステージに立ち、音声と手の動きを使って表示された選択肢の中から正しい物を選んでツッコミを行うというVR体験。ステージが終わるとツッコミに対しての採点が行われます。体験者の画面を表示するモニターとは別に追加でモニターを用意し、観客に向けて分かりやすく伝えるという機能も盛り込まれています。MBSハッカソンというテレビ局が主催したハッカソンで1位に輝いたコンテンツです。様々なバックグラウンドのメンバーと目指した3本柱『漫才VR』の開発コンセプトについて制作チームには漫才師やテレビマン、Unity開発者や音声認識開発者といったメンバーが集まりました。コンセプトとして「漫才師とエンジニアのそれぞれの持ち味を活かしつつテレビ番組を盛り上げるという点を重視した」と緒方氏。1週間という短い期間の中ではできることが限られてくるため今回は大きく分けて以下の3つの柱を立てて開発を進めていったとのこと。・「VR映像と同期した相方の正面映像を見せることで、お客さんも楽しむことができる」1つ目は「HMDと漫才VR映像で漫才のツッコミ体験ができる」という点。THETAを使用しています。2つ目として上げられたのは「モーション検出と音声認識によるツッコミ採点ができる」という点。Viveに標準搭載のハンドコントローラーを使用し、音声認識に関してはHMD本体の内蔵マイクで検出しているとのこと。音声認識のエンジンは奈良先端大学が開発した「Julius」という無償かつ商用利用も可能な音声認識サーバーアプリを使用しています。3つ目は「VR映像と同期した相方の正面映像を見せることで、お客さんも楽しむことができる」という点。等身大の相方の姿を表示する縦型ディスプレイを用意し体験しているプレイヤーの横に置くことで、お客さんも楽しむことができたと緒方氏。『漫才VR』開発過程におけるポイントについてここからは柴田氏に移り実際の制作過程における4点のポイントについてという内容になります。1点目はCGではなく360度動画を使った理由についてです。こちらは「なによりもまず相方の漫才師を用意する必要がある」、「短い期間であるため3Dモデルを作成するリソースが足りない」、「360度動画はリアル感がある」などの理由から360度動画を採用したとのこと。THETAを使用した理由です。手軽であることを一番重視した上で、漫才という非常に被写体が近い撮影において薄くて死角の少ない360度カメラとしてTHETAを選んだとのこと。3点目は全天球動画の導入方法についてです。ツッコミ役の視点で撮影後公式アプリを使用してパノラマ動画へ変換、その後のffmpegを使って.ogv形式へ変換します。この変換した動画をUnity上で扱うためにSphere100をインポートして再生スクリプトを書き、適応して完了とのこと。4点目に上げられたのはツッコミモーション認識の仕方です。こちらは相手のお腹をはたく動作と頭をたたく動作を明確に区別するためにコントローラーから取得できる「速度」と「角速度」という2つの情報を元に実装したとのこと。誤認識を無くすために開始と終了時に閾値をもうけ、それに合わせた効果音やエフェクトを合わせることで超きもちいいツッコミができるようになったと柴田氏。ボケ・ツッコミの音声収録に関しては、映像と別々に行ってしまうと後で同期させる編集に時間がかかってしまうため正面カメラ及び全天球カメラの音声・映像を同時に収録することで編集作業の手間を削減することができたと緒方氏。2つのカメラで音声収録を同時に行うことで動画の同期をする際に開始タイミングを見つけやすくなるというメリットもあるとのこと。複数ディスプレイ間での映像・UI同期に関してはMVCの考え方を活用することで4つある全ての表示形態において制御コードを共通化しています。音声認識に関しては当初ヘッドセットのマイクを使っていたものの、ヘッドセットのスピーカーから出る音声がそのままマイクに入ってしまい音声認識の精度が下がってしまうという問題が起きてしまった。ViveのHMDに内蔵されている指向性マイクに切り替えることで音声認識の精度が飛躍的に向上したと緒方氏。最後にハッカソンで心がけることとして、迷う時間を極力減らし開発に使う時間を増やすために「下準備をしっかりやっておく」ということ、最後の最後でプログラムが正常に動作しないといった問題を起こさないために「開発の着地を丁寧にやる」という2点を挙げていました。・3Dデータを手軽にVRへ。