JP2009045273A - プログラム、情報記憶媒体、およびゲームシステム - Google Patents

プログラム、情報記憶媒体、およびゲームシステム Download PDF

Info

Publication number
JP2009045273A
JP2009045273A JP2007214750A JP2007214750A JP2009045273A JP 2009045273 A JP2009045273 A JP 2009045273A JP 2007214750 A JP2007214750 A JP 2007214750A JP 2007214750 A JP2007214750 A JP 2007214750A JP 2009045273 A JP2009045273 A JP 2009045273A
Authority
JP
Japan
Prior art keywords
game
input
operation information
motion
delay period
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007214750A
Other languages
English (en)
Inventor
Tetsuya Akatsuka
哲也 赤塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bandai Namco Entertainment Inc
Original Assignee
Namco Bandai Games Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Namco Bandai Games Inc filed Critical Namco Bandai Games Inc
Priority to JP2007214750A priority Critical patent/JP2009045273A/ja
Publication of JP2009045273A publication Critical patent/JP2009045273A/ja
Pending legal-status Critical Current

Links

Abstract

【課題】操作情報の入力に遅延が発生した場合であっても、その影響を抑えることができるプログラム、情報記憶媒体、およびゲームシステムを提供する。
【解決手段】コントローラ16の動きに応じて値が変化する動きセンサ162の出力値に基づいて、コントローラ16によって入力される操作情報を特定する。イベントの発生に基づいて第1のゲーム演算を行い、イベントに対する入力期間ITの後に設けられた遅延期間DT内に特定の操作情報の入力が行われた場合には第1のゲーム演算を中止して第2のゲーム演算を行う。
【選択図】図8

Description

