(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024092551
(43)【公開日】2024-07-08
(54)【発明の名称】仮想物体操作装置およびそのプログラム、ならびに、仮想物体表示システム
(51)【国際特許分類】
G06T 19/00 20110101AFI20240701BHJP
G06F 3/04845 20220101ALI20240701BHJP
【FI】
G06T19/00 600
G06F3/04845
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022208575
(22)【出願日】2022-12-26
(71)【出願人】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】井原 章之
【テーマコード(参考)】
5B050
5E555
【Fターム(参考)】
5B050CA07
5B050CA08
5B050DA04
5B050EA07
5B050EA19
5B050EA27
5B050FA06
5E555AA12
5E555AA27
5E555BA02
5E555BB02
5E555BC08
5E555BE17
5E555CA02
5E555CA42
5E555CB05
5E555CB07
5E555CB31
5E555CC22
5E555DB57
5E555DC19
5E555FA00
(57)【要約】
【課題】現実世界の映像と重ね合わせた仮想物体を操作することが可能な仮想物体操作装置を提供する。
【解決手段】仮想物体操作装置1は、現実世界を撮影する天球カメラから入力される天球映像の指定された視線方向の映像と仮想物体とを重ね合わせたMR映像を生成するMR映像生成部15と、MR映像生成部15で生成されたMR映像上において、仮想物体に対する操作指示を入力する操作指示入力部13と、操作指示に対応する操作を仮想物体に対して行う操作部141と、操作部141で操作された仮想物体の位置情報を制御情報としてHMDに送信する制御情報送信部11と、HMDで仮想物体を操作された位置情報を制御情報として受信する制御情報受信部12と、を備える。
【選択図】
図4
【特許請求の範囲】
【請求項1】
現実世界あるいは現実世界の映像に仮想物体を重ね合わせたMR映像を表示するHMDと同期して、前記仮想物体を操作する仮想物体操作装置であって、
前記現実世界を撮影する天球カメラから入力される天球映像の指定された視線方向の映像と前記仮想物体とを重ね合わせたMR映像を生成するMR映像生成部と、
前記MR映像生成部で生成されたMR映像上において、前記仮想物体に対する操作指示を入力する操作指示入力部と、
前記操作指示に対応する操作を前記仮想物体に対して行う操作部と、
前記操作部で操作された前記仮想物体の位置情報を制御情報としてHMDに送信する制御情報送信部と、
前記HMDで前記仮想物体を操作された位置情報を制御情報として受信する制御情報受信部と、
を備えることを特徴とする仮想物体操作装置。
【請求項2】
視点位置の変更操作を前記操作指示入力部から入力されることで、前記HMDを装着したユーザが予め前記天球カメラの位置に配置した仮想物体である新視点オブジェクトの位置に、前記視点位置を示す仮想物体である視点オブジェクトの位置を変更する視点変更部と、
前記視線方向の変更操作を前記操作指示入力部から入力されることで、前記視点オブジェクトの視線方向を変更する視線変更部と、をさらに備え、
前記MR映像生成部は、前記視点オブジェクトの位置を中心として、前記天球映像の前記視線方向に対応する映像から前記MR映像を生成することを特徴とする請求項1に記載の仮想物体操作装置。
【請求項3】
前記MR映像生成部は、
仮想物体である球体オブジェクトに、前記天球映像を描画する仮想球体描画部と、
前記天球映像を描画した前記球体オブジェクトの内部に前記仮想物体を配置する仮想物体配置部と、
前記仮想物体を配置した前記球体オブジェクトから、前記視線方向に対応する2次元画像を生成する2次元画像生成部と、
を備えることを特徴とする請求項1に記載の仮想物体操作装置。
【請求項4】
外部装置の制御画面の画像を描画した仮想物体であるパネルオブジェクトの前記制御画面内の操作を前記操作指示入力部から入力されることで、前記外部装置に操作指示を制御情報として出力するパネル操作部をさらに備え、
前記MR映像生成部は、前記制御画面の画像を前記外部装置から入力し、前記パネルオブジェクト上に描画することを特徴とする請求項1に記載の仮想物体操作装置。
【請求項5】
コンピュータを、請求項1から請求項4のいずれか一項に記載の仮想物体操作装置として機能させるための仮想物体操作プログラム。
【請求項6】
ネットワークを介して接続した請求項1から請求項4のいずれか一項に記載の複数の仮想物体操作装置と、
前記複数の仮想物体操作装置のうちの少なくとも1つに接続した天球カメラと、を備え、
前記複数の仮想物体操作装置で、前記天球カメラの指定された視線方向のMR映像を共有することを特徴とする仮想物体表示システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想物体を操作する仮想物体操作装置およびそのプログラム、ならびに、仮想物体表示システムに関する。
【背景技術】
【0002】
近年、実空間を撮影した現実世界の映像と仮想物体とを重ね合わせる複合現実(Mixed Reality)技術が進展し、現実世界と仮想物体とのそれぞれの映像をシームレスに融合した映像(以下、MR映像)を表示することが可能になった。
この複合現実技術では、ヘッドマウントディスプレイ(以下、HMD)を装着したユーザが、HMDに表示された映像を通じて仮想物体を認識することができる。
HMDは、近年、HMDを装着したユーザの手指の動きを追跡し、MR映像内の仮想物体を自由に動かすハンドトラッキングが可能になっている(例えば、非特許文献1参照)。
また、HMDをWeb会議等で用い、異なる拠点にいる2名のユーザのうち、一方のユーザがHMDを装着し、HMDに表示されるMR映像を共有する技術が開示されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【非特許文献1】“Hololens(登録商標)2,”[online],マイクロソフトコーポレーション,[令和4年12月6日検索]、インターネット<URL:https://www.microsoft.com/ja-jp/hololens>
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の特許文献1に記載の技術では、MR映像を見ることができるのはHMDを装着したユーザのみであるため、HMDを装着していないユーザは、別の表示装置を介して共有されたMR映像を眺めることしかできず、仮想物体を操作することができないという問題がある。
そこで、本発明は、HMDを装着していないユーザであっても、MR映像内の仮想物体を操作することが可能な仮想物体操作装置およびそのプログラム、ならびに、仮想物体表示システムを提供することを課題とする。
【課題を解決するための手段】
【0006】
前記課題を解決するため、本発明に係る仮想物体操作装置は、現実世界あるいは現実世界の映像に仮想物体を重ね合わせたMR映像を表示するHMDと同期して、仮想物体を操作する仮想物体操作装置であって、MR映像生成部と、操作指示入力部と、操作部と、制御情報送信部と、制御情報受信部と、を備える構成とした。
【0007】
かかる構成において、仮想物体操作装置は、MR映像生成部によって、現実世界を撮影する天球カメラから入力される天球映像の指定された視線方向の映像と仮想物体とを重ね合わせたMR映像を生成する。このMR映像は、HMDとは異なる視点の映像である。
そして、仮想物体操作装置は、操作指示入力部によって、MR映像生成部で生成されたMR映像上において、仮想物体に対する操作指示をマウス等の操作として入力する。
そして、仮想物体操作装置は、操作部によって、操作指示に対応する移動、回転等の操作を仮想物体に対して行う。これによって、HMDを装着していないユーザでも仮想物体を操作することができる。
そして、仮想物体操作装置は、制御情報送信部によって、操作部で操作された仮想物体の位置情報を制御情報としてHMDに送信する。また、仮想物体操作装置は、制御情報受信部によって、HMDで操作された仮想物体の位置情報を制御情報として受信する。これによって、仮想物体操作装置は、HMDとの間で仮想物体の位置を同期させることができる。
なお、仮想物体操作装置は、コンピュータを、前記した各部として機能させるための仮想物体操作プログラムで動作させることができる。
【0008】
また、前記課題を解決するため、本発明に係る仮想物体表示システムは、複数の仮想物体操作装置と、複数の仮想物体操作装置のうちの少なくとも1つに接続した天球カメラと、を備える構成とした。
【0009】
かかる構成において、仮想物体表示システムは、複数の仮想物体操作装置で、天球カメラの指定された視線方向のMR映像を共有する。
これによって、複数の仮想物体操作装置の各ユーザは、HMDを装着しなくても、共有したMR映像内で仮想物体を操作することができるとともに、天球カメラの位置を視点とするMR映像を視認することができる。
【発明の効果】
【0010】
本発明によれば、HMDを装着していないユーザであっても、MR映像内の仮想物体を操作することができる。
【図面の簡単な説明】
【0011】
【
図1】本発明の第1実施形態に係る仮想物体表示システムの全体構成を示す構成図である。
【
図2】HMDを装着していないユーザがモニタで視認するMR映像の例を示す図である。
【
図3】HMDを装着しているユーザがHMDを介して視認するMR映像の例を示す図である。
【
図4】
図1の仮想物体操作装置の構成を示すブロック構成図である。
【
図5】視点変更の手順を(a)~(d)の順で説明するための説明図である。
【
図6】
図1のHMDの構成を示すブロック構成図である。
【
図7】本発明の第1実施形態に係る仮想物体表示システムの動作を示すフローチャートである。
【
図8】
図7の仮想物体操作装置におけるMR映像生成処理の動作を示すフローチャートである。
【
図9】
図7のHMDにおけるMR映像生成処理の動作を示すフローチャートである。
【
図10】仮想物体操作装置のユーザによる仮想物体の移動処理の動作を示すフローチャートである。
【
図11】視点位置の変更処理の動作を示すフローチャートである。
【
図12】視線方向の変更処理の動作を示すフローチャートである。
【
図13】HMDのユーザによる仮想物体の移動処理の動作を示すフローチャートである。
【
図14】本発明の第2実施形態に係る仮想物体表示システムの全体構成を示す構成図である。
【
図15】HMDを装着していないユーザがモニタで視認するMR映像の例を示す図である。
【
図16】
図14の仮想物体操作装置の構成を示すブロック構成図である。
【
図17】本発明の第2実施形態に係る仮想物体表示システムの動作を示すフローチャートである。
【
図18】パネルオブジェクトの操作処理の動作を示すフローチャートである。
【
図19】PCを用いた仮想物体表示システムの実施例(その1)を示す構成図である。
【
図20】PCを用いた仮想物体表示システムの実施例(その2)を示す構成図である。
【
図21】PCを用いた仮想物体表示システムの実施例(その3)を示す構成図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施形態に係る仮想物体表示システムについて説明する。
【0013】
<第1実施形態>
[仮想物体表示システムの全体構成]
図1を参照して、本発明の第1実施形態に係る仮想物体表示システム100の全体構成について説明する。
【0014】
仮想物体表示システム100は、現実世界に重ねて仮想物体を描画したMR映像を、HMD3を装着したユーザM1に提示するとともに、HMD3を装着していないユーザM2に、現実世界の映像に重ねて仮想物体を描画したMR映像を、ユーザM1とは異なる視点で提示するものである。なお、視点とは、どこから見ているかという、対象を見るときの立脚点を意味する。さらに、仮想物体表示システム100は、HMD3を装着していないユーザM2が仮想物体を操作する機能を有する。
ここでは、仮想物体表示システム100は、仮想物体操作装置1と、全天球カメラ2と、HMD3と、通信機器4と、を備える。なお、実空間には現実物体(ここでは、机OR)が存在しているものとする。また、仮想物体操作装置1とHMD3とは、仮想物体の情報(位置、大きさ、向き、形状等)を記憶しているものとする。
【0015】
仮想物体操作装置1は、HMD3と同期して、仮想物体を操作するものである。
仮想物体操作装置1は、全天球カメラ2で撮影された映像のうちで指定された視線方向のMR映像をモニタMOに表示するとともに、ユーザM2の指示により仮想物体の位置、向き等をHMD3と同期して操作する。なお、視線とは、視点から見ている対象への方向を意味する。
仮想物体操作装置1は、全天球カメラ2と、MR映像を表示するモニタ(表示装置)MOと、ユーザM2が仮想物体を操作するための指示装置(マウスMS、キーボードKB等)と、を接続している。
なお、ここでは、仮想物体操作装置1が一台の例で説明するが、全天球カメラ2を仮想物体操作装置1の一台ずつに接続した状態で、ネットワークを介して同状態の仮想物体操作装置1を複数台設置しても構わない。また、仮想物体操作装置1はオンライン会議アプリを用いることでオンライン会議用端末として使用することも可能である。なお、仮想物体操作装置1を複数設置する例については、後記する実施例で説明する。
【0016】
仮想物体操作装置1に接続されたモニタMOには、
図2に示すように、現実世界の映像に重ねて仮想物体を描画したMR映像I
MOが表示される。
一例として、
図2中、HMD3を装着したユーザM
1および机O
R以外は、仮想物体である。
ここでは、仮想物体の例として、3D(3次元)CAD等で生成された立体構造物である観察・操作対象である対象仮想オブジェクトO
Tと、HMD3の視点位置を示す視点オブジェクトO
PHMDと、その視線方向を示す視線オブジェクトO
LHMDとを示している。
【0017】
全天球カメラ(天球カメラ)2は、上下左右全方位の360度の天球映像を撮影するものである。
全天球カメラ2は、撮影した天球映像を仮想物体操作装置1に出力する。
【0018】
HMD3は、ユーザM1の頭部に装着され、ユーザM1の頭の位置や向きに応じて、現実世界に重ねて仮想物体を描画したMR映像を表示するものである。なお、HMD3は、ユーザM1がMR映像内の仮想物体を動かすハンドトラッキング機能を有しているものを用いることとする。
また、HMD3は、現実世界を半透明のディスプレイを通してそのまま眺める光学シースルー方式の装置であってもよいし、現実世界を撮影してディスプレイにその映像を表示するビデオシースルー方式の装置であっても構わない。
また、ここでは、HMD3を装着したユーザを一人として説明するが、複数のユーザがHMD3を装着していてもよい。
【0019】
HMD3には、
図3に示すように、現実世界に重ねて仮想物体を描画したMR映像I
HMDが表示される。
図3中、全天球カメラ2および机O
R以外は、仮想物体である。
ここでは、仮想物体の例として、操作対象となる仮想オブジェクトO
Tと、仮想物体操作装置1のユーザM
2が指示した視点位置を示す視点オブジェクトO
PCAMと、その視線方向を示す視線オブジェクトO
LCAMとを示している。
【0020】
通信機器4は、仮想物体操作装置1とHMD3との間で制御情報を送受信する通信装置である。
通信機器4は、例えば、仮想物体操作装置1およびHMD3との間で、無線でデータを送受信するWi-Fiルータを用いることができる。もちろん、仮想物体操作装置1と通信機器4とを、有線で接続する形態であっても構わない。
なお、仮想物体操作装置1とHMD3とが直接通信を行う構成とする場合、通信機器4を備える必要はない。
【0021】
ここで、仮想物体表示システム100が処理する仮想物体について説明しておく。仮想物体表示システム100が処理する仮想物体は、対象仮想オブジェクト、視点オブジェクト、視線オブジェクト、新視点オブジェクト、視点変更実行用オブジェクトおよび球体オブジェクトである。
【0022】
対象仮想オブジェクトは、3DCAD等で生成された立体構造物であって、観察および操作対象の仮想物体である。例えば、
図2,
図3に示した対象仮想オブジェクトO
Tである。
【0023】
視点オブジェクトは、HMD3を装着したユーザM
1の視点位置、HMD3を装着していないユーザM
2の視点位置(全天球カメラ2〔魚眼レンズ〕の位置)を示す仮想物体である。例えば、
図2に示したHMD3を装着したユーザM
1の視点位置を示す視点オブジェクトO
PHMDである。また、
図3に示した全天球カメラ2の位置を示す視点オブジェクトO
PCAMである。
この視点オブジェクトは、形状は任意であるが、
図2,
図3に示したように、例えば、円柱等、向きが分かる立体形状で表すことが好ましい。
【0024】
視線オブジェクトは、視点オブジェクトに付随して、視線方向を示す直線等の仮想物体である。視線オブジェクトは、例えば、
図2に示したHMD3を装着したユーザM
1の視線方向を示す視線オブジェクトO
LHMDである。また、視線オブジェクトは、
図3に示した全天球カメラ2からの視線方向を示す視線オブジェクトO
LCAMである。
なお、
図2,
図3の例では、視線オブジェクトO
LHMD,O
LCAMを破線のみで示している。しかし、視線オブジェクトは、実線、点線、鎖線等、どのような線種であっても構わない。また、視線オブジェクトは、視線の先を示す先端部に、視線方向を示す矢頭(→等)を付加した形状でも構わない。
また、
図2,
図3の例では、視線オブジェクトO
LHMD,O
LCAMは、視点オブジェクトO
PHMD,O
PCAMと、対象仮想オブジェクトO
Tとをそれぞれ終端とする線の形状としている。しかし、視線オブジェクトは、視線方向が分かれば、必ずしも、視点オブジェクトと対象仮想オブジェクトとを終端とする線の形状である必要ない。例えば、視線オブジェクトの線の一端または両端が、視点オブジェクトと対象仮想オブジェクトとから離間していても構わない。あるいは、視線オブジェクトの視点を始点端とし、視野の範囲を示す扇状の形状としても構わない。
【0025】
新視点オブジェクトは、全天球カメラ2の位置を移動させた際に、HMD3を装着したユーザM
1が全天球カメラ2の新しい位置に視点位置を移動させる際に用いる仮想物体である(後記する
図5の新視点オブジェクトO
PNEW)。なお、新視点オブジェクトは、実空間における全天球カメラ2の位置を特定するために使用されるもので、HMD3を装着していないユーザM
2の視点位置(視点オブジェクトO
PCAMの位置)を直接示すものではない。すなわち、全天球カメラ2の位置を移動させ、新視点オブジェクトを全天球カメラ2の位置に移動させた段階では、新視点オブジェクトの位置と視点オブジェクトの位置とは異なっている。
この新視点オブジェクトは、常に表示状態であるが、非表示状態を標準とし、全天球カメラ2の位置を変更する際に表示させることも可能である。
【0026】
視点変更実行用オブジェクトは、全天球カメラ2の位置を移動した際に、HMD3を装着していないユーザM2が、視点位置の変更を実行するために選択(マウスボタンの押下等)されるボタン等の仮想物体である。この視点変更実行用オブジェクトが選択されることで、視点オブジェクトが新視点オブジェクトの位置に移動し、新視点オブジェクトの位置と視点オブジェクトの位置とが同じになる。
この視点変更実行用オブジェクトは、常に表示状態であるが、非表示状態を標準とし、全天球カメラ2の位置を変更する際に表示させることも可能である。
【0027】
球体オブジェクトは、全天球カメラ2で撮影された天球映像のフレームごとの天球画像を描画する仮想的な球体スクリーンである。なお、ここでは、球体オブジェクトを仮想物体としているが、この球体オブジェクトには、移動するという概念はなく、HMD3には表示されない。
これらの仮想物体を用いた具体的な処理内容については後記する。
以上の構成によって、仮想物体表示システム100は、HMD3を装着していないユーザM2にモニタMOを介してMR映像を提示することができる。さらに、仮想物体表示システム100は、HMD3を装着していないユーザM2が、仮想物体を操作することができる。
以下、仮想物体操作装置1およびHMD3の構成および動作について説明する。
【0028】
[仮想物体操作装置の構成]
まず、
図4を参照(適宜
図1参照)して、仮想物体操作装置1の構成について説明する。
仮想物体操作装置1は、記憶部MEと制御部CLとを備える。
【0029】
記憶部MEは、仮想物体操作装置1で使用する仮想物体の情報を記憶するものであって、半導体メモリ等の一般的な記憶媒体で構成することができる。
ここでは、記憶部MEは、仮想物体情報記憶部10を備える。
仮想物体情報記憶部10には、仮想物体の構造情報、位置情報を記憶する。ここで、構造情報は、仮想物体の構造を特定する情報であって、例えば、3DCADで作成された立体構造の情報である。なお、構造情報には、仮想物体が動きを伴うものであった場合、その動きを示すアニメーション情報も含まれる。また、位置情報は、仮想物体の配置位置を特定する情報であって、3次元空間における位置座標(3変数)、方向(2変数)、スケール(1変数)等である。
また、仮想物体情報記憶部10には、HMD3を装着したユーザM1の視点位置、HMD3を装着していないユーザM2の視点位置(全天球カメラ2の位置)と、それぞれの視線方向が記憶される。
仮想物体情報記憶部10の各種情報は、予め初期値が設定されるが、後記する仮想物体制御部14によって更新される。
【0030】
制御部CLは、仮想物体操作装置1の各種制御動作を行うものである。
制御部CLは、制御情報送信部11と、制御情報受信部12と、操作指示入力部13と、仮想物体制御部14と、MR映像生成部15と、を備える。
【0031】
制御情報送信部11は、仮想物体制御部14で操作された仮想物体の位置情報を、制御情報としてHMD3に送信するものである。
ここでは、制御情報送信部11は、Wi-Fiによって、通信機器4を介して制御情報をHMD3に送信する。
【0032】
制御情報受信部12は、HMD3で操作された仮想物体の位置情報を、制御情報としてHMD3から受信するものである。制御情報受信部12は、受信した制御情報を仮想物体制御部14に出力する。
ここでは、制御情報受信部12は、Wi-Fiによって、通信機器4を介して制御情報を受信する。
【0033】
操作指示入力部13は、MR映像生成部15で生成され、モニタMOに表示されたMR映像上において、仮想物体に対する操作指示を入力するものである。
ここでは、操作指示入力部13は、外部に接続したマウスMS等の指示装置から、仮想物体に対する操作指示を入力する。操作指示は、例えば、マウスMSのボタンの押下/解放情報、ドラッグ情報、キーボードKBのキーの押下/解放情報等である。
操作指示入力部13は、入力した操作指示を仮想物体制御部14に出力する。
【0034】
仮想物体制御部14は、操作指示入力部13から入力される操作指示、および、HMD3から入力される制御情報を契機として、仮想物体に対する操作を行うものである。
ここでは、仮想物体制御部14は、権利取得部140と、操作部141と、視点変更部142と、視線変更部143と、を備える。
【0035】
権利取得部140は、仮想物体を選択または解放する操作指示を入力されることで、操作対象の操作の権利(以下、操作権)を取得または解放するものである。
権利取得部140は、仮想物体を選択する操作指示として、例えば、マウスMSの左ボタンを押下されることで、モニタMO上のマウスMSが存在する位置に対応する仮想物体の操作権を取得する。
なお、マウスMSが存在する位置に対応する仮想物体は、仮想物体情報記憶部10に記憶されている視点位置を中心とした視線方向における予め定めた画角内で、マウスMSの位置を投影した最も視点位置に近い位置に存在する仮想物体として検出することができる。
権利取得部140は、操作権を取得した旨(操作権取得情報)を、制御情報として制御情報送信部11を介してHMD3に通知するとともに、仮想物体情報記憶部10に記憶する。
【0036】
また、権利取得部140は、仮想物体を解放する操作指示として、例えば、マウスMSの左ボタンを解放されることで、操作権を解放する。権利取得部140は、操作権を解放した旨(操作権解放情報)を制御情報として制御情報送信部11を介してHMD3に送信するとともに、仮想物体情報記憶部10に記憶する。
【0037】
また、権利取得部140は、HMD3から制御情報受信部12を介して仮想物体の操作権を取得した旨(操作権取得情報)、あるいは、解放した旨(操作権解放情報)を制御情報として通知された場合、仮想物体情報記憶部10にその仮想物体に対する操作権の有無を記憶する。
権利取得部140は、仮想物体を選択しようとしても、すでに操作権が取得されている場合、仮想物体の選択を行わないこととする。
なお、ここでは、操作権を取得して解放するまで、操作権を保持することとしているが、他のユーザが操作権を取得した段階で、自身の操作権が解放されたこととしてもよい。
操作権を他のユーザが取得できる仮想物体は、対象仮想オブジェクト、新視点オブジェクトである。
視点オブジェクト、視線オブジェクト、視点変更実行用オブジェクトについては、予め仮想物体操作装置1とHMD3とにそれぞれのユーザの操作権が設定されており、操作権を移動できない仮想物体とする。また、球体オブジェクトは、移動等の操作を行う対象ではないため、操作権の設定は行わないことにする。
【0038】
操作部141は、操作指示入力部13から操作指示を入力されることで、操作指示に対応する操作を仮想物体に対して行うものである。
操作部141は、例えば、仮想物体を移動する操作指示として、マウスMSの左ボタンが押下された状態(操作権が設定されている状態)でドラッグされることで、仮想物体の位置を移動させる。なお、仮想物体の3次元空間の移動は、例えば、マウスMSの左ボタンのドラッグによる水平方向および垂直方向の移動、マウスMSのトラックボールによる奥行き方向の移動、キーボードKBの矢印キーによる回転等、予め定めた指示で行うことができる。
また、操作部141が行う移動の操作には、回転、スケール変更等も含まれる。
操作部141は、マウスMS等の操作量に応じて、仮想物体の移動量、回転量、スケールの比率等を算出し、仮想物体の新たな位置情報を求める。
操作部141は、操作後の仮想物体の位置情報を、仮想物体情報記憶部10に記憶するとともに、仮想物体の特定情報(識別番号等)と位置情報とを、制御情報として制御情報送信部11を介してHMD3に送信する。
【0039】
また、操作部141は、操作後の仮想物体の位置情報を、制御情報受信部12から制御情報として入力されることで、仮想物体を操作後の位置に移動させるものでもある。
操作部141は、HMD3から、制御情報受信部12を介して、操作後の仮想物体の位置情報を通知された場合、その位置情報を仮想物体情報記憶部10に記憶する。
【0040】
視点変更部142は、視点位置(視点オブジェクトOPCAMの位置)を変更する操作指示を入力されることで、視点位置を変更するものである。
視点変更部142は、視点位置を変更する操作指示として、操作指示入力部13を介して、視点変更実行用オブジェクト上でマウスMSのボタンを押下されることで、視点オブジェクトの位置を、新視点オブジェクトの位置に変更する。
【0041】
視点変更部142は、変更後の視点オブジェクトに付随して、視線オブジェクトを視点オブジェクトの位置から視線方向に延びる直線として更新する。
そして、視点変更部142は、視点オブジェクトおよび視線オブジェクトの位置情報を仮想物体情報記憶部10に記憶するとともに、制御情報として制御情報送信部11を介してHMD3に送信する。
なお、仮想物体操作装置1に対応する視点オブジェクトは、仮想物体操作装置1のユーザしか操作権を持っていない。そこで、全天球カメラ2の位置を変更した場合、HMD3のユーザによって、HMD3のユーザが移動可能な新視点オブジェクトを全天球カメラ2の位置に移動しておく。
【0042】
ここで、
図5を参照(適宜
図1,
図4参照)して、視点変更の処理について説明する。
図5は、HMD3に表示されるMR映像を示す。なお、説明を分かり易くするため、HMD3の位置は固定されているものとする。
図5(a)は、全天球カメラ2の位置に視点オブジェクトO
PCAMが存在し、それ以外の仮想物体として、新視点オブジェクトO
PNEWが存在しているものとする。なお、新視点オブジェクトO
PNEWは、任意の場所に配置されていればよい。
HMD3を装着したユーザM
1は、
図5(b)に示すように、自分の意志、あるいは、HMD3を装着していないユーザM
2の要請(直接通話、電話、テレビ会議音声等)によって、全天球カメラ2の位置を物理的に移動させる。
そして、HMD3を装着したユーザM
1は、
図5(c)に示すように、3次元空間内の新視点オブジェクトO
PNEWを把持し、全天球カメラ2の新しい視点位置に移動させて新視点オブジェクトO
PNEWを離す。
【0043】
その後、HMD3を装着していないユーザM
2が、任意の位置に配置された視点変更実行用オブジェクトを選択(マウスボタンの押下等)することで、
図5(d)に示すように、視点変更部142は、視点オブジェクトO
PCAMの位置を新視点オブジェクトO
PNEW(
図5(c))の位置に変更し、位置情報を仮想物体情報記憶部10に記憶する。なお、視点変更部142は、視点オブジェクトの位置を変更した後、視点変更実行用オブジェクトを、視点オブジェクトの近傍で2次元の画面内に存在するように再配置することが好ましい。これによって、ユーザM
2が視点変更実行用オブジェクトを探す手間を省くことができる。
また、視点変更部142は、更新された視点オブジェクトに付随して、視線オブジェクトの位置についても更新する。
図4に戻って、仮想物体操作装置1の構成について説明を続ける。
【0044】
視線変更部143は、視線方向を変更(視点オブジェクトを回転)する操作指示を操作指示入力部13から入力されることで、視線方向を変更するものである。
視線変更部143は、視点オブジェクトを回転する操作指示として、例えば、マウスMSの右ボタンを押下された状態でドラッグされることで、視点オブジェクトを回転させる。なお、視点オブジェクトの3次元空間における回転は、例えば、マウスMSの右ボタンのドラッグによる水平方向の回転、マウスMSの右ボタン押下時のトラックボールによる垂直方向の回転等、予め定めた指示で行うことができる。
このとき、視線変更部143は、回転後の視点オブジェクトに付随して、視線オブジェクトを更新する。
視線変更部143は、回転後の視点オブジェクトおよび視線オブジェクトの位置情報を、仮想物体情報記憶部10に記憶するとともに、制御情報として制御情報送信部11を介してHMD3に送信する。
【0045】
MR映像生成部15は、全天球カメラ2から入力される天球映像の指定された視線方向の映像と仮想物体とを重ね合わせたMR映像を生成するものである。
MR映像生成部15は、全天球カメラ2で撮影される映像と、仮想物体情報記憶部10に記憶されている仮想物体の構造情報および位置情報とから、モニタMOに表示するフレームごとの画像をMR映像として生成する。
ここでは、MR映像生成部15は、仮想球体描画部150と、仮想物体配置部151と、2次元画像生成部152と、を備える。
【0046】
仮想球体描画部150は、仮想物体である球体オブジェクトに、天球映像をフレーム単位で天球画像として描画するものである。
ここでは、仮想球体描画部150は、球体オブジェクトの表面に、全天球カメラ2から入力される天球画像をマッピングする。
仮想球体描画部150は、天球画像を描画した球体オブジェクトを、仮想物体配置部151に出力する。
【0047】
仮想物体配置部151は、仮想球体描画部150で天球画像を描画された球体オブジェクトの内部に、仮想物体を配置するものである。
仮想物体配置部151は、仮想物体情報記憶部10に記憶されている仮想物体の構造情報および位置情報とから、球体オブジェクトの内部に仮想物体(対象仮想オブジェクト、視点オブジェクト、視線オブジェクト、新視点オブジェクトおよび視点変更実行用オブジェクト)を配置する。
仮想物体配置部151は、天球画像が描画された球体オブジェクトと、内部に配置された仮想物体の情報とを合わせて、2次元画像生成部152に出力する。
【0048】
2次元画像生成部152は、仮想物体配置部151で生成された球体オブジェクトと仮想物体の情報から、視線方向の2次元画像を生成するものである。
2次元画像生成部152は、球体オブジェクトの中心を視点位置として、仮想物体情報記憶部10に記憶されている視線方向のベクトルに垂直な2次元撮像面をもつ仮想的なカメラを配置する。そして、2次元画像生成部152は、視点位置から2次元撮像面を介して撮影される天球画像の画素および仮想物体を2次元撮像面に投影することにより、視線方向の2次元画像を生成する。
2次元画像生成部152は、生成した2次元画像をモニタMOに出力する。
MR映像生成部15は、順次、2次元画像を予め定めたフレームレートで出力する。
これによって、HMD3を装着していないユーザは、モニタMOを介して、MR映像を視認することができる。
【0049】
以上説明した構成によって、仮想物体操作装置1は、HMD3を装着していないユーザM2に、HMD3を装着したユーザM1とは異なる視点でMR映像を提示することができる。また、仮想物体操作装置1は、HMD3を装着していないユーザM2であっても、仮想物体を操作させることができる。
なお、仮想物体操作装置1は、コンピュータを、前記した制御部CLの各部として機能させるためのプログラム(仮想物体制御プログラム)で動作させることができる。
例えば、仮想物体操作装置1は、仮想物体制御プログラムをPC(パーソナルコンピュータ)で動作させることで実現することもできる。
【0050】
[HMDの構成]
次に、
図6を参照(適宜
図1参照)して、HMD3の構成について説明する。
HMD3は、記憶部MEと制御部CLとを備える。
【0051】
記憶部MEは、HMD3で使用する仮想物体の情報を記憶するものであって、半導体メモリ等の一般的な記憶媒体で構成することができる。
ここでは、記憶部MEは、仮想物体情報記憶部30を備える。なお、一般的なHMDで使用する情報、例えば、手指の動きを検出するための情報等は、ここでは説明を省略する。
【0052】
仮想物体情報記憶部30は、仮想物体の構造情報、位置情報を記憶する。この仮想物体情報記憶部30に記憶される情報は、
図4で説明した仮想物体情報記憶部10に記憶される情報と同じであるため、説明を省略する。
【0053】
制御部CLは、HMD3の各種制御動作を行うものである。
制御部CLは、HMD本体部31と、仮想物体操作インタフェース(I/F)部32と、を備える。
【0054】
HMD本体部31は、実空間に仮想物体を重ね合わせて表示デバイス(不図示)に表示して、HMD3を装着したユーザにMR映像を提示するものである。
HMD本体部31には、従来のハンドトラッキング機能を有するHMDを用いればよい。ここでは、HMD本体部31は、ハンドトラッキング機能により、HMD3を装着したユーザが仮想物体を把持した、解放した、移動させた等の各種動作を検出した場合、その動作内容を操作指示として仮想物体操作I/F部32に出力する。
また、HMD本体部31は、仮想物体情報記憶部30に記憶されている仮想物体情報の位置情報により、表示デバイスの対応する位置に仮想物体を表示する。
以下、本発明と直接関係しないHMD本体部31の内容については、詳細な説明を省略する。
【0055】
仮想物体操作I/F部32は、仮想物体操作装置1による仮想物体の操作と、HMD本体部31による仮想物体の操作とを整合させるものである。
仮想物体操作I/F部32は、制御情報送信部310と、制御情報受信部320と、仮想物体制御部330と、を備える。
【0056】
制御情報送信部310は、仮想物体制御部330から出力されるHMD本体部31で操作された仮想物体の位置情報を、制御情報として仮想物体操作装置1に送信するものである。
ここでは、制御情報送信部310は、Wi-Fiによって、通信機器4を介して制御情報を仮想物体操作装置1に送信する。
【0057】
制御情報受信部320は、仮想物体操作装置1で操作された仮想物体の位置情報を、制御情報として受信するものである。制御情報受信部320は、受信した制御情報を仮想物体制御部330に出力する。
ここでは、制御情報受信部320は、Wi-Fiによって、通信機器4を介して制御情報を受信する。
【0058】
仮想物体制御部330は、HMD本体部31から入力される操作指示、および、仮想物体操作装置1から入力される制御情報により、仮想物体の操作を制御するものである。
ここでは、仮想物体制御部330は、権利取得部331と、操作部332と、を備える。
【0059】
権利取得部331は、仮想物体を選択または解放する操作指示を入力されることで、操作対象の操作の権利(操作権)を取得または解放するものである。
権利取得部331は、仮想物体を選択する操作指示として、仮想物体を把持した旨をHMD本体部31から入力されることで、仮想物体の操作権を取得する。
権利取得部331は、操作権を取得した旨(操作権取得情報)を、制御情報として制御情報送信部310を介して仮想物体操作装置1に通知するとともに、仮想物体情報記憶部30に記憶する。
【0060】
また、権利取得部331は、仮想物体を解放する操作指示として、仮想物体を離した旨をHMD本体部31から入力されることで、仮想物体の操作権を解放する。
権利取得部331は、操作権を解放した旨(操作権解放情報)を、制御情報として制御情報送信部310を介して仮想物体操作装置1に通知するとともに、仮想物体情報記憶部30に記憶する。
なお、ここでは、操作権を取得して解放するまで、操作権を保持することとしているが、他のユーザが操作権を取得した段階で、自身の操作権が解放されたこととしてもよい。
権利取得部331で操作権を取得、解放する対象となる仮想物体は、対象仮想オブジェクト、新視点オブジェクトである。
【0061】
操作部332は、HMD本体部31から入力される操作指示、および、仮想物体操作装置1から入力される制御情報を契機として、仮想物体に対する操作を行うものである。
操作部332は、HMD本体部31から仮想物体を移動(回転、スケール変更等も含む)した操作指示を入力した場合、仮想物体情報記憶部30に記憶されている新たな位置情報を制御情報として制御情報送信部310を介して仮想物体操作装置1に送信する。
また、操作部332は、移動後の仮想物体の位置情報を、制御情報受信部320から制御情報として入力されることで、仮想物体を移動させる。
操作部332は、仮想物体操作装置1から、制御情報受信部320を介して、移動後の仮想物体の位置情報を通知された場合、その位置情報を仮想物体情報記憶部30に記憶する。その後、HMD本体部31によって、新たな位置に仮想物体が表示されることになる。
【0062】
以上説明した構成によって、HMD3の仮想物体操作I/F部32は、HMD3を装着していないユーザM2であっても、仮想物体操作装置1を介して仮想物体を操作させることができる。
なお、HMD3の仮想物体操作I/F部32は、HMD3内のコンピュータを、前記した各部として機能させるためのプログラム(仮想物体操作I/Fプログラム)で動作させることができる。また、このコンピュータは、HMD3とは別体で構成され、有線等でHMD3と接続されたものであっても構わない。
【0063】
[仮想物体表示システムの動作]
次に、
図7を参照(適宜
図1,
図4,
図6参照)して、本発明の第1実施形態に係る仮想物体表示システム100の動作について説明する。
本動作は、仮想物体操作装置1およびHMD3のそれぞれのユーザからの操作指示と、相手装置からの制御情報とをイベントとして動作するものであるため、イベントの発生順序は、これに限定されるものではない。
【0064】
なお、操作権を必要とする仮想物体を操作する場合、操作対象の仮想物体の操作権を予め取得しておく必要があるが、ここでは、ステップとしての図示を省略する。具体的には、仮想物体操作装置1は、権利取得部140によって、仮想物体を選択する操作指示を入力された段階で操作権を取得し、HMD3は、権利取得部331によって、仮想物体を把持する操作指示を入力された段階で操作権を取得する。以下では、仮想物体に対して必要に応じて操作権を取得しているものとする。
仮想物体操作装置1は、ステップS10からS18までの処理を終了が指示されるまで、繰り返し実行する。
また、HMD3は、ステップS20からS24までの処理を終了が指示されるまで、繰り返し実行する。
【0065】
まず、仮想物体操作装置1の動作について説明する。
ステップS10において、仮想物体制御部14は、操作指示入力部13で入力された操作指示が、仮想物体を移動する指示であるか否かを判定する。
ここで、操作指示が仮想物体を移動(回転、スケール変更等を含む)する指示である場合(ステップS10でYes)、仮想物体操作装置1は、ステップS11に動作を進める。一方、操作指示が仮想物体を移動する指示でない場合(ステップS10でNo)、仮想物体操作装置1は、ステップS12に動作を進める。
【0066】
ステップS11において、操作部141は、仮想物体の移動処理(新たな位置情報の算出)を行い、移動後の仮想物体の位置情報を制御情報として、制御情報送信部11を介してHMD3に送信する。そして、仮想物体操作装置1は、ステップS12に動作を進める。
【0067】
ステップS12において、仮想物体制御部14は、操作指示入力部13で入力された操作指示が、仮想物体である視点オブジェクトの位置を変更する指示であるか否かを判定する。
ここで、操作指示が視点オブジェクトの位置を変更する指示である場合(ステップS12でYes)、仮想物体操作装置1は、ステップS13に動作を進める。一方、操作指示が視点オブジェクトの位置を変更する指示でない場合(ステップS12でNo)、仮想物体操作装置1は、ステップS14に動作を進める。
【0068】
ステップS13において、視点変更部142は、視点オブジェクトの位置を新視点オブジェクトの位置に変更(位置情報の更新)し、変更後の視点オブジェクトの位置情報を制御情報として、制御情報送信部11を介してHMD3に送信する。そして、仮想物体操作装置1は、ステップS14に動作を進める。
なお、このステップS13の処理は、後記するステップS23において、全天球カメラ2の移動後の新たな位置に、新視点オブジェクトの位置が移動された後に行われる処理である。
【0069】
ステップS14において、仮想物体制御部14は、操作指示入力部13で入力された操作指示が、視線方向を変更(視点オブジェクトを回転)する指示であるか否かを判定する。
ここで、操作指示が視線方向を変更する指示である場合(ステップS14でYes)、仮想物体操作装置1は、ステップS15に動作を進める。一方、操作指示が視線方向を変更する指示でない場合(ステップS14でNo)、仮想物体操作装置1は、ステップS16に動作を進める。
【0070】
ステップS15において、視線変更部143は、視点オブジェクトの視線方向を指定された方向に回転させた位置に変更(位置情報の更新)し、変更後の視点オブジェクトの位置情報(方向を含む)を制御情報として、制御情報送信部11を介してHMD3に送信する。そして、仮想物体操作装置1は、ステップS16に動作を進める。
【0071】
ステップS16において、仮想物体制御部14は、制御情報受信部12を介してHMD3から制御情報として位置情報を受信したか否かを判定する。
ここで、制御情報(位置情報)を受信した場合、ステップS17において、操作部141は、仮想物体の位置を位置情報で示される位置に変更する。そして、仮想物体操作装置1は、ステップS18に動作を進める。一方、制御情報(位置情報)を受信していない場合(ステップS16でNo)、仮想物体操作装置1は、ステップS18に動作を進める。
【0072】
ステップS18において、MR映像生成部15は、全天球カメラ2の映像と仮想物体とを位置情報に基づいて合成し、視線方向に対応した画像をモニタMOにMR映像として表示する。
このステップS18については、
図8を参照してさらに詳細に説明する。
ステップS180において、仮想球体描画部150は、全天球カメラ2から入力される天球映像のフレームごとの天球画像を、球体オブジェクト(球体OBJ)に描画する。
ステップS181において、仮想物体配置部151は、天球画像が描画された球体オブジェクトの内部に、仮想物体(仮想OBJ)を配置する。
ステップS182において、2次元画像生成部152は、球体オブジェクトの中心を視点位置とし、視点位置から天球画像の画素および仮想物体を仮想的な2次元撮像面に投影することで、視線方向の2次元画像を生成する。
ステップS183において、2次元画像生成部152は、生成した2次元画像をモニタMOに出力する。
【0073】
これによって、仮想物体操作装置1に接続されたモニタMOには、実空間に仮想物体が配置されたMR映像が表示される。また、仮想物体操作装置1のユーザがHMD3を装着していなくても、仮想物体を操作することができる。
【0074】
次に、
図7に戻って、HMD3の動作について説明する。
ステップ20において、仮想物体制御部330は、制御情報受信部320を介して仮想物体操作装置1から制御情報として位置情報を受信したか否かを判定する。
ここで、制御情報(位置情報)を受信した場合(ステップS20でYes)、ステップS21において、操作部332は、仮想物体の位置を位置情報で示される位置に変更する。そして、HMD3は、ステップS22に動作を進める。一方、制御情報(位置情報)を受信していない場合(ステップS20でNo)、HMD3は、ステップS22に動作を進める。
【0075】
ステップS22において、仮想物体制御部330は、HMD本体部31から操作指示として、仮想物体を移動(回転、スケール変更等を含む)した操作指示が入力されたか否かを判定する。
ここで、仮想物体を移動した操作指示を入力した場合(ステップS22でYes)、ステップS23において、操作部332は、新たな位置情報を制御情報として制御情報送信部310を介して仮想物体操作装置1に送信する。そして、HMD3は、ステップS24に動作を進める。一方、操作指示が入力されていない場合(ステップS22でNo)、HMD3は、ステップS24に動作を進める。
【0076】
ステップS24において、HMD本体部31は、現実空間の映像に仮想物体を合成したMR映像を表示デバイスに表示する。
このステップS24については、
図9を参照してさらに詳細に説明する。
ステップS240において、HMD本体部31は、仮想物体情報記憶部30に記憶されている仮想物体情報の位置情報により、画角に対応した2次元平面に仮想物体(仮想OBJ)を配置する。
ステップS241において、HMD本体部31は、ステップS240で2次元平面に配置した仮想物体を、現実空間に重ねて、表示デバイスに表示する。
【0077】
これによって、HMD3のユーザが操作した仮想物体を、仮想物体操作装置1のモニタMO上で同期して表示することができる。また、仮想物体操作装置1のユーザが操作した仮想物体を、HMD3に同期して表示することができる。
【0078】
次に、
図7に示した動作を個別の動作内容ごとに説明する。
(仮想物体操作装置のユーザによる仮想物体の移動)
まず、
図10を参照して、仮想物体操作装置1のユーザが仮想物体を移動(回転、スケール変更等を含む)させる動作を行った場合の処理(ステップS11,S21)を説明する。
仮想物体操作装置1のユーザが仮想物体を移動させる動作(マウス動作)を行った場合、仮想物体操作装置1はステップS11の動作(移動処理)を行い、HMD3はステップS21の動作(位置変更処理)を行う。
【0079】
ステップS110において、仮想物体操作装置1の操作部141は、操作指示に応じて仮想物体の移動後の新たな位置情報を算出する。
ステップS111において、操作部141は、仮想物体の位置情報を仮想物体情報記憶部10に記憶し、更新する。
ステップS112において、操作部141は、移動後の新たな位置情報を、制御情報送信部11を介して制御情報としてHMD3に送信する。
【0080】
ステップS210において、HMD3の制御情報受信部320は、制御情報(位置情報)を受信する。
ステップS211において、操作部332は、ステップS210で受信した位置情報を仮想物体の新たな位置情報として仮想物体情報記憶部30に記憶し、更新する。
その後、ステップS18,S24(
図7)によって、新たな位置に移動した仮想物体が表示されることになる。
【0081】
(視点位置の変更)
次に、
図11を参照し、仮想物体操作装置1のユーザが視点位置の変更の指示を行った場合の処理(ステップS13,S21)を説明する。
仮想物体操作装置1のユーザが視点位置の変更を行う指示を行った場合、仮想物体操作装置1はステップS13の動作を行い、HMD3はステップS21の動作を行う。
【0082】
ステップS130において、仮想物体操作装置1の視点変更部142は、視点オブジェクト(視点OBJ)の位置情報を、仮想物体の位置情報を仮想物体情報記憶部10に記憶されている新視点オブジェクト(新視点OBJ)の位置情報に更新し、仮想物体情報記憶部10に記憶する。
なお、このとき、視点変更部142は、変更後の視点オブジェクトに付随して、視線オブジェクトを視点オブジェクトの位置から視線方向に延びる直線として更新する。
ステップS131において、視点変更部142は、移動後の新たな視点オブジェクトの位置情報(視線オブジェクトの位置情報を含む)を、制御情報送信部11を介して制御情報としてHMD3に送信する。
【0083】
ステップS210において、HMD3の制御情報受信部320は、制御情報(位置情報)を受信する。
ステップS211において、操作部332は、ステップS210で受信した位置情報を仮想物体(視点オブジェクト,視線オブジェクト)の新たな位置情報として仮想物体情報記憶部30に記憶し、更新する。
その後、ステップS18,S24(
図7)によって、新たな位置に移動した仮想物体(視点オブジェクト、視線オブジェクト)が表示されることになる。
【0084】
(視線方向の変更)
次に、
図12を参照し、仮想物体操作装置1のユーザが視線方向の変更の指示を行った場合の処理(ステップS15,S21)を説明する。
仮想物体操作装置1のユーザが視線方向の回転の指示を行った場合、仮想物体操作装置1はステップS15の動作を行い、HMD3はステップS21の動作を行う。
【0085】
ステップS150において、仮想物体操作装置1の視線変更部143は、視点オブジェクトを指定方向に回転させた後の位置情報を算出する。
ステップS151において、視線変更部143は、回転後の仮想オブジェクトの位置情報を仮想物体情報記憶部10に記憶し、更新する。
なお、このとき、視線変更部143は、回転後の視点オブジェクトに付随して、視線オブジェクトを視点オブジェクトの位置から視線方向に延びる直線として位置情報を更新する。
ステップS152において、視線変更部143は、回転後の新たな位置情報を、制御情報送信部11を介して制御情報としてHMD3に送信する。
【0086】
ステップS210において、HMD3の制御情報受信部320は、制御情報(位置情報)を受信する。
ステップS211において、操作部332は、ステップS210で受信した位置情報を仮想物体(視点オブジェクト,視線オブジェクト)の新たな位置情報として仮想物体情報記憶部30に記憶し、更新する。
その後、ステップS18,S24(
図7)によって、回転後の視点オブジェクト(視線オブジェクト)が表示されることになる。
【0087】
(HMDのユーザによる仮想物体の移動)
次に、
図13を参照して、HMD3のユーザが仮想物体を移動(回転、スケール変更等を含む)させる動作を行った場合の処理(ステップS17,S23)を説明する。
HMD3のユーザが仮想物体を移動させる動作を行った場合、HMD3はステップS23(移動処理)の動作を行い、仮想物体操作装置1はステップS17の動作(位置変更処理)を行う。
【0088】
ステップS230において、HMD3のHMD本体部31は、操作指示に応じて仮想物体の移動後の新たな位置情報を算出する。
ステップS231において、HMD本体部31は、仮想物体の位置情報を仮想物体情報記憶部30に記憶し、更新する。
ステップS232において、操作部332は、移動後の新たな位置情報を、制御情報送信部310を介して制御情報として仮想物体操作装置1に送信する。
【0089】
ステップS170において、仮想物体操作装置1の制御情報受信部12は、制御情報(位置情報)を受信する。
ステップS171において、操作部141は、ステップS170で受信した位置情報を仮想物体の新たな位置情報として仮想物体情報記憶部10に記憶し、更新する。
その後、ステップS18,S24(
図7)によって、新たな位置に移動した仮想物体が表示されることになる。
【0090】
以上、仮想物体表示システム100の構成および動作について説明したが、本発明はこの実施形態に限定されるものではない。
ここでは、操作対象を仮想物体としたが、外部の制御装置の制御画面を仮想物体とし、その仮想物体(制御画面)の内部をさらに操作対象としてもよい。
【0091】
<第2実施形態>
[仮想物体表示システムの全体構成]
以下、
図14を参照して、外部の制御装置の制御画面を操作対象とすることが可能な本発明の第2実施形態に係る仮想物体表示システム100Bの全体構成について説明する。
【0092】
図14に示すように、仮想物体表示システム100Bは、仮想物体表示システム100(
図1)の仮想物体操作装置1を仮想物体操作装置1Bに置き換え、仮想物体操作装置1Bに外部装置として情報処理装置5を接続して構成している。
仮想物体操作装置1Bおよび情報処理装置5以外の構成は、
図1で説明した仮想物体表示システム100と同じであるため、説明を省略する。
【0093】
仮想物体操作装置1Bは、全天球カメラ2で撮影された映像のうちで指定された視点のMR映像をモニタMOに表示するとともに、ユーザM2の指示により仮想物体の位置、向き等を操作するものである。さらに、仮想物体操作装置1Bは、情報処理装置5が表示する制御画面を仮想物体(パネルオブジェクト)上に描画し、その制御画面を制御するものでもある。
【0094】
例えば、仮想物体操作装置1Bは、モニタMOに、
図15に示すように、実空間を撮影した現実世界の画像と仮想物体であるパネルオブジェクトO
PNLとを重ね合わせたMR映像I
MOを表示する。このパネルオブジェクトO
PNLは、情報処理装置5が表示する制御画面の一例(RGBの色調整)を示している。
仮想物体操作装置1Bは、例えば、
図15のパネルオブジェクトO
PNLにおいて、スライダーSLDの位置を移動させたり、ボタンBTNを押下したり、等の操作を可能とする。
情報処理装置(外部装置)5は、制御画面を表示するものであれば、特に種類を問わない。
【0095】
[仮想物体操作装置の構成]
図16を参照(適宜
図14参照)して、仮想物体操作装置1Bの構成について説明する。
仮想物体操作装置1Bは、記憶部MEと制御部CLとを備える。
【0096】
記憶部MEは、仮想物体操作装置1Bで使用する仮想物体の情報を記憶するものであって、半導体メモリ等の一般的な記憶媒体で構成することができる。
ここでは、記憶部MEは、仮想物体情報記憶部10を備える。なお、仮想物体情報記憶部10に記憶する内容は、基本的に仮想物体操作装置1(
図1)と同じである。ただし、ここでは、仮想物体として、パネルオブジェクトの構造情報、位置情報を記憶している。
【0097】
パネルオブジェクトは、制御画面を表示する板状の仮想物体である。このパネルオブジェクトは、対象仮想オブジェクトと同様、操作権を設定して操作する仮想物体であり、操作権を他のユーザに移動できる仮想物体である。
【0098】
制御部CLは、仮想物体操作装置1Bの各種制御動作を行うものである。
制御部CLは、制御情報送信部11と、制御情報受信部12と、操作指示入力部13と、仮想物体制御部14Bと、MR映像生成部15Bと、操作情報出力部16と、を備える。仮想物体制御部14B、MR映像生成部15Bおよび操作情報出力部16以外の構成は、仮想物体操作装置1(
図1)と同じであるため、説明を省略する。
【0099】
仮想物体制御部14Bは、操作指示入力部13から入力される操作指示、および、HMD3から入力される制御情報を契機として、仮想物体に対する操作を行うものである。
ここでは、仮想物体制御部14Bは、権利取得部140と、操作部141と、視点変更部142と、視線変更部143と、パネル操作部144と、を備える。パネル操作部144以外の構成は、仮想物体操作装置1(
図1)と同じであるため、説明を省略する。
【0100】
パネル操作部144は、仮想物体であるパネルオブジェクトの内部に対する操作指示を入力されることで、その操作指示を操作情報として情報処理装置5に送信するものである。
パネル操作部144は、パネルオブジェクトの内部に対する操作指示として、パネルオブジェクト内部でマウスMSのボタンを押下されることで、その操作指示を、パネルオブジェクト内の相対位置とともに操作情報として操作情報出力部16に出力する。
【0101】
MR映像生成部15Bは、実空間を撮影した現実世界の画像と仮想物体とを重ね合わせたMR映像を生成するものである。
ここでは、MR映像生成部15Bは、仮想球体描画部150と、仮想物体配置部151Bと、2次元画像生成部152と、を備える。仮想物体配置部151B以外の構成は、仮想物体操作装置1(
図1)と同じであるため、説明を省略する。
【0102】
仮想物体配置部151Bは、仮想球体描画部150で天球画像を描画された球体オブジェクトに、仮想物体を配置するものである。なお、仮想物体配置部151Bは、パネルオブジェクトの表面に、情報処理装置5から入力される映像(制御画面)を描画する。
これによって、モニタMOには、制御画面が描画されたパネルオブジェクトが表示されることになる。
【0103】
操作情報出力部16は、パネル操作部144から入力される操作情報を、情報処理装置5に出力するものである。
操作情報出力部16が操作情報を情報処理装置5に通知することで、情報処理装置5は、制御画面内の操作指示を取得し、指定された処理を実行することができる。
なお、ここでは情報処理装置5の数が一台である場合を説明したが、複数台の情報処理装置5を仮想物体操作装置1Bに接続させることも可能である。
【0104】
以上説明した構成によって、仮想物体操作装置1Bは、HMD3を装着していないユーザM2に、HMD3を装着したユーザM1とは異なる視点でMR映像を提示することができる。また、仮想物体操作装置1Bは、HMD3を装着していないユーザM2であっても、仮想物体を操作させることができる。さらに、仮想物体操作装置1Bは、パネルオブジェクトを介して、情報処理装置5の制御画面を操作することができる。
また、仮想物体操作装置1Bは、HMD3と同期していない状況や、ユーザM2がHMD3を使用していない状況でも、情報処理装置5の制御画面を操作することができる。
なお、仮想物体操作装置1Bは、コンピュータを、前記した制御部CLの各部として機能させるためのプログラム(仮想物体制御プログラム)で動作させることができる。
【0105】
[仮想物体表示システムの動作]
次に、
図17を参照(適宜
図14,
図16参照)して、本発明の第2実施形態に係る仮想物体表示システム100Bの動作について説明する。
なお、仮想物体操作装置1BのステップS10~S18,HMD3のステップS20~S24の動作は、
図7で説明した仮想物体表示システム100の動作と同じであるため、説明を省略する。
【0106】
ステップS30において、仮想物体操作装置1Bのパネル操作部144は、操作指示入力部13で入力された操作指示が、パネルオブジェクトの内部を操作する指示であるか否かを判定する。
ここで、操作指示がパネルオブジェクトの内部を操作する指示である場合(ステップS30でYes)、仮想物体操作装置1Bは、ステップS31に動作を進める。一方、操作指示がパネルオブジェクトの内部を操作する指示でない場合(ステップS30でNo)、仮想物体操作装置1Bは、ステップS18に動作を進める。
ステップS31において、仮想物体操作装置1Bは、操作指示を操作情報として情報処理装置5に送信する。
また、ステップS40において、情報処理装置5は、パネル操作実行処理として、操作指示の内容を実行する。
【0107】
このステップS31,S40の処理、
図18を参照してさらに説明する。
ステップS310において、仮想物体操作装置1Bのパネル操作部144は、入力された操作指示をパネルオブジェクト内の相対位置とともに操作情報として、操作情報出力部16を介して情報処理装置5に出力する。
ステップS401において、情報処理装置5は、ステップS310で出力された操作情報を受け取る。
ステップS402において、情報処理装置5は、ステップS401で受け取った操作情報で特定される制御画面の操作指示に対応する処理を実行する。
【0108】
以上説明した仮想物体表示システム100Bの構成および動作によって、仮想物体表示システム100の作用効果に加えて、外部に接続した情報処理装置5の制御画面の操作を仮想物体の操作として扱うことができる。これによって、仮想物体表示システム100Bは、情報処理装置5が離れた場所にあっても、制御画面を操作することができる。
【0109】
<実施例>
以下、
図19~
図21を参照して、パーソナルコンピュータ(PC)に仮想物体制御プログラムをインストールして仮想物体操作装置1を構成した場合の実施例について説明する。以下、仮想物体操作装置1をPC1と表記する。なお、
図19~
図21では、マウスMS、キーボードKBの図示を省略している。
【0110】
図19は、
図1に示した仮想物体表示システム100の構成を示している。
図1に示すように、仮想物体表示システム100は、全天球カメラ2とモニタMOとが接続されたPC1と、HMD3と、を通信機器であるルータ4を介して通信接続(Wi-Fi接続)して構成することができる。
なお、
図14に示した仮想物体表示システム100Bを構成する場合、
図19のPC1に情報処理装置5を接続すればよい。
この仮想物体表示システム100は、システムの最小構成である。
これによって、HMD3を装着したユーザM
1とHMD3を装着していないユーザM
2とが、仮想物体を視認するとともに、操作することができる。
【0111】
図20は、遠隔地で仮想物体を操作することが可能な仮想物体表示システム100A
1の構成を示している。
仮想物体表示システム100A
1は、全天球カメラ2とモニタMOとが接続されたPC1と、HMD3と、ルータ4と、インターネット(ネットワーク)Nを介して接続された複数のPC1
B,PC1
B,…と、で構成される。なお、PC1
BはそれぞれモニタMOを接続している。
PC1とルータ4とは、有線(例えば、LANケーブル)で接続され、遠隔地のPC1
Bは、一般的なリモート操作機能付きのオンライン会議アプリ(例えば、ZOOM(登録商標))を用いて画面を共有し、PC1の仮想物体制御プログラムを操作する。もちろん、PC1とルータ4とは、無線(例えば、Wi-Fi)で接続しても構わない。
この画面は、全天球カメラ2の指定された視線方向のMR映像が表示された画面である。
【0112】
これによって、遠隔地のユーザM3は、PC1Bによって、仮想物体を視認することができる。また、ユーザM3は、オンライン会議アプリのリモート操作機能によって、共有された画面の操作権を取得し、その画面に対して選択(マウスボタンの押下等)をすることにより、仮想物体の操作権を取得し、仮想物体を操作することができる。
【0113】
図21は、遠隔地で仮想物体を操作することが可能な仮想物体表示システム100A
2の構成を示している。
仮想物体表示システム100A
1(
図20)は、PC1と遠隔地のPC1
Bとを、直接、インターネットNに接続した構成である。しかし、企業等ではネットワークに接続されたPC(PC1
C等)の秘匿性を考慮してインターネットNへの接続はプロキシサーバを用いることが一般的である。
仮想物体表示システム100A
2は、PC1とPC1
CとをプライベートLANで接続し、PC1
Cと遠隔地のPC1
Bとを、プロキシサーバ6を介して接続している。このとき、プライベートLAN上で利用可能なリモートデスクトップ機能を使ってPC1に接続し、PC1の仮想物体制御プログラムを操作できるようにした上で、その画面をオンライン会議アプリで共有し、別のPCから操作できるようにする。
【0114】
これによって、仮想物体表示システム100A
2は、ネットワークに接続されたPC(PC1
C等)を秘匿しつつ、現地のユーザM
2や遠隔地のユーザM
3が、仮想物体を視認するとともに操作することができる。
なお、仮想物体表示システム100A
1(
図20),100A
2(
図21)の構成の場合、HMD3を装着したユーザM
1は、MR映像を使用したプレゼンテーションを行うこともできる。この場合、ユーザM
1はユーザM
2を兼ねて、現地において一人でプレゼンテーションを行うことも可能である。
また、仮想物体表示システム100A
1(
図20),100A
2(
図21)の構成の場合でも、PC1に情報処理装置5を接続し、各PC1を
図14に示した仮想物体操作装置1Bとすることで、遠隔地から、情報処理装置5の制御画面をパネルオブジェクトとして、制御画面を制御することが可能になる。
【0115】
図21では、現地のPC1に全天球カメラ2を接続した構成を説明した。
しかし、全天球カメラ2を、遠隔地のPC1
Bに接続することとしてもよい。遠隔地のPC1
Bに全天球カメラ2を接続した状態で、オンライン会議アプリを使って現地のPC1
Cに全天球カメラ映像を送信し、PC1
Cで受信した映像をモニタMOに描画し、その映像をPC1に入力することにより、PC1で動作している仮想物体制御プログラム中の球体オブジェクトに対して、遠隔地の全天球カメラ映像を描画することができる。
この場合、仮想物体表示システム100A
2全体で複数の全天球カメラ2を使用することができ、オンライン会議アプリ上で表示画面を切り替えることにより、仮想物体制御プログラムに各地の全天球カメラ映像を選択的に表示することが可能になる。
【符号の説明】
【0116】
100,100B 仮想物体表示システム
1,1B 仮想物体操作装置
10 仮想物体情報記憶部
11 制御情報送信部
12 制御情報受信部
13 操作指示入力部
14 仮想物体制御部
140 権利取得部
141 操作部
142 視点変更部
143 視線変更部
15 MR映像生成部
150 仮想球体描画部
151 仮想物体配置部
152 2次元画像生成部
2 全天球カメラ(天球カメラ)
3 HMD
30 仮想物体情報記憶部
31 HMD本体部
32 仮想物体操作インタフェース部
310 制御情報送信部
320 制御情報受信部
330 仮想物体制御部
331 権利取得部
332 操作部
4 通信機器
5 情報処理装置(外部装置)