JP5101080B2 - ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法 - Google Patents

ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法 Download PDF

Info

Publication number
JP5101080B2
JP5101080B2 JP2006285317A JP2006285317A JP5101080B2 JP 5101080 B2 JP5101080 B2 JP 5101080B2 JP 2006285317 A JP2006285317 A JP 2006285317A JP 2006285317 A JP2006285317 A JP 2006285317A JP 5101080 B2 JP5101080 B2 JP 5101080B2
Authority
JP
Japan
Prior art keywords
target
display
game
contact
target object
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.)
Active
Application number
JP2006285317A
Other languages
English (en)
Other versions
JP2008099899A (ja
Inventor
敬三 太田
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.)
Nintendo Co Ltd
Original Assignee
Nintendo 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 Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2006285317A priority Critical patent/JP5101080B2/ja
Priority to DE602007009460T priority patent/DE602007009460D1/de
Priority to EP07102830A priority patent/EP1913987B1/en
Priority to US11/709,261 priority patent/US7862431B2/en
Publication of JP2008099899A publication Critical patent/JP2008099899A/ja
Application granted granted Critical
Publication of JP5101080B2 publication Critical patent/JP5101080B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • A63F13/10
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/577Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5258Changing parameters of virtual cameras by dynamically adapting the position of the virtual camera to keep a game object or game character in its viewing frustum, e.g. for tracking a character or a ball
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/573Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using trajectories of game objects, e.g. of a golf ball according to the point of impact
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/837Shooting of targets
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • A63F2300/643Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car by determining the impact between objects, e.g. collision detection
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • A63F2300/646Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car for calculating the trajectory of an object
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images

Description