本発明は、プログラム、情報記憶媒体、およびゲームシステムに関する。
従来から、ゲーム用のコントローラの動きを加速度センサにより検出し、当該加速度センサの出力値を用いてゲーム用の演算を行うゲームシステムが知られている。
例えば特許文献1では、投手キャラクタが球オブジェクトを投げるタイミングに合わせてプレーヤにバット型のコントローラを振らせる野球ゲームシステムにおいて、バット型のコントローラに内蔵された加速度センサの出力値から当該コントローラの位置情報を演算し、演算された位置情報を元に投手キャラクタが投げた球オブジェクトに打者キャラクタのバットオブジェクトが当たったか否かを判定することが開示されている。
また特許文献2では、釣り竿型コントローラを用いて釣り動作をプレーヤに行わせる釣りゲームシステムにおいて、釣り竿型コントローラに内蔵された加速度センサの出力値を魚オブジェクトを釣り上げる際のコントローラの引き上げの強さに用いることで、魚オブジェクトを釣り上げるか否かを判定することが開示されている。なお特許文献2では、加速度センサが内蔵された剣型コントローラを用いた格闘ゲームシステムや加速度センサが内蔵されたゴルフクラブ型コントローラを用いたゴルフゲームシステムついても開示されている。
特開平10−214155号公報 特開2002−210240号公報
しかしながら、コントローラを動かすことで所定の操作情報の入力を行う場合(例えば、コントローラを下方向に振ることで下方向への入力を行う場合など)には、操作情報を特定するための加速度を加速度センサが検出するまでに時間がかかってしまうため、プレーヤがコントローラを動かし始めるタイミング、即ちプレーヤが操作情報の入力を行ったと認識するタイミングよりも遅延して操作情報の入力が行われることになる。
従って、適切なタイミングで操作情報を入力するためには、プレーヤはより早いタイミングでコントローラを動かし始める必要があるが、ゲームの内容やゲームの状況から困難な場合も多い。
本発明は上記事情に鑑みてなされたものであり、その目的は、操作情報の入力に遅延が発生した場合であっても、その影響を抑えることができるプログラム、情報記憶媒体、およびゲームシステムを提供することにある。
(1)本発明は、コントローラを動かすことで操作情報の入力が可能なゲームのためのゲームシステムであって、前記コントローラの動きに応じて値が変化する動きセンサの出力値に基づいて、当該コントローラによって入力される操作情報を特定する操作情報特定部と、所与のイベントを発生させるイベント発生部と、前記イベントに対する所定の入力期間および当該入力期間の経過後の所定の遅延期間のうち、少なくとも当該遅延期間内に前記特定の操作情報の入力が行われたか否かを判定する操作情報判定部と、前記イベントの発生に基づいて第1のゲーム演算を行うとともに、前記遅延期間内に前記特定の操作情報の入力が行われた場合には当該第1のゲーム演算を中止して第2のゲーム演算を行うゲーム演算部とを含むゲームシステムに関するものである。
また本発明は、上記各部としてコンピュータを機能させるプログラム、および上記各部としてコンピュータを機能させるプログラムを記憶するコンピュータ読み取り可能な情報記憶媒体に関するものである。
「コントローラ」は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、動かすことで操作情報の入力ができれば、ゲーム装置本体や携帯電話なども「コントローラ」に含まれる。また「特定の操作情報」は、1種類である必要はなく複数あってもよい。
本発明では、イベントに対する所定の入力期間の経過後に設けられた所定の遅延期間内に特定の操作情報の入力が行われた場合に、イベントの発生に基づいて行われる第1のゲーム演算を中止して第2のゲーム演算を行うようにしている。このように本発明では、イベントに対する入力期間に遅延期間が設けられているため、動きセンサを用いて操作情報を特定する性質上、操作情報の入力に遅延が発生した場合であっても、操作情報の入力遅延による影響を抑えることができる。
(2)また本発明のゲームシステム、プログラムおよび情報記憶媒体では、前記操作情報判定部が、前記入力期間内に前記特定の操作情報の入力が行われたか否かを判定し、前記ゲーム演算部が、前記入力期間内に前記特定の操作情報の入力が行われた場合には前記第1のゲーム演算を中止して第2のゲーム演算を行うようにしてもよい。
(3)また本発明のゲームシステム、プログラムおよび情報記憶媒体では、前記ゲームは、モーションデータに基づいてオブジェクト空間内でゲームキャラクタを動作させるゲームであって、前記オブジェクト空間内を所与の視点位置から見た画像を生成する描画部として更にコンピュータを機能させ、前記ゲーム演算部が、前記第2のゲーム演算として、前記ゲームキャラクタの第2の一連のモーションを生成するゲーム演算を行い、前記第1のゲーム演算として、前記遅延期間の少なくとも一部を含む時間帯に生成されるモーションが前記第2の一連のモーションと連続性があるモーションである前記ゲームキャラクタの第1の一連のモーションを生成するゲーム演算を行うようにしてもよい。
「モーションデータ」は、モーションキャプチャで計測されたモーションを再生するためのモーションデータのみならず、物理シミュレーション(物理計算を利用したシミュレーション。擬似的な物理計算でもよい)やモーションデータ同士の補間などによりリアルタイムに生成したモーションデータであってもよい。
このようにすると、遅延期間内に特定の操作情報の入力が行われたことに伴い、第1の一連のモーションの生成(第1のゲーム演算)を中止して第2の一連のモーションを生成する(第2のゲーム演算を行う)場合であっても、モーションの切り替えを目立たなくすることができる。
(4)また本発明のゲームシステム、プログラムおよび情報記憶媒体では、前記ゲーム演算部が、前記入力期間内に前記特定の操作情報の入力が行われなかった場合には、前記第1の一連のモーションと前記第2の一連のモーションとをブレンドすることで新たな一連のモーションを生成するゲーム演算を行い、前記遅延期間内に前記特定の操作情報の入力が行われた場合には、前記第1の一連のモーションに対する前記第2の一連のモーションの割合を時間経過とともに高めながらブレンドし、前記遅延期間内に前記特定の操作情報の入力が行われなかった場合には、前記第2の一連のモーションに対する前記第1の一連のモーションの割合を時間経過とともに高めながらブレンドするようにしてもよい。
このようにすると、モーションの遷移を滑らかに行うことができる。
(5)また本発明のゲームシステム、プログラムおよび情報記憶媒体では、前記ゲーム演算部が、前記入力期間内に前記特定の操作情報の入力が行われなかった場合には、新たな一連のモーションを生成するゲーム演算を行い、前記遅延期間内に前記特定の操作情報の入力が行われた場合には、前記新たな一連のモーションとして、最終的に前記第2の一連のモーションに遷移する一連のモーションを生成するゲーム演算を行い、前記遅延期間内に前記特定の操作情報の入力が行われなかった場合には、前記新たな一連のモーションとして、最終的に前記第1の一連のモーションに遷移する一連のモーションを生成するゲーム演算を行うようにしてもよい。
このようにすると、モーションの遷移を滑らかに行うことができる。
(6)また本発明のゲームシステム、プログラムおよび情報記憶媒体では、前記ゲーム演算部が、前記第2のゲーム演算として、第2の一連のゲームエフェクトを生成するゲーム演算を行い、前記第1のゲーム演算として、前記遅延期間の少なくとも一部を含む時間帯に生成されるゲームエフェクトが前記第2の一連のゲームエフェクトと連続性があるゲームエフェクトである第1の一連のゲームエフェクトを生成するゲーム演算を行い、前記描画部が、生成されたゲームエフェクトを含むゲーム画像を生成するようにしてもよい。「ゲームエフェクト」には、ゲーム状況を際立たせるための特殊効果を表現する画像などが含まれる。
このようにすると、遅延期間内に特定の操作情報の入力が行われたことに伴い、第1の一連のゲームエフェクトの生成(第1のゲーム演算)を中止して第2の一連のゲームエフェクトを生成する(第2のゲーム演算を行う)場合であっても、ゲームエフェクトの切り替えを目立たなくすることができる。
(7)また本発明のゲームシステム、プログラムおよび情報記憶媒体では、前記ゲーム演算部が、前記第2のゲーム演算として、第2の一連のゲーム音の出力制御を行い、前記第1のゲーム演算として、前記遅延期間の少なくとも一部を含む時間帯に出力されるゲーム音が前記第2の一連のゲーム音と連続性があるゲーム音である第1の一連のゲーム音の出力制御を行うようにしてもよい。「ゲーム音」には、ゲーム状況に応じて出力される効果音やBGMなども含まれる。
このようにすると、遅延期間内に特定の操作情報の入力が行われたことに伴い、第1の一連のゲーム音の出力制御(第1のゲーム演算)を中止して第2の一連のゲーム音の出力制御(第2のゲーム演算)を行う場合であっても、ゲーム音の切り替えを目立たなくすることができる。
(8)また本発明のゲームシステム、プログラムおよび情報記憶媒体では、前記ゲーム演算部が、ゲームを進行させるゲーム演算およびゲーム結果を求めるゲーム演算の少なくとも一方に用いられるゲームパラメータを、前記入力期間の経過後所定の時間をかけて更新するゲーム演算を行うようにしてもよい。
このようにすると、例えば、特定の操作情報の入力が行われまでの時間に応じてゲームパラメータの更新を行うこともできるため、新たなゲーム性を付与することができる。
(9)また本発明のゲームシステム、プログラムおよび情報記憶媒体では、前記ゲーム演算部が、ゲームを進行させるゲーム演算およびゲーム結果を求めるゲーム演算の少なくとも一方に用いられるゲームパラメータを、前記遅延期間が経過した後または前記特定の操作情報の入力が行われた後に更新するゲーム演算を行うようにしてもよい。
このようにすると、いずれのゲーム演算でゲームを進行させるのかが確定した後にゲームパラメータを更新することができるため、実行されるゲーム演算に応じてゲームパラメータの更新を行うことができる。
(10)また本発明のゲームシステム、プログラムおよび情報記憶媒体では、前記遅延期間が、前記ゲーム演算の内容毎に設定されるようにしてもよい。
このようにすると、ゲーム演算の内容毎に遅延期間が設定されることになるため、新たなゲーム性を付与することができる。
(11)また本発明のゲームシステム、プログラムおよび情報記憶媒体では、前記操作情報判定部が、所与のゲーム条件に応じて前記遅延期間を変更し、変更された遅延期間内に前記特定の操作情報の入力が行われたか否かを判定するようにしてもよい。
このようにすると、ゲーム条件に応じて遅延期間を変更することができるため、新たなゲーム性を付与することができる。
(12)また本発明のゲームシステム、プログラムおよび情報記憶媒体では、前記コントローラには、操作情報の入力を行うための操作子が設けられており、前記特定の操作情報は、前記コントローラの動きに応じて値が変化する動きセンサの出力値に基づいて特定される操作情報と操作子からの操作情報との組合せであってもよい。
(13)本発明は、コントローラを動かすことで操作情報の入力が可能なゲームのためのゲームシステムであって、前記コントローラの動きに応じて値が変化する動きセンサの出力値に基づいて、当該コントローラによって入力される操作情報を特定する操作情報特定部と、第1の操作情報の入力が行われた後の所定の入力期間内に第2の操作情報の入力が行われたか否かを判定する操作情報判定部と、前記入力期間内に前記第2の操作情報の入力が行われた場合には前記第2の操作情報の入力を確定するゲーム演算を行い、前記入力期間内に前記第2の操作情報以外の操作情報である第3の操作情報の入力が行われた場合には当該第3の操作情報の入力を確定するゲーム演算を行うゲーム演算部とを含み、前記操作情報判定部が、前記第3の操作情報の入力後所定の遅延期間内に前記第2の操作情報の入力が行われたか否かを判定し、前記ゲーム演算部が、前記遅延期間内に前記第2の操作情報の入力が行われた場合には、前記第3の操作情報の入力の確定を取り消して前記第2の操作情報の入力を確定するゲーム演算を行うゲームシステムに関するものである。
また本発明は、上記各部としてコンピュータを機能させるプログラム、および上記各部としてコンピュータを機能させるプログラムを記憶するコンピュータ読み取り可能な情報記憶媒体に関するものである。
「コントローラ」は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、動かすことで操作情報の入力ができれば、ゲーム装置本体や携帯電話なども「コントローラ」に含まれる。
本発明では、第1の操作情報の入力が行われた後の所定の入力期間内に第2の操作情報以外の操作情報である第3の操作情報の入力が行われた場合であっても、第3の操作情報の入力後所定の遅延期間内に第2の操作情報の入力が行われた場合には、所定の入力期間内に第2の操作情報の入力が行われた場合と同様に、第1の操作情報の入力が行われた後に第2の操作情報の入力が行われたことを確定するゲーム演算を行うようにしている。このように本発明では、第2の操作情報以外の操作情報である第3の操作情報が入力された場合であっても、遅延期間内に第2の操作情報が入力された場合には、第3の操作情報の入力の確定を取り消して第2の操作情報の入力を確定するため、動きセンサを用いて操作情報を特定する性質上、第2の操作情報の入力を行う前にプレーヤが意図しない第3の操作情報の入力が行われた場合であっても、その影響を抑えることができる。
以下、本発明の実施の形態(本実施形態)について説明する。なお、以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また、本実施形態で説明される構成の全てが本発明の必須構成要件であるとは限らない。
1.ゲームシステムの概略
図1は、本実施形態のゲームシステムの概略外観図の一例である。
ゲームシステム10は、表示画面11にゲーム画像を表示させる表示装置12と、ゲーム処理等を行うゲーム機14と、プレーヤPLが把持して位置、姿勢、向きを任意に変更可能なコントローラ16とを含む。なお、ゲーム機14とコントローラ16とは、無線通信により情報の送受信を行っているが、例えば、ゲーム機14とコントローラ16とを通信ケーブルで接続し、当該通信ケーブルを介して情報の送受信を行うようにしてもよい。
図2は、本実施形態のコントローラの概略外観図の一例である。
コントローラ16は、レバー18(アナログパッド)、サイドボタン20などの操作子が設けられた第1のコントローラ16−1と、十字キー22、ボタン24などの操作子が設けられた第2のコントローラ16−2とを含む。
第1のコントローラ16−1には、第1の加速度センサ30−1が内蔵されており、第2のコントローラ16−2には、第2の加速度センサ30−2が内蔵されている。第1の加速度センサ30−1は、第1のコントローラ16−1自体の動きを加速度ベクトルとして検出することができ、第2の加速度センサ30−2は、第2のコントローラ16−2自体の動きを加速度ベクトルとして検出することができる。特に本実施形態では、第1の加速度センサ30−1および第2の加速度センサ30−2によって検出される加速度ベクトルを、ゲーム空間(オブジェクト空間)としての仮想3次元空間(ワールド座標系)における3軸(X軸、Y軸、Z軸)それぞれの加速度ベクトルとして検出することができる。
なおコントローラ16は、第1のコントローラ16−1または第2のコントローラ16−2のいずれか一方のみであってもよい。また、第1のコントローラ16−1または第2のコントローラ16−2のいずれか一方のみに加速度センサを内蔵するようにしてもよい。
このように本実施形態では、第1のコントローラ16−1の動きを第1の加速度センサ30−1が検出し、第2のコントローラ16−2の動きを第2の加速度センサ30−2が検出するため、第1のコントローラ16−1および第2のコントローラ16−2の動きを操作情報として入力することできる。従って、プレーヤPLはゲーム上の動作に近い動作を行ってコントローラ16を動かすような仮想現実感が高められたゲームを楽しむことができる。
2.ゲームシステムの機能ブロック
図3は、本実施形態のゲームシステムの機能ブロック図の一例である。なお本実施形態のゲームシステムでは、図3の構成要素(各部)を全て含む必要はなく、その一部を省略した構成としてもよい。
操作部160は、プレーヤが行った操作を操作情報として入力するためのものであり、その機能は、コントローラ、レバー、ボタン、マウス、マイク、トラックボールなどのハードウェアにより実現できる。なおコントローラには、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。またコントローラには、コントローラと一体化されているゲーム装置、携帯電話なども含まれる。
特に本実施形態の操作部160は、例えばコントローラ16のように、プレーヤが把持することで位置、姿勢、向き等を任意に変更可能に構成されており、操作部160自体の動き、姿勢、向き等に応じて変化する情報を検出する動きセンサ162を内蔵する。
動きセンサ162は、操作部160自体の動き等に応じた加速度、角速度、速度などを検出し、検出した加速度等の値を出力するものであり、その機能は、加速度センサ(圧電型や動電式、歪みケージ式等)や姿勢方位センサやジャイロなどのハードウェアにより実現できる。
なお操作部160に、ボタン、レバー(アナログパッド)、十字キー、マイク、タッチパネル型ディスプレイなどの操作子を更に設けるようにして、種々の操作データを入力できるようにしてもよい。
記憶部170は、処理部100や通信部194などのワーク領域となるもので、その機能はRAM(VRAM)などのハードウェアにより実現できる。なお、これらの一部を省略する構成としてもよい。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。そして処理部100は、この情報記憶媒体180に格納されるプログラム(データ)や携帯型情報記憶装置182から読み出されたデータなどに基づいて本実施形態の種々の処理を行う。即ち、情報記録媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。なお携帯型情報記憶装置182は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置182としては、メモリカードや携帯型ゲーム装置などがある。
表示部190は、処理部100により生成された画像を出力するものであり、その機能は、CRTディスプレイ、LCD(液晶ディスプレイ)、OELD(有機ELディスプレイ)、PDP(プラズマディスプレイパネル)、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
音出力部192は、処理部100により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。
通信部194は、外部(例えばホスト装置や他のゲームシステム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバ)が有する情報記憶媒体からネットワーク及び通信部194を介して情報記憶媒体180(記憶部170)に配信するようにしてもよい。このようなホスト装置(サーバ)の情報記憶媒体の使用も本発明の範囲に含まれる。
処理部100(プロセッサ)は、操作部160からのや操作情報や情報記憶媒体180から記憶部170に展開されたプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。なお、処理部100は記憶部170の主記憶部171をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
特に本実施形態の処理部100は、操作情報特定部110、イベント発生部112、操作情報判定部114、ゲーム演算部120、描画部140、音生成部150を含んで構成される。なお、これらの一部を省略する構成としてもよい。
操作情報特定部110は、コントローラ16(操作部160)の動きに応じて値が変化する動きセンサ162の出力値に基づいて、当該コントローラ16によって入力される操作情報を特定する処理を行う。
具体的に説明すると、本実施形態では、動きセンサ162が1/200秒(所定の周期の一例)ごとにコントローラ16の加速度ベクトル(コントローラ16の動き等に応じて変化する情報の一例)を検出している。即ち、動きセンサ162の出力値が1/200秒ごとに更新されており、操作情報特定部110は、動きセンサ162の出力値がしきい値を超えたことを条件にコントローラ16によって入力される操作情報を特定している。
なお操作情報特定部110は、動きセンサ162の出力値が一定期間しきい値を超えたことを条件にコントローラ16によって入力される操作情報を特定するようにしてもよいし、動きセンサ162が検出する加速度ベクトルからコントローラ16自体の動きの大きさ、方向、速度などを演算し、演算された値からコントローラ16によって入力される操作情報を特定するようにしてもよい。また「操作情報」は、動きセンサ162の出力値だけでなく、コントローラ16に設けられた操作子(サイドボタン20など)から入力される情報との組合せで特定するようにしてもよい。操作子から入力される情報は、例えば1/60秒ごとに入力されるようにしてもよい。
イベント発生部112は、所与のイベントを発生させる処理を行う。具体的には、所与のゲーム条件が成立したことに基づいてイベントを発生させたり、タイマ値が所与の値に達したことに基づいてイベントを発生させたり、プレーヤからの操作情報に基づいてイベントを発生させる処理を行う。
「イベント」とは、ゲーム空間(オブジェクト空間)で発生する事象のことであり、例えば、キャラクタが他のキャラクタを攻撃するイベント、キャラクタがオブジェクト(球等)を蹴るイベント、キャラクタがオブジェクトを投げるイベント等、ゲーム内容に応じて種々のイベントを用意することができる。
操作情報判定部114は、イベントに対する所定の入力期間および入力期間の経過後の所定の遅延期間のうち、少なくとも遅延期間内に特定の操作情報の入力が行われたか否かを判定する処理を行う。なお、入力期間内に特定の操作情報の入力が行われたか否かを判定する処理を行うようにしてもよい。
「遅延期間」は、例えばコントローラ16によって入力される操作情報が特定されるまでの時間に対応させて設定するようにしてもよい。また、後述するゲーム演算部120の演算内容毎(具体的には、モーション生成、ゲームエフェクト生成、ゲーム音出力制御、ゲームパラメータの更新毎)に遅延期間を設定するようにしてもよい。
また操作情報判定部114は、第1の操作情報の入力が行われた後の所定の入力期間内に第2の操作情報の入力が行われたか否かを判定する処理を行うとともに、第3の操作情報の入力後所定の遅延期間内に第2の操作情報の入力が行われたか否かを判定する処理を行う。
また操作情報判定部114は、所与のゲーム条件に応じて遅延期間を変更し、変更された遅延期間内に特定の操作情報の入力が行われたか否かを判定する処理を行うようにしてもよい。
「所与のゲーム条件に応じて前記遅延期間を変更し」には、例えば、ゲーム空間(オブジェクト空間)内において、特定の条件が成立したことあるいは特定の条件が成立しなかったことに基づいて、遅延期間の長さを変更することが含まれる。「特定の条件」は、例えば、敵キャラクタを倒すこと、特定のコマンドを入力すること、アイテムを獲得すること、得点すること等、ゲーム内容に応じて種々の条件を用意することができる。
ゲーム演算部120は、ゲーム開始条件が満たされた場合にゲームを開始するゲーム演算、ゲームを進行させるゲーム演算、キャラクタ、移動体、マップなどのオブジェクトを配置するゲーム演算、オブジェクトを表示するゲーム演算、ゲーム結果を演算するゲーム演算、或いはゲーム終了条件が満たされた場合にゲームを終了するゲーム演算などを行う。
特に本実施形態のゲーム演算部120は、イベントの発生に基づいて第1のゲーム演算を行うとともに、遅延期間内に特定の操作情報の入力が行われた場合には第1のゲーム演算を中止して第2のゲーム演算を行う。なお、入力期間内に前記特定の操作情報の入力が行われた場合にも、第1のゲーム演算を中止して第2のゲーム演算を行うようにしてもよい。
また本実施形態のゲーム演算部120は、入力期間内に第2の操作情報の入力が行われた場合には第2の操作情報の入力を確定するゲーム演算を行い、入力期間内に第2の操作情報以外の操作情報である第3の操作情報の入力が行われた場合には第3の操作情報の入力を確定するゲーム演算を行い、遅延期間内に第2の操作情報の入力が行われた場合には、第3の操作情報の入力が確定していることを条件に、第3の操作情報の入力の確定を取り消して第2の操作情報の入力を確定するゲーム演算を行う。
そして本実施形態のゲーム演算部120は、表示制御部122、モーション生成部124、エフェクト生成部126、音制御部128、パラメータ更新部130を含んで構成される。なお、これらの一部を省略する構成としてもよい。
表示制御部122は、表示部190に表示される画像(オブジェクト画像)の表示制御を行う。具体的には、表示すべきオブジェクト(キャラクタ、移動体(車、飛行機など)、建物、樹木、柱、壁、マップ(地形))を発生させたり、オブジェクトの表示や表示位置を指示したり、オブジェクトを消滅させたりするなどの表示制御を行う。即ち発生したオブジェクトをオブジェクトリストに登録したり、オブジェクトリストを描画部140等に転送したり、消滅したオブジェクトをオブジェクトリストから削除したりするなどの表示制御を行う。
また表示制御部122は、プレーヤからの操作情報等により、プレーヤキャラクタ(プレーヤの操作対象となるキャラクタ)やオブジェクトの動作や移動が発生した場合に、発生した動作や移動の様子を示す画像を表示部190に表示するための制御を行う。
特に本実施形態のゲームシステムでは、ゲーム空間を3次元のオブジェクト空間によって設定するようになっており、表示制御部122は、オブジェクト空間設定処理、仮想カメラ制御処理なども行う。
オブジェクト空間設定処理では、キャラクタ、移動体(車、飛行機など)、建物、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
仮想カメラ制御処理では、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
例えば仮想カメラによりオブジェクト(例えば、キャラクタ等)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、後述するモーション生成部124で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
モーション生成部124は、モデル(キャラクタ、車、飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、モデルをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
特に本実施形態のモーション生成部124は、第2のゲーム演算として、ゲームキャラクタの第2の一連のモーションを生成する処理を行い、第1のゲーム演算として、遅延期間の少なくとも一部を含む時間帯に生成されるモーションが第2の一連のモーションと連続性があるモーションであるゲームキャラクタの第1の一連のモーションを生成する処理を行う。なお、第1の一連のモーションおよび第2の一連のモーションのモーションデータは、モーションデータ記憶部172に記憶されており、モーション生成部124は、このモーションデータを読み出すことで、モーションの生成を実現する。
また本実施形態のモーション生成部124は、入力期間内に特定の操作情報の入力が行われなかった場合には、第1の一連のモーションと第2の一連のモーションとをブレンドすることで新たな一連のモーションを生成する処理を行い、遅延期間内に特定の操作情報の入力が行われた場合には、第1の一連のモーションに対する第2の一連のモーションの割合を時間経過とともに高めながらブレンドする処理を行い、遅延期間内に特定の操作情報の入力が行われなかった場合には、第2の一連のモーションに対する第1の一連のモーションの割合を時間経過とともに高めながらブレンドする処理を行うようにしてもよい。なお、モーションブレンドの開始時期、モーションブレンドの終了時期、およびモーションブレンドのブレンドレートは、ブレンドするモーションに応じて適宜設定することが好ましい。
また本実施形態のモーション生成部124は、入力期間内に特定の操作情報の入力が行われなかった場合には、新たな一連のモーションを生成する処理を行い、遅延期間内に特定の操作情報の入力が行われた場合には、新たな一連のモーションとして、最終的に第2の一連のモーションに遷移する一連のモーションを生成する処理を行い、遅延期間内に特定の操作情報の入力が行われなかった場合には、新たな一連のモーションとして、最終的に第1の一連のモーションに遷移する一連のモーションを生成する処理を行うようにしてもよい。なお、最終的に第1の一連のモーションに遷移する一連のモーションおよび最終的に第2の一連のモーションに遷移する一連のモーションのモーションデータは、モーションデータ記憶部172に記憶されており、モーション生成部124は、このモーションデータを読み出すことで、モーションの生成を実現する。
エフェクト生成部126は、エフェクトデータ記憶部173に記憶されたエフェクトデータの中からゲーム状況に応じたエフェクトデータを読み出して、ゲーム空間内の所与の位置にエフェクトを生成する処理を行う。
特に本実施形態のエフェクト生成部126は、第2のゲーム演算として、第2の一連のゲームエフェクトを生成する処理を行い、第1のゲーム演算として、遅延期間の少なくとも一部を含む時間帯に生成されるゲームエフェクトが第2の一連のゲームエフェクトと連続性があるゲームエフェクトである第1の一連のゲームエフェクトを生成する処理を行う。なお、ゲームエフェクトは、例えばパーティクルとしてモデル化することで、光、火花、軌跡、爆発、炎、水、風、煙などを表現することができる。
音制御部128は、音データ記憶部174に記憶された音データの中からゲーム状況に応じた音データを読み出すことで、ゲーム音の出力制御を行う。
特に本実施形態の音制御部128は、第2のゲーム演算として、第2の一連のゲーム音の出力制御を行い、第1のゲーム演算として、遅延期間の少なくとも一部を含む時間帯に出力されるゲーム音が第2の一連のゲーム音と連続性があるゲーム音である第1の一連のゲーム音の出力制御を行う。
パラメータ更新部130は、ゲームを進行させるゲーム演算およびゲーム結果を求めるゲーム演算の少なくとも一方に用いられるゲームパラメータを更新する処理を行う。なお、ゲームパラメータのパラメータデータは、パラメータデータ記憶部175に記憶されており、パラメータ更新部130は、このパラメータデータの値を加算したり減算して書き変えることで、ゲームパラメータの更新を行う。「ゲームパラメータ」は、例えば、ゲームを進行させるゲーム演算に用いられるゲームキャラクタの体力パラメータやライフパラメータ、あるいはゲーム結果を求めるゲーム演算に用いられる得点パラメータ等が含まれる。
特に本実施形態のパラメータ更新部130は、ゲームを進行させるゲーム演算およびゲーム結果を求めるゲーム演算の少なくとも一方に用いられるゲームパラメータを、入力期間の経過後所定の時間をかけて更新する処理を行う。
また本実施形態のパラメータ更新部130は、ゲームを進行させるゲーム演算およびゲーム結果を求めるゲーム演算の少なくとも一方に用いられるゲームパラメータを、遅延期間が経過した後または特定の操作情報の入力が行われた後に更新するゲーム演算を行うようにしてもよい。
描画部140は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まず表示物(オブジェクト、モデル)を定義する各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含む表示物データ(オブジェクトデータ、モデルデータ)が入力され、入力された表示物データに含まれる頂点データに基づいて、頂点処理が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。頂点処理では、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、表示物を構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(フラグメント処理)が行われる。ピクセル処理では、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ176(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内に設定された仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
なお描画部140が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
そして描画部140は、表示物を描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
ジオメトリ処理では、表示物に関して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)の表示物データ(表示物の頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、主記憶部171に保存される。
テクスチャマッピングは、記憶部170に記憶されるテクスチャ(テクセル値)を表示物にマッピングするための処理である。具体的には、表示物の頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャを表示物にマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより2つの色を合成した色を求める処理を行う。
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えばRGBの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
音生成部150は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
なお、本実施形態のゲームシステムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
3.本実施形態の手法
次に本実施形態の手法について説明する。以下では、刀などの武器を用いたアクションゲームに本実施形態を適用した場合を例にとり説明するが、アクションゲーム以外にも、例えば、格闘ゲーム、スポーツゲーム、音楽演奏ゲームなど種々のゲームに本実施形態を適用することができる。
3−1.アクションゲームの概要
図4〜図6を参照しながら本実施形態のアクションゲームの概要について説明する。図4、図5(B)、図6(B)は、本実施形態のアクションゲームのゲーム画像の一例を示す図であり、図5(A)、図6(A)は、本実施形態のアクションゲームで行われる操作の一例を示す図である。
本実施形態のアクションゲームは、図4に示すように、プレーヤPLが操作するプレーヤキャラクタPCと敵キャラクタECとが互いに武器を用いて戦う(斬り合う)ゲームである。プレーヤPLは表示装置12の表示画面11に表示されるゲーム画像を見ながらコントローラ16を操作して、プレーヤキャラクタPCに攻撃や防御などの動作を行わせる。
特に本実施形態では、コントローラ16に加速度センサが内蔵されており、コントローラ16自体の動きを操作情報として入力することもできる。従って、コントローラ16に設けられた操作子(レバー18、サイドボタン20など)を操作してプレーヤキャラクタPCを動作させるだけでなく、コントローラ16自体の動き(コントローラ16を把持するプレーヤPLの動作)に応じた動作をプレーヤキャラクタPCに行わせることもできる。
例えば、プレーヤPLが第2のコントローラ16−2を所与の方向に振ることで、第2のコントローラ16−2の振り方向に応じた攻撃(斬り動作等)をプレーヤキャラクタPCに行わせ、プレーヤPLが第1のコントローラ16−1に設けられたレバー18を操作することで、プレーヤキャラクタPCをゲーム空間内で移動させる。
また、敵キャラクタECの攻撃のタイミングに合わせて、図5(A)に示すように、プレーヤPLがサイドボタン20を押しながら第1のコントローラ16−1を前方に動かすことで、図5(B)に示すように、プレーヤキャラクタPCに敵キャラクタECの攻撃を弾き返させる。同様に、敵キャラクタECの攻撃のタイミングに合わせて、図6(A)に示すように、プレーヤPLがサイドボタン20を押しながら第1のコントローラ16−1を後方に動かすことで、図6(B)に示すように、プレーヤキャラクタPCに敵キャラクタECの攻撃を受け流させる。
このように本実施形態では、コントローラ16を把持するプレーヤPLの動作をプレーヤキャラクタPCに反映させて、敵キャラクタECを攻撃したり(斬りつけたり)、敵キャラクタECの攻撃を防御したり(弾き返したり、受け流したり)することができる。従って、従来のアクションゲームに比べて仮想現実感が飛躍的に向上されており、あたかも、プレーヤ自身が実際に戦っているかのような感覚を味わいながらゲームを楽しむことができる。なお本実施形態のアクションゲームは、プレーヤPLだけでなく複数のプレーヤが参加してプレイできるようになっている。
3−2.操作情報の入力遅延の影響を抑える手法
図7〜図8を参照しながら操作情報の入力遅延の影響を抑える手法について説明する。図7は、操作情報の入力遅延の原理の一例を説明するための図であり、図8(A)〜図8(D)は、操作情報の入力遅延の影響を抑える手法の一例を説明するための図である。
上述したように本実施形態では、コントローラ16に加速度センサが内蔵されているため、コントローラ16自体の動きを操作情報として入力することができる。
しかし、コントローラ16自体の動きを操作情報として入力する場合には、操作情報を特定するための加速度(しきい値)を加速度センサが検出するまでに時間がかかってしまうため、プレーヤPLがコントローラ16を動かし始めるタイミング、即ちプレーヤPLが操作情報の入力を行ったと認識するタイミングよりも遅延して操作情報の入力が行われることになる。
この点、図7を参照しながら具体的に説明する。図7のグラフは、下方向への入力を行うために第1のコントローラ16−1を下方向に振った場合の第1の加速度センサ30−1の出力値の遷移を表している。なお、図7のグラフの横軸tは時間を表し、縦軸aは上方向(ワールド座標系におけるY軸方向)の加速度を表している。
プレーヤPLが第1のコントローラ16−1を下方向に振り始めると、下方向(ワールド座標系におけるY軸の反対方向)の加速度が出力される(t1)。続いて、振りの途中で下方向の加速度がピークを迎えるとともに上方向(ワールド座標系におけるY軸方向)の加速度が出力され始める(t2)。そして、しきい値asを超えた後(t3)、プレーヤPLが第1のコントローラ16−1を下方向に振り終える(第1のコントローラ16−1の振りを止める)と上方向の加速度がピークを迎える(t4)。
このように、加速度センサ30−1の出力値がしきい値asを超えるのは、プレーヤPLが第1のコントローラ16−1を下方向に振り終える直前のt3の時点であるため、下方向への入力の特定は、プレーヤPLが下方向への入力を行ったと認識する時点(t1の時点)よりもt3−t1分(概ね4/60秒)遅れて行われることになる。
従って、コントローラ16自体の動きを操作情報として入力する場合には、プレーヤPLが操作情報の入力を行ったと認識するタイミングよりも遅延して操作情報の入力が行われることになる。
ところで本実施形態では、例えば図5(A)や図6(A)に示す操作のように、敵キャラクタECの攻撃のタイミングに合わせて操作情報の入力を行うことを要求される場合がある。
具体的に説明すると、敵キャラクタECの攻撃(所与のイベントの一例)の発生に伴い、敵キャラクタECがプレーヤキャラクタPCを斬りつける等の攻撃を開始する(第1のゲーム演算の一例)。そして、この敵キャラクタECの攻撃をプレーヤキャラクタPCに弾き返させたり、受け流させたりする(第1のゲーム演算を中止して第2のゲーム演算を行うの一例)ためには、図8(A)に示すように、敵キャラクタECの攻撃が発生してから敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットするまでの間(所定の入力期間の一例、以下、入力期間ITとする)に、図5(A)や図6(A)に示す操作に伴う操作情報(特定の操作情報の一例)の入力を行うことを要求される。
しかし、上述したような入力遅延の問題が発生すると、図8(B)に示すように、入力期間IT内に図5(A)や図6(A)に示す操作を開始したにも関わらず、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした後に操作情報の入力が行われるという事態も生じうる。このため、プレーヤPLが入力期間IT内に図5(A)や図6(A)に示す操作に伴う操作情報の入力を行って、プレーヤキャラクタPCに敵キャラクタECの攻撃を弾き返させたり、受け流させたりすることが困難になる。
そこで本実施形態では、図8(C)に示すように、入力期間ITの後に操作情報の入力遅延に対応した期間(所定の遅延期間の一例、以下、遅延期間DTとする)を設け、当該遅延期間DT内に図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われた場合にも、プレーヤキャラクタPCに敵キャラクタECの攻撃を弾き返させたり、受け流させたりすることでこの問題を解決する。
このように本実施形態では、入力期間ITに加え遅延期間DTが設けられているため、加速度センサを用いて操作情報を特定する性質上、操作情報の入力に遅延が発生した場合であっても、操作情報の入力遅延による影響を抑えることができる。なお、遅延期間DTのみを設けるようにしてもよい。
特に本実施形態では、遅延期間DTはコントローラ16を動かし始めてから操作情報が入力されるまでの遅延時間(例えば、図7に示すt3−t1)に対応させて設定している。このようにすると、図8(D)に示すように、入力期間IT内に図5(A)や図6(A)に示す操作を開始することができなかったにも関わらず、遅延期間DT内に操作情報の入力が行われてしまい、プレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返したり、受け流してしまうという事態が生じることを防止することができる。
なお本実施形態では、コントローラ16を動かし始めてから操作情報が入力されるまでの遅延時間(図7に示すt3−t1の時間)が概ね4/60秒程度であるため、遅延期間DTを4/60秒に設定している。但し、この遅延時間は、コントローラ16をどのように動かすか、あるいはコントローラ16を動かすプレーヤによっても異なるため、遅延期間DTは状況に応じて適宜設定することが好ましい。例えば、初期設定メニュー等において、コントローラ16を所定の方向に振らせる動作をプレーヤPLに行わせ、その際の加速度センサの出力値から遅延期間DTを設定するようにしてもよい。
また、必ずしもこの遅延時間に対応させて遅延期間DTを設定する必要はなく、難易度調整やゲーム条件など種々の目的・状況に応じて遅延期間DTを設定・変更することができる。例えば、難易度を上げるために遅延期間DTをこの遅延時間よりも短く設定するようにしてもよいし、難易度を下げるために遅延期間DTをこの遅延時間よりも長く設定するようにしてもよい。また、特定のコマンドの入力に成功したあるいは特定のアイテムを獲得した等の特典として、遅延期間DTの期間を増加させるようにしてもよいし、特定のコマンドの入力に失敗したあるいは特定のアイテムの獲得に失敗した等のペナルティとして、遅延期間DTの期間を減少させるようにしてもよい。
また本実施形態では、入力期間ITを、敵キャラクタECの攻撃が発生してから敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットするまでの期間に設定しているが、遅延期間DT同様、難易度調整やゲーム条件など種々の目的・状況に応じて入力期間ITを設定・変更するようにしてもよい。
また本実施形態では、敵キャラクタECの攻撃は、プレーヤキャラクタPCにヒットするエリア内で発生していることを前提として説明している。つまり、プレーヤキャラクタPCが敵キャラクタECの攻撃を受け流したり弾き返したりしない場合は、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットすることになる。なお、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットしたか否かは、後述するモーションデータの値等に応じて判定することができる。
3−3.モーション生成手法
図9〜図13を参照しながら本実施形態におけるモーションの生成手法について説明する。
3−3−1.モーション生成の原理
図9を参照しながらモーション生成の原理を説明する。図9は、本実施形態のモデルオブジェクトの構成の一例を説明するための図である。
図9に示すモデルオブジェクトMOB(キャラクタ)は、複数のパーツオブジェクト(腰P12、胸P14、首P16、頭P18、右上腕P20、右前腕P22、右手P24、左上腕P26、左前腕P28、左手P30、右股P32、右すねP34、右足P36、左股P38、左すねP40、左足P42)から構成されている。また、モデルオブジェクトMOBのスケルトンモデルは骨B0〜B19(関節J0〜J15)により構成されている。
骨B0〜B19は親子(階層)構造を有しており、例えば、右手P24の骨B7の親は右前腕P22の骨B6となり、骨B6の親は右上腕P20の骨B5となる。左手P30の骨B11の親は左前腕P28の骨B10となり、骨B10の親は左上腕P26の骨B9となる。骨B5、骨B9の親は胸P14の骨B1となり、骨B1の親は腰P12の骨B0となる。右足P36の骨B15の親は右すねP34の骨B14となり、骨B14の親は右股P32の骨B13となり、骨B13の親は腰P12の骨B12となる。左足P42の骨B19の親は左すねP40の骨B18となり、骨B18の親は左股P38の骨B17となり、骨B17の親は腰P12の骨B16となる。なお、パーツオブジェクトや関節なども同様の親子(階層)構造を有している。
これらのパーツオブジェクト(部位)の位置や回転角度(方向)は、スケルトンモデルを構成する骨B0〜B19の位置(関節J0〜J15の位置)や回転角度(親の骨に対する子の骨の相対的な回転角度)により特定される。なお、これらの骨、関節は仮想的なものであり、現実に表示されるオブジェクトではない。
モーションデータ記憶部172には、これらの骨(パーツオブジェクト、関節)の位置、回転角度が、モーションデータとして記憶されている。モーションデータ記憶部172に記憶される骨の位置や回転角度は、親の骨の位置、回転角度に対する相対的な位置、相対的な回転角度(3軸周りの回転角度)で表される。また、骨の回転角度だけをモーションデータに含ませて、骨の位置(関節の位置)についてはモデルオブジェクトのモデルデータの中に含ませるようにしてもよい。
そして、これらのモーションデータをフレーム(1/60秒)毎に読み出すことで、モーションの生成が実現される。例えば、歩きモーションが、M0、M1、M2・・・・MNという基準モーション(各フレームでのモーション)により構成されているとする。この場合、これらの各基準モーションM0、M1、M2・・・・MNでの各骨の位置又は回転角度を、モーションデータとして予め記憶しておく。そして、最初のフレームで基準モーションM0の各パーツオブジェクトの位置、回転角度を読み出し、次のフレームで基準モーションM1の各パーツオブジェクトの位置、回転角度を読み出すというように、基準モーションのモーションデータをフレーム毎に順次読み出すことで、歩きモーションの生成が実現される。
3−3−2.中間モーション
図10を参照しながら本実施形態で採用している中間モーションについて説明する。図10(A)〜図10(B)は、本実施形態で生成されるモーションの一例を示す図である。
本実施形態では、敵キャラクタECの攻撃に伴い、例えば図10(B)に示すような、プレーヤキャラクタPCのやられモーションKM(第1の一連のモーションの一例)や敵キャラクタECがプレーヤキャラクタPCを斬りつけるモーション(図示省略)が生成される。また、プレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返す場合には、図10(A)に示すような、プレーヤキャラクタPCの弾き返しモーションHM(第2の一連のモーションの一例)や敵キャラクタECが攻撃を弾き返されるモーション(図示省略)が生成され、プレーヤキャラクタPCが敵キャラクタECの攻撃を受け流す場合には、プレーヤキャラクタPCの受け流しモーション(第2の一連のモーションの一例、図示省略)や敵キャラクタECが攻撃を受け流されるモーション(図示省略)が生成される。
上述したように本実施形態では、操作情報の入力遅延の問題を解決するため、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした後であっても、遅延期間DT内に図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われれば、プレーヤキャラクタPCに敵キャラクタECの攻撃を弾き返させたり、受け流させたりする。
そこで本実施形態では、プレーヤキャラクタPCのやられモーションKMのうちの遅延期間DTに生成されるモーションを、プレーヤキャラクタPCの弾き返しモーションHMあるいはプレーヤキャラクタPCの受け流しモーションと連続性があるモーションとすることで、遅延期間DT内におけるモーションの切り替えを目立たなくしている。なお以下では、弾き返しモーションHMを例にとり説明するが、当該説明の内容は受け流しモーションについても適用することができる。
図10(A)に示すように、プレーヤキャラクタPCの弾き返しモーションHMは、HM0、HM1、HM2・・・・HMjという基準モーション(各フレームでのモーション)により構成されており、これらの各基準モーションのモーションデータはモーションデータ記憶部172に記憶されている。そして、図5(A)に示す操作による操作情報の入力に伴い、基準モーションのモーションデータをフレーム毎に順次読み出すことで、弾き返しモーションHMを生成する。なお図10(A)では、図5(A)に示す操作に伴う操作情報の入力は、遅延期間DT内のT2のタイミングで行われたものとする。
また図10(B)に示すように、プレーヤキャラクタPCのやられモーションKMは、・・・・KMh、KM(h+1)、KM(h+2)・・・・KMiという基準モーション(各フレームでのモーション)により構成されており、これらの各基準モーションのモーションデータはモーションデータ記憶部172に記憶されている。そして、敵キャラクタECの攻撃が発生に伴い、基準モーションのモーションデータをフレーム毎に順次読み出すことで、やられモーションKMを生成する。なお、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした以降のモーション(KMh以降のモーション)を、プレーヤキャラクタPCのやられモーションKMとして生成し、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットするまでのモーション(KMh以前のモーション)を、別のモーションとして生成するようにしてもよい。
特に本実施形態では、基準モーションKM(h+1)〜基準モーションKM(h+4)を用いて、遅延期間DT内にプレーヤキャラクタPCを沈ませるモーションを生成した後に、基準モーションKM(h+5)〜基準モーションKMiを用いて、プレーヤキャラクタPCを後ろに飛ばすモーションを生成している。つまり、プレーヤキャラクタPCのやられモーションKMは、敵キャラクタECの攻撃を受けてプレーヤキャラクタPCが沈んだ後に後ろに飛ばされるという連続性のあるモーションになっている。
このように本実施形態では、プレーヤキャラクタPCのやられモーションKMについては、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした時点(T0の時点)から、プレーヤキャラクタPCを後ろに飛ばすモーションを生成するのではなく、中間モーションとして、遅延期間DT内にプレーヤキャラクタPCを沈ませるモーションを生成した後に、プレーヤキャラクタPCを後ろに飛ばすモーションを生成している。
従って、遅延期間DT内にやられモーションKMの生成をキャンセルして弾き返しモーションHMを生成するようにしても、プレーヤキャラクタPCが後ろに飛んだ後に敵キャラクタECの攻撃を弾き返すという連続性のない不自然なモーションではなく、プレーヤキャラクタPCが沈んだ反動を利用しながら敵キャラクタECの攻撃を弾き返すという連続性のある自然なモーションを生成することができ、モーションの切り替えも目立たなくすることができる。
例えば、図10(A)、図10(B)に示すT2のタイミングで図5(A)に示す操作に伴う操作情報の入力が行われた場合には、基準モーションKMh、基準モーションKM(h+1)が生成された後に基準モーションHM0〜基準モーションHMNが生成されることになる。しかし、基準モーションKM(h+1)と基準モーションHM0とは連続性のあるモーションであるため、基準モーションKM(h+1)を生成した後に基準モーションKM(h+2)ではなく基準モーションHM0を生成したとしても、連続性のある自然なモーションを生成することができ、モーションの切り替えも目立たなくすることができる。
なお、遅延期間DT内に生成される基準モーションKM(h+1)〜基準モーションKM(h+4)はいずれもプレーヤキャラクタPCを沈ませる過程のモーションであり、基準モーションHM0と連続性のあるモーションとなっている。また基準モーションHM0は、遅延期間DT内に生成される基準モーションだけでなく、入力期間IT内に生成される基準モーションとも当然連続性のあるモーションとなっている。
また「連続性のあるモーション」とは、例えば、互いの基準モーションのモーションデータの値(少なくとも一部の値)が同一であったり、あるいは互いの基準モーションのモーションデータの値(少なくとも一部の値)が所定の範囲内に納まるようなものであればよい。要は、モーションを切り替えた際にプレーヤに違和感を与えない程度のものであればよく、例えば、基準モーションの姿勢(例えば、しゃがむ、斬る、歩く等)が互いに似ていれば(基準モーションが同種のモーションであれば)連続性のあるモーションに含まれる。なお、連続性の有無をゲーム状況に矛盾するか否かで判別するようにし、ゲーム状況に矛盾して変化する基準モーションは連続性がないとするようにしてもよい。
また本実施形態では、やられモーションKM(広義には、第1の一連のモーション)のみに中間モーションを用意しているが、弾き返しモーションHMや受け流しモーション(広義には、第2の一連のモーション)にも中間モーションを用意するようにしてもよい。例えば、弾き返しモーションHMにプレーヤキャラクタPCを沈ませるという中間モーションを用意し、プレーヤキャラクタPCが沈んだ後に敵キャラクタECの攻撃を弾き返すという弾き返しモーションHMを生成するようにすれば、入力期間IT内に図5(A)に示す操作に伴う操作情報の入力が行われた場合にも、プレーヤキャラクタPCが沈んだ後に敵キャラクタECの攻撃を弾き返すというモーションを生成することができる。
3−3−3.モーションブレンド
図11〜図12を参照しながらモーションブレンドの原理について説明する。
図11は、複数のモーションをブレンドすることで生成されるモーションの一例を示す図であり、図12は、ブレンドレートの一例を説明するための図である。
モーションAは、AM1、AM2、AM3・・・・AM9という基準モーションのモーションデータをフレーム毎に順次読み出すことで生成されるキャラクタの動作を表している。モーションBは、BM1、BM2、BM3・・・・BM9という基準モーションのモーションデータをフレーム毎に順次読み出すことで生成されるキャラクタの動作を表している。
モーションAとモーションBとは連続性を有しないモーションであるため、モーションAとモーションBとを連続して生成しても(例えば、基準モーションAM9を読み出した後に基準モーションBM1を読み出しても)、モーションAとモーションBとは滑らかにつながらない。
そこで、モーションAの基準モーションとモーションBの基準モーションとをブレンドした繋ぎモーションC(基準モーションCM1〜基準モーションCM5)を生成し、当該繋ぎモーションCを用いてモーションAとモーションBとを滑らかに繋げる。
基準モーションCM1は、基準モーションAM5と基準モーションBM1とをブレンドレート1でブレンドして生成されたモーションである。基準モーションCM2は、基準モーションAM6と基準モーションBM2とをブレンドレート2でブレンドして生成されたモーションである。基準モーションCM3は、基準モーションAM7と基準モーションBM3とをブレンドレート3でブレンドして生成されたモーションである。基準モーションCM4は、基準モーションAM8と基準モーションBM4とをブレンドレート4でブレンドして生成されたモーションである。基準モーションCM5は、基準モーションAM9と基準モーションBM5とをブレンドレート5でブレンドして生成されたモーションである。なお、補間レートはフレームが進行するにつれて、モーションAの比率が減少するようになっている。
この点、図12を参照しながら具体的に説明する。
αは、各フレームにおけるモーションAをブレンドする割合を示し、βは、各フレームにおけるモーションBをブレンドする割合を示している。ここでは、α+β=1の関係を有するものとして説明するが、これに限定されるものではない。なお、縦軸Rは補間レートを表し、横軸Tは時間(フレーム)を表す。
第1の区間は、モーションAのみが生成される区間(基準モーションAM1〜基準モーションAM4が生成される区間)である。
第1の区間に続く繋ぎ区間は、モーションAとモーションBとがブレンドされてモーションCが生成される区間(基準モーションCM1〜基準モーションCM5が生成される区間)である。この区間では、モーションAとモーションBとが各フレームに対応したα:βのブレンドレートで補間される。
例えばあるパーツのモーションAの位置データを(txa,tya,tza)、回転データを(rxa,rya,rza)として、対応するフレームのモーションBの位置データを(txb,tyb,tzb)、回転データを(rxb,ryb,rzb)とする。このとき、モーションAとモーションBの補間により生成される繋ぎモーションの位置データ(txc,tyc,tzc)、回転データ(rxc,ryc,rzc)は、次の式のようになる。
txc=α×txa+(1−α)×txb
tyc=α×tya+(1−α)×tyb
tzc=α×tza+(1−α)×tzb
rxc=α×rxa+(1−α)×rxb
ryc=α×rya+(1−α)×ryb
rzc=α×rza+(1−α)×rzb
なお、図11に示す基準モーションCM1〜基準モーションCM5の生成に適用した補間レート1〜補間レート5は、図12におけるT11〜T15のαの値を採用している。
繋ぎ区間に続く第2の区間は、モーションBのみが生成される区間(基準モーションBM6〜基準モーションBM9が生成される区間)である。
以上のように、第1の区間では基準モーションAM1〜基準モーションAM4が生成され、繋ぎ区間では基準モーションCM1〜基準モーションCM5が生成され、第2の区間では基準モーションBM6〜基準モーションBM9が生成される。このため、モーションAとモーションBとは滑らかに繋がり、違和感のない自然なモーションを生成することができる。
このように、モーションAとモーションBの両方の時間を進めながら、互いのモーションの割合を徐々に変化させていくことで、滑らかにモーションAとモーションBとを繋ぐことができ、違和感のない自然なモーションを生成することができる。
次に、図13を参照しながら本実施形態にモーションブレンドを採用した場合の手法について説明する。図13(A)〜図13(B)は、モーションブレンドで生成されるモーションの一例を示す図である。
本実施形態では、プレーヤキャラクタPCのやられモーションKMの中で中間モーションを生成するだけでなく、プレーヤキャラクタPCのやられモーションKMとプレーヤキャラクタPCの弾き返しモーションHMあるいはプレーヤキャラクタPCの受け流しモーションとをブレンドしてモーションを生成するようにしてもよい。なお以下では、弾き返しモーションHMを例にとり説明するが、当該説明の内容は受け流しモーションについても適用することができる。
図13(A)は、時間経過とともにプレーヤキャラクタPCの弾き返しモーションHMの割合を高めながら、プレーヤキャラクタPCのやられモーションKMとプレーヤキャラクタPCの弾き返しモーションHMとをブレンドして生成したモーションの一例を示す図である。なお図13(A)では、図5(A)に示す操作に伴う操作情報の入力は、遅延期間DT内のT2のタイミングで行われたものとする。
本実施形態では、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした後であっても、遅延期間DT内に図5(A)に示す操作に伴う操作情報の入力が行われるかあるいは遅延期間DTが経過するまで、プレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返すかあるいは敵キャラクタECの攻撃をプレーヤキャラクタPCがそのまま受けるのか確定しない。
このため図13(A)では、T0の時点(敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした時点)から、図5(A)に示す操作に伴う操作情報の入力が行われるT2の前のT1の時点(プレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返すことが確定する前の時点)まで、やられモーションKMと弾き返しモーションHMとを同じ割合でブレンドしている。そして、T2のタイミングで図5(A)に示す操作に伴う操作情報の入力が行われると、時間経過とともに弾き返しモーションHMの割合を高めながら、やられモーションKMと弾き返しモーションHMとをブレンドする。
また、図13(B)は、時間経過とともにプレーヤキャラクタPCのやられモーションKMの割合を高めながら、プレーヤキャラクタPCのやられモーションKMとプレーヤキャラクタPCの弾き返しモーションHMとをブレンドして生成したモーションの一例を示す図である。なお図13(B)では、図5(A)に示す操作に伴う操作情報の入力は、遅延期間DT内に行われなかったものとする。
上述した理由により、図13(B)でも、T0の時点(敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした時点)から、遅延期間DTが経過する前のT3の時点まで(敵キャラクタECの攻撃をプレーヤキャラクタPCがそのまま受けることが確定する前の時点)まで、やられモーションKMと弾き返しモーションHMとを同じ割合でブレンドしている。そして、T4のタイミングで図5(A)に示す操作に伴う操作情報の入力が行われないことが確定すると、時間経過とともにやられモーションKMの割合を高めながら、やられモーションKMと弾き返しモーションHMとをブレンドする。
このように本実施形態では、プレーヤキャラクタPCのやられモーションKMとプレーヤキャラクタPCの弾き返しモーションHMの両方の時間を進めながら、互いのモーションの割合を徐々に変化させてブレンドしていくことで、モーションの切り替えを行う場合であっても、互いのモーションを滑らかに繋ぐことができる。
なお本実施形態では、遅延期間DTが開始するタイミングからモーションのブレンドを開始するようにしたが、開始時期はブレンドするモーションに応じて適宜設定することが好ましい。また、ブレンドレート、ブレンドの終了時期などについても同様である。例えば本実施形態では、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした時点からモーションブレンドを開始しているが、遅延期間DT内に図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われたことを条件にモーションブレンドを開始するようにしてもよい。つまり、やられモーションKMから弾き返しモーションHMに遷移する場合のみ、モーションブレンドを行うようにしてもよい。また、必ずしも中間モーションとモーションブレンドを併用する必要はなく、どちらか一方の手法のみを採用するようにしてもよい。また、モーションブレンドによって生成されるモーションと同一のモーションのモーションデータを、予めモーションデータ記憶部172に記憶しておき、これらのモーションを適宜生成するようにしてもよい。
3−4.ゲームエフェクト生成手法
図14を参照しながら本実施形態におけるゲームエフェクトの生成手法について説明する。図14(A)〜図14(B)は、本実施形態で生成されるゲームエフェクトの一例を示す図である。
本実施形態では、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットすると、例えば図14(B)に示すような、ヒットエフェクトKE(第1の一連のゲームエフェクトの一例)が生成される。また例えば、プレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返す場合には、図14(A)に示すような、弾き返しエフェクトHE(第2の一連のゲームエフェクトの一例)が生成され、プレーヤキャラクタPCが敵キャラクタECの攻撃を受け流す場合には、受け流しエフェクト(第2の一連のゲームエフェクトの一例)が生成される(図示省略)。
上述したように本実施形態では、操作情報の入力遅延の問題を解決するため、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした後であっても、遅延期間DT内に図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われれば、プレーヤキャラクタPCに敵キャラクタECの攻撃を弾き返させたり、受け流させたりする。
そこで本実施形態では、ヒットエフェクトKEのうちの遅延期間DTに生成されるエフェクトを、弾き返しエフェクトHEあるいは受け流しエフェクトと連続性があるエフェクトとすることで、遅延期間DT内におけるエフェクトの切り替えを目立たなくしている。なお以下では、弾き返しエフェクトHFを例にとり説明するが、当該説明の内容は受け流しエフェクトについても適用することができる。
弾き返しエフェクトHEのエフェクトデータはエフェクトデータ記憶部173に記憶されている。そして、図5(A)に示す操作による操作情報の入力に伴い、弾き返しエフェクトHEのエフェクトデータを読み出すことで、図14(A)に示すような、プレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返した際に生じる火花を示す弾き返しエフェクトHEを生成する。なお図14(A)では、図5(A)に示す操作に伴う操作情報の入力は、遅延期間DT内のT2のタイミングで行われたものとする。
また図14(B)に示すように、ヒットエフェクトKEは、ヒットエフェクトKE1、ヒットエフェクトKE2により構成されており、これらのヒットエフェクトのエフェクトデータはエフェクトデータ記憶部173に記憶されている。そして、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットするとヒットエフェクトKE1のエフェクトデータを読み出し(T0〜T4)、遅延期間DTが経過するとヒットエフェクトKE2のエフェクトデータを読み出す(T4〜)というように、ヒットエフェクトKEのエフェクトデータを順次読み出すことで、ヒットエフェクトKEを生成する。
特に本実施形態では、ヒットエフェクトKE1を用いて、遅延期間DT内に細かい光を示すエフェクトを生成した後に、ヒットエフェクトKE2を用いて、プレーヤキャラクタPCが敵キャラクタECに斬られた軌跡を示すエフェクトを生成している。つまり、ヒットエフェクトKEは、細かい光が時間経過とともに斬られた軌跡に変化する連続性のあるエフェクトになっている。
このように本実施形態では、ヒットエフェクトKEについては、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした時点(T0の時点)から、プレーヤキャラクタPCが敵キャラクタECに斬られた軌跡を示すエフェクトを生成するのではなく、中間エフェクトとして、細かい光を示すエフェクトを生成した後に、プレーヤキャラクタPCが敵キャラクタECに斬られた軌跡を示すエフェクトを生成している。
このため、遅延期間DT内にヒットエフェクトKEの生成をキャンセルして弾き返しエフェクトHEを生成するようにしても、プレーヤキャラクタPCが敵キャラクタECに斬られた軌跡が、プレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返した際に生じる火花に変化するという連続性のない不自然なエフェクトではなく、細かい光が時間経過とともに火花に変化するという連続性のある自然なエフェクトを生成することができ、エフェクトの切り替えも目立たなくすることができる。
例えば、図14(A)、図14(B)に示すT2のタイミングで図5(A)に示す操作に伴う操作情報の入力が行われた場合には、ヒットエフェクトKE1がT0〜T2の間生成され、その後、弾き返しエフェクトHEが生成されることになる。しかし、ヒットエフェクトKE1と弾き返しエフェクトHEとは連続性のあるエフェクトであるため、ヒットエフェクトKE1を生成した後にヒットエフェクトKE2ではなく弾き返しエフェクトHEを生成したとしても、連続性のある自然なエフェクトを生成することができ、エフェクトの切り替えも目立たなくすることができる。
なお、入力期間IT内に図5(A)に示す操作に伴う操作情報の入力が行われた場合には、弾き返しエフェクトHEのみが生成されることになる。
また「連続性のあるエフェクト」とは、エフェクトを切り替えた際にプレーヤに違和感を与えない程度のものであればよく、例えば、エフェクト(例えば、光、火花、刀の軌跡、水、火、風等)の内容が互いに似ていれば(エフェクトが同種のエフェクトであれば)連続性のあるエフェクトとするようにしてもよい。また、エフェクトに親子(階層)構造を設定し、親子構造を有するエフェクト(例えば、光(子)と火花(親)、光(子)と刀の軌跡(親)など)は互いに連続性のあるエフェクトとするようにしてもよい。また、生成するエフェクトの大きさを変更することで連続性のあるエフェクトとするようにしてもよい。なお、連続性の有無をゲーム状況に矛盾するか否かで判別するようにし、ゲーム状況に矛盾して変化するエフェクトは連続性がないとするようにしてもよい。
また本実施形態では、ヒットエフェクトKE(広義には、第1の一連のエフェクト)のみに中間エフェクトを用意しているが、弾き返しエフェクトHEや受け流しエフェクト(広義には、第2の一連のエフェクト)にも中間エフェクトを用意するようにしてもよい。例えば、弾き返しエフェクトHEに細かい光を示す中間エフェクトを用意し、細かい光が時間経過とともに火花に変化するという弾き返しエフェクトHEを生成するようにすれば、入力期間IT内に図5(A)に示す操作に伴う操作情報の入力が行われた場合にも、細かい光が時間経過とともに火花に変化するという弾き返しエフェクトを生成することができる。
また、ヒットエフェクトKEから弾き返しエフェクトHEへの切り替えを、図5(A)に示す操作に伴う操作情報の入力が行われてから一定時間(例えば、10/60秒程度)かけて行うようにしてもよい。例えば、遅延期間DT内に図5(A)に示す操作に伴う操作情報の入力が行われ場合に、ヒットエフェクトKEを徐々に消去(フェードアウト)するとともに、弾き返しエフェクトHEを徐々に生成(フェードイン)する(互いのゲームエフェクトの割合を徐々に変化させてブレンドする)ようすれば、互いのゲームエフェクトを滑らかに繋ぐことができる。なお、ヒットエフェクトKEをフェードアウトさせた後に弾き返しエフェクトHEをフェードインさせるようにしてもよい。
3−5.ゲーム音出力手法
図15を参照しながら本実施形態におけるゲーム音の出力手法について説明する。図15は、本実施形態で出力されるゲーム音の一例を示す図である。
本実施形態では、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットすると、例えば図15(B)に示すような、ヒット音KO(第1の一連のゲーム音の一例)が効果音として出力される。また例えば、プレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返す場合には、図15(A)に示すような、弾き返し音HO(第2の一連のゲーム音の一例)が効果音として出力され、プレーヤキャラクタPCが敵キャラクタECの攻撃を受け流す場合には、受け流し音(第2の一連のゲーム音の一例)が効果音として出力される(図示省略)。
上述したように本実施形態では、操作情報の入力遅延の問題を解決するため、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした後であっても、遅延期間DT内に図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われれば、プレーヤキャラクタPCに敵キャラクタECの攻撃を弾き返させたり、受け流させたりする。
そこで本実施形態では、ヒット音KOのうちの遅延期間DTに出力される効果音を、弾き返し音HOあるいは受け流し音と連続性がある効果音とすることで、遅延期間DT内における効果音の切り替えを目立たなくしている。なお以下では、弾き返し音HOを例にとり説明するが、当該説明の内容は受け流し音についても適用することができる。
弾き返し音HOの音データは音データ記憶部174に記憶されている。そして、図5(A)に示す操作に伴う操作情報の入力に伴い、弾き返し音HOの音データを読み出すことで、図14(A)に示すような、「キーン」というプレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返す効果音を出力する。なお図15(A)では、図5(A)に示す操作に伴う操作情報の入力は、遅延期間DT内のT2のタイミングで行われたものとする。
また、図15(B)に示すように、ヒット音KOは、ヒット音KO1、ヒット音KO2により構成されており、これらのヒット音の音データは音データ記憶部174に記憶されている。そして、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットするとヒット音KO1の音データを読み出し(T0〜T4)、遅延期間DTが経過するとヒット音KO2の音データを読み出す(T4〜)というように、ヒット音KOの音データを順次読み出すことで、ヒット音KOを出力する。
特に本実施形態では、ヒット音KO1を用いて、遅延期間DT内に「ガスッ」という効果音を出力した後に、ヒット音KO2を用いて、「ブシュッ」というプレーヤキャラクタPCが敵キャラクタECに斬られる効果音を出力している。つまり、ヒット音KOは、「ガスッ」という効果音が時間経過とともに「ブシュッ」という効果音に変化する斬りごたえ感を表した(敵キャラクタECの攻撃がヒットした後に更に斬られることを表した)連続性のある2段階の効果音になっている。
このように本実施形態では、ヒット音KOについては、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした時点(T0の時点)から、プレーヤキャラクタPCが敵キャラクタECに斬られた効果音「ブシュッ」を出力するのではなく、中間効果音として、「ガスッ」という効果音を出力した後に、プレーヤキャラクタPCが敵キャラクタECに斬られる効果音「ブシュッ」を出力している。
このため、遅延期間DT内にヒット音KO1の出力をキャンセルして弾き返し音HOを出力するようにしても、「ブシュッ」というプレーヤキャラクタPCが敵キャラクタECに斬られる効果音が、「キーン」というプレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返す効果音に変化するという連続性のない不自然な効果音ではなく、「ガスッ」という効果音が時間経過とともに「キーン」という効果音に変化する弾き返し感を表した(敵キャラクタECの攻撃を受け止めた後に弾き返すことを表した)連続性のある2段階の効果音を出力することができ、効果音の切り替えも目立たなくすることができる。
例えば、図15(A)、図15(B)に示すT2のタイミングで図5(A)に示す操作に伴う操作情報の入力が行われた場合には、ヒット音KO1がT0〜T2の間出力され、その後、弾き返し音HOが出力されることになる。しかし、ヒット音KO1と弾き返し音HOとは連続性のある効果音であるため、ヒット音KO1を出力した後にヒット音KO2ではなく弾き返し音HOを出力したとしても、連続性のある2段階の効果音を出力することができ、効果音の切り替えも目立たなくすることができる。
なお、入力期間IT内に図5(A)に示す操作に伴う操作情報の入力が行われた場合には、弾き返し音HOのみが出力されることになる。
また「連続性のあるゲーム音」とは、ゲーム音を切り替えた際にプレーヤに違和感を与えない程度のものであればよく、例えば、ゲーム音(例えば、斬られ音、弾き音等)の内容(音程や音色など)が互いに似ていれば(ゲーム音が同種のゲーム音であれば)連続性のある効果音とするようにしてもよい。また、ゲーム音に親子(階層)構造を設定し、親子構造を有するゲーム音は互いに連続性のあるゲーム音とするようにしてもよい。また、出力するゲーム音の大きさを変更することで連続性のあるゲーム音とするようにしてもよい。なお、連続性の有無をゲーム状況に矛盾するか否かで判別するようにし、ゲーム状況に矛盾して変化するゲーム音は連続性がないとするようにしてもよい。
また本実施形態では、ヒット音KO(広義には、第1の一連のゲーム音)のみに中間音を用意しているが、弾き返し音HOや受け流し音(広義には、第2の一連のゲーム音)にも中間音を用意するようにしてもよい。例えば、弾き返し音HOに「ガスッ」という中間音を用意し、「ガスッ」という効果音が時間経過とともに「キーン」という効果音に変化するという弾き返し音HOを出力するようにすれば、入力期間IT内に図5(A)に示す操作に伴う操作情報の入力が行われた場合にも、「ガスッ」という効果音が時間経過とともに「キーン」という効果音に変化するという弾き返し音を出力することができる。
また、ヒット音KOから弾き返し音HOへの切り替えを、図5(A)に示す操作に伴う操作情報の入力が行われてから一定時間(例えば、10/60秒程度)かけて行うようにしてもよい。例えば、遅延期間DT内に図5(A)に示す操作に伴う操作情報の入力が行われ場合に、ヒット音KOの音量を徐々に小さくしながら出力(フェードアウト)するとともに、弾き返し音HOの音量を徐々に大きくしながら出力(フェードイン)する(互いの効果音の割合を徐々に変化させてブレンドする)ようすれば、互いの効果音を滑らかに繋ぐことができる。なお、ヒット音KOをフェードアウトさせた後に弾き返し音HOをフェードインさせるようにしてもよい。
3−6.ゲームパラメータ更新手法
以下、図16を参照しながら本実施形態で採用しているゲームパラメータの更新手法について説明する。図16(A)〜図16(E)は、本実施形態のゲームパラメータの更新手法の一例を示す図である。
本実施形態のアクションゲームでは、プレーヤキャラクタPCと敵キャラクタECとに体力パラメータ(ゲームパラメータの一例)が設定されており、プレーヤキャラクタPCの攻撃が敵キャラクタECにヒットすると敵キャラクタECの体力パラメータが減少し、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットするとプレーヤキャラクタPCの体力パラメータが減少する。そして、プレーヤキャラクタPCの体力パラメータが0(所定の値の一例)になるとプレーヤの負けが確定し、ゲームが終了する。
ところで本実施形態では、上述したように、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした後であっても、遅延期間DTが経過するかあるいは遅延期間DT内に図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われるまで、プレーヤキャラクタPCが敵キャラクタECの攻撃をそのまま受けるのかあるいはプレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返したり受け返したりするのかが確定しない。
そこで本実施形態では、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした時点でプレーヤキャラクタPCの体力パラメータを更新するのではなく、プレーヤキャラクタPCが敵キャラクタECの攻撃をそのまま受けるのかあるいはプレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返したり受け返したりするのかが確定するまでの時間(所定の時間の一例)をかけて、プレーヤキャラクタPCの体力パラメータを減少させるパラメータ更新を行う。
図16(A)は、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットする時点(T0の時点)までに、図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われなかった場合のプレーヤキャラクタPCの体力パラメータの一例を示す図である。この場合には、PA0−PA1の更新量でプレーヤキャラクタPCの体力パラメータを減少させるパラメータ更新が行われるため、プレーヤキャラクタPCの残りの体力パラメータはPA1となっている。なお、パラメータ更新が行われる前のプレーヤキャラクタPCの体力パラメータはPA0である。
図16(B)は、T0の時点から1フレーム経過したT1の時点までに、図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われなかった場合のプレーヤキャラクタPCの体力パラメータの一例を示す図である。この場合には、PA1−PA2の更新量でプレーヤキャラクタPCの体力パラメータを減少させるパラメータ更新が行われるため、プレーヤキャラクタPCの残りの体力パラメータはPA2となっている。なお、T1の時点での更新量PA1−PA2は、T0の時点での更新量PA0−PA1よりも値が大きくなっている。
図16(C)は、T1の時点から1フレーム経過したT2の時点までに、図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われなかった場合のプレーヤキャラクタPCの体力パラメータの一例を示す図である。この場合には、PA2−PA3の更新量でプレーヤキャラクタPCの体力パラメータを減少させるパラメータ更新が行われるため、プレーヤキャラクタPCの残りの体力パラメータはPA3となっている。なお、T2の時点での更新量PA2−PA3は、T1の時点での更新量PA1−PA2よりも値が大きくなっている。
図16(D)は、T2の時点から1フレーム経過したT3の時点までに、図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われなかった場合のプレーヤキャラクタPCの体力パラメータの一例を示す図である。この場合には、PA3−PA4の更新量でプレーヤキャラクタPCの体力パラメータを減少させるパラメータ更新が行われるため、プレーヤキャラクタPCの残りの体力パラメータはPA4となっている。なお、T3の時点での更新量PA3−PA4は、T2の時点での更新量PA2−PA3よりも値が大きくなっている。
図16(E)は、T3の時点から1フレーム経過したT4の時点までに、図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われなかった場合、即ち、プレーヤキャラクタPCが敵キャラクタECの攻撃をそのまま受けることが確定した場合のプレーヤキャラクタPCの体力パラメータの一例を示す図である。この場合には、PA4−PA5の更新量でプレーヤキャラクタPCの体力パラメータを減少させるパラメータ更新が行われるため、プレーヤキャラクタPCの残りの体力パラメータはPA5となっている。なお、T4の時点での更新量PA4−PA5は、T3の時点での更新量PA3−PA4よりも値が大きくなっている。
この結果、プレーヤキャラクタPCの残りの体力パラメータは、T0の時点までに図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われた場合にはPA0、T1の時点までに図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われた場合にはPA1、T2の時点までに図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われた場合にはPA2、T3の時点までに図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われた場合にはPA3、T4の時点までに図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われた場合にはPA4、図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われた場合にはPA5となる。
このように本実施形態では、プレーヤキャラクタPCが敵キャラクタECの攻撃をそのまま受けるのかあるいはプレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返したり受け返したりするのかが確定するまでの時間(所定の時間の一例)をかけて、プレーヤキャラクタPCの体力パラメータを減少させるパラメータ更新を行うので、プレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返したり受け流したりする場合と、敵キャラクタECの攻撃をプレーヤキャラクタPCがそのまま受ける場合とで、プレーヤキャラクタPCの体力パラメータを減少させる量(パラメータの更新量の一例)に差異を設けることができる。
特に本実施形態では、遅延期間DTの時間が経過するほど、プレーヤキャラクタPCの体力パラメータを減少させる量を増加させているので、図5(A)や図6(A)に示す操作に伴う操作情報の入力が早いタイミングで行われるほどゲームを有利に進行させることができるようになっている。
なお本実施形態では、フレームが経過するほどプレーヤキャラクタPCの体力パラメータを減少させる量を増加させているが、プレーヤキャラクタPCの体力パラメータを減少させる量を各フレームで同じ値にするようにしてもよい。
また本実施形態のように、所定の時間をかけてプレーヤキャラクタPCの体力パラメータを減少させるパラメータ更新を行うのではなく、プレーヤキャラクタPCが敵キャラクタECの攻撃をそのまま受けるのかあるいはプレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返したり受け返したりするのかが確定してから、プレーヤキャラクタPCの体力パラメータを減少させるパラメータ更新を行うようにしてもよい。このようにすると、プレーヤキャラクタPCが敵キャラクタECの攻撃をそのまま受ける場合のみ、プレーヤキャラクタPCの体力パラメータを減少させるパラメータ更新を行うこともでき、ゲーム状況を的確に反映したゲームパラメータの更新を行うことができる。
また本実施形態では、プレーヤキャラクタPCの体力パラメータを例にとり説明したが、ゲーム結果となる得点パラメータ(ゲームパラメータの一例)等についても上述した手法を採用することができる。この場合には例えば、遅延期間DTの時間が経過するほど得点パラメータを減少させるようにしてもよいし、遅延期間DTの時間が経過するほど得点パラメータを増加させる増加量を減少させるようにしてもよい。
3−7.操作情報の入力修正
以下、図17〜図18を参照しながら本実施形態で採用している操作情報の入力修正手法について説明する。図17(A)〜図17(B)は、操作情報の入力ミスが生じる原理の一例を説明するための図であり、図18(A)〜図18(C)は、操作情報の入力修正手法の一例を説明するための図である。
本実施形態のアクションゲームには、いわゆるコンボと呼ばれる特殊技がプレーヤキャラクタPCに用意されている。この特殊技は、予め定められた操作パターンの入力を行う(所定の時間内に複数の操作情報を予め定められた順序で入力する)ことで発動され、敵キャラクタの体力パラメータを通常の攻撃よりも大幅に減少させることができる。
例えば、図17(A)に示すように、プレーヤPLが第2のコントローラ16−2を右方向に動かして右方向への入力(第1の操作情報の入力の一例)を行った後に、第2のコントローラ16−2を下方向に動かして下方向への入力(第2の操作情報の入力の一例)を行う。そして、図18(A)に示すように、右方向への入力が行われた(確定した)後の入力期間IT’(所定の入力期間の一例、例えば6/60秒)内に下方向への入力が行われた(確定した)場合には、特殊技が発動される。
ところで、図17(A)に示すように、第2のコントローラ16−2を動かす方向を急激に変更すると、プレーヤPLの手首や腕に負担がかってしまう。このためプレーヤPLは、例えば図17(B)に示すように、第2のコントローラ16−2を右方向に動かし後の反動を利用して、第2のコントローラ16−2を一旦上方向に動かした後に、下方向に動かして下方向への入力を行うことがある。
しかしこの場合には、図18(B)に示すように、右方向への入力が行われた後に、上方向への入力(第3の操作情報の入力の一例)が行われ、その後に下方向への入力が行われることになるため、特殊技は発動されない。
そこで本実施形態では、図18(C)に示すように、右方向への入力が行われた(確定した)後にコンボを発動するための下方向への入力ではなく、下方向以外の操作情報である上方向への入力が行われた(確定した)場合には、上方向への入力が行われた後に遅延期間DT’(所定の遅延期間の一例、例えば4/60秒)を設け、当該遅延期間DT’内に下方向への入力が行われた場合には、上方向への入力の確定を取り消して、下方向への入力を確定することで、特殊技を発動させる。
このように本実施形態では、特殊技を発動させるための操作情報以外の操作情報の入力が行われた場合であっても、遅延期間DT’を設け、当該遅延期間DT’内に特殊技を発動させるための操作情報の入力が行われた場合には、特殊技を発動させるための操作情報以外の操作情報の入力の確定を取り消して、特殊技を発動させるための操作情報の入力を確定する。このため、加速度センサを用いて操作情報を特定する性質上、プレーヤPLが意図しない操作情報の入力が行われることがあっても、その影響を抑えることができる。
なお本実施形態では、右方向、下方向への連続入力を行うことでプレーヤキャラクタPCに特殊技を発動させることを例にとり説明したが、本実施形態はこれに限られず、複数方向への連続入力(例えば、5方向への連続入力)を行うことでプレーヤキャラクタPCに特殊技を発動させる場合にも適用することができる。この場合には、予め定められた操作情報と異なる操作情報が入力される毎に遅延期間DT’を設定し、遅延期間DT’内に予め定められた操作情報が入力された場合には、予め定められた操作情報と異なる操作情報の入力を取り消すとともに予め定められた操作情報の入力を確定し、次の操作情報の入力を待機する。そして、最終的に予め定められた操作パターンで全ての操作情報の入力が確定した場合には、プレーヤキャラクタPCに特殊技を発動させる。
また、入力期間IT’は、遅延期間DT’が設定される毎に期間を延長するようにしてもよい。また、入力期間IT’は、全ての操作情報の入力が行われるまでの期間として設定するようにしてもよいし、個々の操作情報の入力が行われるまでの期間として個々の操作情報毎に設定するようにしてもよい。
また、プレーヤPLが意図しない操作情報の入力(例えば、第3の操作情報の入力)が行われてからプレーヤPLが意図する操作情報の入力(例えば、第2の操作情報の入力)が行われるまでの時間は、コントローラ16をどのように動かすか、あるいはコントローラ16を動かすプレーヤによっても異なるため、遅延期間DT’は状況に応じて適宜設定することが好ましい。例えば、初期設定メニュー等において、予め定められた操作パターンでコントローラ16を振らせる動作をプレーヤPLに行わせ、その際の加速度センサの出力値から遅延期間DT’を設定するようにしてもよい。
3−8.本実施形態の処理
以下、図19〜図20を参照しながら本実施形態の処理詳細の一例について説明する。
図19は、本実施形態のアクションゲームにおいて、敵キャラクタECの攻撃発生後の処理の一例を説明するためのフローチャート図である。
まず、敵キャラクタECの攻撃イベントを発生させる処理を行う(ステップS100)。そして、敵キャラクタECの攻撃に伴い、敵キャラクタECがプレーヤキャラクタPCを斬りつけるモーションやプレーヤキャラクタPCが敵キャラクタECに斬りつけられるモーションを生成するゲーム演算を行う(ステップS102)。なお、敵キャラクタECの攻撃イベントはプレーヤキャラクタPCにヒットするエリア内で発生しているものとする。
次に、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットするまでの間に、図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われたか否かを判定する(ステップS104、ステップS106)。
敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットするまでの間に、図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われなかった場合には(ステップS104でN、ステップS106でY)、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットしたことに伴い、ヒットエフェクトの生成やヒット音を出力するゲーム演算を行うとともに、プレーヤキャラクタPCの体力パラメータを減少させるゲーム演算(パラメータ更新)を行う。なお、敵キャラクタECがプレーヤキャラクタPCを斬りつけるモーションやプレーヤキャラクタPCが敵キャラクタECに斬りつけられるモーションを生成するゲーム演算も引き続き行う(ステップS108)。
続いて、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットした後の遅延期間内に、図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われたか否かを判定する(ステップS110、ステップS112)。
遅延期間内に図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われなかった場合には(ステップS110でN)、引き続き、敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットしたことに伴うゲーム演算を続行する(ステップS116)。
敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットするまでの間に、図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われた場合や(ステップS104でY)、遅延期間内に、図5(A)や図6(A)に示す操作に伴う操作情報の入力が行われた場合には(ステップS110でY、ステップS112でY)、敵キャラクタECの攻撃に伴って行われるゲーム演算や敵キャラクタECの攻撃がプレーヤキャラクタPCにヒットしたことに伴って行われるゲーム演算を中止する。そして、図5(A)に示す操作に伴う操作情報の入力が行われた場合には、敵キャラクタECの攻撃がプレーヤキャラクタPCに弾き返されるモーションやプレーヤキャラクタPCが敵キャラクタECの攻撃を弾き返すモーションの生成、弾き返しエフェクトの生成、および弾き返し音を出力するゲーム演算を行う(ステップS114)。また、図6(A)に示す操作に伴う操作情報の入力が行われた場合には、敵キャラクタECの攻撃がプレーヤキャラクタPCに受け流されるモーションやプレーヤキャラクタPCが敵キャラクタECの攻撃を受け流すモーションの生成、受け流しエフェクトの生成、および受け流し音を出力するゲーム演算を行う(ステップS114)。
図20は、本実施形態のアクションゲームにおいて、プレーヤキャラクタPCの特殊技を発動する際の処理の一例を説明するためのフローチャート図である。
まず、第1の操作情報の入力(例えば、右入力)に伴い、当該第1の操作情報の入力を確定する処理を行う(ステップS200、ステップS202)。
次に、第1の操作情報の入力が確定した後の入力期間内に、第2の操作情報の入力(例えば、下入力)が行われたか否かを判定する(ステップS204)。
入力期間内に第2の操作情報の入力が行われなかった場合には(ステップS204でN)、続いて、入力期間内に第2の操作情報以外の操作情報である第3の操作情報の入力(例えば、上入力)が行われたか否かを判定する(ステップS206)。
入力期間内に第3の操作情報の入力も行われなかった場合には(ステップS206でN)、プレーヤキャラクタPCの特殊技は発動させる処理は行わない。入力期間内に、第3の操作情報の入力が行われた場合には(ステップS206でY)、当該第3の操作情報の入力を確定する処理を行う(ステップS208)。
次に、第3の操作情報の入力が確定した後の遅延期間内に、第2の操作情報の入力が行われたか否かを判定する(ステップS210)。
遅延期間内に第2の操作情報の入力が行われなかった場合には(ステップS210でN)、プレーヤキャラクタPCの特殊技は発動させる処理は行わない。
遅延期間内に第2の操作情報の入力が行われた場合には(ステップS210でY)、第3の操作情報の入力の確定を取り消す処理とともに、第2の操作情報の入力を確定する処理を行う(ステップS212、ステップS214)。なお、入力期間内に第2の操作情報の入力が行われた場合にも(ステップS204でY)、第2の操作情報の入力を確定する処理を行う(ステップS214)。そして、プレーヤキャラクタPCに特殊技は発動させる処理を行う(ステップS216)。
4.変形例
さて上記実施形態では、アクションゲームへの本実施形態への適用例について説明したが、本実施形態はサッカーゲーム等のスポーツゲームや音楽演奏ゲーム、格闘ゲームなどの種々のゲームに適用できる。
以下、図21を参照しながら、サッカーゲームに本実施形態を適用した場合の一例を説明する。図21(A)〜図21(D)は、変形実施形態のサッカーゲームにおけるペナルティキック戦(以下、PK戦)の一例を示す図である。なお、制御手法の詳細は、上記実施形態に準ずる。
図21(A)に示す変形実施形態のサッカーゲームにおけるPK戦は、コンピュータによって制御されるキッカーキャラクタ(図示省略)が蹴ったボールオブジェクトBOを、プレーヤPLが操作するキーパーキャラクタKCにセーブさせるゲームである。プレーヤPLは表示装置12の表示画面11に表示されるゲーム画像を見ながら、キーパーキャラクタKCを移動させる(跳ばせる)方向にコントローラ16を動かすことで、キーパーキャラクタKCにボールオブジェクトBOをセーブさせる。
変形実施形態のサッカーゲームでは、キッカーキャラクタが助走してボールオブジェクトBOを蹴るまでの期間(所定の入力期間の一例)内、または入力期間の後の操作情報の入力遅延に対応した遅延期間(所定の遅延期間の一例)に、キーパーキャラクタKCを移動させる(跳ばせる)方向にコントローラ16を動かして操作情報の入力を行うことが要求される。なお、図21(B)に示すように、遅延期間内では、キーパーキャラクタKCに腰を落とさせるモーションを生成する。
そして、入力期間内または遅延期間内に操作情報の入力が行われ、キッカーキャラクタが蹴ったボールオブジェクトBOの方向と、キーパーキャラクタKCを移動させる方向とが一致すれば、図21(C)に示すように、キーパーキャラクタKCにボールオブジェクトBOをキャッチさせる。
また、キッカーキャラクタが蹴ったボールオブジェクトBOの方向と、キーパーキャラクタKCを移動させる方向とが一致していても、入力期間内または遅延期間内に操作情報の入力が行われなかった場合には、図21(D)に示すように、キーパーキャラクタKCにボールオブジェクトBOをキャッチさせずに、得点される。
このように変形実施形態においても、入力期間に加え遅延期間が設けられているため、加速度センサを用いて操作情報を特定する性質上、操作情報の入力に遅延が発生した場合であっても、操作情報の入力遅延による影響を抑えることができる。
また変形実施形態では、中間モーションとして、遅延期間内にキーパーキャラクタKCに腰を落とさせるモーションを生成した後に、キーパーキャラクタKCを移動させるモーションを生成しているので、モーションの生成を切り替えても、キーパーキャラクタKCが腰を落とした反動を利用しながら横に跳んでボールオブジェクトBOをキャッチするという連続性のある自然なモーションを生成することができ、モーションの切り替えも目立たなくすることができる。
また、サッカーゲーム以外にも音楽演奏ゲームに本実施形態を適用してもよい。
以下、図22を参照しながら、音楽演奏ゲームに本実施形態を適用した場合の一例を説明する。図22は、変形実施形態の音楽演奏ゲームの一例を示す図である。なお、制御手法の詳細は、上記実施形態に準ずる。
図22に示すように、変形実施形態の音楽演奏ゲームでは、表示装置12の表示画面11に、静止表示された基準マーク510に対して指示マーク520、指示マーク522が近づいて来るゲーム画像が表示される。指示マーク520は第1のコントローラ16−1に対応した操作指示マークであり、指示マーク522は第2のコントローラ16−2に対応した操作指示マークである。プレーヤPLは、指示マーク520が基準マーク510に重なったタイミングで第1のコントローラ16−1を振り、指示マーク522が基準マーク510に重なったタイミングで第2のコントローラ16−2を振ることで、曲に合わせた演奏ゲームをプレイする。
そして、変形実施形態の音楽演奏ゲームでは、第1のコントローラ16−1を振る入力期間、第2のコントローラ16−2を振る入力期間(所定の入力期間の一例)の後に、操作情報の入力遅延に対応した遅延期間(所定の遅延期間の一例)がそれぞれ設けられている。このように変形実施形態においても、入力期間に加え遅延期間が設けられているため、加速度センサを用いて操作情報を特定する性質上、操作情報の入力に遅延が発生した場合であっても、操作情報の入力遅延による影響を抑えることができる。
なお、本発明は上記実施形態で説明したものに限られず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
また本実施形態では、遅延期間DTを一律の期間として設定していたが、ゲーム演算の内容毎(具体的には、モーション生成、ゲームエフェクト生成、ゲーム音出力制御、ゲームパラメータの更新毎)に遅延期間DTを設定するようにしてもよい。
また本実施形態では、プレーヤPLと仮想プレーヤとして機能するコンピュータとの間で対戦を行うだけでなく、複数のプレーヤの間で対戦を行うこともできるようになっている。
また、本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。そして、本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、携帯型ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々のゲームシステム(画像生成システム)に適用できる。
本実施形態のゲームシステムの外観の一例を示す図。 本実施形態のゲームシステムの外観の一例を示す図。 本実施形態のゲームシステムの機能ブロックの一例を示す図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの制御手法の説明図。 本実施形態のゲームシステムの処理例を示すフローチャート図。 本実施形態のゲームシステムの処理例を示すフローチャート図。 変形実施形態のゲームシステムの制御手法の説明図。 変形実施形態のゲームシステムの制御手法の説明図。
符号の説明
10 ゲームシステム、11 表示画面、12 表示装置、14 ゲーム機、
16 コントローラ、16−1 第1のコントローラ、16−2 第2のコントローラ、
18 レバー、20 サイドボタン、22 十字キー、24 ボタン、
30−1 第1の加速度センサ、30−2 第2の加速度センサ、
PL プレーヤ、PC プレーヤキャラクタ、EC 敵キャラクタ、
KC キーパーキャラクタ、BO ボールオブジェクト、
100 処理部、110 操作情報特定部、112 イベント発生部、
114 操作情報判定部、120 ゲーム演算部、122 表示制御部、
124 モーション生成部、126 エフェクト生成部、128 音制御部、
130 パラメータ更新部、140 描画部、150 音生成部、160 操作部、
162 動きセンサ、170 記憶部、171 主記憶部、
172 モーションデータ記憶部、173 エフェクトデータ記憶部、
174 音データ記憶部、175 パラメータ記憶部、176 描画バッファ、
180 情報記憶媒体、182 携帯型情報記憶装置、190 表示部、
192 音出力部、194 通信部

Claims (16)

  1. コントローラを動かすことで操作情報の入力が可能なゲームのためのプログラムであって、
    前記コントローラの動きに応じて値が変化する動きセンサの出力値に基づいて、当該コントローラによって入力される操作情報を特定する操作情報特定部と、
    所与のイベントを発生させるイベント発生部と、
    前記イベントに対する所定の入力期間および当該入力期間の経過後の所定の遅延期間のうち、少なくとも当該遅延期間内に前記特定の操作情報の入力が行われたか否かを判定する操作情報判定部と、
    前記イベントの発生に基づいて第1のゲーム演算を行うとともに、前記遅延期間内に前記特定の操作情報の入力が行われた場合には当該第1のゲーム演算を中止して第2のゲーム演算を行うゲーム演算部としてコンピュータを機能させることを特徴とするプログラム。
  2. 請求項1において、
    前記操作情報判定部が、
    前記入力期間内に前記特定の操作情報の入力が行われたか否かを判定し、
    前記ゲーム演算部が、
    前記入力期間内に前記特定の操作情報の入力が行われた場合には前記第1のゲーム演算を中止して第2のゲーム演算を行うことを特徴とするプログラム。
  3. 請求項1または2において、
    前記ゲームは、モーションデータに基づいてオブジェクト空間内でゲームキャラクタを動作させるゲームであって、
    前記オブジェクト空間内を所与の視点位置から見た画像を生成する描画部として更にコンピュータを機能させ、
    前記ゲーム演算部が、
    前記第2のゲーム演算として、前記ゲームキャラクタの第2の一連のモーションを生成するゲーム演算を行い、
    前記第1のゲーム演算として、前記遅延期間の少なくとも一部を含む時間帯に生成されるモーションが前記第2の一連のモーションと連続性があるモーションである前記ゲームキャラクタの第1の一連のモーションを生成するゲーム演算を行うことを特徴とするプログラム。
  4. 請求項3において、
    前記ゲーム演算部が、
    前記入力期間内に前記特定の操作情報の入力が行われなかった場合には、前記第1の一連のモーションと前記第2の一連のモーションとをブレンドすることで新たな一連のモーションを生成するゲーム演算を行い、
    前記遅延期間内に前記特定の操作情報の入力が行われた場合には、前記第1の一連のモーションに対する前記第2の一連のモーションの割合を時間経過とともに高めながらブレンドし、
    前記遅延期間内に前記特定の操作情報の入力が行われなかった場合には、前記第2の一連のモーションに対する前記第1の一連のモーションの割合を時間経過とともに高めながらブレンドすることを特徴とするプログラム。
  5. 請求項3において、
    前記ゲーム演算部が、
    前記入力期間内に前記特定の操作情報の入力が行われなかった場合には、新たな一連のモーションを生成するゲーム演算を行い、
    前記遅延期間内に前記特定の操作情報の入力が行われた場合には、前記新たな一連のモーションとして、最終的に前記第2の一連のモーションに遷移する一連のモーションを生成するゲーム演算を行い、
    前記遅延期間内に前記特定の操作情報の入力が行われなかった場合には、前記新たな一連のモーションとして、最終的に前記第1の一連のモーションに遷移する一連のモーションを生成するゲーム演算を行うことを特徴とするプログラム。
  6. 請求項3〜5のいずれかにおいて、
    前記ゲーム演算部が、
    前記第2のゲーム演算として、第2の一連のゲームエフェクトを生成するゲーム演算を行い、
    前記第1のゲーム演算として、前記遅延期間の少なくとも一部を含む時間帯に生成されるゲームエフェクトが前記第2の一連のゲームエフェクトと連続性があるゲームエフェクトである第1の一連のゲームエフェクトを生成するゲーム演算を行い、
    前記描画部が、
    生成されたゲームエフェクトを含むゲーム画像を生成することを特徴とするプログラム。
  7. 請求項1〜6のいずれかにおいて、
    前記ゲーム演算部が、
    前記第2のゲーム演算として、第2の一連のゲーム音の出力制御を行い、
    前記第1のゲーム演算として、前記遅延期間の少なくとも一部を含む時間帯に出力されるゲーム音が前記第2の一連のゲーム音と連続性があるゲーム音である第1の一連のゲーム音の出力制御を行うことを特徴とするプログラム。
  8. 請求項1〜7のいずれかにおいて、
    前記ゲーム演算部が、
    ゲームを進行させるゲーム演算およびゲーム結果を求めるゲーム演算の少なくとも一方に用いられるゲームパラメータを、前記入力期間の経過後所定の時間をかけて更新するゲーム演算を行うことを特徴とするプログラム。
  9. 請求項1〜7のいずれかにおいて、
    前記ゲーム演算部が、
    ゲームを進行させるゲーム演算およびゲーム結果を求めるゲーム演算の少なくとも一方に用いられるゲームパラメータを、前記遅延期間が経過した後または前記特定の操作情報の入力が行われた後に更新するゲーム演算を行うことを特徴とするプログラム。
  10. 請求項1〜9のいずれかにおいて、
    前記遅延期間が、前記ゲーム演算の内容毎に設定されていることを特徴とするプログラム。
  11. 請求項1〜10のいずれかにおいて、
    前記操作情報判定部が、
    所与のゲーム条件に応じて前記遅延期間を変更し、変更された遅延期間内に前記特定の操作情報の入力が行われたか否かを判定することを特徴とするプログラム。
  12. 請求項1〜11のいずれかにおいて、
    前記コントローラには、操作情報の入力を行うための操作子が設けられており、
    前記特定の操作情報は、前記コントローラの動きに応じて値が変化する動きセンサの出力値に基づいて特定される操作情報と操作子からの操作情報との組合せであることを特徴とするプログラム。
  13. コントローラを動かすことで操作情報の入力が可能なゲームのためのプログラムであって、
    前記コントローラの動きに応じて値が変化する動きセンサの出力値に基づいて、当該コントローラによって入力される操作情報を特定する操作情報特定部と、
    第1の操作情報の入力が行われた後の所定の入力期間内に第2の操作情報の入力が行われたか否かを判定する操作情報判定部と、
    前記入力期間内に前記第2の操作情報の入力が行われた場合には前記第2の操作情報の入力を確定するゲーム演算を行い、前記入力期間内に前記第2の操作情報以外の操作情報である第3の操作情報の入力が行われた場合には当該第3の操作情報の入力を確定するゲーム演算を行うゲーム演算部としてコンピュータを機能させ、
    前記操作情報判定部が、
    前記第3の操作情報の入力後所定の遅延期間内に前記第2の操作情報の入力が行われたか否かを判定し、
    前記ゲーム演算部が、
    前記遅延期間内に前記第2の操作情報の入力が行われた場合には、前記第3の操作情報の入力の確定を取り消して前記第2の操作情報の入力を確定するゲーム演算を行うことを特徴とするプログラム。
  14. コンピュータにより読取可能な情報記憶媒体であって、請求項1〜13のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
  15. コントローラを動かすことで操作情報の入力が可能なゲームのためのゲームシステムであって、
    前記コントローラの動きに応じて値が変化する動きセンサの出力値に基づいて、当該コントローラによって入力される操作情報を特定する操作情報特定部と、
    所与のイベントを発生させるイベント発生部と、
    前記イベントに対する所定の入力期間および当該入力期間の経過後の所定の遅延期間のうち、少なくとも当該遅延期間内に前記特定の操作情報の入力が行われたか否かを判定する操作情報判定部と、
    前記イベントの発生に基づいて第1のゲーム演算を行うとともに、前記遅延期間内に前記特定の操作情報の入力が行われた場合には当該第1のゲーム演算を中止して第2のゲーム演算を行うゲーム演算部とを含むことを特徴とするゲームシステム。
  16. コントローラを動かすことで操作情報の入力が可能なゲームのためのゲームシステムであって、
    前記コントローラの動きに応じて値が変化する動きセンサの出力値に基づいて、当該コントローラによって入力される操作情報を特定する操作情報特定部と、
    第1の操作情報の入力が行われた後の所定の入力期間内に第2の操作情報の入力が行われたか否かを判定する操作情報判定部と、
    前記入力期間内に前記第2の操作情報の入力が行われた場合には前記第2の操作情報の入力を確定するゲーム演算を行い、前記入力期間内に前記第2の操作情報以外の操作情報である第3の操作情報の入力が行われた場合には当該第3の操作情報の入力を確定するゲーム演算を行うゲーム演算部とを含み、
    前記操作情報判定部が、
    前記第3の操作情報の入力後所定の遅延期間内に前記第2の操作情報の入力が行われたか否かを判定し、
    前記ゲーム演算部が、
    前記遅延期間内に前記第2の操作情報の入力が行われた場合には、前記第3の操作情報の入力の確定を取り消して前記第2の操作情報の入力を確定するゲーム演算を行うことを特徴とするゲームシステム。
JP2007214750A 2007-08-21 2007-08-21 プログラム、情報記憶媒体、およびゲームシステム Pending JP2009045273A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007214750A JP2009045273A (ja) 2007-08-21 2007-08-21 プログラム、情報記憶媒体、およびゲームシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007214750A JP2009045273A (ja) 2007-08-21 2007-08-21 プログラム、情報記憶媒体、およびゲームシステム

Publications (1)

Publication Number Publication Date
JP2009045273A true JP2009045273A (ja) 2009-03-05

Family

ID=40498066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007214750A Pending JP2009045273A (ja) 2007-08-21 2007-08-21 プログラム、情報記憶媒体、およびゲームシステム

Country Status (1)

Country Link
JP (1) JP2009045273A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010273946A (ja) * 2009-05-29 2010-12-09 Nintendo Co Ltd ゲームプログラム及びゲーム装置
EP2233181A3 (en) * 2009-03-24 2011-03-09 Kabushiki Kaisha Square Enix (also trading as Square Enix Co., Ltd.) Game apparatus, game progressing method, and recording medium
JP2016096953A (ja) * 2014-11-20 2016-05-30 株式会社藤商事 遊技機
WO2017099098A1 (ja) * 2015-12-09 2017-06-15 株式会社カプコン ゲームプログラムを記録した記録媒体、効果制御方法およびゲーム装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001104636A (ja) * 1999-10-04 2001-04-17 Shinsedai Kk 体感ボールゲーム装置
JP2006280397A (ja) * 2005-03-31 2006-10-19 Konami Digital Entertainment:Kk ゲームシステム、ゲームシステムの制御方法及びプログラム
JP2007159760A (ja) * 2005-12-13 2007-06-28 Konami Digital Entertainment:Kk ゲームプログラム、ゲーム装置及びゲーム制御方法
JP2007244418A (ja) * 2006-03-13 2007-09-27 Nintendo Co Ltd ゲーム装置およびゲームプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001104636A (ja) * 1999-10-04 2001-04-17 Shinsedai Kk 体感ボールゲーム装置
JP2006280397A (ja) * 2005-03-31 2006-10-19 Konami Digital Entertainment:Kk ゲームシステム、ゲームシステムの制御方法及びプログラム
JP2007159760A (ja) * 2005-12-13 2007-06-28 Konami Digital Entertainment:Kk ゲームプログラム、ゲーム装置及びゲーム制御方法
JP2007244418A (ja) * 2006-03-13 2007-09-27 Nintendo Co Ltd ゲーム装置およびゲームプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2233181A3 (en) * 2009-03-24 2011-03-09 Kabushiki Kaisha Square Enix (also trading as Square Enix Co., Ltd.) Game apparatus, game progressing method, and recording medium
US8317580B2 (en) 2009-03-24 2012-11-27 Kabushiki Kaisha Square Enix Video game with latency compensation for delay caused by frame buffering
JP2010273946A (ja) * 2009-05-29 2010-12-09 Nintendo Co Ltd ゲームプログラム及びゲーム装置
JP2016096953A (ja) * 2014-11-20 2016-05-30 株式会社藤商事 遊技機
WO2017099098A1 (ja) * 2015-12-09 2017-06-15 株式会社カプコン ゲームプログラムを記録した記録媒体、効果制御方法およびゲーム装置
JPWO2017099098A1 (ja) * 2015-12-09 2018-09-27 株式会社カプコン ゲームプログラムを記録した記録媒体、効果制御方法およびゲーム装置
US10543429B2 (en) 2015-12-09 2020-01-28 Capcom Co., Ltd. Recording medium whereupon game program is recorded, effect control method, and game device

Similar Documents

Publication Publication Date Title
US7084855B2 (en) Image generation method, program, and information storage medium
JP4794343B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
KR20060047773A (ko) 화상 처리 프로그램, 게임 처리 프로그램 및 게임 정보처리 장치
US20100022305A1 (en) Program, information storage medium, image generation system, and image/sound control method
JP6782159B2 (ja) プログラム及びゲーム装置
JP3747050B1 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP7426462B2 (ja) プログラム、ゲーム装置、サーバ装置及びゲームシステム
JP2003067779A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2020103798A (ja) ゲームシステム及びプログラム
JP4962978B2 (ja) ゲーム画像表示制御プログラム、ゲーム装置及びゲーム画像表示制御方法
JP5036199B2 (ja) プログラム、情報記憶媒体、及びゲームシステム
JP5182836B2 (ja) プログラム、情報記憶媒体及びゲームシステム
JP2012101025A (ja) プログラム、情報記憶媒体、ゲーム装置及びサーバシステム
JP2009045273A (ja) プログラム、情報記憶媒体、およびゲームシステム
JP2012174089A (ja) プログラム、および、当該プログラムを実行するコンピュータを備えた画像処理装置
JP2020039403A (ja) プログラム、ゲームシステム及びサーバシステム
JP6960729B2 (ja) サーバシステム及びプログラム
JP2001006000A (ja) 画像生成システム及び情報記憶媒体
JP5491971B2 (ja) プログラム、当該プログラムを記録した記録媒体、および、当該プログラムを実行するコンピュータ
JP4656622B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2001005999A (ja) 画像生成システム及び情報記憶媒体
JP4420729B2 (ja) プログラム、情報記憶媒体および画像生成システム
JP2006263321A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2011255114A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2010233751A (ja) プログラム、情報記憶媒体及び画像生成システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121010

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130220