(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について、図面を用いて説明する。
【0011】
なお、以下において、単に「画像」と呼ぶ場合には、「動画像」と「静止画像」との両方を含むものとする。
また、「動画像」には、次の第1処理乃至第3処理の夫々により表示される画像を含むものとする。
第1処理とは、平面画像(2D画像)におけるオブジェクト(例えばゲームキャラクタ)の夫々の動作に対して、複数枚からなる一連の静止画像を時間経過と共に連続的に切り替えて表示させる処理をいう。具体的には例えば、2次元アニメーション、いわゆるパラパラ漫画的な処理が第1処理に該当する。
第2処理とは、立体画像(3Dモデルの画像)におけるオブジェクト(例えばゲームキャラクタ)の夫々の動作に対応するゲームキャラクタの動作を設定しておき、時間経過と共に当該ゲームキャラクタの動作を変化させて表示させる処理をいう。具体的には例えば、3次元アニメーションが第2処理に該当する。
第3処理とは、オブジェクト(例えばゲームキャラクタ)の夫々の動作に対応した映像(即ち動画)を準備しておき、時間経過と共に当該映像を流していく処理をいう。
【0012】
図1は、本発明の一実施形態に係るプレイヤー端末1のハードウェア構成を示すブロック図である。
【0013】
プレイヤー端末1は、スマートフォン等で構成される。
プレイヤー端末1は、CPU(Central Processing Unit)21と、ROM(Read Only Memory)22と、RAM(Random Access Memory)23と、バス24と、入出力インターフェース25と、タッチ操作入力部26と、表示部27と、入力部28と、記憶部29と、通信部30と、ドライブ31と、タッチ圧検出部41、タッチ位置検出部42を備えている。
【0014】
CPU21は、ROM22に記録されているプログラム、又は、記憶部29からRAM23にロードされたプログラムに従って各種の処理を実行する。
RAM23には、CPU21が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【0015】
CPU21、ROM22及びRAM23は、バス24を介して相互に接続されている。このバス24にはまた、入出力インターフェース25も接続されている。入出力インターフェース25には、タッチ操作入力部26、表示部27、入力部28、記憶部29、通信部30、及びドライブ31が接続されている。
【0016】
タッチ操作入力部26は、タッチ圧検出部41及びタッチ位置検出部42を含み、プレイヤーにより入力されるタッチ操作を検出する。
ここで、タッチ操作とは、タッチ操作入力部26に対する物体の接触の操作をいう。タッチ操作入力部26に対して接触する物体は、例えばプレイヤーの指やタッチペン等である。なお、以下、タッチ操作がなされた位置を「タッチ位置」と呼び、タッチ位置の座標を「タッチ座標」と呼ぶ。
タッチ圧検出部41は、例えば感圧センサにより構成され、タッチ操作入力部26に対するタッチ操作により生じた圧力(以下、「タッチ圧」と呼ぶ)を検出する。
タッチ位置検出部42は、例えば表示部27に積層される静電容量式又は抵抗膜式(感圧式)の位置入力センサにより構成され、タッチ座標を検出する。
表示部27は、液晶等のディスプレイにより構成され、ゲームに関する画像等、各種画像を表示する。
このように、本実施形態では、タッチ操作入力部26及び表示部27により、タッチパネルが構成されている。
なお、本明細書で「表示媒体」と呼ぶ場合、単に表示部27を意味せず、タッチ操作入力部26及び表示部27から構成される「タッチパネル」を意味する。
【0017】
ここで、タッチパネルにおけるタッチ操作の種類としては、例えば、スワイプとフリックが存在する。
ただし、スワイプもフリックも、表示媒体への物体の接触が開始された第1状態から、表示媒体への接触が維持されて物体の位置が変化又は維持する第2状態(タッチ位置が変化又は維持する第2状態)を経て、表示媒体への物体の接触が解除される第3状態(物体が表示媒体から離間する第3状態)まで至る一連の操作である点は変わらない。そこで、本明細書では、このような一連の操作をまとめて「スワイプ」と呼ぶことにする。
換言すると、本明細書でいう「スワイプ」は、一般的に呼ばれるスワイプの他、上述のフリック等も含まれる広義な概念である。
【0018】
入力部28は、各種ハードウェア釦等で構成され、プレイヤーの指示操作に応じて各種情報を入力する。
記憶部29は、DRAM(Dynamic Random Access Memory)等で構成され、各種データを記憶する。
通信部30は、図示せぬインターネットを含むネットワークを介して他の装置(図示せぬサーバや図示せぬ他のプレイヤー端末)との間で行う通信を制御する。
【0019】
ドライブ31は、必要に応じて設けられる。ドライブ31には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア32が適宜装着される。ドライブ31によってリムーバブルメディア32から読み出されたプログラムは、必要に応じて記憶部29にインストールされる。また、リムーバブルメディア32は、記憶部29に記憶されている各種データも、記憶部29と同様に記憶することができる。
【0020】
このような
図1のプレイヤー端末1の各種ハードウェアと各種ソフトウェアとの協働により、プレイヤー端末1でゲームの実行が可能になる。
例えば本実施形態では、
図2に示すような3DバーチャルパッドVPを用いてゲームキャラクタCを操作するゲームが、プレイヤー端末1で実行可能になる。
即ち、
図2は、
図1のプレイヤー端末1に表示される3DバーチャルパッドVPによるゲームキャラクタCの基本的な操作方法を説明する図である。
【0021】
図2の左方には、プレイヤーがタッチパネルでスワイプを行うことでゲームキャラクタCの移動を指示操作するための仮想コントローラとして、3DバーチャルパッドVPが表されている。
ここで、3DバーチャルパッドVPとは、物理的な十字ボタンを模したGUI(Graphical User Interface)である。本実施形態の3DバーチャルパッドVPは、円の形状を有しており、その中心に対するプレイヤーのタッチ位置の方向により、ゲームキャラクタCの移動方向を指示すると共に、当該プレイヤーのタッチ操作がなされた際のタッチ圧により、ゲームキャラクタCの移動速度(加減速)を指示するためのGUIである。
【0022】
図2の右方には、プレイヤーのタッチパネルへのスワイプに応じて、ゲーム内の仮想空間を移動するゲームキャラクタCが表されている。
ここで、ゲームキャラクタCとは、ゲーム内のオブジェクトのうち、プレイヤーが操作可能なオブジェクトを意味する。つまり、ここでいう「ゲームキャラクタC」とは、
図2に示す人間を模したオブジェクトだけでなく、自動車や飛行機、球技におけるボール等の無生物的なオブジェクトも含む広義の概念である。
【0023】
本実施形態では、タッチパネルから離間していたプレイヤーの指等が当該タッチパネルに接触した時点、即ちスワイプの第1状態の時点では、3DバーチャルパッドVPは、プレイヤーが視認可能な状態ではないものとする。
その後、スワイプの第2状態に移行すると、
図2の上方に示すように、スワイプの第1状態におけるタッチ位置を表示面上の中心或いは重心として、3DバーチャルパッドVPがプレイヤーに視認可能な状態で表示される。
つまり、プレイヤーにとっては、タッチパネルに対する最初のタッチ位置に、3DバーチャルパッドVPがあたかも出現したかのように視認される。
そして、プレイヤーが所定方向にスワイプをすると(スワイプの第2状態に移行すると)、ゲーム内の仮想空間において、所定方向に対応する方向にゲームキャラクタCが低速で歩き始める。
【0024】
さらに、本実施形態では、スワイプの第2状態(指を離間させない状態、即ちスワイプの第3状態に移行する前の状態)において、プレイヤーがタッチパネルを強く押下すると、タッチ圧(タッチ圧検出部41の出力値)が大きくなる。これにより、
図2の下方に示す様に、そのタッチ圧の強さに応じた移動速度となるように、ゲームキャラクタCは加速して移動するようになる。
【0025】
このように、タッチパネルを強く押し続けてゲームキャラクタCが加速させていく操作は、例えば、自動車運転でのアクセル操作に類似するため、プレイヤーにとって直感的な操作である。
また、プレイヤーにとっては、タッチパネルに対するスワイプに加えて押下度合の強弱の操作をするだけで、ゲームキャラクタCを縦横無尽に加減速させながら走らせることができる。これにより、3DバーチャルパッドVPは、既存の仮想コントローラと比べ、プレイヤーの指がタッチパネルの画面上で移動する範囲が小さくなるため、タッチパネルの画面上に表示されているオブジェクト(ゲームキャラクタC含む)の視認性を損なわせないようにすることができる。
即ち、スマートフォンのように比較的小さな表示画面を持つ端末をプレイヤー端末1として採用するとき、画面上に一時に表示できる量には限りがある。しかし、本実施形態のように、タッチパネルを指一本で押下するだけでゲームキャラクタCを自在に動かせることができるようにして、プレイヤーの指の移動面積を小さくすることができれば、ゲーム実行中の表示面において、オブジェクト(ゲームキャラクタC含む)の視認性を確保することができる。
【0026】
上述した様に、本実施形態では、タッチ圧(タッチ圧検出部41の出力値)に応じて、ゲームキャラクタCの移動速度(加減速量)が変化する。しかしながら、タッチ圧の生データの時系列は、プレイヤーが自然人である以上、安定せずに非連続(振動を繰り返したもの)になる。従って、タッチ圧の生データそのものを用いてゲームキャラクタCの移動速度を決定すると、ゲームキャラクタCの移動(加減速)は不安定となってしまう。
そこで、本実施形態では、
図3に示す様に、タッチ圧を入力パラメータとしてラチェット関数に入力し、当該ラチェット関数の出力を用いてゲームキャラクタCの移動速度を決定する、という手法が採用されている。
【0027】
ここで、ラチェット関数とは、所定の物理量を入力パラメータとして入力する関数であって、当該所定の物理量が変動しても、これまでに入力された当該所定の物理量の最大量を出力する関数をいう。
【0028】
図3の左方に示されているグラフは、タッチ圧(タッチ圧検出部41の出力値)の生データの時系列の推移を示している。即ち、
図3の左方において、縦軸はタッチ圧(タッチ圧検出部41の出力値)を示し、横軸は時間を示している。つまり、グラフが連続している横軸の長さは、プレイヤーの指等がタッチパネルに接触している時間の長さを表す。
このように、タッチ圧(タッチ圧検出部41の出力値)の生データの時系列は、非連続(振動が激しい)ことから、タッチ圧の生データをゲームキャラクタCの移動速度の設定に用いると、ゲームキャラクタCが不必要に加減速してしまい(加減速が非連続になってしまい)、不適である。
そこで、本実施形態では、
図3に示すように、タッチ圧をラチェット関数の入力パラメータとして入力して、当該ラチェット関数の出力値を、ゲームキャラクタCの移動速度の設定に用いる、という手法が採用される。
【0029】
これにより、
図4に示す様に、ラチェット関数の出力値、即ちタッチ圧の最大値を用いて、ゲームキャラクタCの移動速度を決定することが可能になる。
つまり、ラチェット関数を適用することにより、
図4の左方に示す非連続的なタッチ圧の変化を、
図4の右方に示すように連続的な変化に変換することができる。このような連続的な変化を用いて、ゲームキャラクタCの移動速度を設定することで、ゲームキャラクタCは連続した加減速をすることができる。具体的には例えばタッチ圧が下がっても、タッチパネルからプレイヤーの指等が離間されない限り、ゲームキャラクタCは、タッチ圧の最大値に応じた速度で、即ち不用意に移動速度を低下させずに、走り続けることができる。
このようにして、プレイヤーは、表示画面上の少ない面積の指の移動をするだけで、プレイヤー端末1のタッチパネルを強く押し続けなくても、直感的にゲームキャラクタCの移動操作をすることができる。
【0030】
さらに、このようなラチェット関数を適用することで、
図5に示す様に、ゲームキャラクタCの移動速度を制御しながら、当該ゲームキャラクタCをジャンプさせる等の割り込み処理を適切に行うこともできる。
図5は、割り込み処理の振る舞いを表した図である。
【0031】
ここで、割り込み処理とは、所定の処理実行中に、実行要求が外部(所定の処理の実行要求とは別の場所)から与えられる別の処理をいう。なお、外部から与えられる実行要求を、以下「割り込み」と呼ぶ。
本実施形態では、所定の処理としては、設定された移動方向に設定された移動速度でゲームキャラクタCを移動させる処理が採用される。そして、例えばゲームキャラクタCをジャンプさせる処理が、割り込み処理として採用される。つまり、設定された移動方向に設定された移動速度でゲームキャラクタCが移動している最中に、割り込み処理が発生すると、当該ゲームキャラクタCはジャンプすることになる。
なお、本実施形態では、割り込み処理はゲームキャラクタCをジャンプさせる処理とするが、特にこれに限定されず、例えばゲームキャラクタCの移動速度を減速させる処理でもよいし、また例えばゲームキャラクタCに所定の攻撃動作をさせる処理でもよい。
【0032】
ここで、割り込みの発生の条件は、特に限定されないが、本実施形態では、プレイヤーの指がタッチパネルに接触されている状態(それゆえ、ラチェット関数の出力値に応じた移動速度でゲームキャラクタCが移動している状態)で、極短時間(例えば100ミリ秒)だけタッチパネルへの押下度合を強め、その後押下度合を弱める操作が検出されるという条件が採用されている。
ここで、極短時間だけタッチパネルへの押下度合を強めて、その後押下度合を弱める操作をした場合、
図5の左方のグラフのように、極短時間だけタッチ圧が急激に変化する。
図5に示す様に、この極短時間のタッチ圧の急激な変化が検出された場合、割り込みが発生する。これにより、ゲームキャラクタCはジャンプすることになる。
ここで、この極短時間のタッチ圧の変化がそのままラチェット関数に入力(適用)されてしまうと、当該ラチェット関数の出力が変化してしまうことになる。そこで、この極短時間のタッチ圧の急激な変化が検出された場合、タッチ圧(生データ)はラチェット関数に入力されず、予め決められた所定値(例えば0)が入力される。これにより、ラチェット関数の出力値は変化せず、割り込みが発生しても、ゲームキャラクタCは等速度運動を続けることができる。
【0033】
このように本実施形態では、タッチ圧を、ラチェット関数の入力パラメータとして用いると共に、割り込みの発生要否を判定するものとして用いる。
これにより、プレイヤーは、タッチパネルに指を接触させた後、当該タッチパネルに対する押下度合の強弱を変化させる操作をするだけで、ゲームキャラクタCが移動する際の加速及び瞬発的な動き(ジャンプ等)の両方を指示することができる。そして、このような指示操作をするGUIが、3DバーチャルパッドVPである。
即ち、ゲームキャラクタCの加速と瞬間的な動きの両方の操作を、タッチパネル上の3DバーチャルパッドVPに対する押下度合の加減で実現することができる。例えば、プレイヤーは、3DバーチャルパッドVPに対して、ある程度長い時間(例えば300ミリ秒)押下度合を強めていくことでゲームキャラクタCを加速させ、また、瞬間的(例えば100ミリ秒程度の短時間)に強く押してすぐに弱めることで当該ゲームキャラクタCに瞬発的な動き(ジャンプ等)をさせることができる。
このように3DバーチャルパッドVPは、スマートフォン等の表示面の少ない面積の指の移動で、ゲームキャラクタCの移動の加減速命令と瞬発的な移動命令を途切れなく入力することができるGUIである。
【0034】
以上説明したラチェット関数や割り込みを適用したゲームキャラクタCの移動の制御処理は、プレイヤー端末1におけるハードウェアとソフトウェアの協働により実現される。この場合、プレイヤー端末1は、例えば、
図6に示す機能的構成を有することができる。
【0035】
図6に示すように、プレイヤー端末1のCPU21においては、割り込み可否判定部51と、ラチェット関数出力部52と、ゲームキャラクタ動作量決定部53と、ゲームキャラクタ動作制御実行部54と、表示制御部55とが機能する。
さらに、記憶部29の一領域として、トランスミッション関数DB61が設けされている。
なお、図示はしないが、前提として、3DバーチャルパッドVPによるゲームキャラクタCを操作するゲームについて、その実行を制御する機能ブロック(ゲーム実行部)がCPU21において機能しているものとする。
【0036】
タッチ圧検出部41は、上述した様に、タッチパネル(表示部27)への指の押下度合に応じて変化する、タッチ圧を検出する。
タッチ位置検出部42は、タッチパネルへのタッチ位置(タッチ座標)を検出する。
具体的には、タッチ操作入力部26のうち、タッチ位置検出部42は、プレイヤーのタッチ座標(x、y)を検出し、タッチ圧検出部41は、プレイヤーのタッチ操作時のタッチ圧を示す値(z=0〜1)を検出する。ここで、z=0はタッチ圧がないことを意味し、z=1はタッチ圧が検出可能な最大値であることを意味する。
【0037】
割り込み可否判定部51は、タッチ圧検出部41の検出結果(タッチ圧)を入力し、当該検出結果の変化時間及び変化量に基づいて割り込み処理をするか否かを判定する。
本実施形態では、割り込み可否判定部51は、タッチ圧検出部41の検出結果に基づいて、「極短時間(例えば100ミリ秒)だけタッチパネルへの押下度合を強め、その後押下度合を弱める操作」がなされたか否かを検出することで、割り込み処理をするか否かを判定する。
ここで、「極短時間だけタッチパネルへの押下度合を強め、その後押下度合を弱める操作」の検出手法は、タッチ圧検出部41の検出結果(タッチ圧)の変化時間及び変化量に基づく手法であれば足りる。
例えば、本実施形態では
図7に示す手法が採用されている。
即ち、
図7は、
図6の機能的構成のプレイヤー端末のうち割り込み可否判定部51に適用された、割り込みの要否の判定手法の一例を説明する図である。
【0038】
図7において、縦軸がタッチ圧を表し、横軸が時間を表している。なお、縦軸の最低値は、必ずしもタッチ圧が0を意味せず、所定の値であるものとする。
図7に示すように、タッチ圧の局地的変化が時間α内に起きており(変化時間が時間α内であり)、変化量dが閾値βを上回る場合、割り込み可否判定部51は、「極短時間だけタッチパネルへの押下度合を強め、その後押下度合を弱める操作」であると検出し、割り込みをすると判定する、それ以外の場合割り込みをしないと判定する。
なお、時間αと閾値βは、設計者等が任意に変更可能な値である。
【0039】
図6に戻り、割り込み可否判定部51は、割り込みをしないと判定した場合、タッチ圧検出部41の検出結果(タッチ圧)をそのままラチェット関数出力部52に提供する。
【0040】
これに対して、割り込み可否判定部51は、割り込みをすると判定した場合、ゲームキャラクタ動作制御実行部54に対して割り込みをする。この場合、割り込み可否判定部51は、タッチ圧検出部41の検出結果(タッチ圧)をラチェット関数出力部52に提供することを禁止するか、若しくは当該検出結果を加工してラチェット関数出力部52に提供する。
具体的には例えばタッチ圧検出部41の検出結果(タッチ圧)が上述のようにz=0〜1の値で与えられる場合、割り込み可否判定部51は、割り込み処理をすると判定すると、当該検出結果を加工した値として「0」をラチェット関数出力部52に提供する。
ここで、割り込みが発生する場合にも、タッチ圧がそのまま、ラチェット関数出力部52に提供されると、次のような不具合が生じる。即ち、プレイヤーは割り込み(ゲームキャラクタCのジャンプ指示等)のためにタッチ圧を強めただけなのに、当該タッチ圧がそのままラチェット関数に入力されると、最大値が更新されてしまう場合があり得る。このような場合、ラチェット関数の出力が上昇し、それに伴いゲームキャラクタCの移動速度が上昇してしまう。つまり、プレイヤーは加速の指示操作をしていないと思っているにも関わらず、ゲームキャラクタCが加速してしまうことになる、といった不具合が生じる。
そこで、このような不具合が生ずることを防止すべく、本実施形態では、割り込みをすると判定されたた場合、タッチ圧そのものではなく、その加工値「0」がラチェット関数出力部52に供給される。これにより、プレイヤーが加速指示ではなく割り込み指示(ゲームキャラクタCのジャンプ指示等)をした場合に、ラチェット関数の出力が不用意に上昇してしまうことを防止し、その結果、ゲームキャラクタCの移動速度を等速度に保持することができる。
【0041】
ラチェット関数出力部52は、タッチ圧検出部41の検出結果(より正確には割り込みをする場合には「0」等の加工値)を所定のラチェット関数に入力して、当該ラチェット関数の出力値を、ゲームキャラクタ動作量決定部53に供給する。
ゲームキャラクタ動作量決定部53は、ラチェット関数の出力に応じて、ゲームキャラクタCの移動速度を決定する。
【0042】
ここで、移動速度の決定手法は、ラチェット関数の出力量に基づいて決定する手法であれば足り、特に限定されない。
本実施形態では、ラチェット関数の出力をゲームキャラクタCの移動速度に変換する関数(以下、「トランスミッション関数」と呼ぶ)として、複数種類のパターンが予めトランスミッション関数DB61に保持されている。そして、これらの複数のパターンの中から所定のパターンのトランスミッション関数を抽出して、抽出したトランスミッション関数を利用してゲームキャラクタCの移動速度を決定する、という手法が採用されている。
【0043】
図8及び
図9は、
図6の機能的構成のプレイヤー端末1のうちゲームキャラクタ動作量決定部53に適用される、トランスミッション関数の各種例を表す図である。
図8及び
図9において、縦軸がトランスミッション関数の出力、即ちゲームキャラクタCの移動速度を表し、横軸がトランスミッション関数の入力、即ちラチェット関数の出力を表している。
図8(A)の例のトランスミッション関数は、人間のゲームキャラクタCが走るときの加速の様子を模したものである。
図8(B)の例のトランスミッション関数は、自動車の加速の様子を模したもの、即ち、多段階のギアチェンジを模したものである。
図8(C)の例のトランスミッション関数は、飛行機の加速の様子を模したもの、即ち所定の瞬間まで徐々に加速し、当該所定の瞬間から指数関数的に一気に加速するようなジェットエンジンの振る舞いを模したものである。
【0044】
このように、
図8の例のトランスミッション関数は、ラチェット関数の出力が増大するほど、ゲームキャラクタCの移動速度も増えていく各種パターン、即ち、加速をさせるパターンの例であった。
しかしながら、トランスミッション関数は、加速をさせるパターンに特に限定されず、
図9に示す様に、減速を伴うパターンやリミットを伴うパターン、換言すると非線形なパターンを採用することもできる。
図9(A)の例のトランスミッション関数は、ブレーキによる減速処理を行うような振る舞いを模したものである。
図9(B)に示すトランスミッション関数は、加速の後に減速する乗り物の制御を行うような振る舞いを模したものである。
図9(C)に示すトランスミッション関数は、例えば重い荷物を持っているために一定以上のスピードで走れない人間を表すような振る舞いを模したもの、即ち、移動速度にリミットを設けたものである。
なお、
図8及び
図9に示すトランスミッション関数は、例示に過ぎず、多種多彩な状況やゲームキャラクタCの特徴に応じて、各種各様なパターンのものを採用することができる。
このように、複数パターンのトランスミッション関数を選択的に切り替えて使用することにより、人間、自動車、飛行機等、様々なゲームキャラクタCの移動用に適用することが容易にできる。
また、敵に魔法をかけられて、移動が遅くなった状態等、ゲーム内の各種状態に応じた移動速度についても、複数パターンのトランスミッション関数を選択的に切り替えて使用することで容易に実現可能になる。
【0045】
図6に戻り、ゲームキャラクタ動作制御実行部54は、ゲームキャラクタ動作量決定部53で決定された移動速度で、タッチ位置検出部42の検出結果に基づく移動方向に、ゲームキャラクタCを移動させる制御を実行する。
つまり、ゲームキャラクタ動作制御実行部54は、ゲームキャラクタ動作量決定部53により選択された加速や減速方法(トランスミッション関数の所定パターン)に基づいて決定される移動速度で、タッチ位置検出部42により検出されたタッチ位置で決定される方向へ、ゲームキャラクタCを移動させる制御を実行する。
また、このようなキャラクタの移動中に割り込み可否判定部51からの割り込みが発生した場合、ゲームキャラクタ動作制御実行部54は、所定の割り込み処理(例えばゲームキャラクタCをジャンプさせる制御処理)を実行する。
【0046】
表示制御部55は、ゲームキャラクタ動作制御実行部54で動作が制御されたゲームキャラクタCを、ゲーム内の仮想空間に配置して表示部27に表示させる制御を実行する。
【0047】
表示制御部55はまた、3DバーチャルパッドVPを表示部27に表示させる制御も実行する。
即ち、ゲームキャラクタ動作制御実行部54は、タッチ位置検出部42の検出結果に基づいて、スワイプを検出し、そのスワイプの状態を表示制御部55に通知する。
表示制御部55は、3DバーチャルパッドVPを、表示部27の表示面のうちスワイプの第1状態におけるタッチ位置に、その中心がくるように配置させて、当該表示部27に表示させる制御を実行する。
ゲームキャラクタ動作制御実行部54は、当該スワイプの第2状態における物体の移動方向(バーチャルパッドVPの中心から現在の指のタッチ位置に向かう方向)に基づいて、ゲームキャラクタCの移動方向を決定する。
また、ゲームキャラクタ動作量決定部53は、当該スワイプの第2状態におけるラチェット関数の出力に応じて、ゲームキャラクタCの移動速度を決定する。
【0048】
図10は、ゲームキャラクタ動作制御実行部54によるゲームキャラクタCの動作の制御の具体例を示す図である。
図10において、縦軸はタッチ圧又は移動速度を示し、横軸は時間を示す。点線TPは、タッチ圧(タッチ圧検出部41の出力値)の時間推移を表している。実線CSは、当該タッチ圧を入力した際のラチェット関数の出力の時間推移を示している。
図10の例では、
図8(A)のトランスミッション関数が採用されている。つまり、実線CSは、そのままゲームキャラクタCの移動速度も示しているといえる。
【0049】
図10に示すように、本実施例では、プレイヤーがタッチパネルへの押下度合を徐々に増加させ、一定の押下度合になったところで、押下度合を緩める操作をしている。プレイヤーは、自然人であるので、押下度合を徐々に増加させているつもりでも、実際のタッチ圧TPは変動して不連続になる。しかしながら、ラチェット関数を採用しているので、その出力に基づく移動速度CSは、連続的に増加していく。つまり、ゲームキャラクタCは、自然に加速していくことができる。
そして、プレイヤーが押下度合を緩める直前がタッチ圧TPの最大値となるため、それ以降、移動速度CSは定速度になる。つまり、ゲームキャラクタCは、等速で走り続けることになる。
このように、ラチェット関数を採用することで、プレイヤーは、ゲームキャラクタCが目的の速度に達した後は、タッチパネルへの押下度合を弱めることができるため、その後、割り込みを発生させるための瞬間的な押圧操作をすることができるようになる。ここで、瞬間的な押圧操作とは、上述したように、極短時間(例えば100ミリ秒)だけタッチパネルへの押下度合を強めて、その後押下度合を弱める操作を意味する。
図10の例では、プレイヤーは、3回の瞬間的な押圧操作をしていることがわかる。この瞬間的な押圧操作は、
図7を用いて上述した様に、タッチ圧TPの局地的変化が時間α内に起きており(変化時間が時間α内であり)、変化量dが閾値βを上回るという条件が満たされたときに検出される。そして、このような瞬間的な押圧操作が検出されると、割り込みが発生し、ゲームキャラクタCはジャンプする。
ここで注意すべきは、ゲームキャラクタCの移動速度は、0になるわけではく(即ちゲームキャラクタCは静止するわけではなく)、一定速度を保持している(即ちゲームキャラクタCは等速で走り続けながらジャンプをする)という点である。この点は、上述した様に、タッチ圧TPの値をそのままラチェット関数に入力させるわけではなく、タッチ圧TPの加工値(例えば0)をラチェット関数に入力させることで可能になる。
【0050】
ここで、従来のハードウェアのコントローラ等を用い、テレビジョン受像機等をモニタとして用いるゲームでは、ゲームキャラクタCを走らせながらジャンプをする等の指示操作は2本の指により行っていた。つまり、プレイヤーは、ゲームキャラクタCの移動(移動方向及び移動速度)の指示は右手の指で、ゲームキャラクタCのジャンプは左手の指で、別々にコントローラ等を操作することで、ゲームキャラクタCを走らせながらジャンプをする等の指示操作を実現していた。
しかしながら、タッチパネルの表示面積がさほど大きくないスマートフォン等のプレイヤー端末1において、指2本を用いたタッチ操作を採用することは、ゲームキャラクタC等の表示を妨げることとなり不適である。
そこで、本実施形態のようにラチェット関数を採用することで、プレイヤーは、従来からあるスワイプと、押下度合の強弱操作とを組合せたタッチ操作、つまり、指一本のタッチ操作をするだけで、ゲームキャラクタCを走らせながらジャンプをする等の操作指示をすることが容易にできるようになる。
【0051】
次に、
図11を参照して、
図6の機能的構成を有するプレイヤー端末1が実行する処理の流れについて説明する。
即ち、
図11は、
図6の機能的構成を有するプレイヤー端末1が実行する処理の流れの一例を説明するフローチャートである。
【0052】
ステップS1において、
図3のタッチ圧検出部41及びタッチ位置検出部42は、プレイヤーの指又は物体がタッチパネルの画面上に接しているかどうかを検出する。
プレイヤーの指又は物体が画面上に接していない状態では、ステップS1においてNOであると判断されて、処理終了となる。
即ち、3DバーチャルパッドVPを用いたゲームキャラクタCの動作を入力することは、プレイヤーの指又は物体が画面上に接していることが処理開始の条件であり、プレイヤーの指又は物体が画面上から離れることが処理終了の条件となっている。
従って、タッチ圧検出部41及びタッチ位置検出部42がプレイヤーの指又は物体が画面上に接している状態を検出した場合は、ステップS1においてYESであると判定されて、処理はステップS2に進む。
【0053】
ステップS2において、タッチ圧検出部41は、タッチ圧を検出し、タッチ位置検出部42は、タッチ位置を検出する。
【0054】
ステップS3において、割り込み可否判定部51は、タッチ圧検出部41の検出結果(タッチ圧の変化時間及び変化量)に基づいて、割り込み処理をするか否かを判定する。ステップS3の判定手法は、
図7を用いて説明した通りであるので、ここではその説明は省略する。
割り込み可否判定部51が割り込み処理をすると判定した場合には、ステップS3においてYESと判断されて、処理はステップS4に進む。
ステップS4において、割り込み可否判定部51は、ゲームキャラクタ動作制御実行部54に対して割り込みをする。即ち、割り込み可否判定部51は、割り込み用のゲームキャラクタ動作(例えばジャンプ)を設定し、ゲームキャラクタ動作制御実行部54に要求する。その後、処理はステップS10に進む。なお、ステップS10については後述する。
【0055】
これに対して、割り込み可否判定部51が割り込み処理をしないと判定した場合には、ステップS3においてNOと判断され、ステップS2で検出されたタッチ圧がラチェット関数出力部52に提供されて、処理はステップS5に進む。
ステップS5において、ラチェット関数出力部52は、ステップS2で検出されたタッチ圧の最大値が変化したかどうかを判定する。
タッチ圧の最大値が変化した場合には、ステップS5においてYESであると判断されて、処理はステップS6に進む。ステップS6において、ラチェット関数出力部52は、タッチ圧の最大値を更新し、更新後の値でラチェット関数の出力をする。
これに対して、タッチ圧の最大値が変化していない場合には、ステップS5においてNOと判断されて、処理はステップS7に進む。ステップS7において、ラチェット関数出力部52は、これまでに記録されたタッチ圧の最大値を用いて、ラチェット関数の出力をする。つまり、ラチェット関数の出力は変化しない。
このようにして、ステップS6又はS7の処理でラチェット関数の出力がなされると、処理はステップS8に進む。
【0056】
ステップS8において、ゲームキャラクタ動作量決定部53は、ラチェット関数出力部52から出力されたラチェット関数の出力量に応じて、ゲームキャラクタCの移動速度を決定する。
具体的には本実施形態では、ゲームキャラクタ動作量決定部53は、ゲームの状況やゲームキャラクタCの特徴等に基づいて、トランスミッション関数DB61から所定パターンのトランスミッション関数を抽出する。ゲームキャラクタ動作量決定部53は、ラチェット関数の出力量を入力パラメータとして、抽出したトランスミッション関数に入力させる。ゲームキャラクタ動作量決定部53は、当該トランスミッション関数の出力値を、ゲームキャラクタCの移動速度として決定する。
【0057】
ステップS9において、ゲームキャラクタ動作量決定部53は、ゲームキャラクタ動作制御実行部54に対し、決定されたゲームキャラクタCの移動速度での移動を、ゲームキャラクタ動作として設定し、ゲームキャラクタ動作制御実行部54に要求する。
【0058】
ステップS10において、ゲームキャラクタ動作制御実行部54は、ステップS4又はS0において要求されたゲームキャラクタ動作を実行するように制御する。
その後、処理はステップS1に戻され、それ以降の処理が繰り返される。即ち、プレイヤーの指又は物体が画面上から離れない限りは、ステップS1乃至S10のループ処理が繰り返される。
【0059】
以上、本発明の一実施例について説明したが、本発明は、上述の実施例に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【0060】
例えば、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
換言すると、
図6の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が情報処理システムに備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に
図6の例に限定されない。また、機能ブロックの存在場所も、
図6に特に限定されず、任意でよい。
具体的には例えば、
図6に示す各機能ブロックは、上述の実施形態ではネイティブアプリケーションとしてプレイヤー端末1に備えられていたが、HTMLとJavaScript(登録商標)を用いてWebアプリケーションとして実装することで、図示せぬサーバ等に備えることもできる。
また、1つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【0061】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えばサーバの他汎用のスマートフォンやパーソナルコンピュータであってもよい。
【0062】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布される図示せぬリムーバブルメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。
【0063】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。
【0064】
また例えば上述の例では、ゲームキャラクタCの移動速度は、タッチ圧を入力する所定のラチェット関数の出力量に基づいて設定されていたが、特にこれに限定されない。
即ち、ラチェット関数の出力量に基づいて設定される量は、移動速度である必要は特に無く、ゲームキャラクタCの動作の所定量であれば足りる。
また、ラチェット関数の入力パラメータも、タッチ圧である必要は特になく、タッチパネルの表示面への物体の接触度合に応じて変化する、当該タッチパネルに関する所定の物理量であれば足りる。例えば、タッチパネルに対する力覚や、タッチパネル(プレイヤー端末1)の振動量を、ラチェット関数の入力パラメータとして採用してもよい。
【0065】
換言すると、本発明が適用されるプログラムは、上述の
図1のプレイヤー端末1を含め、次のような構成を有する端末を制御対象とするコンピュータに実行させるものであれば足りる。
即ち、本発明が適用されるプログラムは、
表示面への物体の接触の操作に応じて動作を変化させるゲームキャラクタ(例えば
図2等のキャラクタC)を含む画像を、当該表示面に表示させる表示媒体(例えば
図1のタッチパネル、特に表示部27)と、
前記表示面への物体の接触度合に応じて変化する、当該表示媒体に関する所定の物理量(例えば上述のタッチ圧)を検出する第1検出手段(例えば
図1のタッチ圧検出部41)と、
を備える端末を制御対象とするコンピュータに実行させるプログラムである。
このプログラムは、
前記第1検出手段の検出結果を所定のラチェット関数に入力して、当該ラチェット関数の出力量を、外部に出力するラチェット関数出力ステップ(例えば
図6のラチェット関数出力部52が実行するステップ)と、
前記ラチェット関数の出力量に応じて、前記ゲームキャラクタの動作の所定量を決定する動作量決定ステップ(例えば
図6のゲームキャラクタ動作量決定部53が実行するステップ)と、
前記動作量決定ステップの処理で決定された前記所定量で、前記ゲームキャラクタの動作を変化させる制御を実行する動作制御実行ステップ(例えば
図6のゲームキャラクタ動作制御実行部54が実行するステップ)と、
を含む。
【0066】
このように、プレイヤーは表示面への指等の物体の移動距離ではなく、物体の接触度合を変化させるだけで、ゲームキャラクタの動作の所定量を変化さえることができる。つまり、プレイヤーにとって指の移動面積を小さくしつつ、かつ、直感的にゲームキャラクタを移動させることが可能となる仮想コントローラを実現可能とすることができる。
ここで、表示面への物体の接触度合に応じて変化する、当該表示媒体に関する所定の物理量は、プレイヤーが自然人である以上、非連続となってしまう(振動をしてしまう)。従って、当該所定の物理量をそのまま、ゲームキャラクタの動作の所定量の設定に用いると、ゲームキャラクタの動作の所定量の変化も非連続になってしまい不適である。
そこで、当該所定の物理量を所定のラチェット関数に入力して、当該ラチェット関数の出力量を、ゲームキャラクタの動作の所定量の設定に用いている。これにより、ゲームキャラクタの動作の所定量の変化が連続的になり好適である。
【0067】
ここで、本発明が適用されるプログラムは、
前記第1検出手段の検出結果を入力し、当該検出結果が示す前記所定の物理量の変化時間及び変化量に基づいて割り込みをするか否かを判定し、割り込みをしないと判定した場合、当該検出結果を前記ラチェット関数出力ステップに提供し、割り込みをすると判定した場合、当該検出結果を前記ラチェット関数出力ステップに提供することを禁止するか、若しくは当該検出結果を加工して前記ラチェット関数出力ステップに提供する割り込み可否判定ステップ(例えば
図6の割り込み可否判定部51が実行するステップ)を
含む制御処理をさらに実行させ、
前記動作制御実行ステップは、前記割り込み可否判定ステップの処理において前記割り込みをすると判定された場合、前記ゲームキャラクタの動作に対する所定の割り込み処理を実行するステップを含む
ようにすることができる。
【0068】
これにより、ゲームキャラクタの動作の所定量(移動速度等)を一定にしつつ、当該ゲームキャラクタの別動作をさせる割り込み処理を容易に実現することができる。
【0069】
この割り込み処理による別動作は、特に限定されず、上述した様にジャンプ等を採用してもよい。この場合、ゲームキャラクタの動作の所定量(移動速度等)の指示操作と、当該ゲームキャラクタの別動作(ジャンプ等)の指示操作等を、指1本だけのタッチ操作で実現できるようになる。
具体的には例えば、ゲームキャラクタの動作の所定量として移動速度が採用されているときには、プレイヤーは、最初、徐々に指を押す力を強めていく操作をすることで、ゲームキャラクタを加速させていき、その後力を弱めることで、ラチェット関数の機能により、当該ゲームキャラクタを等速移動させることができる。
さらに、プレイヤーは、瞬間的に指の力を込める操作をすることで、割り込み処理として当該ゲームキャラクタに別動作(ジャンプ等)をさせることができる。
ここで、割り込みの場合、第1検出手段の検出結果をラチェット関数に入力することを禁止するか、若しくは当該検出結果を加工してラチェット関数に入力することになる。その結果、ゲームキャラクタは、等速移動を止めることなく、別動作(ジャンプ等)をすることもできる。
【0070】
また、割り込み処理による別動作として、減速(ブレーキ)を採用してもよい。この場合、例えばゲームキャラクタの動作の所定量として移動速度が採用されているときには、プレイヤーは、上述の操作と同様にして、ゲームキャラクタを加速させて、一定速度になった後は等速移動させることができる。
さらに、プレイヤーは、瞬間的に指の力を込める操作をすることで、割り込み処理として当該ゲームキャラクタに対して減速命令(ブレーキ)を与えることができる。これにより、1本の指の押下力の増減だけで、キャラクタ移動の加速命令(“走る”等)と減速命令とを同時に実現できる。
つまり、プレイヤーにとって指の移動面積を小さくしつつ、かつ、直感的にゲームキャラクタを移動させることが可能となる仮想コントローラをより容易かつ適切に実現可能とすることができる。
【0071】
また、本発明が適用されるプログラムにおいて、
前記ゲームキャラクタの動作量決定ステップは、前記ラチェット関数の出力量を前記ゲームキャラクタの動作の所定量に変換する1種以上のパターン(例えばトランスミッション関数のパターン)のうち、所定種類のパターンを用いて、前記ゲームキャラクタの動作の前記所定量を決定するステップを含む、
ようにすることができる。
【0072】
これにより、拡張性やカスタマイズ性に優れた、ゲームキャラクタの動作の制御を容易に実現することができる。
即ち、パターン(トランスミッション関数のパターン等)を書き換えたり、選択的に用いることにより、人間、自動車、飛行機等、様々なゲームキャラクタの動作の指示操作を実現することができる。また、敵に魔法をかけられて、移動が遅くなった状態等、ゲーム内の状態に応じたゲームキャラクタの動作の制御も容易に実現可能になる。
【0073】
また、本発明が適用されるプログラムにおいて、
前記端末は、さらに、前記表示媒体の前記表示面への物体の接触の位置を検出する第2検出手段(例えば
図1等のタッチ位置検出部42)をさらに備え、
前記動作制御実行ステップは、
前記第2検出手段の検出結果に基づいて、前記ゲームキャラクタの動作の変化方向を決定する変化方向決定ステップと、
前記変化方向決定ステップの処理で決定された前記変化方向に、前記動作量決定ステップの処理で決定された前記所定量で、前記ゲームキャラクタの動作を変化させる制御を実行する動作制御実行ステップと、
を含むようにすることができる。
【0074】
これにより、ゲームキャラクタの動作の所定量(移動速度等)だけでなく、動作の変化方向(移動方向)等の制御も容易に実現可能になるので、多種多様な動作をするゲームキャラクタを含むゲームの実現が可能になる。
【0075】
また、本発明が適用されるプログラムは、
前記第2検出手段の検出結果に基づいて、前記表示媒体への前記物体の接触が開始された第1状態から、前記表示媒体への接触が維持されて前記物体が移動する第2状態を経て、前記表示媒体への前記物体の接触が解除される第3状態に至るまでの一連の操作(上述のスワイプ)を検出する操作検出ステップと、
前記ゲームキャラクタの動作を指示操作するための所定の形状のコントローラ(例えば
図2の円形状の3DバーチャルパッドVP)を、前記表示媒体の前記表示面への前記第1状態における前記物体の接触の位置に、その中心又は重心がくるように配置させて、前記表示媒体に表示させる制御を実行する表示制御ステップと、
をさらに前記コンピュータに実行させ、
前記変化方向決定ステップは、前記第2状態における前記物体の移動方向に基づいて、前記ゲームキャラクタの動作の変化方向を決定するステップを含み、
前記動作量決定ステップは、前記第2状態における前記ラチェット関数の出力量に応じて、前記ゲームキャラクタの動作の所定量を決定するステップを含む、
ようにすることができる。
【0076】
上述した様に、仮想のコントローラの形状は、上述した実施形態では
図2に示すように円形状とされたが、特にこれに限定されず、ゲームキャラクタの動作を指示操作することが可能であれば任意の形状とすることができる。
また、表示制御ステップの制御により、仮想のコントローラを表示媒体に表示させるタイミングは、特に限定されない。
即ち、上述した実施形態では、タッチパネルから離間していたプレイヤーの指等が当該タッチパネルに接触した時点、即ちスワイプの第1状態の時点では、仮想のコントローラの一例である3DバーチャルパッドVPは、プレイヤーが視認可能な状態ではないものとされた。そして、スワイプの第2状態に移行すると、
図2の上方に示すように、スワイプの第1状態におけるタッチ位置を表示面上の中心或いは重心として、3DバーチャルパッドVPがプレイヤーに視認可能な状態で表示された。
しかしながら、このような表示は例示に過ぎない。即ち、3DバーチャルパッドVP等の仮想のコントローラは、プレイヤーのタッチ操作とは独立して、表示媒体の所定位置に元々表示されていてもよい。つまりプレイヤーから常に視認可能な場所に、仮想のコントローラを表示させておくこともできる。
【0077】
このようにして、プレイヤーにとって指の移動面積を小さくしつつ、かつ、直感的にゲームキャラクタを移動させることが可能となる仮想コントローラはより簡単に実現可能になる。
さらに、このようにして実現される仮想のコントローラは、既存のバーチャルパッドとの互換性に優れたものである。
即ち、画面上に表示されるUIとして、既存のバーチャルパッドと全く同一のものを採用することができるため、既存のバーチャルパッドと同じ操作性で使用することができる。従って、このようにして実現される仮想のコントローラは、第1検出手段(感圧センサ等)を有しないスマートフォン上では、既存のバーチャルパッドとしてふるまうことができる。つまり、このようにして実現される仮想のコントローラは、既存のバーチャルパッドの上位互換技術として使用することが可能になる。