(57)【特許請求の範囲】
【請求項１】
プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームプログラムであって、ゲーム装置のコンピュータを、
記憶装置に記憶されている前記プレイヤオブジェクトの現在位置を示す情報に基づいて、前記プレイヤオブジェクトを表示装置の画面に表示する表示制御手段、
記憶装置に記憶されている、仮想ゲーム世界の任意の位置における前記プレイヤオブジェクトの前進方向を定義したデータと、前記現在位置を示す情報とに基いて、当該現在位置における当該前進方向を定義したデータを参照して、記憶装置に記憶されている、前記仮想ゲーム世界における前記プレイヤオブジェクトの前進方向を示す情報を随時更新する前進方向決定手段、
入力装置から入力されるプレイヤの前進指示を検出する前進指示検出手段、および
前記前進指示検出手段によって検出されたプレイヤの前進指示に応じて、記憶装置に記憶されている前記前進方向を示す情報によって示される方向に前記プレイヤオブジェクトが移動又は加速するように、記憶装置に記憶されている前記現在位置を示す情報を更新する前進移動制御手段として機能させるためのゲームプログラム。
【請求項２】
前記コンピュータを、さらに、
前記前進方向を定義したデータと、前記現在位置を示す情報とに基いて、当該現在位置における当該前進方向を定義したデータを参照して、記憶装置に記憶されている、前記仮想ゲーム世界における前記プレイヤオブジェクトの左右移動方向を示す情報を随時更新する左右移動方向決定手段、
前記入力装置から入力されるプレイヤの左右移動指示を検出する左右移動指示検出手段、および
前記左右移動指示検出手段によって検出されたプレイヤの左右移動指示に応じて、記憶装置に記憶されている前記左右移動方向を示す情報によって示される方向に前記プレイヤオブジェクトが移動又は加速するように、記憶装置に記憶されている前記現在位置を示す情報を更新する左右移動制御手段として機能させる、請求項１に記載のゲームプログラム。
【請求項３】
前記前進方向を定義したデータは、前記仮想ゲーム世界における順序づけられた複数の制御点の座標値を含み、
前記前進方向決定手段は、少なくとも、前記プレイヤオブジェクトの現在位置に一番近い第１の前記制御点と当該第１の制御点より順序が１つ前または後の第２の前記制御点とを結ぶ第１ベクトルに基いて、前記前進方向を示す情報を随時更新する、請求項１に記載のゲームプログラム。
【請求項４】
前記前進方向を定義したデータは、前記仮想ゲーム世界における順序づけられた複数の制御点の座標値を含み、
前記複数の制御点のうち順序が最初の制御点は、前記プレイヤオブジェクトのゲーム開始時点における仮想ゲーム世界における位置に一番近い制御点であり、
前記前進方向決定手段は、第１制御点と当該第１制御点より順序が１つ後の第２制御点とを結ぶ第１ベクトルと、前記第２制御点と当該第２制御点より順序が１つ後の第３制御点とを結ぶ第２ベクトルの、少なくとも２つのベクトルにより得られるベクトルに基いて、前記前進方向を示す情報を随時更新する、請求項１に記載のゲームプログラム。
【請求項５】
前記仮想ゲーム世界には前記プレイヤオブジェクトが移動可能なコースが設定され、
前記制御点は前記コース上に設定されている、請求項３に記載のゲームプログラム。
【請求項６】
前記表示制御手段は、前記仮想ゲーム世界に設定された仮想カメラに基づいて前記プレイヤオブジェクトを含むゲーム画像を生成し、
前記ゲームプログラムは、前記プレイヤオブジェクトの現在位置よりも所定距離だけ先の地点に対応する前進方向に応じて、前記仮想カメラの撮影方向を決定する仮想カメラ制御手段として前記コンピュータをさらに機能させる、請求項１に記載のゲームプログラム。
【請求項７】
前記入力装置は、第１操作部および第２操作部を備え、
前記前進指示検出手段は、前記第１操作部と前記第２操作部が交互に操作されることを検出し、
前記左右移動指示検出手段は、前記第１操作部または前記第２操作部が単独で操作されることを検出する、請求項２に記載のゲームプログラム。
【請求項８】
前記前進方向を定義したデータは、仮想ゲーム世界における各位置または各領域毎に予め設定されたデータであり、
前記前進方向決定手段は、前記各位置または各領域毎に予め設定されたデータのうち、少なくとも前記プレイヤオブジェクトの現在位置に最も近い位置または領域に対応するデータに基いて、前記前進方向を示す情報を随時更新する、請求項１に記載のゲームプログラム。
【請求項９】
前記前進方向を定義したデータは、
仮想ゲーム世界における方向データ、仮想ゲーム世界における結び付けられた複数の位置データ、および、前記前進方向を示す情報を更新するための所定の数式、の少なくとも１つを含む、請求項１に記載のゲームプログラム。
【請求項１０】
プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームプログラムであって、ゲーム装置のコンピュータを、
記憶装置に記憶されている前記プレイヤオブジェクトの現在位置を示す情報に基づいて、前記プレイヤオブジェクトを表示装置の画面に表示する表示制御手段、
記憶装置に記憶されている、仮想ゲーム世界の任意の位置における前記プレイヤオブジェクトの左右移動方向を定義したデータと、前記現在位置を示す情報とに基づいて、当該現在位置における当該左右移動方向を定義したデータを参照して、記憶装置に記憶されている、前記仮想ゲーム世界における前記プレイヤオブジェクトの左右移動方向を示す情報を随時更新する左右移動方向決定手段、
入力装置から入力されるプレイヤの左右移動指示を検出する左右移動指示検出手段、および
前記左右移動指示検出手段によって検出されたプレイヤの左右移動指示に応じて、記憶装置に記憶されている前記左右移動方向を示す情報によって示される方向に前記プレイヤオブジェクトが移動又は加速するように、記憶装置に記憶されている前記現在位置を示す情報を更新する左右移動制御手段として機能させるためのゲームプログラム。
【請求項１１】
プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームプログラムであって、ゲーム装置のコンピュータを、
記憶装置に記憶されている前記プレイヤオブジェクトの現在位置を示す情報に基づいて、前記プレイヤオブジェクトを表示装置の画面に表示する表示制御手段、
記憶装置に記憶されている、仮想ゲーム世界の任意の位置における前記プレイヤオブジェクトの直交移動方向を定義したデータと、前記現在位置を示す情報とに基づいて、当該現在位置における当該直交移動方向を定義したデータを参照して、記憶装置に記憶されている、前記仮想ゲーム世界における前記プレイヤオブジェクトの直交移動方向を示す情報を随時更新する直交移動方向決定手段、
入力装置から入力されるプレイヤの直交移動指示を検出する直交移動指示検出手段、および
前記直交移動指示検出手段によって検出されたプレイヤの直交移動指示に応じて、記憶装置に記憶されている前記直行移動方向を示す情報によって示される方向に前記プレイヤオブジェクトが移動又は加速するように、記憶装置に記憶されている前記現在位置を示す情報を更新する直交移動制御手段として機能させるためのゲームプログラム。
【請求項１２】
プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームを実行するゲーム装置であって、
記憶装置に記憶されている前記プレイヤオブジェクトの現在位置を示す情報に基づいて、前記プレイヤオブジェクトを表示装置の画面に表示する表示制御手段、
記憶装置に記憶されている、仮想ゲーム世界の任意の位置における前記プレイヤオブジェクトの前進方向を定義したデータと、前記現在位置を示す情報とに基いて、当該現在位置における当該前進方向を定義したデータを参照して、記憶装置に記憶されている、前記仮想ゲーム世界における前記プレイヤオブジェクトの前進方向を示す情報を随時更新する前進方向決定手段、
入力装置から入力されるプレイヤの前進指示を検出する前進指示検出手段、および
前記前進指示検出手段によって検出されたプレイヤの前進指示に応じて、記憶装置に記憶されている前記前進方向を示す情報によって示される方向に前記プレイヤオブジェクトが移動又は加速するように、記憶装置に記憶されている前記現在位置を示す情報を更新する前進移動制御手段を備える、ゲーム装置。
【請求項１３】
プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームを実行するゲーム装置であって、
記憶装置に記憶されている前記プレイヤオブジェクトの現在位置を示す情報に基づいて、前記プレイヤオブジェクトを表示装置の画面に表示する表示制御手段、
記憶装置に記憶されている、仮想ゲーム世界の任意の位置における前記プレイヤオブジェクトの左右移動方向を定義したデータと、前記現在位置を示す情報とに基づいて、当該現在位置における当該左右移動方向を定義したデータを参照して、記憶装置に記憶されている、前記仮想ゲーム世界における前記プレイヤオブジェクトの左右移動方向を示す情報を随時更新する左右移動方向決定手段、
入力装置から入力されるプレイヤの左右移動指示を検出する左右移動指示検出手段、および
前記左右移動指示検出手段によって検出されたプレイヤの左右移動指示に応じて、記憶装置に記憶されている前記左右移動方向を示す情報によって示される方向に前記プレイヤオブジェクトが移動又は加速するように、記憶装置に記憶されている前記現在位置を示す情報を更新する左右移動制御手段を備える、ゲーム装置。
【請求項１４】
プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームを実行するゲーム装置であって、
記憶装置に記憶されている前記プレイヤオブジェクトの現在位置を示す情報に基づいて、前記プレイヤオブジェクトを表示装置の画面に表示する表示制御手段、
記憶装置に記憶されている、仮想ゲーム世界の任意の位置における前記プレイヤオブジェクトの直交移動方向を定義したデータと、前記現在位置を示す情報とに基づいて、当該現在位置における当該直交移動方向を定義したデータを参照して、記憶装置に記憶されている、前記仮想ゲーム世界における前記プレイヤオブジェクトの直交移動方向を示す情報を随時更新する直交移動方向決定手段、
入力装置から入力されるプレイヤの直交移動指示を検出する直交移動指示検出手段、および
前記直交移動指示検出手段によって検出されたプレイヤの直交移動指示に応じて、記憶装置に記憶されている前記直交移動方向を示す情報によって示される方向に前記プレイヤオブジェクトが移動又は加速するように、記憶装置に記憶されている前記現在位置を示す情報を更新する直交移動制御手段を備える、ゲーム装置。
【請求項１５】
プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームを実行するゲームシステムであって、
記憶装置に記憶されている前記プレイヤオブジェクトの現在位置を示す情報に基づいて、前記プレイヤオブジェクトを表示装置の画面に表示する表示制御手段、
記憶装置に記憶されている、仮想ゲーム世界の任意の位置における前記プレイヤオブジェクトの前進方向を定義したデータと、前記現在位置を示す情報とに基いて、当該現在位置における当該前進方向を定義したデータを参照して、記憶装置に記憶されている、前記仮想ゲーム世界における前記プレイヤオブジェクトの前進方向を示す情報を随時更新する前進方向決定手段、
入力装置から入力されるプレイヤの前進指示を検出する前進指示検出手段、および
前記前進指示検出手段によって検出されたプレイヤの前進指示に応じて、記憶装置に記憶されている前記前進方向を示す情報によって示される方向に前記プレイヤオブジェクトが移動又は加速するように、記憶装置に記憶されている前記現在位置を示す情報を更新する前進移動制御手段を備える、ゲームシステム。
【請求項１６】
プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームを実行するゲームシステムであって、
記憶装置に記憶されている前記プレイヤオブジェクトの現在位置を示す情報に基づいて、前記プレイヤオブジェクトを表示装置の画面に表示する表示制御手段、
記憶装置に記憶されている、仮想ゲーム世界の任意の位置における前記プレイヤオブジェクトの左右移動方向を定義したデータと、前記現在位置を示す情報とに基づいて、当該現在位置における当該左右移動方向を定義したデータを参照して、記憶装置に記憶されている、前記仮想ゲーム世界における前記プレイヤオブジェクトの左右移動方向を示す情報を随時更新する左右移動方向決定手段、
入力装置から入力されるプレイヤの左右移動指示を検出する左右移動指示検出手段、および
前記左右移動指示検出手段によって検出されたプレイヤの左右移動指示に応じて、記憶装置に記憶されている前記左右移動方向を示す情報によって示される方向に前記プレイヤオブジェクトが移動又は加速するように、記憶装置に記憶されている前記現在位置を示す情報を更新する左右移動制御手段を備える、ゲームシステム。
【請求項１７】
プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームを実行するゲームシステムであって、
記憶装置に記憶されている前記プレイヤオブジェクトの現在位置を示す情報に基づいて、前記プレイヤオブジェクトを表示装置の画面に表示する表示制御手段、
記憶装置に記憶されている、仮想ゲーム世界の任意の位置における前記プレイヤオブジェクトの直交移動方向を定義したデータと、前記現在位置を示す情報とに基づいて、当該現在位置における当該直交移動方向を定義したデータを参照して、記憶装置に記憶されている、前記仮想ゲーム世界における前記プレイヤオブジェクトの直交移動方向を示す情報を随時更新する直交移動方向決定手段、
入力装置から入力されるプレイヤの直交移動指示を検出する直交移動指示検出手段、および
前記直交移動指示検出手段によって検出されたプレイヤの直交移動指示に応じて、記憶装置に記憶されている前記直交移動方向を示す情報によって示される方向に前記プレイヤオブジェクトが移動又は加速するように、記憶装置に記憶されている前記現在位置を示す情報を更新する直交移動制御手段を備える、ゲームシステム。
【請求項１８】
プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームを実行するゲーム装置のコンピュータによって実行されるゲーム処理方法であって、
記憶装置に記憶されている前記プレイヤオブジェクトの現在位置を示す情報に基づいて、前記プレイヤオブジェクトを表示装置の画面に表示する表示制御ステップ、
記憶装置に記憶されている、仮想ゲーム世界の任意の位置における前記プレイヤオブジェクトの前進方向を定義したデータと、前記現在位置を示す情報とに基いて、当該現在位置における当該前進方向を定義したデータを参照して、記憶装置に記憶されている、前記仮想ゲーム世界における前記プレイヤオブジェクトの前進方向を示す情報を随時更新する前進方向決定ステップ、
入力装置から入力されるプレイヤの前進指示を検出する前進指示検出ステップ、および
前記前進指示検出ステップにおいて検出されたプレイヤの前進指示に応じて、記憶装置に記憶されている前記前進方向を示す情報によって示される方向に前記プレイヤオブジェクトが移動又は加速するように、記憶装置に記憶されている前記現在位置を示す情報を更新する前進移動制御ステップを備える、ゲーム処理方法。
【請求項１９】
プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームを実行するゲーム装置のコンピュータによって実行されるゲーム処理方法であって、
記憶装置に記憶されている前記プレイヤオブジェクトの現在位置を示す情報に基づいて、前記プレイヤオブジェクトを表示装置の画面に表示する表示制御ステップ、
記憶装置に記憶されている、仮想ゲーム世界の任意の位置における前記プレイヤオブジェクトの左右移動方向を定義したデータと、前記現在位置を示す情報とに基づいて、当該現在位置における当該左右移動方向を定義したデータを参照して、記憶装置に記憶されている、前記仮想ゲーム世界における前記プレイヤオブジェクトの左右移動方向を示す情報を随時更新する左右移動方向決定ステップ、
入力装置から入力されるプレイヤの左右移動指示を検出する左右移動指示検出ステップ、および
前記左右移動指示検出ステップにおいて検出されたプレイヤの左右移動指示に応じて、記憶装置に記憶されている前記左右移動方向を示す情報によって示される方向に前記プレイヤオブジェクトが移動又は加速するように、記憶装置に記憶されている前記現在位置を示す情報を更新する左右移動制御ステップを備える、ゲーム処理方法。
【請求項２０】
プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームを実行するゲーム装置のコンピュータによって実行されるゲーム処理方法であって、
記憶装置に記憶されている前記プレイヤオブジェクトの現在位置を示す情報に基づいて、前記プレイヤオブジェクトを表示装置の画面に表示する表示制御ステップ、
記憶装置に記憶されている、仮想ゲーム世界の任意の位置における前記プレイヤオブジェクトの直交移動方向を定義したデータと、前記現在位置を示す情報とに基づいて、当該現在位置における当該直交移動方向を定義したデータを参照して、記憶装置に記憶されている、前記仮想ゲーム世界における前記プレイヤオブジェクトの直交移動方向を示す情報を随時更新する直交移動方向決定ステップ、
入力装置から入力されるプレイヤの直交移動指示を検出する直交移動指示検出ステップ、および
前記直交移動指示検出ステップにおいて検出されたプレイヤの直交移動指示に応じて、記憶装置に記憶されている前記直交移動方向を示す情報によって示される方向に前記プレイヤオブジェクトが移動又は加速するように、記憶装置に記憶されている前記現在位置を示す情報を更新する直交移動制御ステップを備える、ゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法に関する。
【背景技術】
【０００２】
特許文献１には、プレイヤが操作するオブジェクトの移動速度を、カーブにおけるオブジェクトの位置に応じて補正することが開示されている。例えば、オブジェクトがカーブの内側にいる場合には移動速度を増加するように補正し、オブジェクトがカーブの外側にいる場合には移動速度を減少するように補正する。これにより、カーブへの進入速度が速すぎてオブジェクトがカーブの外側にコースアウトしそうな状況でも、移動速度が自動的に減速されるので、オブジェクトはコースアウトすることなくカーブを抜けることができる。
【特許文献１】特開２００４−２３６７９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記特許文献１に記載の技術によれば、速度の補正がされるものの、移動方向の補正が全くされなかった。  
【０００４】
それゆえに本発明の目的は、プレイヤが操作するオブジェクトの移動方向を補助的に決定することが可能なゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法を提供することである。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号は本発明の理解を助けるために図面との対応関係の一例を示したものであって、本発明の範囲を何ら限定するものではない。
【０００６】
本発明のゲームプログラムは、プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームプログラムである。このゲームプログラムは、ゲーム装置（３）のコンピュータ（３１）を、以下のように機能させる。
・プレイヤオブジェクトを表示装置（２）の画面に表示する表示制御手段（Ｓ３６）
・仮想ゲーム世界に設定されたプレイヤオブジェクトの前進方向を決定するためのデータ（４３）に基いて、仮想ゲーム世界における前記プレイヤオブジェクトの現在位置に対応する前進方向を決定する前進方向決定手段（Ｓ１８）
・入力装置（６）から入力されるプレイヤの前進指示を検出する前進指示検出手段
・前進指示検出手段によって検出されたプレイヤの前進指示に応じて、前進方向決定手段によって決定された前進方向に向かって前記プレイヤオブジェクトを移動又は加速させる前進移動制御手段（Ｓ２０、Ｓ２８、Ｓ３０）
ここで、「前進方向を決定するためのデータ」は、仮想ゲーム世界における位置または領域に対応して仮想ゲーム世界における前進方向を決定するために予め定められるデータであり、仮想ゲーム世界における方向データ（方向ベクトル）そのものであってもよいし、仮想ゲーム世界における結び付けられた複数の位置データであってもよいし（この場合には、当該複数の位置データを結ぶ方向が利用される）、方向ベクトルを決定するための所定の数式であってもよい。このようなデータが、仮想ゲーム世界のそれぞれの位置や領域ごとに設定される。また、一部の位置または領域について設定して、他の位置または領域については近い位置のものを利用したり、近似や補間により決定してもよい。なお、「前進方向」は、例えば、レースゲームなど仮想ゲーム世界にコースが設定されてプレイヤオブジェクトがそのコースに沿って進行するようなゲームにおいて、コースの方向を示すものである。
なお、キャラクタの向き（姿勢）は必ずしもキャラクタの前進方向と一致している必要はない。
【０００７】
また、本発明のゲームプログラムは、コンピュータを、さらに、以下のように機能させてもよい。
・前進方向を決定するためのデータに基いて、仮想ゲーム世界における前記プレイヤオブジェクトの現在位置に対応する左右移動方向を決定する左右移動方向決定手段（Ｓ１８）
・入力装置から入力されるプレイヤの左右移動指示を検出する左右移動指示検出手段
・左右移動指示検出手段によって検出されたプレイヤの左右移動指示に応じて、左右移動方向決定手段によって決定された左右移動方向に前記プレイヤオブジェクトを移動又は加速させる左右移動制御手段（Ｓ２２、Ｓ２８、Ｓ３０）
【０００８】
また、前進方向を決定するためのデータは、仮想ゲーム世界における順序づけられた複数の制御点の座標値（６０）を含んでもよく。前進方向決定手段は、少なくとも、プレイヤオブジェクトの現在位置に一番近い第１の制御点と当該第１の制御点より順序が１つ前または後の第２の制御点とを結ぶ第１ベクトルに基いて、前進方向を決定してもよい。
なお、前進方向決定手段は、さらに、第２の制御点と第２の制御点より順序が１つ前または後の第３の制御点とを結ぶ第２ベクトルに基づいて前進方向を決定してもよい。
ここで、制御点は、所定時点（ゲーム開始時点や所定条件を満たした時点など）におけるプレイヤオブジェクトの仮想ゲーム世界における位置に一番近い制御点を先頭に、順序づけられたデータであり、１番目の制御点（上記所定時点における位置に一番近い制御点）、２番目の制御点、３番目の制御点・・・としたときに、２番目の制御点は１番目の制御点より順序が後の制御点である。
【０００９】
また、複数の制御点のうち順序が最初の制御点は、プレイヤオブジェクトのゲーム開始時点（スタート地点）における仮想ゲーム世界における位置に一番近い制御点であってもよく、前進方向決定手段は、第１制御点と当該第１制御点より順序が１つ後の第２制御点とを結ぶ第１ベクトルと、第２制御点と当該第２制御点より順序が１つ後の第３制御点とを結ぶ第２ベクトルの、少なくとも２つのベクトルにより得られるベクトルに基いて、前進方向を決定してもよい。
ここで、前進方向決定手段は、第１ベクトルと第２ベクトルを平均（または加重平均）したベクトルを前進方向としてもよい。また、そのほかのベクトル（第３制御点と当該第３制御点より順序が１つ後の第４制御点とを結ぶ第３ベクトル）を利用してもよい。
また、第１制御点と当該第１制御点より順序が１つ前の第５制御点とを結ぶ第４ベクトルを利用してもよい。
【００１０】
また、仮想ゲーム世界には前記プレイヤオブジェクトが移動可能なコースが設定され、制御点は前記コース上に設定されてもよい。
【００１１】
また、表示制御手段は、仮想ゲーム世界に設定された仮想カメラに基づいて前記プレイヤオブジェクトを含むゲーム画像を生成してもよく、本発明のゲームプログラムは、コンピュータを、さらに、以下のように機能させてもよい。
・プレイヤオブジェクトの現在位置よりも一定距離だけ先の地点に対応する前進方向に応じて、仮想カメラの撮影方向を決定する仮想カメラ制御手段（Ｓ３４）
なお、「一定距離」は、必ずしも「常に一定」とは限らず、例えばコースが変わる毎に変化してもよいし、コース中に設定されたエリアが変わる毎に変化してもよい。
また、「プレイヤオブジェクトの現在位置よりも一定距離だけ先の地点」は、例えば、プレイヤオブジェクトの現在位置に対応するパスコース上の位置を一定距離だけパスコースに沿って進めた地点でもよいし、現在のプレイヤオブジェクトの前進方向または移動方向に所定距離（現在の進行速度に応じた距離でもよいし一定距離でもよい）だけ進めた地点でもよい。「プレイヤオブジェクトの現在位置よりも一定距離だけ先の地点に対応する前進方向」は、このようにして決定された地点について前進方向決定手段と同様の処理で求められる前進方向である。
【００１２】
また、ゲーム装置は、第１操作部（６Ｒ）および第２操作部（６Ｌ）を備えてもよく、前進指示検出手段は、第１操作部と第２操作部が交互に操作されることを検出し、左右移動指示検出手段は、第１操作部または第２操作部が単独で操作されることを検出してもよい。
ここで、前進指示検出手段は、第１操作部と第２操作部が交互に操作されることを検出する。また、左右移動指示検出手段は、第１操作部または第２操作部が単独で操作されることを検出する（「単独で」とは、その操作部が１回だけ操作されること、または、その操作部が連続的に操作されることを意味する。）例えば、第１操作部と第２操作部の操作履歴をゲーム装置内部のメモリに記憶しておいて（複数記憶する場合は順序付きで記憶する）、第１操作部が操作されたときに（または操作されるごとに）、前回、第１操作部と第２操作部のうちいずれが操作されたかをチェックして、前回第１操作部が操作されているときには、第１操作部が単独で操作されているとし、前回第２操作部が操作されているときには交互操作されているとする。また、第２操作部が操作されたときに、前回、第１操作部と第２操作部のうちいずれが操作されたかをチェックして、前回第２操作部が操作されているときには、第２操作部が単独で操作されているとし、前回第１操作部が操作されているときには交互操作されているとする。なお、一定時間内に第１操作部と第２操作部の操作のいずれも無いときには、これまでの操作履歴情報をクリアして、次の操作を初回の操作としてもよい。また、第１操作部が操作されたときや第２操作部が操作されたときに、それが初回の操作であったときは、前進移動させてもよいし、左右移動させてもよいし、なんら移動させなくてもよい。さらに、第１操作部の操作が３回以上連続したときに初めて、第１操作部の単独操作があったと判定してもよく（第２操作部の操作も同様）、また、第１操作部と第２操作部の交互操作が３回以上連続したときに初めて、交互操作があったと判定してもよい。また、第１操作部と第２操作部以外の操作部（第３操作部）があったときに、第３操作部の操作は考慮せずに判定をしてもよいし、考慮して判定してもよい。すなわち、例えば、「第１操作部の操作→第３操作部の操作→第２操作部の操作」であったとき、前者の場合、交互操作であると判定され、後者の場合、交互操作でないと判定される。
【００１３】
また、本発明の他のゲームプログラムは、プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームプログラムである。このゲームプログラムは、ゲーム装置（３）のコンピュータ（３１）を、以下のように機能させる。
・プレイヤオブジェクトを表示装置（２）の画面に表示する表示制御手段（Ｓ３６）
・仮想ゲーム世界に設定された前記プレイヤオブジェクトの左右移動方向を決定するための方向データ（４３）に基づいて、仮想ゲーム世界における前記プレイヤオブジェクトの現在位置に対応する左右移動方向を決定する左右移動方向決定手段（Ｓ１８）
・入力装置（６）から入力されるプレイヤの左右移動指示を検出する左右移動指示検出手段
・左右移動指示検出手段によって検出されたプレイヤの左右移動指示に応じて、左右移動方向決定手段によって決定された左右移動方向に前記プレイヤオブジェクトを移動又は加速させる左右移動制御手段（Ｓ２２、Ｓ２８、Ｓ３０）
ここで、「左右移動方向を決定するためのデータ」は、仮想ゲーム世界における位置または領域に対応して仮想ゲーム世界における左右移動方向を決定するために予め定められるデータであり、仮想ゲーム世界における方向データ（方向ベクトル）そのものであってもよいし、仮想ゲーム世界における結び付けられた複数の位置データであってもよいし（この場合には、当該複数の位置データを結ぶ方向が利用される）、方向ベクトルを決定するための所定の数式であってもよい。また、「左右移動方向を決定するためのデータ」は、前進方向を示すためのデータであってもよく、この場合には、左右移動方向決定手段は、当該前進方向を示すためのデータに基づいて左右移動方向を決定する。なお、「左右移動方向」は、例えば、レースゲームなど仮想ゲーム世界にコースが設定されてプレイヤオブジェクトがそのコースに沿って進行するようなゲームにおいて、コースの方向を基準とする左右方向を示すものであり、代表的には、コースの方向に対して垂直な方向であるが、コースの方向に対して、所定の角度（０度を除く）を成す方向であってもよく、好ましくは、左移動方向と右移動方向がコースの方向を基準として左右対称な方向であるか、または、左移動方向と右移動方向が直線上に並ぶ方向である。
【００１４】
また、本発明のさらに他のゲームプログラムは、プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームプログラムである。このゲームプログラムは、ゲーム装置（３）のコンピュータ（３１）を、以下のように機能させる。
・プレイヤオブジェクトを表示装置（２）の画面に表示する表示制御手段（Ｓ３６）
・仮想ゲーム世界に設定された前記プレイヤオブジェクトの直交移動方向を決定するための方向データ（４３）に基づいて、仮想ゲーム世界における前記プレイヤオブジェクトの現在位置に対応する直交移動方向を決定する直交移動方向決定手段（Ｓ１８）
・入力装置（６）から入力されるプレイヤの直交移動指示を検出する直交移動指示検出手段
・直交移動指示検出手段によって検出されたプレイヤの直交移動指示に応じて、直交移動方向決定手段によって決定された直交移動方向に前記プレイヤオブジェクトを移動又は加速させる直交移動制御手段（Ｓ２２、Ｓ２８、Ｓ３０）
ここで、「直交移動方向」は、前進方向（例えば、コースの方向）に対して直交な方向であり、例えば、前進方向に対して左右方向であってもよいし、上下方向であってもよい。
【００１５】
本発明のゲーム装置は、プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームを実行するゲーム装置であり、以下の手段を備える。
・プレイヤオブジェクトを表示装置（２）の画面に表示する表示制御手段（３１、Ｓ３６）
・仮想ゲーム世界に設定されたプレイヤオブジェクトの前進方向を決定するためのデータ（４３）に基いて、仮想ゲーム世界におけるプレイヤオブジェクトの現在位置に対応する前進方向を決定する前進方向決定手段（３１、Ｓ１８）
・入力装置（６）から入力されるプレイヤの前進指示を検出する前進指示検出手段（３１）
・前進指示検出手段によって検出されたプレイヤの前進指示に応じて、前進方向決定手段によって決定された前進方向に向かって前記プレイヤオブジェクトを移動又は加速させる前進移動制御手段（３１、Ｓ２０、Ｓ２８、Ｓ３０）
【００１６】
本発明の他のゲーム装置は、プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームを実行するゲーム装置であり、以下の手段を備える。
・前記プレイヤオブジェクトを表示装置（２）の画面に表示する表示制御手段（３１、Ｓ３６）
・前記仮想ゲーム世界に設定された前記プレイヤオブジェクトの左右移動方向を決定するための方向データ（４３）に基づいて、前記仮想ゲーム世界における前記プレイヤオブジェクトの現在位置に対応する左右移動方向を決定する左右移動方向決定手段（３１、Ｓ１８）
・入力装置（６）から入力されるプレイヤの左右移動指示を検出する左右移動指示検出手段（３１）
・前記左右移動指示検出手段によって検出されたプレイヤの左右移動指示に応じて、前記左右移動方向決定手段によって決定された左右移動方向に前記プレイヤオブジェクトを移動又は加速させる左右移動制御手段（３１、Ｓ２２、Ｓ２８、Ｓ３０）
【００１７】
本発明のさらに他のゲーム装置は、プレイヤの操作に応じて仮想ゲーム世界におけるプレイヤオブジェクトを移動させるためのゲームを実行するゲーム装置であり、以下の手段を備える。
・前記プレイヤオブジェクトを表示装置（２）の画面に表示する表示制御手段（３１、Ｓ３６）
・前記仮想ゲーム世界に設定された前記プレイヤオブジェクトの直交移動方向を決定するための方向データ（４３）に基づいて、前記仮想ゲーム世界における前記プレイヤオブジェクトの現在位置に対応する直交移動方向を決定する直交移動方向決定手段（３１、Ｓ１８）
・入力装置（６）から入力されるプレイヤの直交移動指示を検出する直交移動指示検出手段（３１）
・前記直交移動指示検出手段によって検出されたプレイヤの直交移動指示に応じて、前記直交移動方向決定手段によって決定された直交移動方向に前記プレイヤオブジェクトを移動又は加速させる直交移動制御手段（３１、Ｓ２２、Ｓ２８、Ｓ３０）
【発明の効果】
【００１８】
本発明によれば、プレイヤが操作するオブジェクトの移動方向を補助的に決定することができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して、本発明の一実施形態に係るゲームシステムについて説明する。
【００２０】
図１は、本発明の一実施形態に係るゲームシステムの構成を示す外観図である。図１に示すように、ゲームシステム１は、テレビ２、ゲーム機本体３、ＤＶＤ−ＲＯＭ４、メモリカード５およびコンガ型コントローラ６を備える。ＤＶＤ−ＲＯＭ４およびメモリカード５は、ゲーム機本体３に着脱自在に装着される。コンガ型コントローラ６は、通信ケーブルを介して、ゲーム機本体３に設けられた４つのコントローラポート用コネクタのいずれかに接続される。テレビ２は、ＡＶケーブル等によってゲーム機本体３と接続される。なお、ゲーム機本体３とコントローラ６との通信は無線通信であってもよい。
【００２１】
コンガ型コントローラ６には、スタートボタン６Ｓ、右叩き面６Ｒ、左叩き面６Ｌの３つのスイッチと、マイクロフォン６Ｍが設けられている。後述するように、プレイヤは、右叩き面６Ｒまたは左叩き面６Ｌを叩くことによって、仮想ゲーム世界におけるキャラクタの動作を制御することができる。
【００２２】
なお、コンガ型コントローラ６の替わりに、図２のような一般的なコントローラ７を使用してもよい。このコントローラ７には、スタートボタン７Ｓ、Ａボタン７Ａ、Ｒボタン７Ｒ、Ｌボタン７Ｌなどの複数のスイッチが設けられている。
【００２３】
ＤＶＤ−ＲＯＭ４は、ゲームプログラムやゲームデータ等を固定的に記憶している。プレイヤがゲームをプレイするとき、ＤＶＤ−ＲＯＭ４はゲーム機本体３に装着される。なお、ゲームプログラム等を記憶する手段として、ＤＶＤ−ＲＯＭ４の代わりに例えばＣＤ−ＲＯＭ、ＭＯ、メモリカード、ＲＯＭカートリッジ等の外部記憶媒体を用いてもよい。
【００２４】
ゲーム機本体３は、ＤＶＤ−ＲＯＭ４に記録されているゲームプログラムを読み出し、読み出したゲームプログラムに応じた処理を行う。
【００２５】
テレビ２は、ゲーム機本体３から出力された画像データを画面に表示する。
【００２６】
メモリカード５は、例えばフラッシュメモリ等の書き換え可能な記憶媒体をバックアップメモリとして備えており、このバックアップメモリに例えばゲームのセーブデータ等のデータを記録する。
【００２７】
図３は、ゲーム機本体３の内部構成を示すブロック図である。以下、図３を参照しながら、ゲームシステム１の各部についてより詳細に説明する。
【００２８】
図３において、ゲーム機本体３は、ＣＰＵ３１と、ワークメモリ３２と、外部メモリインターフェース（Ｉ／Ｆ）３３と、コントローラインターフェース（Ｉ／Ｆ）３４と、ビデオＲＡＭ（ＶＲＡＭ）３５と、グラフィックスプロセッシングユニット（ＧＰＵ）３６と、光ディスクドライブ３７とを備えている。
【００２９】
ゲーム開始の際、まず、光ディスクドライブ３７は、ゲーム機本体３に装着されたＤＶＤ−ＲＯＭ４を駆動する。ＤＶＤ−ＲＯＭ４に記憶されているゲームプログラムはワークメモリ３２にロードされる。このワークメモリ３２上のプログラムをＣＰＵ３１が実行することによってゲームが開始される。ゲーム開始後、プレイヤは、コンガ型コントローラ６を用いてゲームをプレイする。プレイヤの操作に従い、コンガ型コントローラ６は操作データをゲーム機本体３に出力する。コンガ型コントローラ６から出力される操作データは、コントローラＩ／Ｆ３４を介してＣＰＵ３１に供給される。ＣＰＵ３１は、入力された操作データに応じてゲーム処理を行う。ゲーム処理における画像データ生成等に際して、ＧＰＵ３６が用いられる。
【００３０】
ＧＰＵ３６は、３次元の仮想ゲーム世界に置かれた物体や図形に関する立体モデル（例えばポリゴンで構成されるオブジェクト）の座標についての演算処理（例えば立体モデルの回転・拡大縮小・変形や、ワールド座標系の座標からカメラ座標系やスクリーン座標系の座標への変換）を行う。またＧＰＵ３６は、所定のテクスチャに基づいて、スクリーン座標に投影された立体モデルについて各ピクセルのカラーデータ（ＲＧＢデータ）をＶＲＡＭ３５に書き込むことによって、ゲーム画像を生成する。ＧＰＵ３６は、こうしてテレビ２に表示すべきゲーム画像を生成し、このゲーム画像をテレビ２に適宜出力する。なお本実施形態では、画像処理専用のメモリ（ＶＲＡＭ３５）を別途設けたハードウェア構成としたが、これに限らず例えばワークメモリ３２の一部を画像処理用のメモリとして利用する方式（ＵＭＡ：Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ）を採用してもよい。
【００３１】
ワークメモリ３２には、ＤＶＤ−ＲＯＭ４から読み出された各種プログラムやデータが格納される。これらのデータの中には、仮想ゲーム世界に配置される３次元モデルを構成するポリゴンに関するデータや、ポリゴンに色を貼り付けるためのテクスチャ等が含まれる。
【００３２】
図４は、テレビ２の画面に表示されるゲーム画像の一例である。なお、本実施形態では、本発明をレースゲームに適用した場合の例を説明するが、本発明はこれに限らず、任意のゲームに適用可能である。
【００３３】
テレビ２の画面には、仮想ゲーム世界に設置されたレースコースと、プレイヤによって操作されるプレイヤキャラクタと、レースコース上に配置された障害物やコインが表示される。プレイヤはコンガ型コントローラ６を用いて、できるだけ障害物に当たらないように、かつできるだけ多くのコインを獲得できるように、かつできるだけ早くゴールに到着できるようにプレイヤキャラクタを操作する。
【００３４】
プレイヤがコンガ型コントローラ６を用いて入力することのできる指示としては、例えば、加速指示、右移動指示、左移動指示、減速指示が挙げられる。
【００３５】
加速指示は、コンガ型コントローラ６の右叩き面６Ｒと左叩き面６Ｌを交互に連打することによって入力することができる。加速指示が入力されると、キャラクタは前方（キャラクタの前進方向）に加速する。このとき、右叩き面６Ｒと左叩き面６Ｌを交互に連打する速さが速いほど（例えば１秒間に叩く回数が多いほど）、キャラクタはより大きく加速する。
【００３６】
右移動指示は、コンガ型コントローラ６の右叩き面６Ｒを連打することによって入力することができる。右移動指示が入力されると、キャラクタは右方向（キャラクタの前進方向を基準とする右方向）に移動する。このとき、プレイヤが右叩き面６Ｒを素早く連打するほど、キャラクタは右方向により早く移動する。
【００３７】
左移動指示は、コンガ型コントローラ６の左叩き面６Ｌを連打することによって入力することができる。左移動指示が入力されると、キャラクタは左方向（キャラクタの前進方向を基準とする左方向）に移動する。このとき、プレイヤが左叩き面６Ｌを素早く連打するほど、キャラクタは左方向により早く移動する。
【００３８】
減速指示は、コンガ型コントローラ６の右叩き面６Ｒと左叩き面６Ｌの両方を一定時間以上長押しすることによって入力することができる。減速指示が入力されると、キャラクタは減速する。
【００３９】
なお本実施形態では、図５に示すように、仮想ゲーム世界に設置されたレースコースに沿って前進方向ラインが設定されており、キャラクタの前進方向は、常にこの前進方向ラインに平行となるように随時更新される。プレイヤが前述の加速指示を入力すると、キャラクタの速度の前進方向に関する成分の大きさが増加する。同様に、プレイヤが前述の減速指示を入力すると、キャラクタの速度の前進方向に関する成分の大きさが減少する。なお、前進方向ラインは、図１８に示すように１本から複数本に分岐してもよいし、図１９に示すように複数本から１本に合流してもよい。
【００４０】
また、キャラクタにとっての右方向は、前進方向に対して垂直な方向であって、なおかつ前進方向に向かって右向きの方向である。プレイヤが前述の右移動指示を入力したときには、キャラクタはこの右方向に移動する。プレイヤが前述の左移動指示を入力したときには、キャラクタは右方向とは逆方向に移動する。
【００４１】
このように、本実施形態では、キャラクタの前進方向が前進方向ラインに常に平行になるように随時更新される。よって、プレイヤは、キャラクタがカーブを通過するときにキャラクタの現在の移動方向を一切気にすることなく、単に右移動指示または左移動指示を入力するだけで容易にキャラクタをカーブの内側（例えばコース右側ラインの付近）に移動させたり外側（例えばコース左側ラインの付近）に移動させたりすることができる。特に、従来のレースゲームでは、カーブでハンドルを切りすぎるとキャラクタがコース方向に対して垂直方向や逆方向を向いてしまうことがあり、一旦そうなってしまうとキャラクタを再び正常な方向に走行させるのに手間がかかってしまっていたが、本実施形態ではそのようなことは起こらないため操作性が著しく向上する。
【００４２】
以下、本実施形態におけるゲーム機本体３の動作を詳細に説明する。
【００４３】
図６は、ワークメモリ３２のメモリマップである。ワークメモリ３２には、ゲームプログラム４０、ゲーム画像データ４１、レースコースデータ４２、前進方向ラインデータ４３、制御点データ４４、およびキャラクタ制御データ４５が格納される。
【００４４】
ゲーム画像データ４１は、テレビ２の画面に表示されるゲーム画像を生成するためのデータであって、キャラクタ画像と背景画像を含んでいる。
【００４５】
レースコースデータ４２は、仮想ゲーム世界に設定されたレースコースの形状を示すデータである。
【００４６】
前進方向ラインデータ４３は、図５に示した前進方向ラインを示すデータであって、ゲーム実行時にＤＶＤ−ＲＯＭ４から読み出されてワークメモリ２２に格納される。本実施形態では、前進方向ラインは順序づけられた複数の制御点の集合によって定義されている（図１３のＰ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５。なお、Ｐ１が一番最初の（すなわちスタート地点に一番近い）制御点である）。これらの複数の制御点は離散的なデータであるが、これらの制御点を必要に応じてスプライン曲線で補間することによって、連続的で滑らかな前進方向ラインを得ることができる。
【００４７】
図７は、前進方向ラインデータ４３の具体例である。図７において、前進方向ラインデータ４３には、制御点の個数５０、各制御点の３次元座標５１、各制御点の法線ベクトル５２、および分岐情報５３が含まれている。制御点は、１コースにつき例えば２００〜３００個の制御点が設定されている。また、各制御点には、この制御点におけるコースの傾きを示す法線ベクトル（走行面に対して垂直上向き方向を示す単位ベクトル）が設定されている。分岐情報５３は、前進方向ラインの分岐点（図１８の制御点Ｐ１２）や合流点（図１９の制御点Ｐ３３）に関する情報である。
【００４８】
図６において、制御点データ４４は、ゲーム開始時に前進方向ラインデータ４３に基づいて制御点毎に設定されるデータである。
【００４９】
図８は、制御点データ４４の具体例である。図８において、制御点データ４４には、制御点毎に、３次元座標６０、前進方向ベクトル６１、上方向ベクトル６２、右方向ベクトル６３、カーブ率、およびスタート地点からの累積距離６５が含まれている。
また、図示しないが、制御点は順序付けられており、例えば、メモリに格納される順番が制御点の順番であり、または、制御点ごとに順序データが記憶されてもよいし、制御点ごとに次の制御点を示す情報が記憶されてもよい。
【００５０】
前進方向ベクトル６１、上方向ベクトル６２、および右方向ベクトル６３は、前述のキャラクタの前進方向や右方向等を決定するために用いられる。
【００５１】
前進方向ベクトル６１は、その制御点において前進方向ラインが伸びている方向を示す単位ベクトルであり、言い換えると、その制御点における前進方向ラインの接線方向またはそれに近い方向を示す単位ベクトルである。本実施形態では、一例として、図１３の制御点Ｐ３の前進方向ベクトル６１は、一つ前の制御点Ｐ２からこの制御点Ｐ３に向かう方向を有する単位ベクトルと、この制御点Ｐ３から一つ後の制御点Ｐ４に向かう方向を有する単位ベクトルとを平均することによって求められる。前進方向ベクトル６１などは、予め算出して、ＤＶＤ−ＲＯＭ４に記憶しておいてもよいし、ゲーム開始時に制御点の３次元座標に基いて算出してもよいし、ゲーム中に随時計算してもよい。なお、図１３において、点Ｐｃはキャラクタの現在位置を示している。
【００５２】
上方向ベクトル６２は、その制御点の法線ベクトル５２と同じである。
【００５３】
右方向ベクトル６３は、その制御点の前進方向ベクトル６１に垂直でかつ上方向ベクトル６２に垂直でかつ前進方向に向かって右方向を指す単位ベクトルであり、前進方向ベクトル６１と上方向ベクトル６２に基づいて決定される。
【００５４】
カーブ率６４は、その制御点における前進方向ラインの曲率（すなわちコースの曲率）を示している。本実施形態では、一例として、図１３の制御点Ｐ３のカーブ率６４には、制御点Ｐ２から制御点Ｐ３に向かうベクトルに対する、制御点Ｐ３から制御点Ｐ４に向かうベクトルの相対角度が設定される。よって、カーブ率６４が０である場合にはその制御点において前進方向ラインは直線状であり、カーブ率６４の絶対値が大きいほどその制御点において前進方向ラインが大きく曲がっていることになる。
【００５５】
スタート地点からの累積距離６５は、仮想ゲーム世界に設定されたコースのスタート地点から、その制御点までの距離（道のり）である。
【００５６】
図６において、キャラクタ制御データ４５は、仮想ゲーム世界におけるキャラクタの移動や姿勢を制御するためのデータであって、ゲーム進行中に随時更新される。
【００５７】
図９は、キャラクタ制御データ４５の具体例である。図９において、キャラクタ制御データ４５には、現在位置７０、前進方向ベクトル７１、上方向ベクトル７２、右方向ベクトル７３、カーブ率７４、スタート地点からの累積距離７５、前進方向ライン上での現在位置７６、内部速度７７、左右移動入力値７８、前進ベクトル７９、左右移動ベクトル８０、慣性ベクトル８１、重力ベクトル８２、および移動ベクトル８３が含まれている。
【００５８】
現在位置７０は、仮想ゲーム世界におけるキャラクタの現在位置を示す３次元座標である。
【００５９】
前進方向ベクトル７１は、図１１に示すように、前述のキャラクタの前進方向を示す単位ベクトルである。キャラクタの前進方向ベクトル７１は、キャラクタの現在位置の近傍にある２つの制御点（より正確には、キャラクタの現在位置よりもコース後方側にある最も近い制御点と、キャラクタの現在位置よりもコース前方側にある最も近い制御点）の前進方向ベクトル６１に基づく補間処理により決定される。この補間処理の詳細は後述する。
【００６０】
上方向ベクトル７２は、図１１に示すように、キャラクタの上方向を示す単位ベクトルである。キャラクタの上方向ベクトル７２は、前進方向ベクトル７１と同様に、キャラクタの現在位置の近傍にある２つの制御点の上方向ベクトル６２に基づく補間処理により決定される。
【００６１】
右方向ベクトル７３は、図１１に示すように、前述のキャラクタの右方向を示す単位ベクトルである。キャラクタの右方向ベクトル７３は、前進方向ベクトル７１と同様に、キャラクタの現在位置の近傍にある２つの制御点の右方向ベクトル６３に基づく補間処理により決定される。
【００６２】
カーブ率７４は、キャラクタの現在位置における前進方向ラインの曲率（すなわちコースの曲率）を示している。カーブ率７４は、前進方向ベクトル７１と同様に、キャラクタの現在位置の近傍にある２つの制御点のカーブ率６４に基づく補間処理により決定される。
【００６３】
スタート地点からの累積距離７５は、仮想ゲーム世界に設定されたコースのスタート地点から、キャラクタの現在位置までの距離（道のり）である。本実施形態では、仮想ゲーム世界に設定されたコースのスタート地点から、後述する前進方向ライン上でのキャラクタの現在位置７６までの距離（道のり）を、スタート地点からの累積距離７５として設定する。
【００６４】
前進方向ライン上でのキャラクタの現在位置７６は、キャラクタの現在位置７０に対応する前進方向ライン上の位置であって、例えば、図１３に示すように、キャラクタの現在位置７０を前進方向ラインに対して垂直方向に前進方向ライン上に投影することによってその位置が決定される。
【００６５】
内部速度７７は、キャラクタの移動速度の大きさを示すスカラー値である。内部速度７７は、プレイヤによる加速指示、減速指示や、地形の影響により増減する。
【００６６】
左右移動入力値７８は、キャラクタの右方向への移動速度の大きさを示すスカラー値である。左右移動入力値７８には、プレイヤによる右移動指示に応じて正の値が設定され、プレイヤによる左移動指示に応じて負の値が設定される。
【００６７】
前進ベクトル７９、左右移動ベクトル８０、慣性ベクトル８１、および重力ベクトル８２は、各フレームにおいてキャラクタの移動先（すなわち移動方向および移動距離）を決定するために利用されるベクトルである。
【００６８】
前進ベクトル７９は、図１２に示すように、キャラクタの前進方向ベクトル７１と同じ方向のベクトルであって、その大きさは内部速度７７に応じた大きさとなる。
【００６９】
左右移動ベクトル８０は、図１２に示すように、キャラクタの右方向ベクトル７３と同じまたは逆方向のベクトルである。左右移動ベクトル８０の向きは左右移動入力値７８の符号に依存して変化し、左右移動入力値７８が正である場合（すなわちプレイヤによる右移動指示が入力された場合）には左右移動ベクトル８０の向きはキャラクタの右方向ベクトル７３と同じ向きとなり、左右移動入力値７８が負である場合（すなわちプレイヤによる左移動指示が入力された場合）には左右移動ベクトル８０の向きはキャラクタの右方向ベクトル７３と逆向きとなる。左右移動ベクトル８０の大きさは左右移動入力値７８の絶対値に応じた大きさとなる。
【００７０】
慣性ベクトル８１は、図１２に示すように、キャラクタの右方向ベクトル７３と同じまたは逆方向のベクトルである。慣性ベクトル８１は、カーブを曲がっているキャラクタを遠心力によりカーブの外側に向かって移動させるように機能するベクトルである。慣性ベクトル８１の向きはキャラクタ制御データにおけるカーブ率７４の符号に依存して変化し、カーブ率７４の符号が右方向へのカーブを示している場合には慣性ベクトル８１の向きはキャラクタの右方向ベクトル７３と逆向きとなり、カーブ率７４の符号が左方向へのカーブを示している場合には慣性ベクトル８１の向きはキャラクタの右方向ベクトル７３と同じ向きとなる。
【００７１】
重力ベクトル８２は、図１２に示すように、キャラクタの上方向ベクトル７２と同じまたは逆方向のベクトルである。重力ベクトル８２は、キャラクタを前進方向ラインと同じ高度（仮想ゲーム世界における高度）で飛行させるように機能するベクトルである。重力ベクトル８２の向きはキャラクタの現在位置７０の高度と、前進方向ライン上での現在位置７６の高度との大小関係に依存して変化し、キャラクタの現在位置７０の高度が、前進方向ライン上での現在位置７６の高度よりも高い場合には重力ベクトル８２の向きはキャラクタの上方向ベクトル７３と逆向きとなり、キャラクタの現在位置７０の高度が、前進方向ライン上での現在位置７６の高度よりも低い場合には重力ベクトル８２の向きはキャラクタの上方向ベクトル７３と同じ向きとなる。
【００７２】
移動ベクトル８３は、上記の前進ベクトル７９、左右移動ベクトル８０、慣性ベクトル８１、および重力ベクトル８２を合成したベクトルであって、この移動ベクトル８３に基づいてキャラクタの現在位置７０が毎フレーム、随時更新される。
【００７３】
図６の仮想カメラ制御データ４６は、ゲーム画像を生成するために仮想ゲーム世界に配置される仮想カメラを制御するためのデータ（仮想カメラ位置や注視点や姿勢や画角など）であって、キャラクタの移動に伴って随時更新される。
【００７４】
以下、図１０のフローチャートを参照して、ゲームプログラム４０に基づくＣＰＵ３１の処理の流れを説明する。
【００７５】
図１０において、ゲームプログラム４０の実行が開始されると、ＣＰＵ３１は、まずステップＳ１０で前述のように前進方向ラインデータ４３に基づいて制御点データ４４を設定する。
【００７６】
ステップＳ１２では、ゲーム画像データ４１およびレースコースデータ４２に基づいて初期ゲーム画像を表示する。このとき、キャラクタ制御データ４５の各パラメータには初期値が設定される。
【００７７】
ステップＳ１４では、キャラクタの現在位置７０と制御点データ４４の各制御点の３次元座標６０とを参照して、キャラクタよりも後方（すなわちコースのスタート地点側）にある制御点のうち、キャラクタに最も近い制御点を判定する。例えば、キャラクタの現在位置が図１３の点Ｐｃである場合には、キャラクタよりも後方でかつ最も近い制御点は、制御点Ｐ３である。
【００７８】
ステップＳ１６では、キャラクタの現在位置７０と制御点データ４４の各制御点の３次元座標６０とを参照して、キャラクタよりも前方（すなわちコースのゴール地点側）にある制御点のうち、キャラクタに最も近い制御点を判定する。例えば、キャラクタの現在位置が図１３の点Ｐｃである場合には、キャラクタよりも前方でかつ最も近い制御点は、制御点Ｐ４である。
【００７９】
なお、ステップＳ１４およびステップＳ１６における制御点の判定方法としては種々の方法が考えられる。一つの方法としては、まずキャラクタの現在位置Ｐｃに最も近い制御点（図１３の例では制御点Ｐ３）を求める。そして、その制御点Ｐ３の前進方向ベクトル（Ｘｆ３，Ｙｆ３，Ｚｆ３）（図１４参照）とキャラクタの現在位置（Ｘｃ，Ｙｃ，Ｚｃ）の内積値から、制御点Ｐ３の前進方向ベクトル（Ｘｆ３，Ｙｆ３，Ｚｆ３）と制御点Ｐ３の３次元座標（Ｘ３，Ｙ３，Ｚ３）の内積値を減算する。そして、その減算結果が正か負かによって、その制御点Ｐ３がキャラクタよりも前方か後方かが分かる。図１３の例では２つの内積値の減算結果は正となるので、制御点Ｐ３が、キャラクタよりも後方でかつ最も近い制御点であることが判明し、さらに制御点Ｐ３よりも１つ前方の制御点Ｐ４が、キャラクタよりも前方でかつ最も近い制御点であることが判明する。
【００８０】
また、ステップＳ１４およびステップＳ１６において、キャラクタの現在位置７０に最も近い制御点を探す際に、直前の「最も近い制御点」を考慮して決定してもよい。すなわち、例えば、「最も近い制御点」を探すごとに当該制御点の情報をゲーム機本体３のワークメモリ３２に記憶しておいて、次回に「最も近い制御点」を探す際は、直前の「最も近い制御点」の近辺（または後に連続する）の制御点だけを候補とし、それらの候補の中から「最も近い制御点」を探すことが可能である（後に連続する制御点を次々と判定して、現在位置から遠くなった時点でその前の制御点を「最も近い制御点」としてもよい）。
【００８１】
ステップＳ１８では、ステップＳ１４およびステップＳ１６で判定された２つの制御点に関する制御点データ４４に基づいて、キャラクタの前進方向ベクトル７１、上方向ベクトル７２、右方向ベクトル７３、カーブ率７４、およびスタート地点からの累積距離７５を決定する。
【００８２】
キャラクタの前進方向ベクトル７１は、ステップＳ１４およびステップＳ１６で判定された２つの制御点の前進方向ベクトル６１に基づく補間処理によって決定される。このキャラクタの前進方向ベクトル７１の決定方法の一具体例を図１４を参照して説明する。
【００８３】
まず、キャラクタが、２つの制御点Ｐ３，Ｐ４の間の区間のどの辺りに位置するのかを判定する。具体的には、まず図１４の距離Ｄｂと距離Ｄｆを求める。距離Ｄｂは、制御点Ｐ３を基準としてキャラクタが制御点Ｐ３の前進方向ベクトル（Ｘｆ３，Ｙｆ３，Ｚｆ３）の方向にどれだけ離れているかを示しており、制御点Ｐ３の前進方向ベクトル（Ｘｆ３，Ｙｆ３，Ｚｆ３）とキャラクタの現在位置（Ｘｃ，Ｙｃ，Ｚｃ）の内積値から、制御点Ｐ３の前進方向ベクトル（Ｘｆ３，Ｙｆ３，Ｚｆ３）と制御点Ｐ３の３次元座標（Ｘ３，Ｙ３，Ｚ３）の内積値を減算することにより計算される。距離Ｄｆは、制御点Ｐ４を基準としてキャラクタが制御点Ｐ４の前進方向ベクトル（Ｘｆ４，Ｙｆ４，Ｚｆ４）の方向にどれだけ離れているかを示しており、制御点Ｐ４の前進方向ベクトル（Ｘｆ３，Ｙｆ３，Ｚｆ３）と制御点Ｐ４の３次元座標（Ｘ４，Ｙ４，Ｚ４）の内積値から、制御点Ｐ３の前進方向ベクトル（Ｘｆ３，Ｙｆ３，Ｚｆ３）とキャラクタの現在位置（Ｘｃ，Ｙｃ，Ｚｃ）の内積値を減算することにより計算される。
【００８４】
次に、２つの制御点Ｐ３，Ｐ４の前進方向ベクトルを、ＤｂとＤｆに基づいて加重平均し、キャラクタの前進方向ベクトル７１を得る。具体的には、キャラクタの前進方向ベクトル７１は、（（Ｘｆ３，Ｙｆ３，Ｚｆ３）×Ｄｂ＋（Ｘｆ４，Ｙｆ４，Ｚｆ４）×Ｄｆ）／（Ｄｂ＋Ｄｆ）となる。つまり、キャラクタの前進方向ベクトル７１は、２つの制御点Ｐ３，Ｐ４のうち、より近い方の前進方向ベクトル６１の影響をより大きく受けることになる。
【００８５】
このような補間処理により、キャラクタの移動に伴ってキャラクタの前進方向ベクトル７１の向きが滑らかに変化するので、より自然なキャラクタの移動制御が可能となる。
【００８６】
なお、このようなキャラクタの前進方向ベクトル７１の決定方法は単なる一例に過ぎず、より単純な方法またはより複雑な方法でキャラクタの前進方向ベクトル７１を決定してもよい。一例として、キャラクタに最も近い制御点Ｐ３の前進方向ベクトルを、キャラクタの前進方向ベクトル７１に設定する方法が挙げられる。他の例として、３つ以上の制御点の前進方向ベクトルに基づいてキャラクタの前進方向ベクトル７１を決定する方法が挙げられる。さらに他の例として、キャラクタの前進方向ライン上での現在位置７６におけるキャラクタの前進方向ラインの接線を検出し、この接線の方向をキャラクタの前進方向ベクトル７１に設定する方法が挙げられる。
【００８７】
キャラクタの上方向ベクトル７２、右方向ベクトル７３、およびカーブ率７４についても同様の方法により決定される。すなわち、キャラクタの上方向ベクトル７２は、２つの制御点Ｐ３，Ｐ４の上方向ベクトルを、ＤｂとＤｆに基づいて加重平均することによって決定される。キャラクタの右方向ベクトル７３は、２つの制御点Ｐ３，Ｐ４の右方向ベクトルを、ＤｂとＤｆに基づいて加重平均することによって決定される。カーブ率７４は、２つの制御点Ｐ３，Ｐ４のカーブ率を、ＤｂとＤｆに基づいて加重平均することによって決定される。
【００８８】
スタート地点からの累積距離７５は、制御点Ｐ３のスタート地点からの累積距離６５に距離Ｄｂを加算することによって求めることができる。制御点Ｐ４のスタート地点からの累積距離６５から距離Ｄｆを減算することによって求めてもよい。
【００８９】
ステップＳ２０では、前進ベクトル７９を決定する。具体的には、まず内部速度７７を更新し、更新された内部速度７７が示す大きさを有しかつキャラクタの前進方向ベクトル７１が示す方向を有するベクトルを、前進ベクトル７９として設定する。内部速度７７の更新方法の一例として、本実施形態では、まず直前のフレームで決定した移動ベクトル８３の大きさを内部速度７７として設定し、その後、プレイヤによる加速指示が入力された場合には内部速度７７を増加させ、プレイヤによる減速指示が入力された場合には内部速度７７を減少させる。このとき、前述のように叩き面の連打の速さなどに応じて内部速度７７の増加量または減少量を変化させてもよい。このように、前進ベクトル７９の大きさには、直前のフレームで決定した移動ベクトル８３の大きさが引き継がれるので、キャラクタがカーブを曲がる際にも従来技術のような不自然な加速または減速は行われない。
なお、プレイヤによる加速指示がない場合でも内部速度を減少させずに現在の値を維持してもよい。
【００９０】
ステップＳ２２では、左右移動ベクトル８０を決定する。具体的には、まず左右移動入力値７８を更新し、更新された左右移動入力値７８が示す大きさを有しかつキャラクタの右方向ベクトル７３が示す方向を有するベクトルを、左右移動ベクトル８０として設定する。左右移動入力値７８の更新方法の一例として、本実施形態では、プレイヤによる右移動指示が入力された場合には左右移動入力値７８に正の値を設定し、プレイヤによる左移動指示が入力された場合には左右移動入力値７８に負の値を設定する。このとき、前述のように叩き面の連打の速さなどに応じて左右移動入力値７８の絶対値を変化させてもよい。
【００９１】
ステップＳ２４では、慣性ベクトル８１を決定する。具体的には、前述のようにキャラクタの右方向ベクトル７３と同じまたは逆方向のベクトル（すなわちキャラクタが右方向へのカーブを曲がっているときにはキャラクタの右方向ベクトル７３と逆方向であり、キャラクタが左方向へのカーブを曲がっているときにはキャラクタの右方向ベクトル７３と同じ方向）であってかつカーブ率７４の値に応じた大きさのベクトルを、慣性ベクトル８１として設定する。
【００９２】
ステップＳ２６では、重力ベクトル８２を決定する。具体的には、キャラクタの現在位置７０の高度と、前進方向ライン上での現在位置７６の高度との大小関係に応じた方向を有し、かつ所定の大きさ（一定であってもよいし、高度差に応じた大きさでもよい）のベクトルを、重力ベクトル８２として設定する。
【００９３】
ステップＳ２８では、移動ベクトル８３を決定する。具体的には、ステップＳ２０〜ステップＳ２６で決定された前進ベクトル７９、左右移動ベクトル８０、慣性ベクトル８１、および重力ベクトル８２を合成したベクトルを、移動ベクトル８３として設定する。なお、地形（上り坂や摩擦）や空気抵抗の影響を反映して移動ベクトル８３を補正するようにしてもよい。
【００９４】
ステップＳ３０では、ステップＳ２８で決定された移動ベクトル８３に基づいてキャラクタの現在位置７０を更新する。具体的には、移動ベクトル８３が示す方向に、移動ベクトル８３が示す距離だけキャラクタが移動するように、現在位置７０を更新する。
なお、本実施例の説明において、移動ベクトルが示す方向を「移動方向」と呼び、前進方向ベクトルまたは前進ベクトルが示す方向を「前進方向」と呼ぶことがある。
【００９５】
ステップＳ３２では、キャラクタの姿勢を決定する。キャラクタの姿勢は、キャラクタの前進方向ベクトル７１、上方向ベクトル７２、および右方向ベクトル７３に応じて決定してもよいし、これらのベクトルとは無関係に決定してもよい。例えば、プレイヤによって右移動指示が入力されているときに、キャラクタの上方向ベクトル７２とは無関係にキャラクタが右側に傾くようにしてもよい。
【００９６】
ステップＳ３４では、キャラクタの現在位置７０に応じて仮想カメラ制御データ４６を更新する。なお、従来の一般的なレースゲームでは、キャラクタを真後ろから見るような位置に仮想カメラが配置されるが、本実施形態では、キャラクタの現在位置を基準とした仮想カメラの相対位置が前進方向ラインに応じて変化する。
【００９７】
具体的には、図１５および図１６に示すように、キャラクタの現在位置（より正確には前進方向ライン上での現在位置）からコース前方に一定距離ｄだけ離れた点における前進方向（すなわち前進方向ラインの接線方向）に常に平行になるように、仮想カメラの向きが随時更新される。したがって、例えば図１６に示すようにキャラクタが見通しの悪いカーブを進んでいるときに、仮想カメラはカーブの先まで見通せる向きに変更されるため、プレイヤはカーブの先の状況を確認しつつキャラクタを制御でき、操作性が向上する。なお、一定距離ｄだけ離れた点における前進方向の替わりに、キャラクタに最も近い制御点から一定個数だけ前方の制御点の前進方向ベクトル６１に常に平行になるように、仮想カメラの向きを随時更新してもよい。なお、仮想カメラの位置は、プレイヤキャラクタの現在位置を基準として設定される。例えば、プレイヤキャラクタの現在位置（またはプレイヤキャラクタの現在位置から所定距離だけ離れた位置（例えば、前進方向または移動方向に所定距離だけ離れた位置など））から前述のとおり決定された仮想カメラの向きの逆方向に所定距離だけ離した位置に設定される。
【００９８】
また、前進方向ラインが示す前進方向に基づいて仮想カメラの位置および向きを制御する替わりに、図１７に示すように、キャラクタの現在位置（より正確には前進方向ライン上での現在位置）またはそこから一定距離だけ先の点における前進方向ラインの曲率に応じて、キャラクタの前進方向に対する仮想カメラの相対角度θを変化させてもよい。さらには、カーブ率７４に応じて、キャラクタの前進方向に対する仮想カメラの相対角度θを変化させてもよい。
【００９９】
ステップＳ３６では、ステップＳ３０で更新されたキャラクタの現在位置７０、ステップＳ３２で決定されたキャラクタの姿勢、およびステップＳ３４で更新された仮想カメラ制御データ４６に基づいてゲーム画像を更新する。そして、処理はステップＳ１４に戻る。
【０１００】
上記のステップＳ１４〜ステップＳ３６の処理が一定の周期（例えば６０分の１秒）で繰り返されることにより、プレイヤの指示に応じてコースを移動するキャラクタの様子がテレビ２の画面に表示される。
【０１０１】
以上のように、本実施形態によれば、前進方向ラインが示す前進方向と常に一致するようにキャラクタの前進方向が自動的に補正されるので、キャラクタがカーブを移動するときでも、プレイヤはキャラクタの現在の移動方向を気にすることなく簡単な操作で、キャラクタを適切に移動させることができる。例えば、従来のレースゲームでは、プレイヤがカーブの曲率に応じて適切に操舵しなければキャラクタの移動方向がコースの外側や内側に向いてしまい、キャラクタがすぐにコースアウトしてしまっていたが、本実施形態によれば、プレイヤが操作を誤ったとしてもキャラクタの移動方向がコースの外側や内側に向きづらいため、キャラクタがすぐにコースアウトしてしまうことがない。
【０１０２】
また、上記のようにキャラクタの前進方向が自動的に補正されるので、プレイヤは、キャラクタが急なカーブを曲がるときでもコンガ型コントローラ６の叩き面を連打し続ける必要が無く、連打が苦手なプレイヤでも楽にキャラクタを操作することができる。
【０１０３】
また、本実施形態では、キャラクタがカーブを移動するときでもキャラクタの移動速度が基本的には維持されるため、プレイヤは、コースアウトしてしまうことを気にせずに、速い移動速度でコースを走り抜ける楽しさを味わうことができる。特に、カーブの多い複雑なコースを走る場合、カーブを曲がる度に移動速度を落とす必要も無く、速い移動速度でコースを走り抜ける楽しさ爽快さを失うことも無い。また、プレイヤによる操作入力もプレイヤオブジェクトの移動方向に反映されるため、プレイヤの技量もゲームに反映され、コンピュータによる操作補正によってゲームの興趣性が失われることもない。
【０１０４】
なお、前述したように、前進方向ラインは途中で分岐または合流しても構わない。例えば、図１８に示すように前進方向ラインが分岐している場合には、分岐点に当たる制御点Ｐ１２については、そこから制御点Ｐ１３に向かうルートと制御点Ｐ１４に向かうルートの２つのルートについて、それぞれ個別に前進方向ベクトル６１、上方向ベクトル６２、右方向ベクトル６３、およびカーブ率６４を設定しておけばよい。そして、キャラクタが進もうとしているルートを判定し、キャラクタが進もうとしているルートに対応する前進方向ベクトル６１、上方向ベクトル６２、右方向ベクトル６３、およびカーブ率６４を用いて、キャラクタの前進方向ベクトル７１、上方向ベクトル７２等を決定すればよい。キャラクタが進もうとしているルートの判定方法としては、例えば、分岐点に当たる制御点Ｐ１２から１つだけ前方の２つの制御点Ｐ１３、Ｐ２０のうち、キャラクタの現在位置Ｐｃに近い方の制御点（図１８の例では制御点Ｐ１３）に向かってキャラクタが進もうとしていると判定することができる。なお、ゲーム状況データが所定条件を満たすか否かに応じて（例えば、コース内のギミック等がスイッチにとなり）、制御点Ｐ１３に向かうルートとＰ１４に向かうルートのいずれかを有効にしてもよい。
【０１０５】
なお、前進方向ラインは、必ずしもコースに沿って配置されている必要はない。例えば、図１９に示すような前進方向ライン（Ｐ４０→Ｐ４１→Ｐ３３）を設置すれば、プレイヤが操作を誤ったためにキャラクタが図１９のＰｃの位置で立ち往生してしまった場合でも、キャラクタの前進方向は、前進方向ライン（Ｐ４０→Ｐ４１→Ｐ３３）に基づいて自動的に制御点Ｐ３３の方向に変更されているため、プレイヤは加速指示と少しの左移動指示を入力するだけで容易にプレイヤキャラクタを理想的な位置へと導くことができる。
【図面の簡単な説明】
【０１０６】
【図１】本発明の一実施形態に係るゲームシステム１の外観図
【図２】一般的なコントローラを用いる場合のゲームシステム１の外観図
【図３】ゲーム機本体３の内部構成図
【図４】テレビ２の画面に表示されるゲーム画像の一例
【図５】前進方向ラインとキャラクタの前進方向の関係を示す図
【図６】ワークメモリ３２のメモリマップ
【図７】前進方向ラインデータ４３の具体例
【図８】制御点データ４４の具体例
【図９】キャラクタ制御データ４５の具体例
【図１０】ＣＰＵ３１の処理の流れを示すフローチャート
【図１１】キャラクタの前進方向ベクトルと右方向ベクトルと上方向ベクトルを示す図
【図１２】前進ベクトルと左右移動ベクトルと慣性ベクトルと重力ベクトルを示す図
【図１３】前進方向ラインと制御点の関係を示す図
【図１４】補間処理の詳細を示す図
【図１５】仮想カメラの制御例を示す図
【図１６】仮想カメラの制御例を示す他の図
【図１７】仮想カメラの制御例を示すさらに他の図
【図１８】前進方向ラインの具体例
【図１９】前進方向ラインの他の具体例
【符号の説明】
【０１０７】
１  ゲームシステム
２  テレビ
３  ゲーム機本体
４  ＤＶＤ−ＲＯＭ
５  メモリカード
６  コンガ型コントローラ
６Ｌ  左叩き面
６Ｍ  マイクロフォン
６Ｒ  右叩き面
６Ｓ  スタートボタン
７  コントローラ
７Ａ  Ａボタン
７Ｌ  Ｌボタン
７Ｍ  マイクロフォン
７Ｒ  Ｒボタン
７Ｓ  スタートボタン
３１  ＣＰＵ
３２  ワークメモリ
３３  外部メモリＩ／Ｆ
３４  コントローラＩ／Ｆ
３５  ＶＲＡＭ
３６  ＧＰＵ
３７  光ディスクドライブ
【図１】
0005179020.tif 000002
【図２】
0005179020.tif 000003
【図３】
0005179020.tif 000004
【図４】
0005179020.tif 000005
【図５】
0005179020.tif 000006
【図６】
0005179020.tif 000007
【図７】
0005179020.tif 000008
【図８】
0005179020.tif 000009
【図９】
0005179020.tif 000010
【図１０】
0005179020.tif 000011
【図１１】
0005179020.tif 000012
【図１２】
0005179020.tif 000013
【図１３】
0005179020.tif 000014
【図１４】
0005179020.tif 000015
【図１５】
0005179020.tif 000016
【図１６】
0005179020.tif 000017
【図１７】
0005179020.tif 000018
【図１８】
0005179020.tif 000019
【図１９】
0005179020.tif 000020