(58)【調査した分野】(Int.Cl.,DB名)
前記色調整手段は、前記判定手段で前記現実空間の開閉部が開いていると判定した場合に、前記光源設定手段で設定された光源の位置と前記部屋の外部に存在する三次元モデルとに応じて、前記部屋の内部の色を調整することを特徴とする請求項2に記載の情報処理システム。
前記判定手段は、前記画像取得手段で取得した画像に、前記現実空間の開閉部を開くことで現れるマーカが含まれるか否かに基づいて、前記現実空間の開閉部が開いているか否かを判定することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理システム。
【発明を実施するための形態】
【0014】
以下、図面を参照しながら、本発明の実施形態の一例について説明する。
【0015】
図1は、本発明の実施の形態に係るMRシステム100(仮想空間表示システム)のシステム構成の一例を示す図である。本発明のMRシステム100は、MR管理サーバ101、MR処理装置102、MR設定端末104が設置されており、それら装置はLAN(Local Area Network)等のネットワーク105を介して相互にデータ通信可能に接続されている。また、MR処理装置102とHMD103(表示装置)は、USB(Universal Serial Bus)等を介して相互にデータ通信可能に接続されている。
図1のネットワーク上やシステム上に接続される各種端末あるいはサーバの構成は一例であり、用途や目的に応じて様々な構成例がある。
【0016】
MR管理サーバ101は、複数のMR処理装置102を管理するための装置である。MR管理サーバ101には、MR設定端末104から送信された各種設定情報を記憶し、MR処理装置102からの要求に応じて、当該設定情報をMR処理装置102に送信する。各種設定情報には、例えばマンションギャラリーにおけるモデルルームの階層や部屋番号、月や時間帯の情報などが含まれる。また、複数のHMD103をグルーピングするためのグループ情報も記憶している。
【0017】
MR処理装置102(情報処理装置)は、HMD103から送信された撮影情報に基づいてMR管理サーバ101から設定情報を受け取り、当該設定情報に基づいて仮想空間上に表示する3次元モデルを設定し、それをHMD103に送信するための装置である。本実施例では、MR処理装置102は、HMD103と1対1で接続されているものとして説明を行う。例えば、
図1のMR処理装置102a〜102d、HMD103a〜HMD103dに示す通り、PC001はHMD001と接続されているが、一方PC002はHMD002と接続されている。MR処理装置102の処理能力を最大限に使用するためにこのような構成となっているが、複数のHMD103が接続されていてもよい。また、MR管理サーバ101とMR処理装置102が1つの装置であってもよい(情報処理サーバ)。
【0018】
HMD103は、接続されたMR処理装置102から送信された3次元モデルを受信し、受信した3次元モデルを、HMD103に備えられたビデオカメラ(撮影部)から入力された現実世界の情報と重ね合わせて、仮想世界に表示する装置である。MR技術の仕組みについては、前述した先行技術文献や従来技術の通りである。
【0019】
MR設定端末104は、HMD103に表示する景色(3次元モデル)に関する設定やHMD103同士をグルーピングするための設定を受け付ける装置である。本実施例では、マンションギャラリーにおける使用を前提とするため、操作のしやすいタッチパネルを備えた端末を想定しているが、設定の入力を受け付けられれば他の装置でもよい。また、MR設定端末104の機能をMR管理サーバ101やMR処理装置102に含めてもよい。
【0020】
図2は、本発明の実施形態におけるMR管理サーバ101、MR処理装置102、及びMR設定端末104のハードウェア構成を示す図である。
【0021】
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0022】
また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムプログラム(以下、OS)や、各種装置の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。
【0023】
CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
【0024】
また、入力コントローラ(入力C)205は、キーボード209や不図示のマウス等のポインティングデバイスからの入力を制御する。
【0025】
ビデオコントローラ(VC)206は、CRTディスプレイ(CRT)210等の表示器への表示を制御する。表示器はCRTだけでなく、液晶ディスプレイでも構わない。
【0026】
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフレキシブルディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ211へのアクセスを制御する。
【0027】
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
【0028】
尚、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0029】
本発明のMR管理サーバ101、MR処理装置102、及びMR設定端末104が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ211に格納されている。
【0030】
次に、
図3は、本発明の実施形態におけるHMD103のハードウェア構成を示す図である。
【0031】
CPU301は、システムバス304に接続される各デバイスやコントローラを統括的に制御する。
【0032】
また、ROM302には、CPU301の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムプログラム(以下、OS)や、各種装置の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM303は、CPU301の主メモリ、ワークエリア等として機能する。
【0033】
CPU301は、処理の実行に際して必要なプログラム等をRAM303にロードして、プログラムを実行することで各種動作を実現するものである。
【0034】
また、入力コントローラ(入力C)305は、右目・左目ビデオカメラ(ビデオカメラ、撮影部)309からの入力を制御する。
【0035】
ビデオコントローラ(VC)306は、右目・左目ディスプレイ(ディスプレイ)310等の表示器への表示を制御する。表示器はCRTだけでなく、液晶ディスプレイでも構わない。
【0036】
位置センサ307は、HMD103を装着したユーザの位置や姿勢を検知するためのセンサである。例えば、ジャイロセンサやGPSといったセンサを利用し、ユーザがどこでどんな姿勢や高さで現実空間を見ているのかを検知する。
【0037】
通信I/Fコントローラ(通信I/FC)308は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。
【0038】
尚、CPU301は、例えばRAM303内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、右目・左目ディスプレイ310上での表示を可能としている。
【0039】
本発明のHMD103が後述する各種処理を実行するために用いられる各種プログラム等はROM302に記録されており、必要に応じてRAM303にロードされることによりCPU301によって実行されるものである。
【0040】
次に、MR管理サーバ101、MR処理装置102、HMD103、及びMR設定端末104のモジュール構成を示す機能構成図について、
図4を用いて説明する。尚、
図4の各種端末あるいはサーバのモジュール構成は一例であり、用途や目的に応じて様々な構成例がある。
【0041】
MR管理サーバ101は、送受信モジュール411、グループ管理モジュール412、記憶モジュール413を備える。
【0042】
送受信モジュール411は、MR処理装置102をはじめとする各種装置とデータの送受信をするためのモジュールである。グループ管理モジュール412は、MR設定端末104から送信されたグルーピングに関する情報(グループ情報)を管理するためのモジュールである。記憶モジュール413は、各種データやテーブルを記憶するためのモジュールである(記憶手段)。本実施例では特に後述する基準座標テーブル700やHMD管理テーブル720(
図7参照)を記憶している。
【0043】
MR処理装置102は、送受信モジュール421、マーカー検出モジュール422、位置判定モジュール423、記憶モジュール424を備える。
【0044】
送受信モジュール421は、MR管理サーバ101をはじめとする各種装置とデータの送受信をするためのモジュールである。マーカー検出モジュール422は、HMD103で撮影された映像を受信し、当該映像に含まれるマーカーを検出するためのモジュールである。本実施例では、モデルルーム内に設置されたマーカーをHMD103が撮影するとそのマーカーに対応する3次元モデルを表示する仕組みとして説明するが、何かのアクションを検知して、そのアクションに応じた3次元モデルを表示するような仕組みでもよい。位置判定モジュール423は、後述するHMD103の位置検知モジュール434で検知した位置情報の結果、HMD103を装着したユーザがどのような位置や姿勢なのかを判定するためのモジュールである。記憶モジュール424は、各種データ(特に3次元モデル)やテーブルを記憶するためのモジュールである(記憶手段)。本実施例では特に後述する太陽方位テーブル710(
図7参照)やマーカー管理テーブル1300(
図13参照)を記憶している。
【0045】
HMD103は、送受信モジュール431、撮像モジュール432、位置検知モジュール434を備える。
【0046】
送受信モジュール431は、MR管理サーバ101をはじめとする各種装置とデータの送受信をするためのモジュールである。撮像モジュール432は、HMD103の右目・左目ビデオカメラ309を用いて現実世界の情報を撮像するためのモジュールである。撮像は動画(映像)を前提として説明するが、画像であってもよい。表示モジュール433は、HMD103の右目・左目ディスプレイ310に撮像モジュール432で撮像された映像と仮想世界の情報(3次元モデル等)を表示するためのモジュールである。位置検知モジュール434は、HMD103がモデルルームのどこにいるのか、ユーザがどういう姿勢なのかを検知するためのモジュールである。
【0047】
MR設定端末104は、送受信モジュール441、表示モジュール442を備える。
【0048】
送受信モジュール441は、MR管理サーバ101をはじめとする各種装置とデータの送受信をするためのモジュールである。表示モジュール442は、MR設定端末104のCRT210に対して各種情報を表示させるためのモジュールである。
【0049】
次に、本発明の実施例におけるMR管理サーバ101、MR処理装置102、MR設定端末104によって行われる一連の処理について、
図5に示すフローチャートを用いて説明する。尚、S101乃至S104の各ステップはMR設定端末104におけるCPU201の制御の下、処理が行われる。また、S105乃至S108の各ステップはMR管理サーバ101におけるCPU201の制御の下、処理が行われる。また、S109乃至S116の各ステップはMR処理装置102におけるCPU201の制御の下、処理が行われる。
【0050】
尚、この処理をMR管理サーバ101、MR処理装置102、MR設定端末104に実行させるためのプログラムは、MR管理サーバ101、MR処理装置102、MR設定端末104にインストールされているアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、アプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【0051】
ステップS101では、MR設定端末104は、MR設定端末104のCRT210に対してMRシステム設定画面600(
図6参照)を表示させる。MRシステム設定画面600では、HMD103を用いてモデルルームのシミュレーションをする際の設定項目の入力を受け付ける。具体的には、モデルルームの部屋番号(位置情報)や部屋の種別、月や時間帯(日時情報)といった設定と、使用するHMD103の設定(グループ情報)である。これ以外に設定項目があってもよい。例えば、部屋番号の代わりにマンションの棟と階を設定するような形態でもよい。
【0052】
ステップS102では、MR設定端末104は、MRシステム設定画面600の設定ボタン601がユーザからの操作によって押下されたか否かを判定する。設定ボタン601が押下されたと判定された場合には、ステップS103に処理を進め、そうでない場合にはMRシステム設定画面600を表示し入力を受け付けた状態にしておく。
【0053】
ステップS103では、MR設定端末104は、MRシステム設定画面600に入力された設定内容(設定情報)を取得する。そして、ステップS104では、MR設定端末104は、ステップS103で取得した設定内容をMR管理サーバ101に送信する。
【0054】
ステップS105では、MR管理サーバ101は、ステップS104においてMR設定端末104から送信された設定内容を受信し、RAM203等の記憶手段に記憶する。
【0055】
ステップS106では、MR管理サーバ101は、ステップS105で受信した設定内容から部屋番号と部屋種別を取得し、これらの情報を基に仮想世界における基準座標を取得する(設定情報取得手段)。基準座標は、現実空間と仮想空間を一致させるための基準となる座標である。後述する処理で仮想世界における基準座標と、現実世界における原点座標とを一致させることにより、現実空間と仮想空間のずれを解消する。基準座標は基準座標テーブル700(
図7参照)に記憶されている。つまり、取得した部屋番号と部屋種別に基づいて、基準座標テーブル700から基準座標を取得する。
【0056】
基準座標テーブル700(視点位置情報)は、MR管理サーバ101に記憶されており、部屋番号701、部屋種別702、基準座標703から構成されている。部屋番号701は、モデルルームごとに一意に設定された番号が格納されている。部屋種別702は、部屋番号701が示すモデルルーム内にある部屋の種別を示す情報が格納されている。基準座標703は、現実空間と仮想空間を一致させるための基準となる座標値(X座標、Y座標、Z座標)を示す情報が格納されている。
【0057】
ステップS107では、MR管理サーバ101は、ステップS105で受信した設定内容から使用するHMD103の識別番号を取得し、グルーピングしておく。ここでは、複数人のユーザがHMD103を使用して、モデルルームを閲覧する場合に、当該複数人のユーザに対して同様の情報を表示させるために、ここで使用するHMD103をグルーピングしておく。具体的には、HMD管理テーブル720に対して、使用するHMD103を紐づけておく。紐づけの方法は様々だが、例えばHMD管理テーブル720における使用するHMD103のレコードのグループ名723に、同じグループ名を入力しておくことで、紐づけを行う。また、グルーピングを行うと共に、HMD管理テーブル720の各項目をステップS105で受信した設定内容に更新する。更に、ステップS106で取得した基準座標をHMD103ごとに基準座標724に格納する。
【0058】
HMD管理テーブル720は、MR管理サーバ101に記憶され、HMD識別番号721、接続装置名722、グループ名723、基準座標724、月725、時間帯726から構成される。HMD識別番号721は、HMD103ごとに一意に割り振られた番号が格納されている。接続装置名722は、当該HMD103が接続されたMR処理装置102を示す情報が格納されている。グループ名723は、複数のHMD103をグルーピングするための情報(グループ情報)が格納されている。基準座標724は、取得した基準座標703が格納されている。月725は、ユーザから設定された月の情報が格納されている。時間帯726は、同じくユーザから設定された時間帯の情報が格納されている。
【0059】
ステップS108では、MR管理サーバ101は、ステップS106で取得した基準座標と、ステップS105で受信した設定内容に含まれる月と時間帯に関する情報をMR処理装置102に送信する。送信するMR処理装置102は、使用するHMD103と通信可能に接続されたMR処理装置102とする。具体的には、HMD管理テーブル720から使用するHMD103を特定し、特定されたHMD103に対応する接続装置名722に送信すればよい。
【0060】
ステップS109では、MR処理装置102は、ステップS108でMR管理サーバ101から送信された基準座標と月・時間帯といった設定情報を受信し、RAM203等の記憶手段に記憶する。
【0061】
ステップS110では、MR処理装置102は、MR処理装置102に記憶された3次元モデルを読み込む。読み込む3次元モデルは、モデルルームの内装や外装、風景といった情報、つまり仮想世界情報である。あらかじめ表示する3次元モデルは3次元CADアプリケーション等によって作成しておき、MR処理装置102に記憶しておく。
【0062】
ステップS111では、MR処理装置102は、ステップS109で受信した基準座標に基づいて、ステップS110で読み込んだ3次元モデルの原点座標を補正する。
図8に示すように、現実世界における基準座標をスタート地点としてしまうと、3次元モデルの原点座標とのずれがあるため、現実世界と仮想世界とがうまく一致しない。これを解消するために3次元モデルの原点座標を補正して、後述するステップS112でうまく現実世界と仮想世界を一致させるようにする。尚、現実世界と仮想世界の一致方法については、従来技術を用いるものとする。
【0063】
ステップS112では、MR処理装置102は、ステップS111で補正された原点座標から3次元モデルの位置を変更する。これにより、現実世界と仮想世界の情報が一致し、ずれが解消される。
【0064】
ステップS113では、MR処理装置102は、ステップS109で受信した月と時間帯から太陽方位を取得する。つまり、ユーザから設定された月と時間帯における太陽の方位を取得して、光源を設定し、よりリアルな景色を表示させることができる。太陽方位は、太陽方位テーブル710から取得できる。月と時間帯で方位角と高度を取得する。尚、太陽の方位は現実世界に設置されたセンサ等を利用して現在の太陽方位を取得し、3次元モデルに反映させるような形態でもよい。その場合、月と時間帯の情報は不要となり、センサ等から取得した太陽方位に基づいて、3次元モデルを設定する。更に別の実施形態としては、マンションが建築される予定の場所の緯度と経度、及びMRシステム設定画面600に入力された月と時間帯から、太陽の方位を算出する方法もある。つまり、太陽の方位を算出する方法はこれらに限らず、様々な方法がある。
【0065】
太陽方位テーブル710は、MR処理装置102に記憶され、月711(時間情報)、時間帯712(時間情報)、方位角713、高度714から構成される。月711は、1月から12月といった月を示す情報が格納されている。時間帯712は、0:00から24:00といった時間帯を示す情報が格納されている。方位角713は、当該月と時間帯における太陽の方位角を示す情報が格納されている。高度714は、当該月と時間帯における太陽の高度を示す情報が格納されている。
【0066】
ステップS114では、MR処理装置102は、ステップS113で取得した太陽方位に基づいて、ステップS110で取得した3次元モデルに対して光源を設定し、3次元モデルの配色等を変更する。こうすることで、ユーザが望む月や時間帯の風景を表示することができる。特定の光源を設定して、3次元モデルの色を変化させる仕組みについては従来技術を利用するものとする。
【0067】
ステップS115では、MR処理装置102は、ステップS110で取得した3次元モデルに対して、表示しなくてもよいところにマスク処理を施す。例えば、部屋の中に柱があった場合には、当該柱を無視して柱の向こう側の情報を表示してしまうと、リアリティがなくなってしまうので、当該柱の部分にはマスクをかけて3次元モデルを表示させないようにすることで、これらを解決する。
【0068】
ステップS116では、MR処理装置102は、HMD103に対してステップS115までに設定した3次元モデルを送信し、表示するための処理を実行する。MR表示処理の詳細は、後述する
図9に示す。
【0069】
次に、本発明の実施例におけるMR管理サーバ101、MR処理装置102、HMD103によって行われるMR表示処理について、
図9に示すフローチャートを用いて説明する。尚、S201、S206、S207、S213乃至S215の各ステップはMR処理装置102におけるCPU201の制御の下、処理が行われる。また、S202乃至S205、S216乃至S218の各ステップはHMD103におけるCPU201の制御の下、処理が行われる。また、S208乃至S212の各ステップはMR管理サーバ101におけるCPU201の制御の下、処理が行われる。
【0070】
尚、この処理をMR管理サーバ101、MR処理装置102、HMD103に実行させるためのプログラムは、MR管理サーバ101、MR処理装置102、HMD103にインストールされているアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、アプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【0071】
ステップS201では、MR処理装置102は、前述したステップS115までに様々な処理が実行された3次元モデルを含む仮想世界情報をHMD103に送信する。仮想世界情報は、3次元モデル以外の情報を含んでもよい。例えば、3次元モデルの風景として表示されているビルの名前や山脈の名前、方角といった補足情報が考えられる。
【0072】
ステップS202では、HMD103は、ステップS201でMR処理装置102から送信された仮想世界情報を受信する。
【0073】
ステップS203では、HMD103は、ステップS202で受信した仮想世界情報を、HMD103の右目・左目ビデオカメラ309で撮像された映像に重ね合わせて、右目・左目ディスプレイ310に表示する。こうすることで現実世界の情報(撮像された映像)と仮想世界の情報(3次元モデル等)が重ね合わせて表示される。
【0074】
ステップS204では、HMD103は、右目・左目ディスプレイ310で特定のマーカーが撮像されたか否かを判定する。マーカーとは、3次元モデルを表示するための指標となる目印である。当該マーカーを検知した場合に3次元モデルを動作させることで、より拡張性の高い仮想世界を提供できる。特定のマーカーが撮像されたと判定された場合には、ステップS205に処理を進め、そうでない場合にはそのまま待機する。本実施例ではマーカーが撮像されたか否かによって、その後のアクションを決定するようにしているが、何かしらのセンサによって動作指示を検知するようにしてもよい。方法は特に問わない。また、本実施例では、HMD103がマーカーの撮影有無を判定しているが、HMD103からMR処理装置102に撮像映像(または撮像画像)を送信し、MR処理装置102で受信した後、MR処理装置102が当該撮像映像を解析して、マーカーが撮像されたか否かを判定してもよい。この場合には、HMD103から随時撮像映像が送信されるので、MR処理装置102は、適宜画像処理を行って、マーカーが撮像されたかどうかを判定する。
【0075】
本実施例では、
図10に示すようにモデルルームの窓を開けたときを想定する。例えば、窓の裏にマーカーを設置しておく。モデルルームを訪れたユーザは窓を開けることで、設置されたマーカーをHMD103で撮像することができるので、このマーカーを検知して外の風景を表示するといった制御が可能となる。前述の通り、マーカーではなくセンサを窓に設置し、センサの動作によってMR処理装置102が窓が動かされたか否かを判定してもよい。
【0076】
ステップS205では、HMD103は、撮像されたマーカー画像(撮影情報)と、撮像したHMD103自身のHMD識別番号721をMR処理装置102に送信する(撮影情報送信手段)。つまり、動作指示に応じてMR処理装置102に処理内容を問い合わせる。
【0077】
ステップS206では、MR処理装置102は、ステップS205でHMD103から送信されたマーカー画像とHMD識別番号721を受信する(撮影情報受信手段)。
【0078】
ステップS207では、MR処理装置102は、ステップS206で受信したマーカー画像とHMD識別番号721をMR管理サーバ101に送信する。尚、ステップS206及びステップS207を省略し、ステップS205でHMD103から直接MR管理サーバ101にマーカー画像とHMD識別番号721を送信するような形態でもよい。
【0079】
ステップS208では、MR管理サーバ101は、ステップS207でMR処理装置102から送信されたマーカー画像とHMD識別番号721を受信する。
【0080】
ステップS209では、MR管理サーバ101は、ステップS208で受信したマーカー画像に基づいて、特定の動作を指示したユーザのHMD103を特定する。
図11に示すように、モデルルームのような狭い空間では、複数のグループが混在している可能性がある。例えば
図11に示すGP001グループが窓を開けた場合に、GP002グループは関係がないにも関わらず、風景が表示されてしまうとMRシステム100の処理負荷が高くなってしまう。よって、動作指示を行ったユーザが含まれるグループにのみ、3次元モデルを表示することが望ましい。このため、ステップS209において動作指示を行ったユーザを特定している。特定の方法は従来技術を利用するものとするが、撮像されたマーカー画像の大きさから判定してもよいし、撮像したHMD103の位置とマーカーが設置された位置とを比較して判定するようにしてもよい。
【0081】
ステップS210では、MR管理サーバ101は、ステップS209で特定されたHMD103と同じグループに属するHMD103を特定する(グループ特定手段)。具体的には、ステップS209で特定されたHMD103のグループ名723をHMD管理テーブル720から特定し、当該グループ名723と同一のグループ名723を持つHMD103を特定する。
【0082】
ステップS211では、MR管理サーバ101は、ステップS210で特定されたHMD103と通信可能に接続されたMR処理装置102を特定する。具体的には、ステップS210で特定されたHMD103の接続装置名722をHMD管理テーブル720から特定する。
【0083】
ステップS212では、MR管理サーバ101は、ステップS211で特定されたMR処理装置102に対して、マーカー表示指示を送信する。マーカー表示指示にはマーカー画像を含めるものとする。
【0084】
ステップS213では、MR処理装置102は、ステップS212でMR管理サーバ101から送信されたマーカー表示指示を受信する。
【0085】
ステップS214では、MR処理装置102は、マーカー画像から表示内容を決定するための処理を行う。表示内容設定処理の詳細は、後述する
図12に示す。
【0086】
ステップS215では、MR処理装置102は、ステップS214の表示内容設定処理で特定された表示内容を、当該MR処理装置102と通信可能に接続されたHMD103に送信する(3次元モデル送信手段)。表示内容は、3次元モデルを動作させる動作内容や、表示する3次元モデルなどを含む。例えば、窓を開けた場合を想定すると、風景の3次元モデルを表示するために、窓に対してマスク処理をかける指示をHMD103に送信する。
【0087】
ステップS216では、HMD103は、ステップS215でMR処理装置102から送信された表示内容を受信し(3次元モデル受信手段)、ステップS217では、HMD103は、ステップS216で受信した表示内容に基づいて、仮想世界の情報を表示する(表示手段)。例えば、窓の部分にマスク処理をかけて、外の風景(仮想世界の情報)を現実世界の情報を重ね合わせて表示させる。
【0088】
ステップS218では、HMD103は、MRシステム100を終了するか否かを判定する。つまり、何かしらの終了指示があったか否かを判定する。終了すると判定された場合には、MR表示処理を終了して呼び出し元に処理を戻し、終了すると判定されなかった場合には、ステップS204に処理を戻す。
【0089】
次に、本発明の実施例におけるMR管理サーバ101、MR処理装置102によって行われる表示内容設定処理について、
図12に示すフローチャートを用いて説明する。尚、S301乃至S303、S307、S308の各ステップはMR処理装置102におけるCPU201の制御の下、処理が行われる。また、S304乃至S306の各ステップはMR管理サーバ101におけるCPU201の制御の下、処理が行われる。
【0090】
尚、この処理をMR管理サーバ101、MR処理装置102に実行させるためのプログラムは、MR管理サーバ101、MR処理装置102にインストールされているアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、アプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【0091】
ステップS301では、MR処理装置102は、前述したステップS213で受信したマーカー表示指示からマーカー画像を取得し、当該マーカー画像を解析して当該マーカーを識別するためのマーカー情報を抽出する。例えば、マーカー画像に当該マーカーを特定するための二次元バーコードを埋め込んでおき、画像処理することで何のマーカーが撮像されたのかを特定する。マーカー情報には、マーカーを識別するための情報が含まれていればよい。
【0092】
ステップS302では、MR処理装置102は、ステップS301で抽出したマーカー情報に基づいて、表示や動作を行う3次元モデルを特定する。具体的には、
図13に示すマーカー管理テーブル1300を用いて特定する。マーカー情報からマーカー識別番号1301、マーカー種別1302、マーカー位置1303等を特定し、当該情報が含まれるレコードの表示モデル1304を特定するようにすればよい。
【0093】
マーカー管理テーブル1300は、MR処理装置102に記憶されており、マーカー識別番号1301、マーカー種別1302、マーカー位置1303、表示モデル1304かから構成されている。マーカー識別番号1301は、マーカーごとに一意に割り振られた識別番号である。マーカー種別1302は、当該マーカーが設置された場所やマーカーが表示する3次元モデルの種別を示す情報である。マーカー位置1303は、当該マーカーが設置された位置を示す情報である。表示モデル1304は、表示や動作を行う3次元モデルが格納されている。表示モデル1304は、3次元モデルが格納されていてもよいし、動作指示内容が格納されていてもよい。
【0094】
ステップS303では、MR処理装置102は、MR処理装置102と通信可能に接続されたHMD103の設定内容の取得要求をMR管理サーバ101に対して行う。つまり、月・時間帯といった3次元モデルを設定するための情報の取得要求を行う。
【0095】
ステップS304では、MR管理サーバ101は、ステップS303でMR処理装置102から送信された設定内容の取得要求を受信する。
【0096】
ステップS305では、MR管理サーバ101は、設定内容取得要求を送信してきたMR処理装置102と通信可能に接続されたHMD103の各種設定内容を取得する(設定情報取得手段)。具体的には、HMD管理テーブル720から当該HMD103の月725や時間帯726を取得する。
【0097】
ステップS306では、MR管理サーバ101は、ステップS305で取得した設定内容を、設定内容取得要求を送信してきたMR処理装置102に対して送信する。
【0098】
ステップS307では、MR処理装置102は、ステップS306でMR管理サーバ101から送信された設定内容を受信する。
【0099】
ステップS308では、MR処理装置102は、ステップS307で受信した設定内容に基づいて、ステップS302で特定された3次元モデルの表示形態を設定する(3次元モデル設定手段)。例えば、月・時間帯の情報があるなら、前述した通り太陽方位テーブル710から光源の方位角713と高度714を取得して3次元モデルに対して光源を設定する。または、設定内容にマスク処理があるならマスク処理を施す。このようにして、3次元モデルを設定したり動作内容を設定することで、前述したようにHMD103に設定した内容を表示させる。
【0100】
以上説明したように、本実施形態によれば、複合現実感を提示する装置に表示する3次元モデルの表示指示がなされると、あらかじめ設定された視点の情報を取得し、当該視点の情報に基づいて表示する3次元モデルの表示位置を決定することができるので、柔軟な景観表示を行うことができる効果を奏する。
【0101】
次に、本発明の第2の実施形態について説明を行う。
【0102】
第2の実施形態では、MRシステムによって仮想世界を表示するモデルルームの室内に表示される3次元モデルも、設定された光源の影響を受けるようにする。特に、近隣に高層ビルが建っていたり、同じマンションの別の棟が隣に建っていたりする場合がある。この場合には、光源(太陽光)の位置によっては、これらの建築物が邪魔をして、部屋の内部が影で暗くなってしまう階や部屋が出てきてしまう。通常のマンションギャラリーは、マンションが建築される場所とは異なる場所で開催される上、階層までは再現できないため、近隣の建築物によって日照に影響を受けるかどうかまではわからない。更に、日照に影響があるかどうかは、階数や部屋の位置によって、大きく異なってくる。階が高ければ、近隣の建築物によって太陽光が遮られることは少ないが、階が低いと、近隣の建築物によって太陽光が遮られることが多い。また、太陽光の位置によっても日照に影響があるかどうかが変わってくる。これらの問題を受けて第2の実施形態では、日照に影響を受ける建築物を考慮することで、MRシステムを用いてユーザに日照時間や日照状況を認識させる仕組みを説明する。
【0103】
また、第2の実施形態では、室内に入り込む太陽光を現実の物体を動かすことで制御する仕組みについても説明する。例えば、現実の窓に設置された現実のカーテンを動かすことで、仮想的な太陽光を室内の3次元モデルに反映するか否かを制御する。こうすることで、よりリアリティのある仮想世界を提供することができる。以下、これらの説明を行う。
【0104】
尚、第2の実施形態のシステムの構成、ハードウェアの構成、モジュールの構成は前述した実施形態と同様であるので、説明は省略する。
【0105】
次に、本発明の実施例におけるMR管理サーバ101、MR処理装置102、MR設定端末104によって行われる一連の処理について、
図14に示すフローチャートを用いて説明する。尚、S101乃至S104の各ステップはMR設定端末104におけるCPU201の制御の下、処理が行われる。また、S105乃至S108の各ステップはMR管理サーバ101におけるCPU201の制御の下、処理が行われる。また、S109乃至S113、S401乃至S406の各ステップはMR処理装置102におけるCPU201の制御の下、処理が行われる。
【0106】
尚、この処理をMR管理サーバ101、MR処理装置102、MR設定端末104に実行させるためのプログラムは、MR管理サーバ101、MR処理装置102、MR設定端末104にインストールされているアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、アプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【0107】
図14のステップS101乃至ステップS113の各処理は、前述した
図5のステップS101乃至ステップS113の各処理と同様であるので説明は省略する。
【0108】
ステップS401では、MR処理装置102は、ステップS113で取得した太陽方位に基づいて、ステップS110で取得した3次元モデル、つまり仮想世界に対して光源(太陽光)を設定する(光源決定手段)。太陽光の強さや色合いは、レイリー散乱やミー散乱を考慮して決定する。
【0109】
そして、ステップS402では、MR処理装置102は、ステップS101でMRシステム設定画面600に入力を受け付けた部屋番号が示す部屋の日照に影響を与える仮想世界の建築物を特定する(3次元モデル特定手段)。例えば、
図15の1500に示すように、仮想世界にはマンション1501と建築物1502が設置されており、ステップS401で設定された光源、つまり太陽光1503が設定されている。ここでいうマンション1501は、ユーザがMRシステムを使って体感するモデルルームのマンションである。建築物1502は、3次元モデルで表現された、近隣の建築物である。
【0110】
ステップS401で設定された太陽光1503により、太陽光が照射された場合、1510のように建築物1502によって影1504が発生する。影1504が発生する範囲については、太陽光1503の位置と建築物1502との位置に応じて、従来技術を用いてその範囲を算出する。1510の図は、1500の図を右側面から見た図である。この発生した影1504によって影響を受けるマンション1501の箇所が1505である。つまり、この1505が示す範囲の高さにある部屋(部屋番号)をユーザが指定していた場合には、その部屋は建築物1502によって日照に影響を受けてしまう。つまり、ステップS402では、この建築物1502を日照に影響を受ける建築物と特定する。
【0111】
ステップS403では、MR処理装置102は、ステップS401で設定された光源の位置と、ステップS402で特定された建築物とに基づいて、ユーザから指定された部屋番号が示す部屋に入る日照角度とその日照の量を算出する。そして、ステップS404では、MR処理装置102は、ステップS110で読み込んだ3次元モデル、つまり仮想世界情報に対して、ステップS403で算出された日照角度やその日照の量を反映する(影反映手段)。これにより、仮想世界に設置された各種3次元モデルに陰影がつく。3次元モデルに対して色の変化を行わせるためには、レイトレーシング等の従来技術を用いることにより、実現する。
【0112】
ステップS405では、MR処理装置102は、現実世界のモデルルームに設置された窓の部分にマスクオブジェクトを設定する(マスクオブジェクト設定手段)。マスクオブジェクトは、仮想世界の3次元モデルが重なっていても、現実世界の物体をユーザに閲覧可能に表示させるためのオブジェクトである。このマスクオブジェクトが設置された場所は、仮想世界の3次元モデルではなく、現実世界の物体が見える。つまり、このマスクオブジェクトを窓の部分に設定すれば、仮想世界であっても現実の窓が見えるようになる。要は、PhotoShop(登録商標)等の画像処理ソフトウェアに搭載されているマスク機能と同様の仕組みである。本実施形態では、窓とカーテンを含むようにマスクオブジェクトを設置する。
図16の1600は、窓とカーテンにマスクオブジェクトが設置された様子を示す図である。マスクオブジェクト自体は、無色透明であるため、ユーザからは認識できない。しかし、現実世界の窓とカーテンを含むようにマスクオブジェクトが設定されているので、ユーザはHMDを通して仮想世界を閲覧したとしても、マスクオブジェクトが設定されている場所は現実世界の窓とカーテンが見える。
【0113】
ステップS406では、MR処理装置102は、ステップS405で設定されたマスクオブジェクトの特性を設定する。ここでいうマスクオブジェクトの特性とは、ステップS401で設定された光源が発する光を通すか否かを示すものである。つまり、マスクオブジェクトの特性を「透過」とすれば、そのマスクオブジェクトに対して照射された光は、マスクオブジェクトを通過する。一方、マスクオブジェクトの特性を「遮光」とすれば、そのマスクオブジェクトに対して照射された光は、マスクオブジェクトを通過しない。マスクオブジェクト自体は仮想世界ではユーザから見えないオブジェクトであるが、光源が発する光を通すか否かを設定できる。ステップS406では、このマスクオブジェクトの特性を「遮光」としておく。以上で、仮想世界情報の準備は完了である。
【0114】
次に、本発明の実施例におけるHMD103とMR処理装置102によって行われる一連の処理について、
図17に示すフローチャートを用いて説明する。尚、S501、S505乃至S508、S514、S515、S520、S521の各ステップはHMD103におけるCPU201の制御の下、処理が行われる。また、S502乃至S504、S509乃至S513、S516乃至S519の各ステップはMR処理装置102におけるCPU201の制御の下、処理が行われる。
【0115】
尚、この処理をHMD103とMR処理装置102に実行させるためのプログラムは、HMD103とMR処理装置102にインストールされているアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、アプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【0116】
ステップS501では、HMD103は、HMD103の右目・左目ビデオカメラ309で撮影された現実世界の映像(撮影映像)をMR処理装置102に送信する(撮影映像送信手段)。
【0117】
ステップS502では、MR処理装置102は、HMD103から送信された撮影映像を受信し(撮影映像受信手段)、ステップS503では、受信した撮影映像からHMD103の位置や姿勢を特定し(位置姿勢特定手段)、前述した
図14のフローチャートで生成された仮想世界情報と、特定した位置や姿勢の情報と、撮影映像とからHMD103に映し出す仮想世界情報(重畳映像)を生成する(重畳映像生成手段)。つまり、HMD103で撮影された撮影映像に基づいて、現実世界の「どこで」「どちらを」見ているのかを特定し、その特定された位置と方向に基づいて仮想世界の視点位置を変更する(視点設定手段)。そして、変更された視点位置から見た仮想世界情報と、受信した撮影映像とを重ね合わせて、HMD103に送信するための映像、つまり重畳映像を生成する。HMD103の位置や姿勢を特定する方法は従来技術を用いるものとする。例えば、現実世界に位置や姿勢を特定するためのマーカーを貼りつけておき、そのマーカーの種類や位置、形状等からHMD103の位置や姿勢を特定してもよいし、HMD103に備えられた位置センサ307によって位置や姿勢を特定してもよい。または、HMD103を撮影するカメラを部屋に設置しておき、当該カメラの映像からHMD103の位置や姿勢を特定してもよい。HMD103の位置や姿勢の特定方法はこれに限らない。ステップS504では、MR処理装置102は、ステップS503で生成された重畳映像をHMD103に送信する(重畳映像送信手段)。ステップS505では、HMD103は、MR処理装置102から送信された重畳映像を受信する(重畳映像受信手段)。
【0118】
ステップS506では、HMD103は、ステップS505で受信した重畳映像をHMD103の右目・左目ディスプレイ310に表示させる(表示手段)。つまり、ユーザから入力された各種設定に応じて生成された仮想世界情報をユーザに体感させる。尚、HMD103の位置や姿勢は随時変化するので、前述したステップS501乃至ステップS506は常に繰り返されて、重畳映像が更新される。
【0119】
ステップS507では、HMD103は、MRシステムの終了指示がなされたか否かを判定する。HMD103の電源が落とされたことを終了指示とみなしてもよいし、HMD103にMRシステムを終了するボタンが備えられていてもよい。また、MR処理装置102の画面で終了指示がなされたことで終了とみなしてもよい。終了指示がなされたと判定された場合には、本一連の処理を終了する。終了指示がなされていない場合には、ステップS508に処理を進める。
【0120】
ステップS508では、HMD103は、
図16に示すようなカーテン1601がユーザによって開けられたか、または閉じられたかを判定するべく、HMD103の右目・左目ビデオカメラ309で撮像された映像をMR処理装置102に送信する。
【0121】
ステップS509では、MR処理装置102は、HMD103から送信された撮像映像を受信する。そして、ステップS510では、MR処理装置102は、受信した撮像映像を解析し、その解析の結果、ユーザによってカーテン1601が開けられたかを判定する。本実施形態では、撮像された映像を解析することにより、カーテン1601の開閉を判定するが、これに限らない。例えば、カーテン1601のカーテンレールにセンサを設けておき、このセンサが動作することにより、カーテン1601の開閉を判定してもよい。または、カーテンの裏の窓に特定のマーカーを設置しておき、当該マーカーが撮像されたとMR処理装置102が判定したらカーテン1601が開けられたと判定してもよい。カーテン1601の開閉状況の判定はこれに限らない。ユーザによってカーテン1601が開けられたと判定された場合には、ステップS511に処理を進め、そうでない場合、つまりカーテンの状況に変化がないか、カーテンが閉じられた場合には、ステップS517に処理を進める。
【0122】
ステップS511では、MR処理装置102は、開けられたカーテン1601に対して前述したステップS405で設定されたマスクオブジェクトの特性を「遮光」から「透過」に変更する。つまり、光源から発した光を当該マスクオブジェクトが通過するように変更する。こうすることで、カーテン1601を閉じている状態では、マスクオブジェクトが光を通さないので、光源からの光を室内に通さない役割を果たすが、カーテン1601が開けられた場合には、このマスクオブジェクトが光を通すようになるので、光源からの光を室内に通す。つまり、カーテンの開閉動作に応じて、光源の光を通すか否かを制御することが可能となる。このように、現実の物体を動作させることで、仮想世界の情報を変更し、よりリアリティあふれる拡張現実感をユーザに提示することが可能となる。
【0123】
ステップS512では、MR処理装置102は、ステップS511で変更された内容を反映した仮想世界情報を再生成する。すでにステップS503において仮想世界情報は生成されているので、ステップS511の変更内容を反映させればよい。その変更が反映された仮想世界情報と受信したS509の映像とを重畳させて重畳映像を生成する。そして、ステップS513では、MR処理装置102は、ステップS512で生成された重畳映像をHMD103に表示させるべく、当該重畳映像をHMD103に送信する。
【0124】
ステップS514では、HMD103では、MR処理装置102から送信された重畳映像を受信し、ステップS515では、受信した重畳映像をHMD103の右目・左目ディスプレイ310に表示させる。つまり、
図16の1600に示すようにカーテン1601が閉まっている状態から、1610に示すようにカーテン1601が開けられた場合には、マスクオブジェクト1602の特性を「遮光」から「透過」に変更する。すると、マスクオブジェクト1603が窓の外に設定された光源からの光(太陽光)を通過させるようになり、部屋の内部の3次元モデルの色が変更される。つまり、部屋の床だったら1604に示すような範囲に対して光が当たっている場合をシミュレーションして、色を変化させる。ここで例えば、前述したように建築物が建っており、光源の角度からちょうどその建築物の影に隠れてしまう部屋だった場合には、ステップS403で算出された日照の量を反映した色で室内の3次元モデルの色を変更する。ステップS515の処理が終了したら、ステップS501に処理を戻して、HMD103の位置姿勢の更新に応じた重畳映像の生成を繰り返し行う。
【0125】
一方、ステップS510でカーテンが開けられたと判定できなかった場合、ステップS516では、MR処理装置102は、ステップS509で受信した映像を解析した結果、ユーザによってカーテン1601が閉じられたかを判定する。カーテン1601が閉じられたかどうかを判定する方法は、前述したステップS510のカーテン1601が開けられたかを確認する方法と同様であるので、説明を省略する。カーテン1601が閉じられたと判定された場合には、ステップS517に処理を進め、そうでない場合には、ステップS501に処理を戻す。つまり、カーテン1601には何も変化がないとみなし、HMD103の位置姿勢による重畳映像の更新を行う。
【0126】
ステップS517では、MR処理装置102は、閉じられたカーテン1601に対して前述したステップS511で変更されたマスクオブジェクトの特性を「透過」から「遮光」に変更する。つまり、光源から発した光を当該マスクオブジェクトが通過しないように変更する。要は、現実世界のカーテン1601は閉じられたのだから、室内にある3次元モデルが仮想世界に設定された光源の光の影響を受けてしまうと、現実的でない。そのため、カーテン1601が閉じられた場合には、当該カーテン1601に設定されたマスクオブジェクトが仮想世界に設定された光源からの光を遮断するように変更している。
【0127】
ステップS518では、MR処理装置102は、ステップS517で変更された内容を反映した仮想世界情報を再生成する。すでにステップS503において仮想世界情報は生成されているので、ステップS517の変更内容を反映させればよい。そして、ステップS512と同様にステップS509で受信した映像と重ね合わせて重畳映像を生成する。ステップS519では、MR処理装置102は、ステップS518で生成された重畳映像をHMD103に表示させるべく、当該重畳映像をHMD103に送信する。
【0128】
ステップS520では、HMD103では、MR処理装置102から送信された重畳映像を受信し、ステップS521では、受信した重畳映像をHMD103の右目・左目ディスプレイ310に表示させる。つまり、
図16に示す1610に示す状態から1600に示す状態に戻ることになる。マスクオブジェクト1603がマスクオブジェクト1602に示すように特性が「遮光」となるので、仮想世界に設定された光源からの光を遮断する。その結果、1604に示すように床の色が変わっていたが、光源からの光を反映していない色に変更される。つまり、ステップS404で生成された当初の色に戻る。ステップS521が終了したらステップS501に処理を戻す。
【0129】
このように、MRシステムを用いて仮想的なマンションの部屋を体感する際に、光源の位置によって部屋の外部にある仮想的な建築物の影の影響を受けてしまう場合には、その影響を考慮して部屋の内部の3次元モデルの色を変更することで、日照も考慮したシミュレーションを行える。また、現実のカーテン等が開かれることで仮想世界に設定された光源の光を部屋の内部に反映するべく、当該カーテン等に設定されたマスクオブジェクトを光が通過するように変更する。そして、現実のカーテン等が閉じられた場合には、当該マスクオブジェクトを光が通過しないように変更する。こうすることで、現実の物体の動作に応じて、仮想世界に設定された光源の光を通す/通さないを制御できるので、現実世界と仮想世界を複合させたよりリアリティのあるシミュレーションを行える。
【0130】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
【0131】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【0132】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0133】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
【0134】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
【0135】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【0136】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0137】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0138】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0139】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【0140】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。