JP2016192029A - 画像生成システム及びプログラム - Google Patents

画像生成システム及びプログラム Download PDF

Info

Publication number
JP2016192029A
JP2016192029A JP2015071109A JP2015071109A JP2016192029A JP 2016192029 A JP2016192029 A JP 2016192029A JP 2015071109 A JP2015071109 A JP 2015071109A JP 2015071109 A JP2015071109 A JP 2015071109A JP 2016192029 A JP2016192029 A JP 2016192029A
Authority
JP
Japan
Prior art keywords
viewpoint
information
player
tracking
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015071109A
Other languages
English (en)
Inventor
石井 源久
Motohisa Ishii
源久 石井
博文 本山
Hirofumi Motoyama
博文 本山
嘉明 石井
Yoshiaki Ishii
嘉明 石井
青木 隆
Takashi Aoki
青木  隆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bandai Namco Entertainment Inc
Original Assignee
Bandai Namco Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bandai Namco Entertainment Inc filed Critical Bandai Namco Entertainment Inc
Priority to JP2015071109A priority Critical patent/JP2016192029A/ja
Publication of JP2016192029A publication Critical patent/JP2016192029A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】視点のトラッキングが失敗等した場合にも、その影響を軽減し、従来よりも適切な画像を生成できる画像生成システム及びプログラム等の提供。【解決手段】画像生成システムは、オブジェクト空間の設定処理を行うオブジェクト空間設定部と、プレーヤの視点トラッキングにより得られたトラッキング視点情報を、プレーヤの視点情報として設定する視点情報演算部と、視点情報に基づいて、オブジェクト空間においてプレーヤの視点から見える画像を生成する画像生成部を含む。視点情報演算部は、トラッキング視点がロスト状態になった場合に、プレーヤの視点情報の推定処理を行う。【選択図】図9

Description

