Parallel Reality は、同一空間上において現在と異なる時間帯のシーンを同時に表現するというものです。遠隔地にいる人があたかもその場にいるかのような環境を作り出す Telexistence に対して、あたかも過去(あるいは未来)の人物が、その場所、その時間に存在するかのごとく感じられる技術として定義しました。空間距離を縮めるのが Telexistence であるなら、 Parallel Reality は時間距離を縮める概念だと考えることができます。
Parallel Reality という概念を用いて、過去あるいは未来の人とのインタラクション(異時間インタラクション)を行う空間を生成するシステム
PRIMA (Parallel Reality-based Interactive Motion Area)
を制作しました。
PRIMAは、4台のKinect、4台のラップトップPC、1台のタッチパネル付デスクトップPCから構成されます。各Kinectは、天井4隅から空間中央に向けて設置されており、各々1台のクライアントPCに接続されています。クライアントPCで取得したデータはサーバPCに送信され、処理されます。
空間上部に配置された4 台のKinect が、空間内のオブジェクトのRGB 及び深度データを取得します。この時、単一のKinect では、オブジェクトの背面などオクルージョンの問題により完全な3 次元再構成を行うことができない部分が生じるため、複数のKinect を用いて様々な角度からデータを取得することとしました。各クライアントPC で取得したデータはGigabit Ethernet ケーブルを介してUDPプロトコルで送信され、1 台のサーバPC に集約されます。サーバPC 上で各3 次元データの座標変換を行い、ポイントクラウドを描画することで、Kinectで囲まれた空間を完全な形で3 次元再構成します。これらの処理はリアルタイムで行うことができます。
PRIMAでは、Kinectからのデータ取得・処理にOpenNI を利用しています。
まず、各クライアントPCにおいて、接続されたKinectから得たデータを基に、OpenNI のユーザトラッキングを用いてユーザラベルを振ります。しかし、この時点のユーザラベルはKinect毎に振られたものであり、同一ユーザに対して同じラベルが振られているとは限りません。そこで、異なるKinect間のユーザラベルの対応を取り、各データが同一ユーザを指すものであれば、 同じラベルで新たに置き換えることにしました。
各Kinectの3 次元ユーザデータの重心位置を求め、ある2 つのデータの重心距離が閾値以下である場合、同一ユーザのデータであると判断することとしました。これを、シンクロナイズドユーザトラッキングと言います。
シンクロナイズドユーザトラッキングを用いることで、空間内にいる人物を追跡して、その振る舞いを個別に記録することができます。任意のユーザデータについて、その3 次元位置情報、RGB 画素、ユーザラベルを保存しておき、後で自由に再生することができます。現在のシーンと同時に再生することで、過去のユーザが現在に存在し、共に行動しているかのように見えます。
3次元再構成されたシーンを、指でタッチパネルをなぞることで自由に操作できます。1本の指で平行・回転移動、2本の指でズームイン・アウト。ユーザは、生成されたParallel Reality空間を直感的に操作し、様々な視点位置・角度から見ることができます。
過去あるいは未来のユーザとの時間を超えたインタラクションを、「異時間インタラクション」と呼んでいます。過去のユーザと現在のユーザの振る舞いを同時に再現することで、本来同時に存在し得ない複数人の自分が登場するといった、有り得ないシーンをリアルタイムに生成できます。これにより、時間軸を利用した新たなコンテンツの生成が期待できると考えています。