(57)【要約】【課題】オブジェクト空間において、移動体を多様に移動させ、プレーヤに面白みを与えることができるプログラム、情報記憶媒体、ゲームシステムを提供すること。【解決手段】プレーヤの移動入力情報に基づいて、移動体を移動させる処理を行い、移動体の属性を設定し、判定領域の属性を設定し、プレーヤの切替入力情報に基づいて、移動体の属性を切り替える処理を行い、移動体の属性と判定領域の属性との組み合わせによって決定される、移動体の移動パラメータに基づいて、移動体を移動させる。【選択図】図１１
2010233936.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト空間において判定領域を設定し移動体を移動させるゲームのためのプログラムであって、
プレーヤの移動入力情報に基づいて、前記移動体を移動させる処理を行う移動処理部と、
前記移動体の属性を設定する第１の属性設定部と、
前記判定領域の属性を設定する第２の属性設定部として、コンピュータを機能させ、
前記第１の属性設定部が、
プレーヤの切替入力情報に基づいて、前記移動体の属性を切り替える処理を行い、
前記移動処理部が、
前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記移動体の移動パラメータに基づいて、前記移動体を移動させることを特徴とするプログラム。
【請求項２】
オブジェクト空間において判定領域を設定し移動体を移動させるゲームのためのプログラムであって、
前記移動体を移動させる処理を行う移動処理部と、
前記移動体の属性を設定する第１の属性設定部と、
前記判定領域の属性を設定する第２の属性設定部として、コンピュータを機能させ、
前記第２の属性設定部が、
プレーヤの切替入力情報に基づいて、前記判定領域の属性を切り替える処理を行い、
前記移動処理部が、
前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記移動体の移動パラメータに基づいて、前記移動体を移動させることを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記移動処理部が、
前記移動体と前記判定領域との位置関係が所定条件を満たした場合に、前記移動体の移動パラメータを変化させることを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記移動処理部が、
前記移動体と前記判定領域の基準点との距離に応じて、前記移動体の移動パラメータを変化させることを特徴とするプログラム。
【請求項５】
請求項１〜４のいずれかにおいて、
前記移動処理部が、
前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記判定領域の移動パラメータに基づいて、前記判定領域を移動させることを特徴とするプログラム。
【請求項６】
請求項１〜５のいずれかにおいて、
前記移動処理部が、
前記移動体と前記判定領域との位置関係が所定条件を満たした場合に、前記判定領域の移動パラメータを変化させることを特徴とするプログラム。
【請求項７】
請求項１〜６のいずれかにおいて、
前記移動処理部が、
前記移動体と前記判定領域の基準点との距離に応じて、前記判定領域の移動パラメータを変化させることを特徴とするプログラム。
【請求項８】
請求項１〜７のいずれかにおいて、
前記オブジェクト空間において、前記判定領域に対応させて所与のオブジェクトを設定する処理を行うオブジェクト空間設定部として、コンピュータを更に機能させることを特徴とするプログラム。
【請求項９】
請求項１〜８のいずれかにおいて、
前記判定領域の大きさ及び形状の少なくとも一方を変化させる判定領域処理部として、コンピュータを更に機能させることを特徴とするプログラム。
【請求項１０】
請求項１〜９のいずれかにおいて、
前記第１の属性設定部が、
前記移動体の複数の部位それぞれに属性を設定する処理を行い、前記切替入力情報に基づいて、複数の部位それぞれの属性を切り替え、
前記移動処理部が、
複数の部位それぞれの属性と前記判定領域の属性との組み合わせによって決定される、移動体の移動パラメータに基づいて、前記移動体を移動させることを特徴とするプログラム。
【請求項１１】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１〜１０のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１２】
オブジェクト空間において判定領域を設定し移動体を移動させるゲームのためのゲームシステムであって、
プレーヤの移動入力情報に基づいて、前記移動体を移動させる処理を行う移動処理部と、
前記移動体の属性を設定する第１の属性設定部と、
前記判定領域の属性を設定する第２の属性設定部とを含み、
前記第１の属性設定部が、
プレーヤの切替入力情報に基づいて、前記移動体の属性を切り替える処理を行い、
前記移動処理部が、
前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記移動体の移動パラメータに基づいて、前記移動体を移動させることを特徴とするゲームシステム。
【請求項１３】
オブジェクト空間において判定領域を設定し移動体を移動させるゲームのためのゲームシステムであって、
前記移動体を移動させる処理を行う移動処理部と、
前記移動体の属性を設定する第１の属性設定部と、
前記判定領域の属性を設定する第２の属性設定部とを含み、
前記第２の属性設定部が、
プレーヤの切替入力情報に基づいて、前記判定領域の属性を切り替える処理を行い、
前記移動処理部が、
前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記移動体の移動パラメータに基づいて、前記移動体を移動させることを特徴とするゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、及び、ゲームシステムに関する。
【背景技術】
【０００２】
従来から、仮想的なオブジェクト空間（ゲーム空間）のゲームシステム（画像生成システム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
このようなゲームシステムでは、移動入力情報に基づいてプレーヤキャラクタを移動させるだけでなく、プレーヤキャラクタと他のオブジェクトとの所与の関係に基づいて、プレーヤキャラクタを移動させる処理を行うものがある（例えば、特許文献１）。
【０００４】
しかし、従来のゲームシステムのプレーヤキャラクタの移動処理は、プレーヤが関与できるのは移動入力情報に関する入力であり、プレーヤにとって単純すぎて面白みに欠けるという問題があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２１１３３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、従来の課題に鑑みたものであり、その目的は、オブジェクト空間において、オブジェクトを移動させるゲームにおいて、オブジェクトの移動が単純すぎず、多様な移動が可能なプログラム、情報記憶媒体、ゲームシステムを提供することにある。
【課題を解決するための手段】
【０００７】
（１）本発明は、オブジェクト空間において判定領域を設定し移動体を移動させるゲームのためのプログラムであって、プレーヤの移動入力情報に基づいて、前記移動体を移動させる処理を行う移動処理部と、前記移動体の属性を設定する第１の属性設定部と、前記判定領域の属性を設定する第２の属性設定部として、コンピュータを機能させ、前記第１の属性設定部が、プレーヤの切替入力情報に基づいて、前記移動体の属性を切り替える処理を行い、前記移動処理部が、前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記移動体の移動パラメータに基づいて、前記移動体を移動させるプログラムに関する。本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部として、コンピュータを機能させるプログラムを記憶した情報記憶媒体、上記各部を含むゲームシステムに関係する。
【０００８】
本発明によれば、移動体の属性と判定領域の属性との組み合わせで決定される、移動体の移動パラメータに基づいて移動体を移動させることができる。つまり、本発明によれば、プレーヤは、移動入力情報を入力して移動体を直接的に移動させるだけでなく、切替入力情報の入力を行うことにより移動体の移動パラメータを変化させて、間接的に移動体を移動させることができる。したがって、本発明によれば、単純すぎずかつ多様に移動体を移動させることができる。
【０００９】
（２）本発明は、オブジェクト空間において判定領域を設定し移動体を移動させるゲームのためのプログラムであって、前記移動体を移動させる処理を行う移動処理部と、前記移動体の属性を設定する第１の属性設定部と、前記判定領域の属性を設定する第２の属性設定部として、コンピュータを機能させ、前記第２の属性設定部が、プレーヤの切替入力情報に基づいて、前記判定領域の属性を切り替える処理を行い、前記移動処理部が、前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記移動体の移動パラメータに基づいて、前記移動体を移動させるプログラムに関する。本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部として、コンピュータを機能させるプログラムを記憶した情報記憶媒体、上記各部を含むゲームシステムに関係する。
【００１０】
本発明によれば、移動体の属性と判定領域の属性との組み合わせで決定される移動パラメータに基づいて移動体を移動させることができる。つまり、本発明によれば、プレーヤは、切替入力情報の入力を行うことにより移動体の移動パラメータを変化させて、間接的に移動体を移動させることができる。したがって、本発明によれば、単純すぎずかつ多様に移動体を移動させることができる。
【００１１】
（３）また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記移動処理部が、前記移動体と前記判定領域との位置関係が所定条件を満たした場合に、前記移動体の移動パラメータを変化させてもよい。本発明によれば、移動体と判定領域との位置関係が、移動体の移動パラメータに反映されるので、プレーヤは、移動体と判定領域との位置関係を考慮したゲームプレイを楽しむことができる。
【００１２】
（４）また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記移動処理部が、前記移動体と前記判定領域の基準点との距離に応じて、前記移動体の移動パラメータを変化させてもよい。本発明によれば、移動体と判定領域の基準点との距離が、移動体の移動パラメータに反映されるので、プレーヤは、移動体と判定領域の基準点との距離を考慮したゲームプレイを楽しむことができる。
【００１３】
（５）また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記移動処理部が、前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記判定領域の移動パラメータに基づいて、前記判定領域を移動させてもよい。本発明によれば、プレーヤは、移動パラメータが判定領域の移動に影響を与えるように、属性を切り替える入力を行うことができる。
【００１４】
（６）また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記移動処理部が、前記移動体と前記判定領域との位置関係が所定条件を満たした場合に、前記判定領域の移動パラメータを変化させるようにしてもよい。本発明によれば、移動体と判定領域との位置関係が、判定領域の移動パラメータに反映されるので、プレーヤは、移動体と判定領域との位置関係を考慮したゲームプレイを楽しむことができる。
【００１５】
（７）また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記移動処理部が、前記移動体と前記判定領域の基準点との距離に応じて、前記判定領域の移動パラメータを変化させるようにしてもよい。本発明によれば、移動体と判定領域の基準点との距離が、判定領域の移動パラメータに反映されるので、プレーヤは、移動体と判定領域の基準点との距離を考慮したゲームプレイを楽しむことができる。
【００１６】
（８）また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記オブジェクト空間において、前記判定領域に対応させて所与のオブジェクトを設定する処理を行うオブジェクト空間設定部として、コンピュータを更に機能させるようにしてもよい。本発明によれば、プレーヤは、判定領域を認識し易くなる。
【００１７】
（９）また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記判定領域の大きさ及び形状の少なくとも一方を変化させる判定領域処理部として、コンピュータを更に機能させるようにしてもよい。本発明によれば、判定領域の大きさ及び形状が変化するので、移動パラメータに基づく移動の影響を多様に変化させることができる。
【００１８】
（１０）また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記第１の属性設定部が、前記移動体の複数の部位それぞれに属性を設定する処理を行い、前記切替入力情報に基づいて、複数の部位それぞれの属性を切り替え、前記移動処理部が、複数の部位それぞれの属性と前記判定領域の属性との組み合わせによって決定される、移動体の移動パラメータに基づいて、前記移動体を移動させるようにしてもよい。本発明によれば、プレーヤが、オブジェクトの部位毎に切り替える入力を行うことによって、更に、移動体に多様な移動を行わせることができる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態のゲームシステムの機能ブロック図の例。
【図２】本実施形態の処理の概要図。
【図３】図３（Ａ）（Ｂ）は、本実施形態の引力に基づく移動処理の説明図。
【図４】図４（Ａ）（Ｂ）は、本実施形態の斥力に基づく移動処理の説明図。
【図５】図５は、本実施形態の斥力の大きさを説明するための図。
【図６】図６（Ａ）〜（Ｃ）は、本実施形態の磁極切り替えによる移動処理の説明図。
【図７】図７（Ａ）〜（Ｃ）は、本実施形態の磁極切り替えによる移動処理の説明図。
【図８】図８（Ａ）〜（Ｃ）は、本実施形態の磁極切り替えによる移動処理の説明図。
【図９】図９（Ａ）〜（Ｃ）は、本実施形態の磁極切り替えによる移動処理の説明図。
【図１０】図１０（Ａ）〜（Ｃ）は、本実施形態の磁極切り替えによる移動処理の説明図。
【図１１】本実施形態の処理のフローチャート。
【図１２】本実施形態の磁力範囲の説明図。
【図１３】図１３（Ａ）（Ｂ）は、本実施形態の磁力に基づく移動処理の説明図。
【図１４】図１４は、本実施形態の磁力に基づく移動処理の説明図。
【図１５】図１５（Ａ）〜（Ｄ）は、本実施形態の属性の説明図。
【発明を実施するための形態】
【００２０】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２１】
１．構成
図１に本実施形態のゲームシステム（画像生成システム）の機能ブロック図の例を示す。なお本実施形態のゲームシステムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２２】
入力部１６０は、プレーヤからの入力情報を入力するための機器であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部１６０は、プレーヤの入力情報（入力信号）を検出する検出部１６２を備える。入力部１６０は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。
【００２３】
また、入力部１６０は、３軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力機器は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力機器には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける（プレーヤが手に装着する）グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力機器には、入力機器と一体化されているゲーム装置、携帯型ゲーム装置、携帯電話なども含まれる。
【００２４】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。なお、オブジェクトデータ記憶部１７６には、オブジェクトのオブジェクトデータが記憶される。
【００２５】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００２６】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２７】
通信部１９６は外部（例えば他のゲームシステム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２８】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体１８０や記憶部１７０に記憶してもよい。このようにプログラムやデータを受信してゲームシステムを機能させる場合も本発明の範囲内に含む。
【００２９】
処理部１００（プロセッサ）は、入力部１６０からの入力データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【００３０】
この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３１】
処理部１００は、受け付け部１１０、オブジェクト空間設定部１１１、移動・動作処理部１１２、第１の属性設定部１１３、第２の属性設定部１１４、判定領域処理部１１５、ゲーム演算部１１６、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００３２】
受け付け部１１０は、プレーヤからの入力情報を受け付ける処理を行う。例えば、受け付け部１１０は、入力部１６０（十字キー、Ａボタン）から出力された移動入力情報を受け付ける。移動入力情報とは、オブジェクト空間において移動体を移動させるための情報であり、例えば、横方向（Ｘ軸方向）への入力情報、上下方向（Ｙ軸方向）へ移動（ジャンプ）させるための入力情報である。
【００３３】
また、受け付け部１１０は、入力部１６０（Ｂボタン）から出力された切替入力情報を受け付ける。切替入力情報とは移動体の属性を切り替えるための情報である。
【００３４】
また、受け付け部１１０は、入力部１６０（Ｃボタン）から出力された判定領域設定情報を受け付ける。判定領域設定情報とは、判定領域Ｂ（磁力範囲）を設定するための情報である。
【００３５】
オブジェクト空間設定部１１１は、プレーヤキャラクタ（移動体の一例）、磁石オブジェクトの他に、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。
【００３６】
ここでオブジェクト空間とは、仮想空間であり、２次元空間、３次元空間の両方を含む。２次元空間とは、例えば２次元座標（Ｘ，Ｙ）においてオブジェクトが配置される空間であり、３次元空間とは、例えば３次元座標（Ｘ，Ｙ，Ｚ）においてオブジェクトが配置される空間である。例えば、オブジェクト空間設定部１１１は、オブジェクト空間を３次元空間とした場合には、ワールド座標系にオブジェクトを配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義であり、例えば、ワールド座標系でのＸ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００３７】
特に、本実施形態のオブジェクト空間設定部１１１は、オブジェクト空間において、所与のオブジェクト（磁石オブジェクト）を設定する処理を行う。
【００３８】
移動・動作処理部１１２は、オブジェクト空間において、オブジェクトを移動させる処理を行う。すなわち入力部１６０によりプレーヤが入力した入力データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、移動速度、加速度、移動量、移動方向などの移動パラメータ）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（例えば、１／６０秒）毎に順次求める処理を行う。なおフレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【００３９】
特に、本実施形態の移動処理部１１２ａは、オブジェクト空間において、移動体を移動させる処理を行う。具体的には、プレーヤの移動入力情報に基づいて、移動体を移動させる処理を行う。なお、本実施形態の移動処理部１１２ａは、プレーヤの移動入力情報に基づいて移動体を移動させる場合には、予め定められた所定速度Ｖを超えないように移動体を移動させる。
【００４０】
また、移動処理部１１２ａは、コンピュータプログラムに基づいて、判定領域Ｂ（磁力範囲）を移動させる処理を行う。
【００４１】
また、移動処理部１１２ａは、移動体の属性と判定領域の属性との組み合わせによって決定される、移動体の移動パラメータに基づいて、移動体を移動させる処理を行う。
【００４２】
また、移動処理部１１２ａは、属性の種類が複数ある場合は、移動体の属性と判定領域の属性との組み合わせの種類に応じて、移動体の移動処理を異ならせる。例えば、属性Ｋ１、Ｋ２、Ｋ３がある場合において、移動体の属性と、判定領域の属性との組み合わせを（移動体の属性，判定領域の属性）で表記すると、（Ｋ１，Ｋ１）の組み合わせは、（Ｋ２，Ｋ２）の組み合わせよりも、移動体の移動パラメータの変化量が大きくなるようにしてもよい。また、例えば、（Ｋ１，Ｋ２）の組み合わせは、移動体に引力を働かせて移動させ、（Ｋ１，Ｋ３）の組み合わせは、移動体に斥力を働かせて移動させ、（Ｋ２，Ｋ３）の組み合わせは、移動体の動きを強制的に止めるようにしてもよい。
【００４３】
また、移動処理部１１２ａは、属性Ｋ１、Ｋ２、Ｋ３がある場合において、三竦みの関係に従って移動体を移動させるようにしてもよい。例えば、（Ｋ１，Ｋ２）の組み合わせ、（Ｋ２，Ｋ３）の組み合わせ及び（Ｋ３，Ｋ１）の組み合わせは、（Ｋ２，Ｋ１）の組み合わせ、（Ｋ３，Ｋ２）の組み合わせ及び（Ｋ１，Ｋ３）の組み合わせよりも移動体の移動パラメータの変化量が大きくなるようにしてもよい。
【００４４】
また、移動処理部１１２ａは、移動体と判定領域との位置関係が所定条件を満たした場合に、移動体の移動パラメータを変化させる処理を行う。より具体的には、移動処理部１１２ａは、移動体と判定領域の基準点との距離に応じて、移動体の移動パラメータを変化させる処理を行う。
【００４５】
また、移動処理部１１２ａは、移動体の属性と判定領域の属性との組み合わせによって決定される、判定領域の移動パラメータに基づいて、判定領域を移動させる処理を行う。
【００４６】
例えば、移動処理部１１２ａは、属性の種類が複数ある場合は、移動体の移動処理と同様な手法で、移動体の属性と判定領域の属性との組み合わせの種類に応じて、判定領域の移動処理を異ならせるようにしてもよい。
【００４７】
また、移動処理部１１２ａは、移動体と判定領域との位置関係が所定条件を満たした場合に、判定領域の移動パラメータを変化させる処理を行う。より具体的には、移動処理部１１２ａは、移動体と判定領域の基準点との距離に応じて、判定領域の移動パラメータを変化させる処理を行う。
【００４８】
特に本実施形態の移動処理部１１２ａは、移動体の属性と判定領域の属性とが同じである場合に、移動体に斥力（反発力）を働かせて移動させる処理を行う。また、移動処理部１１２ａは、移動体の属性と判定領域の属性とが異なる場合に、移動体に引力を働かせて移動させる処理を行う。
【００４９】
ここで、判定領域とは、磁石オブジェクト（磁石オブジェクトの基準点ＭＯ）の位置に対応付けて設定された基準点ＢＯに基づいて設定される領域を示す。例えば、判定領域は基準点ＢＯを中心とする半径Ｒ以内の領域を示す。また、属性とは、互いに対応関係のある複数の要素のうちの各要素を示す。すなわち、互いに対応関係のある２つの要素（例えば、Ｎ極、Ｓ極）のうち、一方の要素（Ｎ極）或いは、他方の要素（Ｓ極）を属性とすることができる。また、互いに対応関係（例えば、三竦みの関係）のある３つの要素（例えば、Ｋ１、Ｋ２、Ｋ３）の各要素を属性とすることができる。
【００５０】
例えば、移動処理部１１２ａは、プレーヤキャラクタがＮ極で磁石オブジェクトがＳ極である場合、或いは、プレーヤキャラクタがＳ極で磁石オブジェクトがＮ極である場合に、プレーヤキャラクタと磁石オブジェクトとの間に引力を発生させると決定し、プレーヤキャラクタに働かせる引力Ｆ１を求める。そして、引力Ｆ１に基づく移動ベクトルＶａに基づき、プレーヤキャラクタの移動ベクトルＶＰ（プレーヤキャラクタの移動パラメータの一例）を求める。また、磁石オブジェクトに働かせる引力Ｆ１´（Ｆ１と逆方向を向くＦ１´）を求める。そして、引力Ｆ１´に基づく移動ベクトルＶｃに基き、磁石オブジェクトの移動ベクトルＶＭ（磁石オブジェクトの移動パラメータの一例）を求める。
【００５１】
また、移動処理部１１２ａは、プレーヤキャラクタがＮ極であり磁石オブジェクトがＮ極である場合、又は、プレーヤキャラクタがＳ極であり磁石オブジェクトがＳ極である場合には、プレーヤキャラクタと磁石オブジェクトとの間に斥力を発生させると決定し、プレーヤキャラクタに働かせる斥力Ｆ２を求める。そして、斥力Ｆ２に基づく移動ベクトルＶａに基づき、プレーヤキャラクタの移動ベクトルＶＰを求める。また、磁石オブジェクトに働かせる斥力Ｆ２´（Ｆ２と逆方向を向くＦ２´）を求める。そして、斥力Ｆ２´に基づく移動ベクトルＶｃに基き、磁石オブジェクトの移動ベクトルＶＭを求める。
【００５２】
また、本実施形態の移動処理部１１２ａは、移動入力情報を受け付けた場合には、移動入力情報に応じたプレーヤキャラクタの移動ベクトルＶｂと、磁力Ｆ（斥力或いは引力）に伴う移動ベクトルＶａとを合成したベクトルＶＰに基づき、プレーヤキャラクタを移動させる。
【００５３】
また、移動処理部１１２ａは、移動体と判定領域の基準点との距離に応じて、移動パラメータを変化させる。例えば、プレーヤキャラクタと磁石オブジェクトとの距離が長いほど、磁力Ｆ（斥力或いは引力）に基づく移動ベクトルＶａの大きさを減少させるようにする。一方、プレーヤキャラクタと磁石オブジェクトとの距離が近いほど、磁力Ｆ（斥力或いは引力）に基づく移動ベクトルＶａの大きさを増大させるようにする。
【００５４】
なお、移動処理部１１２ａは、複数の部位それぞれの属性と判定領域の属性との組み合わせによって決定される、移動体の移動パラメータに基づいて、移動体を移動させるようにしてもよい。
【００５５】
なお、本実施形態の移動処理部１１２ａは、ゲーム空間における重力、摩擦力、空気抵抗などの他の力を加味して、移動体や磁石オブジェクトを移動させる。
【００５６】
また、第１の属性設定部１１３は、移動体の属性を設定する処理を行う。例えば、第１の属性設定部１１３は、互いに対応関係のある複数の要素のうちの一方の要素（Ｎ極）或いは、他方の要素（Ｓ極）を、移動体の属性として設定する処理を行う。
【００５７】
第１の属性設定部１１３は、プレーヤの切替入力情報に基づいて、移動体の属性を切り替える（変更する）処理を行う。例えば、第１の属性設定部１１３は、プレーヤの切替入力情報を受け付けた場合に、プレーヤキャラクタの磁極をＳ極からＮ極（或いは、Ｎ極からＳ極）に切り替える処理を行う。
【００５８】
なお、第１の属性設定部１１３は、移動体の複数の部位それぞれに属性を設定する処理を行い、切替入力情報に基づいて、複数の部位それぞれの属性を切り替える処理を行う。かかる場合には、第１の属性設定部１１３は、切替入力情報に基づいて、複数の部位それぞれの属性を同時に切り替えてもよいし、各部位を個別に切り替えてもよい。
【００５９】
なお、第１の属性設定部１１３は、プレーヤの切替入力情報によらずに、コンピュータプログラムに基づいて、属性を切り替えるようにしてもよい。
【００６０】
また、第２の属性設定部１１４は、判定領域の属性を設定する処理を行う。例えば、第２の属性設定部１１４は、互いに対応関係のある複数の要素のうちの一方の要素（Ｎ極）或いは、他方の要素（Ｓ極）を、判定領域の属性として設定する処理を行う。第２の属性設定部１１４は、プレーヤの切替入力情報に基づいて、判定領域の属性を切り替える（変更する）処理を行う。
【００６１】
なお、第２の属性設定部１１３は、プレーヤの切替入力情報によらずに、コンピュータプログラムに基づいて、判定領域の属性を切り替えるようにしてもよい。
【００６２】
判定領域処理部１１５は、判定領域の大きさ及び形状の少なくとも一方を変化させる処理を行う。
【００６３】
ゲーム演算部１１６は、種々のゲーム演算処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲームステージ毎のクリア条件を満たすか否かを判定する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【００６４】
本実施形態のゲーム演算部１１６は、プレーヤキャラクタがゴール地点までたどり着いたか否かを判定したり、プレーヤキャラクタの高さが所定値（例えばＹ＝０）以上か否かに基づきゲーム判定を行うようにしている。例えば、プレーヤキャラクタが制限時間以内にゴール地点まで到達していない場合には、ゲームオーバーと判定したり、プレーヤキャラクタの高さが所定値以上でない場合には、ゲームオーバーと判定している。
【００６５】
また、ゲーム演算部１１６は、プレーヤキャラクタのヒット領域と敵キャラクタのヒット領域とがヒットしたか否かを判定するヒット判定を行い、プレーヤキャラクタのパラメータ（体力値など）を減算させる処理を行う。
【００６６】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。描画部１２０が生成する画像は、いわゆる２次元画像であってもよいし、いわゆる３次元画像であってもよい。
【００６７】
２次元画像を生成する場合には、横から見たときの画像を生成する。例えば、オブジェクト（スプライト）毎に優先度を設定し、設定された優先度が低いオブジェクトから順に描画する。オブジェクト同士が重なる場合には、優先度が低いオブジェクトの上に、優先度の高いオブジェクトを描画する。
【００６８】
いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値
等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００６９】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換（カメラ座標変換）、クリッピング処理、透視変換（投影変換）、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。
【００７０】
そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００７１】
なお、描画部１２０は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、３次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。また、描画部１２０は、仮想カメラを、予め決められた回転角度で回転させてもよい。この場合には、仮想カメラの位置又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００７２】
例えば仮想カメラによりオブジェクト（例えば、プレーヤキャラクタ）を後方から撮影する場合には、オブジェクトの位置、向きの変化に仮想カメラが追従するように、仮想カメラの位置、仮想カメラの向きを制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、向き又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた向きに設定したり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は向きを特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００７３】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００７４】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００７５】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、オブジェクトデータ記憶部１７６に保存される。
【００７６】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部１７８からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００７７】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７９（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７９に格納されるＺ値を参照する。そして参照されたＺバッファ１７９のＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７９のＺ値を新たなＺ値に更新する。
【００７８】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００７９】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００８０】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００８１】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲームシステム、携帯電話）を用いて分散処理を行ってもよい。
【００８２】
２．本実施形態の手法
（１）概要
本実施形態のゲームシステムは、図２に示すように、オブジェクト空間（仮想２次元空間）において、プレーヤキャラクタＰ（移動体の一例）をスタート地点（始点）からゴール地点（終点）まで移動させる処理を行う。例えば、本実施形態では、プレーヤの移動入力情報に基づいて、プレーヤキャラクタＰを移動させる処理を行っている。
【００８３】
本実施形態では、オブジェクト空間に予め磁極（Ｎ極或いはＳ極）が設定された磁石オブジェクトＭを複数配置する。例えば、図２に示すように、Ｎ極が設定された磁石オブジェクトＭ、Ｓ極が設定された磁石オブジェクトＭなどがある。なお、オブジェクト空間には、弾磁石オブジェクトＭ´のように、所与の移動ベクトルに基づいて移動する磁石オブジェクトも存在する。
【００８４】
本実施形態では、プレーヤキャラクタＰにも、Ｎ極又はＳ極の磁極が設定されている。図２の例では、プレーヤキャラクタＰはＮ極が設定されている。
【００８５】
そして、本実施形態では、プレーヤキャラクタＰの磁極と、磁石オブジェクトＭとの磁極とに基づいて磁力Ｆを求め、磁力Ｆに基づいてプレーヤキャラクタＰの移動ベクトルＶＰ（移動パラメータの一例）を求める。そして、求めた移動ベクトルＶＰに基づいてプレーヤキャラクタＰを移動させる処理を行う。
【００８６】
例えば、プレーヤキャラクタＰの磁極と磁石オブジェクトＭとの磁極とが異なる場合には、プレーヤキャラクタＰと磁石オブジェクトとが引き寄せ合う引力Ｆ１を求め、プレーヤキャラクタＰの磁極と磁石オブジェクトＭとの磁極とが同じ場合には、プレーヤキャラクタＰと磁石オブジェクトとが斥け合う斥力Ｆ２を求める。そして、求めた引力Ｆ１或いは斥力Ｆ２に基づくプレーヤキャラクタの移動ベクトルＶａを求める。そして、移動ベクトルＶａをプレーヤキャラクタＰの移動処理に反映させる。
【００８７】
更に、本実施形態では、プレーヤの磁極切替入力情報（切替入力情報）に基づいて、プレーヤキャラクタＰの磁極をＮ極からＳ極、或いは、Ｓ極からＮ極に切り替える処理を行っている。したがって、プレーヤキャラクタＰと磁石オブジェクトとが引力Ｆ１で引き寄せられている場合に、磁力切替入力情報に基づきプレーヤキャラクタＰの磁極を切り替えると、途端にプレーヤキャラクタＰが磁石オブジェクトＭを斥けるように移動させることができる。このように、本実施形態では、プレーヤキャラクタＰに対して磁力を利用した移動を行うことができ、面白味のあるゲームを実現することができる。
【００８８】
なお、本実施形態では、プレーヤキャラクタＰに重力（Ｙ軸マイナス方向の力）を働かせている。そして、プレーヤキャラクタＰの位置（Ｘ，Ｙ）が所定値（Ｙ＝０）以下になると、ゲームオーバーの判定処理を行いゲームを終了させる処理を行っている。したがって、例えば、床オブジェクトが存在しないところでは、プレーヤキャラクタＰの落下を防止させるために、プレーヤは、プレーヤキャラクタＰを天井に磁石オブジェクトＭの磁力を利用して移動させるように操作を行うことになる。
【００８９】
なお、本実施形態では、磁力Ｆ（引力Ｆ１、斥力Ｆ２）の大きさを、重力Ｇよりも大きな値になるように設定しプレーヤキャラクタの落下を防止させるように処理を行っている。例えば、壁や天井に配置されている磁石オブジェクトＭとプレーヤキャラクタＰとが引力Ｆ１で接している場合では、プレーヤキャラクタＰに、重力Ｇを相殺する力（重力Ｇと大きさが同じであって、Ｙ軸プラス方向の力）を働きかけて、重力を無効にする処理を行う。
【００９０】
また、本実施形態では、Ｓ極とＮ極とを異なる色で表示させている。例えば、Ｓ極を青色、Ｎ極を赤色で表示させて、プレーヤがプレーヤキャラクタＰや磁石オブジェクトＭの磁極を容易に認識できるように表示処理を行っている。
【００９１】
（２）磁力に基づく移動処理の説明
本実施形態では、プレーヤの移動入力情報によって決定される移動ベクトルＶｂに基づき、プレーヤキャラクタＰを移動させる処理を行っているが、磁力Ｆが及ぶ判定領域Ｂ（磁力範囲）では、磁力Ｆに伴う移動ベクトルＶａをプレーヤキャラクタＰに反映させて、プレーヤキャラクタを移動させる処理を行っている。
【００９２】
例えば、本実施形態では、図３（Ａ）（Ｂ）に示すように、磁石オブジェクトそれぞれの位置に対応付けて設定された基準点ＢＯを中心とする半径Ｒの判定領域Ｂを設定し、判定領域ＢにプレーヤキャラクタＰが位置している場合に、プレーヤキャラクタＰに対して磁力Ｆを与える処理を行っている。
【００９３】
より具体的に説明すると、図３（Ａ）に示すように、プレーヤキャラクタＰが判定領域Ｂ内に位置していない場合には、プレーヤキャラクタＰは、磁石オブジェクトＭによる磁力Ｆの影響を受けず、プレーヤの移動入力情報に基づく移動ベクトルＶｂに基づいて移動処理が行われる。
【００９４】
一方、図３（Ｂ）に示すように、プレーヤキャラクタＰが判定領域Ｂ内に位置している場合には、プレーヤキャラクタＰは、磁石オブジェクトＭによる磁力Ｆの影響を受ける。図３（Ｂ）の例によれば、プレーヤキャラクタＰと磁石オブジェクトＭとの磁極が異なる関係にあるので、プレーヤキャラクタＰを引力Ｆ１に基づく移動ベクトルＶａによって移動させる処理を行う。つまり、引力Ｆ１の向きをプレーヤキャラクタＰの基準点ＰＯから判定領域Ｂの基準点ＢＯの方向に設定し、基準点ＰＯから基準点ＢＯに近づける引力Ｆ１の大きさを求め、引力Ｆ１に基づいて移動ベクトルＶａを求める。例えば、移動ベクトルＶａの向きを引力Ｆ１の向きに設定し、移動ベクトルＶａの移動量を引力Ｆ１の大きさに基づいて求める。そして、移動ベクトルＶａに基づき、プレーヤキャラクタＰを移動させる処理を行う。
【００９５】
本実施形態では、プレーヤキャラクタＰが判定領域Ｂ内に位置している場合に、移動入力情報を受け付けた場合には、引力Ｆ１に伴う移動ベクトルＶａと、移動入力情報に基づく移動ベクトルＶｂとを合成したベクトルＶＰに基づいてプレーヤキャラクタＰを移動させる。なお、基準点ＰＯと基準点ＢＯとが同じ位置にある場合は、移動入力情報に基づくプレーヤキャラクタＰの移動ができなくなる。
【００９６】
また、図４（Ａ）（Ｂ）を用いて、プレーヤキャラクタＰと磁石オブジェクトＭとの磁極が同じ関係にある場合について説明すると、図４（Ａ）に示すように、プレーヤキャラクタＰが磁石オブジェクトＭに設定された判定領域Ｂ内に位置していない場合には、プレーヤキャラクタＰは、磁石オブジェクトＭの磁力Ｆの影響を受けない。
【００９７】
一方、図４（Ｂ）に示すように、プレーヤキャラクタＰが、判定領域Ｂ内に位置している場合であって、プレーヤキャラクタＰと磁石オブジェクトＭとの磁極が同じ関係にある場合には、斥力Ｆ２に基づく移動ベクトルＶａを求め、移動ベクトルＶａに基づきプレーヤキャラクタＰを移動させる処理を行う。すなわち、斥力Ｆ２の向きを基準点ＢＯから基準点ＰＯの方向に設定し、斥力Ｆ２の大きさを求める。そして、斥力Ｆ２に基づいて移動ベクトルＶａを求める。移動ベクトルＶａの向きを斥力Ｆ２の向きに設定し、移動ベクトルＶａの移動量を斥力Ｆ２の大きさに基づいて求める。そして、移動ベクトルＶａに基づき、プレーヤキャラクタＰを移動させる処理を行う。
【００９８】
なお、本実施形態では、プレーヤキャラクタＰに斥力Ｆ２を加える場合には、プレーヤキャラクタＰの基準点ＰＯと判定領域Ｂの基準点ＢＯとの距離ｘの二乗に反比例させた値を、斥力Ｆ２の大きさとして求める。また、この斥力Ｆ２の大きさは、パラメータａによって決定するようにしてもよい。例えば、判定領域毎にパラメータａを異ならせるようにすれば、斥力Ｆ２の大きさが異なる複数の判定領域を設定することができる。つまり、図５に示すように、斥力Ｆ２の大きさｙとするとｙ＝ａ／ｘ２の関係になる。なお、本実施形態では、プレーヤキャラクタＰの基準点ＰＯと判定領域Ｂの基準点ＢＯとの距離ｘ≦ｘ１の場合には、斥力Ｆ２の大きさｙを所定量ｙ１に設定する。プレーヤキャラクタＰの移動量が極端に大きくならないようにするためである。
【００９９】
また、本実施形態では、プレーヤキャラクタＰが判定領域Ｂ内に位置している場合に、移動入力情報を受け付けた場合には、斥力Ｆ２に伴う移動ベクトルＶａと、移動入力情報に基づく移動ベクトルＶｂ（移動方向・移動量）とを合成したベクトルＶＰに基づいてプレーヤキャラクタＰを移動させる。
【０１００】
なお、本実施形態では、判定領域ＢにプレーヤキャラクタＰが位置しているか否かの判断は、プレーヤキャラクタＰに予め定めたヒット領域と、判定領域Ｂとがヒットしたか否か（交差したか否か）に基づいて判断する。例えば、プレーヤキャラクタＰに設定されたヒット領域と、判定領域Ｂとがヒットしたと判定された場合に、プレーヤキャラクタＰが判定領域Ｂに位置すると判断する。
【０１０１】
（３）磁極の切り替えに伴う移動処理
本実施形態において、プレーヤキャラクタＰの磁極を切り替える処理について説明する。例えば、図６（Ａ）に示すように、プレーヤキャラクタＰの磁極がＮ極であり、磁石オブジェクトＭの磁極がＳ極であるとすると、プレーヤキャラクタＰが磁石オブジェクトＭに引き寄せられて、プレーヤキャラクタＰの基準点ＰＯと判定領域Ｂの基準点ＢＯとが接近した状態となる。本実施形態では、このような状態において、プレーヤの磁極切替入力情報を受け付けると、図６（Ｂ）に示すように、プレーヤキャラクタＰの磁極をＮ極からＳ極に切り替える処理を行う。そして、本実施形態では、プレーヤキャラクタＰの磁極と磁石オブジェクトＭとの磁極とが同じであると判断すると、プレーヤキャラクタＰに斥力Ｆ２を働かせて移動させる処理を行う。
【０１０２】
例えば、図６（Ｃ）に示すように、プレーヤキャラクタＰの基準点ＰＯと判定領域Ｂの基準点ＢＯとの距離ｘが短い（ｘ＜ｘ２＜Ｒ）場合には、プレーヤキャラクタＰに強力な斥力Ｆ２が働き、例えば、プレーヤキャラクタＰを、判定領域Ｂを超えて大きくジャンプするように移動させる処理を行う。より具体的に説明すると、プレーヤキャラクタＰの磁極と磁石オブジェクトＭの磁極とが異極の組み合わせであって基準点ＰＯと基準点ＢＯとが近い状態にあり（ｘ＜ｘ２＜Ｒ）、移動入力情報を受け付けずに磁極切替入力情報を受け付けた場合には、予め定めた移動ベクトルＶａ（上方向であって磁力Ｆに伴う最大移動量が設定された移動ベクトル）に基づいて、プレーヤキャラクタをジャンプさせる。
【０１０３】
さらに、本実施形態において、磁極切り替えを利用した高さ方向（Ｙ軸方向）の移動処理例を図７（Ａ）〜（Ｃ）を用いて説明する。まず、図７（Ａ）に示すように、プレーヤキャラクタＰが判定領域Ｂに位置していない場合にプレーヤのジャンプに関する移動入力情報を受け付けると、本実施形態では、プレーヤキャラクタＰを、移動ベクトルＶｂに基づき高さＨ０でジャンプさせる移動処理を行う。
【０１０４】
一方、図７（Ｂ）に示すように、プレーヤキャラクタＰの磁極と磁石オブジェクトＭの磁極が異極同士の組み合わせでプレーヤキャラクタＰの基準点ＰＯと判定領域Ｂの基準点ＢＯとが近い状態にあり（ｘ＜ｘ２＜Ｒ）、かつ、ジャンプに関する移動入力情報を受け付けている際に磁極切り替え入力情報を受け付けると、プレーヤキャラクタＰの磁極と磁石オブジェクトＭの磁極が同極同士の組み合わせになり、プレーヤキャラクタＰを、Ｈ０よりも高いＨ１（Ｈ０＜Ｈ１、Ｒ＜Ｈ１）でジャンプさせる移動処理を行う。
【０１０５】
すなわち、プレーヤキャラクタＰの磁極と磁石オブジェクトＭの磁極とが異極の組み合わせであって基準点ＰＯと基準点ＢＯとが近い状態にあり（ｘ＜ｘ２＜Ｒ）、かつ、ジャンプに関する移動入力情報を受け付けている際に磁極切り替え入力情報を受け付けた場合には、移動入力情報に基づく移動ベクトルＶｂの向きを移動ベクトルＶＰの向きとして設定し、移動ベクトルＶｂと磁力による移動ベクトルＶａとを合成したベクトルの大きさを移動ベクトルＶＰの大きさ（移動量）として設定することによって、移動ベクトルＶＰを求める。このようにすれば、移動ベクトルＶｂよりも大きな移動ベクトルＶＰに基づいてプレーヤキャラクタＰを移動させることができる。
【０１０６】
なお、図７（Ｃ）に示すように、プレーヤキャラクタＰの磁極と磁石オブジェクトＭの磁極が異極同士で、プレーヤキャラクタＰの基準点ＰＯと判定領域Ｂの基準点ＢＯとが接近している（ｘ＜ｘ１＜ｘ２）である場合に、プレーヤからのジャンプに関する移動入力情報を受け付けた場合に、ジャンプできないように移動制限処理を行う。
【０１０７】
次に、図８（Ａ）〜（Ｃ）を用いて、磁極切り替えを利用して、プレーヤキャラクタＰを右方向（Ｘ軸プラス方向）に高速に移動させる処理（ダッシュ処理）を説明する。
【０１０８】
例えば、図８（Ａ）に示すように、判定領域Ｂ外にプレーヤキャラクタＰが位置している場合に、プレーヤの移動入力情報に基づきプレーヤキャラクタＰを移動させる際の移動ベクトルＶｂであったとする。
【０１０９】
そして、本実施形態では、図８（Ｂ）に示すように、プレーヤキャラクタＰの磁極と磁石オブジェクトＭの磁極が異極同士の組み合わせでプレーヤキャラクタＰの基準点ＰＯと判定領域Ｂの基準点ＢＯとが近い状態にあり（ｘ＜ｘ２＜Ｒ）、かつ、プレーヤの右方向（Ｘ軸プラス方向）の移動入力情報を受け付けている際に、磁極切替入力情報を受け付けると、プレーヤキャラクタＰの磁極と磁石オブジェクトＭの磁極が同極同士の組み合わせになり、プレーヤキャラクタＰを、移動ベクトルＶｂの大きさよりも大きい移動ベクトルＶＰ（Ｖａ＜ＶＰ）に基づいてプレーヤキャラクタを移動させる。
【０１１０】
すなわち、プレーヤキャラクタＰの磁極と磁石オブジェクトＭの磁極とが異極の組み合わせであって基準点ＰＯと基準点ＢＯとが近い状態にあり（ｘ＜ｘ２＜Ｒ）、かつ、右方向への移動入力情報を受け付けている際に磁極切り替え入力情報を受け付けた場合には、移動入力情報に基づく移動ベクトルＶｂの向きを移動ベクトルＶＰの向きとして設定し、移動ベクトルＶｂと磁力による移動ベクトルＶａとを合成したベクトルの大きさを、移動ベクトルＶＰの大きさ（移動量）として設定することによって、移動ベクトルＶＰを求める。このようにすれば、移動ベクトルＶｂよりも大きな移動ベクトルＶＰに基づいてプレーヤキャラクタＰを移動させることができる。
【０１１１】
このように、本実施形態では、プレーヤは、右方向の移動入力情報を入力するとともに磁極を切り替えることによって、大きな移動量でプレーヤキャラクタＰを移動させることができる。このようにすれば、プレーヤキャラクタＰが磁石オブジェクトＭを斥けて高速に移動する様子を表現できる。
【０１１２】
なお、本実施形態では、プレーヤキャラクタＰの磁極と磁石オブジェクトＭの磁極とが異極の組み合わせであって基準点ＰＯと基準点ＢＯとが近い状態にあり（ｘ＜ｘ２＜Ｒ）、かつ、右方向への移動入力情報を受け付けている際に磁極切り替え入力情報を受け付けた場合には、移動入力情報に基づく移動ベクトルＶｂの向きを移動ベクトルＶＰの向きとして設定し、移動ベクトルＶａの大きさを、移動ベクトルＶＰの大きさ（移動量）として設定するようにしてもよい。
【０１１３】
また、本実施形態では、移動ベクトルＶＰに基づいてプレーヤキャラクタＰを移動させている最中は所定速度Ｖを超えて移動させている。かかる場合において、新たにプレーヤキャラクタＰの進行方向への移動入力情報を受け付けた場合には、新たに受け付けた移動入力情報に基づいてプレーヤキャラクタを移動させようとすると、プレーヤキャラクタの移動速度が速くなりすぎてしまう。
【０１１４】
したがって、本実施形態では、移動ベクトルＶＰに基づいてプレーヤキャラクタＰを移動させている最中には、プレーヤキャラクタＰの移動速度が所定速度Ｖを超えている限り、新たにプレーヤキャラクタＰの進行方向への移動入力情報を受け付けないように制御する。ただし、プレーヤキャラクタの進行方向と逆方向への移動入力情報を受け付けた場合には、移動入力情報に基づいて、プレーヤキャラクタの移動速度を減速させるようにする。
【０１１５】
また、本実施形態では、プレーヤキャラクタＰの磁極と、磁石オブジェクトＭの磁極とが異なり基準点ＰＯと基準点ＢＯとの位置が同じ場合において、プレーヤの移動入力情報に基づいてプレーヤキャラクタの基準点ＰＯを仮想的に移動させ、基準点ＰＯを仮想的に移動させた点（以下、「基準点ＰＯ´」という。）と基準点ＢＯとを離間させた状態で磁極切替入力情報を受け付けた場合には、基準点ＢＯから基準点ＰＯ´の向きを、移動ベクトルＶＰの向きとして設定してもよい。かかる場合には、基準点ＰＯ´と基準点ＢＯとの距離ｘ´に基づいて移動ベクトルＶＰの移動量を算出する。
【０１１６】
なお、図８（Ｃ）に示すように、プレーヤキャラクタＰの磁極と磁石オブジェクトＭの磁極が異極同士で、プレーヤキャラクタＰの基準点ＰＯと判定領域Ｂの基準点ＢＯとが接近している（ｘ＜ｘ１＜ｘ２）場合には、プレーヤの移動入力情報に関係なく、ＰＯからＢＯを向く方向に、移動ベクトルＶＰの移動方向を設定し、プレーヤキャラクタＰが磁石オブジェクトＭに接するように移動ベクトルＶＰの移動量を設定して、プレーヤキャラクタＰを移動させる処理（移動制限処理）を行う。なお、引力Ｆ１に基づく移動ベクトルＶａの大きさが、プレーヤの移動入力情報に基づく移動ベクトルＶｂの大きさよりも大きい場合（Ｖａ＞Ｖｂ）には、プレーヤキャラクタＰを移動させる移動入力情報を受け付けた場合には、引力Ｆ１の向き（移動ベクトルＶａ）と逆方向へのプレーヤキャラクタＰの移動が制限される。
【０１１７】
なお、本実施形態では、ゲーム空間における重力、摩擦力、空気抵抗などの他の力を加味して、移動体を移動させるようにしてもよい。例えば、移動ベクトルＶＰに、ゲーム空間における重力、摩擦力、空気抵抗などの力を加味させるようにしてもよい。
【０１１８】
（４）磁力無効時間の設定
本実施形態では、図９に示すように、オブジェクト空間にＳ極の磁石オブジェクトＭと、Ｎ極の磁石オブジェクトとを交互に配置している場合には、プレーヤが磁極切替入力を連続的に行うことにより、プレーヤキャラクタＰを連続して高速に移動させることができる。
【０１１９】
ここで、本実施形態では、プレーヤキャラクタＰの磁力Ｆ（引力Ｆ１・斥力Ｆ２）を、一定時間無効化することによって、プレーヤキャラクタＰを滑らかに移動させている。例えば、磁極切替直後の所定期間（例えば、１０フレーム）については、プレーヤキャラクタＰが磁石オブジェクトＭの磁力Ｆ（引力Ｆ１・斥力Ｆ２）を無効にし、磁力Ｆに基づく移動処理を行わないようにしている。このようにすれば、プレーヤの磁極切替入力がタイミングよく行われている場合には、プレーヤキャラクタＰの移動が滑らかになる。
【０１２０】
具体的に説明すると、図９に示すように、Ｔ１時点で、操作入力が右方向かつプレーヤキャラクタＰの磁極が磁石オブジェクトＭ１と同一の磁極に切り替えられて、右方向に高速に移動する場合には、所定期間Ｔの間、プレーヤキャラクタＰを、磁石オブジェクトＭ１の斥力Ｆ２に伴う移動ベクトルＶａを加算して移動させないようにする。つまり、Ｔ１時点で決められた斥力Ｆ２に伴う移動ベクトルＶａでプレーヤキャラクタＰを移動させるようにし、例えば、Ｑ１に位置するプレーヤキャラクタＰが判定領域Ｂ内において更に斥力Ｆ２の影響を受けないように移動処理を行う。そして、所定期間Ｔを経過するとプレーヤキャラクタＰの磁力Ｆが有効化され、プレーヤキャラクタＰが磁石オブジェクトＭ２の判定領域Ｂ内に入ると、磁石オブジェクトＭ２の引力Ｆ１に伴う移動ベクトルＶａを加算して、プレーヤキャラクタＰを移動させる。
【０１２１】
同様に、プレーヤキャラクタが磁石オブジェクトＭ２、Ｍ３の斥力Ｆ２を利用して移動させる場合にも、プレーヤキャラクタＰの磁極を切り替えたタイミングＴ２、Ｔ３時点から所定期間Ｔの間、プレーヤキャラクタＰを、磁石オブジェクトＭ２、Ｍ３の斥力Ｆ２に伴う移動ベクトルＶａを加算させずに移動させる。つまり、Ｔ２、Ｔ３時点で決められた斥力Ｆ２に伴う移動ベクトルＶａに基づいて、プレーヤキャラクタＰを移動させる。このようにすれば、累積的に加算されて移動量が過大となることを防止しつつ、プレーヤがタイミングよく磁極切替の入力を行った場合にプレーヤキャラクタＰを滑らかに移動させる様子を表現することができる。
【０１２２】
（５）磁力に基づいて磁石オブジェクトを移動させる手法
本実施形態では、弾磁石オブジェクトＭ´も、磁力Ｆに基づいて移動させる処理を行っている。
【０１２３】
例えば、図１０（Ａ）に示すように、弾磁石オブジェクトＭ´の判定領域ＢにプレーヤキャラクタＰが位置していない場合には、弾磁石オブジェクトＭ´は予め決められた所定の移動ベクトルＶＭ１で移動させる処理を行っている。
【０１２４】
そして、図１０（Ｂ）に示すように、弾磁石オブジェクトＭ´の判定領域ＢにプレーヤキャラクタＰが位置した場合であって、プレーヤキャラクタＰと弾磁石オブジェクトＭ´とが異極同士の場合には、プレーヤキャラクタＰだけでなく、弾磁石オブジェクトＭ´も引力Ｆ１´によって、移動させる処理を行う。例えば、弾磁石オブジェクトＭ´の位置に対応付けて設定された基準点ＢＯから、プレーヤキャラクタＰの基準点ＰＯへ向く移動ベクトルＶＭ２に基づいて、弾磁石オブジェクトＭ´を移動させる処理を行う。
【０１２５】
そして、プレーヤの磁極切替入力情報に基づき、図１０（Ｃ）に示すように、弾磁石オブジェクトＭ´の判定領域ＢにプレーヤキャラクタＰが位置した場合であって、プレーヤキャラクタＰと弾磁石オブジェクトＭ´とが同極同士になると、プレーヤキャラクタＰだけでなく、弾磁石オブジェクトＭ´も斥力Ｆ２´によって移動させる処理を行う。例えば、ＢＯからＰＯを向きとは反対方向を向く移動ベクトルＶＭ３によって、弾磁石オブジェクトＭ´を移動させる処理を行う。
【０１２６】
なお、本実施形態では、移動ベクトルＶＭ２、ＶＭ３の大きさはＶＭ１の大きさと同じに設定し、移動ベクトルＶＭ２、ＶＭ３の向きを制御しているが、移動ベクトルＶＭ１とＶＭ２とを合成した移動ベクトルに基づいて、或いは、移動ベクトルＶＭ１とＶＭ３とを合成した移動ベクトルに基づいて、弾磁石オブジェクトＭ´を移動させてもよい。また、プレーヤキャラクタＰと弾磁石オブジェクトＭ´とが異極同士でヒットした場合に、プレーヤキャラクタＰがダメージを受けるようにゲーム演算を行ってもよい。
【０１２７】
３．フローチャート
本実施形態の磁力Ｆに基づく移動処理の流れについて、図１１を用いて説明する。なお、図１１のステップで示す、ｘ１、ｘ２、Ｒは、図１２に示すように、０≦ｘ１＜ｘ２＜Ｒの関係を有するものである。また、ｘは、プレーヤキャラクタＰの基準点ＰＯと判定領域Ｂの基準点ＢＯとの距離を示す。
【０１２８】
まず、フレーム更新が到来したか否かを判断する（ステップＳ１）。フレーム更新であると判断すると（ステップＳ１のＹ）、プレーヤキャラクタＰの磁力Ｆに基づく移動処理が有効に設定されているか否かを判断する（ステップＳ２）。プレーヤキャラクタＰの磁力Ｆに基づく移動処理が有効に設定されている場合には（ステップＳ２のＹ）、ｘ＜Ｒであるか否かを判断する。そして、ｘ＜Ｒであると判断される場合には、さらにｘ＜ｘ２であるか否かを判断する（ステップＳ４）。
【０１２９】
一方、プレーヤキャラクタＰの磁力Ｆに基づく移動処理が無効に設定されている場合（ステップＳ２のＮ）、ｘ＜Ｒでない場合（ステップＳ３のＮ）には、処理を終了する。
【０１３０】
そして、ｘ＜ｘ２であると判断されると（ステップＳ４のＹ）、プレーヤキャラクタＰと磁石オブジェクトＭが同極か否かを判断する（ステップＳ５）。
【０１３１】
プレーヤキャラクタＰと磁石オブジェクトＭとが同極であると判断されると（ステップＳ５のＹ）、直前に（直前のフレームにおいて）プレーヤキャラクタＰの磁極が切り替えられたか否かを判断する（ステップＳ６）、
そして、直前にプレーヤキャラクタの磁極が切り替えられた場合には（ステップＳ６のＹ）、磁極切替に伴う移動処理（ステップＳ７）を行う。例えば、斥力Ｆ２に伴う移動ベクトルＶａと移動入力情報に対応する移動ベクトルＶｂとを合成した移動ベクトルＶＰに基づいて、プレーヤキャラクタを移動させる処理を行う。
【０１３２】
そして、所定期間（例えば３０フレーム）プレーヤキャラクタＰの磁力Ｆに基づく移動処理を無効に設定する（ステップＳ８）。一方、直前にプレーヤキャラクタの磁極が切り替えられていない場合には（ステップＳ６のＮ）、斥力Ｆ２を働かせてプレーヤキャラクタを移動させる処理を行う（ステップＳ９）。
【０１３３】
プレーヤキャラクタＰと磁石オブジェクトＭとが同極でないと判断されると（ステップＳ５のＮ）、ｘ＜ｘ１か否かを判断する処理を行う（ステップＳ１０）。ｘ＜ｘ１であると判断されると（ステップＳ１０のＹ）、プレーヤキャラクタＰの移動制限処理を行う（ステップＳ１１）。例えば、プレーヤの移動入力情報に関係なく、プレーヤキャラクタの基準点ＰＯから判定領域Ｂの基準点ＢＯを向く磁力Ｆの方向に応じて移動ベクトルＶａと求め、移動ベクトルＶａに基づきプレーヤキャラクタＰの移動ベクトルＶＰの移動方向を設定し、プレーヤキャラクタＰが磁石オブジェクトＭに接するように移動ベクトルＶＰの移動量を設定して、プレーヤキャラクタＰを移動させる処理を行う。一方、ｘ＜ｘ１でない場合には（ステップＳ１０のＮ）、引力Ｆ１を働かせて、プレーヤキャラクタを移動させる処理を行う。
【０１３４】
そして、ｘ＜ｘ２でないと判定された場合（ステップＳ４のＮ）には、プレーヤキャラクタＰと磁石オブジェクトとが同極であるか否かを判断する（ステップＳ１３）。プレーヤキャラクタＰと磁石オブジェクトとが同極であると判断されると（ステップＳ１３のＹ）、斥力Ｆ２を働かせて、プレーヤキャラクタを移動させる処理を行う（ステップＳ１４）。一方、プレーヤキャラクタＰと磁石オブジェクトとが異極であると判断されると（ステップＳ１３のＮ）、引力Ｆ１を働かせて、プレーヤキャラクタを移動させる処理を行う（ステップＳ１４）。以上で処理が終了する。
【０１３５】
４．応用例
（１）磁力に基づいて、磁石オブジェクトＭを移動させる処理の応用例
本実施形態では、プレーヤキャラクタＰを磁力Ｆに基づいて移動させずに、磁石オブジェクトＭを磁力Ｆに基づいて移動させるようにしてもよい。例えば、図１３（Ａ）に示すように、プレーヤキャラクタＰの磁極がＮ極であり、磁石オブジェクトＭの磁極がＳ極である場合には、プレーヤキャラクタＰを移動させずに、磁石オブジェクトＭを磁力Ｆ（引力Ｆ１）に伴う移動ベクトルＶａに基づき移動させる処理を行う。そして、プレーヤの磁極切替入力情報を受け付けた場合には、プレーヤキャラクタＰの磁極をＮ極からＳ極に切り替え、図１３（Ｂ）に示すように、プレーヤキャラクタＰを移動させずに、磁石オブジェクトＭを斥力Ｆ２に伴う移動ベクトルＶａに基づき移動させる処理を行う。
【０１３６】
例えば、図１３（Ｂ）に示すように、プレーヤキャラクタＰが、磁石オブジェクトＭを引き寄せて、プレーヤキャラクタＰの磁極を切り替えることによって、磁石オブジェクトＭを反発させる。かかる場合には、磁石オブジェクトＭが敵キャラクタＥにヒットすると、敵キャラクタＥにダメージを与えるようにゲーム演算を行うようにしてもよい。
【０１３７】
（２）磁石オブジェクトＭの磁極を切り替える手法
本実施形態では、プレーヤキャラクタＰではなく、オブジェクト空間において設定された磁石オブジェクトＭの磁極を切り替えるゲームに応用してもよい。例えば、図１４に示すように、予めＮ極が設定されたプレーヤキャラクタＰと、予めＳ極が設定された敵キャラクタＥとが存在するオブジェクト空間において、プレーヤキャラクタＰを敵キャラクタＥに接触しないようにしながら、プレーヤキャラクタＰをプレーヤの移動入力情報によらずに磁石オブジェクトＭの磁力Ｆに伴う移動ベクトルＶａに基づいてスタート地点からゴール地点に移動させる処理を行う。
【０１３８】
かかる場合には、複数の磁石オブジェクトＭそれぞれに対して、プレーヤからの磁極切替入力情報を受け付けて、磁石オブジェクトＭの磁極を切り替える処理を行う。このようにすれば、プレーヤは、磁石オブジェクトＭの磁力Ｆを利用してプレーヤキャラクタＰを間接的に移動させることができるので、より面白味をもってゲームをプレイすることができる。
【０１３９】
（３）判定領域の変化
本実施形態では、判定領域Ｂを基準点ＢＯを中心とする半径Ｒの円として設定しているが、判定領域Ｂの大きさ、形状を、変化させるようにしてもよい。例えば、３秒周期で、判定領域Ｂの半径をｘ１、ｘ２、Ｒ（０≦ｘ１＜ｘ２＜Ｒ）の大きさに変化させるようにしてもよい。また、判定領域Ｂは円形ではなく、多角形、矩形とするようにしてもよい。また、判定領域Ｂは、プレーヤの入力情報に基づいて設定してもよい。
【０１４０】
（４）同時に複数の磁極を持つオブジェクト
本実施形態では、プレーヤキャラクタＰが同時に複数の磁極を有するようにしてもよい。
【０１４１】
例えば、図１５（Ａ）（Ｂ）に示すように、プレーヤキャラクタＰの上半身をＳ極（或いはＮ極）、プレーヤキャラクタＰの下半身をＮ極（或いはＳ極）に設定したオブジェクトのように、２種類の磁極を有するオブジェクトにする。そして、例えば、プレーヤの磁極切替入力情報に基づいて、図１５（Ａ）に示すように、プレーヤキャラクタＰの上半身をＳ極、下半身をＮ極から、図１５（Ｂ）に示すように、プレーヤキャラクタＰの上半身をＮ極、下半身をＳ極に、に切り替える処理を行う。
【０１４２】
このようにすれば、例えば、天井のＳ極の磁石オブジェクトに向けてプレーヤキャラクタＰを移動させたい場合には、プレーヤキャラクタＰの上半身がＮ極になるように磁極を切り替える操作を行い、逆に、床に設置されているＳ極の磁石オブジェクトに向けてプレーヤキャラクタＰを移動させたい場合には、プレーヤキャラクタＰの下半身がＮ極になるように磁極を切り替える入力を行うことができ、磁力Ｆに基づく移動ベクトルＶａに基づき細かな移動制御が可能になる。
【０１４３】
また、図１５（Ｃ）、（Ｄ）に示すように、プレーヤキャラクタＰの右手部位、左手部位に異なる磁極を設定し、プレーヤの磁極切替入力情報に基づいて、各部位の磁極を切り替える処理を行ってもよい。例えば、プレーヤの磁極切替入力情報に基づいて、図１５（Ｃ）に示す、プレーヤキャラクタＰの右手部位ＲＨをＮ極、左手部位ＬＨをＳ極から、図１５（Ｄ）に示す、プレーヤキャラクタＰの右手部位ＲＨをＳ極、左手部位ＬＨをＮ極に切り替える処理を行う。
【０１４４】
（５）マルチプレーヤゲーム
本実施形態では、複数のプレーヤそれぞれの操作対象のプレーヤキャラクタを共通のオブジェクト空間に配置させるようにしてもよい。例えば、各プレーヤキャラクタ間において発生する磁極との組み合わせによって、各プレーヤキャラクタの磁力Ｆに伴う移動ベクトルＶａを求めて、プレーヤキャラクタそれぞれを、移動ベクトルＶａを反映させたプレーヤの移動ベクトルＶＰを求め、移動ベクトルＶＰに基づき移動処理を行うようにしてもよい。
【０１４５】
（６）磁極の切り替え
本実施形態の磁石オブジェクトＭの磁極は予め決められた磁極で設定されているが、コンピュータプログラムに基づき、磁極を自動的に切り替えるようにしてもよい。例えば、所定間隔（例えば、１０秒間隔）で、磁極を、Ｓ極、Ｎ極、Ｓ極、Ｎ極・・・と交互に切り替えるようにしてもよい。また、所与のイベントが発生したときに、磁極を切り替えるようにしてもよい。
【０１４６】
また、本実施形態では、プレーヤキャラクタの磁極についても、自動的に磁極を切り替えるようにしてもよい。例えば、所定間隔（例えば、１０秒間隔）で、磁極を、Ｓ極、Ｎ極、Ｓ極、Ｎ極・・・と交互に切り替えるようにしてもよい。また、所与のイベントが発生したときに、磁極を切り替えるようにしてもよい。
【０１４７】
また、本実施形態では、プレーヤキャラクタが敵キャラクタにヒットされた場合など、所与のイベントが発生した場合に、一定期間（例えば、５秒間）プレーヤの磁極切替入力情報を受け付けないように設定してもよい。
【符号の説明】
【０１４８】
Ｐ  プレーヤキャラクタ、Ｍ  磁石オブジェクト、Ｍ´  弾磁石オブジェクト、
１００  処理部、１１０  受け付け部、１１１  オブジェクト空間設定部、
１１２  移動・動作処理部、１１２ａ  移動処理部、１１３  第１の属性設定部、
１１４  第２の属性設定部、１１５  判定領域処理部、１１６  ゲーム演算部、
１２０  描画部、１３０  音生成部、
１６０  入力部、１７０  記憶部、１７２  主記憶部、１７４  描画バッファ、
１７６  オブジェクトデータ記憶部、１７８  テクスチャ記憶部、
１７９  ｚバッファ、１８０  情報記憶媒体、
１９０  表示部、１９２  音出力部、１９６  通信部
【図１】
2010233936.tif 000003
【図２】
2010233936.tif 000004
【図３】
2010233936.tif 000005
【図４】
2010233936.tif 000006
【図５】
2010233936.tif 000007
【図６】
2010233936.tif 000008
【図７】
2010233936.tif 000009
【図８】
2010233936.tif 000010
【図９】
2010233936.tif 000011
【図１０】
2010233936.tif 000012
【図１１】
2010233936.tif 000013
【図１２】
2010233936.tif 000014
【図１３】
2010233936.tif 000015
【図１４】
2010233936.tif 000016
【図１５】
2010233936.tif 000017