説明

プログラム、情報記憶媒体及びゲーム装置

【課題】 プレーヤキャラクタの伸縮部位を、プレーヤの把持操作指示が入力される毎に被把持部に次々に把持させていくことによってプレーヤキャラクタを移動制御するゲームにおいて、タッチ操作で様々なアクションを操作できるようにすること。
【解決手段】タッチ操作されているタッチ位置に基づいて、タッチ継続時間及びスライド操作速度を含むタッチ操作状況を表すパラメータを算出する。そして、伸縮部位の把持目標となる被把持部を自動選択し、伸縮部位を伸縮させて把持させる自動把持アクションと、伸縮部位をタッチ操作に連動して伸縮させて被把持部を把持させる手動把持アクションとを少なくとも含む伸縮動作アクションの中から発動する伸縮動作アクションを、タッチ操作のパラメータに基づいて選択する。そして、この選択された伸縮動作アクションを発動して前記プレーヤキャラクタを制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータに、伸縮部位を有するプレーヤキャラクタを操作入力に基づいて動作制御させて所定のゲームを実行させるためのプログラム等に関する。
【背景技術】
【0002】
任天堂社製のゲーム機「ニンテンドーDS(登録商標)」のように、表示画面上にポインティングデバイスであるタッチパネルを搭載した携帯型ゲーム装置が知られている。こうした携帯型ゲーム装置においてタッチパネルを操作入力に利用したゲームは、ボタン操作のみで操作入力するゲームに比べてより直感的な操作入力ができるとしてユーザから高い人気を得ている。
【0003】
例えば、タッチオンした位置を基準点に設定し、この基準点から現在タッチしている位置までの距離と時間差とから入力距離(タッチ距離とも呼ばれる。)及び入力速度(タッチ速度とも呼ばれる。)を求め、更に基準点から現在タッチしている位置の変移を入力ベクトル(タッチベクトルとも呼ばれる。)を算出する。そして、これらを操作入力の種類を判定するパラメータとすることで、タッチパネルをタッチ開始し(タッチオン)、タッチしたまま移動させ(スライド操作)、タッチを解除する(タッチオフ)一連の操作を基本にして、ゲーム内における方向や、入力の大きさを直感的な操作入力を可能にしている(例えば、特許文献1参照)。
【特許文献1】特開2006−141722号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
そうしたタッチパネルを利用した直感的な操作入力を活かして、プレーヤキャラクが腕(或いは腕に相当するもの)を伸ばしてロッククライミング風に移動するアクションゲームを実現することが考えられる。その場合、ゲーム性を高めるために様々なプレーヤキャラクタのアクションを設定する必要があり、タッチオン、スライド、タッチオフといった要素を含むタッチ操作だけで、如何にして、設定されたアクションを判定するかが重要な技術課題となる。
【0005】
本発明の目的とするところは、プレーヤキャラクタの伸縮部位を、プレーヤの把持操作指示が入力される毎に被把持部に次々に把持させていくことによってプレーヤキャラクタを移動制御するゲームにおいて、タッチ操作で様々なアクションを操作できるようにすることである。
【課題を解決するための手段】
【0006】
上記の課題を解決するための第1の発明は、コンピュータに、伸縮可能な部位であって仮想空間中に配置された被把持部を把持する伸縮部位を有するプレーヤキャラクタを、タッチスクリーンへのプレーヤのタッチ操作に基づいて表示制御させて所定のゲームを実行させるためのプログラムであって、
タッチ操作されているタッチ位置に基づいて、タッチ継続時間及びスライド操作速度を含むタッチ操作状況を表すパラメータを算出する操作状況算出手段(例えば、図11の処理部200、タッチ操作パラメータ算出部212、図15のステップS14、図17のステップS62)、
前記伸縮部位の把持目標となる被把持部(例えば、図3の壁面突起8)を自動選択し、前記伸縮部位を伸縮させて把持させる自動把持アクション(例えば、図3で説明するAアクション)と、前記伸縮部位をタッチ操作に連動して伸縮させて被把持部を把持させる手動把持アクション(例えば、図5で説明するBアクション)とを少なくとも含む伸縮動作アクションの中から発動する伸縮動作アクションを、前記パラメータに基づいて選択する発動アクション選択手段(例えば、図11の処理部200、操作コマンド判定部214、図15のステップS14、図17のステップS66〜S96)、
前記発動アクション選択手段により選択された伸縮動作アクションを発動して前記プレーヤキャラクタを制御する制御手段(例えば、図11の処理部200、アクション制御部216、図15のステップS16〜図16のステップS42)、として前記コンピュータを機能させるためのプログラムである。
【0007】
また、別形態の発明としては、伸縮可能な部位であって仮想空間中に配置された被把持部を把持する伸縮部位を有するプレーヤキャラクタを、タッチスクリーンへのプレーヤのタッチ操作に基づいて表示制御させて所定のゲームを実行するゲーム装置であって、
タッチ操作されているタッチ位置に基づいて、タッチ継続時間及びスライド操作速度を含むタッチ操作状況を表すパラメータを算出する操作状況算出手段(例えば、図1のタッチパネル1409、制御ユニット1450、図11の処理部200、タッチ操作パラメータ算出部212、図15のステップS14、図17のステップS62)と、
前記伸縮部位の把持目標となる被把持部を自動選択し、前記伸縮部位を伸縮させて把持させる自動把持アクションと、前記伸縮部位をタッチ操作に連動して伸縮させて被把持部を把持させる手動把持アクションとを少なくとも含む伸縮動作アクションの中から発動する伸縮動作アクションを、前記パラメータに基づいて選択する発動アクション選択手段(例えば、図1の制御ユニット1450、図11の処理部200、操作コマンド判定部214、図15のステップS14、図17のステップS66〜S96)と、
前記発動アクション選択手段により選択された伸縮動作アクションを発動して前記プレーヤキャラクタを制御する制御手段(例えば、図1の制御ユニット1450、図11の処理部200、アクション制御部216、図15のステップS16〜図16のステップS42)と、を備えたゲーム装置として実現しても良い。
【0008】
第1の発明によれば、タッチ継続時間やスライド操作速度などタッチ操作の状況を示すパラメータに基づいて(1)被把持部を自動選択し、その選択した被把持部に向けて伸縮部位を自動的に伸縮させ把持させる自動把持アクションと、(2)タッチ操作に連動して伸縮部位を伸縮させてプレーヤが所望する被把持部を把持させることのできる手動把持アクションと、を少なくとも含む伸縮動作アクションの中から発動する伸縮動作アクションを選択することができる。そして、選択した伸縮動作アクションをするようにプレーヤキャラクタを動作制御することができる。つまり、プレーヤは、タッチ操作だけでロッククライミング風の複数の動作を使い分けることができる。
【0009】
更に、第2の発明として、第1の発明のプログラムであって、
前記発動アクション選択手段が、タッチ継続時間が所定の継続時間条件を満たした場合に前記手動把持アクションを発動させる伸縮動作アクションとして選択する手動把持アクション選択手段図11の処理部200、操作コマンド判定部214、図15のステップS14、図17のステップS84〜S96)を有するように前記コンピュータを機能させるためのプログラムを構成しても良い。
【0010】
タッチ継続時間とは、タッチオンしてからタッチオフするまでの時間である。この場合、タッチしてから比較的ゆっくりとしたタッチ操作がなされると、手動把持アクションが選択されることになる。手動把持アクションは、プレーヤがプレーヤキャラクタに把持させたい被把持部を選択することを目的とするアクションであるから、ゆっくりとしたタッチ操作はその目的から理にかない、操作性を高めることができる。
【0011】
また、第3の発明は、第2の発明のプログラムであって、
前記手動把持アクション選択手段が、タッチ継続時間が所定の継続時間条件を満たし、且つ、スライド操作速度が所定の低速度条件(例えば、図17のステップS90)を満たした場合(例えば、図17のステップS90のYES)に前記手動把持アクションを発動させる伸縮動作アクションとして選択するように前記コンピュータを機能させ、
前記発動アクション選択手段が、タッチ継続時間が所定の継続時間条件を満たし、且つ、タッチ位置が変動していない不変条件を満たした場合に(例えば、図17のステップS90のNO)、前記伸縮部位をタッチオフ直前のタッチ位置変動方向に伸縮させる攻撃アクション(例えば、図10で説明するEアクション)を、発動する伸縮動作アクションとして選択する打撃アクション選択手段(例えば、図11の処理部200、操作コマンド判定部214、図17のステップS96)を有し、
前記制御手段が、前記打撃アクション選択手段による選択に応じて前記打撃アクションを実行する打撃アクション実行手段(例えば、図11の処理部200、アクション制御部216、図16のステップS40〜S42)を有する、ように前記コンピュータを機能させるためのプログラムである。
【0012】
この第3の発明によれば、タッチ継続時間が所定の継続時間条件を満たし、更にタッチ位置が変動していない場合には、攻撃アクションが選択される。つまり、タッチ操作でより多くのアクションを操作入力できるようになる。
【0013】
第4の発明は、第1〜第3の何れかの発明のプログラムであって、
前記発動アクション選択手段が、スライド操作速度が所定の高速度条件を満たした場合(図17のステップS86のYES)に前記自動把持アクションを発動させる伸縮動作アクションとして選択する自動把持アクション選択手段(例えば、図11の処理部200、操作コマンド判定部214、図17のステップS88)を有するように前記コンピュータを機能させるためのプログラムである。
【0014】
この第4の発明によれば、プレーヤ、タッチ操作面を引っ掻くような素早いスライド操作をすることで自動把持アクションを選択操作することができる。これによって、素早い操作と自動把持アクションとの組み合わせによって、テンポの良いゲームプレイスタイルが実現される。
【0015】
また、第5の発明は、第1〜第4の何れかの発明のプログラムであって、
前記操作状況算出手段が、前記パラメータの1つとしてスライド操作のスライド方向(例えば、図3の入力ベクトル20、図11のスライド方向536)を算出し、
前記制御手段が、前記プレーヤキャラクタの位置と前記スライド方向とを基準に定義される所定のサーチ範囲内(例えば、図3の壁面突起選択領域22)に存在する被把持部の中から、当該スライド方向の延長線(例えば、図3の相似ベクトル21)に最寄りの被把持部を前記把持目標として前記自動把持アクションを実行する自動把持アクション実行手段(例えば、図11の処理部200、アクション制御部216、図18のステップS122〜S126))を有する、ように前記コンピュータを機能させるためのプログラムである。
【0016】
この第5の発明によれば、スライド操作のスライド方向に近い方向にある最寄りの被把持部が選択されるため、プレーヤにとって、より直感的な操作を実現することができる。
【0017】
また、第6の発明として、第1〜第5の何れかの発明のプログラムであって、
前記制御手段が、前記伸縮部位の伸縮端部の位置をタッチ操作に連動させつつ前記伸縮端部に最寄りの被把持部を把持目標候補として随時切り替え選択し、タッチオフ時に選択されていた把持目標候補を把持目標として前記伸縮部位に把持させるように前記手動把持アクションを実行する手動把持アクション実行手段(例えば、図11の処理部200、アクション制御部216、図23のステップS189、S191)を有するように前記コンピュータを機能させるためのプログラムを構成することとしてもよい。
【0018】
また、第7の発明は、第1〜第6の何れかの発明のプログラムであって、
前記プレーヤキャラクタが前記伸縮部位を複数有しており、前記制御手段が、伸縮させる前記伸縮部位を順番に切り替えるように前記コンピュータを機能させるためのプログラムである。
【0019】
この第7の発明によれば、あたかも左右の腕を順に伸縮させて崖を登攀するロッククライマのような自然な動作を実現することができる。
勿論、プレーヤキャラクタのデザインを人間タイプ以外に設定する場合には伸縮部位の数は3以上としても良い。その場合の「順番に切り替えるように」とは、必ずしも順番通り(例えば「1→2→3→1→2→3→(繰り返し)」のローテーション)に限らず、選択順にある種のルールを有していれば、例えば、「1→2→3→2→1→2→3→(繰り返し)」のローテーションなどでも良い。
【0020】
また、第8の発明は、第1〜第6の何れかの発明のプログラムであって、
前記操作状況算出手段が、前記パラメータの1つとしてスライド操作のスライド方向を算出し、
前記発動アクション選択手段が、前記伸縮部位が被把持部を把持している状態であり、且つ、タッチ操作が前記プレーヤキャラクタのボディ部になされてスライド操作された場合に、前記被把持部を把持した状態で前記伸縮部位を伸長させて前記プレーヤキャラクタのボディ部をスライド方向に移動させた後、スライド方向と反対方向に前記プレーヤキャラクタを射出する射出アクション(例えば、図7〜図8で説明するCアクション)を、発動する伸縮動作アクションとして選択する射出アクション選択手段(例えば、図11の処理部200、操作コマンド判定部214、図17のステップS66〜S72)を有し、
前記制御手段が、前記射出アクション選択手段による選択に応じて前記射出アクションを実行する射出アクション実行手段(例えば、図11の処理部200、アクション制御部216、図16のステップS26〜S30)を有する、ように前記コンピュータを機能させるためのプログラムである。
この第8の発明によれば、タッチ操作だけでより多彩なアクションの操作入力をすることができるようになる。
【0021】
また、第9の発明は、第8の発明のプログラムであって、
前記射出アクション実行手段が、前記伸縮部位を仮想弾性体、前記ボディ部を仮想錘体にそれぞれ仮定して前記プレーヤキャラクタの射出到達位置を算出し、当該射出到達位置に向けて前記プレーヤキャラクタを移動させるように前記コンピュータを機能させるためのプログラムである。
この第9の発明によれば、射出以降の移動をよりリアルに表現できる。
【0022】
第10の発明は、第1〜第9の何れか一つのプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。ここで言う「情報記憶媒体」とは、例えば磁気ディスクや光学ディスク、ICメモリなどを含む。同発明によれば、第1〜第9の何れか一つの発明のプログラムをコンピュータに読み取らせて実行させることによって、コンピュータに第1〜9の何れか一つの発明と同様の効果を発揮させることができる。
【発明の効果】
【0023】
本発明によれば、タッチ継続時間やスライド操作速度などタッチ操作の状況を示すパラメータに基づいて(1)被把持部を自動選択し、その選択した被把持部に向けて伸縮部位を自動的に伸縮させ把持させる自動把持アクションと、(2)タッチ操作に連動して伸縮部位を伸縮させてプレーヤが所望する被把持部を把持させることのできる手動把持アクションと、を少なくとも含む伸縮動作アクションの中から発動する伸縮動作アクションを選択することができる。そして、選択した伸縮動作アクションをするようにプレーヤキャラクタを動作制御することができる。つまり、プレーヤは、タッチ操作だけでロッククライミング風の複数の動作を使い分けることができる。
【発明を実施するための最良の形態】
【0024】
次に、本発明を適用した実施形態として、任天堂社製の携帯型ゲーム装置「ニンテンドーDS(登録商標)」等で見られる液晶ディスプレイ上にタッチパネルを搭載した携帯型ゲーム装置でロッククライミング風に移動するアクションゲームをプレイする例を挙げて説明する。
【0025】
[ゲーム装置の構成]
図1は、携帯型ゲーム装置の構成例を説明するための外観図である。本実施形態における携帯型ゲーム装置1400は、プレーヤがゲーム操作を入力するための方向入力キー1402及びボタンスイッチ1404と、第1液晶ディスプレイ1406と、第2液晶ディスプレイ1408と、スピーカ1410と、制御ユニット1450とを、ヒンジ1414で開閉自在なフリップフロップ型の装置本体1401に備えている。そして、第1液晶ディスプレイ1406及び第2液晶ディスプレイ1408の表面には、スタイラスペン1416などで触れることによって表示画面の任意の位置を入力することのできるタッチパネル1407,1409がそれぞれ装着されている。
【0026】
また、装置本体1401には、コンピュータ読み出し可能な情報記憶媒体であるメモリカード1440にデータを読み書きできるメモリカード読取装置1418が備えられている。メモリカード1440には、携帯型ゲーム装置1400の制御ユニット1450がゲームプレイに係る各種演算処理を実行するために必要なプログラムや各種設定データが記憶されている。またその他、装置本体1401には図示されていない内臓バッテリーや電源ボタン、音量調節ボタン等が設けられている。
【0027】
タッチパネル1407,1409は、表示画面を遮蔽することなくそれぞれ第1液晶ディスプレイ1406及び第2液晶ディスプレイ1408の表示画面のほぼ全域を被い、プレーヤが画面表示されているものに触れる感覚でスタイラスペン1416(或いは指など)で触れると、左上を原点とする直交Xt,Yt軸座標系における接触位置座標を制御ユニット1450へ出力することができる。
【0028】
制御ユニット1450は、ゲーム装置の制御基板に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などの各種マイクロプロセッサ、ASIC(Application Specific Integrated Circuit)、VRAMやRAM,ROM等の各種ICメモリを搭載する。また、無線通信モジュール1412や、3軸加速度センサ1422、第1液晶ディスプレイ1406及び第2液晶ディスプレイ1408のドライバ回路、タッチパネル1407及びタッチパネル1409のドライバ回路、方向入力キー1402及びボタンスイッチ1404からの信号を受信する回路、スピーカ1410へ音声信号を出力するためのアンプ回路、メモリカード読取装置1418への信号入出力回路といったいわゆるI/F回路(インターフェース回路)を搭載する。これら制御ユニット1450に搭載されている各要素は、それぞれバス回路を介して電気的に接続され、データの読み書きや信号の送受信が可能に接続されている。
【0029】
3軸加速度センサ1422は、携帯型ゲーム装置1400の姿勢変化や位置変化を検出するために直交するX軸・Y軸・Z軸の3軸方向の加速度を検出し、検出信号を制御ユニット1450へ出力する。尚、加速度センサの代わり、又は更なる機能追加としてジャイロセンサを備える構成としても良い。或いは地磁気を基準として位置や姿勢変化を検出するならば磁気センサによって置き換えることもできる。
【0030】
そして制御ユニット1450は、メモリカード読取装置1418によってメモリカード1440に格納されているプログラムやデータを読み出して、搭載するICメモリにこれらを一時記憶する。そして、読み出したプログラムを実行して演算処理を実行し、方向入力キー1402やボタンスイッチ1404、タッチパネル1407及び1409からの操作入力に応じて携帯型ゲーム装置1400の各部を制御して、アクションゲームを実行する。
【0031】
尚、本実施形態では、携帯型ゲーム装置1400は必要なプログラムや各種設定データをメモリカード1440から読み出す構成としているが、無線通信モジュール1412を介して、インターネットやLAN(Local Area Network)、WAN(Wide Area Network)などの有線/無線の通信回線1に接続して外部の装置からダウンロードする構成としても良い。
【0032】
[ゲームの概要]
図2は、本実施形態におけるゲームの概要を説明するための図である。本実施形態では、第1液晶ディスプレイ1406に、現在プレイ中のゲームステージに関するマップ画面W2が表示され、第2液晶ディスプレイ1408に、プレーヤキャラクタ2の周辺詳細を示す主たるゲーム画面W4が表示される。
【0033】
マップ画面W2には、ゲーム開始からの経過時間や得点、マップ識別情報などの情報表示10と、ステージ概略図12と、スタート位置14と、ゴール位置16と、プレーヤキャラクタ2の現在位置18が表示される。ゲーム画面W4には、プレーヤキャラクタ2と、敵キャラクタ4と、プレーヤキャラクタ2がロッククライミング風に登攀する壁面6とが表示される。ゲーム画面W4は、液晶ディスプレイのリフレッシュレートより短いサイクルで、仮想カメラで撮影した画像(いわゆる3DCG)が生成され、生成された画像に各種情報表示10が合成されて生成される。尚、仮想カメラはプレーヤキャラクタ2を画面の中央付近(例えば、図中の一点鎖線で囲まれた範囲内)に捉えるように自動的に移動や回転、撮影画角等が制御される。
【0034】
本実施形態のアクションゲームでは、プレーヤキャラクタ2は両腕を伸縮部位としてゴムの様に伸ばすことのできるゲームキャラクタである。プレーヤがスタイラスペン1416でタッチパネル1409にスライド操作をすると、スライド操作の方向や速度などに基づいて判定される様々なアクションでプレーヤキャラクタ2が壁面6の所々に設けられている被把持部である壁面突起8に腕を伸ばして壁面突起8を掴み、腕を縮める動作を行う。プレーヤは、これを繰り返してプレーヤキャラクタ2を壁面6の頂上へ登攀させる。
【0035】
ゲームステージには、いたるところに敵キャラクタ4が配置されており、それぞれ画面左右方向に自動移動制御される。敵キャラクタ4がプレーヤキャラクタ2に接触すると、プレーヤキャラクタ2は攻撃を受けたと判定され耐力値(いわゆる「ヒットポイント」)が減算される。ゴールに到達する前に耐力値が「0」になるとゲームオーバーとなり、ゴール到達までの時間が考慮されてゲームポイントが決定される。
【0036】
尚、本実施形態では壁面6は崖のような立面として想定されているがその角度は適宜設定することができる。また、プレーヤキャラクタ2が掴むことができる被把持部は、岩の突起や、打ち込まれたカラビナ、窓枠、フェンス、壁の割れ目などの固定された凹凸に限らず、風に揺れて移動する蔦やロープ、所定軌跡を描いて移動する気球やエレベータや動物などでも良く、プレーヤキャラクタ2が掴んで(或いは吸着やかぎ爪を掛けるなどして係合して)下方へ落下するのを防ぐことのできるものであれば適宜設定することができる。また、ゲーム画面構成は同図に示すように、第1液晶ディスプレイ1406,第2液晶ディスプレイ1408の長辺を横にした構成に限らず、第1液晶ディスプレイ1406,第2液晶ディスプレイ1408の長辺を縦方向にして、ディスプレイの長辺が登攀方向と一致する構成とし、携帯用ゲーム装置1400を所謂「縦持ち」で使用するとしても良いのは勿論である。
【0037】
[プレーヤキャラクタのアクションと入力操作についての説明]
プレーヤは、スタイラスペン1416で異なる操作入力をすることで、プレーヤキャラクタ2にその時々のゲーム状況に適当なAアクション〜Eアクションの何れかを行わせてゲームを進める。
【0038】
図3〜図4は、本実施形態における「Aアクション」とその操作入力について説明するための図である。Aアクションは、プレーヤがスタイラスペン1416で急速且つタッチ時間の短い素早いスライド操作(以降「スラッシュ操作」とも言う。)をすると、そのスライド方向に存在する壁面突起8を自動的に選択して自動的に手を伸ばして掴んで移動する自動把持アクションである。
【0039】
具体的には、タッチオンからタッチオフまでのタッチ時間がスラッシュ操作判定基準時間よりも短く、且つ、その間のスライド操作の移動速度がスラッシュ操作判定基準速度に達した場合には、そのタッチ操作は「スラッシュ操作」と判定される。
【0040】
そして、図3(1)に示すように、スタイラスペン1416でスラッシュ操作(図中、黒太矢印で示すタッチオン+スライド操作と、破線黒矢印で示すタッチオフとの一連の操作)をするとAアクションの操作コマンドが入力されたと判定され、最新の入力ベクトル20(スライド方向)が求められるとともに、プレーヤキャラクタ2の左右の腕から伸長対象の腕が選択される。例えば、図3(1)の状態では、壁面突起8を掴んでいない右腕が伸長対象と選択される。そして、伸長対象に選択された腕の手先から、先に求められた入力ベクトル20と同じ方向に向いた相似ベクトル21を左右中心とした扇状の壁面突起選択領域22が設定され、この壁面突起選択領域22内に存在する壁面突起8の内、伸長対象の腕の手先からの向き24(図中の一点鎖線矢印)が最も入力ベクトル20に近似するものが、今アクションにおける腕を伸ばす目標として選択される。
【0041】
目標となる壁面突起8が選択されたならば、図3(2)に示すように、プレーヤキャラクタ2の伸長対象の腕が自動的に目標の壁面突起8を掴むように伸長制御される。そして、当該腕が目標に到達すると、図3(3)に示すように、プレーヤキャラクタ2の伸長対象の腕を元の標準長に戻すように自動的に短縮制御され、それとともに伸長対象の腕と反対側の腕が壁面突起8を掴んだ状態が解除され、自動的に元の長さに短縮制御される。
【0042】
更に同じようにスラッシュ操作をすると、図4(1)に示すように、やはり入力ベクトル20が求められた後に伸長対象の腕(図4の状態では左腕)が選択されるが、前回伸ばしていない側の腕、或いは今現在掴み状態に無い腕が選択される。そして、この伸長対象の腕の手先から壁面突起選択領域22が設定され、目標の壁面突起8が選択される。
【0043】
目標の壁面突起8が選択されたならば、先ほどと同様、図4(2)に示すように、処理対象の腕が伸ばされて目標を掴むように表示制御される。そして、目標を掴んだならば、図4(3)に示すように、伸びた腕を元の標準長に短縮させるととともに、反対側の腕の手を放して標準長に短縮させる。
【0044】
このように、本実施形態ではプレーヤがスタイラスペン1416でプレーヤキャラクタ2の腕を伸ばしたい方向へスラッシュ操作をすると、プレーヤキャラクタ2が自動的に目標となる壁面突起8を見つけて腕を伸ばし移動するといったAアクションをする。
【0045】
尚、本実施形態におけるAアクションについては、壁面突起選択領域22に何れの壁面突起8も存在しない場合には、目標が選択不可となるので伸長対象の腕は伸ばさずにそのままとしても良いし、ある程度伸ばすが何も掴まずに標準長に戻るようにしても良い。また、Aアクション発動のタイミングを、スラッシュ操作時のタッチオフ検出のタイミングとしてもよいし、タッチ位置の移動停止を検出したタイミングとしても良い。つまり、素早くスライド操作したのちタッチオフしなくともその場で停めた場合でも同様にAアクションの操作コマンドが入力されたと判定することもできる。
【0046】
図5〜図6は、本実施形態における「Bアクション」とその操作入力とについて説明するための図である。Bアクションは、プレーヤがスタイラスペン1416でAアクションの操作コマンド入力の時よりはゆっくりとした速さでスライド操作することで、プレーヤキャラクタ2の腕を任意に伸ばし、タッチオフを検出した時点における延びた腕の手先に近接する壁面突起8を掴ませるアクションである。Bアクションは腕を任意の位置に伸ばしてプレーヤが所望する壁面突起8を掴ませる手動把持アクションであり、Aアクションのように自動的に伸ばしていない側の腕の手を放して移動することはしない。
【0047】
具体的には、図5(1)に示すように、プレーヤがスタイラスペン1416でタッチパネル1409へスラッシュ操作よりもゆっくりとしたスラッシュ操作判定基準速度に達しない移動速度(スライド速度)でスライド操作すると、Bアクションの操作入力の判定がなされて伸長対象の腕が選択される。このとき、伸長対象とされるのは、何れか一方の腕が掴み状態であれば今現在掴み状態に無い腕であり、両方の腕が掴み状態であれば前回伸ばした腕と反対側の腕である。
【0048】
伸長対象の腕が選択されると、図5(2)に示すように、伸長対象の腕がスライド操作の入力距離(スライド距離)に応じた長さだけ伸ばされ、手先の位置は入力方向ベクトル20に沿って移動される。従って、スライド操作を直線状に行えば直線状に腕が伸ばされ、円弧を描くようにスライド操作すれば伸びた腕の手先も円弧を描くように移動される。
【0049】
そして、タッチオフが検出されると、図5(2)〜図5(3)に示すように、検出タイミングにおける伸長対象の腕の手先位置を中心とする矩形の手判定領域30内に存在し、最も手先に近接した壁面突起8を、伸長対象の腕で掴むように自動的に動作制御される。
【0050】
そして、腕が伸ばされたならば、両腕の張力で体が釣られた状態となるように、両腕の長さが伸長或いは短縮されるとともに体の位置が移動される。より具体的には、最も単純な制御では、両腕をそれぞれ掴んでいる壁面突起8を結ぶ直線状に両腕を伸ばし、その中間位置に体を移動させる。よりリアリティを求めた制御では、画面下方に向けて仮想重力のある環境を想定し、同環境下において2本の仮想弾性紐(腕)で仮想錘(体)を吊る状態を物理演算で求める。図5(3)では、プレーヤキャラクタ2は、両腕の中間位置より、やや画面下側に体がオフセットした姿勢となっており、どちらかというと後者の「よりリアリティを求めた制御」が行われた場合に相当する。
【0051】
図5(3)の状態から、更に登攀を進めようとするには、再びスタイラスペン1416で腕を伸ばしたい方向へスラッシュ操作してAアクションさせるか、スラッシュ操作よりもゆっくりとしたスライド操作をしてBアクションさせる。
【0052】
図6(1)は、前者に相当する。Aアクションの操作コマンド入力が為されたと判断されると、伸長対象の腕が選択される。図5(3)は両腕が掴み状態であるので、前回伸ばしていない側の左腕が伸長対象として選択される。
【0053】
以下、先に述べたAアクションと同様に、この左腕の手先を基準に入力ベクトル20を左右中心とした所定の扇状の壁面突起選択領域22が設定され、その内側に存在する壁面突起8の内、伸長対象の腕の手先からの向き24(図中の一点鎖線矢印)が最も入力ベクトル20に近似する壁面突起8が腕を伸ばす目標として選択される。そして、図6(2)に示すように、プレーヤキャラクタ2の伸長対象の腕が自動的に目標の壁面突起8を掴むように伸長制御される。この時、体の向きは一時的に横を向くように制御され、左腕を体の右側に伸ばす様子が自然に見えるように考慮される。
【0054】
今回のアクションはAアクションであるから、伸ばした腕が目標の壁面突起8に到達すると、図6(3)に示すように、プレーヤキャラクタ2の伸長対象の腕は元の標準長に戻すように自動的に短縮制御され、それとともに伸長対象と反対側の腕の手は放されて壁面突起8を掴んだ状態が解除され、自動的に元の長さに短縮制御される。
【0055】
一方、図5(3)の状態から再びBアクションの操作コマンド入力を行った場合には、図5で説明した左右の腕の関係は反対となるが、同様にスタイラスペン1416で腕を伸ばす先を任意に指定するようにして腕を伸ばすことで登攀を進める事も可能である。
【0056】
このように、Bアクションによって、プレーヤキャラクタ2に任意の位置に腕を伸ばさせ、所望する壁面突起8を掴ませることができる。Aアクションでは、スラッシュ操作と目標となる壁面突起8が自動的に選択される制御とが相俟って、素早い登攀が可能となるが、Bアクションでは所望する任意の壁面突起8を掴ませることができるので、腕を伸ばす位置を慎重に考えて選択しないと登れない、より複雑でパズル的な状況に適している。
【0057】
尚、Bアクションにおいて、タッチオンの位置が左右の手判定領域30に含まれる場合には、当該タッチオン位置が手判定領域30に含まれる側の腕が伸長対象の腕として選択される。つまり、プレーヤはスタイラスペン1416で所望する側の腕の手先をタッチオンすることによって、伸長対象とする腕を任意に選択することができる。
【0058】
図7〜図8は、本実施形態における「Cアクション」とその操作入力とについて説明する為の図である。Cアクションは、体を弾、両腕をパチンコのゴムヒモにそれぞれ見立て、プレーヤキャラクタ2をパチンコで跳ばすようにして射出して敵キャラクタ4に体当たり攻撃する動作である。
【0059】
具体的には、先ず両手を広げて両手それぞれで壁面突起8を掴んだ状態を作る必要が有る。その為に先ずBアクションを利用して現在掴み状態にない側の腕で壁面突起8を掴ませる。
すなわち、図7(1)の状態では、右手が掴み状態にない手放し状態にあるので、プレーヤキャラクタ2の左方やや上にある壁面突起8方向へゆっくりとしたスライド操作をすると、プレーヤキャラクタ2の右腕がスライド距離に応じて入力ベクトル方向へ伸びる。この時、プレーヤキャラクタ2の右手を体より左方向に伸ばす必要があるので、体の前後の向きを反転させるように制御して、人の動作として自然に見えるようにする。或いは、壁面突起8を掴んでいる左の手と右手とを交換する動作をした後、左手を伸ばすとしても良い。
【0060】
プレーヤがスタイラスペン1416で伸びた右腕の手先が所望する壁面突起8に到達するように、図7(2)のようにペン先のスライド方向を調整すると、右腕の手先はその時々の最新の入力ベクトル方向にむけて移動制御される。つまり、スタイラスペン1416で右手の位置をガイドする。プレーヤが、右手の手判定領域30が所望する壁面突起8に近づいたのを確認してタッチオフすると、自動的に同領域内にあって最も右手に近接する壁面突起8が選択され、自動的に右手が当該壁面突起を掴むように動作制御される。
この結果、図7(3)に示すように、プレーヤキャラクタ2は両手がそれぞれ壁面突起8を掴み状態となりそこに体がぶら下がった状態となる。換言すると、両手をゴムヒモ、体を弾にそれぞれ見立てるとパチンコのような形態となる。
【0061】
この状態から、図7(3)に示すように、スタイラスペン1416でプレーヤキャラクタ2の体を中心とした体判定領域32内をタッチし、図8(1)に示すように、所望する射出方向と正反対方向へスライド操作すると、Cアクションの操作コマンド入力が為されたと判断される。
【0062】
すると、プレーヤキャラクタ2の体が、腕の付け根を回転軸にしてヨーヨーのように回転する回転モードに表示が変更されるとともに、スライド距離に応じた分だけ入力ベクトル方向へ移動される。このとき、両腕は伸ばされる。
【0063】
また、プレーヤキャラクタ2の動作とは別に、Cアクションの操作コマンド入力の検出とともに、仮想カメラの画角設定が所定の広角設定に変更される。例えば、図8(1)では元の標準設定の範囲を一点破線で示し、その四隅から外向きに伸びる矢印で画角の変更を示している。こうした撮影画角の広角化によって、プレーヤキャラクタ2の周囲の状態がより広範囲にゲーム画面内に表示されることとなる。プレーヤにとってみれば、パチンコで狙う先をより広く見ることができるので好適である。
【0064】
そして、タッチオフが検出されると、図8(2)に示すように、両腕が非表示にされるとともに、スライド操作と正反対方向に、それまでに為されたスライド操作のスライド距離に応じた最大到達距離だけ移動するまで、回転モードのプレーヤキャラクタ2の体2bが移動制御される。つまり、パチンコから弾が射出された格好となる。尚、スライド距離に応じて最大到達距離を求めるのではなく、画面下方に仮想重力が作用している環境下において、両腕の仮想弾性紐の復元力で付勢された仮想弾(体)を上方へ射出する条件で物理演算して求める構成としても良いのは勿論である。
【0065】
また、プレーヤキャラクタ2の体が移動制御されると、これに伴って仮想カメラの画角設定が、広角設定から標準設定に戻される。
【0066】
図8(2)に示すように、タッチオフ検出にともなって射出されたプレーヤキャラクタ2が敵キャラクタ4に当たると、その敵キャラクタ4は撃破され消滅するように制御される。また、最大到達距離だけ移動したプレーヤキャラクタ2は、図8(3)に示すように、回転モードから元に戻って標準モードの姿で表示され、射出以降の移動はそこで中止されて画面下方への仮想自由落下を始めるように移動制御される。勿論、仮想自由落下を始めた状態では、プレーヤキャラクタ2はどちらの腕も何処も掴んでいないので、そのままではせっかく登攀してきた壁面6から落下することになる。
【0067】
そこで、図8(3)に示すように、Aアクション或いはBアクションでどこかの壁面突起8を掴むように操作する必要がある。図8(3)の例では、上方に向けてスラッシュ操作を入力したことによってAアクションによってプレーヤキャラクタ2の右腕が壁面突起8を掴んで仮想自由落下をくい止めている。尚、仮想自由落下状態からAアクションまたはBアクションで伸長対象となる腕は、前回伸長対象とならなかった側の腕を選択するとしても良いし、スラッシュ操作の入力ベクトルが真上方向から右側の方向なら右腕、真上方向より左側の方向なら左腕を選択するとしても良い。
【0068】
図9は、本実施形態における「Dアクション」とその操作入力とについて説明するための図である。Dアクションは、現在壁面突起8を掴んでいる手を任意に放させる動作である。
【0069】
具体的には、図9(1)に示すように、壁面突起8を掴んでいる手には、手先を中心に所定サイズの手判定領域30が設定される。スタイラスペン1416でダブルタップしたことが検出され、タップ位置がこの手判定領域30内にある場合、自動的にその手を放すように動作制御される。
【0070】
手が放されると、図9(2)〜図9(3)に示すように、掴んでいる手が残っている場合には、体の位置をこの掴んでいる手の下方に移動させ、画面下方へ仮想重力が作用しているかのように見せる。尚、体の下方への移動は、手を仮想弾性紐、体を仮想錘とした物理演算を行って体の位置変化を算出するとしても良い。
【0071】
このように、Dアクションによって任意に壁面突起8を掴んでいる手を放すことができるので、その他のアクション、特にBアクションと適当に組み合わせることで、例えば図9(1)〜図9(3)のようなプレイが可能になる。すなわち、プレーヤキャラクタ2が両手で壁面突起8を掴んでいるところへ右方から敵キャラクタ4が迫り、そのままではプレーヤキャラクタ2に当たってしまうシチュエーションにおいて、上方へ登攀する行動がやはり敵キャラクタ4によって邪魔されているならば、意図的に右手を放すことで体の位置をずらし、右方より迫り来る敵キャラクタ4との衝突を回避するといった頭脳的なプレイが可能になる。
【0072】
図10は、本実施形態における「Eアクション」とその操作入力とについて説明する為の図である。Eアクションは、手先に仮想火炎エネルギーを溜め、その手の腕を敵キャラクタ4に向けて伸ばして当てる打撃アクションである。
【0073】
具体的には、図10(1)に示すように、スタイラスペン1416でタッチオンしてから長押し判定基準時間を超えてその位置を変えずに維持すると、Eアクションの操作コマンド入力開始の判定が為されて、現在壁面突起8を掴んでいない手に火炎エネルギーグラフィックス36が付与される。
【0074】
この状態から、プレーヤがスタイラスペン1416で攻撃したい敵キャラクタ4に向けてスライド操作をすると、図10(2)に示すように、プレーヤキャラクタ2は火炎エネルギーグラフィックス36が付与された側の腕をタッチオフ直前のタッチ位置変動方向(スライド操作の入力ベクトル20の方向)へ、所定の長さに達するまで伸長される。そして、図10(3)に示すように、伸長された腕が敵キャラクタ4にヒットすると、この敵キャラクタ4はプレーヤキャラクタ2の攻撃を受けたと判定され、撃破・消滅される。
つまり、Eアクションによって、Cアクションより小規模であるが素早い攻撃動作をすることで、任意の敵キャラクタ4を撃破して活路を作り出すことが可能となる。
【0075】
このように、本実施形態では、スタイラスペン1416による操作入力だけで、これらAアクション〜Eアクションを適宜使い分け、直感的且つスピーディなアクションゲームをプレイすることができる。
【0076】
尚、プレーヤキャラクタ2のアクションの数は、ゲームの内容によって本実施形態よりも少なくしても多くしても構わない。その数は、ゲーム全体を通して共通で設定されるとしても良いし、難易度設定によって増減させたり、敵キャラクタ4から攻撃を受けた場合には所定時間の間だけ所定のアクションが使用不能になるといった制限を設けても良い。
各アクションの動作も、本実施形態における例に限らず適宜設定可能である。
【0077】
[機能ブロックの説明]
次に、上述のような特徴を実現するための機能構成について説明する。
図11は、本実施形態における機能構成の一例を示す機能ブロック図である。同図に示すように携帯型ゲーム装置1400は、操作入力部100と、処理部200と、音出力部350と、画像表示部360と、通信部370と、記憶部500とを備える。
【0078】
操作入力部100は、プレーヤによって為された各種の操作入力に応じて操作入力信号を処理部200に出力する。本実施形態では、方向入力部102と接触位置検出部104を含む。
【0079】
方向入力部102には、ボタンスイッチや、ジョイスティック、タッチパッド、トラックボール、2軸以上の検出軸を有する多軸検出型加速度センサ又は検出軸方向を違えて組み合わされた単軸検出型加速度センサユニット、少なくとも2方向以上の検出方向を可能にする多方向検出型傾斜センサまたは検出方向を違えて組み合わされた単方向検出型傾斜センサユニット、などによっても実現できる。図1では方向入力キー1402、3軸加速度センサ1422がこれに該当する。
【0080】
接触位置検出部104は、表示画面範囲への接触位置を検出することのできるデバイスである。図1のタッチパネル1407,1409がこれに該当する。
【0081】
処理部200は、例えばCPUやGPU等のマイクロプロセッサや、ASIC(特定用途向け集積回路)、ICメモリなどの電子部品によって実現され、操作入力部100や記憶部500を含む携帯型ゲーム装置1400の各機能部との間でデータの入出力を行う。そして、所定のプログラムやデータ、操作入力部100からの操作入力信号に基づいて各種の演算処理を実行して、携帯型ゲーム装置1400の動作を制御する。図1では制御ユニット1450がこれに該当する。
そして本実施形態における処理部200は、ゲーム演算部210と、音生成部250と、画像生成部260と、通信制御部270とを備える。
【0082】
ゲーム演算部210は、ゲームの進行に係る処理を実行する。例えば、ゲーム空間を3次元仮想空間中に形成する処理や、ゲーム空間中にキャラクタ等のオブジェクトを配置する処理、配置されたキャラクタ等の動作制御処理、キャラクタの移動や攻撃といった各種動作制御処理、攻撃等によるオブジェクト(例えば敵キャラクタとプレーヤキャラクタ)間のヒット判定処理、物理演算処理、ゲーム結果の算出処理といった処理が実行対象に含まれる。
そして、本実施形態のゲーム演算部210は、タッチ操作パラメータ算出部212と、操作コマンド判定部214と、アクション制御部216とを含んでいる。
【0083】
タッチ操作パラメータ算出部212は、接触位置検出部104から出力された位置座標を元に、ゲーム画面座標系におけるタッチ位置を算出し、タッチ操作を検出している現在のシステム時間と対応付けて記憶部500のタッチ操作データ530に格納する。
【0084】
また、タッチ操作パラメータ算出部212は、更にタッチ操作の状況を示す各種パラメータ値を算出する。
本実施形態では、以下のパラメータ値を算出する。
(1)タッチオンから現在までのシステム時間差をもとにタッチ継続時間533を算出して記憶部500に記憶する。
(2)タッチオンのタッチ位置から現在までのタッチ位置の変移からスライド操作された距離を算出しスライド距離534として記憶部500に記憶する。
(3)接触位置検出部104の検出サイクルと、直前のタッチ位置と現在のタッチ位置との差とに基づいて、スライド操作の速さ(単位は、例えばdot/sや、dot/f)を求めスライド速度535として記憶部500に記憶する。
(4)接触位置検出部104の検出サイクルと、直前のタッチ位置と現在のタッチ位置との差とに基づいて、入力ベクトル20を算出して、スライド方向536として記憶部500に格納する。
【0085】
操作コマンド判定部214は、タッチ操作パラメータ算出部212で算出された各種パラメータ値を元に操作コマンドの種類を判定し、判定結果に従って記憶部500の操作コマンド判定データ522に含まれるAアクションフラグ523,Bアクションフラグ524,Cアクションフラグ525,Dアクションフラグ526,Eアクションフラグ527を操作する。
【0086】
具体的に操作コマンド判定部214は、以下の処理を行う。
(1)タッチ継続時間533が所定のスラッシュ操作判定基準時間(例えば、24フレーム)に満たない短さであり、且つスライド速度535が所定のスラッシュ操作判定基準速度(例えば、1dot/sec)に達する速さである場合に、Aアクションの操作コマンドが入力されたと判定する。
(2)タッチ継続時間533に達する長さであり、且つスライド速度535がスラッシュ操作判定基準速度に満たないが所定の緩操作判定基準速度(例えば、1dot/secより大きく2dot/sec以下)の場合、又はタッチオンの位置が手判定領域30内に含まれる場合に、Bアクションの操作コマンドが入力されたと判定する。
(3)プレーヤキャラクタ2の両手が壁面突起8を掴んでいる状態において、タッチオンの位置が体判定領域32に含まれる場合に、Cアクションの操作コマンドが入力されたと判定する。
(4)ダブルタップ(短時間でほぼ同じ位置を連続2回タッチする操作)の位置が壁面突起8を掴んでいる手の手判定領域30に含まれる場合に、Dアクションの操作コマンドが入力されたと判定する。
(5)タッチ継続時間が所定の溜め動作判定基準を超過する場合に、Eアクションの操作コマンドが入力されたと判定する。
そして、入力されたと判定した各アクションに対応するアクションフラグに「1」を格納する。尚、各アクションフラグのゲーム開始時初期設定は「0」である。
【0087】
アクション制御部216は、操作コマンド判定部214で判定された操作コマンドの種類に対応する動作をプレーヤキャラクタ2に行わせる。
【0088】
音生成部250は、例えばデジタルシグナルプロセッサ(DSP)、音声合成ICなどのプロセッサや、音声ファイル再生可能なオーディオコーデックによって実現され、ゲーム演算部210による処理結果に基づいてゲームに係る効果音やBGM、各種操作音の音信号を生成し、音出力部350に出力する。
【0089】
音出力部350は、音生成部250から入力される音信号に基づいて効果音やBGM等を音出力する装置によって実現される。図1ではスピーカ1410がこれに該当する。
【0090】
画像生成部260は、例えば、GPU(Graphics Processing Unit)、デジタルシグナルプロセッサ(DSP)などのプロセッサ、ビデオ信号IC、ビデオコーデックなどのプログラム、フレームバッファ等の描画フレーム用ICメモリ等によって実現される。画像生成部260は、ゲーム演算部210による処理結果に基づいて1フレーム時間(1/60秒)で1枚のゲーム画像を生成し、生成したゲーム画像の画像信号を画像表示部360に出力する。
【0091】
画像表示部360は、画像生成部260から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管(CRT)、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図1では第1液晶ディスプレイ1406及び第2液晶ディスプレイ1408がこれに該当する。
【0092】
通信制御部270は、データ通信に係るデータ処理を実行し、通信部370を介して外部装置とのデータのやりとりを実現する。
【0093】
通信部370は、通信回線1と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現され、図1の無線通信モジュール1412がこれに該当する。
【0094】
記憶部500は、処理部200に携帯型ゲーム装置1400を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なゲームプログラム、各種データ等を記憶する。また、処理部200の作業領域として用いられ、処理部200が各種プログラムに従って実行した演算結果や操作部100から入力される入力データ等を一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD−ROMやDVDなどの光学ディスクなどによって実現される。図1では制御ユニット1450が搭載するICメモリやメモリカード1440がこれに該当する。
【0095】
本実施形態では、記憶部500はシステムプログラム501と、ゲームプログラム502とを記憶している。処理部200がゲームプログラム502を読み出して実行することによって、処理部200にゲーム演算部210としての機能を実現できる。
【0096】
また、記憶部500には、予め用意されるデータとして、ゲーム空間設定データ510と、キャラクタ初期設定データ512とが記憶されている。
【0097】
更にゲームの進行に伴って随時生成や更新が行われるデータとして、プレーヤキャラクタステータスデータ514と、敵キャラクタステータスデータ520と、操作コマンド判定データ522と、タッチ操作データ530と、タッチ操作パラメータデータ532と、
射出ベクトル540を記憶する。
また、ゲームの進行に係る処理を実行するにあたり必要となるデータ(例えば、仮想カメラの仮想3次元空間座標系における位置座標や姿勢情報)なども適宜記憶されるものとする。
【0098】
ゲーム空間設定データ510は、仮想3次元空間にゲーム空間を形成するための各種データを格納している。例えば、プレーヤキャラクタ2や敵キャラクタ4が移動する地表や建物・木・川・岩などの配置物オブジェクトに関するモデルデータやテクスチャデータ及びモーションデータが含まれる。
【0099】
キャラクタ初期設定データ512は、プレーヤキャラクタ2や敵キャラクタ4の各種初期設定データを格納している。例えば、プレーヤキャラクタ2についてはモデルデータ、テクスチャデータ、モーションデータ、耐力値(いわゆるヒットポイントに相当)の初期値、攻撃力、移動速度、初期配置位置座標などが格納されている。敵キャラクタ4については、モデルデータ、テクスチャデータ、モーションデータ、耐力値の初期値、攻撃力、移動速度、攻撃パターン、移動パターン、出現位置座標などが格納されている。
【0100】
プレーヤキャラクタステータスデータ514には、プレーヤキャラクタ2の現在の状態を示す各種パラメータとして、現在の仮想3次元座標における位置座標、速度、現在の耐力値、腕ステータスデータ516、判定領域設定データ518などが格納される。
【0101】
腕ステータスデータ516は、左右の手腕の制御に係わる情報を格納する。例えば、図12に示すように、右腕ローカル座標原点516a、左腕ローカル座標原点516b、右手位置座標516c、左手位置座標516d、右手掴み状態フラグ516e、左手掴み状態フラグ516f、右手掴み順フラグ516g、左手掴み順フラグ516hを含む。
【0102】
右手掴み状態フラグ516eと左手掴み状態フラグ516fは、それぞれ左右の手が壁面突起8を掴んでいる状態で「1」が格納され、手を放している状態で「0」が格納される。
【0103】
右手掴み順フラグ516gと左手掴み順フラグ516hは、次に腕を伸ばす側に「1」が格納される。ゲーム開始時初期状態では何れとも「0」に設定されるが、スタート開始以降は最後に腕の伸長制御された側が「0」、残る側が「1」に設定される。
【0104】
判定領域設定データ518は、手判定領域30や体判定領域32の領域を定義する情報が格納される。これらの判定領域は基準となる手や体の位置に応じて随時更新される。
【0105】
敵キャラクタステータスデータ520には、敵キャラクタ4それぞれについての仮想3次元空間における位置座標、現在の耐力値といった情報が格納される。
【0106】
射出ベクトル540は、Cアクションの操作入力が為されたと判定された際に、ゲーム演算部210によって体判定領域32をタッチしてスライドさせたときのスライド距離534及びスライド方向536に基づいて求められ、プレーヤキャラクタ2の回転モードの体を射出する方向と長さとしての最大到達距離をベクトル情報として格納される。
【0107】
[動作の説明]
次に、本実施形態における携帯型ゲーム装置1400の動作について説明する。
図15〜図16は、本実施形態における主たる処理の流れを説明するためのフローチャートである。ここで説明される処理は、処理部200がシステムプログラム501並びにゲームプログラム502を読み出して実行することによって実現される。
【0108】
尚、ここではゲーム画面の生成と表示、並びにゲーム音の出力についての説明は省略するが、公知のゲームと同様に、画像生成部260が液晶ディスプレイのリフレッシュレートよりも十分に短いサイクルでゲーム画面を生成し、画像表示部360(第1液晶ディスプレイ1406,第2液晶ディスプレイ1408)に表示させるものとする。同様に、音生成部250でゲーム音の音信号を生成して音出力部350(スピーカ1410)から放音させるものとする。
【0109】
さて、同図に示すように、ゲーム演算部210は先ずフラグ等の初期化処理を実行する(ステップS2)。具体的には、Aアクションフラグ523〜Eアクションフラグ527を「0」に設定する。また、腕ステータスデータ516の右手掴み状態フラグ516eと左手掴み状態フラグ516fと、右手掴み順フラグ516gと、左手掴み順フラグ516hとを「0」に設定する。
【0110】
次に、処理部200はゲーム空間設定データ510を参照して、ゲームステージの表示を開始し(ステップS4)、キャラクタ初期設定データ512を参照してプレーヤキャラクタ2及び敵キャラクタ4のオブジェクトをゲーム空間内の各初期位置に配置する(ステップS6)。この時、プレーヤキャラクタ2の判定領域設定データ518も初期化される。
【0111】
次いで、処理部200は、プレーヤキャラクタ2を画面ほぼ中央で撮影するように仮想カメラをゲーム空間内に配置し、ゲーム画像の生成及び表示を開始する(ステップS8)。この時、仮想カメラの画角設定は標準画角に設定されるものとする。そして、以降は公知のビデオゲームと同様に所定の描画サイクルでゲーム空間の3DCGが生成され、これを元にゲーム画面が生成される。
【0112】
ここまでの処理ステップで、ゲームを開始する準備が整った事になるので、処理部200は画像表示部360のリフレッシュレートよりも十分短い所定サイクルで、以降の処理(ステップS10〜S56)を所定のゲーム終了条件を満たすまで繰り返し実行する。
【0113】
具体的には、処理部200は、ゲームが開始されると配置されている敵キャラクタ4の動作を自動制御する(ステップS10)。そして、タッチパネル1409にタッチ操作が有れば(ステップS12のYES)、処理部200は操作コマンド判定処理を実行する(ステップS14)。
【0114】
図17は、本実施形態における操作コマンド判定処理の流れを説明するためのフローチャートである。同処理では先ず、処理部200は現在のゲーム画面座標系のタッチ位置座標とタッチ操作を検出したシステム時間をタッチ操作データ530に格納する(ステップS60)。
【0115】
そして、処理部200はタッチ操作データ530を参照して、タッチ開始から現在までの格納されているデータから、〔1〕タッチ継続時間(タッチ開始から現在までの経過時間)、〔2〕スライド距離(タッチ開始位置から現在のタッチ位置までのタッチ位置の移動距離)と、〔3〕スライド速度(直前に記憶されているタッチ位置から今回のタッチ位置までの移動速度)、〔4〕スライド単位ベクトル(直前に記憶されているタッチ位置から今回のタッチ位置への単位ベクトル。入力ベクトル20相当。)をタッチ操作パラメータ値として算出し、それぞれ記憶部500のタッチ操作パラメータデータ532に格納する(ステップS62)。
【0116】
次に、処理部200は、操作コマンド判定データ522を参照し、何れかのアクションフラグが「1」になっているかを判定する(ステップS64)。
肯定判定の場合(ステップS64のYES)には、更にフラグが「1」になっているのがBアクションフラグ524で有るかを判定する(ステップS65)。ここで、Bアクションフラグ524が「1」でなければ、今回は操作コマンドの判定が不要と判断して、そのまま操作コマンド判定処理を終了するが、Bアクションフラグ524が「1」ならば後述するステップS82に移行する。
一方、ステップS64の判定において何れのアクションフラグも「0」で有ると判定した場合(ステップS64のNO)、処理部200は操作コマンドの判定が必要と判断して、次に、今回検出されたタッチ位置が体判定領域32の内側に含まれるかを判定する(ステップS66)。
【0117】
タッチ位置が体判定領域32内に含まれる場合(ステップS66のYES)、処理部200は更に、両手が掴み状態で有るか否かを判定する(ステップS68)。そして、両手が掴み状態で(ステップS68のYES)、且つ先に算出されたスライド距離534が所定のボディ引張操作判定基準距離(例えば20ドット(画素))に達する場合(ステップS70のYES)、Cアクションの操作入力が為されたと判断して、Cアクションフラグ525を「1」に設定し、その他のアクションフラグに「0」を設定し(ステップS72)、操作コマンド判定処理を終了する。
【0118】
一方、今回検出されたタッチ位置が体判定領域32の内側にあっても、一方でも手が放れている状態や(ステップS68のNO)、スライド距離525がボディ引張操作判定基準距離に満たない場合には(ステップS70のNO)、そのままCアクションフラグ525の設定は行わずに操作コマンド判定処理を終了する。
【0119】
ステップを遡って、ステップS66にて否定判定された場合には、処理部200は最新のタッチ位置座標と、判定領域設定データ518とを参照して、左右何れかの手判定領域30内がダブルタップ(短時間で2回連続して同じ位置をタッチする操作)されたか否かを判定する(ステップS76)。
【0120】
そして、肯定判定の場合(ステップS76のYES)、更に腕ステータスデータ516を参照して、判定領域がダブルタップされた側の手の掴み状態フラグが「1」で有るか、つまり掴み状態で有るかを判定する(ステップS78)。
【0121】
そして、当該手が掴み状態であると判断されれば(ステップS78のYES)、処理部200はDアクションの操作入力が為されたと判断して、Dアクションフラグ526を「1」に設定するとともに、その他のアクションフラグに「0」を設定して(ステップS80)、操作コマンド判定処理を終了する。
一方、今回検出されたタッチ位置が、体判定領域32内でなく、また左右何れの手判定領域30内でもない場合(ステップS76のNO)、また左右何れかの手判定領域30内がタッチされたと判断されても、判定領域がタッチされた側の手が掴み状態でなければ(ステップS78のNO)、処理部200はDアクションフラグ526の操作は行わずにAアクション、Bアクション、Eアクションの操作コマンド判定に係る処理に移る。
【0122】
先ず、判定領域設定データ518を参照して、右手或いは左手の手判定領域30の何れかの領域内がタッチされたか否かを判定する(ステップS82)。タッチされていなければ(ステップS82のNO)、続いてタッチ継続時間533の判定をする。
【0123】
タッチ継続時間533が所定のスラッシュ操作判定基準時間(例えば、24フレーム)以下で(ステップS84のYES)、且つスライド速度535が所定のスラッシュ操作判定基準速度(例えば、3ドット/フレーム)以上である場合(ステップS86のYES)、処理部200はタッチパネル1409をスクラッチするように短時間で素早いスライド操作が行われた、つまりAアクションの操作入力が為されたと判断して、Aアクションフラグ523を「1」に設定するとともに、その他のアクションフラグに「0」を設定して(ステップS88)、操作コマンド判定処理を終了する。
タッチ継続時間533がスラッシュ操作判定基準時間を超過した場合(ステップS84のNO)、及びタッチ継続時間533がスラッシュ操作判定基準時間以下であるがスライド速度がスラッシュ操作判定基準速度より遅い場合には(ステップS86のNO)、ステップS90に移行する。
【0124】
一方、ステップS82において、右手或いは左手の手判定領域30の何れかの領域内がタッチされたと判定した場合(ステップS82のYES)、及びステップS84においてタッチ継続時間533がスラッシュ操作判定基準時間を超過していてスラッシュ操作と言うには遅いスライド操作であると判断される場合には(ステップS84のNO)、処理部200は次に、スライド速度535が所定の定位置タッチ状態判定基準速度(例えば、1ドット/フレーム)以上で有るかを判定する(ステップS90)。この定位置タッチ状態判定基準速度は、タッチ位置が変化しているか否かを判定する低速度基準となる。勿論、基準値を速度とせず、タッチ距離としても良い。
【0125】
スライド速度535が定位置タッチ状態判定基準速度以上である場合(ステップS90のYES)、処理部200はスラッシュ操作ほどではない緩やかな速度でスライド操作がなされたと判断する。そして、Eアクションフラグ527を参照し、当該フラグが「1」に設定されていなければ(ステップS92のNO)、Bアクションの操作入力が為されたと判断して、Bアクションフラグ524を「1」に設定するとともに、その他のアクションフラグに「0」を設定して(ステップS94)、操作コマンド判定処理を終了する。
【0126】
一方、スライド速度535が定位置タッチ状態判定基準速度未満である場合(ステップS90のNO)、処理部200はタッチ位置が変動していない不変条件を満たすほどに定位置への長押しタッチがなされた、つまりEアクションの操作入力が為されたと判断する。そして、Eアクションフラグ527を「1」に設定するとともに、その他のアクションフラグに「0」を設定して(ステップS96)、操作コマンド判定処理を終了する。
【0127】
操作コマンド判定処理を終了したならば、図15のフローチャートに戻って、処理部200は、Aアクションフラグ523〜Eアクションフラグ527を順次参照し、「1」が設定されているアクションフラグに対応するプレーヤキャラクタ2のアクション処理を実行する(ステップS16〜図16:S42)。
【0128】
具体的には、Aアクションフラグ523が「1」に設定されている場合(ステップS16のYES)、処理部200は次いでタッチオフの判定をする(ステップS18)。今までタッチされた状態にあって、今回の制御サイクルにおいてタッチが解除された事を検出した場合にタッチオフの判定をする。そして、タッチオフと判定した場合(ステップS18のYES)、処理部200はAアクション処理を実行して、プレーヤキャラクタ2にAアクションを所定フレームの時間分(例えば、1フレーム分)だけ行わせる(ステップS20)。
【0129】
一方、Bアクションフラグ524が「1」に設定されている場合には(ステップS16のNO→S22のYES)、処理部200はBアクション処理を実行する(ステップS24)。
【0130】
また、図16に示すように、Cアクションフラグ525が「1」に設定されている場合には(ステップS22のNO→S26のYES)、処理部200は仮想カメラの撮影画角の設定を所定の広角設定に変更して(ステップS28)、Cアクション処理を実行する(ステップS30)。一方、Cアクションフラグ525が「0」であれば(ステップS26のNO)、撮影画角の設定を標準に戻す(ステップS32)。
【0131】
また、Dアクションフラグ526が「1」に設定されている場合には(ステップS34のYES)、タッチオフの判定をする。そして、タッチオフの場合(ステップS36のYES)、処理部200はDアクション処理を実行する(ステップS38)。
また、Eアクションフラグ527が「1」に設定されている場合には(ステップS40のYES)、処理部200はEアクション処理を実行する(ステップS42)。
【0132】
ではここで、Aアクション処理〜Eアクション処理の流れについて詳細に説明する。
図18は、Aアクション処理の流れを説明するためのフローチャートである。Aアクション処理は、スタイラスペン1416によるスラッシュ操作(素早いスライド操作)の方向へ、プレーヤキャラクタ2が自動的に腕を伸ばして移動するように腕の伸縮とボディの移動を制御する処理である。
【0133】
同処理では、処理部200は先ず、前回の制御サイクルにおいてAアクション処理が既に一回実行されてプレーヤキャラクタ2の腕を伸ばしたり縮めたりといった伸縮制御中の状態にあるかを判定する(ステップS110)。
伸ばし制御中でなければ(ステップS110のNO)、処理部200は今回Aアクションフラグ523が「1」に設定されてから、今回の制御サイクルがAアクション処理の初回実行に当たり、腕の伸縮制御を開始する必要が有ると判断し、先ず右手掴み状態フラグ516e及び左手掴み状態フラグ516fを参照する(ステップS112)。
【0134】
そして、これらの掴み状態フラグが共に「0」に設定されていて右手及び左手の掴み状態が「両手放し」と判断されるならば(ステップS114の「両手放し」)、処理部200は、先の操作コマンド判定処理で算出されたスライド方向536が画面真上方向を中心として左右何れに傾いているか判断し、傾いている方向の側の左手掴み順フラグ516h又は右手掴み順フラグ516gに「1」を設定してスライド方向536の傾いた側の腕をアクションの処理対象とする(ステップS116)。
【0135】
右手掴み状態フラグ516e、左手掴み状態フラグ516fの両方とも「1」に設定されていて「両手掴み」状態と判断されるならば(ステップS114の「両手掴み」)、右手掴み順フラグ516g及び左手掴み順フラグ516hのうち「1」が設定されている側の腕を処理対象とする(ステップS118)。
【0136】
また、右手掴み状態フラグ516e及び左手掴み状態フラグ516fのうち一方のみ「1」が設定されている場合には、掴み状態フラグが「0」になっている側の手が放れている「片手放し」状態と判断して(ステップS114の「片手放し」)、掴み状態フラグが「0」である腕の手の掴み順フラグを「1」に設定して、当該腕を処理対象とする(ステップS120)。
【0137】
伸縮制御の対象とする腕が決まったならば、処理部200は次に、処理対象とする腕の手の先からスライド方向536を左右中心にして扇状に広がる壁面突起選択領域22をゲーム画面座標で設定する(ステップS122)。そして、この壁面突起選択領域22に壁面突起8が含まれる場合(ステップS124のYES)、処理部200は該当する壁面突起8それぞれについて、腕の手先からの方向とスライド方向536とのなす角度を算出して、腕の手先からの方向が、最もスライド方向536に近くなる壁面突起8を、伸長目標地点として選択する(ステップS126)。選択された壁面突起8のゲーム画面座標系の座標は一時的に記憶部500に記憶される。
【0138】
尚、ステップS110において、Aアクション処理の実行に伴って既に腕を伸ばす表示処理中の場合には(ステップS110のYES)、処理対象とする腕の選択に係る処理(ステップS112〜S120)と、腕を伸ばす目標地点となる壁面突起8の選択に係る処理(ステップS122〜S126)はスキップされる。
【0139】
さて、伸ばす腕と目標地点となる壁面突起8とが選択されたならば、処理部200は処理対象とする腕の伸長処理及び短縮処理を行う。
具体的には、先ず現在の手先の位置座標と先に選択した壁面突起8の座標とを比較することで、手先が目標地点の壁面突起8に到達したか否かを判定する(ステップS128)。到達していなければ(ステップS128のNO)、処理部200は選択した壁面突起8へ、処理対象とする腕を今回の制御サイクル分だけ伸ばすようにモーション制御する(ステップS130)。勿論この時、処理対象とする腕の手が壁面突起8を掴んでいる場合には、これを放してから目標地点となる壁面突起8へ腕を伸ばすように制御する。
そして、理対象とする腕に関連する位置座標と手判定領域とを更新する(ステップS136)。そして、今回の制御サイクルにおけるAアクション処理を終了する。
【0140】
一方、手先が目標の壁面突起に到達したと判定されたならば(ステップS128のYES)、処理部200は処理対象側の手の掴み状態フラグを「1」に設定するとともに、反対側の手の掴み状態フラグを「0」に設定して「片手放し」状態とする(ステップS138)。
【0141】
次いで、伸ばされた処理対象の腕が標準長になるまで(ステップS140のNO)、処理部200は処理対象とする腕を、伸びた弾性体が縮むように、或いは伸ばされたワイヤーが巻き取られるかのようにして、目標とした壁面突起を掴んでいる手先方向に今回の制御サイクル分だけ短縮させるようにモーション制御する(ステップS142)。そして、腕の長さの変化に応じて体の位置を合わせるためにボディ移動処理を実行し(ステップS144)、今回の制御サイクルにおけるAアクション処理を終了する。
【0142】
尚、腕の短縮表示処理において腕を縮める長さは、伸ばされた腕を弾性体と仮定し、所定重量の体に連結されていると見なした物理シミュレーションによって、体が伸びた腕の方向に復元力で引っ張られて移動すると仮定して求めると好適であるが、単に1フレーム当たり所定長さだけ縮めるとしても良い。
また、ボディ移動処理における体の移動に伴うモーションは、右手を体より左方向に伸ばしたケース、或いはその反対に左手を体より右方向に伸ばしたケースでは、プレーヤキャラクタ2の背中がプレーヤ側に向いた状態から、体が横向きになって、再び背中をプレーヤ側に向けるように設定すると、腕の切り返しをそれらしく表現できるので好適である。
【0143】
一方、処理対象とする腕が標準長まで縮められたと判定された場合(ステップS140のYES)、処理部200は処理対象とする腕の手の掴み順フラグを「0」に設定し、反対側の手の掴み順フラグを「1」に設定し(ステップS146)、Aアクションフラグ523を「0」に戻す(ステップS148)。つまり、この段階でAアクションによる移動が完了する。そして、タッチ操作データ530に格納されているデータを破棄・初期化して(ステップS150)、今回の制御サイクルにおけるAアクション処理を終了する。
【0144】
尚、処理対象とする腕を基準に設定された壁面突起選択領域22の中に壁面突起8が存在しない場合には(ステップS124のNO)、ステップS128〜S150の腕の伸縮に関する処理をスキップして今回の制御サイクルにおけるAアクション処理を終了する。
【0145】
図19は、Bアクション処理の流れを説明するためのフローチャートである。Bアクション処理は、スラッシュ操作よりも緩やかな速度のスライド操作が為された方向へ、操作距離に応じた量だけ腕を伸ばし、掴める場所があればそこを掴ませ、それに伴ってボディを移動するように制御する処理である。
【0146】
同処理において、処理部200は先ず、プレーヤキャラクタ2の腕を伸ばしたり縮めたりといった伸縮制御中であるか判定する(ステップS170)。
【0147】
腕の伸縮制御中でなければ(ステップS170のNO)、処理部200は右手掴み状態フラグ516e及び左手掴み状態フラグ516fを参照して両手の掴み状態を判定する(ステップS174)。
参照した掴み状態フラグが共に「0」に設定されていて「両手放し」と判断されるならば(ステップS174の「両手放し」)、処理部200は、手判定領域30がタッチされた側、又は先の操作コマンド判定処理で算出されたスライド方向536の左/右へ傾いている側の手の掴み順フラグ(左手掴み順フラグ516h又は右手掴み順フラグ516g)に「1」を設定してスライド方向536の左/右傾いた側の腕をアクションの処理対象とする(ステップS176)。
【0148】
右手掴み状態フラグ516eと左手掴み状態フラグ516fの両方とも「1」に設定されていて「両手掴み」状態と判断されるならば(ステップS174の「両手掴み」)、右手掴み順フラグ516g及び左手掴み順フラグ516hのうち「1」が設定されている側の腕を処理対象とする(ステップS178)。
また、右手掴み状態フラグ516e及び左手掴み状態フラグ516fのうち一方のみ「1」が設定されている場合には、掴み状態フラグが「0」になっている側の手が放れている「片手放し」状態と判断して(ステップS174の「片手放し」)、掴み状態フラグが「0」である腕の手の掴み順フラグを「1」に設定して、当該腕を処理対象とする(ステップS180)。
【0149】
尚、既にこれから述べるBアクション処理における腕の伸縮制御を実行している場合には(ステップS170のYES)、処理対象とする腕の選択に係るステップをスキップする。
【0150】
そして、伸縮制御の処理対象とする腕が決まったならば、処理部200は次に、先に求められたスライド方向536の方向へ、タッチ開始時における処理対象の側の右手位置座標516c又は左手位置座標516dを基準位置にして、スライド距離534に応じた伸長量だけ移動させた伸長先位置を算出する(ステップS182)。
【0151】
さて、タッチオフが検出されていなければ(ステップS184のNO)、処理部200は処理対象とする腕の手先を現在の位置から算出した伸長先位置へ移動するようにモーション制御する(ステップS186)。勿論この時、処理対象とする腕の手が壁面突起8を掴んでいる場合には、これを放してから目標地点となる壁面突起8へ腕を伸ばすように制御する。更に、腕の長さに上限を設け、それ以上伸びないように伸長制御するものとする(伸長に上限を設けない構成としても勿論よい)。
そして、伸ばした結果に応じて処理対象とする腕に関連する右手位置座標516cや左手位置座標516d、手判定領域30などを更新し(ステップS188)、今回の制御サイクルに於けるBアクション処理を終了する。
【0152】
一方、タッチオフが検出されたならば(ステップS184のYES)、処理部200は算出した伸長先位置を中心に求められる手判定領域30内に壁面突起が有るか否かを判定する(ステップS190)。
【0153】
もし、同領域内に壁面突起8が無ければ(ステップS190のNO)、処理部200は掴む場所が無かったと判断して、伸ばした腕を元の標準長に縮めるために、処理対象とする腕の長さが標準長に戻っていなければ(ステップS192のNO)、当該腕を今回の制御サイクル分だけ短縮制御を行い(ステップS194)、今回の制御サイクルに於けるBアクション処理を終了する。
【0154】
壁面突起8が有れば(ステップS190のYES)、処理部200は更に手判定領域30内の最寄りの壁面突起8に手が到達したか否かを判定する(ステップS196)。
そして、到達していなければ(ステップS196のNO)、その最寄りの壁面突起8へ処理対象の腕を伸長制御するとともに(ステップS198)、当該腕に係る位置座標及び判定領域を更新し(ステップS200)、ボディ移動処理を実行し(ステップS202)、タッチ操作データ530に格納されているデータを破棄・初期化して(ステップS210)、今回の制御サイクルにおけるBアクション処理を終了する。
【0155】
手判定領域30内の最寄りの壁面突起8に手が到達したら(ステップS196のYES)、処理部200は、処理対象腕の側の右手掴み状態フラグ516e又は左手掴み状態フラグ516fを「1」に設定し(ステップS204)、処理対象腕の側の右手掴み順フラグ516g又は左手掴み順フラグ516hを「0(次休み)」、反対側の手の掴み順フラグを「1(次伸ばし)」に設定する(ステップS206)。
次いで、Bアクションフラグ524を「0」に設定し(ステップS208)、タッチ操作データ530に格納されているデータを破棄・初期化して(ステップS210)、今回の制御サイクルにおけるBアクション処理を終了する。
【0156】
図20は、Cアクション処理の流れを説明するためのフローチャートである。Cアクション処理は、両手掴み状態からプレーヤキャラクタ2の体を引っ張って、パチンコを放つようにして瞬発的な移動と敵キャラクタ4への攻撃を兼ねた動作を実現する処理である。
【0157】
同処理において、処理部200は先ず、プレーヤキャラクタ2の両手の状態を判定する(ステップS220)。そして、両手とも掴み状態の場合(ステップS220のYES)、処理部200は更にタッチオフの検出判定をする(ステップS222)。
【0158】
今回の制御サイクルにおいてタッチオフが検出されなければ(ステップS222のNO)、Cアクションで言うところの両腕をパチンコのゴムのようにして体部分を引っ張る段階に有ると判断できる。処理部200は体部分が標準モードで表示されていなければ(ステップS234のYES)、体部分をヨーヨーのように回転させた回転モードでの表示を開始する(ステップS236)。
【0159】
次いで、回転モードで表示されている体部分を、今回の制御サイクルの操作コマンド判定処理において算出されたスライド方向536の方向へ、スライド距離534に応じた距離だけ移動させ(ステップS238)、更に体判定領域32の更新を行い(ステップS240)、両腕の伸長処理を行う(ステップS242)。これで、スタイラスペン1416を下方にスライド操作すると、それに伴ってプレーヤキャラクタ2の回転する体部分がパチンコを引くようにして移動表示される。そして、処理部200はボディの射出ベクトル540を算出し(ステップS246)、今回の制御サイクルにおけるCアクション処理を終了する。
【0160】
尚、射出ベクトル540は、例えば、両腕を弾性紐、ボディを錘とそれぞれ仮定した錘の射出シミュレーションとして物理演算によって求めることができる。そして、求めた射出ベクトル540のデータは、記憶部500にCアクションフラグ525がクリアされるまで一時的に記憶される。
【0161】
一方、ステップS222において、両手掴み状態から今回の制御サイクルにおいてタッチオフが検出された場合(ステップS222のYES)、処理部200は引かれていたパチンコが放たれて発射されたと判断し、右手掴み状態フラグ516eと左手掴み状態フラグ516fを共に「0」に変更し(ステップS250)、両手を瞬時に標準長となるように短縮制御する(ステップS252)。また、腕の短縮に伴って両腕に係る位置座標や判定領域を更新する(ステップS254)。
【0162】
次に、ステップS220において両腕の状態が掴み状態でない場合(ステップS220のYES)、及びステップS250〜S254の両腕を放す処理を実行したならば、次に回転モードのボディがパチンコで飛ばされるように移動制御する。
【0163】
具体的には、先に算出した射出ベクトル540に基づいて、今回の制御サイクルの分となる例えば1フレーム後の体部分の予測位置と移動距離を算出する(ステップS260)。ここでの予測位置並びに移動距離は、先に算出された射出ベクトル540のベクトル長さ(つまりは最大到達距離)に向けて徐々に減速停止するように仮想の減速力が作用する仮想環境下を想定した物理シミュレーションによって求められる。
【0164】
次に、処理部200は、算出された速度を参照して射出された体部分が射出ベクトル540のベクトル長さ分だけ既に移動済みで有るか否かを判定する(ステップS262)。
そして、否定であれば(ステップS262のNO)、処理部200は回転モードの体部分を算出された予測位置へ移動させ(ステップS264)、体判定領域32を更新し(ステップS278)、今回の制御サイクルにおけるCアクション処理を終了する。
【0165】
一方、肯定であれば(ステップS262のYES)、処理部200は今現在のプレーヤキャラクタ2の表示モードを判定する。そして、プレーヤキャラクタ2が回転モードの場合(ステップS266のYES)、プレーヤキャラクタ2の表示を回転モードから標準モードによる表示に切り換える(ステップS268)。
【0166】
次いで処理部200は、プレーヤキャラクタ2を先に算出された予測位置へ移動させ(ステップS270)、両手の手判定領域30を更新する(ステップS272)。
そして、Cアクションフラグ525を「0」に設定し(ステップS274)、タッチ操作データ530に格納されているデータを破棄・初期化して(ステップS276)、体判定領域32を更新して(ステップS278)、今回の制御サイクルにおけるCアクション処理を終了する。
【0167】
図21は、プレーヤキャラクタ2にDアクションをさせるDアクション処理の流れを説明するためのフローチャートである。
Dアクションは、壁面突起8を掴んでいた手を放すアクションである。
よって、処理部200は現在のタッチ位置が含まれる手判定領域30の手の掴み状態フラグが「1」であれば(ステップS290のYES)、処理対象の手が壁面突起8を放れていないと判断して当該掴み状態フラグを「0」に変更し(ステップS292)、更に処理対象の手の掴み順フラグを「0(次休み)」に設定し、反対の手の掴み順フラグを「1(次伸ばし)」に設定する(ステップS294)。そして、処理対象腕の側の手が壁面突起8を放すように今回の制御サイクルの分だけ(例えば、1フレーム分だけ)モーション制御し(ステップS296)、今回の制御サイクルにおけるDアクション処理を終了する。
【0168】
一方、ステップS290において、処理対象の側の手の掴み状態フラグが既に「0」になっている場合には(ステップS290のNO)、処理部200は、手は放されたので伸びている腕を縮める必要が有ると判断する。処理対象の側の腕の長さが標準長でなければ(ステップS298のNO)、当該腕を1フレーム分だけ短縮制御し(ステップS300)、処理対象の腕に係る判定領域を更新する(ステップS302)。そして、ボディ移動処理を実行した後(ステップS304)、体判定領域32を更新し(ステップS306)、今回の制御サイクルにおけるDアクション処理を終了する。
【0169】
尚、ここでのボディ移動処理では、伸びた腕で身体部分を支えていた状態から支えがなくなった状態に変化するのに伴う体部分の位置変化が行われる。例えば、伸びた腕を弾性紐、体部分を所定仮想重量の錘と仮定し、画面下方への仮想重力がかかる仮想環境下における位置を物理シミュレーションによって求め、当該位置へボディを移動させる。
【0170】
反対に、処理対象の腕が既に標準長に達していれば(ステップS298のYES)、処理部200はDアクションフラグを「0」に設定し(ステップS308)、次いでタッチ操作データ530を初期化して(ステップS310)、今回の制御サイクルにおけるDアクション処理を終了する。
【0171】
図22は、プレーヤキャラクタ2に、火炎魔法のエネルギーが溜められた手腕を伸ばして敵キャラクタ4に当てて攻撃するEアクションをさせるためのEアクション処理の流れを説明するためのフローチャートである。
【0172】
Eアクション処理では先ず、処理部200は右手掴み状態フラグ516eと左手掴み状態フラグ516fを参照し、掴み状態フラグが「0」の側の手に攻撃用の火炎球を付与表示し、手に火炎魔法のエネルギーが溜まっているかのように見せる(ステップS330)。
【0173】
次に、処理部200は火炎球を付与した手の腕が伸長制御又は短縮制御中にあるか否かを判定する(ステップS332)。
当該腕が伸長中でも短縮中でも無く(ステップS332のNO)、今回の制御サイクルにおいてタッチオフが検出されず(ステップS334のNO)、更にスライド操作された場合には(ステップS336のYES)、処理部200は攻撃方向が入力されたと判断する。そして、火炎球が付与された手の側の腕が所定の攻撃長に達するまで(ステップS338のNO)、当該手腕をスライド方向536の方向へ1フレーム分だけ伸長制御し(ステップS340)、今回の制御サイクルにおけるEアクション処理を終了する。
【0174】
火炎球付の手の腕が所定の攻撃長まで伸ばされたならば(ステップS338のYES)、処理部200は、今度は当該腕が標準長に戻るまで(ステップS342のNO)、当該腕を1フレーム分短縮制御し(ステップS344)、今回の制御サイクルにおけるEアクション処理を終了する。
【0175】
火炎球付の手腕が標準長まで戻ったならば(ステップS342のYES)、火炎球の表示を中止する(ステップS346)。これでEアクションが全て終了したことになるので、処理部200はEアクションフラグ527を「0」に戻し(ステップS348)、タッチ操作データ530を初期化して(ステップS350)、Eアクション処理を終了する。
【0176】
一方、ステップS334において、手腕に火炎球が付与された状態からタッチオフが検出された場合には(ステップS334のYES)、処理部200は攻撃中止操作がされたと判断して、火炎球の表示を中止し(ステップS346)、Eアクションフラグ527を「0」に戻し(ステップS348)、タッチ操作データ530を初期化して(ステップS350)、Eアクション処理を終了する。
【0177】
アクションフラグの状態に応じてAアクション処理〜Dアクション処理の何れかを実行した後、或いは何れのアクション処理も実行しなかった場合、図16のフローチャートに戻る。
【0178】
次に、処理部200は、全てのアクションフラグが「0」で(ステップS40のNO)、且つプレーヤキャラクタの位置がゲーム開始の初期位置になければ(ステップS44のNO)、両手が放れた落下中に有ると判断して、プレーヤキャラクタ2の落下移動処理を実行する(ステップS46)。落下移動処理では、1フレーム分の落下予測位置を算出して当該位置へプレーヤキャラクタ2を移動させ、両手や体部分の各判定領域を更新する。
【0179】
次に、処理部200は仮想カメラの撮影位置の変更を実行する(ステップS48)。本実施形態では、画面中央に縦横比同じで面積比60%の仮想撮影フレームを設定し、当該仮想撮影フレーム内にプレーヤキャラクタ2が入るか否かを判定し、入っていない場合には描画フレームの更新の都度、プレーヤキャラクタ2を画面中央で撮影できるように仮想カメラの位置を変更する。
【0180】
次いで、処理部200は、プレーヤキャラクタ2及び敵キャラクタ4のそれぞれの攻撃の判定処理を行う(ステップS50)。
例えば、Cアクション処理が実行中にあって、プレーヤキャラクタ2と敵キャラクタ4とが衝突した場合には、プレーヤキャラクタ2の攻撃がヒットしたと判定する。また、Eアクション処理が実行中では、火炎球が付与された手の手判定領域30が敵キャラクタ4に衝突した場合にも同様にプレーヤキャラクタ2の攻撃がヒットしたと判定する。
反対にCアクション処理が実行されていない状態で、敵キャラクタ4とプレーヤキャラクタ2とが衝突した場合には、敵キャラクタの4の攻撃がヒットしたと判定する。
【0181】
そして、こうした攻撃判定処理の結果に応じて、処理部200はプレーヤキャラクタ2の耐力値の更新を行い(ステップS52)、また敵キャラクタ4の消滅処理を行う(ステップS54)。つまり、敵キャラクタ4の攻撃がヒットしたらプレーヤキャラクタ2の耐力値を攻撃に応じて減算し、プレーヤキャラクタ2の攻撃がヒットしたら敵キャラクタ4がやられたように表示制御する。
【0182】
次いで、処理部200は、所定のゲーム終了条件を満たすか否かを判定する(ステップS56)。本実施形態ではプレーヤキャラクタ2がゲームステージの最上部まで上りついた場合にゲームクリアとなり、プレーヤキャラクタ2が敵キャラクタ4の攻撃を受けて耐力値が「0」になるとゲームオーバーとなる。
【0183】
これら何れのゲーム終了条件も満たさなければ(ステップS56のNO)、図15のステップS10に戻る。何れかのゲーム終了条件を満たしていれば、処理部200は満たしたゲーム終了条件に応じたエンディング画面を表示するなどのゲーム終了処理を実行して(ステップS58)、ゲーム実行に係る一連の処理を終了する。
【0184】
以上、本実施形態によれば、タッチ継続時間やスライド速度、スライド方向などタッチ操作の状況を示すパラメータに基づいてAアクション〜Eアクションの操作入力を判定し、プレーヤキャラクタに判定した操作入力に対応するアクションをさせることができる。つまり、プレーヤにとってみればタッチ操作だけで、ロッククライミング風のゲームをプレイすることができる。
【0185】
また、各アクションを実行するに当たり伸長させる腕を、左右順番に選択することを基本に選択しつつ、左右何れかの手のみ壁面突起8を掴んでいる場合には掴み順の履歴に係わらず放れている手の側の腕を選択したり、両方の手が放れている場合にはスライド方向536の左/右方向の側の腕を選択するといったように、プレーヤキャラクタが本物のロッククライマであるかのように自然に見える腕運び(伸縮部位の選択)を実現できる。
【0186】
〔変形例〕
以上、本発明を適用した実施形態について説明したが、本発明の適用形態はこれに限定されるものではなく適宜構成要素の追加・省略・変更を施すことができる。
【0187】
[変形例 その1]
例えば、上記実施形態のBアクション制御処理では、タッチオフを検出時点で手判定領域30内の壁面突起8を伸長目標地点として選択する構成となっているが、図23に示すように、タッチオフが検出されず(ステップS184のNO)、腕を伸長制御した後に随時伸長対象の腕の側の手判定領域30内に存在する壁面突起8を伸長目標地点として選択し(ステップS189)、タッチオフを検出した場合には(ステップS184のYES)、上記実施形態のステップS190に代えて、随時選択によって伸長目標地点に設定された壁面突起の有無で分岐する処理を行う(ステップS191)、としても良い。
この場合の随時選択には、手判定領域30内に壁面突起8が無い場合に「選択対象無し」を選択することも含まれる。
【0188】
[変形例 その2]
また、上記実施形態では、第1液晶ディスプレイ1406にマップ画面W2を表示し、第2液晶ディスプレイ1408にプレーヤキャラクタ2の周辺拡大図となるゲーム画面W4を表示させ、タッチパネル1409へタッチ操作する構成としたが、周辺拡大図とタッチ操作とを必ずしも同一画面上で行わない構成としても良い。
【0189】
例えば、図24に示すように、第1液晶ディスプレイ1406にゲーム画面W4を表示させ、処理部200で、第2液晶ディスプレイ1408の画面表示範囲内に、右腕・左腕・体の各操作部位それぞれを指示する指示領域60,62,64(図中の破線で囲まれた各範囲)を設定するとともに、同ディスプレイにガイド表示66を表示してそれら指示領域を明示した操作画面W6を表示させる。同図の例では指示領域60,62は、それぞれ右手・左手を伸縮対象として指示する領域であり、指示領域64は体部分を操作部位として指示する領域である。
【0190】
こうした構成を採用した場合の処理の流れとしては、図18のステップS112〜S120、及び図19のステップS174〜S180を省略し、指示領域60へタッチ操作された場合を処理対象の腕に選択する構成とする。そして、図18のステップS130及び図19のステップS186では、処理対象となった腕の側の手が単独で掴み状態ならば反対側の手にも現在掴んでいる壁面突起8を掴ませた上で、処理対象の腕の側の手を放して伸長制御させるように動作制御させる。そうすることによって、プレーヤが伸ばす腕を常に任意に選択できる操作システムとすることができる。
尚、指示領域64へのタッチ操作の検出は、Cアクションにおける体判定領域32へのタッチ操作検出と同じとして扱うことができる。
【0191】
[変形例 その3]
また、上記実施形態ではプレーヤキャラクタ2の腕を伸縮部位とする構成であったが、伸縮部位は腕に限らず、足、鼻、尾などその他の体の部位でも良い。更には、例えば図25(1)〜図25(3)の画面変化を連続的に示す図で示すように、プレーヤキャラクタ2が所持するアイテムとしても良い。同図の例では、プレーヤキャラクタ2は左右の腕に、伸縮自在な粘着性のジェル68を放出して壁面突起8に吸着させるとしても良い。勿論その他、放出・巻き上げ自在な紐やケーブル、鞭を放って壁面突起8に引っかけるとしても良いし、プレーヤキャラクタ2が伸縮自在なロッドを持っていて、ロッドを伸ばしてその先端を壁面突起8に差し込んで固定し、ロッドの伸縮とともに身体ごと移動するといった構成とすることもできる。
【0192】
[変形例 その4]
また、上記実施形態では、壁面突起8を掴んでいる手の手判定領域30をタッチすることで、壁面突起8を離すように制御しているがこれに限らない。例えば、体判定領域32をダブルタップすることで全ての手を離すように制御することもできる。具体的には、図17のステップS66とステップS68の間に、体判定領域32がダブルタップされたか否かを判定するステップを設ける。そして、否定ならばステップS68に移行し、肯定ならば右手掴み状態フラグ516e及び左手掴み状態フラグ516fを「0」に変更し、操作コマンド判定処理を終了する構成とすると良い。
【0193】
[変形例 その5]
また、上記実施形態のEアクションでは、スタイラスペン1416でタッチオンしてから長押し判定基準時間を超えてその位置を変えずに維持すると、現在壁面突起8を掴んでいない手に火炎エネルギーグラフィックス36が付与され、その状態から、プレーヤがスタイラスペン1416で攻撃したい敵キャラクタ4に向けてスライド操作をすると、プレーヤキャラクタ2が火炎エネルギーグラフィックス36が付与された側の腕をスライド操作の入力ベクトル20の方向へ伸長し攻撃する構成となっているが、これに限らない。
例えば、所定のアイテム(攻撃可能になるアイテム)を取得すると攻撃可能モードになり、画面内の敵キャラクタ4をタップすると、公知のシューティングゲームと同様に、プレーヤキャラクタ2が自動で当該敵キャラクタ4に向けて火炎球(つまりは弾)を発射する構成を追加、或いは置換することができる。
【0194】
[変形例 その6]
また、本発明を実現するゲーム装置は、上記実施形態のような携帯型ゲーム装置に限らず、表示画面への接触位置検出手段、具体的にはタッチパネルを備えた情報処理装置であれば、ウルトラモバイルPCやポケットPCと称される小型パソコン、ノートパソコン、PDA(Personal Data Assistance)、スマートフォンとも称される携帯電話/PHS(Personal Handy-phone System)とPDAを融合させた携帯端末装置、デジタルオーディオプレーヤなどの装置を用いることができる。
【0195】
より具体的には、図26に示すように、液晶ディスプレイ1508の表示域をカバーするタッチパネル1509を備えた携帯端末装置1500を用いることができる。この携帯端末装置1500は、スピーカ1510とマイク1511及び基地局との交信に使用される無線装置を備え、携帯電話又はPHSとして機能する。更に、携帯端末装置1500は、アプリケーションプログラムをメモリカード読取装置1518でメモリカード1540から読み出したり、通信回線1に接続して外部装置からダウンロードして取得し、制御基板1550に搭載されたCPU等のプロセッサで実行することができる。また、各種操作入力をするための方向入力キー1502を備え、上下左右方向のキー入力をすることができる。
【0196】
従って、上記実施形態のゲームプログラム502や各種データをメモリカード1540等から読み込ませることとし、方向入力キー1502に移動操作入力を割り当て、タッチパネル1509へのタッチ操作に攻撃操作入力を割り当てることで、上記実施形態と同様に本発明を実現するゲーム装置として機能させることができる。
【0197】
また、上記実施形態ではアクションゲームを例に挙げたが、RPG、格闘ゲームなどその他のジャンルのゲームにも同様に適用できる。
【図面の簡単な説明】
【0198】
【図1】携帯型ゲーム装置の構成例を説明するための外観図。
【図2】ゲームの概要を説明するための図。
【図3】Aアクションとその操作入力について説明するための図。
【図4】Aアクションとその操作入力について説明するための図。
【図5】Bアクションとその操作入力について説明するための図。
【図6】Bアクションとその操作入力について説明するための図。
【図7】Cアクションとその操作入力について説明するための図。
【図8】Cアクションとその操作入力について説明するための図。
【図9】Dアクションとその操作入力について説明するための図。
【図10】Eアクションとその操作入力について説明するための図。
【図11】機能構成例を説明するための機能ブロック図。
【図12】腕ステータスデータのデータ構成例を示すデータ構成図。
【図13】判定領域設定データのデータ構成例を示すデータ構成図。
【図14】タッチ操作データのデータ構成例を示すデータ構成図。
【図15】主たる処理の流れを説明するためのフローチャート。
【図16】図15より続くフローチャート。
【図17】操作コマンド判定処理の流れを説明するためのフローチャート。
【図18】Aアクション処理の流れを説明するためのフローチャート。
【図19】Bアクション処理の流れを説明するためのフローチャート。
【図20】Cアクション処理の流れを説明するためのフローチャート。
【図21】Dアクション処理の流れを説明するためのフローチャート。
【図22】Eアクション処理の流れを説明するためのフローチャート。
【図23】Bアクション処理の変形例における処理の流れを説明するためのフローチャート。
【図24】画面構成及び操作入力方法の変形例を説明するための図。
【図25】伸縮部位の変形例を示すゲーム画面例を示す図。
【図26】ゲーム装置の変形例を示す外観図。
【符号の説明】
【0199】
2 プレーヤキャラクタ
4 敵キャラクタ
6 壁面
8 壁面突起
20 入力ベクトル
21 相似ベクトル
22 壁面突起選択領域
30 手判定領域
32 体判定領域
36 火炎エネルギー
100 操作入力部
102 方向入力部
104 接触位置検出部
200 処理部
210 ゲーム演算部
212 タッチ操作パラメータ部
214 操作コマンド判定部
216 アクション制御部
500 記憶部
502 ゲームプログラム
514 プレーヤキャラクタステータスデータ
516 腕ステータスデータ
516e 右手掴み状態フラグ
516f 左手掴み状態フラグ
516g 右手掴み順フラグ
516h 左手掴み順フラグ
518 判定領域設定データ
522 操作コマンド判定データ
530 タッチ操作データ
532 タッチ操作パラメータデータ
533 タッチ継続時間
534 スライド距離
535 スライド速度
536 スライド方向
1400 携帯型ゲーム装置
1402 方向入力キー
1408 第2液晶ディスプレイ
1409 タッチパネル
1440 メモリカード
1450 制御ユニット

