[第1実施形態]
以下、本願発明の好ましい実施の形態として、携帯型ゲーム装置において、この装置のプレイヤが無線通信を用いて他の携帯型ゲーム装置のプレイヤとしりとりの対戦をするゲーム「しりとりテニス」について具体的に説明する。
「しりとりテニス」は、「しりとり」の遊びと「テニス」のラリーの要素を組み合わせた二人のプレイヤで対戦する対戦型ゲームで、2個のゲーム画面を有するゲーム装置を用いて実行されるものである。具体的には、2個のゲーム画面をテニスコートの一方側のプレイ領域と他方側のプレイ領域に対応付け、二人のプレイヤに「しりとり」の解答をゲーム画面上の所定の位置に手書き入力させ、その解答(通常、平仮名やカタカナの文字列)をテニスのボールに見立ててゲーム画面上で相手プレイヤ側に移動させ、いずれか一方のプレイヤが適切な解答(文字列)を入力できず、他方のプレイヤの解答(文字列)が一方のプレイヤのプレイ領域の最後部を示すベースラインを超えたとき、他方のプレイヤをそのしりとり対戦における勝者とするものである。
この「しりとりテニス」では、ゲーム開始時に二人のプレイヤに「体力ポイント」として所定のディフォルト値を付与する一方、しりとりの対戦毎に敗者の「体力ポイント」から当該対戦毎に算出される所定の「ダメージポイント」を減算していき、「体力ポイント」がゼロ以下になった時点で最終的な勝敗を決する構成となっている。
従って、相手プレイヤからの解答(文字列)に対してしりとりの解答(文字列)を返すことができなかった場合は、相手プレイヤからのボールが当たって体力を消耗することになり、相手プレイヤからの解答(文字列)に対してしりとりの解答(文字列)を返すことができた場合は、相手プレイヤからのボールをレシーブ(打ち返すこと)することができて、この解答(文字列)が相手プレイヤを攻撃することになる。
この結果、両プレイヤはボールによりダメージを受けるまでの所定の時間内にしりとりの解答(文字列)を手書き入力しなければならず、両プレイヤが交互に解答(文字列)を手書き入力し続ける間は両ゲーム画面に両プレイヤが手書き入力した複数の解答(文字列)が交互に行き交うことになり、あたかもテニスのラリーが行われているような状態が演出される。
また、この「しりとりテニス」では、ゲーム装置の2個のゲーム画面の間の部分もテニスコートのフィールドに見立て、この部分をしりとりの解答(文字列)が移動している場合は両ゲーム画面にその解答(文字列)は表示されないが、その部分で自己の解答(文字列)が相手プレイヤの解答(文字列)に衝突した場合は、自己に有利となるゲーム効果を生じさせ、しりとりの解答(文字列)のラリー状態をより面白くするようにしている。本願発明は、この2個のゲーム画面の間の表示されない部分での文字列の衝突により、特別のゲーム効果を発生させる点に特徴があり、この点については後述する。
なお、本実施形態では、2個のゲーム画面を有するゲーム装置に適用しているので、ゲーム画面間の部分をファンタジーゾーンとしているが、比較的大きいゲーム画面を1個有しているゲーム装置にも適用可能であり、その場合は、ゲーム画面の中央に画像処理によってファンタジーゾーンを設け、上記のゲーム効果を生じさせるようにすればよい。
次に、ゲーム装置のゲーム画面における表示例を用いて「しりとりテニス」のゲーム内容を具体的に説明する。
図1は、ゲーム装置の2個のゲーム画面に表示された「しりとりテニス」のゲーム途中の表示例である。「しりとりテニス」においては、対戦が行われる仮想的なニ次元のゲーム空間における上空で、コートを真下に見るように視点(所定サイズの窓)が固定されている。また、窓のサイズは2つの表示画面とその間にある所定の間隔の領域とを合わせたサイズに設定されている。すなわち、所定サイズの窓は移動せず、表示画面には常にコート全体を見下ろすような映像が表示される。
ゲーム装置には、同一サイズの横長長方形の2個のゲーム画面2a,3a(以下、上側のゲーム画面を「第1表示画面2a」、下側のゲーム画面を「第2表示画面3a」と呼ぶ)が、縦に所定の間隔Lを設けて、設けられている。以下の説明では、第1表示画面2aと第2表示画面3aの間の部分5を「ファンタジーゾーン5」と呼ぶ。
第1表示画面2aは、対戦相手のプレイ領域に対応し、第2表示画面3aは、ゲーム装置を保持しているプレイヤ自身のプレイ領域に対応している。対戦相手が手書き入力したしりとりの解答(文字列)は、ゲーム空間上では第1表示画面2a側から第2表示画面3a側に移動することになるから、その解答(文字列)は、第1表示画面2a内を下降するように移動する。第1表示画面2aの下辺を越えると、対戦相手の解答(文字列)はファンタジーゾーン5に入り、このゾーンを移動しているときは第1,第2表示画面2a,3aには表示されないが、そのゾーンを越えると、第2表示画面3aの上辺から現れ、第2表示画面3a内を下降するように移動する。
一方、ゲーム装置のプレイヤが手書き入力したしりとりの解答(文字列)は、逆にゲーム空間上では第2表示画面3a側から第1表示画面2a側に移動することになるから、その解答(文字列)は、第2表示画面3a内を上昇するように移動する。第2表示画面3aの上辺を越えると、プレイヤの解答(文字列)はファンタジーゾーン5に入り、このゾーンを移動しているときは第1,第2表示画面2a,3aには表示されないが、そのゾーンを越えると、第1表示画面2aの下辺から現れ、第1表示画面2a内を上昇するように移動する。
図1は、対戦相手がしりとりの解答として入力した「りんご」の手書き文字列(以下、解答として入力された文字列で表示画面上に移動表示される文字列を「文字列25」とする。)が第1表示画面2aに表示され、下方に移動している途中であり、プレイヤが第2表示画面3aで「ごりら」を入力している途中の画面表示である。
第1表示画面2a上には、最上端に対戦相手のデッドライン21、左上に対戦相手の体力ゲージ22、中央部に対戦相手の入力した文字列25(図1では、手書き文字列「りんご」)が表示されている。第2表示画面3a上には最下端にプレイヤのデッドライン31、左下にプレイヤの体力ゲージ32、全消しボタンアイコン33、右下にOKボタンアイコン34が表示されている。また、第2表示画面3aの中央部下寄りに入力画面4aがありプレイヤが手書き入力している途中の文字列「ごり」が表示されている。
「しりとりテニス」では、プレイヤと対戦相手はしりとりの規則に従って解答となる文字列を手書き入力して対戦する。入力された文字列25は画面上を移動するように表示される。
プレイヤが入力した文字列25はプレイヤのデッドライン31の外(デッドライン31の下方側)から速い速度で上昇し、下降してくる対戦相手の入力した文字列25と重なった位置から所定の速度(重なるまでの速度より遅い速度であり、文字列の文字数に比例した速度)で上昇を続けるように表示される。文字列25の上昇速度を文字数に比例させるのは、焦燥している心理状態で解答を手書き入力しなければならない負担の中で、より負担の大きい文字数の多い解答を手書き入力をしたことに対する報奨であり、長い文字列の入力者が有利になるようにするためである。もっとも、必ずしも上昇速度を文字数に比例させる必要はなく、文字数にかかわらず、一定速度で文字列25が上昇する構成であってもよい。なお、2つの文字列25が重なるまでプレイヤが入力した文字列25は速い速度で上昇し、重なった位置で対戦相手の入力した文字列25は消去されるので、対戦相手の入力した文字列25がプレイヤの入力した文字列25に入れ替わった様な印象を与える。このプレイヤが入力した文字列25が対戦相手が入力した文字列25と入れ替わって上昇することを、テニスに見立てて「レシーブ」という。
同様に、対戦相手が入力した文字列25は、対戦相手のデッドライン21の外(デッドライン21の上方側)から速い速度で下降し、上昇してくるプレイヤの入力した文字列25と重なった位置でプレイヤの入力した文字列25と入れ替わったかの様に、所定の速度(重なるまでの速度より遅い速度であり、文字列の文字数に比例した速度)で下降を続けるように表示される。この対戦相手が入力した文字列25がプレイヤが入力した文字列25と入れ替わって下降することも、「レシーブ」という。あたかもテニスにおいてサーブされたテニスボールをレシーブし合ってラリーを続けているかのように画面上に表示されるので、このプレイヤと対戦相手とでレシーブが継続されている間の対戦を「ラリー」という。
早く解答の文字列を入力することができると、プレイヤは対戦相手の入力した文字列25がプレイヤのデッドライン31から離れた位置にあるときにレシーブすることができ、ボレーのように対戦相手がレシーブするための時間を短くすることができる。また、長い解答の文字列を入力することができると、文字列25の移動速度が速くなるので、同様に対戦相手がレシーブするための時間を短くすることができる。このとき対戦相手のレシーブする位置は対戦相手のデッドライン21近くになり、プレイヤはレシーブするための時間を多くとることができるし、早くレシーブすると対戦相手を更に追い詰めることができる。
プレイヤが入力した文字列25が、画面上を移動して、対戦相手がしりとりの規則に合う解答の文字列を入力する前に、対戦相手のデッドライン21を超えると、このラリーはプレイヤの勝ちとなり、対戦相手の体力ゲージ22の体力ポイントが減少する。逆に対戦相手の入力した文字列25が、画面上を移動して、プレイヤがしりとりの規則に合う解答の文字列を入力する前に、プレイヤのデッドライン31を超えると、このラリーはプレイヤの負けとなり、プレイヤの体力ゲージ32の体力ポイントが減少する。体力ゲージ22、32の体力ポイントは、長い解答の文字列を入力した方が有利となるように、デッドライン21、31を超えた文字列25の文字数に比例して減少する。対戦相手の体力ゲージ22の体力ポイントがなくなると、この試合はプレイヤの勝利となり、プレイヤの体力ゲージ32の体力ポイントがなくなると、この試合は対戦相手の勝利となる。
1回のしりとりのラリーの勝敗で、すぐに試合の勝敗が決まってしまう構成とせずにラリーの敗戦によって体力ポイントを減少させていく構成とした理由は次の理由による。すなわち、プレイヤの解答の出方とその解答の手書き入力操作の良否などによって比較的短い時間で試合が終了してしまう。各プレイヤに、しりとりの解答捻出と手書き入力操作に集中させて、緊張と興奮の状態を体感させるには、ある程度の時間、試合を継続させる必要があるからである。また、予め決められた回数のしりとり対戦を連続させ、勝敗の数や得点などで最終的なゲームの勝敗を決する構成とせずにラリーの敗戦によって体力ポイントを減少させていく構成とした理由は次の理由による。すなわち、プレイヤをテニスプレイヤとしてモデル化し、一方のプレイヤの体力ゲージがゼロになるまでしりとり対戦を繰り返させる方がより対戦感覚を両プレイヤに与え、勝者のプレイヤには相手プレイヤを屈服させたという勝利感を与えることができるからである。また、試合の勝利が、ラリーの勝利の回数だけでなく、勝ち方(長い解答の文字列を入力して勝った場合等)にも左右されるほうが、プレイヤはより難しい勝ち方をしようと白熱することができる。よって、本実施形態の「しりとりテニス」では、ラリーの敗戦により、プレイヤは体力にダメージを受け、体力ポイントが減少し、ダメージが限界を超えたとき、すなわち、体力ポイントがなくなったときに試合の勝敗が決することにしている。
プレイヤは解答の文字列入力において、入力画面4aに解答の文字列を手書きする。ボタンやキー操作によってしりとりの解答を入力させる方法では、入力操作が難しく、迅速な解答入力ができないから、「しりとりテニス」のラリーの要素を実現することは難しい。音声による入力方法では、対戦しているプレイヤが遠隔地に居る場合はよいとしても、近接している場合、両プレイヤの解答の声が相手のゲーム機に混入して誤動作をすることがある。また、プレイヤの解答が早口になり、ゲーム機が解答を正確に認識できないなどの問題もある。また、手書き文字入力には、画面上を自分の手書き文字が移動していくことの面白みもある。よって、本実施形態の「しりとりテニス」では、手書き文字入力を採用している。
書き直したいときは全消しボタンアイコン33を押すと入力画面4aがクリアされる。OKボタンアイコン34を押すと入力画面4aに手書きされた解答の文字列が入力される。入力された文字列は手書き文字のまま表示される。対戦相手が入力した文字列25は第1表示画面2a上に位置している間は手書き文字のまま表示されるが、読めないほどの崩れた手書き文字だとプレイヤは解読できず解答することができないので、第2表示画面3a上では活字となって表示される。
なお、入力できる解答の文字列は2〜6文字で、対戦相手が入力した解答の文字列の最後の文字を最初の文字とする文字列でなければならない。しりとりの規則に合わない解答の文字列や、意味のない解答の文字列、読み取りできない文字を含む解答の文字列は受け付けられず、再入力となる。なお、日本語においては「ん」で始まる単語がなく、しりとりを継続することができなくなってしまうため、入力された解答の文字列の最後の文字が「ん」であった場合、体力ゲージ22,32の体力ポイントに関係なく入力者の負けでゲームオーバーとなる。
ファンタジーゾーン5は、第1表示画面2aと第2表示画面3aとの間の領域であり、一方の画面に表示された文字列25が他方の画面に向かうときに、あたかもその領域を文字列25が移動しているかのようにタイミングが計られて各画面の表示が行われる。なお、対戦相手の入力した文字列25の全体がファンタジーゾーン5に隠れるタイミングでプレイヤの入力した文字列25と重なった場合、「ダブルリターン」と呼ばれる特殊攻撃を行うことができる。ダブルリターンについては後述する。
図2は、ゲーム上の仮想空間における座標と第1表示画面2a、第2表示画面3aおよびファンタジーゾーン5の各座標の関係を説明するための図である。ゲーム画面は、仮想空間における座標が第1表示画面2a、第2表示画面3aの各座標に変換されて、各表示画面2a,3aに表示される。このときの座標変換について説明する。
画面の縦方向(図2においては上下方向)をY軸、画面の横方向(図2においては左右方向)をX軸としている。第1表示画面2a及び第2表示画面3aは解像度がX軸方向に192画素、Y軸方向に256画素であり、画素毎に座標が設けられている。すなわち、第1表示画面2a上の座標(X1、Y1)は、0≦X1≦255、0≦Y1≦191、第2表示画面3a上の座標(X2、Y2)は、0≦X2≦255、0≦Y2≦191の範囲で定義されている。なお、各画面に表示される画像は後述するVRAM(Video-Random Access Memory)の2つのスクリーンバッファにそれぞれ作成され各表示画面2a,3aに描画される。また、文字列25は上下(すなわちY軸方向)16画素で構成されている。
仮想空間は文字列25が位置し得る領域、すなわち、各表示画面2a,3aに表示される領域と、第1表示画面2aと第2表示画面3aとの間にあり各表示画面2a,3aに表示されないファンタジーゾーン5、第1表示画面2aの上側の表示されない領域で文字列25がデッドライン21に達してからデッドライン21を超えてしまうまでに文字列25の各画素が位置する領域、第2表示画面3aの下側の表示されない領域で文字列25がデッドライン31に達してからデッドライン31を超えてしまうまでに文字列25の各画素が位置する領域からなる。仮想空間座標(X、Y)は、仮想空間上に定義されていて、そのX座標は各表示画面2a,3aと共通で0≦X≦255の範囲で定義されている。また、そのY座標は文字列25の各画素が位置し得る領域で0≦Y≦511の範囲で定義されている。すなわち、各表示画面2a,3aのY軸方向の画素数192画素が2画面分、ファンタジーゾーン5に相当する画素数96画素、デッドライン21、31外の文字列25の各画素が位置する部分(文字列25の上下画素数)16画素の2つ分が加算された512画素に対応した範囲となる。
仮想空間座標の0≦Y≦15、208≦Y≦303、496≦Y≦511の範囲は各表示画面2a,3a上に表示されないので座標変換の必要がない。16≦Y≦207の範囲については第1表示画面2a上に表示されるので、第1表示画面2a上の座標(X1、Y1)に座標変換される。この座標変換式はX1=X(0≦X≦255)、Y1=Y−16(16≦Y≦207)となる。また、304≦Y≦495の範囲については第2表示画面3a上に表示されるので、第2表示画面3a上の座標(X2、Y2)に座標変換される。この座標変換式はX2=X(0≦X≦255)、Y2=Y−304(304≦Y≦495)となる。
仮想空間を移動する文字列25は画素ごとに仮想空間上の座標から第1表示画面2aまたは第2表示画面3aの座標に座標変換され、VRAMに描画されて、各画面に表示される。例えば、文字列25が仮想空間の200≦Y≦215に位置するとき、200≦Y≦207に該当する画素は第1表示画面2a上のY座標184≦Y1≦191の範囲に変換
され第1表示画面2aの下方に表示され、208≦Y≦215に該当する画素は座標変換されず、どちらの表示画面2a,3aにも表示されない。
また、文字列25は、その位置が図2中の左上隅の座標で表される。よって、仮想空間座標における文字列25の位置は0≦Y≦496の範囲であり、Y≦0のとき(すなわちY=0のとき)文字列25は対戦相手のデッドライン21を超えたとされ、対戦相手の体力ゲージ22の体力ポイントが減少される。また、Y≧496のとき(すなわちY=496のとき)文字列25はプレイヤのデッドライン31を超えたとされ、プレイヤの体力ゲージ32の体力ポイントが減少される。また、208≦Y≦288の範囲にあるとき文字列25は全体がファンタジーゾーン5に隠されていることになる。
なお、本実施形態では、文字列25のY座標はその上端が基準(以下、基準位置と記載する)とされ、文字列25の位置をY座標で示す場合には基準位置の座標が示される。このため、文字列25の位置は上述したように0≦Y≦496となる。従って、本実施形態では、文字列25がファンタジーゾーン5内にあるかどうかを判断するためや、文字列25同士が衝突したかどうかの判断(詳しくは後述する)についても、基準位置のY座標が用いられる。なお、必ずしも基準位置は文字列25の上端である必要はなく、中心であっても下端であってもよい。また、本実施形態では、文字列25の全てがファンタジーゾーン5にある場合に後述のダブルリターンが行われるが、この構成に限定されず、文字列25の一部でもファンタジーゾーン5にある場合にダブルリターンが行われてもよい。また、本実施形態では、プレイヤが入力した文字列25と対戦相手が入力した文字列25とが衝突したかどうかの判断は、基準位置が一致するかどうかで行うがこの構成に限定されない。基準位置が一致した場合に文字列25同士が衝突したと判断される構成では、文字列25同士が完全に重なった場合に衝突したと判断されるが、文字列25同士の一部でも重なり合っていたら衝突したと判断される構成であってもよい。この場合には、例えば基準位置を用いて文字列25同士の一部でも重なっているかどうかを判断してもよいし、文字列25の上端に第1の基準位置、下端に第2の基準位置を設定し、第1の基準位置と第2の基準位置とが重なった場合に、文字列25同士が衝突したと判断してもよい。
また、本実施形態では、ファンタジーゾーン5に相当するY軸方向の画素数が96画素、文字列25のY軸方向の画素数が16画素であるが必ずしもこの構成でなくてもよい。例えば、ファンタジーゾーン5のY軸方向の画素数を77画素程度としてもよく、文字列25のX軸及びY軸方向の画素数を48画素程度としてもよい。このように、X軸及びY軸方向の画素数を48画素程度とすると、文字列25が視認し易くなり、かつ、単語入力のためのプレイヤの持ち時間を短くし、より単語入力のためのプレイヤの焦燥感があおられることになる。この場合には、文字列25の位置は上述したように0≦Y≦464となり、文字列25は仮想空間座標の0≦Y≦47、240≦Y≦316、509≦Y≦556の範囲は各表示画面2a,3a上に表示されない。また、上述した仮想空間のY座標から各表示画面2a、3aのY座標に変換する座標式は、
(1)48≦Y≦239の範囲については、Y1=Y−48(48≦Y≦239)
(2)317≦Y≦508の範囲については、Y2=Y−317(317≦Y≦508
)
となる。なお、文字列25のY軸方向の画素数を48画素程度とすると、入力画面4a(図1を参照)の入力可能な文字数を6個とすることができないため、この文字数は5個程度に設定されればよい。
プレイヤは図1の入力画面4aの各マス内に1文字ずつ、タッチペンで文字を手書きする。手書きされた文字列は手書き途中の状態も含め、プレイヤの手書き文字列としてRAM(Random Access Memory)の所定領域に記録される。図3は、RAMにおける記憶領域の割り当てを表す図である。プレイヤの手書き文字列は、図3のプレイヤ手書き文字列1の領域に記録される。RAMに記録された手書き文字列は随時、図1の第2表示画面3aの入力画面4aの位置に描画されるので、タッチペンで画面に文字を書いているかのように表示される。また、このプレイヤの手書き文字列は、無線通信により対戦相手のゲーム装置にも随時送信される。
プレイヤが図1のOKボタンアイコン34をタッチペンで触れると、OKボタンが押されたと判断され、RAMに記録されたプレイヤ手書き文字列の各手書き文字はパターンマッチングにより文字として認識される。文字として認識できないときは、その旨の報知とともに、RAM内の手書き文字列がクリアされる。図1の第2表示画面3aの入力画面4aの位置にはRAM内のプレイヤ手書き文字列が描画されるので、表示されていた手書き文字もクリアされることになる。このときプレイヤは再度手書き文字列を入力しなければならない。なお、この手書き文字が文字と認識できないときの報知は、ブザー音などの音声によるものと、「文字が読み取れません」などの文字による画面表示によるものを併用する。以下の報知についても同様とする。なお、OKボタンが押されたときに1度に手書き文字列の認識を行う代わりに、随時、手書き文字ごとに認識を行っておき、OKボタンが押されたときにその認識結果により処理を行うようにしてもよい。
すべての手書き文字が認識されると、しりとりの規則に既定されている条件(以下、「しりとり条件」という。)に該当するか検証される。文字列の最後の文字が「ん」である場合は、その試合はプレイヤの負けとしてゲームが終了される。しりとりにおいて、最後の文字が「ん」というのは、しりとりの継続を放棄する許されない行為であり、他のしりとり条件とは区別している。なお、ゲーム終了は厳しすぎると思う場合は、ラリー終了として、入力者の体力ポイントを大きく削減して、ゲームは継続するようにしてもよい。
文字列が意味のない文字列であった場合は、その旨の報知とともに、RAM内のプレイヤ手書き文字列がクリアされる。RAMには、2〜6文字の普通名詞が辞書データとして読み込まれていて、文字列が辞書データに存在しない場合、文字列が意味のない文字列だと判断される。
プレイヤの入力がそのラリーの最初の入力(以下「サーブ」という。)でない場合は、入力文字列の最初の文字がRAMの所定領域(図3の対戦相手入力済文字列1の領域)に記録されている対戦相手の最新の入力文字列の最後の文字となっているか、入力文字列が以前に入力された文字列と同じであるかも検証される。プレイヤ及び対戦相手がそのラリーの最初から入力した文字列はそれぞれ最新のものから10個ずつ入力済文字列としてRAMの所定領域(図3のプレイヤ入力済文字列1〜10の各領域及び対戦相手入力済文字列1〜10の各領域)に記録されている。しりとり条件の検証において、入力文字列はこれらのRAMに記録されている入力済文字列と比較される。なお、本実施形態では入力済文字列の記録領域は合計20文字列分としているので20個以上前に入力された文字列はこの比較において参照されない。RAMの容量に余裕があれば、入力済文字列の記録領域を大きくし、20文字列分以上記録できるようにすることができる。
入力文字列の最初の文字が、RAMに記録されている対戦相手の最新の入力済文字列の最後の文字と異なるとき、または、入力文字列がRAMに記録されている入力済文字列と同じであるとき、その旨の報知とともに、RAM内のプレイヤ手書き文字列がクリアされる。なお、本実施形態では、最後の文字が拗音・促音(「ぁ」、「ぃ」、「ぅ」「、「ぉ」、「ゃ」、「ゅ」「ょ」、「っ」)の場合はもとの文字(清音)を、延ばす音の場合(最後の文字が「ー」)は一つ前の文字を最後の文字として入力文字列の最初の文字の検証を行うが、この限りでない。
しりとり条件の検証において、文字列の最後の文字が「ん」である場合以外は、プレイヤの負けとしてのゲーム終了またはラリー終了とはせずに、再入力としている。これらの場合もすべてプレイヤの負けでゲーム終了またはラリー終了とすると、単なる入力ミスでも終了となるのでラリーの継続時間が短くなりすぎて、緊張と興奮の状態を体感させることができない。また、これらの条件を気にしすぎるあまり、しりとりに集中できなくなり、緊張と興奮の状態を体感させることができない。よって、本実施形態では、これらの場合は、各条件違反の報知をして、再入力させるようにしている。
入力文字列がしりとり条件に該当していると判断されたときは、プレイヤ手書き文字列は図1の入力画面4aの位置に描画されなくなり、デッドライン31の下の位置(プレイヤのサーブのときに、入力された文字列25が上昇を始める位置なので「プレイヤのサーブ位置」といい、図2の仮想空間座標のY=496の位置)に位置することになり、各表示画面2a,3a上には表示されなくなる。また、図3のプレイヤ入力済文字列1〜10の各領域に記録されている文字列は更新される。すなわち、認識された文字列が最新の入力済文字列としてプレイヤ入力済文字列1の領域に記録され、プレイヤ入力済文字列1の領域に記録されていた文字列はプレイヤ入力済文字列2の領域へと、1つずつずれて記録される。なお、これによりプレイヤ入力済文字列が10個を超える場合は、1番古い入力済文字列(図3のプレイヤ入力済文字列10の領域に記録されていた文字列)が削除される。また、この最新の入力済文字列は、無線通信により対戦相手のゲーム装置に送信される。
プレイヤは、以上の手書き文字入力を対戦相手の入力した文字列25がデッドライン31を超えるまで(図2において、入力文字列25の位置がY≧496になるまで)に完了しなければならない。プレイヤが手書き文字入力を完了すると、プレイヤの入力した文字列25は、仮想空間上を下降してくる対戦相手の入力した文字列25とその位置のY座標が一致するまで、速い速度で上昇する。この速度は、下降してくる対戦相手の入力した文字列25の速度の10倍程度としている。2つの文字列25の位置のY座標が一致した後は、対戦相手の入力した文字列25は消去され、プレイヤの入力した文字列25は、遅い速度で上昇を続ける。この速度は、速度変化前の文字列25の速度の1/10程度としている。すなわち、文字列25は所定の速度(文字列の文字数に比例した速度)で往復するテニスボールに見立てられており、プレイヤがレシーブすると文字列25が入れ替わることを、プレイヤの入力した文字列25が画面外の下方から飛んできて対戦相手の入力した文字列25にぶつかることで表現している。また、対戦相手の入力した文字列25との衝突後には衝突前に比較して文字列25の移動速度が1/10程度になるが、必ずしも1/10程度である必要はなく、衝突後の移動速度が衝突前よりも遅い構成であればよい。これによって、プレイヤの文字入力が速ければ速い程対戦相手の文字入力のための持ち時間が短くなり、よりゲームの遊戯性が高くなる。
対戦相手の入力した文字列25がプレイヤの入力した文字列25に入れ替わった後は、対戦相手の入力待ちとなる。対戦相手が自分のゲーム装置の入力画面4aにタッチペンで文字を書くと、その手書き文字列は無線通信によりプレイヤのゲーム装置に送られてくる。受信した手書き文字列は随時、RAMの所定領域(図3の対戦相手手書き文字列1の領域)に記録される。
対戦相手が自分のゲーム装置で手書き文字入力を完了すると、プレイヤのゲーム装置は、無線通信により対戦相手の最新入力済文字列を受信し、図3の対戦相手入力済文字列1〜10の各領域に記録されている文字列を更新する。すなわち、受信した文字列を最新の入力済文字列として対戦相手入力済文字列1の領域に記録し、対戦相手入力済文字列1の領域に記録されていた文字列を対戦相手入力済文字列2の領域へと、同様に1つずつずれて記録する。なお、これにより対戦相手入力済文字列が10個を超える場合は、1番古い入力済文字列(図3の対戦相手入力済文字列10の領域に記録されていた文字
列)を削除する。
また、同時に、RAMに記録されている対戦相手の手書き文字列が、デッドライン21の上の位置(対戦相手のサーブのときに、入力された文字列25が下降を始める位置なので「対戦相手のサーブ位置」といい、図2の仮想空間座標のY=0の位置)に位置することになり、仮想空間上を上昇してくるプレイヤの入力した文字列25に向かって下降し、ぶつかって入れ替わる。なお、対戦相手の入力した文字列25は、第1表示画面2a上にあるとき(図2の仮想空間座標における文字列25の位置を表す座標のY座標が0≦Y≦207のとき)は、図3の対戦相手手書き文字列1の領域に記録されている手書き文字列で表示され、第2表示画面3a上にあるとき(図2の仮想空間座標における文字列25の位置を表す座標のY座標が304≦Y≦495のとき)は、図3の対戦相手入力済文字列1の領域に記録されている活字の文字列で表示される。
次に、ダブルリターンについて説明する。ダブルリターンとは、対戦相手が入力した文字列25全体がファンタジーゾーン5に隠されているタイミングでプレイヤの入力した文字列25と重なるという特定の事象が生じた場合、プレイヤの入力した文字列25とは別に文字列25が生成され、プレイヤの入力した文字列25と一緒に上昇していくというゲーム効果を発生させる特殊攻撃である。対戦相手は2つの文字列25に対してレシーブする必要があり、文字列25がデッドライン21を超える可能性が高くなる。
なお、対戦相手が2つの文字列25をレシーブした場合は、このラリーの勝敗が決定するまで(文字列25がどちらかのデッドライン21、31を超えるまで)、プレイヤ、対戦相手とも2つのしりとりを継続しなければならない。
なお、プレイヤが入力した文字列25全体がファンタジーゾーン5に隠されているタイミングで対戦相手が入力した文字列25を重ねさせた場合、対戦相手のダブルリターンとなる。また、ダブルリターンはラリーにおいて1度のみ行われ、1度ダブルリターンが行われた後はファンタジーゾーン5に隠されるタイミングでレシーブしても、更にダブルリターンが行われることは無い。
図4は、ダブルリターンを説明するための図である。
同図(a)は、第1表示画面2a上を下降してくる対戦相手の入力した文字列「りんご」が、一部ファンタジーゾーン5にかかった(図4ではファンタジーゾーン5にかかっている部分を点線で表示しているが、実際にはこの点線部分は表示されない。以下、同様。)ときに、プレイヤが「ごりら」を入力し、OKボタンアイコン34を押して、文字列「ごりら」が第2表示画面3a上を上昇していく画像である。文字列「ごりら」の上昇速度は、文字列「りんご」と重なるまでは文字列「りんご」の下降速度より速い(本実施形態では約10倍の速度としている)。
同図(b)は、ファンタジーゾーン5で文字列「りんご」と「ごりら」が重なった画像である。画面上には表示されないが、これらの文字列の位置は仮想空間上の座標で表されており、文字列「りんご」の位置のY座標と文字列「ごりら」の位置のY座標とが一致した状態である。このときのY座標が208≦Y≦288の範囲にあるとき、これら2つの文字列は全体がファンタジーゾーン5で隠されている位置で重なったことになり、ダブルリターンの条件に該当し、別の文字列が生成される。このとき生成される文字列は、プレイヤが入力した文字列の最初の文字と同じ文字を最初の文字とする文字列であり、辞書データから任意に生成される。
同図(c)は、文字列「りんご」が消滅し、プレイヤの入力した文字列「ごりら」と自動生成された文字列「ごま」とが上昇していく画像である。同図(c)においては、プレイヤの入力文字列「ごりら」に対して、「ご」を最初の文字とする文字列「ごま」が生成されている。また、生成された文字列25は、プレイヤのサーブ位置から上昇を始める。2つの文字列25が近づき過ぎると続けてのレシーブが不可能になるので、一定の距離を離している。
ダブルリターンにおいて生成される文字列は、図3のプレイヤ手書き文字列2の領域に記録される。このときは手書きされていないので活字文字列が記録される。また、このRAMのプレイヤ手書き文字列2の領域の文字列は、プレイヤ手書き文字列1の領域の文字列と同様に、無線通信により対戦相手のゲーム装置に随時送信されている。
ダブルリターン以後はそのラリーが終了するまで、ダブルリターン以前にラリーが行われていた文字列(以下、2つの文字列を区別する場合、「第1文字列」という。)はプレイヤ手書き文字列1の領域に記録され、ダブルリターンで生成された、第1文字列でない方の文字列(以下、2つの文字列を区別する場合、「第2文字列」という。)はプレイヤ手書き文字列2の領域に記録される。また、第2文字列の活字化された文字列は、RAMのプレイヤ入力済文字列2の領域にも記録され、プレイヤ入力済文字列2の領域に記録されていた文字列はプレイヤ入力済文字列3の領域へと、1つずつずれて記録される。また、第2文字列の活字化された文字列は、無線通信により対戦相手のゲーム装置に送信される。
対戦相手のゲーム装置では、図3に示すRAMの対戦相手手書き文字列1の領域にプレイヤの第1文字列「ごりら」が、対戦相手手書き文字列2の領域に第2文字列「ごま」が記録され、対戦相手入力済文字列1の領域に活字化された第1文字列「ごりら」が、対戦相手入力済文字列2の領域に活字化された第2文字列「ごま」が記録される。
ダブルリターン以後はそのラリーが終了するまで、対戦相手の第1文字列の活字化された文字列は対戦相手入力済文字列1の領域に、第2文字列の活字化された文字列は対戦相手入力済文字列2の領域に、それぞれ記録されているので、プレイヤの入力文字列が第1文字列に対するものなのか、第2文字列に対するものなのかが判断され、第1文字列に対するプレイヤの入力文字列は、対戦相手入力済文字列1の領域に記録された文字列としりとり条件の検証がなされ、第2文字列に対するプレイヤの入力文字列は、対戦相手入力済文字列2の領域に記録された文字列としりとり条件の検証がなされる。
プレイヤの入力文字列がどちらの文字列に対するものなのかは、仮想空間上の第1文字列25と第2文字列25の移動方向及び位置により判断される。すなわち、第1文字列25、第2文字列25が共に上昇している場合は、プレイヤはレシーブできないのでプレイヤの入力文字列は無視される。一方のみが下降している場合、プレイヤの入力文字列は下降している文字列25に対するものであると判断される。共に下降している場合、プレイヤの入力文字列はより下方に位置する文字列25に対するものであると判断される。プレイヤの入力文字列は、対象と判断された文字列に対してレシーブを行う。
対戦相手のゲーム装置が送信した文字列を受信したときも、仮想空間上の第1文字列25と第2文字列25の移動方向及び位置により、その受信文字列がどちらの文字列に対するものかが判断される。すなわち、第1文字列25、第2文字列25が共に下降している場合は、対戦相手はレシーブできないので受信文字列は無視される。一方のみが上昇している場合、受信文字列は上昇している文字列25に対するものであると判断される。共に上昇している場合、受信文字列はより上方に位置する文字列25に対するものであると判断される。受信文字列は、対象と判断された文字列に対してレシーブを行う。
図5は、携帯型ゲーム装置1(以下、「ゲーム装置1」と略称する。)の概観図である。
ゲーム装置1は、ゲームプログラム及びゲームデータが記録された専用の可搬型記録メディア(以下、「ゲームメディア」という。)から当該ゲームプログラム及びゲームデータを装置内のメモリ(RAM)に読み込み、CPU(Central Processing Unit)によってゲームプログラムを実行させることによりプレイヤがゲーム内容を楽しむことができるものである。
ゲーム装置1は、無線LANによって他のゲーム装置1とワイヤレスで通信を行い、ゲーム装置1同士で同一のゲームソフトを楽しむ機能(以下、「ワイヤレスLAN機能」という。)を備えている。
ゲーム装置1には、第1表示装置2、第2表示装置3、タッチパネル4、無線LANアンテナ6、マイク7、スピーカ8、操作ボタン9、タッチペン10が設けられている。第1表示装置2はゲーム装置1の正面側の上部に、第2表示装置3はゲーム装置1の正面側の下部に、ある間隔(例えば図1で示す間隔L)をあけてそれぞれ設置されており、第1表示装置2が図1で示す第1表示画面2aを有するとともに、第2表示装置3が図1で示す第2表示画面3aを有する。透明のタッチパネル4は第2表示画面3aの表面を被うように設けられている。無線LANアンテナ6は、第1表示画面2a上方でゲーム装置1の内部に設けられ、マイク7は第2表示画面3aの下方に設けられている。スピーカ8は第1表示画面2aの左右に設けられ、操作ボタン9は第2表示画面3aの左右に設けられている。タッチペン10はゲーム装置1の本体に設けられた図示しない収納スペースに格納されている。
第1表示装置2および第2表示装置3は、それぞれの表示画面である第1表示画面2a、第2表示画面3aにゲームのタイトル画像、メニュー画像、ゲームの進行画像などの各種画像を表示するための表示装置であり、例えば、半透過型カラー液晶ディスプレイで構成され、略同一の表示画面を有する。
タッチパネル4は、パネル面に多数の微小コンデンサ若しくは微小抵抗が格子状に配置されたもので、パネル面を直接指やタッチペン10で触れることで接触位置の微小コンデンサ若しくは微小抵抗を変化させ、その変化情報により接触位置を検出してCPUに入力するための入力装置である。本実施形態においては、タッチペン10でタッチパネル4の所定の位置に文字が書かれると、その接触位置がCPUに入力され、接触位置の軌道が入力手書き文字としてRAMの所定の領域(図3のプレイヤ手書き文字列1の領域またはプレイヤ手書き文字列2の領域)に記録される。
無線LANアンテナ6は、ゲーム装置1の内部の無線LANモジュールが送信データをキャリア周波数に変調した電磁波を送信し、電磁波を受信して無線LANモジュールに送る。
マイク7は、音声を入力するための入力装置であるが、本実施形態では、プレイヤが息を吹きかけることで生じる雑音を入力することにも使用されている。ホコリで見えなくされた文字列25を見えるようにしたり、回転する文字列25を止めるために、プレイヤがマイク7に息を吹きかけると、その入力雑音の音量によりホコリを減少させて文字列25が見えるようにしたり、文字列25の回転速度を遅くするなどの処置が行われる。
スピーカ8は、効果音や音声案内を出力するための出力装置である。
操作ボタン9は、プレイヤに押圧されることでプレイヤの指示をCPUに伝えるもので、電源の入/切を行うための電源スイッチや無線LANを使用するためのワイヤレススイッチ、ゲームの開始時に「ゲーム開始」を指令するための「START」ボタン、ゲーム開始時にゲームの動作モードなどを選択するための「SELECT」ボタン、メニュー画面を表示させるためのメニューボタン、メニュー画面や選択画面における選択のための十字キーやABXYボタンなどがある。
図6は、ゲーム装置1の内部構成を示すブロック図である。
ゲーム装置1は、CPU101、描画データ生成プロセッサ102、RAM103、ROM(Read Only Memory)104、描画処理プロセッサ105、VRAM106、D/A(Digital-Analog)コンバータ107、音声処理プロセッサ108、アンプ109、音声入力処理部110、入力信号処理部111、操作部112、ドライバ113、無線LANモジュール114及びバス115を含んでいる。
ゲーム装置1では、ゲームプログラム及びゲームデータ(背景の画像データ、辞書データ、効果音やBGMなどの音声データ、文字や記号によるメッセージデータなど)が記録されたゲームメディア11をゲーム装置1に設けられたメディア装着部(図示省略)に装着し、ドライバ113によってゲームメディア11内のゲームプログラム及びゲームデータをRAM103に読み込み、CPU101によってゲームプログラムを実行することによりプレイヤにゲーム内容を楽しませることができる。プレイヤは操作部112に設けられた操作ボタン9を操作することによりゲームを進行させることができる。
CPU101、描画データ生成プロセッサ102、RAM103、ROM104、描画処理プロセッサ105、音声処理プロセッサ108、音声入力処理部110、入力信号処理部111、操作部112、ドライバ113及び無線LANモジュール114はバス115によって相互にデータ伝送可能に接続されている。
CPU101は、上記のようにドライバ113によってゲームメディア11からRAM103に読み込まれるゲームプログラムを実行することより、ゲーム進行を統括的に制御する。より具体的には、操作部112からプレイヤの操作信号が入力されたり、入力信号処理部111から操作信号(図1のOKボタンアイコン34や全消しボタンアイコン33に該当する位置の検出信号)や手書き文字情報が入力されたり、音声入力処理部110から音声信号が入力されると、CPU101は、ゲームプログラムに従ってこれらの信号に対する所定のゲーム進行処理を行い、その処理結果を各表示装置2、3にゲーム進行を示す画像(以下、「ゲーム画像」という。)として表示するとともに、スピーカ8から音響によって出力する。このゲーム進行処理には、例えば、メニュー画面を各表示装置2、3に表示する場合も含まれている。
各表示装置2、3に表示するためのゲーム画像の描画処理は、主として描画処理プロセッサ105によって行われる。CPU101は、操作部112、入力信号処理部111および音声入力処理部110からの信号に基づき、各表示装置2、3に表示すべきゲーム画像の内容を決定し、その内容に対して必要な描画データを描画データ生成プロセッサ102に生成させ、その描画データを描画処理プロセッサ105に転送して描画処理を行わせる。
また、CPU101は、スピーカ8から出力すべき効果音若しくはBGMの音響内容を決定し、音声処理プロセッサ108にその音響内容に対応した音声データをRAM103から読み出して所定の音声信号処理を施させ、その音声データに基づく音響をスピーカ8から出力させる。
描画データ生成プロセッサ102は、描画処理に必要な各種の演算処理を行うものである。CPU101は、各表示画面2a、3aに表示すべきゲーム画像を決定し、そのゲーム画像の描画に必要な画像データ(背景のデータやプレイヤおよび対戦相手の手書き文字列データ、その手書き文字を活字にした活字文字列データなど)をRAM103から読み出して描画データ生成プロセッサ102に供給する。また、CPU101は、操作部112、入力信号処理部111および音声入力処理部110から入力される操作情報を描画データ生成プロセッサ102に供給する。
描画データ生成プロセッサ102は、CPU101から供給される画像データと操作情報に基づいて、描画に必要なデータ(例えば、背景のデータや文字列の位置のデータなど)を演算し、その演算結果を描画処理プロセッサ105に供給する。
RAM103は、ドライバ113によってゲームメディア11から読み込まれたゲームプログラム及びゲームデータを格納するエリアと、CPU101がゲームプログラムを処理するためのワークエリアを提供するものである。RAM103には、ゲームの進行に応じて必要なゲームプログラムとゲームデータとがゲームメディア11から読み込まれて記憶される。また、RAM103のワークエリアの所定領域には、プレイヤがタッチパネル4に手書きしている文字列のデータと無線通信により受信した対戦相手の手書き文字列のデータとが手書き途中も含めて記録される(図3のプレイヤ手書き文字列1,2の領域及び対戦相手手書き文字列1,2の領域)。また、RAM103のワークエリアの所定領域には、プレイヤ及び対戦相手がラリーの始めから入力した文字列のデータが各10個ずつ記録される。RAM103のワークエリアの所定領域とは、図3のプレイヤ入力済文字列1〜10の各領域及び対戦相手入力済文字列1〜10の各領域である。
ゲームプログラムには、CPU101に実行させるための処理手順や各種命令等が記述されており、その中には、操作部112からの操作信号に応じてゲーム画面や音声等を制御するための内容が含まれている。ゲームデータには、例えば、背景を構成する画像データやメニュー画面等を表示させるための画像データなどが含まれ、入力された文字列が正しい単語か否かを判断するための辞書データや、BGMや各種の効果音として用いられる音声データも含まれている。
辞書データは、通常使用される2〜6文字の普通名詞からなる。本実施形態で入力対象としているのは2〜6文字の普通名詞であり、それ以外の単語を記憶しておく必要が無いからである。7文字以上の単語や、普通名詞以外の単語(固有名詞や動詞、形容詞など)も入力対象とするのであれば、それらの単語も記憶する必要がある。また、ゲームメディア11やRAM103の記憶容量の制限があり、特殊な専門用語や通常使われない単語はしりとりでも使われないので、辞書データとして記憶していない。
ROM104には、ディスクローディング機能などのゲーム装置1の基本的機能やゲームメディア11に記憶されたゲームプログラム及びゲームデータを読み出す手順などを示す基本プログラムが記憶されている。CPU101は、メディア装着部にゲームメディア11が装着されると、ROM104の基本プログラムに従ってドライバ113を動作させ、ゲームメディア11からゲームプログラム及びゲームデータをRAM103に読み込み、ゲーム開始状態に設定する。
描画処理プロセッサ105は、1/60秒毎にゲーム画像を生成し、各表示画面2a、3aに表示させるものである。描画処理プロセッサ105は、CPU101からの描画指令に基づき、描画データ生成プロセッサ102から供給されるデータを用いて、第1表示画面2aに表示させるゲーム画像と第2表示画面3aに表示させるゲーム画像とを1/60秒ごとに交互に作成する。描画処理プロセッサ105にはゲーム画像の作成作業をするためのVRAM106が接続されている。
VRAM106には、各表示画面2a、3aに表示される各コマの画像データを格納するためのバッファ領域(以下、「スクリーンバッファ」という。)が2個設けられている。スクリーンバッファA106−1は第1表示画面2aに表示されるコマの画像データを、スクリーンバッファB106−2は第2表示画面3aに表示されるコマの画像データを格納する。これらのスクリーンバッファは同一のメモリ構造及びメモリ容量を有している。また、図示はしていないが、VRAM106はこれらのスクリーンバッファに表示用の画像を作成するための作業領域を有している。
D/Aコンバータ107は、VRAM106から出力される画像データをアナログ信号に変換して各表示装置2、3に出力するものである。D/Aコンバータ107にはスクリーンバッファA106−1からの画像データとスクリーンバッファB106−2からの画像データを切り換えるスイッチ回路が設けられ、このスイッチ回路の切り換えは描画処理プロセッサ105によって制御される。
すなわち、描画処理プロセッサ105は、スクリーンバッファA106−1を用いて第1表示画面2aの表示処理を行っている間に、作業領域を用いてスクリーンバッファB106−2に次の第2表示画面3aに表示されるコマの画像データを作成し、スクリーンバッファB106−2を用いて第2表示画面3aの表示処理を行っている間に、作業領域を用いてスクリーンバッファA106−1に次の第1表示画面2aに表示されるコマの画像データを作成するという切り替えを1/60秒ごとに行っている。
音声処理プロセッサ108は、CPU101からの音声指令に基づき、RAM103から効果音もしくはBGMの音声データを読み出し、所要の加工処理とD/A変換処理をした後、アンプ109に出力する。アンプ109は、音声処理プロセッサ108から入力される音声信号を所定の増幅度で増幅した後、スピーカ8に出力する。
音声入力処理部110は、マイク7から入力された音声入力にA/D変換処理をして、音声信号をCPU101に入力する。
入力信号処理部111は、タッチパネル4から入力されるタッチ情報(センサである抵抗やコンデンサの変化情報)に基づいてパネル面(第2表示画面3a)におけるタッチ位置を算出し、その算出結果をCPU101に入力する。
パネル面には、図7(a)に示すように、左上隅を原点0として下方向にy軸、右方向にx軸が設定されており、パネル面に設けられた多数の微小抵抗または微小コンデンサなどのセンサにはセンサ位置(x,y)が定義されている。例えばプレイヤがタッチパネル4のP点の部分をタッチペンで触れた場合、同図(b)に示すように、接触領域には複数のセンサが含まれ、これらのセンサから接触があったことを示す信号が入力信号処理部111に入力される。
入力信号処理部111は、入力信号から接触のあったセンサの各座標(x,y)を算出し、これらの座標から接触領域の中心位置を算出し、その算出結果を接触位置の情報としてCPU101に入力する。例えば、接触のあった領域のx軸方向の範囲がxmin〜xmax、y軸方向の範囲がymin〜ymaxである場合、入力信号処理部111は((xmin+xmax)/2,(ymin+ymax)/2)を接触位置Pの座標としてCPU101に入力する。
本実施形態においては、CPU101は、図7の入力画面4a、全消しボタンアイコン33、OKボタンアイコン34に該当する位置以外の入力は無視し、入力画面4aに該当する位置が入力された場合は、手書き文字入力と判断してRAM103の該当する領域に記録する。全消しボタンアイコン33に該当する位置が入力された場合は、手書き文字を消すために、RAM103の該当する領域をクリアする。OKボタンアイコン34に該当する位置が入力された場合は、手書き文字列入力が完了したと判断して、手書き文字列の認識としりとりルールに該当するかの判断を行う。
なお、入力画面4aは、タッチパネル4(図1の画面表示においては第2表示画面3aに相当する)の中央部下寄りに位置し、横に並んだ6個のマス目からなる。各マス目にひらがな又はカタカナを1文字ずつ手書き入力するようになっており、6文字以下の単語を入力できるようになっている。各マス目は文字を手書き入力するためにある程度の大きさを必要とする。そのマス目を画面上に横に並べたときに1列で収まり、入力位置がタッチパネル4の端の方に位置しないようにするために、また、入力できる単語の文字数が制限されすぎないようにするため、マス目を6個とした。入力文字数を6文字以内としても、入力できる単語を制限しすぎることにはならないが、最大入力文字数を7文字以上にする必要があれば、マス目を少し小さくしたり、第2表示画面3aの他の表示物と重ならない程度に入力画面4aをタッチパネル4の端の方に広げてもよい。また、対戦相手の入力文字列25の解読の邪魔になりにくいように、入力画面4aはタッチパネル4の下方に横向きに1列のみ設けられている。
なお、本実施形態では、タッチパネル4が第2表示画面3aの表面を被うように設けられている例を説明しているが、タッチパネルが表示画面とは別に設けられている場合でも適用できる。例えば、テレビを表示装置として使用するゲーム装置の場合は、表示画面にタッチパネルを設けることができないので、タッチパネルをゲーム装置本体に設けるか、タッチパネルをゲーム装置に接続することになる。この場合は、表示画面を見ながらタッチパネルに手書き入力することになり操作性は悪くなるが、入力領域が大きくなるので、入力する文字を大きく書くことができるし、最大入力文字数を増やすこともできる。
操作部112は、CPU101に動作指令を入力するものである。操作部112には、各種操作ボタン9が含まれる。
ドライバ113は、メディア装着部に装着されたゲームメディア11から当該ゲームメディア11に記録されたゲームプログラムやゲームデータなどのデータを読み取るものである。
無線LANモジュール114は、例えば通信規格IEEE802.11b(使用周波数帯2.4GHz、通信速度11Mbps)に準拠した無線LANによって他のゲーム装置1とデータ通信を行うための通信モジュールである。無線LANモジュール114は、他のゲーム装置1の無線LANモジュール114との間で直接、データ通信を行い、RAM103の所定の領域に記録されている手書き入力文字列データやOKボタン入力信号などのゲーム情報を相互に送受する機能を果す。
次に、本願発明のゲーム装置で実行されるゲーム「しりとりテニス」での制御について、図8〜図11に示すフローチャートを参照して説明する。
図8は、「しりとりテニス」での基本処理の制御を示すメインフローチャートである。
ゲーム装置1のメディア装着部にゲームメディア11が装着され、ゲーム装置1の電源が投入されると、各表示画面2a,3aにデモ画像が表示され、無線対戦か1名プレイかの選択入力待ちとなる。無線対戦が選択されると、対戦相手のゲーム装置1との間で無線通信が確立され、ゲーム開始処理が行われる(S1)。ゲーム開始処理では、プレイヤと対戦相手のどちらが先に入力を開始するかの「サーブ権」がランダムに決定され、両者の体力ポイントなどの初期化が行われ、スタート画像が表示される。
なお、サーブ権はランダムに決定されるのではなく、出題される単語に対して先に解答を入力できたプレイヤが最初のサーブ権を得て、その入力した解答がそのまま最初のサーブとして扱われるようにしてもよい。
次に、ラリー開始処理が行われる(S2)。ラリー開始処理では、ダブルリターンが行われたかを判別するためのダブルリターンフラグが“OFF”に初期化され、初めてのラリーでない場合はサーブ権が入れ替わる。ダブルリターンフラグは、このラリーにおいてダブルリターンが既に行われたか否かを表すためのフラグであり、“ON”のときは、既にダブルリターンが行われたことを示す。次に、プレイヤにサーブ権があるか否か判別され(S3)、サーブ権がある場合(S3:YES)は入力待ち処理(S4)が行われ、サーブ権がない場合(S3:NO)は、受信待ち処理(S5)が行われる。
入力待ち処理では、最初の手書き文字の入力が促され、入力された手書き文字が認識されて条件に該当することが判断されるまで入力が受け付けられる。入力が完了されると、入力された文字列の文字数に応じて、変数m1の値が入力され、変数Y1がY0に初期化される。変数Y1は、入力又は受信された第1文字列25の仮想空間上の位置のY座標である。プレイヤにサーブ権がある場合、仮想空間上の文字列25の最初の位置は、プレイヤのサーブ位置となり、変数Y1の初期値として、プレイヤのサーブ位置のY座標Y0(本実施形態ではY0=496)が入力される。変数m1は、第1文字列25の移動方向と移動速度を表し、変数Y1に加算されていく。すなわち、m1<0のとき文字列25の位置のY座標である変数Y1は減少するので、文字列25は上昇していき、m1>0のとき変数Y1は増加するので、文字列25は下降していく。また、m1の絶対値が大きくなると、文字列25の移動距離は大きくなる。入力待ち処理では、入力された文字列の文字数に比例した値のマイナス値が入力される。本実施形態では、入力された文字列の文字数が3又は4文字のときはm1=−2が入力され、1又は2文字、5又は6文字のときはそれぞれm1=−1、−3が入力される。なお、入力待ち処理で必ずしも文字数に比例した値のマイナス値が入力される必要はなく、文字数に関係なく一定のマイナス値が入力される構成であってもよい。
受信待ち処理では、対戦相手の入力待ちであることが報知され、文字列が受信されるのを待つ。文字列が受信されると、受信された文字列の文字数に応じて、変数m1の値が入力され、変数Y1が“0”に初期化される。プレイヤにサーブ権がない場合(すなわち、対戦相手にサーブ権がある場合)、仮想空間上の文字列25の最初の位置は、対戦相手のサーブ位置となり、変数Y1の初期値として、対戦相手のサーブ位置のY座標“0”が入力される。また、変数m1には受信した文字列の文字数に比例したプラス値が入力される。
次に、変数Y1に変数m1が加算される(S6)。文字列25の位置のY座標である変数Y1が文字列25の移動方向と移動速度が反映された変数m1を加算されることにより、文字列25の位置を移動させるようにY座標が更新される。なお、変数Y1の取り得る値の範囲は0≦Y1≦Y0なので、m1の加算によりY1<0となる場合はY1=0とし、Y1>Y0となる場合はY1=Y0とする。また、ダブルリターンフラグが“ON”の場合、変数Y2に変数m2が加算される。変数Y2は、ダブルリターンで発生した文字列25およびその文字列25に対してレシーブをした後の文字列25(第2文字列)の仮想空間上の位置のY座標である。ダブルリターンにより第2文字列が発生したときに、Y2は初期化されている。変数m2は、第2文字列25の移動方向と移動速度を表し、変数Y2に加算されていく。なお、変数Y2の取り得る値の範囲は0≦Y2≦Y0なので、m2の加算によりY2<0となる場合はY2=0とし、Y2>Y0となる場合はY2=Y0とする。変数m2もダブルリターンにより第2文字列が発生したときに、初期化されている。
この更新された変数Y1の値を元に、画面表示処理が行われる(S7)。画面表示処理では、RAM103に記録されている背景データ等のゲームデータ、手書き文字列データ及び入力済文字列データ(図3参照)のうち画面表示に必要なデータ、算出された第1文字列の位置データを用いて、各表示画面2a,3aに表示される画像が作成され、表示される。なお、ダブルリターンフラグが“ON”の場合、第2文字列も表示される。
次に、変数Y1の値がY1>0であるか否かが判別される(S8)。Y1>0の場合(S8:YES)、Y1<Y0であるか否かが判別される(S9)。これは、第1文字列25がデッドライン21,31を超えていないかを判別している。0<Y1<Y0の場合、第1文字列25はデッドライン21,31を超えていないので、次のステップS10に移る。なお、ダブルリターンフラグが“ON”の場合、S8においてY2>0であるか否か、S9においてY2<Y0であるか否かも判別され、第2文字列25がデッドライン21,31を超えていないかも判別される。
ステップS10では、プレイヤによりOKボタンが押されたか否かが判別される。押されていない場合(S10:NO)、対戦相手のゲーム装置1から入力文字列を受信したか否かが判別される(S11)。受信していない場合は(S11:NO)、ステップS6に戻り、ステップS6〜11を繰り返す。
ステップS11において、対戦相手のゲーム装置1から入力文字列を受信した場合(S11:YES)、文字列受信処理が行われる(S16)。文字列受信処理が終了するとステップS6に戻る。文字列受信処理は、対戦相手のレシーブについての処理であり、その制御を示すフローチャートは後述する。なお、文字列受信処理中は、基本処理が中断されるため、新たな文字列の受信やプレイヤによる文字列の入力(OKボタンの入力)を受けることができない。処理中の文字列受信処理が終了して基本処理が再開したときに、新たな文字列入力による文字列受信処理やプレイヤの文字列入力による文字列チェック処理が開始される。なお、文字列受信処理中も文字列25の移動や画面表示は更新されている。
ステップS10において、プレイヤによりOKボタンが押された場合(S10:YES)、文字列チェック処理が行われる(S17)。文字列チェック処理は、プレイヤにより手書き入力された文字列が条件に該当しているかを検証して、条件に該当している場合はチェックフラグを“ON”にする。文字列チェック処理の制御を示すフローチャートは後述する。文字列チェック処理が終了すると、その結果であるチェックフラグが“ON”であるか否かが判別される(S18)。チェックフラグが“ON”の場合(S18:YES)、入力文字列が条件に該当しプレイヤがレシーブできるので、プレイヤのレシーブ処理である攻撃処理が行われ(S19)、ステップ6に戻る。攻撃処理の制御を示すフローチャートは後述する。チェックフラグが“OFF”の場合(S18:NO)、入力文字列が条件に該当せずプレイヤはレシーブできないので、その旨を報知し、再入力を促した上、ステップS6に戻る。
なお、攻撃処理中は、基本処理が中断されるため、新たな文字列の受信やプレイヤによる文字列の入力(OKボタンの入力)を受けることができない。処理中の攻撃処理が終了して基本処理が再開したときに、新たな文字列入力による文字列受信処理やプレイヤの文字列入力による文字列チェック処理が開始される。なお、攻撃処理中も文字列25の移動や画面表示は更新されている。
ステップS9において、変数Yの値がY1≧Y0である場合(S9:NO)、第1文字列25はプレイヤのデッドライン31を超えたので、このラリーはプレイヤの負けとなる。なお、ダブルリターンフラグが“ON”の場合でY2≧Y0のときは、第2文字列25がプレイヤのデッドライン31を超えたので、このときもプレイヤの負けとなる。プレイヤがラリーに負けると、プレイヤの体力ゲージ32の体力ポイントが減少され、ラリーに負けた旨が報知される(S20)。次にプレイヤの体力ポイントが0以下になったか否かが判別され(S21)、体力ポイントが0以下になっていた場合(S21:YES)、プレイヤは試合に負けたとして敗北処理が行われ(S22)、基本処理は終了される。敗北処理では、試合に負けた旨の報知が行われる。体力ポイントが0より大きい場合(S21:NO)、試合は継続し、新しいラリーを開始するためにステップS2に戻る。
ステップS8において、変数Yの値がY1≦0である場合(S8:NO)、第1文字列25は対戦相手のデッドライン21を超えたので、このラリーはプレイヤの勝ちとなる。なお、ダブルリターンフラグが“ON”の場合でY2≦0のときは、第2文字列25が対戦相手のデッドライン21を超えたので、このときもプレイヤの勝ちとなる。プレイヤがラリーに勝つと、対戦相手の体力ゲージ22の体力ポイントが減少され、ラリーに勝った旨が報知される(S23)。次に対戦相手の体力ポイントが0以下になったか否かが判別され(S24)、体力ポイントが0以下になっていた場合(S24:YES)、プレイヤは試合に勝ったとして勝利処理が行われ(S25)、基本処理は終了される。勝利処理では、試合に勝った旨の報知が行われる。体力ポイントが0より大きい場合(S24:NO)、試合は継続し、新しいラリーを開始するためにステップS2に戻る。
図9は、「しりとりテニス」での文字列チェック処理の制御を示すフローチャートである。
まず、チェックフラグが“OFF”に初期化され(S31)、入力された手書き文字列の文字認識が行われて、すべての文字が認識されたか否かが判別される(S32)。この文字認識は、先述のように、タッチペン10でタッチパネル4に手書きされ、RAM103の所定領域(図3において、第1文字列に対する解答の場合はプレイヤ手書き文字列1、第2文字列に対する解答の場合はプレイヤ手書き文字列2の領域)に記録された文字列に対して行われる。入力された手書き文字列が認識された場合(S32:YES)、この認識された文字列(以下、「認識済文字列」という。)の最後の文字が“ん”であるか否かが判別される(S33)。最後の文字が“ん”でない場合(S33:NO)、認識済文字列が辞書データに有るか否かが判別される(S34)。この判別は、認識済文字列とRAM103に記録されている辞書データとの比較により行われる。認識済文字列が辞書データに有る場合(S34:YES)、認識済文字列の最初の文字が対戦相手の入力文字列の最後の文字と一致するか否かが判別される(S35)。この判別は、図3のプレイヤ手書き文字列1の領域の認識済文字列の場合は図3の対戦相手入力済文字列1の領域に記録されている文字列との比較、図3のプレイヤ手書き文字列2の領域の認識済文字列の場合は図3の対戦相手入力済文字列2の領域に記録されている文字列との比較、により行われる。一致する場合(S35:YES)、認識済文字列が今回のラリーにおいて既出か否かが判別される(S36)。この判別は、認識済文字列とRAM103の所定領域(図3のプレイヤ入力済文字列1〜10及び対戦相手入力済文字列1〜10の各領域)に記録されている各入力済文字列との比較により行う。なお、本実施形態において入力済文字列の格納領域は合計20文字列分なので、厳密には認識済文字列が既出か否かは判別できないが、ラリーは文字列が合計20個以上入力される前に決着されることが多いので問題とはならない。
認識済文字列が既出でない場合(S36:NO)、プレイヤにより手書き入力された文字列が条件に該当しているとして、認識済文字列はRAM103の所定領域(図3のプレイヤ入力済文字列1の領域)に記録され、チェックフラグが“ON”にされ(S39)、処理が終了する。
入力された手書き文字列が認識されない場合(S32:NO)、認識済文字列が辞書データに無い場合(S34:NO)、認識済文字列の最初の文字が対戦相手の最新の入力文字列の最後の文字と一致しない場合(S35:NO)、認識済文字列が既出の場合(S36:YES)、プレイヤにより手書き入力された文字列が条件に該当しないので、チェックフラグは変更されず、そのまま処理は終了される。認識済文字列の最後の文字が“ん”の場合(S33:YES)、この試合はプレイヤの負けとなり、基本処理のフローチャート(図8参照)のステップS22に進み、敗北処理が行われて基本処理が終了される。
図10は、「しりとりテニス」での攻撃処理の制御を示すフローチャートである。
最初に、ステップS41〜S45において、入力された文字列が、第1文字列に対する解答か、第2文字列に対する解答かが判断される。まず、ダブルリターンフラグが“ON”であるか否かが判別される(S41)。ダブルリターンフラグが“OFF”の場合(S41:NO)、ダブルリターンが行われていないので、入力された文字列は第1文字列に対する解答であると判断される。従って、この場合には、m1<0であるかが判断されることで、第1文字列25が上昇中か下降中かが判断され、m1<0である場合には第1文字列25が上昇中でありプレイヤがレシーブする番ではないので本フローチャートの処理は終了される。なお、変数m1が0になると文字列25が移動しない状態になるので、0にならないように設定されている。一方、m1<0ではない場合には第1文字列25が下降中でありプレイヤがレシーブする番であるため、ステップS46〜S54の処理[プレイヤ第1文字列レシーブ処理]が行われる。ダブルリターンフラグが“ON”の場合(S41:YES)、ダブルリターンが行われた後であり、仮想空間上には2つの文字列25が存在する。
両文字列25が上昇中か下降中かを判断するために、m1<0かつm2<0であるか否かが判別される(S42)。m1<0かつm2<0の場合(S42:YES)、両文字列25とも上昇中であり、プレイヤはレシーブできないので、攻撃処理は終了される。m1≧0またはm2≧0の場合(S42:NO)、少なくともどちらかの文字列25が下降中である。なお、変数m1,m2が0になると文字列25が移動しない状態になるので、0にならないように設定されている。このとき、m1<0であるか否かが判別され(S43)、m1<0の場合(S43:YES)、第2文字列25だけが下降中なので、入力された文字列は第2文字列に対する解答であると判断され、ステップS55〜S60の処理[プレイヤ第2文字列レシーブ処理]が行われる。
ステップS43において、m1≧0の場合(S43:NO)、m2<0であるか否かが判別される(S44)。m2<0の場合(S44:YES)、第1文字列25だけが下降中なので、入力された文字列は第1文字列に対する解答であると判断され、S46〜S54の処理[プレイヤ第1文字列レシーブ処理]が行われる。m2≧0の場合(S44:NO)、両文字列25とも下降中なので、どちらの文字列25がより下方に位置するかを判断するために、Y1≧Y2であるか否かが判別される(S45)。
ステップ45において、Y1≧Y2である場合(S45:YES)、第1文字列25の方が下方に位置するので、入力された文字列は第1文字列に対する解答であると判断され、S46〜S54の処理[プレイヤ第1文字列レシーブ処理]が行われる。Y1<Y2である場合(S45:NO)、第1文字列25の方が上方に位置するので、入力された文字列は第2文字列に対する解答であると判断され、ステップS55〜S60の処理[プレイヤ第2文字列レシーブ処理]が行われる。なお、Y1=Y2すなわち第1文字列25と第2文字列25の位置が同じとなることは滅多に無いが、このときは初めにラリーが行われていた第1文字列に対しての解答だと判断することにしたが、この限りではない。例えばm1とm2の大きさから各文字列25の移動速度を判断して、より早くデッドライン21,31に達する移動速度の速い方の文字列25に対する解答だと判断するようにしてもよい。
[プレイヤ第1文字列レシーブ処理]
入力された文字列が第1文字列に対する解答であると判断された場合、RAM103の所定領域(図3のプレイヤ入力済文字列1の領域)に記録されている文字列(プレイヤが手書き入力し、文字列チェック処理で条件に該当していると判断され活字化された文字列)が、無線通信により対戦相手のゲーム装置1に送信される(S46)。なお、プレイヤが手書き入力した文字列は、手書き入力中、無線通信により随時対戦相手のゲーム装置1に送信されており、対戦相手のゲーム装置1のRAM103の所定領域(図3の対戦相手手書き文字列1の領域)に記録されている。
次に、変数Y’がY0に初期化される(S47)。変数Y’は、レシーブされる文字列25(文字列25同士が衝突したときに消去される方の文字列25)に向かっていくレシーブする文字列25(文字列25同士が衝突したときに消去されない方の文字列25)の仮想画面上のY座標である。また、[プレイヤ第1文字列レシーブ処理]において、変数Y1はレシーブされる第1文字列25のY座標であり、変数Y2は移動表示される第2文字列25のY座標である。なお、レシーブされる文字列25は、攻撃処理において対戦相手が入力した文字列25であり、図4(a)においては文字列“りんご”に該当する。また、レシーブする文字列25は、攻撃処理においてはプレイヤが入力した文字列25であり、図4(a)においては文字列“ごりら”が該当する。レシーブする第1文字列25はプレイヤのサーブ位置から移動を開始するので、変数Y’にはプレイヤのサーブ位置のY座標Y0が初期値として入力される。
次に、Y1がY’以上か否かが判別され(S48)、Y1がY’より小さい場合(S48:NO)、Y’から10・m1が減算され、Y1にm1が加算される(S49)。なお、ダブルリターンフラグが“ON”であり、第2文字列25が表示されている場合、Y2にm2が加算される。このとき、変数Y2の取り得る値の範囲は0≦Y2≦Y0なので、m2の加算によりY2<0となる場合はY2=0とし、Y2>Y0となる場合はY2=Y0とする。Y2=0又はY2=Y0となった場合は、攻撃処理終了後、基本処理に戻って、ステップS8又はS9で第2文字列25がデッドライン21,31を超えたことが判別される。なお、Y1はY1≧Y’となった時点でステップS48の判別によりステップS51に進んでいるので、Y1>Y0となることはない。
続いて画面表示処理が行われ(S50)、ステップS48に戻る。すなわち、Y1<Y’の間、Y’を減少し、Y1を増加して画面表示処理を行うことを繰り返す。これは、対戦相手が入力して下降してくる第1文字列25に、プレイヤの入力した文字列25が速い速度(本実施形態の場合、約10倍の速度)で上昇して重なるまでの映像を表現する。なお、画面表示処理は、図8の基本処理のフローチャートのステップS7と同じ処理である。
Y1がY’以上の場合(S48:YES)、文字列入れ替え処理が行われる(S51)。この処理では、対戦相手の入力した第1文字列25をプレイヤの入力した第1文字列25に入れ替える。すなわち、Y座標をY1で表している第1文字列25を、図3の対戦相手手書き文字列1(第2表示画面3aに表示されていた場合は対戦相手入力済文字列)からプレイヤ手書き文字列1に変更し、変数m1の値をプレイヤ手書き文字列1の文字数に比例した値のマイナス値に変更する。
次に、Y1がファンタジーゾーン5のY座標(本実施形態では208≦Y≦288)に該当するかが判別され(S52)、該当する場合(S52:YES)、ダブルリターンフラグが“ON”であるか否かが判別される(S53)。ダブルリターンフラグが“OFF”の場合(S53:NO)、ダブルリターン処理が行われ(S54)、攻撃処理は終了する。ダブルリターン処理では、ダブルリターンフラグが“ON”にされ、第2文字列が生成されてRAM103に記録され、無線通信により対戦相手のゲーム装置1に送信される。以後はラリーが終了するまで、第1文字列25、第2文字列25それぞれに対してしりとりラリーが行われる。すなわち、変数Y2、m2が設定され、次のステップS7の画像表示処理で第1文字列25、第2文字列25が表示される。ダブルリターンフラグが“ON”の場合(S53:YES)、または、Y1がファンタジーゾーン5のY座標に該当しない場合(S52:NO)、ダブルリターン処理は行われず、攻撃処理は終了される。
ダブルリターン処理で生成される第2文字列は、例えば次のように生成される。すなわち、対戦相手の最新の入力文字列の最後の文字が特定される。そして、RAM103に記憶されている辞書データが特定した最後の文字で検索されて、検索された単語の中の1の単語がランダムに選択される。なお、このとき、プレイヤが入力した単語は除かれる。この選択された単語で第2文字列が生成される。なお、対戦相手が入力した最新の文字列の最後の文字の特定は、図3の対戦相手入力済文字列1の領域に記憶されている文字列を参照することで行われる。なお、第2文字列の生成方法はこれに限定されず、新たな単語の入力をするように表示画面上でプレイヤに促し、プレイヤが手書き入力した文字列がしりとりの条件に合致することを条件としてこの文字列がダブルリターンの文字列として対戦相手のゲーム装置1に送信されてもよい。
[プレイヤ第2文字列レシーブ処理]
入力された文字列が第2文字列に対する解答であると判断された場合、RAM103の所定領域(図3のプレイヤ入力済文字列2の領域)に記録されている文字列(プレイヤが手書き入力し、文字列チェック処理で条件に該当していると判断され活字化された文字列)が、無線通信により対戦相手のゲーム装置1に送信される(S55)。なお、プレイヤが手書き入力した文字列は、手書き入力中、無線通信により随時対戦相手のゲーム装置1に送信されており、対戦相手のゲーム装置1のRAM103の所定領域(図3の対戦相手手書き文字列2の領域)に記録されている。
次に、変数Y’がY0に初期化される(S56)。変数Y’は、上述したようにレシーブする文字列25のY座標であるが、ここではレシーブされる第2文字列25に向かっていくレシーブする文字列25の仮想画面上のY座標となる。また、[プレイヤ第2文字列レシーブ処理]において、変数Y2はレシーブされる第2文字列25のY座標であり、変数Y1は移動表示される第1文字列25のY座標である。レシーブする文字列25はプレイヤのサーブ位置から移動を開始するので、変数Y’にはプレイヤのサーブ位置のY座標Y0が初期値として入力される。
次に、Y2がY’以上か否かが判別され(S57)、Y2がY’より小さい場合(S57:NO)、Y’から10・m2が減算され、Y1にm1が加算され、Y2にm2が加算される(S58)。このとき、変数Y1の取り得る値の範囲は0≦Y1≦Y0なので、m1の加算によりY1<0となる場合はY1=0とし、Y1>Y0となる場合はY1=Y0とする。Y1=0、Y1=Y0となった場合は、攻撃処理終了後、基本処理に戻って、ステップS8又はS9で第2文字列25がデッドライン21,31を超えたことが判別される。なお、Y2はY2≧Y’となった時点でステップS57の判別によりステップS60に進んでいるので、Y2>Y0となることはない。
続いて画面表示処理が行われ(S59)、ステップS57に戻る。すなわち、Y2<Y’の間、Y’を減少し、Y1、Y2を増加して画面表示処理を行うことを繰り返す。これは、対戦相手が入力して下降してくる第2文字列25に、プレイヤの入力した第2文字列25が速い速度(本実施形態の場合、約10倍の速度)で上昇して重なるまでの映像を表現する。なお、画面表示処理は、図8の基本処理のフローチャートのステップS7と同じ処理である。
Y2がY’以上の場合(S57:YES)、文字列入れ替え処理が行われ(S60)、攻撃処理は終了される。文字列入れ替え処理では、対戦相手の入力した第2文字列25をプレイヤの入力した第2文字列25に入れ替える。すなわち、Y座標をY2で表している第2文字列25を、図3の対戦相手手書き文字列2(第2表示画面3aに表示されていた場合は対戦相手入力済文字列)からプレイヤ手書き文字列2に変更し、変数m2の値をプレイヤ手書き文字列2の文字数に比例した値のマイナス値に変更する。
なお、本実施形態の上記攻撃処理では、レシーブする第1文字列25と第2文字列25とが同時に画面上に表示されることはないが、レシーブする文字列25の移動速度はレシーブされる文字列25のおよそ10倍であり移動速度が速いため、[プレイヤ第1文字列レシーブ処理]の終了までにプレイヤが第2文字列25を入力することがほぼ不可能だからである。本実施形態では、第1文字列25の入力があったときにこの入力についてまず攻撃処理が実行され、この後に第2文字列25の入力があったときにこの入力について次の攻撃処理が実行される。なお、ラリーの途中で、第1文字列25と第2文字列25の順番が入れ替わって、先に第2文字列25が下降してくる場合も有るが、その場合は、第2文字列25の入力についてまず攻撃処理が実行され、この後に第1文字列25の入力について次の攻撃処理が実行される。もっとも、レシーブする文字列25の移動速度次第では、レシーブする第1文字列25と第2文字列25とが同時に表示されるべき場合もあり、この場合にはレシーブする第1文字列25と第2文字列25とを同時に表示する構成であってもよい。
図11は、「しりとりテニス」での文字列受信処理の制御を示すフローチャートである。
最初に、ステップS71〜S75において、受信された文字列が、第1文字列に対する解答か、第2文字列に対する解答かが判断される。まず、ダブルリターンフラグが“ON”であるか否かが判別される(S71)。ダブルリターンフラグが“OFF”の場合(S71:NO)、ダブルリターンが行われていないので、受信された文字列は第1文字列に対する解答であると判断される。従って、この場合には、m1>0であるかが判断されることで、第1文字列25が上昇中か下降中かが判断され、m1>0である場合には第1文字列25が下降中であり対戦相手がレシーブする番ではないので本フローチャートの処理は終了される。なお、変数m1が0になると文字列25が移動しない状態になるので、0にならないように設定されている。一方、m1>0ではない場合には第1文字列25が上昇中であり対戦相手がレシーブする番であるため、ステップS76〜S84の処理[対戦相手第1文字列レシーブ処理]が行われる。ダブルリターンフラグが“ON”の場合(S71:YES)、ダブルリターンが行われた後であり、仮想空間上には2つの文字列25が存在する。
両文字列25が上昇中か下降中かを判断するために、m1>0かつm2>0であるか否かが判別される(S72)。m1>0かつm2>0の場合(S72:YES)、両文字列25とも下降中であり、対戦相手はレシーブできないので、攻撃処理は終了される。m1≦0またはm2≦0の場合(S72:NO)、どちらかの文字列25が上昇中である。なお、変数m1,m2が0になると文字列25が移動しない状態になるので、0にならないように設定されている。このとき、m1>0であるか否かが判別され(S73)、m1>0の場合(S73:YES)、第2文字列25だけが上昇中なので、受信された文字列は第2文字列に対する解答であると判断され、ステップS85〜S90の処理[対戦相手第2文字列レシーブ処理]が行われる。
ステップS73において、m1≦0の場合(S73:NO)、m2>0であるか否かが判別される(S74)。m2>0の場合(S74:YES)、第1文字列25だけが上昇中なので、受信された文字列は第1文字列に対する解答であると判断され、S76〜S84の処理[対戦相手第1文字列レシーブ処理]が行われる。m2≦0の場合(S74:NO)、両文字列25とも下降中なので、どちらの文字列25がより下方に位置するかを判断するために、Y1≦Y2であるか否かが判別される(S75)。
ステップ75において、Y1≦Y2である場合(S75:YES)、第1文字列25の方が上方に位置するので、受信された文字列は第1文字列に対する解答であると判断され、S76〜S84の処理[対戦相手第1文字列レシーブ処理]が行われる。Y1>Y2である場合(S75:NO)、第1文字列25の方が下方に位置するので、受信された文字列は第2文字列に対する解答であると判断され、ステップS85〜S90の処理[対戦相手第2文字列レシーブ処理]が行われる。なお、Y1=Y2すなわち第1文字列25と第2文字列25の位置が同じとなることは滅多に無いが、このときは初めにラリーが行われていた第1文字列25に対しての解答だと判断することにしたが、この限りではない。例えばm1とm2の大きさから各文字列25の移動速度を判断して、より早くデッドライン21,31に達する移動速度の速い方の文字列25に対する解答だと判断するようにしてもよい。
[対戦相手第1文字列レシーブ処理]
受信された文字列が第1文字列に対する解答であると判断された場合、受信された文字列がRAM103の所定の領域(図3の対戦相手入力済文字列1の領域)に記録される(S76)。なお、対戦相手が手書き入力した文字列は、手書き入力中、無線通信により随時プレイヤのゲーム装置1に送信されており、RAM103の所定領域(図3の対戦相手手書き文字列1の領域)に記録されている。
次に、変数Y’が0に初期化される(S77)。変数Y’は、攻撃処理と同様に、レシーブされる文字列25に向かっていくレシーブする文字列25の仮想画面上のY座標である。なお、文字列受信処理ではレシーブされる文字列25は、プレイヤが入力した文字列25であり、[対戦相手第1文字列レシーブ処理]においては、第1文字列25なので、変数Y1がレシーブされる第1文字列25のY座標である。変数Y2は移動表示される第2文字列25のY座標である。レシーブする文字列25は対戦相手が入力した文字列25である。文字列受信処理において、レシーブする文字列25は対戦相手のサーブ位置から移動を開始するので、変数Y’には対戦相手のサーブ位置のY座標“0”が初期値として入力される。
次に、Y1がY’以下か否かが判別され(S78)、Y1がY’より大きい場合(S78:NO)、Y’から10・m1が減算され、Y1にm1が加算される(S79)。なお、このときm1はマイナス値になっている。なお、ダブルリターンフラグが“ON”であり、第2文字列25が表示されている場合、Y2にm2が加算される。このとき、変数Y2の取り得る値の範囲は0≦Y2≦Y0なので、m2の加算によりY2<0となる場合はY2=0とし、Y2>Y0となる場合はY2=Y0とする。Y2=0、Y2=Y0となった場合は、攻撃処理終了後、基本処理に戻って、ステップS8又はS9で第2文字列25がデッドライン21,31を超えたことが判別される。なお、Y1はY1≦Y’となった時点でステップS78の判別によりステップS81に進んでいるので、Y1<0となることはない。
続いて画面表示処理が行われ(S80)、ステップS78に戻る。すなわち、Y1>Y’の間、Y’を増加し、Y1を減少して画面表示処理を行うことを繰り返す。これは、プレイヤが入力して上昇していく第1文字列25に、受信した文字列25が速い速度(本実施形態の場合、約10倍の速度)で下降して重なるまでの映像を表現する。なお、画面表示処理は、図8の基本処理のフローチャートのステップS7と同じ処理である。
Y1がY’以下の場合(S78:YES)、文字列入れ替え処理が行われる(S81)。この処理では、プレイヤの入力した第1文字列を受信した文字列に入れ替える。すなわち、Y座標をY1で表している第1文字列を、図3のプレイヤ手書き文字列1から対戦相手手書き文字列1(第2表示画面3aに表示されていた場合は対戦相手入力済文字列)に変更し、変数m1の値を対戦相手手書き文字列1の文字数に比例した値のプラス値に変更する。
次に、Y1がファンタジーゾーン5のY座標(本実施形態では208≦Y≦288)に該当するかが判別され(S82)、該当する場合(S82:YES)、ダブルリターンフラグが“ON”であるか否かが判別される(S83)。ダブルリターンフラグが“OFF”の場合(S83:NO)、ダブルリターン処理が行われ(S84)、攻撃処理は終了する。ダブルリターン処理では、ダブルリターンフラグが“ON”にされ、対戦相手のゲーム装置1から送信されてくる第2文字列がRAM103に記録される。以後はラリーが終了するまで、第1文字列、第2文字列それぞれに対してしりとりラリーが行われる。すなわち、変数Y2、m2が設定され、次のステップS7の画像表示処理で第1文字列、第2文字列が表示される。ダブルリターンフラグが“ON”の場合(S83:YES)、または、Y1がファンタジーゾーン5のY座標に該当しない場合(S82:NO)、ダブルリターン処理は行われず、文字列受信処理は終了される。
[対戦相手第2文字列レシーブ処理]
受信された文字列が第2文字列に対する解答であると判断された場合、受信された文字列がRAM103の所定の領域(図3の対戦相手入力済文字列2の領域)に記録される(S85)。なお、対戦相手が手書き入力した文字列は、手書き入力中、無線通信により随時プレイヤのゲーム装置1に送信されており、RAM103の所定領域(図3の対戦相手手書き文字列2の領域)に記録されている。
次に、変数Y’がY0に初期化される(S86)。変数Y’は、レシーブされる第2文字列25に向かっていくレシーブする文字列25の仮想画面上の位置のY座標である。なお、文字列受信処理ではレシーブされる文字列25は、プレイヤが入力した文字列25であり、[対戦相手第2文字列レシーブ処理]においては、第2文字列25なので、変数Y2がレシーブされる第2文字列25のY座標である。変数Y1は移動表示される第1文字列25のY座標である。レシーブする文字列25は対戦相手が入力した文字列25である。文字列受信処理において、レシーブする文字列25は対戦相手のサーブ位置から移動を開始するので、変数Y’には対戦相手のサーブ位置のY座標“0”が初期値として入力される。
次に、Y2がY’以下か否かが判別され(S87)、Y2がY’より大きい場合(S87:NO)、Y’から10・m2が減算され、Y1にm1が加算され、Y2にm2が加算される(S88)。このとき、変数Y1の取り得る値の範囲は0≦Y1≦Y0なので、m1の加算によりY1<0となる場合はY1=0とし、Y1>Y0となる場合はY1=Y0とする。Y1=0、Y1=Y0となった場合は、攻撃処理終了後、基本処理に戻って、ステップS8又はS9で第2文字列25がデッドライン21,31を超えたことが判別される。なお、Y2はY2≦Y’となった時点でステップS87の判別によりステップS90に進んでいるので、Y2<0となることはない。
続いて画面表示処理が行われ(S89)、ステップS87に戻る。すなわち、Y2>Y’の間、Y’を増加し、Y1、Y2を減少して画面表示処理を行うことを繰り返す。これは、プレイヤが入力して上昇していく第2文字列25に、受信した第2文字列25が速い速度(本実施形態の場合、約10倍の速度)で下降して重なるまでの映像を表現する。なお、画面表示処理は、図8の基本処理のフローチャートのステップS7と同じ処理である。
Y2がY’以下の場合(S87:YES)、文字列入れ替え処理が行われ(S90)、文字列受信処理は終了される。文字列入れ替え処理では、プレイヤの入力した第2文字列を受信した第2文字列に入れ替える。すなわち、Y座標をY2で表している第2文字列を、図3のプレイヤ手書き文字列2から対戦相手手書き文字列2(第2表示画面3aに表示されていた場合は対戦相手入力済文字列2)に変更し、変数m2の値を対戦相手手書き文字列2の文字数に比例した値のプラス値に変更する。
なお、本実施形態の上記文字列受信処理では、レシーブする第1文字列と第2文字列とが同時に画面上に表示されることはないが、レシーブする文字列の移動速度はレシーブされる文字列のおよそ10倍であり、移動速度が速いため、[対戦相手第1文字列レシーブ処理]の終了までに対戦相手が第2文字列を入力し送信することがほぼ不可能だからである。本実施形態では、第1文字列の受信があったときにこの入力についてまず文字列受信処理が実行され、この後に第2文字列の受信があったときにこの入力について次の文字列受信処理が実行される。なお、ラリーの途中で、第1文字列と第2文字列の順番が入れ替わって、先に第2文字列が上昇していく場合も有るが、その場合は、第2文字列の入力についてまず文字列受信処理が実行され、この後に第1文字列の入力について次の文字列受信処理が実行される。もっとも、レシーブする文字列の移動速度次第では、レシーブする第1文字列と第2文字列とが同時に表示されるべき場合もあり、この場合にはレシーブする第1文字列と第2文字列とを同時に表示する構成であってもよい。
また、本実施形態において、プレイヤのレシーブする文字列と対戦相手のレシーブする文字列とが同時に画面上に表示されることもなく、プレイヤによる入力と対戦相手による入力の受信のうち速い方が先に処理される。例えば、プレイヤの入力の方が早かった場合、文字列チェック処理に続いて攻撃処理が開始され、この攻撃処理が終了してから文字列受信処理が開始される。攻撃処理中は対戦相手の入力文字列の文字列受信処理を行なうことはできないので、対戦相手は不利になる。逆に、プレイヤの入力の方が遅かった場合、文字列受信処理が開始され、この文字列受信処理が終了してから文字列チェック処理に続いて攻撃処理が開始される。文字列受信処理中はプレイヤの入力文字列の攻撃処理を行なうことはできないので、プレイヤは不利になる。従って、プレイヤはより早く入力をしようとして、白熱したゲームを楽しむことができる。なお、攻撃処理と文字列受信処理を平行して同時に処理できるようにして、プレイヤのレシーブする文字列と対戦相手のレシーブする文字列とを同時に表示する構成としてもよい。
上記のように、「しりとりテニス」において、プレイヤが相手の入力した単語に対してしりとりの解答となる単語を入力し、これらの単語の文字列をゲーム装置の2個のゲーム画面の間のファンタジーゾーンで衝突させることができたときは、プレイヤの解答とは別の解答である単語が生成され、相手プレイヤはこの生成された単語とプレイヤが入力した単語の両方に対してしりとりの解答をしなければならず、プレイヤは相手プレイヤを追い込むことができる。また、これ以後は、2つの単語に対してしりとりを継続しなければならず、プレイヤと相手プレイヤは、しりとりの解答を考えることと入力することに時間をかけられず、より緊迫したゲームを楽しむことができる。
なお、上記実施形態では、ダブルリターンの発生条件がファンタジーゾーンにおいて2つの単語の文字列が衝突するという特定の事象が生じることだけなので、ダブルリターンが発生しやすく、ダブルリターン後のレシーブの困難性から、ラリーの継続時間が短くなる場合がある。そのため、ダブルリターンの発生を減らして、ラリーの継続時間をより長くするために、ダブルリターンの発生条件に別の条件を追加してもよい。追加する条件は、例えば、解答となる単語の文字数が問題となる単語の文字数と同じであることでもよいし、解答となる単語の意味するものの種類が問題となる単語の意味するものの種類と同じであること(例えば、問題となる単語が動物の単語である場合、解答となる単語も動物の単語であること)でもよい。これらの条件の追加により、ダブルリターンを発生させることが難しくなり、ダブルリターンの発生を減少させ、ラリーの継続時間を長くすることができる。なお、同じ種類の単語に限定することをダブルリターンの発生条件に追加する場合は、入力された単語の種類を判断するために、辞書データとして記憶されている各単語にその種類を表すデータを付加するか、各単語を種類別に分類して記憶しておく必要がある。
また、上記実施形態では、ダブルリターンの発生条件が生じた場合に発生するゲーム効果を、問題となる単語の文字列の消去と別の解答となる単語の文字列の発生として、2つの解答が対戦相手への問題となるようにしているが、これに限られない。
例えば、別のゲーム効果として、ダブルリターンの発生条件(ダブルリターンという名前が適当ではないので、以下、「特定条件」とする。)が生じた場合、レシーブされた文字列がホコリで見えない状態になるようにしてもよい。この場合、対戦相手が最後まで文字列を読み取れないとなると、このラリーは特定条件が生じた時点で対戦相手の負けとなってしまうので、対戦相手が文字列のホコリを除去して文字列を読み取れる状態にする方法が必要となる。この方法として、例えば、Xボタンを早押しし続けるなどの特定のキー操作を行うことや、マイクに向かって息を吹きかけることが考えられる。なお、マイクに息を吹きかける方法を採用する場合は、マイクで息による雑音を拾って、その雑音の音量が所定の値を超えた場合に、その時間に応じて、文字列に重ねて描画されているホコリを減らしていくようにする。これにより、プレイヤは、文字列に付着しているホコリを息で吹き飛ばしているような操作感を感じることができる。なお、マイクを用いる構成に代えて、タッチペンで文字列のホコリを擦る操作が検出された回数に応じてホコリを減らしていく構成であってもよい。このホコリを擦る操作とは、例えば、文字列の所定位置を所定の短時間以内に繰り返しタッチオン・オフする操作である。
また、別のゲーム効果として、特定条件が生じた場合、レシーブされた文字列が、対戦相手が読み取れないように回転するようにしてもよい。この場合、特定のキー操作や、マイクへの息の吹きかけ、タッチペンでのタッチパネルの操作により文字列の回転を止められるようにする。なお、タッチパネルの操作を採用する場合は、回転する文字列の位置するタッチパネルのパネル面のセンサをタッチペンでタッチすることにより、そのタッチの回数に応じて文字列の回転速度を減少していくようにする。これにより、プレイヤは、回転する文字列をタッチペンで押さえ付けて止めているような操作感を感じることができる。タッチペンでタッチするのではなく、回転する文字列の周囲を回転とは逆方向にタッチペンで回すようにしてもよい。
また、別のゲーム効果として、特定条件が生じた場合、レシーブされた文字列は表示画面上に表示されず、代わりにその文字列を読み上げた音声がスピーカから出力されるようにしてもよい。この場合、文字列がデッドラインに近付いていることを表すために、徐々に音声を大きくするようにしてもよい。また、その他のゲーム効果として、特定条件が生じた場合、それ以後は、レシーブされる文字列と同じ文字数で単語を入力しなくては、文字列をレシーブすることができなくしてもよい。
また、上記実施形態では、文字列同士の衝突が特定の事象であり、ファンタジーゾーン5で文字列同士の衝突があった場合にダブルリターンという特定のゲーム効果(本発明の第1のゲーム効果に対応)を生じるが、この構成に限定されない。例えば、特定の事象がプレイヤからの文字入力等であってもよい。この場合には、レシーブされる文字列がデッドライン21,31に達するまでに、しりとりの規則に合致する文字列がプレイヤから入力されると、レシーブされる文字列の消去というゲーム効果(本発明の第2のゲーム効果)が生じる。そして、対戦相手の文字列がファンタジーゾーン5に位置するときに文字列の入力があった場合に、レシーブされる文字列の消去というゲーム効果とともに、ダブルリターンという特定のゲーム効果が生じる。
また、上記実施形態では、2つの表示画面2a,3aを有する携帯型ゲーム装置1を使用した例を説明したが、1つの表示画面のみを有する携帯型ゲーム装置1であっても実施できる。この場合は、1つの表示画面を3つの画面に区切って、真ん中の画面をファンタジーゾーン5として区別するようにすればよい。なお、画面が横長の場合は、横に3つの画面が並ぶように縦に区切り、左または右を上記実施形態における第1表示画面2aとし、文字列25は縦書きとすればよい。また、携帯型ゲーム装置でなくても、業務用ゲーム装置や家庭用ゲーム装置で2人で対戦またはコンピュータと対戦するようにしてもよい。また、ゲーム装置ではなくパーソナルコンピュータに本発明を適用してもよい。この場合に、複数台の装置間で2人以上の対戦を行うときには、ネットワークを介して複数台の装置を接続すればよい。
[第2実施形態]
次に、他の好ましい実施の形態として、本願発明をシューティングゲームに使用した場合について具体的に説明する。第2〜5実施形態も第1実施形態と同様の携帯型ゲーム装置において行われるゲームであり、ゲーム装置のハード構成(図5参照)、内部構成(図6参照)は第1実施形態と同じなので、説明を省略する。また、ゲーム上の仮想空間の座標と表示画面の座標との関係(図2参照)や、オブジェクトがファンタジーゾーンに位置するかの判定についても第1実施形態と同様なので、説明を省略する。
このシューティングゲームは、プレイヤが戦闘機を操縦してミサイルを発射し、敵機を撃ち落すゲームである。プレイヤの戦闘機が発射したミサイルが敵機に当たると、その敵機は爆発消滅し、プレイヤの得点が加算される。敵機もミサイルを発射し、敵機のミサイルまたは敵機自身がプレイヤの戦闘機に当たった場合、プレイヤにダメージが加わる。ダメージが加算されて、所定値を超えるとゲームが終了し、そのときの得点がプレイヤの得点となる。プレイヤは、得点の高さを競うために、敵機とミサイルを避けながら、多くの敵機を撃ち落そうと熱中する。
図12は、ゲーム装置の2個のゲーム画面に表示された第2実施形態のシューティングゲームのゲーム途中の表示例である。第2表示画面3aには、下方中央にプレイヤが操縦する戦闘機201、その上方に戦闘機201が発射したミサイル203、右上方に敵機202a、左端下方にプレイヤが受けたダメージの量を表すダメージゲージ204が表示されている。また、第1表示画面2aには、右上方にプレイヤの得点、右下方に敵機202c、左上方に敵機202dが表示されている。図12は、各表示画面2a,3aには表示されないファンタジーゾーン5に敵機202bが位置し、プレイヤの戦闘機201が放ったミサイル203のうちの1つが敵機202bに当たった場面である。なお、ファンタジーゾーン5に位置するオブジェクトは表示されないが、分かり易いように図12では点線で描画している。
本実施形態では、ファンタジーゾーン5に位置する敵機202bを撃ち落した場合、見えない敵機にミサイルを当てるのは難しいことを考慮して、各表示画面2a,3aに表示されている敵機202a,202c,202dを打ち落とした場合より加算される得点を高くしている。
なお、ファンタジーゾーン5に位置する敵機202bを撃ち落した場合に発生するゲーム効果は、上記のボーナス得点の加算に限られず、プレイヤが有利になるゲーム効果であればよい。例えば、プレイヤのダメージを減少するようにしてもよいし、一定の時間だけ、発射するミサイルの数を増加したり、他の敵機202a,202c,202dの動きを遅くしたり、プレイヤの戦闘機201の動きを早くしたりしてもよい。また、敵機202a〜202dの発射したミサイルがファンタジーゾーン5に位置するときに撃ち落した場合にこれらのゲーム効果が発生するようにしてもよいし、ファンタジーゾーン5で撃ち落す対象が敵機202a〜202dかその発射したミサイルかで発生するゲーム効果を変えるようにしてもよい。
また、シューティングゲームは上記に限られず、2人以上のプレイヤで対戦する対戦型シューティングゲームでもよい。
なお、上記実施形態では、2つの表示画面を有する携帯型ゲーム装置を使用した例を説明したが、第1実施形態と同様、1つの表示画面のみを有する携帯型ゲーム装置であっても実施できる。また、携帯型ゲーム装置でなく、業務用ゲーム装置や家庭用ゲーム装置を使用するようにしてもよい。また、ゲーム装置ではなくパーソナルコンピュータに本発明を適用してもよい。この場合に、複数台の装置間で2人以上の対戦を行うときには、ネットワークを介して複数台の装置を接続すればよい。
[第3実施形態]
更に、他の好ましい実施の形態として、本願発明をレーシングゲームに使用した場合について具体的に説明する。
このレーシングゲームは、プレイヤが車を操縦して、他の車や障害物を避けながら道路上を走行するゲームである。プレイヤの車が他の車や障害物と衝突した場合、プレイヤにダメージが加わる。ダメージが加算されて、所定値を超えるとゲームが終了する。そのときの走行距離に対応した得点がプレイヤの得点となる。プレイヤは、得点の高さを競うために、他の車や障害物と衝突しないように車を操縦することに熱中する。
図13は、ゲーム装置の2個のゲーム画面に表示された第3実施形態のレーシングゲームのゲーム途中の表示例である。第2表示画面3aには、中央付近にプレイヤが操縦する車301、左上方に他の車302a、右上方に障害物303a、左端下方にプレイヤの受けたダメージの量を表すダメージゲージ304が表示されている。また、第1表示画面2aには、右上方にプレイヤの得点、右上方に障害物303c、右中央付近に他の車302c、左中央付近に他の車302d、右下端に他の車302bの一部が表示されている。
本実施形態では、図13において、各表示画面2a,3aには表示されないファンタジーゾーン5にプレイヤの車301が位置するとき(プレイヤの車が、図13の点線で描画された車301’であるとき)、プレイヤの車301’、他の車302b、障害物303bが見えない状態で衝突せずに走行するのは難しいことを考慮して、走行距離に応じて加算される得点を、プレイヤの車301が各表示画面2a,3aに表示されている場合よりも、高くしている。
なお、ファンタジーゾーン5にプレイヤの車301が位置するときに発生するゲーム効果は、上記のボーナス得点の加算に限られない。例えば、ファンタジーゾーン5に位置する時間に応じて、プレイヤの車301のスピードが速くなるようにしてもよい。この場合、スピードが速くなることで、プレイヤは同じ時間で走行できる距離を長くすることができる。しかし、スピードが速くなることで、他の車302a〜302dや障害物303a〜303cを避けることが更に難しくなる。その難易度が上がるに従って、同じ時間で走行できる距離が長くなっていく。
また、レーシングゲームは上記に限られず、2人以上のプレイヤで対戦する対戦型レーシングゲームでもよい。
なお、上記実施形態では、2つの表示画面を有する携帯型ゲーム装置を使用した例を説明したが、第1実施形態と同様、1つの表示画面のみを有する携帯型ゲーム装置であっても実施できる。また、携帯型ゲーム装置でなく、業務用ゲーム装置や家庭用ゲーム装置を使用するようにしてもよい。また、ゲーム装置ではなくパーソナルコンピュータに本発明を適用してもよい。この場合に、複数台の装置間で2人以上の対戦を行うときには、ネットワークを介して複数台の装置を接続すればよい。
[第4実施形態]
また更に、他の好ましい実施の形態として、本願発明をアクションゲームに使用した場合について具体的に説明する。
このアクションゲームは、プレイヤがメインキャラクタとなって敵キャラクタと戦い、敵キャラクタを倒すことで得られる得点を競うゲームである。メインキャラクタは敵キャラクタに攻撃されるとダメージを受け、加算されたダメージが所定値を超えるとゲームが終了する。また、メインキャラクタにはパワー値が設定されていて、敵キャラクタを攻撃するときの攻撃力はパワー値に対応する。すなわち、パワー値が高いときは攻撃力が高いので、少ない回数の攻撃で敵キャラクタを倒すことができる。パワー値は、時間の経過や攻撃を受けることで減少していくが、所定のアイテムを取得したときや、特定の条件により増加する。
また、このアクションゲームにおいては、仮想的な三次元ゲーム空間内で視点(所定サイズの窓)が横方向に移動するように表示されるようになっている。すなわち、所定サイズの窓はプレイヤの背後に常に設定されるように、メインキャラクタ401の横方向の移動に合わせて移動し、窓から見た画像が表示されるようになっている。窓のサイズは、第1及び第2の表示画面2a,3aとファンタジーゾーン5とを合わせたサイズに設定されている。なお、メインキャラクタ401が三次元ゲーム空間の奥行き方向に移動した場合は、視点は移動せず、メインキャラクタ401は表示画面上を縦方向に移動する。
図14は、ゲーム装置の2個のゲーム画面に表示された第4実施形態のアクションゲームのゲーム途中の表示例である。第2表示画面3aには、左方中央付近にメインキャラクタ401、右方中央付近に敵キャラクタ402、右下方に障害物403、左端下方にメインキャラクタの受けたダメージの量を表すダメージゲージ404、メインキャラクタのパワー値を表すパワーゲージ406が表示されている。また、第1表示画面2aには、右上方にプレイヤの得点405、中央付近及び右下方に敵キャラクタ402、左上方及び右上方に障害物403が表示されている。
本実施形態では、図14において、各表示画面2a,3aには表示されないファンタジーゾーン5にメインキャラクタ401が位置する状態(メインキャラクタが、図14の点線で描画されたメインキャラクタ401’であるとき)で、特定の操作ボタン入力(例えば、Xボタンを10回押すなど)が行われたとき、メインキャラクタ401のパワー値が増加する。つまり、メインキャラクタ401が見えない状態で、敵キャラクタの攻撃を避けつつ特定の操作ボタン入力を行うことができた場合は、難しいことをやり遂げられたご褒美としてパワー値が増加するのである。
なお、ファンタジーゾーン5にメインキャラクタ401が位置するときの特定の入力は特定の操作ボタン入力の代わりに、タッチパネルからの特定の手書き文字入力(例えば、タッチパネルに「変身」と手書き入力するなど)や、マイクからの特定の音声入力(例えば、マイクに向かって「変身」と叫ぶなど)としてもよい。また、特定の入力に対し発生するゲーム効果は、上記のパワー値の増加に限られず、例えば、メインキャラクタ401のダメージの減少などでもよい。また、一定の時間、メインキャラクタ401の動きが早くなることであったり、敵キャラクタ402の動きが遅くなることであってもよい。
また、ファンタジーゾーン5に敵キャラクタ402が位置する状態で、特定の入力が行われたとき、当該敵キャラクタ402が弱くなる(動きが遅くなったり、少ない回数の攻撃で倒すことができるなど)様にしてもよい。
なお、アクションゲームは上記に限られず、2人以上のプレイヤで対戦する対戦型アクションゲームでもよい。
また、上記実施形態では、2つの表示画面を有する携帯型ゲーム装置を使用した例を説明したが、第1実施形態と同様、1つの表示画面のみを有する携帯型ゲーム装置であっても実施できる。また、携帯型ゲーム装置でなく、業務用ゲーム装置や家庭用ゲーム装置を使用するようにしてもよい。また、ゲーム装置ではなくパーソナルコンピュータに本発明を適用してもよい。この場合に、複数台の装置間で2人以上の対戦を行うときには、ネットワークを介して複数台の装置を接続すればよい。
[第5実施形態]
また更に、他の好ましい実施の形態として、本願発明をテニスゲームに使用した場合について具体的に説明する。
このテニスゲームは、プレイヤが対戦相手とテニスの試合を行う対戦型ゲームである。ルールは通常のテニスのルールに従い、ボールを打ち合って、打ち損ねたり、相手コート内にボールが入らなかった場合、相手に得点が入る。
図15は、ゲーム装置の2個のゲーム画面に表示された第5実施形態のテニスゲームのゲーム途中の表示例である。第2表示画面3aには、左下方にプレイヤの操作するキャラクタ501が表示されている。また、第1表示画面2aには、右上方に対戦相手のキャラクタ502と、左中央付近にはテニスボール503とが表示されている。
本実施形態では、テニスボール503がファンタジーゾーン5に位置する状態で、特定の操作ボタン入力(例えば、Xボタンを押すなど)が行われたとき、テニスボール503がイレギュラーバウンドして軌道が変化する。対戦相手は予想していた場所からテニスボール503が出てこないため、レシーブすることが難しくなる。なお、この変化が多発すると、本来のテニスゲームとしての面白みがなくなる(ボールの軌道を予測してボレーのために前に出ても、そのたびに軌道が変化するとボレー出来なくなる等)ので、この変化の使用は各プレイヤとも1ゲームにつき1回のみに限定されている。
なお、テニスボール503がファンタジーゾーン5に位置するときの特定の入力は、特定の操作ボタン入力の代わりに、タッチパネルからの特定の手書き文字入力(例えば、タッチパネルに「変化」と手書き入力するなど)や、マイクからの特定の音声入力(例えば、マイクに向かって「変化」と叫ぶなど)としてもよい。
また、特定の入力に対し発生するゲーム効果は、上記の軌道の変化に限られない。例えば、タッチパネルに「消えろ」と手書き入力すると、対戦相手のキャラクタ502がレシーブするまでの間、テニスボール503が表示されないようにしたり、「加速」と手書き入力すると、対戦相手のキャラクタ502がレシーブするまでの間、テニスボール503の移動速度が速くなるようにしたり、「分身」と手書き入力すると、テニスボール503とは別に偽物のテニスボールが表示され、偽物のテニスボールをレシーブしてもレシーブできないようにしてもよい。この場合、対戦相手は勘で本物と思われるテニスボールをレシーブする必要があり、正しくレシーブできる確立は2分の1となる。これらのゲーム効果は、1ゲームに1回のみには限られず、ゲーム効果ごとに使用できる回数を設定してもよい。また、タッチパネルからの入力に限られず、音声入力によるものとし、入力された音声を認識して、該当するゲーム効果を発生するようにしてもよいし、ゲーム効果ごとに割り当てられた操作ボタンの入力により各ゲーム効果が発生するようにしてもよい。
また、逆に、レシーブする側が特定の入力をしたときに、テニスボール503の移動速度が遅くなるなどのゲーム効果が発生するようにしてもよい。
なお、この実施形態ではテニスゲームについて説明したが、対戦者同士が別々の領域でプレイし、ボールを相手の領域に入れあうスポーツゲームであれば他のものでも構わない。例えば、バドミントンやバレーボール等のスポーツゲームにも適用できる。
また、上記実施形態では、2つの表示画面を有する携帯型ゲーム装置を使用した例を説明したが、第1実施形態と同様、1つの表示画面のみを有する携帯型ゲーム装置であっても実施できる。また、携帯型ゲーム装置でなく、業務用ゲーム装置や家庭用ゲーム装置を使用するようにしてもよい。また、ゲーム装置ではなくパーソナルコンピュータに本発明を適用してもよい。この場合に、複数台の装置間で2人以上の対戦を行うときには、ネットワークを介して複数台の装置を接続すればよい。
また、本発明では、特定の事象はゲーム空間のいずれにおいても生じる構成であっても、ファンタジーゾーン(表示画面間の離隔部分)に対応する領域でのみ生じる構成であってもよい。もっとも、特定の事象がゲーム空間のいずれにおいても生じる構成とした方が、特定の事象がファンタジーゾーンで生じるかどうかでゲーム効果が変わることになり、よりゲームの遊戯性が高まる。また、本発明は、特定の事象が生じた場合に、ファンタジーゾーンで生じるかどうかにかかわらず何らかのゲーム効果(本発明の第2のゲーム効果に対応)が生じるようにするとともに、ファンタジーゾーンで生じた場合には、このゲーム効果に加えて特定のゲーム効果(本発明の第1のゲーム効果に対応)が生じる構成であってもよい。また、本発明は、ファンタジーゾーンで特定の事象が生じた場合には、ファンタジーゾーン以外で特定の事象が生じた場合のゲーム効果(本発明の第2のゲーム効果に対応)に代えて、特定のゲーム効果(本発明の第1のゲーム効果に対応)が生じる構成であってもよい。また、本発明は、ファンタジーゾーン以外で特定の事象が生じた場合に何のゲーム効果も生じず、ファンタジーゾーンで特定の事象が生じた場合に特定のゲーム効果(本発明の第1のゲーム効果に対応)が生じる構成であってもよい。また、本発明では、特定の事象に対応する特定のゲーム効果が一つ記憶されていても、複数記憶されていてもよい。
また、本発明は、ゲーム空間において仮想的な視点(所定サイズの窓)が移動する構成に適用することも(例えば第4の実施形態)、移動しない構成に適用することも(例えば第1の実施形態)可能である。また、本発明では、ゲーム空間が3次元ゲーム空間であっても2次元ゲーム空間であってもよい。