JP5183878B2 - ゲームプログラム、ゲームシステム - Google Patents

ゲームプログラム、ゲームシステム Download PDF

Info

Publication number
JP5183878B2
JP5183878B2 JP2006059952A JP2006059952A JP5183878B2 JP 5183878 B2 JP5183878 B2 JP 5183878B2 JP 2006059952 A JP2006059952 A JP 2006059952A JP 2006059952 A JP2006059952 A JP 2006059952A JP 5183878 B2 JP5183878 B2 JP 5183878B2
Authority
JP
Japan
Prior art keywords
game
terrain
shape
movable object
movement
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
JP2006059952A
Other languages
English (en)
Other versions
JP2007236469A5 (ja
JP2007236469A (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 JP2006059952A priority Critical patent/JP5183878B2/ja
Priority to US11/519,034 priority patent/US8038531B2/en
Publication of JP2007236469A publication Critical patent/JP2007236469A/ja
Publication of JP2007236469A5 publication Critical patent/JP2007236469A5/ja
Application granted granted Critical
Publication of JP5183878B2 publication Critical patent/JP5183878B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/812Ball games, e.g. soccer or baseball
    • 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
    • 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/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8011Ball

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

本発明は、ゲームプログラム、ゲームシステムおよびゲーム装置に関し、より特定的には、プレイヤキャラクタが地形オブジェクトを指示することで可動オブジェクトを動かすゲームのゲームプログラムおよびゲーム装置に関する。
従来より、ゲームの臨場感を高めるために、ゲーム空間内の地形等の背景を変化させる技術がある。例えば、巨大ロボットであるプレイヤキャラクタが建物にぶつかった場合に、その建物が崩壊するように表示したり、また、当該巨大ロボットが高い位置から道路に着地したときに、足元の道路が凹むような表示を行って、ゲームの臨場感やリアリティを高める(例えば、特許文献1)。また、横スクロール方式のシューティングゲームにおいて、上下の地形がうねっているように表現するために、数フレーム単位で異なる形状の地形の画像を表示する技術もある(例えば、特許文献2)。
特開2001−224849号公報 特開平11−53572号公報
しかしながら、上記特許文献に開示された背景の変化は、プレイヤがプレイヤキャラクタを操作した結果として、地形等の背景オブジェクトが変化するものである。すなわち、プレイヤが直接に地形等の背景オブジェクトを指定して、その形状を変化させるものではなかった。
それ故に、本発明の目的は、プレイヤに地形オブジェクトを直接指示させ、当該指示された位置の形状を変化させることでオブジェクトを移動させるゲームプログラム、ゲームシステムおよびゲーム装置を提供することである。
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
第1の発明は、仮想ゲーム空間内に地形オブジェクトと可動オブジェクトが配置されたゲーム画像を画面に表示する表示装置と、操作装置とが接続されたゲーム装置のコンピュータで実行されるゲームプログラムであって、指示位置検出ステップ(S32)と、形状変化ステップ(S37、S39)と、可動オブジェクト制御ステップ(S4、S6、S8)とを備える。指示位置検出ステップは、操作装置によって指示された地形オブジェクトの指示位置を検出する。形状変化ステップは、検出された地形オブジェクトの指示位置およびその周辺の地形の形状を、当該指示位置からの距離に応じて高さが段階的に変化する形状に変形させる。可動オブジェクト制御ステップは、可動オブジェクトが地形オブジェクトに接したとき、形状変化ステップによって変形された形状に基づいて接地面における物理計算を行い、当該計算の結果に基づいて可動オブジェクトの移動を制御する。
第2の発明は、第1の発明において、形状変化ステップは、指示位置の高さを所定の高さに決定し、当該指示位置からの距離に応じて、変形させる前の地形オブジェクトの地表との高低差が段階的に小さくなる形状に周囲の形状を変形させる。
第3の発明は、第1の発明において、ゲームプログラムは、操作装置から第1の操作データまたは第2の操作データを取得する操作データ取得ステップ(S30)をさらに備える。また、形状変化ステップは、操作データ取得ステップにおいて第1操作データが取得されたときは、地形オブジェクトの指示位置およびその周辺の高さを第1の方向に向けて変化させ、第2操作データが取得されたときは、地形オブジェクトの指示位置およびその周辺の高さを第1の方向とは異なる第2の方向に向けて変化させる。
第4の発明は、第1の発明において、ゲームプログラムは、形状変化ステップによって変形された地形オブジェクトの形状を、変形させる前の状態に回復させるための回復処理ステップをさらに備える。
第5の発明は、第1の発明において、地形オブジェクトは、複数のポリゴンから構成される。また、形状変化ステップは、距離算出ステップ(S37、S39)と、変化量算出ステップ(S37、S39)と、変化処理ステップ(S37、S39)とを含む。距離算出ステップは、地形オブジェクトの指示位置と複数のポリゴンの各頂点との距離を算出する。変化量算出ステップは、距離に基づいて複数のポリゴンの各頂点のそれぞれの高さの変化量を算出する。変化処理ステップは、変化量に基づいて複数のポリゴンの各頂点の位置を変化させる。
第6の発明は、第1の発明において、ゲームプログラムは、形状変化ステップによって変形された地形オブジェクトの形状を、変形させる前の状態に回復させるための回復処理ステップ(S1)をさらに備える。また、回復処理ステップは、所定のポリゴンの頂点の高さについて、当該頂点の周辺の頂点の高さに近づくように変化量を算出する。
第7の発明は、第5の発明において、可動オブジェクト制御ステップは、変化量算出ステップによって算出された変化量に基づいて物理計算を行うことで可動オブジェクトの移動量を算出する移動量算出ステップ(S4、S8)と、移動量に基づいて可動オブジェクトを移動させる移動処理ステップ(S4、S8)とを含む。
第8の発明は、第5の発明において、ゲームプログラムは、法線ベクトル算出ステップ(S8)と、重力ベクトル算出ステップ(S4)とをさらに前記コンピュータに実行させる。法線ベクトル算出ステップは、変化処理ステップによって変化された複数のポリゴンの法線ベクトルを算出する。重力ベクトル算出ステップは、仮想ゲーム空間内において真下方向へと向かうベクトルである重力ベクトルを算出する。また、可動オブジェクト制御ステップは、法線ベクトルおよび重力ベクトルに基づいて物理計算を行うことで、可動オブジェクトの移動方向を設定する移動方向設定ステップを含む。
第9の発明は、第7または第8の発明において、複数のポリゴンの一部には特定処理情報が設定されている。また、ゲームプログラムは、判別ステップと、移動情報補正ステップとをさらにコンピュータに実行させる。判別ステップは、可動オブジェクトが接しているポリゴンに特定処理情報が設定されているか否かを判別する。移動情報補正ステップは、判別ステップにより特定処理情報が設定されていることが判別されたとき、移動量算出ステップによって算出された移動量および移動方向設定ステップによって設定された移動方向の少なくとも一方を補正する。さらに、移動処理ステップは、移動情報補正ステップによって補正された移動量および移動方向の少なくとも一方に基づいて可動オブジェクトを移動させる。
第10の発明は、第1の発明において、ゲームプログラムで実行されるゲームは、可動オブジェクトをボールとし、目標枠により区画された目標に向けてボールを移動させ、当該ボールを目標枠内に入れることによって得られる得点を競う球技ゲームである。また、目標枠に向けてボールを移動させる操作は、操作対象にシュートを行わせる操作である。
第11の発明は、表示装置(2)と、操作装置(7)と、指示位置検出部(10)と、形状変化部(10)と、可動オブジェクト制御部(10)とを備える、ゲームシステムである。表示装置は、仮想ゲーム空間内に地形オブジェクトと可動オブジェクトが配置されたゲーム画像を画面に表示する。指示位置検出部は、操作装置によって指示された地形オブジェクトの指示位置を検出する。形状変化部は、検出された地形オブジェクトの指示位置およびその周辺の地形の形状を、当該指示位置からの距離に応じて高さが段階的に変化する形状に変形させる。可動オブジェクト制御部は、可動オブジェクトが地形オブジェクトに接したとき、形状変化部によって変形された形状に基づいて接地面における物理計算を行い、当該計算の結果に基づいて可動オブジェクトの移動を制御する。
第12の発明は、仮想ゲーム空間内に地形オブジェクトと可動オブジェクトが配置されたゲーム画像を画面に表示する表示装置(2)と、操作装置(7)とが接続されたゲーム装置であって、指示位置検出部(10)と、形状変化部(10)と、可動オブジェクト制御部(10)とを備える。指示位置検出部は、操作装置によって指示された地形オブジェクトの指示位置を検出する。形状変化部は、検出された地形オブジェクトの指示位置およびその周辺の地形の形状を、当該指示位置からの距離に応じて高さが段階的に変化する形状に変形させる。可動オブジェクト制御部は、可動オブジェクトが地形オブジェクトに接したとき、形状変化部によって変形された形状に基づいて接地面における物理計算を行い、当該計算の結果に基づいて可動オブジェクトの移動を制御する。
上記第1の発明によれば、地形オブジェクトをユーザの意思で変形させることで、間接的に可動オブジェクトを操作することができる。このため、新しい操作感覚のゲームが提供できる。
上記第2の発明によれば、指示位置を中心とした起伏を地形上に生成することができる。これによって、当該起伏を利用した可動オブジェクトの移動という新しい操作方法により、今までにない操作感覚のゲームを提供できる。
上記第3の発明によれば、地形の変形方向をプレイヤが選択することができる。ゲームに戦略の幅を持たせることが可能になり、より面白いゲームが提供できる。
上記第4の発明によれば、変形させた地形を元に戻すことができる。これにより、変形した地形が徐々に平坦になっていく様子を表現することができる。
上記第5の発明によれば、ポリゴンで構成される地形の変形を、当該ポリゴンの頂点演算で処理する。そのため、地形の形状変化をよりリアルに表現することができる。
上記第6の発明によれば、周囲のポリゴンの頂点との高さで演算できる。そのため、地形が段々と平坦になっていく様子を自然に表現することができる。
上記第7の発明によれば、地形オブジェクトのポリゴンの変化量に基づいて物理計算するため、地形の形状が変形することによって可動オブジェクトが移動する様子を、より自然に表現できる。
上記第8の発明によれば、変形した地形のポリゴンの法線ベクトル、および重力ベクトルに基づいて可動オブジェクトの移動方向が決定される。そのため、地形の変化に応じて可動オブジェクトが様々な方向に移動する様子をより自然に表現することができる。
上記第9の発明によれば、可動オブジェクトが所定の位置にあるときには、当該可動オブジェクトに特定の移動を行わせることができる。
上記第10の発明によれば、球技ゲームの興趣を向上させることができる。
上記第11乃至第12の発明によれば、上記第1の発明と同様の効果を得ることができる。
次に、図1を参照して、本発明の一実施形態に係るゲーム装置を含むゲームシステム1について説明する。なお、図1は、当該ゲームシステム1を説明するための外観図である。以下、据置型のゲーム装置を一例にして、本発明のゲーム装置について説明する。
図1において、ゲームシステム1は、家庭用テレビジョン受像機等のスピーカを備えたディスプレイ(以下、モニタと記載する)2に、接続コードを介して接続される据置型ゲーム装置(以下、単にゲーム装置と記載する)3および当該ゲーム装置3に操作データを与えるコントローラ7によって構成される。また、モニタ2の周辺(図では画面の上側)には、2つのマーカ8aおよび8bが設置される。マーカ8aおよび8bは、具体的には赤外LEDであり、それぞれモニタ2の前方に向かって赤外光を出力する。ゲーム装置3には、接続端子を介して受信ユニット6が接続される。受信ユニット6は、コントローラ7から無線送信される操作データを受信し、コントローラ7とゲーム装置3とは無線通信によって接続される。また、ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着される。ゲーム装置3の上部主面には、当該ゲーム装置3の電源ON/OFFスイッチ、ゲーム処理のリセットスイッチ、およびゲーム装置3上部の蓋を開くOPENスイッチが設けられている。ここで、プレイヤがOPENスイッチを押下することによって上記蓋が開き、光ディスク4の脱着が可能となる。
また、ゲーム装置3には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード5が必要に応じて着脱自在に装着される。ゲーム装置3は、光ディスク4に記憶されたゲームプログラムなどを実行することによって、その結果をゲーム画像としてモニタ2に表示する。さらに、ゲーム装置3は、外部メモリカード5に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置3のプレイヤは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
コントローラ7は、その内部に備える通信部36(後述)から受信ユニット6が接続されたゲーム装置3へ、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて操作データを無線送信する。コントローラ7は、操作対象(モニタ2に表示されるオブジェクト)を操作するための操作手段である。コントローラ7には、複数の操作ボタンからなる操作部が設けられている。また、後述により明らかとなるが、コントローラ7は、当該コントローラ7から見た画像を撮像するための撮像情報演算部35(後述)を備えている。すなわち、撮像情報演算部35は、モニタ2の周辺に配置された各マーカ8aおよび8bを撮像対象として、各マーカ8aおよび8bの画像を撮像する。ゲーム装置3は、この画像を用いてコントローラ7の位置および姿勢に対応した操作信号を得る。
次に、図2を参照して、ゲーム装置3の構成について説明する。なお、図2は、ゲーム装置3の機能ブロック図である。
図2において、ゲーム装置3は、各種プログラムを実行する例えばリスク(RISC)CPU(セントラルプロセッシングユニット)10を備える。CPU10は、図示しないブートROMに記憶された起動プログラムを実行し、メインメモリ13等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムを実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。CPU10には、メモリコントローラ11を介して、GPU(Graphics Processing Unit)12、メインメモリ13、DSP(Digital Signal Processor)34、およびARAM(Audio RAM)35が接続される。また、メモリコントローラ11には、所定のバスを介して、コントローラI/F(インターフェース)16、ビデオI/F17、外部メモリI/F18、オーディオI/F19、およびディスクI/F21が接続され、それぞれ受信ユニット6、モニタ2、外部メモリカード5、スピーカ22、およびディスクドライブ20が接続されている。
GPU12は、CPU10の命令に基づいて画像処理を行うものあり、例えば、3Dグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU12は、図示しない画像処理専用のメモリやメインメモリ13の一部の記憶領域を用いて画像処理を行う。GPU12は、これらを用いてモニタ2に表示すべきゲーム画像データやムービー映像を生成し、適宜メモリコントローラ11およびビデオI/F17を介してモニタ2に出力する。
メインメモリ13は、CPU10で使用される記憶領域であって、CPU10の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ13は、CPU10によって光ディスク4から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ13に記憶されたゲームプログラムや各種データ等がCPU10によって実行される。
DSP14は、ゲームプログラム実行時にCPU10において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM15が接続される。ARAM15は、DSP14が所定の処理(例えば、先読みしておいたゲームプログラムやサウンドデータの記憶)を行う際に用いられる。DSP14は、ARAM15に記憶されたサウンドデータを読み出し、メモリコントローラ11およびオーディオI/F19を介してモニタ2に備えるスピーカ22に出力させる。
メモリコントローラ11は、データ転送を統括的に制御するものであり、上述した各種I/Fが接続される。コントローラI/F16は、例えば4つのコントローラI/Fで構成され、それらが有するコネクタを介して嵌合可能な外部機器とゲーム装置3とを通信可能に接続する。例えば、受信ユニット6は、上記コネクタと嵌合し、コントローラI/F16を介してゲーム装置3と接続される。上述したように受信ユニット6は、コントローラ7からの操作データを受信し、コントローラI/F16を介して当該操作データをCPU10へ出力する。なお、他の実施形態においては、ゲーム装置3は、受信ユニット6に代えて、コントローラ7から送信されてくる操作データを受信する受信モジュールをその内部に設ける構成としてもよい。この場合、受信モジュールが受信した送信データは、所定のバスを介してCPU10に出力される。ビデオI/F17には、モニタ2が接続される。外部メモリI/F18には、外部メモリカード5が接続され、その外部メモリカード5に設けられたバックアップメモリ等とアクセス可能となる。オーディオI/F19にはモニタ2に内蔵されるスピーカ22が接続され、DSP14がARAM15から読み出したサウンドデータやディスクドライブ20から直接出力されるサウンドデータをスピーカ22から出力可能に接続される。ディスクI/F21には、ディスクドライブ20が接続される。ディスクドライブ20は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し、ゲーム装置3のバスやオーディオI/F19に出力する。
次に、図3〜図6を参照して、コントローラ7について説明する。図3〜図4は、コントローラ7の外観構成を示す斜視図である。図3Aは、コントローラ7の上面後方から見た斜視図であり、図3Bは、コントローラ7を下面後方から見た斜視図である。図4は、コントローラ7を前方から見た図である。
図3および図4において、コントローラ7は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ7を用いることによって、それに設けられたボタンを押下することと、コントローラ7自体の位置や向きを変えることとによってゲーム操作を行うことができる。例えば、プレイヤは、長手方向を軸としてコントローラ7を回転させることによって、操作対象に移動動作を行わせることができる。また、プレイヤは、コントローラ7によって指し示される画面上の位置を変える操作によって、ゲーム空間に登場するオブジェクトを移動させることができる。ここで、「コントローラ7によって指し示される画面上の位置」とは、理想的には、コントローラ7の前端部から上記長手方向に延ばした直線とモニタ2の画面とが交わる位置であるが、厳密に当該位置である必要はなく、その周辺の位置をゲーム装置3によって算出することができればよい。以下では、コントローラ7によって指し示される画面上の位置を「指示位置」と呼ぶ。また、コントローラ7(ハウジング31)の長手方向を、「コントローラ7の指示方向」と呼ぶことがある。
ハウジング31には、複数の操作ボタンが設けられる。ハウジング31の上面には、十字キー32a、Xボタン32b、Yボタン32c、Bボタン32d、セレクトスイッチ32e、メニュースイッチ32f、およびスタートスイッチ32gが設けられる。一方、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはAボタン32iが設けられる。これらの各ボタン(スイッチ)は、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの機能が割り当てられるが、本発明の説明とは直接関連しないため詳細な説明を省略する。また、ハウジング31の上面には、遠隔からゲーム装置3本体の電源をオン/オフするための電源スイッチ32hが設けられる。
また、コントローラ7は撮像情報演算部35(図5B)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射口35aが設けられる。一方、ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、例えば32ピンのエッジコネクタであり、コントローラ7に他の機器を接続するために利用される。また、ハウジング31上面の後面側には複数のLED34が設けられる。ここで、コントローラ7には、他のコントローラ7と区別するためにコントローラ種別(番号)が付与される。LED34は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ7からゲーム装置3へ操作データを送信する際、上記コントローラ種別に応じて複数のLED34のいずれか1つが点灯する。
次に、図5および図6を参照して、コントローラ7の内部構造について説明する。図5Aおよび図5Bは、コントローラ7の内部構造を示す図である。なお、図5Aは、コントローラ7の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bは、コントローラ7の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bに示す基板300は、図5Aに示す基板300の裏面から見た斜視図となっている。
図5Aにおいて、ハウジング31の内部には基板300が固設されており、当該基板300の上主面上に操作ボタン32a〜32h、加速度センサ37、LED34、水晶振動子46、無線モジュール44、およびアンテナ45等が設けられる。そして、これらは、基板300等に形成された配線(図示せず)によってマイコン42(図6参照)に接続される。また、無線モジュール44およびアンテナ45によって、コントローラ7がワイヤレスコントローラとして機能する。なお、水晶振動子46は、後述するマイコン42の基本クロックを生成する。
一方、図5Bにおいて、基板300の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ7の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41によって構成されおり、それぞれ基板300の下主面に取り付けられる。また、基板300の下主面上の後端縁にコネクタ33が取り付けられる。そして、撮像情報演算部35の後方であって基板300の下主面上に操作ボタン32iが取り付けられていて、それよりさらに後方に、電池47が収容される。電池47とコネクタ33との間の基板300の下主面上には、バイブレータ48が取り付けられる。このバイブレータ48は、例えば振動モータやソレノイドであってよい。バイブレータ48が作動することによってコントローラ7に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームを実現することができる。
図6は、コントローラ7の構成を示すブロック図である。コントローラ7は、上述した操作部32(各操作ボタン)および撮像情報演算部35の他に、その内部に通信部36および加速度センサ37を備えている。
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ7の動きでも追跡して解析することができる。
具体的には、撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ7の前方から入射する光から赤外線のみを通過させる。ここで、モニタ2の表示画面近傍に配置されるマーカ8aおよび8bは、モニタ2の前方に向かって赤外光を出力する赤外LEDである。したがって、赤外線フィルタ38を設けることによってマーカ8aおよび8bの画像をより正確に撮像することができる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ39が集光した赤外線を撮像する。したがって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ8aおよび8b)の位置を算出する。画像処理回路41は、各マーカ8aおよび8bの撮像画像内における位置を示す各座標値を撮像データとして通信部36へ出力する。したがって、ゲーム装置3は、上記撮像画像からコントローラ7のZ軸周りの回転角度を検出することが可能である。
加速度センサ37は、当該加速度センサの検出部に加わっている加速度のうち、センシング軸方向ごとの直線成分の加速度や重力加速度の値を検出する。例えば、2軸又は3軸の加速度センサの場合には、加速度センサの検出部に加わっている加速度を、各軸に沿った直線成分の加速度としてそれぞれ検出する。この実施例では、コントローラ7の上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸でそれぞれ加速度を検知する。加速度センサは、各軸に沿った直線成分の加速度を検出しており、回転や傾きを直接検出することはできない。このため、加速度センサ37を搭載したコントローラ7の姿勢の回転や傾きは、加速度センサの各軸毎に検出される加速度に所定の演算処理を施すことによって算出している。なお、加速度センサ37は、必要な操作信号の種類によっては、上下方向および左右方向の2軸でそれぞれ加速度を検出する加速度センサが用いられてもかまわない。加速度センサ37が検知した加速度を示すデータは、通信部36へ出力される。
通信部36は、マイクロコンピュータ(Micro Computer:マイコン)42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理の際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータを無線送信する無線モジュール44を制御する。
操作部32、加速度センサ37、および撮像情報演算部35からマイコン42へ出力されたデータは、一時的にメモリ43に格納される。ここで、通信部36から受信ユニット6への無線送信は所定の周期毎に行われるが、ゲームの処理は1/60を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。マイコン42は、受信ユニット6への送信タイミングが到来すると、メモリ43に格納されているデータを操作データとして無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ7から送信される。微弱電波信号はゲーム装置3側の受信ユニット6で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。
上記コントローラ7を用いることによって、プレイヤは、各操作スイッチを押下する従来の一般的なゲーム操作に加えて、コントローラ7自身の位置を動かしたり、コントローラ7を回転させたりするというゲーム操作を行うことができる。
次に、図7〜図9を用いて、本実施形態で想定するゲームの概要について説明する。図7および図8は、本実施形態で想定するゲームの画面の一例である。当該ゲームはバスケットボールのゲームであり、2人のプレイヤで対戦する。図7において、ゲーム画面には、リング101とボール102、カーソル103(プレイヤー1用およびプレイヤー2用の2つ)、地面104および壁105が存在する。また、地面104には、シュート可能エリア106が存在する。このようなゲーム画面において、プレイヤは、カーソル103を動かす。そして、Aボタンを押すと、図7に示すように、カーソル103の合っている位置周辺の地面が盛り上がる。このとき、カーソル103の合っている位置周辺の地面にボール102が接地していると、ボール102を飛ばすことができる。また、Bボタンを押すと、図8に示すように、カーソル103の合っている位置周辺の地面が凹む。このとき、カーソル103の合っている位置周辺の地面にボール102が接地していると、ボール102を凹みに入れて保持することができる。そして、これらのボタンを押したままカーソル103を移動させると、当該盛り上がりや凹みもカーソル103に追従して移動する。そのため、凹みを作り、そこにボール102を入れた状態で凹みを移動させることでボールを運ぶことも可能である。また、ボール102がシュート可能エリア106に入っていれば、ボール102に合わせて地面を盛り上げることで、リング101にめがけてボール102を飛ばすこと(すなわち、シュートすること)ができる(図7参照)。このようにして、プレイヤは、カーソル103を動かし、地面104を盛り上げたり凹ませたりしながらボール102を移動させたり奪い合ったりして、相手のリング101にボール102を入れて点数を競う。
なお、地面104や壁105はポリゴンで形成されている。図9は、地面104を真上から見た図であり、ポリゴンをワイヤーフレームで示した図である。図9のように、地面104は、正三角形のポリゴン107を敷き詰めた形で構成されている。
次に、本実施形態のゲーム処理の詳細を説明する前に、当該処理において用いられる主なパラメータについて説明する。まず、図9で示したような、地面104を構成するポリゴン107の各頂点には、以下のパラメータがある。
(1)各頂点の仮想ゲーム空間における位置を示す、XYZ位置(posX、posY、posZ)。
(2)頂点のY方向への移動速度を示す、Y速度(velY)。
(3)シュート可能であることを示すシュートフラグ。このフラグがセットされている頂点では、後述するボール102の移動処理の際に、ボール102がリング101に入りやすいようにボール102の移動方向や速度が補正される(つまり、シュート動作になるようにボールの軌道が修正されることになる)。
また、隣接する各ポリゴン107同士で重なる頂点については、まとめて1つの頂点として扱う。
また、ボール102には、次のようなパラメータがある。
(1)仮想ゲーム空間内でのボール102の位置を示すための、XYZ位置(ballPosX、ballPosY、ballPosZ)
(2)ボール102のXYZ各方向への移動速度を示す、XYZ速度(ballVelX、ballVelY、ballVelZ)。
なお、上記の各パラメータは、メインメモリ13に格納される。また、これら以外にも、メインメモリ13には、プレイヤー1、2の得点カウンタ等のゲーム処理に必要な各種パラメータが格納される。
次に、ゲーム装置3において実行されるゲーム処理の流れを図10〜図17を用いて説明する。図10および図11は、ゲーム装置3において実行されるゲーム処理の流れを示すフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、メインメモリ13等の各ユニットが初期化される。そして、光ディスク4に格納されたゲームプログラムがメインメモリ13に読み込まれ、当該ゲームプログラムの実行が開始される。その結果、GPU12を介してモニタ2にゲーム画像が表示されることによって、ゲームが開始される。この後、図10〜図11に示すフローチャートの処理が実行される。なお、図10〜図11に示すステップS1〜ステップS16の処理ループは、1フレーム毎に繰り返し実行される。
図10において、まず、CPU10は、上記図7等で示した地面104を平坦化する処理を行う(ステップS1)。これは、変形した地面104を徐々に平らにするための処理である。本処理では、図12に示すように、地面104を構成するポリゴンの頂点のうち、ある頂点121に着目し、その頂点121(以下、着目頂点と呼ぶ)の高さを、周囲6頂点122の高さに近づける処理が行われる。換言すると、着目頂点は、その周囲の6頂点122の高さに近づこうとするような挙動を行うことになる。このステップS1の処理をより具体的に説明すると、まず、現在のY速度(velY)で着目頂点121の位置を更新する。
posY=posY+velY
次に、Y速度を一定の割合、例えば、7割で減衰させる。
velY=velY×0.7
次に、着目頂点121と、その周囲6頂点122それぞれとの高さの差分を算出し、これら差分の総和SumSを求める。そして、以下の式で、Y速度に周囲の6頂点122の高さを加味する。
velY=velY+SumS×定数
これらの演算を、地面を構成する全ての頂点に対して行うことで、平坦化処理が行われる。
次に、プレイヤー1についてのプレイヤー処理(ステップS2)が行われる。本処理では、プレイヤが動かしたカーソルの位置に基づく地面の位置の算出と、地面の盛り上げ、および凹まし処理が行われる。図13は、上記ステップS2で示したプレイヤー処理の詳細を示すフローチャートである。図13において、まず、上述したようにコントローラ7から送信されてくる操作データを取得する(ステップS30)。この操作データには、各マーカ8aおよび8bの撮像画像内における位置を示す各座標データと、AボタンおよびBボタンの操作データが含まれる。
続いて、CPU10は、上記ステップS30で取得した操作情報に基づいて、モニタ2の画面座標系に基づいた入力座標を算出する。具体的には、ステップS30で得られた各マーカ8aおよび8bの位置座標の中点座標値を算出する。次に、算出された中点座標値に基づいて、画面上の入力座標を算出する。そして、CPU10は、算出した入力座標を画面座標データとしてメインメモリ33に記憶する。次に、画面のカーソル位置を当該画面座標データの示す位置に更新する(ステップS31)。
次に、CPU10は、画面のカーソル位置に対応する仮想ゲーム空間内の地形上の位置(以下、地形操作位置)を算出する(ステップS32)。このステップS32の処理を図14を用いて説明すると、まず、仮想カメラからの視線方向に仮想スクリーン(画面に相当する)を設置する。次に、カメラ位置と仮想スクリーン上での画面カーソル位置(ステップS31で算出された画面座標データの示す位置に相当)とを通る直線が、地面と交差する位置を算出する。この算出された交差位置を、地形操作位置とする。地形操作位置は、その位置を示すためのパラメータとして、XYZ位置(cX、cY、cZ)を有する。
図13に戻り、次に、CPU10は、上記ステップS30で取得した操作情報に基づいて、Aボタンが押されているか否かを判定する(ステップS33)。Aボタンが押されていれば(ステップS33でYES)、前回のフレームにおける処理においてもAボタンが押されていたかを判定する(ステップS34)。その結果、押されていれば、後述の地形盛り上げ処理に進む(ステップS37)。押されていないときは、地形操作位置がシュート可能エリア106に入っているか否かを判定する(ステップS35)。シュート可能エリア106に入っていれば、当該地形操作位置のポリゴン107を構成する各頂点にシュートフラグをセットする(ステップS36)。
続いて、地形盛り上げ処理が行われる(ステップS37)。本処理では、地形操作位置の周囲の頂点にY速度を加算し、各頂点をY方向(地面XZと直交する方向、すなわち地面の上下の高さ方向)に移動させる処理が行われる。このステップS37の処理を図15を用いて具体的に説明する。図15は、地面104(を構成するポリゴン)を側面から見た状態を示している。この図において、ある頂点151を処理する場合を例として説明する。まず、地形操作位置(cX、cY、cZ)と、処理対象となる頂点151とのXZ距離dを以下の式で算出する。
Figure 0005183878
算出の結果、XZ距離dが、予め定められている定数である操作半径r以上であるときは、当該頂点については高さを変化させないようにするため、このまま地形盛り上げ処理を終了する。一方、r未満であるときは、当該頂点の高さを変えるため、XZ距離dに対応する高さhを、以下の式で算出する。
Figure 0005183878
そして最後に、PosYと高さhとの差分に比例した力をY速度に加える。
velY=velY+(h−posY)×(定数)
これらの演算を、地面104を構成する全ての頂点に対して行う。その結果、図16に示すような、地形操作位置に近い頂点ほど高い位置が算出され、そこから離れていくにつれて徐々に高さが低くなっていくような形状で地面が盛り上がった表現を行うことができる。
図13に戻り、一方、ステップS33でAボタンが押されていなかったときは、CPU10は、Bボタンが押されているか否かを判定する(ステップS38)。押されていないときは、プレイヤ処理を終了する(ステップS38でNO)。押されていれば(ステップS38でYES)、地面の凹まし処理を行う(ステップS39)。ステップS39においては、上記ステップS37の盛り上げ処理と同様、地形操作位置の周囲の頂点にY速度を加算し、各頂点をY方向に移動させる処理が行われる。従って、基本的に上記ステップS37と同様の処理が行われるが、算出される高さを、上記地形盛り上げ処理の場合とは逆の方向にして算出する。そのため、上記式1の代わりに以下の式を用いて高さhを算出する。
Figure 0005183878
この式が用いられること以外は、上記ステップS37と同様の処理が行われるため、詳細な説明は省略する。本ステップの処理の結果、図17に示すように、地形操作位置に近い頂点ほど低い位置が算出され、離れていくにつれ、徐々に高さが高まっていくような形状で床を凹ませることができる。以上で、プレイヤー処理は終了する。
図10に戻り、プレイヤー1についてのプレイヤ処理が終了すれば、続いてプレイヤー2についてプレイヤー処理が行われる(ステップS3)。この処理は、上記ステップS2と同様の処理であるため、詳細な説明は省略する。
続いて、ボール102の移動処理が行われる(ステップS4)。具体的には、以下のような計算が行われる。まず、前回の処理ループにおいて最終的に算出されたボールのXYZ速度に基づいて、ボール102の位置を更新する。具体的には、以下の計算を行う。
ballPosX=ballPosX+ballVelX
ballPosY=ballPosY+ballVelY
ballPosZ=ballPosZ+ballVelZ
続いて、速度に重力ベクトル(gX,gY,gZ)を加算する。すなわち、重力ベクトルを加味して速度の値を更新する。ここで、重力ベクトルとは、仮想ゲーム空間内において真下方向へと向かうベクトルのことをいう。
ballVelX=ballVelX+gX
ballVelY=ballVelY+gY
ballVelZ=ballVelZ+gZ
以上で、ボール102の新しい位置が算出され、ボール移動処理は終了する。
次に、ボール102が壁105またはリング101に当たったか否かが判定される(ステップS5)。すなわち、ボール102の新しい移動位置が壁105あるいはリング101の位置と重なっているか否かが判定される。その結果、ボール102が、壁105あるいはリング101に当たっていないときは(ステップS5でNO)、処理をステップS7に進める。一方、ボール102が、壁105あるいはリング101に当たったときは(ステップS5でYES)、ボール跳ね返り処理が行われる(ステップS6)。このステップS6の処理をより具体的に説明すると、壁105またはリング101を構成する各ポリゴンについて、次のような計算が行われる。まず、ポリゴンの法線ベクトル(nX,nY,nZ)を計算し、ボール102がポリゴンに食い込むような位置にあるか否かが判定される。その結果、ボール102がポリゴンに食い込んでいなければ、跳ね返り処理は終了する。つまり、ボール102の跳ね返りは発生しない。一方、ボールが食い込むような位置にあれば、食い込んでいる深さを検出し、その深さをdepthとする。次に、以下の式を用いて、ボール102の位置をポリゴンの法線方向に修正する。
ballPosX=ballPosX+nX×depth
ballPosY=ballPosY+nY×depth
ballPosZ=ballPosZ+nZ×depth
続いて、以下の式で、ボール102の速度の法線方向成分vSpeedを計算する。
vSpeed=ballVelX×nX+ballVelY×nY+ballVelZ×nZ
次に、以下の式で、ボール102のXYZ速度を算出する。つまり、跳ね返るときのボール102の速度を算出する。
ballVelX=ballVelX−vSpeed×(1.0+k)×nX ・・・式3
ballVelY=ballVelY−vSpeed×(1.0+k)×nY ・・・式4
ballVelZ=ballVelZ−vSpeed×(1.0+k)×nZ ・・・式5
ここで、kは反発係数を示す。
以上で、ステップS6の跳ね返り処理は終了する。
続いて、ボール102が地面104に接触したかどうかを判定する(ステップS7)。その結果、接触していれば、跳ね返り処理を行う(ステップS8)。ステップS8における跳ね返り処理では、上述のステップS6で説明した各計算に加え、ポリゴンの移動速度をボール速度に加味する計算が加わる。つまり、例えば、凹ました地面の中にボール102が入っているときに、その地面を盛り上げると、地面が盛り上がる勢い(地面を構成するポリゴンの移動速度)をボール102のパラメータに加味するための計算を行う。具体的には、上述したボール102の速度を算出後(式3〜5)、さらに、次のような計算が行われる。まず、ボール102が接触しているポリゴンのY方向への移動速度FaceVelYを計算する。これは、当該ポリゴンを構成する3頂点の速度VelYの平均を取った値である。そして、以下の式を用いて、ポリゴンの移動速度faceVelYをボール102の速度に加味する。
ballVelX=ballVelX+nX×faceVelY
ballVelY=ballVelY+nY×faceVelY
ballVelZ=ballVelZ+nZ×faceVelY
以上のような演算を行うことで、ボール102が地面104の形状に合わせて跳ね返る動きを表現することができる。以上で、ステップS8にかかる跳ね返り処理は終了する。
次に、地形操作位置のポリゴンを構成する3頂点のいずれかにシュートフラグがセットされているか否かを判定する(ステップS9)。その結果、シュートフラグがセットされていたときは(ステップS9でYES)、ボール102がリング101に入りやすくなるように、ボール102の速度または移動方向を補正する(ステップS10)。より具体的には、地形操作位置とリング101との位置関係を見て、ボール102のXYZ速度を補正する。当該補正については、位置関係と補正する値とを対応付けたテーブルを予めメモリ等に準備しておき、当該テーブルに基づいて、ボール102のXYZ速度を補正する。
次に、ボール102がプレイヤー1のリング101を通過したか否かが判定される(ステップS11)。その結果、通過していれば(ステップS11でYES)、プレイヤー2の得点を加算する(ステップS12)。一方、プレイヤー1のリングを通過していなければ(ステップS11でNO)、ボール102がプレイヤー2のリングを通過したか否かが判定される(ステップS13)。その結果、プレイヤー2のリング101を通過していなければ(ステップS13でNO)、そのまま処理をステップS15に進める。一方、プレイヤー2のリング101を通過していれば(ステップS13でYES)、プレイヤー1の得点を加算してから(ステップS14)、ステップS15に処理を進める。
次に、ステップS15において、表示処理が行われる。すなわち、仮想カメラで仮想空間を撮影した画像をゲーム画像としてモニタ2に表示する処理がされる。ステップS15の後、ステップS16において、ゲーム終了か否かが判断され、YESの場合、ゲーム処理を終了し、NOの場合、ステップS1に戻って、ゲーム処理を繰り返す。以上で、本実施形態に係るゲーム処理は終了する。
このように、第1の実施形態では、地形を直接指示して変形させることで、ボールを間接的に動かすことができる。これにより、今までにない斬新な操作方法を用いたゲームを提供できる。また、ポリゴンで構成される地形の変形について、そのポリゴンの頂点位置を演算して表現する。そのため、地形の形状変化をよりリアルに表現することができる。変形した地形のポリゴンの法線ベクトルおよび重力ベクトルに基づいてボールの移動方向が決定される。そのため、地形の変化に応じてボールが様々な方向に移動する様子を、より自然に表現することができる。また、シュートしたとき、リングに入りやすくなるようにボールの軌道に補正をかけている。これにより、操作性を向上させ、ゲームのテンポをよくすることができる。
なお、上記指示位置について、上述した実施形態では、カーソル103については画面座標系で移動させていた。すなわち、モニタ2の画面上をカーソル103が移動するような表現になっていた。これに限らず、カーソル103が仮想ゲーム空間内の地面の上を移動するように表現してもよい。図18は、カーソル103がゲーム空間内の地面の上を移動する様子を示す図である。図18においては、手前のほうに表示されているカーソル103は大きく、奥のほうに表示されるカーソル103は小さく表示される。つまり、手前にあるカーソル103を奥のほうに移動させると、奥に行くにつれて小さくなって表示される。また、当該カーソル103は、地面の上しか移動させることができず、壁に当たると、そこから奥には進めることができない。このように、カーソル103を直接地面の上を移動するような表示にすることにより、プレイヤに対して、自分が今どの位置を指示しているのかを、より把握させやすくすることができる。
また、上述の実施例では、モニタの周辺に配置されたマーカから出力される赤外光をコントローラ側で撮像することによって得られる位置座標に基づいて画面上のカーソル位置を算出するようにしたが、これに限らず、他の方法を用いてもよい。例えば、コントローラ7の十字キー32aを操作することによって得られる上下左右の方向指示に基づいて画面上のカーソル位置を算出するようにしてもよい。また、他の手法として、モニタ画面にタッチパネルを設置し、モニタを指やペン等で直接タッチすることによって指示された画面上の位置座標をタッチパネルによって検出し、その検出座標をカーソル位置とするようにしてもよい。また、他の手法として、コントローラ7に代えて、マウス、トラックパッド、トラックボール等の画面上の入力座標を指定する他のポインティングデバイスを用いて、当該マウス等から出力される出力値に基づいて画面上のカーソル位置を算出するようにしてもよい。
本発明にかかるゲームプログラムおよびゲームシステムは、間接的にオブジェクトを移動させる操作を用いたゲームが提供でき、球技ゲームや、その他、可動オブジェクトを移動させて楽しむゲームプログラム等の用途に有用である。
本発明の一実施形態に係る座標算出装置一例であるゲーム装置を含むゲームシステムの外観図 ゲーム装置3の機能ブロック図 コントローラ7の斜視図 コントローラ7の斜視図 コントローラ7を前方から見た図 コントローラ7の内部構造を示す図 コントローラ7の内部構造を示す図 コントローラ7の構成を示すブロック図 本実施形態で想定するゲームの画面の一例 本実施形態で想定するゲームの画面の一例 地面104を真上から見た図 ゲーム装置3において実行されるゲーム処理の流れを示すフローチャート ゲーム装置3において実行されるゲーム処理の流れを示すフローチャート 地面の平坦化処理を説明するための図 図10のステップS2で示したプレイヤー処理の流れを示すフローチャート 地形操作位置の決め方を説明するための図 地形の盛り上げ・凹まし処理を説明するの図 地面が盛り上がった状態を示す図 地面が凹んだ状態を示す図 カーソルが地面の上を移動する様子を示す図
符号の説明
1 ゲームシステム
2 モニタ
3 ゲーム装置
4 光ディスク
5 外部メモリカード
7 コントローラ
8a,8b マーカ
10 CPU
13 メインメモリ
32 操作部
35 撮像情報演算部
36 通信部
37 加速度センサ
40 撮像素子

Claims (13)

  1. 仮想ゲーム空間内に地形オブジェクトと可動オブジェクトが配置されたゲーム画像を画
    面に表示する表示装置と、操作装置とが接続されたゲーム装置のコンピュータを、
    前記操作装置によって指示された前記地形オブジェクトの指示位置を検出するための指示位置検出手段と、
    前記検出された前記地形オブジェクトの指示位置およびその周辺の地形の形状を変形させる形状変化手段と、
    記形状変化手段によって変形された形状に基づいて前記可動オブジェクトの移動を制御する可動オブジェクト制御手段して機能させ、
    前記形状変化手段による地形の形状の変化を繰り返し行うことによって、前記可動オブジェクトを間接的に操作する、ゲームプログラム。
  2. 前記形状変化手段は、前記指示位置からの距離に応じて高さが段階的に変化するように、当該指示位置の高さを所定の高さに決定し、当該指示位置からの距離に応じて、変形させる前の地形オブジェクトの地表との高低差が段階的に小さくなるような形状に周囲の形状を変形させる、請求項1に記載のゲームプログラム。
  3. 前記操作装置から第1の操作データまたは第2の操作データを取得する操作データ取得手段として前記コンピュータをさらに機能させ
    前記形状変化手段は、操作データ取得手段で前記第1操作データが取得されたときは、前記地形オブジェクトの指示位置およびその周辺の高さを第1の方向に向けて変化させ、前記第2操作データが取得されたときは、前記地形オブジェクトの指示位置およびその周辺の高さを前記第1の方向とは異なる第2の方向に向けて変化させる、請求項1記載のゲームプログラム。
  4. 前記形状変化手段で変形された前記地形オブジェクトの形状を変形させる前の状態に回復させるための回復処理手段として前記コンピュータをさらに機能させる、請求項1記載のゲームプログラム。
  5. 前記地形オブジェクトは、複数のポリゴンから構成され、
    前記形状変化手段は、
    前記地形オブジェクトの指示位置と前記複数のポリゴンの各頂点との距離を算出する距離算出手段と、
    前記距離に基づいて前記複数のポリゴンの各頂点のそれぞれの高さの変化量を算出する変化量算出手段と、
    前記変化量に基づいて前記複数のポリゴンの各頂点の位置を変化させる変化処理手段とを含む、請求項1記載のゲームプログラム。
  6. 前記形状変化手段によって変形された前記地形オブジェクトの形状を、変形させる前の状態に回復させるための回復処理手段として前記コンピュータをさらに機能させ
    前記回復処理手段は、所定のポリゴンの頂点の高さについて、当該頂点の周辺の頂点の高さに近づくように変化量を算出する、請求項5に記載のゲームプログラム。
  7. 前記可動オブジェクト制御手段は、
    前記可動オブジェクトが前記地形オブジェクトに接したとき、前記変化量算出手段で算出された前記変化量に基づいて接地面における物理計算を行うことで前記可動オブジェクトの移動量を算出する移動量算出手段と、
    前記移動量に基づいて前記可動オブジェクトを移動させる移動処理手段とを含む、請求項5記載のゲームプログラム。
  8. 前記変化処理手段によって変化された前記複数のポリゴンの法線ベクトルを算出する法線ベクトル算出手段と、
    前記仮想ゲーム空間内において真下方向へと向かうベクトルである重力ベクトルを算出する重力ベクトル算出手段して前記コンピュータをさらに機能させ
    前記可動オブジェクト制御手段は、前記法線ベクトルおよび前記重力ベクトルに基づいて物理計算を行うことで、前記可動オブジェクトの移動方向を設定する移動方向設定手段を含む、請求項5記載のゲームプログラム。
  9. 前記複数のポリゴンの一部には特定処理情報が設定されており、
    前記可動オブジェクトが接しているポリゴンに前記特定処理情報が設定されているか否かを判別する判別手段と、
    前記判別手段により前記特定処理情報が設定されていることが判別されたとき、前記移動量算出手段によって算出された前記移動量および前記移動方向設定手段によって設定された前記移動方向の少なくとも一方を補正する移動情報補正手段して前記コンピュータをさらに機能させ
    前記移動処理手段は、前記移動情報補正手段によって補正された移動量および移動方向の少なくとも一方に基づいて前記可動オブジェクトを移動させる、請求項7または8記載のゲームプログラム。
  10. 前記ゲームプログラムで実行させるゲームは、
    前記可動オブジェクトをボールとし、
    目標枠により区画された目標に向けてボールを移動させ、当該ボールを前記目標枠内に入れることによって得られる得点を競う球技ゲームであり、
    前記目標枠に向けて前記ボールを移動させる操作は、操作対象にシュートを行わせる操作である、請求項1に記載のゲームプログラム。
  11. 仮想ゲーム空間内に地形オブジェクトと可動オブジェクトが配置されたゲーム画像を画面に表示する表示装置と、
    操作装置と、
    前記操作装置によって指示された地形オブジェクトの指示位置を検出するための指示位置検出部と、
    前記検出された前記地形オブジェクトの指示位置およびその周辺の地形の形状を変形させる形状変化部と、
    前記形状変化部によって変形された形状に基づいて前記可動オブジェクトの移動を制御する可動オブジェクト制御部とを備え、
    前記形状変化部による地形の形状の変化を繰り返し行うことによって、前記可動オブジェクトを間接的に操作する、ゲームシステム。
  12. 仮想ゲーム空間内に地形オブジェクトと可動オブジェクトが配置されたゲーム画像を画面に表示する表示装置と、操作装置とが接続されたゲーム装置であって、
    前記操作装置によって指示された地形オブジェクトの指示位置を検出するための指示位置検出部と、
    前記検出された前記地形オブジェクトの指示位置およびその周辺の地形の形状を変形させる形状変化部と、
    前記形状変化部によって変形された形状に基づいて前記可動オブジェクトの移動を制御する可動オブジェクト制御部とを備え
    前記形状変化部による地形の形状の変化を繰り返し行うことによって、前記可動オブジェクトを間接的に操作する、ゲーム装置。
  13. 仮想ゲーム空間内に地形オブジェクトと可動オブジェクトが配置されたゲーム画像を画面に表示する表示装置と、操作装置とを備えるゲームシステムに用いられるゲーム処理制御方法であって、
    前記操作装置によって指示された地形オブジェクトの指示位置を検出するための指示位置検出ステップと、
    前記検出された前記地形オブジェクトの指示位置およびその周辺の地形の形状を変形させる形状変化ステップと、
    前記形状変化ステップにおいて変形された形状に基づいて前記可動オブジェクトの移動を制御する可動オブジェクト制御ステップとを備え、
    前記形状変化ステップによる地形の形状の変化を繰り返し行うことによって、前記可動オブジェクトを間接的に操作する、ゲーム処理制御方法。
JP2006059952A 2006-03-06 2006-03-06 ゲームプログラム、ゲームシステム Active JP5183878B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006059952A JP5183878B2 (ja) 2006-03-06 2006-03-06 ゲームプログラム、ゲームシステム
US11/519,034 US8038531B2 (en) 2006-03-06 2006-09-12 Recording medium recording game program, and game system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006059952A JP5183878B2 (ja) 2006-03-06 2006-03-06 ゲームプログラム、ゲームシステム

Publications (3)

Publication Number Publication Date
JP2007236469A JP2007236469A (ja) 2007-09-20
JP2007236469A5 JP2007236469A5 (ja) 2009-04-02
JP5183878B2 true JP5183878B2 (ja) 2013-04-17

Family

ID=38472097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006059952A Active JP5183878B2 (ja) 2006-03-06 2006-03-06 ゲームプログラム、ゲームシステム

Country Status (2)

Country Link
US (1) US8038531B2 (ja)
JP (1) JP5183878B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5179020B2 (ja) 2006-05-09 2013-04-10 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法
JP5420824B2 (ja) * 2007-03-30 2014-02-19 任天堂株式会社 ゲーム装置およびゲームプログラム
US20100292007A1 (en) 2007-06-26 2010-11-18 Nintendo Of America Inc. Systems and methods for control device including a movement detector
JP5758202B2 (ja) * 2011-06-02 2015-08-05 任天堂株式会社 画像処理プログラム、画像処理装置、画像処理方法および画像処理システム
US8814675B2 (en) * 2011-08-09 2014-08-26 Zynga Inc. Method of operating an online game using terraformed game spaces
JP2014182638A (ja) 2013-03-19 2014-09-29 Canon Inc 表示制御装置、表示制御方法、コンピュータプログラム
CN109453519B (zh) * 2018-11-09 2022-02-22 网易(杭州)网络有限公司 一种地形的创建方法和装置
JP7223555B2 (ja) * 2018-11-12 2023-02-16 任天堂株式会社 情報処理装置、情報処理プログラム、情報処理システム、および情報処理方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07236769A (ja) * 1994-02-28 1995-09-12 Sega Enterp Ltd 画像表示制御方法及びこれを用いた電子遊戯装置
JP3048346B2 (ja) 1997-06-04 2000-06-05 コナミ株式会社 物体の動き表現方法、及びゲームプログラムが記録されたコンピュータ読取可能な記録媒体
JP3847058B2 (ja) * 1999-10-04 2006-11-15 任天堂株式会社 ゲームシステム及びそれに用いられるゲーム情報記憶媒体
US6347999B1 (en) * 1999-11-18 2002-02-19 Jay C. Yuan Pinball simulator game system
JP2001224849A (ja) 1999-12-10 2001-08-21 Sony Computer Entertainment Inc エンタテインメントシステム、エンタテインメント装置、記録媒体及びプログラム
US20010003708A1 (en) * 1999-12-10 2001-06-14 Takuya Aizu Entertainment system, entertainment apparatus, recording medium, and program
JP3428562B2 (ja) * 2000-04-25 2003-07-22 株式会社スクウェア オブジェクトの動きを処理する方法および記録媒体、並びに、ゲーム装置
US7084888B2 (en) * 2001-08-09 2006-08-01 Konami Corporation Orientation detection marker, orientation detection device and video game device
US20040219978A1 (en) * 2002-10-09 2004-11-04 Namco Ltd. Image generation method, program, and information storage medium
JP4099434B2 (ja) * 2003-07-08 2008-06-11 任天堂株式会社 画像生成プログラム及びゲーム装置
WO2005039719A1 (en) * 2003-10-29 2005-05-06 Matsushita Electric Industrial Co., Ltd. Game system
JP4189315B2 (ja) * 2003-12-26 2008-12-03 任天堂株式会社 ゲーム装置およびゲームプログラム
JP4287764B2 (ja) * 2004-02-26 2009-07-01 任天堂株式会社 競争ゲーム装置および競争ゲームプログラム
JP4457051B2 (ja) * 2005-07-19 2010-04-28 任天堂株式会社 オブジェクト移動制御プログラムおよび情報処理装置

Also Published As

Publication number Publication date
US20070207856A1 (en) 2007-09-06
US8038531B2 (en) 2011-10-18
JP2007236469A (ja) 2007-09-20

Similar Documents

Publication Publication Date Title
KR101179020B1 (ko) 정보 처리 프로그램을 기록한 저장 매체
US9199166B2 (en) Game system with virtual camera controlled by pointing device
CA2746486C (en) Display device, game system, and game process method
JP4260814B2 (ja) ゲーム装置およびゲームプログラム
US8284158B2 (en) Computer readable recording medium recording image processing program and image processing apparatus
JP5183878B2 (ja) ゲームプログラム、ゲームシステム
US8246457B2 (en) Storage medium having game program stored thereon and game apparatus
US20080076567A1 (en) Game device and storage medium storing game program
US20120010733A1 (en) Storage medium having game program stored thereon and game apparatus
US8012004B2 (en) Computer-readable storage medium having game program stored thereon and game apparatus
JP5031260B2 (ja) オブジェクト制御プログラム、オブジェクト制御装置、オブジェクト制御システムおよびオブジェクト制御方法
US8147330B2 (en) Game apparatus and storage medium having game program stored thereon
JP5013511B2 (ja) ゲームプログラムおよびゲーム装置
JP4151983B2 (ja) 移動方向算出装置および移動方向算出プログラム
JP5350612B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法
JP4290709B2 (ja) ゲーム装置およびゲームプログラム
JP4220531B2 (ja) 重力方向算出装置および重力方向算出プログラム
JP2007295989A (ja) ゲーム装置およびゲームプログラム
JP5798601B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法
JP5352626B2 (ja) 情報処理プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090216

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090216

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120330

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130116

R150 Certificate of patent or registration of utility model

Ref document number: 5183878

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

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

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