【特許請求の範囲】
【請求項1】
コンピュータに、伸縮可能な部位であって仮想空間中に配置された被把持部を把持する伸縮部位を有するプレーヤキャラクタを、タッチスクリーンへのプレーヤのタッチ操作に基づいて表示制御させて所定のゲームを実行させるためのプログラムであって、
タッチ操作されているタッチ位置に基づいて、タッチ継続時間及びスライド操作速度を含むタッチ操作状況を表すパラメータを算出する操作状況算出手段、
前記伸縮部位の把持目標となる被把持部を自動選択し、前記伸縮部位を伸縮させて把持させる自動把持アクションと、前記伸縮部位をタッチ操作に連動して伸縮させて被把持部を把持させる手動把持アクションとを少なくとも含む伸縮動作アクションの中から発動する伸縮動作アクションを、前記パラメータに基づいて選択する発動アクション選択手段、
前記発動アクション選択手段により選択された伸縮動作アクションを発動して前記プレーヤキャラクタを制御する制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項2】
前記発動アクション選択手段が、タッチ継続時間が所定の継続時間条件を満たした場合に前記手動把持アクションを発動させる伸縮動作アクションとして選択する手動把持アクション選択手段を有するように前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項3】
前記手動把持アクション選択手段が、タッチ継続時間が所定の継続時間条件を満たし、且つ、スライド操作速度が所定の低速度条件を満たした場合に前記手動把持アクションを発動させる伸縮動作アクションとして選択するように前記コンピュータを機能させ、
前記発動アクション選択手段が、タッチ継続時間が所定の継続時間条件を満たし、且つ、タッチ位置が変動していない不変条件を満たした場合に、前記伸縮部位をタッチオフ直前のタッチ位置変動方向に伸縮させる攻撃アクションを、発動する伸縮動作アクションとして選択する打撃アクション選択手段を有し、
前記制御手段が、前記打撃アクション選択手段による選択に応じて前記打撃アクションを実行する打撃アクション実行手段を有する、
ように前記コンピュータを機能させるための請求項2に記載のプログラム。
【請求項4】
前記発動アクション選択手段が、スライド操作速度が所定の高速度条件を満たした場合に前記自動把持アクションを発動させる伸縮動作アクションとして選択する自動把持アクション選択手段を有するように前記コンピュータを機能させるための請求項1〜3の何れか一項に記載のプログラム。
【請求項5】
前記操作状況算出手段が、前記パラメータの1つとしてスライド操作のスライド方向を算出し、
前記制御手段が、前記プレーヤキャラクタの位置と前記スライド方向とを基準に定義される所定のサーチ範囲内に存在する被把持部の中から、当該スライド方向の延長線に最寄りの被把持部を前記把持目標として前記自動把持アクションを実行する自動把持アクション実行手段を有する、
ように前記コンピュータを機能させるための請求項1〜4の何れか一項に記載のプログラム。
【請求項6】
前記制御手段が、前記伸縮部位の伸縮端部の位置をタッチ操作に連動させつつ前記伸縮端部に最寄りの被把持部を把持目標候補として随時切り替え選択し、タッチオフ時に選択されていた把持目標候補を把持目標として前記伸縮部位に把持させるように前記手動把持アクションを実行する手動把持アクション実行手段を有するように前記コンピュータを機能させるための請求項1〜5の何れか一項に記載のプログラム。
【請求項7】
前記プレーヤキャラクタは、前記伸縮部位を複数有しており、
前記制御手段が、伸縮させる前記伸縮部位を順番に切り替えるように前記コンピュータを機能させるための請求項1〜6の何れか一項に記載のプログラム。
【請求項8】
前記操作状況算出手段が、前記パラメータの1つとしてスライド操作のスライド方向を算出し、
前記発動アクション選択手段が、前記伸縮部位が被把持部を把持している状態であり、且つ、タッチ操作が前記プレーヤキャラクタのボディ部になされてスライド操作された場合に、前記被把持部を把持した状態で前記伸縮部位を伸長させて前記プレーヤキャラクタのボディ部をスライド方向に移動させた後、スライド方向と反対方向に前記プレーヤキャラクタを射出する射出アクションを、発動する伸縮動作アクションとして選択する射出アクション選択手段を有し、
前記制御手段が、前記射出アクション選択手段による選択に応じて前記射出アクションを実行する射出アクション実行手段を有する、
ように前記コンピュータを機能させるための請求項1〜6の何れか一項に記載のプログラム。
【請求項9】
前記射出アクション実行手段が、前記伸縮部位を仮想弾性体、前記ボディ部を仮想錘体にそれぞれ仮定して前記プレーヤキャラクタの射出到達位置を算出し、当該射出到達位置に向けて前記プレーヤキャラクタを移動させるように前記コンピュータを機能させるための請求項8に記載のプログラム。
【請求項10】
請求項1〜9の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項11】
伸縮可能な部位であって仮想空間中に配置された被把持部を把持する伸縮部位を有するプレーヤキャラクタを、タッチスクリーンへのプレーヤのタッチ操作に基づいて表示制御させて所定のゲームを実行するゲーム装置であって、
タッチ操作されているタッチ位置に基づいて、タッチ継続時間及びスライド操作速度を含むタッチ操作状況を表すパラメータを算出する操作状況算出手段と、
前記伸縮部位の把持目標となる被把持部を自動選択し、前記伸縮部位を伸縮させて把持させる自動把持アクションと、前記伸縮部位をタッチ操作に連動して伸縮させて被把持部を把持させる手動把持アクションとを少なくとも含む伸縮動作アクションの中から発動する伸縮動作アクションを、前記パラメータに基づいて選択する発動アクション選択手段と、
前記発動アクション選択手段により選択された伸縮動作アクションを発動して前記プレーヤキャラクタを制御する制御手段と、
を備えたゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate