以下、本発明の各実施の形態について図面を参照して詳細に説明する。以下の説明において同一の符号が付された部分は実質的に同一の機能を有している。また、発明の明確化のため重複部分は適宜説明が省略されている。
<実施形態1>
図1は本発明の実施形態1に係る仮想現実提示システム1000の構成を示すブロック図である。仮想現実提示システム1000は、ユーザ状態検知部1010と、提示可能仮想現実度算出部1020と、映像生成処理部1030と、映像表示部1040とを備える。
ユーザ状態検知部1010は、当該仮想現実提示システム1000からの仮想現実の提示を受けているユーザの状態を検知する。ユーザ状態検知部1010は、例えばユーザの加速度を検知する加速度センサや、ユーザの傾きを検知する傾きセンサ、ユーザの位置を検出するGPS受信機などで構成される。
提示可能仮想現実度算出部1020は、ユーザに提示可能な仮想現実の仮想現実度を算出する。ここで、仮想現実(VR:Vertual Reality)とは、コンピュータグラフィックス(CG:Computer
Graphics)や音響効果を組み合わせることで、人工的に創り出される現実感(リアリティー)のある世界を言う。仮想現実度は、ユーザが存在する現実の世界と、仮想現実提示システム1000が提示する仮想現実の世界との乖離度を示しており、実施形態1では0〜100のいずれかの値で示される。
映像生成処理部1030は、ユーザ状態検知部1010で検知されたユーザの状態に基づいて、提示可能仮想現実度算出部1020で算出された仮想現実度に収まるように仮想現実提示用の映像を生成する。
仮想現実提示用の映像とは、例えば仮想現実オブジェクトを含む映像である。仮想現実オブジェクトとは、人為的に設定される仮想的な空間である仮想空間に配置されることで、仮想現実の世界に表される仮想的な人物や建築物などを指す。当該仮想空間が、ユーザの周囲の現実の空間に対応するように設定されることで、ユーザに仮想現実の世界が提示される。
各種の仮想現実オブジェクトは、外観形状を規定する3Dポリゴンデータや、当該ポリゴンデータで形成される形状の表面に張り付けられるテキスチャーデータなどを含むモデルデータで構成される。また、仮想現実オブジェクトを動作させるための関節ポイントデータや骨格データ等を含む構成とするとより好ましい。関節ポイントデータとポリゴンデータの頂点とが関連付けされており、関節ポイントの位置や角度を変更することで、関連付けされているポリゴンデータの頂点の位置が変更されることになり、仮想現実オブジェクトの外観形状が変化する。また、テキスチャーデータも複数種類用意されており、各テキスチャーデータは識別番号で識別される。選択されたテキスチャーがポリゴン表面に張り付けられることで、仮想現実オブジェクトの映像が生成される。
映像生成処理部1030は、ユーザ状態検知部1010で検知されたユーザの状態に基づいて、現実の世界の景色と適合するように仮想現実提示用の映像を生成する。
映像表示部1040は、映像生成処理部1030で生成された仮想現実提示用の映像を表示する。
以上のように、本実施形態1に係る仮想現実提示システムによれば、ユーザに提示される仮想現実の世界における現実の世界との乖離度合を制御しながら仮想現実の世界を提示することで、自身が見ている景色は現実の世界の景色であるとユーザが錯覚した状態を維持することを特徴としている。従って、ユーザは、仮想現実の世界に入り込んで現実の世界では物理的・社会的に不可能な世界を体験することが可能となる。
なお、本実施形態1に係る仮想現実提示システム1000は、図2に示す構成とすると更に良好である。図2に示す仮想現実提示システム1000bは、仮想現実コンテンツ記憶部1050と、提示中仮想現実度算出部1060と、を更に備える。
仮想現実コンテンツ記憶部1050は、仮想現実コンテンツを記憶する。仮想現実コンテンツとは、仮想現実の世界を創り出すために使用されるデータ等の総称であり、少なくとも仮想現実オブジェクトの外観を規定するモデルデータを含む。当該モデルデータは、外観形状を規定するポリゴンデータや、外観形状表面に張り付けるテキスチャーデータなどから構成される。また、仮想現実コンテンツには、仮想現実の世界を創り出すために用いられる背景音楽データ、仮想現実オブジェクトが発する音声データ、仮想現実オブジェクトの挙動を制御する仮想現実オブジェクト挙動制御プログラム、仮想現実の世界の時間的変化(ストーリー性)を制御する仮想現実制御プログラムなどが含まれる。
提示中仮想現実度算出部1060は、現在提示中である仮想現実の世界に係る仮想現実度を算出する。例えば、提示中仮想現実度算出部1060は、映像生成処理部1030が生成する仮想現実提示用の映像として映し出される仮想現実オブジェクトの種類や、当該映像に含まれる仮想現実オブジェクトの数、当該仮想現実提示用の映像の情報量などに基づいて、現在提示中である仮想現実の世界の仮想現実度を算出する。
例えば、提示中仮想現実度算出部1060は、映像生成処理部1030が生成する仮想現実提示用の映像として映し出されている各仮想現実オブジェクトにそれぞれ割り当てられた仮想現実度の総和を取ることで現在提示中である仮想現実の世界の仮想現実度を算出する。
また、例えば、提示中仮想現実度算出部1060は、映像表示部140が備える表示領域(表示総画素数)に対して、映像生成処理部1030が生成する仮想現実提示用の映像の画素数の割合によって現在提示中の仮想現実の世界の仮想現実度を算出する。
提示可能仮想現実度算出部1020は、提示中仮想現実度算出部1060で算出された現在提示中の仮想現実の世界に係る仮想現実度を基準として、所定の値を加算・減算・乗算・除算する所定の計算式に基づいて提示可能な仮想現実の世界に係る仮想現実度を算出する。映像生成処理部1030は、生成する仮想現実提示用の映像の仮想現実度が、当該算出された提示可能な仮想現実の世界に係る仮想現実度以下となるように、仮想現実提示用の映像を生成する。
人間の脳は、緩やかな変化には鈍感であるという特徴がある。一部が異なる2つの画像を切り替えた場合に、人間はその違いを適切に認識することができるが、数十秒程度の時間をかけて緩やかに2つの画像を変化させていく場合は、その違いを認識することができないという特徴がある。
これは、生物の脳は、生存競争に生き残るために状況判断を行うことを特徴として進化してきたからである。人間は、五感、すなわち、味覚、触覚、視覚、聴覚、嗅覚を用いて外界で生じる事象を検知し、検知した情報を脳で処理して次の行動を行う生物である。人間の脳は、現在見聞きして感知している状況と、直近の過去に感知した状況との差分から状況判断をするように構成されている。従って、時間が経過するほど感知した周囲状況の細部が記憶から外れていくため、緩やかに変化させることで、最初の状況から大きな違いを生じていたとしても、その違いを人間の脳は適切に捕捉できないと言う特徴を有する。
言うまでもなく、人間は地球が誕生したから38億年に渡る長い生存競争の現代における最終勝者である。生存競争において最も大切なことは、次にどのように行動するかを適切に特定することであり、私達人間は地球上の生物の中で、私達人間が考えるよりも遥かにこの状況判断能力に特化してきた生物である。
状況判断において、10秒前の状況と1秒前の状況とでは、後者の方が圧倒的に重要な情報を持っている。その一方で、状況の時間的な移り変わりを適切に把握することも重要となる。そこで、人間の脳は、感知した情報の細部を時間と共に忘却し、その状況をコンセプトと言う形に情報圧縮して時系列変化に対応する。従って、仮想現実の世界についても時系列変化を緩やかにすることで、現在感知している仮想現実の世界に対する心理的障害を生ずることなく仮想現実の世界に入り込むことができる。このことは、およそ非現実的な夢を見ていながらも、夢を見ている当人にとってはその夢の世界が、現実の世界ではなく夢の世界であると認識できないと言うことと共通である。従って、本発明は、素晴らしい夢の世界の体験をよりリアルな現実の世界に重ねた仮想現実の世界として実現することが可能となる。
仮想現実提示システム1000bは、このような人間の脳が本質的に持つ特徴を利用している。すなわち、仮想現実度の高い世界であって現実の世界からの乖離が激しい仮想現実の世界をユーザに提示する場合においても、現実の世界から緩やかに変化させて仮想現実の世界を形作って行くことでユーザは自身が感知している世界が現実の世界から仮想現実の世界へ移っていることを認識させないようにすることを特徴としている。
すなわち、長い進化の過程を経て、現実の世界で起こり得る状況変化に適切に対応できるように進化した人間の脳に対して、その高い判断能力を生み出す原理の逆手を取って、ユーザの判断能力が適切に機能しないように仮想現実の世界を提示する。
現在提示中の仮想現実の世界に係る仮想現実度を基準として、当該提示中の仮想現実度から所定の差分を与えることで仮想現実度を現在提示可能な仮想現実度であるとして求める。そして、当該求めた提示可能な仮想現実度に収まる様に仮想現実提示用の映像を生成することで、ユーザが感知する世界は現実の世界から緩やかに仮想現実の世界へと移行していく。
当該仮想現実度に基づく制御が行われることで、一見すると現実的にはあり得ないように思われる仮想現実の世界であっても、現実の世界から仮想現実の世界への移行の不連続性を抑えることができる。従って、現実の世界における状況判断に特化した人間の脳の処理機構の盲点に入り込むことにより、顕在的な意識下において仮想現実の世界をバーチャルであるとユーザが認識することを妨げる効果を奏することができる。
また、本実施形態1に係る仮想現実提示システム1000は、図3に示す構成とすると更に良好である。図3に示す仮想現実提示システム1000cは、音声生成処理部1070と、音声出力部1080と、を更に備える。
音声生成処理部1070は、仮想現実コンテンツ記憶部1050より仮想現実提示用の音声データを読み出して、当該音声出力部1080より出力する仮想現実提示用の音声を生成する。より好ましくは、音声生成処理部1070は、ユーザ状態検知部1010で検知されたユーザの状態に基づいて、提示可能仮想現実度算出部1020で算出された仮想現実度に収まるように仮想現実提示用の音声を生成する。
例えば、音声生成処理部1070は、仮想現実コンテンツ記憶部1050より読み出した仮想現実提示用の音声データを、ユーザ状態検知部1010で検知されたユーザ状態に基づいて、複数のチャンネルの音声データに分配する。
音声出力部1080は、音声生成処理部1070で生成された音声を出力する。音声出力部1080は、具体的には複数チャンネルを有するスピーカであり、音声生成処理部1070で生成された各チャンネルのデジタル音声信号にDA変換処理を行ってアナログ音声信号に変換し、空気振動に変換して外部へ放音する。
仮想現実提示用の映像とリンクする形で仮想現実提示用の音声が出力されることで、ユーザが外界の状況を感知する視覚と聴覚の両方に対して錯覚を起こさせることで、ユーザが容易に仮想現実の世界に入り込むことを可能とする。
なお、提示可能仮想現実度算出部1020や提示中仮想現実度算出部1060は、映像生成処理部1030が生成する仮想現実提示用の映像と音声生成処理部1070が生成する仮想現実提示用の音声のそれぞれに仮想現実度を割り当てても良いし、両方を纏めて仮想現実度を割り当てても良い。
例えば、提示可能仮想現実度算出部1020は、提示可能な仮想現実提示用の映像に係る仮想現実度に対して仮想現実度70を割り当て、提示可能な仮想現実提示用の音声に係る仮想現実度に対して仮想現実度20を割り当てる。映像生成処理部1030は、生成する映像に係る仮想現実度が70以下となるように仮想現実提示用の映像を生成し、音声生成処理部1070は、生成する音声に係る仮想現実度が20以下となるように、仮想現実提示用の音声を生成する。
また、例えば、提示可能仮想現実度算出部1020は、提示可能な仮想現実の世界に係る仮想現実度として纏めて仮想現実度80を割り当てる。映像生成処理部1030と音声生成処理部1070は、これら2つの生成部で生成される仮想現実提示用の映像と音声で形作られる仮想現実の世界の仮想現実度が80以下となるように、仮想現実用の映像や音声をそれぞれ生成する。
図4は、当該仮想現実度を纏めて割り当てる場合における仮想現実提示システムの構成を示すブロック図である。仮想現実提示システム1000dは、ユーザ状態検知部1010と、提示可能仮想現実度算出部1020と、提示中仮想現実度算出部1060と、仮想現実提示用データ生成処理部1090と、仮想現実提示部1100とを備える。
仮想現実提示用データ生成処理部1090は、映像生成処理部1030と音声生成処理部1070とを備える。仮想現実提示用データ生成処理部1090は、仮想現実提示部1100で提示される仮想現実の世界に係る仮想現実度が、提示可能仮想現実度算出部1020で算出された提示可能な仮想現実の世界に係る仮想現実度に収まるように、仮想現実コンテンツ記憶部1050に記憶されている仮想現実コンテンツを読み出して、仮想現実提示用の映像や音声を生成する。
このように、提示可能仮想現実度算出部1020は、仮想現実提示用の映像データや音声データを生成する仮想現実提示用データ生成処理部1090に対して現在割当可能な仮想現実度を提示可能な仮想現実の世界に係る仮想現実度として算出する。
提示中仮想現実度算出部1060は、仮想現実提示用データ生成処理部1090で生成された仮想現実提示用のデータに基づいて、現在提示中の仮想現実の世界に係る仮想現実度を算出する。
仮想現実提示部1100は、仮想現実提示用データ生成処理部1090で生成された各種データを所定の出力形式で出力することで仮想現実の世界をユーザに提示する。仮想現実提示部1100は、映像表示部1040と、音声出力部1080とを備えるが、ユーザの触覚を錯覚させるように構成する場合は振動出力部などの別途機構が設けられていても良い。
また、提示される仮想現実の世界において映像と音声は連動していることが多いため、音声については仮想現実度を考慮せず、音声出力部1080は、仮想現実度を考慮して生成される仮想現実提示用の映像と関連付けられた音声を出力する構成としても良い。
なお、上述した仮想現実提示システム1000を構成する全ての機能が、ユーザが装着する仮想現実提示装置に備えられていても良いし、一部の機能が外部に設けられた情報処理サーバによって備えられていても良い。その場合、仮想現実提示装置と情報処理サーバは、通信部をそれぞれ備え、映像データやユーザ状態情報等の送受信を行う。
ユーザの状態を検知するユーザ状態検知手段と、
<実施形態2>
本発明は、ユーザに提示される仮想現実の世界について、仮想現実度と言う第1のパラメータを導入し、当該仮想現実度の時間変化が所定の値以内に収まる様に仮想現実の世界の提示を制御することで、自らが感知している世界がリアルではなくバーチャルであることをユーザが認識することを防いでいる。
ここで、仮想現実度の時間変化をどの程度急激に行うかが新たな問題となる。仮想現実提示システムに対する評価指標を考察した場合、未来都市や幻想都市と言った現実からより乖離した仮想現実の世界をユーザにそれがバーチャルであることを悟らせることなく提示できることがより優れた仮想現実提示システムとなる。
従って、可能ならば、仮想現実度0である現実の世界から始まって、できるだけ早く高い仮想現実度の仮想現実の世界をユーザに提示できることが好ましい。その一方で、仮想現実度の上昇比が大きすぎると、ユーザは感知している世界が現実の世界ではなくバーチャルである仮想現実の世界であることを認識してしまう可能性が高くなる。すなわち、ユーザが錯覚している仮想現実の世界が破断してしまう。
本実施形態2に係る仮想現実提示システムは、仮想現実度の時間変化を適切に管理することで、最適な仮想現実の世界をユーザに提示できることを特徴としている。
図5は、本実施形態2に係る仮想現実提示システム2000の構成を示すブロック図である。仮想現実提示システム2000は、ユーザ状態検知部1010と、映像生成処理部1020と、提示可能仮想現実度算出部1030と、映像表示部1040と、仮想現実コンテンツ記憶部1050と、提示中仮想現実度算出部1060と、錯覚度算出部2010と、を備える。
錯覚度算出部2010は、ユーザ状態検知部1010で検知されるユーザの状態に基づいて、当該ユーザの現在の錯覚度を算出する。ここで、錯覚度とは、ユーザが感知している仮想現実の世界を現実の世界であると錯覚している度合いを示す第2のパラメータである。
錯覚度は、0〜100のいずれかの値で示される。例えば、図1(b)の景色を見たユーザは、ソファーに座っているように表示されている犬が現実に当該ソファーに座っている犬であると信じて疑わない場合に、錯覚度は100となる。
一方、図1(c)の景色を見たユーザは、ソファーにライオンが座っていると言う日常からかけ離れた光景から、自身が見ている景色はバーチャルではないかと言う疑念を抱く。従って、ユーザは、自身が感知している世界が現実の世界であると完全に錯覚しているわけではなく、心のどこかで仮想現実の世界であると感じていることからユーザの錯覚度は100を下回り、例えば40程度となる。
ここで、ユーザの錯覚度は0にはならない。このことが仮想現実の世界を成り立たせる鍵である。この点について詳しく説明する。
私達人間の大人は、これまでの人生の中で過去の経験則に当てはまらない信じ難い経験と言うものを多少なりとも有している。「ウソだろ?」、「そんなバカな!」、「ありえない!」「マジで?」、「信じられない・・・」、「勘弁してくれよ・・・」、「最悪だ・・」「最高だ!」、と言った言葉を人生で発したことが無い大人はいないと断言しても過言ではない。これは、何を意味しているか。
私達人間は、自身の人生で培ったこれまでの経験知のデータベースを脳内に構築しており、視覚や聴覚を通じて感知する外界の状況をこれまでの経験知と比較するマッチング処理を行って現在自身が置かれている状況を把握している。
社会秩序の確立されたこの世界においては、人間が感知する状況は類似状況の繰り返しであり、そのような状況が経験知として脳内に刷り込まれていく。しかしながら、突発的にこれまで経験をしたこともない状況に置かれることがある。そのような場合に、人間は自身が現在感知している状況が、自身が脳内に構築している経験知と照合できない場合に上記言葉を思わず発することになる。
このように、人間の大人は、人生においては本能的に自身の常識や経験知とは整合しない、又は説明のつかない事象が自身に起こり得るということを経験則として知っている。このような場合に、自身の経験知と自身が感知している状況とが一致していないからと言って、思考を停止してしまっては、自身の生存競争に負けると言うことを人間は本能的に知っている。
例えば、山を歩いているときに巨大な熊と遭遇した場合、人間は「ウソだろ?勘弁してくれよ・・」と呟く。自身にそのような経験がなく、想定の範囲外だからである。しかしながら、そのような危機的な状況に対して人間の脳は、生存するために、イレギュラーな状況からの離脱に向けて様々な回避策を想起し、最善と思われる行動を取ろうとする。
このように、人間の大人は、非日常的な事象が起こり得ることを体験的に知っている。自身の経験知に当てはまらない状況に置かれていると言うことは、現在の状況に対する適切な対処方法を知っておらず、従って生存の危機レベルが上がっていることを意味している。生存競争に対して最も優れている私達人間は、この危機的な状況に対して、最悪なケースを想定して行動する思考回路を本質的に有している。
このことが、仮想現実の世界を体験しているユーザの錯覚度が0に落ちない理由となる。すなわち、仮想現実の世界とは現実の世界から乖離した世界であり、言わば非日常的な世界である。そのような世界を感知した場合に、例え自身が感知している現状が「ありえない」と思ったとしても、最悪のケースを想定して生存確率を高めようとする人間の本能が「信じ難い。でも、現実かもしれない。」と言う余地を残してくれる。だから仮想現実の世界が成り立つのである。
なお、上記説明では人間の大人の錯覚度が0に落ちない理由について説明したが、人間の子供にも錯覚度は0に落ちない理由がある。人間の子供は、自身が生存競争における弱者であることを本能的に理解している。また、経験知も積み重なっていないため、視覚や聴覚を通じて感知するものをそのまま捉える傾向がある。子供が目新しいことに対して素直なのはこのためである。
経験知のデータベースが構築できていないから、マッチング処理だけでは生存確率を上げられないことを本能的に理解しており、五感を通じて得られる情報を加工・歪曲することなくそのまま捉えて次の行動を取るという状況判断を行う。従って、仮想現実提示システムによって仮想現実の世界を提示する場合、自身の五感を信用して子供はそのまま見聞きしている世界をありのまま受け入れる。従って、錯覚度は大人の場合よりも高くなる。これが、私達人間は大人になった後よりも子供時代の方がゲームやテーマパーク、アニメーションと言ったものにより高い興味を示す理由である。ゲームやテーマパークが提示する刺激的な世界をありのまま受け入れるためである。
従って、図1(c)の景色を見た大人は、部屋の中にライオンがいるという非日常的な事象に疑いの念をどこかで抱きつつも、それが現実であった場合に自身が食い殺されると言うワーストケースに対してリスクヘッジを行う心理が働き、このライオンを完全には無視できない。すなわち、仮想現実の世界を現実の世界であると一部錯覚しており錯覚度は0ではない一定の数値がでる。子供は、自身が見る現在の景色をそのままに理解し、目の前にライオンがいると錯覚するため、こちらも錯覚度に0ではない一定の数値がでる。
本実施形態2に係る仮想現実提示システム2000において、錯覚度算出部2010は、ユーザ状態に基づいて錯覚度を算出している。ユーザが仮想現実の世界を錯覚している場合とそうでない場合とでは、ユーザの状態に差がでるため、当該ユーザの状態に基づいて当該ユーザの錯覚具合を推定し、錯覚度というパラメータの値を算出することが可能となる。
本実施形態2に係る仮想現実提示システム2000において、ユーザ状態検知部1010は、傾きセンサ1011と、加速度センサ1012と、方位センサ1013と、位置センサ1014と、内部カメラ1015と、脳波センサ1016と、血圧センサ1017と、脈拍センサ1018と、発汗センサ1019とを備える。
傾きセンサ1011は、仮想現実提示システム2000を構成する仮想現実提示装置を装着しているユーザの頭部の傾きを検知し、傾き情報を取得する。加速度センサ1012は、当該ユーザの頭に係る加速度を検知し、加速度情報を取得する。方位センサ1013は、ユーザの向いている方角を検出し、方位情報を取得する。方位センサ1013は、例えば電子コンパスを用いることが可能である。
位置センサ1014は、ユーザの現在位置を検出する。位置センサ1014としては、例えばGPS受信機を用いることが可能である。
内部カメラ1015は、ユーザの顔の一部又は全部を撮影してユーザ表情画像を取得する。
脳波センサ1016は、ユーザの脳波を検知する。脳波センサ1016は、ユーザの脳から放出されている脳波の種類、脳波の強さ、脳波の放出位置等を検知する。血圧センサ1017はユーザの血圧を測定する。脈拍センサ1018は、ユーザの心拍数を計測する。発汗センサ1019はユーザの発汗量を検出する。
脳波センサ1016、血圧センサ1017、脈拍センサ1018、発汗センサ1019は、ユーザの生体反応を検知するセンサ群であるため、以下の説明では生体反応センサと称することがある。生体反応センサには、ユーザの体温を測定する体温センサや呼吸頻度を検知する呼吸センサなど、他のセンサが含まれていても良い。
映像生成処理部1030は、傾きセンサ1011で取得される傾き情報、加速度センサ1012で取得される加速度情報、方位センサ1013で取得される方位情報などの情報を組み合わせてユーザの目の位置の変化及び視線方向の変化を特定し、当該特定した目の位置や視線方向に応じた仮想現実提示用の映像を生成する。映像生成処理部1030は提示可能仮想現実度算出部1020で算出された仮想現実度に収まるように仮想現実提示用の映像を生成する。映像表示部1040は、当該生成された仮想現実提示用の映像を表示する。
錯覚度算出部2010は、内部カメラ1015で撮影されるユーザの表情や生体反応センサで検知されるユーザの生体反応に基づいて、ユーザの現在の錯覚度を算出する。
例えば、錯覚度算出部2010は、内部カメラ1015で撮影される画像に基づいて特定されるユーザの視線方向が、映像表示部1040で表示されている仮想現実提示用の映像に向かっているかを特定する。例えば、仮想現実提示用の映像として仮想現実オブジェクトが映像表示部1040に表示されている場合において、内部カメラ1015で撮影される映像に基づいて特定されるユーザの視線方向が当該仮想現実オブジェクトを捕捉している割合を算出する。当該仮想現実オブジェクトを捕捉している割合が高いほどユーザの錯覚度が高いものとして、当該錯覚度を算出する。
また、例えば、仮想現実提示用の映像が表示された後に、脳波センサ1016で検知されるα波が増加傾向にある場合に錯覚度が高いものとして当該錯覚度を算出し、β波が増加傾向にある場合に、錯覚度が低いものとして当該錯覚度を算出する。
また、例えば、仮想現実提示用の映像が表示された後に、血圧センサ1017で検知される血圧の上昇、脈拍センサ1018で検知される心拍数の上昇、発汗センサ1019で検知される発汗量の増加、が継続して観測された場合に、ユーザは仮想現実の世界に対して興奮しており錯覚度が高いものとして、当該錯覚度を算出する。
なお、上述した算出方式は一例であって、ユーザの状態と錯覚度との関連性を導く算出式が適宜設定されていれば良い。例えば、上記錯覚度算出部2010は、ユーザ状態検知部1010に含まれるセンサのいくつかにおける検知結果を所定の算出式に代入することで錯覚度を算出する構成としても良い。
また、ユーザの移動やユーザに係る加速度や傾きの変化が大きいほど錯覚度が低くなるように当該錯覚度を算出しても良い。映像生成処理部1030はユーザの動きに連動して、仮想現実オブジェクトの位置が仮想現実の世界の中で移動しないように、表示位置を制御する。しかしながら、ユーザの移動が大きいと、当該制御にズレが生じてしまい、ユーザの目には仮想現実オブジェクトがスライドしたように見えてしまう場合がある。このような本来静止している物体が僅かであってもスライドすることは、現実の世界で起こり得る事象から外れるため、作られた映像ではないかという疑念を抱くきっかけとなる。そのため、ユーザが移動している場合や急激な加速度が加わる場合には、錯覚度算出部2010は、錯覚度を低く算出する構成としても良い。
また、ユーザ状態検知部1010として上述した各センサを全て備えている必要はなく、一部のセンサが備え付けられていても良いし、体温センサや振動センサなど他のセンサがユーザ状態検知部1010として備え付けられていても良い。
また、上述の各センサはユーザが装着する仮想現実提示装置に備え付けられていても良いし、仮想現実の提示を受けているユーザの周囲の壁面などに備え付けられていても良い。
提示可能仮想現実度算出部1020は、提示中仮想現実度算出部1060で算出された現在提示している仮想現実の世界に係る仮想現実度を基準として、錯覚度算出部2010で算出された錯覚度に基づいて決定される値を加算、減算、乗算、除算のいずれかを実行することで現在提示可能な仮想現実の世界に係る仮想現実度を算出する。
例えば、提示中仮想現実度算出部1060で算出された現在提示している仮想現実の世界に係る仮想現実度をX、錯覚度算出部2010で算出された現在のユーザの錯覚度をY、提示可能仮想現実度算出部1020が算出する現在提示可能な仮想現実の世界に係る仮想現実度をZとした場合に、提示可能仮想現実度算出部1020は、以下の数式1を用いてZを算出する。
(数式1)Z=X+(Y−50)/10
映像生成処理部1030は、提示可能仮想現実度算出部1020で算出された提示可能な仮想現実の世界に係る仮想現実度Zに収まる様に仮想現実提示用の映像を生成する。映像表示部1040は、当該生成された映像を表示する。
以上のように、本実施形態2に係る仮想現実提示システムによれば、ユーザの意識が仮想現実の世界から剥がれ落ちてしまわないように、ユーザの状態に応じながらユーザに提示される仮想現実の世界が適切に制御される。従って、長時間に渡ってユーザは仮想現実の世界を堪能できると共に、より現実の世界から乖離した魅力的な仮想現実の世界をユーザに提示することが可能となる。
なお、提示中の仮想現実の世界に係る仮想現実度や提供可能な仮想現実の世界に係る仮想現実度の算出は、リアルタイムに行う構成とせずに、所定の周期間隔で算出する構成としても良い。提示可能な仮想現実度が算出されると、映像生成処理部1030は、次の算出タイミングで新たに提示可能な仮想現実の世界に係る仮想現実度が算出されるまで、当該算出済みの最新の提示可能な仮想現実の世界に係る仮想現実度を用いて映像を生成する構成としても良い。
<実施形態3>
私達人間は、片方の目で外界の景色を網膜に写しこんで2次元映像を取得し、視差のある両方の目でそれぞれ取得した2次元映像を脳内で処理することで3次元空間を把握する。仮想現実提示装置は、この現実の世界である3次元空間に仮想的な物体や人物があたかも存在しているかのように映像を表示する必要がある。
図6は、本実施形態3に係る仮想現実提示システム3000の構成を示すブロック図である。仮想現実提示システム3000は、ユーザ状態検知部1010と、提示可能仮想現実度算出部1020と、映像生成処理部1030と、映像表示部1040と、仮想現実コンテンツ記憶部1050と、提示中仮想現実度算出部1060と、仮想現実提示制御部3010と、仮想空間生成処理部3020と、仮想現実オブジェクト配置処理部3030と、視点制御部3040と、を備える。映像生成処理部1030は、描画処理部1031を備える。
仮想現実提示制御部3010は、ユーザに対して仮想現実の提示を開始する処理や仮想現実の提示を終了する制御を行う。仮想現実提示制御部3010は、仮想現実の提示を開始すると決定した場合に、仮想現実生成処理部3020に当該提示する仮想現実用に新たな仮想空間の生成を指示する。また、仮想現実提示制御部3010は、当該提示する仮想現実に係る仮想現実オブジェクトの配置指示を出す。
仮想空間生成処理部3020は、仮想現実提示制御部3010から仮想空間生成指示を受けた場合に、仮想現実提示用の情報空間である仮想空間を生成する。具体的には、仮想空間生成処理部3020は、所定の広さを有する座標空間を仮想空間として生成する。
仮想現実オブジェクト配置処理部3030は、仮想現実提示制御部3010から仮想現実オブジェクト配置指示を受けた場合に、仮想現実コンテンツ記憶部1050より仮想現実オブジェクトを読み出して、仮想空間生成処理部3020が生成した仮想空間に配置する。仮想現実オブジェクト配置処理部3030は、提示可能仮想現実度算出部1020が算出した仮想現実度に収まる様に仮想現実オブジェクトを仮想現実コンテンツ記憶部1050から読み出して仮想空間に配置する。
仮想現実コンテンツ記憶部1050が記憶する各仮想現実オブジェクトには仮想現実度が割り当てられている。図7は、当該仮想現実オブジェクトと仮想現実度との対応関係を示す管理テーブルの一例である。各仮想現実オブジェクトは、一意に割り当てられている識別番号で識別され、各仮想現実オブジェクトに仮想現実度が割り当てられている。例えば、恐竜のティラノザウルスは現実の世界にいない存在なので、当該ティラノザウルスをモデル化した仮想現実オブジェクトには相対的に高い仮想現実度が付与されている。一方、柴犬は、現実の世界にもいる存在なので、相対的に低い仮想現実度が付与されている。
例えば、提示可能仮想現実度算出部3030において、算出された提示可能な仮想現実度が70であったとする。仮想現実オブジェクト配置処理部3030は、仮想現実コンテンツ記憶部1050に記憶されている仮想現実オブジェクトの中から合計が70以下となる様に仮想現実オブジェクトを読み出して仮想空間に配置する。
視点制御部3040は、ユーザ状態検知部1010で検知されたユーザの状態に基づいて、仮想空間生成処理部3020が生成した仮想空間において、ユーザの目の位置及び視線方向に対応する視点位置座標と視線方向とを制御する。視点制御部3040は、ユーザ状態検知部1010で検知されたユーザ頭部の傾きの変化や加速度の変化から、ユーザの目の位置及び視線方向に対応する視点位置座標と視線方向とをそれぞれ算出して更新する。
描画処理部1031は、仮想空間に配置されている仮想現実オブジェクトの映像を仮想現実提示用の映像として生成する。具体的には、描画処理部1031は、視点制御部3040で制御される仮想空間内に置かれる視点位置座標と視線方向に基づいて、当該仮想空間に配置されている仮想現実オブジェクトをイメージプレーンに投影する投影処理によって2次元映像を取得する。描画処理部1031は、投影後の映像を映像表示部1040における表示領域に合わせて切り取るクリッピング処理を行い、仮想現実オブジェクトの輝度を補正するシェーディング処理や仮想現実オブジェクトの表面にテキスチャーデータを貼り付けるテキスチャーマッピング処理、仮想現実オブジェクトの一部を隠す陰面処理などの各種処理を行うことで仮想現実提示用の映像を生成する。
映像表示部1040は、描画処理部1031で描画された仮想現実オブジェクトの映像を表示する。
以上のように、本実施形態3に係る仮想現実提示システムによれば、提示可能な仮想現実度に収まる様に仮想現実オブジェクトが選択されて仮想空間に配置され、当該配置されている仮想現実オブジェクトの映像が仮想現実提示用の映像として表示される。従って、ユーザが感知する仮想現実の世界と現実の世界との乖離を、仮想現実度と対応付けられた仮想現実オブジェクトを選択することで制御することができる。
なお、上記説明では仮想現実度算出部1020が算出する提示可能な仮想現実の世界に係る仮想現実度はユーザの状態に応じて変更される構成が好ましい。例えば、ユーザが激しく運動している場合、映像表示部1040で表示される仮想現実提示用の映像の表示制御が追随できず、ユーザが感知する現実の世界と人工的に創り出される仮想現実の世界との整合が取れなくなる可能性が高まる。すなわち、ユーザ状態検知部1010で検知されるユーザの状態変化に基づいて、視点制御部3040が視点位置座標及び視線方向を順次更新し、更新後の視点位置座標及び視線方向に基づいて仮想現実オブジェクトが描画されて映像が生成されるが、映像生成に要する処理時間の間にユーザの状態が大きく変化してしまうため、現在のユーザ状態に基づいていない映像が表示されてしまう可能性がある。
そこで、図8に示す仮想現実提示システム3000bのように、提示可能仮想現実度算出部1020は、ユーザ状態検知部1010で検知されるユーザの状態に基づいて、提示可能な仮想現実度を算出する構成とすることが好ましい。例えば、提示可能仮想現実度算出部1020は、ユーザ状態検知部1010で検知されるユーザの頭部に加わる加速度やユーザの移動速度等に基づいて、提示可能な仮想現実度を算出する。例えば、ユーザの頭部に加わる加速度が大きいほど相対的に低い仮想現実度が提示可能であると算出する。
また、例えば、提示可能仮想現実度算出部1020は、ユーザの脳波の強さに基づいて、脳が活発に機能してほど相対的に低い仮想現実度が提示可能であると算出する。脳の活動が停滞している場合の方が、仮想現実の世界と現実の世界との違いを認識する判断力が落ちているため、高い仮想現実の世界を提示することが可能であるためである。例えば、提示可能仮想現実度算出部1020は、脳波のうち、θ波やδ波が所定の閾値以上検知されている場合に、相対的に高い仮想現実度が提示可能であると算出する。
なお、どのように提示可能な仮想現実度を算出するかの算出式は、適宜選択して利用することが可能である。ユーザ毎に違いがあるため、当該算出式(算出方法)はユーザ毎に設定されていても良い。
また、実施形態2で説明した錯覚度と組み合わせて提示可能な仮想現実度を算出する構成とすると更に良好である。
なお、ユーザがどの様な仮想現実の世界を体験したいかは、ユーザ毎やユーザのその時の気分によって異なる。そこで、図9に示す仮想現実提示システム3000cの構成とすると更に良好である。図9に示す仮想現実提示システムは、仮想現実サービス要求入力部3050と、契約者情報記憶部3060とを備える。
仮想現実サービス要求入力部3050は、要求する仮想現実サービスを特定する情報を入力する。例えば、ユーザは自身が受けたい仮想現実サービスを仮想現実サービス要求入力部3050より入力する。ここで、仮想現実サービスとは、仮想現実の提示に係るサービスであって、仮想現実提示システム3000cがユーザに提供するサービスである。
契約者情報記憶部3060は、各ユーザの情報を纏めた契約者情報を記憶する。各ユーザは、仮想現実サービスの提供を受けるに当たり、予め仮想現実サービス提供業者と契約を結んでおり、当該契約内容が契約者情報に登録されている。
図10は、契約者情報の一部を示している。各ユーザが利用可能な仮想現実サービスが契約者情報に登録されている。
仮想現実サービス要求入力部3050より仮想現実サービスの要求が入力された場合に、仮想現実提示制御部3010は、契約者情報記憶部3060に記憶されている契約者情報を参照して、当該要求されている仮想現実サービスを当該ユーザに提供可能であるかを判定する。当該判定の結果、当該ユーザに対して要求されている仮想現実サービスの提供を行うと判定した場合に、仮想現実提示制御部3010は、仮想空間生成部3020と仮想現実オブジェクト配置部3030にそれぞれ対応する処理の開始指示を出す。
図11は、仮想現実提示システム3000cにおいて、仮想現実コンテンツ記憶部1050が記憶する仮想現実オブジェクトを管理する管理ファイルの一例である。各仮想現実サービスにおいて、それぞれ用いられる仮想現実オブジェクトが記憶されており、当該仮想現実オブジェクトに仮想現実度が関連付けられている。
仮想現実オブジェクト配置部3030は、仮想現実提示制御部3010からの指示された仮想現実サービスに関連付けられている仮想現実オブジェクトを、提示可能な仮想現実度の範囲内で読み出して仮想空間に配置する。
このように、ユーザが要求する仮想現実サービスについて、仮想現実度を制御しながらユーザに仮想現実の世界を提示することができる。
<実施形態4>
仮想現実提示システムは、物理的・社会的に制約がある現実の世界を拡張した仮想現実の世界をユーザに提示することでユーザの生活を豊かにすることを目的としている。ここで、ユーザは、現実の世界と共に表示される仮想現実提示用の映像の両方を視ることで仮想現実の世界を感知するため、現実の世界の景色と仮想現実提示用の映像の相性によって、仮想現実度が変化することが好ましい。
例えば、恐竜である仮想現実オブジェクトを仮想空間に配置して、当該恐竜の映像を表示する場合において、ユーザが自宅にいる場合に目の前に恐竜が現れた場合はおよそ現実の光景からかけ離れているため仮想現実度は高くなる。一方、ユーザが動物園にいる場合、ライオンの隣に恐竜が見えたとしても、比較的「あり得る光景」であるため、仮想現実度は相対的に低くなる。
このように、仮想現実提示システムが同一の映像を表示する場合であっても、ユーザが感じる仮想現実の世界の仮想現実度は周囲の状況に応じて異なってくることになる。そのため、仮想現実度を制御しながら仮想現実の世界を提示する場合には、当該ユーザの周囲環境に応じて仮想現実提示用の映像や音楽が決定されることが好ましいことになる。
図12は、本実施形態4に係る仮想現実提示システム4000の構成を示すブロック図である。仮想現実提示システム4000は、ユーザ状態検知部1010と、提示可能仮想現実度算出部1020と、映像生成処理部1030と、映像表示部1040と、仮想現実コンテンツ記憶部1050と、提示中仮想現実度算出部1060と、仮想現実提示制御部3010と、仮想空間生成処理部3020と、仮想現実オブジェクト配置処理部3030と、視点制御部3040と、周囲状況検知部4010と、周囲状況特定部4020と、を備える。
周囲状況検知部4010は、ユーザの周囲の状況を検知する。周囲状況検知部4010は、例えば、ユーザの周囲の景色を撮影するカメラで構成され、当該カメラでユーザの周囲を撮影することでユーザの周囲の状況を検知する。
周囲状況特定部4020は、周囲状況検知部4010における検知結果に基づいて、ユーザの周囲の状況を特定する。具体的には、周囲状況特定部4020は、ユーザの周囲の状況を予め登録された複数の分類のいずれかであるとして特定する。ユーザの周囲の状況の候補として「自宅内」「屋外」「公園」「駅」「トイレ」「一人」「道路」「動物園」「テーマパーク」「浜辺」「山中」「プール」「都会」「田舎」などが予め登録されており、周囲状況特定部4020は、周囲状況検知部4010における検知結果と、これらの登録されている状況との相関値を求めることで、相関値が最も高かった状況が現在のユーザの周囲状況であると特定する。
仮想現実コンテンツ記憶部1050は、仮想現実オブジェクトを、状況別に仮想現実度と関連付けて記憶する。図13は、当該仮想現実オブジェクトと、状況別の仮想現実度との関連付けを示す管理ファイルの一例である。仮想現実オブジェクトは、状況別に仮想現実度と関連付けられている。
例えばV0003で識別される仮想現実オブジェクトは、空想上の生物であるブルードラゴンをモデリングした仮想現実オブジェクトである。恐竜に似た空想上の生物であるため、自宅内にいるよりは、野外にいている方が「あり得る」ため仮想現実度は低く、中でも公園や動物園にいている方がより「あり得る」ため、仮想現実度は更に低く設定されている。
仮想現実オブジェクト配置部3030は、提示可能仮想現実度算出部1020で算出された仮想現実度に収まる様に仮想現実コンテンツ記憶部1050より仮想現実オブジェクトを読み出して仮想空間に配置する。ここで、仮想現実オブジェクト配置部3030は、配置する仮想現実オブジェクトに関連付けられた仮想現実度であって、周囲状況特定部4020で特定されたユーザの周囲の状況に関連付けられている仮想現実度の合計が上記提示可能な仮想現実度を超えないように仮想現実オブジェクトを選択する。
以上のように本実施形態4に係る仮想現実提示システムによれば、ユーザの周囲の状況に応じて適切な仮想現実オブジェクトが選択されて仮想空間に配置されるため、現実の世界に溶け込むように仮想現実オブジェクトが感知される。従って、ユーザは仮想現実の世界に入り込みやすくなる。
なお、本実施形態4に係る仮想現実提示システムは、図14に示す構成とすると更に良好である。仮想現実提示システム4000bは、ユーザ状態検知部1010と、提示可能仮想現実度算出部1020と、映像生成処理部1030と、映像表示部1040と、仮想現実コンテンツ記憶部1050と、提示中仮想現実度算出部1060と、音声生成処理部1070と、音声出力部1080と、仮想現実提示制御部3010と、仮想空間生成処理部3020と、仮想現実オブジェクト配置処理部3030と、視点制御部3040と、周囲状況検知部4010と、周囲状況特定部4020と、画像解析処理部4030と、光源制御部4040と、モデルデータ配置処理部4050と、を備える。
周囲状況検知部4010は、ユーザの前方を撮影して前方景色画像を取得する前方カメラ4011と、ユーザの両側や後方などユーザの周辺を撮影して周辺景色画像を取得する周辺カメラ4012などから構成される。
画像解析処理部4030は、周囲状況検知部4010が備える前方カメラ4011や周辺カメラ4012で撮影された画像を解析して所定のパラメータを抽出する。具体的に、画像解析処理部4030は、物体特定処理部4031と、光学成分抽出処理部4032と、物体識別処理部4033と、モデルデータ生成処理部4034と、を備える。
物体特定処理部4031は、前方カメラ4011で取得された前方景色画像や周辺カメラ4012で取得された周辺景色画像に写る物体を特定する。具体的には、物体特定処理部4031は、これらの画像の隣接画素を比較することで、当該画像に写る各物体の境界を特定する境界特定処理を行い、画像に含まれている複数の物体を特定する。
光学成分抽出処理部4032は、前方カメラ4011で取得された前方景色画像や周辺カメラ4012で取得された周辺景色画像に基づいてユーザの周囲の明るさ(照度)や光源の位置に関する情報を抽出する。
物体識別処理部4033は、物体特定処理部4031で特定された物体が何であるかを識別する。例えば、物体識別処理部4033は、データベースに記憶されている各物体の画像と、物体特定処理部4031で特定された各物体とのマッチング処理を行うことで、ユーザ状態検知部4010で撮影された画像に含まれる物体が何であるのかを特定する。
モデルデータ生成処理部4034は、物体特定処理部4031で特定された各物体の外観形状を規定するモデルデータを生成する。モデルデータ生成処理部4034は、複数のカメラでそれぞれ撮影された画像に含まれる同一物体の位置差分に基づいて、ユーザの周囲に存在する各物体を3Dポリゴンでモデル化するで当該モデルデータを生成する。
周囲状況特定部4020は、物体識別処理部4033で識別されたユーザの周囲に存在する物体に基づいて、ユーザの周囲の状況がどのような状況であるかを特定する。周囲状況特定部4020は、例えば、周囲状況特定部4020は、図15に示すような周囲状況と、当該状況に関連する物体との対応関係を纏めた管理ファイルを記憶している。周囲状況特定部4020は、当該管理ファイルを参照し、物体識別処理部4033で識別された物体が最も多く含まれる状況を、当該ユーザの周囲の状況であると特定する。
光源制御部4040は、光学成分抽出部4032で抽出された光源の位置や照度に関する情報に基づいて、仮想空間生成処理部3020が生成している仮想空間内における光源の位置や照度を制御する。
モデルデータ配置処理部4050は、モデルデータ生成処理部4034で生成されたユーザの周囲に存在する物体や人物などのモデルデータを仮想空間生成部3020が生成している仮想空間に配置する。ここで、モデルデータ配置処理部4050は、仮想現実オブジェクト配置処理部3030が仮想現実オブジェクトを配置する仮想空間とは異なるレイヤーに当該モデルデータを配置することがより好ましい。
すなわち、仮想空間生成処理部3020は、仮想現実オブジェクト配置用の第1レイヤーと現実の物体のモデルデータ配置用の第2レイヤーの複数レイヤーの仮想空間を生成する。仮想現実オブジェクト配置処理部3030は、仮想現実コンテンツ記憶部1050より読み出した仮想現実オブジェクトを仮想空間の第1レイヤーに配置し、モデルデータ配置処理部4050は、モデルデータ生成処理部4034で生成された現実の世界の物体のモデルデータを第2レイヤーに配置する。このように、異なるレイヤーに配置しておくことで、後続の描画処理における陰面処理を簡易化できる。
描画処理部1031は、仮想空間の第1レイヤーに配置されている仮想現実オブジェクトを描画することで、仮想現実提示用の映像を生成する。具体的に、描画処理部1031は、視点制御部3040で制御される視点位置及び視線方向に基づいて仮想空間の第1レイヤーに配置されている仮想現実をイメージプレーンに投影することで、仮想現実オブジェクトの2次元画像を取得する。
同様に、描画処理部1031は、仮想空間の第2レイヤーに配置されている現実の物体のモデルデータを第1レイヤーの投影処理に用いる視点位置及び視線方向に基づいて上記イメージプレーンに投影することで、現実の物体の投影画像を生成する。描画処理部1031は、仮想現実オブジェクトの2次元画像のうち、上記現実の物体の投影画像であって、仮想現実オブジェクトよりもユーザ側に位置する物体の投影画像で隠す陰面処理を行う。
続いて、描画処理部1031は、映像表示部1040に対応する解像度に合わせて上記投影処理で得られた2次元画像を所定の大きさに切り取るクリッピング処理を行う。
続いて、描画処理部1031は、仮想現実オブジェクトの2次元画像にテキスチャーを貼り付けるテキスチャーマッピング処理を行う。
続いて、描画処理部1031は、光源制御部3040で制御される光源の位置及び照度に基づいて、仮想現実オブジェクトの2次元画像の表面の輝度を調整するシェーディング処理を行う。
描画処理部1031は、必要に応じてアンチエリアシング処理や、当該描画処理の間におけるユーザ状態の変化に基づく表示位置の補正処理等を行うことで仮想現実提示用の映像を生成する。映像表示部1040は、上記処理を経て得られた仮想現実提示用の映像を表示する。
音声生成処理部1070は、仮想現実提示制御部3010で決定された仮想現実サービスに対応する仮想現実提示用の音声データを仮想現実コンテンツ記憶部1050より読み出し、各音声チャンネルに分配する分配処理や音声レベルを増幅する増幅処理を行うことで、各音声チャンネルから出力する仮想現実提示用の音声データを生成する。
音声生成処理部1070は、当該分配処理を行うに当たり、仮想空間に配置されている仮想現実オブジェクトの位置座標と視点制御部3040が制御する視点位置座標との相対ベクトルに基づいて音声データを複数の音声チャネルに分配して立体音響を再現する構成とすると良い。
音声出力部1080は、音声生成処理部1070で生成された各音声チャンネルの音声データをアナログ電気信号に変換した後に、空気振動に変換して外部へ放音することで、音声を出力する。
なお、同一の仮想現実オブジェクトであってもユーザの近くに配置されている場合とユーザの遠くに配置されている場合とではユーザが受け取る印象が異なる。例えば、現実の世界ではありえないドラゴンの仮想現実オブジェクトをユーザの前方3mの位置に配置した場合における仮想現実の世界は高い仮想現実度を有することになるが、ユーザの50m先にドラゴンを配置した場合は、ユーザからは良く見えないため仮想現実度は低くなる。
従って、仮想現実オブジェクト配置部3030は、提示可能仮想現実度算出部1020で算出される仮想現実度に収まる様にユーザからの距離を制御して仮想現実コンテンツ記憶部1050から読み出した仮想現実オブジェクトを仮想空間に配置する。
例えば、仮想現実提示制御部3010が提供を開始すると決定した仮想現実サービスが「ドラゴンを狩ろう」という仮想現実サービスであり、提示可能仮想現実度算出部1020が設定する提示可能な仮想現実度の初期値が50であるとする。ここで、仮想現実オブジェクトであるドラゴンについてユーザの3m先に配置した場合の仮想現実度が70、10m先に配置した場合の仮想現実度が50、20m先に配置した場合の仮想現実度が40であるとする。
この場合、仮想現実オブジェクト配置処理部3030は、仮想現実提示制御部3010から指示された仮想現実サービスに係る仮想現実オブジェクトである当該ドラゴンのモデルデータを仮想現実コンテンツ記憶部1050より読み出して仮想空間に配置する。ここで、仮想現実オブジェクト配置処理部3030は、読み出した仮想現実オブジェクトを仮想空間に配置した場合の仮想現実度が、提示可能な仮想現実度である50を下回る様に、ユーザ位置から10m以上の距離の場所に仮想現実オブジェクトを配置する。このように、仮想現実オブジェクト配置処理部3030は、提示可能な仮想現実度を満たすように、仮想現実オブジェクトの仮想空間内での配置位置を決定する構成とすると更に良好である。
なお、上記ユーザ位置は、ユーザ状態検知部1010で検知されるユーザ状態に基づいて視点制御部3040で更新される視点位置をそのままユーザ位置として使用することができる。
また、仮想現実コンテンツ記憶部1050は、仮想現実オブジェクトの各々に設定されている仮想現実度と対応付けて仮想現実オブジェクトを記憶する構成とすると更に良好である。仮想現実オブジェクト配置処理部3030は、提示可能仮想現実度算出部1020で算出された仮想現実度よりも低い仮想現実度と対応付けられている仮想現実オブジェクトを前記仮想現実コンテンツ記憶部1050より読み出して仮想空間生成処理部3020が生成する仮想空間に配置する。
なお、仮想現実オブジェクト配置処理部3030は、提示可能仮想現実度算出部1020で算出された仮想現実度から提示中仮想現実度算出部1060で算出された仮想現実度を減算することで求まる余剰仮想現実度よりも低い仮想現実度と対応付けられている仮想現実オブジェクトを仮想現実コンテンツ記憶部1050より読み出して仮想空間生成処理部3020が生成する仮想空間に配置する構成とすることが好ましい。
また、仮想現実オブジェクト配置処理部3030は、提示可能な仮想現実の世界の仮想現実度が、現在提示中の仮想現実の世界の仮想現実度を下回っている場合に、仮想空間に配置中の仮想現実オブジェクトを前記仮想空間から削除することで、提示する仮想現実の世界の仮想現実度が提示可能な仮想現実の世界の仮想現実度に収まるようにする。提示可能仮想現実度算出部1020は、現在提示可能な仮想現実度を算出し、提示中仮想現実度算出部1060は、現在仮想空間に配置している仮想現実オブジェクトの合計仮想現実度を算出する。仮想現実オブジェクト配置処理部3030は、当該提示可能仮想現実度から提示中仮想現実度を減算した値がマイナスである場合に、提示中仮想現実度が提示可能仮想現実度を下回る様に、仮想空間に配置している仮想現実オブジェクトの中から削除する仮想現実オブジェクトを選択して仮想空間から削除する処理を行う。
<実施形態5>
ユーザは仮想現実提示装置を装着して仮想現実の世界を体験する。ユーザが直接身に着ける仮想現実提示装置は、装着性や携帯性を高めるために軽量・小型であることが好ましい一方で、仮想現実の世界を提示するためには様々な制御や処理が発生する。本実施形態5に係る仮想現実提示システムは、これら仮想現実の世界を提示するために必要となる処理を複数の装置やシステムで分担することで、実際にユーザが装着する仮想現実提示装置の軽量・小型化を目的としている。
図16は、本実施形態5に係る仮想現実提示システムの構成を示すブロック図である。仮想現実提示システムは、仮想現実提示装置500と、仮想現実サービス提供システム5000とから構成される。
仮想現実サービス提供システム5000は、仮想現実の世界を提示するサービスである仮想現実サービスをユーザに対して提供するシステムであって、一台又は複数台の情報処理サーバやデータベースなどから構成される。
仮想現実サービス提供システム5000は、通信部5010と、仮想現実サービス提供制御部5020と、仮想現実オブジェクト挙動制御部5030と、レイヤー順序更新処理部5040と、レイヤー情報生成処理部5050と、提示可能仮想現実度算出部1020と、映像生成処理部1030と、仮想現実コンテンツ記憶部1050と、提示中仮想現実度算出部1060と、音声生成処理部1070と、仮想空間生成処理部3020と、仮想現実オブジェクト配置処理部3030と、視点制御部3040と、周囲状況特定部4020と、画像解析処理部4030と、光源制御部4040と、モデルデータ配置処理部4050と、を備える。
通信部5010は、インターネット等の通信網を介して仮想現実提示装置500と通信を行う。通信部5010は、少なくともユーザの状態を示すユーザ状態情報を受信する受信部5011と、仮想現実提示用の映像データを送信する送信部5011とを備える。
受信部5011は、ユーザの状態を示すユーザ状態情報と、ユーザの周囲を撮影した周囲景色画像とを受信する。ユーザ状態情報や周囲景色画像には、それぞれ当該ユーザ状態が検知されたタイミングを示すユーザ状態検知時刻情報(ユーザ状態検知タイミング情報)や、周囲景色画像が撮影されたタイミングを示す周囲景色画像撮影時刻情報(周囲状況検知タイミング情報)が含まれている。送信部5011は、仮想現実提示用の映像符号化データや仮想現実提示用の音声符号化データ、レイヤー情報、各種通知情報などを送信する。
仮想現実サービス提供制御部5020は、仮想現実サービスの提供を制御する。具体的に仮想現実サービス提供制御部5020は、仮想現実コンテンツ記憶部1050に記憶されている仮想現実コンテンツの中から、提供する仮想現実サービスに係る制御プログラムを読み出して実行することで当該仮想現実サービスの提供を開始する。
仮想現実コンテンツ記憶部1050は、仮想現実サービスを実現するためのデータである仮想現実コンテンツを記憶している。仮想現実コンテンツには、仮想現実オブジェクトの他、仮想現実サービスの進行を制御する仮想現実サービス制御プログラムや仮想現実オブジェクトの挙動を制御する仮想現実オブジェクト挙動制御プログラム、仮想現実提示用の音声データである仮想現実提示用音声データなどを記憶している。
仮想現実サービス提供制御部5020は、仮想現実サービスの提供を開始するにあたって、仮想現実サービスの提供開始を通知する仮想現実サービス提供開始通知情報を生成する。
図17は、当該仮想現実サービス提供開始通知情報の一例を示す図である。仮想現実サービス提供開始通知情報は、自サーバのアドレスである送信元アドレスと、送信先の仮想現実提示装置500のアドレスである送信先アドレスと、当該情報が仮想現実サービス提供開始通知情報であることを示す情報種別と、仮想現実提示装置500と仮想現実提示システム5000の間において当該仮想現実サービスに関連して発生する通信を他の通信と識別するために各パケットに付与する番号である通信識別番号と、提供に係る仮想現実サービスを識別する仮想現実サービス識別情報と、仮想現実サービスの提供において必要となる制御や処理で用いる仮想現実制御パラメータ情報などを含む。
仮想現実制御パラメータ情報としては、ユーザ状態としてどのような種類のユーザ状態を検知させるかを指定する検知ユーザ状態指定情報、検知されたユーザの状態を示すユーザ状態情報の送信頻度を示すユーザ状態送信頻度、撮影されたユーザの周囲の景色の画像である周囲景色画像の送信頻度、周囲景色画像の画像圧縮符号化形式を示す周囲景色画像符号化形式、表示する映像のフレームレートを示す映像フレームレート、仮想現実サービス提供システム5000から適宜送信される仮想現実提示用映像データの符号化形式を示す仮想現実提示用映像データ符号化形式、などの情報が含まれる。
その他、仮想現実サービス提供制御部5020は、必要に応じて現在提供中の仮想現実サービスの提供の終了を通知する仮想現実サービス提供終了通知情報や当該仮想現実サービスにおける制御パラメータの変更を通知する制御パラメータ変更通知情報、などの各種情報を生成する。仮想現実サービス提供制御部5020で生成されたこれらの情報は、送信部5012より仮想現実提示装置500へ送信される。
仮想現実サービス提供制御部5020は、仮想現実サービスの提供を開始する場合に、仮想空間生成処理部3020と仮想現実オブジェクト配置処理部3030にそれぞれ仮想空間の生成指示及び仮想現実オブジェクトの配置指示を出す。
また、仮想現実サービス提供制御部5020は、仮想現実提示用の映像データの生成指示と仮想現実提示用の音声データの生成指示を映像生成処理部1030と音声生成処理部1070にそれぞれ出す。
仮想空間生成処理部3020は、仮想現実サービス提供制御部5020からの仮想空間生成指示に基づいて、当該仮想現実サービスに使用する仮想空間を生成する。仮想空間は、所定の広さを有する座標空間であって、現実の世界の空間と対応するように人工的に創り出される情報処理上の空間である。
仮想現実オブジェクト配置処理部3030は、仮想現実サービス提供制御部5020からの仮想現実オブジェクト配置指示に基づいて、当該仮想現実サービスに係る仮想現実オブジェクトを仮想現実コンテンツ記憶部1050より読み出して仮想空間生成処理部3020が生成した仮想空間に配置する。
ここで、仮想現実オブジェクト配置処理部3030は、提示可能仮想現実度算出部1020が算出する現在提供可能な仮想現実の世界の仮想現実度に収まる様に、上記仮想現実オブジェクトを選択して仮想空間に配置する。
また、仮想現実オブジェクト配置処理部3030は、配置する仮想現実オブジェクトが複数になる場合は、読み出した仮想現実オブジェクトを異なるレイヤーの仮想空間に配置する。
すなわち、仮想空間生成処理部3020は、原点を共通とする複数のレイヤーの仮想空間を生成し、仮想現実オブジェクト配置処理部3030は、仮想現実コンテンツ記憶部1050より読み出した複数の仮想現実オブジェクトをそれぞれ異なるレイヤーの仮想空間に配置する。
図18は、当該複数の仮想現実オブジェクトを仮想空間の異なるレイヤーにそれぞれ配置する場合を示している。象と犬とライオンの3つの仮想現実オブジェクトがそれぞれ原点を共通とする3つの異なるレイヤーの仮想空間に分けて配置されている。
視点制御部3040は、受信部5011で受信されたユーザ状態情報に基づいて、仮想空間生成処理部3020が生成した仮想空間において、ユーザの目の位置及び視線方向に対応する視点位置座標と視線方向とを制御する。視点制御部3040は、ユーザ状態情報に含まれる傾き情報や加速度情報に基づいて特定されるユーザ頭部の傾きの変化や加速度の変化から、ユーザの目の位置及び視線方向に対応する視点位置座標と視線方向とをそれぞれ算出して更新する。ここで、ユーザ状態情報には、対応するユーザ状態が検知されたタイミングを示すタイムスタンプであるユーザ状態検知時刻情報が含まれているため、視点制御部3040は、現在の視点位置座標及び視線方向が、どの時刻に検知されたユーザ状態に基づいて設定されている視点位置座標及び視線方向であるかを管理する。
仮想現実オブジェクト挙動制御部5030は、仮想空間に配置されている仮想現実オブジェクトの挙動を制御する。仮想現実オブジェクト配置処理部3030によって仮想空間の各レイヤーにそれぞれ配置されている仮想現実オブジェクトの中には、例えば人間や動物の仮想現実オブジェクトのように動作可能なように構成されているものがある。仮想現実オブジェクト挙動制御部5030は、仮想現実コンテンツ記憶部1050の中から当該仮想現実オブジェクトの挙動制御プログラムを読み出して実行することで、仮想空間に配置されている仮想現実オブジェクトの外観形状を変化させたり、仮想現実オブジェクトを仮想空間内で移動させたりする。
提示中仮想現実度算出部1060は、現在提示中の仮想現実の世界に係る仮想現実度を算出する。提示中仮想現実度算出部1060は、仮想現実オブジェクト配置処理部3030が仮想空間に配置する仮想現実オブジェクトの種類や配置位置、周囲状況特定部4020で特定されるユーザの周囲の状況などに基づいて、現在提示中の仮想現実の世界に係る仮想現実度を算出する。なお、複数レイヤーの仮想空間に複数の仮想現実オブジェクトが配置されている場合、提示中仮想現実度算出部1060は、これらの仮想現実オブジェクトに対応付けられた仮想現実度の総和をとることで提示中の仮想現実の世界に係る仮想現実度を算出する構成とすると良い。
提示可能仮想現実度算出部1020は、現在ユーザに提示可能な仮想現実の世界に係る仮想現実度を算出する。提示可能仮想現実度算出部1020は、提示中仮想現実度算出部1060で算出された現在提示中の仮想現実の世界に係る仮想現実度を基準として、所定の値を加算・減算・乗算・除算することで、提示可能な仮想現実の世界に係る仮想現実度を算出すると良い。
画像解析処理部4030は、受信部5012で受信されたユーザの周囲の景色を撮影した周囲景色画像に対する所定の解析処理を行うことで所定の情報を抽出する。周囲景色画像は、仮想現実提示装置500が備える複数のカメラで撮影された画像である。
例えば、画像解析処理部4030は、当該周囲景色画像の中から光学成分を抽出し、ユーザの周囲の平均照度や光源の位置及び方向などの情報を光学成分情報として抽出する。
また、画像解析処理部4030は、複数の周囲景色画像に含まれる各物体の位置の比較処理や、同一の周囲景色画像の隣接画素を比較する比較処理によって、周囲景色画像に含まれる各物体の位置や形状を特定する。画像解析処理部4030は、ユーザの周囲の現実世界に存在するこれらの物体等の位置や形状に基づいて、当該物体等の外観形状をモデル化してモデルデータを生成する。
光源制御部4040は、画像解析処理部4030で抽出された光学成分情報に基づいて、仮想空間生成処理部3020が生成する上記仮想空間における光源の位置座標や光源の照度又は輝度を更新する。例えば、光源制御部4040は、画像解析処理部4030によって求められた周囲景色画像における平均輝度に基づいて、無限遠方の光源の照度又は輝度を設定する。また、画像解析処理部4030において周囲景色画像で現れる影の位置等に基づいて抽出された光学成分情報に基づいて、局所的な光源を新たに仮想空間内の対応する位置に配置する。その他、光源制御部4040は、画像解析処理部4030で抽出された光学成分情報に基づいて光源の色を設定しても良い。
モデルデータ配置処理部4050は、画像解析処理部4030において生成されたユーザの周囲の現実世界に存在する物体等のモデルデータを仮想空間に配置する。モデルデータ配置処理部4050は、視点制御部3040で制御される視点位置及び視線方向に基づいて、周囲景色画像がどの位置からどの方向に向かって撮影された映像であるかを特定し、画像解析処理部4030で生成された各物体のモデルデータを仮想空間に配置する。
ここで、仮想空間生成処理部3020は、当該現実の世界に存在する物体のモデルデータを配置するモデルデータ専用レイヤーの仮想空間を生成することが好ましい。モデルデータ配置処理部4050は、画像解析処理部4030で生成された現実の世界の物体のモデルデータを当該モデルデータ専用レイヤーの仮想空間に配置する。
周囲状況特定部4020は、画像解析処理部4030における画像解析処理の結果に基づいて、ユーザの周囲の状況を特定する。例えば、周囲状況特定部4020は、ユーザの周囲の状況を「室内」、「室外」、「公園」、「駅」、「道路」、「自宅」、「山の中」、「浜辺」、「デパート」、「田園」、「グラウンド」、「学校」など、予め登録されているいずれかのカテゴリの中から選択することで、ユーザの周囲の状況を特定する。
描画処理部1031は、仮想現実サービス提供制御部5020からの仮想現実提示用映像生成指示に基づいて、仮想空間に配置されている仮想現実オブジェクトを描画することで仮想現実提示用の映像を生成する。ここで、描画処理部1031は、仮想現実のレイヤー毎にそれぞれ描画処理を行うことでレイヤー毎の仮想現実提示用の映像を生成する。
描画処理部1031は、仮想空間のレイヤーの一つとモデルデータ専用レイヤーを選択し、視点制御部3040で設定される現在の視点位置座標及び視線方向に基づいて、当該選択したレイヤーの仮想空間にそれぞれ配置されている仮想現実オブジェクトと現実の世界の物体のモデルとを、当該視点位置座標から視線方向前方に配置したイメージプレーンへ投影する投影処理を行う。描画処理部1031は、当該投影処理によって得られた2次元投影画像の中から現実の世界の物体のモデル部分を消去することで、選択したレイヤーに配置された仮想現実オブジェクトの2次元投影画像を取得する。
描画処理部1031は、上記投影処理で得られた2次元投影画像を所定の大きさに切り取るクリッピング処理を行う。ここで、描画処理部1031は、仮想現実提示装置500の表示パネルにおける解像度を上回る範囲で切り取ることを特徴とする。例えば、仮想現実提示装置500の表示パネルが1080画素×1920画素の解像度を有する場合、描画処理部1031は、2次元投影画像を1割増しの1188×2112で切り取るクリッピング処理を行う。なお、どの程度サイズを大きくして切り取るかはユーザ状態の変化の大きさに基づいて決定されていても良い。ユーザが静止している場合は、後続の補正処理が必要ではなく、大き目に切り取る必要がないためである。
次に、描画処理部1031は、当該仮想現実オブジェクトのテキスチャーマッピングデータをクリッピング処理後の2次元投影画像に張り付けるテキスチャーマッピング処理を行う。
次に、描画処理部1031は、光源制御部4040で設定される光源に基づいて、上記2次元投影画像に陰影をつけるシェーディング処理を行う。描画処理部1031は、必要に応じてアンチエリアシング処理を行い、当該レイヤーの仮想現実提示用映像とする。
ここで、描画処理部1031は、当該描画して生成したレイヤーの仮想現実提示用映像が、どの時刻のユーザ状態に基づいて描画された映像であるかを示す情報を付与して当該レイヤーの仮想現実提示用映像を生成する。描画処理に使用する視点位置座標及び視線方向は、視点制御部3040によって更新・設定されるが、現在使用する視点位置座標及び視線方向を設定する際に用いられたユーザ状態が検知された時刻を示すタイムスタンプであるユーザ状態検知時刻情報を付与して当該レイヤーの仮想現実提示用映像を生成する。
描画処理部1031は、仮想空間生成処理部3020で生成されている各レイヤーの仮想空間を並列処理で描画することで、レイヤー毎の仮想現実提示用映像を生成する。
映像符号化処理部1032は、描画処理部1031で生成された各レイヤーの仮想現実提示用映像を符号化してレイヤー別仮想現実提示用符号化映像データを生成する。当該レイヤー別仮想現実提示用符号化映像データは、送信部5011より仮想現実提示装置500に送信する。
レイヤー順序更新処理部5040は、仮想空間生成処理部3020が生成する仮想空間の各レイヤーの順序を更新する。描画処理部1031でレイヤー毎に描画が行われてレイヤー別の仮想現実提示用映像が生成されるため、最終的に仮想現実提示装置500において複数のレイヤー別仮想現実提示用映像を合成する必要がある。そのため、レイヤー順序更新処理部5040は、各仮想空間のレイヤーに順序を設定しておき、当該レイヤーの順序を更新する。
レイヤーの順序は、ユーザの位置と仮想現実オブジェクトの位置との関係で決定される。すなわち、ユーザから近い方の仮想現実オブジェクトが配置されているレイヤーから順番にレイヤー順序が決定される。ユーザの位置は、適宜変化していくし、仮想現実オブジェクトの位置も仮想現実オブジェクト挙動制御部5030が行う挙動制御によって変化していく。そこで、レイヤー順序更新処理部5040は、受信部5011で受信されたユーザ状態情報に基づいて視点制御部3040によって制御されるユーザの視点位置座標と、仮想空間の各レイヤーにそれぞれ配置されている各仮想現実オブジェクトの位置座標とに基づいて、レイヤー順序を更新する。
例えば、図19のように仮想空間のレイヤー1〜3に仮想現実オブジェクトA〜Cがそれぞれ配置されている場合において、状態1ではユーザに近い方から仮想現実オブジェクトA、B、Cの順番である。従って、レイヤー順序更新処理部5040は、レイヤー1,2,3の順序とする。ここで、ユーザが現実の世界で移動したことによって状態2の位置関係となった場合、ユーザに近い方から仮想現実オブジェクトはB,C、Aの順番である。従って、レイヤー順序更新処理部5040は、レイヤー順序をレイヤー2、3、1に変更することでレイヤー順序を管理する。
レイヤー情報生成処理部5050は、レイヤー順序更新処理部5040における更新処理に基づいて現在のレイヤー順序を示すレイヤー情報を生成する。レイヤー情報生成処理部5050は、レイヤーの順序を示すレイヤー順序情報の他、ユーザと各レイヤーとの位置関係を示す位置関係情報、各レイヤーに含まれる仮想現実オブジェクトの種類や数、各レイヤーの重要度などの情報を含めてレイヤー情報を生成することが好ましい。なお、位置関係情報は、ユーザの位置から各レイヤーにそれぞれ含まれる仮想現実オブジェクトまでの距離やベクトルを示す情報である。当該レイヤー情報は、レイヤー別の仮想現実提示用映像符号化データと共に送信部5012より仮想現実提示装置500に送信される。
音声生成処理部1070は、仮想現実サービス提供制御部5020からの仮想現実提示用音声生成指示に基づいて、仮想現実コンテンツ記憶部1050より提供する仮想現実サービスに係る仮想現実提示用音声データを読み出し、チャンネル別の仮想現実提示用音声データを生成する。例えば、音声生成処理部1070は、視点制御部3040で設定される視点位置と、仮想現実オブジェクト配置処理部3030が配置する仮想現実オブジェクトの位置との相対関係に基づいて、仮想現実コンテンツ記憶部1050より読み出した仮想現実提示用の音声データを複数のチャンネルに分配することでチャンネル別仮想現実提示用音声データを生成する。
ここで、音声再生処理部1070は、仮想現実コンテンツ記憶部1050より複数の仮想現実提示用音声データを読み出し、それぞれ各チャンネルの音声データに分配した上で合成することでチャンネル別仮想現実提示用音声データを生成する。ここで、チャンネルとしては、5.1Ch、6.1Ch、7.1Chなど複数チャンネルの音声出力部530を仮想現実提示装置500側に設け、立体音響を実現できるようにしておくことが好ましい。
また、音声生成処理部1070は、当該生成したチャンネル別仮想現実提示用音声データを所定の符号化形式で符号化することでチャンネル別仮想現実提示用音声符号化データを生成する。当該チャンネル別仮想現実提示用音声符号化データは、送信部5012より仮想現実提示装置500に送信される。
仮想現実提示装置500は、ユーザ状態検知部1010と、映像表示部1040と、音声出力部1080と、周囲状況検知部4010と、通信部510と、仮想現実提示制御部520と、を備える。
ユーザ状態検知部1010は、ユーザの頭部の傾きを検知する傾きセンサ1011、ユーザの頭部の加速度を検知する加速度センサ1012、ユーザの方位を検知する方位センサ1013、ユーザの位置を検知する位置センサ1014、ユーザの表情を撮影する内部カメラ1015などで構成される。これらのセンサ等における検知結果は、検知時刻を示すタイムスタンプであるユーザ状態検知時刻情報と共にユーザ状態情報として纏められ、通信部510より仮想現実サービス提供システム5000に送信される。また、ユーザ状態情報の一部の情報は、映像表示部1040における映像補正処理に用いられる。
周囲状況検知部4010は、ユーザの視線に対応するユーザ前方を撮影する視線カメラ4011と、ユーザの両側や後方などユーザ周辺を撮影する周辺カメラ4012を含み、ユーザの周囲の状況を検知する。視線カメラ4011はユーザの左目と右目の位置にそれぞれ配置される。これらのカメラで撮影されて取得される周囲景色画像は、撮影時刻を示すタイムスタンプである周囲状況検知時刻情報と共に周囲状況情報として纏められ、通信部510より仮想現実サービス提供システム5000に送信される。
通信部510は、仮想現実サービス提供システム5000とインターネット等の通信網を介して通信を行う。通信部510は、ユーザ状態検知部1010と周囲状況検知部4010でそれぞれ検知されたユーザ状態情報及び周囲状況情報を無線送信する無線送信部511と、仮想現実サービス提供システム5000より送信される仮想現実提示用映像符号化データやレイヤー情報、仮想現実提示用音声符号化データ、各種通知情報などを無線受信する無線受信部512を備える。
映像表示部140は、映像関連データ記憶部141と、映像復号化処理部142と、映像補正処理部143と、映像合成処理部144と、表示領域選択部145と、表示パネル146とを備える。
映像関連データ記憶部141は、無線受信部512で無線受信された仮想現実提示用映像符号化データとレイヤー情報とを映像関連データとして一時的に記憶する。
映像復号化処理部142は、映像関連データ記憶部141に格納されているレイヤー毎の仮想現実提示用映像符号化データに復号化処理を行い、仮想現実提示用映像データを取得する。
映像補正処理部143は、復号化されたレイヤー毎の仮想現実提示用映像データの位置補正をユーザ状態情報とレイヤー情報に含まれる位置関係情報に基づいて行う。映像生成処理部1030で生成される各仮想現実提示用映像データは、視点制御部3040がユーザ状態に基づいて制御する視点位置及び視線方向に基づいて生成される。ここで、ユーザの視点位置や視線方向は、仮想現実提示装置500と仮想現実サービス提供サーバ5000との間の通信ラグや描画処理や符号化処理、復号化処理等に要する時間の間に変化している可能性がある。そのため、映像補正処理部143は、生成された仮想現実提示用映像に所定の補正を行うことで、現在のユーザ状態に適合した映像となるように補正する。
例えば、図20に示すようにレイヤー1とレイヤー2の2枚の仮想現実提示用映像があり、各レイヤーの位置関係情報で示される各レイヤーに含まれる仮想現実オブジェクトまでの相対位置ベクトル(x、y、z)は、それぞれ(+0.3、+2.2、−0.4)と(+2.1、+21.4、+0.6)であるとする。ここで、ユーザが−X方向に移動している場合、当該映像生成時と現在とでは視点位置及び視線方向が相違している。そこで、映像補正処理部143は、仮想現実提示用映像に付与されているユーザ状態検知時刻情報と現在の時刻との間で変化したユーザ状態に基づいて、映像に含まれる仮想現実オブジェクトの位置や大きさなどを補正する。視点位置及び視線方向の変化に伴って、仮想現実オブジェクトの映像をどの様に補正するかは、視点位置及び視線方向と仮想現実オブジェクトとの間の相対位置関係によって定まるため、映像補正処理部143は、レイヤー毎に仮想現実提示用映像に対して補正量を算出した上で補正処理を行う。
映像合成処理部144は、補正処理後の各レイヤーの仮想現実提示用映像を、レイヤー情報に含まれるレイヤー順序情報に従って重ね合わせることで合成する処理を行う。後方のレイヤーに含まれる仮想現実オブジェクトの映像は、前方のレイヤーに含まれる仮想現実オブジェクトによって重なり部分が隠される。
表示領域選択部145は、合成処理後の仮想現実提示用映像の中から表示パネル146で表示する領域を選択する。各仮想現実提示用映像は、上記補正処理に対応できるように表示パネル146の解像度よりも大きい解像度の映像であるため、補正処理及び合成処理後の仮想現実提示用映像の中から表示パネル146で表示する範囲を選択する。
表示パネル146は、表示領域選択部145で選択された範囲の仮想現実提示用映像を表示する。表示パネル146は、ユーザの左目と右目の前方に配置される2枚のパネルであり、映像生成処理部1030ではこれら2つのパネル用にそれぞれ仮想現実提示用の映像が生成される。すなわち、視点制御部3040は、ユーザの左目と右目に対応する2つの視点位置座標及び視線方向を設定し、映像生成処理部1030は、これら2つの視点からそれぞれ描画して右目用の仮想現実提示用映像と左目用の仮想現実提示用映像を生成する。
音声出力部1080は、無線受信部512で受信された仮想現実提示用音声符号化データに対して復号化処理を行い、各チャンネルの仮想現実提示用音声データをスピーカより放音することで音声を出力する。
仮想現実提示制御部520は、仮想現実提示装置500側の仮想現実提示用の各処理を制御する。仮想現実提示制御部520は、無線受信部512で受信された各種通知情報やパラメータ変更情報などに基づいて、ユーザ状態や周囲状況の検知周期や映像表示のフレームレート、送受信におけるデータの符号化・復号化形式等を設定する。例えば、仮想現実提示制御部520は、仮想現実サービス提供開始情報に含まれる仮想現実制御パラメータ情報の検知ユーザ状態指定情報に基づいてユーザ状態検知部1010で検知させるユーザ状態の種類を設定したり、ユーザ状態検知頻度に基づいて、ユーザ状態検知部1010で検知させるユーザ状態の検知頻度を設定したりする。
また、仮想現実提示制御部520は、仮想現実提示装置500のバッテリー残量や温度、リソース消費量や無線通信速度などの状態を監視し、これらの情報をレポートに纏めて仮想現実サービス提供サーバ5000に送信する。当該レポートは仮想現実サービス提供制御部5020に送られて、各種制御に利用される。
図21は、仮想現実提示装置500の斜め前方と斜め後方からの外観斜視図である。仮想現実提示装置500は、ユーザが頭部に装着するヘッドマウントディスプレイ(HMD:Head mount Display)装置であって、透過型のディスプレイを通して外界の様子を観察できるように構成されている。仮想現実提示装置500は、フレーム501と、フロントパネル502と、を少なくとも備える。
フレーム501は、仮想現実提示装置500の筐体であり、内部には、CPU(Central Processing Unit)等の情報処理プロセッサ、RAM(Random
Access Memory)、ROM(Read only memory)、無線通信処理プロセッサ、バッテリーなどが配置されている。また、必要に応じて映像を描画する専用の映像処理プロセッサなどが合わせて配置されている。フレーム501は、大きく分けてライトフレーム501a、レフトフレーム501b、センターフレーム501cから構成される。
ライトフレーム501a及び501bは、ユーザの左右の耳にそれぞれ接続する筐体部材であり、それぞれ一端の内側にアナログ電気信号を空気振動に変換して音声を出力するスピーカ181a、181bが配置され、他端がセンターフレーム501cと接続されている。
ライトフレーム501a及び501bの端部には、それぞれ傾きを検知する傾きセンサ1011a、1011bと、加速度を検知する加速度センサ1012a、1012bが配置されている。また、ライトフレーム501a及びレフトフレーム501bの外側には、周囲の景色を撮影する周辺カメラ4012a、4012bがそれぞれ配置されている。
センターフレーム501cは、両端がそれぞれライトフレーム501a、レフトフレーム501bに接続されており、センターフレーム501cの下方にフロントパネル502が接続されている。
センターフレーム501cの中央付近と両端付近には、傾きを検知する傾きセンサ1011c、1011d、1011eと、加速度を検知する加速度センサ1012c、1012d、1012eがそれぞれ配置されている。
センターフレーム501cのユーザ側であって、ユーザの左右の目の位置には、ユーザの顔の一部又は全部の表情を撮影する内部カメラ1015a、1015bが配置されている。内部カメラ1015a、1015bは、少なくともユーザの目の位置を含む領域を撮影してユーザ表情映像をユーザ状態情報として生成する。
センターフレーム501cの前方側であって、ユーザの左右の目の位置には、ユーザの視界と対応する景色を撮影する視線カメラ4011a、4011bが配置されている。視線カメラ4011a、4011bは、センターフレーム501cの前方側に、ユーザの左右の目の間隔に対応する距離だけ離れた位置に配置されている。
フロントパネル502は、仮想現実提示装置500を頭部に装着した状態でユーザの目の前方に来る位置に配置される。仮想現実提示装置500において、フロントパネル502は透過型ディスプレイであり、右目の前方と左目の前方にそれぞれ映像を表示する表示領域であるライト表示パネル146aとレフト表示パネル146bとが配置される。
図22は、仮想現実提示装置500のライト表示パネル146a付近の断面図を示している。センターフレーム501cの下方には、フロントパネル502が配置されており、センターフレーム501cの下部には光源146−1が配置されている。
光源146−1より放射された可視光はフロントパネル502側へ照射される。フロントパネル502は、導光板146−2とLCD146−3とが合わさった構成であり、光源146−1より放射された可視光が導光板146−2でユーザ側へ反射され、表示制御されたLCD146−3を透過することで仮想現実提示用の映像が表示される。
なお、仮想現実提示装置500は図23に示す構成としても良い。図23に示す仮想現実提示装置500は、光源146−1と導光板146−2との間にLCD146−3が配置されている。従って、外部からの光は、LCD146−3を透過することなくユーザの目に照射されるため、外部の景色の明るさが暗くなることを防ぐことができる。
また、図24に示すように外界からの光である外部光の照射量を制御するLCD146−4が配置されていても良い。LCD146−3で仮想現実オブジェクトの映像を表示しても、外界からの光が混ざってしまい、仮想現実オブジェクトの像が透けてしまうため、LCD145において仮想現実オブジェクトの位置における外部光を遮断することで、仮想現実オブジェクトが透けて見えると言ったことを防ぐことができる。
なお、導光板146−2の位置は、図25に示すように、ユーザの目に入射される外部光が通過しない位置に配置されていると更に良好である。図25の構成では、外部光のコントラストを更に向上させることが可能である。
また、図26に示すように、外部光を制御するLCD146−4が配置されていても良い。外部光は、LCD146−4を透過してユーザの目に到達する一方、光源146−1から出た光は、LCD146−3を透過し、導光板146−2で反射されてユーザの目に到達する。
なお、LCD146−4は、電圧制御によって外部から透過してくる光量を制御できるものであればどのようなものを用いても良い。例えば、電圧を印加することで結晶方向を変化させて乱反射を増加させるディスプレイを用いることも可能である。
また、図27に示すようにプロジェクション機構を表示パネル146として使用することも可能である。フロントパネル502の上部に位置するセンターフレーム501cの内部にプロジェクション機構が表示パネル146として配置されている。
センターフレーム501cの内部上方に配置されている光源146−1より照射された白色光は、レンズ群146−7aによって集光された後、ポラライジングコンバータ(PLC)146−7bによって偏光成分が一方向に整えられたのち、第1反射ミラー146−7cによって垂直方向に反射される。第1反射ミラー146−7cで反射された白色光は、R反射ダイクロイックミラー146−7dによって赤色の光成分(R成分)だけが水平方向へ反射され、他の成分の光は、R反射ダイクロイックミラー146−7dを透過する。
R反射ダイクロイックミラー146−7dを透過した光は、G反射ダイクロイックミラー146−7eで緑色の光成分(G成分)だけが水平方向に反射され、残りの青色の光成分(B成分)はG反射ダイクロイックミラー146−7eを透過する。
G反射ダイクロイックミラー146−7eを透過したB成分の光は、第2反射ミラー146−7fで水平方向に反射され、更に第3反射ミラー146−7gで垂直上方へ反射され、第1液晶パネル146−7hを透過した後にクロスダイクロプリズム146−7jに入射される。
一方、R反射ダイクロイックミラー146−7dで反射されたR成分の光は、第4反射ミラー146−7kによって垂直方向に反射され、第2液晶パネル146−7mを透過した後にクロスダイクロプリズム146−7jに入射される。また、G反射ダイクロイックミラー146−7eで反射されたG成分の光は、第3液晶パネル146−7nを透過した後にクロスダイクロプリズム146−7jに入射される。
クロスダイクロプリズム146−7jは、分離されてそれぞれ液晶パネルを通過したR成分、G成分、B成分の3つの光を合成して水平方向に反射する。クロスダイクロプリズム146−7jより出力された合成光は、ガルバノミラー146−7pによって垂直方向に反射され、照射窓146−7qよりフロントパネル402へ照射される。ガルバノミラー146−7pは、クロスダイクロプリズム146−7jより出力された合成光を水平方向(y方向)に走査しながら反射する。
フロントパネル502のうち、照射窓146−7qの下方には導光板146−2が配置されており、当該導光板146−2によってユーザ方向に反射された光がフロントパネル502で屈折して平行光となってユーザの目の中へ入射される。ガルバノミラー146−7pによって水平方向に光が操作されているため、導光板146−2で反射される光は垂直方向(z方向)に走査される。
なお、図27における各部材は、x方向すなわち紙面垂直方向に長細い構成をとっており、右目用の映像におけるx方向の一列を纏めて表示する。当該一列の映像がガルバノミラー146−7pによってy方向に走査されて順次表示されることで、xz平面の2次元画像がフロントパネル402に映し出されることになる。同様に、左目の上部にも同一のプロジェクション機構が配置されており、フロントパネル502の左目前方に左目用の映像が映し出される。このように、右目用プロジェクション機構と左目用プロジェクション機構によって表示部が形成される。なお、左目用プロジェクション機構と右目用プロジェクション機構は共通化されていても良い。
また、図28のように、仮想現実提示装置500は、非透過型HMD装置であっても良い。この場合、視線カメラ4011で撮影された映像に仮想現実提示用の映像を合成した映像を表示パネル146に表示する。
この場合、仮想現実オブジェクトの表示位置では、視線カメラで撮影された映像を下位レイヤー、仮想現実オブジェクトの映像を上位レイヤーとして2つの映像を合成して映像が表示パネルで表示される。
例えば、仮想現実オブジェクトが表示される所定の座標(x、y)において、映像生成処理部1030で生成される仮想現実オブジェクトの映像の画素データが(Y1、U1、V1)であり、当該座標における視線カメラ4011で撮影された映像の画素データが(Y2、U2、V2)であったとする。仮想現実オブジェクトの配置位置が視線カメラ4011で撮影された映像に写る物体よりもユーザ側にある場合は、表示パネル146a、146bにおける当該座標で表される画素データは(Y1,U1、V1)となり、一方、視線カメラ4011で撮影された映像に写る物体が、仮想現実オブジェクトの配置位置よりもユーザ側になる場合は、表示パネル146a、146bにおける当該座標で表される画素データは(Y2,U2,V2)となる。
以上のように、本実施形態5に係る仮想現実提示システムでは、仮想現実の提示に伴って発生する一部の処理を処理能力の高い仮想現実サービス提供サーバに担当させることで、より高度な仮想現実の世界の提示を可能としている。
なお、上述した分担は一例であり、仮想現実サービス提供システム5000側の一部の機能を仮想現実提示装置500が備えていても良い。例えば、人間の聴覚は視覚ほど位置分解能が無いため、予め仮想現実提示用の音声データを仮想現実提示装置500側に記憶させ、仮想現実サービス提供システム5000からの指示に基づいて当該音声データを読み出し、ユーザ状態に基づいて複数チャンネルに分配する分配処理や音声レベルを調整する増幅処理を行った後にスピーカより放音する。
また、上述したレイヤー順序情報は送信されない構成としても良い。描画処理部1031がレイヤー順序に従って順番にレイヤー別仮想現実提示用映像データを生成し、映像符号化処理部1032で符号化された上で仮想現実提示装置500に送信される。映像合成処理部144は、当該送信されてきた順序に従ってレイヤー別仮想現実提示用映像を重ね合わせることで、レイヤー情報を必要とせずに合成することが可能となる。
以上各実施形態で説明したように、本発明によれば新たに導入されたパラメータに従って、許容パラメータの範囲内に収まる様に仮想現実提示用の各種データを生成して提示する。従って、適切に仮想現実の世界がユーザに提示される。
なお、上記説明した仮想現実コンテンツ記憶部は仮想現実コンテンツ記憶データベースと言う形で様々な種類の仮想現実コンテンツを記憶管理する構成とすることが好ましい。また、画像解析処理部についても専用の画像解析サーバを別途設け、仮想現実サービス提供サーバと通信を行う構成とすることが好ましい。その他、上述した各処理部は1台の情報処理サーバに含まれていても良いし、複数台の情報処理サーバが連動する構成としても良い。
なお、上述した提示可能仮想現実度、提示中仮想現実度、錯覚度などの各種パラメータの取り方や算出方法は、仮想現実提示装置メーカーや仮想現実サービス提供システムに依存して適宜最適なものを選択することが可能である。
また、提示可能な仮想現実度はユーザに提示される仮想現実サービス毎に設定されていても良いし、ユーザ毎に設定されていても良い。ファンタジー系の仮想現実度の高い仮想現実の世界を提示する仮想現実サービスでは、仮想現実度が高くなるため、提示可能仮想現実度も高めの仮想現実度が算出されるようにしておくと良い。また、一般的に仮想現実度が高い仮想現実の世界を実現するためには、様々な仮想現実オブジェクトを配置したり特殊映像エフェクトなどを使用したり、生成する映像のフレームレートを上げたりと、処理量が増加する傾向にある。当該仮想現実サービス提供システムにおいて消費されるリソース量が増加するため、高い値段の契約を行っているユーザに対しては高い仮想現実度を設定し、無料ユーザ等には安い仮想現実度を割り当てる構成とするとビジネスモデルが成り立つため好ましい。すなわち、提供可能仮想現実度算出部1020は、仮想現実サービスを提供するユーザの契約情報を契約情報記憶部3060から読み出し、当該契約情報に基づいて当該提供可能な仮想現実の世界に係る仮想現実度を設定する構成とすると良い。
また、ユーザの寝起きや就寝時には高い仮想現実度を提供可能仮想現実度として設定すると良い。ユーザの寝起き時には寝ぼけているため、夢と現実の世界との境界があやふやである。従って、ユーザが仮想現実提示装置を装着したまま就寝し、ユーザの目が覚めた時点で仮想現実度の高い仮想現実の世界をユーザに提示する。当該仮想現実の世界を見るユーザは寝ぼけており、判断力が低いため、自身が見ている景色を夢の映像と錯覚する。従って、ユーザは夢を見るような感覚で、仮想現実提示装置が提示する仮想現実の世界を堪能することができる。
また、上述した各処理部は、CPU等の情報処理装置にハードウェアに所定のプログラムを実行させることで実現可能である。
また、上述した各実施形態の構成を適宜組み合わせることも可能である。また、上記仮想現実サービス提供システムの一部は、ホームサーバと言う形で自宅内に配置されていても良い。
また、仮想現実は拡張現実と称されることがある。また、ユーザに提示される映像の一部はリアルタイムに描画される映像ではなく、背景画像として予め生成された画像からユーザ状態に基づいて定まる領域を表示する構成としても良い。
また、本発明は以下の形態を取ることが可能である。
(付記1)(基本設計)
ユーザの状態を検知するユーザ状態検知手段と、
現在提示可能な仮想現実の世界の仮想現実度を算出する提示可能仮想現実度算出手段と、
前記ユーザの状態に基づいて、前記提示可能仮想現実度算出手段で算出された仮想現実度に収まるように仮想現実提示用の映像を生成する映像生成処理手段と、
前記生成された映像を表示する表示手段と、
を備える仮想現実提示システム。
(付記2)(仮想現実度の算出方法)
現在提示している仮想現実の世界の仮想現実度を算出する提示中仮想現実度算出手段を備え、
前記提示可能仮想現実度算出手段は、前記提示中仮想現実度算出手段で算出された現在提示している仮想現実の世界の仮想現実度を基準として、現在提示可能な仮想現実の世界の仮想現実度を算出する、
付記1に記載の仮想現実提示システム。
(付記3)(錯覚度)
ユーザの錯覚度を算出する錯覚度算出手段を備え、
前記提示可能仮想現実度算出手段は、前記提示中仮想現実度算出手段で算出された現在提示している仮想現実の世界の仮想現実度を基準として、前記錯覚度算出手段で算出された錯覚度に基づいて決定される値を加算、減算、乗算、除算のいずれかを実行することで現在提示可能な仮想現実の世界の仮想現実度を算出する、
付記2に記載の仮想現実提示システム。
(付記4)(錯覚度)
前記ユーザ状態検知手段は、ユーザの脳波を検出する脳波センサ、ユーザの顔の一部又は全部を撮影する内部カメラ、ユーザの血圧を測定する血圧センサ、ユーザの心拍数を計測する脈拍センサ、ユーザの発汗量を検知する発汗量センサ、の少なくとも1つを備え、
前記錯覚度算出手段は、前記ユーザ状態検知手段が備えるいずれかのセンサにおける検知結果に基づいて前記ユーザの錯覚度を算出する、
付記3に記載の仮想現実提示システム。
(付記5)(仮想現実オブジェクト)
複数の仮想現実オブジェクトを少なくとも記憶する仮想現実コンテンツ記憶手段と、
仮想空間を生成する仮想空間生成手段と、
前記仮想空間に前記仮想現実オブジェクトを配置する仮想現実オブジェクト配置手段と、
前記ユーザ状態に基づいて、前記仮想空間における視点座標及び視線方向を制御する視点制御手段と、
前記視点制御手段で更新される視点座標及び視線方向に基づいて、前記仮想空間に配置されている前記仮想現実オブジェクトを描画する描画処理手段と、
を備え、
前記仮想現実オブジェクト配置手段は、前記提示可能仮想現実度算出手段で算出された仮想現実度に収まるように前記仮想現実オブジェクトを前記仮想空間に配置する、
付記1〜4のいずれか1項に記載の仮想現実提示システム。
(付記6)(仮想現実オブジェクト削除)
前記仮想現実オブジェクト配置手段は、前記提示可能な仮想現実の世界の仮想現実度が、現在提示中の仮想現実の世界の仮想現実度を下回っている場合に、仮想空間に配置中の仮想現実オブジェクトを前記仮想空間から削除することで、提示する仮想現実の世界の仮想現実度が提示可能な仮想現実の世界の仮想現実度に収まるようにすることを特徴とする、
付記5に記載の仮想現実提示システム。
(付記7)(仮想現実度対応)
前記仮想現実コンテンツ記憶手段は、前記仮想現実オブジェクトの各々に設定されている仮想現実度と対応付けて前記仮想現実オブジェクトを記憶し、
前記仮想現実オブジェクト配置手段は、前記提示可能仮想現実度算出手段で算出された仮想現実度よりも低い仮想現実度と対応付けられている前記仮想現実オブジェクトを前記仮想現実コンテンツ記憶手段より読み出して前記仮想空間に配置する、
付記6に記載の仮想現実提示システム。
(付記8)(余剰仮想現実度)
前記仮想現実オブジェクト配置手段は、前記提示可能仮想現実度算出手段で算出された前記仮想現実度から前記提示中仮想現実度算出手段で算出された仮想現実度を減算することで求まる余剰仮想現実度よりも低い仮想現実度と対応付けられている前記仮想現実オブジェクトを前記仮想現実コンテンツ記憶手段より読み出して前記仮想空間に配置する、
付記7に記載の仮想現実提示システム。
(付記9)(周囲状況別)
ユーザの周囲の状況を検知する周囲状況検知手段と、
前記周囲状況検知手段における検知結果に基づいてユーザの周囲の状況を特定する周囲状況特定手段と、
を備え、
前記仮想現実コンテンツ記憶手段は、前記仮想現実オブジェクトと周囲状況別の仮想現実度との対応関係を記憶し、
前記仮想現実オブジェクト配置手段は、前記仮想空間に配置する仮想現実オブジェクトの、前記周囲状況特定手段で特定されたユーザの周囲の状況に対応する仮想現実度が、前記提示可能仮想現実度算出手段で算出される前記仮想現実度を下回る様に、前記仮想現実オブジェクトを選択して前記仮想現実オブジェクト記憶手段より読み出し、前記仮想空間に配置する、
付記5〜8のいずれか1項に記載の仮想現実提示システム。
(付記10)(シェーディング)
前記周囲状況検知手段は、ユーザの周囲の状況を撮影して周囲景色画像を取得し、
前記周囲景色画像に基づいて光源の位置座標及び光源の照度又は輝度を更新する光源制御手段と、
前記周囲景色画像に含まれる物体のモデルデータを生成するモデルデータ生成手段と、
を更に備え、
前記描画処理手段は、前記視点制御手段で更新される視点座標及び視線方向に基づいて、前記仮想空間に配置されている前記仮想現実オブジェクトを投影して2次元画像を生成する投影処理と、前記光源制御部で更新される光源の位置座標及び光源の照度又は輝度に基づいて仮想現実オブジェクトの輝度を算出するシェーディング処理と、前記モデルデータに基づいて前記仮想現実オブジェクトの一部を隠す陰面処理と、を少なくとも実行することで前記仮想現実提示用の映像を生成する、
付記5〜9のいずれか1項に記載の仮想現実提示システム