この発明はゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法に関し、特にたとえば、ボールを打ったり、弾を撃ったりすることにより、目標とする標的が砕けたり、予め設定された変化をしたりするゲームのための、ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法に関する。
一般的に、ボールを打ったり(跳ね返したり)、弾を撃ったり(射出したり)することにより、目標とする標的が砕けたり、予め設定された変化をしたりするゲームがよく知られている。特許文献1の画像処理装置は、崩壊後に分散させる表示ブロックの各々をまとまって移動可能な表示要素として予め設定しておき、オブジェクトが崩壊する様を表現する際、当該オブジェクトが他のオブジェクトと衝突した衝突部分のブロックを消滅させ、消滅させたブロックに隣接するブロックを衝突の強さに応じて飛ばすなどの様子を表示する。
また、特許文献2のゲーム装置は、攻撃対象への破損状態を分かりやすく表示するために、攻撃対象に弾が着弾したことに応じて、攻撃対象から分離パーツを新たに生成して分離する。
特開2000−113225 特開2000−157729
しかしながら、特許文献1に記載の技術では、まとまって一つのオブジェクトを形成している表示ブロックの各々に対して、複雑な画像処理を行う必要がある。また、特許文献2に記載の技術も同様に、攻撃対象の破損を表示する時に、着弾箇所に応じて、分離パーツを分離する時に、新たにポリゴンを生成して処理を行う必要がある。
それゆえに、この発明の主たる目的は、新規なゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法を提供することである。
また、この発明の他の目的は、ゲーム画面が単調にならない範囲で画像処理を可及的簡素化できる、ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法を提供することである。
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
請求項1の発明は、操作手段と、記憶手段と、表示手段とを備えたゲーム装置のゲームプログラムであって、ゲーム装置のコンピュータを、操作情報取得手段、第1オブジェクト表示制御手段、目標オブジェクト表示手段、第2オブジェクト表示制御手段、接触判定手段、距離算出手段、方向算出手段、および選択手段として機能させる。操作情報取得手段は、操作手段から操作情報を取得する。第1オブジェクト表示制御手段は、操作情報取得手段によって取得された操作情報に基づいて、プレイヤが射出または跳ね返す第1オブジェクトを、記憶手段に記憶された第1オブジェクト画像データに基づいて表示手段に示する。目標オブジェクト表示手段は、プレイヤが第1オブジェクトを接触させる目標となる目標オブジェクトを表示手段に表示する。第2オブジェクト表示制御手段は、複数の部分画像から成り、目標オブジェクトと同じ外観となる第2オブジェクトを、記憶手段に記憶された複数組の第2オブジェクト画像データのいずれかに基づいて表示手段に示する。接触判定手段は、第1オブジェクトと目標オブジェクトとが接触したかどうかを判定する。距離算出手段は、接触判定手段によって接触したことが判定されたとき、目標オブジェクトの中心から接触位置までの距離を算出する。方向算出手段は、接触判定手段によって接触したことが判定されたとき、目標オブジェクトの中心から接触位置に向かう方向を算出する。選択手段は、距離算出手段で算出された距離に応じて、複数の第2オブジェクト画像データのいずれかを選択する。そして、第2オブジェクト表示制御手段は、選択手段によって選択された第2オブジェクト画像データに基づいて第2オブジェクトを方向算出手段で算出された方向を向くように表示手段に表示させ、表示後に、当該第2オブジェクトを構成する複数の部分画像のそれぞれをランダムに移動表示させる。
請求項1の発明では、ゲーム装置(12)は、操作手段(22)と、記憶手段(40)と、表示手段(34)とを備える。ゲームプログラムは、ゲーム装置のコンピュータを、操作情報取得手段(36,S5)、第1オブジェクト表示制御手段(36,S3)、目標オブジェクト表示手段(36,S1,S21)、第2オブジェクト表示制御手段(36,S17)、接触判定手段(36,S9,S15)、距離算出手段(36,S43)、方向算出手段(36,S47)、および選択手段(36,S45)として機能させる。操作情報取得手段は、操作手段から操作情報を取得する。第1オブジェクト表示制御手段は、操作情報取得手段によって取得された操作情報に基づいて、プレイヤが射出または跳ね返す第1オブジェクト(110)を、記憶手段に記憶された第1オブジェクト画像データ(92b)に基づいて表示手段に示する。目標オブジェクト表示手段は、プレイヤが第1オブジェクトを接触させる目標となる目標オブジェクト(108)を表示手段に表示する。第2オブジェクト表示制御手段は、複数の部分画像(P1,P2,P3,P4)から成り、目標オブジェクトと同じ外観となる第2オブジェクト(140,150,160)を、記憶手段に記憶された複数組の第2オブジェクト画像データ(92d)のいずれかに基づいて表示手段に示する。接触判定手段は、第1オブジェクトと目標オブジェクトとが接触したかどうかを判定する。距離算出手段は、接触判定手段によって接触したことが判定されたとき(S9およびS15で“YES”)、目標オブジェクトの中心(P)から接触位置(Q)までの距離(d)を算出する。方向算出手段は、接触判定手段によって接触したことが判定されたとき、目標オブジェクトの中心から接触位置に向かう方向を算出する。選択手段は、距離算出手段で算出された距離に応じて、複数の第2オブジェクト画像データのいずれかを選択する。そして、第2オブジェクト表示制御手段は、選択手段によって選択された第2オブジェクト画像データに基づいて第2オブジェクトを方向算出手段で算出された方向を向くように表示手段に表示させ、表示後に、当該第2オブジェクトを構成する複数の部分画像のそれぞれをランダムに移動表示させる。したがって、第1オブジェクトが目標オブジェクトに接触したことにより、目標オブジェクトが割れる様子が表示される。
請求項1の発明によれば、接触位置に応じて選択された第2オブジェクトを、目標オブジェクトの中心から接触位置に向かう方向に向くように表示させるだけなので、ゲーム画面が単調にならない範囲で画像処理を可及的簡素化することができる。
請求項2の発明は請求項1に従属し、第2オブジェクト表示制御手段は、第2オブジェクトを構成する複数の部分画像のそれぞれを、ランダムに移動表示させるとき、当該複数の部分画像のそれぞれに、ランダムな大きさの初速度を設定し、表示画面下方に重力を設定した物理計算に基づいて移動表示させる。
請求項2の発明では、第2オブジェクト表示制御手段は、第2オブジェクトを構成する複数の部分画像のそれぞれに、ランダムな大きさの初速度を設定し、表示画面下方に重力を設定した物理計算に基づいて移動表示させる。つまり、部分画像は、放物運動や鉛直投射運動するように移動制御される。
請求項2の発明によれば、各部分画像を物理計算により、その移動を制御するだけなので、簡単な計算によって目標オブジェクトが割れた様子を表現することができる。
請求項3の発明は請求項2に従属し、第2オブジェクト表示制御手段は、第2オブジェクトを構成する複数の部分画像の接合点についての第1ワールド座標を始点とし、当該複数の部分画像の各々の表示基準位置についての第2ワールド座標を終点とするベクトルの方向を、初速度の方向に決定する。
請求項3の発明では、第2オブジェクト表示制御手段は、第2オブジェクトを構成する複数の部分画像の接続点(120)についての第1ワールド座標を始点とし、当該複数の部分画像の各々の表示基準位置(P1G,P2G,P3G,P4G)についての第2ワールド座標を終点とするベクトルの向きを初速度の方向に決定する。
請求項3の発明によれば、接続点を中心として複数の部分画像が放射状に移動するような初速度の方向が決定されるので、目標オブジェクトが割れて飛び散る様子を表現することができる。このため、リアリティのあるゲーム画面を表示することができる。
請求項4の発明は請求項1ないし3のいずれかに従属し、部分画像は1または複数のポリゴンによって構成される。
請求項4の発明では、部分画像は1または複数のポリゴンによって構成される。このような部分画像によって第2オブジェクトは構成される。
請求項4の発明によれば、平面的形状や立体的形状の標的オブジェクトについての第2オブジェクトを構成することができる。
請求項5の発明は、操作手段と、記憶手段と、表示手段とを備えたゲーム装置であって、操作情報取得手段、第1オブジェクト表示制御手段、目標オブジェクト表示手段、第2オブジェクト表示制御手段、接触判定手段、距離算出手段、方向算出手段、および選択手段を備える。操作情報取得手段は、操作手段から操作情報を取得する。第1オブジェクト表示制御手段は、操作情報取得手段によって取得された操作情報に基づいて、プレイヤが射出または跳ね返す第1オブジェクトを、記憶手段に記憶された第1オブジェクト画像データに基づいて表示手段に表示する。目標オブジェクト表示手段は、プレイヤが第1オブジェクトを接触させる目標となる目標オブジェクトを表示手段に表示する。第2オブジェクト表示制御手段は、複数の部分画像から成り、目標オブジェクトと同じ外観となる第2オブジェクトを、記憶手段に記憶された複数組の第2オブジェクト画像データのいずれかに基づいて表示手段に表示する。接触判定手段は、第1オブジェクトと目標オブジェクトとが接触したかどうかを判定する。距離算出手段は、接触判定手段によって接触したことが判定されたとき、目標オブジェクトの中心から接触位置までの距離を算出する。方向算出手段は、接触判定手段によって接触したことが判定されたとき、目標オブジェクトの中心から接触位置に向かう方向を算出する。選択手段は、距離算出手段で算出された距離に応じて、複数組の第2オブジェクト画像データのいずれかを選択する。そして、第2オブジェクト表示制御手段は、選択手段によって選択された第2オブジェクト画像データに基づいて第2オブジェクトを方向算出手段で算出された方向を向くように表示手段に表示させ、表示後に、当該第2オブジェクトを構成する複数の部分画像のそれぞれをランダムに移動表示させる。
請求項6の発明は、操作手段と、記憶手段と、表示手段とを備えたゲームシステムであって、操作情報取得手段、第1オブジェクト表示制御手段、目標オブジェクト表示手段、第2オブジェクト表示制御手段、接触判定手段、距離算出手段、方向算出手段、および選択手段を備える。操作情報取得手段は、操作手段から操作情報を取得する。第1オブジェクト表示制御手段は、操作情報取得手段によって取得された操作情報に基づいて、プレイヤが射出または跳ね返す第1オブジェクトを、記憶手段に記憶された第1オブジェクト画像データに基づいて表示手段に表示する。目標オブジェクト表示手段は、プレイヤが第1オブジェクトを接触させる目標となる目標オブジェクトを表示手段に表示する。第2オブジェクト表示制御手段は、複数の部分画像から成り、目標オブジェクトと同じ外観となる第2オブジェクトを、記憶手段に記憶された複数組の第2オブジェクト画像データのいずれかに基づいて表示手段に表示する。接触判定手段は、第1オブジェクトと目標オブジェクトとが接触したかどうかを判定する。距離算出手段は、接触判定手段によって接触したことが判定されたとき、目標オブジェクトの中心から接触位置までの距離を算出する。方向算出手段は、接触判定手段によって接触したことが判定されたとき、目標オブジェクトの中心から接触位置に向かう方向を算出する。選択手段は、距離算出手段で算出された距離に応じて、複数組の第2オブジェクト画像データのいずれかを選択する。そして、第2オブジェクト表示制御手段は、選択手段によって選択された第2オブジェクト画像データに基づいて第2オブジェクトを方向算出手段で算出された方向を向くように表示手段に表示させ、表示後に、当該第2オブジェクトを構成する複数の部分画像のそれぞれをランダムに移動表示させる。
請求項7の発明は、操作手段と、記憶手段と、表示手段とを備えたコンピュータのゲーム制御方法であって、コンピュータは、(a)操作手段から操作情報を取得し、(b)ステップ(a)において取得した操作情報に基づいて、プレイヤが射出または跳ね返す第1オブジェクトを、記憶手段に記憶された第1オブジェクト画像データに基づいて表示手段に表示し、(c)プレイヤが第1オブジェクトを接触させる目標となる目標オブジェクトを表示手段に表示し、(d)第1オブジェクトと目標オブジェクトとが接触したかどうかを判定し、(e)ステップ(d)において接触したことを判定したとき、目標オブジェクトの中心から接触位置までの距離を算出し、(f)ステップ(d)において接触したことを判定したとき、目標オブジェクトの中心から接触位置に向かう方向を算出し、(g)複数の部分画像から成り、目標オブジェクトと同じ外観となる第2オブジェクトに対応して記憶手段に記憶された複数組の第2オブジェクト画像データのいずれかを、ステップ(e)において算出した距離に応じて選択し、そして(h)ステップ(g)において選択した第2オブジェクト画像データに基づいて第2オブジェクトをステップ(f)において算出した方向を向くように表示手段に表示し、表示後に、当該第2オブジェクトを構成する複数の部分画像のそれぞれをランダムに移動表示する、ゲーム制御方法である。
請求項5−7の発明においても、請求項1の発明と同様に、ゲーム画面が単調にならない範囲で画像処理を可及的簡素化することができる。
この発明によれば、接触位置に応じて選択された第2オブジェクトを、目標オブジェクトの中心から接触位置に向かう方向に向くように表示させるだけなので、ゲーム画面が単調にならない範囲で画像処理を可及的簡素化することができる。
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
図1を参照して、この発明の一実施例であるゲームシステム10は、ビデオゲーム装置12およびコントローラ22を含む。なお、この実施例では、ビデオゲーム装置12は、最大4つのコントローラ22と通信可能に設計されている。また、ビデオゲーム装置12と各コントローラ22とは、無線によって接続される。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。
なお、この実施例では、ビデオゲーム装置12とコントローラ22との間では無線通信を実行するため、本来的には「接続」の用語を用いるべきではない。しかしながら、ビデオゲーム装置12とコントローラ22との間での通信可能な連係状態を表す用語として、有線通信の場合の用語を借りて、便宜上「接続」と表現することとする。
ビデオゲーム装置12は、略直方体のハウジング14を含み、ハウジング14の前面にはディスクスロット16が設けられる。ディスクスロット16から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク18が挿入されて、ハウジング14内のディスクドライブ68(図2参照)に装着される。
また、ビデオゲーム装置12のハウジング14の前面であり、ディスクスロット16の近傍には、メモリカードスロットカバー28が設けられる。このメモリカードスロットカバー28の内側には、メモリカードスロット(図示せず)が設けられ、外部メモリカード(以下、単に「メモリカード」という。)30(図2参照)が挿入される。メモリカード30は、光ディスク18から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカード30に対して行うことに代えて、たとえばビデオゲーム装置12の内部にフラッシュメモリ等の内部メモリを設けて、当該内部メモリに対して保存を行うようにしてもよい。
ビデオゲーム装置12のハウジング14の後面には、AVケーブルコネクタ(図示せず)が設けられ、そのコネクタを用いて、AVケーブル32を通してビデオゲーム装置12にモニタ34を接続する。このモニタ34は典型的にはカラーテレビジョン受像機であり、AVケーブル32は、ビデオゲーム装置12からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ(モニタ)34の画面上にたとえば3次元(3D)ビデオゲームのゲーム画像が表示され、左右のスピーカ34aからゲーム音楽や効果音などのステレオゲーム音声が出力される。
なお、ビデオゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、ビデオゲーム装置12は、家庭用電源(商用電源)を、駆動に適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
このゲームシステム10において、ユーザまたはプレイヤがゲーム(または他のアプリケーション)をプレイするために、ユーザはまずビデオゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)をストアしている適宜の光ディスク18を選択し、その光ディスク18をビデオゲーム装置12のディスクスロット16を通してディスクドライブ68にローディングする。応じて、ビデオゲーム装置12がその光ディスク18にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはビデオゲーム装置12に入力を与えるためにコントローラ22を操作する。
図2は図1実施例のビデオゲームシステム10の電気的な構成を示すブロック図である。ビデオゲーム装置12には、CPU36が設けられる。このCPU36は、ビデオゲーム装置12の全体的な制御を担当する。CPU36は、ゲームプロセッサとして機能し、このCPU36には、バスを介して、メモリコントローラ38が接続される。メモリコントローラ38は主として、CPU36の制御の下で、バスを介して接続されるメインメモリ40の書込みや読出しを制御する。このメモリコントローラ38にはGPU(Graphics Processing Unit) 42が接続される。
GPU42は、描画手段の一部を形成し、たとえばシングルチップASICで構成され、メモリコントローラ38を介してCPU36からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従って、ジオメトリユニット44およびレンダリングユニット46によって3Dのゲーム画像を生成する。つまり、ジオメトリユニット44は、3次元座標系の各種オブジェクト(複数のポリゴンで構成されている。そして、ポリゴンとは少なくとも3つの頂点座標によって定義される多角形平面をいう。)の回転,移動,変形等の座標演算処理を行う。レンダリングユニット46は、各種オブジェクトの各ポリゴンにテクスチャ(模様画像)を貼り付けるなどの画像生成処理を施す。したがって、GPU42によって、ゲーム画面上に表示すべき3次元画像データが作成され、その画像データがフレームバッファ48内に記憶される。
なお、GPU42が作画コマンドを実行するにあたって必要なデータ(プリミティブまたはポリゴンやテクスチャ等)は、GPU42がメモリコントローラ38を介して、メインメモリ40から入手する。
フレームバッファ48は、たとえばラスタスキャンモニタ34の1フレーム分の画像データを描画(蓄積)しておくためのメモリであり、GPU42によって1フレーム毎に書き換えられる。具体的には、フレームバッファ48は、1画素(ピクセル)毎に、画像の色情報を順序立てて記憶している。ここで、色情報は、R,G,B,Aについてのデータであり、たとえば、8ビットのR(赤)データ、8ビットのG(緑)データ、8ビットのB(青)データおよび8ビットのA(アルファ)データである。なお、Aデータは、マスク(マット画像)についてのデータである。後述のビデオI/F58がメモリコントローラ38を介してフレームバッファ48のデータを読み出すことによって、モニタ34の画面上に3次元ゲーム画像が表示される。
また、Zバッファ50は、フレームバッファ48に対応する画素数×1画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ48の各記憶位置に対応するドットの奥行き情報または奥行きデータ(Z値)を記憶するものである。
なお、フレームバッファ48およびZバッファ50は、ともにメインメモリ40の一部を用いて構成されてもよく、また、これらはGPU42の内部に設けられてもよい。
メモリコントローラ38はまた、DSP(Digital Signal Processor)52を介して、オーディオ用のRAM(以下、「ARAM」という。)54に接続される。したがって、メモリコントローラ38は、メインメモリ40だけでなく、サブメモリとしてのARAM54の書込みおよび/または読出しを制御する。
DSP52は、サウンドプロセッサとして働き、メインメモリ40に記憶されたサウンドデータ(図示せず)を用いたり、ARAM54に書き込まれている音波形(音色)データ(図示せず)を用いたりして、ゲームに必要な音、音声或いは音楽に対応するオーディオデータを生成する。
メモリコントローラ38は、さらに、バスによって、各インタフェース(I/F)56,58,60,62および64に接続される。コントローラI/F56は、ビデオゲーム装置12にBluetooth通信ユニット66を介して接続されるコントローラ22のためのインタフェースである。具体的に言うと、Bluetooth通信ユニット66は、コントローラ22から送信される入力データを受信し、コントローラI/F56は、その入力データを、メモリコントローラ38を通してCPU36に与える。ただし、この実施例では、入力データは、後述する、操作データおよび加速度データの少なくとも一方を含む。
なお、図2では、簡単のため、1台のコントローラ22を示してあるが、図1を用いて説明したように、ビデオゲーム装置12には、最大で4台のコントローラ22が通信可能に接続される。
ビデオI/F58は、フレームバッファ48にアクセスし、GPU42で作成した画像データを読み出して、画像信号または画像データ(ディジタルRGBAピクセル値)をAVケーブル32(図1)を介してモニタ34に与える。
外部メモリI/F60は、ビデオゲーム装置12に挿入されるメモリカード30をメモリコントローラ38に連係させる。それによって、メモリコントローラ38を介して、CPU36がこのメモリカード30にデータを書込み、またはメモリカード30からデータを読み出すことができる。オーディオI/F62は、メモリコントローラ38を通してDSP52から与えられるオーディオデータまたは光ディスク18から読み出されたオーディオストリームを受け、それらに応じたオーディオ信号(音声信号)をモニタ34のスピーカ34aに与える。
そして、ディスクI/F64は、ディスクドライブ68をメモリコントローラ38に接続し、したがって、CPU36がディスクドライブ16を制御する。このディスクドライブ68によって光ディスク18から読み出されたプログラムデータやテクスチャデータ等が、CPU36の制御の下で、メインメモリ40に書き込まれる。
図3(A)および図3(B)は、コントローラ22の外観の一例を示す。図3(A)はコントローラ22を上面側から見た斜視図であり、図3(B)はコントローラ22を下面側から見た斜視図である。
図3(A)および図3(B)を参照して、コントローラ22は、たとえばプラスチック成型によって形成されたハウジング22aを有している。ハウジング22aは、略直方体形状であり、ユーザが片手で把持可能な大きさである。ハウジング22a(コントローラ22)には、入力手段(複数のボタンないしスイッチ)26が設けられる。具体的には、図3(A)に示すように、ハウジング22aの上面には、十字キー26a,Xボタン26b,Yボタン26c,Aボタン26d,セレクトスイッチ26e,メニュー(ホーム)スイッチ26f,スタートスイッチ26gおよび電源スイッチ26hが設けられる。また、図3(B)に示すように、ハウジング22aの下面に傾斜面が形成されており、この傾斜面に、Bトリガースイッチ26iが設けられる。
十字キー26aは、4方向プッシュスイッチであり、矢印で示す4つの方向、前(または上)、後ろ(または下)、右および左の操作部を含む。この操作部のいずれか1つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト(プレイヤキャラクタまたはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
Xボタン26bおよびYボタン26cは、それぞれ、押しボタンスイッチであり、3次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整するために使用される。または、Xボタン26bおよびYボタン26cは、Aボタン26dおよびBトリガースイッチ26iと同じ操作或いは補助的な操作をする場合に用いることもあり得る。
Aボタンスイッチ26dは、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ(撃つ,跳ね返す)、投げる(射出する)、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、打つ、武器を使うなどを指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。
セレクトスイッチ26e、メニュースイッチ26f、スタートスイッチ26gおよび電源スイッチ26hもまた、押しボタンスイッチである。セレクトスイッチ26eは、ゲームモードを選択するために使用される。メニュースイッチ26fは、ゲームメニュー(メニュー画面)を表示するために使用される。スタートスイッチ26gは、ゲームを開始(再開)したり、一時停止したりするなどのために使用される。電源スイッチ26hは、ビデオゲーム装置12の電源を遠隔操作によってオン/オフするために使用される。
なお、この実施例では、コントローラ22自体をオン/オフするための電源スイッチは設けておらず、コントローラ22の入力手段26のいずれかを操作することによってコントローラ22はオンとなり、一定時間(たとえば、30秒)以上操作しなければ自動的にオフとなるようにしてある。
Bトリガースイッチ26iもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガーを入力したり、コントローラ22で選択した位置を指定したりするために使用される。ただし、Bトリガースイッチ26iを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Bトリガースイッチ26iは、通常のBボタンと同様に機能し、Aボタン26dによって決定したアクションを取り消すなどのために使用される。
また、図3(A)に示すように、ハウジング22aの後端面に外部拡張コネクタ22bが設けられ、ハウジング22aの上面であり、後端面側にはインジケータ22cが設けられる。外部拡張コネクタ22bは、図示しない別のコントローラを接続するためなどに使用される。インジケータ22cは、たとえば、4つのLEDで構成され、4つのうちのいずれか1つを点灯することにより、コントローラ22の識別情報(コントローラ番号)を示す。
なお、図3(A)および図3(B)に示したコントローラ22の形状や、各入力手段26の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変された場合であっても、本発明を実現できることは言うまでもない。
図4はコントローラ22の電気的な構成を示すブロック図である。この図4を参照して、コントローラ22はマイコン70を含み、このマイコン70には、内部バス(図示せず)によって、入力手段26、メモリ72、加速度センサ74および無線モジュール76が接続される。また、無線モジュール76には、アンテナ78が接続される。
なお、図4では、簡単のため、上述した外部拡張コネクタ22b、インジケータ22c(LED)および電源回路は省略してある。また、図示は省略するが、コントローラ22には、バイブレータやスピーカなども内蔵される。
マイコン70は、コントローラ22の全体制御を司り、入力手段26および加速度センサ74によって入力された情報(入力情報)を、入力データとして無線モジュール76およびアンテナ78を介してビデオゲーム装置12に送信(入力)する。このとき、マイコン70は、メモリ72を作業領域ないしバッファ領域として用いる。
上述した入力手段26(26a−26i)からの操作信号(操作データ)は、マイコン70に入力され、マイコン70は操作データを一旦メモリ72に記憶する。
また、加速度センサ74は、コントローラ22の縦方向(y軸方向)、横方向(x軸方向)および前後方向(z軸方向)の3軸で各々の加速度を検出する。この加速度センサ74は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
なお、図3(A)および図3(B)では省略したが、この実施例では、加速度センサ74は、ハウジング22aの内部であり、十字キー26aが配置される付近に設けられる。また、図3(A)および図3(B)に示すように、加速度センサ74(コントローラ22)の座標系は固定的に決定される。
たとえば、加速度センサ74は、第1所定時間(たとえば、200msec)毎に、x軸,y軸,z軸の各々についての加速度(ax,ay,az)を検出し、検出した加速度のデータ(加速度データ)をマイコン70に入力する。たとえば、加速度センサ74は、各軸方向の加速度を、−2.0g〜2.0g(gは現実世界における重力加速度である。以下、同じ。)の範囲で検出する。マイコン70は、加速度センサ74から与えられる加速度データを、第2所定時間(たとえば、1フレーム:画面更新単位時間(1/60sec))毎に検出し、一旦メモリ72に記憶する。
したがって、マイコン70は、操作データおよび加速度データの少なくとも一方を含む入力データを作成し、作成した入力データを、第3所定時間(たとえば、1フレーム)毎にビデオゲーム装置12に送信する。
無線モジュール76は、たとえばBluetoothの技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ78から放射する。つまり、入力データは、無線モジュール76によって微弱電波信号に変調されてアンテナ78(コントローラ22)から送信される。この微弱電波信号が上述したビデオゲーム装置12に設けられたBluetooth通信ユニット66によって受信される。受信された微弱電波は、復調(復号)および増幅などの処理を施され、したがって、ビデオゲーム装置12(CPU36)は、コントローラ22からの入力データを取得することができる。そして、CPU36は、取得した入力データとプログラム(ゲームプログラム)とに従って処理(ゲーム処理)を行う。
図5は、この実施例のゲームシステム10でプレイ可能な仮想ゲームのゲーム画面100の一例を示す図解図である。この図5を参照して、ゲーム画面100には、プレイヤキャラクタ102が表示され、このプレイヤキャラクタ102はラケット104を持っている。また、壁106には、標的(的)としてのオブジェクト(的オブジェクト)108が表示される。この実施例では、的オブジェクト108は円形ないし円盤の形状を有している。また、ゲーム画面100には、ボール110が表示される。
たとえば、ゲーム画面100では、プレイヤキャラクタ102は、プレイヤの操作に従って、サーブされたまたは壁106(的オブジェクト108を含む。)に当って跳ね返されたボール110を打つ。このとき、プレイヤは、的オブジェクト108に狙いを定める。ただし、サーブされるボール110は、ゲーム画面100の任意の位置で出現し、壁106や床に当るなどして、プレイヤキャラクタ102に向かって移動される。
なお、図5のゲーム画面100では、プレイヤキャラクタ102が壁106に当って跳ね返されたボール110を打った様子が示される。
また、この実施例では、3次元仮想空間の座標(ワールド座標)は、水平面の左右方向(横方向)にX軸があり、水平面の前後方向(奥行き方向)にZ軸があり、上下方向(高さ方向)にY軸があるものとする。そして、右方向がX軸のプラス方向であり、紙面に対して垂直上方向がZ軸のプラス方向であり、上方向がY軸のプラス方向である。
図示は省略するが、たとえば、プレイヤは、コントローラ22を片手で持ち、実際のラケットを振るような動作(振り操作)をすることにより、プレイヤキャラクタ102にボール110を打撃する動作(打撃動作)をさせることができる。これは、上述したような加速度センサ74からの加速度データを検出することにより可能である。詳細な説明は省略するが、プレイヤがコントローラ22を正しく握り、振り操作を行うと、加速度センサ74のz軸方向に一定値(2.0g)以上の加速度が、一定時間(たとえば、数十フレーム)以上現れる。CPU36は、入力データを検出して、それに含まれる加速度データを検出し、振り操作すなわち打撃動作の指示があるかどうかを判断する。
ただし、この実施例では、コントローラ22を振り操作することにより、打撃動作の指示を入力するようにしてあるが、コントローラ22のボタン操作によって打撃動作を指示することもできる。
プレイヤキャラクタ102がボール110を打ち、そのボール110が的オブジェクト108に接触する(当る,衝突する)と、当該的オブジェクト108は割れて、地面ないし床面に落下する。図6(A)は、プレイヤキャラクタ102が打ったボール110が的オブジェクト108に衝突した直後の様子を示すゲーム画面100が表示される。ただし、分かり易く示すために、ボール110は省略してある。この図6(A)のゲーム画面100では、的オブジェクト108が割れる場合の中心位置(割れ中心位置)120を黒丸印で示してあるが、実際のゲーム画面110においては、この割れ中心位置120すなわち黒丸印は表示されない。また、図6(B)には、割れた的オブジェクト108が落下している様子を示すゲーム画面100が表示される。
なお、プレイヤキャラクタ102が打ったボール110が的オブジェクト108に衝突すると、点数が加算(得点処理)される。たとえば、衝突位置が的オブジェクト108の中心に近い程、点数が高くなる。また、プレイヤキャラクタ102がボール110を的オブジェクト108に連続して当てることができた場合には、通常の点数にボーナスを加算するようにしてもよい。
ただし、図示は省略するが、プレイヤキャラクタ102が打ったボール110が的オブジェクト108に当らない場合には、そのまま壁108や床に当って跳ね返ったり、所定の範囲(図示しないコート)の外に出たりする。ただし、プレイヤキャラクタ102が打ったボール110がコートの外に出た場合には、点数が減算(減点処理)される。または、プレイヤキャラクタ102のライフ(たとえば、使用可能なボール110の数)が減算される。
ここで、上述したように、ボール110が的オブジェクト108に衝突したことにより、的オブジェクト108が割れる様子を表現するような場合には、たとえば、的オブジェクト108を多数の部分画像(部品)で構成しておき、ボール110の衝突した位置(衝突位置)を検出して、その衝突位置を中心として各部品(パーツ)が放射状に飛び散り、その後、各パーツが落下するように移動表示して、的オブジェクト108が割れる様子を表現することが考えられる。
しかし、1種類の的オブジェクト108を用いる場合には、様々な衝突位置を想定すると、当該的オブジェクト108を比較的細かい大きさのパーツで構成する必要がある。かかる場合には、各パーツについての移動軌跡を算出する必要があるため、その計算処理の負担が大きく、しかも画像処理の負担も大きくなってしまう。
このため、的オブジェクト108が割れる様子のアニメーションを複数種類用意しておき、ボール108の当った位置に応じて1のアニメーションを選択し、選択したアニメーションに従って的オブジェト108が割れる様子を再生することも考えられる。しかし、アニメーションを開発する手間やメモリ容量を考慮すると、そのような方法をゲームに採用することは適当ではない。また、開発の手間やメモリ容量の圧迫を回避するため、アニメーションの数を減らすと、ゲーム画面が不自然であったり、ゲーム画面が単調になったりして、プレイヤがゲームに飽きてしまう怖れがある。
そこで、この実施例では、単調なゲーム画面とならず、しかも見た目の不自然さを失わない範囲で画像処理を可及的簡素化するようにしてある。以下、具体的に説明する。
図7(A)〜図7(D)に示すように、この実施例の仮想ゲームでは、ボール110が衝突していない通常の的オブジェクト108を表示するための画像(通常的画像)130およびボール110の衝突により的オブジェクト108が割れる様子を表示するための3種類の画像(割れ的1画像140,割れ的2画像150,割れ的3画像160)が予め用意されている。
図7(A)に示す通常的画像130は、複数のポリゴンを組み合わせることにより形成された円形ないし円盤のポリゴンモデルに、大きさの異なる同心円によって領域が区別された模様を構成するテクスチャが貼り付けられている。図面の都合上、単に円を描くことにより、領域が区別されていることを示してあるが、実際には、色分けしたり、同一色で輝度を変化させたり、モノクロで輝度を変化させたりして、領域が区別される。
また、図7(B)は割れ的1画像140を示し、図7(C)は割れ的2画像150を示し、そして、図7(D)は割れ的3画像160を示す。後述するように、割れ的1画像140、割れ的2画像150および割れ的3画像160は、ボール110が的オブジェクト108に衝突した位置に応じて選択的に使用される。簡単に説明すると、ボール110が的オブジェクト108の中央ないしその近傍に衝突すると、割れ的1画像140が選択される。また、ボール110が的オブジェクト108の端部に衝突すると、割れ的3画像160が選択される。さらに、ボール110が的オブジェクト108の中央部と端部との間付近に衝突すると、割れ的2画像150が選択される。
図7(B)に示す割れ的1画像140は、4つの部分画像すなわちパーツP1,P2,P3,P4によって構成される。図面から分かるように、割れ的1画像140を構成する4つのパーツP1,P2,P3,P4は、接合点(割れ中心位置)120を基準にして接合されている。この状態では、割れ的画像140は、通常的画像130と外観が同じである(同一形状、同一の大きさ、同一模様。以下、同様。)。また、割れ的1画像140では、割れ中心位置120はその中心に設定される。
ただし、図7(B)に示す割れ的1画像140では、各パーツP1,P2,P3,P4の形状等を分かり易くするために、各パーツP1,P2,P3,P4の外形線(区切り線)を示してある。また、割れ中心位置120の黒丸印が表示されない点は上述したとおりである。さらに、図示は省略するが、パーツP1,P2,P3,P4のそれぞれは、複数のポリゴンによって構成される。ただし、パーツは、1のポリゴンで構成されることもあり得る。さらにまた、この実施例では、簡単のため、4つのパーツP1−P4で割れ的1画像140が構成されているように示してあるが、パーツの数や形状は適宜変更可能である。これらの点は、後述する割れ的2画像150および割れ的3画像160についても同じである。
図7(C)に示す割れ的2画像150もまた、4つのパーツP1,P2,P3,P4で構成される。図面から分かるように、割れ的2画像150を構成する4つのパーツP1,P2,P3,P4は、割れ中心位置120を基準にして接合されている。この状態では、割れ的2画像150は、通常的画像130と外観が同じである。また、割れ的2画像150では、割れ中心位置120は、その中心から少し外周方向に外れた位置に設定される。
図7(D)に示す割れ的3画像160もまた、4つのパーツP1,P2,P3,P4で構成される。図面から分かるように、割れ的3画像160を構成する4つのパーツP1,P2,P3,P4は、割れ中心位置120を基準にして接合されている。この状態においては、割れ的3画像160は、通常的画像130と外観が同じである。また、割れ的3画像160では、割れ中心位置120は、その外周近傍の端部に設定される。
ただし、割れ的画像(140,150,160)はそれぞれローカル座標を有しており、ローカル座標系では、図7(B)−図7(D)を参照して分かるように、それぞれの割れ中心位置120は、該当する割れ的画像(140,150,160)の基準軸(基準方向)となるX軸上のプラス(原点を含む。)側に来るように設定される。
次に、的オブジェクト108が割れる様子をゲーム画面100に表示する方法について説明する。図8(A)は、的オブジェクト108であり、ボール110の衝突位置Qが黒丸印で示される。この衝突位置Qは実際にボール110が的オブジェクト108に衝突した位置であり、割れ的画像(140,150,160)の割れ中心位置120とは異なる。
なお、図8(A)に点線で示す横棒は、3次元仮想空間(ワールド座標)のX軸に平行な直線であり、同じく点線で示す縦棒は、ワールド座標のY軸に平行な直線であり、いずれの直線も的オブジェクト108の中心Pを通る。
たとえば、ボール110が的オブジェクト108に衝突すると、衝突位置Qが検出され、中心P(x1,y1,z1)と衝突位置Q(x2,y2,z2)との距離dが算出される。具体的には、距離dは数1に従って算出される。なお、この実施例の的オブジェクト108は、平面的なオブジェクトであり、z1とz2とは等しいため、Z成分は無視してある。
[数1]
距離d=√{(x1−x2)+(y1−y2)
距離dが算出されると、この距離dに応じて、割れ的画像(140,150,160)が選択される。この実施例では、図9に示すような割れ的画像選択テーブルが用意されており、この割れ的画像選択テーブルに従って割れ的画像(140,150,160)が選択されるのである。図9を参照して分かるように、距離dが長さL1未満である場合には、衝突位置Qが通常的画像130の中心Oないしその近傍であるため、割れ的1画像140が選択される。また、距離dが長さL1以上長さL2未満である場合には、衝突位置Qが通常的画像130の中央よりも外側で端部よりも内側であるため、割れ的2画像150が選択される。そして、距離dが長さL2以上である場合には、衝突位置Qが通常的画像130の端部付近であるため、割れ的3画像160が選択される。このように、割れ的画像選択テーブルに従って割れ的画像(140,150,160)を選択するのは、衝突位置Qと割れ中心位置120とを一致ないしほぼ一致させて、的オブジェクト108が割れる様子を表示するためである。ここでは、図8(A)に示した衝突位置Qに基づいて、図8(B)に示すように、割れ的2画像150が選択されたと仮定する。
なお、長さ(閾値)L1およびL2は、開発者ないしゲームプログラマが的オブジェクト108(通常的画像130)の大きさなどによって適宜設定する設計事項である。
次に、衝突位置Qに基づいて、割れ的画像(140,150,160)を3次元仮想空間(ワールド空間)に配置するための行列式を算出する。たとえば、的オブジェクト108の表示位置すなわち通常割れ画像130や割れ的画像(140,150,160)を、ワールド空間に配置する行列式Aは、数2で示される。
ただし、図8(B)を参照して分かるように、割れ的2画像150(他の割れ的画像140,160も同様。)のローカル座標は、右方向にX軸のプラス方向、上方向にY軸のプラス方向、紙面に対して垂直上向きにZ軸のプラス方向と定義する。また、割れ的画像(140,150,160)では、割れ中心位置120が、ローカル座標のX軸のプラス方向に作成されているものと定義する。
[数2]

このとき、行列式の各要素は次の意味を持つ。通常的画像130や割れ的画像(140,150,160)をワールド空間に配置する場合に、要素(Xx,Xy,Xz)はローカル座標のX軸を当てはめる方向であり、要素(Yx,Yy,Yz)はローカル座標のYを当てはめる方向であり、要素(Zx,Zy,Zz)はローカル座標のZを当てはめる方向であり、要素(Px,Py,Pz)はローカル座標の中心Oを置くワールド座標である。
つまり、的オブジェクト108が、ワールド空間上で、ベクトル(nx,ny,nz)が示す方向を向き、ワールド座標(x1,y1,z1)にその中心を置く場合の行列式Bは数3のように示される。ただし、ベクトル(nx,ny,nz)は、的オブジェクト108の中心Pから衝突位置Qに向かう方向(以下、「衝突方向」という。)についての単位ベクトルであり、ボール110が的オブジェクト108に衝突(接触)したときに、算出される。
ここで、的オブジェクト108の基準方向は、ワールド座標のX軸のプラス方向であり、通常的画像130の基準方向はローカル座標のX軸のプラス方向である。また、上述したように、割れ的画像(140,150,160)の基準方向はローカル座標のX軸のプラス方向である。これらの基準方向が各画像(オブジェクト)の向きを意味する。以下、同様である。
[数3]

ただし、要素a11,a12,a21,a22,a31,a32は、ボール110の衝突位置Qに応じて算出される。
まず、割れ的画像(140,150,160)のローカル座標のX軸(基準方向)を当てはめる方向(方向ベクトル(mx,my,mz))が、ワールド座標におけるボール110の中心P(x1,y1,z1)と衝突位置Q(x2,y2,z2)とから数4に従って算出される。ただし、mx,my,mzのそれぞれは変数である。この数4に従って算出される方向ベクトル(mx,my,mz)が、図8(A)に示す衝突方向のベクトルである。
[数4]
mx=x2−x1
my=y2−y1
mz=z2−z1
次に、方向ベクトル(mx,my,mz)は、数5に従って、的オブジェクト108の正面方向(Z軸のプラス方向)の成分が無く、的オブジェクト108の面(XY平面に平行な面)と平行なベクトル(説明の便宜上、「平行ベクトル」という。)に変換される。
[数5]
mx=mx−f1×nx
my=my−f1×ny
mz=mz−f1×nz
f1=mx×nx+my×ny+mz×nz
そして、平行ベクトルは、数6に従って、その長さ(大きさ)が1である単位ベクトルに変換される。
[数6]
mx=mx/f2
my=my/f2
mz=mz/f2
f2=√{(mx)+(my)+(mz)
数6に従って決定された単位ベクトル(mx,my,mz)が、数3に示した要素(a11,a21,a31)である。したがって、行列式Bは数7で示される。
[数7]

続いて、ワールド座標において、割れ的画像(140,150,160)のローカル座標のY軸を当てはめる方向(方向ベクトル(kx,ky,kz))が求められる。ここで、ローカル座標のY軸はローカル座標のX軸およびZ軸の両方に直交する方向であるため、数8に示すように、方向ベクトル(kx,ky,kz)は、外積の計算によって簡単に求めることができる。ただし、kx,ky,kzは変数である。
[数8]
kx=mz×ny−my×nz
ky=mx×nz−mz×nx
kz=my×nx−mx×ny
この数8に従って算出された方向ベクトル(kx,ky,kz)が、数3および数7に示した要素(a12,a22,a32)である。したがって、行列式Bは数9で示される。なお、方向ベクトル(kx,ky,kz)は、その大きさが1の単位ベクトルである。
[数9]

この数9で示される行列式Bを用いて割れ的画像(140,150,160)をワールド空間に配置することにより、所望の向き(衝突方向の単位ベクトル(nx,ny,nz)の向き)の割れ的画像(140,150,160)を的オブジェクト108として表示することができる。具体的には、図8(A)に示す衝突位置Qに基づいて算出された行列式Bを用いて割れ的2画像150を3次元仮想空間に配置すると、図8(C)に示すように、割れ的2画像150は、そのローカル座標のX軸(基準方向)が図8(A)に示した衝突方向Qを向くような状態で、その中心Oがワールド座標(x1,y1,z1)に来るように、3次元仮想空間に配置されるのである。
続いて、各パーツP1,P2,P3,P4の初速度(速度ベクトル)が算出され、その後、各パーツP1,P2,P3,P4は、算出された初速度と3次元仮想空間に設定される重力(重力加速度G)とに基づいて、鉛直投射運動ないし放物運動に従って移動される。つまり、簡単な物理計算によって、各パーツP1−P4は移動表示される。したがって、的オブジェクト108が割れて、パーツP1,P2,P3,P4が飛び散り、地面に落下する様子が表現される。
なお、3次元仮想空間における重力加速度Gは、上述した現実世界の重力加速度gとは異なる。
ここで、重力加速度Gは3次元仮想空間において固定的に設定されるが、初速度はランダムに決定される。ただし、厳密には、初速度の大きさはランダムに決定されるが、初速度の方向は所定のルールに従って決定される。これは、パーツP1,P2,P3,P4が、ボール110の衝突位置Q(厳密には、割れ中心位置120)を中心に飛び散る様子を表現するためである。
具体的には、図10(A)に示すように、割れ的2画像150では、パーツP1,P2,P3,P4のそれぞれが、ローカル座標を有し、ワールド座標に配置するときの基準位置すなわち中心(または重心)が設定されている。図示は省略するが、他の割れ的画像(140,160)も同様である。割れ的画像(140,150,160)を3次元仮想空間に配置した後における、中心P1G,P2G,P3G,P4Gと、割れ中心位置120とに基づいて、各パーツP1,P2,P3,P4の初速度の方向が決定される。
図10(B)に示すように、3次元仮想空間に配置された後の割れ的2画像150の割れ中心位置120から、各パーツP1−P4の中心座標P1G−P4Gに向かう方向が、各パーツP1−P4の初速度V0P1−V0P4の方向である。つまり、初速度V0P1−V0P4の方向は、割れ中心位置120を始点とし、自身の中心座標P1G−P4Gのそれぞれを終点とするベクトルの向きで決定されるのである。したがって、図10(C)に示すように、初速度V0P1−V0P4の方向に、各パーツP1−P4は飛び散り、その後、重力加速度Gに従って移動(落下)する。
なお、上述したように、この実施例では、初速度V0P1−V0P4の大きさは、ランダムに決定されるが、パーツP1−P4の大きさ(重さ)や衝突したボール110の衝撃力ないし力積(速度・重量)に応じて算出するようにしてもよい。
図11は図2に示したメインメモリ40のメモリマップの一例を示す図解図である。この図11を参照して、メインメモリ40は、プログラム記憶領域90およびデータ記憶領域92を含む。プログラム記憶領域90は、ゲームプログラムを記憶し、ゲームプログラムは、ゲームメイン処理プログラム90a,操作情報取得プログラム90b,ボール表示制御プログラム90c,的表示制御プログラム90d,当り判定プログラム90e,衝突位置検出プログラム90f,割れ的画像選択プログラム90gおよび割れ的画像表示制御プログラウ90hなどによって構成される。
ゲームメイン処理プログラム90aは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。操作情報取得プログラム90bは、コントローラ22から送信される操作情報(入力データ)を取得するためのプログラムである。たとえば、CPU36が操作情報取得プログラム90bを実行すると、このCPU36の指示に従って、メモリコントローラ38は、コントローラI/F56に設けられるバッファ(図示せず)を検索する。そして、メモリコントローラ38は、コントローラI/F56のバッファに入力データが記憶されていれば、それを取得し(読み出し)て、メインメモリ40の入力データバッファ92aに一時記憶する(書き込む)。
ボール表示制御プログラム90cは、3次元仮想空間におけるボール110の移動を制御する。詳細な説明は省略するが、CPU36は、ボール表示制御プログラム90cを実行することにより、ボール110を、サーブすることによりプレイヤキャラクタ102に向けて移動させたり、プレイヤキャラクタ102の打撃操作によって壁106ないし的オブジェクト108に向けて移動させたり、壁106ないし的オブジェクト108に当って跳ね返らせたりするように移動させる。
なお、プレイヤキャラクタ102が打撃したボール110の移動方向および移動速度は、プレイヤによるコントローラ22の振り操作のタイミングや速さ(強さ)で決定することができる。ただし、コントローラ22のボタン操作によって打撃動作の指示を入力する場合には、速さ(強さ)はボタンの種類で変化させることができる。このような打撃動作によるボール110の移動方向や移動速度の決定については、周知のテニスボールゲームの技術を採用することができ、また、本願発明の本質的な内容ではないため、詳細な説明については省略する。
的表示制御プログラム90dは、後述する通常的画像データ92c(図12参照)を用いて、通常的画像130の表示を制御するためのプログラムである。たとえば、3次元仮想空間に設けられる壁106の所定位置(この実施例では、(x1,y1,z1))に通常的画像130のローカル座標の中心Oを置くように、通常的画像130が配置される。通常的画像130を仮想3次元空間に配置するタイミングは、ゲーム開始時にゲーム開始画面を表示する場合と、表示されている的オブジェクト108が割れた後に、ゲームを続行する場合とである。
当り判定プログラム90eは、ボール110が3次元仮想空間内の何らかのオブジェクト(この実施例では、壁(106),的オブジェクト108,床など)に当ったかどうかを判断するためのプログラムである。当り判定については既に周知であるため、詳細な説明は省略する。
衝突位置検出プログラム90fは、当り判定プログラム90eに従ってボール110が的オブジェクト108に当ったことが判定された場合に、ボール110が的オブジェクト108に当った位置(衝突位置Q)を検出する。具体的には、ボール110が的オブジェクト108に当ったことが検出されると、そのときのボール110の中心位置が検出され、その中心位置を的オブジェクト108上に平行移動した点が衝突位置Qとして決定される。
割れ的画像選択プログラム90gは、割れ的画像(140,150,160)を選択するためのプログラムである。具体的には、CPU36は、割れ的画像選択プログラム90gを実行すると、的オブジェクト108の中心Pと、衝突位置検出プログラム90fに従って検出された衝突位置Qとの距離dを数1に従って算出し、データ記憶領域92eに記憶される割れ的画像選択テーブル92eを参照して、割れ的画像(140,150,160)を選択する。
割れ的画像表示制御プログラム90hは、衝突位置検出プログラム90fに従って検出された衝突位置Qに基づいて、割れ的画像選択プログラム90gによって選択された割れ的画像(140,150,160)を的オブジェクト108として3次元仮想空間に配置し、割れた的オブジェクト108を構成するパーツ(P1,P2,P3,P4)をランダムに移動表示させるためのプログラムである。
具体的には、的オブジェクト108の中心Pと衝突位置Qとで決まる方向に割れ的画像(140,150,160)の基準方向(ローカル座標のX軸)が当てはまるように、通常的画像130に代えて当該割れ的画像(140,150,160)を3次元仮想空間に配置する。ただし、上述したように、衝突位置Qに基づいて行列式Bが求められ、この行列式Bを用いて、割れ的画像(140,150,160)が配置されるのである。次に、各パーツP1−P4の初速度V0P1−V0P4が算出される。そして、各パーツP1−P4が、算出した初速度V0P1−V0P4と重力加速度Gとに基づいて鉛直投射運動ないし放物運動するように、移動制御される。
なお、図示は省略するが、ゲームプログラムは、音出力プログラムやバックアッププログラムなどの他のプログラムも含む。音出力プログラムは、プレイヤキャラクタ102などのゲームキャラクタの音声や擬声音、効果音、BGMのようなゲームに必要な音(音声,音楽)を出力するためのプログラムである。バックアッププログラムは、プレイヤの指示や所定のゲームイベントに従って、ゲームデータをメモリカード30に記憶(セーブ)するためのプログラムである。
図12は、図11に示すデータ記憶領域92の具体的な内容を示す。この図12を参照して、データ記憶領域92には、入力データバッファ92aが設けられるとともに、オブジェクトデータ92b,通常的画像データ92c,割れ的画像データ92dおよび割れ的画像選択テーブルデータ92eなどが記憶される。
入力データバッファ92aは、上述したように、操作情報取得プログラム90bに従って、CPU36の指示の下、メモリコントローラ38が取得した入力データを一時記憶するための領域である。CPU36は、入力データバッファ92aを参照して、入力データの有無を検出し、たとえば、打撃動作の指示の有無を判断する。詳細な説明は省略するが、入力データは、プレイヤキャラクタ102に打撃動作をさせるようなゲーム処理に使用された後、入力データバッファ92aから消去される。
オブジェクトデータ92bは、プレイヤキャラクタ102,ラケット104,壁106およびボール110のようなゲームキャラクタないしはゲームオブジェクトについてのデータであり、画像データ920aおよび位置データ920bを含む。画像データ920aは、上述したようなゲームオブジェクトを生成するためのポリゴンデータやテクスチャデータなどである。位置データ920bは、上述したようなゲームオブジェクトを3次元仮想空間に配置するためのワールド座標の座標データである。
なお、プレイヤキャラクタ102,ラケット104およびボール110の位置データは、プレイヤの指示やゲームの進行に従って更新される。
通常的画像データ92cは、通常的画像130についてのデータであり、画像データ922aおよび位置データ922bを含む。画像データ922aは、通常的画像130を生成するためのポリゴンデータやテクスチャデータなどである。位置データ922bは、通常的画像130を3次元仮想空間に配置するためのワールド座標の座標データである。
割れ的画像データ92dは、割れ的画像(140,150,160)の各々についてのデータである。つまり、割れ的画像データ92は、割れ的1画像データ924a,割れ的2画像データ924bおよび割れ的3画像データ924cを含む。割れ的1画像データ924aは、各パーツ(この実施例では、P1,P2,P3,P4)についての画像データを含む。つまり、割れ的1画像データ924aは、パーツP1画像データ9240,パーツP2画像データ9242などによって構成される。パーツP1画像データ9240は、割れ的1画像140のパーツP1を生成するためのポリゴンデータおよびテクスチャデータなどである。詳細な説明は省略するが、パーツP2画像データ9242等も同様である。
なお、割れ的2画像データ924bおよび割れ的3画像データ924cは、割れ的1画像データ924aと同様であるため、詳細な説明は省略することにする。
割れ的画像選択テーブルデータ92eは、図9に示した割れ的画像選択テーブルについてのデータである。この割れ的画像選択テーブルデータ92eは、上述したように、CPU36が割れ的画像選択プログラム90gに従って割れ的画像(140,150,160)を選択するときに参照される。
なお、図示は省略するが、データ記憶領域92には、音データやゲームデータなどが記憶されるとともに、ゲーム処理に必要なカウンタ(タイマ)或いはレジスタまたはフラグなども設けられる。
次に、具体的な処理を説明すると、図2に示したCPU36が図13に示すフロー図に従ってゲーム全体処理(メインルーチン)を実行する。図13に示すように、CPU36は、ゲーム全体処理を開始すると、ステップS1で、初期設定を実行する。この初期設定では、CPU36の指示の下、メモリコントローラ38が、バッファをクリアしたり、カウンタ、レジスタ、フラグを初期化したりする。ただし、ゲームを前回の続きから開始する場合には、メモリカード30に記憶されたゲームデータがロードされ、たとえば、カウンタ(タイマ)、レジスタ、フラグの初期値が設定される。また、ステップS1では、ゲーム開始時におけるゲーム画面100(ゲーム開始画面)が表示される。つまり、3次元空間にプレイヤキャラクタ102、ラケット104、壁106および的オブジェクト108などが生成および配置(モデリング)され、モニタ34にゲーム開始画面が表示される。このとき、データ記憶領域92に記憶されたオブジェクトデータ92bおよび通常的画像データ92cが用いられる。
次のステップS3では、ボールの表示制御を実行する。具体的には、CPU36は、オブジェクトデータ92bの位置データ920bに従ってボール110の位置を更新する。このため、ゲーム画面100においてボール110が移動表示される。図示は省略するが、ボール110の位置データは、ボール110が飛んだり跳ねたりするように、物理計算により、時間に従って(1フレーム毎に)更新される。
続いて、ステップS5では、操作情報を取得する。ここでは、CPU36の指示の下、メモリコントローラ38が、コントローラI/F56のバッファを参照し、入力データを取得し、入力データバッファ92aに一時記憶する。ただし、コントローラI/F56のバッファに入力データが記憶されていない場合には、入力データバッファ92aに入力データは記憶されない。かかる場合には、CPU36は、プレイヤの指示が無いと判断する。
続くステップS7では、プレイヤキャラクタ102を表示制御する。この実施例では、プレイヤキャラクタ102は、自動的にボール110を打撃可能な位置に移動される。つまり、CPU36は、ボール110の位置データに応じて、当該ボール110に近づくように、プレイヤキャラクタ102の位置データを更新するのである。
そして、ステップS9では、ボール110が何らかのオブジェクトに当ったかどうかを判定する。ステップS9で“NO”であれば、つまりボール110が何らオブジェクトに当っていない場合には、ステップS11で、ボール110がコートの範囲を外れたかどうかを判断する。ステップS11で“NO”であれば、つまりボール110がコートの範囲を外れていなければ、そのままステップS25に進む。一方、ステップS11で“YES”であれば、つまりボール110がコートの範囲を外れていれば、ステップS13で、減点処理を実行して、ステップS25に進む。
また、ステップS9で“YES”であれば、つまりボール110が何らかのオブジェククトに衝突すれば、ステップS15で、当該オブジェクトが的オブジェクト108であるかどうかを判断する。ステップS15で“NO”であれば、つまり当該オブジェクトが的オブジェクト108でなければ、ボール110が壁106に当ったと判断して、そのままステップS3に進む。
一方、ステップS15で“YES”であれば、つまり当該オブジェクトが的オブジェクト108であれば、ステップS17で、後述する的割れ表示制御処理(図14参照)を実行して、ステップS19で、得点処理を実行する。そして、ステップS21で、通常的画像130を次の的オブジェクト108として表示して、ステップS23に進む。
ステップS23では、ボール跳ね返り処理を実行して、ステップS25に進む。このボール跳ね返り処理は、物理学における跳ね返りによる物体の運動と同様であるため、詳細な説明は省略する。ただし、跳ね返り係数(反発係数)を、ゲームの難易度やゲームの進行に応じて適宜変更するようにすれば、ゲームが単調にならず、面白さを増大することができる。このボール跳ね返り処理によって、ボール110がラケット104,壁(106など),的オブジェクト108および床に当って跳ね返るように表示される。
ステップS25では、ゲーム終了かどうかを判断する。ここでは、プレイヤからのゲーム終了の指示があったか、またはゲームオーバになったかどうかを判断する。ステップS25で“NO”であれば、つまりゲーム終了でなければ、そのままステップS3に戻る。一方、ステップS25で“YES”であれば、つまりゲーム終了であれば、そのままゲーム全体処理を終了する。
図14は図13に示したステップS17の的割れ表示制御処理のフロー図である。図14に示すように、CPU36は的割れ表示制御処理を開始すると、ステップS41で、衝突位置Qを検出する。上述したように、3次元仮想空間において、ボール110が的オブジェクト108に当った位置(衝突位置Q)を算出(検出)する。続くステップS43では、的オブジェクト108の中心Pと衝突位置Qとの距離dを数1に従って算出する。
次のステップS45では、データ記憶領域92に記憶された割れ的画像選択テーブルデータ92eを参照して、ステップS43において算出した距離dに応じた割れ的画像(140,150,160)を選択する。続く、ステップS47では、数3〜数9で示したように、衝突位置Qに基づいて、ステップS45において選択した割れ的画像(140,150、160)を3次元仮想空間に配置するための行列式Bを算出する。
続いて、ステップS49では、通常的画像130に代えて、割れ的画像(140,150,160)を、行列式Bを用いて3次元仮想空間に配置する。これによって、基準方向が衝突方向に向いた割れ的画像(140,150,160)が、的オブジェクト108としてゲーム画面100に表示される。
次に、ステップS51では、割れ的画像(140,150,160)を構成する各パーツP1−P4の初速度V0P1−V0P4をランダムに算出する。ただし、ランダムに算出されるのは、初速度V0P1−V0P4の大きさだけであり、その向きは、上述したように、各パーツP1−P4の中心P1G,P2G,P3G,P4Gと、割れ中心位置120とに基づいて算出される。そして、ステップS53では、パーツ(P1−P4)毎に物理計算をして、的オブジェクト108が割れる様子を表示し、ゲーム全体処理にリターンする。つまり、ステップS53では、各パーツP1−P4について、一定時間(フレーム:画面更新単位時間(1/60秒))毎の位置を、ステップS51において算出した初速度V0P1−V0P4および重力加速度Gを用いて算出(更新)し、算出した位置に各パーツP1−P4の画像を配置(表示)するのである。
この実施例によれば、通常の表示用の的画像と数種類の割れ的画像とを用意しておき、衝突位置に応じて選択された割れ的画像を、その割れ中心位置の向きを、的が画像の中から衝突位置に向かう方向に合わせるように配置するだけなので、画像処理の負担を増大させることなく、様々な衝突位置に応じて的が割れる様子を表現することができる。つまり、ゲーム画面が単調にならない範囲で画像処理を可及的簡素化することができる。
なお、この実施例では、割れ的画像の向きを変えた場合であっても、見た目が不自然にならないように、円形の的オブジェクトを表示するようにした。しかし、見た目を重視しなくてもよい場合には、的オブジェクト(割れ的画像)の形状は、円形に限定される必要はなく、三角形や四角形のような多角形であってもよい。
また、この実施例では、簡単のため、3次元仮想空間において2次元的(平面的)に表示される的オブジェクトについてのみ説明したが、これに限定される必要はない。
たとえば、図15に示すような球の的オブジェクトのように、立体的な形状であっても、この発明を適用することができる。ただし、図15において、X´軸はワールド座標のX軸に平行であり的オブジェクトの中心Pを通る軸であり、Y´軸はワールド座標のY軸に平行であり的オブジェクトの中心Pを通る軸である。図示は省略するが、かかる場合には、各割れ的画像も立体的なパーツで構成される。また、ローカル座標の3軸のうちのいずれか1軸(たとえば、X軸)が割れ的画像の基準軸(基準方向)であり、この軸上のプラス側に割れ中心位置が設定される。かかる場合の距離dは、数10に従って算出される。ただし、的オブジェクトの中心Pの座標は(x1,y1,z1)であり、衝突位置Qの座標は(x2,y2,z2)である。
[数10]
d=√{(x1−x2)+(y1−y2)+(z1−z2)
割れ的画像の選択、割れ的画像の配置、割れ的画像の移動(落下)処理は、上述の実施例で説明したとおりであるため、重複した説明は省略する。
なお、立体的な形状としては、上述の実施例と同様に、見た目を重視して、球の的オブジェクトを例示してある。しかし、見た目を重視しなければ、立方体、直方体または多面体のような他の立体的形状の的オブジェクトであっても本願発明を適用することができる。
また、上述の実施例では、衝突位置に基づいて算出された行列式を用いて割れ的画像を3次元仮想空間に配置するようにした。しかし、他の方法により、割れ的画像を配置することも可能である。たとえば、図16(A)に示すように、的オブジェクト108の衝突位置Qが検出されると、その中心Pと衝突位置Qとを結ぶ線分PQと、基準軸(X軸)とが成す角度θを算出する。そして、図16(B)に示すように、選択された割れ的画像をローカル座標において、角度θだけ回転させた後に、ローカル座標の中心を3次元仮想空間の所望の位置に配置することもできる。かかる場合にも、割れ的画像の割れ中心位置の方向を、的オブジェクトの中心から衝突位置に向かう方向に一致させて、割れ的画像を配置することができる。ただし、割れ的画像を回転させる方向は、算出した角度θの方向と同じである。
なお、図16(B)は、上述の実施例の割れ的画像150をローカル座標の中心Oを中心に角度θだけ半時計周りに回転させた例を示してある。
また、図16(C)に示すように、衝突位置Qから中心Pを通りワールド座標のX軸に平行な直線に垂下した点Hを算出し、線分PQ,線分PH,線分QHのいずれか2つを用いることにより、三角関数によって角度θを簡単に求めることができる。
さらに、上述の実施例では、ビデオゲーム装置、コントローラおよび表示装置が別個独立に設けられたゲームシステムについてのみ説明したが、それらが一体的に設けられた携帯型ゲーム装置、アーケードゲーム機、ゲーム機能付きの携帯端末などにも適用できることは言うまでもない。
さらにまた、上述の実施例では、プレイヤキャラクタがボールを打ったり、打ち返したりして、的オブジェクトに当該ボールを当てるゲームについて説明したが、これに限定される必要はない。たとえば、プレイヤキャラクタ(プレイヤ)が銃のような道具ないし武器を用いて弾を撃ち(射出し)、的オブジェクトに当該弾を当てるゲームにも適用することができる。
図1はこの発明のゲームシステムの一実施例を示す図解図である。 図2は図1に示すゲームシステムの電気的な構成を示すブロック図である。 図3は図1に示すコントローラの外観を説明するための図解図である。 図4は図1に示すコントローラの電気的な構成を示すブロック図である。 図5は図1に示すモニタに表示されるゲーム画面の一例を示す図解図である。 図6は図1に示すモニタに表示されるゲーム画面の他の例を示す図解図である。 図7はゲーム画面に的オブジェクトとして表示される通常的画像および数種類の的割れ画像を説明するための図解図である。 図8はゲーム画面において的オブジェクトを割れ表示するための表示方法を説明するための図解図である。 図9はゲーム画面において的オブジェクトを割れ表示する際に使用されるわれ的画像を選択するための割れ的画像選択テーブルの一例を示す図解図である。 図10はゲーム画面において的オブジェクトを割れ表示するための表示方法を説明するための図解図である。 図11は図2に示すメインメモリのメモリマップの一例を示す図解図である。 図12は図11に示すデータ記憶領域の具体的な内容を示す図解図である。 図13は図2に示すCPUのゲーム全体処理を示すフロー図である。 図14は図2に示すCPUの的割れ表示制御処理を示すフロー図である。 図15はゲーム画面に表示される的オブジェクトの他の例を示す図解図である。 図16は割れ的オブジェクトを配置する他の方法を説明するための図解図である。
符号の説明
10 …ゲームシステム
12 …ビデオゲーム装置
18 …光ディスク
22 …コントローラ
34 …モニタ
34a …スピーカ
36 …CPU
38 …メモリコントローラ
40 …メインメモリ
42 …GPU
52 …DSP
54 …ARAM
62 …オーディオI/F
66 …Bluetooth通信ユニット
68 …ディスクドライブ
70 …マイコン
74 …加速度センサ
76 …無線モジュール

Claims (7)

  1. 操作手段と、記憶手段と、表示手段とを備えたゲーム装置のゲームプログラムであって、
    前記ゲーム装置のコンピュータを、
    前記操作手段から操作情報を取得する、操作情報取得手段、
    前記操作情報取得手段によって取得された操作情報に基づいて、プレイヤが射出または跳ね返す第1オブジェクトを、前記記憶手段に記憶された第1オブジェクト画像データに基づいて前記表示手段に表示する、第1オブジェクト表示制御手段、
    前記プレイヤが前記第1オブジェクトを接触させる目標となる目標オブジェクトを前記表示手段に表示する、目標オブジェクト表示手段、
    複数の部分画像から成り、前記目標オブジェクトと同じ外観となる第2オブジェクトを、前記記憶手段に記憶された複数組の第2オブジェクト画像データのいずれかに基づいて前記表示手段に表示する、第2オブジェクト表示制御手段、
    前記第1オブジェクトと前記目標オブジェクトとが接触したかどうかを判定する、接触判定手段、
    前記接触判定手段によって接触したことが判定されたとき、前記目標オブジェクトの中心から接触位置までの距離を算出する、距離算出手段、
    前記接触判定手段によって接触したことが判定されたとき、前記目標オブジェクトの中心から前記接触位置に向かう方向を算出する、方向算出手段、および
    前記距離算出手段で算出された距離に応じて、前記複数組の第2オブジェクト画像データのいずれかを選択する選択手段として機能させ、
    前記第2オブジェクト表示制御手段は、前記選択手段によって選択された第2オブジェクト画像データに基づいて前記第2オブジェクトを前記方向算出手段で算出された方向を向くように前記表示手段に表示させ、表示後に、当該第2オブジェクトを構成する複数の部分画像のそれぞれをランダムに移動表示させる、ゲームプログラム。
  2. 前記第2オブジェクト表示制御手段は、前記第2オブジェクトを構成する複数の部分画像のそれぞれを、ランダムに移動表示させるとき、当該複数の部分画像のそれぞれに、ランダムな大きさの初速度を設定し、表示画面下方に重力を設定した物理計算に基づいて移動表示させる、請求項1に記載のゲームプログラム。
  3. 前記第2オブジェクト表示制御手段は、前記第2オブジェクトを構成する複数の部分画像の接合点についての第1ワールド座標を始点とし、当該複数の部分画像の各々の表示基準位置についての第2ワールド座標を終点とするベクトルの方向を、前記初速度の方向に決定する、請求項2記載のゲームプログラム。
  4. 前記部分画像は1または複数のポリゴンによって構成される、請求項1ないし3のいずれかに記載のゲームプログラム。
  5. 操作手段と、記憶手段と、表示手段とを備えたゲーム装置であって、
    前記操作手段から操作情報を取得する、操作情報取得手段、
    前記操作情報取得手段によって取得された操作情報に基づいて、プレイヤが射出または跳ね返す第1オブジェクトを、前記記憶手段に記憶された第1オブジェクト画像データに基づいて前記表示手段に表示する、第1オブジェクト表示制御手段、
    前記プレイヤが前記第1オブジェクトを接触させる目標となる目標オブジェクトを前記表示手段に表示する、目標オブジェクト表示手段、
    複数の部分画像から成り、前記目標オブジェクトと同じ外観となる第2オブジェクトを、前記記憶手段に記憶された複数組の第2オブジェクト画像データのいずれかに基づいて前記表示手段に表示する、第2オブジェクト表示制御手段、
    前記第1オブジェクトと前記目標オブジェクトとが接触したかどうかを判定する、接触判定手段、
    前記接触判定手段によって接触したことが判定されたとき、前記目標オブジェクトの中心から接触位置までの距離を算出する、距離算出手段、
    前記接触判定手段によって接触したことが判定されたとき、前記目標オブジェクトの中心から前記接触位置に向かう方向を算出する、方向算出手段、および
    前記距離算出手段で算出された距離に応じて、前記複数組の第2オブジェクト画像データのいずれかを選択する選択手段を備え、
    前記第2オブジェクト表示制御手段は、前記選択手段によって選択された第2オブジェクト画像データに基づいて前記第2オブジェクトを前記方向算出手段で算出された方向を向くように前記表示手段に表示させ、表示後に、当該第2オブジェクトを構成する複数の部分画像のそれぞれをランダムに移動表示させる、ゲーム装置。
  6. 操作手段と、記憶手段と、表示手段とを備えたゲームシステムであって、
    前記操作手段から操作情報を取得する、操作情報取得手段、
    前記操作情報取得手段によって取得された操作情報に基づいて、プレイヤが射出または跳ね返す第1オブジェクトを、前記記憶手段に記憶された第1オブジェクト画像データに基づいて前記表示手段に表示する、第1オブジェクト表示制御手段、
    前記プレイヤが前記第1オブジェクトを接触させる目標となる目標オブジェクトを前記表示手段に表示する、目標オブジェクト表示手段、
    複数の部分画像から成り、前記目標オブジェクトと同じ外観となる第2オブジェクトを、前記記憶手段に記憶された複数組の第2オブジェクト画像データのいずれかに基づいて前記表示手段に表示する、第2オブジェクト表示制御手段、
    前記第1オブジェクトと前記目標オブジェクトとが接触したかどうかを判定する、接触判定手段、
    前記接触判定手段によって接触したことが判定されたとき、前記目標オブジェクトの中心から接触位置までの距離を算出する、距離算出手段、
    前記接触判定手段によって接触したことが判定されたとき、前記目標オブジェクトの中心から前記接触位置に向かう方向を算出する、方向算出手段、および
    前記距離算出手段で算出された距離に応じて、前記複数組の第2オブジェクト画像データのいずれかを選択する選択手段を備え、
    前記第2オブジェクト表示制御手段は、前記選択手段によって選択された第2オブジェクト画像データに基づいて前記第2オブジェクトを前記方向算出手段で算出された方向を向くように前記表示手段に表示させ、表示後に、当該第2オブジェクトを構成する複数の部分画像のそれぞれをランダムに移動表示させる、ゲームシステム。
  7. 操作手段と、記憶手段と、表示手段とを備えたコンピュータのゲーム制御方法であって、
    前記コンピュータは、
    (a)前記操作手段から操作情報を取得し、
    (b)前記ステップ(a)において取得した操作情報に基づいて、プレイヤが射出または跳ね返す第1オブジェクトを、前記記憶手段に記憶された第1オブジェクト画像データに基づいて前記表示手段に表示し、
    (c)前記プレイヤが前記第1オブジェクトを接触させる目標となる目標オブジェクトを前記表示手段に表示し、
    (d)前記第1オブジェクトと前記目標オブジェクトとが接触したかどうかを判定し、
    (e)前記ステップ(d)において接触したことを判定したとき、前記目標オブジェクトの中心から接触位置までの距離を算出し、
    (f)前記ステップ(d)において接触したことを判定したとき、前記目標オブジェクトの中心から前記接触位置に向かう方向を算出し
    (g)複数の部分画像から成り、前記目標オブジェクトと同じ外観となる第2オブジェクトに対応して前記記憶手段に記憶された複数組の第2オブジェクト画像データのいずれかを、前記ステップ(e)において算出した距離に応じて選択し、そして
    (h)前記ステップ(g)において選択した第2オブジェクト画像データに基づいて前記第2オブジェクトを前記ステップ(f)において算出した方向を向くように前記表示手段に表示し、表示後に、当該第2オブジェクトを構成する複数の部分画像のそれぞれをランダムに移動表示する、ゲーム制御方法。
JP2006285317A 2006-10-19 2006-10-19 ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法 Active JP5101080B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006285317A JP5101080B2 (ja) 2006-10-19 2006-10-19 ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法
DE602007009460T DE602007009460D1 (de) 2006-10-19 2007-02-21 Speichermedium mit gespeichertem Spielprogramm, Spielgerät und Spielsteuerverfahren
EP07102830A EP1913987B1 (en) 2006-10-19 2007-02-21 Storage medium storing a game program, game apparatus, and game control method
US11/709,261 US7862431B2 (en) 2006-10-19 2007-02-22 Storage medium storing a game program, game apparatus, and game control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006285317A JP5101080B2 (ja) 2006-10-19 2006-10-19 ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法

Publications (2)

Publication Number Publication Date
JP2008099899A JP2008099899A (ja) 2008-05-01
JP5101080B2 true JP5101080B2 (ja) 2012-12-19

Family

ID=38051722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006285317A Active JP5101080B2 (ja) 2006-10-19 2006-10-19 ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法

Country Status (4)

Country Link
US (1) US7862431B2 (ja)
EP (1) EP1913987B1 (ja)
JP (1) JP5101080B2 (ja)
DE (1) DE602007009460D1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4563266B2 (ja) * 2005-06-29 2010-10-13 株式会社コナミデジタルエンタテインメント ネットワークゲームシステム、ゲーム装置、ゲーム装置の制御方法及びプログラム
US8988437B2 (en) 2009-03-20 2015-03-24 Microsoft Technology Licensing, Llc Chaining animations
US8576225B2 (en) * 2010-06-30 2013-11-05 Dreamworks Animation Llc Seamless fracture in a production pipeline
JP6161886B2 (ja) * 2012-09-19 2017-07-12 任天堂株式会社 音声出力システム、情報処理装置、情報処理プログラム、および音声出力制御方法
US9656140B2 (en) * 2012-11-09 2017-05-23 Wilson Sporting Goods Co. Sport performance system with ball sensing
JP5436716B1 (ja) * 2013-07-26 2014-03-05 株式会社 ディー・エヌ・エー ゲーム用プログラム、サーバ、及び方法
JP5799075B2 (ja) * 2013-12-10 2015-10-21 京楽産業.株式会社 遊技機
US20180070872A1 (en) * 2015-04-27 2018-03-15 The Regents Of The University Of California Neurotherapeutic video game for improving spatiotemporal cognition
JP2018146546A (ja) * 2017-03-09 2018-09-20 エアロセンス株式会社 情報処理システム、情報処理装置および情報処理方法
JP6946857B2 (ja) * 2017-08-24 2021-10-13 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
CN108786108B (zh) * 2018-06-11 2022-01-25 腾讯科技(深圳)有限公司 目标对象控制方法、装置、存储介质及设备
CN111569424B (zh) * 2020-05-14 2023-04-28 北京代码乾坤科技有限公司 游戏场景内的物理结算方法和装置
CN112619161A (zh) * 2020-12-22 2021-04-09 上海米哈游天命科技有限公司 一种发射目标控制方法、装置、电子设备及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4905168A (en) * 1986-10-15 1990-02-27 Atari Games Corporation Object processing for video system using slips and linked list
US4999789A (en) * 1987-02-05 1991-03-12 Hewlett-Packard Co. Method and apparatus for trimming B-spline descriptions of patches in a high performance three dimensional graphics system
US5680531A (en) * 1993-07-02 1997-10-21 Apple Computer, Inc. Animation system which employs scattered data interpolation and discontinuities for limiting interpolation ranges
US5574479A (en) 1994-01-07 1996-11-12 Selectech, Ltd. Optical system for determining the roll orientation of a remote unit relative to a base unit
GB2289756B (en) 1994-05-26 1998-11-11 Alps Electric Co Ltd Space coordinates detecting device and input apparatus using same
JP2000200361A (ja) * 1998-08-07 2000-07-18 Sega Enterp Ltd 画像処理装置及び情報記録媒体
JP4186136B2 (ja) * 1998-10-08 2008-11-26 株式会社セガ 画像処理装置および画像処理方法
JP3340970B2 (ja) 1998-11-26 2002-11-05 株式会社スクウェア ゲーム装置、画像処理方法、及び、プログラムを記録したコンピュータ読み取り可能な情報記録媒体
JP4394202B2 (ja) * 1999-07-21 2010-01-06 株式会社バンダイナムコゲームス 画像生成システム及び情報記憶媒体
JP3289044B2 (ja) * 1999-09-08 2002-06-04 株式会社セガ ゲーム装置
JP3420988B2 (ja) * 2000-02-17 2003-06-30 株式会社ナムコ ゲームシステム及び情報記憶媒体
US20010030667A1 (en) 2000-04-10 2001-10-18 Kelts Brett R. Interactive display interface for information objects
JP3363137B2 (ja) * 2000-11-29 2003-01-08 コナミ株式会社 当たり判定方法、その装置、当たり判定処理プログラムを記録したコンピュータ読み取り可能な記録媒体及びビデオゲーム装置
US6982697B2 (en) 2002-02-07 2006-01-03 Microsoft Corporation System and process for selecting objects in a ubiquitous computing environment
KR101192514B1 (ko) 2004-04-30 2012-10-17 힐크레스트 래보래토리스, 인크. 틸트 보상과 향상된 사용성을 갖는 3d 포인팅 장치
US7292151B2 (en) 2004-07-29 2007-11-06 Kevin Ferguson Human movement measurement system

Also Published As

Publication number Publication date
JP2008099899A (ja) 2008-05-01
US7862431B2 (en) 2011-01-04
US20080096660A1 (en) 2008-04-24
EP1913987B1 (en) 2010-09-29
EP1913987A1 (en) 2008-04-23
DE602007009460D1 (de) 2010-11-11

Similar Documents

Publication Publication Date Title
JP5101080B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法
JP4679429B2 (ja) 音出力プログラムおよび音出力装置
US9358457B2 (en) Game system, controller device, and game method
US8845430B2 (en) Storage medium having stored thereon game program, game apparatus, game system, and game processing method
US8814686B2 (en) Display device, game system, and game method
JP5912290B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
JP2006314705A (ja) ゲームプログラムおよびゲーム装置
JP4798809B1 (ja) 表示装置、ゲームシステム、およびゲーム処理方法
US8574073B2 (en) Game system, game device, storage medium storing game program, and game process method
US9011243B2 (en) Game system, game device, storage medium storing game program, and game process method
JP6103677B2 (ja) ゲームシステム、操作装置、およびゲーム処理方法
US7955174B2 (en) Game program
JP2012096005A (ja) 表示装置、ゲームシステム、およびゲーム処理方法
JP2005312758A (ja) ゲームシステムおよびゲームプログラム
JP5841352B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
JP5912289B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP4226999B2 (ja) キャラクタ移動制御プログラムおよびゲーム装置
JP2008237795A (ja) シミュレーションプログラムおよびシミュレーション装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120905

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: 20120925

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: 20120926

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

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5101080

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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