図面を参照して、本発明が適用されるゲームシステム1について説明する。
図1は、当該ゲームシステム1を説明するための外観図である。以下、据置型ゲーム装置を一例にして、本発明のゲームシステム1について説明する。なお、ゲームシステム1で実行されるゲームは、遊戯者の操作及びゲームプログラム、据置型ゲーム装置3の処理動作で進行するが、以下の説明では、動作の内容に応じて、プレイヤキャラクタを主語として、プレイヤキャラクタの動作を説明する場合がある。
図1において、当該ゲームシステム1は、家庭用テレビジョン受像機等のスピーカ2aを備えたディスプレイ(以下、モニタと記載する)2に、接続コードを介して接続される据置型ゲーム装置(以下、単にゲーム装置と記載する)3および当該ゲーム装置3に操作情報を与えるコントローラ7によって構成される。ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例の光ディスク4が着脱される。ゲーム装置3には、ゲームの主電源である電源ON/OFFスイッチ、ゲーム処理のリセットスイッチ及び光ディスク4の着脱を行うインジェクトスイッチが設けられている。
また、ゲーム装置3には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード5が必要に応じて着脱自在に装着される。ゲーム装置3は、光ディスク4に記憶されたゲームプログラムなどを実行することによって、その結果をゲーム画像としてモニタ2に表示する。さらに、ゲーム装置3は、外部メモリカード5に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置3の遊戯者は、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
コントローラ7は、その内部に備える通信部75(後述)から受信ユニット36a(図2参照)が接続されたゲーム装置3へ、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて送信データを無線送信する。コントローラ7は、2つのコントロールユニット(コアユニット70およびサブユニット76)が屈曲自在な接続ケーブル79を介して互いに接続されて構成されており、主にモニタ2に表示されるゲーム空間に登場するプレイヤキャラクタ等の遊戯者オブジェクトを操作するための操作手段である。モニタ2の表示画面近傍に2つのLEDモジュール8Lおよび8Rが設置される。これらLEDモジュール8Lおよび8Rは、それぞれモニタ2の前方に向かって赤外光を出力する。コアユニット70およびサブユニット76は、それぞれ複数の操作ボタン、キー、およびスティック等の操作部が設けられている。また、コアユニット70は、当該コアユニット70から見たLEDモジュール8L,8Rの画像を撮像する撮像情報演算部74(後述)を備えている。
なお、本実施形態では、コアユニット70とサブユニット76を屈曲自在なケーブルで接続したが、サブユニット76に無線ユニットを搭載することで、接続ケーブル79をなくすこともできる。例えば、無線ユニットとしてBluetooth(登録商標)ユニットをサブユニット76に搭載することで、サブユニット76からコアユニット70へ操作データを送信することが可能になる。
次に、図2を参照して、ゲーム装置3の機能的構成について説明する。なお、図2は、ゲーム装置3の機能ブロック図である。
図2において、ゲーム装置3は、各種プログラムを実行する例えばリスク(RISC)CPU(セントラルプロセッシングユニット)30を備える。CPU30は、図示しないブートROMに記憶された起動プログラムを実行し、メインメモリ33等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムを実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。CPU30には、メモリコントローラ31を介して、GPU(Graphics Processing Unit)32、メインメモリ33、DSP(Digital Signal Processor)34、およびARAM(Audio RAM)35が接続される。また、メモリコントローラ31には、所定のバス42を介して、コントローラI/F(インターフェース)36、ビデオI/F37、外部メモリI/F38、オーディオI/F39、およびディスクI/F41が接続され、それぞれ受信ユニット36a、モニタ2、外部メモリカード5、スピーカ2a、およびディスクドライブ40が接続されている。
GPU32は、CPU30の命令に基づいて画像処理を行うものあり、例えば、3Dグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU32は、図示しない画像処理専用のメモリやメインメモリ33の一部の記憶領域を用いて画像処理を行う。GPU32は、これらを用いてモニタ2に表示すべきゲーム画像データやムービ映像を生成し、適宜メモリコントローラ31およびビデオI/F37を介してモニタ2に出力する。
メインメモリ33は、CPU30に使用される記憶領域であって、CPU30の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ33は、CPU30によって光ディスク4から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ33に記憶されたゲームプログラムや各種データ等がCPU30によって実行される。
DSP34は、ゲームプログラム実行時にCPU30において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM35が接続される。ARAM35は、DSP34が所定の処理(例えば、先読みしておいたゲームプログラムやサウンドデータの記憶)を行う際に用いられる。DSP34は、ARAM35に記憶されたサウンドデータを読み出し、メモリコントローラ31およびオーディオI/F39を介してモニタ2に備えるスピーカ2aに出力させる。
メモリコントローラ31は、データ転送を統括的に制御するものであり、上述した各種I/Fがバス42を介して接続される。コントローラI/F36は、コントローラ7をゲーム装置3と通信可能に接続する。例えば、受信ユニット36aは、コントローラI/F36を介してメモリコントローラ31と接続される。上述したように受信ユニット36aは、コントローラ7からの送信データを受信し、コントローラI/F36を介して当該送信データをCPU30へ出力する。ビデオI/F37には、モニタ2が接続される。外部メモリI/F38には、外部メモリカード5が接続され、その外部メモリカード5に設けられたバックアップメモリ等とアクセス可能となる。
オーディオI/F39にはモニタ2に内蔵されるスピーカ2aが接続され、DSP34がARAM35から読み出したサウンドデータやディスクドライブ40から直接出力されるサウンドデータをスピーカ2aから出力可能に接続される。ディスクI/F41には、ディスクドライブ40が接続される。ディスクドライブ40は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し、ゲーム装置3のバス42やオーディオI/F39に出力する。
図3を参照して、コアユニット70について説明する。なお、図3(A)は、コアユニット70の上面後方から見た斜視図である。図3(B)は、コアユニット70を下面後方から見た斜視図である。
コアユニット70は、例えばプラスチック成型によって形成されたハウジング71を有している。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型のボタンヘッドで結合された4つのプッシュスイッチであり、ボタンヘッドの前後(上下)左右の4つの方向の突出片がそれぞれの方向に対応するプッシュスイッチの操作子となる。遊戯者が十字キー72aのいずれかの操作子を押下することによって前後左右いずれかの方向が選択される。例えば遊戯者が十字キー72aを操作することによって、仮想ゲーム世界に登場するカメラ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
ハウジング71上面の十字キー72aより後面側に、複数のボタンスイッチ72b〜72gが設けられる。ボタンスイッチ72b〜72gは、遊戯者がボタン頭部を押下することによって、それぞれのボタンスイッチ72b〜72gに割り当てられた操作信号を出力する操作部である。例えば、ボタンスイッチ72b〜72dには、1ボタン、2ボタン、Aボタンとしての機能が割り当てられる。また、ボタンスイッチ72e〜72gには、−(マイナス)ボタン、ホームボタン、および+(プラス)ボタンとしての機能が割り当てられる。
なお、ボタンスイッチ72b〜72dは、ハウジング71上面の中央前後方向に沿って並設されている。また、ボタンスイッチ72e〜72gは、ハウジング71上面の左右方向に沿って操作ボタン72bおよび72dの間に並設されている。そして、ボタンスイッチ72fは、その上面がハウジング71の上面に埋没しており、遊戯者が不意に誤って押下することのないタイプのボタンである。
また、ハウジング71上面の十字キー72aより前面側に、ボタンスイッチ72hが設けられる。このボタンスイッチ72hは、遠隔からゲーム装置3本体の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、遊戯者が不意に誤って押下することのないタイプのボタンである。
また、ハウジング71上面のボタンスイッチ72cより後面側に、複数のLED702が設けられる。ここで、コントローラ7は、他のコントローラ7と区別するためにコントローラ種別(番号)が設けられている。例えば、LED702は、コントローラ7に現在設定されている上記コントローラ種別を遊戯者に通知するために用いられる。具体的には、コアユニット70から受信ユニット36aへ送信データを送信する際、上記コントローラ種別に応じて複数のLED702のうち、種別に対応するLEDが点灯する。
一方、ハウジング71下面には、凹部が形成されている。ハウジング71下面の凹部は、遊戯者がコアユニット70を把持したとき、この遊戯者の人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、ボタンスイッチ72iが設けられる。ボタンスイッチ72iは、Bボタンとして機能する操作部である。
これらボタンスイッチ72b〜72g,72iには、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの機能が割り当てられる。後述のアクションゲームにおいて、Aボタンであるボタンスイッチ72dは、プレイヤキャラクタに武器による攻撃をさせるための操作子として機能し、Bボタンであるボタンスイッチ72iは、緊急回避の行動をさせるための操作子として機能する。
また、ハウジング71前面には、撮像情報演算部74(図5を参照)の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コアユニット70が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコアユニット70の動きでも追跡して解析することができる。この撮像情報演算部74の詳細な構成については、後述する。また、ハウジング70の後面には、コネクタ73が設けられている。コネクタ73は、例えば32ピンのエッジコネクタであり、接続ケーブル79のコネクタと嵌合して接続するために利用される。
図4を参照して、サブユニット76について説明する。なお、図4(A)はサブユニット76の上面図であり、図4(B)はサブユニット76の下面図であり、図4(C)はサブユニット76の左側面図である。
図4において、サブユニット76は、例えばプラスチック成型によって形成されたハウジング77を有している。ハウジング77は、その前後方向を長手方向とし、サブユニット76において最太部となる頭部を前方に形成した流線型の立体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
ハウジング77上面の上記最太部近傍に、スティック78aが設けられる。スティック78aは、ハウジング77上面から突出した傾倒可能なスティックを倒すことによって、傾倒方向に応じて操作信号を出力する操作部である。例えば、遊戯者がスティック先端を360°任意の方向に傾倒することによって任意の方向や位置を指定することができ、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
次に、図5を参照して、コントローラ7の内部構成について説明する。図5は、コントローラ7の構成を示すブロック図である。
図5において、コアユニット70は、上述した操作部72および撮像情報演算部74の他に、その内部に通信部75、加速度センサ701およびバイブレータ704を備えている。
撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744を含んでいる。赤外線フィルタ741は、コアユニット70の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ742が集光した赤外線を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部75へ出力する。
なお、これらの撮像情報演算部74は、コアユニット70のハウジング71に固設されており、ハウジング71自体の方向が変わるとそれに伴ってその撮像方向も変わる。この撮像情報演算部74から出力される処理結果データに基づいて、コアユニット70の位置や動きに応じた信号を得ることができる。
なお、サブユニット76のハウジング71は、サブユニット76とは屈曲自在な接続ケーブル79によって接続されているため、サブユニット76の方向や位置を変更しても撮像情報演算部74の撮像方向が変化しない。また、サブユニット76にもコアユニット70と同様の撮像情報演算部を設けてもよい。
加速度センサ701(本願発明のコントローラ側検出部に対応)は、コアユニット70の上下方向、左右方向および前後方向の3軸でそれぞれ加速度を検知する加速度センサである。なお、加速度センサ701は、必要な操作信号の種類によっては、上下方向、左右方向の2軸でそれぞれ加速度を検出する加速度センサが用いられてもかまわない。加速度センサ701が検知した加速度を示すデータは、通信部75へ出力される。なお、加速度センサ701は、典型的には静電容量式の加速度センサが用いられるが、他の方式の加速度センサやジャイロセンサを用いてもかまわない。この加速度センサ701から出力される加速度データに基づいて、コアユニット70の動きを検出することができる。
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。
コアユニット70に設けられた操作部72からの操作信号(コアキーデータ)、加速度センサ701からの加速度信号(加速度データ)、および撮像情報演算部74からの処理結果データは、マイコン751に出力される。また、接続ケーブル79を介して、サブユニット76に設けられた操作部78からの操作信号(サブキーデータ)は、マイコン751に出力される。マイコン751は、入力した各データ(コアキーデータ、サブキーデータ、加速度データ、処理結果データ)を受信ユニット36aへ送信する送信データとして一時的にメモリ752に格納する。
ここで、通信部75から受信ユニット36aへの無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥースで構成される通信部75の送信間隔は5msである。マイコン751は、受信ユニット36aへの送信タイミングが到来すると、メモリ752に格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ754から放射する。
つまり、コアユニット70に設けられた操作部72からのコアキーデータ、サブユニット76に設けられた操作部78からのサブキーデータ、加速度センサ701からの加速度データ、および撮像情報演算部74からの処理結果データがコアユニット70から送信される。そして、ゲーム装置3の受信ユニット36aでその電波信号を受信し、ゲーム装置3で当該電波信号を復調や復号することによって、一連の操作情報(コアキーデータ、サブキーデータ、加速度データおよび処理結果データ)を取得する。そして、ゲーム装置3のCPU30は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。また、ゲーム装置3のCPU30は、LED8L,8Rの位置座標や面積の検出結果を示す処理結果データおよびLED8L,8R間の距離等に基づいて、コアユニット70の位置および向きを算出する。
なお、Bluetooth(登録商標)の技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
バイブレータ704は、例えば振動モータ又はソレノイド等が考えられる。バイブレータ704が作動することによってコアユニット70に振動が発生するので、それを把持している遊戯者の手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。
遊戯者は、右手の親指をコアユニット70の上面(例えば、十字キー72a付近)に添え、人差し指をコアユニット70下面の凹部(例えば、操作ボタン72i付近)に添える形態でコアユニット70を把持する。このとき、コアユニット70の前面に設けられている撮像情報演算部74の光入射口が遊戯者の前方方向に露出する。
このように、コアユニット70は、遊戯者が片手で把持した状態で十字キー72aや操作ボタン72i等の操作部72を容易に操作することができる。さらに、遊戯者がコアユニット70を片手で把持したとき、当該コアユニット70の前面に設けられている撮像情報演算部74の光入射口が露出するため、上述した2つのLEDモジュール8Lおよび8Rからの赤外光を容易に当該光入射口から取り入れることができる。つまり、遊戯者は、コアユニット70が有する撮像情報演算部74の機能を阻害することなくコアユニット70を片手で把持することができる。つまり、遊戯者がコアユニット70を把持した手を表示画面に対して動かすことによって、コアユニット70は、遊戯者の手の運動が表示画面に直接作用する操作入力をさらに備えることができる。
また、サブユニット76も、遊戯者の左手でほぼ同様の形態で把持・操作される。
ここで、上記構成のゲームシステムで実行されるアクションゲームについて説明する。このゲームは、遊戯者が操作するプレイヤキャラクタが敵キャラクタを討伐することによりミッションを達成していくゲームである。プレイヤキャラクタは、「大剣(両手で使用する大きな剣)」、「片手剣(片手で使用する小振りの剣)」、「ハンマー」等の様々な武器を使用することができ、これらの武器を使用してダメージを与えることにより敵キャラクタを倒す。遊戯者は、上記コントローラ7を用いてプレイヤキャラクタを操作するが、遊戯者の操作によりプレイヤキャラクタは1つの武器で複数種類の攻撃技を繰り出すことができる。遊戯者の操作方法と攻撃技については図7を参照して後述する。
このようなゲームを実行するゲームプログラムを上述したゲーム装置に読み込ませることにより、図6に示すようなゲームシステムを機能的に実現することができる。ゲームシステムは、操作検出部50(本願発明の姿勢取得手段、揺動取得手段に対応)、ゲーム進行制御部51、描画処理部55等から構成されている。ゲーム進行制御部51は、プレイヤキャラクタ制御部52(本願発明のキャラクタ制御手段、連続攻撃手段に対応)、ノンプレイヤキャラクタ制御部53、ゲーム空間制御部54を含んでいる。
操作検出部50は、CPU30、GPU32等のデータ処理部およびコントローラ7を含み、遊戯者の各種操作を検出(取得)して、ゲーム進行制御部51に伝達する。ゲーム進行制御部51は、CPU30、GPU32等のデータ処理部を含み、仮想のゲーム空間やキャラクタを生成するとともに、遊戯者の操作や時間の経過等に応じて、上述のゲーム空間を変化させたりキャラクタを活動させたりする等の処理を行ってゲームを進行させる。
プレイヤキャラクタ制御部52は、ゲーム空間内にプレイヤキャラクタを生成するとともに、操作検出部50から入力される操作情報に基づいて武器の使用(攻撃技による攻撃、ガード等)などの活動を制御する。ノンプレイヤキャラクタ制御部53は、ゲーム空間内にノンプレイヤキャラクタを生成するとともに、ノンプレイヤキャラクタの活動を制御する。ゲーム空間制御部54は、操作検出部50から入力された操作情報に基づいて選択されたフィールドのゲーム空間を生成するとともに、そのゲーム空間の天候や昼夜の変更などの環境を制御する。
描画処理部55は、CPU30、GPU32等のデータ処理部を含み、ゲーム進行制御部51が生成した三次元ゲーム空間、キャラクタを二次元のスクリーンに投影したゲーム画像を生成してモニタ2に出力する。また、描画処理部55は、イニシャルのゲーム画像として、プレイヤキャラクタの背後から水平にゲーム空間を撮影した仮想カメラの画像を生成し、この画像がモニタ2に表示される。さらに、描画処理部55は、遊戯者によるコアユニット70の十字キー72aの操作に応じて仮想カメラの位置および方向を制御する。
以下、十字キー72aによるカメラ位置の制御方式について説明する。仮想カメラは、ゲーム空間内に仮想的に設定されている注視点を中心に回転する。遊戯者は、十字キー72aの左右の操作子を操作することにより、仮想カメラの回転角度を左右360°任意の角度に指示でき、十字キー72aの上下(前後)の操作子を操作することにより、仮想カメラの回転角度を上下5段階の予め定められた所定の角度に指示できる。5段階は、水平、上方向2段階、下方向2段階である。これにより、遊戯者の所望する方向のゲーム画像をモニタ2に表示させることができる。なお、遊戯者は、サブユニット76下面のCボタン78dを押下することにより、カメラ方向をプレイヤキャラクタの背後から水平にゲーム空間を撮影するイニシャル方向にリセットすることができる。
また、遊戯者は、サブユニット76のコントロールスティック78aを任意の方向に傾倒することにより、プレイヤキャラクタの移動方向を指示することができる。遊戯者は、コントロールスティック78aを上方向(前方向)に傾倒することにより、プレイヤキャラクタを仮想カメラの注視点に向かって(ゲーム画面の奥に)移動させる。逆に、遊戯者は、コントロールスティック78aを下方向(後方向)に傾倒することにより、プレイヤキャラクタを注視点から離れるように(ゲーム画面の手前に)移動させる。すなわち、上記仮想カメラの操作により注視点方向を正面とするプレイヤキャラクタの移動方向が決定され、プレイヤキャラクタは注視点方向を正面としてコントロールスティック78aの傾倒方向に応じて地面上を移動する。これにより、遊戯者は、そのときモニタ2に映っている地点に向かって直感的にプレイヤキャラクタを移動させることができ、プレイヤキャラクタをゲーム空間内の任意の場所に思い通りに移動させることができる。
プレイヤキャラクタは、複数種類の武器を所有することができる。遊戯者はプレイヤキャラクタが所有している武器の中から1種類の武器を選択してプレイヤキャラクタを戦闘用ゲームフィールドに向かわせると、当該ゲームフィールドにおいて、選択した武器を用いた攻撃技をプレイヤキャラクタに繰り出させることができる。各武器を用いた攻撃技はそれぞれの武器に対して複数設定されており、遊戯者はコントローラの操作により攻撃技を選択することができる。
以下、図7を参照して、プレイヤキャラクタの武器の1つである「大剣」を例に複数の攻撃技を繰り出すための操作方法を説明する。同図(A)〜(C)は、遊戯者がコアユニット70を右手で把持した状態を示す図である。なお、同図の上方が遊戯者の前方、下方が後方、右方が右方向、左方が左方向を示し、遊戯者の前方にはLEDモジュール8が設置されている。
まず、遊戯者がコアユニット70を揺動させるか、+ボタン72gを押下することにより、プレイヤキャラクタは背中に背負っている大剣を両手に構える。ただし、遊戯者がプレイヤキャラクタの移動操作(コントロールスティック78aの操作)中に上記大剣を構える操作を行うと、「武器出し攻撃」として、大剣を背中から出した直後に一振り攻撃を行う。なお、本実施形態においては、加速度の変化が一定の閾値以上である場合に揺動操作があったと判断される。なお、本実施形態では揺動方向を揺動操作の有無の判断材料とはしていないが、揺動方向を判断材料としてもよく、また、所定方向に揺動がなされた場合にのみ揺動操作があったと判断するようにしてもよい。
そして、大剣を構えた後、遊戯者がコアユニット70のAボタン72d(本願発明の操作子に対応)を押下することによりプレイヤキャラクタは攻撃技を繰り出すが、コアユニット70の姿勢(向き)によって繰り出される攻撃技の種類が異なる。本実施形態では、図7(A)〜(C)のコアユニット70の3つの姿勢により、3つの攻撃技が割り当てられている。
遊戯者が同図(A)のようにコアユニット70を水平に把持した状態(第1の姿勢)でAボタン72dを押下すると、プレイヤキャラクタは「縦斬り」を行う。「縦斬り」とは、プレイヤキャラクタが大剣を上から地面に向けて叩きつける攻撃技である。図8は、プレイヤキャラクタが「縦斬り」を行う姿を含むゲーム画面の例を示している。プレイヤキャラクタは同図(A)のように大剣を両手で持って振りかぶり、同図(B)のように地面に向けて叩きつける。
遊戯者が図7(B)のようにコアユニット70の上面部を右向きにした状態(第2の姿勢)でAボタン72dを押下すると、プレイヤキャラクタは「斬り上げ」を行う。「斬り上げ」とは、プレイヤキャラクタが大剣を右後方から左斜め上に振り上げる攻撃技である。図9は、プレイヤキャラクタが「斬り上げ」を行う姿を含むゲーム画面の例を示している。プレイヤキャラクタは同図(A)のように大剣を両手で持って右後方に構え、同図(B)のように左斜め上に向けて振り上げる。
遊戯者が図7(C)のようにコアユニット70の上面部を左向きにした状態(第3の姿勢)でAボタン72dを押下すると、プレイヤキャラクタは「なぎ払い」を行う。「なぎ払い」とは、プレイヤキャラクタが大剣を左後方から前方に振り回す攻撃技である。図10は、プレイヤキャラクタが「なぎ払い」を行う姿を含むゲーム画面の例を示している。プレイヤキャラクタは同図(A)のように大剣を両手で持って左後方に構え、同図(B)のように前方に向けて振り回す。
プレイヤキャラクタは、上記各攻撃技の繰り出し操作が行われたとき、構えからフィニッシュ(フォロースルー)までの一連のモーションを行う。プレイヤキャラクタ制御部52は、攻撃技のモーション中は、原則としてコントローラからの操作は受け付けず、モーション終了後にプレイヤキャラクタの次の動作のための操作を受け付ける。
ただし、攻撃技モーションの後半の一定時間帯のみ次の攻撃技のための操作を受け付け、この時間帯(連続攻撃受付時間帯)に次の攻撃技の操作を受け付けたとき「連続攻撃」として通常よりも短い間隔で次の攻撃技を繰り出すことができる。すなわち、前の攻撃技のモーションのうち、上記連続攻撃受付時間帯の後に実行される最後の一部(フォロースルー)が省略され、続けて次の攻撃技のモーションがスタートする。これにより、前の攻撃技と次の攻撃技が連続で行われているように見える。連続攻撃は、威力自体はそれぞれの攻撃技の威力を増加させることはないがが、技と技との間隔が短いことにより「スキ」が生じにくくなるという利点を有する。
ただし、本実施形態では、同じ攻撃技を連続攻撃として続けて出すことができない。そのため、連続攻撃を出し続けるためには、同図(A)(B)(C)で示す姿勢の間でコアユニット70の姿勢を変化させていかなければならない。本実施形態では、コアユニット70を水平に把持した状態を基準姿勢として、右向きに所定度合い以上傾けるか、左向きに所定度合い以上傾けるだけで、続く攻撃技を切り替えることができるため、操作容易にユーザ所望の内容の攻撃技を繰り出すことができる。なお、本実施形態では、コアユニット70を基準姿勢から左右方向に傾けて攻撃技を切り替えることができる構成であるが、前後方向に傾けて攻撃技を切り替える構成であってもよい。
さらに、遊戯者がコアユニット70を垂直に把持した(コアユニット70の前面に設けられている撮像情報演算部74が上向き)状態でAボタン72dを押下し続けるとプレイヤキャラクタは「溜め行動」を行い、力が溜まった状態でコアユニット70を揺動させるかAボタン72dを放すと「溜め攻撃」を行う。「溜め攻撃」とは、プレイヤキャラクタが大剣を後ろに振りかぶり、力を溜めてから地面に向けて叩きつける攻撃技である。この「溜め攻撃」は、上記「縦斬り」とモーション自体は変わらないが、溜め時間が長いほど威力が強化され、敵キャラクタに与えるダメージが大きくなる。この溜め時間は、予め設けられたカウンタによって計測される。
以上のように、攻撃技の繰り出しは単一のボタン操作(Aボタン72dの押下)によって行われるが、コントローラ(コアユニット70)の姿勢を変えるだけで、複数種類の攻撃技の中から一つを選択することができ、ボタン操作に不慣れな遊戯者であっても容易に攻撃技を選択することができる。また、コントローラを右向きにすると右から、左向きにすると左から斬るというように、攻撃技とコントローラの向き(姿勢)に関連を持たせることで、直感的に攻撃の操作を行うことができる。さらに、コントローラの姿勢を操作パターンに含めることで、操作子の数に限定されず、多様な攻撃技を設定することが可能になる。
そして、コントローラの姿勢の検出は、揺動操作の検出に比べ正確であるうえ、最終的にはAボタン72dの押下というデジタルな操作により決定を行っているため、誤作動が生じにくく、遊戯者のストレスを回避することができる。なお、上記「溜め斬り」のみコアユニット70を揺動させることによっても発動させているが、発動直前まで「溜め行動」により遊戯者の操作は所定時間停止しているため、誤作動は生じにくい。
このように、「溜め斬り」をはじめとしたプレイヤキャラクタの操作のうちいくつかには、コアユニット70の揺動による操作と、操作子の押下による操作との2形態が設定されており、遊戯者は好みによって好きな方を選択することができる。とくに、遊戯者が操作子の押下による操作のみを希望する場合、マスクモードの設定を選択する操作(本願発明のマスク設定操作に対応、例えばオプション画面における設定操作)を遊戯者からコントローラ7で受け付けたときに、コアユニット70の揺動の検出のみをマスクすることができ、さらに誤作動をなくすことができる。ここで、マスクモードとは、遊戯者の揺動操作を無視するモードをいう。
以上の攻撃操作以外に、戦闘中に敵の攻撃を受けないようにするため、「回避」の操作が設定されている。遊戯者がコアユニット70のBボタン72iを押下すると、1回押下するごとにプレイヤキャラクタは「しゃがみ」と「立ち上がり」を交互に行い、敵の攻撃を回避する。また、遊戯者がプレイヤキャラクタの移動操作(コントロールスティック78aの操作)中に上記回避操作を行うと、「緊急回避」として移動方向に向かって頭から1回転する。
図11、図12は、プレイヤキャラクタ制御部52が行うプレイヤキャラクタの武器制御処理を示すフローチャートである。ここでは、プレイヤキャラクタの武器の1つである「大剣」の制御を例に説明する。なお、この処理はたとえば1フレーム(1/60秒)ごとに繰り返し実行される。
まず、図11において、操作検出部50がAボタン72dのON(押下)を検出したか否かを判定する(S11)。ここで、ONの検出とは、ON状態を検出するのではなく、ON操作の立ち上がりを検出することをいう。Aボタン72dのONを検出した場合(S11でYES)、コアユニット70が垂直状態であると操作検出部50が検出したか否かを判定する(S12)。なお、操作検出部50は、Aボタン72dのONを検出したときに、このとき検知した加速度を用いてコアユニット70の姿勢を決定してキャラクタ制御部52に通知する。
コアユニット70が垂直状態である場合(S12でYES)、カウンタをセットして、プレイヤキャラクタに「溜め行動」を行わせ(S13)、溜めフラグをセットする(S14)。コアユニット70が垂直状態ではない場合(S12でNO)、コアユニット70が水平状態であると操作検出部50が検出したか否かを判定する(S15)。コアユニット70が水平状態である場合(S15でYES)、プレイヤキャラクタに「縦斬り」を行わせる(S16)。なお、S16の処理については詳しくは図13を用いて後述する。
コアユニット70が水平状態ではない場合(S15でNO)、コアユニット70が右向きであると操作検出部50が検出したか否かを判定する(S17)。コアユニット70が右向きの場合(S17でYES)、プレイヤキャラクタに「斬り上げ」を行わせる(S18)。コアユニット70が右向きではない場合(S17でNO)、コアユニット70が左向きであると操作検出部50が検出したか否かを判定する(S19)。コアユニット70が左向きの場合(S19でYES)、プレイヤキャラクタに「なぎ払い」を行わせる(S20)。
コアユニット70の「向き」は、予め所定の角度しきい値を設定しておき、検出されたコアユニット70の傾き角度が角度しきい値よりも大きい場合に右/左向きと判定すればよい(しきい値以下では、水平状態にあると判定する)。
一方、Aボタン72dのONを検出しなかった場合(S11でNO)、または、コアユニット70がS12、S15、S17、S19のいずれの状態でもない場合(S19でNO)、いかなる処理をも行わない。
次に、図12(A)において、操作検出部50がAボタン72dのOFF(解放)を検出したか否かを判定する(S25)。Aボタン72dのOFFを検出した場合(S25でYES)、溜めフラグがセットされているか否かを判定する(S26)。溜めフラグがセットされている場合(S26でYES)、溜めフラグをリセットし(S27)、溜め時間が3秒以上であるか否かを判定する(S28)。溜め時間が3秒以上である場合(S28でYES)、プレイヤキャラクタに溜め時間の長さに応じた威力で「溜め斬り」を行わせる(S29)。溜め時間が3秒未満である場合(S28でNO)、プレイヤキャラクタに「縦斬り」を行わせる(S30)。S29又はS30の実行後、カウンタをリセットする。
次に、同図(B)において、コアユニット70の振り(揺動)の検出がマスクされているか(マスクモードが設定されているか)否かを判定する(S31)。振りの検出がマスクされている場合(S31でYES)、振りの検出を無視するため以下の処理を行わない。なお、本処理では、キャラクタ制御手段52がコアユニット70の振りが検出されても無視することとしているが、操作検出部50にコアユニット70の振りの検出自体を行わせないように設定してもよい。
振りの検出がマスクされていない場合(S31でNO)、振りを検出したか否かを判定する(S32)。振りを検出した場合(S32でYES)、溜めフラグがセットされているか否かを判定する(S33)。溜めフラグがセットされている場合(S33でYES)、溜めフラグをリセットし(S34)、溜め時間が3秒以上であるか否かを判定する(S35)。溜め時間が3秒以上である場合(S35でYES)、プレイヤキャラクタに溜め時間の長さに応じた威力で「溜め斬り」を行わせる(S36)。溜め時間が3秒未満である場合(S35でNO)、プレイヤキャラクタに「縦斬り」を行わせる(S37)。S36又はS37の実行後、カウンタをリセットする。以上の処理を終了後、図11のS11よりリターンする。
なお、ユーザの溜め操作を受け付けて溜めフラグがセットされたのち、溜め操作中(Aボタン72dの解除およびコアユニット70の揺動操作を受け付けない状態中)にコアユニット70の姿勢が垂直状態ではなくなる場合がある。この場合でも溜めフラグがセットされている限り、溜め操作が継続していると判断される。
次に、図13を用いて、図11のS16で実行される縦斬りの動作処理を説明する。
図13(A)に示すように、縦斬りが行われることになると(図11のS16)、まず、既に前の攻撃操作が行われており、攻撃技(第1の攻撃動作)の再生中であるか否かを判定する(S161)。攻撃技の再生中である場合には(S161でYES)、連続攻撃受付時間帯(同図(B)の203)であるか否かを判定する(S162)。
連続攻撃受付時間帯である場合には(S162でYES)、再生中の攻撃技(第1の攻撃動作)がコアユニット70の姿勢に応じた攻撃技(第2の攻撃動作)と同一か否か、すなわち、再生中の攻撃技が縦斬りか否かを判定する(S163)。再生中の攻撃技が縦斬りでない場合には(S163でNO)、再生中の攻撃技のフォロースルー(同図(B)の202)を省略させ(S164)、「縦斬り」をキャラクタに行わせる(S165)。
一方、攻撃技の再生中でない場合には(S161でNO)、「縦斬り」をプレイヤキャラクタに行わせる(S165)。S162でNOとなった場合(同図(B)の201a、202で示す時間帯)、または、S163でYESの場合には、プレイヤキャラクタに「縦斬り」を行わせることなく本処理を終了する。なお、ここでは「縦斬り」についてのみ説明したが、「斬り上げ」についてのS18の動作処理、「なぎ払い」についてのS20の動作処理でも同様の処理を実行する。
図13(B)に示すように、プレイヤキャラクタの攻撃技が1回行われると、所定の動作再生時間200の長さの攻撃技のモーションデータが読み出される。動作再生時間200は、主攻撃時間帯201と、フォロースルー時間帯202とにより構成されている。そして、主攻撃時間帯201の後半の所定時間帯201bが、連続攻撃受付時間帯203となっている。同図に示すように、遊戯者による攻撃操作が連続攻撃受付時間帯203に行われると、フォロースルー時間帯202の動作が省略され、主攻撃時間帯201に続いてプレイヤキャラクタの次の攻撃技が開始される。一方、遊戯者による攻撃操作が連続攻撃受付時間帯203に行われないと、たとえば、連続攻撃をしようとしても攻撃操作が主攻撃時間帯201の前半の所定時間帯201aまたはフォロースルー時間帯202にずれた場合には、プレイヤキャラクタの次の攻撃技は行われない。
本実施形態では、コアユニット70の揺動を受け付けた場合にプレイヤキャラクタが繰り出す攻撃技は、「溜斬り」の場合を除いて必ず「縦斬り」であるが、本発明の他の実施形態として、揺動操作がなされるごとに、プレイヤキャラクタが「縦斬り」「斬り上げ」「なぎ払い」を、順番に繰り出す構成としてもよい。
以下、図14を用いて他の実施形態での処理を説明する。なお、この他の実施形態では、プレイヤキャラクタ制御部52に攻撃技の順番が予め設定される。また、この処理は、図12(B)で行われる処理において、溜めフラグがセットされていない場合(S33でNO)に、プレイヤキャラクタ制御部52によって実行される。
まず、攻撃技の再生中であるか否かを判定する(S41)。攻撃技の再生中である場合(S41でYES)、連続攻撃受付時間帯(図13(B)の203)であるか否かを判定する(S42)。連続攻撃受付時間帯である場合(S42でYES)、再生中の攻撃技のフォロースルーを省略させ(S43)、現在再生中の攻撃技の次の順番の攻撃技の種類を決定し、決定した攻撃技をプレイヤキャラクタに実行させる(S44)。この後、決定した攻撃技種類を記憶し(S45)、本処理はリターンする。なお、S45で記憶した攻撃技種類は次にS44で攻撃技を決定する際に使用される。
一方、攻撃技の再生中でない場合(S41でNO)、記憶する攻撃技の種類を初期設定に戻す(S46)。なお、攻撃技の種類が初期設定であると、S44で決定される攻撃技は必ず「縦斬り」となる。そして、キャラクタに「縦斬り」を行わせる(S47)。また、連続攻撃受付時間帯でない(図13(B)の201a、202で示す時間帯の)場合(S42でNO)には、記憶する攻撃技種類を初期設定に戻し(S48)、キャラクタに攻撃技を行わせることなく本処理を終了する。
上記他の実施形態では、攻撃技の再生中の連続攻撃受付時間帯にコアユニット70が振られた場合には、再生中の攻撃技のフォロースルーが省略されて、「縦斬り」「斬り上げ」「なぎ払い」のうちのいずれか1つが、順番に繰り出される。従って、コアユニット70を所定の姿勢にしてAボタン72dを操作する方法の他に、コアユニット70を振るという操作によっても連続攻撃を繰り出すことができる。さらに、誤検出が生じやすい「振り操作」をユーザの設定操作に従ってマスクすることもできるため、ユーザの操作の選択肢を広げながら操作の誤検出防止の目的も達成することができる。
なお、上記他の実施形態では、S44で「縦斬り」「斬り上げ」「なぎ払い」が順番に繰り出されるが、現在再生中の攻撃技以外の2つの技からランダムに繰り出してもよい。
なお、本実施形態では「大剣」を例に挙げて説明したが、「大剣」以外の武器であってもよい。また、キャラクタの武器を使用した攻撃動作に限定されず、「パンチ」「キック」等の武器なしでの攻撃動作であってもよい。この場合には、コアユニット70が向いている方向から「パンチ」や「キック」が繰り出されるようにすればよい。さらに、キャラクタの攻撃動作に限定されず、移動動作などの遊戯者が操作するキャラクタの動作であればよい。
また、本実施形態では、Aボタン72dとコアユニット70の姿勢の組み合わせに攻撃技が割り当てられているが、Aボタン72dに代えて他の操作ボタンに割り当ててもよい。また、Aボタン72dの操作回数とコアユニット70の姿勢の組み合わせに攻撃技が割り当てられてもよい。この場合には、コアユニット70が同じ姿勢であってもAボタン72dの押下回数が異なると別の攻撃技が繰り出される。また、複数の操作ボタンの操作とコアユニット70の姿勢とに攻撃技が割り当てられてもよい。また、本実施形態では、コアユニット70が垂直状態にある場合、水平状態にある場合、左向きの場合及び右向きの場合の合計4種類の攻撃技がAボタン72dの操作によって繰り出されるが、この他の姿勢に対応付けてより多くの攻撃技を繰り出すことができるようにしてもよい。
なお、本願発明では、モニタ2に出力されるゲーム画像中に武器を所持するキャラクタが登場し、ゲーム画像内でキャラクタが武器による攻撃をする設定になっているが、ゲーム画像内にキャラクタが登場せず、遊戯者自身が(仮想の)武器による攻撃をする設定等にしてもよい。すなわち、この発明は、ゲーム画像がプレイヤの主観的な視点によって描画されるタイプのプレイヤキャラクタが登場しないアクションゲームにも適用可能であり、例えば遊戯者本人が剣を構えて敵キャラクタを斬るゲームにこの発明を適用してもよい。いずれの場合においても、遊戯者はコアユニット70の姿勢を変えることにより、同一の操作で複数種類の攻撃技を繰り出すことができる。このコアユニット70の姿勢を変える操作は片手のみで容易に行うことができるため、遊戯者は素早く異なる種類の攻撃技を出したり、さらには上記連続攻撃を出したりすることができる。
なお、プレイヤキャラクタが使用する武器は、プレイヤキャラクタがゲーム内の店で購入や生産することができ、遊戯者は複数種類の武器の中から好みのものをプレイヤキャラクタに使用させることができる。
なお、このアクションゲームをプレイする場合に、プレイヤキャラクタの移動制御にコアユニット70、仮想カメラの移動制御にサブユニット76を用いるようにしてもよい。
なお、本実施形態では、加速度センサ701に検出されたコアユニット70の加速度によってコアユニット70の姿勢や揺動を検出する構成であるが、加速度センサ701に検出された速度を使用してコアユニット70の姿勢や揺動が検出されてもよい。また、加速度センサ701が加速度及び速度の両方を検出して、加速度及び速度の両方によってコアユニット70の姿勢や揺動が検出されてもよい。なお、他のセンサを使用してコアユニット70の姿勢を検出する構成であってもよく、例えば、撮像情報演算部74からの信号に基づいてコアユニット70の姿勢が検出されてもよい。
また、本実施形態では、コントローラ7が加速度センサ70からの信号をゲーム装置3に送信し、ゲーム装置3(操作検出部50)がこの信号を用いてコアユニット70の姿勢を検出する構成であるが、コントローラ7がコアユニット70の姿勢を検出し、検出結果をゲーム装置3に送信する構成であってもよい。
また、この発明は、家庭用ゲーム機のみならずアーケードゲーム機に適用してもよい。また、ゲーム機本体とコントローラが分離したゲーム機のみならず、コントローラと装置本体が一体化した携帯用ゲーム機に適用してもよい。また、コントローラが姿勢を検出する機能を持ち、この様なコントローラをパーソナルコンピュータに接続したものに本発明が適用されてもよい。