画像処理装置、画像処理装置の制御方法、及びプログラム
【課題】LOD技術のオブジェクト切り替えにおいて、ユーザに違和感を与えないこと。
【解決手段】オブジェクト配置手段(2)は、形状変化が可能な第1オブジェクト(54a)を仮想3次元空間(50)に配置する。視点(56)とオブジェクト(54)との距離(r)が基準距離以上になった場合、第1オブジェクト(54a)から、所定形状の第2オブジェクト(54b)に切り替える。形状変化手段(4)は、視点(56)とオブジェクト(54)との距離(r)が基準距離未満である場合、視点(56)とオブジェクト(54)との距離(r)が基準距離に近づくほど、第1オブジェクト(54a)の形状が第2オブジェクト(54b)の形状に近づくように、第1オブジェクト(54a)の形状を、視点(56)とキャラクタ(54)との距離に基づいて変化させる。
【解決手段】オブジェクト配置手段(2)は、形状変化が可能な第1オブジェクト(54a)を仮想3次元空間(50)に配置する。視点(56)とオブジェクト(54)との距離(r)が基準距離以上になった場合、第1オブジェクト(54a)から、所定形状の第2オブジェクト(54b)に切り替える。形状変化手段(4)は、視点(56)とオブジェクト(54)との距離(r)が基準距離未満である場合、視点(56)とオブジェクト(54)との距離(r)が基準距離に近づくほど、第1オブジェクト(54a)の形状が第2オブジェクト(54b)の形状に近づくように、第1オブジェクト(54a)の形状を、視点(56)とキャラクタ(54)との距離に基づいて変化させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理装置の制御方法、及びプログラムに関する。
【背景技術】
【0002】
従来、オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示させる画像処理装置が知られている。このような画像処理装置においては、視野内のオブジェクトの数が多くなるほどオブジェクトの表示制御処理が複雑になり、画像処理装置の処理負荷が増大する。
【0003】
特許文献1には、視点とオブジェクトとの距離に応じて詳細度の異なるオブジェクトを使い分けることによって、画像処理装置の処理負荷を軽減させるLOD(Level Of Detail)技術が記載されている。例えば、視点とオブジェクトとの距離が近い場合には、オブジェクトが画面に大きく映し出されるので、詳細度の高い緻密なオブジェクトを用いて細かい描写を実現する。一方、視点とオブジェクトとの距離が遠い場合には、オブジェクトが画面に小さく映し出されるため細かい描写を行う必要がなく、詳細度の低い簡易なオブジェクトを用いることによって処理負荷が軽減される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−264359号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のLOD技術においては、オブジェクトを切り替える際に、画面に表示されるオブジェクトの見た目が急に変ってしまうため、ユーザが違和感を感じる場合があった。
【0006】
図18は、従来のLOD技術について説明するための図である。図18に示すように、視点とオブジェクトとの距離rが基準距離r0未満の場合には、詳細度の高いオブジェクトOB1が配置される。距離rが基準距離以上になった場合、オブジェクトOB1が詳細度の低いオブジェクトOB2に切り替わる。オブジェクトOB2はオブジェクトOB1に比べて粗い作りであるため、オブジェクトOB1からオブジェクトOB2に切り替わると見た目(例えば、シルエット等)が急に変ってしまい、ユーザが違和感を感じてしまう。
【0007】
本発明は上記課題に鑑みてなされたものであって、その目的は、LOD技術のオブジェクト切り替えにおいて、ユーザに違和感を与えない画像処理装置、画像処理装置の制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明に係る画像処理装置は、オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示手段に表示させる画像処理装置であって、前記視点と前記オブジェクトとの距離が基準距離未満である場合、前記オブジェクトとして、形状変化が可能な第1オブジェクトを前記仮想3次元空間に配置するオブジェクト配置手段と、前記視点と前記オブジェクトとの距離が前記基準距離以上になった場合、前記第1オブジェクトから、所定形状の第2オブジェクトに切り替えるオブジェクト切替手段と、前記視点と前記オブジェクトとの距離が前記基準距離未満である場合、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトの形状が前記第2オブジェクトの形状に近づくように、前記第1オブジェクトの形状を、前記視点と前記オブジェクトとの距離に基づいて変化させる形状変化手段と、を含むことを特徴とする。
【0009】
また、本発明に係る画像処理装置の制御方法は、オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示手段に表示させる画像処理装置の制御方法であって、前記視点と前記オブジェクトとの距離が基準距離未満である場合、前記オブジェクトとして、形状変化が可能な第1オブジェクトを前記仮想3次元空間に配置するオブジェクト配置ステップと、前記視点と前記オブジェクトとの距離が前記基準距離以上になった場合、前記第1オブジェクトから、所定形状の第2オブジェクトに切り替えるオブジェクト切替ステップと、前記視点と前記オブジェクトとの距離が前記基準距離未満である場合、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトの形状が前記第2オブジェクトの形状に近づくように、前記第1オブジェクトの形状を、前記視点と前記オブジェクトとの距離に基づいて変化させる形状変化ステップと、を含むことを特徴とする。
【0010】
また、本発明に係るプログラムは、オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示手段に表示させる画像処理装置としてコンピュータを機能させるためのプログラムであって、前記視点と前記オブジェクトとの距離が基準距離未満である場合、前記オブジェクトとして、形状変化が可能な第1オブジェクトを前記仮想3次元空間に配置するオブジェクト配置手段、前記視点と前記オブジェクトとの距離が前記基準距離以上になった場合、前記第1オブジェクトから、所定形状の第2オブジェクトに切り替えるオブジェクト切替手段、前記視点と前記オブジェクトとの距離が前記基準距離未満である場合、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトの形状が前記第2オブジェクトの形状に近づくように、前記第1オブジェクトの形状を、前記視点と前記オブジェクトとの距離に基づいて変化させる形状変化手段、を含むことを特徴とする。
【0011】
また、本発明に係る画像処理装置は、オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示手段に表示させる画像処理装置であって、前記オブジェクトとして、第1オブジェクト又は前記第1オブジェクトよりも詳細度が低い第2オブジェクトを前記仮想3次元空間に配置するオブジェクト配置手段と、前記視点と前記オブジェクトとの距離が第1基準距離未満になった場合、前記第2オブジェクトを前記第1オブジェクトに切り替える切替処理を行い、前記視点と前記オブジェクトとの距離が前記第1基準距離よりも大きい第2基準距離以上になった場合、前記第1オブジェクトを前記第2オブジェクトに切り替える切替処理を行うオブジェクト切替手段と、を含み、前記オブジェクト切替手段は、前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトの位置又は姿勢が、位置又は姿勢に関する所与の条件を満たすか否かを判定し、当該判定結果に基づいて、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、ことを特徴とする。
【0012】
また、本発明に係る情報記憶媒体は、上記プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。
【0013】
本発明によれば、LOD技術のオブジェクト切り替えにおいて、ユーザに違和感を与えないようにすることができる。
【0014】
また、本発明の一態様では、前記第1オブジェクトの形状は、前記第1オブジェクトに設定されるスケルトンの状態変化に基づいて変化し、前記形状変化手段は、前記第2オブジェクトの形状に対応する前記第1オブジェクトのスケルトンの状態を示す状態データを記憶する手段から前記状態データを取得する手段を含み、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトのスケルトンの状態が前記状態データが示す状態に近づくように、前記第1オブジェクトのスケルトンの状態を、前記視点と前記オブジェクトとの距離及び前記状態データに基づいて変化させる、ことを特徴とする。
【0015】
また、本発明の一態様では、前記形状変化手段は、前記視点と前記オブジェクトとの距離と、前記第1オブジェクトの形状変化の程度を示す変化情報と、を対応付けてなる変化情報データを記憶する手段から前記変化情報データを記憶する手段を含み、前記視点と前記オブジェクトとの距離に対応する前記変化情報に基づいて、前記第1オブジェクトの形状を変化させる、ことを特徴とする。
【0016】
また、本発明の一態様では、前記オブジェクト切替手段は、前記視点と前記オブジェクトとの距離が第1基準距離未満になった場合、前記第2オブジェクトを前記第1オブジェクトに切り替える切替処理を行う手段と、前記視点と前記オブジェクトとの距離が前記第1基準距離よりも大きい第2基準距離以上になった場合、前記第1オブジェクトを前記第2オブジェクトに切り替える切替処理を行う手段と、前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトの位置又は姿勢が、位置又は姿勢に関する所与の条件を満たすか否かを判定し、当該判定結果に基づいて前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う手段と、を含むことを特徴とする。
【0017】
また、本発明の一態様では、前記オブジェクト切替手段は、前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、対象期間における前記オブジェクトの位置変化が基準量以上であるか否かを判定し、前記対象期間における前記オブジェクトの位置変化が前記基準量以上である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、ことを特徴とする。
【0018】
また、本発明の一態様では、前記オブジェクト切替手段は、前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトの姿勢が所与の姿勢であるか否かを判定し、前記オブジェクトの姿勢が所与の姿勢である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、ことを特徴とする。
【0019】
また、本発明の一態様では、前記仮想3次元空間には移動物体を示すオブジェクトが配置され、前記オブジェクト切替手段は、前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトと前記移動物体との位置関係が所与の位置関係であるか否かを判定し、前記オブジェクトと前記移動物体との位置関係が所与の位置関係である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、ことを特徴とする。
【0020】
また、本発明の一態様では、前記オブジェクト切替手段は、前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記視点と前記オブジェクトとの位置関係が所与の位置関係であるか否かを判定し、前記視点と前記オブジェクトとの位置関係が所与の位置関係である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、ことを特徴とする。
【0021】
また、本発明の一態様では、前記オブジェクト切替手段は、前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトの位置が所定領域内であるか否かを判定し、前記オブジェクトの位置が所定領域内である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、ことを特徴とする。
【図面の簡単な説明】
【0022】
【図1】本実施形態に係るゲーム装置のハードウェア構成を示す図である。
【図2】ゲーム空間の一例を示す図である。
【図3】詳細度が異なるキャラクタを説明するための図である。
【図4】ゲーム装置で実現される機能を示す機能ブロック図である。
【図5】ハイモデルキャラクタのスケルトンの状態変化を説明するための図である。
【図6】ローモデルキャラクタのスケルトンの状態変化を説明するための図である。
【図7】状態データを説明するための図である。
【図8】変化情報データのデータ格納例を示す図である。
【図9】形状変化部により行われる処理を説明するための図である。
【図10】ゲーム装置が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。
【図11】ゲーム装置が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。
【図12】ハイモデルキャラクタのスケルトンの状態が変更される様子を示す図である。
【図13】実施形態2のオブジェクト切替部の処理内容を説明するための図である。
【図14】ゲーム装置が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。
【図15】ゲーム装置が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。
【図16】移動物体が配置されたゲーム空間を示す図である。
【図17】ゲーム空間の位置によってキャラクタの輝度が異なる様子を説明するための図である。
【図18】従来のLOD技術について説明するための図である。
【発明を実施するための形態】
【0023】
[1.実施形態1]
以下、本発明に係る実施形態について図面に基づき詳細に説明する。本発明に係る画像処理装置は、例えば、家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末(PDA)、又はパーソナルコンピュータを用いて実現される。ここでは、本発明の実施形態に係る画像処理装置を、携帯ゲーム機を用いて実現する場合について説明する。
【0024】
[1−1.ゲーム装置のハードウェア構成]
図1は、本実施形態に係るゲーム装置10のハードウェア構成を示す図である。図1に示すように、ゲーム装置10は、携帯ゲーム機11を含んでなる。携帯ゲーム機11は、制御部14、記憶部16、主記憶18、画像処理部20、表示部22、タッチパネル24、入出力処理部26、メモリカードスロット28、光ディスク再生部32、操作キー部36、音声処理部38、音声出力部40、音声入力部42、通信I/F(インタフェース)44等を含む。
【0025】
制御部14は、記憶部16に記憶されるオペレーティングシステムや、メモリカード30、光ディスク34に格納されるプログラムや各種データに基づいてゲーム装置10の各部を制御する。
【0026】
記憶部16は、フラッシュメモリ等の不揮発性記憶媒体を含んで構成される。記憶部16には、オペレーティングシステム等が記憶される。
【0027】
主記憶18は、例えば、RAMを含んで構成される。記憶部16に記憶されたプログラム、メモリカードスロット28を介してメモリカード30から読み出されたプログラム、又は、光ディスク再生部32を介して光ディスク34から読み出されたプログラムは、必要に応じて主記憶18に書き込まれる。主記憶18は、制御部14の作業用メモリとしても用いられる。
【0028】
バス12は、アドレス及び各種データをゲーム装置10の各部でやり取りするために用いられる。制御部14、記憶部16、主記憶18、画像処理部20及び入出力処理部26は、バス12によって相互データ通信可能に接続される。
【0029】
画像処理部20は、VRAMを含む。画像処理部20は、制御部14からの指示に従って画像をVRAM上に描画する。VRAM上に描画された画像は、所定のタイミングで表示部22に表示される。表示部22は、例えば、一又は複数の公知の液晶表示パネルである。例えば、表示部22に重畳するようにして、タッチパネル24が設けられる。
【0030】
入出力処理部26は、制御部14が、タッチパネル24、メモリカードスロット28、光ディスク再生部32、操作キー部36、音声処理部38、通信I/F44と、各種データを授受するためのインタフェースである。
【0031】
メモリカードスロット28は、メモリカード30に記憶されたゲームプログラムやゲームデータを制御部14からの指示に従って読み出す。メモリカード30は、例えば、セーブデータ等のゲームデータが記憶される不揮発性記憶媒体を含む。
【0032】
光ディスク再生部32は、光ディスク34に記録されたプログラムやデータを読み取る。本実施形態においては、光ディスク34に記憶されたプログラムやデータが用いられてゲームが実行される場合を説明するが、例えば、メモリカード30等の他のあらゆる情報記憶媒体を用いるようにしてもよい。また、インターネット等のデータ通信網を介して、遠隔地からプログラムやデータをゲーム装置10に供給するようにしてもよい。
【0033】
操作キー部36は、ユーザが各種操作を行うための入力手段として機能する。操作キー部36は、十字ボタン、スライドパッド、各種ボタン等を含む。入出力処理部26は、一定周期毎(例えば、1/60秒毎)に、操作キー部36の各部の状態をスキャンする。このスキャン結果を表す操作信号は、バス12を介して制御部14に供給される。制御部14は、ユーザの操作内容を、操作信号に基づいて判断する。
【0034】
音声処理部38は、サウンドバッファを含む。音声処理部38は、サウンドバッファに格納された楽曲の出力用データや音声データに基づいて、楽曲や音声を音声出力部40から出力する。
【0035】
音声入力部42は、マイク等を含む。音声入力部42は、プレイヤの音声等を検出し、検出信号を入出力処理部26を介して制御部14に入力する。通信I/F44は、ゲーム装置10を通信ネットワークに接続するためのインタフェースである。
【0036】
なお、ゲーム装置10の構成は、上記の例に限られない。ゲーム装置10は、他の構成を含んでいてもよい。他にも例えば、ジャイロセンサやモーションセンサ、CCDカメラ等が、ゲーム装置10に含まれていてもよい。
【0037】
[1−2.ゲーム装置において実行されるゲーム]
次に、ゲーム装置10において実行されるゲームについて説明する。ゲーム装置10が実行するゲームにおいては、キャラクタを示すオブジェクトが配置されたゲーム空間(仮想3次元空間)を所与の視点から見た様子を示す画像が表示部22に表示される。ゲームが開始されると、主記憶18にゲーム空間が構築される。
【0038】
図2は、ゲーム空間の一例を示す図である。図2に示すように、ゲーム空間50には、地面を示すオブジェクトであるフィールド52、キャラクタを示すオブジェクトであるキャラクタ54が配置される。キャラクタ54は、フィールド52上に複数体配置される。
【0039】
キャラクタ54は、例えば、ゲームプログラムが実行する処理に基づいて、フィールド52上を移動したり、姿勢が変化したりする。なお、図2においては、キャラクタ54の形状を簡略化して表現している。キャラクタ54の位置は、ゲーム空間50に設定される3次元座標(ワールド空間座標)によって定まる。
【0040】
また、ゲーム空間50には、仮想カメラ56(視点)が設定される。表示部22には、仮想カメラ56からゲーム空間50を見た様子を示す画像が表示される。例えば、ゲーム空間50に配置されるオブジェクトのうち、仮想カメラ56の視野内のオブジェクトが表示部22に表示される。例えば、仮想カメラ56の視錘台内のオブジェクトに、公知の座標変換処理が施されることによって、表示部22に画像が表示される。
【0041】
本実施形態においては、キャラクタ54と仮想カメラ56との距離に応じて、ゲーム空間50に配置されるキャラクタ54の詳細度(LODレベル)が異なる構成になっている。詳細度とは、キャラクタ54をどの程度詳細に描画するかを示す指標である。例えば、キャラクタ54の詳細度が高くなるほど、キャラクタ54に設定されるスケルトンの数が増加する。
【0042】
スケルトンは、キャラクタ54の形状(例えば、姿勢や表情等)が変化する様子を表現するためのものである。スケルトンは、関節部分に相当するジョイントと、ジョイント間を接続するボーンと、を含んで構成される。キャラクタ54に設定されるジョイントやボーンには、キャラクタ54を構成するポリゴンの頂点の少なくとも一部が関連づけられる。即ち、詳細度が高くなるほどポリゴンの頂点数も多くなる。
【0043】
図3は、詳細度が異なるキャラクタ54を説明するための図である。図3に示す距離rは、仮想カメラ56とキャラクタ54との距離である。図3に示すように、例えば、キャラクタ54と仮想カメラ56との距離rが比較的近い場合(例えば、距離r<基準距離r0)には、詳細度が高いハイモデルキャラクタ54a(例えば、ポリゴン数:5000、ボーン数:50)がゲーム空間50に配置される。
【0044】
距離rが小さい場合、キャラクタ54が画面に占める割合が大きいので、ハイモデルキャラクタ54aを用いることによってキャラクタ54の細部が詳細に描かれる。また、ハイモデルキャラクタ54aには、比較的多くのスケルトンが設定されるため、複雑な動作を表現することができる。例えば、図3に示すように、ハイモデルキャラクタ54aの指先にはボーンが設定されるため、手を開閉する様子等を表現することができる。
【0045】
また例えば、図3に示すように、キャラクタ54と仮想カメラ56との距離rが比較的遠い場合(例えば、距離r≧基準距離r0)には、詳細度が低いローモデルキャラクタ54b(例えば、ポリゴン数:500、ボーン数:15)がゲーム空間50に配置される。
【0046】
キャラクタ54と仮想カメラ56との距離rが比較的遠い場合、表示部22におけるキャラクタ54の占める割合が小さいので、キャラクタ54の詳細度を下げても表示部22における見た目にはあまり影響がない。また、ローモデルキャラクタ54bに設定されるスケルトンの数は比較的少ないため、あまり複雑な動作を表現することができない。例えば、図3に示すように、ローモデルキャラクタ54bの指先にはスケルトンが設定されないため、手を開閉する様子等を表現することができない。例えば、ローモデルキャラクタ54bの両手は、常に半開きの状態となる。
【0047】
例えば、ハイモデルキャラクタ54aがゲーム空間50に配置されている状態で、仮想カメラ56がキャラクタ54から遠ざかり、距離rが基準距離r0以上になった場合、ハイモデルキャラクタ54aがローモデルキャラクタ54bに切り替わる。先述したように、基準距離r0の前後におけるキャラクタ54の切り替えが目立つため、ユーザが違和感を感じてしまう。
【0048】
本実施形態のゲーム装置10は、キャラクタ54と仮想カメラ56との距離rが基準距離r0に近づくにつれて、ハイモデルキャラクタ54aの手の形状をローモデルキャラクタ54bの手の形状(例えば、半開きの状態)に近づけるように制御することによって、ユーザに違和感を与えないような構成になっている。以下、上記技術について詳細に説明する。
【0049】
[1−3.ゲーム装置において実現される機能]
図4は、ゲーム装置10で実現される機能を示す機能ブロック図である。図4に示すように、ゲーム装置10は、ゲームデータ記憶部1、オブジェクト配置部2、オブジェクト切替部3、形状変化部4を含む。これら各機能は、例えば、制御部14が光ディスク34に記憶されたプログラムを実行することによって実現される。
【0050】
[1−3−1.ゲームデータ記憶部]
ゲームデータ記憶部1は、主記憶18、メモリカード30、及び光ディスク34を主として実現される。ゲームデータ記憶部1は、ゲーム空間50に配置されたオブジェクトを表示させるために必要なデータを記憶する。本実施形態においては、ゲームデータ記憶部1は、下記のデータを記憶する。
(1)モーションデータ
(2)状態データ
(3)変化情報データ
(4)ゲーム状況データ
【0051】
[モーションデータ]
例えば、ゲームデータ記憶部1は、キャラクタ54の形状変化を定義したモーションデータを記憶する。モーションデータには、キャラクタ54が各種動作を行う際のスケルトンの状態変化が定義されている。即ち、モーションデータには、キャラクタ54が各種動作を行う際のジョイントやボーンの状態変化が定義されている。
【0052】
スケルトンを構成するジョイントやボーンの状態(回転角度や位置)が変化した場合、そのジョイントやボーンに関連づけられたポリゴンの頂点が、そのジョイントやボーンの状態変化に基づいて移動する。即ち、キャラクタ54の形状が変化する。こうして、キャラクタ54の状態が変化する様子が、モーションデータによって表現される。
【0053】
本実施形態においては、ハイモデルキャラクタ54aに設定されるスケルトンの状態変化を定義したハイモデルモーションデータと、ローモデルキャラクタ54bに設定されるスケルトンの状態変化を定義したローモデルモーションデータと、が記憶される場合を説明する。本実施形態においては、モーションデータが定義するキャラクタ54の動作として、キャラクタ54が手を開閉する動作を例に挙げて説明する。
【0054】
図5は、ハイモデルキャラクタ54aのスケルトンの状態変化を説明するための図である。ここでは、ハイモデルキャラクタ54aの左手に設定されるスケルトンの状態変化を例に挙げて説明する。図5は、ハイモデルキャラクタ54aが左手を広げている状態を示している。
【0055】
図5に示す例では、複数のポリゴンを含んで構成されるハイモデルキャラクタ54aに対して、左前腕ジョイント60、左前腕ボーン61、左手首ジョイント62が設定される。また、ハイモデルキャラクタ54aの小指の動作を表現するための第1左小指ボーン63、第1左小指ジョイント64、第2左小指ボーン65、第2左小指ジョイント66、第3左小指ボーン67、第3左小指ジョイント68が設定される。また、ハイモデルキャラクタ54aの薬指の動作を表現するための第1左薬指ボーン69、第1左薬指ジョイント70、第2左薬指ボーン71、第2左薬指ジョイント72、第3左薬指ボーン73、第3左薬指ジョイント74が設定される。
【0056】
また、ハイモデルキャラクタ54aの中指の動作を表現するための第1左中指ボーン75、第1左中指ジョイント76、第2左中指ボーン77、第2左中指ジョイント78、第3左中指ボーン79、第3左中指ジョイント80が設定される。また、ハイモデルキャラクタ54aの人差指の動作を表現するための第1左人差指ボーン81、第1左人差指ジョイント82、第2左人差指ボーン83、第2左人差指ジョイント84、第3左人差指ボーン85、第3左人差指ジョイント86が設定される。また、ハイモデルキャラクタ54aの親指の動作を表現するための第1左親指ボーン87、第1左親指ジョイント88、第2左親指ボーン89、第2左親指ジョイント90、第3左親指ボーン91、第3左親指ジョイント92、が設定される。
【0057】
上記の各ボーンは、各ジョイント間を接続している。各ボーン及び各ジョイントには親子関係があり、子のボーン及び子のジョイントは、親のボーン及び親のジョイントに従動する。即ち、子のボーン及び子のジョイントの状態(位置や回転角度)は、親のボーン及び親のジョイントの状態(位置や回転角度)に応じて変化する。
【0058】
また、各ボーン及び各ジョイントには、例えば、ハイモデルキャラクタ54aの左手及び左指のポリゴンの頂点が関連づけられている。それらの頂点の位置は、各ボーン及び各ジョイントの状態(位置や回転角度)に応じて変化する。
【0059】
例えば、ハイモデルキャラクタ54aが手を閉じる様子を表す場合には、所定のボーン及びジョイントが回転する。ここでは、ハイモデルキャラクタ54aが左手を閉じる際の左小指の動きを例に挙げて説明する。
【0060】
例えば、ハイモデルキャラクタ54aが左手を閉じる場合、第1左小指ジョイント64がX軸方向を回転軸としてA方向に回転する。この場合、第2左小指ボーン65及び第2左小指ジョイント66は、第1左小指ジョイント64の回転に応じて、第1左小指ジョイント64を回転の中心としてA方向に移動する。また、第2左小指ジョイント66は、X軸方向を回転軸としてB方向に回転する。第3左小指ボーン67及び第3左小指ジョイント68は、第1小指ジョイント64及び第2左小指ジョイント66の回転及び位置変化に応じて、B方向に移動する。
【0061】
そして、ハイモデルキャラクタ54aの左指のポリゴンの頂点の位置が、第1左小指ジョイント64、第2左小指ボーン65、第2左小指ジョイント66、第3左小指ボーン67、第3左小指ジョイント68の位置変化に応じて変化する。即ち、ハイモデルキャラクタ54aが左手を閉じる様子が表現される。
【0062】
なお、ハイモデルキャラクタ54aが手を開ける様子を表す場合には、第1左小指ジョイント64、第2左小指ボーン65、第2左小指ジョイント66、第3左小指ボーン67、第3左小指ジョイント68を、それぞれ上記とは逆方向に回転及び位置変化させる。
【0063】
また、ハイモデルキャラクタ54aの他の指が開閉する様子も、上記と同様にジョイントが回転することによって行われる。即ち、上記の「小指」を「薬指」、「中指」、「人差指」、又は「親指」に読み替えることによって、ハイモデルキャラクタ54aの手が開閉する様子が行われる。
【0064】
例えば、ハイモデルモーションデータには、上記のように行われるジョイントの回転角度(例えば、X軸方向を回転軸とする回転角度)の所定時間毎(例えば、1/60秒毎)の変化が定義されている。ハイモデルモーションデータが再生されることによって、即ち、ハイモデルモーションデータに従ってジョイントの回転角度が変化することによって、ハイモデルキャラクタ54aが各種動作をする様子(例えば、ハイモデルキャラクタ54aが手を開閉する様子)が表される。
【0065】
ローモデルモーションデータも、上記説明したハイモデルモーションデータと同様のデータが格納される。ただし、図3を参照して説明したように、ローモデルキャラクタ54bとハイモデルキャラクタ54aとは詳細度が異なるので、ローモデルモーションデータにより定義されるスケルトンの状態変化と、ハイモデルモーションデータにより定義されるスケルトンの状態変化と、は異なる。
【0066】
図6は、ローモデルキャラクタ54bのスケルトンの状態変化を説明するための図である。ここでは、ローモデルキャラクタ54bの左手のスケルトンを例に挙げて説明する。ローモデルキャラクタ54bの左手にも、ハイモデルキャラクタ54aと同様にスケルトンが設定される。ただし、図6に示すように、ローモデルキャラクタ54bは、ハイモデルキャラクタ54aよりもスケルトンの数が少ない。
【0067】
図6に示す例では、複数のポリゴンを含んで構成されるローモデルキャラクタ54bに対して、左前腕ジョイント100、左前腕ボーン101、左手首ジョイント102が設定されている。各ボーン及び各ジョイントに親子関係がある点、各ボーン及び各ジョイントにはポリゴンの頂点が関連づけられている点は、ローモデルキャラクタ54bはハイモデルキャラクタ54aと同様であるので説明を省略する。
【0068】
ローモデルキャラクタ54bは、ハイモデルキャラクタ54aに比べてボーン及びジョイントの数が少ないので、左手を開閉する動作を表現することができない。例えば、ローモデルキャラクタ54bには、指の動きを表現するためのスケルトンが設定されない。したがって、ローモデルキャラクタ54bの左手は、図6に示すように、例えば、常に半開きの形状となっている。
【0069】
[状態データ]
また例えば、ゲームデータ記憶部1は、第2オブジェクト(例えば、ローモデルキャラクタ54bの左手)の形状に対応する第1オブジェクト(例えば、ハイモデルキャラクタ54aの左手)のスケルトンの状態を示す状態データを記憶する。
【0070】
ローモデルキャラクタ54bの左手の形状に対応するハイモデルキャラクタ54aのスケルトンの状態とは、ローモデルキャラクタ54bの左手の形状に基づいて定まるハイモデルキャラクタ54aのスケルトンの状態であり、例えば、ローモデルキャラクタ54bの左手の形状とハイモデルキャラクタ54aの左手の形状とが所定の関係を満たすためのハイモデルキャラクタ54aのスケルトンの状態である。別の言い方をすれば、ハイモデルキャラクタ54aとローモデルキャラクタ54bとの形状(例えば、輪郭(シルエット))のずれが、所定範囲となるためのハイモデルキャラクタ54aのスケルトンの状態である。
【0071】
状態データは、ローモデルキャラクタ54bの形状に基づいて作成される。即ち、状態データは、ローモデルモーションデータが示すローモデルキャラクタ54bの状態に基づいて作成される。状態データは、ゲーム制作者等によって予め用意されるデータである。本実施形態においては、状態データが、ハイモデルキャラクタ54aのジョイント及びボーンの位置及び回転角を定義したデータである場合を説明する。
【0072】
図7は、状態データを説明するための図である。図7に示すように、状態データには、例えば、ハイモデルキャラクタ54aの左手が半開きになるためのスケルトンの状態が定義される。即ち、ハイモデルキャラクタ54aの左手が半開きの形状における、各ジョイント及びボーンの位置及び回転角が、状態データに定義される。
【0073】
別の言い方をすれば、状態データには、各ボーン及び各ジョイントの所定の位置関係が格納される。状態データに基づいてハイモデルキャラクタ54aの状態を変化させると、ハイモデルキャラクタ54aとローモデルキャラクタ54bとは、略同じ状態となって画面に表れる。
【0074】
[変化情報データ]
本実施形態においては、視点(例えば、仮想カメラ56)とキャラクタ54との距離rと、第1オブジェクト(例えば、ハイモデルキャラクタ54aの左手)の形状変化の程度を示す変化情報と、を対応付けてなる変化情報データが、ゲームデータ記憶部1に記憶される場合を説明する。
【0075】
図8は、変化情報データのデータ格納例を示す図である。例えば、仮想カメラ56とキャラクタ54との距離rと、形状変化レベル(変化情報)と、が対応付けられて記憶される。形状変化レベルは、例えば、ハイモデルモーションデータに基づいて定まるハイモデルキャラクタ54aの左手の形状を、どの程度ローモデルキャラクタ54bの左手の形状に近づけるかを示す値である。ここでは、形状変化レベルが5段階に分けられている場合を説明する。
【0076】
図8に示す基準変化値とは、ハイモデルモーションデータに基づいて定まるハイモデルキャラクタ54aのスケルトンの状態(位置及び回転角度)と、状態データが示すハイモデルキャラクタ54aのスケルトンの状態(位置及び回転角度)と、のずれを示す値である。即ち、ハイモデルモーションデータに基づいて定まるハイモデルキャラクタ54aのスケルトンの状態を基準変化値に基づいて変更すると、ハイモデルキャラクタ54aは状態になり、ローモデルキャラクタ54bの状態に近づく。
【0077】
なお、変化情報データはテーブル形式のデータであってもよいし、数式形式のデータであってもよい。また、変化情報データはテーブル形式のデータと数式形式のデータとを組み合わせた形式のデータであってもよい。
【0078】
[ゲーム状況データ]
また、ゲームデータ記憶部1は、実行中のゲームの状況を示すゲーム状況データを記憶する。例えば、ゲーム状況データには、ゲーム空間50の現在の様子を示すデータ(例えば、キャラクタ54の現在の形状(即ち、スケルトンの状態。又は、ポリゴンの頂点の位置。)や位置、仮想カメラ56の位置等)等が格納される。ゲーム状況データは、プレイヤのゲーム操作や所定のアルゴリズムに基づいて内容が更新される。例えば、プレイヤがゲーム操作を行うと、ゲーム状況データに格納されたキャラクタ54の位置が変化したり、仮想カメラ56の位置や視線方向が変化する。
【0079】
なお、制御部14は、ゲームデータ記憶部1に記憶される各種データを取得する手段として機能する。また、制御部14は、ゲームデータ記憶部1に記憶される各種データを変更(更新)する手段として機能する。また、ゲームデータ記憶部1に記憶されるデータは、上記の例に限られず、ゲーム装置10がゲームを実行するために必要なデータが記憶されていればよい。
【0080】
[1−3−2.オブジェクト配置部]
オブジェクト配置部2は、制御部14を主として実現される。オブジェクト配置部2は、視点(例えば、仮想カメラ56)とオブジェクト(例えば、キャラクタ54)との距離rが基準距離r0未満である場合、オブジェクトとして、形状変化が可能な第1オブジェクト(例えば、ハイモデルキャラクタ54aの左手)を仮想3次元空間(例えば、ゲーム空間50)に配置する。
【0081】
仮想カメラ56とキャラクタ54との距離rは、ゲーム状況データに格納された仮想カメラ56の位置とキャラクタ54の位置とが参照されることによって取得される。基準距離r0は、ハイモデルキャラクタ54aとローモデルキャラクタ54bとの切り替え(LOD切り替え)を行うか否かの基準となる距離であり、ゲーム制作者等によって予め定められた距離である。
【0082】
オブジェクト配置部2は、ゲーム状況データに格納されたハイモデルキャラクタ54aの現在のスケルトンの状態をモーションデータに基づいて変化させ、ハイモデルキャラクタ54aのポリゴンの頂点位置を特定することによって、ハイモデルキャラクタ54aをゲーム空間50配置する。
【0083】
形状変化が可能なオブジェクトとは、オブジェクトの表面形状の変化が可能なことであり、例えば、オブジェクトの輪郭(シルエット)の変化が可能なことを示す。本実施形態においては、第1オブジェクト(例えば、ハイモデルキャラクタ54aの左手)の形状は、第1オブジェクトに設定されるスケルトンの状態変化に基づいて変化する。即ち、ハイモデルキャラクタ54aの左手にはスケルトンが設定されているため、ハイモデルキャラクタ54aの左手は開閉する動作が可能であり、形状変化が可能となる。
【0084】
[1−3−3.オブジェクト切替部]
オブジェクト切替部3は、制御部14を主として実現される。オブジェクト切替部3は、視点(例えば、仮想カメラ56)とオブジェクト(例えば、キャラクタ54)との距離rが基準距離r0以上になった場合、第1オブジェクト(例えば、ハイモデルキャラクタ54a)から、所定形状の第2オブジェクト(例えば、ローモデルキャラクタ54bの左手)に切り替える。
【0085】
オブジェクト切替部3は、ローモデルキャラクタ54bのスケルトンの状態を定義したローモデルモーションデータを参照し、ゲーム空間50にローモデルキャラクタ54bを配置することによって、ハイモデルキャラクタ54aからローモデルキャラクタ54bに切り替える。
【0086】
所定形状のオブジェクトとは、オブジェクトの形状が変化しないことを示し、例えば、オブジェクトの表面形状が所定の形状となることである。例えば、ローモデルキャラクタ54bの左手のように、スケルトンが設定されず、常に半開きの形状となるものが、所定形状のオブジェクトである。
【0087】
[1−3−4.形状変化部]
形状変化部4は、制御部14を主として実現される。形状変化部4は、視点(例えば、仮想カメラ56)とオブジェクト(例えば、キャラクタ54)との距離rが基準距離r0未満である場合、視点とオブジェクトとの距離rが基準距離r0に近づくほど、第1オブジェクト(例えば、ハイモデルキャラクタ54aの左手)の形状が第2オブジェクト(例えば、ローモデルキャラクタ54bの左手)の形状に近づくように、第1オブジェクトの形状を、視点とオブジェクトとの距離rに基づいて変化させる。例えば、形状変化部4は、ハイモデルキャラクタ54aの左手の現在の形状と、ローモデルキャラクタ54bの左手の形状と、視点とオブジェクトとの距離rと、に基づいてハイモデルキャラクタ54aの左手の形状を変化させる。
【0088】
本実施形態においては、形状変化部4は、第2オブジェクト(例えば、ローモデルキャラクタ54bの左手)の形状に対応する第1オブジェクト(例えば、ハイモデルキャラクタ54aの左手)のスケルトンの状態を示す状態データを記憶する手段から前記状態データを取得する手段を含み、視点(例えば、仮想カメラ56)とオブジェクト(例えば、キャラクタ54)との距離rが基準距離に近づくほど、第1オブジェクトのスケルトンの状態が状態データが示す状態に近づくように、第1オブジェクトのスケルトンの状態を、視点とキャラクタとの距離r及び状態データに基づいて変化させる場合を説明する。
【0089】
例えば、形状変化部4は、ハイモデルモーションデータに基づいてハイモデルキャラクタ54aに設定されるスケルトンの状態を仮決定する。仮決定されたハイモデルキャラクタ54aのスケルトンの状態が状態データに基づいて変更されることによって、ハイモデルキャラクタ54aの状態が制御される。この変更の程度が、仮想カメラ56とキャラクタ54との距離rに応じて決定される。
【0090】
本実施形態においては、形状変化部4は、視点(例えば、仮想カメラ56)とオブジェクト(例えば、キャラクタ54)との距離rと、第1オブジェクト(例えば、ハイモデルキャラクタ54aの左手)の形状変化の程度を示す変化情報と、を対応付けてなる変化情報データを記憶する手段から変化情報データを記憶する手段を含み、視点とオブジェクトとの距離rに対応する変化情報(形状変化レベル)に基づいて、第1オブジェクトの形状を変更させる場合を説明する。
【0091】
つまり、形状変化部4は、距離rに対応する形状変化レベルが示す変更量だけ、ハイモデルキャラクタ54aの左手の形状を変更させる。例えば、ハイモデルキャラクタ54aの左手のスケルトンの位置及び回転角が変更される。
【0092】
図9は、形状変化部4により行われる処理を説明するための図である。ここでは、ハイモデルキャラクタ54aの左手の小指の形状が変更される場合を例に挙げて説明する。
【0093】
図9においては、ハイモデルモーションデータに基づいて定まるハイモデルキャラクタ54aの左手の小指を、第1左小指ジョイント64a、第2左小指ボーン65a、第2左小指ジョイント66a、第3左小指ボーン67a、第3左小指ジョイント68aと記載する。一方、状態データに基づいて定まるキャラクタ54の状態における左手の小指を、第1左小指ジョイント64b、第2左小指ボーン65b、第2左小指ジョイント66b、第3左小指ボーン67b、第3左小指ジョイント68bと記載する。
【0094】
例えば、第1左小指ジョイント64aをX軸を回転軸としてC方向へ回転させた場合、第2左小指ボーン65aと第2左小指ボーン65bとが一致し、第2左小指ジョイント66aと第2左小指ジョイント66bとが一致する。この場合、第2左小指ボーン65aと第2左小指ボーン65bとのずれを示す基準変化値、及び、第2左小指ジョイント66aと第2左小指ジョイント66bとのずれを示す基準変化値は、例えば、X軸を回転軸としてC方向に所定角度回転させることを示す値となる。
【0095】
また例えば、第2左小指ジョイント66aをX軸を回転軸としてD方向へ回転させた場合、第3左小指ボーン67aと第3左小指ボーン67bとが一致し、第3左小指ジョイント68aと第3左小指ジョイント68bとが一致する。この場合、第3左小指ボーン67aと第3左小指ボーン67bとのずれを示す基準変化値、及び、第3左小指ジョイント68aと第3左小指ジョイント68bとのずれを示す基準変化値は、X軸を回転軸としてD方向に所定角度回転させることを示す値となる。
【0096】
上記のように特定される基準変化値に基づいて、ハイモデルモーションデータにより仮決定されるハイモデルキャラクタ54aの状態が変更される。例えば、距離rが基準距離r0の2/5倍である場合、図8に示す変化情報データにより、基準変化値の3/5倍の変更レベルで変更が行われる。
【0097】
この場合、第2左小指ボーン65a及び第2左小指ジョイント66aを、X軸を回転軸としてD方向に、基準変化値が示す回転角を3/5倍させた角度だけ回転させることによって、第2左小指ボーン65c及び第2左小指ジョイント66cの状態が変更される。また、第3左小指ボーン67a及び第3左小指ジョイント68aを、X軸を回転軸としてE方向に、基準変化値が示す回転角を3/5倍させた角度だけ回転させることによって、第3左小指ボーン67c及び第3左小指ジョイント68cの状態が変更される。
【0098】
このように、ハイモデルキャラクタ54aが左手を広げた形状から左手を半開きにした形状になるように変更される。即ち、仮想カメラ56とキャラクタ54との距離rが基準距離r0に近づくほど、ハイモデルキャラクタ54aの左手の形状がローモデルキャラクタ54bの左手の形状に近づくように制御される。状態データに格納される状態は、ローモデルモーションデータに基づいて定まる状態であるので、ハイモデルキャラクタ54aからローモデルキャラクタ54bに切り替わった場合の切り替えが目立ちにくくなり、ユーザに与える違和感を軽減することができる。
【0099】
[1−4.ゲーム装置において実行される処理]
次に、ゲーム装置10が実行する処理について説明する。図10及び図11は、ゲーム装置10が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。制御部14は、例えば、光ディスク34に記憶されるプログラムに従って、所定時間毎(例えば、1/60秒毎)に図10及び図11に示す処理を実行する。
【0100】
図10に示すように、制御部14は、ゲーム状況データを参照し、仮想カメラ56とキャラクタ54との距離rを算出する(S1)。制御部14は、S1で算出された距離rが基準距離r0以上であるか否かを判定する(S2)。
【0101】
距離rが基準距離r0以上であると判定された場合(S2;Y)、制御部14は、キャラクタ54がハイモデルキャラクタ54aとして描画されていたか否かを判定する(S3)。S3においては、ゲーム状況データに格納されているキャラクタ54のスケルトンの数に基づいて判定されるようにしてもよいし、ハイモデルキャラクタ54a又はローモデルキャラクタ54bの何れか設定されているかを示すフラグを用意しておき、このフラグが参照されることによって判定が行われるようにしてもよい。他にも例えば、距離rが基準距離r0未満の状態から基準距離r0以上の状態に変化したか否かが判定されるようにしてもよい。
【0102】
キャラクタ54がハイモデルキャラクタ54aとして描画されていたと判定された場合(S3;Y)、制御部14は、ハイモデルキャラクタ54aからローモデルキャラクタ54bに切り替えて、ローモデルキャラクタ54bをゲーム空間50に配置する(S4)。即ち、ローモデルモーションデータが参照されることによって、ローモデルキャラクタ54bがゲーム空間50に配置される。このローモデルキャラクタ54bの形状は、ゲーム状況データに格納された切り替え前のハイモデルキャラクタ54aに基づいて制御される。
【0103】
一方、キャラクタ54がハイモデルキャラクタ54aとして描画されていないと判定された場合(S3;N)、制御部14は、ローモデルモーションデータに基づいて、ローモデルキャラクタ54bのスケルトンの状態を制御する(S5)。制御部14は、S5において制御されたローモデルキャラクタ54bのスケルトンの状態に基づいて、ゲーム状況データに格納されたキャラクタ54の状態を更新する(S6)。S6においては、ローモデルキャラクタ54bのスケルトンに基づいてポリゴンの頂点座標が特定され、ゲーム状況データに格納される。
【0104】
一方、距離rが基準距離r0未満であると判定された場合(S2;N)、制御部14は、キャラクタ54がハイモデルキャラクタ54aとして描画されていたか否かを判定する(S7)。S7の判定方法は、S3と同様である。
【0105】
キャラクタ54がハイモデルキャラクタ54aとして描画されていないと判定された場合(S7;N)、制御部14は、ローモデルキャラクタ54bからハイモデルキャラクタ54aに切り替える(S8)。
【0106】
一方、キャラクタ54がハイモデルキャラクタ54aとして描画されていたと判定された場合(S7;Y)、制御部14は、ゲーム状況データとハイモデルモーションデータに基づいて、ハイモデルキャラクタ54aのスケルトンの状態を仮決定する(S9)。
【0107】
制御部14は、仮決定されたハイモデルキャラクタ54aのスケルトンの状態を、距離rと状態データとに基づいて変化させる(S10)。例えば、仮決定されたハイモデルキャラクタ54aのスケルトンの状態と、状態データが示すスケルトンの状態と、のずれが基準変化値として算出される。そして、距離rと変化情報データとに基づいて形状変化レベルが決定される。当該形状変化レベルと基準変化値とに基づいて決定される変更量だけ、S9で仮決定されたハイモデルキャラクタ54aのスケルトンの状態が変更される。
【0108】
図12は、ハイモデルキャラクタ54aのスケルトンの状態が変更される様子を示す図である。図12に示すように、例えば、距離rが基準距離r0に近づくほど、ハイモデルキャラクタ54aの両手のスケルトンが半開きの状態になるように、ハイモデルキャラクタ54aのスケルトンの状態が変化することになる。
【0109】
制御部14は、S10で変更されたハイモデルキャラクタ54aのスケルトンの状態に基づいて、ゲーム状況データに格納されたキャラクタ54の状態を更新する(S11)。S11においては、ハイモデルキャラクタ54aのスケルトンに基づいてポリゴンの頂点座標が特定され、ゲーム状況データに格納される。
【0110】
制御部14は、仮想カメラ56の視野内の全てのキャラクタ54の形状を決定したか否かを判定する(S12)。仮想カメラ56の視野内の全てのキャラクタ54の形状を決定したと判定されない場合(S12;N)、処理はS1に戻り、次のキャラクタ54の形状が決定される。仮想カメラ56の視野内の全てのキャラクタ54の形状を決定したと判定された場合(S12;Y)、制御部14は、ゲーム状況データに基づいて画面を表示させる(S13)。
【0111】
以上説明したゲーム装置10によれば、距離rが基準距離r0に近づくほどハイモデルキャラクタ54aの左手の形状が、ローモデルキャラクタ54bの左手の形状に近づく。つまり、ハイモデルキャラクタ54aとローモデルキャラクタ54bの切り替える場合には、ハイモデルキャラクタ54aの左手の形状とローモデルキャラクタ54bの左手の形状とが似た状態になっているため、ハイモデルキャラクタ54aとローモデルキャラクタ54bとが切り替えが目立ちにくくなり、ユーザの違和感を軽減することができる。
【0112】
[1−5.実施形態1の変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【0113】
(1)例えば、実施形態においては、図9に示したように、ハイモデルモーションデータに基づいて定まるハイモデルキャラクタ54aのスケルトンの状態と、状態データに基づいて定まるスケルトンの状態と、のずれを示す回転角度によって、ハイモデルキャラクタ54aのスケルトンの状態が変化する場合を説明したが、ハイモデルキャラクタ54aの形状の変更方法は、これに限られない。
【0114】
形状変化部4は、ハイモデルモーションデータに基づいて定まるハイモデルキャラクタ54aの形状を、ローモデルモーションデータに基づいて定まるローモデルキャラクタ54bの形状に近づけるようにすればよい。他にも例えば、ハイモデルモーションデータに基づいて定まるハイモデルキャラクタ54aのスケルトンの位置と、状態データに基づいて定まる状態におけるスケルトンの位置と、の位置関係(位置ずれ量)に基づいてハイモデルキャラクタ54aの状態の変更が行われるようにしてもよい。
【0115】
(2)また例えば、上記実施形態においては、ハイモデルキャラクタ54aの左手の形状を、距離rが基準距離r0に近づくにつれてローモデルキャラクタ54bの左手の形状(例えば、半開きの形状)に近づける場合を説明したが、ハイモデルキャラクタ54aの形状が制御されるのは、左手に限られない。
【0116】
ハイモデルキャラクタ54aの状態が変更されるのは、ハイモデルキャラクタ54aにより表現される部位であればよい。例えば、ハイモデルキャラクタ54aの右手の形状が半開きの状態に近づくように制御されるようにしてもよいし、ハイモデルキャラクタ54aの足首のスケルトンの状態が回転角度が少なくなるように制御されるようにしてもよい。他にも例えば、ハイモデルキャラクタ54aの髪の毛の形状が、あまり動かなくなるように制御されるようにしてもよい。即ち、キャラクタ54の各部位を示すスケルトンの状態が、状態データが示す状態に近づくように変更されるようにすればよい。
【0117】
(3)また例えば、実施形態においては、距離rが基準距離r0未満である場合に、形状変化部4による処理が行われる場合を説明したが、形状変化部4による処理は、距離rが所定範囲(例えば、r0/2<r<r0)である場合にのみ実行されるようにしてもよい。即ち、距離rが所定範囲でない場合、形状変化部4による制御が制限され、ハイモデルモーションデータに基づいてハイモデルキャラクタ54aの形状が決定されるようにしてもよい。
【0118】
[2.実施形態2]
次に、本発明に係る画像処理装置の実施形態2について説明する。実施形態1においては、LOD切り替えを目立ちにくくするために、ハイモデルキャラクタ54aの形状をローモデルキャラクタ54bの形状に近づけるように、ハイモデルキャラクタ54aの形状を調整する場合を説明した。LOD切り替えを目立ちにくくするための処理は、実施形態1の例に限られない。
【0119】
実施形態2においては、所定の条件を満たしたキャラクタ54について、優先的にハイモデルキャラクタ54aとローモデルキャラクタ54bとの切替処理が行われる。例えば、切替処理を行っても切り替えが目立ちにくい状態のキャラクタ54や、ユーザが画面上で見ている可能性が低いと考えられるキャラクタ54について、優先的に切替処理が行われる。
【0120】
例えば、ユーザは、立ち止まっているキャラクタ54の輪郭は、はっきりと見えるため、このキャラクタ54に切替処理が行われると切り替えが目立ちやすい。一方、ユーザは、動いているキャラクタ54の輪郭は、あまりはっきりと捉えられないので、このキャラクタ54に切替処理が行われると切り替えが目立ちにくく、ユーザが感じる違和感が軽減される。このように、実施形態2のゲーム装置10においては、優先順位の高いキャラクタ54について切替処理が行われる構成になっている。
【0121】
実施形態2におけるゲーム装置10のハードウェア構成図及び機能ブロック図は、それぞれ図1及び図4と同様であるので説明を省略する。ただし、実施形態2においては、形状変化部4は含まれていてもよいし含まれなくてもよい。ここでは、ゲーム装置10に形状変化部4が含まれない場合を説明する。
【0122】
[2−1.実施形態2において実現される機能]
実施形態2のオブジェクト配置部2は、キャラクタオブジェクトとして、所与の詳細度の第1オブジェクト(例えば、ハイモデルキャラクタ54a)又は第1オブジェクトよりも詳細度の低い第2オブジェクト(例えば、ローモデルキャラクタ54b)を仮想3次元空間(例えば、ゲーム空間50)に配置する。
【0123】
ハイモデルキャラクタ54aとローモデルキャラクタ54bとの配置方法は、実施形態1と同様であり、例えば、ゲーム状況データに格納されたキャラクタ54の現在の状態とモーションデータとに基づいて、キャラクタ54として、ハイモデルキャラクタ54a又はハイモデルキャラクタ54aよりも詳細度の低いローモデルキャラクタ54bがゲーム空間50に配置される。
【0124】
実施形態2のオブジェクト切替部3は、視点(例えば、仮想カメラ56)とキャラクタとの距離rが第1基準距離r1(例えば、r1<r0)未満になった場合、第2オブジェクト(例えば、ローモデルキャラクタ54b)を第1オブジェクト(例えば、ハイモデルキャラクタ54a)に切り替える切替処理を行い、視点とキャラクタとの距離が第1基準距離よりも大きい第2基準距離r2(例えば、r0≦r2)以上になった場合、第1オブジェクトを第2オブジェクトに切り替える切替処理を行う。
【0125】
図13は、実施形態2のオブジェクト切替部3の処理内容を説明するための図である。図13に示すように、距離rが第1基準距離r1未満である場合、ハイモデルキャラクタ54aがゲーム空間50に配置される。一方、距離rが第2基準距離r2以上である場合、ローモデルキャラクタ54bがゲーム空間50に配置される。
【0126】
実施形態2においては、実施形態1とは異なり、距離rが所定範囲(r1≦r<r2)である場合、ハイモデルキャラクタ54a又はローモデルキャラクタ54bの何れかが配置されることになる。即ち、距離rが所定範囲であるキャラクタ54は、ハイモデルキャラクタ54aで描画される場合もあれば、ローモデルキャラクタ54bで描画される場合もある。
【0127】
オブジェクト切替部3は、視点(例えば、仮想カメラ56)とキャラクタとの距離が第1基準距離r1以上第2基準距離r2未満である場合、オブジェクト(例えば、キャラクタ54)の位置又は姿勢が、位置又は姿勢に関する所与の条件を満たすか否かを判定し、当該判定結果に基づいて、第1オブジェクト(例えば、ハイモデルキャラクタ54a)と第2オブジェクト(例えば、ローモデルキャラクタ54b)との切替処理を行う。例えば、キャラクタ54の現在の位置又は姿勢と、所与の条件が示す位置又は姿勢と、が比較される。
【0128】
切替処理は、キャラクタ54をハイモデルキャラクタ54aからローモデルキャラクタ54bに切り替える処理、又は、キャラクタ54をローモデルキャラクタ54bからハイモデルキャラクタ54aに切り替える処理の何れかである。本実施形態においては、前者の処理が実行される場合を説明する。
【0129】
本実施形態においては、オブジェクト切替部3は、対象期間におけるキャラクタ(例えば、キャラクタ54)の位置変化(移動量又は移動速度)が基準量以上であるか否かを判定し、対象期間におけるキャラクタの位置変化が基準量以上である場合、第1オブジェクト(例えば、ハイモデルキャラクタ54a)と第2オブジェクト(例えば、ローモデルキャラクタ54b)との切替処理を行う、場合を説明する。
【0130】
キャラクタ54の位置変化は、ゲーム状況データに格納されたキャラクタ54の位置に基づいて取得される。基準量は、予め定められた位置変化量であればよい。オブジェクト切替部3は、位置変化量が大きいキャラクタ54を優先的に、ハイモデルキャラクタ54aとローモデルキャラクタ54bとの切替処理を行う。
【0131】
[2−2.実施形態2において実行される処理]
次に、ゲーム装置10が実行する処理について説明する。図14及び図15は、ゲーム装置10が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。制御部14は、例えば、光ディスク34に記憶されるプログラムに従って、所定時間毎(例えば、1/60秒毎)に図14及び図15に示す処理を実行する。
【0132】
図14に示すように、制御部14は、ゲーム状況データを参照し、仮想カメラ56とキャラクタ54との距離rを算出する(S20)。制御部14は、S20で算出された距離rが所定範囲であるか否かを判定する(S21)。
【0133】
距離rが第1基準距離r1未満であると判定された場合(S21;r<r1)、制御部14は、キャラクタ54として、ハイモデルキャラクタ54aを配置してハイモデルモーションデータに基づいてスケルトンの状態を制御する(S22)。S22においては、キャラクタ54がローモデルキャラクタ54bで描画されていた場合には、ローモデルキャラクタ54bからハイモデルキャラクタ54aへの切替処理が実行される。ハイモデルモーションデータに基づいてハイモデルキャラクタ54aの状態変化を行う方法は、実施形態1と同様である。
【0134】
距離rが第2基準距離r2以上であると判定された場合(S21;r≧r2)、制御部14は、キャラクタ54として、ローモデルキャラクタ54bを配置してローモデルモーションデータに基づいてスケルトンの状態を制御する(S23)。S23においては、キャラクタ54がハイモデルキャラクタ54aで描画されていた場合には、ハイモデルキャラクタ54aからローモデルキャラクタ54bへの切替処理が実行される。ローモデルモーションデータに基づいてローモデルキャラクタ54bのスケルトンの状態変化を行う方法は、実施形態1と同様である。
【0135】
距離rが第1基準距離r1以上第2基準距離r2未満であると判定された場合(S21;r1≦r<r2)、制御部14は、キャラクタ54がハイモデルキャラクタ54aとして描画されているか否かを判定する(S24)。S24における処理は、実施形態1のS3と同様である。
【0136】
ハイモデルキャラクタ54aが配置されていると判定された場合(S24;Y)、制御部14は、ゲーム状況データを参照して、キャラクタ54の位置又は姿勢が、位置又は姿勢に関する所与の条件を満たすか否かを判定する(S25)。例えば、ゲーム状況データに格納されたキャラクタ54の位置に基づいて、キャラクタ54の位置変化が取得される。この取得された位置変化と予め定められた基準量とが比較されることによって、S25の判定が行われる。
【0137】
キャラクタ54の位置又は姿勢が、位置又は姿勢に関する所定の条件を満たすと判定された場合(S25;Y)、制御部14は、ハイモデルキャラクタ54aからローモデルキャラクタ54bへの切替処理を実行する(S26)。制御部14は、ローモデルモーションデータに基づいて、ローモデルキャラクタ54bのスケルトンの状態を制御する(S27)。
【0138】
キャラクタ54の位置又は姿勢が、位置又は姿勢に関する所定の条件を満たさないと判定された場合(S25;N)、制御部14は、切替処理の実行を制限し、ハイモデルキャラクタ54aのスケルトンの状態をハイモデルモーションデータに基づいて制御する(S28)。
【0139】
制御部14は、決定されたキャラクタ54の状態に基づいてゲーム状況データを更新する(S29)。制御部14は、仮想カメラ56の視野内の全てのキャラクタ54の形状を決定したか否かを判定する(S30)。
【0140】
仮想カメラ56の視野内の全てのキャラクタ54の状態を決定したと判定されない場合(S30;N)、処理はS20に戻り、次のキャラクタ54の状態が決定される。仮想カメラ56の視野内の全てのキャラクタ54の形状を決定したと判定された場合(S30;Y)、制御部14は、ゲーム状況データに基づいて画面を表示させる(S31)。
【0141】
以上説明したゲーム装置10によれば、切替処理を行っても当該切り替えが目立たないキャラクタ54について、優先的に、ハイモデルキャラクタ54aからローモデルキャラクタ54bに切り替えることができる。したがって、切替処理によるキャラクタ54の切り替えを目立ちにくくすることができ、ユーザが感じる違和感を軽減することができる。
【0142】
[2−3.実施形態2の変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【0143】
(1)例えば、切り替えが目立ちにくい所定の姿勢(例えば、キャラクタ54が屈んでいる姿勢等)をキャラクタ54がとっている場合に切替処理を実行することによって、ハイモデルキャラクタ54aとローモデルキャラクタ54bとの切り替えを目立ちにくくするようにしてもよい。
【0144】
本変形例のオブジェクト切替部3は、キャラクタ54の姿勢が所与の姿勢であるか否かを判定し、キャラクタ54の姿勢が所与の姿勢である場合、第1オブジェクト(例えば、ハイモデルキャラクタ54a)と第2オブジェクト(例えば、ローモデルキャラクタ54b)との切替処理を行う。
【0145】
本変形例においては、図14及び図15と同様の処理が実行されるが、S25における処理内容が実施形態2とは異なる。本変形例のS25においては、ゲーム状況データに格納されたキャラクタ54のスケルトンの位置関係が、所定の位置関係であるか否かが判定される。即ち、キャラクタ54の所定のスケルトン(例えば、腰部分のスケルトン)と各部のスケルトンとの位置関係が、所定の位置関係であるかが判定されることによって、キャラクタ54の姿勢が所与の姿勢であるか否かが判定される。
【0146】
S25においてキャラクタ54の姿勢が所与の姿勢であると判定された場合、処理はS26に移行する。この場合、キャラクタ54の切替処理を実行しても切り替えが目立たない姿勢であるので、S26の処理が実行される。S25においてキャラクタ54の姿勢が所与の姿勢であると判定されない場合、処理はS28に移行する。この場合、キャラクタ54の切替処理を実行してしまうと切り替えが目立つ姿勢であるので、切替処理の実行が制限される。
【0147】
(2)また例えば、ユーザが見ている可能性が低いと考えられるキャラクタ54について、優先的に切替処理を実行するようにしてもよい。例えば、仮想3次元空間(例えば、ゲーム空間50)に移動物体(ボールやパック、車両等)を示すオブジェクトが配置される場合、ユーザは、移動物体を注視していると考えられる。即ち、画面上において移動物体から離れて表示されているキャラクタ54は、ユーザが注視している可能性が低い。そこで、移動物体から離れているキャラクタ54について、優先的に切替処理を実行することによって、切り替えを目立たなくさせるようにしてもよい。
【0148】
図16は、移動物体が配置されたゲーム空間50を示す図である。図16に示すように、例えば、ゲーム空間50にはボールを示すオブジェクトであるボール57が配置される。この場合、例えば、ユーザがキャラクタ54を操作してボール57を移動させるサッカーゲームが実行される。ボール57の位置や移動方向、移動速度を示す情報は、例えば、ゲーム状況データに格納される。
【0149】
このようなゲームにおいては、ユーザは、ボール57に注目してゲームをプレイしていると考えられる。そこで、例えば、画面上においてボール57との距離が所定距離以上であるキャラクタ54について、優先的に切替処理を実行する。
【0150】
例えば、ゲーム空間50が図16に示す状況の場合、6体のキャラクタ54−1〜54−6について、距離rが第1基準距離r1以上第2基準距離r2未満であるとする。この場合、例えば、キャラクタ54−1〜54−4は、ボール57の近くに表示される。また例えば、キャラクタ54−5〜54−6は、ボール57から遠くに表示される。そこで、この場合、キャラクタ54−5〜54−6の2体について、切替処理を実行する。
【0151】
本変形例のオブジェクト切替部3は、キャラクタ54と移動物体との位置関係が所与の位置関係であるか否かを判定し、キャラクタ54と移動物体(例えば、ボール57)との位置関係が所与の位置関係である場合、第1オブジェクト(例えば、ハイモデルキャラクタ54a)と第2オブジェクト(例えば、ローモデルキャラクタ54b)との切替処理を行う。
【0152】
本変形例においては、図14及び図15と同様の処理が実行されるが、S25における処理内容が実施形態2とは異なる。本変形例のS25においては、ゲーム状況データに格納されたキャラクタ54の位置と、ボール57の位置と、の位置関係が所与の関係であるか否かが判定される。即ち、キャラクタ54の表示位置とボール57の表示位置との距離が所定範囲(例えば、基準距離以内)であるか否かが判定されることによって、キャラクタ54とボール57との位置関係が所与の位置関係であるか否かが判定される。
【0153】
S25においてキャラクタ54とボール57との位置関係が所与の位置関係であると判定された場合、処理はS26に移行する。この場合、キャラクタ54の切替処理を実行しても切り替えが目立たない位置にキャラクタ54がいるので、S26の処理が実行される。S25においてキャラクタ54とボール57との位置関係が所与の位置関係であると判定されない場合、処理はS28に移行する。この場合、キャラクタ54の切替処理を実行してしまうと切り替えが目立つ位置にキャラクタ54がいるので、切替処理の実行が制限される。
【0154】
(3)また例えば、キャラクタ54と仮想カメラ56との位置関係に基づいて、ユーザが見ている可能性が低いキャラクタが判定されるようにしてもよい。例えば、ユーザは、仮想カメラ56の注視点付近(つまり、画面の中央付近)を見ていると考えられるので、仮想カメラ56の注視点から離れているキャラクタ54について、優先的に切替処理を実行するようにしてもよい。
【0155】
本変形例のオブジェクト切替部3は、視点(例えば、仮想カメラ56)とキャラクタ54との位置関係が所与の位置関係であるか否かを判定し、視点とキャラクタ54との位置関係が所与の位置関係である場合、第1オブジェクト(例えば、ハイモデルキャラクタ54a)と第2オブジェクト(例えば、ローモデルキャラクタ54b)との切替処理を行う。
【0156】
本変形例においては、図14及び図15と同様の処理が実行されるが、S25における処理内容が実施形態2とは異なる。本変形例のS25においては、ゲーム状況データに格納されたキャラクタ54の位置と、仮想カメラ56の注視点と、の位置関係が所与の関係であるか否かが判定される。
【0157】
例えば、キャラクタ54の位置と仮想カメラ56の注視点との距離が所定範囲(例えば、基準距離以内)であるか否かが判定されることによって、キャラクタ54と仮想カメラ56との位置関係が所与の位置関係であるか否かが判定される。また例えば、キャラクタ54の表示位置と画面の中心点との距離が所定範囲であるか否かが判定されることによって、キャラクタ54と仮想カメラ56との位置関係が所与の位置関係であるか否かが判定されるようにしてもよい。
【0158】
S25においてキャラクタ54と仮想カメラ56との位置関係が所与の位置関係であると判定された場合、処理はS26に移行する。この場合、キャラクタ54の切替処理を実行しても切り替えが目立たない位置にキャラクタ54がいるので、S26の処理が実行される。S25においてキャラクタ54と仮想カメラ56との位置関係が所与の姿勢であると判定されない場合、処理はS28に移行する。この場合、キャラクタ54の切替処理を実行してしまうと切り替えが目立つ位置にキャラクタ54がいるので、切替処理の実行が制限される。
【0159】
例えば、ゲーム空間50が図16に示す状況の場合、キャラクタ54−1〜54−4は、画面の中央に表示されるので、切替処理が実行されない。一方、キャラクタ54−5〜54−6は、画面の端部付近に表示されるので、切替処理が実行される。ユーザは、画面の端部付近を見ている可能性は低いので、キャラクタ54−5〜54−6について、優先的に切替処理が行われることによって、ユーザの違和感を軽減させることができる。
【0160】
なお、上記においては、画面の端部付近に表示されるキャラクタ54について、優先的に切替処理が実行される場合を説明したが、他にも例えば、仮想カメラ56の視野から外れたキャラクタ54について、優先的に切替処理が実行されるようにしてもよい。
【0161】
(4)また例えば、キャラクタ54の位置によってキャラクタ54の輝度が異なるような場合、キャラクタ54の位置に応じて切替処理を行うか否かが判定されるようにしてもよい。例えば、キャラクタ54が暗く表される位置にいた場合には、ユーザがキャラクタ54を視認しにくいので、切替処理を行っても切り替えが目立たなくなる。そこで、例えば、暗く表される位置にいるキャラクタ54について、優先的に切替処理が実行されるようにしてもよい。
【0162】
図17は、ゲーム空間50の位置によってキャラクタ54の輝度が異なる様子を説明するための図である。図17に示すように、例えば、ゲーム空間50には、光源58と、遮蔽物を示すオブジェクトである遮蔽物59が配置される。例えば、光源58と遮蔽物59との位置関係に基づいて、キャラクタ54の輝度が下がる領域52aが決定される。この領域52aにキャラクタ54がいる場合、キャラクタ54の輝度が下がるため、キャラクタ54が視認しづらくなる。そこで、このキャラクタ54について、優先的に切替処理が実行される。例えば、図17に示す場合、キャラクタ54−7について切替処理が実行されるが、キャラクタ54−8については切替処理が実行されない。
【0163】
本変形例のオブジェクト切替部3は、キャラクタ54の位置が所定領域内であるか否かを判定し、キャラクタ54の位置が所定領域内である場合、第1オブジェクト(例えば、ハイモデルキャラクタ54a)と第2オブジェクト(例えば、ローモデルキャラクタ54b)との切替処理を行う。
【0164】
本変形例においては、図14及び図15と同様の処理が実行されるが、S25における処理内容が実施形態2とは異なる。本変形例のS25においては、ゲーム状況データに格納されたキャラクタ54の位置が所定領域内であるか否かが判定される。
【0165】
S25においてキャラクタ54の位置が所定領域内であると判定された場合、処理はS26に移行する。この場合、キャラクタ54の切替処理を実行しても切り替えが目立たない位置にキャラクタ54がいるので、S26の処理が実行される。S25においてキャラクタ54の位置が所定領域内であると判定されない場合、処理はS28に移行する。この場合、キャラクタ54の切替処理を実行してしまうと切り替えが目立つ位置にキャラクタ54がいるので、切替処理の実行が制限される。
【0166】
(5)また例えば、実施形態2及び上記実施形態においては、ハイモデルキャラクタ54aからローモデルキャラクタ54bに切り替える場合を説明したが、ローモデルキャラクタ54bからハイモデルキャラクタ54aに切り替える処理が実行されるようにしてもよい。
【0167】
この場合、S24において、キャラクタ54がハイモデルキャラクタ54aとして描画されていると判定された場合、処理はS27に移行する。また、S24において、キャラクタ54がローモデルキャラクタ54bとして描画されていると判定された場合、処理はS25に移行する。そして、S27の処理とS28の処理とが入れ替わる。即ち、S26で切替処理が実行されると、ローモデルキャラクタ54bからハイモデルキャラクタ54aへと切り替わる。S27においては、ハイモデルキャラクタ54aの状態が制御される。S28においては、ローモデルキャラクタ54bの状態が制御される。
【0168】
(6)また例えば、実施形態1と実施形態2とを組み合わせるようにしてもよい。即ち、実施形態2においては、ゲーム装置10に形状変化部4が含まれない場合を説明したが、ゲーム装置10に、形状変化部4が含まれていてもよい。この場合、例えば、距離rが第1基準距離r1以上第2基準距離r2未満であり、ハイモデルキャラクタ54aが配置されていた場合、距離rが第2基準距離r2に近づくにつれて、ハイモデルキャラクタ54aの状態が状態に近づくように、ハイモデルキャラクタ54aの状態が制御される。
【0169】
[3.その他変形例]
なお、本発明は、以上に説明した実施形態1及び実施形態2に限定されるものではない。
【0170】
例えば、本発明は、実施形態や変形例において説明したゲーム以外にも適用することができる。本発明は、仮想3次元空間を所与の視点から見た画像を表示させる技術に適用することができる。例えば、仮想3次元空間に配置されるオブジェクトはキャラクタを示すものに限られず、他にも例えば、風に揺れる樹木を表すアニメーション処理に、本発明を適用してもよい。
【符号の説明】
【0171】
1 ゲームデータ記憶部、2 オブジェクト配置部、3 オブジェクト切替部、4 形状変化部、10 ゲーム装置、11 携帯ゲーム機、12 バス、14 制御部、16 記憶部、18 主記憶、20 画像処理部、22 表示部、24 タッチパネル、26 入出力処理部、28 メモリカードスロット、30 メモリカード、32 光ディスク再生部、34 光ディスク、36 操作キー部、38 音声処理部、40 音声出力部、42 音声入力部、50 ゲーム空間、52 フィールド、54 キャラクタ、54a ハイモデルキャラクタ、54b ローモデルキャラクタ、56 仮想カメラ、57 ボール、58 光源、59 遮蔽物、r 距離。
【技術分野】
【0001】
本発明は、画像処理装置、画像処理装置の制御方法、及びプログラムに関する。
【背景技術】
【0002】
従来、オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示させる画像処理装置が知られている。このような画像処理装置においては、視野内のオブジェクトの数が多くなるほどオブジェクトの表示制御処理が複雑になり、画像処理装置の処理負荷が増大する。
【0003】
特許文献1には、視点とオブジェクトとの距離に応じて詳細度の異なるオブジェクトを使い分けることによって、画像処理装置の処理負荷を軽減させるLOD(Level Of Detail)技術が記載されている。例えば、視点とオブジェクトとの距離が近い場合には、オブジェクトが画面に大きく映し出されるので、詳細度の高い緻密なオブジェクトを用いて細かい描写を実現する。一方、視点とオブジェクトとの距離が遠い場合には、オブジェクトが画面に小さく映し出されるため細かい描写を行う必要がなく、詳細度の低い簡易なオブジェクトを用いることによって処理負荷が軽減される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−264359号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のLOD技術においては、オブジェクトを切り替える際に、画面に表示されるオブジェクトの見た目が急に変ってしまうため、ユーザが違和感を感じる場合があった。
【0006】
図18は、従来のLOD技術について説明するための図である。図18に示すように、視点とオブジェクトとの距離rが基準距離r0未満の場合には、詳細度の高いオブジェクトOB1が配置される。距離rが基準距離以上になった場合、オブジェクトOB1が詳細度の低いオブジェクトOB2に切り替わる。オブジェクトOB2はオブジェクトOB1に比べて粗い作りであるため、オブジェクトOB1からオブジェクトOB2に切り替わると見た目(例えば、シルエット等)が急に変ってしまい、ユーザが違和感を感じてしまう。
【0007】
本発明は上記課題に鑑みてなされたものであって、その目的は、LOD技術のオブジェクト切り替えにおいて、ユーザに違和感を与えない画像処理装置、画像処理装置の制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明に係る画像処理装置は、オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示手段に表示させる画像処理装置であって、前記視点と前記オブジェクトとの距離が基準距離未満である場合、前記オブジェクトとして、形状変化が可能な第1オブジェクトを前記仮想3次元空間に配置するオブジェクト配置手段と、前記視点と前記オブジェクトとの距離が前記基準距離以上になった場合、前記第1オブジェクトから、所定形状の第2オブジェクトに切り替えるオブジェクト切替手段と、前記視点と前記オブジェクトとの距離が前記基準距離未満である場合、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトの形状が前記第2オブジェクトの形状に近づくように、前記第1オブジェクトの形状を、前記視点と前記オブジェクトとの距離に基づいて変化させる形状変化手段と、を含むことを特徴とする。
【0009】
また、本発明に係る画像処理装置の制御方法は、オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示手段に表示させる画像処理装置の制御方法であって、前記視点と前記オブジェクトとの距離が基準距離未満である場合、前記オブジェクトとして、形状変化が可能な第1オブジェクトを前記仮想3次元空間に配置するオブジェクト配置ステップと、前記視点と前記オブジェクトとの距離が前記基準距離以上になった場合、前記第1オブジェクトから、所定形状の第2オブジェクトに切り替えるオブジェクト切替ステップと、前記視点と前記オブジェクトとの距離が前記基準距離未満である場合、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトの形状が前記第2オブジェクトの形状に近づくように、前記第1オブジェクトの形状を、前記視点と前記オブジェクトとの距離に基づいて変化させる形状変化ステップと、を含むことを特徴とする。
【0010】
また、本発明に係るプログラムは、オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示手段に表示させる画像処理装置としてコンピュータを機能させるためのプログラムであって、前記視点と前記オブジェクトとの距離が基準距離未満である場合、前記オブジェクトとして、形状変化が可能な第1オブジェクトを前記仮想3次元空間に配置するオブジェクト配置手段、前記視点と前記オブジェクトとの距離が前記基準距離以上になった場合、前記第1オブジェクトから、所定形状の第2オブジェクトに切り替えるオブジェクト切替手段、前記視点と前記オブジェクトとの距離が前記基準距離未満である場合、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトの形状が前記第2オブジェクトの形状に近づくように、前記第1オブジェクトの形状を、前記視点と前記オブジェクトとの距離に基づいて変化させる形状変化手段、を含むことを特徴とする。
【0011】
また、本発明に係る画像処理装置は、オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示手段に表示させる画像処理装置であって、前記オブジェクトとして、第1オブジェクト又は前記第1オブジェクトよりも詳細度が低い第2オブジェクトを前記仮想3次元空間に配置するオブジェクト配置手段と、前記視点と前記オブジェクトとの距離が第1基準距離未満になった場合、前記第2オブジェクトを前記第1オブジェクトに切り替える切替処理を行い、前記視点と前記オブジェクトとの距離が前記第1基準距離よりも大きい第2基準距離以上になった場合、前記第1オブジェクトを前記第2オブジェクトに切り替える切替処理を行うオブジェクト切替手段と、を含み、前記オブジェクト切替手段は、前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトの位置又は姿勢が、位置又は姿勢に関する所与の条件を満たすか否かを判定し、当該判定結果に基づいて、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、ことを特徴とする。
【0012】
また、本発明に係る情報記憶媒体は、上記プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。
【0013】
本発明によれば、LOD技術のオブジェクト切り替えにおいて、ユーザに違和感を与えないようにすることができる。
【0014】
また、本発明の一態様では、前記第1オブジェクトの形状は、前記第1オブジェクトに設定されるスケルトンの状態変化に基づいて変化し、前記形状変化手段は、前記第2オブジェクトの形状に対応する前記第1オブジェクトのスケルトンの状態を示す状態データを記憶する手段から前記状態データを取得する手段を含み、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトのスケルトンの状態が前記状態データが示す状態に近づくように、前記第1オブジェクトのスケルトンの状態を、前記視点と前記オブジェクトとの距離及び前記状態データに基づいて変化させる、ことを特徴とする。
【0015】
また、本発明の一態様では、前記形状変化手段は、前記視点と前記オブジェクトとの距離と、前記第1オブジェクトの形状変化の程度を示す変化情報と、を対応付けてなる変化情報データを記憶する手段から前記変化情報データを記憶する手段を含み、前記視点と前記オブジェクトとの距離に対応する前記変化情報に基づいて、前記第1オブジェクトの形状を変化させる、ことを特徴とする。
【0016】
また、本発明の一態様では、前記オブジェクト切替手段は、前記視点と前記オブジェクトとの距離が第1基準距離未満になった場合、前記第2オブジェクトを前記第1オブジェクトに切り替える切替処理を行う手段と、前記視点と前記オブジェクトとの距離が前記第1基準距離よりも大きい第2基準距離以上になった場合、前記第1オブジェクトを前記第2オブジェクトに切り替える切替処理を行う手段と、前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトの位置又は姿勢が、位置又は姿勢に関する所与の条件を満たすか否かを判定し、当該判定結果に基づいて前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う手段と、を含むことを特徴とする。
【0017】
また、本発明の一態様では、前記オブジェクト切替手段は、前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、対象期間における前記オブジェクトの位置変化が基準量以上であるか否かを判定し、前記対象期間における前記オブジェクトの位置変化が前記基準量以上である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、ことを特徴とする。
【0018】
また、本発明の一態様では、前記オブジェクト切替手段は、前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトの姿勢が所与の姿勢であるか否かを判定し、前記オブジェクトの姿勢が所与の姿勢である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、ことを特徴とする。
【0019】
また、本発明の一態様では、前記仮想3次元空間には移動物体を示すオブジェクトが配置され、前記オブジェクト切替手段は、前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトと前記移動物体との位置関係が所与の位置関係であるか否かを判定し、前記オブジェクトと前記移動物体との位置関係が所与の位置関係である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、ことを特徴とする。
【0020】
また、本発明の一態様では、前記オブジェクト切替手段は、前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記視点と前記オブジェクトとの位置関係が所与の位置関係であるか否かを判定し、前記視点と前記オブジェクトとの位置関係が所与の位置関係である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、ことを特徴とする。
【0021】
また、本発明の一態様では、前記オブジェクト切替手段は、前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトの位置が所定領域内であるか否かを判定し、前記オブジェクトの位置が所定領域内である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、ことを特徴とする。
【図面の簡単な説明】
【0022】
【図1】本実施形態に係るゲーム装置のハードウェア構成を示す図である。
【図2】ゲーム空間の一例を示す図である。
【図3】詳細度が異なるキャラクタを説明するための図である。
【図4】ゲーム装置で実現される機能を示す機能ブロック図である。
【図5】ハイモデルキャラクタのスケルトンの状態変化を説明するための図である。
【図6】ローモデルキャラクタのスケルトンの状態変化を説明するための図である。
【図7】状態データを説明するための図である。
【図8】変化情報データのデータ格納例を示す図である。
【図9】形状変化部により行われる処理を説明するための図である。
【図10】ゲーム装置が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。
【図11】ゲーム装置が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。
【図12】ハイモデルキャラクタのスケルトンの状態が変更される様子を示す図である。
【図13】実施形態2のオブジェクト切替部の処理内容を説明するための図である。
【図14】ゲーム装置が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。
【図15】ゲーム装置が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。
【図16】移動物体が配置されたゲーム空間を示す図である。
【図17】ゲーム空間の位置によってキャラクタの輝度が異なる様子を説明するための図である。
【図18】従来のLOD技術について説明するための図である。
【発明を実施するための形態】
【0023】
[1.実施形態1]
以下、本発明に係る実施形態について図面に基づき詳細に説明する。本発明に係る画像処理装置は、例えば、家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末(PDA)、又はパーソナルコンピュータを用いて実現される。ここでは、本発明の実施形態に係る画像処理装置を、携帯ゲーム機を用いて実現する場合について説明する。
【0024】
[1−1.ゲーム装置のハードウェア構成]
図1は、本実施形態に係るゲーム装置10のハードウェア構成を示す図である。図1に示すように、ゲーム装置10は、携帯ゲーム機11を含んでなる。携帯ゲーム機11は、制御部14、記憶部16、主記憶18、画像処理部20、表示部22、タッチパネル24、入出力処理部26、メモリカードスロット28、光ディスク再生部32、操作キー部36、音声処理部38、音声出力部40、音声入力部42、通信I/F(インタフェース)44等を含む。
【0025】
制御部14は、記憶部16に記憶されるオペレーティングシステムや、メモリカード30、光ディスク34に格納されるプログラムや各種データに基づいてゲーム装置10の各部を制御する。
【0026】
記憶部16は、フラッシュメモリ等の不揮発性記憶媒体を含んで構成される。記憶部16には、オペレーティングシステム等が記憶される。
【0027】
主記憶18は、例えば、RAMを含んで構成される。記憶部16に記憶されたプログラム、メモリカードスロット28を介してメモリカード30から読み出されたプログラム、又は、光ディスク再生部32を介して光ディスク34から読み出されたプログラムは、必要に応じて主記憶18に書き込まれる。主記憶18は、制御部14の作業用メモリとしても用いられる。
【0028】
バス12は、アドレス及び各種データをゲーム装置10の各部でやり取りするために用いられる。制御部14、記憶部16、主記憶18、画像処理部20及び入出力処理部26は、バス12によって相互データ通信可能に接続される。
【0029】
画像処理部20は、VRAMを含む。画像処理部20は、制御部14からの指示に従って画像をVRAM上に描画する。VRAM上に描画された画像は、所定のタイミングで表示部22に表示される。表示部22は、例えば、一又は複数の公知の液晶表示パネルである。例えば、表示部22に重畳するようにして、タッチパネル24が設けられる。
【0030】
入出力処理部26は、制御部14が、タッチパネル24、メモリカードスロット28、光ディスク再生部32、操作キー部36、音声処理部38、通信I/F44と、各種データを授受するためのインタフェースである。
【0031】
メモリカードスロット28は、メモリカード30に記憶されたゲームプログラムやゲームデータを制御部14からの指示に従って読み出す。メモリカード30は、例えば、セーブデータ等のゲームデータが記憶される不揮発性記憶媒体を含む。
【0032】
光ディスク再生部32は、光ディスク34に記録されたプログラムやデータを読み取る。本実施形態においては、光ディスク34に記憶されたプログラムやデータが用いられてゲームが実行される場合を説明するが、例えば、メモリカード30等の他のあらゆる情報記憶媒体を用いるようにしてもよい。また、インターネット等のデータ通信網を介して、遠隔地からプログラムやデータをゲーム装置10に供給するようにしてもよい。
【0033】
操作キー部36は、ユーザが各種操作を行うための入力手段として機能する。操作キー部36は、十字ボタン、スライドパッド、各種ボタン等を含む。入出力処理部26は、一定周期毎(例えば、1/60秒毎)に、操作キー部36の各部の状態をスキャンする。このスキャン結果を表す操作信号は、バス12を介して制御部14に供給される。制御部14は、ユーザの操作内容を、操作信号に基づいて判断する。
【0034】
音声処理部38は、サウンドバッファを含む。音声処理部38は、サウンドバッファに格納された楽曲の出力用データや音声データに基づいて、楽曲や音声を音声出力部40から出力する。
【0035】
音声入力部42は、マイク等を含む。音声入力部42は、プレイヤの音声等を検出し、検出信号を入出力処理部26を介して制御部14に入力する。通信I/F44は、ゲーム装置10を通信ネットワークに接続するためのインタフェースである。
【0036】
なお、ゲーム装置10の構成は、上記の例に限られない。ゲーム装置10は、他の構成を含んでいてもよい。他にも例えば、ジャイロセンサやモーションセンサ、CCDカメラ等が、ゲーム装置10に含まれていてもよい。
【0037】
[1−2.ゲーム装置において実行されるゲーム]
次に、ゲーム装置10において実行されるゲームについて説明する。ゲーム装置10が実行するゲームにおいては、キャラクタを示すオブジェクトが配置されたゲーム空間(仮想3次元空間)を所与の視点から見た様子を示す画像が表示部22に表示される。ゲームが開始されると、主記憶18にゲーム空間が構築される。
【0038】
図2は、ゲーム空間の一例を示す図である。図2に示すように、ゲーム空間50には、地面を示すオブジェクトであるフィールド52、キャラクタを示すオブジェクトであるキャラクタ54が配置される。キャラクタ54は、フィールド52上に複数体配置される。
【0039】
キャラクタ54は、例えば、ゲームプログラムが実行する処理に基づいて、フィールド52上を移動したり、姿勢が変化したりする。なお、図2においては、キャラクタ54の形状を簡略化して表現している。キャラクタ54の位置は、ゲーム空間50に設定される3次元座標(ワールド空間座標)によって定まる。
【0040】
また、ゲーム空間50には、仮想カメラ56(視点)が設定される。表示部22には、仮想カメラ56からゲーム空間50を見た様子を示す画像が表示される。例えば、ゲーム空間50に配置されるオブジェクトのうち、仮想カメラ56の視野内のオブジェクトが表示部22に表示される。例えば、仮想カメラ56の視錘台内のオブジェクトに、公知の座標変換処理が施されることによって、表示部22に画像が表示される。
【0041】
本実施形態においては、キャラクタ54と仮想カメラ56との距離に応じて、ゲーム空間50に配置されるキャラクタ54の詳細度(LODレベル)が異なる構成になっている。詳細度とは、キャラクタ54をどの程度詳細に描画するかを示す指標である。例えば、キャラクタ54の詳細度が高くなるほど、キャラクタ54に設定されるスケルトンの数が増加する。
【0042】
スケルトンは、キャラクタ54の形状(例えば、姿勢や表情等)が変化する様子を表現するためのものである。スケルトンは、関節部分に相当するジョイントと、ジョイント間を接続するボーンと、を含んで構成される。キャラクタ54に設定されるジョイントやボーンには、キャラクタ54を構成するポリゴンの頂点の少なくとも一部が関連づけられる。即ち、詳細度が高くなるほどポリゴンの頂点数も多くなる。
【0043】
図3は、詳細度が異なるキャラクタ54を説明するための図である。図3に示す距離rは、仮想カメラ56とキャラクタ54との距離である。図3に示すように、例えば、キャラクタ54と仮想カメラ56との距離rが比較的近い場合(例えば、距離r<基準距離r0)には、詳細度が高いハイモデルキャラクタ54a(例えば、ポリゴン数:5000、ボーン数:50)がゲーム空間50に配置される。
【0044】
距離rが小さい場合、キャラクタ54が画面に占める割合が大きいので、ハイモデルキャラクタ54aを用いることによってキャラクタ54の細部が詳細に描かれる。また、ハイモデルキャラクタ54aには、比較的多くのスケルトンが設定されるため、複雑な動作を表現することができる。例えば、図3に示すように、ハイモデルキャラクタ54aの指先にはボーンが設定されるため、手を開閉する様子等を表現することができる。
【0045】
また例えば、図3に示すように、キャラクタ54と仮想カメラ56との距離rが比較的遠い場合(例えば、距離r≧基準距離r0)には、詳細度が低いローモデルキャラクタ54b(例えば、ポリゴン数:500、ボーン数:15)がゲーム空間50に配置される。
【0046】
キャラクタ54と仮想カメラ56との距離rが比較的遠い場合、表示部22におけるキャラクタ54の占める割合が小さいので、キャラクタ54の詳細度を下げても表示部22における見た目にはあまり影響がない。また、ローモデルキャラクタ54bに設定されるスケルトンの数は比較的少ないため、あまり複雑な動作を表現することができない。例えば、図3に示すように、ローモデルキャラクタ54bの指先にはスケルトンが設定されないため、手を開閉する様子等を表現することができない。例えば、ローモデルキャラクタ54bの両手は、常に半開きの状態となる。
【0047】
例えば、ハイモデルキャラクタ54aがゲーム空間50に配置されている状態で、仮想カメラ56がキャラクタ54から遠ざかり、距離rが基準距離r0以上になった場合、ハイモデルキャラクタ54aがローモデルキャラクタ54bに切り替わる。先述したように、基準距離r0の前後におけるキャラクタ54の切り替えが目立つため、ユーザが違和感を感じてしまう。
【0048】
本実施形態のゲーム装置10は、キャラクタ54と仮想カメラ56との距離rが基準距離r0に近づくにつれて、ハイモデルキャラクタ54aの手の形状をローモデルキャラクタ54bの手の形状(例えば、半開きの状態)に近づけるように制御することによって、ユーザに違和感を与えないような構成になっている。以下、上記技術について詳細に説明する。
【0049】
[1−3.ゲーム装置において実現される機能]
図4は、ゲーム装置10で実現される機能を示す機能ブロック図である。図4に示すように、ゲーム装置10は、ゲームデータ記憶部1、オブジェクト配置部2、オブジェクト切替部3、形状変化部4を含む。これら各機能は、例えば、制御部14が光ディスク34に記憶されたプログラムを実行することによって実現される。
【0050】
[1−3−1.ゲームデータ記憶部]
ゲームデータ記憶部1は、主記憶18、メモリカード30、及び光ディスク34を主として実現される。ゲームデータ記憶部1は、ゲーム空間50に配置されたオブジェクトを表示させるために必要なデータを記憶する。本実施形態においては、ゲームデータ記憶部1は、下記のデータを記憶する。
(1)モーションデータ
(2)状態データ
(3)変化情報データ
(4)ゲーム状況データ
【0051】
[モーションデータ]
例えば、ゲームデータ記憶部1は、キャラクタ54の形状変化を定義したモーションデータを記憶する。モーションデータには、キャラクタ54が各種動作を行う際のスケルトンの状態変化が定義されている。即ち、モーションデータには、キャラクタ54が各種動作を行う際のジョイントやボーンの状態変化が定義されている。
【0052】
スケルトンを構成するジョイントやボーンの状態(回転角度や位置)が変化した場合、そのジョイントやボーンに関連づけられたポリゴンの頂点が、そのジョイントやボーンの状態変化に基づいて移動する。即ち、キャラクタ54の形状が変化する。こうして、キャラクタ54の状態が変化する様子が、モーションデータによって表現される。
【0053】
本実施形態においては、ハイモデルキャラクタ54aに設定されるスケルトンの状態変化を定義したハイモデルモーションデータと、ローモデルキャラクタ54bに設定されるスケルトンの状態変化を定義したローモデルモーションデータと、が記憶される場合を説明する。本実施形態においては、モーションデータが定義するキャラクタ54の動作として、キャラクタ54が手を開閉する動作を例に挙げて説明する。
【0054】
図5は、ハイモデルキャラクタ54aのスケルトンの状態変化を説明するための図である。ここでは、ハイモデルキャラクタ54aの左手に設定されるスケルトンの状態変化を例に挙げて説明する。図5は、ハイモデルキャラクタ54aが左手を広げている状態を示している。
【0055】
図5に示す例では、複数のポリゴンを含んで構成されるハイモデルキャラクタ54aに対して、左前腕ジョイント60、左前腕ボーン61、左手首ジョイント62が設定される。また、ハイモデルキャラクタ54aの小指の動作を表現するための第1左小指ボーン63、第1左小指ジョイント64、第2左小指ボーン65、第2左小指ジョイント66、第3左小指ボーン67、第3左小指ジョイント68が設定される。また、ハイモデルキャラクタ54aの薬指の動作を表現するための第1左薬指ボーン69、第1左薬指ジョイント70、第2左薬指ボーン71、第2左薬指ジョイント72、第3左薬指ボーン73、第3左薬指ジョイント74が設定される。
【0056】
また、ハイモデルキャラクタ54aの中指の動作を表現するための第1左中指ボーン75、第1左中指ジョイント76、第2左中指ボーン77、第2左中指ジョイント78、第3左中指ボーン79、第3左中指ジョイント80が設定される。また、ハイモデルキャラクタ54aの人差指の動作を表現するための第1左人差指ボーン81、第1左人差指ジョイント82、第2左人差指ボーン83、第2左人差指ジョイント84、第3左人差指ボーン85、第3左人差指ジョイント86が設定される。また、ハイモデルキャラクタ54aの親指の動作を表現するための第1左親指ボーン87、第1左親指ジョイント88、第2左親指ボーン89、第2左親指ジョイント90、第3左親指ボーン91、第3左親指ジョイント92、が設定される。
【0057】
上記の各ボーンは、各ジョイント間を接続している。各ボーン及び各ジョイントには親子関係があり、子のボーン及び子のジョイントは、親のボーン及び親のジョイントに従動する。即ち、子のボーン及び子のジョイントの状態(位置や回転角度)は、親のボーン及び親のジョイントの状態(位置や回転角度)に応じて変化する。
【0058】
また、各ボーン及び各ジョイントには、例えば、ハイモデルキャラクタ54aの左手及び左指のポリゴンの頂点が関連づけられている。それらの頂点の位置は、各ボーン及び各ジョイントの状態(位置や回転角度)に応じて変化する。
【0059】
例えば、ハイモデルキャラクタ54aが手を閉じる様子を表す場合には、所定のボーン及びジョイントが回転する。ここでは、ハイモデルキャラクタ54aが左手を閉じる際の左小指の動きを例に挙げて説明する。
【0060】
例えば、ハイモデルキャラクタ54aが左手を閉じる場合、第1左小指ジョイント64がX軸方向を回転軸としてA方向に回転する。この場合、第2左小指ボーン65及び第2左小指ジョイント66は、第1左小指ジョイント64の回転に応じて、第1左小指ジョイント64を回転の中心としてA方向に移動する。また、第2左小指ジョイント66は、X軸方向を回転軸としてB方向に回転する。第3左小指ボーン67及び第3左小指ジョイント68は、第1小指ジョイント64及び第2左小指ジョイント66の回転及び位置変化に応じて、B方向に移動する。
【0061】
そして、ハイモデルキャラクタ54aの左指のポリゴンの頂点の位置が、第1左小指ジョイント64、第2左小指ボーン65、第2左小指ジョイント66、第3左小指ボーン67、第3左小指ジョイント68の位置変化に応じて変化する。即ち、ハイモデルキャラクタ54aが左手を閉じる様子が表現される。
【0062】
なお、ハイモデルキャラクタ54aが手を開ける様子を表す場合には、第1左小指ジョイント64、第2左小指ボーン65、第2左小指ジョイント66、第3左小指ボーン67、第3左小指ジョイント68を、それぞれ上記とは逆方向に回転及び位置変化させる。
【0063】
また、ハイモデルキャラクタ54aの他の指が開閉する様子も、上記と同様にジョイントが回転することによって行われる。即ち、上記の「小指」を「薬指」、「中指」、「人差指」、又は「親指」に読み替えることによって、ハイモデルキャラクタ54aの手が開閉する様子が行われる。
【0064】
例えば、ハイモデルモーションデータには、上記のように行われるジョイントの回転角度(例えば、X軸方向を回転軸とする回転角度)の所定時間毎(例えば、1/60秒毎)の変化が定義されている。ハイモデルモーションデータが再生されることによって、即ち、ハイモデルモーションデータに従ってジョイントの回転角度が変化することによって、ハイモデルキャラクタ54aが各種動作をする様子(例えば、ハイモデルキャラクタ54aが手を開閉する様子)が表される。
【0065】
ローモデルモーションデータも、上記説明したハイモデルモーションデータと同様のデータが格納される。ただし、図3を参照して説明したように、ローモデルキャラクタ54bとハイモデルキャラクタ54aとは詳細度が異なるので、ローモデルモーションデータにより定義されるスケルトンの状態変化と、ハイモデルモーションデータにより定義されるスケルトンの状態変化と、は異なる。
【0066】
図6は、ローモデルキャラクタ54bのスケルトンの状態変化を説明するための図である。ここでは、ローモデルキャラクタ54bの左手のスケルトンを例に挙げて説明する。ローモデルキャラクタ54bの左手にも、ハイモデルキャラクタ54aと同様にスケルトンが設定される。ただし、図6に示すように、ローモデルキャラクタ54bは、ハイモデルキャラクタ54aよりもスケルトンの数が少ない。
【0067】
図6に示す例では、複数のポリゴンを含んで構成されるローモデルキャラクタ54bに対して、左前腕ジョイント100、左前腕ボーン101、左手首ジョイント102が設定されている。各ボーン及び各ジョイントに親子関係がある点、各ボーン及び各ジョイントにはポリゴンの頂点が関連づけられている点は、ローモデルキャラクタ54bはハイモデルキャラクタ54aと同様であるので説明を省略する。
【0068】
ローモデルキャラクタ54bは、ハイモデルキャラクタ54aに比べてボーン及びジョイントの数が少ないので、左手を開閉する動作を表現することができない。例えば、ローモデルキャラクタ54bには、指の動きを表現するためのスケルトンが設定されない。したがって、ローモデルキャラクタ54bの左手は、図6に示すように、例えば、常に半開きの形状となっている。
【0069】
[状態データ]
また例えば、ゲームデータ記憶部1は、第2オブジェクト(例えば、ローモデルキャラクタ54bの左手)の形状に対応する第1オブジェクト(例えば、ハイモデルキャラクタ54aの左手)のスケルトンの状態を示す状態データを記憶する。
【0070】
ローモデルキャラクタ54bの左手の形状に対応するハイモデルキャラクタ54aのスケルトンの状態とは、ローモデルキャラクタ54bの左手の形状に基づいて定まるハイモデルキャラクタ54aのスケルトンの状態であり、例えば、ローモデルキャラクタ54bの左手の形状とハイモデルキャラクタ54aの左手の形状とが所定の関係を満たすためのハイモデルキャラクタ54aのスケルトンの状態である。別の言い方をすれば、ハイモデルキャラクタ54aとローモデルキャラクタ54bとの形状(例えば、輪郭(シルエット))のずれが、所定範囲となるためのハイモデルキャラクタ54aのスケルトンの状態である。
【0071】
状態データは、ローモデルキャラクタ54bの形状に基づいて作成される。即ち、状態データは、ローモデルモーションデータが示すローモデルキャラクタ54bの状態に基づいて作成される。状態データは、ゲーム制作者等によって予め用意されるデータである。本実施形態においては、状態データが、ハイモデルキャラクタ54aのジョイント及びボーンの位置及び回転角を定義したデータである場合を説明する。
【0072】
図7は、状態データを説明するための図である。図7に示すように、状態データには、例えば、ハイモデルキャラクタ54aの左手が半開きになるためのスケルトンの状態が定義される。即ち、ハイモデルキャラクタ54aの左手が半開きの形状における、各ジョイント及びボーンの位置及び回転角が、状態データに定義される。
【0073】
別の言い方をすれば、状態データには、各ボーン及び各ジョイントの所定の位置関係が格納される。状態データに基づいてハイモデルキャラクタ54aの状態を変化させると、ハイモデルキャラクタ54aとローモデルキャラクタ54bとは、略同じ状態となって画面に表れる。
【0074】
[変化情報データ]
本実施形態においては、視点(例えば、仮想カメラ56)とキャラクタ54との距離rと、第1オブジェクト(例えば、ハイモデルキャラクタ54aの左手)の形状変化の程度を示す変化情報と、を対応付けてなる変化情報データが、ゲームデータ記憶部1に記憶される場合を説明する。
【0075】
図8は、変化情報データのデータ格納例を示す図である。例えば、仮想カメラ56とキャラクタ54との距離rと、形状変化レベル(変化情報)と、が対応付けられて記憶される。形状変化レベルは、例えば、ハイモデルモーションデータに基づいて定まるハイモデルキャラクタ54aの左手の形状を、どの程度ローモデルキャラクタ54bの左手の形状に近づけるかを示す値である。ここでは、形状変化レベルが5段階に分けられている場合を説明する。
【0076】
図8に示す基準変化値とは、ハイモデルモーションデータに基づいて定まるハイモデルキャラクタ54aのスケルトンの状態(位置及び回転角度)と、状態データが示すハイモデルキャラクタ54aのスケルトンの状態(位置及び回転角度)と、のずれを示す値である。即ち、ハイモデルモーションデータに基づいて定まるハイモデルキャラクタ54aのスケルトンの状態を基準変化値に基づいて変更すると、ハイモデルキャラクタ54aは状態になり、ローモデルキャラクタ54bの状態に近づく。
【0077】
なお、変化情報データはテーブル形式のデータであってもよいし、数式形式のデータであってもよい。また、変化情報データはテーブル形式のデータと数式形式のデータとを組み合わせた形式のデータであってもよい。
【0078】
[ゲーム状況データ]
また、ゲームデータ記憶部1は、実行中のゲームの状況を示すゲーム状況データを記憶する。例えば、ゲーム状況データには、ゲーム空間50の現在の様子を示すデータ(例えば、キャラクタ54の現在の形状(即ち、スケルトンの状態。又は、ポリゴンの頂点の位置。)や位置、仮想カメラ56の位置等)等が格納される。ゲーム状況データは、プレイヤのゲーム操作や所定のアルゴリズムに基づいて内容が更新される。例えば、プレイヤがゲーム操作を行うと、ゲーム状況データに格納されたキャラクタ54の位置が変化したり、仮想カメラ56の位置や視線方向が変化する。
【0079】
なお、制御部14は、ゲームデータ記憶部1に記憶される各種データを取得する手段として機能する。また、制御部14は、ゲームデータ記憶部1に記憶される各種データを変更(更新)する手段として機能する。また、ゲームデータ記憶部1に記憶されるデータは、上記の例に限られず、ゲーム装置10がゲームを実行するために必要なデータが記憶されていればよい。
【0080】
[1−3−2.オブジェクト配置部]
オブジェクト配置部2は、制御部14を主として実現される。オブジェクト配置部2は、視点(例えば、仮想カメラ56)とオブジェクト(例えば、キャラクタ54)との距離rが基準距離r0未満である場合、オブジェクトとして、形状変化が可能な第1オブジェクト(例えば、ハイモデルキャラクタ54aの左手)を仮想3次元空間(例えば、ゲーム空間50)に配置する。
【0081】
仮想カメラ56とキャラクタ54との距離rは、ゲーム状況データに格納された仮想カメラ56の位置とキャラクタ54の位置とが参照されることによって取得される。基準距離r0は、ハイモデルキャラクタ54aとローモデルキャラクタ54bとの切り替え(LOD切り替え)を行うか否かの基準となる距離であり、ゲーム制作者等によって予め定められた距離である。
【0082】
オブジェクト配置部2は、ゲーム状況データに格納されたハイモデルキャラクタ54aの現在のスケルトンの状態をモーションデータに基づいて変化させ、ハイモデルキャラクタ54aのポリゴンの頂点位置を特定することによって、ハイモデルキャラクタ54aをゲーム空間50配置する。
【0083】
形状変化が可能なオブジェクトとは、オブジェクトの表面形状の変化が可能なことであり、例えば、オブジェクトの輪郭(シルエット)の変化が可能なことを示す。本実施形態においては、第1オブジェクト(例えば、ハイモデルキャラクタ54aの左手)の形状は、第1オブジェクトに設定されるスケルトンの状態変化に基づいて変化する。即ち、ハイモデルキャラクタ54aの左手にはスケルトンが設定されているため、ハイモデルキャラクタ54aの左手は開閉する動作が可能であり、形状変化が可能となる。
【0084】
[1−3−3.オブジェクト切替部]
オブジェクト切替部3は、制御部14を主として実現される。オブジェクト切替部3は、視点(例えば、仮想カメラ56)とオブジェクト(例えば、キャラクタ54)との距離rが基準距離r0以上になった場合、第1オブジェクト(例えば、ハイモデルキャラクタ54a)から、所定形状の第2オブジェクト(例えば、ローモデルキャラクタ54bの左手)に切り替える。
【0085】
オブジェクト切替部3は、ローモデルキャラクタ54bのスケルトンの状態を定義したローモデルモーションデータを参照し、ゲーム空間50にローモデルキャラクタ54bを配置することによって、ハイモデルキャラクタ54aからローモデルキャラクタ54bに切り替える。
【0086】
所定形状のオブジェクトとは、オブジェクトの形状が変化しないことを示し、例えば、オブジェクトの表面形状が所定の形状となることである。例えば、ローモデルキャラクタ54bの左手のように、スケルトンが設定されず、常に半開きの形状となるものが、所定形状のオブジェクトである。
【0087】
[1−3−4.形状変化部]
形状変化部4は、制御部14を主として実現される。形状変化部4は、視点(例えば、仮想カメラ56)とオブジェクト(例えば、キャラクタ54)との距離rが基準距離r0未満である場合、視点とオブジェクトとの距離rが基準距離r0に近づくほど、第1オブジェクト(例えば、ハイモデルキャラクタ54aの左手)の形状が第2オブジェクト(例えば、ローモデルキャラクタ54bの左手)の形状に近づくように、第1オブジェクトの形状を、視点とオブジェクトとの距離rに基づいて変化させる。例えば、形状変化部4は、ハイモデルキャラクタ54aの左手の現在の形状と、ローモデルキャラクタ54bの左手の形状と、視点とオブジェクトとの距離rと、に基づいてハイモデルキャラクタ54aの左手の形状を変化させる。
【0088】
本実施形態においては、形状変化部4は、第2オブジェクト(例えば、ローモデルキャラクタ54bの左手)の形状に対応する第1オブジェクト(例えば、ハイモデルキャラクタ54aの左手)のスケルトンの状態を示す状態データを記憶する手段から前記状態データを取得する手段を含み、視点(例えば、仮想カメラ56)とオブジェクト(例えば、キャラクタ54)との距離rが基準距離に近づくほど、第1オブジェクトのスケルトンの状態が状態データが示す状態に近づくように、第1オブジェクトのスケルトンの状態を、視点とキャラクタとの距離r及び状態データに基づいて変化させる場合を説明する。
【0089】
例えば、形状変化部4は、ハイモデルモーションデータに基づいてハイモデルキャラクタ54aに設定されるスケルトンの状態を仮決定する。仮決定されたハイモデルキャラクタ54aのスケルトンの状態が状態データに基づいて変更されることによって、ハイモデルキャラクタ54aの状態が制御される。この変更の程度が、仮想カメラ56とキャラクタ54との距離rに応じて決定される。
【0090】
本実施形態においては、形状変化部4は、視点(例えば、仮想カメラ56)とオブジェクト(例えば、キャラクタ54)との距離rと、第1オブジェクト(例えば、ハイモデルキャラクタ54aの左手)の形状変化の程度を示す変化情報と、を対応付けてなる変化情報データを記憶する手段から変化情報データを記憶する手段を含み、視点とオブジェクトとの距離rに対応する変化情報(形状変化レベル)に基づいて、第1オブジェクトの形状を変更させる場合を説明する。
【0091】
つまり、形状変化部4は、距離rに対応する形状変化レベルが示す変更量だけ、ハイモデルキャラクタ54aの左手の形状を変更させる。例えば、ハイモデルキャラクタ54aの左手のスケルトンの位置及び回転角が変更される。
【0092】
図9は、形状変化部4により行われる処理を説明するための図である。ここでは、ハイモデルキャラクタ54aの左手の小指の形状が変更される場合を例に挙げて説明する。
【0093】
図9においては、ハイモデルモーションデータに基づいて定まるハイモデルキャラクタ54aの左手の小指を、第1左小指ジョイント64a、第2左小指ボーン65a、第2左小指ジョイント66a、第3左小指ボーン67a、第3左小指ジョイント68aと記載する。一方、状態データに基づいて定まるキャラクタ54の状態における左手の小指を、第1左小指ジョイント64b、第2左小指ボーン65b、第2左小指ジョイント66b、第3左小指ボーン67b、第3左小指ジョイント68bと記載する。
【0094】
例えば、第1左小指ジョイント64aをX軸を回転軸としてC方向へ回転させた場合、第2左小指ボーン65aと第2左小指ボーン65bとが一致し、第2左小指ジョイント66aと第2左小指ジョイント66bとが一致する。この場合、第2左小指ボーン65aと第2左小指ボーン65bとのずれを示す基準変化値、及び、第2左小指ジョイント66aと第2左小指ジョイント66bとのずれを示す基準変化値は、例えば、X軸を回転軸としてC方向に所定角度回転させることを示す値となる。
【0095】
また例えば、第2左小指ジョイント66aをX軸を回転軸としてD方向へ回転させた場合、第3左小指ボーン67aと第3左小指ボーン67bとが一致し、第3左小指ジョイント68aと第3左小指ジョイント68bとが一致する。この場合、第3左小指ボーン67aと第3左小指ボーン67bとのずれを示す基準変化値、及び、第3左小指ジョイント68aと第3左小指ジョイント68bとのずれを示す基準変化値は、X軸を回転軸としてD方向に所定角度回転させることを示す値となる。
【0096】
上記のように特定される基準変化値に基づいて、ハイモデルモーションデータにより仮決定されるハイモデルキャラクタ54aの状態が変更される。例えば、距離rが基準距離r0の2/5倍である場合、図8に示す変化情報データにより、基準変化値の3/5倍の変更レベルで変更が行われる。
【0097】
この場合、第2左小指ボーン65a及び第2左小指ジョイント66aを、X軸を回転軸としてD方向に、基準変化値が示す回転角を3/5倍させた角度だけ回転させることによって、第2左小指ボーン65c及び第2左小指ジョイント66cの状態が変更される。また、第3左小指ボーン67a及び第3左小指ジョイント68aを、X軸を回転軸としてE方向に、基準変化値が示す回転角を3/5倍させた角度だけ回転させることによって、第3左小指ボーン67c及び第3左小指ジョイント68cの状態が変更される。
【0098】
このように、ハイモデルキャラクタ54aが左手を広げた形状から左手を半開きにした形状になるように変更される。即ち、仮想カメラ56とキャラクタ54との距離rが基準距離r0に近づくほど、ハイモデルキャラクタ54aの左手の形状がローモデルキャラクタ54bの左手の形状に近づくように制御される。状態データに格納される状態は、ローモデルモーションデータに基づいて定まる状態であるので、ハイモデルキャラクタ54aからローモデルキャラクタ54bに切り替わった場合の切り替えが目立ちにくくなり、ユーザに与える違和感を軽減することができる。
【0099】
[1−4.ゲーム装置において実行される処理]
次に、ゲーム装置10が実行する処理について説明する。図10及び図11は、ゲーム装置10が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。制御部14は、例えば、光ディスク34に記憶されるプログラムに従って、所定時間毎(例えば、1/60秒毎)に図10及び図11に示す処理を実行する。
【0100】
図10に示すように、制御部14は、ゲーム状況データを参照し、仮想カメラ56とキャラクタ54との距離rを算出する(S1)。制御部14は、S1で算出された距離rが基準距離r0以上であるか否かを判定する(S2)。
【0101】
距離rが基準距離r0以上であると判定された場合(S2;Y)、制御部14は、キャラクタ54がハイモデルキャラクタ54aとして描画されていたか否かを判定する(S3)。S3においては、ゲーム状況データに格納されているキャラクタ54のスケルトンの数に基づいて判定されるようにしてもよいし、ハイモデルキャラクタ54a又はローモデルキャラクタ54bの何れか設定されているかを示すフラグを用意しておき、このフラグが参照されることによって判定が行われるようにしてもよい。他にも例えば、距離rが基準距離r0未満の状態から基準距離r0以上の状態に変化したか否かが判定されるようにしてもよい。
【0102】
キャラクタ54がハイモデルキャラクタ54aとして描画されていたと判定された場合(S3;Y)、制御部14は、ハイモデルキャラクタ54aからローモデルキャラクタ54bに切り替えて、ローモデルキャラクタ54bをゲーム空間50に配置する(S4)。即ち、ローモデルモーションデータが参照されることによって、ローモデルキャラクタ54bがゲーム空間50に配置される。このローモデルキャラクタ54bの形状は、ゲーム状況データに格納された切り替え前のハイモデルキャラクタ54aに基づいて制御される。
【0103】
一方、キャラクタ54がハイモデルキャラクタ54aとして描画されていないと判定された場合(S3;N)、制御部14は、ローモデルモーションデータに基づいて、ローモデルキャラクタ54bのスケルトンの状態を制御する(S5)。制御部14は、S5において制御されたローモデルキャラクタ54bのスケルトンの状態に基づいて、ゲーム状況データに格納されたキャラクタ54の状態を更新する(S6)。S6においては、ローモデルキャラクタ54bのスケルトンに基づいてポリゴンの頂点座標が特定され、ゲーム状況データに格納される。
【0104】
一方、距離rが基準距離r0未満であると判定された場合(S2;N)、制御部14は、キャラクタ54がハイモデルキャラクタ54aとして描画されていたか否かを判定する(S7)。S7の判定方法は、S3と同様である。
【0105】
キャラクタ54がハイモデルキャラクタ54aとして描画されていないと判定された場合(S7;N)、制御部14は、ローモデルキャラクタ54bからハイモデルキャラクタ54aに切り替える(S8)。
【0106】
一方、キャラクタ54がハイモデルキャラクタ54aとして描画されていたと判定された場合(S7;Y)、制御部14は、ゲーム状況データとハイモデルモーションデータに基づいて、ハイモデルキャラクタ54aのスケルトンの状態を仮決定する(S9)。
【0107】
制御部14は、仮決定されたハイモデルキャラクタ54aのスケルトンの状態を、距離rと状態データとに基づいて変化させる(S10)。例えば、仮決定されたハイモデルキャラクタ54aのスケルトンの状態と、状態データが示すスケルトンの状態と、のずれが基準変化値として算出される。そして、距離rと変化情報データとに基づいて形状変化レベルが決定される。当該形状変化レベルと基準変化値とに基づいて決定される変更量だけ、S9で仮決定されたハイモデルキャラクタ54aのスケルトンの状態が変更される。
【0108】
図12は、ハイモデルキャラクタ54aのスケルトンの状態が変更される様子を示す図である。図12に示すように、例えば、距離rが基準距離r0に近づくほど、ハイモデルキャラクタ54aの両手のスケルトンが半開きの状態になるように、ハイモデルキャラクタ54aのスケルトンの状態が変化することになる。
【0109】
制御部14は、S10で変更されたハイモデルキャラクタ54aのスケルトンの状態に基づいて、ゲーム状況データに格納されたキャラクタ54の状態を更新する(S11)。S11においては、ハイモデルキャラクタ54aのスケルトンに基づいてポリゴンの頂点座標が特定され、ゲーム状況データに格納される。
【0110】
制御部14は、仮想カメラ56の視野内の全てのキャラクタ54の形状を決定したか否かを判定する(S12)。仮想カメラ56の視野内の全てのキャラクタ54の形状を決定したと判定されない場合(S12;N)、処理はS1に戻り、次のキャラクタ54の形状が決定される。仮想カメラ56の視野内の全てのキャラクタ54の形状を決定したと判定された場合(S12;Y)、制御部14は、ゲーム状況データに基づいて画面を表示させる(S13)。
【0111】
以上説明したゲーム装置10によれば、距離rが基準距離r0に近づくほどハイモデルキャラクタ54aの左手の形状が、ローモデルキャラクタ54bの左手の形状に近づく。つまり、ハイモデルキャラクタ54aとローモデルキャラクタ54bの切り替える場合には、ハイモデルキャラクタ54aの左手の形状とローモデルキャラクタ54bの左手の形状とが似た状態になっているため、ハイモデルキャラクタ54aとローモデルキャラクタ54bとが切り替えが目立ちにくくなり、ユーザの違和感を軽減することができる。
【0112】
[1−5.実施形態1の変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【0113】
(1)例えば、実施形態においては、図9に示したように、ハイモデルモーションデータに基づいて定まるハイモデルキャラクタ54aのスケルトンの状態と、状態データに基づいて定まるスケルトンの状態と、のずれを示す回転角度によって、ハイモデルキャラクタ54aのスケルトンの状態が変化する場合を説明したが、ハイモデルキャラクタ54aの形状の変更方法は、これに限られない。
【0114】
形状変化部4は、ハイモデルモーションデータに基づいて定まるハイモデルキャラクタ54aの形状を、ローモデルモーションデータに基づいて定まるローモデルキャラクタ54bの形状に近づけるようにすればよい。他にも例えば、ハイモデルモーションデータに基づいて定まるハイモデルキャラクタ54aのスケルトンの位置と、状態データに基づいて定まる状態におけるスケルトンの位置と、の位置関係(位置ずれ量)に基づいてハイモデルキャラクタ54aの状態の変更が行われるようにしてもよい。
【0115】
(2)また例えば、上記実施形態においては、ハイモデルキャラクタ54aの左手の形状を、距離rが基準距離r0に近づくにつれてローモデルキャラクタ54bの左手の形状(例えば、半開きの形状)に近づける場合を説明したが、ハイモデルキャラクタ54aの形状が制御されるのは、左手に限られない。
【0116】
ハイモデルキャラクタ54aの状態が変更されるのは、ハイモデルキャラクタ54aにより表現される部位であればよい。例えば、ハイモデルキャラクタ54aの右手の形状が半開きの状態に近づくように制御されるようにしてもよいし、ハイモデルキャラクタ54aの足首のスケルトンの状態が回転角度が少なくなるように制御されるようにしてもよい。他にも例えば、ハイモデルキャラクタ54aの髪の毛の形状が、あまり動かなくなるように制御されるようにしてもよい。即ち、キャラクタ54の各部位を示すスケルトンの状態が、状態データが示す状態に近づくように変更されるようにすればよい。
【0117】
(3)また例えば、実施形態においては、距離rが基準距離r0未満である場合に、形状変化部4による処理が行われる場合を説明したが、形状変化部4による処理は、距離rが所定範囲(例えば、r0/2<r<r0)である場合にのみ実行されるようにしてもよい。即ち、距離rが所定範囲でない場合、形状変化部4による制御が制限され、ハイモデルモーションデータに基づいてハイモデルキャラクタ54aの形状が決定されるようにしてもよい。
【0118】
[2.実施形態2]
次に、本発明に係る画像処理装置の実施形態2について説明する。実施形態1においては、LOD切り替えを目立ちにくくするために、ハイモデルキャラクタ54aの形状をローモデルキャラクタ54bの形状に近づけるように、ハイモデルキャラクタ54aの形状を調整する場合を説明した。LOD切り替えを目立ちにくくするための処理は、実施形態1の例に限られない。
【0119】
実施形態2においては、所定の条件を満たしたキャラクタ54について、優先的にハイモデルキャラクタ54aとローモデルキャラクタ54bとの切替処理が行われる。例えば、切替処理を行っても切り替えが目立ちにくい状態のキャラクタ54や、ユーザが画面上で見ている可能性が低いと考えられるキャラクタ54について、優先的に切替処理が行われる。
【0120】
例えば、ユーザは、立ち止まっているキャラクタ54の輪郭は、はっきりと見えるため、このキャラクタ54に切替処理が行われると切り替えが目立ちやすい。一方、ユーザは、動いているキャラクタ54の輪郭は、あまりはっきりと捉えられないので、このキャラクタ54に切替処理が行われると切り替えが目立ちにくく、ユーザが感じる違和感が軽減される。このように、実施形態2のゲーム装置10においては、優先順位の高いキャラクタ54について切替処理が行われる構成になっている。
【0121】
実施形態2におけるゲーム装置10のハードウェア構成図及び機能ブロック図は、それぞれ図1及び図4と同様であるので説明を省略する。ただし、実施形態2においては、形状変化部4は含まれていてもよいし含まれなくてもよい。ここでは、ゲーム装置10に形状変化部4が含まれない場合を説明する。
【0122】
[2−1.実施形態2において実現される機能]
実施形態2のオブジェクト配置部2は、キャラクタオブジェクトとして、所与の詳細度の第1オブジェクト(例えば、ハイモデルキャラクタ54a)又は第1オブジェクトよりも詳細度の低い第2オブジェクト(例えば、ローモデルキャラクタ54b)を仮想3次元空間(例えば、ゲーム空間50)に配置する。
【0123】
ハイモデルキャラクタ54aとローモデルキャラクタ54bとの配置方法は、実施形態1と同様であり、例えば、ゲーム状況データに格納されたキャラクタ54の現在の状態とモーションデータとに基づいて、キャラクタ54として、ハイモデルキャラクタ54a又はハイモデルキャラクタ54aよりも詳細度の低いローモデルキャラクタ54bがゲーム空間50に配置される。
【0124】
実施形態2のオブジェクト切替部3は、視点(例えば、仮想カメラ56)とキャラクタとの距離rが第1基準距離r1(例えば、r1<r0)未満になった場合、第2オブジェクト(例えば、ローモデルキャラクタ54b)を第1オブジェクト(例えば、ハイモデルキャラクタ54a)に切り替える切替処理を行い、視点とキャラクタとの距離が第1基準距離よりも大きい第2基準距離r2(例えば、r0≦r2)以上になった場合、第1オブジェクトを第2オブジェクトに切り替える切替処理を行う。
【0125】
図13は、実施形態2のオブジェクト切替部3の処理内容を説明するための図である。図13に示すように、距離rが第1基準距離r1未満である場合、ハイモデルキャラクタ54aがゲーム空間50に配置される。一方、距離rが第2基準距離r2以上である場合、ローモデルキャラクタ54bがゲーム空間50に配置される。
【0126】
実施形態2においては、実施形態1とは異なり、距離rが所定範囲(r1≦r<r2)である場合、ハイモデルキャラクタ54a又はローモデルキャラクタ54bの何れかが配置されることになる。即ち、距離rが所定範囲であるキャラクタ54は、ハイモデルキャラクタ54aで描画される場合もあれば、ローモデルキャラクタ54bで描画される場合もある。
【0127】
オブジェクト切替部3は、視点(例えば、仮想カメラ56)とキャラクタとの距離が第1基準距離r1以上第2基準距離r2未満である場合、オブジェクト(例えば、キャラクタ54)の位置又は姿勢が、位置又は姿勢に関する所与の条件を満たすか否かを判定し、当該判定結果に基づいて、第1オブジェクト(例えば、ハイモデルキャラクタ54a)と第2オブジェクト(例えば、ローモデルキャラクタ54b)との切替処理を行う。例えば、キャラクタ54の現在の位置又は姿勢と、所与の条件が示す位置又は姿勢と、が比較される。
【0128】
切替処理は、キャラクタ54をハイモデルキャラクタ54aからローモデルキャラクタ54bに切り替える処理、又は、キャラクタ54をローモデルキャラクタ54bからハイモデルキャラクタ54aに切り替える処理の何れかである。本実施形態においては、前者の処理が実行される場合を説明する。
【0129】
本実施形態においては、オブジェクト切替部3は、対象期間におけるキャラクタ(例えば、キャラクタ54)の位置変化(移動量又は移動速度)が基準量以上であるか否かを判定し、対象期間におけるキャラクタの位置変化が基準量以上である場合、第1オブジェクト(例えば、ハイモデルキャラクタ54a)と第2オブジェクト(例えば、ローモデルキャラクタ54b)との切替処理を行う、場合を説明する。
【0130】
キャラクタ54の位置変化は、ゲーム状況データに格納されたキャラクタ54の位置に基づいて取得される。基準量は、予め定められた位置変化量であればよい。オブジェクト切替部3は、位置変化量が大きいキャラクタ54を優先的に、ハイモデルキャラクタ54aとローモデルキャラクタ54bとの切替処理を行う。
【0131】
[2−2.実施形態2において実行される処理]
次に、ゲーム装置10が実行する処理について説明する。図14及び図15は、ゲーム装置10が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。制御部14は、例えば、光ディスク34に記憶されるプログラムに従って、所定時間毎(例えば、1/60秒毎)に図14及び図15に示す処理を実行する。
【0132】
図14に示すように、制御部14は、ゲーム状況データを参照し、仮想カメラ56とキャラクタ54との距離rを算出する(S20)。制御部14は、S20で算出された距離rが所定範囲であるか否かを判定する(S21)。
【0133】
距離rが第1基準距離r1未満であると判定された場合(S21;r<r1)、制御部14は、キャラクタ54として、ハイモデルキャラクタ54aを配置してハイモデルモーションデータに基づいてスケルトンの状態を制御する(S22)。S22においては、キャラクタ54がローモデルキャラクタ54bで描画されていた場合には、ローモデルキャラクタ54bからハイモデルキャラクタ54aへの切替処理が実行される。ハイモデルモーションデータに基づいてハイモデルキャラクタ54aの状態変化を行う方法は、実施形態1と同様である。
【0134】
距離rが第2基準距離r2以上であると判定された場合(S21;r≧r2)、制御部14は、キャラクタ54として、ローモデルキャラクタ54bを配置してローモデルモーションデータに基づいてスケルトンの状態を制御する(S23)。S23においては、キャラクタ54がハイモデルキャラクタ54aで描画されていた場合には、ハイモデルキャラクタ54aからローモデルキャラクタ54bへの切替処理が実行される。ローモデルモーションデータに基づいてローモデルキャラクタ54bのスケルトンの状態変化を行う方法は、実施形態1と同様である。
【0135】
距離rが第1基準距離r1以上第2基準距離r2未満であると判定された場合(S21;r1≦r<r2)、制御部14は、キャラクタ54がハイモデルキャラクタ54aとして描画されているか否かを判定する(S24)。S24における処理は、実施形態1のS3と同様である。
【0136】
ハイモデルキャラクタ54aが配置されていると判定された場合(S24;Y)、制御部14は、ゲーム状況データを参照して、キャラクタ54の位置又は姿勢が、位置又は姿勢に関する所与の条件を満たすか否かを判定する(S25)。例えば、ゲーム状況データに格納されたキャラクタ54の位置に基づいて、キャラクタ54の位置変化が取得される。この取得された位置変化と予め定められた基準量とが比較されることによって、S25の判定が行われる。
【0137】
キャラクタ54の位置又は姿勢が、位置又は姿勢に関する所定の条件を満たすと判定された場合(S25;Y)、制御部14は、ハイモデルキャラクタ54aからローモデルキャラクタ54bへの切替処理を実行する(S26)。制御部14は、ローモデルモーションデータに基づいて、ローモデルキャラクタ54bのスケルトンの状態を制御する(S27)。
【0138】
キャラクタ54の位置又は姿勢が、位置又は姿勢に関する所定の条件を満たさないと判定された場合(S25;N)、制御部14は、切替処理の実行を制限し、ハイモデルキャラクタ54aのスケルトンの状態をハイモデルモーションデータに基づいて制御する(S28)。
【0139】
制御部14は、決定されたキャラクタ54の状態に基づいてゲーム状況データを更新する(S29)。制御部14は、仮想カメラ56の視野内の全てのキャラクタ54の形状を決定したか否かを判定する(S30)。
【0140】
仮想カメラ56の視野内の全てのキャラクタ54の状態を決定したと判定されない場合(S30;N)、処理はS20に戻り、次のキャラクタ54の状態が決定される。仮想カメラ56の視野内の全てのキャラクタ54の形状を決定したと判定された場合(S30;Y)、制御部14は、ゲーム状況データに基づいて画面を表示させる(S31)。
【0141】
以上説明したゲーム装置10によれば、切替処理を行っても当該切り替えが目立たないキャラクタ54について、優先的に、ハイモデルキャラクタ54aからローモデルキャラクタ54bに切り替えることができる。したがって、切替処理によるキャラクタ54の切り替えを目立ちにくくすることができ、ユーザが感じる違和感を軽減することができる。
【0142】
[2−3.実施形態2の変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【0143】
(1)例えば、切り替えが目立ちにくい所定の姿勢(例えば、キャラクタ54が屈んでいる姿勢等)をキャラクタ54がとっている場合に切替処理を実行することによって、ハイモデルキャラクタ54aとローモデルキャラクタ54bとの切り替えを目立ちにくくするようにしてもよい。
【0144】
本変形例のオブジェクト切替部3は、キャラクタ54の姿勢が所与の姿勢であるか否かを判定し、キャラクタ54の姿勢が所与の姿勢である場合、第1オブジェクト(例えば、ハイモデルキャラクタ54a)と第2オブジェクト(例えば、ローモデルキャラクタ54b)との切替処理を行う。
【0145】
本変形例においては、図14及び図15と同様の処理が実行されるが、S25における処理内容が実施形態2とは異なる。本変形例のS25においては、ゲーム状況データに格納されたキャラクタ54のスケルトンの位置関係が、所定の位置関係であるか否かが判定される。即ち、キャラクタ54の所定のスケルトン(例えば、腰部分のスケルトン)と各部のスケルトンとの位置関係が、所定の位置関係であるかが判定されることによって、キャラクタ54の姿勢が所与の姿勢であるか否かが判定される。
【0146】
S25においてキャラクタ54の姿勢が所与の姿勢であると判定された場合、処理はS26に移行する。この場合、キャラクタ54の切替処理を実行しても切り替えが目立たない姿勢であるので、S26の処理が実行される。S25においてキャラクタ54の姿勢が所与の姿勢であると判定されない場合、処理はS28に移行する。この場合、キャラクタ54の切替処理を実行してしまうと切り替えが目立つ姿勢であるので、切替処理の実行が制限される。
【0147】
(2)また例えば、ユーザが見ている可能性が低いと考えられるキャラクタ54について、優先的に切替処理を実行するようにしてもよい。例えば、仮想3次元空間(例えば、ゲーム空間50)に移動物体(ボールやパック、車両等)を示すオブジェクトが配置される場合、ユーザは、移動物体を注視していると考えられる。即ち、画面上において移動物体から離れて表示されているキャラクタ54は、ユーザが注視している可能性が低い。そこで、移動物体から離れているキャラクタ54について、優先的に切替処理を実行することによって、切り替えを目立たなくさせるようにしてもよい。
【0148】
図16は、移動物体が配置されたゲーム空間50を示す図である。図16に示すように、例えば、ゲーム空間50にはボールを示すオブジェクトであるボール57が配置される。この場合、例えば、ユーザがキャラクタ54を操作してボール57を移動させるサッカーゲームが実行される。ボール57の位置や移動方向、移動速度を示す情報は、例えば、ゲーム状況データに格納される。
【0149】
このようなゲームにおいては、ユーザは、ボール57に注目してゲームをプレイしていると考えられる。そこで、例えば、画面上においてボール57との距離が所定距離以上であるキャラクタ54について、優先的に切替処理を実行する。
【0150】
例えば、ゲーム空間50が図16に示す状況の場合、6体のキャラクタ54−1〜54−6について、距離rが第1基準距離r1以上第2基準距離r2未満であるとする。この場合、例えば、キャラクタ54−1〜54−4は、ボール57の近くに表示される。また例えば、キャラクタ54−5〜54−6は、ボール57から遠くに表示される。そこで、この場合、キャラクタ54−5〜54−6の2体について、切替処理を実行する。
【0151】
本変形例のオブジェクト切替部3は、キャラクタ54と移動物体との位置関係が所与の位置関係であるか否かを判定し、キャラクタ54と移動物体(例えば、ボール57)との位置関係が所与の位置関係である場合、第1オブジェクト(例えば、ハイモデルキャラクタ54a)と第2オブジェクト(例えば、ローモデルキャラクタ54b)との切替処理を行う。
【0152】
本変形例においては、図14及び図15と同様の処理が実行されるが、S25における処理内容が実施形態2とは異なる。本変形例のS25においては、ゲーム状況データに格納されたキャラクタ54の位置と、ボール57の位置と、の位置関係が所与の関係であるか否かが判定される。即ち、キャラクタ54の表示位置とボール57の表示位置との距離が所定範囲(例えば、基準距離以内)であるか否かが判定されることによって、キャラクタ54とボール57との位置関係が所与の位置関係であるか否かが判定される。
【0153】
S25においてキャラクタ54とボール57との位置関係が所与の位置関係であると判定された場合、処理はS26に移行する。この場合、キャラクタ54の切替処理を実行しても切り替えが目立たない位置にキャラクタ54がいるので、S26の処理が実行される。S25においてキャラクタ54とボール57との位置関係が所与の位置関係であると判定されない場合、処理はS28に移行する。この場合、キャラクタ54の切替処理を実行してしまうと切り替えが目立つ位置にキャラクタ54がいるので、切替処理の実行が制限される。
【0154】
(3)また例えば、キャラクタ54と仮想カメラ56との位置関係に基づいて、ユーザが見ている可能性が低いキャラクタが判定されるようにしてもよい。例えば、ユーザは、仮想カメラ56の注視点付近(つまり、画面の中央付近)を見ていると考えられるので、仮想カメラ56の注視点から離れているキャラクタ54について、優先的に切替処理を実行するようにしてもよい。
【0155】
本変形例のオブジェクト切替部3は、視点(例えば、仮想カメラ56)とキャラクタ54との位置関係が所与の位置関係であるか否かを判定し、視点とキャラクタ54との位置関係が所与の位置関係である場合、第1オブジェクト(例えば、ハイモデルキャラクタ54a)と第2オブジェクト(例えば、ローモデルキャラクタ54b)との切替処理を行う。
【0156】
本変形例においては、図14及び図15と同様の処理が実行されるが、S25における処理内容が実施形態2とは異なる。本変形例のS25においては、ゲーム状況データに格納されたキャラクタ54の位置と、仮想カメラ56の注視点と、の位置関係が所与の関係であるか否かが判定される。
【0157】
例えば、キャラクタ54の位置と仮想カメラ56の注視点との距離が所定範囲(例えば、基準距離以内)であるか否かが判定されることによって、キャラクタ54と仮想カメラ56との位置関係が所与の位置関係であるか否かが判定される。また例えば、キャラクタ54の表示位置と画面の中心点との距離が所定範囲であるか否かが判定されることによって、キャラクタ54と仮想カメラ56との位置関係が所与の位置関係であるか否かが判定されるようにしてもよい。
【0158】
S25においてキャラクタ54と仮想カメラ56との位置関係が所与の位置関係であると判定された場合、処理はS26に移行する。この場合、キャラクタ54の切替処理を実行しても切り替えが目立たない位置にキャラクタ54がいるので、S26の処理が実行される。S25においてキャラクタ54と仮想カメラ56との位置関係が所与の姿勢であると判定されない場合、処理はS28に移行する。この場合、キャラクタ54の切替処理を実行してしまうと切り替えが目立つ位置にキャラクタ54がいるので、切替処理の実行が制限される。
【0159】
例えば、ゲーム空間50が図16に示す状況の場合、キャラクタ54−1〜54−4は、画面の中央に表示されるので、切替処理が実行されない。一方、キャラクタ54−5〜54−6は、画面の端部付近に表示されるので、切替処理が実行される。ユーザは、画面の端部付近を見ている可能性は低いので、キャラクタ54−5〜54−6について、優先的に切替処理が行われることによって、ユーザの違和感を軽減させることができる。
【0160】
なお、上記においては、画面の端部付近に表示されるキャラクタ54について、優先的に切替処理が実行される場合を説明したが、他にも例えば、仮想カメラ56の視野から外れたキャラクタ54について、優先的に切替処理が実行されるようにしてもよい。
【0161】
(4)また例えば、キャラクタ54の位置によってキャラクタ54の輝度が異なるような場合、キャラクタ54の位置に応じて切替処理を行うか否かが判定されるようにしてもよい。例えば、キャラクタ54が暗く表される位置にいた場合には、ユーザがキャラクタ54を視認しにくいので、切替処理を行っても切り替えが目立たなくなる。そこで、例えば、暗く表される位置にいるキャラクタ54について、優先的に切替処理が実行されるようにしてもよい。
【0162】
図17は、ゲーム空間50の位置によってキャラクタ54の輝度が異なる様子を説明するための図である。図17に示すように、例えば、ゲーム空間50には、光源58と、遮蔽物を示すオブジェクトである遮蔽物59が配置される。例えば、光源58と遮蔽物59との位置関係に基づいて、キャラクタ54の輝度が下がる領域52aが決定される。この領域52aにキャラクタ54がいる場合、キャラクタ54の輝度が下がるため、キャラクタ54が視認しづらくなる。そこで、このキャラクタ54について、優先的に切替処理が実行される。例えば、図17に示す場合、キャラクタ54−7について切替処理が実行されるが、キャラクタ54−8については切替処理が実行されない。
【0163】
本変形例のオブジェクト切替部3は、キャラクタ54の位置が所定領域内であるか否かを判定し、キャラクタ54の位置が所定領域内である場合、第1オブジェクト(例えば、ハイモデルキャラクタ54a)と第2オブジェクト(例えば、ローモデルキャラクタ54b)との切替処理を行う。
【0164】
本変形例においては、図14及び図15と同様の処理が実行されるが、S25における処理内容が実施形態2とは異なる。本変形例のS25においては、ゲーム状況データに格納されたキャラクタ54の位置が所定領域内であるか否かが判定される。
【0165】
S25においてキャラクタ54の位置が所定領域内であると判定された場合、処理はS26に移行する。この場合、キャラクタ54の切替処理を実行しても切り替えが目立たない位置にキャラクタ54がいるので、S26の処理が実行される。S25においてキャラクタ54の位置が所定領域内であると判定されない場合、処理はS28に移行する。この場合、キャラクタ54の切替処理を実行してしまうと切り替えが目立つ位置にキャラクタ54がいるので、切替処理の実行が制限される。
【0166】
(5)また例えば、実施形態2及び上記実施形態においては、ハイモデルキャラクタ54aからローモデルキャラクタ54bに切り替える場合を説明したが、ローモデルキャラクタ54bからハイモデルキャラクタ54aに切り替える処理が実行されるようにしてもよい。
【0167】
この場合、S24において、キャラクタ54がハイモデルキャラクタ54aとして描画されていると判定された場合、処理はS27に移行する。また、S24において、キャラクタ54がローモデルキャラクタ54bとして描画されていると判定された場合、処理はS25に移行する。そして、S27の処理とS28の処理とが入れ替わる。即ち、S26で切替処理が実行されると、ローモデルキャラクタ54bからハイモデルキャラクタ54aへと切り替わる。S27においては、ハイモデルキャラクタ54aの状態が制御される。S28においては、ローモデルキャラクタ54bの状態が制御される。
【0168】
(6)また例えば、実施形態1と実施形態2とを組み合わせるようにしてもよい。即ち、実施形態2においては、ゲーム装置10に形状変化部4が含まれない場合を説明したが、ゲーム装置10に、形状変化部4が含まれていてもよい。この場合、例えば、距離rが第1基準距離r1以上第2基準距離r2未満であり、ハイモデルキャラクタ54aが配置されていた場合、距離rが第2基準距離r2に近づくにつれて、ハイモデルキャラクタ54aの状態が状態に近づくように、ハイモデルキャラクタ54aの状態が制御される。
【0169】
[3.その他変形例]
なお、本発明は、以上に説明した実施形態1及び実施形態2に限定されるものではない。
【0170】
例えば、本発明は、実施形態や変形例において説明したゲーム以外にも適用することができる。本発明は、仮想3次元空間を所与の視点から見た画像を表示させる技術に適用することができる。例えば、仮想3次元空間に配置されるオブジェクトはキャラクタを示すものに限られず、他にも例えば、風に揺れる樹木を表すアニメーション処理に、本発明を適用してもよい。
【符号の説明】
【0171】
1 ゲームデータ記憶部、2 オブジェクト配置部、3 オブジェクト切替部、4 形状変化部、10 ゲーム装置、11 携帯ゲーム機、12 バス、14 制御部、16 記憶部、18 主記憶、20 画像処理部、22 表示部、24 タッチパネル、26 入出力処理部、28 メモリカードスロット、30 メモリカード、32 光ディスク再生部、34 光ディスク、36 操作キー部、38 音声処理部、40 音声出力部、42 音声入力部、50 ゲーム空間、52 フィールド、54 キャラクタ、54a ハイモデルキャラクタ、54b ローモデルキャラクタ、56 仮想カメラ、57 ボール、58 光源、59 遮蔽物、r 距離。
【特許請求の範囲】
【請求項1】
オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示手段に表示させる画像処理装置であって、
前記視点と前記オブジェクトとの距離が基準距離未満である場合、前記オブジェクトとして、形状変化が可能な第1オブジェクトを前記仮想3次元空間に配置するオブジェクト配置手段と、
前記視点と前記オブジェクトとの距離が前記基準距離以上になった場合、前記第1オブジェクトから、所定形状の第2オブジェクトに切り替えるオブジェクト切替手段と、
前記視点と前記オブジェクトとの距離が前記基準距離未満である場合、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトの形状が前記第2オブジェクトの形状に近づくように、前記第1オブジェクトの形状を、前記視点と前記オブジェクトとの距離に基づいて変化させる形状変化手段と、
を含むことを特徴とする画像処理装置。
【請求項2】
前記第1オブジェクトの形状は、前記第1オブジェクトに設定されるスケルトンの状態変化に基づいて変化し、
前記形状変化手段は、
前記第2オブジェクトの形状に対応する前記第1オブジェクトのスケルトンの状態を示す状態データを記憶する手段から前記状態データを取得する手段を含み、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトのスケルトンの状態が前記状態データが示す状態に近づくように、前記第1オブジェクトのスケルトンの状態を、前記視点と前記オブジェクトとの距離及び前記状態データに基づいて変化させる、
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記形状変化手段は、
前記視点と前記オブジェクトとの距離と、前記第1オブジェクトの形状変化の程度を示す変化情報と、を対応付けてなる変化情報データを記憶する手段から前記変化情報データを記憶する手段を含み、前記視点と前記オブジェクトとの距離に対応する前記変化情報に基づいて、前記第1オブジェクトの形状を変化させる、
ことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記オブジェクト切替手段は、
前記視点と前記オブジェクトとの距離が第1基準距離未満になった場合、前記第2オブジェクトを前記第1オブジェクトに切り替える切替処理を行う手段と、
前記視点と前記オブジェクトとの距離が前記第1基準距離よりも大きい第2基準距離以上になった場合、前記第1オブジェクトを前記第2オブジェクトに切り替える切替処理を行う手段と、
前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトの位置又は姿勢が、位置又は姿勢に関する所与の条件を満たすか否かを判定し、当該判定結果に基づいて前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う手段と、
を含むことを特徴とする請求項1〜3の何れか一項に記載の画像処理装置。
【請求項5】
前記オブジェクト切替手段は、
前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、対象期間における前記オブジェクトの位置変化が基準量以上であるか否かを判定し、前記対象期間における前記オブジェクトの位置変化が前記基準量以上である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、
ことを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記オブジェクト切替手段は、
前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトの姿勢が所与の姿勢であるか否かを判定し、前記オブジェクトの姿勢が所与の姿勢である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、
ことを特徴とする請求項4又は5に記載の画像処理装置。
【請求項7】
前記仮想3次元空間には移動物体を示すオブジェクトが配置され、
前記オブジェクト切替手段は、
前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトと前記移動物体との位置関係が所与の位置関係であるか否かを判定し、前記オブジェクトと前記移動物体との位置関係が所与の位置関係である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、
ことを特徴とする請求項4〜6の何れか一項に記載の画像処理装置。
【請求項8】
前記オブジェクト切替手段は、
前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記視点と前記オブジェクトとの位置関係が所与の位置関係であるか否かを判定し、前記視点と前記オブジェクトとの位置関係が所与の位置関係である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、
ことを特徴とする請求項4〜7の何れか一項に記載の画像処理装置。
【請求項9】
前記オブジェクト切替手段は、
前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトの位置が所定領域内であるか否かを判定し、前記オブジェクトの位置が所定領域内である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、
ことを特徴とする請求項4〜8の何れか一項に記載の画像処理装置。
【請求項10】
オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示手段に表示させる画像処理装置の制御方法であって、
前記視点と前記オブジェクトとの距離が基準距離未満である場合、前記オブジェクトとして、形状変化が可能な第1オブジェクトを前記仮想3次元空間に配置するオブジェクト配置ステップと、
前記視点と前記オブジェクトとの距離が前記基準距離以上になった場合、前記第1オブジェクトから、所定形状の第2オブジェクトに切り替えるオブジェクト切替ステップと、
前記視点と前記オブジェクトとの距離が前記基準距離未満である場合、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトの形状が前記第2オブジェクトの形状に近づくように、前記第1オブジェクトの形状を、前記視点と前記オブジェクトとの距離に基づいて変化させる形状変化ステップと、
を含むことを特徴とする画像処理装置の制御方法。
【請求項11】
オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示手段に表示させる画像処理装置としてコンピュータを機能させるためのプログラムであって、
前記視点と前記オブジェクトとの距離が基準距離未満である場合、前記オブジェクトとして、形状変化が可能な第1オブジェクトを前記仮想3次元空間に配置するオブジェクト配置手段、
前記視点と前記オブジェクトとの距離が前記基準距離以上になった場合、前記第1オブジェクトから、所定形状の第2オブジェクトに切り替えるオブジェクト切替手段、
前記視点と前記オブジェクトとの距離が前記基準距離未満である場合、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトの形状が前記第2オブジェクトの形状に近づくように、前記第1オブジェクトの形状を、前記視点と前記オブジェクトとの距離に基づいて変化させる形状変化手段、
を含むことを特徴とする画像処理装置として前記コンピュータを機能させるためのプログラム。
【請求項1】
オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示手段に表示させる画像処理装置であって、
前記視点と前記オブジェクトとの距離が基準距離未満である場合、前記オブジェクトとして、形状変化が可能な第1オブジェクトを前記仮想3次元空間に配置するオブジェクト配置手段と、
前記視点と前記オブジェクトとの距離が前記基準距離以上になった場合、前記第1オブジェクトから、所定形状の第2オブジェクトに切り替えるオブジェクト切替手段と、
前記視点と前記オブジェクトとの距離が前記基準距離未満である場合、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトの形状が前記第2オブジェクトの形状に近づくように、前記第1オブジェクトの形状を、前記視点と前記オブジェクトとの距離に基づいて変化させる形状変化手段と、
を含むことを特徴とする画像処理装置。
【請求項2】
前記第1オブジェクトの形状は、前記第1オブジェクトに設定されるスケルトンの状態変化に基づいて変化し、
前記形状変化手段は、
前記第2オブジェクトの形状に対応する前記第1オブジェクトのスケルトンの状態を示す状態データを記憶する手段から前記状態データを取得する手段を含み、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトのスケルトンの状態が前記状態データが示す状態に近づくように、前記第1オブジェクトのスケルトンの状態を、前記視点と前記オブジェクトとの距離及び前記状態データに基づいて変化させる、
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記形状変化手段は、
前記視点と前記オブジェクトとの距離と、前記第1オブジェクトの形状変化の程度を示す変化情報と、を対応付けてなる変化情報データを記憶する手段から前記変化情報データを記憶する手段を含み、前記視点と前記オブジェクトとの距離に対応する前記変化情報に基づいて、前記第1オブジェクトの形状を変化させる、
ことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記オブジェクト切替手段は、
前記視点と前記オブジェクトとの距離が第1基準距離未満になった場合、前記第2オブジェクトを前記第1オブジェクトに切り替える切替処理を行う手段と、
前記視点と前記オブジェクトとの距離が前記第1基準距離よりも大きい第2基準距離以上になった場合、前記第1オブジェクトを前記第2オブジェクトに切り替える切替処理を行う手段と、
前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトの位置又は姿勢が、位置又は姿勢に関する所与の条件を満たすか否かを判定し、当該判定結果に基づいて前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う手段と、
を含むことを特徴とする請求項1〜3の何れか一項に記載の画像処理装置。
【請求項5】
前記オブジェクト切替手段は、
前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、対象期間における前記オブジェクトの位置変化が基準量以上であるか否かを判定し、前記対象期間における前記オブジェクトの位置変化が前記基準量以上である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、
ことを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記オブジェクト切替手段は、
前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトの姿勢が所与の姿勢であるか否かを判定し、前記オブジェクトの姿勢が所与の姿勢である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、
ことを特徴とする請求項4又は5に記載の画像処理装置。
【請求項7】
前記仮想3次元空間には移動物体を示すオブジェクトが配置され、
前記オブジェクト切替手段は、
前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトと前記移動物体との位置関係が所与の位置関係であるか否かを判定し、前記オブジェクトと前記移動物体との位置関係が所与の位置関係である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、
ことを特徴とする請求項4〜6の何れか一項に記載の画像処理装置。
【請求項8】
前記オブジェクト切替手段は、
前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記視点と前記オブジェクトとの位置関係が所与の位置関係であるか否かを判定し、前記視点と前記オブジェクトとの位置関係が所与の位置関係である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、
ことを特徴とする請求項4〜7の何れか一項に記載の画像処理装置。
【請求項9】
前記オブジェクト切替手段は、
前記視点と前記オブジェクトとの距離が前記第1基準距離以上前記第2基準距離未満である場合、前記オブジェクトの位置が所定領域内であるか否かを判定し、前記オブジェクトの位置が所定領域内である場合、前記第1オブジェクトと前記第2オブジェクトとの切替処理を行う、
ことを特徴とする請求項4〜8の何れか一項に記載の画像処理装置。
【請求項10】
オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示手段に表示させる画像処理装置の制御方法であって、
前記視点と前記オブジェクトとの距離が基準距離未満である場合、前記オブジェクトとして、形状変化が可能な第1オブジェクトを前記仮想3次元空間に配置するオブジェクト配置ステップと、
前記視点と前記オブジェクトとの距離が前記基準距離以上になった場合、前記第1オブジェクトから、所定形状の第2オブジェクトに切り替えるオブジェクト切替ステップと、
前記視点と前記オブジェクトとの距離が前記基準距離未満である場合、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトの形状が前記第2オブジェクトの形状に近づくように、前記第1オブジェクトの形状を、前記視点と前記オブジェクトとの距離に基づいて変化させる形状変化ステップと、
を含むことを特徴とする画像処理装置の制御方法。
【請求項11】
オブジェクトが配置された仮想3次元空間を所与の視点から見た画像を表示手段に表示させる画像処理装置としてコンピュータを機能させるためのプログラムであって、
前記視点と前記オブジェクトとの距離が基準距離未満である場合、前記オブジェクトとして、形状変化が可能な第1オブジェクトを前記仮想3次元空間に配置するオブジェクト配置手段、
前記視点と前記オブジェクトとの距離が前記基準距離以上になった場合、前記第1オブジェクトから、所定形状の第2オブジェクトに切り替えるオブジェクト切替手段、
前記視点と前記オブジェクトとの距離が前記基準距離未満である場合、前記視点と前記オブジェクトとの距離が前記基準距離に近づくほど、前記第1オブジェクトの形状が前記第2オブジェクトの形状に近づくように、前記第1オブジェクトの形状を、前記視点と前記オブジェクトとの距離に基づいて変化させる形状変化手段、
を含むことを特徴とする画像処理装置として前記コンピュータを機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2012−212246(P2012−212246A)
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願番号】特願2011−76707(P2011−76707)
【出願日】平成23年3月30日(2011.3.30)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願日】平成23年3月30日(2011.3.30)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】
[ Back to top ]