JP2011186689A - 画像処理装置、画像処理方法及びプログラム - Google Patents

画像処理装置、画像処理方法及びプログラム Download PDF

Info

Publication number
JP2011186689A
JP2011186689A JP2010049957A JP2010049957A JP2011186689A JP 2011186689 A JP2011186689 A JP 2011186689A JP 2010049957 A JP2010049957 A JP 2010049957A JP 2010049957 A JP2010049957 A JP 2010049957A JP 2011186689 A JP2011186689 A JP 2011186689A
Authority
JP
Japan
Prior art keywords
character
temporary
intersection
acquisition unit
image processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010049957A
Other languages
English (en)
Other versions
JP4882012B2 (ja
Inventor
Yoritaka Maeda
頼賢 前田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Digital Entertainment Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konami Digital Entertainment Co Ltd filed Critical Konami Digital Entertainment Co Ltd
Priority to JP2010049957A priority Critical patent/JP4882012B2/ja
Publication of JP2011186689A publication Critical patent/JP2011186689A/ja
Application granted granted Critical
Publication of JP4882012B2 publication Critical patent/JP4882012B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

【課題】キャラクタがオブジェクトに触る様子を表す画像を生成することが可能なゲーム装置を提供すること。
【解決手段】仮位置/方向取得手段(52)は、オブジェクトに触るために用いられるキャラクタの部位の仮位置、又はキャラクタ本体から部位への仮方向を取得する。線取得手段(54)は、仮位置又は仮方向に基づいて、キャラクタの代表点からオブジェクトに向けて伸びる少なくとも3本の線を取得する。交点取得手段(56)は、少なくとも3本の線の各々とオブジェクトとの交点を取得する。キャラクタ制御手段(58)は、交点取得手段(56)によって取得される少なくとも3つの交点を含む面に基づいて、キャラクタの前記部位の位置を制御する。画像生成手段(60)は、仮想空間に設定された視点から見たキャラクタ及びオブジェクトを表す画像を生成する。
【選択図】図3

Description

本発明は画像処理装置、画像処理方法及びプログラムに関する。
仮想カメラから見た仮想空間を表す画像を生成する画像処理装置が知られている。例えば、仮想カメラから見たゲーム空間を表すゲーム画面を生成するゲーム装置(画像処理装置)が知られている。
特開2001−96062号公報
上記のような画像処理装置では、キャラクタがオブジェクトを触る様子を表す画像を生成したい場合がある。例えば、上記のようなゲーム装置では、プレイヤによって操作されるキャラクタが壁を触る様子を表すゲーム画面を表示したい場合がある。
本発明は上記課題に鑑みてなされたものであって、その目的は、例えば、キャラクタがオブジェクトに触る様子を表す画像を生成することが可能な画像処理装置、画像処理方法及びプログラムを提供することにある。
上記課題を解決するために、本発明に係る画像処理装置は、仮想空間においてキャラクタがオブジェクトに触る様子を表す画像を生成する画像処理装置において、前記オブジェクトに触るために用いられる前記キャラクタの部位の仮位置、又は前記キャラクタ本体から前記部位への仮方向を取得する仮位置/方向取得手段と、前記仮位置又は前記仮方向に基づいて、前記キャラクタの代表点から前記オブジェクトに向けて伸びる少なくとも3本の線を取得する線取得手段と、前記少なくとも3本の線の各々と前記オブジェクトとの交点を取得する交点取得手段と、前記交点取得手段によって取得される少なくとも3つの交点を含む面に基づいて、前記キャラクタの前記部位の位置を制御するキャラクタ制御手段と、前記仮想空間に設定された視点から見た前記キャラクタ及び前記オブジェクトを表す画像を生成する画像生成手段と、を含むことを特徴とする。
また、本発明に係る画像処理方法は、仮想空間においてキャラクタがオブジェクトに触る様子を表す画像を生成する画像処理方法において、前記オブジェクトに触るために用いられる前記キャラクタの部位の仮位置、又は前記キャラクタ本体から前記部位への仮方向を取得する仮位置/方向取得ステップと、前記仮位置又は前記仮方向に基づいて、前記キャラクタの代表点から前記オブジェクトに向けて伸びる少なくとも3本の線を取得する線取得ステップと、前記少なくとも3本の線の各々と前記オブジェクトとの交点を取得する交点取得ステップと、前記交点取得ステップにおいて取得される少なくとも3つの交点を含む面に基づいて、前記キャラクタの前記部位の位置を制御するキャラクタ制御ステップと、前記仮想空間に設定された視点から見た前記キャラクタ及び前記オブジェクトを表す画像を生成する画像生成ステップと、を含むことを特徴とする。
また、本発明に係るプログラムは、仮想空間においてキャラクタがオブジェクトに触る様子を表す画像を生成する画像処理装置として、家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、携帯電話機、携帯情報端末(PDA)、パーソナルコンピュータ、又はサーバコンピュータ等のコンピュータを機能させるためのプログラムであって、前記オブジェクトに触るために用いられる前記キャラクタの部位の仮位置、又は前記キャラクタ本体から前記部位への仮方向を取得する仮位置/方向取得手段、前記仮位置又は前記仮方向に基づいて、前記キャラクタの代表点から前記オブジェクトに向けて伸びる少なくとも3本の線を取得する線取得手段、前記少なくとも3本の線の各々と前記オブジェクトとの交点を取得する交点取得手段、前記交点取得手段によって取得される少なくとも3つの交点を含む面に基づいて、前記キャラクタの前記部位の位置を制御するキャラクタ制御手段、及び、前記仮想空間に設定された視点から見た前記キャラクタ及び前記オブジェクトを表す画像を生成する画像生成手段、として前記コンピュータを機能させるためのプログラムである。
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。
本発明によれば、キャラクタがオブジェクトに触る様子を表す画像を生成することが可能になる。
また本発明の一態様では、前記キャラクタ制御手段は、前記キャラクタから前記面に向かって伸びる線が前記面と交わる前に前記オブジェクトと交わる場合、前記面を、前記キャラクタへの方向に平行移動させることによって、前記面の位置を、前記キャラクタから前記面に向かって伸びる前記線が前記面と交わる前に前記オブジェクトと交わらないような位置に変更する手段を含むようにしてもよい。
本実施の形態に係るゲーム装置(画像処理装置)のハードウェア構成を示す図である。 仮想空間の一例を示す図である。 本実施の形態に係るゲーム装置の機能ブロック図である。 仮位置/仮方向取得部の動作の一例を説明するための図である。 線取得部の動作の一例を説明するための図である。 線取得部の動作の一例を説明するための図である。 線取得部の動作の他の一例を説明するための図である。 仮位置/仮方向取得部の動作の他の一例を説明するための図である。 線取得部の動作の一例を説明するための図である。 線取得部の動作の一例を説明するための図である。 線取得部の動作の他の一例を説明するための図である。 交点取得部の動作の一例を説明するための図である。 キャラクタ制御部の動作の一例を説明するための図である。 ゲーム装置で実行される処理の一例を示すフロー図である。 ゲーム装置で実行される処理を説明するための図である。 ゲーム装置で実行される処理を説明するための図である。 ゲーム装置で実行される処理の他の一例を示すフロー図である。 キャラクタが壁に触る様子を表す画像を生成するための他の方法を説明するための図である。 キャラクタが壁に触る様子を表す画像を生成するための他の方法を説明するための図である。
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。ここでは、画像処理装置の一態様であるゲーム装置に本発明を適用した例について説明する。本発明の実施形態に係るゲーム装置(画像処理装置)は、例えば家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、携帯電話機、携帯情報端末(PDA)、パーソナルコンピュータ、又はサーバコンピュータ等によって実現される。ここでは、本発明の実施形態に係るゲーム装置を家庭用ゲーム機によって実現する例について説明する。
[1.ハードウェア構成]
図1は、本発明の実施形態に係るゲーム装置(画像処理装置)のハードウェア構成を示す図である。図1に示すゲーム装置10は、家庭用ゲーム機11、表示部32、音声出力部34、及び光ディスク36(情報記憶媒体)を含む。表示部32及び音声出力部34は家庭用ゲーム機11に接続される。例えば、家庭用テレビ受像機又は液晶ディスプレイ等が表示部32として用いられる。例えば、家庭用テレビ受像機に内蔵されたスピーカ又はヘッドホン等が音声出力部34として用いられる。
家庭用ゲーム機11は公知のコンピュータゲームシステムである。家庭用ゲーム機11は、バス12、制御部14、主記憶16、画像処理部18、入出力処理部20、音声処理部22、光ディスク読み取り部24、ハードディスク26、通信インタフェース28、及びコントローラ30を含む。
制御部14は一又は複数のマイクロプロセッサを含む。制御部14は、図示しないROMに格納されるオペレーティングシステムや、ハードディスク26又は光ディスク36から読み出されるプログラムに基づいて、家庭用ゲーム機11の各部を制御する処理やその他の情報処理を実行する。主記憶16は例えばRAMを含み、ハードディスク26又は光ディスク36から読み出されたプログラム及びデータが書き込まれる。主記憶16は制御部14の作業用メモリとしても用いられる。バス12はアドレス及びデータを家庭用ゲーム機11の各部でやり取りするためのものである。
画像処理部18はVRAMを含み、制御部14から送られる画像データに基づいてVRAM上にゲーム画面を描画し、VRAM上に描画されたゲーム画面をビデオ信号に変換して所定のタイミングで表示部32に出力する。
入出力処理部20は制御部14が音声処理部22、光ディスク読み取り部24、ハードディスク26、通信インタフェース28、及びコントローラ30にアクセスするためのインタフェースである。音声処理部22はサウンドバッファを含み、ハードディスク26又は光ディスク36からサウンドバッファに読み出された音声データを音声出力部34から出力する。通信インタフェース28はインターネット等の通信ネットワークに家庭用ゲーム機11を有線又は無線接続するためのインタフェースである。
光ディスク読み取り部24は光ディスク36に記録されたプログラムやデータを読み取る。なお、ここではプログラムやデータを家庭用ゲーム機11に供給するために光ディスク36を用いるが、メモリカード等、他の情報記憶媒体を用いるようにしてもよい。また、例えばインターネット等の通信ネットワークを介して遠隔地からプログラムやデータを家庭用ゲーム機11に供給するようにしてもよい。ハードディスク26は一般的なハードディスク装置(補助記憶装置)である。なお、以下で光ディスク36に記憶されることとして説明するプログラムやデータはハードディスク26に記憶されていてもよい。
コントローラ30はユーザが各種ゲーム操作を行うための操作部である。家庭用ゲーム機11には複数のコントローラ30を有線又は無線接続することが可能である。入出力処理部20は一定周期毎(例えば1/60秒ごと)にコントローラ30の状態をスキャンし、そのスキャン結果を表す操作信号をバス12を介して制御部14に渡す。制御部14はその操作信号に基づいてプレイヤのゲーム操作を判定する。
[2.仮想空間及び画面]
ゲーム装置10では、例えば、ユーザによって操作されるキャラクタが仮想空間内を移動するゲームが実行される。このゲームは、光ディスク36から読み出されたプログラムが実行されることによって実現される。
図2は仮想空間の一例を示す図である。図2に示す仮想空間40には、互いに直交する3つの座標軸(Xw,Yw,Zw軸)が設定された仮想3次元空間になっている。図2に示す仮想空間40には、床を表す床オブジェクト(以下、単に「床」と記載する。)42が配置されている。また、壁を表す壁オブジェクト(以下、単に「壁」と記載する。)44と、キャラクタを表すキャラクタオブジェクト(以下、単に「キャラクタ」と記載する。)46とが床42上に配置されている。キャラクタ46はユーザの操作に従って仮想空間40内を移動する。
仮想空間40に配置される各オブジェクトは複数のポリゴンを含んで構成される。また、キャラクタ46内にはスケルトンが設定される。スケルトンは、複数のボーンと、ボーン同士を接続するための複数のジョイントと、を含み、階層構造を有する。例えば、キャラクタ46の内部には、キャラクタ46の右手に関するスケルトンとして、「右上腕」、「右前腕」、「右手」のスケルトンが設定される。「右上腕」は「右前腕」の上位のスケルトンであり、「右前腕」は「右手」の上位のスケルトンである。
キャラクタ46の形状(姿勢)は、スケルトンの状態(例えば位置や回転角度)を変化させることによって制御される。例えば、あるスケルトンを回転させた場合、そのスケルトンよりも下位の階層のスケルトンも連動する。例えば、「右上腕」を回転させた場合、「右上腕」よりも下位の階層である「右前腕」や「右手」が「右上腕」の回転に合わせて動く。各スケルトンにはキャラクタ46の一又は複数の頂点が関連づけられる。スケルトンの状態が変化すると、そのスケルトンに関連づけられた頂点の位置が変化する。その結果として、キャラクタ46の形状(姿勢)が変化する。
仮想カメラ48(視点)から見た仮想空間40を表す画面が表示部32に表示される。本実施形態の場合、キャラクタ46が常に画面に表示されるように(言い換えれば、キャラクタ46が常に仮想カメラ48の視野領域に含まれるように)、仮想カメラ48が制御される。
以下、キャラクタ46がオブジェクト(例えば壁44)に触る様子を表す画像を生成するための技術について説明する。
[3.機能ブロック]
図3は、ゲーム装置10で実現される機能のうち、本発明に関連する機能を主に示す機能ブロック図である。図3に示すように、ゲーム装置10は、データ記憶部50、仮位置/仮方向取得部52、線取得部54、交点取得部56、キャラクタ制御部58、及び画像生成部60を含む。データ記憶部50は例えば主記憶16及び光ディスク36によって実現される。その他の機能ブロックは、制御部14がプログラムを実行することによって実現される。
[3−1]まず、データ記憶部50について説明する。データ記憶部50は、仮想空間40に配置される各オブジェクトに関するデータを記憶する。例えば、下記に示すようなデータがデータ記憶部50に記憶される。
(1)床42、壁44、及びキャラクタ46の形状を示すデータ
(2)床42及び壁44の位置を示すデータ
(3)キャラクタ46の現在の状態(例えば位置、向き、及び姿勢等)を示すデータ
(4)仮想カメラ48の現在の状態(例えば位置、視線方向、及び画角)を示すデータ
[3−2]次に、仮位置/仮方向取得部52及び線取得部54について説明する。
仮位置/仮方向取得部52は、オブジェクト(例えば壁44)に触るために用いられるキャラクタ46の部位の仮位置を取得する。「キャラクタ46の部位」とは、例えばキャラクタ46の手又は足等である。
または、仮位置/仮方向取得部52は、キャラクタ46本体から上記部位への仮方向を取得する。ここで、「キャラクタ46本体」とは、キャラクタ46の胴体部分のことを意味し、「仮方向」とは、例えば、キャラクタ46が手又は足を伸ばすおおよその方向のことを意味する。
以下、仮位置/仮方向取得部52が上記の仮位置を取得する場合の仮位置/仮方向取得部52及び線取得部54の動作と、仮位置/仮方向取得部52が上記の仮方向を取得する場合の仮位置/仮方向取得部52及び線取得部54の動作と、について説明する。なお、以下では、キャラクタ46が手で壁44に触る場合を例として、各機能ブロックの動作について説明する。
[3−2−1]まず、仮位置/仮方向取得部52が上記の仮位置を取得する場合の仮位置/仮方向取得部52及び線取得部54の動作について説明する。
この場合の仮位置/仮方向取得部52は、キャラクタ46の手の仮位置をキャラクタ46の位置と壁44の位置に基づいて決定する。図4は、仮位置/仮方向取得部52の動作の一例について説明するための図である。
例えば、仮位置/仮方向取得部52は、キャラクタ46に対応する球62が壁44に当たるか否かを判定する。ここで、球62は、キャラクタ46が壁44に当たるか否かの判定するための当たり判定用オブジェクトであり、キャラクタ46の位置に基づいて設定される。図4に示すように、球62の中心点(重心点)はキャラクタ46の代表点46oに設定される。キャラクタ46の代表点46oは、例えばキャラクタ46の腰の位置に設定される。また、球62の半径は所定距離(r)に設定される。所定距離(r)は、例えばキャラクタ46の腕の長さに基づいて設定され、キャラクタ46の手の届く距離に相当する。なお、当たり判定オブジェクトの形状は球に限られず、他の形状(例えば立方体又は直方体)であってもよい。また、球62の半径(所定距離(r))は腕の長さに基づく長さに限られない。
球62が壁44と当たる場合、仮位置/仮方向取得部52は、キャラクタ46の手の仮位置を取得する。例えば、球62と当たる壁44の領域内のいずれかの位置が、キャラクタ46の手の仮位置として決定される。図4に示す例では、球62と当たる壁44の領域内でキャラクタ46に最も近い位置64が仮位置66として決定されている。なお、キャラクタ46に最も近い位置64以外の位置が仮位置66として決定されるようにしてもよい。例えば、球62と当たる壁44の領域内のいずれかの位置がランダムに仮位置66として決定されるようにしてもよい。
上記のようにして仮位置66が仮位置/仮方向取得部52によって取得された場合、線取得部54は、その仮位置66に基づいて、キャラクタ46の代表点46oからオブジェクト(例えば壁44)に向かって伸びる少なくとも3本の線を取得する。図5及び図6は線取得部54の動作の一例を説明するための図である。図5及び図6において、面70は、上記仮位置66を含む面であり、この面70の法線方向は、仮位置66からキャラクタ46の代表点46oへの方向68と一致している。
例えば、線取得部54は、仮位置66と予め定められた位置関係を有する少なくとも3つの点を取得する。例えば図5に示す例では4つの点を取得する。すなわち、線取得部54は、面70上において仮位置66から左上方向に所定距離(Δd)移動してなる点72aを取得する。また、線取得部54は、面70上において仮位置66から左下方向に所定距離(Δd)移動してなる点72bを取得する。また、線取得部54は、面70上において仮位置66から右上方向に所定距離(Δd)移動してなる点72cを取得する。さらに、線取得部54は、面70上において仮位置66から右下方向に所定距離(Δd)移動してなる点72dを取得する。
そして、図6に示すように、線取得部54は、キャラクタ46の代表点46oから各々の点72a,72b,72c,72dへと伸ばした直線(及びその延長線)74a,74b,74c,74dを取得する。
なお、線取得部54による線の取得方法は上記の方法に限られない。例えば、線取得部54は、キャラクタ46の代表点46oから仮位置66への方向と所定の角度関係を有する少なくとも3つの線を取得するようにしてもよい。図7は、この場合の線取得部54による線の取得方法を説明するための図である。
例えば、線取得部54は、キャラクタ46の代表点46oから仮位置66への方向76を、キャラクタ46の代表点46oを回転中心として上方向に所定角度だけ回転させることによって得られる方向に伸ばした直線78aを取得する。なお、この直線78aは、面70上において仮位置66から上方向に所定距離だけ移動してなる点80aを通過する直線になる。また、線取得部54は、キャラクタ46の代表点46oを回転中心として、上記方向76を下方向に所定角度だけ回転させることによって得られる方向に伸ばした直線78bを取得する。なお、この直線78bは、面70上において仮位置66から下方向に所定距離だけ移動してなる点80bを通過する直線になる。
同様に、線取得部54は、キャラクタ46の代表点46oを回転中心として、上記方向76を左方向に所定角度だけ回転させることによって得られる方向を示す直線78cを取得する。なお、この直線78cは、面70上において仮位置66から左方向に所定距離だけ移動してなる点80cを通過する直線になる。さらに、線取得部54は、キャラクタ46の代表点46oを回転中心として、上記方向76を右方向に所定角度だけ回転させることによって得られる方向を示す直線78dを取得する。なお、この直線78dは、面70上において仮位置66から右方向に所定距離だけ移動してなる点80dを通過する直線になる。
[3−2−2]次に、仮位置/仮方向取得部52が上記の仮方向を取得する場合の仮位置/仮方向取得部52及び線取得部54の動作について説明する。
この場合の仮位置/仮方向取得部52は、キャラクタ46本体から上記部位(例えば手)への仮方向を、キャラクタ46の代表方向(例えば正面方向)に基づいて決定する。または、仮位置/仮方向取得部52は、キャラクタ46本体から上記部位(例えば手)への仮方向を、キャラクタ46の位置と壁44の位置とに基づいて決定する。
図8は、この場合の仮位置/仮方向取得部52の動作の一例を説明するための図である。例えば、仮位置/仮方向取得部52は、キャラクタ46が手を伸ばす方向を決定する。キャラクタ46が手を伸ばす方向は、例えば、キャラクタ46の代表方向(例えば正面方向)に基づいて決定される。例えば図8に示すように、キャラクタ46の正面方向46f自体がキャラクタ46が手を伸ばす方向82として決定される。なお、キャラクタ46が手を伸ばす方向82は、キャラクタ46と壁44との位置関係に基づいて決定されるようにしてもよい。
その後、仮位置/仮方向取得部52は、決定された方向82に伸ばした直線84が壁44と交わるか否かを判定する。直線84が壁44と交わる場合、仮位置/仮方向取得部52は、直線84と壁44との交点86と、キャラクタ46(代表点46o)と、の間の距離(l)が基準距離以下であるか否かを判定する。ここで、基準距離はキャラクタ46の手が届く距離に相当する。距離(l)が基準距離以下である場合、仮位置/仮方向取得部52は、上記決定された方向(直線84の方向)を、キャラクタ46本体(代表点46o)から手への仮方向88として取得する。
上記のようにして仮方向88が仮位置/仮方向取得部52によって取得された場合、線取得部54は、その仮方向88に基づいて、キャラクタ46の代表点46oからオブジェクト(例えば壁44)に向かって伸びる少なくとも3本の線を取得する。
図9は、この場合の線取得部54の動作の一例について説明するための図である。例えば、この場合では4つの線を取得する。すなわち、線取得部54は、キャラクタ46の代表点46oを回転中心として、仮方向88を上方向に所定角度だけ回転させることによって得られる方向に伸ばした直線90aを取得する。また、線取得部54は、キャラクタ46の代表点46oを回転中心として、仮方向88を下方向に所定角度だけ回転させることによって得られる方向に伸ばした直線90bを取得する。
同様に、線取得部54は、キャラクタ46の代表点46oを回転中心として、仮方向88を左方向に所定角度だけ回転させることによって得られる方向を示す直線90cを取得する。さらに、線取得部54は、キャラクタ46の代表点46oを回転中心として、仮方向88を右方向に所定角度だけ回転させることによって得られる方向を示す直線90dを取得する。
なお、線取得部54による線の取得方法は上記の方法に限られない。図10及び図11は、線取得部54による線の取得方法の他の一例を説明するための図である。
この場合の線取得部54は、キャラクタ46の代表点46oから仮方向88に伸ばした直線上の点92を取得する。例えば、この点92は、上記直線上の点であって、かつ、キャラクタ46の代表点46oからの距離が所定距離であるような点である。
そして、線取得部54は、上記点92と予め定められた位置関係を有する少なくとも3つの点を取得する。例えば図10に示すように、線取得部54は、面94上において上記点92から左上方向に所定距離(Δd)移動してなる点96aを取得する。ここで、面94は、上記点92を含む面であり、この面94の法線方向は、上記点92からキャラクタ46の代表点46oへの方向(すなわち、仮方向88の逆方向)と一致している。
また、線取得部54は、面94上において上記点92から左下方向に所定距離(Δd)移動してなる点96bを取得する。また、線取得部54は、面94上において上記点92から右上方向に所定距離(Δd)移動してなる点96cを取得する。さらに、線取得部54は、面94上において上記点92から右下方向に所定距離(Δd)移動してなる点96dを取得する。
そして、図11に示すように、線取得部54は、キャラクタ46の代表点46oから各々の点96a,96b,96c,96dへと伸ばした直線(及びその延長線)98a,98b,98c,98dを取得する。
[3−3]次に、交点取得部56について説明する。交点取得部56は、線取得部54によって取得された少なくとも3本の線の各々とオブジェクト(例えば壁44)との交点を取得する。
図12は、交点取得部56の動作の一例を説明するための図である。なお、図12ではキャラクタ46の右腕及び左腕を省略している。また、図12において、直線100a,100b,100c,100dは、線取得部54によって取得された4本の直線を示している。すなわち、図12における直線100a,100b,100c,100dは、図6における直線74a,74b,74c,74d、図7における直線78a,78b,78c,78d、図9における直線90a,90b,90c,90dや、図11における直線98a,98b,98c,98dに相当している。
図12に示すように、交点取得部56は、線取得部54によって取得された4本の直線100a,100b,100c,100dの各々と壁44との交点102a,102b,102c,102dを取得する。
[3−4]次に、キャラクタ制御部58について説明する。キャラクタ制御部58は、交点取得部56によって取得される少なくとも3つの交点を含む面に基づいて、キャラクタ46の上記部位(例えば手又は足)の位置を制御する。
図13は、キャラクタ制御部58の動作の一例を説明するための図である。例えば、図13に示すように、キャラクタ制御部58は、交点取得部56によって取得された交点102a〜102dを含む面104を特定する。例えば、キャラクタ制御部58は、交点取得部56によって取得された交点102a〜102dをそれぞれ頂点とする面104を特定する。
そして、図13に示すように、キャラクタ制御部58は、特定された面104にキャラクタ46の一方の手が触れるように、キャラクタ46の一方の手の位置を制御する。例えば、キャラクタ制御部58は、キャラクタ46の右手の位置を面104の代表点104o(例えば、重心点又は中心点)に設定する。なお、この場合、キャラクタ制御部58は、右手の位置に基づいて、右手のスケルトン以外の他のスケルトンの状態を決定し、キャラクタ46の姿勢を制御する。右手のスケルトンよりも上位の階層の各スケルトンの状態を決定する場合には、例えばインバースキネマティクス法のアルゴリズムが用いられる。
[3−5]次に、画像生成部60について説明する。画像生成部60は、視点から見たキャラクタ46及びオブジェクト(例えば壁44)を表す画像を生成する。すなわち、画像生成部60は、仮想カメラ48から見た仮想空間40を表す画像を生成する。
[4.処理]
次に、仮位置/仮方向取得部52、線取得部54、交点取得部56、キャラクタ制御部58、及び画像生成部60を実現するための処理について説明する。図14は、キャラクタ46に壁44を触らせる場合にゲーム装置10が実行する処理の一例を示すフロー図である。図14に示す処理を制御部14が実行することによって、上記機能ブロックが実現される。また、制御部14は光ディスク36に記憶されるプログラムに従って、図14に示す処理を実行する。
図14に示すように、まず、制御部14(仮位置/仮方向取得部52)は、キャラクタ46に対応する球62が壁44に当たる否かを判定する(S101)。例えば図4に示したように、中心点がキャラクタ46の代表点46oに設定され、かつ、半径が所定距離(r)に設定された球62が壁44に当たるか否かが判定される。
球62が壁44に当たる場合、制御部14(仮位置/仮方向取得部52)は、キャラクタ46の手の仮位置66を決定する(S102)。例えば図4に示したように、球62と当たる壁44の領域内でキャラクタ46に最も近い位置64が仮位置66として決定される。なお、仮位置66がキャラクタ46の正面方向よりも左側にある場合、キャラクタ46は左手で壁44に触ることになる。一方、仮位置66がキャラクタ46の正面方向よりも右側にある場合、キャラクタ46は右手で壁44に触ることになる。
その後、制御部14(線取得部54)は、キャラクタ46の代表点46oから壁44に向かって伸びる4本の線を、ステップS102で決定された仮位置66に基づいて取得する(S103)。例えば図5に示したような、仮位置66と所定の位置関係を有する4つの点72a,72b,72c,72dが取得され、図6に示したように、キャラクタ46の代表点46oから各々の点72a,72b,72c,72dに向かって伸びる直線(及びその延長線)74a,74b,74c,74dが取得される。または、例えば図7に示したような、キャラクタ46の代表点46oから仮位置66への方向と所定の角度関係を有する直線78a,78b,78c,78dが取得される。
その後、制御部14(交点取得部56)は、ステップS103で取得された4本の線の各々と壁44との交点を取得する(S104)。例えば図12に示したように、ステップS103で取得される4本の直線100a,100b,100c,100dの各々と壁44との交点102a,102b,102c,102dが取得される。そして、制御部14(キャラクタ制御部58)は、ステップS104で取得された4つの交点を含む面を特定する(S105)。例えば図12及び図13に示したように、4つの交点102a,102b,102c,102dを頂点とする矩形の面104が特定される。
その後、制御部14(キャラクタ制御部58)は、キャラクタ46の代表点46oから、ステップS105で特定された面の代表点まで伸びる直線が該面と交わる前に壁44と交わるか否かを判定する(S106)。図15は、このステップS106の処理について説明するための図である。図15に示す例では壁44に突起部分44pが存在している。また図15に示す例では、キャラクタ46の代表点46oから面104の代表点104oまで伸びる直線106と壁44との交点108が、面104の代表点104oよりもキャラクタ46に近くなっている。すなわち、上記直線106が面104と交わる前に壁44(突起部分44p)と交わっている。図15に示す例の場合、ステップS106の判定結果は「真(Y)」となる。
ステップS106において上記直線がステップS105で特定された面と交わる前に壁44と交わると判定された場合、制御部14(キャラクタ制御部58)は、ステップS105で特定された面の位置を修正する(S107)。図16は、このステップS107の処理について説明するための図である。ステップS107では、ステップS105で特定された面104をキャラクタ46への方向に平行移動させることによって、面104の位置が、上記直線106が面104と交わる前に壁44と交わらなくなるような位置に変更される。例えば、面104の代表点104oが、上記直線106と壁44との交点108と一致するように、面104の位置が変更される。ステップS106,S107の処理の意義については後述する。
ステップS107の処理が実行された場合、又は、ステップS106において上記直線がステップS105で特定された面と交わる前に壁44と交わらないと判定された場合、制御部14(キャラクタ制御部58)は、ステップS105で特定された面(又はステップS107で修正された面)に基づいて、キャラクタ46の手の位置を決定する(S108)。例えば図13に示したように、キャラクタ46の一方の手が面104の代表点104oを触るようにして、キャラクタ46の手の位置が決定される。つまり、キャラクタ46の一方の手の位置が面104の代表点104oに設定される。
ここで、ステップS106,S107の処理の意義について説明する。例えば、図15に示す例のように、キャラクタ46の代表点46oから面104の代表点104oまで伸びる直線106が面104と交わる前に壁44(突起部分44p)と交わる場合に、キャラクタ46の手が面104に触れるようにしてしまうと、キャラクタ46の手が壁44の内側に入ってしまう。この点、本実施形態では、ステップS106,S107の処理が実行されることによって、そのような不都合が発生しないように図られている。
ステップS108においてキャラクタ46の手の位置が決定された後、制御部14(キャラクタ制御部58)は、キャラクタ46の手の位置に基づいて、キャラクタ46の全身の姿勢を制御する(S109)。このステップS109では、例えばインバースキネマティクス法のアルゴリズムが用いられる。
そして、制御部14(画像生成部60)は、仮想カメラ48から見た仮想空間40を表す画像を生成する(S110)。生成された画像は表示部32に表示される。以上で本処理は終了する。
なお、ステップS104において、ステップS103で取得された線が壁44と交わらない場合には、ステップS105〜S109の処理を実行せずに、ステップS110の処理を実行するようにすればよい。
仮位置/仮方向取得部52、線取得部54、交点取得部56、キャラクタ制御部58、及び画像生成部60を実現するための処理は図14に示した処理に限られない。図17は、キャラクタ46に壁44を触らせる場合にゲーム装置10が実行する処理の他の一例を示すフロー図である。図17に示す処理は、ステップS101〜S103の処理の代わりに、ステップS201,S202の処理が実行される点で図14に示す処理と異なる。なお、図17におけるステップS103〜S110の処理は図14と同様である。
図17に示す処理では、制御部14(仮位置/仮方向取得部52)は、キャラクタ46本体から手への仮方向88を決定する(S201)。例えば図8に示したように、制御部14はキャラクタ46の正面方向46fを上記仮方向88として決定する。
その後、制御部14(線取得部54)は、ステップS201で決定された仮方向88に基づいて、キャラクタ46の代表点46oから壁44に向かって伸びる4本の線を取得する(S202)。例えば図9に示したような、仮方向88と所定の角度関係を有する直線90a,90b,90c,90dが取得される。または、例えば図10に示したような、キャラクタ46の代表点46oから仮方向88に伸びる直線上の点92が取得され、その点92と所定の位置関係を有する4つの点96a,96b,96c,96dが取得される。そして、図11に示したように、キャラクタ46の代表点46oから各々の点96a,96b,96c,96dに向かって伸びる直線98a,98b,98c,98dが取得される。
その後、制御部14(交点取得部56)は、ステップS202で取得された4本の線の各々と壁44との交点を取得する(S104)。ステップS104以降の処理は、図14と同様である。
[5.まとめ]
以上に説明したゲーム装置10によれば、キャラクタ46がオブジェクト(例えば壁44)に触る様子を表す画像を生成できるようになる。
ところで、キャラクタ46が壁44に触る様子を表す画像を生成する方法としては、下記に説明するような方法も考えられる。図18及び図19は、この方法について説明するための図であり、仮想空間40を真上から見た様子を表している。
この方法では、キャラクタ46に対応する球62が壁44に当たる場合、球62と当たった壁44の法線ベクトルを取得する(図18参照)。言い換えれば、すなわち、キャラクタ46から所定距離(r)以下の領域内に一又は複数の壁44が存在する場合、それらの壁44の法線ベクトルを取得する。図18に示す例の場合、球62と当たった壁44aの法線ベクトルNaと、球62と当たった壁44bの法線ベクトルNbと、を取得する。
その後、取得された法線ベクトルNa,Nbの平均ベクトルNを取得する(図19参照)。そして、この平均ベクトルNに基づいて、キャラクタ46の姿勢(手の位置)を制御する。例えば、図19に示すような面110を触るように、キャラクタ46の姿勢(手の位置)を制御する。その後、仮想カメラ48から見た仮想空間40を表す画像を生成する。このようにしても、キャラクタ46が壁44を触る様子を表す画像を生成することができる。
しかしながら、この方法を用いた場合、下記に説明するような問題がある。例えば、球62が2つの壁44a,44bが当たる場合には、キャラクタ46と壁44a,44bとの細かい位置関係に関係なく、常に同じ平均ベクトルNが取得され、その平均ベクトルNに基づいて、キャラクタ46の姿勢(手の位置)が制御される。その結果、キャラクタ46と壁44a,44bとの位置関係によっては、キャラクタ46の姿勢が不自然になってしまう場合がある。
また、例えば、多数の壁44の付近にキャラクタ46が位置しているような場合には、球62が多数の壁44に当たることになる。この場合、それらの多数の壁44の法線ベクトルの平均ベクトルNが取得されることになる。その結果、平均ベクトルNが、キャラクタ46と壁44との位置関係に合ったものにならない場合がある。このような場合、キャラクタ46の姿勢が不自然になってしまう。
この点、ゲーム装置10で採用している方法によれば、上記のような不都合が生じないように図りつつ、キャラクタ46がオブジェクト(例えば壁44)を触る様子を表す画像を生成することが可能になる。
[6.変形例]
なお、本発明は以上に説明した実施の形態に限定されるものではない。
例えば、線取得部54によって取得された線が壁44と交わらないような場合に限って、図18及び図19を用いて説明した方法を用いるようにしてもよい。
また例えば、キャラクタ46が触れるオブジェクトは壁44に限られず、壁44以外のオブジェクトであってもよい。また、キャラクタ46が触れるオブジェクトは、位置、姿勢や形状が変化しない静的オブジェクトに限られず、位置、姿勢や形状が変化する動的オブジェクトであってもよい。
また例えば、キャラクタ46がオブジェクトに触れるために用いる部位は手に限らず、手以外の部位(例えば足)であってもよい。
また例えば、本発明はゲーム装置10以外の画像処理装置にも適用することができる。
10 ゲーム装置、11 家庭用ゲーム機、12 バス、14 制御部、16 主記憶、18 画像処理部、20 入出力処理部、22 音声処理部、24 光ディスク読み取り部、26 ハードディスク、28 通信インタフェース、30 コントローラ、32 表示部、34 音声出力部、36 光ディスク、40 仮想空間、42 床オブジェクト、44 壁オブジェクト、46 キャラクタオブジェクト、48 仮想カメラ、50 データ記憶部、52 仮位置/仮方向取得部、54 線取得部、56 交点取得部、58 キャラクタ制御部、60 画像生成部。

Claims (4)

  1. 仮想空間においてキャラクタがオブジェクトに触る様子を表す画像を生成する画像処理装置において、
    前記オブジェクトに触るために用いられる前記キャラクタの部位の仮位置、又は前記キャラクタ本体から前記部位への仮方向を取得する仮位置/方向取得手段と、
    前記仮位置又は前記仮方向に基づいて、前記キャラクタの代表点から前記オブジェクトに向けて伸びる少なくとも3本の線を取得する線取得手段と、
    前記少なくとも3本の線の各々と前記オブジェクトとの交点を取得する交点取得手段と、
    前記交点取得手段によって取得される少なくとも3つの交点を含む面に基づいて、前記キャラクタの前記部位の位置を制御するキャラクタ制御手段と、
    前記仮想空間に設定された視点から見た前記キャラクタ及び前記オブジェクトを表す画像を生成する画像生成手段と、
    を含むことを特徴とする画像処理装置。
  2. 請求項1に記載の画像処理装置において、
    前記キャラクタ制御手段は、前記キャラクタから前記面に向かって伸びる線が前記面と交わる前に前記オブジェクトと交わる場合、前記面を、前記キャラクタへの方向に平行移動させることによって、前記面の位置を、前記キャラクタから前記面に向かって伸びる前記線が前記面と交わる前に前記オブジェクトと交わらないような位置に変更する手段を含むことを特徴とする画像処理装置。
  3. 仮想空間においてキャラクタがオブジェクトに触る様子を表す画像を生成する画像処理方法において、
    前記オブジェクトに触るために用いられる前記キャラクタの部位の仮位置、又は前記キャラクタ本体から前記部位への仮方向を取得する仮位置/方向取得ステップと、
    前記仮位置又は前記仮方向に基づいて、前記キャラクタの代表点から前記オブジェクトに向けて伸びる少なくとも3本の線を取得する線取得ステップと、
    前記少なくとも3本の線の各々と前記オブジェクトとの交点を取得する交点取得ステップと、
    前記交点取得ステップにおいて取得される少なくとも3つの交点を含む面に基づいて、前記キャラクタの前記部位の位置を制御するキャラクタ制御ステップと、
    前記仮想空間に設定された視点から見た前記キャラクタ及び前記オブジェクトを表す画像を生成する画像生成ステップと、
    を含むことを特徴とする画像処理方法。
  4. 仮想空間においてキャラクタがオブジェクトに触る様子を表す画像を生成する画像処理装置としてコンピュータを機能させるためのプログラムであって、
    前記オブジェクトに触るために用いられる前記キャラクタの部位の仮位置、又は前記キャラクタ本体から前記部位への仮方向を取得する仮位置/方向取得手段、
    前記仮位置又は前記仮方向に基づいて、前記キャラクタの代表点から前記オブジェクトに向けて伸びる少なくとも3本の線を取得する線取得手段、
    前記少なくとも3本の線の各々と前記オブジェクトとの交点を取得する交点取得手段、
    前記交点取得手段によって取得される少なくとも3つの交点を含む面に基づいて、前記キャラクタの前記部位の位置を制御するキャラクタ制御手段、及び、
    前記仮想空間に設定された視点から見た前記キャラクタ及び前記オブジェクトを表す画像を生成する画像生成手段、
    として前記コンピュータを機能させるためのプログラム。
JP2010049957A 2010-03-05 2010-03-05 画像処理装置、画像処理装置の制御方法及びプログラム Active JP4882012B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010049957A JP4882012B2 (ja) 2010-03-05 2010-03-05 画像処理装置、画像処理装置の制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010049957A JP4882012B2 (ja) 2010-03-05 2010-03-05 画像処理装置、画像処理装置の制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2011186689A true JP2011186689A (ja) 2011-09-22
JP4882012B2 JP4882012B2 (ja) 2012-02-22

Family

ID=44792891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010049957A Active JP4882012B2 (ja) 2010-03-05 2010-03-05 画像処理装置、画像処理装置の制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4882012B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001096062A (ja) * 2000-06-28 2001-04-10 Kce Japan:Kk ゲームシステム
JP2008040800A (ja) * 2006-08-07 2008-02-21 Konami Digital Entertainment:Kk シミュレーション装置、シミュレーション方法、ならびに、プログラム
JP2009146103A (ja) * 2007-12-13 2009-07-02 Konami Digital Entertainment Co Ltd 画像生成装置、画像生成方法、ならびに、プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001096062A (ja) * 2000-06-28 2001-04-10 Kce Japan:Kk ゲームシステム
JP2008040800A (ja) * 2006-08-07 2008-02-21 Konami Digital Entertainment:Kk シミュレーション装置、シミュレーション方法、ならびに、プログラム
JP2009146103A (ja) * 2007-12-13 2009-07-02 Konami Digital Entertainment Co Ltd 画像生成装置、画像生成方法、ならびに、プログラム

Also Published As

Publication number Publication date
JP4882012B2 (ja) 2012-02-22

Similar Documents

Publication Publication Date Title
JP4447568B2 (ja) ゲーム装置、ゲーム装置の制御方法及びプログラム
US7922588B2 (en) Storage medium having game program stored thereon and game apparatus
JP5210229B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
US7495665B2 (en) Storage medium having game program stored thereon and game apparatus
JP4205747B2 (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
JP2013127683A (ja) プログラム、情報記憶媒体、端末、サーバ及びネットワークシステム
JP2013097473A (ja) ゲーム処理システム、ゲーム処理方法、ゲーム処理装置およびゲーム処理プログラム
JP2006314632A (ja) ゲームプログラムおよびゲーム装置
JP2005056251A (ja) 3次元画像描画装置及び方法、プログラム、並びに記録媒体
US20050195184A1 (en) Game software and game machine
JP2013094303A (ja) ゲーム処理システム、ゲーム処理方法、ゲーム処理装置およびゲーム処理プログラム
JP4399472B2 (ja) ゲーム装置、ゲーム装置の制御方法及びプログラム
JP5210228B2 (ja) ゲーム装置、ゲーム装置の制御方法、及びプログラム
US8216066B2 (en) Game device, game device control method, program, and information storage medium
US20050020363A1 (en) Game system and game program
JP2008259880A (ja) ゲームプログラムおよびゲーム装置
JP4878240B2 (ja) 画像表示制御装置、画像表示方法及びプログラム
JP4882012B2 (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
JP2000113226A (ja) ビデオゲーム装置、ビデオゲームにおけるモデル表示方法及びビデオゲームにおけるモデル表示プログラムが記録された可読記録媒体
JP4485991B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP4236000B2 (ja) 3次元画像処理装置、3次元画像処理方法及びプログラム
JP4847594B2 (ja) 画像生成装置、画像生成方法及びプログラム
JP4695919B2 (ja) ゲームプログラムおよびゲーム装置
JP5229921B2 (ja) ゲーム装置、ゲーム装置の制御方法、及びプログラム
JP5063022B2 (ja) プログラム、情報記憶媒体及び画像生成システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111017

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111108

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111205

R150 Certificate of patent or registration of utility model

Ref document number: 4882012

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250