#本当にリアルなMixed Realityコンテンツを実現するための技術開発
##講演者
和泉澤 稔 さん(株式会社Cygames)
川上 智弘 さん(株式会社Cygames)
石山 英俊 さん(株式会社Cygames)
##講演内容
エンターテイメントとしてのリアルなMRコンテンツの開発に関してのお話がされた。
###リアルなMRコンテンツとは?
- 空間に浮かぶUI?
- 現実空間に現れるモンスター?
これは確かに表現のインパクトが強く目を引くことができるかもしれないが、
リアルかと言われると違和感がある。
今回、求めたものは以下の項目に対応したものを開発してみることとなった。
- 高い応答性
- 高い実在感
- 体験の共有
###リアルなMRコンテンツの前提
- 現実世界との正確なオクルージョン
- 現実のライティングがオブジェクトに反映できる
- 同時に複数人が同じような体験を行うことが出来る
####高い応答性
- デバイスを通して正確な姿勢として描画すること
- 遅滞なく連動することができること。
が求められる。
####高い実在感
- 写実性の高さ
- 空間表現の高さ
- 環境音や効果音
- 現実世界らしい演出(エフェクトなどで誇張するのではなく、地味な方がいいのかも)
が求められる。
####体験の共有
- 同じ空間にいるユーザーが同じコンテンツに接することが出来る
###デバイス
####Optical See-Through
Microsoft社から販売されているHoloLensがこれに当たる。
- メリット
視界がクリアなため、現実世界との融合性が高く安全性がある。
大規模コンテンツにマッチしている。
- デメリット
視野角が狭く、オブジェクトが半透明になってしまう
####Video See-Through
HMDやスマホなどのカメラを通して表示するもの
- メリット
視野角問題がなく、スマホなどで体験することができるため
お手軽間がある。
閉鎖空間など狭い箇所での体験に適している。
- デメリット
遅延が大きく、HMDだと敷居が高い
###実現するために行ったこと
今回のMRデモではHoloLensを使用して行っている。
####仮想空間の共有
複数のWebカメラを設置し、クライアントの共有のためにネットワークをしようしている。
サーバー側で起動したunityを各HoloLensに共有する形をとっている。
#####HoloLensの問題点と解決策
アプリケーション起動時の姿勢や向きが基準となってしまうため、
絶対的な基準姿勢が定まっていない。
そのため、HoloLensの固有機能のWorldAnchorを使用して空間上にオブジェクトを固定化するにしている。
これを各ユーザーがHoloLensを通して見つけることでオブジェクトの位置の共有を行うことが出来た。
ただし、このWorldAnchorからある程度の離れてしまうと仮想空間上のオブジェクトの位置がずれてしまうことがある。
この対応として、デモ空間内に複数のWorldAnchorを配置し、各ユーザーの座標からそのAnchorの影響係数を求めてオブジェクトの反映させることでズレを少なくすることができるようになった。
####インタラクション
仮想空間上に配置しているキャラクターの視線は首の角度などを調整して
ユーザーに反応させMRをより深く体験できるように対応している。
####空間環境は反映
仮想空間上にいるキャラと実空間の環境の状態(ライト)が一致していないと
キャラが浮いてしまうため、リアル感が損なわれてしまう。
この対応としてWebカメラからキャラ周辺の画像を元に、
仮想空間上のキャラにリアルタイムに反映させる対応を行った。
この手法を**ImageBasedLighting(IBL)**という。
このIBLの手法を使いキャラにライトの情報を反映できたが、処理負荷が高かったため
サーバー上で計算処理をおこない、各端末上では描画だけを行うようにして対策を行っていた。
####オクルージョン
HoloLensには形状を認識できるセンサーがついており、
これを使いリアルタイムなメッシュ生成ができるが、処理が重くメッシュの精度が荒いという問題があった。
また、一定距離以上の形状を認識できないため、オクルージョンの処理を行うことが出来ない。
この対応として、予め用意していたデモルームのメッシュを使うことで、
オクルージョン処理が可能且つメッシュ自体の精度が高いものが出来た。
デモルームメッシュを使用することで、Unityエディター上でも確認することができるようになり、
開発方法も今まで通りでできるようになった。
###デバイスに依存しないMR
スマホやHMD(+ステレオカメラ)の光学カメラを利用して、多くの人に手軽にMRを体験してもらうことが狙い
これを実現するために、カメラ画像から正確な位置や姿勢などを求める必要がある。
####実装するに当たっての課題
- 常に環境に対しての正確な位置情報を得る
- 位置情報のずれを蓄積させたくない
- 基準マーカー(ARマーカー)を使用したくない
#####マーカーレス型の問題点
このマーカーレス型の場合、開始時の位置や姿勢が不確定なため位置ずれなどが発生しやすい
####対策
カメラの画像から位置を特定するために、
画像とメッシュとの輝度差を求めて、輝度差が少なくなるところをカメラの推定位置を判定して
処理を行う。
カメラ画像とメッシュの描画結果との輝度差を最小化するためにヒストグラムの平坦化という手法を
使い対応をおこなった。
この処理を行った場合でも一定のノイズが残ってしまうので、直前の結果画像とのパターンマッチングを行い、
パターンが一致しないものを除去する手法をとっている。
また、誤差の最小化を行う際にはガウス・ニュートン法を用いて計算を行っている。
この技術に関してはIEEE ISM2016にて論文を発表している。
##感想
リアルなMRを実現するための試行錯誤をされていた点のお話を聞くことが出来ました。
今後、業務などで携わることがあれば参考にしてみたいものばかりでした。