(57)【特許請求の範囲】
【請求項１】
仮想空間に配置される移動体と、当該移動体を支持可能な複数の支持体と、を画面に表示する表示部、
１人または複数のプレイヤーの動作を検知する検知部、
前記検知された動作に基づいて、前記複数の支持体の位置を変化させる変化部、
前記移動体に設定された複数の支持点のそれぞれについて、当該支持点を含むように設定された判定領域が前記複数の支持体のいずれかと重なる場合、当該支持点が当該支持体に支持されていると判定し、前記複数の支持点のうち、前記複数の支持体のいずれかに支持されていると判定された支持点の個数が、所定の閾値を超える場合、前記移動体が、当該複数の支持体に支持されていると判定する判定部、
前記移動体が前記支持体に支持されていると判定されている間、前記判定領域のうち、少なくとも前記支持体に重なる判定領域が広くなるように設定する設定部
を備えることを特徴とするゲーム装置。
【請求項２】
請求項１に記載のゲーム装置であって、
前記設定部は、前記移動体に設定された複数の支持点のそれぞれについて、当該支持点を含むように設定された前記判定領域の広さを、前記支持体の速度に応じて設定する
ことを特徴とするゲーム装置。
【請求項３】
請求項１に記載のゲーム装置であって、
前記移動体が前記複数の支持体に支持されていないと判定された場合、前記変化部は、前記移動体の位置を、所定の加速度で変化させる
ことを特徴とするゲーム装置。
【請求項４】
仮想空間に配置される移動体と、当該移動体を支持可能な支持体と、を画面に表示する表示部、
プレイヤーの動作を検知する検知部、
前記検知された動作に基づいて、前記支持体の位置を変化させる変化部、
前記移動体に設定された支持点を含むように設定された判定領域が、前記支持体と重なる場合、前記支持点が前記支持体に支持されていると判定する判定部、
前記支持点が前記支持体に支持されていると判定されている間、前記判定領域が広くなるように設定する設定部
を備えることを特徴とするゲーム装置。
【請求項５】
請求項４に記載のゲーム装置であって、
前記設定部は、前記移動体に設定された支持点を含むように設定された前記判定領域の広さを、前記支持体の速度に応じて設定する
ことを特徴とするゲーム装置。
【請求項６】
請求項４に記載のゲーム装置であって、
前記移動体が前記支持体に支持されていないと判定された場合、前記変化部は、前記移動体の位置を、所定の加速度で変化させる
ことを特徴とするゲーム装置。
【請求項７】
請求項１から６のいずれか１項に記載のゲーム装置であって、
前記設定部は、前記支持体に支持されている支持点を含む判定領域の広さを、当該支持体と当該支持点との距離に応じて設定する
ことを特徴とするゲーム装置。
【請求項８】
請求項１から６のいずれか１項に記載のゲーム装置であって、
前記設定部は、前記支持体に支持されている支持点を含む判定領域の広さを、当該支持体の速度と当該支持点の速度との差に応じて設定する
ことを特徴とするゲーム装置。
【請求項９】
請求項１から８のいずれか１項に記載のゲーム装置であって、
前記表示部による表示、前記検知部による検知、前記変化部による変化、前記判定部による判定、前記設定部による設定は、所定の時間間隔で所定の順序で行われる
ことを特徴とするゲーム装置。
【請求項１０】
表示部、検知部、変化部、判定部、設定部を有するゲーム装置が実行するゲーム制御方法であって、
前記表示部が、仮想空間に配置される移動体と、当該移動体を支持可能な複数の支持体と、を画面に表示する表示工程、
前記検知部が、１人または複数のプレイヤーの動作を検知する検知工程、
前記変化部が、前記検知された動作に基づいて、前記複数の支持体の位置を変化させる変化工程、
前記判定部が、前記移動体に設定された複数の支持点のそれぞれについて、当該支持点を含むように設定された判定領域が前記複数の支持体のいずれかと重なる場合、当該支持点が当該支持体に支持されていると判定し、前記複数の支持点のうち、前記複数の支持体のいずれかに支持されていると判定された支持点の個数が、所定の閾値を超える場合、前記移動体が、当該複数の支持体に支持されていると判定する判定工程、
前記設定部が、前記移動体が前記支持体に支持されていると判定されている間、前記判定領域のうち、少なくとも前記支持体に重なる判定領域が広くなるように設定する設定工程
を備えることを特徴とするゲーム制御方法。
【請求項１１】
表示部、検知部、変化部、判定部、設定部を有するゲーム装置が実行するゲーム制御方法であって、
前記表示部が、仮想空間に配置される移動体と、当該移動体を支持可能な支持体と、を画面に表示する表示工程、
前記検知部が、プレイヤーの動作を検知する検知工程、
前記変化部が、前記検知された動作に基づいて、前記支持体の位置を変化させる変化工程、
前記判定部が、前記移動体に設定された支持点を含むように設定された判定領域が、前記支持体と重なる場合、前記支持点が前記支持体に支持されていると判定する判定工程、
前記設定部が、前記支持点が前記支持体に支持されていると判定されている間、前記判定領域が広くなるように設定する設定工程
を備えることを特徴とするゲーム制御方法。
【請求項１２】
コンピュータを、
仮想空間に配置される移動体と、当該移動体を支持可能な複数の支持体と、を画面に表示する表示部、
１人または複数のプレイヤーの動作を検知する検知部、
前記検知された動作に基づいて、前記複数の支持体の位置を変化させる変化部、
前記移動体に設定された複数の支持点のそれぞれについて、当該支持点を含むように設定された判定領域が前記複数の支持体のいずれかと重なる場合、当該支持点が当該支持体に支持されていると判定し、前記複数の支持点のうち、前記複数の支持体のいずれかに支持されていると判定された支持点の個数が、所定の閾値を超える場合、前記移動体が、当該複数の支持体に支持されていると判定する判定部、
前記移動体が前記支持体に支持されていると判定されている間、前記判定領域のうち、少なくとも前記支持体に重なる判定領域が広くなるように設定する設定部
として機能させることを特徴とするプログラム。
【請求項１３】
コンピュータを、
仮想空間に配置される移動体と、当該移動体を支持可能な支持体と、を画面に表示する表示部、
プレイヤーの動作を検知する検知部、
前記検知された動作に基づいて、前記支持体の位置を変化させる変化部、
前記移動体に設定された支持点を含むように設定された判定領域が、前記支持体と重なる場合、前記支持点が前記支持体に支持されていると判定する判定部、
前記支持点が前記支持体に支持されていると判定されている間、前記判定領域が広くなるように設定する設定部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの動作に合わせて仮想空間内の支持体の位置を変化させ、当該支持体により当該仮想空間内の移動体を支持して、当該支持体の移動に合わせて当該移動体を移動させるゲームを実現する際に、移動体が支持体に支持されているか否かを適切に判定するのに好適なゲーム装置、ゲーム装置の制御方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、仮想空間を移動する移動体をリアルに表現するために、物理シミュレーションを実行する技術が開示されている。
【０００３】
たとえば、特許文献１においては、布状体と当該布状体が交差しない障害物との仮想３次元空間における移動をシミュレートする技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１４６８０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、現実世界には、人の手で物体の表面に触れたり物体の表面を挟んだりすることで物体を支持して、当該物体を移動させる際には、動摩擦や静止摩擦など、物理的な振舞いが必ずしも判明していない現象があり、物理シミュレーションには、多大な計算量を要することも多い。
【０００６】
そこで、簡易な計算で、仮想空間における支持体と移動体の振舞いを、人の手に支持される物体の振舞いに近似させ、ユーザに自然でリアルに見えるようにシミュレーションする技術が強く望まれている。
【０００７】
本発明は、上記のような課題を解決するもので、ユーザの動作に合わせて仮想空間内の支持体の位置を変化させ、当該支持体により当該仮想空間内の移動体を支持して、当該支持体の移動に合わせて当該移動体を移動させるゲームを実現する際に、移動体が支持体に支持されているか否かを適切に判定するのに好適なゲーム装置、ゲーム装置の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００９】
本発明の第１の観点に係るゲーム装置は、表示部、検知部、変化部、判定部、設定部、修正部を備え、以下のように構成する。
【００１０】
すなわち、表示部は、仮想空間に配置される移動体と、当該移動体を支持可能な複数の支持体と、を画面に表示する。
【００１１】
本ゲーム装置においては、仮想２次元空間内で、移動体を支持体によって支持して移動させるゲームを提供する。たとえば、仮想空間内の巨大なボールを移動体とし、このボールを支える仮想的なマジックハンドを支持体として、一人で、あるいは、複数のプレイヤーが、マジックハンドでボールの表面の何箇所かを支えながらボールを移動させるゲームが提供される。
【００１２】
一方、検知部は、１人または複数のプレイヤーの動作を検知する。
【００１３】
上記の例では、位置センサや加速度センサを有するコントローラにより検知部を実現する場合には、プレイヤーは、両拳にそれぞれ当該コントローラを握り、当該コントローラを上下左右に動かす。すると、コントローラは、位置の変化や加速度を検知して、プレイヤーの動作を認識する。このほか、可視光カメラもしくは赤外線カメラによりプレイヤーの姿を動画で撮影し、画像認識を行って、時間経過とともに、ユーザがとっている姿勢の変化を追跡する手法を採用することもできる。
【００１４】
さらに、変化部は、検知された動作に基づいて、複数の支持体の位置を変化させる。
【００１５】
たとえば、上記のゲームでは、現実世界におけるプレイヤーの右拳と左拳の位置を検知して、これらの位置に仮想空間におけるマジックハンドの位置を連動させる。
【００１６】
そして、判定部は、移動体に設定された複数の支持点のそれぞれについて、当該支持点を含むように設定された判定領域が複数の支持体のいずれかと重なる場合、当該支持点が当該支持体に支持されていると判定し、複数の支持点のうち、複数の支持体のいずれかに支持されていると判定された支持点の個数が、所定の閾値を超える場合、移動体が、当該複数の支持体に支持されていると判定する。
【００１７】
すなわち、移動体には、あらかじめ、支持することが可能な場所を表す支持点が複数設定されている。そして、各支持点を囲むように、判定領域が設定されている。移動体が仮想空間を移動したり、向きを変えたりすると、この判定領域も、その動きに追随して移動する。判定領域としては、たとえば、各支持点を中心とする円や正方形、長方形等を採用することができる。
【００１８】
ここで、移動体が支持体に支持されている、とは、上記の例では、ボールをマジックハンドで持ち上げた状況に相当する。ボールをマジックハンドで持ち上げる際には、所定の閾値以上の箇所を支持しなければならない。
【００１９】
そして、設定部は、移動体が支持体に支持されていると判定されている間、判定領域のうち、少なくとも支持体に重なる判定領域が広くなるように設定する。
【００２０】
上記の例では、判定領域にマジックハンドが入っている間は、マジックハンドはボールを支持していることになる。したがって、判定領域の広さによって、マジックハンドがどれだけボールを確実に支持しているか、が表現される。判定領域が広くなれば、支持点やマジックハンドが少々移動したとしても、ボールは支持されたままであるが、判定領域が狭くなると、支持点やマジックハンドが少々移動しただけで、両者が離れてしまうことが生じやすくなる。
【００２１】
一方、修正部は、移動体が支持体に支持されていると判定されている間、支持点を支持している支持体の位置の変化と、支持体に支持されている支持点の位置の変化と、が連動するように、移動体の位置および向きの少なくとも一方を修正する。
【００２２】
上記の例では、プレイヤーの動作に基づいて仮想空間内のマジックハンドが移動し、しかも、マジックハンドによるボールの支持が維持されている間は、マジックハンドの動きにボールの位置や向きが連動する。したがって、プレイヤーの動作に基づいて、仮想空間内で、ボールが移動されることになる。
【００２３】
本発明によれば、ユーザの動作に合わせて仮想空間内の支持体の位置を変化させ、当該支持体により当該仮想空間内の移動体を支持して、当該支持体の移動に合わせて当該移動体を移動させるゲームを提供することができるようになる。
【００２４】
本発明の第２の観点に係るゲーム装置は、上記ゲーム装置の実施例の一つに係るものであり、表示部、検知部、変化部、判定部、設定部、修正部を備え、以下のように構成する。
【００２５】
ここで、表示部は、仮想空間に配置される移動体と、当該移動体を支持可能な支持体と、を画面に表示する。一方、検知部は、プレイヤーの動作を検知する。さらに、変化部は、検知された動作に基づいて、支持体の位置を変化させる。そして、判定部は、移動体に設定された支持点を含むように設定された判定領域が、支持体と重なる場合、支持点が支持体に支持されていると判定する。一方、設定部は、支持点が支持体に支持されていると判定されている間、判定領域が広くなるように設定する。さらに、修正部は、支持点が支持体に支持されていると判定されている間、当該支持体に支持されている支持点の位置の変化と、当該支持点を支持している支持体の位置の変化と、が連動するように、移動体の位置および向きの少なくとも一方を修正する。
【００２６】
このように、本発明は、上記発明において、プレイヤーが一人で、支持体が一つである場合、たとえば、上記の例においてプレイヤーの拳の位置に連動して仮想空間でマジックハンドが動き、このマジックハンドでボールの所定部分を支持してからマジックハンドを移動させることでボールを回転させ、片手球転がしのゲームを実現する場合などに適用できる。
【００２７】
本発明によれば、ユーザの動作に合わせて仮想空間内の支持体の位置を変化させ、当該支持体により当該仮想空間内の移動体を支持して、当該支持体の移動に合わせて当該移動体を移動させるゲームを提供することができるようになる。
【００２８】
また、本発明のゲーム装置において、設定部は、複数の判定領域の広さを、支持体の速度に応じて設定するように構成することができる。
【００２９】
たとえば上記の例で、プレイヤーが手を激しく動かしてマジックハンドも激しく動いている場合には、判定領域を小さくすると、ボールを掴みにくくなる。一方、プレイヤーが手をゆっくり動かしマジックハンドもゆっくり動いている場合には、判定領域を大きくすると、ボールを掴みやすくなる。
【００３０】
したがって、本発明によれば、手の動きが速いときには、物体を掴みにくい、あるいは、物体をしっかり掴もうとするときには、手をゆっくり確実に動かさなければならない、という現実世界に即したシミュレーションを、簡易な計算で実現することが可能となる。
【００３１】
また、本発明のゲーム装置において、設定部は、支持体に支持されている支持点を含む判定領域の広さを、当該支持体と当該支持点との距離に応じて設定するように構成することができる。
【００３２】
たとえば上記の例で、ボールの表面にはマジックハンドの指が入る孔があり、マジックハンドがその孔に指を入れて掴んでしまえば、ボールがマジックハンドから離れにくくなる、という状況を実現するためには、本発明において、支持体と支持点の距離が小さければ、判定領域を大きくするように設定すれば良い。
【００３３】
本発明によれば、掴みにくい物体でも、一旦物体を掴んでしまえば、その物体を掴み続けることは比較的容易である、というような現実世界に即したシミュレーションを、簡易な計算で実現することが可能となる。
【００３４】
また本発明のゲーム装置において、設定部は、支持体に支持されている支持点を含む判定領域の広さを、当該支持体の速度と当該支持点の速度との差に応じて設定するように構成することができる。
【００３５】
たとえば上記の例で、一旦ボールを掴んでも、激しくマジックハンドを動かすと、マジックハンドが滑って離れてしまう、という状況を実現するためには、支持体の速度ベクトルと支持点の速度ベクトルとの差のベクトルの長さが長ければ長いほど、判定領域が小さくなるように設定すれば良い。
【００３６】
本発明によれば、一旦掴んだ物体でも、激しく動かそうとすると手から物体が滑り落ちてしまう、というような現実世界に即したシミュレーションを、簡易な計算で実現することが可能となる。
【００３７】
また、本発明のゲーム装置において、移動体が複数の支持体に支持されていないと判定された場合、変化部は、移動体の位置を、所定の加速度で変化させるように構成することができる。
【００３８】
本発明は、仮想２次元空間に設定された重力を実現するものである。移動体が支持されていない場合とは、たとえば、物体が人の手に掴まれていない状態に相当する。この場合には、移動体の位置を所定の加速度で変化させることにより、物体が地面に向かって落下する状況をシミュレートすることができる。
【００３９】
また、本発明のゲーム装置において、表示部による表示、検知部による検知、変化部による変化、判定部による判定、設定部による設定、修正部による修正は、所定の時間間隔で所定の順序で行われるように構成することができる。
【００４０】
本発明は上記発明の好適実施形態に係るもので、本発明の各部の動作を所定の時間間隔で繰り返し実行するものである。
【００４１】
ゲーム装置における画面への表示では、画面の垂直同期割込周期おきに、画面に表示される画像の更新が実行される。そこで、本発明では、当該画像の更新の時間間隔で、検知部が、プレイヤーの動作を検知し、変化部が、支持体の位置を変化させ、判定部が、支持体による支持が成立しているかを判定し、設定部が、判定領域の大きさを設定し、修正部が、判定結果に応じて移動体の位置を修正することを繰り返す。なお、各部の処理は、適宜入れ換えて、順序を変更することとしても良い。
【００４２】
本発明によれば、画面表示の更新に合わせて、各部の計算をスムースに実行することが可能となる。
【００４３】
本発明の第３の観点に係るゲーム制御方法は、表示部、検知部、変化部、判定部、設定部、修正部を有するゲーム装置が実行し、表示工程、検知工程、変化工程、判定工程、設定工程、修正工程を備え、以下のように構成する。
【００４４】
すなわち、表示工程では、表示部が、仮想空間に配置される移動体と、当該移動体を支持可能な複数の支持体と、を画面に表示する。
【００４５】
一方、検知工程では、検知部が、１人または複数のプレイヤーの動作を検知する。
【００４６】
さらに、変化工程では、変化部が、検知された動作に基づいて、複数の支持体の位置を変化させる。
【００４７】
そして、判定工程では、判定部が、移動体に設定された複数の支持点のそれぞれについて、当該支持点を含むように設定された判定領域が複数の支持体のいずれかと重なる場合、当該支持点が当該支持体に支持されていると判定し、複数の支持点のうち、複数の支持体のいずれかに支持されていると判定された支持点の個数が、所定の閾値を超える場合、移動体が、当該複数の支持体に支持されていると判定する。
【００４８】
一方、設定工程では、設定部が、移動体が支持体に支持されていると判定されている間、判定領域のうち、少なくとも支持体に重なる判定領域が広くなるように設定する。
【００４９】
さらに、修正工程では、修正部が、移動体が支持体に支持されていると判定されている間、支持点を支持している支持体の位置の変化と、支持体に支持されている支持点の位置の変化と、が連動するように、移動体の位置および向きの少なくとも一方を修正する。
【００５０】
本発明の第４の観点に係るゲーム制御方法は、表示部、検知部、変化部、判定部、設定部、修正部を有するゲーム装置が実行し、表示工程、検知工程、変化工程、判定工程、設定工程、修正工程を備え、以下のように構成する。
【００５１】
すなわち、表示工程では、表示部が、仮想空間に配置される移動体と、当該移動体を支持可能な支持体と、を画面に表示する。
【００５２】
一方、検知工程では、検知部が、プレイヤーの動作を検知する。
【００５３】
さらに、変化工程では、変化部が、検知された動作に基づいて、支持体の位置を変化させる。
【００５４】
そして、判定工程では、判定部が、移動体に設定された支持点を含むように設定された判定領域が、支持体と重なる場合、支持点が支持体に支持されていると判定する。
【００５５】
一方、設定工程では、設定部が、支持点が支持体に支持されていると判定されている間、判定領域が広くなるように設定する。
【００５６】
さらに、修正工程では、修正部が、支持点が支持体に支持されていると判定されている間、当該支持体に支持されている支持点の位置の変化と、当該支持点を支持している支持体の位置の変化と、が連動するように、移動体の位置および向きの少なくとも一方を修正する。
【００５７】
本発明の第５の観点に係るプログラムは、コンピュータを、表示部、検知部、変化部、判定部、設定部、修正部として機能させるように構成する。
【００５８】
すなわち、表示部は、仮想空間に配置される移動体と、当該移動体を支持可能な複数の支持体と、を画面に表示する。
【００５９】
一方、検知部は、１人または複数のプレイヤーの動作を検知する。
【００６０】
さらに、変化部は、検知された動作に基づいて、複数の支持体の位置を変化させる。
【００６１】
そして、判定部は、移動体に設定された複数の支持点のそれぞれについて、当該支持点を含むように設定された判定領域が複数の支持体のいずれかと重なる場合、当該支持点が当該支持体に支持されていると判定し、複数の支持点のうち、複数の支持体のいずれかに支持されていると判定された支持点の個数が、所定の閾値を超える場合、移動体が、当該複数の支持体に支持されていると判定する。
【００６２】
そして、設定部は、移動体が支持体に支持されていると判定されている間、判定領域のうち、少なくとも支持体に重なる判定領域が広くなるように設定する。
【００６３】
一方、修正部は、移動体が支持体に支持されていると判定されている間、支持点を支持している支持体の位置の変化と、支持体に支持されている支持点の位置の変化と、が連動するように、移動体の位置および向きの少なくとも一方を修正する。
【００６４】
本発明の第６の観点に係るプログラムは、コンピュータを、表示部、検知部、変化部、判定部、設定部、修正部として機能させるように構成する。
【００６５】
ここで、表示部は、仮想空間に配置される移動体と、当該移動体を支持可能な支持体と、を画面に表示する。
【００６６】
一方、検知部は、プレイヤーの動作を検知する。
【００６７】
さらに、変化部は、検知された動作に基づいて、支持体の位置を変化させる。
【００６８】
そして、判定部は、移動体に設定された支持点を含むように設定された判定領域が、支持体と重なる場合、支持点が支持体に支持されていると判定する。
【００６９】
一方、設定部は、支持点が支持体に支持されていると判定されている間、判定領域が広くなるように設定する。
【００７０】
さらに、修正部は、支持点が支持体に支持されていると判定されている間、当該支持体に支持されている支持点の位置の変化と、当該支持点を支持している支持体の位置の変化と、が連動するように、移動体の位置および向きの少なくとも一方を修正する。
【００７１】
また、本発明に係るゲーム装置は、
仮想空間に配置される移動体と、当該移動体を支持可能な複数の支持体と、を画面に表示する表示部、
１人または複数のプレイヤーの動作を検知する検知部、
前記検知された動作に基づいて、前記複数の支持体の位置を変化させる変化部、
前記移動体に設定された複数の支持点のそれぞれについて、当該支持点を含むように設定された判定領域が前記複数の支持体のいずれかと重なる場合、当該支持点が当該支持体に支持されていると判定し、前記複数の支持点のうち、前記複数の支持体のいずれかに支持されていると判定された支持点の個数が、所定の閾値を超える場合、前記移動体が、当該複数の支持体に支持されていると判定する判定部、
前記移動体が前記支持体に支持されていると判定されている間、前記判定領域のうち、少なくとも前記支持体に重なる判定領域が広くなるように設定する設定部
を備えるように構成する。
【００７２】
また、本発明のゲーム装置において、
前記設定部は、前記移動体に設定された複数の支持点のそれぞれについて、当該支持点を含むように設定された前記判定領域の広さを、前記支持体の速度に応じて設定する
ように構成することができる。
【００７３】
また、本発明のゲーム装置において、
前記移動体が前記複数の支持体に支持されていないと判定された場合、前記変化部は、前記移動体の位置を、所定の加速度で変化させる
ように構成することができる。
【００７４】
本発明のゲーム装置は、
仮想空間に配置される移動体と、当該移動体を支持可能な支持体と、を画面に表示する表示部、
プレイヤーの動作を検知する検知部、
前記検知された動作に基づいて、前記支持体の位置を変化させる変化部、
前記移動体に設定された支持点を含むように設定された判定領域が、前記支持体と重なる場合、前記支持点が前記支持体に支持されていると判定する判定部、
前記支持点が前記支持体に支持されていると判定されている間、前記判定領域が広くなるように設定する設定部
を備えるように構成する。
【００７５】
また、本発明のゲーム装置において、
前記設定部は、前記移動体に設定された支持点を含むように設定された前記判定領域の広さを、前記支持体の速度に応じて設定する
ように構成することができる。
【００７６】
また、本発明のゲーム装置において、
前記移動体が前記支持体に支持されていないと判定された場合、前記変化部は、前記移動体の位置を、所定の加速度で変化させる
ように構成することができる。
【００７７】
また、本発明のゲーム装置において、
前記設定部は、前記支持体に支持されている支持点を含む判定領域の広さを、当該支持体と当該支持点との距離に応じて設定する
ように構成することができる。
【００７８】
また、本発明のゲーム装置において、
前記設定部は、前記支持体に支持されている支持点を含む判定領域の広さを、当該支持体の速度と当該支持点の速度との差に応じて設定する
ように構成することができる。
【００７９】
また、本発明のゲーム装置において、
前記表示部による表示、前記検知部による検知、前記変化部による変化、前記判定部による判定、前記設定部による設定は、所定の時間間隔で所定の順序で行われる
ように構成することができる。
【００８０】
本発明のゲーム制御方法は、表示部、検知部、変化部、判定部、設定部を有するゲーム装置が実行し、
前記表示部が、仮想空間に配置される移動体と、当該移動体を支持可能な複数の支持体と、を画面に表示する表示工程、
前記検知部が、１人または複数のプレイヤーの動作を検知する検知工程、
前記変化部が、前記検知された動作に基づいて、前記複数の支持体の位置を変化させる変化工程、
前記判定部が、前記移動体に設定された複数の支持点のそれぞれについて、当該支持点を含むように設定された判定領域が前記複数の支持体のいずれかと重なる場合、当該支持点が当該支持体に支持されていると判定し、前記複数の支持点のうち、前記複数の支持体のいずれかに支持されていると判定された支持点の個数が、所定の閾値を超える場合、前記移動体が、当該複数の支持体に支持されていると判定する判定工程、
前記設定部が、前記移動体が前記支持体に支持されていると判定されている間、前記判定領域のうち、少なくとも前記支持体に重なる判定領域が広くなるように設定する設定工程
を備えるように構成する。
【００８１】
本発明のゲーム制御方法は、表示部、検知部、変化部、判定部、設定部を有するゲーム装置が実行し、
前記表示部が、仮想空間に配置される移動体と、当該移動体を支持可能な支持体と、を画面に表示する表示工程、
前記検知部が、プレイヤーの動作を検知する検知工程、
前記変化部が、前記検知された動作に基づいて、前記支持体の位置を変化させる変化工程、
前記判定部が、前記移動体に設定された支持点を含むように設定された判定領域が、前記支持体と重なる場合、前記支持点が前記支持体に支持されていると判定する判定工程、
前記設定部が、前記支持点が前記支持体に支持されていると判定されている間、前記判定領域が広くなるように設定する設定工程
を備えるように構成する。
【００８２】
本発明のプログラムは、コンピュータを、
仮想空間に配置される移動体と、当該移動体を支持可能な複数の支持体と、を画面に表示する表示部、
１人または複数のプレイヤーの動作を検知する検知部、
前記検知された動作に基づいて、前記複数の支持体の位置を変化させる変化部、
前記移動体に設定された複数の支持点のそれぞれについて、当該支持点を含むように設定された判定領域が前記複数の支持体のいずれかと重なる場合、当該支持点が当該支持体に支持されていると判定し、前記複数の支持点のうち、前記複数の支持体のいずれかに支持されていると判定された支持点の個数が、所定の閾値を超える場合、前記移動体が、当該複数の支持体に支持されていると判定する判定部、
前記移動体が前記支持体に支持されていると判定されている間、前記判定領域のうち、少なくとも前記支持体に重なる判定領域が広くなるように設定する設定部
として機能させるように構成する。
【００８３】
本発明のプログラムは、コンピュータを、
仮想空間に配置される移動体と、当該移動体を支持可能な支持体と、を画面に表示する表示部、
プレイヤーの動作を検知する検知部、
前記検知された動作に基づいて、前記支持体の位置を変化させる変化部、
前記移動体に設定された支持点を含むように設定された判定領域が、前記支持体と重なる場合、前記支持点が前記支持体に支持されていると判定する判定部、
前記支持点が前記支持体に支持されていると判定されている間、前記判定領域が広くなるように設定する設定部
として機能させるように構成する。
【００８４】
本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００８５】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００８６】
本発明によれば、ユーザの動作に合わせて仮想空間内の支持体の位置を変化させ、当該支持体により当該仮想空間内の移動体を支持して、当該支持体の移動に合わせて当該移動体を移動させるゲームを実現する際に、移動体が支持体に支持されているか否かを適切に判定するのに好適なゲーム装置、ゲーム装置の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【００８７】
【図１】典型的な情報処理装置の概要構成を示す模式図である。
【図２】本実施形態に係るゲーム装置における画面への表示例を示す説明図である。
【図３】本実施形態に係るゲーム装置における画面への表示例を示す説明図である。
【図４】本実施形態に係るゲーム装置における画面への表示例を示す説明図である。
【図５】本実施形態に係るゲーム装置における画面への表示例を示す説明図である。
【図６】本実施形態に係るゲーム装置における画面への表示例を示す説明図である。
【図７】本実施形態に係るゲーム装置の概要構成を示す模式図である。
【図８】本実施形態に係るボールやマジックハンドと判定領域の関係を説明する説明図である。
【図９】本実施形態に係るボールやマジックハンドと判定領域の関係を説明する説明図である。
【図１０】ボールの位置を修正する様子を示す説明図である。
【図１１】本実施形態に係るゲーム装置にて実行されるゲーム制御処理の制御の流れを示すフローチャートである。
【発明を実施するための形態】
【００８８】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００８９】
（情報処理装置）
図１は、プログラムを実行することにより、本実施形態のゲーム装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００９０】
本図に示す情報処理装置１００は、いわゆるコンシューマゲーム機に相当するもので、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３、インターフェース１０４、コントローラ１０５、外部メモリ１０６、画像処理部１０７、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８、ＮＩＣ（Network Interface Card）１０９、音声処理部１１０、マイク１１１、ハードディスク（Hard Disk；ＨＤ）１２１、カメラ１３１を有する。各種の入出力装置は、適宜省略することができる。
【００９１】
情報処理装置１００を典型的なコンシューマゲーム機として機能させる場合には、まず、ユーザは、ゲーム用プログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着する。ついで、ユーザが電源を投入すると、当該ゲームプログラムが実行され、ユーザはゲームをプレイすることができるようになる。
【００９２】
ただし、本実施形態においては、典型的には、ＤＶＤ−ＲＯＭから、アプリケーションがＨＤ  １２１にインストールされる。なお、ＤＶＤ−ＲＯＭは、ＤＶＤ−ＲＯＭドライブ１０８に装着される。そして、当該ＨＤ  １２１に記憶されたプログラムを実行することによって、ゲームを含む各種のアプリケーションが実行されることとする。
【００９３】
なお、携帯型のゲーム装置においては、携帯可能とするために、ＨＤ  １２１を省略することも可能である。この場合、ＤＶＤ−ＲＯＭドライブ１０８は利用されない。そして、ユーザは、ＲＯＭカセット用スロットにＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）カセットを装着する。ＥＥＰＲＯＭカセットには、アプリケーション用プログラムが書き込まれている。そして、当該プログラムが実行されることとなる。このほか、外部メモリ１０６にアプリケーション用プログラムをインストールすることも可能である。
【００９４】
さて、ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域を備える。ＣＰＵ  １０１は、レジスタに対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて、各種演算を行うことができる。行われる演算は、例えば、加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などである。さらに、ＣＰＵ  １０１は、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように構成されていてもよい。また、ＣＰＵ  １０１は、コプロセッサを備えることにより、このような高速演算を実現してもよい。
【００９５】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録されている。ＩＰＬが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムは、ＲＡＭ  １０３に読み出される。ついで、ＣＰＵ  １０１による当該プログラムの実行が開始される。また、ＲＯＭ  １０２には、オペレーティングシステムのプログラムや各種のデータが記録されている。オペレーティングシステムは、情報処理装置１００全体の動作を制御するために必要とされる。
【００９６】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶する。ＲＡＭ  １０３には、ＨＤ  １２１やＤＶＤ−ＲＯＭ等から読み出されたプログラムやデータ、その他通信対戦ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設ける。ＣＰＵ  １０１は、当該変数に格納された値に対して直接ＡＬＵを作用させて演算してもよい。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻してもよい。
【００９７】
コントローラ１０５は、インターフェース１０４を介して接続される。コントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【００９８】
なお、コントローラ１０５は、必ずしも情報処理装置１００に対して外付けにされている必要はなく、一体に形成されていても良い。携帯可能な画像処理装置のコントローラ１０５は、各種のボタンやスイッチから構成される。コントローラ１０５は、当該ボタンやスイッチに対する押圧操作を操作入力として扱う。このほか、タッチスクリーンを利用した情報処理装置１００では、ユーザがペンや指を利用してタッチスクリーンをなぞった軌跡を操作入力として扱う。
【００９９】
外部メモリ１０６は、インターフェース１０４を介して着脱自在に接続される。外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが記憶される。外部メモリ１０６は書き換え可能である。ユーザがコントローラ１０５を介して必要な指示入力を行うと、これらのデータは適宜外部メモリ１０６に記録される。
【０１００】
上述の通り、アプリケーションプログラムを外部メモリ１０６にインストールして実行するような形態を採用することもできる。これは、外部メモリ１０６が大容量である場合に好適である。
【０１０１】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出す。読み出されたプログラムやデータは、ＲＡＭ  １０３等に一時的に記憶される。
【０１０２】
画像処理部１０７は、まず、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理する。ついで、画像処理部１０７は、加工処理により得た画像情報を、フレームメモリ（図示せず）に記録する。フレームメモリは、画像処理部１０７に搭載されている。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され、画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【０１０３】
携帯可能な画像処理装置のモニタとしては、小型の液晶ディスプレイを利用するのが典型的である。コントローラ１０５としてタッチスクリーンが利用される場合には、当該タッチスクリーンの表示パネルがモニタとして機能する。自宅で遊ぶためのゲーム装置のモニタとしては、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）やプラズマディスプレイなどの表示装置を利用することも可能である。
【０１０４】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【０１０５】
また、レンダリング画像を得る演算を高速実行することも可能である。レンダリング画像は、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰した画像である。レンダリング画像は、当該３次元空間内に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法などによりレンダリングすることにより得られる。
【０１０６】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、フォント情報にしたがって、文字列を２次元画像として描画することが可能である。なお、フォント情報は、文字の形状を定義する。文字列を表す画像は、フレームメモリや各ポリゴン表面へ描画される。
【０１０７】
ＮＩＣ  １０９は、インターネット接続機器（図示せず）と、ＣＰＵ  １０１との仲立ちを行うインターフェースである。ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続する際に用いられる。インターネット接続機器は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｄｉｇｉｔａｌ  Ｎｅｔｗｏｒｋ）モデム、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等であっても良い。
【０１０８】
また、ＮＩＣ  １０９経由でコンピュータ通信網から入手した情報を元に、ＨＤ  １２１等にアプリケーションプログラムをインストールすることも可能である。
【０１０９】
音声処理部１１０は、ＨＤ  １２１やＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、音声処理部１１０は、ゲームの進行の中で発生させるべき効果音や楽曲データを生成する。そして、音声処理部１１０は、生成した効果音や楽曲データに対応した音声をスピーカや、ヘッドホン（図示せず）、イヤフォン（図示せず）から出力させる。
【０１１０】
音声処理部１１０は、ＨＤ  １２１やＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。なお、音声処理部１１０は、ＭＩＤＩ音源データを有する。また、当該音声データがＡＤＰＣＭ形式やＯｇｇ  Ｖｏｒｂｉｓ形式等の圧縮済音声データである場合には、音声処理部１１０は、これを展開してＰＣＭデータに変換する。ＰＣＭデータを、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Ｄｉｇｉｔａｌ／Ａｎａｌｏｇ）変換し、スピーカに出力することにより、音声出力が可能となる。
【０１１１】
さらに、情報処理装置１００には、インターフェース１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、情報処理装置１００は、適当なサンプリング周波数でＡ／Ｄ変換を行う。すなわち、マイク１１１からの音声信号は、ＰＣＭ形式のディジタル信号に変換される。したがって、音声処理部１１０でミキシング等の処理を行うことが可能となる。
【０１１２】
本実施形態で利用する情報処理装置１００は、上述のように、ＨＤ  １２１等の大容量外部記憶装置を用いるのが典型的である。ＨＤ  １２１は、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすこともできる。
【０１１３】
さらに、本実施形態で利用する情報処理装置１００には、カメラ１３１が接続されている。このカメラ１３１は、現実世界の様子を動画ならびに静止画で撮影する。カメラ１３１によりユーザの顔の表情や体の姿勢を撮影し、ＣＰＵ  １０１や専用ハードウェア（図示せず）を利用して画像認識を行うことにより、ユーザの顔の位置や表情、体の各部位の位置を取得することができる。コントローラ１０５に対する指示操作にかえて、画像認識により得られた各種の情報を利用することも可能である。
【０１１４】
このほか、キーボードや、マウスなどを接続する形態も採用することができる。キーボードは、ユーザからの文字列の編集入力を受け付ける。そして、マウスは、各種の位置の指定および選択入力を受け付ける。また、本実施形態の情報処理装置１００にかえて、汎用のパーソナルコンピュータやサーバ用コンピュータ等を利用することもできる。
【０１１５】
以上で説明した情報処理装置１００は、コンシューマ向けゲーム装置に相当するものである。しかしながら、各種の入出力処理が可能な電子機器であれば、本発明のゲーム装置を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明のゲーム装置を実現することが可能である。
【０１１６】
たとえば、ビジネス用コンピュータは、上記情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣ、ＨＤを構成要素として有する。また、ビジネス用コンピュータは、情報処理装置１００よりも簡易な機能を備えた画像処理部を備える。そして、ビジネス用コンピュータにおいては、外部記憶装置としてフレキシブルディスク、光磁気ディスク、磁気テープ等が利用できる。ビジネス用コンピュータにおいては、コントローラ１０５ではなく、キーボードやマウスなどが入力装置として利用されるのが典型的である。
【０１１７】
（ゲーム装置）
本実施形態に係るゲーム装置は、情報処理装置１００において、ＤＶＤ−ＲＯＭやハードディスク１２１に記録されたゲーム用のプログラムを、ＣＰＵ  １０１が実行し、情報処理装置１００の各部を制御することによって実現される。
【０１１８】
以下、理解を容易にするため、本ゲーム装置において提供されるゲームの内容について説明する。
【０１１９】
本ゲーム装置は、仮想空間内で、移動体を移動させるゲームを提供する。本実施形態では、この仮想空間は２次元に設定されており、移動体がプレイヤーの掌を模した支持体によって支持されると、その移動体は当該支持体の移動にともなって移動する。支持されていないときは、仮想空間内に設定された仮想的な物理法則にしたがって移動する。
【０１２０】
本ゲームにおいては、プレイヤーの動作にともなって移動するマジックハンドにより支持体が表現され、球状のボールを２次元的に描いたものにより、移動体が表現される。本ゲームでは、ボールをマジックハンドで支持して、当該ボールを移動させる。
【０１２１】
図２、図３、図４、図５、図６は、本実施形態に係るゲーム装置における画面への表示例を示す説明図である。以下、本図を参照して説明する。
【０１２２】
図２に示すように、画面２０１には、プレイヤーの動作に応じて位置を変化させる複数のマジックハンド２０２と、円形に描かれたボール２０３と、が、線で描かれた地面２０４の上に描画されている。また、画面２０１の左上方には、目標位置２０５が描画されている。
【０１２３】
上記のように、マジックハンド２０２が支持体に相当し、ボール２０３が、移動体に相当する。
【０１２４】
本例のボール２０３には、支持点２１１が４箇所用意されている。また、各支持点２１１を中心とする箇所には、星型のマーク２０６が付されている。本ゲームでは、プレイヤーがマジックハンド２０２の位置を変化させ、マーク２０６に重ねると、当該マジックハンド２０２は、ボール２０３のうち、当該マーク２０６の支持点２１１を支持したことになる。
【０１２５】
なお、本実施形態では、マーク２０６にマジックハンド２０２が重なっているか否かの判定を容易にするために、各マーク２０６に対する支持点２１１を中心とし、マーク２０６とほぼ同じ大きさの円形の判定領域７０１を設け、この判定領域７０１とマジックハンド２０２が重なっている場合に、マジックハンド２０２が支持点２１１を支持したものと判定する。
【０１２６】
判定領域７０１の形状は、必ずしも円形に限るものではなく、任意の図形を採用することができるが、正方形や長方形など、図形同士が重なっていることが判定しやすい形状を採用することが望ましい。
【０１２７】
なお、以降の図では、理解を容易にするため、支持点２１１ならびに判定領域７０１は、適宜図示を省略する。
【０１２８】
本実施形態では、２人のプレイヤーの右拳と左拳のそれぞれに相当する、合計４つのマジックハンド２０２が用意されている。図３には、ボール２０３のマーク２０６にマジックハンド２０２が重なった様子が示されている。
【０１２９】
本ゲームの目的は、２人のプレイヤーが協力して４つのマジックハンド２０２をいずれかのマーク２０６に重ねて、４箇所でボール２０３を支持し、持ち上げたり回転させたりして、目標位置２０５まで移動することである。
【０１３０】
プレイヤーが適切なタイミングで姿勢を変化させて、マジックハンド２０２を同期させてゆっくり上に移動したり、ゆっくり回転させたりすると、図４に示すように、ボール２０３もこれに連動してゆっくり上に移動したり、ゆっくり回転したりする。
【０１３１】
一方、プレイヤーの姿勢の変化が激し過ぎて、図５に示すように、マジックハンド２０２とマーク２０６がずれてしまうと、もはやボール２０３は支持されなくなる。マジックハンド２０２とマーク２０６がずれたままであると、この後は、図６に示すように、ボール２０３は、マジックハンド２０２から離れて落下してしまい、地面２０４に至る。
【０１３２】
なお、マジックハンド２０２の数やマーク２０６の数は、適宜変更することが可能である。たとえば、１つのマジックハンド２０２で１つのマーク２０６を支持することにより、ボール２０３を転がして移動するような球転がしゲームを実現することも可能である。
【０１３３】
なお、ボール２０３の落下の回数が所定の回数となった場合や、一定時間内にボール２０３を目標位置２０５に至らせることができなかった場合には、ゲームオーバーになるように、ゲームのルールを設定しても良い。
【０１３４】
以下、上記のゲームを実現するゲーム装置の詳細について説明する。図７は、本実施形態に係るゲーム装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【０１３５】
本図に示すように、ゲーム装置６０１は、表示部６０２、検知部６０３、変化部６０４、判定部６０５、修正部６０６、設定部６０８、記憶部６０７を備える。
【０１３６】
ここで、記憶部６０７には、支持体を表現するマジックハンド２０２の各点の位置や、移動体を表現するボール２０３の位置や向き、各マーク２０６の位置が記憶される。本実施形態では、記憶部６０７は、ＲＡＭ  １０３により構成される。
【０１３７】
ここで、表示部６０２は、当該仮想空間内を移動する移動体と、を、仮想空間に配置される当該移動体を支持可能な支持体と、画面２０１に表示する。
【０１３８】
本実施形態では、ＣＰＵ  １０１の制御の下、ＲＡＭ  １０３に記憶される情報を参照しながら、画像処理部１０７が表示部６０２として機能する。
【０１３９】
一方、検知部６０３は、プレイヤーの動作を検知する。
【０１４０】
本実施形態では、カメラ１３１により２人のプレイヤーの姿を動画で撮影し、リアルタイムで画像認識を行う。すると、時間経過に合わせて、プレイヤーがとっている姿勢の変化、特に右拳と左拳の位置が追跡されることになる。
【０１４１】
すなわち、本実施形態では、ＣＰＵ  １０１の制御の下、カメラ１３１やコントローラ１０５等が、検知部６０３として機能する。
【０１４２】
このほか、可視光カメラもしくは赤外線カメラによりプレイヤーの姿を動画で撮影し、画像認識を行って、時間経過とともに、プレイヤーがとっている姿勢の変化を追跡する手法を採用することもできる。
【０１４３】
さらに、変化部６０４は、検知された動作に基づいて、支持体の位置を変化させるほか、移動体の位置や速度、向きを適宜変化させる。
【０１４４】
本実施形態では、各プレイヤーの右拳と左拳の位置が検知されるので、各マジックハンド２０２の位置を検知された結果に連動して、画面２０１内で移動させる。
【０１４５】
本実施形態では、プレイヤーが現実世界で右拳や左拳を上下に移動させれば、マジックハンドの位置もこれに連動して上下に変化する。また、右拳と左拳を近付けたり遠ざけたりすれば、マジックハンドの間隔もこれに連動して近付いたり遠ざかったりする。
【０１４６】
したがって、ＣＰＵ  １０１が、ＲＡＭ  １０３に記憶される情報を更新することにより、変化部６０４として機能する。
【０１４７】
なお、位置センサや加速度センサを有するコントローラにより検知部６０３を実現することも可能である。この態様では、プレイヤーは、両拳にそれぞれ当該コントローラを握り、当該コントローラを上下左右に動かす。すると、コントローラは、位置の変化や加速度を検知して、プレイヤーの動作を認識する。そして、認識された位置の変化や加速度に応じて、マジックハンド２０２の位置を変化させれば良い。
【０１４８】
また、コントローラ１０５が有する各種のボタンの押圧操作を、プレイヤーの動作として検知する態様を採用することもできる。この場合には、押圧されたボタンの種類に応じてマジックハンド２０２の位置を変化させることになる。
【０１４９】
さて、判定部６０５は、以下の判定を行う。
（ａ）移動体に設定された支持点を含むように設定された判定領域が支持体の位置に重なる場合、当該支持点が当該支持体に支持されていると判定する。
（ｂ）支持体に支持されている支持点の数が所定の閾値を超える場合、当該移動体が当該支持体に支持されていると判定する。
【０１５０】
本実施形態では、ボール２０３のマーク２０６が移動体の支持点の位置を表現している。２人のプレイヤーが協力して、４個のマジックハンド２０２でボール２０３を支持するので、上記の閾値は「３」である。
【０１５１】
なお、閾値の値を「０」とした場合には、いずれかの支持点をいずれかの支持体で支持すると、直ちに移動体も当該支持体に支持されていることになる。ここで、支持体に支持されているか否かを判定する際に、支持点の周囲に設けられた判定領域を用いる。
【０１５２】
図８、図９は、本実施形態に係るボール２０３やマジックハンド２０２と判定領域の関係を説明する説明図である。以下、これらの図を参照して説明する。
【０１５３】
これらの図に示すように、支持点２１１の周囲には、当該支持点２１１を囲むように、判定領域７０１が設定されている。移動体が仮想空間を移動すれば、この判定領域７０１も当該移動体に追随して移動する。
【０１５４】
これらの図に示す例では、判定領域７０１の形状として、マーク２０６を中心とするマーク２０６より大きな円形を採用しているが、図２に示すように、マーク２０６とほぼ同じ大きさの円形を採用しても良い。一般に、判定領域７０１としては、マーク２０６を中心とする円や正方形、長方形等を採用することができる。
【０１５５】
また、本図に示す例では、判定領域７０１同士には重なりがある。この重なり部分にマジックハンド２０２が置かれた場合には、いずれか近い方のマーク２０６をマジックハンド２０２が支持していると考えても良いし、当該マジックハンド２０２が存在しないと仮定したときに、支持されていない側のマーク２０６を支持していると考えても良い。
【０１５６】
図８では、判定領域７０１と重なっていないマジックハンド２０２が１個ある。すなわち、当該マジックハンド２０２は、支持点たるマーク２０６を支持していない。本実施形態では、ボール２０３を支持するには、４箇所のマーク２０６を支持しなければならないから、この状況では、ボール２０３はマジックハンド２０２に支持されていない、と、判定されることになる。なお、この後は、図６に示すように、ボール２０３はマジックハンド２０２から落下することになる。
【０１５７】
図９では、すべてのマジックハンド２０２がいずれかの判定領域７０１に重なっている。したがって、マジックハンド２０２は、各支持点を支持しており、全体としてボール２０３を支持している、と、判定されることになる。
【０１５８】
図８、図９に示す例では、判定領域７０１の大きさを、マーク２０６よりも大きな円形としているが、判定領域７０１の大きさを変化させる手法もありうる。
【０１５９】
すなわち、マーク２０６がマジックハンド２０２に支持されていないときは、判定領域７０１の大きさは、図２に示すように、マーク２０６とほぼ同じとし、一旦マジックハンド２０２がマーク２０６に重なって、支持が開始されると、判定領域７０１の大きさが、図８、図９に示すように大きくなるように設定するのである。
【０１６０】
図８においては、マジックハンド２０２に支持されていないマーク２０６が存在する。この態様を採用する場合には、当該マーク２０６に対する判定領域７０１の大きさは、図８に示す大きさではなく、図２に示す大きさとなる。
【０１６１】
このほか、マジックハンド２０２に支持されているマーク２０６を囲む判定領域７０１の大きさは、大きいままとしても良いし、支持されているマーク２０６の個数が所定個数未満となって、ボール２０３が支持されなくなったら、すべての判定領域７０１を小さくすることとしても良い。これによって、物体をきちんと把持していない場合に、取り落としやすくなる状況を表現することができる。
【０１６２】
さて、本実施形態では、ＣＰＵ  １０１が、ＲＡＭ  １０３に記憶される情報を参照することにより、判定部６０５として機能する。
【０１６３】
そして、設定部６０８は、支持点や移動体が支持体に支持されていると判定されている間、判定領域のうち、少なくとも支持体に重なる判定領域が広くなるように設定する。
【０１６４】
本実施形態では、判定領域７０１に所定数のマジックハンド２０２が入っている間は、マジックハンド２０２はボール２０３を支持していることになる。したがって、判定領域７０１の広さによって、マジックハンド２０２がどれだけボール２０３を確実に支持しているか、が表現される。判定領域７０１が広くなれば、マーク２０６やマジックハンド２０２が少々移動したとしても、ボール２０３は支持されたままであるが、判定領域７０１が狭くなると、マーク２０６やマジックハンド２０２が少々移動しただけで、両者が離れてしまうことが生じやすくなる。
【０１６５】
本実施形態では、ＣＰＵ  １０１が、ＲＡＭ  １０３に記憶される情報を参照することにより、設定部６０８として機能する。
【０１６６】
さらに、修正部６０６は、支持体が支持点や移動体を支持していると判定された場合、当該支持体に支持されている支持点の位置の変化と、当該支持点を支持している支持体の位置の変化と、が連動するように、移動体の位置および向きの少なくとも一方を修正する。
【０１６７】
支持体たるマジックハンド２０２が、１つでボール２０３を支持できるように閾値を設定した場合には、マジックハンド２０２の位置の変化をボール２０３の中心から見た角度を求め、当該角度だけ、ボール２０３を地面２０４に沿って回転移動させることで、球転がしゲームのシミュレーションが可能となる。
【０１６８】
図１０は、ボール２０３の位置を修正する様子を示す説明図である。以下、本図を参照して説明する。
【０１６９】
本図においては、修正前のボール２０３やマーク２０６の位置は点線で表記され、修正後のボール２０３やマーク２０６の位置は実線で表記されている。また、判定領域７０１については、修正前の位置のみが点線で表記されている。
【０１７０】
プレイヤーが体を動かして、ボール２０３の動きに合わせてマジックハンド２０２を動かすと、その動きの差が判定領域７０１の中に留まる間は、ボール２０３がマジックハンド２０２の動きに連動して動く。
【０１７１】
本図に示す例でも、修正前の判定領域７０１は、いずれのマジックハンド２０２も、いずれかの判定領域７０１に重なっている。したがって、各マジックハンド２０２によってボール２０３が支持されていることになり、以下のような修正を行うことになる。
【０１７２】
複数のマジックハンド２０２でボール２０３を支持する場合に両者の位置の変化を連動させる修正手法の一つは、以下の通りである。
【０１７３】
ボール２０３において、マジックハンド２０２の移動後の位置と、当該マジックハンド２０２に支持されていたマーク２０６の位置と、の距離の総和や自乗和が最小となるように、最急降下法などにより、ボール２０３の移動後の位置ならびに向きを計算する。
【０１７４】
この手法では、支持しているマジックハンド２０２と支持されているマーク２０６とができるだけ離間しないように、ボール２０３の位置や向きを調整することになる。
【０１７５】
このほか、以下のような単純な手法を採用しても良い。
（１）ボール２０３を支持している複数のマジックハンド２０２の移動前の位置の平均（重心）から、複数のマジックハンド２０２の移動後の位置の平均（重心）へ、の変位を求め、この変位と同じ向き、同じ大きさの変位だけ、ボールを移動させる。
（２）ボール２０３を支持している複数のマジックハンド２０２の移動前の位置を、上記（１）で求められた変位だけ移動する。そして、各マジックハンド２０２の、移動後の位置の平均（重心）周りの回転角を求め、その回転角の平均だけ、ボール２０３を回転させる。
【０１７６】
このように、本実施形態では、ボール２０３がマジックハンド２０２によって支持されて移動されるような状況を、複雑な物理シミュレーションを行わずに、簡易な計算のみで、表現することができる。
【０１７７】
本実施形態では、ＣＰＵ  １０１がＲＡＭ  １０３に記憶される情報を参照し、更新することで、修正部６０６として機能する。
【０１７８】
以下では、本ゲーム装置６０１が実行するゲーム制御処理の流れについて詳細に説明する。
【０１７９】
図１１は、本実施形態に係るゲーム制御処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１８０】
本ゲーム制御処理は、情報処理装置１００において、ＣＰＵ  １０１が、ＤＶＤ−ＲＯＭからＲＡＭ  １０３内にロードされたプログラムの実行を開始することによって起動される。
【０１８１】
本処理が開始されると、まず、ＣＰＵ  １０１は、各種の初期化を行う（ステップＳ８０１）。この初期化では、ＲＡＭ  １０３内において、以下のような情報が初期化される。
（ａ）各マジックハンド２０２の位置。
（ｂ）ボール２０３の位置、向き、速度、加速度。
（ｃ）目標位置２０５の位置。
（ｄ）各判定領域７０１の大きさ。
【０１８２】
なお、本実施形態では、ボール２０３の速度ならびに加速度は、当初は０に初期化される。
【０１８３】
そして、ＣＰＵ  １０１は、画像処理部１０７を制御して、現在ＲＡＭ  １０３に記憶されている情報に基づいて、仮想空間の様子を表す画像を生成し（ステップＳ８０２）、垂直同期割込が生じるまで待機する（ステップＳ８０３）。この待機の間には、各種の処理をコルーチン的に実行することができる。
【０１８４】
垂直同期割込が発生したら、ＣＰＵ  １０１は、画像処理部１０７を制御して、生成された画像をモニタの画面２０１に転送し、表示する（ステップＳ８０４）。
【０１８５】
ついで、ＣＰＵ  １０１は、カメラ１３１によって撮影された動画から、各プレイヤーの姿を画像認識し、右拳と左拳の位置を検知する。これによって、プレイヤーの動きが検知されたことになる（ステップＳ８０５）
【０１８６】
そして、検知された位置に連動して、ＲＡＭ  １０３内におけるマジックハンド２０２の位置を変化させる（ステップＳ８０６）。
【０１８７】
ついで、ＣＰＵ  １０１は、ＲＡＭ  １０３内に記憶された情報に基づいて、ボール２０３の位置を変化させる（ステップＳ８０７）。最も単純には、以下のような計算を行う。
（１）ＲＡＭ  １０３内に記憶されたボール２０３の加速度に、垂直同期割込周期を乗じて、ボール２０３の速度の変位を求め、ＲＡＭ  １０３内に記憶された速度に加算する。
（２）ＲＡＭ  １０３内に記憶されたボール２０３の速度に、垂直同期割込周期を乗じて、ボール２０３の位置の変位を求め、ＲＡＭ  １０３内に記憶された位置に加算する。
（３）ＲＡＭ  １０３内に記憶されたボール２０３の角速度に、垂直同期割込周期を乗じて、ボール２０３の角度の変位を求め、ＲＡＭ  １０３内に記憶された向きに加算する。
【０１８８】
また、ＲＡＭ  １０３内に、ボール２０３の速度や加速度、角速度の履歴を記録して、台形補間やルンゲ・クッタ法による補間を用いて、ボール２０３の位置を更新することとしても良い。
【０１８９】
なお、前述のように、ボール２０３の速度や加速度、角速度は、当初はゼロである。
【０１９０】
ついで、ＣＰＵ  １０１は、ＲＡＭ  １０３内に記憶された情報に基づいて、所定数のマジックハンド２０２が判定領域７０１に重なり、ボール２０３がマジックハンド２０２に支持されているか否かを判定する（ステップＳ８０８）。
【０１９１】
支持されている場合（ステップＳ８０８；Ｙｅｓ）、ＣＰＵ  １０１は、ボール２０３の各マーク２０６の位置とマジックハンド２０２が連動するように、ＲＡＭ  １０３内に記憶されるボール２０３の位置や向きを修正する（ステップＳ８０９）、
【０１９２】
そして、ＣＰＵ  １０１は、現在のボール２０３の位置と目標位置２０５の位置との差が、所定の誤差範囲内であるか否か、すなわち、ボール２０３が目標位置２０５に到達したか否かを判定する（ステップＳ８１０）。所定の誤差範囲内であれば（ステップＳ８１０；Ｙｅｓ）、ＣＰＵ  １０１は、当該ゲームがクリアされた旨を画面２０１に表示して（ステップＳ８１１）、本処理を終了する。
【０１９３】
一方、所定の誤差範囲内でなければ（ステップＳ８１０；Ｎｏ）、ＣＰＵ  １０１は、ステップＳ８０６以降ステップＳ８０９までの間に、ボール２０３の中心が移動した距離および方向、ならびにボール２０３が回転した角度から、ボール２０３の速度ならびに角速度を求める。また、ボール２０３の加速度を０として、ＲＡＭ  １０３に記憶させる（ステップＳ８１２）。
【０１９４】
さらに、判定領域７０１の大きさを、諸条件に合わせて設定した後（ステップＳ８１３）、ステップＳ８１５に進む。
【０１９５】
さて、マジックハンド２０２と判定領域７０１が交差していないと判定された場合（ステップＳ８０８；Ｎｏ）、ＣＰＵ  １０１は、ボール２０３の加速度を、画面２０１の上から下に向かう仮想的な重力加速度にして、ＲＡＭ  １０３に記憶させて（ステップＳ８１４）、ステップＳ８１３に進む。
【０１９６】
この場合、ボール２０３の速度は、仮想的な重力に基づいて変化していく。また、ボール２０３は、回転の角速度をそのまま維持する。したがって、ボール２０３を落とした場合のみならず、ボール２０３を放り投げるような状況も表現が可能となる。
【０１９７】
さらに、ＣＰＵ  １０１は、ボール２０３の位置が、地面２０４に至っているか否かを調べる（ステップＳ８１５）。地面に至っていれば（ステップＳ８１５；Ｙｅｓ）、ＣＰＵ  １０１は、ボール２０３の速度、加速度、角速度を０として、ＲＡＭ  １０３に記憶させて（ステップＳ８１６）、ステップＳ８０２に進む。これにより、ボール２０３は停止することになる。
【０１９８】
一方、ボール２０３の位置が地面に至っていなければ（ステップＳ８１５；Ｎｏ）、ステップＳ８０２にそのまま戻る。
【０１９９】
なお、ステップＳ８０２に戻る前には、たとえば、ゲームのＢＧＭ（Back Ground Music）の演奏の制御やゲームの時間経過の計測などの処理を実行することとしても良い。
【０２００】
なお、上記の態様では、目標位置２０５は、画面２０１内の所定位置に固定されていたが、この位置は任意に変更できることとしても良い。
【０２０１】
また、上記の態様では、各種の計算処理が、垂直同期割込周期という画面の更新の時間間隔で実行されることとしている。このように構成することで、各計算が逐次にスムースに実行されることとなるが、各種の割込処理を利用して、計算処理を並列に実行することとしても良い。
【実施例２】
【０２０２】
上記の例では、判定領域７０１の大きさは、マジックハンド２０２がボール２０３を支持しているか否かによって設定することとしていたが、さらに、以下のような手法によって設定することとしても良い。
【０２０３】
第１の手法は、判定領域７０１の広さを、マジックハンド２０２の速度に応じて設定するものである。
【０２０４】
プレイヤーが手を激しく動かしてマジックハンド２０２も激しく動いている場合には、判定領域７０１を小さくすると、ボール２０３を掴みにくくなる。一方、プレイヤーが手をゆっくり動かしマジックハンド２０２もゆっくり動いている場合には、判定領域７０１を大きくすると、ボールを掴みやすくなる。
【０２０５】
本手法によれば、手の動きが速いときには、物体を掴みにくい、あるいは、物体をしっかり掴もうとするときには、手をゆっくり確実に動かさなければならない、という現実世界に即したシミュレーションを、簡易な計算で実現することが可能となる。
【０２０６】
第２の手法は、あるマーク２０６に対する判定領域７０１の広さを、当該マーク２０６を支持しているマジックハンド２０２と当該マーク２０６との距離に応じて設定する手法である。
【０２０７】
たとえば、ボール２０３の表面にはマジックハンド２０２の指が入る孔があり、マジックハンド２０２がその孔に指を入れて掴んでしまえば、ボール２０３がマジックハンド２０３から離れにくくなる、という状況を実現するためには、支持体と支持点の距離が小さければ、判定領域を大きくするように設定すれば良い。
【０２０８】
本手法によれば、掴みにくい物体でも、一旦物体を掴んでしまえば、その物体を掴み続けることは比較的容易である、というような現実世界に即したシミュレーションを、簡易な計算で実現することが可能となる。
【０２０９】
第３の手法は、あるマーク２０６に対する判定領域７０１の広さを、当該マーク２０６を支持しているマジックハンド２０２の速度と当該マーク２０６の速度との差に応じて設定するものである。
【０２１０】
たとえば、一旦ボール２０３を掴んでも、激しくマジックハンド２０２を動かすと、マジックハンド２０２が滑って離れてしまう、という状況を実現するためには、マジックハンド２０２の速度ベクトルとマーク２０６の速度ベクトルとの差のベクトルの長さが長ければ長いほど、判定領域が小さくなるように設定すれば良い。
【０２１１】
本手法によれば、一旦掴んだ物体でも、激しく動かそうとすると手から物体が滑り落ちてしまう、というような現実世界に即したシミュレーションを、簡易な計算で実現することが可能となる。
【産業上の利用可能性】
【０２１２】
以上説明したように、本発明によれば、ユーザの動作に合わせて仮想空間内の支持体の位置を変化させ、当該支持体により当該仮想空間内の移動体を支持して、当該支持体の移動に合わせて当該移動体を移動させるゲームを実現する際に、移動体が支持体に支持されているか否かを適切に判定するのに好適なゲーム装置、ゲーム装置の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【０２１３】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェース
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
１１１  マイク
１２１  ＨＤ
１３１  カメラ
２０１  画面
２０２  マジックハンド
２０３  ボール
２０４  地面
２０５  目標地点
２０６  マーク
２１１  支持点
６０１  ゲーム装置
６０２  表示部
６０３  検知部
６０４  変化部
６０５  判定部
６０６  修正部
６０７  記憶部
６０８  設定部
７０１  判定領域
【図１】
0005559855.tif 000002
【図２】
0005559855.tif 000003
【図３】
0005559855.tif 000004
【図４】
0005559855.tif 000005
【図５】
0005559855.tif 000006
【図６】
0005559855.tif 000007
【図７】
0005559855.tif 000008
【図８】
0005559855.tif 000009
【図９】
0005559855.tif 000010
【図１０】
0005559855.tif 000011
【図１１】
0005559855.tif 000012