(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、従来技術は、拡張現実との結びつきが低いゲームが多く、面白みに欠けるという課題があった。
【0005】
本発明は、上記課題に鑑みてなされたものであり、本発明の幾つかの態様によれば、撮像画像における所定の画像パターンの認識結果に応じて、仮想空間内のオブジェクトの移動。動作をインタラクティブに変化させ、面白みのある拡張現実画像を提供するプログラム、情報記憶媒体、端末及びサーバを提供することにある。
【課題を解決するための手段】
【0006】
(1)本発明は、
撮像部を有する端末の表示部に表示する拡張現実画像を生成するプログラムであって、
前記撮像部によって撮像された撮像画像について所定の画像パターンを認識する処理を行う画像認識処理部と、
所定の画像パターンの認識結果に基づいて、オブジェクトが配置される仮想空間に制御点を設定する制御点設定部と、
所定の画像パターンが認識された場合には、前記制御点に基づいて、仮想空間におけるオブジェクトの移動及び動作の少なくとも一方を制御するオブジェクト制御部と、
前記仮想空間において、仮想カメラから見える仮想画像を生成し、前記撮像画像と前記仮想画像とを合成して拡張現実画像を生成する処理を行う画像生成部として、コンピュータを機能させるプログラムに関する。また、本発明は、上記プログラムを記憶した情報記憶媒体、上記各部として構成する端末に関する。
【0007】
また本発明は、撮像部を有する端末の表示部に表示する拡張現実画像を生成するサーバであって、
ネットワークを介して端末から撮像画像情報を受信する通信制御部と、
受信した撮像画像について所定の画像パターンを認識する処理を行う画像認識処理部と、
所定の画像パターンの認識結果に基づいて、オブジェクトが配置される仮想空間に制御点を設定する制御点設定部と、
所定の画像パターンが認識された場合には、前記制御点に基づいて、仮想空間におけるオブジェクトの移動及び動作の少なくとも一方を制御するオブジェクト制御部と、
前記仮想空間において、仮想カメラから見える仮想画像を生成し、前記撮像画像と前記仮想画像とを合成して拡張現実画像を生成する処理を行う画像生成部と、を含むサーバに関する。
【0008】
所定の画像パターンとは、顔画像や手や足等の部位画像やマーク画像等でもよい。
【0009】
移動制御や向き制御の対象となるオブジェクトは、移動や動作を行う移動体オブジェクトでもよい。
【0010】
制御点は、撮像画像における所定の画像パターンの位置に応じて設定されるようにしてもよい。
【0011】
オブジェクトの動作の制御とは、オブジェクトの向きやモーションの制御でもよい。
【0012】
本発明によれば、撮像画像における所定の画像パターンの認識結果に応じて、仮想空間内のオブジェクトの移動。動作をインタラクティブに変化させ、面白みのある拡張現実画像を生成することができる。
【0013】
(2)また、本発明のプログラム、情報記憶媒体、端末及びサーバは、
前記仮想カメラの動きを撮像部の動きに連動させる仮想カメラ制御部としてさらにコンピュータを機能させてもよい。
【0014】
例えば仮想カメラの向き及び位置の少なくとも一方を撮像部の向き及び位置の少なくとも一方に連動させるようにしてもよい。この様にすると、プレーヤに仮想空間の中を撮像部で撮像しているような感覚を与えることができる。
【0015】
(3)また、本発明のプログラム、情報記憶媒体、端末及びサーバは、
前記オブジェクト制御部は、
前記所定の画像パターンが認識された場合には、前記制御点に向かって前記オブジェクトを移動させる移動制御を行ってもよい。
【0016】
例えば目標点を設定して移動制御を行うアルゴリズムを採用している場合には、制御点を目標点に設定するようにしてもよい。
【0017】
(4)また、本発明のプログラム、情報記憶媒体、端末及びサーバは、
前記オブジェクト制御部は、
前記制御点に基づき制御範囲を設定する処理を行い、前記オブジェクトが前記制御範囲外に位置するように前記オブジェクトの位置を制御してもよい。
【0018】
例えば前記制御点に向かって前記オブジェクトを移動させる移動制御を行うが、制御範囲内には入れないように前記オブジェクトの位置を制御してもよい。この様にすると撮像画像の所定の画像パターンに対応する画像と仮想空間内のオブジェクトの画像とを違和感のなく合成することができる。
【0019】
(5)また、本発明のプログラム、情報記憶媒体、端末及びサーバは、
前記制御点設定部は、
所定の画像パターンの認識結果に基づき決定される2次元座標値と所定の奥行き値とに基づいて前記制御点を設定してもよい。
【0020】
2次元座標値は、撮像画像における所定の画像パターンに対応する画像の位置座標に基づき決定してもよい。
【0021】
所定の奥行き値は、予め設定された値でもよい。また画像パターンの大きさ等によって設定された値でもよい。例えば撮像画像に対する所定の画像パターンに対応する距離(例えば所定の画像パターンが顔画像である場合の左眼と右眼の距離等)の比率等によって奥行き値を変化させてもよい。
【0022】
この様にすると、撮像画像に含まれる所定の画像パターンに対応して、仮想空間における制御点の位置座標を設定することができる。
【0023】
(6)また、本発明のプログラム、情報記憶媒体、端末及びサーバは、
前記オブジェクト制御部は、
前記所定の画像パターンが認識されない場合には、前記制御点を用いたオブジェクトの移動及び動作の制御を行わないようにしてもよい。
【0024】
前記所定の画像パターンが認識されない場合には、オブジェクトに対して前記制御点を用いない移動/動作制御を行い、前記所定の画像パターンが認識された場合には、オブジェクトに対して前記制御点を用いた移動制御を行うようにしてもよい。
【0025】
(7)また、本発明のプログラム、情報記憶媒体、端末及びサーバは、
前記オブジェクト制御部は、
前記所定の画像パターンが認識されている状態が所定時間継続すると、前記制御点を用いたオブジェクトの移動及び動作の制御を中止してもよい。
【0026】
(8)また、本発明のプログラム、情報記憶媒体、端末及びサーバは、
ゲーム上の入力が行われた時に、前記オブジェクトと仮想カメラの位置関係に基づいて、前記ゲーム上の入力の評価を行う評価部として、コンピュータを機能させてもよい。
【0027】
(9)また、本発明のプログラム、情報記憶媒体、端末及びサーバは、
前記オブジェクト制御部は、
前記所定の画像パターンが認識された場合には、前記制御点の方角又は制御点と所定の角度をなす方角へ前記オブジェクトの向き変化させてもよい。
【0028】
制御点の方角とは制御点とオブジェクトを結ぶ方向において制御点の向きの方角でもよい。また制御点と所定の角度をなす方角とは、例えば制御点と逆の方角等でもよい。この様にすると、オブジェクトに制御点のほうを向かせたり、制御点と反対のほうを向かせたりする制御を行うことができる。
【0029】
(10)また、本発明のプログラム、情報記憶媒体、端末及びサーバは、
前記オブジェクト制御部は、
前記所定の画像パターンが認識された場合には、移動している前記オブジェクトを静止させてもよい。
【0030】
(11)また、本発明のプログラム、情報記憶媒体、端末及びサーバは、
前記所定の画像パターンは顔の画像パターンでもよい。
【0031】
画像認識処理部は顔認識を行うようにしてもよい。
【0032】
(12)また、本発明のプログラム、情報記憶媒体、端末及びサーバは、
前記オブジェクト制御部は、
仮想空間の基準点に端末が位置すると仮定して、前記制御点の座標及びオブジェクトの座標を基準点に対する相対位置で与えてもよい。
【0033】
基準点とは仮想空間の原点でもよい。シングルプレーゲームの場合には、プレーヤの端末が仮想空間の基準点(例えば原点)にあると考えることができる。この様にするとプレーヤが仮想空間の中心にいて拡張現実画像を見ているような感じを与える拡張現実画像を生成することができる。
【0034】
(13)また、本発明のプログラム、情報記憶媒体、端末及びサーバは、
前記オブジェクト制御部は、
位置検出部が検出した複数の端末の現在位置に基づき、複数の端末の代表点を演算し、複数の端末の代表点が仮想空間の基準点が位置すると仮定して、前記制御点の座標及びオブジェクトの座標を基準点に対する相対位置で与えてもよい。
【0035】
この様にすると、複数のプレーヤの現実世界における相対的な位置関係を反映させて仮想空間の設定に基づき仮想空間の基準点(例えば原点)を設定することができる。
【発明を実施するための形態】
【0037】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0038】
1.構成
図1に本実施形態の端末10(ゲーム装置、スマートフォン、携帯電話、携帯端末、携帯型ゲーム装置、画像生成装置)の機能ブロック図の例を示す。なお本実施形態の端末は
図1の構成要素(各部)の一部を省略した構成としてもよい。
【0039】
撮像部150は、撮像部162は、被写体を撮像するものであり、CCDやCMOSセンサなどの撮像素子や、レンズ等の光学系により実現できる。
【0040】
入力部160は、プレーヤ(操作者)からの入力情報を入力するための入力機器(コントローラ)であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部160は、プレーヤの入力情報(入力信号)を検出する検出部162を備える。入力部160は、例えば、アナログレバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。また、入力部160は、振動信号に基づいて振動させる処理を行う振動部を備えていてもよい。
【0041】
また、入力部160は、3軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力部160は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また入力部160は、入力機器と一体化されている端末(携帯電話、携帯端末、携帯型ゲーム装置、スマートフォン)なども含まれる。
【0042】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0043】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、あるいはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0044】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、あるいはHMD(ヘッドマウントディスプレイ)などにより実現できる。
【0045】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、あるいはヘッドフォンなどにより実現できる。
【0046】
通信部196は外部(例えば他の端末、サーバ)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0047】
なお、サーバ20が有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信して端末を機能させる場合も本発明の範囲内に含む。
【0048】
処理部100(プロセッサ)は、入力部160からの入力データやプログラムなどに基づいて、ゲーム処理、画像生成処理、あるいは音生成処理などの処理を行う。
【0049】
この処理部100は記憶部170内の主記憶部171をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0050】
処理部100は、情報取得部110、画像認識処理部111、制御点設定部112、オブジェクト制御部113、ゲーム処理部118,表示制御部119,仮想カメラ制御部120、通信制御部121、画像生成部130、音処理部140を含む。なお、これらの一部を省略する構成としてもよい。
【0051】
情報取得部110は、プレーヤの入力情報を受け付ける処理を行う。
【0052】
また、情報取得部110は、入力部からの入力情報(加速度値)を受け付ける処理を行う。
【0053】
画像認識処理部111は、撮像部150によって撮像された撮像画像について所定の画像パターンを認識する処理を行い、制御点設定部112は、所定の画像パターンの認識結果に基づいて、オブジェクトが配置される仮想空間に制御点を設定し、オブジェクト制御部113は、所定の画像パターンが認識された場合には、前記制御点に基づいて、仮想空間におけるオブジェクトの移動及び動作の少なくとも一方を制御し、画像生成部130は、前記仮想空間において、仮想カメラから見える仮想画像を生成し、前記撮像画像と前記仮想画像とを合成して拡張現実画像を生成する処理を行う。所定の画像パターンは顔の画像パターンでもよい。
【0054】
仮想カメラ制御部120は、前記仮想カメラの動きを撮像部の動きに連動させてもよい。オブジェクト制御部113は、所定の画像パターンが認識された場合には、前記制御点に向かって前記オブジェクトを移動させる移動制御を行ってもよい。またオブジェクト制御部113は、制御点に基づき制御範囲を設定する処理を行い、前記オブジェクトが前記制御範囲外に位置するように前記オブジェクトの位置を制御してもよい。
【0055】
制御点設定部112は、所定の画像パターンの認識結果に基づき決定される2次元座標値と所定の奥行き値とに基づいて制御点を設定してもよい。
【0056】
オブジェクト制御部113は、所定の画像パターンが認識されない場合には、前記制御点を用いたオブジェクトの移動及び動作の制御を行わないようにしてもよい。
【0057】
オブジェクト制御部113は、所定の画像パターンが認識されている状態が所定時間継続すると、前記制御点を用いたオブジェクトの移動及び動作の制御を中止してもよい。
【0058】
評価部118bは、ゲーム上の入力が行われた時に、前記オブジェクトと仮想カメラの位置関係に基づいて、前記ゲーム上の入力の評価を行ってもよい。
【0059】
オブジェクト制御部113は、所定の画像パターンが認識された場合には、前記制御点の方角又は制御点と所定の角度をなす方角へ前記オブジェクトの向き変化させてもよい。
【0060】
オブジェクト制御部113は、所定の画像パターンが認識された場合には、移動している前記オブジェクトを静止させてもよい。
【0061】
オブジェクト制御部113は、仮想空間の基準点に端末が位置すると仮定して、前記制御点の座標及びオブジェクトの座標を基準点に対する相対位置で与えてもよい。
【0062】
オブジェクト制御部113は、位置検出部が検出した複数の端末の現在位置に基づき、複数の端末の代表点を演算し、複数の端末の代表点が仮想空間の基準点が位置すると仮定して、前記制御点の座標及びオブジェクトの座標を基準点に対する相対位置で与えてもよい。
【0063】
オブジェクト制御部112は、仮想空間におけるキャラクタ等のオブジェクトの位置制御、移動制御、攻撃制御、防御制御等を行う。例えば、オブジェクト制御部112は、オブジェクト空間にあるオブジェクトの移動・動作演算を行う。すなわち入力部160から受け付けた入力情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。
【0064】
オブジェクト制御部112は、オブジェクト空間において、キャラクタ等のオブジェクトの移動を制御する。また、オブジェクト制御部112は、オブジェクトの動作(回転、向きの変更)を制御する。例えば、オブジェクト制御部112は、1フレーム(例えば、1/60秒)毎にオブジェクトのモデル座標系のX軸、Y軸、Z軸回りの回転角度(向き)を求める。なお、フレームは、オブジェクトの移動・動作制御や画像生成処理を行う時間の単位である。
【0065】
例えば、オブジェクト制御部112は、ワールド座標系にオブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)に基づき、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0066】
ここで仮想空間とは、仮想的なゲーム空間であり、例えば、ワールド座標系、仮想カメラ座標系のように、3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0067】
ゲーム処理部118は、種々のゲーム処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。なお、3次元グラフィックス(仮想3次元空間)を用いたゲームに限らず、2次元グラフィックスを用いたゲーム等でもよい。
【0068】
例えば、ゲーム処理部118は、各オブジェクトのパラメータを更新する処理を行う。
【0069】
表示制御部119は、画像生成部130において生成された画像(拡張現実画像)を表示部190に表示させる処理、予め記憶部170や情報記憶媒体180に記憶された画像を表示する処理等を行う。例えば、表示制御部117は、プレーヤキャラクタ、敵キャラクタを含む画像を表示部190に表示させる処理を行う。
【0070】
仮想カメラ制御部120は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、3次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置(X、Y、Z)、回転角度(例えば、X、Y、Z軸の各軸の正方向から見て時計回りに回る場合における回転角度)を制御する処理を行う。要するに、仮想カメラ制御部120は、仮想カメラの視点位置、視線方向、画角、移動方向、移動速度の少なくとも1つを制御する処理を行う。
【0071】
通信制御部121は、端末(例えば第1の端末)が他の端末(例えば第2の端末)又はサーバ20とネットワークを介して相互にデータを送受信する処理を行うようにしてもよい。
【0072】
なお、本実施形態の端末10では、通信制御で必要となるネットワーク情報をサーバから取得し、管理する処理等を行うようにしてもよい。例えば、端末は、各端末に個別に付与される端末の識別情報(オンラインゲームに参加できる端末を識別するために個別に付与されたデータ、ID)と、端末の識別情報に対応づけられたパケットの送信先を指定する宛先情報(IPアドレスなど)とを取得し、管理する処理を行うようにしてもよい。
【0073】
通信制御部121は、他の端末(第2の端末)又はサーバ20に送信するパケットを生成する処理、パケット送信先の端末のIPアドレスやポート番号を指定する処理、受信したパケットに含まれるデータを記憶部170に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する制御処理等を行う。
【0074】
また、通信制御部121は、複数の端末間、又はサーバ20においての接続(第1の端末と第2の端末との接続)が確立されてから接続が切断されるまで、データを所定周期(例えば、1秒周期で)互いに送受信する処理を行う。ここで、端末間で送受信されるデータは、入力部の入力情報としてもよいし、各端末の操作対象のオブジェクト(キャラクタ、移動体)の位置情報、移動情報としてもよい。
【0075】
また、本実施形態の通信制御部121は、他の端末(第2の端末)又はサーバ20から送信されたパケットを受信すると、受信したパケットを解析し、パケットに含まれる他の端末の操作対象のオブジェクトの位置情報などのデータを記憶部に記憶する処理を行う。
【0076】
なお、複数の端末で構成されるネットワークシステムの場合は、複数の端末間でデータの送受信を行いながらオンラインゲームを実行するピア・ツー・ピア(いわゆるP2P)方式としてもよいし、サーバ20を介して各端末がデータ(情報)の送受信を行いながらオンラインゲームを実行するクライアント・サーバ方式によるものであってもよい。また、本実施形態のネットワークシステムでは、有線通信のみならず無線通信でデータを送受信してもよい。
【0077】
また、通信制御部121は、サーバ20に、端末10の入力部からの入力情報(加速度値)を送信する処理を行うようにしてもよい。
【0078】
なお、通信制御部121は、ゲーム端末10の表示部190に表示させるための種々の画像を受信してもよい。
【0079】
画像生成部130は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。
【0080】
例えば、画像生成部130は、オブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトルあるいはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0081】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動制御や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0082】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画像を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ172(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット、フレームバッファ)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0083】
なお、頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0084】
そして画像生成部130は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0085】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、あるいは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、あるいはα値等)は、記憶部170に保存される。
【0086】
テクスチャマッピングは、記憶部170に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0087】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うと共にZバッファのZ値を新たなZ値に更新する。
【0088】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0089】
例えば、αブレンディングでは、これから画像バッファ172に描画する描画色(上書きする色)C1と、既に画像バッファ172(レンダリングターゲット)に描画されている描画色(下地の色)C2とを、α値に基づいて線形合成処理を行う。つまり、最終的な描画色をCとすると、C=C1*α+C2*(1−α)によって求めることができる。
【0090】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0091】
なお、画像生成部130は、他の端末(第2の端末)とネットワークを介してデータを送受信するマルチプレーヤオンラインゲームを行う場合は、端末(第1の端末)の操作対象のオブジェクトの移動に追従する仮想カメラ(端末(第1の端末)で制御される仮想カメラ)から見える画像を生成する処理を行う。つまり、各端末が独立した描画処理を行う。
【0092】
音処理部140は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0093】
なお、本実施形態の端末は、1人のプレーヤのみがプレイできるシングルプレーヤモード、あるいは、複数のプレーヤがプレイできるマルチプレーヤモードでゲームプレイできるように制御してもよい。例えば、マルチプレーヤモードで制御する場合には、ネットワークを介して他の端末とデータを送受信してゲーム処理を行うようにしてもよいし、1つの端末が、複数の入力部からの入力情報に基づいて処理を行うようにしてもよい。
【0094】
2.本実施の形態の手法
2−1.概要
本実施形態では、端末10の撮像部150によって撮像された撮像画像と仮想空間の仮想画像を合成して拡張現実画像を生成して端末10の表示部190に表示する。例えば、端末10は、
図2(A)(B)に示すようなゲーム装置でもよいし、
図3(A)(B)に示すような携帯端末(スマートフォン)でもよい。
図2(A)(B)
図3(A)(B)に示すように撮影部150は、端末10の背面(端末に対してプレーヤと反対側)に設けられていてもよい。
【0095】
2−2.ゲームへの適用例
本実施の形態について金魚すくいゲームを例に取り説明する。
【0096】
図15は、金魚すくいゲームについて説明するための図である。
【0097】
ゲームが開始されたら、端末10の撮像部(端末の背面に設けられている)からリアルタイムで撮像画像を取り込み上画面(表示部190)に表示する。表示する画像は半透明やゆがみのエフェクトを追加した画像(水中であるかのような画像)でもよい。下画面には掬った魚オブジェクトを入れるボウルが表示されてもよい。
【0098】
所定のタイミングで上画面の水中(仮想空間の一例)400に魚オブジェクト410を放ち、所定のアルゴリズムで魚オブジェクト410を移動・動作させる。端末はジャイロセンサを内蔵しており、ジャイロセンサにより撮像部の動きを検出できるので、ジャイロセンサの検出結果に基づき、仮想カメラを撮像部と連動して動かし、水中(仮想空間の一例)の仮想画像を生成する。そして前記撮像画像と前記仮想画像とを合成して拡張現実画像を生成して表示部に表示する。
【0099】
プレーヤは、端末で魚オブジェクトを掬う動きをすることで、「金魚を掬う」というゲーム上の入力を行うことができる。端末に内蔵されたジャイロセンサや加速度センサ等の出力値に基づき「金魚を掬う」というゲーム上の入力が行われたか否かを判断する。例えば、掬い操作における開始の検出と終わりのタイミングの検出を、加速度センサの動作の開始/停止検出によって行ってもよい。「金魚を掬う」というゲーム上の入力が行われた時に、前記オブジェクト(ここでは魚オブジェクト)と仮想カメラの位置関係に基づいて、前記ゲーム上の入力の評価を行ってもよい。例えばゲーム上の入力が行われた時に、拡張現実画像の中央エリア(例えば上画面中央を中心とした所定の範囲内)に魚オブジェクトがいた場合には、ゲーム上の入力により、その魚オブジェクトが掬われたと評価してもよい。ゲーム上の入力が行われた時に、拡張現実画像の中央エリアに魚オブジェクトが1匹もいない場合は何もすくうことはできない。
【0100】
2−3.拡張現実画像
図4は、端末10の撮像部が撮影した撮像画像が表示部に表示されている様子を示した図である。撮像部は端末10の背面に設けられているので、端末10の表示部190には、端末の背後の景色(ここでは家具や観葉植物が置かれた部屋の景色)310の画像が表示されている。
【0101】
図5は拡張現実画像について説明するための図である。
【0102】
本実施の形態では、端末の撮像部が撮影した撮像画像320と、仮想空間において仮想カメラから見える仮想画像330を合成して拡張現実画像340を生成する。
【0103】
本実施の形態では、撮像画像について所定の画像パターン(顔画像や手や足等の部位画像やマーク画像)を認識する処理を行い、所定の画像パターンに対応づけて仮想空間に制御点を設定し、前記制御点に基づいて、仮想空間におけるオブジェクトの移動制御及び向き制御の少なくとも一方を行う。このようにすることにより、仮想空間400内のオブジェクト410の移動や向きが、撮像画像320によって影響を受ける拡張現実画像を生成することができる。
【0104】
例えば所定の画像パターンとして顔や手や足等の身体の一部や身体そのもの、又は特定のマークや文字や特定の形状の物体や特定の色の物体等を認識してもよい。
【0105】
端末の周囲に所定の画像パターンとして認識されるもの(例えば顔や手等)があり、それらが端末の撮像部に撮像されると、その画像パターン等の位置に基づき制御点が設定される。そして仮想空間内のオブジェクトを、制御点に向けて移動させたり、制御点から離れるほうに移動したりさせてもよい。また仮想空間内の制御点のほうにオブジェクトの向きを変化させてもよいし、制御点と反対のほうにオブジェクトの向きを変化させてもよい。
【0106】
この様にすると、現実の撮像画像に応じて仮想空間内のオブジェクトの移動方向や向きを変化させることができる。従って、仮想的なオブジェクトが端末の周りの人や物やマークに近づく拡張現実画像、又は仮想的なオブジェクトが端末の周りの人や物やマークから離れる拡張現実画像、又は仮想的なオブジェクトの向きが端末の周りの人や物やマークのほうに変化する拡張現実画像、又は仮想的なオブジェクトの向きが端末の周りの人や物やマークのほうと反対側に変化する拡張現実画像等を生成することができる。
【0107】
また例えば仮想カメラの向き及び位置の少なくとも一方を撮像部の向き及び位置の少なくとも一方に連動させるようにしてもよい。この様にすると、仮想空間の中を撮像部で撮像しているような感覚をプレーヤに与えることができる。
【0108】
図6は本実施の形態の仮想空間に設定された水槽空間460を示した図であり、
図7は本実施の形態の仮想空間に設定された水槽空間460のxz平面図である。
【0109】
金魚すくいゲームでは、仮想空間は水槽をイメージしており、仮想空間の原点Oに位置する仮想プレーヤPを多層構造の水槽空間460が取り囲んでいる。水槽空間460は、仮想プレーヤPから半径d1の円のエリア472を底面とする第1の空間462、仮想プレーヤPから半径d1の円と半径d2の円に囲まれたドーナツ状のエリア474を底面とする第2の空間464、仮想プレーヤPから半径d2の円と半径d3の円に囲まれたドーナツ状のエリア476を底面とする第3の空間466、仮想プレーヤPから半径d3の円と半径d4の円に囲まれたドーナツ状のエリア478を底面とする第4の空間468の多層構造となっている。
【0110】
第1の空間(例えば仮想プレーヤPから1m以内)には何も表示せず、第2の空間(例えば仮想プレーヤPから1m〜2m)を近距離空間、第3の空間(例えば仮想プレーヤPから2m〜3m)を中距離空間、第4の空間(例えば仮想プレーヤPから3m〜4m)を遠距離空間として扱う。
【0111】
近距離空間では魚オブジェクト、水草、泡の表示は通常通り行い、中距離空間では各モデルの青い半透明の表示を重ねて水中の遠近法の表現を行い、遠距離空間では完全にシルエットのみの表示としさらにぼかしの表現を加えて、何のモデルかをはっきり分からなくするようにしてもよい。水槽空間460には魚オブジェクト以外のオブジェクトを配置してもよい。
【0112】
本実施の形態で移動及び向きの制御対象となるのは移動体オブジェクトである魚オブジェクトである。魚オブジェクトは、ゲームのミッションごとに設定されている金魚の登場数と登場確率に従って登場するようにしてもよい。なお時刻に応じて登場させる金魚の種類を変化させるようにしてもよい。魚オブジェクトの移動パターンは魚オブジェクトの種類によって異なる設定でもよい。
【0113】
2−4.画像認識による制御点の設定手法
図8〜
図11を用いて、撮像画像に対して顔認識(所定の画像パターンが顔の画像パターンである場合)を行い、撮像画像の顔認識結果に基づき決定される2次元座標値と所定の奥行き値とに基づいて仮想空間に制御点を設定する手法について説明する。
【0114】
図8は、端末10の撮像部150の撮像範囲内に人312がいる様子を示した図である。
図9は、端末を持つプレーヤと人312の位置関係(X軸方向から見た位置関係)を示した図である。
図8、
図9に示すように端末10の背後に人312がいる場合には、端末10の表示部190には、人312をふくむ端末10の背景310の撮像画像と魚オブジェクトが泳ぐ水槽空間の仮想画像とを合成した拡張現実画像が表示される。
【0115】
図10は、撮像画像の顔認識結果に基づき決定される2次元座標値について説明するための図である。
【0116】
撮像画像320について顔認識を行うことにより、撮像画像における右眼E1、左眼E2、鼻N、口Mを検出する。ここで右眼E1の撮像画像における位置座標を(x1、y1)、左眼E2の撮像画像における位置座標を(x2、y2)、顔の代表点Fの位置座標(2次元座標値)を(xf、yf)とすると、xf=(x1+x2)/2、yf=(y1+y2)/2としてもよい。ここで仮想空間における制御点Pの位置座標を(xp、yp、zp)とすると、xp=xf、yp=yfとなる。このようにして仮想空間における制御点Pのx座標とy座標を決定する。
【0117】
図11は、仮想空間に制御点を設定する様子を示した図である。制御点Pのz座標zpを所定の奥行き値kに基づいて設定する。所定の奥行き値は中距離空間(例えば仮想プレーヤPから2m〜3m)に属する値kでもよく、zp=kとなる。この様にして仮想空間内に制御点P(xp、yp、zp)(xp=xf、yp=yf、zp=k)を設定することができる。
【0118】
図12(A)(B)(C)は、制御点に基づく、オブジェクトの移動制御について説明するための図である。
図12(A)は仮想空間のxz平面図であり、
図12(B)は仮想空間のxy平面図であり、
図12(C)は仮想空間のyz平面図である。
【0119】
撮像画像に顔が認識されない間は、魚オブジェクト410−1〜410−4に対して制御点Pとは無関係な移動制御を行い、顔が認識された場合には、魚オブジェクト410−1〜410−4を制御点のほうに移動させる移動制御(前記制御点を用いた移動制御の一例)を行うようにしてもよい。
【0120】
撮像画像に顔が認識されてから所定時間は、魚オブジェクト410−1〜410−4を制御点Pのほうに移動させる移動制御(前記制御点を用いた移動制御の一例)を行い、所定時間経過後は、魚オブジェクト410−1〜410−4に対して制御点Pとは無関係な移動制御を行うようにしてもよい。
【0121】
また制御点Pを中心として半径lの球R(制御範囲の一例)を設定し、魚オブジェクト410−1〜410−4が球R(制御範囲の一例)外に位置するように魚オブジェクト410−1〜410−4の位置を制御してもよい。
【0122】
例えば制御点Pに向かって魚オブジェクト410−1〜410−4を移動させる移動制御を行うが、球R(制御範囲の一例)内には入れないように魚オブジェクト410−1〜410−4の位置を制御してもよい。この様にすると魚オブジェクト410−1〜410−4が人の顔に当たらないように移動する拡張現実画像を生成することができる。
【0123】
上記実施例では制御範囲が球状に設定された場合を例に取り説明したがこれに限られない。制御範囲は円筒形でもよいし直方体でもよいし、その他の形状でもよい。
【0124】
図13は、撮像画像に顔が認識された場合の拡張現実画像について説明するための図である。
【0125】
端末の撮像部が撮影した撮像画像320に人312が入っている場合には、人312の顔が認識される。そして仮想空間に制御点Pと制御範囲Rが設定され、仮想空間内の魚オブジェクトが制御範囲Rの周りに移動してくる仮想画像330が生成される。そして人312の顔が入っている撮像画像320と魚オブジェクトが泳ぐ水槽空間の仮想画像330を合成して拡張現実画像340(人312の顔の周りに魚オブジェクトが近づいてくる拡張現実画像)を生成する。
【0126】
制御点Pや制御範囲Rの設定はフレーム毎に行われるようにしてもよい。例えば人312が移動したり、端末10が移動したり、撮像部150の向きが変わったりすることにより制御点Pや制御範囲Rが変化してもよい。フレーム毎に設定される制御点Pに基づき、フレーム毎に魚オブジェクト410の移動方向を求める用にしてもよい。又はフレーム毎に設定された制御点Pを魚オブジェクト410の目標移動位置として、魚オブジェクト410を目標移動位置に向かって移動させる制御を行ってもよい。
【0127】
また例えば人312が移動したり、端末10が移動したり、撮像部150の向きが変わったりすることにより撮像画像320に人の顔が入っていない状態になった場合には、制御点Pや制御範囲Rの設定を解除して、魚オブジェクト410を制御点Pとは無関係な通常の移動パターンで移動させてもよい。また人312の顔が認識されている状態が所定時間継続すると、前記制御点を用いたオブジェクトの移動及び動作の制御を中止し、魚オブジェクト410を制御点Pとは無関係通常の移動パターンで移動させてもよい。
【0128】
また顔認識で顔を認識した場合、
図16に示すように顔付近にエフェクト画像490を表示してもよい。また撮像画像に顔が複数ある場合は魚オブジェクトは最寄りの顔に向かって移動するようにしてもよい。顔部分に到達した魚オブジェクトは、えさをついばむように、顔部分をつつく動作を行うようにしてもよい。顔が画面内を移動した場合は、魚オブジェクトは顔に追従して移動するようにしてもよい。
【0129】
2−5.マルチプレーヤゲームにおける仮想空間の設定
本実施の形態の金魚すくいゲームは、一人プレイモード(シングルプレーゲーム)にも適用可能であるし、複数プレーヤによる通信対戦モード(マルチプレーゲーム)にも適用可能である。一人プレイモードの場合には、
図6に示すように仮想空間の原点(基準点の一例)に端末が位置すると仮定して、
図11に示すように当該基準点に基づき前記制御点を設定してもよい。一人プレイモード(シングルプレーゲーム)の場合には、プレーヤの端末が仮想空間の基準点(例えば原点)にあると考えて仮想空間を設定することができる。
【0130】
また複数プレーヤによる通信対戦モード(マルチプレーゲーム)の場合には、各プレーヤの端末が内蔵する位置検出機能(例えばグローバル・ポジショニング・システムGPS(Global Positioning System ))を利用して各端末の現在位置を検出し各端末の現在位置に基づき、仮想空間の基準点を設定してもよい。
【0131】
図17(A)(B)は、各端末の現在位置に基づき仮想空間の基準点を設定する手法について説明するための図である。
【0132】
図17(A)は、二人のプレーヤで通信対戦を行う場合の基準点の設定手法について説明するための図である。P1とP2は第1のプレーヤと第2のプレーヤの端末の実世界における現在位置の相対的な位置関係に対応して配置された点である。この様な場合、P1とP2の中点Mを仮想空間の原点(基準点の一例)としてもよい。
【0133】
図17(B)は、三人のプレーヤで通信対戦を行う場合の基準点の設定手法について説明するための図である。P1、P2、P3は第1のプレーヤ、第2のプレーヤ、第3のプレーヤの端末の実世界における現在位置の相対的な位置関係に対応して配置された点である。この様な場合、例えばP1とP2の中点M1とP3を結ぶ線分を1:2で按分する点M2(P1、P2、P3頂点とする三角形の重心)を仮想空間の原点(基準点の一例)としてもよい。
【0134】
この様にすると、複数のプレーヤの現実世界における現在位置に基づき仮想空間の基準点(例えば原点)を設定することができる。
【0135】
3.本実施の形態の処理
図14は本実施の形態の、拡張現実画像生成処理の流れを示すフローチャート図である。以下の処理をフレーム毎に行い、仮想空間の移動体オブジェクトの位置を制御してもよい。
【0136】
撮像画像を取得し、顔認識を行う(ステップS10)。
【0137】
撮像画像に顔を認識しなかった場合には(ステップS20でN)、顔認識継続時間tをリセットし(ステップS40)、予め決められた移動情報に基づいて、移動体オブジェクトを制御する(ステップS100)。
【0138】
撮像画像に顔を認識した場合には(ステップS20でY)、顔認識継続時間tをカウントアップする(ステップS30)。
【0139】
顔認識継続時間tが制限時間以下でない場合(ステップS50でN)、予め決められた移動情報に基づいて、移動体オブジェクトを制御する(ステップS100)。顔認識継続時間tが制限時間以下である場合(ステップS50でY)、顔認識により得られた左眼、右眼の中間の位置座標(xp、yp)と、所定の奥行き値zpに基づいて制御点を仮想空間に設定する(ステップS60)。次に制御点Pを中心とする制御範囲を設定する(ステップS70)。そして移動体オブジェクトを制御点Pに向かって移動させる(ステップS80)。移動体オブジェクトが制御範囲外に位置するように移動体オブジェクトの位置を補正する(ステップS90)。
【0140】
次に撮像部の動きに基づき仮想カメラの位置、向きを設定し(ステップS110)、仮想空間を仮想カメラから見た仮想画像を設定する(ステップS120)。そして撮像画像と仮想画像を合成して拡張現実画像を生成する(ステップS130)。
【0141】
4.ネットワークシステム
4−1. オンラインゲームの処理例1
本実施形態では、複数の端末10とネットワークを介して相互にデータの送受信を行い、対戦ゲームを実現可能としてもよい。つまり、本実施形態では、ピア・ツー・ピア方式のオンラインゲームに適用してもよい。
図18及び
図19は、本実施形態のネットワークシステムの構成を示す図である。例えば、本実施形態のネットワークシステムでは、複数の端末10A〜10Cの間で無線通信を行って、各端末10A〜10Cの所有者が対戦プレイや協力プレイを行うことができる。なお、本実施形態のネットワークシステムでは、複数の端末10A〜10Cの間で有線通信を行ってもよい。
【0142】
無線通信の態様としては、
図18に示すように、各端末10A〜10Cが自律分散的にネットワークを構築し、直接的にゲーム情報等を含むパケットの送受信を行うアドホックモードと、
図19に示すように、端末10AがアクセスポイントACSP1を介し、端末10B、10CがアクセスポイントACSP2を介して、間接的にゲーム情報等を含むパケットの送受信を行うインフラストラクチャモードとがある。インフラストラクチャモードでは、アクセスポイントACSP1又はASCP2を介してインターネットInet(公衆通信網)にアクセスすることができる。そして、各端末10A〜10Cは、インターネットInetに接続されたサーバ20との間でゲーム情報あるいはファームウェアのアップデート情報等を含むパケットを、アクセスポイントACSP1又はACSP2を介して送受信することができる。
【0143】
本実施形態のネットワークシステムは、端末10Aのキャラクタが、他の端末10Bのキャラクタと対戦するゲーム処理を行うようにしてもよい。また、本実施形態のネットワークシステムは、複数の端末10A、10Bそれぞれの操作対象のキャラクタによって構成される第1のグループと、複数の端末10C、10Dそれぞれの操作対象のキャラクタによって構成される第2のグループとが対戦を行うゲーム処理を行うようにしてもよい。
【0144】
また、本実施形態では、各端末が相互にネットワークを介して移動情報等のデータに基づいて、端末のオブジェクト空間に配置される他のキャラクタ(他の端末を操作するプレーヤの操作対象のキャラクタ)を移動・動作させる。つまり、各端末10は、ネットワークを介して、キャラクタの位置制御、移動制御などを含むデータ、アナログレバー、ボタンの入力情報、加速度値などのデータを送受信する。
【0145】
例えば、描画のフレームレートで(例えば、1/60秒毎)、端末10Aが、端末10Aの操作対象のキャラクタの位置を端末10Bに送信する。一方、端末10Bにおいても、端末10Aと同じように、描画のフレームレートで端末10Bの操作対象のキャラクタの位置を端末10Aに送信する。
【0146】
また、各端末は、各端末のオブジェクト空間における仮想カメラから見える画像を、ゲーム画像として生成する処理を行う。従って、端末毎に、その端末が操作するキャラクタの挙動に応じた画像が生成される。
【0147】
4−2. オンラインゲームの処理例2
また、本実施形態では、クライアント・サーバ方式のオンラインゲームに適用してもよい。つまり、サーバ20が、端末10で行う一部の処理(例えば、処理部100の少なくとも1つの処理)を行うようにしてもよい。
図20に示すように、サーバ20が、ネットワーク(例えば、インターネット)を介して複数の端末10A〜10Cと接続され、サーバ20が、端末10から入力情報を受信する。そして、サーバ20が、受信した第1、第2、第3の入力情報に基づいて画像を生成し、生成した画像を端末10に送信してもよい。
【0148】
例えば、サーバ20は、ソーシャル・ネットワーキング・サービス(以下、「SNS」という。)と呼ばれる、コミュニティ型のサービスをユーザに提供するサーバとして機能してもよい。
【0149】
また、サーバ20は、Webサーバ機能を備えていてもよい。例えば、端末10がWebページ(HTML(HyperText Markup Language)形式のデータ)を閲覧可能なウェブブラウザを備えていている場合には、サーバ20は端末10にブラウザゲームを提供してもよい。例えば、サーバ20は、端末10に対して、Webページ(例えば、ゲームサービスを提供するためのアドレス(URL:Uniform Resource Locator)を公開する。そして、サーバ20が、端末10から当該Webページのアドレスへの要求を受信した場合には、当該端末10に対して当該Webページのゲームデータを送信し、端末10から受信した入力情報に基づいてゲーム処理を行うようにしてもよい。なお、ゲームデータは、ブラウザゲーム処理で用いる各種パラメータのほか、画像データ(入れ替え画面用の画像データや、キャラクタCH、敵キャラクタEを含む画像データ、ゲーム結果画像等)、音声データ等を含む。
【0150】
図21は、サーバ20の機能ブロック図の例を示す。なお本実施形態のサーバ20は
図21の構成要素(各部)の一部を省略した構成としてもよい。
【0151】
記憶部270は、処理部200や通信部296などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。オブジェクトデータ記憶部273には、オブジェクトに関する各種データが記憶されている。
【0152】
情報記憶媒体280(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、あるいはメモリ(ROM)などにより実現できる。処理部200は、情報記憶媒体280に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体280には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0153】
通信部296は外部(例えば端末10、他のサーバ)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0154】
なお、他のサーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体280や記憶部270に記憶してもよい。このようにプログラムやデータを受信してサーバ20を機能させる場合も本発明の範囲内に含む。
【0155】
処理部200(プロセッサ)は、受信したデータやプログラムなどに基づいて、ゲーム処理、画像生成処理、音処理などの処理を行う。
【0156】
この処理部200は記憶部270内の主記憶部271をワーク領域として各種処理を行う。処理部200の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0157】
処理部200は、情報取得部210、画像認識処理部211、制御点設定部212、オブジェクト制御部213、ゲーム処理部218,表示制御部219,仮想カメラ制御部220、通信制御部221、画像生成部230、音処理部240を含む。なお、これらの一部を省略する構成としてもよい。
【0158】
情報取得部210は、端末から撮像画像情報やプレーヤの入力情報や端末の入力部からの入力情報(加速度値)を取得する処理を行う。
【0159】
画像認識処理部211は、撮像部250によって撮像された撮像画像について所定の画像パターンを認識する処理を行い、制御点設定部212は、所定の画像パターンの認識結果に基づいて、オブジェクトが配置される仮想空間に制御点を設定し、オブジェクト制御部113は、所定の画像パターンが認識された場合には、前記制御点に基づいて、仮想空間におけるオブジェクトの移動及び動作の少なくとも一方を制御し、画像生成部130は、前記仮想空間において、仮想カメラから見える仮想画像を生成し、前記撮像画像と前記仮想画像とを合成して拡張現実画像を生成する処理を行う。所定の画像パターンは顔の画像パターンでもよい。
【0160】
仮想カメラ制御部220は、前記仮想カメラの動きを撮像部の動きに連動させてもよい。オブジェクト制御部213は、所定の画像パターンが認識された場合には、前記制御点に向かって前記オブジェクトを移動させる移動制御を行ってもよい。またオブジェクト制御部213は、制御点に基づき制御範囲を設定する処理を行い、前記オブジェクトが前記制御範囲外に位置するように前記オブジェクトの位置を制御してもよい。
【0161】
制御点設定部212は、所定の画像パターンの認識結果に基づき決定される2次元座標値と所定の奥行き値とに基づいて制御点を設定してもよい。
【0162】
オブジェクト制御部213は、所定の画像パターンが認識されない場合には、前記制御点を用いたオブジェクトの移動及び動作の制御を行わないようにしてもよい。
【0163】
オブジェクト制御部213は、所定の画像パターンが認識されている状態が所定時間継続すると、前記制御点を用いたオブジェクトの移動及び動作の制御を中止してもよい。
【0164】
評価部218bは、ゲーム上の入力が行われた時に、前記オブジェクトと仮想カメラの位置関係に基づいて、前記ゲーム上の入力の評価を行ってもよい。
【0165】
オブジェクト制御部213は、所定の画像パターンが認識された場合には、前記制御点の方角又は制御点と所定の角度をなす方角へ前記オブジェクトの向き変化させてもよい。
【0166】
オブジェクト制御部213は、所定の画像パターンが認識された場合には、移動している前記オブジェクトを静止させてもよい。
【0167】
オブジェクト制御部213は、仮想空間の基準点に端末が位置すると仮定して、前記制御点の座標及びオブジェクトの座標を基準点に対する相対位置で与えてもよい。
【0168】
オブジェクト制御部213は、位置検出部が検出した複数の端末の現在位置に基づき、複数の端末の代表点を演算し、複数の端末の代表点が仮想空間の基準点が位置すると仮定して、前記制御点の座標及びオブジェクトの座標を基準点に対する相対位置で与えてもよい。
【0169】
オブジェクト空間設定部211は、オブジェクト(キャラクタなど)をオブジェクト空間(仮想的3次元空間)に配置する処理を行う。例えば、オブジェクト空間設定部211は、端末10のオブジェクト空間設定部111と同様の処理を行う。
【0170】
オブジェクト制御部212は、オブジェクトの位置制御、移動制御、攻撃制御、防御制御等を行う。例えば、オブジェクト制御部212は、端末10のオブジェクト制御部112と同様の処理を行う。
【0171】
ゲーム処理部218は、端末10のゲーム処理部118と同様な処理を行う。
また、特にサーバ20のゲーム処理部218は、端末10にブラウザゲームを提供するための処理を行うようにしてもよい。例えば、ゲーム処理部218は、端末10からゲームサービスを提供するWebページのアドレスへの要求を受信した場合には、当該端末10に対して当該Webページのゲームデータを送信し、端末10から受信した入力情報に基づいてゲーム処理を行うようにしてもよい。
【0172】
仮想カメラ制御部220は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。例えば、仮想カメラ制御部220は、端末10の行動決定部120と同様の処理を行う。
通信制御部221は、端末10とネットワークを介して相互にデータを送受信する処理を行うようにしてもよい。
【0173】
なお、本実施形態のサーバ20は、通信制御で必要となるネットワーク情報を端末10に送信してもよい。なお、例えば、サーバ20は、各端末に個別に付与される端末の識別情報と、端末の識別情報に対応づけられたパケットの送信先を指定する宛先情報を管理する。
【0174】
サーバ20の通信制御部221は、端末10に送信するパケットを生成する処理、パケット送信先の端末のIPアドレスやポート番号を指定する処理、受信したパケットに含まれるデータを記憶部270に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する制御処理等を行う。
【0175】
また、本実施形態の通信制御部221は、端末と接続が確立されてから接続が切断されるまで、データを所定周期(例えば、1秒周期で)互いに送受信する処理を行う。ここで、端末10から送信されるデータは、端末10の入力部160からの入力情報としてもよいし、各端末10の操作対象のオブジェクト(キャラクタ、移動体)の位置情報、移動情報としてもよい。
【0176】
また、本実施形態の通信制御部221は、端末10から送信されたパケットを受信すると、受信したパケットを解析し、パケットに含まれる他の端末の操作対象のオブジェクトの位置情報などのデータを主記憶部271に記憶する処理を行う。
【0177】
特に、本実施形態の通信制御部221は、プレーヤの入力情報を受信する処理を行う。
また、通信制御部221は、端末10から、端末10の入力部からの入力情報(加速度値)を受信する処理を行うようにしてもよい。
【0178】
また、通信制御部221は、端末10に各種ゲームデータを送信する。なお、通信制御部221は、ゲーム端末10の表示部190に表示させるための種々の画像(例えば拡張現実画像)を送信してもよい。
【0179】
画像生成部230は、処理部200で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成する。画像生成部230の処理は、端末10の画像生成部130と同様な処理を行う。
【0180】
また本発明は、個人用または業務用等の種々のゲームシステムに適用できる。また、本実施形態では、優劣判定ゲーム、対戦ゲーム、ロールプレイングゲーム、アクションゲーム等に限らず、種々のゲームに応用してもよい。例えば、これらの種々のゲームを提供するサーバで行うようにしてもよい。
【0181】
なお、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0182】
本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。なお、本実施形態で説明した実施例は、自由に組み合わせることができる。