(57)【要約】【課題】移動目標位置をキャンセルせずに、移動体キャラクタが移動方向を変える際の動作が不自然にならないように図ることが可能になるゲーム装置を提供すること。【解決手段】ゲーム装置は、移動体キャラクタ（ユーザオブジェクト５８ａ）の現在位置と第１移動目標位置（位置６２）とを結ぶ直線９０と、所定領域の境界線（タッチライン５３ｂ）と、の交点９２を取得する。ゲーム装置は、第１移動目標位置と第２移動目標位置（位置６４）とを結ぶ直線９４と、所定領域の境界線と、の交点９６を取得する。ゲーム装置は、交点９２からの距離が第１基準距離以下となる領域に移動体キャラクタが到達した場合、交点９２から交点９６への方向と平行に移動体キャラクタを移動させる。ゲーム装置は、交点９６からの距離が第２基準距離以下となる領域に移動体キャラクタが到達した場合、移動体キャラクタを第２移動目標位置に向けて移動させる。【選択図】図１４
2008220671.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによって指示された移動目標位置に向けて移動体キャラクタが移動するゲームを実行するゲーム装置であって、
前記移動体キャラクタが所定領域内に位置する場合において、前記移動体キャラクタの第１移動目標位置として前記所定領域外の位置が指示されたか否かを判定する第１判定手段と、
前記移動体キャラクタが前記所定領域内に位置する場合において、前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定手段によって判定された後、前記移動体キャラクタの第２移動目標位置として前記所定領域内の位置が指示されたか否かを判定する第２判定手段と、
前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定手段によって判定された場合、前記移動体キャラクタの現在位置と、前記第１移動目標位置と、を結ぶ直線と、前記所定領域の境界線と、の第１交点を取得する第１交点取得手段と、
前記第２移動目標位置として前記所定領域内の位置が指示されたと前記第２判定手段によって判定された場合、前記第１移動目標位置と、前記第２移動目標位置と、を結ぶ直線と、前記所定領域の境界線と、の第２交点を取得する第２交点取得手段と、
前記第１交点と、前記第２交点と、に基づいて、前記移動体キャラクタの移動制御を実行する移動制御手段と、
を含み、
前記移動制御手段は、
前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定手段によって判定された場合、前記移動体キャラクタを前記第１移動目標位置に向けて移動させる手段と、
前記第１交点からの距離が第１基準距離以下となる領域に前記移動体キャラクタが到達したか否かを判定する手段と、
前記第１交点からの距離が前記第１基準距離以下となる領域に前記移動体キャラクタが到達したと判定された場合、前記第１交点から前記第２交点への方向と平行に前記移動体キャラクタを移動させる手段と、
前記第２交点からの距離が第２基準距離以下となる領域に前記移動体キャラクタが到達したか否かを判定する手段と、
前記第２交点からの距離が前記第２基準距離以下となる領域に前記移動体キャラクタが到達したと判定された場合、前記移動体キャラクタを前記第２移動目標位置に向けて移動させる手段と、を含む、
ことを特徴とするゲーム装置。
【請求項２】
請求項１に記載のゲーム装置において、
前記移動制御手段は、
前記移動体キャラクタの移動態様に関する移動態様条件と、基準距離と、対応づけてなる基準距離情報を記憶する基準距離情報記憶手段と、
前記移動体キャラクタが前記第１移動目標位置に向けて移動する際の移動態様が満足する前記移動態様条件に対応づけられた前記基準距離を前記第１基準距離として決定する手段と、を含む、
ことを特徴とするゲーム装置。
【請求項３】
ユーザによって指示された移動目標位置に向けて移動体キャラクタが移動するゲームを実行するゲーム装置の制御方法であって、
前記移動体キャラクタが所定領域内に位置する場合において、前記移動体キャラクタの第１移動目標位置として前記所定領域外の位置が指示されたか否かを判定するための第１判定ステップと、
前記移動体キャラクタが前記所定領域内に位置する場合において、前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定ステップにおいて判定された後、前記移動体キャラクタの第２移動目標位置として前記所定領域内の位置が指示されたか否かを判定するための第２判定ステップと、
前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定ステップにおいて判定された場合、前記移動体キャラクタの現在位置と、前記第１移動目標位置と、を結ぶ直線と、前記所定領域の境界線と、の第１交点を取得するための第１交点取得ステップと、
前記第２移動目標位置として前記所定領域内の位置が指示されたと前記第２判定ステップにおいて判定された場合、前記第１移動目標位置と、前記第２移動目標位置と、を結ぶ直線と、前記所定領域の境界線と、の第２交点を取得するための第２交点取得ステップと、
前記第１交点と、前記第２交点と、に基づいて、前記移動体キャラクタの移動制御を実行するための移動制御ステップと、
を含み、
前記移動制御ステップは、
前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定ステップによって判定された場合、前記移動体キャラクタを前記第１移動目標位置に向けて移動させるためのステップと、
前記第１交点からの距離が第１基準距離以下となる領域に前記移動体キャラクタが到達したか否かを判定するためのステップと、
前記第１交点からの距離が前記第１基準距離以下となる領域に前記移動体キャラクタが到達したと判定された場合、前記第１交点から前記第２交点への方向と平行に前記移動体キャラクタを移動させるためのステップと、
前記第２交点からの距離が第２基準距離以下となる領域に前記移動体キャラクタが到達したか否かを判定するためのステップと、
前記第２交点からの距離が前記第２基準距離以下となる領域に前記移動体キャラクタが到達したと判定された場合、前記移動体キャラクタを前記第２移動目標位置に向けて移動させるためのステップと、を含む、
ことを特徴とするゲーム装置の制御方法。
【請求項４】
ユーザによって指示された移動目標位置に向けて移動体キャラクタが移動するゲームを実行するゲーム装置としてコンピュータを機能させるためのプログラムであって、
前記移動体キャラクタが所定領域内に位置する場合において、前記移動体キャラクタの第１移動目標位置として前記所定領域外の位置が指示されたか否かを判定する第１判定手段、
前記移動体キャラクタが前記所定領域内に位置する場合において、前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定手段によって判定された後、前記移動体キャラクタの第２移動目標位置として前記所定領域内の位置が指示されたか否かを判定する第２判定手段、
前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定手段によって判定された場合、前記移動体キャラクタの現在位置と、前記第１移動目標位置と、を結ぶ直線と、前記所定領域の境界線と、の第１交点を取得する第１交点取得手段、
前記第２移動目標位置として前記所定領域内の位置が指示されたと前記第２判定手段によって判定された場合、前記第１移動目標位置と、前記第２移動目標位置と、を結ぶ直線と、前記所定領域の境界線と、の第２交点を取得する第２交点取得手段、及び、
前記第１交点と、前記第２交点と、に基づいて、前記移動体キャラクタの移動制御を実行する移動制御手段、
として前記コンピュータを機能させ、
前記移動制御手段は、
前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定手段によって判定された場合、前記移動体キャラクタを前記第１移動目標位置に向けて移動させる手段と、
前記第１交点からの距離が第１基準距離以下となる領域に前記移動体キャラクタが到達したか否かを判定する手段と、
前記第１交点からの距離が前記第１基準距離以下となる領域に前記移動体キャラクタが到達したと判定された場合、前記第１交点から前記第２交点への方向と平行に前記移動体キャラクタを移動させる手段と、
前記第２交点からの距離が第２基準距離以下となる領域に前記移動体キャラクタが到達したか否かを判定する手段と、
前記第２交点からの距離が前記第２基準距離以下となる領域に前記移動体キャラクタが到達したと判定された場合、前記移動体キャラクタを前記第２移動目標位置に向けて移動させる手段と、を含む、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はゲーム装置、ゲーム装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
ユーザの操作に応じたスクリーン座標値（スクリーン座標系における座標値）を取得し、該スクリーン座標値に基づいてゲームを進行するゲーム装置が知られている。例えばマウス、タッチパネル、特許文献１に記載される情報入力装置等のポインティングデバイスを用いて入力されるスクリーン座標値に基づいてゲームを進行するゲーム装置がある。
【特許文献１】特許３２６２６７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記のゲーム装置では、例えば、ユーザがポインティングデバイスを用いてゲーム画面内を指し示すことによって、移動体キャラクタの移動目標位置を指示するようなゲームを実現することが可能になる。例えば、ユーザがポインティングデバイスを用いてゲーム画面内を指し示すことによって、選手オブジェクトの移動目標位置を指示するようなサッカーゲームを実現することが可能になる。
【０００４】
上記のサッカーゲームでは、ユーザが、操作対象の選手オブジェクト（ここでは、ユーザオブジェクトと呼ぶ。）の移動目標位置をピッチ外に設定してしまう場合が想定される。なお、ピッチとはゴールラインとタッチラインとに囲まれた領域である。図１８は、ユーザオブジェクトの移動目標位置の例を示す図である。例えば、ピッチ５２ａ内でドリブルをしているユーザオブジェクト５８ａに対して、図１８に示すようなピッチ５２ａ外の位置６２が移動目標位置として誤って設定された場合に、ユーザオブジェクト５８ａが該移動目標位置（位置６２）まで移動してしまうと、対戦相手チームのスローインになってしまうため望ましくない。
【０００５】
このような不都合を防ぐ方法としては、上記のサッカーゲームでは、誤って設定されたピッチ５２ａ外の移動目標位置をキャンセルすることが考えられる。しかしながら、ユーザオブジェクトが移動している最中に移動目標位置をキャンセルすると、ユーザオブジェクトの動きが不自然になってしまう場合がある。また、ユーザオブジェクトの移動中に移動目標位置をキャンセルすると、ユーザオブジェクトが思わぬ方向に移動してしまう場合もあるため好ましくない。
【０００６】
一方、移動目標位置をキャンセルしない方法としては、ピッチ５２ａ外に設定された移動目標位置（ここでは第１移動目標位置とする。）に向けてユーザオブジェクト５８ａが移動している間に、ユーザが、例えば図１８に示すようなピッチ５２ａ内の位置６４を新たに移動目標位置（ここでは第２移動目標位置とする。）として設定した場合には、ユーザオブジェクト５８ａがピッチ５２ａ外に出ないように制御することが考えられる。このような制御の態様としては、例えば図１９に示すような経路６６をユーザオブジェクト５８ａが移動するように、ユーザオブジェクト５８ａの移動制御を行う態様が考えられる。すなわち、第１移動目標位置（位置６２）に向けて移動するユーザオブジェクト５８ａがゴールライン５３ａ又はタッチライン５３ｂ際まで移動したら、その時点においてユーザオブジェクト５８ａが第２移動目標位置（位置６４）に向けての移動を開始するように、ユーザオブジェクト５８ａの移動制御を行う態様が考えられる。
【０００７】
しかしながら、上記のような態様を採用すると、ユーザオブジェクト５８ａが第１移動目標位置（位置６２）に向けて移動する際の移動方向と、ユーザオブジェクト５８ａが第２移動目標位置（位置６４）に向けて移動する際の移動方向と、の間の角度θが比較的大きくなってしまう場合がある。その結果、ユーザオブジェクト５８ａが移動方向を変える際の動作が不自然になってしまう場合がある。
【０００８】
本発明は上記課題に鑑みてなされたものであって、その目的は、移動目標位置をキャンセルせずに、移動体キャラクタが移動方向を変える際の動作が不自然にならないように図ることが可能になるゲーム装置、ゲーム装置の制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明に係るゲーム装置は、ユーザによって指示された移動目標位置に向けて移動体キャラクタが移動するゲームを実行するゲーム装置であって、前記移動体キャラクタが所定領域内に位置する場合において、前記移動体キャラクタの第１移動目標位置として前記所定領域外の位置が指示されたか否かを判定する第１判定手段と、前記移動体キャラクタが前記所定領域内に位置する場合において、前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定手段によって判定された後、前記移動体キャラクタの第２移動目標位置として前記所定領域内の位置が指示されたか否かを判定する第２判定手段と、前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定手段によって判定された場合、前記移動体キャラクタの現在位置と、前記第１移動目標位置と、を結ぶ直線と、前記所定領域の境界線と、の第１交点を取得する第１交点取得手段と、前記第２移動目標位置として前記所定領域内の位置が指示されたと前記第２判定手段によって判定された場合、前記第１移動目標位置と、前記第２移動目標位置と、を結ぶ直線と、前記所定領域の境界線と、の第２交点を取得する第２交点取得手段と、前記第１交点と、前記第２交点と、に基づいて、前記移動体キャラクタの移動制御を実行する移動制御手段と、を含み、前記移動制御手段は、前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定手段によって判定された場合、前記移動体キャラクタを前記第１移動目標位置に向けて移動させる手段と、前記第１交点からの距離が第１基準距離以下となる領域に前記移動体キャラクタが到達したか否かを判定する手段と、前記第１交点からの距離が前記第１基準距離以下となる領域に前記移動体キャラクタが到達したと判定された場合、前記第１交点から前記第２交点への方向と平行に前記移動体キャラクタを移動させる手段と、前記第２交点からの距離が第２基準距離以下となる領域に前記移動体キャラクタが到達したか否かを判定する手段と、前記第２交点からの距離が前記第２基準距離以下となる領域に前記移動体キャラクタが到達したと判定された場合、前記移動体キャラクタを前記第２移動目標位置に向けて移動させる手段と、を含むことを特徴とする。
【００１０】
また、本発明に係るゲーム装置の制御方法は、ユーザによって指示された移動目標位置に向けて移動体キャラクタが移動するゲームを実行するゲーム装置の制御方法であって、前記移動体キャラクタが所定領域内に位置する場合において、前記移動体キャラクタの第１移動目標位置として前記所定領域外の位置が指示されたか否かを判定するための第１判定ステップと、前記移動体キャラクタが前記所定領域内に位置する場合において、前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定ステップにおいて判定された後、前記移動体キャラクタの第２移動目標位置として前記所定領域内の位置が指示されたか否かを判定するための第２判定ステップと、前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定ステップにおいて判定された場合、前記移動体キャラクタの現在位置と、前記第１移動目標位置と、を結ぶ直線と、前記所定領域の境界線と、の第１交点を取得するための第１交点取得ステップと、前記第２移動目標位置として前記所定領域内の位置が指示されたと前記第２判定ステップにおいて判定された場合、前記第１移動目標位置と、前記第２移動目標位置と、を結ぶ直線と、前記所定領域の境界線と、の第２交点を取得するための第２交点取得ステップと、前記第１交点と、前記第２交点と、に基づいて、前記移動体キャラクタの移動制御を実行するための移動制御ステップと、を含み、前記移動制御ステップは、前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定ステップによって判定された場合、前記移動体キャラクタを前記第１移動目標位置に向けて移動させるためのステップと、前記第１交点からの距離が第１基準距離以下となる領域に前記移動体キャラクタが到達したか否かを判定するためのステップと、前記第１交点からの距離が前記第１基準距離以下となる領域に前記移動体キャラクタが到達したと判定された場合、前記第１交点から前記第２交点への方向と平行に前記移動体キャラクタを移動させるためのステップと、前記第２交点からの距離が第２基準距離以下となる領域に前記移動体キャラクタが到達したか否かを判定するためのステップと、前記第２交点からの距離が前記第２基準距離以下となる領域に前記移動体キャラクタが到達したと判定された場合、前記移動体キャラクタを前記第２移動目標位置に向けて移動させるためのステップと、を含むことを特徴とする。
【００１１】
また、本発明に係るプログラムは、ユーザによって指示された移動目標位置に向けて移動体キャラクタが移動するゲームを実行するゲーム装置として、家庭用ゲーム機、携帯用ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末（ＰＤＡ）やパーソナルコンピュータなどのコンピュータを機能させるためのプログラムであって、前記移動体キャラクタが所定領域内に位置する場合において、前記移動体キャラクタの第１移動目標位置として前記所定領域外の位置が指示されたか否かを判定する第１判定手段、前記移動体キャラクタが前記所定領域内に位置する場合において、前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定手段によって判定された後、前記移動体キャラクタの第２移動目標位置として前記所定領域内の位置が指示されたか否かを判定する第２判定手段、前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定手段によって判定された場合、前記移動体キャラクタの現在位置と、前記第１移動目標位置と、を結ぶ直線と、前記所定領域の境界線と、の第１交点を取得する第１交点取得手段、前記第２移動目標位置として前記所定領域内の位置が指示されたと前記第２判定手段によって判定された場合、前記第１移動目標位置と、前記第２移動目標位置と、を結ぶ直線と、前記所定領域の境界線と、の第２交点を取得する第２交点取得手段、及び、前記第１交点と、前記第２交点と、に基づいて、前記移動体キャラクタの移動制御を実行する移動制御手段、として前記コンピュータを機能させ、前記移動制御手段は、前記第１移動目標位置として前記所定領域外の位置が指示されたと前記第１判定手段によって判定された場合、前記移動体キャラクタを前記第１移動目標位置に向けて移動させる手段と、前記第１交点からの距離が第１基準距離以下となる領域に前記移動体キャラクタが到達したか否かを判定する手段と、前記第１交点からの距離が前記第１基準距離以下となる領域に前記移動体キャラクタが到達したと判定された場合、前記第１交点から前記第２交点への方向と平行に前記移動体キャラクタを移動させる手段と、前記第２交点からの距離が第２基準距離以下となる領域に前記移動体キャラクタが到達したか否かを判定する手段と、前記第２交点からの距離が前記第２基準距離以下となる領域に前記移動体キャラクタが到達したと判定された場合、前記移動体キャラクタを前記第２移動目標位置に向けて移動させる手段と、を含むことを特徴とするプログラムである。
【００１２】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。また、本発明に係るプログラム配信装置は、上記プログラムを記録した情報記憶媒体を備え、当該情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信装置である。また、本発明に係るプログラム配信方法は、上記プログラムを記録した情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信方法である。
【００１３】
本発明では、ユーザによって指示された移動目標位置に向けて移動体キャラクタが移動するゲームが実行される。本発明では、移動体キャラクタが所定領域内に位置する場合において、移動体キャラクタの第１移動目標位置として上記所定領域外の位置が指示されたか否かが判定される。また、移動体キャラクタが上記所定領域内に位置する場合において、第１移動目標位置として上記所定領域外の位置が指示されたと判定された後、移動体キャラクタの第２移動目標位置として上記所定領域内の位置が指示されたか否かが判定される。第１移動目標位置として上記所定領域外の位置が指示されたと判定された場合、移動体キャラクタの現在位置と第１移動目標位置とを結ぶ直線と、上記所定領域の境界線と、の第１交点が取得される。第２移動目標位置として上記所定領域内の位置が指示されたと判定された場合、第１移動目標位置と第２移動目標位置とを結ぶ直線と、上記所定領域の境界線と、の第２交点が取得される。そして、第１交点と第２交点とに基づいて、移動体キャラクタの移動制御が実行される。具体的には、第１移動目標位置として所定領域外の位置が指示されたと前記第１判定手段によって判定された場合、移動体キャラクタを第１移動目標位置に向けて移動させる。その後、第１交点からの距離が第１基準距離以下となる領域に移動体キャラクタが到達したか否かが判定される。第１交点からの距離が第１基準距離以下となる領域に移動体キャラクタが到達したと判定された場合、第１交点から第２交点への方向と平行に移動体キャラクタを移動させる。その後、第２交点からの距離が第２基準距離以下となる領域に移動体キャラクタが到達したか否かが判定される。第２交点からの距離が第２基準距離以下となる領域に移動体キャラクタが到達したと判定された場合、移動体キャラクタを第２移動目標位置に向けて移動させる。本発明によれば、移動目標位置をキャンセルせずに、移動体キャラクタが移動方向を変える際の動作が不自然にならないように図ることが可能になる。
【００１４】
また本発明の一態様では、前記移動制御手段は、前記移動体キャラクタの移動態様に関する移動態様条件と、基準距離と、対応づけてなる基準距離情報を記憶する基準距離情報記憶手段と、前記移動体キャラクタが前記第１移動目標位置に向けて移動する際の移動態様が満足する前記移動態様条件に対応づけられた前記基準距離を前記第１基準距離として決定する手段と、を含むようにしてもよい。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態の例について図面に基づき詳細に説明する。本発明の実施形態に係るゲーム装置は、例えば家庭用ゲーム機、携帯用ゲーム機、携帯電話機、携帯情報端末（ＰＤＡ）又はパーソナルコンピュータ等によって実現される。ここでは、本発明の実施形態に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
【００１６】
図１は、本発明の実施形態に係るゲーム装置の構成を示す図である。図１に示すゲーム装置１０は、家庭用ゲーム機１１、光ディスク２５、メモリカード２８、モニタ１８及びスピーカ２２を含んで構成される。光ディスク２５及びメモリカード２８は情報記憶媒体である。光ディスク２５及びメモリカード２８は家庭用ゲーム機１１に装着される。モニタ１８及びスピーカ２２は家庭用ゲーム機１１に接続される。光ディスク２５としては例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどが用いられる。モニタ１８としては例えば家庭用テレビ受像機が用いられる。スピーカ２２としては例えば家庭用テレビ受像機に内蔵されたスピーカが用いられる。
【００１７】
家庭用ゲーム機１１は公知のコンピュータゲームシステムである。家庭用ゲーム機１１は、バス１２、マイクロプロセッサ１４、画像処理部１６、音声処理部２０、光ディスクドライブ２４、メモリカードスロット２７、通信インタフェース（Ｉ／Ｆ）２９、コントローラインタフェース（Ｉ／Ｆ）３０及び操作入力部３１を含んで構成される。操作入力部３１以外の構成要素は家庭用ゲーム機１１の筐体内に収容される。
【００１８】
バス１２はアドレス及びデータを家庭用ゲーム機１１の各部でやり取りするためのものである。マイクロプロセッサ１４、画像処理部１６、音声処理部２０、光ディスクドライブ２４、主記憶２６、メモリカードスロット２７、通信インタフェース２９及びコントローラインタフェース３０は、バス１２によって相互データ通信可能に接続される。
【００１９】
マイクロプロセッサ１４は、図示しないＲＯＭに格納されるオペレーティングシステムや、光ディスク２５又はメモリカード２８から読み出されるプログラム及びデータに基づいて、家庭用ゲーム機１１の各部を制御する。主記憶２６は、例えばＲＡＭを含んで構成される。主記憶２６には、光ディスク２５又はメモリカード２８から読み出されたプログラム及びデータが必要に応じて書き込まれる。主記憶２６はマイクロプロセッサ１４の作業用としても用いられる。
【００２０】
画像処理部１６はＶＲＡＭを含んで構成される。画像処理部１６は、マイクロプロセッサ１４から送られる画像データに基づいてＶＲＡＭ上にゲーム画面を描画する。そして画像処理部１６は、そのゲーム画面をビデオ信号に変換して所定のタイミングでモニタ１８に出力する。音声処理部２０はサウンドバッファを含んで構成される。サウンドバッファには、光ディスク２５から読み出されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データが記憶される。音声処理部２０は、サウンドバッファに記憶された各種音声データを再生してスピーカ２２から出力する。
【００２１】
光ディスクドライブ２４は、光ディスク２５に記録されたプログラムやデータをマイクロプロセッサ１４からの指示に従って読み取る。ここではプログラムやデータを家庭用ゲーム機１１に供給するために光ディスク２５を用いることとするが、例えばＲＯＭカードなどの他のあらゆる情報記憶媒体を用いるようにしてもよい。また、インターネットなどのデータ通信網を介して遠隔地からプログラムやデータを家庭用ゲーム機１１に供給するようにしてもよい。
【００２２】
メモリカードスロット２７はメモリカード２８を装着するためのインタフェースである。メモリカード２８は不揮発性メモリ（例えばＥＥＰＲＯＭなど）を含んで構成される。メモリカード２８は、例えばセーブデータなどの各種ゲームデータを記憶するために用いられる。通信インタフェース２９は、インターネットなどのデータ通信網に通信接続するためのインタフェースである。
【００２３】
コントローラインタフェース３０は、複数のコントローラ３２を無線接続するためのインタフェースである。コントローラインタフェース３０としては、例えばＢｌｕｅｔｏｏｔｈインタフェース規格に則ったインタフェースを利用することができる。なお、コントローラインタフェース３０は、コントローラ３２を有線接続するためのインタフェースとしてもよい。
【００２４】
操作入力部３１はユーザが操作入力を行うためのものである。操作入力部３１は、例えば、モニタ１８に表示されるゲーム画面上の位置をユーザが指し示すためのポインティングデバイスとしての機能を備える。操作入力部３１としては、例えば特許３２６２６７７号公報に開示される技術を利用することができる。操作入力部３１は、１又は複数のコントローラ３２と、１つの発光部３８と、を含んで構成される。各コントローラ３２は撮像部３４と撮影画像解析部３６とを含んで構成される。図２は操作入力部３１の一例を示す図である。図３はコントローラ３２の一例を示す図である。
【００２５】
図２に示すように、発光部３８はモニタ１８の上部に配置される。なお、発光部３８はモニタ１８の下部に配置されるようにしてもよい。発光部３８の両端部には光源４０ａ，４０ｂが備えられる。図３に示すように、コントローラ３２の表面には方向ボタン４４、ボタン４６ａ，４６ｂ，４６ｃが備えられる。方向ボタン４４は十字形状を有しており、一般的にキャラクタやカーソルの移動方向を指示するのに用いられる。ボタン４６ａ，４６ｂ，４６ｃは各種ゲーム操作に用いられる。コントローラ３２の一の側面には、例えばＣＣＤなどの撮像素子である撮像部３４が備えられる。また、コントローラ３２には、例えばマイクロプロセッサなどである撮影画像解析部３６が内蔵される。なお、撮像部３４が備えられた側面部のことを「コントローラ３２の前端部３２ａ」と記載する。
【００２６】
ユーザがコントローラ３２の前端部３２ａをモニタ１８の方に向けると、撮像部３４の撮影画像には光源４０ａ，４０ｂが写し出される。撮影画像解析部３６は、撮像部３４の撮影画像に写し出された光源４０ａ，４０ｂの位置を解析する。撮影画像解析部３６は、その解析結果に基づいてコントローラ３２の位置及び傾きを取得する。より具体的には、撮影画像解析部３６は、所定の基準位置４２に対するコントローラ３２の相対位置と、光源４０ａ及び光源４０ｂを結ぶ直線に対するコントローラ３２の傾き角度と、を算出する。ゲーム装置１０には、基準位置４２と、モニタ１８に表示されるゲーム画面１８ａと、の位置関係に関する情報が記憶されており、この情報と、撮影画像解析部３６によって取得されるコントローラ３２の位置及び傾きと、に基づいて、コントローラ３２の前端部３２ａが指し示す位置Ｐのスクリーン座標値が取得される。
【００２７】
ここで、スクリーン座標値とはスクリーン座標系における座標値である。スクリーン座標系とは、図４に示すように、ゲーム画面１８ａの左上隅を原点とし、ゲーム画面１８ａの右方向をＸ軸正方向とし、ゲーム画面１８ａの下方向をＹ軸正方向とする座標系である。図４に示すように、スクリーン座標系の一定領域、すなわち、「０≦Ｘ≦Ｗ、かつ、０≦Ｙ≦Ｈ」との条件を満足する領域（斜線で示す領域）がモニタ１８に表示される領域である。Ｗはゲーム画面１８ａの幅を示し、Ｈはゲーム画面１８ａの高さを示す。
【００２８】
なお、コントローラ３２の前端部３２ａが指し示す位置Ｐのことを「コントローラ３２の指示位置」と呼ぶ。また、撮影画像解析部３６によって取得されるコントローラ３２の位置及び傾きを示す情報、すなわち、コントローラ３２の指示位置のスクリーン座標値を特定するための情報のことを「ポインティング情報」と呼ぶ。
【００２９】
コントローラ３２からコントローラインタフェース３０に対しては、一定周期ごと（例えば１／６０秒ごと）にコントローラ３２の操作状態を表す操作信号が送信される。この操作信号には、例えば、コントローラ３２を識別する識別情報と、上記のポインティング情報と、各ボタンの押下状態を示す情報と、が含まれる。コントローラインタフェース３０は、コントローラ３２から受信した操作信号をバス１２を介してマイクロプロセッサ１４に渡す。マイクロプロセッサ１４は操作信号に基づいて各コントローラ３２におけるゲーム操作を判定する。例えば、マイクロプロセッサ１４は、この操作信号（ポインティング情報）に基づいて、各コントローラ３２の指示位置を特定する。また例えば、マイクロプロセッサ１４は、この操作信号に基づいて、各コントローラ３２において方向ボタン４４、ボタン４６ａ，４６ｂ，４６ｃの押下操作が行われたか否かを判定する。
【００３０】
上記構成を備えるゲーム装置１０では、例えば、ユーザの操作対象チーム（以下、ユーザチームと呼ぶ。）と、対戦相手チームと、の間のサッカーの試合を模したサッカーゲームが行われる。このサッカーゲームは、光ディスク２５から読み出されたサッカーゲームプログラムが実行されることによって実現される。
【００３１】
ゲーム装置１０の主記憶２６には仮想３次元空間（ゲーム空間）が構築される。図５は仮想３次元空間の一例を示している。図５に示すように、仮想３次元空間５０には、サッカーのフィールドを表すフィールドオブジェクト５２と、ゴールを表すゴールオブジェクト５４と、が配置されることによって、サッカーの試合会場が形成される。フィールドオブジェクト５２にはゴールライン５３ａやタッチライン５３ｂ等が表される。ピッチ５２ａ（所定領域）はゴールライン５３ａ（境界線）及びタッチライン５３ｂ（境界線）に囲まれた領域である。
【００３２】
フィールドオブジェクト５２上には、サッカーボールを表すボールオブジェクト５６と、サッカー選手を表す選手オブジェクト５８（移動体キャラクタ）と、が配置される。図５では省略されているが、フィールドオブジェクト５２上には、ユーザチームに属する１１体の選手オブジェクト５８と、対戦相手チームに属する１１体の選手オブジェクト５８と、が配置される。ユーザチームに属する１１体の選手オブジェクト５８のうちのいずれかは、ユーザの操作に従って動作する。なお以下では、ユーザの操作に従って動作する選手オブジェクト５８のことをユーザオブジェクトと呼ぶ。ユーザオブジェクト以外の選手オブジェクト５８は所定のアルゴリズムに従って動作する。
【００３３】
仮想３次元空間５０には仮想カメラ５９（視点及び視線方向）が設定される。仮想カメラ５９は、例えばボールオブジェクト５６の移動に応じて移動する。この仮想カメラ５９から仮想３次元空間５０を見た様子がゲーム画面１８ａに表示される。
【００３４】
図６はゲーム画面１８ａの一例を示している。図６に示すように、ゲーム画面１８ａには、仮想３次元空間５０を仮想カメラ５９から見た様子を表す画像が表示される。図６に示すゲーム画面１８ａには、ユーザオブジェクト５８ａと、その他の選手オブジェクト５８と、が表示されている。またゲーム画面１８ａにはコントローラ３２の指示位置を示すカーソル６０が表示される。本実施の形態ではカーソル６０は円形状になっている。なお、カーソル６０の形状は円形以外の形状であってもよい。
【００３５】
ユーザはユーザオブジェクト５８ａの移動方向を、コントローラ３２の前端部３２ａで指し示すことによって指示する。ユーザオブジェクト５８ａは、カーソル６０の表示位置に対応するフィールドオブジェクト５２上の位置に向けて移動する。なお、ユーザオブジェクト５８ａがボールオブジェクト５６が保持している場合には、ボールオブジェクト５６もカーソル６０の表示位置に対応するフィールドオブジェクト５２上の位置に向けて移動する。この様子はユーザオブジェクト５８ａのドリブル動作として表される。
【００３６】
また、移動目標位置を設定するための移動目標位置設定ボタン（例えばボタン４６ｂ）をユーザが押下すると、その時点のカーソル６０の表示位置に対応するフィールドオブジェクト５２上の位置が移動目標位置として設定される。この場合、ユーザがカーソル６０を移動させても、ユーザオブジェクト５８ａは移動目標位置に向けて移動し続ける。ユーザオブジェクト５８ａがボールオブジェクト５６が保持している場合には、ボールオブジェクト５６も移動目標位置に向けて移動する。
【００３７】
なお、ユーザオブジェクト５８ａが移動目標位置（ここでは第１移動目標位置とする。）に向けて移動している間にユーザが新たに移動目標位置（ここでは第２移動目標位置とする。）を設定した場合、原則として、ユーザオブジェクト５８ａは第１移動目標位置まで移動した後、第１移動目標位置から第２移動目標位置に向けて移動する。
【００３８】
また、ユーザはユーザオブジェクト５８ａのキック方向を、コントローラ３２の前端部３２ａで指し示すことによって指示する。ユーザがキック指示ボタン（例えばボタン４６ａ）を押下すると、ユーザオブジェクト５８ａは、カーソル６０の表示位置に対応するフィールドオブジェクト５２上の位置に向けてボールオブジェクト５６を蹴り出す。
【００３９】
例えば、ユーザは移動目標位置を設定することによって、ユーザオブジェクト５８ａを移動目標位置に向けて移動させる。そして、ユーザオブジェクト５８ａが移動目標位置に向けて移動している間に、ユーザは所望の他の選手オブジェクト５８の位置にカーソル６０を移動させる。ユーザは、その状態でキック指示ボタンを押下することによって、その選手オブジェクト５８に対するパスをユーザオブジェクト５８ａに行わせることができる。
【００４０】
上記のサッカーゲームでは、ユーザが移動目標位置を誤ってピッチ５２ａ外に設定してしまう可能性がある。例えば、ピッチ５２ａ内でドリブルをしているユーザオブジェクト５８ａの移動目標位置として、例えば図１８に示すようなピッチ５２ａ外の位置６２が誤って設定される可能性がある。このような場合、ユーザオブジェクト５８ａがその移動目標位置（位置６２）まで移動してしまうと、対戦相手チームのスローインになってしまうため望ましくない。この点、ゲーム装置１０では、移動目標位置を誤ってピッチ５２ａ外に設定されてしまった場合であっても、ユーザが、例えば図１８に示すようなピッチ５２ａ内の位置６４を移動目標位置として新たに設定すれば、ユーザオブジェクト５８ａがピッチ５２ａ外に移動しないようになっている。
【００４１】
ユーザオブジェクト５８ａがピッチ５２ａ外に移動しないようにするためには、例えば図１９に示すような経路６６をユーザオブジェクト５８ａが移動するように、ユーザオブジェクト５８ａの移動制御を行うことが考えられる。すなわち、ユーザオブジェクト５８ａがゴールライン５３ａ又はタッチライン５３ｂ際に達した時点で、第２移動目標位置（位置６４）への移動をユーザオブジェクト５８ａに開始させることが考えられる。しかしながら、図１９に示すような移動制御を行うようにすると、ユーザオブジェクト５８ａがゴールライン５３ａ又はタッチライン５３ｂに達した時の移動方向と、ユーザオブジェクト５８ａがゴールライン５３ａ又はタッチライン５３ｂに達した後の移動方向と、の間の角度θが比較的大きくなってしまう場合がある。このため、ユーザオブジェクト５８ａが移動方向を変える際の動作が不自然になってしまう場合がある。
【００４２】
以下、ユーザオブジェクト５８ａが移動方向を変える際の動作が不自然にならないように図るための技術について説明する。
【００４３】
図７は、ゲーム装置１０で実現される機能のうち、本発明に関連するものを主として示す機能ブロック図である。図７に示すように、ゲーム装置１０は、ゲームデータ記憶部７０と、指示位置取得部７２と、ゲーム状況データ更新部７４と、表示制御部７６と、を機能的に含んでいる。
【００４４】
ゲームデータ記憶部７０は主記憶２６や光ディスク２５を主として実現される。ゲームデータ記憶部７０にはゲーム画面１８ａを生成する際の基礎となるデータが記憶される。例えば、仮想３次元空間５０に配置される各種オブジェクトの形状を示すモデルデータがゲームデータ記憶部７０に記憶される。また例えば、選手オブジェクト５８が各種動作を行う際の姿勢変化を表すモーションデータがゲームデータ記憶部７０に記憶される。モーションデータとしては、例えば、選手オブジェクト５８が走行する際の姿勢変化を示す走行モーションデータや、選手オブジェクト５８が移動方向を変える際の姿勢変化を示す移動方向変更モーションデータ等がある。
【００４５】
また例えば、ゲームの状況を示すゲーム状況データがゲームデータ記憶部７０に記憶される。ゲーム状況データには、例えばカーソル６０の表示位置データ、ボールオブジェクト５６の状態データや、各選手オブジェクト５８の状態データが含まれる。カーソル６０の表示位置データは、カーソル６０の表示位置をスクリーン座標系で示すデータである。ボールオブジェクト５６の状態データは、ボールオブジェクト５６の仮想３次元空間５０における状態（位置、移動速度や移動方向等）をワールド座標系（図５に示すＸｗＹｗＺｗ座標系）で示すデータである。選手オブジェクト５８の状態データは、選手オブジェクト５８の仮想３次元空間５０における状態（位置、姿勢、移動速度や移動方向等）をワールド座標系で示すデータである。
【００４６】
指示位置取得部７２はマイクロプロセッサ１４、主記憶２６及び操作入力部３１を主として実現される。指示位置取得部７２は、コントローラ３２から供給される操作信号（ポインティング情報）に基づいて、コントローラ３２の指示位置のスクリーン座標値を取得する。また指示位置取得部７２は、そのスクリーン座標値に対応するフィールドオブジェクト５２上の位置を取得する。
【００４７】
ここで、コントローラ３２の指示位置のスクリーン座標値に対応するフィールドオブジェクト５２上の位置を取得するための処理（対応位置取得処理）について説明する。図８及び図９は対応位置取得処理を示すフロー図である。
【００４８】
図８に示すように、まず指示位置取得部７２は変数ｎの値を０に初期化する（Ｓ１０１）。また指示位置取得部７２は、フィールドオブジェクト５２上に複数の基準点を初期設定する（Ｓ１０２）。図１０は基準点の初期設定について説明するための図である。図１０に示すように、指示位置取得部７２は、フィールドオブジェクト５２を長辺方向及び短辺方向にそれぞれ４分割することによって得られる区画の各頂点を基準点Ｑｉｊ（ｉ，ｊは１〜５の整数）として取得する。ここで、基準点Ｑ１１とは左上の基準点を指し、基準点Ｑ１５とは右上の基準点を指す。また、基準点Ｑ５１とは左下の基準点を指し、基準点Ｑ５５とは右下の基準点を指す。
【００４９】
また、指示位置取得部７２は変数ｌａをＬａ／４に初期化し、変数ｌｂをＬｂ／４に初期化する（Ｓ１０３）。ここで、図１０に示すように、Ｌａはフィールドオブジェクト５２の長辺の長さであり、Ｌｂはフィールドオブジェクト５２の短辺の長さである。
【００５０】
その後、指示位置取得部７２は各基準点Ｑｉｊの位置座標をワールド座標系からスクリーン座標系に変換することによって、各基準点Ｑｉｊに対応するスクリーン座標値を取得する（Ｓ１０４）。ここでは、仮想３次元空間５０を仮想カメラ５９から見た様子を表す視野画像を生成する際に用いられる行列演算と同じ行列演算が用いられる。
【００５１】
その後、指示位置取得部７２は、各基準点Ｑｉｊについて、その基準点Ｑｉｊに対応するスクリーン座標値と、コントローラ３２の指示位置のスクリーン座標値と、の間の距離を算出する（Ｓ１０５）。そして、指示位置取得部７２は、複数の基準点Ｑｉｊのうちから、Ｓ１０５で算出された距離が最も小さい基準点Ｑｉｊを選択する（Ｓ１０６）。また、指示位置取得部７２は変数ｎの値に１を加算する（Ｓ１０７）。そして、指示位置取得部７２は変数ｎの値がＮ未満であるか否かを判定する（Ｓ１０８）。
【００５２】
変数ｎの値がＮ未満である場合、指示位置取得部７２は、Ｓ１０６において選択された基準点Ｑｉｊに基づいて、フィールドオブジェクト５２上に基準点設定対象領域を決定する（Ｓ１０９）。図１１は基準点設定対象領域について説明するための図である。ここで図１１は、図１０に示すように基準点Ｑｉｊが設定された状態で、Ｓ１０６において基準点Ｑ３３が選択された場合の基準点設定対象領域を示している。図１１に示すように、指示位置取得部７２は、フィールドオブジェクト５２上の、下記の条件（１）及び（２）を満足するＸｗ軸座標及びＺｗ軸座標（ｘｗ，ｚｗ）が含まれる領域を基準点設定対象領域６８に設定する。なお、下記の条件（１）及び（２）において、（ｘｗ０，ｚｗ０）は、Ｓ１０６で選択された基準点ＱｉｊのＸｗ軸座標及びＺｗ軸座標を示す。
【００５３】
ｘｗ０−（ｌａ／２）≦ｘｗ≦ｘｗ０＋（ｌａ／２）  ・・・  （１）
ｚｗ０−（ｌｂ／２）≦ｚｗ≦ｚｗ０＋（ｌｂ／２）  ・・・  （２）
【００５４】
そして、指示位置取得部７２は、Ｓ１０９で決定した基準点設定対象領域６８に複数の基準点を再設定する（Ｓ１１０）。図１２は基準点の再設定について説明するための図である。ここで図１２は、図１１に示すように基準点設定対象領域６８が決定された場合について示している。図１２に示すように、指示位置取得部７２は、基準点設定対象領域６８を長辺方向及び短辺方向にそれぞれ８分割することによって得られる各区画の各頂点を新たな基準点Ｑｉｊ（ｉ，ｊは１〜９の整数）として設定する。ここで、基準点Ｑ１１とは左上の基準点を指し、基準点Ｑ１９とは右上の基準点を指す。また、基準点Ｑ９１とは左下の基準点を指し、基準点Ｑ９９とは右下の基準点を指す。
【００５５】
指示位置取得部７２は基準点Ｑｉｊを再設定したら、変数ｌａをｌａ／８に更新し、変数ｌｂをｌｂ／８に更新する（Ｓ１１１）。その後、指示位置取得部７２はＳ１０４の処理から再実行する。
【００５６】
一方、Ｓ１０８において変数ｎの値がＮ未満でないと判定された場合、指示位置取得部７２は、Ｓ１０６で選択された基準点Ｑｉｊが、コントローラ３２の指示位置のスクリーン座標値に対応するフィールドオブジェクト５２上の位置であると判断する（Ｓ１１２）。
【００５７】
ゲーム状況データ更新部７４はマイクロプロセッサ１４及び主記憶２６を主として実現される。ゲーム状況データ更新部７４は、指示位置取得部７２の取得結果に基づいて、ゲームデータ記憶部７０に記憶されるゲーム状況データを更新する。
【００５８】
例えば、ゲーム状況データ更新部７４は、指示位置取得部７２によって取得されたコントローラ３２の指示位置のスクリーン座標値に基づいて、ゲームデータ記憶部７０に記憶されるカーソル６０の表示位置データを更新する。
【００５９】
また例えば、ユーザオブジェクト５８ａに対して移動目標位置が設定されていない場合、ゲーム状況データ更新部７４は、指示位置取得部７２によって取得されたフィールドオブジェクト５２上の位置に向けてユーザオブジェクト５８ａが移動するように、ユーザオブジェクト５８ａの状態データを更新する。例えば、ゲーム状況データ更新部７４は、ユーザオブジェクト５８ａの移動方向を「ユーザオブジェクト５８ａの現在位置から、指示位置取得部７２によって取得されたフィールドオブジェクト５２上の位置への方向」に更新する。また例えば、ゲーム状況データ更新部７４は、所定時間（本実施の形態では１／６０秒）ごとに、ユーザオブジェクト５８ａの位置を「現在位置から移動方向に移動速度に応じた距離だけ移動してなる位置」に更新する。また例えば、ゲーム状況データ更新部７４は、所定時間（本実施の形態では１／６０秒）ごとに、ユーザオブジェクト５８ａの姿勢を例えば走行モーションデータに基づいて更新する。
【００６０】
また例えば、ゲーム状況データ更新部７４は、コントローラ３２から供給される操作信号に基づいて、キック指示ボタンが押下されたか否かを判定する。キック指示ボタンが押下された場合、ゲーム状況データ更新部７４は、ユーザオブジェクト５８ａがキック動作を行うように、ユーザオブジェクト５８ａの状態データを更新する。また、ゲーム状況データ更新部７４は、指示位置取得部７２によって取得されたフィールドオブジェクト５２上の位置に向けてボールオブジェクト５６が移動するように、ボールオブジェクト５６の状態データを更新する。
【００６１】
ゲーム状況データ更新部７４には、移動目標位置設定部７８と、第１判定部８０と、第２判定部８２と、第１交点取得部８４と、第２交点取得部８６と、移動制御部８８と、が含まれる。これらの機能ブロックについては後述する。
【００６２】
表示制御部７６はマイクロプロセッサ１４、画像処理部１６及び主記憶２６を主として実現される。表示制御部７６はゲーム画面１８ａを生成する。まず表示制御部７６は、仮想３次元空間５０を仮想カメラ５９から見た様子を表す視野画像を、ゲームデータ記憶部７０に記憶される各種データに基づいてＶＲＡＭ上に描画する。仮想３次元空間５０に配置される各オブジェクトを構成するポリゴンの頂点座標（ワールド座標値）が所定の行列演算を用いてスクリーン座標系に座標変換されることによって、視野画像は生成される。その後、表示制御部７６は、ＶＲＡＭ上に描画された視野画像に対してカーソル６０を上書き描画する。このとき、カーソル６０の描画位置は、ゲームデータ記憶部７０に記憶されるカーソル６０の表示位置データに基づいて特定される。
【００６３】
ここで、移動目標位置設定部７８、第１判定部８０、第２判定部８２、第１交点取得部８４、第２交点取得部８６及び移動制御部８８について説明する。
【００６４】
まず、移動目標位置設定部７８について説明する。移動目標位置設定部７８は、移動目標位置設定ボタンが押下されたか否かを、コントローラ３２から供給される操作信号に基づいて判定する。移動目標位置設定ボタンが押下された場合、移動目標位置設定部７８は、その時点のコントローラ３２の指示位置（スクリーン座標値）に対応するフィールドオブジェクト５２上の位置を移動目標位置として主記憶２６に記憶させる。
【００６５】
ユーザオブジェクト５８ａに対して移動目標位置が設定されている場合、ゲーム状況データ更新部７４は、ユーザオブジェクト５８ａが移動目標位置に向けて移動するように、ユーザオブジェクト５８ａの状態データを更新する。例えば、ゲーム状況データ更新部７４は、ユーザオブジェクト５８ａの移動方向を「ユーザオブジェクト５８ａの現在位置から移動目標位置への方向」に更新する。また例えば、ゲーム状況データ更新部７４は、所定時間（本実施の形態では１／６０秒）ごとに、ユーザオブジェクト５８ａの位置を「現在位置から移動方向に移動速度に応じた距離だけ移動してなる位置」に更新する。また例えば、ゲーム状況データ更新部７４は、所定時間（本実施の形態では１／６０秒）ごとに、ユーザオブジェクト５８ａの姿勢を例えば走行モーションデータに基づいて更新する。
【００６６】
次に、第１判定部８０及び第２判定部８２について説明する。
【００６７】
第１判定部８０は、ユーザオブジェクト５８ａがピッチ５２ａ内に位置する場合において、ピッチ５２ａ外の位置（例えば図１８に示す位置６２）が移動目標位置（以下、第１移動目標位置とする。）として設定されたか否かを判定する。
【００６８】
第２判定部８２は、ピッチ５２ａ内に位置するユーザオブジェクト５８ａの第１移動目標位置がピッチ５２ａ外に設定されている場合、すなわち、ピッチ５２ａ内に位置するユーザオブジェクト５８ａが、ピッチ５２ａ外に設定された第１移動目標位置に向けて移動する場合において、ピッチ５２ａ内の位置（例えば図１８に示す位置６４）が移動目標位置（以下、第２移動目標位置とする。）として新たに設定されたか否かを判定する。
【００６９】
次に、第１交点取得部８４、第２交点取得部８６及び移動制御部８８について説明する。図１３は、ピッチ５２ａ内に第２移動目標位置が設定されたと第２判定部８２によって判定された場合にゲーム装置１０で実行される処理（プログラム）のうち、本発明に関連するものと主として示すフロー図である。また図１４は本処理の内容を説明するための図である。
【００７０】
ユーザオブジェクト５８ａがピッチ５２ａ外の位置６２（第１移動目標位置）に向けて移動している状態で、ピッチ５２ａ内の位置６４が第２移動目標位置として設定されたと第２判定部８２によって判定された場合、まず第１交点取得部８４は、ユーザオブジェクト５８ａの現在位置と、第１移動目標位置（位置６２）と、を結ぶ直線９０と、ゴールライン５３ａ又はタッチライン５３ｂ（図１４ではタッチライン５３ｂ）と、の交点９２（第１交点）を算出する（Ｓ２０１）。
【００７１】
次に第２交点取得部８６は、第１移動目標位置（位置６２）と、第２移動目標位置（位置６４）と、を結ぶ直線９４と、ゴールライン５３ａ又はタッチライン５３ｂ（図１４ではタッチライン５３ｂ）と、の交点９６（第２交点）を算出する（Ｓ２０２）。
【００７２】
次に移動制御部８８は、ユーザオブジェクト５８ａと交点９２との間の距離が基準距離以下になったか否かを監視する（Ｓ２０３）。すなわち、移動制御部８８は、交点９２からの距離が基準距離以下である領域にユーザオブジェクト５８ａが到達したか否かを監視する。
【００７３】
ユーザオブジェクト５８ａと交点９２との間の距離が基準距離以下になった場合、その時点において、移動制御部８８は、交点９２から交点９６への方向と平行にユーザオブジェクト５８ａを移動させる（Ｓ２０４）。このとき、移動制御部８８は、交点９２から交点９６への方向に基づいて、ユーザオブジェクト５８ａの移動方向を更新する。また、このとき、移動制御部８８はユーザオブジェクト５８ａの姿勢を移動方向変更モーションデータに従って更新する。その後、移動制御部８８は、所定時間（本実施の形態では１／６０秒）ごとに、ユーザオブジェクト５８ａの位置を「現在位置から移動方向に移動速度に応じた距離だけ移動してなる位置」に更新する。また、そのとき、移動制御部８８はユーザオブジェクト５８ａの姿勢を走行モーションデータに従って更新する。
【００７４】
次に移動制御部８８は、ユーザオブジェクト５８ａと交点９６との間の距離が基準距離以下になったか否かを監視する（Ｓ２０５）。すなわち、移動制御部８８は、交点９６からの距離が基準距離以下である領域にユーザオブジェクト５８ａが到達したか否かを監視する。
【００７５】
ユーザオブジェクト５８ａと交点９６との間の距離が基準距離以下になった場合、移動制御部８８は、ユーザオブジェクト５８ａを第２移動目標位置（位置６４）に向けて移動させる（Ｓ２０６）。このとき、移動制御部８８はユーザオブジェクト５８ａの移動方向を第２移動目標位置（位置６４）への方向に更新する。また、このとき、移動制御部８８はユーザオブジェクト５８ａの姿勢を移動方向変更モーションデータに従って更新する。その後、移動制御部８８は、所定時間（本実施の形態では１／６０秒）ごとに、ユーザオブジェクト５８ａの位置を「現在位置から移動方向に移動速度に応じた距離だけ移動してなる位置」に更新する。また、そのとき、移動制御部８８はユーザオブジェクト５８ａの姿勢を走行モーションデータに従って更新する。
【００７６】
図１５はユーザオブジェクト５８ａの移動経路の一例を示している。図１３に示す処理が実行される結果として、図１５に示すような移動経路９８をユーザオブジェクト５８ａは移動する。この場合、ユーザオブジェクト５８ａが第１移動目標位置（位置６２）に向けて移動する際の移動方向と、ユーザオブジェクト５８ａがタッチライン５３ｂと平行に移動する際の移動方向と、の間の角度θ１は、ユーザオブジェクト５８ａの移動方向を一度に変える従来例（図１９に示す角度θ）に比較して小さくなる。また、ユーザオブジェクト５８ａがタッチライン５３ｂと平行に移動する際の移動方向と、ユーザオブジェクト５８ａが第２移動目標位置（位置６４）に向けて移動する際の移動方向と、の間の角度θ２も、ユーザオブジェクト５８ａの移動方向を一度に変える従来例（図１９に示す角度θ）に比較して小さくなる。その結果、ユーザオブジェクト５８ａが移動方向を変える際の動作が不自然にならないように図られる。
【００７７】
以上に説明したゲーム装置１０によれば、ユーザオブジェクト５８ａの移動目標位置が誤ってピッチ５２ａ外に設定されてしまった場合であっても、ユーザは移動目標位置をピッチ５２ａ内に新たに設定すれば、移動目標位置をキャンセルしなくても、ユーザオブジェクト５８ａがピッチ５２ａ外に移動しないように指示することができるようになる。
【００７８】
またゲーム装置１０によれば、ユーザオブジェクト５８ａの移動方向を２回に分けて変えるため、ユーザオブジェクト５８ａの移動方向を変える際の角度（図１５に示す角度θ１又は角度θ２）は、ユーザオブジェクト５８ａの移動方向を一度に変える際の角度（図１９に示す角度θ）に比べて緩やかになる。そのため、ユーザオブジェクト５８ａが移動方向を変える際の動作が不自然にならないように図ることが可能になる。
【００７９】
なお、本発明は以上に説明した実施の形態に限定されるものではない。
【００８０】
例えば、Ｓ２０３において、基準距離はユーザオブジェクト５８ａの移動態様に基づいて変化するようにしてもよい。ユーザオブジェクト５８ａの移動態様とは、例えば移動動作種類又は移動速度等である。
【００８１】
ここでは、基準距離がユーザオブジェクト５８ａの移動動作種類に基づいて変化する場合について説明する。この場合、ゲームデータ記憶部７０には、移動動作種類に関する条件と、基準距離と、を対応づけてなる基準距離テーブルが記憶される。図１６は基準距離テーブルの一例を示す図である。図１６に示す基準距離テーブルでは、「通常走行」に対して基準距離Ｌ１が対応付けられており、「ダッシュ走行」に対して基準距離Ｌ２（＞Ｌ１）が対応付けられている。なお、「ダッシュ走行」とは、「通常走行」よりも移動速度が速い移動態様である。
【００８２】
Ｓ２０３において、移動制御部８８は、ユーザオブジェクト５８ａが第１移動目標位置（交点９２）に向かって移動する際の移動動作種類に対応する基準距離を、この基準距離テーブルに基づいて取得する。そして移動制御部８８はその取得した基準距離を用いる。
【００８３】
ユーザオブジェクト５８ａが移動方向を変える動作を移動しながら行うようにすると、ユーザオブジェクト５８ａの動作のリアリティをより向上できる。しかしながら、この場合、ユーザオブジェクト５８ａが「通常走行」を行う場合に合わせて上記の基準距離を設定してしまうと、ユーザオブジェクト５８ａが移動方向を変更している間にピッチ５２ａ外に出てしまうおそれがある。この点、上記のような基準距離テーブルに基づいて基準距離が決定されるようにすれば、ユーザオブジェクト５８ａの移動動作種類に合わせて基準距離を設定することが可能になる。その結果、ユーザオブジェクト５８ａが移動方向を変更している間にピッチ５２ａ外に出てしまうという不都合が生じないように図ることが可能になる。
【００８４】
なお、Ｓ２０５においても、基準距離がユーザオブジェクト５８ａの移動態様に基づいて変化するようにしてもよい。
【００８５】
また例えば、図１４における交点９２から第１移動目標位置（位置６２）への方向と、交点９２から第２移動目標位置（位置６４）への方向と、の間の角度θ（図１９に示す角度θに相当）が基準角度以上である場合にのみ、図１５に示すような経路９８をユーザオブジェクト５８ａが移動するように、ユーザオブジェクト５８ａの移動制御を行うようにしてもよい。一方、上記角度θが基準角度未満である場合には、図１９に示すような経路６６をユーザオブジェクト５８ａが移動するように、ユーザオブジェクト５８ａの移動制御を行うようにしてもよい。こうすれば、ユーザオブジェクト５８ａが移動方向を変える際の動作が不自然になるおそれがある場合にのみ、図１５に示すような経路９８をユーザオブジェクト５８ａが移動するようになる。
【００８６】
また例えば、ゲーム装置１０で実行されるゲームは、３つの座標要素によって構成される３次元ゲーム空間の様子をゲーム画面１８ａに表示するゲームに限られない。ゲーム装置１０で実行されるゲームは、２つの座標要素によって構成される２次元ゲーム空間の様子をゲーム画面１８ａに表示するゲームでもよい。すなわち、ゲーム装置１０で実行されるゲームは、ボールキャラクタや選手キャラクタの位置等が２つの座標要素で管理されるゲームであってもよい。この場合、移動目標位置設定部７８は、移動目標位置設定ボタンが押下された時点のコントローラ３２の指示位置（スクリーン座標値）を移動目標位置として主記憶２６に記憶させる。
【００８７】
また例えば、ゲーム装置１０で実行されるゲームは、２名以上のユーザによって行われるゲームであってもよい。また例えば、ゲーム装置１０で実行されるゲームはサッカーゲームに限られない。ゲーム装置１０で実行されるゲームはサッカーゲーム以外のスポーツゲームであってもよい。ゲーム装置１０で実行されるゲームはスポーツゲーム以外のゲームであってもよい。
【００８８】
また例えば、操作入力部３１はタッチパネルであってもよい。また例えば、操作入力部３１はマウスであってもよい。
【００８９】
また例えば、以上の説明では、プログラムを情報記憶媒体たる光ディスク２５から家庭用ゲーム機１１に供給するようにしたが、通信ネットワークを介してプログラムを家庭等に配信するようにしてもよい。図１７は、通信ネットワークを用いたプログラム配信システムの全体構成を示す図である。図１７に基づいて本発明に係るプログラム配信方法を説明する。図１７に示すように、このプログラム配信システム１００は、ゲームデータベース１０２、サーバ１０４、通信ネットワーク１０６、パソコン１０８、家庭用ゲーム機１１０、ＰＤＡ（携帯情報端末）１１２を含んでいる。このうち、ゲームデータベース１０２とサーバ１０４とによりプログラム配信装置１１４が構成される。通信ネットワーク１０６は、例えばインターネットやケーブルテレビネットワークを含んで構成されている。このシステムでは、ゲームデータベース（情報記憶媒体）１０２に、光ディスク２５の記憶内容と同様のプログラムが記憶されている。そして、パソコン１０８、家庭用ゲーム機１１０又はＰＤＡ１１２等を用いて需要者がゲーム配信要求をすることにより、それが通信ネットワーク１０６を介してサーバ１０４に伝えられる。そして、サーバ１０４はゲーム配信要求に応じてゲームデータベース１０２からプログラムを読み出し、それをパソコン１０８、家庭用ゲーム機１１０、ＰＤＡ１１２等、ゲーム配信要求元に送信する。ここではゲーム配信要求に応じてゲーム配信するようにしたが、サーバ１０４から一方的に送信するようにしてもよい。また、必ずしも一度にゲームの実現に必要な全てのプログラムを配信（一括配信）する必要はなく、ゲームの局面に応じて必要な部分を配信（分割配信）するようにしてもよい。このように通信ネットワーク１０６を介してゲーム配信するようにすれば、プログラムを需要者は容易に入手することができるようになる。
【図面の簡単な説明】
【００９０】
【図１】本実施の形態に係るゲーム装置のハードウェア構成を示す図である。
【図２】操作入力部の一例を示す図である。
【図３】コントローラの一例を示す図である。
【図４】スクリーン座標系について示す図である。
【図５】仮想３次元空間の一例を示す図である。
【図６】ゲーム画面の一例を示す図である。
【図７】本実施の形態に係るゲーム装置の機能ブロック図である。
【図８】ゲーム装置で実行される処理を示すフロー図である。
【図９】ゲーム装置で実行される処理を示すフロー図である。
【図１０】基準点の初期設定について説明するための図である。
【図１１】基準点設定対象領域について説明するための図である。
【図１２】基準点の再設定について説明するための図である。
【図１３】ゲーム装置で実行される処理を示すフロー図である。
【図１４】ゲーム装置で実行される処理について説明するための図である。
【図１５】本実施の形態におけるユーザオブジェクトの移動制御の一例を示す図である。
【図１６】基準距離テーブルの一例を示す図である。
【図１７】本発明の他の実施形態に係るプログラム配信システムの全体構成を示す図である。
【図１８】移動目標位置の一例を示す図である。
【図１９】ユーザオブジェクトの移動制御の一例を示す図である。
【符号の説明】
【００９１】
１０  ゲーム装置、１１，１１０  家庭用ゲーム機、１２  バス、１４  マイクロプロセッサ、１６  画像処理部、１８  モニタ、１８ａ  ゲーム画面、２０  音声処理部、２２  スピーカ、２４  光ディスクドライブ、２５  光ディスク、２６  主記憶、２７  メモリカードスロット、２８  メモリカード、２９  通信インタフェース、３０  コントローラインタフェース、３１  操作入力部、３２  コントローラ、３２ａ  前端部、３４  撮像部、３６  撮像画像解析部、３８  発光部、４０ａ，４０ｂ  光源、４２  基準位置、４４  方向ボタン、４６ａ，４６ｂ，４６ｃ  ボタン、５０  仮想３次元空間、５２  フィールドオブジェクト、５２ａ  ピッチ、５３ａ  ゴールライン、５３ｂ  タッチライン、５４  ゴールオブジェクト、５６  ボールオブジェクト、５８  選手オブジェクト、５８ａ  ユーザオブジェクト、５９  仮想カメラ、６０  カーソル、６８  基準点設定対象領域、７０  ゲームデータ記憶部、７２  指示位置取得部、７４  ゲーム状況データ更新部、７６  表示制御部、７８  移動目標位置設定部、８０  第１判定部、８２  第２判定部、８４  第１交点取得部、８６  第２交点取得部、８８  移動制御部、９８  移動経路、１００  プログラム配信システム、１０２  ゲームデータベース、１０４  サーバ、１０６  通信ネットワーク、１０８  パソコン、１１２  携帯情報端末（ＰＤＡ）、１１４  プログラム配信装置。
【図１】
2008220671.tif 000003
【図２】
2008220671.tif 000004
【図３】
2008220671.tif 000005
【図４】
2008220671.tif 000006
【図５】
2008220671.tif 000007
【図６】
2008220671.tif 000008
【図７】
2008220671.tif 000009
【図８】
2008220671.tif 000010
【図９】
2008220671.tif 000011
【図１０】
2008220671.tif 000012
【図１１】
2008220671.tif 000013
【図１２】
2008220671.tif 000014
【図１３】
2008220671.tif 000015
【図１４】
2008220671.tif 000016
【図１５】
2008220671.tif 000017
【図１６】
2008220671.tif 000018
【図１７】
2008220671.tif 000019
【図１８】
2008220671.tif 000020
【図１９】
2008220671.tif 000021