(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0018】
図面を参照してこの発明の実施形態であるゲームプログラムおよび該ゲームプログラムとゲーム機(ハードウェア)によって構成されるゲーム装置(ゲームシステム)について説明する。
【0019】
図1は、ゲーム機1の電子回路部のブロック図である。また、
図2、
図3および
図4は、ゲーム機1とゲームプログラム50の協働で構成されるゲーム装置100の機能ブロック図である。本実施形態のゲーム装置100によって実行されるゲームでは、ユーザ(プレイヤ)の操作に応じて、主キャラクタが、移動したり攻撃を繰り出したりして、敵キャラクタと戦闘する。ゲーム装置100は、ゲームプレイにおけるユーザの操作履歴をリプレイデータとして記憶し、後に、このリプレイデータを読み出すことでユーザによるゲームプレイを、リアルタイムに行われたゲームプレイと同じように再現する。この機能は、リプレイ機能と呼ばれる。
【0020】
図1において、ゲーム機1は、バス26上に、制御部20、操作部30、メディアインタフェース31および無線通信回路部32を有している。制御部20は、CPU21、ROM22、RAM23、画像プロセッサ24および音声プロセッサ25を含んでいる。画像プロセッサ24には、ビデオRAM(VRAM)40が接続される。VRAM40には表示部41が接続される。表示部41は、液晶のディスプレイを含み、ゲーム画像を表示する。音声プロセッサ25には、アンプ42が接続される。アンプ42は、D/Aコンバータを含む。アンプ42には、スピーカ16およびイヤホン端子17が接続される。
【0021】
操作部30は、ディスプレイ上に形成されたタッチパネル、(複数の)ボタンスイッチ、方向キーおよびタッチパッドを含む。これらタッチパネル、ボタンスイッチ、方向キーおよびタッチパッドは、それぞれユーザの操作を受け付けて、その操作内容に応じた操作信号を発生する。発生した操作信号はCPU21に入力される。
【0022】
メディアインタフェース31はメディアスロットを含む。メディアスロットには、ゲームメディア5が接続される。メディアインタフェース31は、メディアスロットにセットされたゲームメディア5にアクセスしてゲームプログラム50を読み出す。なお、ゲームプログラム50は、ゲームの進行に必要なゲームデータを含んでいる。ゲームメディア5としては専用の半導体メモリが用いられる。ただし、ゲームメディア5は、専用の半導体メモリに限定されず、汎用の半導体メモリ、光ディスクなどでも構わない。
【0023】
RAM23には、ロードエリアおよびワークエリアが設定される。ロードエリアには、ゲームメディア5から読み込まれたゲームプログラム50が保存される。ワークエリアは、CPU20がゲームプログラム50を実行する際に使用される。ワークエリアは、後述のヒートアップポイント記憶エリア23A、集計データ記憶エリア23Bおよびジャンプポイントデータ記憶エリア23Cを含む。ROM22は、フラッシュメモリである。ROM22は、基本プログラムを有するとともに、リプレイデータ記憶エリア22Aを有している。基本プログラムは、ゲーム機1がゲームメディア5からゲームプログラム50を読み込んでゲームを実行するためのプログラムである。リプレイデータ記憶エリア22Aには、後述のリプレイデータ220が不揮発に保存される。
【0024】
画像プロセッサ24は、GPU(Graphics Processing Unit,グラフィックス・プロセッシング・ユニット)を有する。画像プロセッサ24は、CPU21の指示に従ってゲーム空間を生成し、このゲーム空間を仮想のカメラで撮影した画像を描画する。画像プロセッサ24は、この描画された画像をゲーム画像としてVRAM40上に展開する。
【0025】
音声プロセッサ25は、DSP(Digital Signal Processor,デジタル・シグナル・プロセッサ)を有する。音声プロセッサ25は、オブジェクトの活動に応じてそのオブジェクトが発する音声などのゲーム音声を生成する。アンプ42は、この音声信号を増幅してスピーカ16およびイヤホン端子17に出力する。
【0026】
無線通信回路部32は、2.4GHz帯のデジタル通信回路を備えている。無線通信回路部32は、デジタル通信回路を用いて、無線アクセスポイントを介したインターネット通信や、他のゲーム機1との直接通信を行う。他のゲーム機1との直接通信は、ローカル通信と呼ばれる。無線通信回路部32は、インターネット通信はIEEE802.11g(いわゆるWi−Fi)規格で通信を行い、ローカル通信はIEEE802.11b規格のアドホックモードまたは独自の規格で通信を行う。
図2に示すゲーム装置100は、この通信機能を用いて他のゲーム装置からリプレイデータ220を受信し、上述のリプレイデータ記憶エリア22Aに保存する。
【0027】
図2、
図3および
図4の機能ブロック図を参照して、ゲーム機1(ハードウェア)にゲームメディア5のゲームプログラム50が読み込まれることによって実現されるゲーム装置(ゲームシステム)100について説明する。
【0028】
ゲーム装置100は、通常モード時には、
図2に示すように、操作データ入力部110、演算部120、操作履歴記録部130、および、ゲーム画面描画部140として機能する。操作データ入力部110は、制御部20、操作部30とゲームプログラム50との協働によって実現される。ゲーム画面描画部140は、制御部20、VRAM40、表示部41とゲームプログラム50との協働によって実現される。
【0029】
操作データ入力部110は、ユーザによる操作部30の操作によって発生した操作信号を取り込み、操作データ200として演算部120に入力する。演算部120は、操作データ200およびゲームデータなどに基づいてゲームの進行やゲーム画像の描画に関する内容を演算し、演算結果であるデータ群をゲーム状況データ210として出力する。
【0030】
演算部120が行う演算は、たとえば、入力された操作データ200に応じた主キャラクタの動作の演算、主キャラクタの動作や時間経過に応じた相手キャラクタの動作の演算、時間経過に伴う環境の変化などである。また、入力された操作データ200が、攻撃の繰り出し(発動)を指示する操作であった場合、主キャラクタにその攻撃の繰り出し動作を行わせる演算を行うとともに、繰り出した攻撃が相手キャラクタに当たったか否か、および、当たった場合の相手キャラクタのダメージ量などを演算する。
【0031】
演算部120は、60分の1秒毎に、直前のゲーム状況データ210を基礎にして操作データ200および時間経過を変数として演算を行い、現在のゲーム状況データ210を生成して出力する。このゲーム状況データ210は、ゲーム画面描画部140に入力される。ゲーム画面描画部140は、ゲーム状況データ210に基づいてゲーム画面を描画し表示部41に表示する。ゲーム装置100の以上の処理により、ユーザによる操作部30の操作および時間経過に応じてゲームが進行し、そのゲームの進行に伴って変化するゲーム画面が表示部41に表示される。
【0032】
操作データ200は、操作データ入力部110から演算部120に入力され、さらに、操作履歴記録部130にも入力される。操作履歴記録部130は、順次入力される操作データ200にそれぞれ操作時刻情報を付し、このデータ列をリプレイデータ220としてリプレイデータ記憶エリア22Aに保存する。
【0033】
次に、ゲーム装置100のリプレイモードについて説明する。リプレイモードにおいては、分析処理およびリプレイ処理が行われる。ゲーム装置100は、分析処理では、リプレイデータ記憶エリア22Aに記憶されているリプレイデータ220を読み出してゲームプレイ中の各時点における盛り上がりの程度を分析する。そして、ゲーム装置100は、使用された攻撃の種類などを集計し、さらに、どの時点からでも速やかに再生できるようにジャンプポイントを設定する。また、ゲーム装置100は、リプレイ処理では、ユーザによって指定された区間を、分析処理で設定したジャンプポイントを用いて速やかにリプレイする。
【0034】
ゲーム装置100は、分析処理時には、
図3に示すように、操作履歴読出部300、演算部120、ヒートアップポイント分析部310、集計部320、および、ジャンプポイント抽出部330として機能する。
【0035】
操作履歴読出部300は、リプレイデータ220から操作データ200を時系列に順次読み出し、読み出した操作データ200を演算部120に入力する。このリプレイデータ220は、
図2の操作履歴記録部130によって記録されたものであってもよく、他のゲーム装置100から取得したものであってもよい。
【0036】
演算部120は、通常モードでゲームを実行する場合と同じように、操作データ200およびゲームデータに基づく演算を行い、ゲームを進行させる。ただし、操作履歴読出部300による操作データ200の読み出し速度は、ユーザが実際にゲームを行った場合の操作データ200の入力速度に比べてはるかに高速である。演算部120は、高速に入力される操作データ200に基づいて高速に(短縮された時間で)ゲームを進行させる。
【0037】
ヒートアップポイントは、演算部120の演算によって生成されるゲーム状況データ210に基づいて一定時間毎に算出されるゲームの盛り上がりの程度を示すパラメータである。ヒートアップポイント分析部310は、一定時間毎にヒートアップポイント230を計算し、RAM23に設定されているヒートアップポイント記憶エリア23Aに保存する。
【0038】
ヒートアップポイントは、たとえば、操作データ200によって制御されるユーザキャラクタが繰り出す攻撃に応じて付与される。ヒートアップポイントは、たとえば、以下の演算式で算出される。
【0039】
ヒートアップポイント=発動ポイント+ガードポイント+ヒットポイント+状況ボーナス
【0040】
発動ポイントは、ユーザキャラクタが攻撃を繰り出したことによって付与される。ガードポイントは、ユーザキャラクタによって繰り出された攻撃が相手キャラクタによって防御された場合に付与される。相手キャラクタによる防御とは、ユーザキャラクタの攻撃を相手キャラクタが腕や防具などで受け止めること、相手キャラクタがユーザキャラクタの攻撃から抜けることなどである。ヒットポイントは、ユーザキャラクタの攻撃が相手キャラクタにヒットした場合に付与される。ヒットするとは、ユーザキャラクタの攻撃が相手キャラクタに命中すること、ユーザキャラクタの攻撃によって相手キャラクタが飛ばされることなどある。したがって、ガードポイントおよびヒットポイントは、ユーザキャラクタによる攻撃が相手キャラクタにヒットしたか相手キャラクタによって防御されたかに応じて、択一的に付与される。これらのポイントの大きさは、攻撃の種類によって異なり、各攻撃の各ポイントは、ゲームデータの中に
図4Aのように定められている。
【0041】
また、状況ボーナスとは、その攻撃が繰り出されたときのキャラクタの状態などに応じて付加されるポイントである。どのような状態のときに何ポイントの状況ボーナスが付与されるかは、ゲームデータの中に
図4Bのように定められている。
【0042】
ヒートアップポイントの演算式は上に述べたものに限定されない。また、上式では演算子として「+」のみを用いているが、他の演算子でパラメータを演算してヒートアップポイントを算出するようにしてもよい。
【0043】
集計部320は、演算部120の演算結果に基づき、操作データ200に応じてユーザキャラクタが繰り出した攻撃の種類や、この攻撃が相手に当たったか否か、相手に与えたダメージの大きさなどを集計する。集計部320は、集計データ240を、RAM23に設定されている集計データ記憶エリア23Bに保存する。
【0044】
ジャンプポイント抽出部330は、ゲーム中の1または複数のタイミングをジャンプポイントとして設定し、その時点のゲーム状況データ210をジャンプポイントデータ250としてジャンプポイントデータ記憶エリア23Cに保存する。ジャンプポイントは、たとえばゲーム開始から10秒毎のタイミングに設定される。ゲーム状況データ210であるジャンプポイントデータ250は、その時点でのゲームの進行状況を全て記述したデータである。そのため、ゲーム装置100は、このデータに基づいて、その時点におけるゲーム空間の状態、全てのキャラクタの状態を再現してゲーム画像を描画することが可能である。また、ゲームが再現された状態で、さらに、操作データ200が入力されれば、ゲーム装置100は、その操作データ200に基づいて、ゲームを継続して進行させることが可能である。したがって、ゲームの途中のジャンプポイントにおけるゲーム状況データ210をジャンプポイントデータ250として記憶しておくことにより、ゲームのリプレイ時に、操作データ200を先頭から読み出してリプレイする以外に、途中のジャンプポイントからリプレイをスタートすることが可能になる。
【0045】
リプレイ処理において、ゲーム装置100は、ユーザによるリプレイ区間の指定を受け付け、この指定された区間のリプレイをジャンプポイントを用いて速やかに行う。ゲーム装置100は、リプレイ処理時には、
図5に示すように、操作履歴読出部300、演算部120、および、ゲーム画面描画部140として機能する。
【0046】
図6を参照して、リプレイ時の演算部120の処理について説明する。演算部120は、リプレイ区間が指定されると、そのリプレイ区間の開始点の直前のジャンプポイントを検索し、そのジャンプポイントのジャンプポイントデータ250、すなわちその時点のゲーム状況データ210を読み出す。演算部120は、このジャンプポイントデータ250に基づいて、このジャンプポイント以後の操作データ200を高速に読み出して、リプレイ開始点まで演算を進める。そして、ゲーム装置100は、リプレイ開始点以後は操作データ200を通常の速度で読み出してゲームの演算を行い、生成されたゲーム状況データ210をゲーム画面描画部140に入力してゲーム画像を描画・表示する。この処理はリプレイ再生終了点が到来するまで継続される。
【0047】
以上の処理により、ゲーム途中のリプレイ区間が指定されたときに、操作データ200を最初から読み出すよりも素早くリプレイをスタートすることができる。
【0048】
以下、ゲーム装置100のリプレイモードの動作を説明する。ゲーム機1は、電源がオンされるとゲームプログラム50を読み込んでゲーム装置100として機能し、表示部41にメニュー画面を表示する。ゲーム装置100は、メニュー画面でゲームプレイが選択されると通常モードに移行する。また、ゲーム装置100は、メニュー画面でマイコレクション、すなわちリプレイデータ250の読み出しが選択されると、リプレイモードに移行する。
【0049】
ゲーム装置100は、リプレイモードに移行すると、リプレイデータ記憶エリア22Aに記憶されているリプレイデータ220の識別情報(プレイヤ名、記録日時等)をリスト表示してユーザに選択を促す。上述したように、リプレイデータ記憶エリア22Aには、このゲーム装置のユーザ(プレイヤ)が行ったゲームプレイのリプレイデータ220のほか、インターネット通信や直接通信などで取得した他のゲーム装置(他のプレイヤ)のリプレイデータ220も保存される。
【0050】
図7のフローチャートにおいて、リプレイデータ220の識別情報を表示している状態で、ユーザによっていずれかのリプレイデータ220が選択されると(S1)、ゲーム装置100は、選択されたリプレイデータ220を分析するか否かの入力を受け付ける(S2)。分析しない旨が入力された場合(S2でNO)、ゲーム装置100は、通常の再生処理(S15)に進む。通常の再生処理とは、リプレイデータ220の操作データ200を先頭から実際の時間経過と同じ速さで読み出して演算部120に入力することにより、ゲームの最初から順次リプレイする処理である。
【0051】
一方、S2で分析する旨が入力された場合(S2でYES)、ゲーム装置100は、
図3に示した機能部を構成して分析処理を実行する(S3)。ゲーム装置100は、分析処理が終了すると、算出されたヒートアップポイント230を時系列にグラフ表示したヒートアップグラフ画面400を表示する(S4)。
【0052】
図8は、ヒートアップグラフ画面400の表示例を示す図である。ヒートアップグラフ画面400は、表示部41に表示される。画面400には、縦軸をヒートアップポイント、横軸を経過時間とするヒートアップグラフ401が表示される。また、画面400の下部には再生ボタン402が表示される。ユーザが、タッチペンなどでグラフ401上のリプレイしたい区間を左から右(または、右から左)になぞることで、リプレイ区間403が指定される。その後、再生ボタン402がクリックされると、ゲーム装置100は、その指定された区間のリプレイをスタートする。このように、ユーザは、ヒートアップグラフ401上でリプレイ区間403を指定できるため、ゲームが盛り上がっていると思われる区間の選択が容易になる。
【0053】
図7のフローチャートにおいて、ゲーム装置100は、
図8のヒートアップグラフ画面400を表示したのち、ユーザにより、リプレイ区間が指定されて再生ボタン402がクリックされるか(S5)、集計データ表示画面への画面切換操作がされる(S10)まで待機する。
【0054】
上述の手順で、ユーザにより、リプレイ区間が指定され、再生ボタン402がクリックされると(S5でYES)、ゲーム装置100は、
図6で説明した手順で指定区間のリプレイ処理を実行する(S6)。ゲーム装置100は、リプレイ処理をリプレイ区間の終了点まで実行したのち(S7でYES)、S4のヒートアップグラフ401の表示にもどる。
【0055】
リプレイ中は、実際にユーザが行ったゲームプレイと同じ内容でゲームが進行し、ゲーム装置100の表示部41には、
図9に示すようなゲーム画面410が表示される。ただし、リプレイ中、ゲーム装置100は、ユーザによる特定操作に応じて、ゲーム画面410中に図示のようなメニューボックス411および操作データボックス412を表示する。メニューボックス411内には、一時停止、終了およびリプレイモード終了のメニューが表示される。ユーザは、メニューを選択することにより、リプレイの一時停止(ポーズ)、終了(ヒートアップグラフ表示画面400に戻る)やリプレイモードの終了(メインメニューに戻る)を選択可能である。このメニューボックス411で終了が選択されると、処理はS4にもどる。また、操作データボックス412には、リプレイにおいて読み出される操作データ200を時系列に表示する窓である。この操作データボックス412では、各操作データ200に対応づけた画像が表示される。表示される画像は、新たな操作データ200が読み出されるのに応じて下から上にスクロールする。
【0056】
一方、S10で画面切換操作が行われたことが検出されると(S10でYES)、ゲーム装置100は、集計データ表示の処理(S11)を行う。
【0057】
図10、
図11を参照して、集計データ表示処理について説明する。集計データ表示処理では、まず、
図10に示すダメージランキング画面420を表示する。ダメージランキング画面420には、ダメージランキングリスト421が含まれる。ダメージランキングリスト421は、表示欄422に表示されているキャラクタ(攻撃キャラクタ)から、表示欄423に表示されているキャラクタ(防御キャラクタ)に対して繰り出された攻撃を、防御キャラクタに対するダメージが大きかった順にリスト表示する。なお、集計データ表示処理で集計の対象となるパラメータは、攻撃によるダメージに限定されず、視覚的、聴覚的に把握可能なものであれば何でもよい。
【0058】
ダメージランキングリスト421の表示において、S3で分析を行ったリプレイデータ220のうち、操作データ200によってコントロールされていたユーザキャラクタがデフォルトで攻撃キャラクタとして選択される。攻撃キャラクタは、キャラクタ変更ボタン424のクリックにより、ユーザが変更可能である。また、表示欄423に表示される防御キャラクタもキャラクタ変更ボタン424のクリックにより、ユーザが変更可能である。
【0059】
ダメージランキング画面420の表示中に、ダメージランキングリスト421中のいずれかの攻撃が選択されると、すなわち、いずれかの攻撃の表示欄がクリックされると、ゲーム装置100は、その選択された攻撃について、
図11に示すような、集計画面430を表示する。この画面430では、この攻撃(技)の相手に与えたダメージ総量、使用回数、ガードされた回数、総合ヒット回数、単発(ソロ)で繰り出されたとき(ソロ)のヒット回数、連続攻撃(コンボ)の中の1つの攻撃として繰り出されたときのヒット回数、および、ヒット率が表示される。
【0060】
集計データ表示処理においても、ユーザによる特定操作に応じて、
図9で示したようなメニューボックス411が画面420、430中に表示される。ユーザによるメニューボックス411内のメニューの選択に応じて、ゲーム装置100は、
図7のS4のヒートアップグラフの表示に移行させたり、リプレイモードを終了してS4に戻るなどの処理を行う。
【0061】
上記実施形態では、ゲーム装置100は、操作データ200等をそのままリプレイデータ220としてリプレイデータ保存エリア22Aに保存し、リプレイモード時に、このリプレイデータ220を読み出して分析する。一方、操作データ200に基づいてリアルタイムに演算されたゲーム状況データ210に基づいて、ゲーム装置100はリアルタイムに分析を行い、この分析データをリプレイデータ220とともに保存してもよい。通常モード時に分析処理を実行するゲーム装置100の機能構成を
図12に示しておく。分析結果は、リプレイデータ220とともにROM(フラッシュメモリ)22に保存しておけばよい。このように構成することにより、リプレイモード時に、分析処理を行うことなく即座にヒートアップグラフ401を表示することが可能になる。
【0062】
この実施形態では、複数のキャラクタが攻撃を繰り出して戦うゲームを例にあげて説明したが、本発明のオブジェクトはキャラクタに限定されない。たとえば、自動車や宇宙船などの乗り物であってもよい。
【0063】
また、ヒートアップポイントの付与対象は、攻撃に限定されない。たとえば、スポーツゲームにおけるゴールや競走ゲームにおける追い越しなど、ユーザが盛り上がると思われるゲーム内の出来事(イベント)にポイントを付与すればよい。なお、
図9では、操作データボックス412内に操作データ200を示す画像がリスト状に表示されているが、各瞬間の操作データ200が操作データボックス412に表示されてもよい。
【0064】
この実施形態では、ゲーム専用機であるゲーム機1を例にあげて説明しているが、本発明は、ゲーム専用機でない装置たとえばスマートフォンなどの携帯電話機、タブレット端末、パーソナルコンピュータなどに適用することも可能である。