株式会社CyberHuman Prudctionsでエンジニアをしておりますイワケン (@iwaken71)です。
先日サイバーエージェントで開催されたテックカンファレンスCA BASE NEXTにおいて、「バーチャル撮影システムによるMixed Reality表現」というタイトルで登壇させていただき、バーチャル撮影システムとMixed Reality (MR) 表現の例としてHoloLens演出を披露しました。
本記事では、その演出に込めた意義と技術的裏側を共有したいと思います。
メインで紹介した「HoloLens 2によるMR演出」
HoloLens 2による演出部分はこちらになります。
このように、CG空間と合成された岩崎が、CGの白いCubeを操作しています。
この時、私はHoloLens 2を通じて白いCubeをリアルタイムに操作しています。
私の視点を映像で見たい方はこちら (この映像は本番とは別日に撮影しています)
実際の撮影ではこのようにグリーンバックのスタジオで撮影し、リアルタイムにCG合成されています。
これから、
- MRの定義
- 演出を開発した意義
- 技術解説
について書きます。
Mixed Reality (MR) の定義
複合現実感 (Mixed Reality)とは、Virtual環境と現実環境を融合する概念です。
MRはAugmented Reality (AR) を含んでいます。ARの定義は
・現実とバーチャルの組み合わせ
・実時間で動作する応答性を備えている
・三次元的に整合性が取れている
[Dieter Schmalstiegら.『ARの教科書』.マイナビ出版,2019,p27]
です。これらを現実の空間で体験することをMR体験としています。
MR体験を行うためには、MRデバイスを装着し体験するのが主流です。
現在、代表的なMRデバイスは
- HoloLens 2
- Magic Leap 1
- Nreal Light
などが存在しています。今回はMicrosoft社が販売しているHoloLens 2を使ったMR表現を実演しました。
演出を開発した意義
今回のHoloLens演出に対して2つの意義を込めました。
- バーチャル撮影システムによるライブ配信での身体拡張表現
- MRデバイスを持っていない一般層へMR表現を伝えるための映像表現
1つ目の意義はバーチャル撮影システムによるライブ配信での身体拡張表現
弊社のバーチャル撮影システムでは、リアルタイムにフィジカルな人間とCG背景を合成することができます。
今回MR技術を用いて、人間の身体とCG背景がインタラクティブに作用する表現をリアルタイムに合成して配信することに成功しました。
2つ目の意義はMRデバイスを持っていない一般層へMR表現を伝えるための映像表現
本来、MR体験をするためにはHoloLensなどのMRデバイスを手元に持っている必要があります。
しかし、2021年現在MRデバイスを持っている人は限定されています。
MR体験は非常に素敵な体験ですが、なかなか伝えることができない悲しさをMRエンジニアは抱えています。
バーチャル撮影システムによるリアルタイムCG合成技術を活用することによって、自分が制作したMR体験をリアルタイムにかっこよくデモ映像として一般層に伝えることができます。
技術解説
HoloLens演出の肝の部分だけご紹介します。
- HoloLens2アプリと合成システムの構成
- 3つの空間の位置合わせ
HoloLens 2アプリと合成システムの構成
HoloLens 2アプリと合成システムの全体像はこちらです。
白いCubeのレンダリングはHoloLens 2とCG合成用PCでそれぞれレンダリングしています。
連動するためには図のように、座標情報をOpenSound Control (OSC) 通信でHoloLens2からCG合成用PCに送ることで実現できます。
座標情報で送る内容としては
- Location (x,y,z)
- Rotation (Roll, Pitch, Yaw)
- Scale (x,y,z)
になります。これらはUnityやUnreal Engine (Unreal)ではTransformと呼ばれています。
Unity座標からUnreal座標への変換
UnityとUnreal座標には以下の違いがあります。
Unity
・X:右/左
・Y:上/下
・Z:前/後
・単位:メートル (m)Unreal
・X:前/後
・Y:左/右
・Z:上/下
・単位:センチメートル (cm)
今回、Unity製のアプリから、Unreal製のシステムに座標情報を送るため、座標軸の変換とスケール変更をしてから送りました。
参考例として以下のようなコードを書くことで、座標変換を行いました。
ハンドトラッキングによるCGオブジェクトの操作
HoloLens 2に対しては、MixedRealityToolkit-Unity (MRTK) というツールキットが提供されており、基本的な操作については簡単に実装することができます。
今回のハンドトラッキングによるCGオブジェクトの操作に関してはMRTKのObjectManipulatorコンポーネントを付与するだけで実現可能になります。
3つの空間の位置合わせ
MR技術では複数空間の位置合わせが重要です。今回は3つの空間の位置合わせを行います。
- 物理空間
- CG空間
- HoloLens空間
物理空間とCG空間の位置合わせ
CG制作時点で物理空間であるスタジオの原点とスケールを合わせて制作を行います。この際にスタジオの※スキャンデータを活用しています。
※レーザースキャンで取得した、スタジオの正確なサイズを再現した3Dデータ
物理空間とHoloLens空間の位置合わせ
物理空間で定義した原点とHoloLens空間の原点と向きを合わせます。
合わせ方は
- マーカー式
- 手動調整
の2つがあるのですが、今回は手動調整で行いました。手動調整とは、HoloLens上で見えるCGオブジェクトを物理空間の原点に手で操作して配置します。
HoloLens空間とCG空間の位置合わせ
今までの2つの位置合わせで、HoloLens空間とCG空間の位置合わせはすでに実現しています。
さらにCubeの位置合わせが必要です。このためにはHoloLens空間の基準点からの相対座標をCG空間に送ることで位置合わせを行うことができます。ここで送る相対座標は、先ほど紹介したようにUnity座標からUnreal座標に変換を行っています。
このように、3つの空間の位置合わせを行うことで、HoloLens上でのCG操作と、CG合成の絵が一致しているように表現することができます。
まとめ:MR時代のプレゼンテーションとは何か追求していきたい
「バーチャル撮影システムによるMixed Reality表現」の発表で行ったHoloLens 2を使用した演出の意義と技術的解説を簡単に行いました。
今回の演出はMR時代のプレゼンテーションを考えるキッカケになったと思います。これには2つの意味があります。
- 従来のプレゼンテーションをMR技術を用いてどう拡張していくか
- MRコンテンツをいかに一般層に向けてプレゼンテーションしていくか
私はCyberHuman Productionsと共にFuture Event Basicsというサービスを開発しています。
そして、Mixed Reality分野のNext Expertsとして「MRの社会実装事例を作る」というミッションで活動しています。
今回の事例を通じて、MRが社会に普及するキッカケになれば嬉しいです。
今回の記事でサイバーエージェントに興味をもった人へ
今回の記事でサイバーエージェントのエンジニアに興味を持った学生さんに、個人的におススメなのはこちらの全職種向け 実践就業型インターンシップです。
私は学生時代このインターンシップを通じて「1年目から面白いチャレンジを任せてもらえそう、働き方も文化も自分に合っている」と気づき、サイバーエージェントへの新卒入社を決断しました。
結果、1年目から現在4年目まで当時の想像を超えた面白いチャレンジを楽しく仕事にし続けています。今回の記事ではその一部を紹介させていただきました。
この記事が、読者の人生の決断のターニングポイントになれば嬉しいです。