(57)【要約】  ユーザに対して提示する、仮想空間の画像を生成する情報処理装置が、実空間中の対象物の位置の情報を検出し、検出した対象物の実空間中での位置の情報に基づいて求められる、仮想空間内の位置に、対象物に対応する仮想物体を配置し、ユーザの実空間内での身体のサイズを表すユーザ身体サイズデータを取得して、仮想空間内での仮想物体を配置する位置を、検出した対象物の実空間中での位置の情報と、実空間内でのユーザのユーザ身体サイズデータと、を用いて決定する。
2020174586.tif 000002
【特許請求の範囲】
【請求項１】
ユーザに対して提示する、仮想空間の画像を生成する情報処理装置であって、
実空間中の対象物の位置の情報を検出する手段と、
検出した前記対象物の実空間中での位置の情報に基づいて求められる、前記仮想空間内の位置に、前記対象物に対応する仮想物体を配置する手段と、
前記ユーザの実空間内での身体のサイズを表す、ユーザ身体サイズデータを取得する手段と、
前記仮想空間内での前記仮想物体を配置する位置を、前記検出した対象物の実空間中での位置の情報と、前記実空間内でのユーザのユーザ身体サイズデータと、を用いて決定する手段と、
を含む情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
複数のノードを含むボーンモデルで表される仮想キャラクタの、身体サイズを表すキャラクタ身体サイズデータを取得する手段と、
前記ユーザ身体サイズデータと、キャラクタ身体サイズデータとの比に基づいてスケーリング係数を演算するスケール演算手段と、
前記仮想空間内での前記仮想物体を配置する位置を決定する手段は、前記検出した対象物の実空間中での位置の情報と、前記スケーリング係数と、前記実空間内でのユーザ身体サイズデータと、を用いて決定する情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
この情報処理装置は、ユーザの頭部に装着されて、当該ユーザに対して仮想空間内の画像を提示する表示装置に接続され、
前記ユーザ身体サイズデータを取得する手段は、前記ユーザの身体上の複数の部位であって、前記仮想キャラクタのノードに対応する部位の実空間中の位置を推定し、当該推定されたユーザの身体上の複数の部位の実空間中の位置の情報に基づいて、ユーザ身体サイズデータを取得し、
前記仮想キャラクタのボーンモデルに含まれるノードの少なくとも一部のノードについて、当該ノードの仮想空間内での位置を、前記推定されたユーザの身体部位の実空間中の位置、及び、前記スケーリング係数を用いて決定するキャラクタ姿勢推定手段と、
を含み、
当該仮想キャラクタ上の所定部位に配した仮想的なカメラからの画像を生成して前記ユーザの頭部に装着された表示装置に当該生成した画像を提示させる情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記キャラクタ姿勢推定手段は、前記仮想キャラクタのボーンモデルに含まれるノードのうち、予め選択された選択ノードの仮想空間内での位置を、前記推定されたユーザの身体部位の実空間中の位置、及び、前記スケーリング係数を用いて決定し、当該決定された選択ノードの仮想空間内での位置に基づいて当該選択ノード以外の、前記仮想キャラクタのボーンモデルに含まれる各ノードの位置を決定する情報処理装置。
【請求項５】
請求項３または４に記載の情報処理装置であって、
前記仮想キャラクタ上の所定部位に配した仮想的なカメラからの画像を生成する際に、当該カメラの画角を、前記仮想キャラクタのボーンモデルの腕の長さの情報を用いて決定する情報処理装置。
【請求項６】
請求項１から５のいずれか一項に記載の情報処理装置であって、
前記ユーザ身体サイズデータを取得する手段は、ユーザの頭部の位置と、ユーザの足の位置との実空間中の位置を推定し、当該ユーザの頭部の位置及びユーザの足の位置により、ユーザの身長方向のサイズを求め、当該身長方向のサイズに基づいてユーザ身体サイズデータを取得する情報処理装置。
【請求項７】
請求項６に記載の情報処理装置であって、
前記ユーザの足の位置を推定する際には、床面の位置を推定し、当該推定した床面の位置の情報を用いて、ユーザの足の位置を推定する情報処理装置。
【請求項８】
請求項１から５のいずれか一項に記載の情報処理装置であって、
前記ユーザ身体サイズデータを取得する手段は、ユーザの左右の手の位置の実空間中の位置を推定し、当該ユーザの左右の手の位置により、ユーザ身体サイズデータを取得する情報処理装置。
【請求項９】
ユーザに対して提示する、仮想空間の画像を生成する情報処理装置を用い、
検出手段が、実空間中の対象物の位置の情報を検出する工程と、
配置手段が、検出した前記対象物の実空間中での位置の情報に基づいて求められる、前記仮想空間内の位置に、前記対象物に対応する仮想物体を配置する工程と、
取得手段が、前記ユーザの実空間内での身体のサイズを表すユーザ身体サイズデータを取得する工程と、
決定手段が、前記仮想空間内での前記仮想物体を配置する位置を、前記検出した対象物の実空間中での位置の情報と、前記実空間内でのユーザのユーザ身体サイズデータと、を用いて決定する工程と、を含む情報処理方法。
【請求項１０】
ユーザに対して提示する、仮想空間の画像を生成する情報処理装置を、
実空間中の対象物の位置の情報を検出する手段と、
検出した前記対象物の実空間中での位置の情報に基づいて求められる、前記仮想空間内の位置に、前記対象物に対応する仮想物体を配置する手段と、
前記ユーザの実空間内での身体のサイズを表すユーザ身体サイズデータを取得する手段と、
前記仮想空間内での前記仮想物体を配置する位置を、前記検出した対象物の実空間中での位置の情報と、前記実空間内でのユーザのユーザ身体サイズデータと、を用いて決定する手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
ユーザの身体の各部の予め定めた位置に、トラッカーと呼ばれるマーカーを取り付けて、これを外部から撮像し、マーカーの位置を推定するボディトラッキングの技術は広く知られている。【０００３】
また、このボディトラッキングにより推定されたユーザの実際の身体の各部の位置に基づいて、ゲーム空間や、ＶＲ空間等の仮想的な空間内でのキャラクタの姿勢を決定し、その仮想的な頭部の位置や、手の位置などの情報を得て、さらにこれらの情報に基づき、仮想空間内でのキャラクタの身体の画像を生成する技術が知られている。またさらに、キャラクタの仮想空間内の視点の位置からの画像を生成してユーザに提示する（いわゆる第一者（First Person）視点）ことにより、仮想空間にユーザが入り込んだかのような、没入感のある画像を提示する技術が知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このような従来の仮想空間の画像を表示する技術では、実空間でのユーザの移動や姿勢の変化に対応するため、仮想空間内におけるキャラクタの視点は、ユーザの実際の身長に対応するものとして設定される。しかしながら、キャラクタの身長等のサイズは、ユーザの実際の身長に関わりなく設定されているため、当該ゲームのキャラクタの身長が、ユーザの身長と大きく異なる場合にも、その視点はユーザの身長に対応する位置となってしまう。【０００５】
さらに従来の技術では、第一者視点でありながら、キャラクタの手足と頭の位置との相対的位置関係がユーザ自身の手足と頭の位置との相対的位置関係とは異なるため、ユーザは、キャラクタの身体の動きが、自身の身体の動きと異なるという違和感を感じることとなっていた。【０００６】
従来の仮想空間の画像を表示する技術では、このような要因等により、キャラクタへの没入感が低くなってしまうという問題があった。【０００７】
本発明は上記実情に鑑みて為されたもので、キャラクタへの没入感を向上できる情報処理装置、情報処理方法、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００８】
上記従来例の問題点を解決する本発明の一態様は、ユーザに対して提示する、仮想空間の画像を生成する情報処理装置であって、実空間中の対象物の位置の情報を検出する手段と、検出した前記対象物の実空間中での位置の情報に基づいて求められる、前記仮想空間内の位置に、前記対象物に対応する仮想物体を配置する手段と、前記ユーザの実空間内での身体のサイズを表すユーザ身体サイズデータを取得する手段と、前記仮想空間内での前記仮想物体を配置する位置を、前記検出した対象物の実空間中での位置の情報と、前記実空間内でのユーザのユーザ身体サイズデータと、を用いて決定する手段と、を含むこととしたものである。
【発明の効果】
【０００９】
本発明によると、キャラクタへの没入感を向上できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係る情報処理装置の構成例を表すブロック図である。
【図２】本発明の実施の形態に係る情報処理装置に接続される表示装置の例を表す構成ブロック図である。
【図３】本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。
【図４】本発明の実施の形態に係る情報処理装置が用いるボーンモデルの例を表す説明図である。
【図５】本発明の実施の形態に係る情報処理装置の動作例を表すフローチャート図である。
【図６】本発明の実施の形態に係る情報処理装置が設定する画角の例を表す説明図である。
【発明を実施するための形態】
【００１１】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置１は、例えば家庭用ゲーム機であり、図１に例示するように、制御部１１と、記憶部１２と、操作受入部１３と、表示制御部１４と、通信部１５と、撮像部１６とを含んで構成される。またこの情報処理装置１は、ユーザが頭部に装着するヘッドマウントディスプレイ（ＨＭＤ）などの表示装置２との間で通信可能に接続されている。
【００１２】
本実施の形態においてユーザが頭部に装着する表示装置２の一例は、ユーザが頭部に装着して使用する表示デバイスであって、図２に例示するように、制御部２１と、通信部２２と、表示部２３とを含む。ここでの例では表示装置２の制御部２１は、マイクロコンピュータ等のプログラム制御デバイスであって、内蔵する記憶部等の図示しないメモリ等に格納されたプログラムに従って動作し、情報処理装置１から通信部２２を介して入力される情報に応じた映像を表示部２３に表示させて、ユーザに閲覧させる。通信部２２は、有線または無線にて情報処理装置１との間で通信可能に接続される。通信部２２は、情報処理装置１から表示装置２宛に送信された情報を、制御部２１に出力する。表示部２３は、ユーザの右目と左目とのそれぞれの目の前に、それぞれの目に対応した映像を表示するものとする。この表示部２３は、有機ＥＬ表示パネルや液晶表示パネルなどの表示素子を含む。この表示素子が制御部２１から入力される指示に従って映像を表示する。この表示素子は、左目用の映像と右目用の映像とを一列に並べて表示する１つの表示素子であってもよいし、左目用の映像と右目用の映像とをそれぞれ独立に表示する一対の表示素子であってもよい。なお、本実施形態においてこの表示装置２は、ユーザが外界の様子を視認することができない非透過型の表示装置である。
【００１３】
また情報処理装置１の制御部１１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部１２に格納されているプログラムを実行する。本実施の形態では、この制御部１１は、複数のノードを含むボーンモデルで表される仮想キャラクタの、身体サイズを表すキャラクタ身体サイズデータを取得し、さらに、ユーザの身体上の複数の部位であって、この仮想キャラクタのノードに対応する部位の実空間中の位置を推定する。また制御部１１は、ユーザの身体サイズを表すユーザ身体サイズデータを取得して、このユーザ身体サイズデータと、キャラクタ身体サイズデータとの比に基づいてスケーリング係数を演算する。
【００１４】
制御部１１は、そして、仮想キャラクタのボーンモデルに含まれるノードの少なくとも一部のノードについて、当該ノードの仮想空間内での位置を、推定されたユーザの身体部位の実空間中の位置、及び、スケーリング係数を用いて決定し、当該仮想キャラクタ上の所定部位に配した仮想的なカメラからの画像を生成してユーザの頭部に装着された表示装置に当該生成した画像を提示させる。この制御部１１の動作については後に詳しく述べる。
【００１５】
記憶部１２は、ＲＡＭ等のメモリデバイスやディスクデバイス等であり、制御部１１が実行するプログラムを格納する。また、この記憶部１２は制御部１１のワークメモリとしても動作し、制御部１１がプログラム実行の過程で使用するデータを格納する。このプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供され、この記憶部１２に格納されたものであってもよい。
【００１６】
操作受入部１３は、操作デバイスＣからユーザの指示操作を有線または無線にて受け入れる。ここで操作デバイスＣは例えば、家庭用ゲーム機のコントローラ等である。操作受入部１３はユーザが操作デバイスＣに対して行った指示操作の内容を表す情報を、制御部１１に出力する。
【００１７】
表示制御部１４は、制御部１１から、入力された画像データを、通信部１５を介して表示装置２宛に送出する。またこの表示制御部１４は、ディスプレイ等に接続されてもよく、この場合は、表示装置２宛に送出するとともに、ディスプレイには、表示装置２を装着したユーザの視点の画像を表示させる。
【００１８】
通信部１５は、有線または無線にてユーザの表示装置２との間で通信可能に接続される。この通信部１５は、表示制御部１４から表示装置２宛に送信する画像データを含む情報を受け入れて、当該情報を、表示装置２に出力する。
【００１９】
撮像部１６は、例えばステレオカメラ等であり、互いに離れた場所に配された複数のカメラがいずれもユーザを撮像するよう、その画角と撮像の方向とが定められたものである。この撮像部１６は、実空間でのユーザの画像を繰り返し撮像し、撮像して得た画像データを制御部１１に送出する。
【００２０】
ここで情報処理装置１の制御部１１の動作について説明する。本実施の形態の制御部１１は、一例として図３に例示するように、キャラクタデータ取得部３１と、実空間位置取得部３２と、ユーザデータ取得部３３と、スケール演算部３４と、キャラクタ姿勢設定部３５と、仮想オブジェクト配置処理部３６と、レンダリング処理部３７と、出力部３８とを機能的に含んで構成される。
【００２１】
キャラクタデータ取得部３１は、キャラクタ身体サイズデータを取得する手段として、複数のノードを含むボーンモデルで表される仮想キャラクタの選択を、ユーザから受けて、当該選択された仮想キャラクタの身体サイズを表すキャラクタ身体サイズデータを取得する。ここでボーンモデルは、例えば図４に例示するように、複数のノードと、一対のノード間を接続するボーンとを含むものであり、ノードは、仮想キャラクタの胸部ＣＨ、頚部ＮＫ、頭部ＨＥ、肩部ＳＨ、腕関節部ＥＬ、手関節部（腕先端）ＨＤ、腰部ＷＴ、股関節部ＨＪ、膝部ＮＥ、足部ＦＴ…などの各部に対応する位置に配されるものとする。なお、図４のボーンモデルは一例であり、本実施の形態では、広く知られた種々のボーンモデルを採用し得る。
【００２２】
本実施の形態のキャラクタデータ取得部３１は、予め定められた仮想キャラクタのボーンモデルや、外観を規定する情報（ポリゴンモデルやテクスチャなど）並びに、その身体サイズを表すキャラクタ身体サイズデータＨｃを取得する。ここでキャラクタ身体サイズデータＨｃは、ボーンモデルにおける仮想キャラクタの床面に最も近いノード、例えば足部ＦＴのノードの高さＦＴｈと、床面から最も遠いノード、例えば頭部ＨＥのノードの高さＨＥｈの差ＨＥｈ−ＦＴｈで表される（Ｈｃ＝ＨＥｈ−ＦＴｈ）。
【００２３】
ここで高さは次のように表される。すなわち、仮想キャラクタの立つ仮想空間内の床面に垂直な方向（キャラクタが床面に直立したときの冠状面と矢状面とが交差する線分の方向）をＺ軸とし、床面から上方をその正の向きとする。また、この仮想空間内の床面がＺ＝０の平面であるとして、床面に平行な軸であって、キャラクタが初期状態（体を動かしていない状態）にあるときの、当該仮想キャラクタの前後方向に向かう軸（横断面と矢状面との交差する線分の方向）をＹ軸、当該初期状態での仮想キャラクタの左右方向に向かう軸（横断面と冠状面との交差する線分の方向）をＸ軸とする。また、初期状態での仮想キャラクタの前方をＹ軸正の方向、初期状態でのキャラクタから見た右手側をＸ軸正の方向とする。このＸＹＺ座標系（仮想空間のワールド座標系）の各軸の方向は、この後、キャラクタが移動しても変化しないものとする。
【００２４】
そしてこの場合、仮想キャラクタの各部位の高さの値は、このＸＹＺ座標系でノードの位置を表したとき、ノードの座標のＺ軸の値を意味する。
【００２５】
なお、ここではキャラクタデータ取得部３１は、予め定められた仮想キャラクタに関するボーンモデル等の情報を取得することとしたが、本実施の形態の一例では、情報処理装置１の記憶部１２には複数の仮想キャラクタに関するボーンモデルや外観を規定する情報、並びにキャラクタ身体サイズデータＨｃが格納されていてもよい。この場合、ユーザがそのうち一つを選択すると、キャラクタデータ取得部３１は、当該選択された仮想キャラクタに関するボーンモデルや、外観を規定する情報、並びに、そのキャラクタ身体サイズデータＨｃを取得する。また、これらの仮想キャラクタに関するデータは、ネットワークを介して取得されてもよい。
【００２６】
実空間位置取得部３２は、ユーザ身体サイズデータを取得する手段の一例を実現するものであり、ユーザの身体上の複数の部位であって、キャラクタデータ取得部３１が取得した仮想キャラクタのボーンモデルの少なくとも一部のノードに対応する部位の、実空間中の位置を推定する。
【００２７】
本実施の形態の一例では、ユーザの頭部（頭部を取り囲む外接直方体の中心、以下同じ）、胸部、左右の腕の先端（左右の手）、腰部、及び左右の足（脚の先端）の各部位の実空間中の位置を検出することとする。また本実施の形態の例では、この実空間位置取得部３２は、ユーザ身体サイズデータを取得する手段の一例を実現するものであり、ステレオカメラである撮像部１６が撮像して得た、実空間でのユーザの画像から、上記ユーザの各部位の位置を表す情報を取得する。ここで、実空間でのユーザの各部位の位置を表す情報は、実空間内の所定の基準点を原点とした実空間でのワールド座標系（ξηζの直交座標系とする）での座標の値として定めることができる。
【００２８】
ここでワールド座標系の基準点は、ユーザが立つ床面の所定の位置に設定すればよく、またこのようなワールド座標系の値として、ユーザの各部位の位置座標を、ユーザをステレオカメラで撮像した画像に基づいて推定して取得する方法は、広く知られているので、ここでの詳しい説明は省略する。
【００２９】
なお、ここではステレオカメラにて撮像した画像に基づいてユーザの身体の部位部位の位置を検出する例としているが、本実施の形態はこれに限られず、トラッカーデバイス等からレーザーなどを照射してユーザの身体の各部位の位置を推定するトラッカーや、ＳＬＡＭ（Simultaneous Localization and Mapping）技術を応用してトラッカーデバイスが自立的に位置を推定する方法、さらには磁気やＩＭＵ（慣性計測装置）、ＧＰＳ（Global Positioning System）やＲＦタグを利用する方法等、実空間でのユーザの各部位の位置座標が取得できれば、どのような方法を採用しても構わない。従って、採用する方法によっては、撮像部１６は、必ずしも必要なものではない。
【００３０】
ユーザデータ取得部３３は、ユーザ身体サイズデータを取得する手段として、ユーザの身体サイズを表すユーザ身体サイズデータＨｕを取得する。具体的に、このユーザ身体サイズデータＨｕは、ユーザが床面に直立した状態にあるときの、ユーザの頭部の高さと、ユーザの足の高さとの差とする。ここで各部位の高さは、ユーザの身長方向の値であり、具体的には各部位のワールド座標系における座標値のζ軸成分の値によって表される。
【００３１】
また本実施の形態では、情報処理装置１は、ユーザに対して直立したポーズで一時的に静止することを求め、その状態でのユーザの頭部の位置とユーザの足の位置とを取得し、これらの位置の情報から、ユーザ身体サイズデータＨｕを得てもよい。また、このユーザデータ取得部３３は、ユーザ身体サイズデータＨｕに相当する値（上記高さの差）を所定の時間に亘って繰り返し取得し、取得した値のうち最大の値をユーザ身体サイズデータＨｕとしてもよい。これによれば、必ずしもユーザにポーズを求める必要がなくなる。
【００３２】
なお、ここでユーザの足の位置は、ユーザの実際の足の位置を、撮像部１６が得た画像に基づいて推定してもよいし、実際の足の位置の代わりに、床面の位置を足の位置としてもよい。
【００３３】
さらに、ここではユーザの頭部の位置と足の位置とを取得する例としたが、ユーザ身体サイズデータＨｕは、必ずしも身長に相当する長さでなくてもよい。例えば統計的に、人間では身長に概ね等しくなることが知られている、両手間の最大距離（両手を広げた状態での両手間の距離）であってもよい。この場合、情報処理装置１は、ユーザに両手を広げたポーズを取るよう指示し、当該ポーズとなったときのユーザの左右の手の位置の実空間中の位置を推定し、その各手の位置間の距離を演算することにより、ユーザ身体サイズＨｕを得る。また、ユーザデータ取得部３３はユーザ身体サイズデータＨｕに相当する値（上記両手間の距離）を所定の時間に亘って繰り返し取得し、取得した値のうち最大の値をユーザ身体サイズデータＨｕとしてもよい。
【００３４】
なお、ユーザ身体サイズデータＨｕを、ユーザの両手間の最大距離とする場合は、キャラクタ身体サイズデータＨｃもキャラクタの両手間の最大距離（キャラクタが両手を広げた状態での両手間の距離）としておくこととしてもよい。
【００３５】
さらにここではユーザデータ取得部３３は、実空間位置取得部３２が取得したユーザの実際の画像に基づいてユーザ身体サイズデータＨｕを取得することとしたが、本実施の形態はこれに限られず、ユーザデータ取得部３３は、ユーザの操作により、当該ユーザの身長の入力を数値情報として受け入れて、ユーザ身体サイズデータＨｕとしてもよい。
【００３６】
スケール演算部３４は、スケール演算手段として、ユーザ身体サイズデータＨｕに対するキャラクタ身体サイズデータＨｃの比、Ｈｃ／Ｈｕに基づいてスケーリング係数Ｓｒを演算する。ここではスケール演算部３４は、この比そのものをスケーリング係数Ｓｒとする。すなわち、Ｓｒ＝Ｈｃ／Ｈｕであるものとする。
【００３７】
キャラクタ姿勢設定部３５は、キャラクタ姿勢推定手段として、仮想キャラクタのボーンモデルに含まれるノードの仮想空間内での位置を、推定されたユーザの身体部位の実空間中の位置と、スケーリング係数を用いて決定する。本実施の形態の一例では、このキャラクタ姿勢設定部３５がユーザの身体部位の実空間中の位置と、スケーリング係数を用いて、仮想キャラクタの上記ノードの全ての仮想空間内での位置座標を決定する必要は必ずしもなく、仮想キャラクタのボーンモデルに含まれるノードのうち、予め選択された選択ノードの仮想空間内での位置を、上記推定されたユーザの身体部位の実空間中の位置、及び、スケーリング係数を用いて決定し、次に、当該決定された選択ノードの仮想空間内での位置に基づいて当該選択ノード以外の、仮想キャラクタのボーンモデルに含まれる各ノードの位置を決定することとしてもよい。
【００３８】
本実施の形態のここでの例では、実空間位置取得部３２が取得するユーザの体の部位に対応する仮想キャラクタの部位のノードを選択ノードとする。一例として、実空間位置取得部３２がユーザの頭部、胸部、左右の腕の先端（左右の手）、腰部、及び左右の足（脚の先端）の各部位の実空間中の位置を取得する場合、キャラクタ姿勢設定部３５は、仮想キャラクタにおける、対応するノード（頭部、胸部、左右の腕の先端（左右の手）、腰部、及び左右の足に対応するノード）を選択ノードとして、これら選択ノードの位置を、ユーザの身体部位の実空間中の位置と、スケーリング係数を用いて決定する。この決定方法については後に説明する。
【００３９】
そしてキャラクタ姿勢設定部３５は、当該選択ノード以外の、仮想キャラクタのボーンモデルに含まれる各ノードの位置を、上記決定された選択ノードの位置に基づいて決定する。この選択ノード以外のノードの位置の決定は、FABRIK（Forwards and Backwards Reaching Inverse Kinematics）などの、広く知られた逆運動学的方法により行うことができるので、ここでの説明は省略する。
【００４０】
ここで選択ノードの位置の決定方法について説明する。本実施の形態では、キャラクタ姿勢設定部３５は、選択ノードの位置を、次のようにして定める。すなわち、本実施の形態では、実空間のワールド座標系と仮想空間のワールド座標系とは原点とスケールとを一致させたものとして、キャラクタ姿勢設定部３５が、ユーザ及び仮想キャラクタの頭部（仮想キャラクタについては頭部ノード）の位置からそれぞれ実空間と仮想空間の床面に下ろした垂線が、それぞれ対応する床面と交差する実空間及び、仮想空間の点の座標（ξ0，η0，ζ0），（ｘ0，ｙ0，ｚ0）を基準点として、それぞれ実空間でのユーザの頭部の座標（ξＨＥ，ηＨＥ，ζＨＥ）を用いて、（ξ0，η0，ζ0）＝（ξＨＥ，ηＨＥ，０）、（ｘ0，ｙ0，ｚ0）＝（ｘＨＥ，ｙＨＥ，０）と設定する（既に述べたように、ここでの例では床面上に原点を設定しているため、ζ0＝０、ｚ0＝０となる）。
【００４１】
キャラクタ姿勢設定部３５は、実空間位置取得部３２が得た、ユーザの各部位の座標値を、ここで求めた基準点（実空間内の基準点）からの相対的位置に変換する。例えばキャラクタ姿勢設定部３５は、ユーザの右手の相対的位置（ξｒＲＨ，ηｒＲＨ，ζｒＲＨ）を、実空間位置取得部３２が得たユーザの右手の位置（ξＲＨ，ηＲＨ，ζＲＨ）を用いて、（ξｒＲＨ，ηｒＲＨ，ζｒＲＨ）＝（ξＲＨ−ξ0，ηＲＨ−η0，ζＲＨ−ζ0）と求める。キャラクタ姿勢設定部３５は、このようにして、ユーザの頭部、胸部、左右の腕の先端（左右の手）、腰部、及び左右の足（脚の先端）の各部位の、上記基準点からの相対的位置を求める。
【００４２】
キャラクタ姿勢設定部３５は、仮想空間内の仮想キャラクタのボーンモデルの、上記ユーザの各部位に対応するノードの相対的位置Ｎｒを、対応する実空間でのユーザの部位の相対的位置の情報Ｐｒとスケーリング係数Ｓｒとを用いて、Ｎｒ＝Ｓｒ×Ｐｒとして求める。例えば仮想空間内の仮想キャラクタの右手に対応するボーンモデルのノードの相対的位置の座標（ｘｒＲＨ，ｙｒＲＨ，ｚｒＲＨ）を、（ｘｒＲＨ，ｙｒＲＨ，ｚｒＲＨ）＝（ξｒＲＨ×Ｓｒ，ηｒＲＨ×Ｓｒ，ζｒＲＨ×Ｓｒ）とする。
【００４３】
キャラクタ姿勢設定部３５は、仮想空間内の仮想キャラクタのボーンモデルの、上記ユーザの各部位に対応するノードの相対的位置Ｎｒを、仮想空間内に設定した原点からの座標に変換して、選択ノードの座標値（ｘ，ｙ，ｚ）を決定する。すなわち、上記の例であれば、仮想空間内の仮想キャラクタの右手に対応するボーンモデルのノードの座標値（ｘＲＨ，ｙＲＨ，ｚＲＨ）を、（ｘＲＨ，ｙＲＨ，ｚＲＨ）＝（ｘｒＲＨ＋ｘ0，ｙｒＲＨ＋ｙ0，ｚｒＲＨ＋ｚ0）とする。
【００４４】
キャラクタ姿勢設定部３５は、他の選択ノードについても同様に、対応するユーザの部位の基準点からの相対的位置を求め、当該相対的位置にスケーリング係数を乗じて、仮想空間内における仮想キャラクタの選択ノードの相対的位置とする。そして当該選択ノードの座標を、相対的位置と仮想空間内の基準点の座標とから求める。
【００４５】
仮想オブジェクト配置処理部３６は、仮想物体を配置する手段として、仮想的に設定されたオブジェクトを仮想空間内に配置する。ここで仮想空間内に配置されるオブジェクトは、実空間内に配された実オブジェクトに対応するものであってもよいし、対応する実オブジェクトは存在しなくてもよい。
【００４６】
例えば、この仮想オブジェクト配置処理部３６は、実空間内にある壁の位置を取得し、仮想空間内の対応する位置に、仮想的なオブジェクトである壁を配置する。また仮想オブジェクト配置処理部３６は、制御部１１が実行するゲームプログラム等の処理により、実空間内には対応する実オブジェクトが存在しない、仮想的なオブジェクトである敵キャラクタ等を、仮想空間内に配置する。
【００４７】
またこの仮想オブジェクト配置処理部３６は、キャラクタデータ取得部３１が取得した仮想キャラクタのポリゴンモデルを、キャラクタ姿勢設定部３５が各ノードの位置を決定したボーンモデルに基づいて変形して表示する。このようにボーンモデルにより仮想空間内での仮想キャラクタの姿勢を制御する処理の方法は広く知られているので、ここでの説明は省略する。
【００４８】
レンダリング処理部３７は、仮想オブジェクト配置処理部３６が設定した仮想空間内の画像をレンダリングして生成する。本実施の形態の一例では、このレンダリング処理部３７は、仮想キャラクタの所定の部位（例えば頭部の位置）にレンダリング用のカメラがあるものとし、このカメラは仮想キャラクタの前方（頭部を横断する冠状面の法線方向であって、顔のある側）を向いているものとする。またその画角は、予め定められているものとする。
【００４９】
レンダリング処理部３７は、仮想空間内の各オブジェクト（仮想キャラクタ自身の各部を含む）を、上記のように設定されたカメラから見たときの画像データをレンダリングして生成する。このようなレンダリングの方法についても広く知られた方法を採用できる。
【００５０】
出力部３８は、レンダリング処理部３７が生成した画像データを、ユーザが装着する表示装置２に対して送出する。
【００５１】
［動作］
本実施の形態は、以上の構成を備えており、次のように動作する。以下の説明では、ゲーム中で利用する、仮想空間内の仮想キャラクタをユーザが選択して用いるものとする。また以下の説明で、実空間及び仮想空間のワールド座標系は、既に説明した例と同様に設定されるものとする。
【００５２】
ユーザが情報処理装置１を操作して仮想キャラクタを選択すると、情報処理装置１は、図５に例示する処理を開始し、当該仮想キャラクタのボーンモデルや、外観を規定する情報（ポリゴンモデルやテクスチャなど）並びに、その身体サイズを表すキャラクタ身体サイズデータＨｃを取得する（Ｓ１）。
【００５３】
なおキャラクタ身体サイズデータＨｃは、仮想キャラクタのボーンモデルのうち、足部ＦＴのノードの高さＦＴｈと、頭部ＨＥのノードの高さＨＥｈの差として、つまり、Ｈｃ＝ＨＥｈ−ＦＴｈとして演算されてもよい。
【００５４】
また情報処理装置１は、撮像部１６にて撮像した、実空間でのユーザの画像から、ユーザの頭部、胸部、左右の腕の先端（左右の手）、腰部、及び左右の足（脚の先端）の各部位の実空間のワールド座標系（ξηζの直交座標系とする）での座標の値を所定のタイミングごとに複数回繰り返し求める（Ｓ２）。
【００５５】
また情報処理装置１は、ユーザの身体サイズを表すユーザ身体サイズデータＨｕを取得する（Ｓ３）。具体的に、このユーザ身体サイズデータＨｕは、ユーザが床面に直立した状態にあるときの、ユーザの頭部の高さと、ユーザの足の高さとの差により求めてもよい。既に述べたように、例えば情報処理装置１は、ユーザ身体サイズデータＨｕに相当する値（上記高さの差）を所定の時間に亘って繰り返し取得し、取得した値のうち最大の値をユーザ身体サイズデータＨｕとすればよい。
【００５６】
情報処理装置１は、ユーザ身体サイズデータＨｕに対するキャラクタ身体サイズデータＨｃの比、Ｈｃ／Ｈｕをスケーリング係数Ｓｒ（Ｓｒ＝Ｈｃ／Ｈｕ）として求める（Ｓ４）。
【００５７】
以下、情報処理装置１は、繰り返しの処理を開始し（ループ始）、撮像部１６にて撮像した、実空間でのユーザの画像から、ユーザの頭部、胸部、左右の腕の先端（左右の手）、腰部、及び左右の足（脚の先端）の各部位の実空間のワールド座標系（ξηζの直交座標系とする）での座標の値を求める（Ｓ５）。
【００５８】
そして情報処理装置１は、仮想キャラクタのボーンモデルに含まれるノードの仮想空間内での位置を、処理Ｓ５で推定されたユーザの身体部位の実空間中の位置と、処理Ｓ４で求めたスケーリング係数Ｓｒを用いて決定する（Ｓ６）。
【００５９】
具体的に情報処理装置１は、処理Ｓ５で実空間中の位置を取得した、ユーザの各部位に対応する、仮想キャラクタのボーンモデルのノードを選択ノードとする。そして情報処理装置１は、処理Ｓ５で得たユーザの頭部の位置から床面に下ろした垂線が、床面と交差する実空間の座標（ξ0，η0，ζ0）＝（ξＨＥ，ηＨＥ，０）と、仮想キャラクタの頭部のノードから床面に下ろした垂線が、床面と交差する仮想空間の点の座標（ｘ0，ｙ0，ｚ0）＝（ｘＨＥ，ｙＨＥ，０）とを求め、それぞれ実空間と仮想空間とにおける基準点とする。
【００６０】
情報処理装置１は、処理Ｓ５で得たユーザの各部位の座標値を、ここで求めた基準点（実空間内の基準点）からの相対的位置に変換する。また、情報処理装置１は、仮想空間内の仮想キャラクタのボーンモデルの、上記ユーザの各部位に対応するノードの相対的位置Ｎｒを、対応する実空間でのユーザの部位の相対的位置の情報Ｐｒとスケーリング係数Ｓｒとを用いて、Ｎｒ＝Ｓｒ×Ｐｒとして求める。そして情報処理装置１は、仮想空間内の仮想キャラクタのボーンモデルの、上記ユーザの各部位に対応するノードの相対的位置Ｎｒ（基準点を原点とした座標系での値）を、仮想空間内に設定した原点からの座標値に変換して、各選択ノードの座標値（ｘ，ｙ，ｚ）を決定する。
【００６１】
また情報処理装置１は、選択ノード以外の、仮想キャラクタのボーンモデルに含まれる各ノードの位置を、上記決定された選択ノードの位置に基づいて決定する。この選択ノード以外のノードの位置の決定は、FABRIK（Forwards and Backwards Reaching Inverse Kinematics）などの、広く知られた逆運動学的方法により行うこととする。
【００６２】
情報処理装置１は、さらに実空間内にある壁の位置を取得し、仮想空間内の対応する位置に、仮想的なオブジェクトである壁を配置する。また情報処理装置１は、実行しているゲームプログラム等の処理により、仮想的なオブジェクトである敵キャラクタ等を、仮想空間内のゲームプログラムにより指示された位置に配置する（Ｓ７：オブジェクト配置）。
【００６３】
そして情報処理装置１は、仮想キャラクタのポリゴンモデルを、処理Ｓ５，Ｓ６で各ノードの位置を決定したボーンモデルに基づいて変形して表示する（Ｓ８：仮想キャラクタ配置）。
【００６４】
情報処理装置１は、処理Ｓ７，Ｓ８で設定した仮想空間内の画像を、仮想キャラクタの所定の部位（例えば頭部の位置）に配した仮想的なカメラから見た画像データとしてレンダリングする（Ｓ９）。なお、このカメラの方向・画角は、仮想キャラクタの前方の予め定められた範囲とする。情報処理装置１は、ここでレンダリングした画像データをユーザの頭部に装着された表示装置２に送信して、ユーザに提示させる（Ｓ１０）。
【００６５】
情報処理装置１は、ゲームプログラムの実行中は、ここでの処理Ｓ５からＳ１０を繰り返して実行する。これにより仮想キャラクタの視点からの仮想空間の画像データがユーザに提供され、また、ユーザがポーズを変化させれば、当該ポーズの変化に応じて仮想キャラクタのポーズも設定される。
【００６６】
このとき、仮想キャラクタがユーザの身長よりも低い身長であれば、ユーザは当該低い身長からの視点で、仮想空間内の画像を見ることができる。また、本実施の形態では、仮想キャラクタのボーンモデルに含まれるノードの仮想空間内での位置を、ユーザの身体部位の実空間中の位置の推定結果と、身長や腕の長さなどの身体のサイズの比に関わるスケーリング係数Ｓｒとを用いて決定しているため、キャラクタの頭部から見た、キャラクタの手足の表示位置が、実空間中でユーザが自分の手足を見たときの位置（視点からの角度）に一致する。また、さらに本実施の形態では、このように決定したキャラクタの一部のノードの位置に基づく逆運動学的方法による演算を用いて、キャラクタの各部のノードの位置が決定されるため、キャラクタの頭部から見た、手足以外の関節等の位置も、実空間中でユーザが対応する関節等を見たときの位置（角度）に概ね一致することとなる。このような本実施の形態の情報処理装置１によると、ユーザの実際の身体のサイズと、キャラクタの身体のサイズとの比がどのようなスケールであっても、違和感のない表示が可能となり、キャラクタへの没入感を向上できる。
【００６７】
［ユーザの移動］
また、ユーザが表示装置２を装着したまま移動することを許容する場合、ユーザが仮想空間内で認識している身長に対して、ユーザの現実空間の移動量に応じた仮想空間内での移動量をそのまま用いると（スケーリング係数を考慮しないと）、身長に対する移動量が大きすぎるように感じられてしまう。また、本実施の形態の上記の例では、移動後の足の位置の検出結果も、実空間の移動量と異なってしまうこととなる。
【００６８】
そこで本実施の形態では、実空間中の壁等の対象物を、その実空間中での位置の情報に基づいて、仮想空間内の対応する位置に仮想的なオブジェクトとして表示する場合、当該オブジェクトの表示位置を次のように決定してもよい。
【００６９】
このようにユーザが移動する場合も、情報処理装置１は、図５に例示した処理を実行するが、処理Ｓ７において実空間内の基準点と、仮想空間内の基準点とを定める際に、処理の時点での（移動した後の）ユーザの頭部から床面に下ろした垂線の足を実空間内の基準点とし、仮想空間における仮想キャラクタのボーンモデルの頭部のノードから床面に下ろした垂線の足を仮想空間内の基準点とする。
【００７０】
そして、情報処理装置１は、さらに実空間内にある壁等の対象物の位置を取得する。例えば情報処理装置１は、実空間内の対象物に外接する直方体の少なくとも３つの頂点の座標を取得する。そして情報処理装置１は、これらの頂点の座標を、実空間内の基準点からの相対座標に変換し、この相対座標の値を、スケーリング係数倍して、仮想空間内の基準点からの相対座標を求める。情報処理装置１は求められた各頂点の相対座標を、仮想空間内の原点からの座標に変換して、当該変換後の仮想空間内の座標に対応する頂点があるものとして、実空間内の対象物に対応する、仮想的なオブジェクトを配置する（仮想的なオブジェクトのポリゴンの形状やその位置等を設定する）。
【００７１】
このように本実施の形態の一例では、実空間中での対象物の位置の情報に基づいて求められる、仮想空間内の位置に、対象物に対応する仮想的なオブジェクトを配置するにあたり、当該仮想空間内での仮想的なオブジェクトを配置する位置を、対象物の実空間中での位置の情報と、スケーリング係数とを用いて決定する。
【００７２】
この例によると、仮想キャラクタの身長が、実際のユーザの身長より低い（スケーリング係数が「１」より小さい）とき、例えば仮想キャラクタと壁との距離は、実際のユーザと壁との距離に対して当該スケーリング係数の割合だけ短縮され、仮想キャラクタの歩幅（身長に比例すると仮定される）に合わせて近接することとなる。これにより、ユーザが壁に触れる位置まで移動したとき、仮想キャラクタから見た画像データにおいても、仮想キャラクタが壁に触れる位置まで移動した状態となって違和感が軽減される。
【００７３】
なお、実際にはユーザの腕の長さは変化しないので、仮想空間における仮想オブジェクトの相対座標を演算する際に、実空間の相対座標値のξ，η軸成分の値からそれぞれユーザの腕の長さに相当する値を差引きした後、スケーリング係数倍し、さらに上記腕の長さに相当する値を加算して、仮想空間内の基準点からの相対座標を求めてもよい。
【００７４】
この例では、例えばユーザと壁までの実空間での距離をｄｗとし、腕の長さをｌａとしたとき、仮想空間での壁と仮想キャラクタとの距離ｄｗ′が、
ｄｗ′＝Ｓｒ×（ｄｗ−Ｓｒ×ｌａ）＋Ｓｒ×ｌａ
として演算されることとなる。
【００７５】
ここでユーザの腕の長さは、ユーザから指定されてもよいし、ユーザの身体上の複数の部位の実空間中の位置の情報に基づいて、当該ユーザの実空間内での腕の長さを推定することとしてもよい。この推定は、例えば推定された身長に対する一般的な人間の腕の長さとしてもよいし、身長の推定と同様、図５の処理Ｓ２において繰り返し検出された、胸部から腕の先端までの長さの最大値を用いてもよい。
【００７６】
［視野角］
さらに、本実施の形態の制御部１１は、仮想キャラクタ上の所定部位に配した仮想的なカメラからの画像データをレンダリングする際に、当該カメラの画角を、仮想キャラクタのボーンモデルの腕の長さＷｃの情報を用いて決定してもよい。
【００７７】
ここで、ボーンモデルの腕の長さＷｃは、ボーンモデルを床面に直立した状態に設定し、腕を一杯に広げた状態（いわゆるＴポーズの状態）としたとき、頭部ＨＥのノードから床面に対して下ろした垂線Ｌと、腕部の先端のノードとの最短距離（腕部の先端のノードから垂線Ｌに下ろした垂線の足までの距離）として規定する。
【００７８】
制御部１１は、ユーザ身体サイズデータを取得する手段の一例に係る機能を実現するものであり、ユーザの腕の長さＷｕ（実空間での腕の長さ）の情報を取得しておく。このユーザの腕の長さＷｕも、ユーザから指定されてもよいし、ユーザの身体上の複数の部位の実空間中の位置の情報に基づいて、当該ユーザの実空間内での腕の長さを推定することとしてもよい。つまり、上述と同様、推定された身長に対する一般的な人間の腕の長さとしてもよいし、身長の推定と同様、図５の処理Ｓ２において繰り返し検出された、胸部から腕の先端までの長さの最大値を用いてもよい。
【００７９】
そして制御部１１は、仮想空間内の画像をレンダリングする際に、その仮想的なレンダリング用のカメラの画角を次のように定める。ここで予め定められた画角をθとする。この画角は、図６に例示するように、カメラが撮像する範囲（いわゆる視錐台（viewing frustum）ＶＦの頂角を意味し、鉛直方向の画角θVと、水平方向の画角θHとがあり、予めデフォルトの画角（鉛直方向，水平方向のデフォルトの画角をそれぞれθV0、θH0とする））が定められているものである。
【００８０】
制御部１１は、仮想キャラクタの視点（頭部）からの仮想空間の画像データをレンダリングする際の画角θH，θVを、
【数１】
2020174586.tif 000003
または、
【数２】
2020174586.tif 000004
と定める。
【００８１】
これらの例では、画角が仮想キャラクタの腕の長さに基づいて、より詳細には、仮想キャラクタの身長に対する、仮想キャラクタの腕の長さの比、あるいは、当該比に、ユーザの腕の長さに対するユーザの身長の比を乗じた値に応じて、制御される。
【００８２】
なお、仮想キャラクタの腕の長さが左右で異なる場合は、いずれか長いほうの長さ、あるいはいずれか短いほうの長さをその仮想キャラクタの腕の長さＷｃとすればよい。
【００８３】
また仮想キャラクタが人型のキャラクタである場合など、腕の長さと身長との比が人物と異ならない場合は、画角をデフォルトのまま（θV＝θV0，θH＝θH0）としてもよい。
【００８４】
一方で、腕の長さが身長に応じて比例的に変化すると仮定できない場合（極端に腕の短いロボットのキャラクタや、極端に腕の長いドラゴン等のキャラクタとなる場合）は、腕の長さにより画角を設定することで、その仮想キャラクタに特有の視野（極端に狭い視野や極端に広い視野）として仮想空間の画像データをレンダリングする。これにより違和感のない表示が可能となり、キャラクタへの没入感を向上できる。
【００８５】
［ボーンモデルの調整］
本実施の形態の情報処理装置１は、さらに、利用する仮想キャラクタのボーンモデルの身長に対する腕の長さを変更することで、キャラクタの頭部から見た、キャラクタの手足の表示位置を、実空間中でユーザが自分の手足を見たときの位置（視点からの角度）に一致させるように制御してもよい。
【００８６】
具体的にボーンモデルがＴポーズの状態における各ノードの座標値で規定されている場合、情報処理装置１は、利用しようとするボーンモデルを複写し、さらに当該ボーンモデルのノードの座標値を次のように補正して、補正ボーンモデルを生成する。
【００８７】
すなわち、初期のＴポーズの状態の各ノードの座標値が、ボディ（胴体）の中心軸がＺ軸に一致する（当該中心軸がＸ＝Ｙ＝０の直線上にある）ときの値として規定され、Ｔポーズでの腕の方向がＸ軸に平行である場合、腕に属する各ノード（肘や手首、手指等に相当するノード）の座標（ｘ，ｙ）のＸ座標値ｘを、所定の補正係数倍する。
【００８８】
ここで補正係数は、仮想キャラクタの身長Ｈｃと、仮想キャラクタの両腕の長さ（両腕を左右にいっぱいに伸ばしてＴポーズをとったときの両腕先端間の距離）Ｗｃとの比Ｈｃ／Ｗｃ（ユーザの身長と両腕の長さとが等しいと仮定したときの値）、あるいはこれに、ユーザの両腕の長さＷｕと身長Ｈｕ（それぞれをユーザ身体サイズデータとして取得する）との比を乗じた値（Ｈｃ／Ｗｃ）×（Ｗｕ／Ｈｕ）とすればよい。
【００８９】
以下情報処理装置１は、この補正された補正ボーンモデルを用いてキャラクタの描画を行う。この場合、キャラクタの身長に対する両腕の長さが、ユーザの身長と両腕の長さとの比などを考慮した値で補正されているので、ユーザの実際の身体のサイズと、キャラクタの身体のサイズとの比がどのようなスケールであっても、違和感のない表示が可能となり、キャラクタへの没入感を向上できる。
【００９０】
［表示の別の例］
なお、本実施の形態のここまでの説明では、情報処理装置１は、ユーザの頭部に装着されるＨＭＤ等のデバイスが表示する画像を生成することとしていたが、本実施の形態はこれに限られず、第一者視点から表示される画像を、家庭用テレビなどの一般的なディスプレイデバイスに表示する場合であっても適用できる。この場合、表示装置２、及びそれに対する出力の処理は必ずしも必要ではない。
【符号の説明】
【００９１】
１  情報処理装置、２  表示装置、１１  制御部、１２  記憶部、１３  操作受入部、１４  表示制御部、１５  通信部、１６  撮像部、２１  制御部、２２  通信部、２３  表示部、３１  キャラクタデータ取得部、３２  実空間位置取得部、３３  ユーザデータ取得部、３４  スケール演算部、３５  キャラクタ姿勢設定部、３６  仮想オブジェクト配置処理部、３７  レンダリング処理部、３８  出力部。
【図１】
2020174586.tif 000005
【図２】
2020174586.tif 000006
【図３】
2020174586.tif 000007
【図４】
2020174586.tif 000008
【図５】
2020174586.tif 000009
【図６】
2020174586.tif 000010
【手続補正書】
【提出日】令和3年4月16日(2021.4.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザに対して提示する、仮想空間の画像を生成する情報処理装置であって、
実空間中の対象物の位置の情報を検出する手段と、
検出した前記対象物の実空間中での位置の情報に基づいて求められる、前記仮想空間内の位置に、前記対象物に対応する仮想物体を配置する手段と、
前記ユーザの実空間内での身体のサイズを表す、ユーザ身体サイズデータを取得する手段と、
前記仮想空間内での前記仮想物体を配置する位置を、前記検出した対象物の実空間中での位置の情報と、前記実空間内でのユーザのユーザ身体サイズデータと、を用いて決定する手段と、
を含み、
当該仮想キャラクタ上の所定部位に配した仮想的なカメラからの画像を生成して、前記ユーザに仮想キャラクタの視点からの仮想空間の画像データを提供する情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
複数のノードを含むボーンモデルで表される仮想キャラクタの、身体サイズを表すキャラクタ身体サイズデータを取得する手段と、
前記ユーザ身体サイズデータと、キャラクタ身体サイズデータとの比に基づいてスケーリング係数を演算するスケール演算手段と、
前記仮想空間内での前記仮想物体を配置する位置を決定する手段は、前記検出した対象物の実空間中での位置の情報と、前記スケーリング係数と、前記実空間内でのユーザ身体サイズデータと、を用いて決定し、
当該仮想キャラクタ上の所定部位に配した仮想的なカメラからの画像を生成して、前記ユーザに仮想キャラクタの視点からの仮想空間の画像データを提供する情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
この情報処理装置は、ユーザの頭部に装着されて、当該ユーザに対して仮想空間内の画像を提示する表示装置に接続され、
前記ユーザ身体サイズデータを取得する手段は、前記ユーザの身体上の複数の部位であって、前記仮想キャラクタのノードに対応する部位の実空間中の位置を推定し、当該推定されたユーザの身体上の複数の部位の実空間中の位置の情報に基づいて、ユーザ身体サイズデータを取得し、
前記仮想キャラクタのボーンモデルに含まれるノードの少なくとも一部のノードについて、当該ノードの仮想空間内での位置を、前記推定されたユーザの身体部位の実空間中の位置、及び、前記スケーリング係数を用いて決定するキャラクタ姿勢推定手段と、
を含み、
当該仮想キャラクタ上の所定部位に配した仮想的なカメラからの画像を生成して前記ユーザの頭部に装着された表示装置に、当該生成した、仮想キャラクタの視点からの仮想空間の画像データを提示させる情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記キャラクタ姿勢推定手段は、前記仮想キャラクタのボーンモデルに含まれるノードのうち、予め選択された選択ノードの仮想空間内での位置を、前記推定されたユーザの身体部位の実空間中の位置、及び、前記スケーリング係数を用いて決定し、当該決定された選択ノードの仮想空間内での位置に基づいて当該選択ノード以外の、前記仮想キャラクタのボーンモデルに含まれる各ノードの位置を決定する情報処理装置。
【請求項５】
請求項３または４に記載の情報処理装置であって、
前記仮想キャラクタ上の所定部位に配した仮想的なカメラからの画像を生成する際に、当該カメラの画角を、前記仮想キャラクタのボーンモデルの腕の長さの情報を用いて決定する情報処理装置。
【請求項６】
請求項１から５のいずれか一項に記載の情報処理装置であって、
前記ユーザ身体サイズデータを取得する手段は、ユーザの頭部の位置と、ユーザの足の位置との実空間中の位置を推定し、当該ユーザの頭部の位置及びユーザの足の位置により、ユーザの身長方向のサイズを求め、当該身長方向のサイズに基づいてユーザ身体サイズデータを取得する情報処理装置。
【請求項７】
請求項６に記載の情報処理装置であって、
前記ユーザの足の位置を推定する際には、床面の位置を推定し、当該推定した床面の位置の情報を用いて、ユーザの足の位置を推定する情報処理装置。
【請求項８】
請求項１から５のいずれか一項に記載の情報処理装置であって、
前記ユーザ身体サイズデータを取得する手段は、ユーザの左右の手の位置の実空間中の位置を推定し、当該ユーザの左右の手の位置により、ユーザ身体サイズデータを取得する情報処理装置。
【請求項９】
ユーザに対して提示する、仮想空間の画像を生成する情報処理装置を用い、
検出手段が、実空間中の対象物の位置の情報を検出する工程と、
配置手段が、検出した前記対象物の実空間中での位置の情報に基づいて求められる、前記仮想空間内の位置に、前記対象物に対応する仮想物体を配置する工程と、
取得手段が、前記ユーザの実空間内での身体のサイズを表すユーザ身体サイズデータを取得する工程と、
決定手段が、前記仮想空間内での前記仮想物体を配置する位置を、前記検出した対象物の実空間中での位置の情報と、前記実空間内でのユーザのユーザ身体サイズデータと、を用いて決定する工程と、を含み、
当該仮想キャラクタ上の所定部位に配した仮想的なカメラからの画像を生成して、前記ユーザに仮想キャラクタの視点からの仮想空間の画像データを提供する情報処理方法。
【請求項１０】
ユーザに対して提示する、仮想空間の画像を生成する情報処理装置を、
実空間中の対象物の位置の情報を検出する手段と、
検出した前記対象物の実空間中での位置の情報に基づいて求められる、前記仮想空間内の位置に、前記対象物に対応する仮想物体を配置する手段と、
前記ユーザの実空間内での身体のサイズを表すユーザ身体サイズデータを取得する手段と、
前記仮想空間内での前記仮想物体を配置する位置を、前記検出した対象物の実空間中での位置の情報と、前記実空間内でのユーザのユーザ身体サイズデータと、を用いて決定する手段と、
として機能させ、
当該仮想キャラクタ上の所定部位に配した仮想的なカメラからの画像を生成させて、前記ユーザに仮想キャラクタの視点からの仮想空間の画像データを提供させるプログラム。
【国際調査報告】
2020174586.tif 000011
2020174586.tif 000012