本発明は、画像生成システム及びプログラム等に関する。
従来より、投影装置(プロジェクタ)により曲面スクリーン(ドーム形状のスクリーン)に対して投影される投影画像を生成するシステムが知られている。例えば曲面スクリーンに対して歪みの少ない投影画像を投影する従来技術としては、特許文献1に開示される技術がある。
また、別のアプローチで臨場感を高める画像を生成するシステムとして、立体視画像の生成システムも脚光を浴びている。立体視画像の生成システムの従来技術としては、例えば特許文献2に開示される技術がある。更に、ゲーム画像等を生成して頭部装着型表示装置(ヘッドマウントディスプレイ、HMD)に表示する画像生成システムについても知られている。
特開2003−85586号公報 特開2004−126902号公報
このような画像生成システムにおいては、プレーヤの視点を正確に特定することが重要になる。特に投影画像や立体視画像を生成するシステムにおいては、実際のプレーヤの視点と、画像生成に使用されるオブジェクト空間内でのプレーヤの視点が異なっていると、プレーヤにとって不自然な画像が生成されてしまう。
この場合に、例えば撮像部などの何らかのデバイスを使用して、プレーヤの視点をトラッキングして、トラッキングされた視点での画像を生成するシステムも考えられる。しかしながら、このようなシステムにおいては、視点を常に正確にトラッキングできるとは限らず、トラッキングに失敗した場合には、プレーヤにとって、非常に不自然で違和感のある画像が生成されてしまうおそれがある。
本発明の幾つかの態様によれば、視点のトラッキングが失敗等した場合にも、その影響を軽減し、従来よりも適切な画像を生成できる画像生成システム及びプログラム等を提供できる。
本発明の一態様は、オブジェクト空間の設定処理を行うオブジェクト空間設定部と、プレーヤの視点トラッキングにより得られたトラッキング視点情報を、プレーヤの視点情報として設定する視点情報演算部と、前記視点情報に基づいて、前記オブジェクト空間においてプレーヤの視点から見える画像を生成する画像生成部と、を含み、前記視点情報演算部は、トラッキング視点がロスト状態になった場合に、プレーヤの前記視点情報の推定処理を行う画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
本発明の一態様によれば、視点トラッキングにより得られたトラッキング視点情報が、プレーヤの視点情報として設定され、設定された視点情報に基づいて、オブジェクト空間においてプレーヤの視点から見える画像が生成される。そして、トラッキング視点がロスト状態になった場合には、プレーヤの視点情報の推定処理が行われ、推定処理により得られた視点情報に基づいて、オブジェクト空間においてプレーヤの視点から見える画像が生成されるようになる。このようにすれば、視点のトラッキングが失敗等した場合にも、より適切な画像を生成できる画像生成システム等を提供できるようになる。
また本発明の一態様では、前記視点情報演算部は、プレーヤを撮影した撮像画像により求められる前記トラッキング視点情報を、プレーヤの前記視点情報として特定してもよい。
このようにすれば、プレーヤを撮影する撮像部を設けるだけで、撮像画像を用いてトラッキング視点情報を求めて、オブジェクト空間においてプレーヤの視点から見える画像を生成できるようになる。
また本発明の一態様では、前記視点情報演算部は、プレーヤの視点履歴情報に基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行ってもよい。
このようにすれば、例えば、現在の状況と似通った状況で得られた視点履歴情報等を利用して、視点情報を推定できるようになる。従って、トラッキング視点のロスト状態時において、より適切な視点情報をプレーヤの視点情報として設定して、オブジェクト空間においてプレーヤの視点から見える画像を生成できるようになる。
また本発明の一態様では、前記視点情報演算部は、前記視点履歴情報と、プレーヤが操作する移動体の移動情報及びプレーヤの操作情報の少なくとも1つに基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行ってもよい。
このようにすれば視点履歴情報だけではなく、移動体の移動情報やプレーヤの操作情報を加味して、トラッキング視点のロスト状態時のプレーヤの視点情報を推定できるため、より適切な視点情報をプレーヤの視点情報として設定できるようになる。
また本発明の一態様では、前記視点情報演算部は、プレーヤが操作する移動体がコース又はマップを移動する場合に、過去に同じエリアに位置したときの前記視点履歴情報に基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行ってもよい。
このようにコースやマップにおいて過去に同じエリアに位置したときの視点履歴情報を利用すれば、似通った状況での視点情報を、トラッキング視点のロスト状態時におけるプレーヤの視点情報として設定できるため、より適切な画像を生成できるようになる。
また本発明の一態様では、前記コースは周回コースであり、前記視点情報演算部は、プレーヤが操作する前記移動体が前記周回コースにおいて過去に同じエリアを通過したときの前記視点履歴情報に基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行ってもよい。
このように、周回コースにおいて過去に同じエリアに通過したときの視点履歴情報を利用すれば、似通った状況での視点情報を、トラッキング視点のロスト状態時におけるプレーヤの視点情報として推定できるようになる。また移動体が周回コースを周回することで、例えば周回ごとに視点履歴情報を取得できるため、候補対象となる視点情報を増やすことができるという利点もある。
また本発明の一態様では、可動機構を含み、前記視点情報演算部は、前記可動機構の動作情報に基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行ってもよい。
このようにすれば、可動機構の動作によりプレーヤの視点が変化した場合等に、そのプレーヤの視点情報を可動機構の動作情報に基づいて推定し、トラッキング視点のロスト状態時のプレーヤの視点情報として設定できるようになる。
また本発明の一態様では、前記視点情報演算部は、プレーヤの操作情報又はゲーム状況情報に基づいて、前記可動機構の前記動作情報を求め、前記動作情報に基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行ってもよい。
このようにすれば、プレーヤの操作情報やゲーム状況情報に基づいて、可動機構の動作情報を求め、その動作情報に基づき推定された視点情報を、トラッキング視点のロスト状態時のプレーヤの視点情報として設定できるようになる。
また本発明の一態様では、前記視点情報演算部は、プレーヤの体格情報、性別情報及び年齢情報の少なくとも1つを含むプレーヤ情報に基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行ってもよい。
このようにすれば、トラッキング視点がロスト状態になった場合に、プレーヤの体格や性別や年齢などを加味して、視点情報を推定できるため、プレーヤの情報を反映させた、より適切な視点での画像を生成できるようになる。
また本発明の一態様では、前記視点情報演算部は、複数の候補視点情報の中から、前記プレーヤ情報に基づいて視点情報を選択する処理を、前記トラッキング視点のロスト状態時の前記視点情報の推定処理として行ってもよい。
このようにすれば、複数の候補視点情報の中から、プレーヤの体格や性別や年齢などに応じた視点情報を選択して、ラッキング視点のロスト状態時の視点情報を推定できるようになる。
また本発明の一態様では、前記視点情報演算部は、プレーヤの動作の物理シミュレーション処理の結果情報に基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行ってもよい。
この物理シミュレーション処理には、映像や可動機構の変化に反応する人間の挙動に関するシミュレーションの処理も含まれる。
このようにすれば、物理シミュレーション処理により、プレーヤの動作を特定して、トラッキング視点のロスト状態時のプレーヤの視点情報を推定できるため、現実世界でのプレーヤの視点と似通った視点での画像を生成することが可能になる。
また本発明の一態様では、前記画像生成部は、1つの曲面又は複数の面により構成されるプロジェクション用スクリーンの形状情報と、プレーヤの前記視点情報とに基づいて、投影画像を生成してもよい。
このようにすれば、プロジェクション用スクリーンの形状情報や視点情報を用いることで、プロジェクション用スクリーンの形状を反映させた適切な投影画像を生成できるようになる。そして、トラッキング視点がロスト状態になった場合にも、推定処理により求められた視点情報を用いて投影画像が生成されるため、違和感や不自然さが少ない投影画像を生成できるようになる。
また本発明の一態様では、前記画像生成部は、描画バッファ上のピクセルが投影装置の光学系を通して出射される光線と前記プロジェクション用スクリーンとの交点位置と、プレーヤの視点位置とを結ぶ直線を、仮想カメラの視線として、前記描画バッファ上の前記ピクセルの色を決定してもよい。
このようにすれば、ピクセル単位での歪み補正処理を行って、プロジェクション用の投影画像を生成できるようになる。
また本発明の一態様では、前記画像生成部は、前記オブジェクト空間内のオブジェクトの頂点位置とプレーヤの視点位置を結ぶ直線と、前記プロジェクション用スクリーンとの交点位置に基づいて、前記オブジェクトに対応する描画オブジェクトについての描画バッファ上での頂点位置を求め、前記頂点位置に基づいて前記描画バッファに前記描画オブジェクトを描画してもよい。
このようにすれば、頂点単位での歪み補正処理を行って、プロジェクション用の投影画像を生成できるようになる。
また本発明の一態様では、前記画像生成部は、プレーヤの前記視点情報に基づいて、立体視用の第1視点画像と第2視点画像を生成してもよい。
このようにすれば、立体視用の第1視点画像、第2視点画像をプレーヤに表示することで、立体視を実現できるようになる。そして、トラッキング視点がロスト状態になった場合にも、推定処理により求められた視点情報を用いて、第1視点画像、第2視点画像が生成されるため、違和感や不自然さが少ない立体視を実現できるようになる。
本実施形態の画像生成システムを適用したゲームシステムの一例。 本実施形態の画像生成システムを適用したゲームシステムの鉛直断面図。 可動機構の構成例。 本実施形態の画像生成システムの構成例。 図5(A)〜図5(C)は投影画像の生成に用いられる代表視点の説明図。 図6(A)、図6(B)は視点トラッキングの説明図。 図7(A)、図7(B)も視点トラッキングの説明図。 図8(A)〜図8(C)はトラッキング視点のロスト状態についての説明図。 本実施形態の手法の処理例を示すフローチャート。 図10(A)〜図10(C)は視点履歴情報を用いる手法の説明図。 図11(A)〜図11(C)は周回コースで移動体を移動させるゲームにおいて視点履歴情報を用いる手法の説明図。 複数の視点履歴情報の中から移動体の移動情報等を用いて視点情報を選択する手法の説明図。 視点履歴情報に基づいてプレーヤの視点情報を推定する手法の処理例を示すフローチャート。 可動機構の動作情報に基づいてプレーヤの視点情報を推定する手法の処理例を示すフローチャート。 図15(A)〜図15(C)は可動機構の動作情報に基づいてプレーヤの視点情報を推定する手法の説明図。 プレーヤ情報に基づいてプレーヤの視点情報を推定する手法の処理例を示すフローチャート。 物理シミュレーション処理によりプレーヤの視点情報を推定する手法の処理例を示すフローチャート。 図18(A)〜図18(C)は物理シミュレーション処理によりプレーヤの視点情報を推定する手法の説明図。 描画バッファのピクセル単位での歪み補正手法の説明図。 ピクセル単位での歪み補正に代理平面を用いる手法の説明図。 ピクセル単位での歪み補正に代理平面を用いる手法での描画バッファ、UVマップ、レンダーテクスチャの関係を示す図。 オブジェクトの頂点単位での歪み補正手法の説明図。 図23(A)〜図23(C)は立体視画像を生成する手法の説明図。 HMDに表示する画像を生成する手法の説明図。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.構成
図1に、本実施形態の画像生成システムを適用したゲームシステム(ゲーム装置)の構成例を示す。図2は、このゲームシステムの鉛直断面図である。
図1、図2のゲームシステムは、アミューズメント施設に設置されてレーシングゲームをプレーヤがプレイするための業務用のゲームシステムである。このゲームシステムは、プレーヤが座るシート10と、制御基板16と、ゲーム画像である投影画像が投影される曲面形状のスクリーン20と、スクリーン20に投影画像(映像)を投影する投影装置30と、視点トラッキング用の撮像部40と、可動機構60と、ゲーム音を出力するスピーカ(不図示)を備えている。また、プレーヤが操作情報を入力するためのハンドル50、ブレーキペダル52、アクセルペダル54、シフトレバー56と、カードリーダー58と、コイン投入口59を備えている。
可動機構60は、可動対象物であるシート10の方向(姿勢)や位置を変化させるものである。例えば可動機構60は、加速・減速や、コーナリングの荷重や、路面の凹凸をプレーヤに体感させるための動作を行う。可動機構60は制御基板16からの動作信号により動作する。
シート10は、基本位置・基本姿勢である場合に、着座したプレーヤの想定正視方向がスクリーン20の中央付近を向くように、可動機構60によりその位置・姿勢が設定される。本実施形態では、着座したプレーヤの正面方向を想定正視方向としている。スクリーン20は、基本位置・姿勢のシート10に着座したプレーヤの正面方向(想定正視方向)に対して、凸形状に形成されている。
制御基板16には、CPU、GPU又はDSP等の各種プロセッサや、ASICや、VRAM、RAM又はROM等の各種メモリが実装されている。そして、制御基板16は、メモリに記憶されたプログラムやデータや、ハンドル50等を操作するプレーヤの操作情報等に基づいて、レーシングゲームを実現するための各種処理を行う。
投影装置30(プロジェクタ)は、筐体フレーム14に支持されて、シート10の上方であってシート10に着座したプレーヤに干渉しない位置に、その投影中心方向がスクリーン20の中心付近を向くように設置されている。即ち、投影中心方向がプレーヤの想定正視方向とスクリーン20との交点位置に向くように設置される。また、投影装置30には、投影レンズとして広角レンズ(例えば魚眼レンズ、即ち画角が180度を超えるような超広角レンズ)が取り付けられており、この広角レンズを通して、投影画像がスクリーン20の投影領域の全体に投影される。
プレーヤは、シート10に着座して、スクリーン20に表示されるゲーム画面を見ながら、スピーカからのゲーム音を聞きつつ、ハンドル50、アクセルペダル52、ブレーキペダル54、シフトレバー56を操作してカーレースゲームを楽しむ。
本実施形態のレースゲームでは、オブジェクト空間(仮想3次元空間)に、レースのコース等の背景オブジェクトが配置されてゲーム空間が構成される。このオブジェクト空間内には、プレーヤカーや他プレーヤカー等の各種オブジェクトが配置されると共に、プレーヤの視点位置に仮想カメラが配置される。そして、この仮想カメラから見たオブジェクト空間の画像が、ゲーム画像として、プロジェクタ30によってスクリーン20に投影(表示)される。
図3に可動機構60(可動筺体)の構成例を示す。可動機構60は、可動対象物と、可動対象物を動かすアクチュエータを有する。図3では、可動対象物はシート10であり、アクチェエータは電動シリンダ73、74である。電動シリンダ73、74は、図1の制御基板16(処理部)からの電気信号である動作信号(広義には動作情報)に基づいて、A1、A2に示すようにロッド部を直線運動させる。電動シリンダ73、74は、ステッピングモータやボールねじを有しており、ステッピングモータでボールネジを回転させることで、ロッド部の直線運動を実現する。そして、このように電動シリンダ73、74のロッド部が直線運動することで、図3のA3、A4に示すようにシート10の方向(姿勢)や位置が変化する動作が実現される。
具体的には、ゲームシステムの筺体の底部12には、基台62が設けられており、基台62にはヒンジ部63、64が設けられている。そして電動シリンダ73、74の一端は、ヒンジ部63、64により基台62に取り付けられる。具体的にはヒンジ部63、64は、水平方向であるX軸回りに回動自在となるように電動シリンダ73、74の一端を支持している。なおヒンジ部63、64を、鉛直方向であるY軸の回りで回動自在となるように基台62に取り付けてよい。またシート10の背もたれ部の裏面側には取り付け板80が設けられており、取り付け板80には、ヒンジ部83、84が設けられている。そして電動シリンダ73、74の他端は、ヒンジ部83、84により取り付け板80に取り付けられる。具体的にはヒンジ部83、84は、X軸回りに回動自在となるように電動シリンダ73、74の他端を支持している。
基台62には、ヒンジ部65、66が設けられ、ヒンジ部65、66には支持部75、76の一端が取り付けられている。そして、支持部75、76の他端はシート10の座部(裏面)に取り付けられる。例えば支持部75、76は、鉛直方向であるY軸の回りで回動自在となるようにシート10の座部を支持している。
図3の可動機構60では、電動シリンダ73のロッド部が伸張方向に直線運動して長くなり、電動シリンダ74のロッド部が退避方向に直線運動して短くなると、シート10(座部)がY軸回りにおいて例えば右回りに回転するように動作する。また電動シリンダ73のロッド部が退避方向に直線運動して短くなり、電動シリンダ74のロッド部が伸張方向に直線運動して長くなると、例えばシート10が左回りに回転するように動作する。このように可動機構60が動作することで、車等の移動体のコーナリングをプレーヤに体感させることができる。
また、路面の凹凸等をプレーヤに体感させる場合には、ロッド部が微少のストローク距離で直線運動するように、電動シリンダ73、74を制御すればよい。
なお、図3は可動機構60の構成の一例であり、本実施形態の可動機構60は図3の構成に限定されず、種々の変形実施が可能である。例えば可動機構60は、プレーヤの視点位置及び視線方向の少なくとも一方を変化させるような動作を行う機構(機械)である。可動機構60は、本実施形態の画像生成システム(処理部)からの動作情報(例えば電気信号である動作信号)に基づいて動作する。そして可動機構60が動作することで、プレーヤが着座するシート10(広義には、可動対象物、或いはプレーヤが搭乗する搭乗部)の位置及び方向(姿勢)の少なくとも一方が変化し、その結果、プレーヤの視点位置及び視線方向の少なくとも一方が変化する。
図4に本実施形態の画像生成システムのブロック図の例を示す。なお、本実施形態の画像生成システムの構成は図4に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
撮像部40(カメラ)は、レンズ等の光学系と、撮像素子を有する。レンズは、例えば撮像素子に像を映すレンズである。撮像素子は、例えばCCD又はCMOSセンサーなどにより実現される。
可動機構60(稼働筺体)は、シート10等の可動対象物を動作させるための機構(機械)であり、その詳細は図3に示した通りである。
操作部160は、プレーヤが操作情報を入力するためのものである。図1、図2のゲームシステムでは、操作部160は、ハンドル50、ブレーキペダル52、アクセルペダル54、シフトレバー56や、不図示の操作ボタン等により実現できる。
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD、BD)、HDD(ハードディスクドライブ)、SSD(ソリッドステートドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
表示部190は、本実施形態により生成された画像を表示するものである。図1、図2の場合には、表示部190は、液晶プロジェクタにおけるLCDや、DLPプロジェクタにおけるDMDなどにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
補助記憶装置194(補助メモリ、2次メモリ)は、記憶部170の容量を補うために使用される記憶装置であり、SDメモリーカード、マルチメディアカードなどのメモリーカードなどにより実現できる。
通信部196は、有線や無線のネットワークを介して外部(例えば他の画像生成システム、サーバ、ホスト装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
処理部100(プロセッサ)は、操作部160からの操作情報やプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部100は記憶部170をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、ゲーム演算部102、オブジェクト空間設定部104、移動体演算部106、視点情報演算部108、仮想カメラ制御部110、画像生成部120、音生成部130を含む。なおこれらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
ゲーム演算部102はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
オブジェクト空間設定部104は、複数のオブジェクトが配置されるオブジェクト空間の設定処理を行う。例えば、移動体(人、動物、ロボット、車、飛行機、船舶機等)、マップ(地形)、建物、コース(道路)、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクトデータ記憶部172には、オブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部104は、例えば各フレーム毎にこのオブジェクトデータを更新する処理などを行う。
移動体演算部106は、人、動物、車、飛行機等の移動体(移動体オブジェクト)を移動させるための制御処理を行う。また移動体を動作させるための制御処理を行う。即ち操作部160によりプレーヤが入力した操作情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(オブジェクト、モデルオブジェクト)をオブジェクト空間内で移動させたり、移動体を動作(モーション、アニメーション)させる制御処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
仮想カメラ制御部110は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点、基準仮想カメラ)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは視野範囲を制御する処理)を行う。仮想カメラ制御部110の仮想カメラの制御は、例えば視点情報演算部108により求められたプレーヤの視点情報に基づき実現できる。
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、歪み補正用の変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、ジオメトリ処理後のオブジェクト(1又は複数プリミティブ面)を、描画バッファ176(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、画像生成部120で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
そして本実施形態の画像生成システムは、図4に示すように、オブジェクト空間設定部104と、視点情報演算部108と、画像生成部120を含む。
オブジェクト空間設定部104は、オブジェクト空間の設定処理を行う。即ち、オブジェクト空間内に複数のオブジェクトを配置設定するための処理を行う。
視点情報演算部108は、プレーヤの視点トラッキングにより得られたトラッキング視点情報を、プレーヤの視点情報として設定する。例えばアイトラッキング、フェイストラッキング又はヘッドトラッキングなどの視点トラッキング手法により、現実空間でのプレーヤの視点情報を特定する。トラッキング視点情報は、視点トラッキングにより求められた視点情報である。このトラッキング視点情報を求める視点トラッキングの手法としては、公知の種々の手法を採用できる。
また、プレーヤの視点情報は、プレーヤの視点位置及び視線方向の少なくとも一方を含む情報である。なお、視点情報は、複数の視点位置・視線方向の情報や、それ以外の情報(例えば両眼間隔の情報等)を含んでもよい。
画像生成部120は、特定された視点情報に基づいて、オブジェクト空間においてプレーヤの視点から見える画像を生成する。例えば現実空間での視点情報に基づいて、その視点情報に対応する、オブジェクト空間内での視点位置や視線方向を特定し、その視点から見える画像を生成する。生成される画像は、1つの曲面又は複数の面で構成されスクリーンに投影される投影用画像であってもよいし、立体視を実現する立体視画像であってもよい。その立体視画像は、平面のディスプレイに表示されるものであってもよいし、1つの曲面又は複数の面で構成されるスクリーンに立体視画像が投影されるものであってもよい。或いはHMD(頭部装着型表示装置)に表示する画像であってもよい。
そして本実施形態では、視点情報演算部108は、トラッキング視点がロスト状態になった場合に、プレーヤの視点情報の推定処理(決定処理)を行う。例えば、何らかの理由で、プレーヤの視点(現実世界での視点)を捕捉できなくなり、トラッキング視点の情報を取得できなくなる状態(ロスト状態)になった場合に、プレーヤの視点情報の推定処理を行う。
例えば、視点トラッキングが成功している状態では、視点情報演算部108は、視点トラッキングにより取得されたトラッキング視点情報を、プレーヤの視点情報として設定(特定)する。そして画像生成部120は、設定された視点情報に基づいて、オブジェクト空間においてプレーヤの視点から見える画像を生成する。一方、視点トラッキングがロスト状態になった場合には、視点情報演算部108は、プレーヤの視点情報の推定処理を行う。そして画像生成部120は、推定処理により得れた視点情報に基づいて、オブジェクト空間においてプレーヤの視点から見える画像を生成する。即ち、推定されたプレーヤの視点に対応するオブジェクト空間内の視点位置において見える画像を生成する。
例えば視点情報演算部108は、プレーヤを撮影した撮像画像により求められるトラッキング視点情報を、プレーヤの視点情報として設定する。例えば図1、図2に示すように、本実施形態では、プレーヤを撮影する撮像部40が設けられている。この撮像部40は、例えば少なくともプレーヤの顔を撮影できる位置に設置される。即ち、プレーヤを正面方向から見ることができる位置において、その撮影方向(光軸方向)がプレーヤ(プレーヤの顔)の方を向くように、設置されている。そして、視点情報演算部108は、この撮像部40からの撮像画像(画像データ)により求められたトラッキング視点情報を、プレーヤの視点情報として設定する。この撮像部40は通常のカメラであっても、顔の大きさや両眼の間隔から、ある程度は奥行き方向も含めた視点位置を推定できるが、より精確に求めるには、複数のカラーカメラを用いることで距離方向に対しても位置を取得できる構成としてもよい。また、通常のカラーカメラに加えて距離情報を取得することができる測距カメラを備えた物であってもよい。
また視点情報演算部108は、プレーヤの視点履歴情報に基づいて、トラッキング視点のロスト状態時の視点情報の推定処理を行う。視点履歴情報(視点移動履歴情報)は、例えば過去に視点トラッキング等の視点演算処理により求められた視点情報群である。この視点履歴情報は、記憶部170の視点履歴情報記憶部177に記憶されている。なお視点履歴情報は、本実施形態の画像生成システムとは別の装置で生成された情報であってもよい。この場合には、ネットワークを介して、或いは補助記憶装置194を介して、この視点履歴情報を取得して、視点履歴情報記憶部177に記憶すればよい。
例えば視点情報演算部108は、視点履歴情報と、プレーヤが操作する移動体の移動情報及びプレーヤの操作情報の少なくとも1つに基づいて、トラッキング視点のロスト状態時の視点情報の推定処理を行う。移動体は、プレーヤの操作に基づいてオブジェクト空間を移動するオブジェクトである。移動体の移動情報は、移動体の位置、速度、加速度、角速度、或いは角加速度等である。なお、ここでいう速度や加速度とは、一般的にはベクトル量である。或いは移動体の移動情報は移動体の移動経路等であってもよい。プレーヤの操作情報は、プレーヤが操作部160を操作することで得られる情報である。この操作情報は、プレーヤの過去の操作情報である操作履歴情報であってもよい。
例えば視点履歴情報記憶部177には、候補となる複数の視点履歴情報が記憶されており、視点情報演算部108は、移動体の移動情報やプレーヤの操作情報に基づいて、これらの複数の視点履歴情報の中から視点履歴情報(視点情報)を選択し、選択された視点履歴情報に基づいて、プレーヤの視点情報を設定(推定)する。
例えば、視点情報演算部108は、複数の視点履歴情報の中から、移動体の位置が第1の位置である場合には第1の視点履歴情報(第1の視点情報)を選択し、第2の位置である場合には第2の視点履歴情報(第2の視点情報)を選択する。また視点情報演算部108は、複数の視点履歴情報の中から、移動体の速度(又は加速度、角速度、角加速度)が第1の速度(第1の加速度、角速度、角加速度)である場合には第1の視点履歴情報(第1の視点情報)を選択し、第2の速度(第2の加速度、角速度、角加速度)である場合には第2の視点履歴情報(第2の視点情報)を選択する。また視点情報演算部108は、複数の視点履歴情報の中から、プレーヤが第1の操作(例えばハンドルを左に切る、アクセルペダルを踏む)を行っていた場合には、第1の視点履歴情報(第1の視点情報)を選択し、プレーヤが第2の操作(例えばハンドルを右に切る、ブレーキペダルを踏む)を行っていた場合には、第2の視点履歴情報(第2の視点情報)を選択する。
また視点情報演算部108は、プレーヤが操作する移動体がコース又はマップを移動する場合に、過去に同じエリア(コースブロック、マップブロック)に位置したときの視点履歴情報に基づいて、トラッキング視点のロスト状態時の視点情報の推定処理を行う。ここでコースは、オブジェクト空間内において、車等の移動体が移動すべき経路として設定されているものである。このコースは、カーレーシングゲームなどに用いられる。コースは、例えばその進行方向に交差(直交)する方向において所与の幅を有している。コースの形状データやコースの各位置での走行条件設定データ等が、コースデータとしてコースデータ記憶部178に記憶されている。またマップは、オブジェクト空間内において、キャラクタ等の移動体が移動するフィールドとなるものである。このマップの地形データやマップの各位置でのゲーム条件設定データ等が、マップデータとしてマップデータ記憶部179に記憶されている。
移動体演算部106は、操作部160からのプレーヤの操作情報に基づいて、コース又はマップで移動体を移動させる演算処理を行う。そして移動体が、コース又はマップの第1のエリア(第1のコースブロック、第1のマップブロック)に位置する場合には、視点情報演算部108は、過去にその第1のエリアに移動体が位置したときの視点履歴情報を読み出す。例えば第1のエリアに対応づけられた視点履歴情報を読み出す。そして読み出された視点履歴情報に基づいて、移動体が第1のエリアに位置するときのプレーヤの視点情報を特定する。同様に、移動体が、コース又はマップの第2のエリア(第2のコースブロック、第2のマップブロック)に位置する場合には、視点情報演算部108は、過去にその第2のエリアに移動体が位置したときの視点履歴情報を読み出す。例えば第2のエリアに対応づけられた視点履歴情報を読み出す。そして読み出された視点履歴情報に基づいて、移動体が第2のエリアに位置するときのプレーヤの視点情報を特定する。
この場合に、コースとしては、周回コースを用いることができる。周回コースは、競争ゲーム等において、移動体が、1周、2周、3周というように何周も周回することができるコースである。視点情報演算部108は、プレーヤが操作する移動体が、この周回コースにおいて過去に同じエリアを通過したときの視点履歴情報に基づいて、トラッキング視点のロスト状態時の視点情報の推定処理を行う。例えば現在の周回数がm周目であった場合に、過去の1周目〜m−1周目において、同じエリア(コースブロック)を通過(位置)したときの視点履歴情報に基づいて、そのエリアを通過する際のプレーヤの視点情報を特定する。例えば、1周目〜m−1周目に対応する第1〜第m−1の視点履歴情報の中から、例えば移動体の移動情報又はプレーヤの操作情報等に基づいて、視点情報を選択して、そのエリアを通過する際のプレーヤの視点情報を特定する。
また本実施形態の画像生成システム(ゲームシステム)は、図1〜図4で説明したように可動機構60を有する。この場合に視点情報演算部108は、可動機構60の動作情報に基づいて、トラッキング視点のロスト状態時の視点情報の推定処理を行う。可動機構60の動作情報は、可動機構60の動作状態を設定するための情報である。例えば動作情報は、可動対象物であるシート10の姿勢状態(回転状態)や位置(移動位置)を特定するための情報である。可動機構60の動作制御は処理部100により行われる。
例えば、視点情報演算部108は、可動機構60の動作情報に基づいて、可動対象物であるシート10が第1の姿勢状態(第1の位置)であると判断される場合には、シート10が第1の姿勢状態(第1の位置)である場合に想定されるプレーヤの視点位置や視線方向を、ロスト状態時のプレーヤの視点情報として設定する。また可動機構60の動作情報に基づいて、可動対象物であるシート10が第2の姿勢状態(第2の位置)であると判断される場合には、シート10が第2の姿勢状態(第2の位置)である場合に想定されるプレーヤの視点位置や視線方向を、ロスト状態時のプレーヤの視点情報として設定する。
例えば視点情報演算部108は、プレーヤの操作情報又はゲーム状況情報に基づいて、可動機構60の動作情報を求め、求められた動作情報に基づいて、トラッキング視点のロスト状態時の視点情報の推定処理を行う。
例えば、図1においてプレーヤがハンドル50を右に切った、或いは左に切ったなどの操作情報に基づいて、可動機構60の動作情報を求める。即ち、可動機構60の動作状態(回転状態等)を設定するための動作情報を求める。可動機構60は、この動作情報である動作信号に基づいて動作する。
例えばプレーヤがハンドル50を右に切った場合には、右方向へのコーナリングをプレーヤに体感させるために、例えば、シート10が右回りに回転するように可動機構60を動作させる。そして、右方向にコーナリングした場合に想定される視点位置や視線方向を、プレーヤの視点情報として設定(推定)する。またプレーヤがハンドル50を左に切った場合には、左方向へのコーナリングをプレーヤに体感させるために、例えば、シート10が左回りに回転するように可動機構60を動作させる。そして、左方向にコーナリングした場合に想定される視点位置や視線方向を、プレーヤの視点情報として設定(推定)する。
また、ゲーム状況情報に基づいて、例えばプレーヤの移動体が凹凸のある路面等を走行していると判断された場合には、図3のY軸方向においてシート10が微少に上下するように、可動機構60(電動シリンダ73、74)を動作させる。そして、凹凸の路面を走行している場合に想定される視点位置や視線方向を、プレーヤの視点情報として設定(推定)する。例えばプレーヤの視点位置を路面の凹凸に合わせて上下させる。
なお、操作情報は、例えばプレーヤが操作部160を操作することで取得される情報である。ゲーム状況情報は、その時点でのゲームの状況を表す情報であり、ゲーム進行に伴い変化する情報である。例えば移動体が移動するゲームにおいては、ゲーム状況情報は、移動体の走行環境などの走行状況を表す情報である。また、キャラクタを用いたゲーム(RPGゲーム、格闘技ゲーム、アクションゲーム)などでは、ゲーム状況情報は、ゲームにおけるキャラクタの現在の状況を表す情報や、キャラクタのステータスパラメータ等に基づく情報である。またゲーム状況情報としては、例えばゲームの進行状況を表す情報、或いはゲームの達成度(マップのクリア状況、獲得ポイント等)を表す情報などを想定できる。
また視点情報演算部108は、プレーヤの体格情報、性別情報及び年齢情報の少なくとも1つを含むプレーヤ情報に基づいて、トラッキング視点のロスト状態時の視点情報の推定処理を行ってもよい。例えば、プレーヤが第1の体格(例えば身長が高い、体重が重い等)である場合と第2の体格(例えば身長が低い、体重が軽い等)である場合とで、ロスト状態時のプレーヤの視点情報を異ならせる。或いは、プレーヤが男性である場合と女性である場合とで、ロスト状態時のプレーヤの視点情報を異ならせる。或いは、プレーヤが大人である場合と子供である場合とで、ロスト状態時のプレーヤの視点情報を異ならせる。
具体的には視点情報演算部108は、複数の候補視点情報の中から、プレーヤ情報に基づいて視点情報を選択する処理を、トラッキング視点のロスト状態時の視点情報の推定処理として行う。例えばプレーヤが第1の体格である場合には、視点情報演算部108は、複数の候補視点情報の中から、第1の体格用に用意された視点情報(視点履歴情報)を選択して、ロスト状態時のプレーヤの視点情報を設定する。第2の体格である場合には、第2の体格用に用意された視点情報(視点履歴情報)を選択して、ロスト状態時のプレーヤの視点情報を設定する。或いは、プレーヤが男性である場合には、視点情報演算部108は、男性用に用意された視点情報(視点履歴情報)を選択して、ロスト状態時のプレーヤの視点情報を設定する。女性である場合には、女性用に用意された視点情報(視点履歴情報)を選択して、ロスト状態時のプレーヤの視点情報を設定する。或いは、プレーヤが大人である場合には、大人用に用意された視点情報(視点履歴情報)を選択して、ロスト状態時のプレーヤの視点情報を設定する。子供である場合には、子供用に用意された視点情報(視点履歴情報)を選択して、ロスト状態時のプレーヤの視点情報を設定する。
また視点情報演算部108は、プレーヤの動作の物理シミュレーション処理の結果に基づいて、トラッキング視点のロスト状態時の視点情報の推定処理を行ってもよい。例えば、プレーヤの操作情報、ゲーム状況情報、或いはこれらの操作情報やゲーム状況情報から求められる可動機構60の動作情報等に基づいて、プレーヤ(モデルオブジェクト)の動作の物理シミュレーション処理を行う。例えば、操作情報、ゲーム状況情報又は可動機構60の動作情報等に基づいて、プレーヤのモーションがどのように変化するかを、公知の物理シミュレーション処理により求める。そして、求められたプレーヤ(モデルオブジェクト)のモーションに基づいて、トラッキング視点のロスト状態時のプレーヤの視点情報を推定する。例えば、移動体が右コーナリングを行った場合や左コーナリングを行った場合のモーション情報を、物理シミュレーション処理により求め、そのモーション情報に基づいて、そのときのプレーヤの視点位置や視線位置の動きを特定する。そして、特定された視点位置や視線方向を、ロスト状態時のプレーヤの視点情報として推定する。
また画像生成部120は、1つの曲面又は複数の面により構成されるプロジェクション用スクリーンの形状情報と、プレーヤの視点情報とに基づいて、投影画像を生成する。プロジェクション用スクリーンの形状情報は、例えばプロジェクション用スクリーンの形状を数式(例えば楕円面の方程式)やポリゴンモデルなどで表した情報である。画像生成部120は、1つの曲面又は複数の面により構成されるプロジェクション用スクリーンの形状を反映させるための歪み補正処理を行って、投影画像を生成する。
即ち画像生成部120はプロジェクション用の投影画像を生成する。生成された投影画像は、図1、図2の投影装置30により、スクリーン20に投影される。これによりプレーヤは、仮想カメラから見たオブジェクト空間の画像を、ゲーム画像として見ることが可能になる。プロジェクション用の投影画像は、例えばプロジェクションマッピング処理で生成された投影画像である。プロジェクションマッピングは、映す対象(スクリーン)の状態(形状等)と投影装置30の状態(位置、方向等)と視点の状態(位置、方向等)を考慮に入れて投影装置30で映す手法である。
具体的には画像生成部120は、描画バッファ176上のピクセル(投影画像のピクセル)が投影装置30の光学系(広角レンズ等)を通して出射される光線と、プロジェクション用スクリーンとの交点位置と、視点位置を結ぶ直線を、仮想カメラの視線として、描画バッファ176上のピクセルの色を決定する。例えばこの直線を仮想カメラの視線として、オブジェクト空間の情報からピクセルの色を決定する。具体的には、この直線とオブジェクト空間内のオブジェクトとの交点位置(この直線がオブジェクト空間において最初に到達するオブジェクト上の点の位置)に応じて、ピクセルの色を決定する。この処理はレイトレーシング法にて実現することもできるが、描画負荷が大きく、リアルタイムでの実装が難しくなる。そこで、より実用的な方法としては、曲面のスクリーンになるべく近い形状の平面スクリーン(これを「代理平面」と呼ぶことにする)に対する描画結果をレンダーテクスチャに保存しておく手法で実現してもよい。そして、このようにしてピクセルの色を決定することで、投影画像が生成される。
或いは、画像生成部120は、オブジェクト空間内のオブジェクトの頂点位置と視点位置を結ぶ直線を求め、この直線とプロジェクション用スクリーンとの交点位置を求める。そして、求められた交点位置に基づいて、オブジェクトに対応する描画オブジェクトについての描画バッファ176上での頂点位置を求める。そして、求められた頂点位置に基づいて、描画バッファ176に描画オブジェクトを描画することで、投影画像を生成する。
なお、プロジェクション用スクリーンは、例えば、図1、図2のスクリーン20に対応して、仮想3次元空間であるオブジェクト空間に配置設定される投影画像生成用の仮想的なスクリーンである。画像生成部120では、このプロジェクション用スクリーンの形状に合わせて歪み補正処理(プロジェクションマッピング処理とも呼ばれる)が行われることになる。このプロジェクション用スクリーンは、1つの曲面又は複数の面(曲面、平面)により構成できる。
また、描画オブジェクトは、描画対象となる3次元オブジェクトに対応する2次元オブジェクトである。例えば、3次元オブジェクトは、3次元空間(オブジェクト空間)に配置されるオブジェクトを意味し、例えばその頂点の座標値として3次元の座標値(X、Y、Z座標値)を有するオブジェクトである。一方、描画オブジェクトは、例えばその頂点の座標値として2次元の座標値(X、Y座標)を有するオブジェクトである。また描画バッファ176は、例えばフレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファである。
また画像生成部120は、プレーヤの視点情報に基づいて、立体視用の第1視点画像と第2視点画像を生成してもよい。例えば第1視点画像は左目用画像であり、第2視点画像は右目用画像である。例えば、プレーヤの視点情報(視点位置、視線方向)に基づいて、左目用仮想カメラ(第1視点用仮想カメラ)の視点情報と右目用仮想カメラ(第2視点用仮想カメラ)の視点情報を設定する。そして左目用仮想カメラに基づいて左目用画像(第1視点画像)を生成し、右目用仮想カメラに基づいて右目用画像(第2視点画像)を生成する。なお、実際に立体視映像を観察するための方式としては、メガネ方式(具体的には、偏光方式、時分割方式、分光方式等)や裸眼方式などの方式が考えられる。
2.本実施形態の手法
次に本実施形態の手法について具体的に説明する。なお、以下ではプロジェクション用スクリーンへの投影画像を生成するシステムに本実施形態の手法を適用した場合について主に説明するが、本実施形態はこれに限定されない。後述するように本実施形態の手法は、立体視画像を生成するシステムやHMDへの表示画像を生成するシステムなどの種々の画像生成システムに適用可能である。
2.1 視点トラッキング
プロジェクション用スクリーンへの投影画像を生成するためには、プロジェクション用スクリーンの形状を反映させるための歪み補正処理を行う必要がある。そして、この歪み補正処理を正確に行うためには、プレーヤの視点位置等の視点情報が必要になる。なお、歪み補正処理の詳細については後述する。
そして、これまでは、このような歪み補正処理を実現するために、図5(A)に示すように、プレーヤの代表視点RVPを設定して、投影画像の生成のための歪み補正処理を行っていた。例えば図5(A)ではシート10の底面の基準位置RPから高さHVの位置に代表視点RVPを設定していた。この代表視点RVPは、プレーヤの実際の視点とは正確には一致しない。例えば背が高い第1のプレーヤと、背が低い第2のプレーヤでは、視点位置が異なるが、図5(A)では、これらの第1、第2のプレーヤで、同じ代表視点RVPを用いて、歪み補正処理を行って、投影画像を生成する。多少の視点位置の差であれば、生成される投影画像の違和感はそれほど大きくないと考えられるからである。
しかしながら、例えば図3で説明したような可動機構60を設けた場合には、この可動機構60が動作することで、図5(B)、図5(C)に示すようにプレーヤの視点位置VPや視線方向VLは変化してしまう。このように可動機構60が動作して、プレーヤの視点位置VPや視線方向VLが変化する状況において、図5(A)のような代表視点RVPを用いた手法で投影画像を生成すると、不自然さや違和感が大きい画像が表示されてしまう。即ち、図5(A)の代表視点RVPで計算される歪み補正処理が施された投影画像を、プロジェクション用スクリーンに投影してしまうと、プレーヤが大きな違和感を感じてしまうおそれがある。
そこで本実施形態では、視点トラッキングによりプレーヤの視点を捕捉することで、プレーヤの視点情報を設定し、設定された視点情報を用いて投影画像等の画像を生成する手法を採用している。具体的には、プレーヤの視点トラッキングにより得られたトラッキング視点情報を、プレーヤの視点情報として設定し、設定された視点情報に基づいて、オブジェクト空間においてプレーヤの視点から見える画像を生成する。
この場合の視点トラッキングは、図1、図2のように設置された撮像部40の撮像画像に基づき行うことが望ましい。即ち、プレーヤを撮影した撮像画像により求められるトラッキング視点情報を、プレーヤの視点情報として設定して、投影画像等の画像を生成する。図6(A)に、視点トラッキングに好適な構成の撮像部40の例を示す。
例えば図6(A)の撮像部40には、第1、第2のカメラ45、46が設けられている。これらの第1、第2のカメラ45、46で撮影された第1、第2の撮像画像を用いることで、プレーヤの視点を捕捉する視点トラッキングを実現できる。例えば複数のカメラ45、46を撮像部40に設けることで、現実空間における被写体であるプレーヤの奥行き方向の情報を求めることができる。例えばカメラ45やカメラ46の撮像画像を用いて、奥行き方向(撮像部40の光軸方向)に直交(交差)する平面でのプレーヤの視点位置を求めることができる。またカメラ45、46の撮像画像の視差情報等を用いて、奥行き方向でのプレーヤの視点の位置を求めることができ、これにより視点の3次元的な位置を求めることができる。或いは、カメラ45としてカラー画像センサーを有するカメラを用い、カメラ46としてデプスセンサーを有するカメラを用いることで、視点の3次元的な位置を求めてもよい。更には、単独のカラー画像センサーを有するカメラのみであっても、顔の大きさや両眼間隔を予め定位置で計測しておいたり、年齢・性別・体格等の情報から推定した顔の大きさや両眼間隔を用いて計算したりすることで、精度はやや落ちるものの、視点の3次元的な位置を求めることができる。
また図6(B)では、眼鏡200(広義には装着用部材)を用意し、この眼鏡200に、プレーヤの左目に対応する左目用マーカMKLと、右目に対応する右目用マーカMKRを設ける。即ち眼鏡200の左目部分に対応する位置に左目用マーカMKLを設け、右目部分に対応する位置に右目用マーカMKRを設ける。これらの左目用、右目用マーカMKL、MKRは、その形状が互いに異なっている。
そして、この眼鏡200を装着したプレーヤを撮像部40により撮影し、その撮像画像に基づいて、プレーヤの左目、右目の位置情報を取得する。即ち、撮像部40によりプレーヤを撮像し、得られた撮像画像に対して画像認識処理を行って、図6(B)の左目用、右目用マーカMKL、MKRの形状を認識する。そして、形状認識の結果により、例えばプレーヤの左目、右目の位置を検出することで、プレーヤの視点情報を取得し、視点トラッキングを実現する。特にメガネ式での立体視表示を行う場合には、立体視メガネの存在によって撮像部40から見た目の部分の明るさが低下し、アイトラッキングが困難になる場合があるが、このようなマーカーをメガネに付けておくことで、アイトラッキングをより精確に行うことが可能になる。
或いは図7(A)に示すようなアイトラッキングにより視点トラッキングを実現してもよい。例えばアイトラッキングにより、プレーヤの左目、右目の瞳の位置や形状等を認識し、左目、右目の位置ERP、ELPや視線方向ERD、ELD等を特定して、プレーヤの視点情報を取得し、視点トラッキングを実現する。このアイトラッキングは、例えば撮像部40によりプレーヤの左目、右目を撮影し、その撮像画像に対して瞳等の画像認識処理を行うことなどで実現できる。
或いは図7(B)に示すようなフェイストラッキングにより視点トラッキングを実現してもよい。例えば撮像部40でプレーヤの顔を撮像し、顔の画像認識処理を行う。そして、画像認識処理の結果に基づいて、プレーヤの顔の位置や向く方向を特定して、プレーヤの視点位置VP、視線方向VLを求めて、視点トラッキングを実現する。
なお、本実施形態の視点トラッキング手法は、図6(A)〜図7(B)で説明した手法に限定されず、プレーヤの視点情報を特定できる公知の種々の視点トラッキング手法を採用できる。
このように視点トラッキングにより視点情報を取得し、取得された視点情報を用いて、投影画像等の画像を生成すれば、より自然で違和感の少ない画像を生成できる。
しかしながら、視点トラッキングが成功している場合には、適切な視点情報を取得して、自然な画像を生成できるが、視点トラッキングが失敗して、トラッキング視点がロスト状態となった場合には、適切な視点情報を取得できない。このため、違和感のある画像や、破綻した画像が生成されてしまうおそれがある。
例えば可動機構60により、図8(A)のようにシート10が回転するなどして動作すると、この動作が原因で、図8(B)のようにプレーヤが手で自分の目を覆ってしまったり、図8(C)のようにプレーヤが前屈みの姿勢になってしまう場合がある。このような状況が発生すると、撮像部40によりプレーヤの顔等を撮影できなくなってしまい、プレーヤの視点を捕捉できなくなり、トラッキング視点がロスト状態になってしまう。或いは、プレーヤの姿勢の変化や動きが原因で、ゲームを見物している観客の視点を誤ってトラッキングしてしまい、結果として突然視点位置がジャンプするような状態になってしまう場合もある。これはいわゆる「誤認識状態」であるが、例えばフレーム間の視点位置の移動量の閾値を設け、視点位置の変化量がその閾値を超えるような場合には誤認識とみなすような処理等を行うことで、ロスト状態に帰着させることができるので、以後はロスト状態に含めて説明する。
このようなトラッキング視点のロスト状態が発生すると、プレーヤの視点情報を取得できなかったり、取得したプレーヤの視点情報の信頼度が著しく低下してしまい、適正な投影画像等の画像を生成できなくなってしまう。
2.2 ロスト状態時の視点情報の推定
以上のような課題を解決するために、本実施形態では、トラッキング視点のロスト状態時にプレーヤの視点情報を推定する処理を行って、オブジェクト空間においてプレーヤの視点から見える画像を生成する手法を採用している。
図9は本実施形態の手法の処理例を示すフローチャートである。まずフレーム更新か否かを判断する(ステップS1)。例えばフレーム画像を更新するタイミングか否かを判断する。そして、フレーム更新のタイミングである場合には、撮像部40により撮像画像を取得する(ステップS2)。即ちプレーヤの顔等を撮影したが撮像画像を取得する。そして、取得された撮像画像に基づき視点トラッキングを行って、トラッキング視点情報を求める(ステップS3)。即ち図6(A)〜図7(B)で説明したような視点トラッキングを行って、プレーヤの視点位置や視線方向などの視点情報を設定する。
次に、トラッキング視点がロスト状態か否かを判断する(ステップS4)。例えば、図8(B)、図8(C)で説明したように、例えば撮像部40によりプレーヤの顔を撮影できないなどの理由で、視点トラッキングに失敗して、ステップS3でトラッキング視点情報を得られないロスト状態なのか否かを判断する。そしてトラッキング視点がロスト状態である場合には、視点情報の推定処理を行う(ステップS5)。例えば視点履歴情報、プレーヤの操作情報、ゲーム状況情報、可動機構60の動作情報或いはプレーヤ情報等の各種の情報に基づいて、プレーヤの視点情報を推定する処理を行う。そして、視点情報に基づいて、オブジェクト空間においてプレーヤの視点から見える画像を生成する(ステップS6)。
例えばトラッキング視点がロスト状態ではない場合には、ステップS3で得られたトラッキング視点情報に基づいて、オブジェクト空間においてプレーヤの視点から見える画像を生成する。一方、トラッキング視点がロスト状態である場合には、ステップS5で推定された視点情報に基づいて、オブジェクト空間においてプレーヤの視点から見える画像を生成する。
このとき、図1のような曲面形状のスクリーン20に投影する画像を生成する場合には、後述するような歪み補正処理を行って、投影画像を生成する。また立体視画像を生成する場合には、視点情報(トラッキング視点情報又は推定処理により得られた視点情報)に基づいて、左目用仮想カメラ(広義には第1視点)、右目用仮想カメラ(広義には第2視点)を設定して、立体視用の左目用画像(広義には第1視点画像)、右目用画像(広義には第2視点画像)を生成する。
以上の本実施形態の手法によれば、視点トラッキングにより求められたトラッキング視点情報に基づいて、プレーヤの視点から見える画像が生成される。従って、例えば図5(B)、図5(C)に示すように可動機構60が動作することなどにより、現実世界でのプレーヤの視点位置VPや視線方向VLが大きく変化した場合にも、視点トラッキングにより捕捉されたプレーヤの視点の情報に基づいて画像が生成されるため、プレーヤが不自然さや違和感を感じることが少ない画像をプレーヤに表示できるようになる。例えば図1のような曲面形状のスクリーン20への投影画像の場合には、より適切に歪み補正処理が行われた投影画像を生成できるようになる。また立体視画像を生成する場合にも、現実世界でのプレーヤの視点の位置等と矛盾が生じない立体視画像をプレーヤに表示できるようになる。
そして本実施形態では、このような視点トラッキングを利用して画像を生成する際に、例えば図8(B)、図8(C)のようにトラッキング視点がロスト状態になるような状況が発生した場合にも、視点履歴情報、プレーヤの操作情報、ゲーム状況情報、可動機構60の動作情報或いはプレーヤ情報等の各種情報に基づいて、プレーヤの視点情報の推定処理が行われる。そして、推定処理により求められた視点情報に基づいて画像が生成されるため、例えば現実世界のプレーヤの視点位置とはかけ離れたような違和感のある画像が、プレーヤに表示されてしまう事態を防止できる。従って、視点のトラッキングが失敗等した場合にも、より適切な画像を生成できる画像生成システムを提供できるようになる。
2.3 視点履歴情報に基づく推定処理
次に、本実施形態の視点情報の推定処理の具体例について説明する。本実施形態では、プレーヤの視点履歴情報に基づいて、トラッキング視点のロスト状態時の視点情報の推定処理を行っている。この視点履歴情報に基づく視点情報の推定処理について説明する。
図10(A)に視点履歴情報の例を示す。図10(A)の視点履歴情報では、各インデックス(I1、I2、I3・・・)に対して、視点位置(VP1、VP2、VP3・・・)や視線方向(VL1、VL2、VL3・・・)などの視点情報が対応づけられている。視点履歴情報のインデックスとしては、フレーム番号、タイムスタンプ、コースブロック番号、マップブロック番号などの各種のインデックスを想定できる。
図10(B)では、プレーヤが操作する移動体MVがコースCS上で移動している。即ち操作部160により入力された操作情報に基づいて、移動体MVを移動させる演算処理が行われ、これにより移動体MVがコースCSに沿って移動する。そして経路LC1では移動体MVは、いわゆるアウト・イン・アウトでコースCS上を移動しており、経路LC2では、移動体MVはアウト・アウト・アウトで移動している。例えば経路LC1は、周回のコースCSの第1周目の経路であり、経路LC2は、第2周目の経路である。
そして図10(C)のVPHT1は、第1周目の経路LC1での視点履歴情報であり、VPHT2は、第2周目の経路LC2での視点履歴情報である。例えば各インデックス(I1、I2、I3・・・)が、フレーム番号(タイムスタンプ)であるとする。この場合には、周回のコースCSの第1周目において経路LC1を移動体MVが移動したときに、各フレームにおいて視点トラッキング等により求められたプレーヤの視点位置(VP11、VP12、VP13・・・)、視線方向(VL11、VL12、VL13・・・)が、各フレーム番号(I1、I2、I3・・・)に対応づけられて、視点履歴情報VPHT1として記憶される。同様に、周回のコースCSの第2周目において経路LC2を移動体MVが移動したときに、各フレームにおいて視点トラッキング等により求められたプレーヤの視点位置(VP21、VP22、VP23・・・)、視線方向(VL21、VL22、VL23・・・)が、各フレーム番号(I1、I2、I3・・・)に対応づけられて、視点履歴情報VPHT2として記憶される。これらの経路LC1、LC2では、移動体MVのコース取りが違うため、視点履歴情報VPHT1、VPHT2において、各フレーム番号(各インデックス)に対応づけられて記憶される視点位置、視線方向も異なっている。
そして、例えばプレーヤが操作する移動体MVが、周回のコースCSの第3周目において、図10(B)に示す同じコーナを通過する際に、視点トラッキングがロスト状態になったとする。具体的には図8(B)、図8(C)のような状態になって、撮像部40によりプレーヤの顔等を撮像できなくなり、視点トラッキングによってはプレーヤの視点情報を得られなくなったロスト状態になったとする。
この場合に本実施形態では、図10(C)に示す視点履歴情報VPHT1、VPHT2を用いて、トラッキング視点のロスト状態時のプレーヤの視点情報を推定する。具体的には、視点履歴情報VPHT1、VPHT2と、移動体MVの移動情報又はプレーヤの操作情報などに基づいて、ロスト状態時の視点情報を推定する。例えば、コースCSの第3周目での当該コーナにおける移動体MVの位置、速度、加速度、角速度又は角加速度等の移動情報と、視点履歴情報VPHT1、VPHT2とに基づいて、ロスト状態時の視点情報を推定する。例えば移動体MVの位置に基づいて、移動体MVの第3周目での移動経路LC3と、図10(B)の移動経路LC1、LC2との近接度合いを判断する。そして、例えば第1周目、第2周目の移動経路LC1、LC2のうち、第3周目の移動経路LC3に近い方の移動経路に対応づけられた視点履歴情報(VPHT1又はVPHT2)に基づいて、ロスト状態時のプレーヤの視点位置や視線方向などの視点情報を求める。或いは、移動経路LC1、LC2の各々に対応する重み付け係数WT1、WT2を、第3周目の移動経路LC3との近接度合いに基づいて設定し、これらの重み付け係数WT1、WT2により視点履歴情報VPHT1、VPHT2の重み付け処理を行って、ロスト状態時のプレーヤの視点情報を求める。
或いは、移動体MVの速度(或いは加速度、角速度、角加速度)が速いと判断された場合には、移動経路LC2の視点履歴情報VPHT2を採用したり、視点履歴情報VPHT2の重み付け係数を大きくすることで、ロスト状態時のプレーヤの視点情報を求める。一方、移動体MVの速度(或いは加速度、角速度、角加速度)が遅いと判断された場合には、移動経路LC1の視点履歴情報VPHT1を採用したり、視点履歴情報VPHT1の重み付け係数を大きくすることで、ロスト状態時のプレーヤの視点情報を求める。このようにすれば、プレーヤが操作する移動体MVが周回のコースCSにおいて過去に同じコーナ(広義にはエリア)を通過したときの視点履歴情報に基づいて、トラッキング視点のロスト状態時の視点情報を推定できるようになる。
また図11(A)の周回のコースCSでは、コースCSに対して複数のコースブロックが設定されている。例えば図11(A)のE1に示すコーナに対しては、図11(B)に示すようにコースブロックC1〜C11が設定されている。C1〜C11の各コースブロックは、コースCSの進行方向に対して交差(直交)する方向のラインで分割されている。そして図11(C)の視点履歴情報では、このコースブロック(コースブロック番号)がインデックスとなって、視点位置や視線方向などの視点情報が記憶されている。即ち図10(A)の視点履歴情報におけるインデックスが、図11(C)ではコースブロックになっている。
なお、コースブロックは、視点情報以外の情報が更に対応づけられるブロックであってもよい。例えば、各コースブロックの形状を特定するための形状データや各コースブロックでの走行条件設定データなどを、視点情報と共に、コースブロックに対応づけて記憶するようにしてもよい。形状データは、例えば進行方向に交差(直交)する方向での各コースブロックのコース幅等のデータである。走行条件設定デーは、例えば各コースブロックにおいて移動体の走行条件を設定するためのデータであり、例えば路面の摩擦度や滑りやすさなどを表す路面データなどである。図4のコースデータ記憶部178は、各コースブロックに対して、このような各種の情報が対応づけられたコースデータを記憶する。なお、コースブロックに対して各種の情報を対応づけてコースデータとして記憶する手法については、例えば特開2000−348216号公報などに開示されている。
図12は、図11(A)、図11(B)に示すような周回のコースCSで生成される視点履歴情報の例である。例えば周回のコースCSの第1周目での移動体の走行における視点トラッキング等に基づいて、図12の視点履歴情報VPHT1が生成される。第2周目での走行における視点トラッキング等に基づいて、視点履歴情報VPHT2が生成される。このようにして、コースCSを移動体がN周することで、視点履歴情報VPHT1〜VPHTNが生成される。
そして、例えばコースCSの第N+1周目での移動体の走行時に、図8(B)、図8(C)で説明したようなトラッキング視点のロスト状態が発生すると、図12の複数の視点履歴情報VPHT1〜VPHTN(第1〜第Nの視点履歴情報)と、その時の移動体の移動情報(又はプレーヤの操作情報)に基づき、視点情報が選択される。そして選択された視点情報が、トラッキング視点のロスト状態時のプレーヤの視点情報として推定される。このようにして、移動体が周回のコースCSにおいて過去に同じコースブロック(広義にはエリア)を通過したときの視点履歴情報に基づいて、トラッキング視点のロスト状態時の視点情報が推定されるようになる。
図13に、視点履歴情報に基づく視点情報の推定処理のフローチャートを示す。まず、移動体の位置、速度等の移動情報を演算ずる(ステップS11)。これは操作部160により入力されたプレーヤの操作情報に基づいて、移動体の移動演算処理を行うことで実現される。そして移動体が位置するコースブロックを特定する(ステップS12)。例えば図11(A)のコースCSのE1に示すコーナを移動体が移動している場合には、図11(B)のコースブロックC1〜C11のいずれに移動体が位置しているのかが特定される。このコースブロックの特定は、ステップS11で求められた移動体の位置の情報等に基づき行われる。
次に、複数の視点履歴情報において、特定されたコースブロックに対応づけられた複数の視点情報の中から、移動体の移動情報(或いはプレーヤの操作情報)に対応する視点情報を選択する(ステップS13)。そして選択された視点情報を、トラッキング視点のロスト状態時の視点情報として推定する(ステップS14)。
例えば図12において、移動体の周回数がN+1周目である場合には、第1周目〜第N周目で得られた視点履歴情報VPHT1〜VPHTNにおいて、ステップS12で特定されたコースブロックに対応づけられた複数の視点情報の中から、移動体の移動情報(プレーヤの操作情報)に対応する視点情報が選択される。
例えば、トラッキング視点のロスト状態時に移動体が位置するコースブロックが、図11(B)のコースブロックC1であったとする。この場合には、視点履歴情報VPHT1〜VPHTNにおいて、コースブロックC1に対応づけられた視点位置VP11〜VPN1、視線方向VL11〜VLN1などの視点情報の中から、移動体の速度、加速度等の移動情報に対応する視点情報が選択される。
具体的には図12では、各コースブロックに対して、過去にそのコースブロックを通過した時の移動体の速度(広義には移動情報。或いはプレーヤの操作情報であってもよい)が対応づけられている。例えば視点履歴情報VPHT1、VPHT2・・・VPHTNでは、コースブロックC1に対して、第1周目〜第N周目にコースブロックC1を通過した時の速度VC11、VC21・・・VCN1が対応づけられている。そして、第N+1周目においてコースブロックC1での移動体の速度がVCXである場合には、視点履歴情報VPHT1〜VPHTNのコースブロックC1に対応づけられた速度VC11〜VCN1の中から、例えば速度VCXに最も近い速度を選択する。
例えば視点履歴情報VPHT1においてコースブロックC1に対応づけられた速度VC11が、速度VCXに最も近かったとする。この場合には、視点履歴情報VPHT1においてコースブロックC1に対応づけられた視点位置VP11、視線方向VL11が選択されて、トラッキング視点のロスト状態時のプレーヤの視点情報として推定される。或いは、視点履歴情報VPHTNにおいてコースブロックC1に対応づけられた速度VCN1が、速度VCXに最も近かったとする。この場合には、視点履歴情報VPHTNにおいてコースブロックC1に対応づけられた視点位置VPN1、視線方向VLN1が、トラッキング視点のロスト状態時のプレーヤの視点情報として推定される。
このようにすることで、移動体が周回コースにおいて過去に同じエリアを通過したときの視点履歴情報(視点情報)に基づいて、ロスト状態時の視点情報を推定できるようになる。つまり、図10(A)〜図10(C)で説明したようなロスト状態時の視点情報の推定処理を実現できる。
例えばN+1周目のコーナリングにおいて、移動体MVの速度が高ければ、図10(B)のLC2のような経路で移動体MVが走行する可能性が高い。従って、この場合には、過去の第1〜第N周の視点履歴情報の中から、同じように速度が高かった時の視点履歴情報の視点情報を選択することで、このように速い速度でコーナリングしたときの視点情報を、ロスト状態時のプレーヤの視点情報として推定できるようになる。従って、より適切な視点情報の推定処理を実現できる。
なお、以上では、移動体の速度に基づいて視点情報を選択する場合について説明したが、移動体の加速度、角速度、角加速度等に基づいて、視点情報を選択してもよい。或いはプレーヤの操作情報(例えばハンドルを回した角度、アクセルペダルやブレーキペダルの踏み込み量等)に基づいて、視点情報を選択してもよい。即ち、プレーヤの操作履歴情報に基づいて、トラッキング視点のロスト状態時のプレーヤの視点情報を推定してもよい。
2.4 可動機構の動作情報に基づく推定処理
本実施形態では、可動機構の動作情報に基づいて、トラッキング視点のロスト状態時の視点情報の推定処理を行う。図14に、このような可動機構の動作情報に基づく視点情報の推定処理のフローチャートを示す。
まず、プレーヤの操作情報を取得する(ステップS21)。そして、取得されたプレーヤの操作情報や、ゲーム状況情報に基づいて、可動機構60を動作させる(ステップS22)。例えば図1のハンドル50、ブレーキペダル52、アクセルペダル54、或いはシフトレバー56などをプレーヤが操作すると、その操作情報に基づいて、可動機構60を動作させる。或いは、ゲーム状況に対応するように可動機構60を動作させる。例えばゲーム処理においては、ゲーム進行に伴い、ゲーム状況を表すゲームパラメータを変化(更新)させる処理を行うが、このゲームパラメータの情報に基づいて、可動機構60を動作させる。
具体的には、図1においてプレーヤがハンドル50を右に切った場合(右に回した場合)には、シート10(座部)が右回りに回転するように可動機構60を動作させる。具体的には、図3の電動シリンダ73のロッド部が長くなり、電動シリンダ74のロッド部が短くなるように、電動シリンダ73、74を動作させる。これにより、例えば車のテールが左方向に流れて、右コーナでのコーナリングで車がドリフト走行したような感覚を、プレーヤに与えることができる。
一方、プレーヤがハンドル50を左に切った場合(左に回した場合)には、シート10が左回りに回転するように可動機構60を動作させる。具体的には、電動シリンダ73のロッド部が短くなり、電動シリンダ74のロッド部が長くなるように、電動シリンダ73、74を動作させる。これにより、例えば車のテールが右方向に流れて、左コーナでのコーナリングで車がドリフト走行したような感覚を、プレーヤに与えることができる。
或いは、ゲーム状況情報の一つである走行状況が、凹凸の路面を走るような走行状況である場合には、シート10が微少に揺れるように可動機構60を動作させる。具体的には、電動シリンダ73、74のロッド部を微少のストローク距離で直線運動させる。これにより、あたかも車が凹凸のあるガタガタ道を走行しているような感覚を、プレーヤに与えることができる。
そして図14において、トラッキング視点がロスト状態であるか否かを判断し(ステップS23)、ロスト状態であると判断された場合には、可動機構60の動作情報に基づいて、ロスト状態時のプレーヤの視点情報の推定処理を行う(ステップS24)。
例えば図15(A)において、シート10が停止している時のシート10の方向をCLとし、プレーヤの視点位置をVPとし、視線方向をVLとする。この場合に図15(B)では、例えばプレーヤが図1のハンドル50を右に切ったため、シート10が右回りに回転(プレーヤが向く方向を正面方向とした場合の右回り)するように、可動機構60が動作している。また図15(C)では、例えばプレーヤがハンドル50を左に切ったため、シート10が左回りに回転するように、可動機構60が動作している。
本実施形態では、図15(B)、図15(C)のように可動機構60が動作した時のプレーヤの視点位置VPや視線方向VLを、視点トラッキング等を利用して予め計測しておく。そして、計測した視点位置VPや視線方向VLなどの視点情報を、可動機構60の動作情報に対応づけて記憶しておく。例えば図4の記憶部170に記憶しておく。例えばシート10の各回転角度(広義には可動対象物の動作情報)、或いは電動シリンダ73、74のロッド部の各移動量(広義にはアクチュエータの動作情報)などの各動作情報に対して、その各動作情報に対応する視点情報の計測結果(或いはシミュレーション結果)を対応づけて記憶しておく。そして、トラッキング視点がロスト状態になった場合には、その時の可動機構60の動作情報(動作状況)に対応づけられた視点情報を、記憶部170から読み出し、読み出された視点情報を、ロスト状態時のプレーヤの視点情報として推定する。
例えば図15(B)のようにシート10が右回りに回転した際に、トラッキング視点がロスト状態になった場合には、この回転角度の時(回転状態の時)の計測結果(シミュレーション結果)である視点情報が、記憶部170から読み出されて、ロスト状態時のプレーヤの視点情報として推定される。同様に図15(C)のようにシート10が左回りに回転した際に、トラッキング視点がロスト状態になった場合には、この回転角度の時(回転状態の時)の計測結果(シミュレーション結果)である視点情報が、記憶部170から読み出されて、ロスト状態時のプレーヤの視点情報として推定される。
このようにすれば、トラッキング視点がロスト状態になった場合に、その時の可動機構60の動作状態に応じた視点に、プレーヤの視点を設定できるようになる。従って、トラッキング視点がロスト状態になっても、違和感が少なく、より自然に見える画像を生成して、プレーヤに表示できるようになる。
2.5 プレーヤ情報に基づく推定処理
本実施形態では、プレーヤの体格情報、性別情報及び年齢情報の少なくとも1つを含むプレーヤ情報に基づいて、トラッキング視点のロスト状態時の視点情報の推定処理を行ってもよい。具体的には複数の候補視点情報の中から、プレーヤ情報に基づいて視点情報を選択する処理を、ロスト状態時の視点情報の推定処理として行う。図16に、このようなプレーヤ情報に基づく視点情報の推定処理のフローチャートを示す。
まず、プレーヤの体格、性別、年齢等のプレーヤ情報を取得しておく(ステップS31)。これは、例えばプレーヤが図4の操作部160を用いてプレーヤ情報を入力することで、取得できる。或いは、補助記憶装置194であるICカード等を用いて、プレーヤ情報を取得してもよい。例えば、プレーヤがICカードを図1のカードリーダー58にタッチすると、ICカードに対応づけられたプレーヤ情報が取得される。具体的には、ICカードの媒体IDがネットワークを介して不図示のサーバシステムに送られ、サーバシステムの記憶部(データベース)から、媒体IDに対応づけて記憶されているプレーヤ情報(ユーザ情報、個人情報)が読み出される。そして、読み出されたプレーヤ情報をネットワークを介して画像生成システム(ゲームシステム)が受信することで、プレーヤ情報が取得される。或いは、ICカード(広義には補助記憶装置)にプレーヤ情報そのものを記憶しておいてもよい。また、プレーヤが自ら入力しなくても、撮影装置によって取得することができる情報もある。例えば、「プレーヤがシートに座った時の基本的な姿勢における地面から視点までの高さ」といった情報は、プレーヤ本人にも正確には分からないことが多い。しかし、「シートポジションをプレイ前には毎回定位置に戻しておき、そこにプレーヤが初めて座って姿勢が安定したときの視点位置を取得する」、といった方法で、その情報をある程度正確に取得することができる。
そしてトラッキング視点がロスト状態であるか否かを判断し(ステップS32)、ロスト状態であると判断された場合には、可動機構60の動作情報等に基づいて、取得された複数の候補視点情報の中から、プレーヤ情報に対応する視点情報を選択する(ステップS33)。そして、選択された視点情報を、トラッキング視点のロスト状態時のプレーヤの視点情報として推定する(ステップS34)。
例えば前述の図15(A)〜図15(C)のように可動機構60の動作情報に基づいて、ロスト状態時のプレーヤの視点情報を推定する場合に、図15(B)、図15(C)の視点情報(VP、VL)として、複数の候補視点情報を用意しておく。例えば身長が高い人用(体格が大きい人用)の視点情報と、身長が低い人用(体格が小さい人用)の視点情報を用意しておく。例えば身長が高い人では、視点位置VPが高くなり、身長が低い人では、視点位置VPが低くなる。
そして、プレーヤ情報の体格情報に基づいて、プレーヤの身長が高いと判断される場合には、例えば可動機構60の動作情報に対応づけられた候補視点情報の中から、身長が高い人用の視点情報を、トラッキング視点のロスト状態時の視点情報として選択する。一方、プレーヤ情報の体格情報に基づいて、プレーヤの身長が低いと判断される場合には、例えば可動機構60の動作情報に対応づけられた候補視点情報の中から、身長が低い人用の視点情報を、トラッキング視点のロスト状態時の視点情報として選択する。
このようにすれば、トラッキング視点のロスト状態時に、プレーヤの身長等の体格に応じた適切な視点情報を選択して画像を生成し、プレーヤに表示できるようになる。
また図15(B)、図15(C)の視点情報(VP、VL)として、例えば男性用や大人用の視点情報と、女性用や子供用の視点情報を用意しておく。例えばシート10が図15(B)、図15(C)のように回転した場合に、男性や大人では、視線方向VLの変化が少ないことが予想され、女性や子供では、視線方向VLの変化が大きいことが予想される。
そして、プレーヤ情報の性別情報や年齢情報に基づいて、プレーヤが男性や大人であると判断される場合には、例えば可動機構60の動作情報に対応づけられた候補視点情報の中から、男性用や大人用の視点情報を、トラッキング視点のロスト状態時の視点情報として選択する。一方、プレーヤ情報の性別情報や年齢情報に基づいて、プレーヤが女性や子供であると判断される場合には、例えば可動機構60の動作情報に対応づけられた候補視点情報の中から、女性用や子供用の視点情報を、トラッキング視点のロスト状態時の視点情報として選択する。
例えば男性用や大人用の視点情報を用意する場合には、実際に男性や大人にシート10に座って貰い、シート10を回転させるなどの動作を可動機構60に行わせる。そして、その時に計測された視点情報を、可動機構60の動作情報に対応づけて、記憶部170に記憶しておけばよい。同様に、女性用や子供用の視点情報を用意する場合には、実際に女性や子供にシート10に座って貰い、シート10を回転させるなどの動作を可動機構60に行わせる。そして、その時に計測された視点情報を、可動機構60の動作情報に対応づけて、記憶部170に記憶しておけばよい。
このようにすれば、トラッキング視点のロスト状態時に、プレーヤの性別や年齢に応じた適切な視点情報を選択して画像を生成し、プレーヤに表示できるようになる。
なお、以上では、可動機構60の動作情報に基づき、複数の候補視点情報の中から視点情報を選択する場合について説明したが、本実施形態はこれに限定されない。例えば移動体の移動情報(位置、速度、加速度、角速度又は角加速度等)、プレーヤの操作情報、又はゲーム状況情報に基づき、複数の候補視点情報の中から、プレーヤ情報に対応する視点情報を選択することで、トラッキング視点のロスト状態時のプレーヤの視点情報を推定してもよい。例えば図10(A)〜図13で説明した手法で視点情報を選択する際に、更にプレーヤ情報を加味して視点情報を選択し、ロスト状態時のプレーヤの視点情報を推定してもよい。
2.6 物理シミュレーション処理の結果に基づく推定処理
本実施形態では、プレーヤの動作の物理シミュレーション処理の結果に基づいて、トラッキング視点のロスト状態時の視点情報の推定処理を行ってもよい。図17に、このような物理シミュレーション処理の結果に基づく視点情報の推定処理のフローチャートを示す。
まず、プレーヤの操作情報を取得する(ステップS41)。そして、プレーヤの操作情報やゲーム状況情報に基づいて、可動機構60を動作させる(ステップS42)。例えば前述のように、ハンドル50等の操作情報に基づいて、可動機構60を動作させる。或いは、例えば路面状況等のゲーム状況に応じて可動機構60を動作させる。
次に、可動機構60の動作情報等に基づいて、プレーヤのモデルオブジェクトの動作の物理シミュレーション処理を実行する(ステップS43)。例えば可動機構60の動作情報等に基づいて、プレーヤに作用する力の情報を特定し、その力の情報を用いた力学演算などの物理シミュレーション処理を実行する。
そしてトラッキング視点がロスト状態であるか否かを判断し(ステップS44)、ロスト状態であると判断された場合には、物理シミュレーション処理に基づき求められたモデルオブジェクトの視点情報を、トラッキング視点のロスト状態時のプレーヤの視点情報として推定する(ステップS45)。例えば、ステップS43において、可動機構60の動作情報等に基づいて、プレーヤのモデルオブジェクトの動作の物理シミュレーション処理を行うことで、モデルオブジェクトの視点位置や視線方向などの視点情報が、随時、求められている。そして、トラッキング視点がロスト状態になったと判断された場合には、このモデルオブジェクトの視点情報を、プレーヤの視点情報であると推定して、トラッキング視点のロスト状態時の画像を生成する。
例えば図18(A)に示すように、シート10をモデル化したシートオブジェクトSBに、プレーヤをモデル化したモデルオブジェクトMBが着座した状態で、物理シミュレーション処理を実行する。例えば可動機構60が動作することによりシート10が回転している場合には、図18(B)、図18(C)に示すように、シート10に対応するシートオブジェクトSBを、右回りや左回りに回転させる。そして、このようにシートオブジェクトSBが回転した時の、モデルオブジェクトMBの動作情報を求める物理シミュレーション処理を実行する。このようにしてモデルオブジェクトMBの動作情報を求めることで、シートオブジェクトSBが回転した時の、モデルオブジェクトMBの視点位置VPや視線方向VLを、モデルオブジェクトMBの視点情報として特定できる。この特定された視点情報を、トラッキング視点のロスト状態時のプレーヤの視点情報として推定する。
なお、このような物理シミュレーション処理を行う場合には、図16で説明したプレーヤ情報を用いることが望ましい。例えばプレーヤ情報の体格情報、性別情報又は年齢情報等に基づいて、複数の候補モデルオブジェクトの中から、物理シミュレーション処理に用いるプレーヤのモデルオブジェクトを選択する。そして、選択されたモデルオブジェクトを用いて物理シミュレーション処理を実行して、プレーヤの視点情報を求める。
このようにすれば、プレーヤの体格、性別、年齢等に応じた物理シミュレーション処理を実行できるため、トラッキング視点のロスト状態時においても、プレーヤの体格や性別や年齢に応じた適切な視点情報を選択して画像を生成し、プレーヤに表示できるようになる。
なお、以上では、可動機構60の動作情報に基づいて物理シミュレーション処理を行って、視点情報を求める場合について説明したが、本実施形態はこれに限定されない。例えば移動体の移動情報(位置、速度、加速度、角速度又は角加速度等)、プレーヤの操作情報、又はゲーム状況情報に基づいて、物理シミュレーション処理を行って、視点情報を求めるようにしてもよい。
また、本実施形態の物理シミュレーション処理としては種々の処理を想定できる。例えばモデルオブジェクトを複数の部位(骨及び関節)で構成すると共に、可動機構60が動作することでモデルオブジェクトに作用する力ベクトルを求める。そして、求められた力ベクトルをモデルオブジェクトに作用させたことによる複数の部位(頭部、胸部、腰部、脚部、手部)の各部位の動きを求める力学演算を、物理シミュレーション処理として行う。そして、求められた頭部等の部位の動きに基づいて、モデルオブジェクトの視点位置や視線方向などの視点情報を求め、トラッキング視点のロスト状態時のプレーヤの視点情報として推定する。なお物理シミュレーション処理の手法については、例えば特開2009−140519号公報、特開2004−30502号公報、特開2009−37572号公報などに開示されている。例えば仮想人間のシミュレーション手法の一例としては、キャラクタを単一剛体モデルで近似して、この単一剛体モデルに外力が働いた時の力学演算を行う。また、多次元キーフレームアニメーションと呼ばれる手法により、多次元空間にキャラクタの動きを表すキーフレームを配置する。そして、キャラクタの単一剛体モデルの状態に応じて、多次元座標を決定する。更には、外力が働いた時に、姿勢を保とうとしたり、バランスを取ったりするような人間らしい挙動をも勘案して、最終的なキャラクタの姿勢・動きを決定する。
このように本実施形態に用いられる物理シミュレーション処理としては種々の処理を想定できる。
3.画像生成手法
次に本実施形態の手法が適用可能な種々の画像生成手法について説明する。
3.1 投影画像の生成
まず、本実施形態の画像生成システムにより生成される画像が、プロジェクション用スクリーンに投影される投影画像である場合について説明する。なお、以下では、プロジェクション用スクリーンが曲面形状のスクリーン(ドーム形状のスクリーン)である場合を主に例にとり説明するが、本実施形態はこれに限定されない。プロジェクション用スクリーンは、単一平面ではないスクリーンの全般を指すものである。例えばプロジェクション用スクリーンは、1つの曲面又は複数の面(平面、曲面)により構成されるスクリーンであればよい。即ち、当該スクリーンとしては、1つの曲面で構成されるスクリーン、複数の平面で構成されるスクリーン、曲面部分と平面部分とを含むスクリーンなどを想定できる。また、単一平面であるスクリーンの場合は、プロジェクション式ではないフラットパネルディスプレイと同様に、より単純な処理で済ませることができるが、もちろんそれであってもよい。
3.1.1 ピクセル単位での歪み補正手法
まずプロジェクション用の投影画像の生成手法について説明する。例えばプロジェクション用スクリーンが、1つの曲面又は複数の面により構成されるスクリーンである場合に、本実施形態では、プロジェクション用スクリーンの形状情報に基づく歪み補正処理を行って、投影画像を生成する。以下では、投影画像の生成の際に行われる歪み補正手法の具体例について説明する。
ドーム形状(曲面形状)のスクリーンに画像を投影する場合に、投影装置の位置とプレーヤ(観察者)の位置が離れていると、画像の歪みが目立ってしまう。そこで、この歪みを予め考慮に入れて、投影装置からの投影画像(投影装置の描画バッファに描く画像)を生成することで、プレーヤから見て歪みのない映像を提示することが可能になる。
この場合に、スクリーンが単一の平面であれば、歪みは線形(パースによる歪み)となるため、射影変換行列を1つ用いるだけで簡単に補正することが可能になる。
しかし、単一平面ではないスクリーン(1つの曲面又は複数の面で構成されるスクリーン)である場合には、線形ではない歪みが加わるため、射影変換行列を1つ用いるだけという簡単な補正手法では、歪みを補正できず、画像の部分に応じて、細かく補正を行う必要がある。
このような歪み補正を実現する手法として、描画バッファのピクセル単位で歪み補正を行う手法と、3次元オブジェクトの頂点単位で歪み補正を行う手法が考えられる。まず、ピクセル単位での歪み補正手法について説明する。
描画バッファのピクセル単位での歪み補正手法では、図19や下記に示す(1)、(2)、(3)、(4)の処理を順に行う。
(1)描画バッファ(フレームバッファ)上のピクセルPX(XP,YP)が、投影装置のレンズを通して出射される光線RYを求める。
(2)その光線RYが、スクリーンSCと交差する交点PS(XS,YS,ZS)の位置を求める。例えばスクリーンSCが楕円面の方程式等の数式で表される場合には、直線RYを表す数式とスクリーンSCを表す数式を用いて交点PSを求める。このスクリーンSCを表す数式が、スクリーンSCの形状情報である。
(3)この交点PS(XS,YS,ZS)の色は、プレーヤ(観察者)がオブジェクト空間(仮想空間)を観察しているときの色である必要がある。そこで、プレーヤの視点に対応する仮想カメラVCの位置VPと、交点PS(XS,YS,ZS)の位置を結ぶ直線LVを求める。
(4)この直線LVを仮想カメラVCの視線としてオブジェクト空間の情報から、描画バッファ上の投影画像のピクセルの色を決定する。例えば、オブジェクト空間で最初に到達する3次元オブジェクトOB上の点PB(XB,YB,ZB)の位置を求め、それに応じて、描画バッファ上の投影画像のピクセルの色を決定する。
この場合に、ピクセル単位での歪み補正手法の改良手法では、上記の最後の(4)において、直線LVと3次元オブジェクトOBとの交点PB(XB,YB,ZB)の色を求める代わりに、あらかじめ描画しておいた平面(レンダーテクスチャ)と直線LVとの交点(レンダーテクスチャの座標で(U,V))の色を用いて、投影画像のピクセルの色を決定する。レンダーテクスチャは、予め、投影面になるべく近い平面(以下、代理平面と呼ぶ)を選んでおき、そこに通常の描画方法、すなわち、平面を投影面とする描画を行うことで作成できる。
図20に、このような代理平面PL1、PL2の一例を示す。このように代理平面は1枚とは限らず、この場合は2枚用いている。点PPが直線LVと代理平面PL1(PL2)との交点である。
レンダーテクスチャの参照位置は、視点や投影装置の位置及びスクリーンの位置や形状が変化しない限り、最初に1度だけ計算しておけばよい。そのデータを保持しておくための代表的な方法としては、描画バッファの1ピクセルごとに、レンダーテクスチャのどの位置(U,V)のピクセル値(テクセル値)を参照するかを、1枚のテクスチャとして保持しておく方法がある。このテクスチャを、「UVマップ」と呼ぶ。図21に、投影装置の描画バッファとUVマップとレンダーテクスチャの関係を示す。
図21のレンダーテクスチャの対応点(UV座標)を、描画バッファ上の全ピクセルについて求めて保持しておくことは、大きなリソースを必要とする。その大きなリソースを用意する余裕がない場合には、スクリーンSC上に適当に配置された代表頂点について、描画バッファ上の対応点(XP,YP)と、レンダーテクスチャ上の対応点(U,V)を求め、それらをつないだ三角形ポリゴンによるメッシュを作っておく。そして、三角形ポリゴンを描画するときに、三角形ポリゴンの頂点に情報として記録された(U,V)座標を参照し、三角形ポリゴン内部の点についてはそれらから補間された(U,V)座標を用いるようにする。このようにすれば、大幅にリソースを節約することが可能になる。
3.1.2 頂点単位での歪み補正手法
次に描画オブジェクトの頂点単位で歪み補正を行う手法について説明する。この手法では、オブジェクト空間内の3次元オブジェクトの頂点を、投影装置の描画バッファ上の点に変換する。具体的には図22や下記に示す(1)、(2)、(3)、(4)の処理を順に行う。これは図19の手法の処理を逆の順で行うことに相当する。
(1)オブジェクト空間内の3次元オブジェクトOBの頂点V(XV,YV,ZV)の位置と、プレーヤの視点に対応する仮想カメラVCの位置VPとを結ぶ直線LVを求める。
(2)求められた直線LVとスクリーンSCの交点PS(XS,YS,ZS)の位置を求める。例えばスクリーンSCが楕円面の方程式等の数式で表される場合には、直線LVを表す数式とスクリーンSCを表す数式を用いて交点PSを求める。このスクリーンSCを表す数式が、スクリーンSCの形状情報である。
(3)交点PS(XS,YS,ZS)の位置と投影装置PJの位置を結ぶ直線LRを求める。
(4)直線LRに対応する描画バッファ上の点PD(XD,YD)の位置を求める。この点PDは、3次元オブジェクトOBに対応する描画バッファ上の描画オブジェクトOBDの頂点に相当する。なお直線LRから点PDを求める際には、投影装置PJのレンズの特性や配置等の光学系の情報を用いる。
以後は、描画オブジェクトOBDの頂点と頂点を結んで色を塗るラスタライズ処理を行うことで、描画バッファ上に投影画像を生成できる。
なお、この場合に、以下のような手法を用いることが望ましい。即ち、オブジェクト空間内の3次元オブジェクトOBに対して、頂点分割数設定部で設定された頂点分割数で頂点分割処理を行う。そして頂点分割処理後の3次元オブジェクトOBの頂点位置と仮想カメラVCの位置とを結ぶ直線と、プロジェクション用のスクリーンSCとの交点位置を求める。そして、求められた交点位置に基づいて、3次元オブジェクトOBに対応する描画オブジェクトOBDについての、描画バッファでの頂点位置を求める。そして、求められた描画オブジェクトOBDの頂点位置に基づいて、描画オブジェクトOBDを描画バッファに描画する処理を行って、プロジェクション用の投影画像を生成する。このような手法を採用すれば、例えばオブジェクト空間内での直線が、描画バッファ上においても直線として描画されてしまい、結果として歪んだ画像が観察されてしまうような事態の発生を抑制できる。
以上のようにプロジェクション用のスクリーンへの投影画像を生成するシステムでは、視点位置の設定が重要になる。例えば図19、図22にいて、視点VPの位置が正確に特定されていないと、歪み画像補正処理が不正確になってしまい、不自然な画像が生成されてしまう。
この点、比較例の手法では、図5(A)に示すような代表視点RVPを設定して、この代表視点RVPをプレーヤの視点と見なして、投影画像生成のために歪み補正処理を行っていた。
しかしながら、この比較例の手法においては、プレーヤの視点位置の変化が少ないことを前提にしている。そのため、例えば図3に示すような可動機構60を画像生成システムに設けると、可動機構60の動作により、現実世界でのプレーヤの視点の位置が変化してしまい、図5(A)の代表視点RVPの位置と一致しなくなってしまう。即ち図19、図21の歪み補正処理に使用する視点VPの位置と、現実世界でのプレーヤの視点が一致しなくなる。このため、例えば可動機構60が動作して、プレーヤの視点位置や視線方向が大きく変化する状況において、図5(A)のような代表視点RVPを用いた手法で投影画像を生成すると、不自然さや違和感が大きい画像が表示されてしまう。
そこで本実施形態では、図6(A)〜図7(B)に示すような視点トラッキングを行うことで、現実世界でのプレーヤの視点を捕捉し、視点トラッキングにより得られた視点を、図19、図20の視点VPに設定して、投影画像生成のための歪み補正処理を行っている。このとき、前述の3.1.1で示した、ピクセル単位での歪み補正手法の場合に必要となるUVマップは、視点位置の変化に合わせてリアルタイムに作成する。こうすることで、図5(A)の代表視点RVPを用いる手法に比べて、歪み補正処理に用いる視点と現実世界でのプレーヤの視点との乖離が少なくなり、より自然が画像をプレーヤに表示できるようになる。
ところが、視点トラッキング手法では、視点トラッキングが成功している場合には、適切な視点情報を取得でき、違和感の少ない画像を生成できるが、図8(B)、図8(C)等の状況の発生により、視点トラッキングが失敗して、トラッキング視点がロスト状態となった場合には、適切な視点情報を取得できないという問題がある。
この点、本実施形態では、図9〜図18(C)で説明したように、トラッキング視点のロスト状態時に、視点履歴情報、移動体の移動情報、操作情報、可動機構の動作情報又はプレーヤ情報等の種々の情報を有効活用して、プレーヤの視点情報を推定する手法を採用している。従って、現実世界のプレーヤの視点位置とはかけ離れたような違和感のある画像が、プレーヤに表示されてしまうような事態を防止でき、より適切な画像を生成できる画像生成システムを提供できるようになる。
3.2 立体視画像、頭部装着型表示装置
本実施形態の手法は、立体視画像を生成するシステムにおいても有効である。具体的には、プレーヤの視点情報に基づいて、立体視用の第1視点画像と第2視点画像を生成する画像生成システムにおいても、本実施形態の手法を適用することで、適正な立体視画像を生成できるようになる。
なお本実施形態の手法は立体視用の投影画像の生成にも適用できる。例えば図23(A)〜図23(C)は、プロジェクション用のスクリーンSCに対して、立体視用の投影画像を生成する手法の説明図である。例えば図23(A)に示すように、左目用仮想カメラVCL(広義には第1視点用仮想カメラ)と右目用仮想カメラVCR(広義には第2視点用仮想カメラ)を用意する。そして、左目用仮想カメラVCL、右目用仮想カメラVCRのそれぞれを用いて、図19〜図22等で説明した手法により投影画像を生成することで、立体視用の投影画像を生成できる。
この場合に、左目用仮想カメラVCL、右目用仮想カメラVCRの位置は、視点トラッキング等により、プレーヤの左目および右目の位置を検出することが設定できる。なお、従来の方法(プレーヤの左目および右目の位置の検出を行うことができない場合)であっても、描画対象となる3次元オブジェクトの投影位置に応じて、プレーヤの視点位置はある程度推測できるので、それに合わせて左目用仮想カメラVCL、右目用仮想カメラVCRの位置を設定することもできていた。例えば、図23(B)、図23(C)に示すように、描画対象となる3次元オブジェクトの投影位置D1(もしくはD2)に応じて左目用仮想カメラVCL、右目用仮想カメラVCRの位置(視点位置)を変化させることで、疑似的にヘッドトラッキングのような効果を生み出すことができていたのだが、やはり可動機構60を画像生成システムに設ける等した場合には、可動機構60の動作によって現実世界でのプレーヤの視点の位置が大きく変化してしまい、立体視でない場合と同様に、不自然さや違和感が大きい画像が表示される結果となることがある。そこで、視点トラッキング等により、プレーヤの左目及び右目の位置を検出することで、従来よりも自然な立体視画像を呈示することが可能となる。
このような立体視画像を生成するシステムにおいて、トラッキング視点のロスト状態が発生すると、破綻した立体視の画像が表示されるなどの不具合が生じるおそれがある。この点、本実施形態では、トラッキング視点のロスト状態時においても、各種の情報に基づいてプレーヤの視点情報が推定され、推定された視点情報に基づいて立体視画像が生成される。従って、破綻した立体視の画像が生成されるなどの事態を防止でき、立体視画像に好適な画像生成システムの提供が可能になる。
また本実施形態の手法は、頭部装着型表示装置(HMD)の表示画像の生成手法への適用にも有効である。
例えば図24において、HMD200には、複数のLED231〜236が設けられている。LED231〜234は、プレーヤの前面側に設けられ、LED235や不図示のLED236は、プレーヤの背面側に設けられる。これらのLED231〜236は、例えば可視光の帯域の光を出射(発光)する。具体的にはLED231〜236は、互いに異なる色の光を出射する。そして、プレーヤの前方側に設置される撮像部により、これらのLED231〜236の光を撮像する。即ち、撮像部の撮像画像には、これらのLED231〜236のスポット光が映る。そして、この撮像画像の画像処理を行うことで、プレーヤの頭部(HMD)の位置(3次元位置、動き)等が検出される。
例えば撮像部として図6(A)に示すような撮像部40を用いる。撮像部40には、第1、第2のカメラ45、46が設けられており、これらの第1、第2のカメラ45、46の第1、第2の撮像画像を用いることで、プレーヤの頭部の奥行き方向での位置等が検出可能になる。また、HMD200に対して、不図示のモーションセンサーを設け、このモーションセンサーのモーション検出情報に基づいて、プレーヤの頭部の回転角度(視線方向)も検出可能になっている。従って、このようなHMD200を用いることで、プレーヤが、周囲の360度の全方向うちのどの方向を向いた場合にも、それに対応する仮想3次元空間での画像(プレーヤの視点に対応する仮想カメラから見える画像)を、HMD200の表示部に表示することが可能になる。なお、LED231〜236として、可視光ではなく赤外線のLEDを用いてよい。また、例えばデプスカメラ等の測距センサーを用いるなどの他の手法で、プレーヤの頭部の位置や動き等を検出するようにしてもよい。
またHMD200には、ヘッドバンド260等が設けられており、プレーヤは、より良い装着感で安定的に頭部にHMD200を装着できるようになっている。また、HMD200には、不図示のヘッドフォン端子が設けられており、このヘッドフォン端子にヘッドフォン270を接続することで、例えば3次元音響(3次元オーディオ)の処理が施されたゲーム音を、プレーヤは聴くことが可能になる。そしてプレーヤは、図4の操作部160を操作したり、頭部の頷き動作や首振り動作を行うことで、操作情報を入力し、ゲームプレイを楽しむ。頷き動作や首振り動作は、HMD200のモーションセンサー等により検出できる。
このようなHMD200の画像の生成システムにおいても、プレーヤの視点トラッキングがロスト状態になる場合があり得る。即ち、何らかの状況の発生により、プレーヤの視点位置や視線方向を検出できなり、視点トラッキングがロスト状態になる場合がある。例えば図24のLED231〜236からの光を、撮像部が検出できない状況が発生したり、モーションセンサーの一時的な不具合により、プレーヤの頭部の回転角度に対応する視線方向を検出できなくなるおそれがある。
このようなトラッキング視点のロスト状態が発生すると、HMD200の表示部に対して、誤ったトラッキング視点情報に基づく画像が表示されてしまい、プレーヤが違和感や不自然さを感じるが画像が表示されてしまうおそれがある。例えば、プレーヤは実際には正面方向を向いているのに、右方向や左方向を向いた時の画像がHMD200の表示部に表示されたり、オブジェクト空間内でのプレーヤの視点位置が、想定される視点位置とはかけ離れた位置に設定されてしまうなどの状況が発生するおそれがある。
この点、本実施形態では、このようなHMD200におけるトラッキング視点のロスト状態時においても、視点履歴情報、移動体の移動情報又は可動機構の動作情報等の種々の情報を有効活用して、プレーヤの視点情報を推定する手法を採用できる。従って、検出された視点方向や視線位置とはかけ離れたような違和感のある画像が、HMD200の表示部に表示されてしまうような事態を防止でき、より適切なHMD用の画像を生成できる画像生成システムの提供が可能になる。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、視点トラッキング手法、視点情報の推定手法、可動機構の動作制御手法、物理シミュレーション手法、投影画像の生成手法、立体視画像の生成手法、HMD用の画像の生成手法等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム等の種々の画像生成システムに適用できる。
VP 視点位置、VL 視線方向、VPHT1〜VPHTN 視点履歴情報、
MV 移動体、CS コース、SC スクリーン、PJ 投影装置(プロジェクタ)、
VC 仮想カメラ、OB オブジェクト、OBD 描画オブジェクト、
10 シート、14 筺体フレーム、16 制御基板、20 スクリーン、
30 投影装置、40 撮像部、45、46 第1、第2のカメラ、
50 ハンドル、52 ブレーキペダル、54 アクセルペダル、
56 シフトレバー、58 カードリーダー、59 コイン投入口、
60 可動機構、62 基台、63、64、65、66 ヒンジ部、
73、74 電動シリンダ、75、76 支持部、
80 取り付け板、83、84 ヒンジ部、
100 処理部、102 ゲーム演算部、104 オブジェクト空間設定部、
106 移動体演算部、108 視点情報演算部、110 仮想カメラ制御部、
120 画像生成部、130 音生成部、160 操作部、170 記憶部、
172 オブジェクトデータ記憶部、176 描画バッファ、
178 コースデータ記憶部、179 マップデータ記憶部、180 情報記憶媒体、
190 表示部、192 音出力部、194 補助記憶装置、196 通信部、
200 HMD、231〜236 LED、260 ヘッドバンド、
270 ヘッドフォン

Claims (16)

  1. オブジェクト空間の設定処理を行うオブジェクト空間設定部と、
    プレーヤの視点トラッキングにより得られたトラッキング視点情報を、プレーヤの視点情報として設定する視点情報演算部と、
    前記視点情報に基づいて、前記オブジェクト空間においてプレーヤの視点から見える画像を生成する画像生成部と、
    を含み、
    前記視点情報演算部は、
    トラッキング視点がロスト状態になった場合に、プレーヤの前記視点情報の推定処理を行うことを特徴する画像生成システム。
  2. 請求項1において、
    前記視点情報演算部は、
    プレーヤを撮影した撮像画像により求められる前記トラッキング視点情報を、プレーヤの前記視点情報として設定することを特徴とする画像生成システム。
  3. 請求項1又は2において、
    前記視点情報演算部は、
    プレーヤの視点履歴情報に基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行うことを特徴とする画像生成システム。
  4. 請求項3において、
    前記視点情報演算部は、
    前記視点履歴情報と、プレーヤが操作する移動体の移動情報及びプレーヤの操作情報の少なくとも1つに基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行うことを特徴とする画像生成システム。
  5. 請求項3又は4において、
    前記視点情報演算部は、
    プレーヤが操作する移動体がコース又はマップを移動する場合に、過去に同じエリアに位置したときの前記視点履歴情報に基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行うことを特徴とする画像生成システム。
  6. 請求項5において、
    前記コースは周回コースであり、
    前記視点情報演算部は、
    プレーヤが操作する前記移動体が前記周回コースにおいて過去に同じエリアを通過したときの前記視点履歴情報に基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行うことを特徴とする画像生成システム。
  7. 請求項1乃至6のいずれかにおいて、
    可動機構を含み、
    前記視点情報演算部は、
    前記可動機構の動作情報に基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行うことを特徴とする画像生成システム。
  8. 請求項7において、
    前記視点情報演算部は、
    プレーヤの操作情報又はゲーム状況情報に基づいて、前記可動機構の前記動作情報を求め、前記動作情報に基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行うことを特徴とする画像生成システム。
  9. 請求項1乃至8のいずれかにおいて、
    前記視点情報演算部は、
    プレーヤの体格情報、性別情報及び年齢情報の少なくとも1つを含むプレーヤ情報に基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行うことを特徴とする画像生成システム。
  10. 請求項9において、
    前記視点情報演算部は、
    複数の候補視点情報の中から、前記プレーヤ情報に基づいて視点情報を選択する処理を、前記トラッキング視点のロスト状態時の前記視点情報の推定処理として行うことを特徴とする画像生成システム。
  11. 請求項1乃至10のいずれかにおいて、
    前記視点情報演算部は、
    プレーヤの動作の物理シミュレーション処理の結果に基づいて、前記トラッキング視点のロスト状態時の前記視点情報の推定処理を行うことを特徴とする画像生成システム。
  12. 請求項1乃至11のいずれかにおいて、
    前記画像生成部は、
    1つの曲面又は複数の面により構成されるプロジェクション用スクリーンの形状情報と、プレーヤの前記視点情報とに基づいて、投影画像を生成することを特徴とする画像生成システム。
  13. 請求項12において、
    前記画像生成部は、
    描画バッファ上のピクセルが投影装置の光学系を通して出射される光線と前記プロジェクション用スクリーンとの交点位置と、プレーヤの視点位置とを結ぶ直線を、仮想カメラの視線として、前記描画バッファ上の前記ピクセルの色を決定することを特徴とする画像生成システム。
  14. 請求項12において、
    前記画像生成部は、
    前記オブジェクト空間内のオブジェクトの頂点位置とプレーヤの視点位置を結ぶ直線と、前記プロジェクション用スクリーンとの交点位置に基づいて、前記オブジェクトに対応する描画オブジェクトについての描画バッファ上での頂点位置を求め、前記頂点位置に基づいて前記描画バッファに前記描画オブジェクトを描画することを特徴とする画像生成システム。
  15. 請求項1乃至14のいずれかにおいて、
    前記画像生成部は、
    プレーヤの前記視点情報に基づいて、立体視用の第1視点画像と第2視点画像を生成することを特徴とする画像生成システム。
  16. オブジェクト空間の設定処理を行うオブジェクト空間設定部と、
    プレーヤの視点トラッキングにより得られたトラッキング視点情報を、プレーヤの視点情報として設定する視点情報演算部と、
    前記視点情報に基づいて、前記オブジェクト空間においてプレーヤの視点から見える画像を生成する画像生成部として、
    コンピュータを機能させ、
    前記視点情報演算部は、
    トラッキング視点がロスト状態になった場合に、プレーヤの前記視点情報の推定処理を行うことを特徴するプログラム。
JP2015071109A 2015-03-31 2015-03-31 画像生成システム及びプログラム Pending JP2016192029A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015071109A JP2016192029A (ja) 2015-03-31 2015-03-31 画像生成システム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015071109A JP2016192029A (ja) 2015-03-31 2015-03-31 画像生成システム及びプログラム

Publications (1)

Publication Number Publication Date
JP2016192029A true JP2016192029A (ja) 2016-11-10

Family

ID=57246809

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015071109A Pending JP2016192029A (ja) 2015-03-31 2015-03-31 画像生成システム及びプログラム

Country Status (1)

Country Link
JP (1) JP2016192029A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018230443A1 (ja) * 2017-06-12 2018-12-20 株式会社バンダイナムコエンターテインメント シミュレーションシステム、画像処理方法及び情報記憶媒体
JP2019070156A (ja) * 2015-09-29 2019-05-09 積水化学工業株式会社 ポリオレフィン系樹脂発泡シート及び粘着テープ
JP2019082879A (ja) * 2017-10-31 2019-05-30 株式会社ソニー・インタラクティブエンタテインメント 姿勢制御システム
US10506211B2 (en) 2017-03-16 2019-12-10 Square Enix Co., Ltd. Recording medium, image generation apparatus, and image generation method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019070156A (ja) * 2015-09-29 2019-05-09 積水化学工業株式会社 ポリオレフィン系樹脂発泡シート及び粘着テープ
US10506211B2 (en) 2017-03-16 2019-12-10 Square Enix Co., Ltd. Recording medium, image generation apparatus, and image generation method
WO2018230443A1 (ja) * 2017-06-12 2018-12-20 株式会社バンダイナムコエンターテインメント シミュレーションシステム、画像処理方法及び情報記憶媒体
JP2019000171A (ja) * 2017-06-12 2019-01-10 株式会社バンダイナムコエンターテインメント シミュレーションシステム及びプログラム
GB2577464A (en) * 2017-06-12 2020-03-25 Bandai Namco Entertainment Inc Simulation system, image processing method, and information storage medium
JP2019082879A (ja) * 2017-10-31 2019-05-30 株式会社ソニー・インタラクティブエンタテインメント 姿勢制御システム

Similar Documents

Publication Publication Date Title
US12076640B2 (en) Reality vs virtual reality racing
JP6448196B2 (ja) 画像生成システム及びプログラム
US9495799B2 (en) Image distortion correction system
US9106906B2 (en) Image generation system, image generation method, and information storage medium
JP2012058968A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2012253690A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2019175323A (ja) シミュレーションシステム及びプログラム
JP7104539B2 (ja) シミュレーションシステム及びプログラム
JP2016192029A (ja) 画像生成システム及びプログラム
US11187895B2 (en) Content generation apparatus and method
JP5649846B2 (ja) プログラム及び画像生成システム
JP5620202B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP2013062731A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2023059137A (ja) 画像合成装置、画像合成方法、及びプログラム
JP6613099B2 (ja) 仮想現実空間を立体的に表示するためのプログラム、コンピュータ及びヘッドマウントディスプレイシステム
WO2018173206A1 (ja) 情報処理装置
WO2024185428A1 (ja) ヘッドマウントディスプレイおよび画像表示方法
JP2025538706A (ja) 立体画像をオートステレオスコピックディスプレイデバイスに表示する方法
HK40104385A (zh) 竞赛模拟
WO2023242981A1 (ja) ヘッドマウントディスプレイ、ヘッドマウントディスプレイシステム、および、ヘッドマウントディスプレイの表示方法
JP5701637B2 (ja) プログラム及び画像生成システム
JP2018112885A (ja) プログラム及び画像生成システム
JP2012059009A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2012173822A (ja) プログラム、情報記憶媒体、画像生成システム及びサーバシステム