(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023096844
(43)【公開日】2023-07-07
(54)【発明の名称】プログラム、情報処理方法、及び情報処理装置
(51)【国際特許分類】
G06F 3/01 20060101AFI20230630BHJP
G06F 3/04815 20220101ALI20230630BHJP
G06T 19/00 20110101ALI20230630BHJP
G09G 5/00 20060101ALI20230630BHJP
G09G 5/36 20060101ALI20230630BHJP
【FI】
G06F3/01 510
G06F3/0481 150
G06T19/00 300B
G09G5/00 550C
G09G5/36 520E
G09G5/00 510A
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021212861
(22)【出願日】2021-12-27
(71)【出願人】
【識別番号】509070463
【氏名又は名称】株式会社コロプラ
(74)【代理人】
【識別番号】110001416
【氏名又は名称】弁理士法人信栄事務所
(72)【発明者】
【氏名】澤木 一晃
【テーマコード(参考)】
5B050
5C182
5E555
【Fターム(参考)】
5B050AA03
5B050BA09
5B050BA11
5B050BA12
5B050CA07
5B050CA08
5B050EA04
5B050EA26
5B050FA02
5B050FA13
5C182AA02
5C182AA03
5C182AA04
5C182AA26
5C182AA31
5C182AB08
5C182AB34
5C182AB35
5C182AC46
5C182BA01
5C182BA02
5C182BA14
5C182BA29
5C182BA35
5C182BA39
5C182BA46
5C182BA47
5C182BA56
5C182BA75
5C182BC22
5C182BC25
5C182BC26
5C182CB13
5C182CB14
5C182DA44
5C182DA65
5E555AA27
5E555AA64
5E555BA04
5E555BB04
5E555BC08
5E555BE17
5E555CA42
5E555CA44
5E555CB66
5E555CC22
5E555DA08
5E555DA09
5E555DB53
5E555DC26
5E555DC27
5E555DC63
5E555DC84
5E555EA11
5E555EA14
5E555FA00
(57)【要約】
【課題】パノラマ画像をユーザに提供する場合において、ユーザビリティを向上させる。
【解決手段】プロセッサ210を備えたコンピュータ200において実行されるプログラム231である。プログラム231は、プロセッサ210に、画像が投影された天球の内部に配置された仮想カメラに基づいて、ユーザに提示する提示画像を生成するステップと、提示画像を表示装置に出力するステップと、センサ部によって検出されるユーザの身体の少なくとも一部の動きに関する動作情報を取得するステップと、動作情報に基づいて、仮想カメラと天球の位置関係又は仮想カメラの視野角を変更するステップと、を実行させる。
【選択図】
図2
【特許請求の範囲】
【請求項1】
プロセッサを備えたコンピュータにおいて実行されるプログラムであって、
前記プログラムは、前記プロセッサに、
画像が投影された天球の内部に配置された仮想カメラに基づいて、ユーザに提示する提示画像を生成するステップと、
前記提示画像を表示装置に出力するステップと、
センサ部によって検出される前記ユーザの身体の少なくとも一部の動きに関する動作情報を取得するステップと、
前記動作情報に基づいて、前記仮想カメラと前記天球の位置関係又は前記仮想カメラの視野角を変更するステップと、を実行させる、
プログラム。
【請求項2】
前記変更するステップは、前記天球内において前記仮想カメラの位置を移動させることを含む、
請求項1に記載のプログラム。
【請求項3】
前記天球の内縁よりも内側に、前記仮想カメラが移動可能な移動可能領域が設定されている、
請求項2に記載のプログラム。
【請求項4】
前記変更するステップは、前記天球の大きさを変更することを含む、
請求項1に記載のプログラム。
【請求項5】
前記変更するステップは、前記身体の少なくとも一部が、前記身体の少なくとも一部の周囲に設定された第1領域を超えて動いた場合に実行される、
請求項1から請求項4のいずれか一項に記載のプログラム。
【請求項6】
前記変更するステップは、前記動きの変化量が所定の閾値以上である場合に実行される、
請求項1から請求項4のいずれか一項に記載のプログラム。
【請求項7】
前記動作情報は、所定の基準平面に対する前記ユーザの身体の少なくとも一部の傾きに関する傾き情報を含み、
前記変更するステップは、前記基準平面に平行な方向における前記動きに基づいて、前記位置関係又は前記視野角を変更することを含み、
前記変更するステップは、前記傾きの大きさが所定の範囲外にある場合には実行されない、
請求項1から請求項6のいずれか一項に記載のプログラム。
【請求項8】
前記表示装置は、ヘッドマウントデバイスであり、
前記センサ部は、前記ユーザの頭部の動きを検出可能である、
請求項1から請求項7のいずれか一項に記載のプログラム。
【請求項9】
プロセッサを備えたコンピュータにおいて実行される情報処理方法であって、
前記情報処理方法は、前記プロセッサに、
画像が投影された天球の内部に配置された仮想カメラに基づいて、ユーザに提示する提示画像を生成するステップと、
前記提示画像を表示装置に出力するステップと、
センサ部によって検出される前記ユーザの身体の少なくとも一部の動きに関する動作情報を取得するステップと、
前記動作情報に基づいて、前記仮想カメラと前記天球の位置関係又は前記仮想カメラの視野角を変更するステップと、を実行させることを含む、
情報処理方法。
【請求項10】
プロセッサを備えた情報処理装置であって、
前記プロセッサは、
画像が投影された天球の内部に配置された仮想カメラに基づいて、ユーザに提示する提示画像を生成し、
前記提示画像を表示装置に出力し、
センサ部によって検出される前記ユーザの身体の少なくとも一部の動きに関する動作情報を取得し、
前記動作情報に基づいて、前記仮想カメラと前記天球の位置関係又は前記仮想カメラの視野角を変更する、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、情報処理方法、及び情報処理装置に関する。
【背景技術】
【0002】
従来、ヘッドマウントデバイス(以下、「HMD」とも称する)等の機器を用いて、ユーザにVR(Virtual Reality)空間等の仮想空間を提供する技術が知られている。例えば、特許文献1には、HMD内の慣性センサを用いてHMDの動きを検出し、検出された動きに基づいて仮想現実シーン内のキャラクタのアクション(移動等を含む)を決定することが開示されている。
【0003】
また、特許文献2には、ユーザの現実の視界に重畳させる重畳画像を表示する表示部を備えたHMDにおいて、HMDの姿勢に応じて重畳画像の表示領域を縮小することが開示されている。また、特許文献3には、仮想空間の画像をHMDに表示し、ユーザが操作を入力するための入力装置が現実空間における所定位置に存在する場合に、HMDに表示させている画像の一部を拡大し、仮想空間の画像に拡大画像を重畳して表示することが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2018-508805号公報
【特許文献2】特開2016-212599号公報
【特許文献3】特開2019-46291号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、映像が投影された天球の内部に配置された仮想カメラに基づく画像をユーザに提供する技術が知られている。このような画像は、パノラマ画像とも呼ばれており、あたかもその場にいるような没入感をユーザに与えることが可能である。しかし、従来のパノラマ画像において、ユーザは、視線方向を変えることはできるものの、視点倍率は固定されていて変更できないことが多く、例えば、ユーザの動作情報に基づいて画像を拡大や縮小して見ることができなかった。従来のパノラマ画像は、半径が無限遠に設定されているような大きな天球に投影されたものであり、例えば、HMDを装着したユーザが画像に対して頭を近づける動作をしたとしても、天球と仮想カメラの位置関係は変更されないため、ユーザの動作情報に基づく画像の縮尺変更がされることはなく、ユーザビリティの点で改善の余地があった。
【0006】
なお、特許文献1~3には、パノラマ画像の縮尺をユーザの動作情報に基づいて変更するという思想は何ら示されておらず、当然ながら、映像が投影された天球と該天球の内部に配置された仮想カメラの位置関係をユーザの動作情報に基づいて変更することも開示されていない。
【0007】
本開示の一態様は、パノラマ画像をユーザに提供する場合において、ユーザビリティを向上させることを目的とする。
【課題を解決するための手段】
【0008】
本開示に示す一実施形態によれば、
プロセッサを備えたコンピュータにおいて実行されるプログラムであって、
前記プログラムは、前記プロセッサに、
画像が投影された天球の内部に配置された仮想カメラに基づいて、ユーザに提示する提示画像を生成するステップと、
前記提示画像を表示装置に出力するステップと、
センサ部によって検出される前記ユーザの身体の少なくとも一部の動きに関する動作情報を取得するステップと、
前記動作情報に基づいて、前記仮想カメラと前記天球の位置関係又は前記仮想カメラの視野角を変更するステップと、を実行させる、
プログラムが提供される。
【発明の効果】
【0009】
本開示に示す一実施形態よれば、パノラマ画像をユーザに提供する場合において、ユーザビリティを向上させることができる。
【図面の簡単な説明】
【0010】
【
図1】ある実施の形態に従うHMDシステムの構成の概略を表す図である。
【
図2】ある実施の形態に従うコンピュータのハードウェア構成の一例を表すブロック図である。
【
図3】ある実施の形態に従うHMDに設定されるuvw視野座標系を概念的に表す図である。
【
図4】ある実施の形態に従う動作処理の一例を示すフローチャートである。
【
図5】ある実施の形態に従う提示画像の拡大及び縮小の一例を示す模式図である。
【
図6】ある実施の形態に従う仮想カメラと天球の位置関係の変更の一例を示す模式図である。
【
図7】ある実施の形態に従う仮想カメラと天球の位置関係の変更の一例を示す模式図である。
【
図8】ある実施の形態に従う仮想カメラの視野角の変更の一例を示す模式図である。
【
図9】ある実施の形態に従う仮想空間と現実空間の関係の一例を示す模式図である。
【発明を実施するための形態】
【0011】
以下、この技術的思想の実施の形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。本開示において示される1以上の実施形態において、各実施形態が含む要素を互いに組み合わせることができ、かつ、当該組み合わせられた結果物も本開示が示す実施形態の一部をなすものとする。
【0012】
以下では、HMDシステムを用いてユーザにパノラマ画像を提供する場合を例に挙げて説明をするが、本開示は、この例に限定されない。本開示は、ユーザにパノラマ画像を提供するシステムであれば特に制限なく適用することができる。また、以下では、VR空間においてユーザにパノラマ画像を提供する場合を例に挙げているが、本開示は、VRだけではなく、AR(Augmented Reality)、MR(Mixed Reality)、SR(Substitutional Reality)等のいわゆるXR技術全般に適用することができる。
【0013】
本明細書において、「パノラマ画像」とは、例えば、画像が投影された天球の内部に配置された仮想カメラに基づいてユーザに提示される提示画像のことをいう。「パノラマ画像」には、いわゆる360度画像、180度画像、全天周画像、及び半天周画像と呼ばれるものが含まれる。「パノラマ画像」は、360度や180度ではない所定の角度の範囲で展開される画像であってもよい。また、「パノラマ画像」は、動画であっても静止画であってもよい。
【0014】
[HMDシステムの構成]
図1を参照して、HMD(Head-Mounted Device)システム100の構成について説明する。
図1は、本実施の形態に従うHMDシステム100の構成の概略を表す図である。HMDシステム100は、家庭用のシステムとしてあるいは業務用のシステムとして提供される。
【0015】
HMDシステム100は、サーバ600と、HMDセット110A,110B,110C,110Dと、外部機器700と、ネットワーク2とを含む。HMDセット110A,110B,110C,110Dの各々は、ネットワーク2を介してサーバ600や外部機器700と通信可能に構成される。以下、HMDセット110A,110B,110C,110Dを総称して、HMDセット110とも言う。HMDシステム100を構成するHMDセット110の数は、4つに限られず、3つ以下でも、5つ以上でもよい。HMDセット110は、HMD120と、コンピュータ200と、HMDセンサ410と、ディスプレイ430と、コントローラ300とを備える。HMD120は、モニタ130と、注視センサ140と、第1カメラ150と、第2カメラ160と、マイク170と、スピーカ180とを含む。コントローラ300は、モーションセンサ420を含み得る。
【0016】
ある局面において、コンピュータ200は、インターネットその他のネットワーク2に接続可能であり、ネットワーク2に接続されているサーバ600その他のコンピュータと通信可能である。その他のコンピュータとしては、例えば、他のHMDセット110のコンピュータや外部機器700が挙げられる。別の局面において、HMD120は、HMDセンサ410の代わりに、センサ190を含み得る。
【0017】
HMD120は、ユーザ5の頭部に装着され、動作中に仮想空間をユーザ5に提供し得る。より具体的には、HMD120は、右目用の画像および左目用の画像をモニタ130にそれぞれ表示する。ユーザ5の各目がそれぞれの画像を視認すると、ユーザ5は、両目の視差に基づき当該画像を3次元画像として認識し得る。HMD120は、モニタを備える所謂ヘッドマウントディスプレイと、スマートフォンその他のモニタを有する端末を装着可能なヘッドマウント機器のいずれをも含み得る。また、HMD120として、VRグラス、スマートグラス、ARグラス、MRグラス、コンタクトレンズディスプレイ等を用いてもよい。
【0018】
モニタ130は、例えば、非透過型の表示装置として実現される。ある局面において、モニタ130は、ユーザ5の両目の前方に位置するようにHMD120の本体に配置されている。したがって、ユーザ5は、モニタ130に表示される3次元画像を視認すると、仮想空間に没入することができる。ある局面において、仮想空間は、例えば、背景、ユーザ5が操作可能なオブジェクト、ユーザ5が選択可能なメニューの画像を含む。ある局面において、モニタ130は、所謂スマートフォンその他の情報表示端末が備える液晶モニタまたは有機EL(Electro Luminescence)モニタとして実現され得る。
【0019】
別の局面において、モニタ130は、透過型の表示装置として実現され得る。この場合、HMD120は、
図1に示されるようにユーザ5の目を覆う密閉型ではなく、メガネ型のような開放型であり得る。透過型のモニタ130は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。モニタ130は、仮想空間を構成する画像の一部と、現実空間とを同時に表示する構成を含んでいてもよい。例えば、モニタ130は、HMD120に搭載されたカメラで撮影した現実空間の画像を表示してもよいし、一部の透過率を高く設定することにより現実空間を視認可能にしてもよい。
【0020】
ある局面において、モニタ130は、右目用の画像を表示するためのサブモニタと、左目用の画像を表示するためのサブモニタとを含み得る。別の局面において、モニタ130は、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合、モニタ130は、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。
【0021】
ある局面において、HMD120は、図示せぬ複数の光源を含む。各光源は例えば、赤外線を発するLED(Light Emitting Diode)により実現される。HMDセンサ410は、HMD120の動きを検出するためのポジショントラッキング機能を有する。より具体的には、HMDセンサ410は、HMD120が発する複数の赤外線を読み取り、現実空間内におけるHMD120の位置および傾きを検出する。
【0022】
別の局面において、HMDセンサ410は、カメラにより実現されてもよい。この場合、HMDセンサ410は、カメラから出力されるHMD120の画像情報を用いて、画像解析処理を実行することにより、HMD120の位置および傾きを検出することができる。
【0023】
別の局面において、HMD120は、位置検出器として、HMDセンサ410の代わりに、あるいはHMDセンサ410に加えてセンサ190を備えてもよい。HMD120は、センサ190を用いて、HMD120自身の位置および傾きを検出し得る。例えば、センサ190が角速度センサ、地磁気センサ、あるいは加速度センサである場合、HMD120は、HMDセンサ410の代わりに、これらの各センサのいずれかを用いて、自身の位置および傾きを検出し得る。一例として、センサ190が角速度センサである場合、角速度センサは、現実空間におけるHMD120の3軸周りの角速度を経時的に検出する。HMD120は、各角速度に基づいて、HMD120の3軸周りの角度の時間的変化を算出し、さらに、角度の時間的変化に基づいて、HMD120の傾きを算出する。
【0024】
注視センサ140は、ユーザ5の右目および左目の視線が向けられる方向を検出する。つまり、注視センサ140は、ユーザ5の視線を検出する。視線の方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ140は、当該アイトラッキング機能を有するセンサにより実現される。ある局面において、注視センサ140は、右目用のセンサおよび左目用のセンサを含むことが好ましい。注視センサ140は、例えば、ユーザ5の右目および左目に赤外光を照射するとともに、照射光に対する角膜および虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。注視センサ140は、検出した各回転角に基づいて、ユーザ5の視線を検知することができる。
【0025】
第1カメラ150は、ユーザ5の顔の下部を撮影する。より具体的には、第1カメラ150は、ユーザ5の鼻および口などを撮影する。第2カメラ160は、ユーザ5の目および眉などを撮影する。HMD120のユーザ5側の筐体をHMD120の内側、HMD120のユーザ5とは逆側の筐体をHMD120の外側と定義する。ある局面において、第1カメラ150は、HMD120の外側に配置され、第2カメラ160は、HMD120の内側に配置され得る。第1カメラ150および第2カメラ160が生成した画像は、コンピュータ200に入力される。別の局面において、第1カメラ150と第2カメラ160とを1台のカメラとして実現し、この1台のカメラでユーザ5の顔を撮影するようにしてもよい。
【0026】
マイク170は、ユーザ5の発話を音声信号(電気信号)に変換してコンピュータ200に出力する。スピーカ180は、音声信号を音声に変換してユーザ5に出力する。別の局面において、HMD120は、スピーカ180に替えてイヤホンを含み得る。
【0027】
コントローラ300は、有線または無線によりコンピュータ200に接続されている。コントローラ300は、ユーザ5からコンピュータ200への命令の入力を受け付ける。ある局面において、コントローラ300は、ユーザ5によって把持可能に構成される。別の局面において、コントローラ300は、ユーザ5の身体あるいは衣類の一部に装着可能に構成される。さらに別の局面において、コントローラ300は、コンピュータ200から送信される信号に基づいて、振動、音、光のうちの少なくともいずれかを出力するように構成されてもよい。さらに別の局面において、コントローラ300は、ユーザ5から、仮想空間に配置されるオブジェクトの位置や動きを制御するための操作を受け付ける。
【0028】
ある局面において、コントローラ300は、複数の光源を含む。各光源は例えば、赤外線を発するLEDにより実現される。HMDセンサ410は、ポジショントラッキング機能を有する。この場合、HMDセンサ410は、コントローラ300が発する複数の赤外線を読み取り、現実空間内におけるコントローラ300の位置および傾きを検出する。別の局面において、HMDセンサ410は、カメラにより実現されてもよい。この場合、HMDセンサ410は、カメラから出力されるコントローラ300の画像情報を用いて、画像解析処理を実行することにより、コントローラ300の位置および傾きを検出することができる。
【0029】
モーションセンサ420は、ある局面において、ユーザ5の手に取り付けられて、ユーザ5の手の動きを検出する。例えば、モーションセンサ420は、手の回転速度、回転数等を検出する。検出された信号は、コンピュータ200に送られる。モーションセンサ420は、例えば、コントローラ300に設けられている。ある局面において、モーションセンサ420は、例えば、ユーザ5に把持可能に構成されたコントローラ300に設けられている。別の局面において、現実空間における安全のため、コントローラ300は、手袋型のようにユーザ5の手に装着されることにより容易に飛んで行かないものに装着される。さらに別の局面において、ユーザ5に装着されないセンサがユーザ5の手の動きを検出してもよい。例えば、ユーザ5を撮影するカメラの信号が、ユーザ5の動作を表わす信号として、コンピュータ200に入力されてもよい。モーションセンサ420とコンピュータ200とは、一例として、無線により互いに接続される。無線の場合、通信形態は特に限られず、例えば、Bluetooth(登録商標)その他の公知の通信手法が用いられる。
【0030】
ディスプレイ430は、モニタ130に表示されている画像と同様の画像を表示する。これにより、HMD120を装着しているユーザ5以外のユーザにも当該ユーザ5と同様の画像を視聴させることができる。ディスプレイ430に表示される画像は、3次元画像である必要はなく、右目用の画像や左目用の画像であってもよい。ディスプレイ430としては、例えば、液晶ディスプレイや有機ELモニタなどが挙げられる。
【0031】
サーバ600は、コンピュータ200にプログラムを送信し得る。別の局面において、サーバ600は、他のユーザによって使用されるHMD120に仮想現実を提供するための他のコンピュータ200と通信し得る。例えば、アミューズメント施設において、複数のユーザが参加型のゲームを行なう場合、各コンピュータ200は、各ユーザの動作に基づく信号をサーバ600を介して他のコンピュータ200と通信して、同じ仮想空間において複数のユーザが共通のゲームを楽しむことを可能にする。各コンピュータ200は、各ユーザの動作に基づく信号をサーバ600を介さずに他のコンピュータ200と通信するようにしてもよい。
【0032】
外部機器700は、コンピュータ200と通信可能な機器であればどのような機器であってもよい。外部機器700は、例えば、ネットワーク2を介してコンピュータ200と通信可能な機器であってもよいし、近距離無線通信や有線接続によりコンピュータ200と直接通信可能な機器であってもよい。外部機器700としては、例えば、スマートデバイス、PC(Personal Computer)、及びコンピュータ200の周辺機器などが挙げられるが、これらに限定されるものではない。
【0033】
[コンピュータのハードウェア構成]
図2を参照して、本実施の形態に係るコンピュータ200について説明する。
図2は、本実施の形態に従うコンピュータ200のハードウェア構成の一例を表すブロック図である。コンピュータ200は、主たる構成要素として、プロセッサ210と、メモリ220と、ストレージ230と、入出力インターフェイス240と、通信インターフェイス250とを備える。各構成要素は、それぞれ、バス260に接続されている。
【0034】
プロセッサ210は、コンピュータ200に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ220またはストレージ230に格納されているプログラムに含まれる一連の命令を実行する。ある局面において、プロセッサ210は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、MPU(Micro Processor Unit)、FPGA(Field-Programmable Gate Array)その他のデバイスとして実現される。
【0035】
メモリ220は、プログラムおよびデータを一時的に保存する。プログラムは、例えば、ストレージ230からロードされる。データは、コンピュータ200に入力されたデータと、プロセッサ210によって生成されたデータとを含む。ある局面において、メモリ220は、RAM(Random Access Memory)その他の揮発メモリとして実現される。
【0036】
ストレージ230は、プログラムおよびデータを永続的に保持する。ストレージ230は、例えば、ROM(Read-Only Memory)、ハードディスク装置、フラッシュメモリ、その他の不揮発記憶装置として実現される。ストレージ230に格納されるプログラムは、HMDシステム100において仮想空間を提供するためのプログラム、シミュレーションプログラム、ゲームプログラム、ユーザ認証プログラム、他のコンピュータ200との通信を実現するためのプログラムを含む。ストレージ230に格納されるデータは、仮想空間を規定するためのデータおよびオブジェクト等を含む。
【0037】
別の局面において、ストレージ230は、メモリカードのように着脱可能な記憶装置として実現されてもよい。さらに別の局面において、コンピュータ200に内蔵されたストレージ230の代わりに、外部の記憶装置に保存されているプログラムおよびデータを使用する構成が使用されてもよい。このような構成によれば、例えば、アミューズメント施設のように複数のHMDシステム100が使用される場面において、プログラムやデータの更新を一括して行なうことが可能になる。
【0038】
入出力インターフェイス240は、HMD120、HMDセンサ410、モーションセンサ420およびディスプレイ430との間で信号を通信する。HMD120に含まれるモニタ130,注視センサ140,第1カメラ150,第2カメラ160,マイク170およびスピーカ180は、HMD120の入出力インターフェイス240を介してコンピュータ200との通信を行ない得る。ある局面において、入出力インターフェイス240は、USB(Universal Serial Bus)、DVI(Digital Visual Interface)、HDMI(登録商標)(High-Definition Multimedia Interface)その他の端子を用いて実現される。入出力インターフェイス240は上述のものに限られない。
【0039】
ある局面において、入出力インターフェイス240は、さらに、コントローラ300と通信し得る。例えば、入出力インターフェイス240は、コントローラ300およびモーションセンサ420から出力された信号の入力を受ける。別の局面において、入出力インターフェイス240は、プロセッサ210から出力された命令を、コントローラ300に送る。当該命令は、振動、音声出力、発光等をコントローラ300に指示する。コントローラ300は、当該命令を受信すると、その命令に応じて、振動、音声出力または発光のいずれかを実行する。
【0040】
通信インターフェイス250は、ネットワーク2に接続されて、ネットワーク2に接続されている他のコンピュータ(例えば、サーバ600)と通信する。ある局面において、通信インターフェイス250は、例えば、LAN(Local Area Network)その他の有線通信インターフェイス、あるいは、WiFi(Wireless Fidelity)、Bluetooth(登録商標)、NFC(Near Field Communication)その他の無線通信インターフェイスとして実現される。通信インターフェイス250は上述のものに限られない。
【0041】
ある局面において、プロセッサ210は、ストレージ230にアクセスし、ストレージ230に格納されている1つ以上のプログラムをメモリ220にロードし、当該プログラムに含まれる一連の命令を実行する。当該1つ以上のプログラムは、コンピュータ200のオペレーティングシステム、仮想空間を提供するためのアプリケーションプログラム、仮想空間で実行可能なゲームソフトウェア等を含み得る。プロセッサ210は、入出力インターフェイス240を介して、仮想空間を提供するための信号をHMD120に送る。HMD120は、その信号に基づいてモニタ130に画像を表示する。本実施形態において、プロセッサ210は、ストレージ230に記憶されているプログラム231を読み込みことで、生成部211、出力部212、取得部213、及び変更部214として機能しうる。これら各部の機能については、後の段落で詳述する。
【0042】
図2に示される例では、コンピュータ200は、HMD120の外部に設けられる構成が示されているが、別の局面において、コンピュータ200は、HMD120に内蔵されてもよい。一例として、モニタ130を含む携帯型の情報通信端末(例えば、スマートフォン)がコンピュータ200として機能してもよい。
【0043】
コンピュータ200は、複数のHMD120に共通して用いられる構成であってもよい。このような構成によれば、例えば、複数のユーザに同一の仮想空間を提供することもできるので、各ユーザは同一の仮想空間で他のユーザと同一のアプリケーションを楽しむことができる。
【0044】
ある実施の形態において、HMDシステム100では、現実空間における座標系である実座標系が予め設定されている。実座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、並びに、鉛直方向および水平方向の双方に直交する前後方向にそれぞれ平行な、3つの基準方向(軸)を有する。実座標系における水平方向、鉛直方向(上下方向)、および前後方向は、それぞれ、x軸、y軸、z軸と規定される。より具体的には、実座標系において、x軸は現実空間の水平方向に平行である。y軸は、現実空間の鉛直方向に平行である。z軸は現実空間の前後方向に平行である。
【0045】
ある局面において、HMDセンサ410は、赤外線センサを含む。赤外線センサが、HMD120の各光源から発せられた赤外線をそれぞれ検出すると、HMD120の存在を検出する。HMDセンサ410は、さらに、各点の値(実座標系における各座標値)に基づいて、HMD120を装着したユーザ5の動きに応じた、現実空間内におけるHMD120の位置および傾き(向き)を検出する。より詳しくは、HMDセンサ410は、経時的に検出された各値を用いて、HMD120の位置および傾きの時間的変化を検出できる。
【0046】
HMDセンサ410によって検出されたHMD120の各傾きは、実座標系におけるHMD120の3軸周りの各傾きに相当する。HMDセンサ410は、実座標系におけるHMD120の傾きに基づき、uvw視野座標系をHMD120に設定する。HMD120に設定されるuvw視野座標系は、HMD120を装着したユーザ5が仮想空間において物体を見る際の視点座標系に対応する。
【0047】
[uvw視野座標系]
図3を参照して、uvw視野座標系について説明する。
図3は、ある実施の形態に従うHMD120に設定されるuvw視野座標系を概念的に表す図である。HMDセンサ410は、HMD120の起動時に、実座標系におけるHMD120の位置および傾きを検出する。プロセッサ210は、検出された値に基づいて、uvw視野座標系をHMD120に設定する。
【0048】
図3に示されるように、HMD120は、HMD120を装着したユーザ5の頭部を中心(原点)とした3次元のuvw視野座標系を設定する。より具体的には、HMD120は、実座標系を規定する水平方向、鉛直方向、および前後方向(x軸、y軸、z軸)を、実座標系内においてHMD120の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる3つの方向を、HMD120におけるuvw視野座標系のピッチ軸(u軸)、ヨー軸(v軸)、およびロール軸(w軸)として設定する。
【0049】
ある局面において、HMD120を装着したユーザ5が直立し、かつ、正面を視認している場合、プロセッサ210は、実座標系に平行なuvw視野座標系をHMD120に設定する。この場合、実座標系における水平方向(x軸)、鉛直方向(y軸)、および前後方向(z軸)は、HMD120におけるuvw視野座標系のピッチ軸(u軸)、ヨー軸(v軸)、およびロール軸(w軸)に一致する。
【0050】
uvw視野座標系がHMD120に設定された後、HMDセンサ410は、HMD120の動きに基づいて、設定されたuvw視野座標系におけるHMD120の傾きを検出できる。この場合、HMDセンサ410は、HMD120の傾きとして、uvw視野座標系におけるHMD120のピッチ角(θu)、ヨー角(θv)、およびロール角(θw)をそれぞれ検出する。ピッチ角(θu)は、uvw視野座標系におけるピッチ軸周りのHMD120の傾き角度を表す。ヨー角(θv)は、uvw視野座標系におけるヨー軸周りのHMD120の傾き角度を表す。ロール角(θw)は、uvw視野座標系におけるロール軸周りのHMD120の傾き角度を表す。
【0051】
HMDセンサ410は、検出されたHMD120の傾きに基づいて、HMD120が動いた後のHMD120におけるuvw視野座標系を、HMD120に設定する。HMD120と、HMD120のuvw視野座標系との関係は、HMD120の位置および傾きに関わらず、常に一定である。HMD120の位置および傾きが変わると、当該位置および傾きの変化に連動して、実座標系におけるHMD120のuvw視野座標系の位置および傾きが変化する。
【0052】
ある局面において、HMDセンサ410は、赤外線センサからの出力に基づいて取得される赤外線の光強度および複数の点間の相対的な位置関係(例えば、各点間の距離など)に基づいて、HMD120の現実空間内における位置を、HMDセンサ410に対する相対位置として特定してもよい。プロセッサ210は、特定された相対位置に基づいて、現実空間内(実座標系)におけるHMD120のuvw視野座標系の原点を決定してもよい。
【0053】
[プロセッサの機能]
図2に示したように、本実施形態において、プロセッサ210は、プログラム231を読み込みことで、生成部211、出力部212、取得部213、及び変更部214として機能しうる。以下、これらの各機能について説明をする。
【0054】
生成部211は、画像が投影された天球の内部に配置された仮想カメラに基づいて、ユーザ5に提示する提示画像を生成する。仮想カメラの向き、仮想カメラと天球の位置関係、又は仮想カメラの視野角が変更されることに応じて、提示画像も変更されうる。提示画像の変更は、例えば、仮想カメラの向き等の変更に応じて、その時にHMD120に出力すべき画像をリアルタイムで描画して行う形式でもよい。また、提示画像の変更は、例えば、仮想カメラの視野外の画像についても予め描画しておき、仮想カメラの向き等の変更に応じて、その時にHMD120に出力する画像の範囲を変更する形式でもよい。天球に投影される画像は、例えば、サーバ600、外部機器700、又はストレージ230から取得したデータに基づいて生成されうる。なお、天球は、半径が無限遠に設定されているような大きなものではなく、所定の長さの半径を有するものである。
【0055】
出力部212は、生成部211が生成した提示画像を表示装置であるHMD120に出力する。提示画像が出力される表示装置は、HMD120に限定されず、その他の表示装置であってもよい。表示装置に出力された提示画像は、パノラマ画像としてユーザ5に提供される。
【0056】
取得部213は、センサ部によって検出されるユーザ5の身体の少なくとも一部の動きに関する動作情報を取得する。センサ部は、ユーザ5の身体の少なくとも一部の動きを検出可能なものであれば特に限定はされない。センサ部は、例えば、注視センサ140、センサ190、HMDセンサ410及びモーションセンサ420のうちの1以上によって構成される。なお、ユーザ5の身体の少なくとも一部とは、例えば、ユーザ5の頭部、手、指、及び目のうちの1以上が挙げられるが、センサ部によって動きを把握できる部位であれば、特に限定はされない。
【0057】
動作情報は、例えば、所定の基準平面に対するユーザ5の身体の少なくとも一部の傾きに関する傾き情報を含んでもよい。所定の基準平面としては、例えば、uvw視野座標系のピッチ軸(u軸)、ヨー軸(v軸)、及びロール軸(w軸)のうちのいずれか2つの軸を含む平面が挙げられ、好ましくはピッチ軸(u軸)及びロール軸(w軸)を含む平面が挙げられるが、これに限定されない。また、動作情報は、例えば、上述の基準平面に平行な方向におけるユーザ5の身体の少なくとも一部の動きに関する第1動作情報を含んでもよい。
【0058】
変更部214は、取得部213が取得した動作情報に基づいて、仮想カメラと天球の位置関係又は仮想カメラの視野角を変更する。この変更によって、生成部211が生成する画像は拡大又は縮小される。変更部214は、例えば、上述の傾き情報及び第1動作情報のうちの1以上に基づいて、仮想カメラと天球の位置関係又は仮想カメラの視野角を変更する。
【0059】
ある局面において、変更部214は、天球内において仮想カメラの位置を移動させる。この場合、天球の半径を変更しないことが好ましいが、変更してもよい。また、ある局面において、変更部214は、天球の大きさ(半径)を変更する。この場合、仮想カメラの位置を変更しないことが好ましいが、変更してもよい。また、変更部214が仮想カメラの視野角を変更する場合、仮想カメラの位置及び天球の大きさを変更しないことが好ましいが、変更してもよい。なお、変更部214は、取得部213が取得した動作情報に基づいて仮想カメラの向きを変更しうる。
【0060】
変更部214による上記のような位置関係又は視野角の変更は、動作情報が所定の条件を満たした場合に実行されることが好ましい。所定の条件としては、例えば、ユーザ5の身体の少なくとも一部が、身体の少なくとも一部の周囲に設定された第1領域を超えて動くことが挙げられる。第1領域は、提示画像の拡大や縮小を意図していない小さな動作によって上記の変更がなされることを抑制する目的で設けられた領域である。第1領域の大きさは、上記目的を達成できる範囲であれば特に制限はされず、センサ部による動作検出の対象となる身体の部位に応じて適宜設定することができる。第1領域の大きさは、例えば、ユーザ5の年齢、性別、身長等に基づいて予め設定された値を持っていてもよいし、ユーザ5が任意に設定してもよい。ユーザ5の頭部の動きを検出対象とする場合、第1領域は、例えば、ユーザ5の頭部を中心とした半径5~150cmの球状または円状の領域としてもよい。これはユーザが座った座位の姿勢をとる場合と立った姿勢をとる場合で範囲が異なるためである。座位の場合は上限を50cm、立位の場合は上限を150cmとすることが考えられる。また、ユーザがいる空間の規模に応じて範囲を設定することも可能である。
【0061】
また、所定の条件は、例えば、動きの変化量が所定の閾値以上であることとしてもよい。動きの変化量とは、例えば、ユーザ5の身体の少なくとも一部の単位時間当たりの移動量である。この条件も、提示画像の拡大や縮小を意図していない小さな動作によって上記の変更がなされることを抑制する目的で設定されるものである。したがって、所定の閾値の大きさは、上記目的を達成できる範囲であれば特に制限はされず、センサ部による動作検出の対象となる身体の部位に応じて適宜設定することができる。所定の閾値の大きさは、例えば、ユーザ5の年齢、性別、身長等に基づいて予め設定された値を持っていてもよいし、ユーザ5が任意に設定してもよい。ユーザ5の頭部の動きを検出対象とする場合、所定の閾値は、例えば、0.1~1秒当たり5~50cmの範囲としてもよい。また、動きの変化量に加えて又は代えて、動きの速度や加速度が所定の閾値以上であることを所定の条件としてもよい。
【0062】
また、所定の条件は、動作情報に含まれる傾き情報が示す傾きの大きさが所定の範囲内にあることとしてもよい。すなわち、傾き情報が示す傾きの大きさが所定の範囲外にある場合、上記のような位置関係又は視野角の変更を実行しないようにしてもよい。具体的には、変更部214は、傾き情報が示す傾きの大きさが所定の範囲内にある場合に、上述の基準平面に平行な方向におけるユーザ5の身体の少なくとも一部の動き(第1動作情報)に基づいて、上記の位置関係又は視野角を変更するように構成してもよい。この条件は、提示画像の拡大や縮小を意図していないと思われる動作中に上記の変更がなされることを抑制する目的で設定されるものである。提示画像の拡大や縮小を意図していないと思われる動作とは、例えば、ストレッチのために顔を真上や真下に向けるような動作などが挙げられる。所定の範囲は、上記目的を達成できる範囲であれば特に制限はされず、センサ部による動作検出の対象となる身体の部位に応じて適宜設定することができる。
【0063】
[動作処理]
次に、本実施形態に係るHMDシステム100による動作処理について説明をする。以下では、センサ部によってユーザ5の頭部の動きに関する動作情報を取得する場合を例に挙げるが、本開示は、この例に限定されるものではない。また、本明細書において説明するフローチャートを構成する各処理の順序は、処理内容に矛盾や不整合が生じない範囲で順不同であり、並列的に実行されてもよい。
【0064】
図4は、ある実施の形態に従う動作処理の一例を示すフローチャートである。まず、ステップS1において、プロセッサ210は、仮想空間を生成する。仮想空間は、例えば、ストレージ230、サーバ600、又は外部機器700から取得したデータに基づいて生成される。仮想空間には、仮想カメラと、所定の長さの半径を有する天球が含まれる。仮想空間には、その他の仮想オブジェクトが含まれてもよい。
【0065】
ステップS2において、プロセッサ210は、天球に画像を投影する。ステップS3において、プロセッサ210は、画像が投影された天球の内部に配置された仮想カメラに基づいて、ユーザ5に提示する提示画像(パノラマ画像)を生成する。次に、ステップS4において、プロセッサ210は、ステップS3で生成した提示画像を表示装置であるHMD120へと出力する。
【0066】
ステップS5において、プロセッサ210は、センサ部によって検出されたユーザ5の頭部の動きに関する動作情報を取得する。ステップS5は、所定の時間間隔で繰り返し実行されうる。ステップS5で取得した動作情報が所定の条件を満たさない場合(ステップS6においてNo)、後述のステップS7の処理は実行されない。ステップS5における所定の条件は、上述した各条件のうちの1以上とすることが好ましい。
【0067】
ステップS5で取得した動作情報が所定の条件を満たす場合(ステップS6においてYes)、ステップS7において、プロセッサ210は、その動作情報に基づいて、仮想カメラと天球の位置関係又は仮想カメラの視野角を変更し、終了する。ステップS7の処理によって、提示画像は、拡大又は縮小される。
【0068】
以下、
図5から
図9を用いて、
図4のフローチャートに示されるいくつかの処理に関してより具体的に説明をする。
図5は、ある実施の形態に従う提示画像500の拡大及び縮小の一例を示す模式図である。
図5の提示画像500は、
図4のステップS4にてHMD120へ出力される画像である。
図5の例において、提示画像500には、キャラクタ501及びオブジェクト502が含まれている。提示画像500A及び500Bは、提示画像500が拡大又は縮小されたものである。
【0069】
提示画像500Aは、ステップS5で取得した動作情報Aに基づいてステップS7の処理を実行した結果、提示画像500が拡大されたものである。提示画像500Aにおけるキャラクタ501及びオブジェクト502は、提示画像500におけるキャラクタ501及びオブジェクト502よりも拡大されている。また、拡大された結果、天球に投影された画像のうちで提示画像500Aに含まれる範囲は、提示画像500よりも狭くなっている。なお、動作情報Aは、特に制限はされないが、例えば、ユーザ5が頭部を現在の視線方向側(以下、「前方側」とも称する)に動かしたことを示す情報を含むものである。
【0070】
提示画像500Bは、ステップS5で取得した動作情報Bに基づいてステップS7の処理を実行した結果、提示画像500が縮小されたものである。提示画像500Bにおけるキャラクタ501及びオブジェクト502は、提示画像500におけるキャラクタ501及びオブジェクト502よりも縮小されている。また、縮小された結果、天球に投影された画像のうちで提示画像500Bに含まれる範囲は提示画像500よりも広くなっており、提示画像500Bには、提示画像500には含まれていなかったオブジェクト503が含まれている。なお、動作情報Bは、特に制限はされないが、例えば、ユーザ5が頭部を現在の視線方向とは反対側(以下、「後方側」とも称する)に動かしたことを示す情報を含むものである。
【0071】
図6から
図8は、
図4のステップS7の処理に関連する。
図6は、ある実施の形態に従う仮想カメラ602と天球601の位置関係の変更の一例を示す模式図である。具体的には、
図6は、ステップS7において天球601内の仮想カメラ602の位置を移動させることによって、提示画像500を拡大又は縮小する場合の例である。なお、
図6の例では、天球601の半径r1及び仮想カメラ602の視野角θ1は変更していないが、動作情報又はユーザ5によるその他の操作入力に応じて、半径r1及び視野角θ1のうちの少なくとも一方を変更するように構成してもよい。
【0072】
図6に示す状態610は、ステップS4における天球601及び仮想カメラ602との位置関係の一例を示している。状態610において、仮想カメラ602は、天球601の中心である位置P1に配置されている。状態610においてHMD120に出力される画像は、例えば、
図5に示す提示画像500である。
【0073】
状態610Aは、状態610のときに取得した動作情報Aに基づいて、ステップS7の処理を実行した後の状態である。状態610Aにおいて、仮想カメラ602は、位置P2に位置している。位置P2は、位置P1よりも前方側にある。すなわち、ステップS7において、仮想カメラ602を前方側へ移動させ、天球601との位置関係を変更したことになる。言い換えると、前方側において、仮想カメラ602と天球601との距離を近づけたことになる。よって、状態610AにおいてHMD120に出力される画像は、状態610において出力される画像を拡大したものとなり、例えば、
図5に示す提示画像500Aとなる。
【0074】
状態610Bは、状態610のときに取得した動作情報Bに基づいて、ステップS7の処理を実行した後の状態である。状態610Bにおいて、仮想カメラ602は、位置P3に位置している。位置P3は、位置P1よりも後方側にある。すなわち、ステップS7において、仮想カメラ602を後方側へ移動させ、天球601との位置関係を変更したことになる。言い換えると、前方側において、仮想カメラ602と天球601との距離を遠ざけたことになる。よって、状態610BにおいてHMD120に出力される画像は、状態610において出力される画像を縮小したものとなり、例えば、
図5に示す提示画像500Bとなる。
【0075】
図7は、ある実施の形態に従う仮想カメラ602と天球601の位置関係の変更の一例を示す模式図である。具体的には、
図7は、ステップS7において天球601の半径r1の大きさを変更することによって、提示画像500を拡大又は縮小する場合の例である。なお、
図7の例では、仮想カメラ602の位置P1及び視野角θ1は変更していないが、動作情報又はユーザ5によるその他の操作入力に応じて、位置P1及び視野角θ1のうちの少なくとも一方を変更するように構成してもよい。
【0076】
図7に示す状態610は、
図6に示す状態610と同様であるため説明を省略する。状態710Aは、状態610のときに取得した動作情報Aに基づいて、ステップS7の処理を実行した後の状態である。状態710Aにおける天球601Aは、天球601の半径r1よりも小さい半径r2を有する。すなわち、ステップS7において、天球601を小さくして天球601Aにする処理がなされている。その結果、前方側において、仮想カメラ602と天球601Aとの距離は、仮想カメラ602と天球601との距離よりも短くなっている。よって、状態710AにおいてHMD120に出力される画像は、状態610において出力される画像を拡大したものとなり、例えば、
図5に示す提示画像500Aとなる。
【0077】
状態710Bは、状態610のときに取得した動作情報Bに基づいて、ステップS7の処理を実行した後の状態である。状態710Bにおける天球601Bは、天球601の半径r1よりも大きい半径r3を有する。すなわち、ステップS7において、天球601を大きくして天球601Bにする処理がなされている。その結果、前方側において、仮想カメラ602と天球601Bとの距離は、仮想カメラ602と天球601との距離よりも長くなっている。よって、状態710BにおいてHMD120に出力される画像は、状態610において出力される画像を縮小したものとなり、例えば、
図5に示す提示画像500Bとなる。
【0078】
図8は、ある実施の形態に従う仮想カメラと天球の位置関係の変更の一例を示す模式図である。具体的には、
図8は、ステップS7において仮想カメラ602の視野角θ1の大きさを変更することによって、提示画像500を拡大又は縮小する場合の例である。なお、
図8の例では、天球601の半径r1及び仮想カメラ602の位置P1は変更していないが、動作情報又はユーザ5によるその他の操作入力に応じて、半径r1及び位置P1のうちの少なくとも一方を変更するように構成してもよい。
【0079】
図8に示す状態610は、
図6に示す状態610と同様であるため説明を省略する。状態810Aは、状態610のときに取得した動作情報Aに基づいて、ステップS7の処理を実行した後の状態である。状態810Aにおける仮想カメラ602の視野角θ2は、状態610における仮想カメラ602の視野角θ1よりも小さい。すなわち、ステップS7において、仮想カメラ602の視野角が視野角θ1より小さくなるように変更する処理がなされている。その結果、仮想カメラ602の視野に含まれる天球601の範囲は狭くなり、その狭い範囲が拡大されてユーザ5に提供される。すなわち、状態810AにおいてHMD120に出力される画像は、状態610において出力される画像を拡大したものとなり、例えば、
図5に示す提示画像500Aとなる。
【0080】
状態810Bは、状態610のときに取得した動作情報Bに基づいて、ステップS7の処理を実行した後の状態である。状態810Bにおける仮想カメラ602の視野角θ3は、状態610における仮想カメラ602の視野角θ1よりも大きい。すなわち、ステップS7において、仮想カメラ602の視野角が視野角θ1より大きくなるように変更する処理がなされている。その結果、仮想カメラ602の視野に含まれる天球601の範囲は広くなり、その広い範囲が縮小されてユーザ5に提供される。すなわち、状態810BにおいてHMD120に出力される画像は、状態610において出力される画像を縮小したものとなり、例えば、
図5に示す提示画像500Bとなる。
【0081】
図9は、
図4のステップS5からステップS7の処理に関連する。
図9は、ある実施の形態に従う仮想空間901Aと現実空間901Bの関係の一例を示す模式図である。
図9の例では、仮想カメラ602は位置P1に存在しており、ユーザ5は位置Q1に存在している。センサ部は、例えば、現実空間901Bにおけるユーザ5の頭部の動きを検出し、動作情報としてコンピュータ200に送信する。プロセッサ210は、動作情報が所定の条件を満たした場合に、例えば、仮想空間901Aにおける仮想カメラ602の位置及び視野角、並びに天球601の半径r1のうちの1以上を変更する。
【0082】
現実空間901Bにおいて、ユーザ5の頭部の位置(
図9では位置Q1)の周囲に境界線904が設定されている。境界線904の内部は、第1領域として設定されている。仮想空間901Aにおける境界線604は、境界線904に対応する。ユーザ5の頭部の位置が境界線904を超えて動いた場合、ステップS6において所定の条件を満たすと判定され、例えば、仮想カメラ602が境界線604を超えて動く等、上述したようなステップS7の処理が実行される。一方で、ユーザ5の頭部の位置が境界線904を超えて動かない場合、ステップS6において所定の条件を満たすとは判定されず、例えば、仮想カメラ602の位置の変更等はなされない。
【0083】
なお、
図9の例において、境界線904は、例えば、ユーザ5の頭部の位置を中心とする、半径R5の球体の外縁である。境界線904は、例えば、基準平面上にある半径R5の円の外縁としてしてもよい。境界線904は、例えば、その位置をリセットするための操作がユーザ5によってなされるまでは同じ位置であってもよい。また、境界線904は、例えば、所定の時間間隔又はユーザ5の頭部の動きが停止する等のタイミングで、そのときのユーザ5の頭部の位置を中心として設定されてもよい。境界線604は、例えば、仮想カメラ602の位置を中心とする、半径r5の球体又は円の外縁である。境界線604の位置は、境界線904に応じて変更される。
【0084】
また、仮想空間901Aには、境界線603が設定されている。境界線603は、例えば、天球601の内縁よりも内側に設けられ、中心が位置P1であり、半径r4(<r1)の球体の外縁である。境界線603の内側の領域は、仮想カメラ602が移動可能な移動可能領域として設定されている。仮想空間901Aにおける境界線903は、境界線603に対応するものであるが、ユーザ5が境界線903を超えて動いたとしても、仮想カメラ602が境界線603の外側へ移動することはない。なお、境界線603の半径r4と境界線903の半径R4との比(r4/R4)は、ユーザ5が動いた距離に対して仮想カメラ602がどれだけ動くかを示す尺度となる。半径r4と半径R4の比は、特に制限されず、投影する画像の種類やユーザの選択等に応じて適宜設定可能である。
【0085】
ここで、ステップS7が天球601の半径r1を変更する処理を含む場合は、半径r1の最小値及び最大値が設定されていることが好ましい。すなわち、例えば、ユーザ5が前方側へ進むほど天球601の半径r1が小さくなるように設定されている場合であっても、半径r1が最小値に達した後は、ユーザ5がそれ以上前方側へ進んだとしても半径の変更はなされないことが好ましい。同様に、例えば、後方側へ進むほど天球601の半径r1が大きくなるように設定されている場合であっても、半径r1が最大値に達した後は、ユーザ5がそれ以上後方側へ進んだとしても半径の変更はなされないことが好ましい。半径r1の最小値及び最大値は、特に制限されず、投影する画像の種類やユーザの選択等に応じて適宜設定可能である。
【0086】
同様に、ステップS7が仮想カメラ602の視野角θ1を変更する処理を含む場合は、視野角θ1の最小値及び最大値が設定されていることが好ましい。すなわち、例えば、ユーザ5が前方側へ進むほど視野角θ1が小さくなるように設定されている場合であっても、視野角θ1が最小値に達した後は、ユーザ5がそれ以上前方側へ進んだとしても視野角の変更はなされないことが好ましい。同様に、例えば、後方側へ進むほど天球601の視野角θ1が大きくなるように設定されている場合であっても、視野角θ1が最大値に達した後は、ユーザ5がそれ以上後方側へ進んだとしても視野角の変更はなされないことが好ましい。視野角θ1の最小値及び最大値は、特に制限されず、投影する画像の種類やユーザの選択等に応じて適宜設定可能である。
【0087】
上記の実施形態は、本発明の理解を容易にするための例示に過ぎず、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその均等物が含まれることは言うまでもない。
【0088】
[付記事項]
本開示の内容を列記すると以下の通りである。
【0089】
(項目1)
プロセッサを備えたコンピュータにおいて実行されるプログラムであって、
前記プログラムは、前記プロセッサに、
画像が投影された天球の内部に配置された仮想カメラに基づいて、ユーザに提示する提示画像を生成するステップと、
前記提示画像を表示装置に出力するステップと、
センサ部によって検出される前記ユーザの身体の少なくとも一部の動きに関する動作情報を取得するステップと、
前記動作情報に基づいて、前記仮想カメラと前記天球の位置関係又は前記仮想カメラの視野角を変更するステップと、を実行させる、
プログラム。
これにより、パノラマ画像をユーザに提供する場合において、ユーザビリティを向上させる。具体的には、ユーザは、身体の少なくとも一部を動かすことによって、パノラマ画像を拡大又は縮小して見ることが可能になる。また、これらにより、新たなユーザ体験を提供することが可能になる。
【0090】
(項目2)
前記変更するステップは、前記天球内において前記仮想カメラの位置を移動させることを含む、
項目1に記載のプログラム。
これにより、ユーザの動作に応じて仮想カメラの位置が動くことになるため、ユーザは、パノラマ画像の拡大又は縮小を直感的に行うことが可能になる。
【0091】
(項目3)
前記天球の内縁よりも内側に、前記仮想カメラが移動可能な移動可能領域が設定されている、
項目2に記載のプログラム。
これにより、仮想カメラが天球を超えて動くことを防止し、ユーザにとってパノラマ画像が見えなくなる又は拡大されすぎて見えにくいといった事態が生じることが抑制できる。
【0092】
(項目4)
前記変更するステップは、前記天球の大きさを変更することを含む、
項目1に記載のプログラム。
これにより、ユーザの動作に応じて天球の大きさが変わることになるため、ユーザは、パノラマ画像の拡大又は縮小を直感的に行うことが可能になる。
【0093】
(項目5)
前記変更するステップは、前記身体の少なくとも一部が、前記身体の少なくとも一部の周囲に設定された第1領域を超えて動いた場合に実行される、
項目1から項目4のいずれか一項に記載のプログラム。
これにより、パノラマ画像の拡大や縮小を意図していない小さな動作によって拡大や縮小がなされることを抑制でき、結果として、さらにユーザビリティを向上することができる。
【0094】
(項目6)
前記変更するステップは、前記動きの変化量が所定の閾値以上である場合に実行される、
項目1から項目4のいずれか一項に記載のプログラム。
これにより、パノラマ画像の拡大や縮小を意図していない小さな動作によって拡大や縮小がなされることを抑制でき、結果として、さらにユーザビリティを向上することができる。
【0095】
(項目7)
前記動作情報は、所定の基準平面に対する前記ユーザの身体の少なくとも一部の傾きに関する傾き情報を含み、
前記変更するステップは、前記基準平面に平行な方向における前記動きに基づいて、前記位置関係又は前記視野角を変更することを含み、
前記変更するステップは、前記傾きの大きさが所定の範囲外にある場合には実行されない、
項目1から項目6のいずれか一項に記載のプログラム。
これにより、パノラマ画像の拡大や縮小を意図していないと思われる動作によって拡大や縮小がなされることを抑制でき、結果として、さらにユーザビリティを向上することができる。
【0096】
(項目8)
前記表示装置は、ヘッドマウントデバイスであり、
前記検出するステップは、前記ユーザの頭部の動きを前記センサ部によって検出することを含む、
項目1から項目7のいずれか一項に記載のプログラム。
この態様は、本開示の好ましい適用例である。
【0097】
(項目9)
プロセッサを備えたコンピュータにおいて実行される情報処理方法であって、
前記情報処理方法は、前記プロセッサに、
画像が投影された天球の内部に配置された仮想カメラに基づいて、ユーザに提示する提示画像を生成するステップと、
前記提示画像を表示装置に出力するステップと、
センサ部によって検出される前記ユーザの身体の少なくとも一部の動きに関する動作情報を取得するステップと、
前記動作情報に基づいて、前記仮想カメラと前記天球の位置関係又は前記仮想カメラの視野角を変更するステップと、を実行させることを含む、
情報処理方法。
これにより、パノラマ画像をユーザに提供する場合において、ユーザビリティを向上させる。具体的には、ユーザは、身体の少なくとも一部を動かすことによって、提示画像を拡大又は縮小して見ることが可能になる。また、これらにより、新たなユーザ体験を提供することが可能になる。
【0098】
(項目10)
プロセッサを備えた情報処理装置であって、
前記プロセッサは、
画像が投影された天球の内部に配置された仮想カメラに基づいて、ユーザに提示する提示画像を生成し、
前記提示画像を表示装置に出力し、
センサ部によって検出される前記ユーザの身体の少なくとも一部の動きに関する動作情報を取得し、
前記動作情報に基づいて、前記仮想カメラと前記天球の位置関係又は前記仮想カメラの視野角を変更する、
情報処理装置。
これにより、パノラマ画像をユーザに提供する場合において、ユーザビリティを向上させる。具体的には、ユーザは、身体の少なくとも一部を動かすことによって、提示画像を拡大又は縮小して見ることが可能になる。また、これらにより、新たなユーザ体験を提供することが可能になる。
【符号の説明】
【0099】
100:HMDシステム
110,110A,110B,110C,110D:HMDセット
120:HMD
200:コンピュータ
210:プロセッサ
220:メモリ
230:ストレージ
600:サーバ
700:外部機器
【手続補正書】
【提出日】2023-01-13
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータを、
画像が投影された天球内の仮想カメラに基づいて、ユーザに提示する提示画像を生成する生成手段と、
前記提示画像を出力する出力手段と、
センサ部によって検出される前記ユーザの身体の少なくとも一部の動きに関する動作情報を取得する取得手段と、
前記動作情報に基づいて、前記ユーザに提示される前記提示画像の拡大又は縮小を制御する制御手段、として機能させる、
プログラム。
【請求項2】
前記制御手段は、前記動作情報に基づいて前記仮想カメラと前記天球の位置関係又は前記仮想カメラの視野角を変更することで、前記ユーザに提示される前記提示画像の拡大又は縮小を制御する、請求項1に記載のプログラム。
【請求項3】
前記制御手段は、前記天球内において前記仮想カメラの位置を移動させる、
請求項1に記載のプログラム。
【請求項4】
前記天球の内縁よりも内側に、前記仮想カメラが移動可能な移動可能領域が設定されている、
請求項3に記載のプログラム。
【請求項5】
前記制御手段は、前記天球の大きさを変更する、
請求項1に記載のプログラム。
【請求項6】
前記制御手段は、前記身体の少なくとも一部が、前記身体の少なくとも一部の周囲に設定された第1領域を超えて動いた場合に前記提示画像の拡大又は縮小を制御する、
請求項1から請求項5のいずれか一項に記載のプログラム。
【請求項7】
前記制御手段は、前記動きの変化量が所定の閾値以上である場合に前記提示画像の拡大又は縮小を制御する、
請求項1から請求項5のいずれか一項に記載のプログラム。
【請求項8】
前記動作情報は、所定の基準平面に対する前記ユーザの身体の少なくとも一部の傾きに関する傾き情報を含み、
前記制御手段は、前記基準平面に平行な方向における前記動きに基づいて、前記提示画像の拡大又は縮小を制御し、
前記制御手段は、前記傾きの大きさが所定の範囲外にある場合には前記提示画像の拡大又は縮小を制御しない、
請求項1から請求項7のいずれか一項に記載のプログラム。
【請求項9】
前記出力手段は、前記提示画像を表示装置に出力し、
前記表示装置は、ヘッドマウントデバイスであり、
前記センサ部は、前記ユーザの頭部の動きを検出可能である、
請求項1から請求項8のいずれか一項に記載のプログラム。
【請求項10】
プロセッサを備えた情報処理装置であって、
前記プロセッサは、
画像が投影された天球内の仮想カメラに基づいて、ユーザに提示する提示画像を生成し、
前記提示画像を出力し、
センサ部によって検出される前記ユーザの身体の少なくとも一部の動きに関する動作情報を取得し、
前記動作情報に基づいて、前記ユーザに提示される前記提示画像の拡大又は縮小を制御する、
情報処理装置。