(57)【特許請求の範囲】
【請求項１】
タッチパネルを備える電子装置において実行される、該タッチパネルを介した仮想空間内の操作対象オブジェクトに対するユーザの操作を支援するための方法であって、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいてタッチ位置を決定するステップと、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて前記操作対象オブジェクトを移動させるためのユーザ入力の方向及び大きさを決定するステップと、
前記決定したタッチ位置に対して前記決定したユーザ入力の方向を示す第１のオブジェクトを前記タッチパネルに表示するステップと、
前記決定したユーザ入力の大きさが所定値を超える大きさであるか否かを判定するステップと、
前記決定したユーザ入力の大きさが所定値を超える大きさであると判定した場合、前記決定したユーザ入力の方向への入力を抑制させるための第２のオブジェクトへ前記第１のオブジェクトを変化させるステップと、
を含み、
前記ユーザ入力の方向及び大きさを決定するステップは、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて取得される第１の軸の値及び第２の軸の値により示される１又は複数のデータポイントを、フレームレートに対応する既定の処理時間ごとに、データポイント列として保持するステップと、
一のフレームの時間内に保持されているデータポイント列におけるデータポイントの変位に基づいて、該フレームにおけるタッチイベントが発生した位置の変位する速さに対応する変位速さを決定し、最新のフレームにおける該変位速さの、該最新のフレームより前のフレームにおける該変位速さの平均値に対する偏差に基づいて、ユーザ入力の大きさを決定するステップと、
を含む、方法。
【請求項２】
タッチパネルを備える電子装置において実行される、該タッチパネルを介した仮想空間内の操作対象オブジェクトに対するユーザの操作を支援するための方法であって、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいてタッチ位置を決定するステップと、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて前記操作対象オブジェクトを移動させるためのユーザ入力の方向及び大きさを決定するステップと、
前記決定したタッチ位置に対して前記決定したユーザ入力の方向を示す第１のオブジェクトを前記タッチパネルに表示するステップと、
を含み、
前記ユーザ入力の方向及び大きさを決定するステップは、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて取得される第１の軸の値及び第２の軸の値により示される１又は複数のデータポイントを、フレームレートに対応する既定の処理時間ごとに、データポイント列として保持するステップと、
一のフレームの時間内に保持されているデータポイント列におけるデータポイントの変位に基づいて、該フレームにおけるタッチイベントが発生した位置の変位する速さに対応する変位速さを決定し、最新のフレームにおける該変位速さの、該最新のフレームより前のフレームにおける該変位速さの平均値に対する偏差に基づいて、前記操作対象オブジェクトの移動状態を決定するための速度因子を決定するステップとを含み、
前記方法は、
前記決定した速度因子が所定値を超える大きさであるか否かを判定するステップと、
前記決定した速度因子が所定値を超える大きさであると判定した場合、前記決定したユーザ入力の方向への入力を抑制させるための第２のオブジェクトへ前記第１のオブジェクトを変化させるステップと、
を含む、方法。
【請求項３】
前記決定したユーザ入力の方向は前記操作対象オブジェクトの移動方向であり、前記決定したユーザ入力の大きさは前記操作対象オブジェクトの移動速さである、請求項１又は２に記載の方法。
【請求項４】
前記第１のオブジェクトは、前記決定したタッチ位置から前記決定したユーザ入力の方向へ離れた位置に配置されるオブジェクトであり、
前記第２のオブジェクトは、前記決定したタッチ位置から前記決定したユーザ入力の方向へ離れた位置に配置されるオブジェクトであり、
前記タッチパネルに表示される前記第２のオブジェクトの最大幅は、該タッチパネルに表示される前記第１のオブジェクトの最大幅よりも大きい、
請求項１から３のいずれか1項に記載の方法。
【請求項５】
前記方法は、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて取得される第１の軸の値及び第２の軸の値により示される１又は複数のデータポイントを、フレームレートに対応する既定の処理時間ごとに、データポイント列として保持するステップを含み、
前記タッチ位置を決定するステップは、前記保持したデータポイント列に基づいてタッチ位置を決定することを含み、
前記ユーザ入力の方向及び大きさを決定するステップは、前記保持したデータポイント列に基づいてユーザ入力の方向及び大きさを決定することを含み、
前記方法は、
最新の所定数のフレームにおいて決定したタッチ位置を中心とした円状オブジェクトを表示するステップを含む、
請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記ユーザ入力の方向及び大きさを決定するステップは、
前記決定したタッチ位置のうちタッチ開始のタッチイベントに基づいて決定したタッチ位置を基準位置として設定するステップと、
前記決定したタッチ位置のうち前記基準位置を設定した後に発生したタッチイベントに基づいて決定したタッチ位置を指示位置として設定するステップと、
前記基準位置から前記指示位置への方向に基づいてユーザ入力の方向を決定するステップと、
前記基準位置から前記指示位置までの距離に基づいてユーザ入力の大きさを決定するステップと、
を含む、請求項１に記載の方法。
【請求項７】
前記方法は、
前記決定したユーザ入力の大きさが所定値を超える大きさであると判定した場合、前記電子装置を振動させるための制御又は前記電子装置から音声を出力させるための制御を実行するステップを含む、
請求項１から６のいずれか１項に記載の方法。
【請求項８】
請求項１から７のいずれか１項に記載の方法の各ステップをコンピュータに実行させるプログラム。
【請求項９】
タッチパネルを備える電子装置であって、該電子装置は、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいてタッチ位置を決定し、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて仮想空間内の操作対象オブジェクトを移動させるためのユーザ入力の方向及び大きさを決定し、
前記決定したタッチ位置に対して前記決定したユーザ入力の方向を示す第１のオブジェクトを前記タッチパネルに表示し
前記決定したユーザ入力の大きさが所定値を超える大きさであるか否かを判定し、
前記決定したユーザ入力の大きさが所定値を超える大きさであると判定した場合、前記決定したユーザ入力の方向への入力を抑制させるための第２のオブジェクトへ前記第１のオブジェクトを変化させ、
前記ユーザ入力の方向及び大きさを決定することは、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて取得される第１の軸の値及び第２の軸の値により示される１又は複数のデータポイントを、フレームレートに対応する既定の処理時間ごとに、データポイント列として保持することと、
一のフレームの時間内に保持されているデータポイント列におけるデータポイントの変位に基づいて、該フレームにおけるタッチイベントが発生した位置の変位する速さに対応する変位速さを決定し、最新のフレームにおける該変位速さの、該最新のフレームより前のフレームにおける該変位速さの平均値に対する偏差に基づいて、ユーザ入力の大きさを決定することと、
を含む、電子装置。
【請求項１０】
タッチパネルを備える電子装置であって、該電子装置は、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいてタッチ位置を決定し、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて仮想空間内の操作対象オブジェクトを移動させるためのユーザ入力の方向及び大きさを決定し、
前記決定したタッチ位置に対して前記決定したユーザ入力の方向を示す第１のオブジェクトを前記タッチパネルに表示し、
前記ユーザ入力の方向及び大きさを決定することは、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて取得される第１の軸の値及び第２の軸の値により示される１又は複数のデータポイントを、フレームレートに対応する既定の処理時間ごとに、データポイント列として保持することと、
一のフレームの時間内に保持されているデータポイント列におけるデータポイントの変位に基づいて、該フレームにおけるタッチイベントが発生した位置の変位する速さに対応する変位速さを決定し、最新のフレームにおける該変位速さの、該最新のフレームより前のフレームにおける該変位速さの平均値に対する偏差に基づいて、前記操作対象オブジェクトの移動状態を決定するための速度因子を決定することとを含み、
前記電子装置は、
前記決定した速度因子が所定値を超える大きさであるか否かを判定し、
前記決定した速度因子が所定値を超える大きさであると判定した場合、前記決定したユーザ入力の方向への入力を抑制させるための第２のオブジェクトへ前記第１のオブジェクトを変化させる、
電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、方法、プログラム、及び電子装置に関するものであり、特にユーザの操作を支援するための方法、プログラム、及び電子装置に関する。
【背景技術】
【０００２】
近年のタッチパネル技術の向上に伴い、タッチパネル上のユーザインタフェースを介してユーザ入力を行う電子装置が広く普及してきた。そして、電子装置において実行されるゲームにおいては、従来型の物理的なコントローラによるユーザ入力に代えて、電子装置に備えられたタッチパネルを介してユーザ入力を行う形態が広く普及してきている。
【０００３】
特にスマートフォン等に代表される小型の携帯型電子装置の普及が急速に進み、このような携帯型電子装置上で実行されるゲームも数多くリリースされている。例えば特許文献１には、画面上の所定位置に仮想的なコントローラのユーザインタフェースを表示してタッチパネルを介して上下左右の方向入力操作を受け付ける装置が開示されている。本装置は、ユーザ操作により入力された上下左右の方向に応じて仮想コントローラの縁部領域を強調表示することにより、ユーザが方向入力操作を行いやすくなることができるものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５８４３９０８号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ユーザは、タッチパネルを介して仮想コントローラを操作するとき、従来型の据置型ゲームの物理的なコントローラにおける方向レバーを操作する感触を得ることは難しい。特許文献１は、タッチパネルを介した入力操作をユーザが行い易くなるように支援する１つの技術を開示するものであるが、タッチパネルを介したユーザの操作において、より操作性を高めるユーザの操作を支援するための方法が求められている。
【０００６】
本発明は、このような課題を解決するためになされたものであり、タッチパネルを介したユーザの操作において、より操作性を高めることができる方法等を提供することを主目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明の一態様としての方法は、
タッチパネルを備える電子装置において実行される、該タッチパネルを介した仮想空間内の操作対象オブジェクトに対するユーザの操作を支援するための方法であって、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいてタッチ位置を決定するステップと、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて前記操作対象オブジェクトを移動させるためのユーザ入力の方向及び大きさを決定するステップと、
前記決定したタッチ位置に対して前記決定したユーザ入力の方向を示す第１のオブジェクトを前記タッチパネルに表示するステップと、
前記決定したユーザ入力の大きさが所定値を超える大きさであるか否かを判定するステップと、
前記決定したユーザ入力の大きさが所定値を超える大きさであると判定した場合、前記決定したユーザ入力の方向への入力を抑制させるための第２のオブジェクトへ前記第１のオブジェクトを変化させるステップと、
を含むことを特徴とする。
【０００８】
また、本発明において好ましくは、
前記ユーザ入力の方向及び大きさを決定するステップは、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて取得される第１の軸の値及び第２の軸の値により示される１又は複数のデータポイントを、フレームレートに対応する既定の処理時間ごとに、データポイント列として保持するステップと、
一のフレームの時間内に保持されているデータポイント列におけるデータポイントの変位に基づいて、該フレームにおけるユーザの指の移動速度に対応する変位速さを決定し、最新のフレームにおける該変位速さの、該最新のフレームより前のフレームにおける該変位速さの平均値に対する偏差に基づいて、ユーザ入力の大きさを決定するステップと、
を含む。
【０００９】
また、上記の目的を達成するために、本発明の一態様としての方法は、
タッチパネルを備える電子装置において実行される、該タッチパネルを介した仮想空間内の操作対象オブジェクトに対するユーザの操作を支援するための方法であって、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいてタッチ位置を決定するステップと、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて前記操作対象オブジェクトを移動させるためのユーザ入力の方向及び大きさを決定するステップと、
前記決定したタッチ位置に対して前記決定したユーザ入力の方向を示す第１のオブジェクトを前記タッチパネルに表示するステップと、
を含み、
前記ユーザ入力の方向及び大きさを決定するステップは、前記操作対象オブジェクトの移動状態を決定するための速度因子を決定するステップを含み、
前記方法は、
前記決定した速度因子が所定値を超える大きさであるか否かを判定するステップと、
前記決定した速度因子が所定値を超える大きさであると判定した場合、前記決定した移動方向への入力を抑制させるための第２のオブジェクトへ前記第１のオブジェクトを変化させるステップと、
を含むことを特徴とする。
【００１０】
また、本発明において好ましくは、
前記ユーザ入力の方向及び大きさを決定するステップは、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて取得される第１の軸の値及び第２の軸の値により示される１又は複数のデータポイントを、フレームレートに対応する既定の処理時間ごとに、データポイント列として保持するステップと、
一のフレームの時間内に保持されているデータポイント列におけるデータポイントの変位に基づいて、該フレームにおけるユーザの指の移動速度に対応する変位速さを決定し、最新のフレームにおける該変位速さの、該最新のフレームより前のフレームにおける該変位速さの平均値に対する偏差に基づいて、速度因子を決定するステップと、
を含む。
【００１１】
また、本発明において好ましくは、
前記決定したユーザ入力の方向は前記操作対象オブジェクトの移動方向であり、前記決定したユーザ入力の大きさは前記操作対象オブジェクトの移動速さである。
【００１２】
また、本発明において好ましくは、
前記第１のオブジェクトは、前記決定したタッチ位置から前記決定したユーザ入力の方向へ離れた位置に配置されるオブジェクトであり、
前記第２のオブジェクトは、前記決定したタッチ位置から前記決定したユーザ入力の方向へ離れた位置に配置されるオブジェクトであり、
前記タッチパネルに表示される前記第２のオブジェクトの最大幅は、該タッチパネルに表示される前記第１のオブジェクトの最大幅よりも大きい。
【００１３】
また、本発明において好ましくは、前記方法は、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて取得される第１の軸の値及び第２の軸の値により示される１又は複数のデータポイントを、フレームレートに対応する既定の処理時間ごとに、データポイント列として保持するステップを含み、
前記タッチ位置を決定するステップは、前記保持したデータポイント列に基づいてタッチ位置を決定し、
前記ユーザ入力の方向及び大きさを決定するステップは、前記保持したデータポイント列に基づいてユーザ入力の方向及び大きさを決定し、
前記方法は、
最新の所定数のフレームにおいて決定したタッチ位置を中心とした円状オブジェクトを表示するステップを含む。
【００１４】
また、本発明において好ましくは、
前記ユーザ入力の方向及び大きさを決定するステップは、
前記決定したタッチ位置のうちタッチ開始のタッチイベントに基づいて決定したタッチ位置を基準位置として設定するステップと、
前記決定したタッチ位置のうち前記基準位置を設定した後に発生したタッチイベントに基づいて決定したタッチ位置を指示位置として設定するステップと、
前記基準位置から前記指示位置への方向に基づいてユーザ入力の方向を決定するステップと、
前記基準位置から前記指示位置までの距離に基づいてユーザ入力の大きさを決定するステップと、
を含む。
【００１５】
また、本発明において好ましくは、
前記方法は、
前記決定したユーザ入力の大きさが所定値を超える大きさであると判定した場合、前記電子装置を振動させるための制御又は前記電子装置から音声を出力させるための制御を実行するステップを含む。
【００１６】
また、上記の目的を達成するために、本発明の一態様としてのプログラムは、上記に記載の方法の各ステップをコンピュータに実行させることを特徴とする。
【００１７】
また、上記の目的を達成するために、本発明の一態様としての電子装置は、
タッチパネルを備える電子装置であって、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいてタッチ位置を決定し、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて仮想空間内の操作対象オブジェクトを移動させるためのユーザ入力の方向及び大きさを決定し、
前記決定したタッチ位置に対して前記決定したユーザ入力の方向を示す第１のオブジェクトを前記タッチパネルに表示し
前記決定したユーザ入力の大きさが所定値を超える大きさであるか否かを判定し、
前記決定したユーザ入力の大きさが所定値を超える大きさであると判定した場合、前記決定したユーザ入力の方向への入力を抑制させるための第２のオブジェクトへ前記第１のオブジェクトを変化させることを特徴とする。
【００１８】
また、上記の目的を達成するために、本発明の一態様としての電子装置は、
タッチパネルを備える電子装置であって、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいてタッチ位置を決定し、
前記タッチパネルへのユーザの操作により発生したタッチイベントに基づいて仮想空間内の操作対象オブジェクトを移動させるためのユーザ入力の方向及び大きさを決定し、
前記決定したタッチ位置に対して前記決定したユーザ入力の方向を示す第１のオブジェクトを前記タッチパネルに表示し、
前記ユーザ入力の方向及び大きさを決定することは、前記操作対象オブジェクトの移動状態を決定するための速度因子を決定することを含み、
前記電子装置は、
前記決定した速度因子が所定値を超える大きさであるか否かを判定し、
前記決定した速度因子が所定値を超える大きさであると判定した場合、前記決定した移動方向への入力を抑制させるための第２のオブジェクトへ前記第１のオブジェクトを変化させることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、タッチパネルを介したユーザの操作において、より操作性を高めることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施形態の電子装置のハードウェア構成を示すブロック図である。
【図２】本発明の一実施形態の電子装置の機能ブロック図である。
【図３】本実施形態の第１の軸及び第２の軸からなる座標軸を示す図である。
【図４】表示部によりタッチパネルに表示されるゲーム用画面の１つの例示である。
【図５】表示部によりタッチパネルに表示されるゲーム用画面の１つの例示である。
【図６】表示部によりタッチパネルに表示されるゲーム用画面の１つの例示である。
【図７】表示部によりタッチパネルに表示されるゲーム用画面の１つの例示である。
【図８】表示部によりタッチパネルに表示されるゲーム用画面の１つの例示である。
【図９】本発明の一実施形態の電子装置において実行される情報処理を説明するフローチャートである。
【図１０】図９に示すステップ１０２において実行される１つの実施例の情報処理を説明するフローチャートである。
【図１１】図９に示すステップ１０５において実行される１つの実施例の情報処理を説明するフローチャートである。
【発明を実施するための形態】
【００２１】
以下、図面を参照して、本発明の実施形態を説明する。各図において同一の符号は、特に言及が無い限り同一又は相当部分を示すものとし、説明の便宜上、図面の縦横の縮尺を実際のものとは異なるように表す場合がある。また、説明の便宜上、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成についての重複説明を省略する場合がある。
【００２２】
本発明の一実施形態による電子装置１０は、仮想空間に配置された仮想的なオブジェクトをユーザに提示し、ゲームを進行するゲームアプリケーションがインストールされている。電子装置１０は、当該ゲームアプリケーションが実行されると、ユーザの操作に応じて、仮想空間内のユーザの操作対象の仮想的なオブジェクトである操作対象オブジェクトを制御するための仮想的なコントローラ（仮想コントローラ）を提供する。仮想空間及び仮想コントローラは、当該ゲームアプリケーションにより定められるものであり、仮想空間は、２次元空間であることもできるし、３次元空間であることもできる。本実施形態では、操作対象オブジェクトは、仮想空間に配置されたキャラクタ（操作対象キャラクタ）である。ただし、操作対象オブジェクトは、仮想空間に配置されたアイテム又は仮想カメラなどとすることもできる。また本実施形態では、ユーザの仮想コントローラに対する入力は、仮想空間内の操作対象キャラクタに対するユーザの操作を意味することができる。また本実施形態では、電子装置１０は、仮想空間内の操作対象キャラクタに対するユーザの操作を支援するための仮想的なオブジェクト（仮想オブジェクト）をユーザに対して表示する。
【００２３】
説明の便宜上、本実施形態においては、電子装置１０には上記のようなゲームアプリケーションがインストールされているものとするが、これに限定されない。電子装置１０は、ユーザの操作に応じて、操作対象オブジェクトを制御することが可能なアプリケーションを実装していればよい。例えば、電子装置１０には、ゲームアプリケーションの代わりに又はこれに追加して、ユーザの操作に応じて操作対象オブジェクトを動作させる入力支援アプリケーション又はシミュレーションアプリケーションが実装されてもよい。以下の説明において、アプリケーションは、アプリケーションプログラム全般を意味するものであり、スマートフォンやタブレット端末にインストールされるアプリを意味することができる。
【００２４】
図１は本発明の一実施形態の電子装置１０のハードウェア構成を示すブロック図である。電子装置１０は、プロセッサ１１、入力装置１２、表示装置１３、記憶装置１４、及び通信装置１５を備える。これらの各構成装置はバス１６によって接続される。なお、バス１６と各構成装置との間には必要に応じてインタフェースが介在しているものとする。本実施形態において、電子装置１０はスマートフォンである。ただし、電子装置１０は、上記の構成を備えるものであれば、タブレット型コンピュータ、タッチパッド等の接触型入力装置を備えるコンピュータなどの端末とすることができる。
【００２５】
プロセッサ１１は、電子装置１０全体の動作を制御する。例えばプロセッサ１１は、ＣＰＵである。なお、プロセッサ１１としては、ＭＰＵ等の電子回路が用いられてもよい。プロセッサ１１は、記憶装置１４に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。１つの例では、プロセッサ１１は、複数のプロセッサから構成される。
【００２６】
入力装置１２は、電子装置１０に対するユーザからの入力を受け付けるユーザインタフェースである。表示装置１３は、プロセッサ１１の制御に従って、アプリケーション画面などを電子装置１０のユーザに表示するディスプレイである。本実施形態においては、スマートフォンである電子装置１０は入力装置１２としてタッチパネル１７を備え、タッチパネル１７は表示装置１３としても機能し、入力装置１２と表示装置１３は一体となった構造である。ただし、入力装置１２は、タッチパッドとすることもでき、表示装置１３は、それに対応して、タッチパネル以外のディスプレイとすることもできる。
【００２７】
記憶装置１４は、揮発性メモリ及び不揮発性メモリを含む一般的なスマートフォンが備える記憶装置である。記憶装置１４は、外部メモリを含むこともできる。記憶装置１４は、ゲームアプリケーションを含む各種プログラムを記憶する。例えば、記憶装置１４は、オペレーティングシステム（ＯＳ）、ミドルウェア、アプリケーションプログラム、これらのプログラムの実行に伴って参照され得る各種データなどを格納する。
【００２８】
１つの例では、記憶装置１４は、主記憶装置及び補助記憶装置を含む。主記憶装置は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、プロセッサ１１が情報を処理する際の記憶領域及び作業領域として用いられる。補助記憶装置は、様々なプログラムや、各プログラムの実行に際してプロセッサ１１が使用するデータを格納する。補助記憶装置は、例えばハードディスク装置であるが、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。
【００２９】
通信装置１５は、ネットワークを介してユーザ端末又はサーバなどの他のコンピュータとの間でデータの授受を行うことが可能な無線ＬＡＮモジュールである。ただし、通信装置１５は、Ｂｌｕｅｔｏｏｔｈ（登録商標）モジュールなどの他の無線用通信デバイスとすることもできるし、イーサネット(登録商標)モジュールやＵＳＢインタフェースなどの有線用通信デバイスとすることもできる。１つの例では、電子装置１０は、通信装置１５によってプログラムをサーバからダウンロードして、記憶装置１４に格納する。他のコンピュータとの間でデータの送受信を行わない場合、電子装置１０は通信装置１５を備えなくてもよい。
【００３０】
図２は本発明の一実施形態の電子装置１０の機能ブロック図である。電子装置１０は、入力部２１、表示部２２、コントローラ入力決定部２３、コントローラ入力判定部２４、及びキャラクタ状態決定部２５を備える。本実施形態においては、プログラムがプロセッサ１１により実行されることによりこれらの機能が実現される。例えば実行されるプログラムは、記憶装置１４に記憶されている又は通信装置１５を介して受信したプログラムである。このように、各種機能がプログラム読み込みにより実現されるため、１つのパート（機能）の一部又は全部を他のパートが有していてもよい。ただし、各機能の一部又は全部を実現するための電子回路等を構成することによりハードウェアによってもこれらの機能は実現してもよい。
【００３１】
入力部２１は、入力装置１２を用いて構成されるものであり、電子装置１０に対するユーザからの入力を受け付ける。本実施形態では、入力部２１は、タッチパネル１７へのユーザのタッチ操作を受け付けてタッチイベントを発生するものである。入力部２１は、スマートフォンが一般的に有する機能である。
【００３２】
表示部２２は、ゲームアプリケーション画面（ゲーム用画面）をタッチパネル１７に表示し、ユーザ操作に応じた画面を表示する。
【００３３】
コントローラ入力決定部２３は、操作対象キャラクタ４０を制御するための仮想コントローラに対する入力を決定する。コントローラ入力決定部２３は、タッチパネル１７を介したユーザの操作に基づいて、タッチ位置を決定し、操作対象キャラクタ４０を移動させるためのユーザ入力の方向及び大きさを決定する。
【００３４】
コントローラ入力決定部２３は、タッチパネル１７へのユーザの操作により発生したタッチイベントに基づいて、第１の軸の値及び第２の軸の値により示されるデータポイントを取得する。ここで、タッチイベントは、ユーザがタッチパネル１７へ指を接触したときに発生するtouchstart、ユーザがタッチパネル１７に指を接触させたまま動かしたときに発生するtouchmove、ユーザがタッチパネル１７から指を離したときに発生するtouchendを含む。タッチイベントは、タッチがキャンセルされた際に発生するtouchcancelを含むこともできる。
【００３５】
コントローラ入力決定部２３は、タッチイベントが発生するときに、タッチイベントを取得する。コントローラ入力決定部２３は、タッチイベントを取得するとき、タッチパネル１７上の静電容量が変化した位置に対応する、２つの変数からなる数値の組（ｘ、ｙ）を取得して、バッファに格納する。当該２つの変数からなる数値の組のデータは、タッチイベントに付随してコントローラ入力決定部２３が取得するものであり、第１の軸の値及び第２の軸の値により示されるデータポイントに対応するものである。
【００３６】
本実施形態では、説明の便宜上、第１の軸及び第２の軸を以下のとおり定める。図３は、本実施形態の第１の軸及び第２の軸からなる座標軸を示す図である。第１の軸は、略長方形であるタッチパネル１７の短辺と実質的に平行な横軸（ｘ軸）である。第２の軸は、タッチパネル１７の長辺と実質的に平行な縦軸（ｙ軸）である。タッチパネル１７上の位置は、第１の軸（ｘ軸）及び第２の軸（ｙ軸）により座標（ｘ、ｙ）として表される。したがって、本実施形態では、データポイントの座標（ｘ、ｙ）は、タッチパネル１７上の位置に対応し、コントローラ入力決定部２３は、当該座標（ｘ、ｙ）を、データポイントとしてバッファに保持する。図３に示す座標設定は、一例であり、電子装置１０が実装するプログラムにより、上記例示と異なるように設定することができる。
【００３７】
本実施形態では、コントローラ入力決定部２３は、発生したタッチイベントがタッチパネル１７の所定領域５０内で発生したものであるか否かを判定する。コントローラ入力決定部２３は、所定領域５０内で発生したものであると判定したタッチイベントに基づいて、第１の軸の値及び第２の軸の値により示されるデータポイントを取得する。所定領域５０は、タッチパネル１７に表示される画面における所定の領域である。例えば、電子装置１０は、ゲームアプリケーションが実行されると、ゲームの進行に応じて所定領域５０を決定する。所定領域５０は、ゲームの進行及び操作対象キャラクタ４０の位置に応じて設定されてもよい。
【００３８】
コントローラ入力決定部２３は、フレームの時間（フレーム間の時間）ごとに、その時間内に取得した１又は複数のデータポイントをデータポイント列としてバッファに格納する。フレームの時間Ｆ（秒）は、ゲームを実行するためのフレームレートに対応する時間であり、例えばフレームレートが３０ｆｐｓの場合、Ｆは１／３０秒である。
【００３９】
コントローラ入力決定部２３がｉ番目のフレームにおいて保持したデータポイント列Ｐ（ｉ）は、各データポイント
0006775076.tif 000002
により表される。Ｐ（ｉ）が含む各データポイントは、ｉ番目のフレームの時間内にバッファに保持されたデータポイントである。各データポイントＰi,k（ｋ＝１〜ｍ）のｘ座標の値及びｙ座標の値は（ｘi,k，ｙi,k）で表される。各データポイントは、Ｐi,1、Ｐi,2、…、Ｐi,mの順番にバッファに格納された時間が早いものとする。コントローラ入力決定部２３は、ｉ−１番目のＰ（ｉ−１）を保持してから１フレームの時間Ｆ（秒）経過後にＰ（ｉ）を保持し、更に１フレームの時間経過後にＰ（ｉ＋１）を保持する。変数ｍは、Ｐ（ｉ）が含むデータポイントの数であるため、Ｐ（ｉ）に応じて異なる。
【００４０】
コントローラ入力決定部２３は、バッファに保持されているデータポイント列のうち既定の保持時間を超えたデータポイント列の保持を終了する。例えばコントローラ入力決定部２３は、データポイント列のデータの保持を終了する場合、該データを削除してもよいし、該データを無効化してもよいし、又は該データに保持を終了したことを示すフラグを関連付けて適宜削除するようにしてもよい。例えばコントローラ入力決定部２３は、バッファに格納するデータポイントの寿命を指定する変数Ｄを定める。例えばコントローラ入力決定部２３は、データポイント列Ｐ（ｉ）を保持した時間ｔiと対応付けて該データポイント列Ｐ（ｉ）をバッファに保持する。コントローラ入力決定部２３は、一のデータポイント列Ｐ（ｉ）をバッファに格納すると、該データポイント列Ｐ（ｉ）が格納されてからの経過時間Ｔを監視し、継続的に変数Ｄと比較する。コントローラ入力決定部２３は、監視したデータポイント列Ｐ（ｉ）の経過時間Ｔが変数Ｄを超えたとき、該データポイント列Ｐ（ｉ）のバッファへの保持を終了する。コントローラ入力決定部２３は、保持した時間ｔiを用いて、経過時間Ｔを算出することができる。
【００４１】
コントローラ入力決定部２３は、Ｎフレームに対応するＮ×Ｆ（秒）、一のデータポイント列Ｐ（ｉ）をバッファに保持する。本実施形態では、Ｎは５であり、コントローラ入力決定部２３は、５フレームに対応する時間５Ｆ（秒）、一のデータポイント列Ｐ（ｉ）をバッファに保持する。したがって、コントローラ入力決定部２３は、５つのデータポイント列を保持することになる。コントローラ入力決定部２３は、新しいデータポイント列から順番にＰ（５）、Ｐ（４）、Ｐ（３）、Ｐ（２）、Ｐ（１）となるように５つのデータポイント列を保持する。したがって、コントローラ入力決定部２３が５フレームに対応するデータポイント列を保持する場合、Ｐ（５）が最新の保持したデータポイント列となる。コントローラ入力決定部２３は、新たにデータポイント列を保持する場合、新たなデータポイント列をＰ（５）として保持し、Ｐ（ｉ）（１≦ｉ≦４）をＰ（ｉ＋１）のデータで置き換える。このときコントローラ入力決定部２３は、既定の保持時間を超えたＰ（１）の保持を終了する。ただし、保持するデータポイント列の数量は、必要な処理に応じて、変更することができる。
【００４２】
コントローラ入力決定部２３は、touchend又はtouchcancelのタッチイベントを取得した場合、保持したデータポイント列の保持を解除する。
【００４３】
１つの好適な例では、コントローラ入力決定部２３は、フレームの時間ごとに、データポイント列として、ｘ座標の値とｙ座標の値を分けて保持する。コントローラ入力決定部２３が保持するｘ座標の値の集合Ｘとｙ座標の値の集合Ｙは、各々式（１）、式（２）のとおりである。
0006775076.tif 000003
（１）
0006775076.tif 000004
（２）
ここで、ｎは、コントローラ入力決定部２３がバッファに保持しているデータポイント列の数であり、フレーム数に対応する。本実施形態では、コントローラ入力決定部２３は５フレームに対応する時間５Ｆ（秒）データポイント列を保持するため、経過時間に応じて、ｎ＝１、ｎ＝２、ｎ＝３、ｎ＝４、ｎ＝５、ｎ＝５、…ｎ＝５となる。したがって、５フレームに対応する時間５Ｆ（秒）経過後は、ｎ＝５となる。また、最も新しく保持したデータポイント列Ｐ（ｎ）のｘ座標の値がｘn,0，…ｘn,mであり、最も新しく保持したデータポイント列Ｐ（ｎ）のｙ座標の値がｙn,0，…ｙn,mである。なお、コントローラ入力決定部２３がデータポイント列を保持する時間に応じて、ｎの最大値は異なる値となる。
【００４４】
コントローラ入力決定部２３のタッチ位置の決定について説明する。コントローラ入力決定部２３は、コントローラ入力決定部２３が保持した最新のデータポイント列Ｐ（ｎ）に基づいてタッチ位置を決定する。コントローラ入力決定部２３は、フレームの時間（フレーム間の時間）ごとに、タッチ位置を決定する。具体的には、コントローラ入力決定部２３は、最新のデータポイント列Ｐ（ｎ）が含むデータポイントうちの最新のデータポイントＰi,mのデータポイントが示すＸＹ座標をタッチ位置として決定する。Ｐ（ｎ）が含むデータポイントが１つの場合、コントローラ入力決定部２３は、そのデータポイントが示すＸＹ座標をタッチ位置として決定する。１つの例では、コントローラ入力決定部２３は、touchmoveのイベント発生後のフレームにおいてタッチイベントを取得しない場合、他のタッチイベントが発生するまで、タッチイベントを取得しているときに決定されたタッチ位置を保持する。保持されたタッチ位置は、他の機能部やプログラムが参照することができる。この場合において、コントローラ入力決定部２３がtouchend又はtouchcancelのタッチイベントを取得した場合、コントローラ入力決定部２３は保持したタッチ位置の保持を解除する。なお、コントローラ入力決定部２３がタッチ位置を決定することは、コントローラ入力決定部２３がタッチ位置を保持することを含むことができる。
【００４５】
コントローラ入力決定部２３のユーザ入力の大きさの決定について説明する。コントローラ入力決定部２３は、フレームの時間（フレーム間の時間）ごとに、ユーザ入力の大きさを決定する。本実施形態では、コントローラ入力決定部２３は、速度因子をユーザ入力の大きさとして決定する。したがって、本実施形態においては、ユーザ入力の大きさは速度因子と同義である。コントローラ入力決定部２３の速度因子の決定方法は、例えば特許第６５６０８０１号に記載されるエンジン部の速度因子の決定と同様の方法を用いることができる。
【００４６】
コントローラ入力決定部２３は、保持されたデータポイント列Ｐ（ｉ）のうちの一のデータポイント列における変位速さｖi（ｉ＝１〜ｎ）の、該一のデータポイント列より前に保持されたデータポイント列における変位速さｖ1〜ｖi-1の平均値に対する偏りに基づいて、速度因子を決定する。ここで、変位速さｖiの変位速さｖ0〜ｖi-1の平均値に対する偏りは、例えば変位速さｖiの変位速さｖ0〜ｖi-1の平均値からの偏り（偏差）である。なお、変位速さｖ1〜ｖi-1の平均値は、ｉ＝１の場合は０とし、ｉ＝２の場合はｖ1とする。
【００４７】
１つの例では、コントローラ入力決定部２３は、touchmoveのイベント発生後に所定数の連続するフレームにおいてタッチイベントを取得しない場合、他のタッチイベントが発生するまで、タッチイベントを取得しているときに決定された速度因子を保持する。保持された速度因子は、他の機能部やプログラムが参照することができる。所定数の連続するフレームの数は、コントローラ入力決定部２３がデータポイント列を保持する数量Ｎ以下である。この場合において、コントローラ入力決定部２３がtouchend又はtouchcancelのタッチイベントを取得した場合、コントローラ入力決定部２３は保持した速度因子の保持を解除する。なお、コントローラ入力決定部２３が速度因子を決定することは、コントローラ入力決定部２３が速度因子を保持することを含むことができる。
【００４８】
具体的には、コントローラ入力決定部２３は、以下のように速度因子を算出する。速度因子は、以下のように定義されたCumulative Pointwize Deviation関数（ＣＰＤ関数）の出力値である。ＣＰＤ関数は、式（３）により算出する。
0006775076.tif 000005
（３）
ここで、ｎは、コントローラ入力決定部２３がバッファに保持しているデータポイント列の数である。
【００４９】
ｖiは、ｉ番目のデータポイント列における変位速さ、又はｉ番目のフレームにおける変位速さである。変位速さは、対象となるフレームの時間におけるタッチポイントの集合（データポイントの集合）から算出されたユーザの指の移動速度に対応する。コントローラ入力決定部２３は、バッファに保持されているデータポイント列におけるデータポイントの変位に基づいて、該データポイント列におけるデータポイントの変位速さを決定する。コントローラ入力決定部２３が、データポイント列としてｘ座標の値とｙ座標の値を分けて保持する場合、コントローラ入力決定部２３は、バッファに保持されているデータポイント列におけるｘ座標の値の変位及びｙ座標の値の変位に基づいて、変位速さを決定する。例えば、コントローラ入力決定部２３は、バッファに保持されているデータポイント列において時系列的に隣接するデータポイントの変位量、及び該データポイント列が含むデータポイントの数量に基づいて、変位速さを決定する。
【００５０】
具体的には、変位速さは、式（４）により算出する。
0006775076.tif 000006
（４）
ここで、αは、ディスプレイのピクセル密度ＤＰＩ（Dot-Per-Inch）に対応する係数としての０以上の実数であり、一般的には１である。βは、積算重みであり、大きくすることにより突発的な変化を変位速さに反映しやすくなり、小さくすることにより突発的な変化を変位速さに反映しにくくなる。Ｐ（ｉ）がデータポイントを含まない場合、コントローラ入力決定部２３は、変位速さｖiを算出せず、例えばｖi＝０と設定する。Ｐ（ｉ）がデータポイントを１つのみ含む場合も、コントローラ入力決定部２３は、変位速さｖiを同様に算出せず、例えばｖi＝０と設定する。
【００５１】
ａｖｇi-1（ｖ）は、ｉ番目のフレームの直前までの変位速さｖiの平均である。ａｖｇi-1（ｖ）は、式（５）により算出する。
0006775076.tif 000007
（５）
ここで、ｉ＝１の場合は、直前までの変位速さが存在しないため、ａｖｇi-1（ｖ）＝０となる。
【００５２】
例えば、式（３）に示すＣＰＤ関数は、ｎ＝５のとき、式（６）により表される。
0006775076.tif 000008
（６）
例えば、ユーザが意図的に指を早く動かした場合、必然的に指が一定の時間加速することになる。この場合、式（６）におけるｖ1〜ｖ5の値は全体的に大きくなるため、ＣＰＤ関数はより大きな値を出力することとなる。一方、ユーザが意図的に指を早く動かしていない場合、例えば式（６）におけるｖ1〜ｖ5のいずれか１つの値が大きくなる。この場合、ＣＰＤ関数は、ｖ1〜ｖ5の値による演算に対して１／５（１／ｎ）を乗算することにより平準化するため、極端に大きな値を出力しない。このように、５フレームに対応する時間５Ｆ（秒）経過後においては、ＣＰＤ関数の出力値は、意図的に指を加速し続けている場合に大きな値となり、意図的に加速しないときは大きな値とならない。
【００５３】
コントローラ入力決定部２３のユーザ入力の方向の決定について説明する。コントローラ入力決定部２３の角度決定方法は、例えば特許第６３８９５８１号に記載される角度決定部の角度の決定と同様の方法を用いることができる。上記の角度決定部のように、コントローラ入力決定部２３がフレームの時間とは関係なくデータポイントの保持をデータポイントごとに所定時間保持し、コントローラ入力決定部２３は、該データポイントを用いて角度を決定することもできる。
【００５４】
コントローラ入力決定部２３は、角度を算出可能な場合、保持されたデータポイント列のうち最新のデータポイント列Ｐ（ｎ）が含むデータポイントを用いて、該データポイントの集合が示す角度を算出し、算出した角度に基づいてユーザ入力の方向を決定する。このように、コントローラ入力決定部２３は、データポイントの集合が示す角度を求めることにより、タッチパネル１７に対してタッチ操作を行ったユーザが意図する方向の角度を求めることが可能となる。ユーザ入力の方向は、フレームの時間（フレーム間の時間）ごとに決定される。
【００５５】
コントローラ入力決定部２３は、最新のデータポイント列Ｐ（ｎ）が含むデータポイントの数量が所定数Ｂ以上であった場合、該データポイントを用いて角度を算出する。一般的には、回帰直線の傾きを求めるにあたっては３個以上のデータポイントが有ること好ましいため、所定数Ｂは３以上に設定されるのが好ましい。
【００５６】
最新のデータポイント列Ｐ（ｎ）が含むデータポイントの集合が示す角度を算出するにあたって、コントローラ入力決定部２３は、該データポイントに基づいて回帰直線の傾きを決定する。コントローラ入力決定部２３は、回帰直線の傾きを決定するにあたって、当該データポイントにおけるｘ軸の値の変位量及びｙ軸の値の変位量に基づいて、独立変数の軸としてｘ軸及びｙ軸のいずれか一方の軸を決定する。同時に、コントローラ入力決定部２３は、他方の軸を従属変数の軸として決定する。１つの例では、コントローラ入力決定部２３は、最小二乗法を用いて回帰直線の傾きを算出する。
【００５７】
コントローラ入力決定部２３は、独立変数の軸をｘ軸とするとき、ｙ＝ａｘ＋ｂの回帰直線の傾きａを決定し、独立変数の軸をｙ軸とするとき、ｘ＝ｃｙ＋ｄの回帰直線の傾きｃを決定する。
【００５８】
１つの例では、コントローラ入力決定部２３は、当該データポイントにおけるｘ軸の値の最大値と最小値の差分値及びｙ軸の値の最大値と最小値の差分値に基づいて、独立変数の軸としてｘ軸及びｙ軸のいずれか一方の軸を決定し、他方の軸を従属変数の軸として決定する。好ましくは、コントローラ入力決定部２３は、当該データポイントにおけるｘ軸の値の最大値と最小値の差分値に対して重み係数を用いて重み付けを行った値及びｙ軸の値の最大値と最小値の差分値に基づいて、独立変数の軸としてｘ軸及びｙ軸のいずれか一方の軸を決定し、他方の軸を従属変数の軸として決定する。
【００５９】
算出される回帰直線の傾きは正負の方向を持たないため、コントローラ入力決定部２３は、最小二乗法を用いて回帰直線の傾きを算出する際、例えば０度〜９０度及び２７０度〜３６０度の範囲内で算出する。したがって、例えばデータポイントの集合が示す角度が、４５度の場合であっても２２５度の場合であっても、回帰直線の傾きとして４５度が算出される。そのため、コントローラ入力決定部２３は、回帰直線の傾きを決定した後、データポイントの集合としての変位方向に基づいて、決定された回帰直線の傾き（角度）に対して１８０度回転させるか否かを示す回転量を決定する。具体的には、コントローラ入力決定部２３は、データポイントにおける時系列的に前後する、決定された独立変数の軸の値の差分値の正負の数量を比較することにより、回転量を決定する。ここで、データポイントの集合としての変位方向は、データポイントが時間とともに変位する方向を示すものであり、例えばユーザがタッチパネル１７上で指を動かす大まかな方向に対応するものである。
【００６０】
コントローラ入力決定部２３は、決定された回帰直線の傾き及び決定された回転量に基づいて、データポイントの集合が示す角度を算出する。コントローラ入力決定部２３は、算出された角度に基づいて、ユーザ入力の方向に対応する角度を決定する。
【００６１】
１つの好適な例では、コントローラ入力決定部２３は、以下のとおり角度を決定する。コントローラ入力決定部２３は、取得したタッチイベントがtouchstartのとき、角度を算出しない。コントローラ入力決定部２３は、角度算出可能な場合、算出した角度を出力するとともに算出した角度を保持する。このとき、最新の算出された角度が保持されればよい。コントローラ入力決定部２３は、角度算出不可能な場合、保持された角度を出力する。コントローラ入力決定部２３は、出力された角度を有する０．２の大きさのベクトルと、予め保持された１．０の大きさを有するベクトルとを加算したベクトルの角度を、ユーザ入力の方向に対応する角度として決定する。コントローラ入力決定部２３は、角度を決定した後、該決定した角度を有する１．０の大きさのベクトルを保持する。コントローラ入力決定部２３が加算するベクトルの大きさは０．２であるため、保持するベクトルの大きさが１．０以下である場合は、該ベクトルをそのままの大きさで保持される。コントローラ入力決定部２３は、取得したタッチイベントがtouchend又はtouchcancelのとき、ベクトルの保持を解除する。
【００６２】
コントローラ入力判定部２４は、コントローラ入力決定部２３が決定した速度因子が所定値τを超える大きさであるか否かを判定する。
【００６３】
キャラクタ状態決定部２５は、コントローラ入力判定部２４の判定結果に基づいて、タッチパネル１７に表示される操作対象キャラクタ４０の移動状態を決定する。キャラクタ状態決定部２５は、速度因子が所定の閾値（所定値）τを超える大きさである場合に操作対象キャラクタ４０が走る状態であると決定し、速度因子が所定値τ以下である場合に操作対象キャラクタ４０が歩く状態であると決定する。またキャラクタ状態決定部２５は、ユーザ入力の方向及び大きさに基づいて、操作対象キャラクタ４０の移動方向及び移動速さを決定する。１つの好適な例では、キャラクタ状態決定部２５は、ユーザ入力の方向を操作対象キャラクタ４０の移動方向と決定し、ユーザ入力の大きさを操作対象キャラクタ４０の移動速さと決定する。
【００６４】
本実施形態において、電子装置１０は、仮想コントローラに対する入力以外の入力の決定、例えばゲーム設定に対する入力を決定する設定入力決定部（図示せず）を含むことができる。この場合、表示部２２は、タッチパネル１７に表示されるゲーム用画面内にゲーム設定に関するＧＵＩ（グラフィカルユーザインタフェース）要素を表示する。設定入力決定部は、タッチイベントが発生するときに、タッチイベントを取得し、取得したタッチイベントに基づいて、タッチパネル１７上の位置に対応するデータポイントの座標（ｘ、ｙ）を取得する。設定入力決定部は、取得したデータポイントの座標の位置に対応するＧＵＩ要素に対する入力を決定し、例えば電子装置１０は、当該ＧＵＩ要素に対応する処理を実行する。説明を簡単にするため、以下で説明するゲーム用画面を示す図は、ゲーム設定に関するＧＵＩ要素を含まないが、好ましくは、ゲーム用画面は、ゲーム設定に関するＧＵＩ要素を含む。
【００６５】
図４は、表示部２２によりタッチパネル１７に表示されるゲーム用画面の１つの例示であり、当該ゲーム用画面は、仮想空間内の操作対象キャラクタ４０に対するユーザの操作を支援するための仮想オブジェクトを含む画面である。表示部２２は、ユーザにタッチ推奨領域を示唆するための環状オブジェクト３０をタッチパネル１７の所定領域５０内に表示する。１つの例では、所定領域５０は、ゲーム開発者により作成されたゲームアプリケーションにより定められる領域であり、タッチパネル１７上の座標を用いて定められる領域である。例えば所定領域５０は、タッチパネル１７が表示するゲーム用画面において、操作対象キャラクタ４０と重複しない領域に設定される。１つの例では、ゲーム用画面がゲーム設定に関するＧＵＩ要素を含む場合、所定領域５０は、当該ＧＵＩ要素とも重複しない領域に設定される。
【００６６】
環状オブジェクト３０は、環状に配置された複数のオブジェクト３１であり、例えば各々のオブジェクト３１は球体状のオブジェクトである。環状オブジェクト３０は、円状に配置された複数のオブジェクト３１とすることもでき、また多角形に配置された複数のオブジェクト３１とすることもできる。環状オブジェクト３０は、円状オブジェクトのような１つの環状オブジェクト３０とすることもできる。このように、環状オブジェクト３０は、ユーザがタッチする範囲を推奨するオブジェクトとすることができる。
【００６７】
図５は、表示部２２によりタッチパネル１７に表示されるゲーム用画面の１つの例示であり、当該ゲーム用画面は、仮想空間内の操作対象キャラクタ４０に対するユーザの操作を支援するための仮想オブジェクトを示す。図５は、図４においてコントローラ入力決定部２３がタッチ位置を決定した直後のゲーム用画面を示す。コントローラ入力決定部２３がタッチ位置を決定すると、表示部２２は、決定したタッチ位置を中心として、時間の経過とともに内径が徐々に小さくなるように環状オブジェクト３０をタッチパネル１７に表示する。表示部２２は、環状に配置された複数のオブジェクトを移動させることにより、決定したタッチ位置を中心として、時間の経過とともに内径が徐々に小さくなるように環状オブジェクト３０をタッチパネル１７に表示する。ただし、表示部２２は、環状オブジェクトの画像を拡大又は縮小することにより、決定したタッチ位置を中心として、時間の経過とともに内径が徐々に小さくなるように環状オブジェクトをタッチパネル１７に表示することもできる。
【００６８】
図６は、表示部２２によりタッチパネル１７に表示されるゲーム用画面の１つの例示であり、当該ゲーム用画面は、仮想空間内の操作対象キャラクタ４０に対するユーザの操作を支援するための仮想オブジェクトを示す。図６は、図５においてコントローラ入力決定部２３がユーザの入力の方向及び大きさを決定した後のゲーム用画面を示す。表示部２２は、コントローラ入力決定部２３が決定したタッチ位置に対してコントローラ入力決定部２３が決定したユーザ入力の方向を示す第１のオブジェクト３３をタッチパネル１７に表示する。１つの例では、第１のオブジェクト３３は、コントローラ入力決定部２３が決定したタッチ位置に対してコントローラ入力決定部２３が決定したユーザ入力の方向へ離れた位置に配置されるオブジェクトである。この場合、好ましくは、第１のオブジェクト３３は、図４又は図５における環状オブジェクト３０を構成する各オブジェクト３１よりもタッチパネル１７に表示されるサイズの大きい球状体のオブジェクトである。
【００６９】
表示部２２は、最新の所定数のフレームにおいて、コントローラ入力決定部２３が決定したタッチ位置を中心とした円状オブジェクト３５を表示する。本実施形態では、コントローラ入力決定部２３は、５つのデータポイント列を保持するため、表示部２２は、最新の５つのフレームにおいて決定されたタッチ位置を中心とした円状オブジェクト３５を表示する。ただし、最新の所定数のフレームの数量は、ゲームアプリケーションなどに応じて、変更することができる。
【００７０】
１つの例では、円状オブジェクト３５は、最新のフレームにおいて決定されたタッチ位置を中心とした円状オブジェクト３５ａと、その１つ前のフレームにおいて決定されたタッチ位置を中心とした円状オブジェクト３５ｂと、更にその１つ前のフレームにおいて決定されたタッチ位置を中心とした円状オブジェクト３５ｃと、更にその１つ前のフレームにおいて決定されたタッチ位置を中心とした円状オブジェクト３５ｄと、更にその１つ前のフレームにおいて決定されたタッチ位置を中心とした円状オブジェクト３５ｅと、を含む。上記例示のように、例えば表示部２２は、最新の５つのフレームにおいて、コントローラ入力決定部２３が決定したタッチ位置を中心とした円状オブジェクト３５を表示する。好ましくは、表示部２２は、より新しいフレームにおいて決定されたタッチ位置を中心とした円状オブジェクトほど大きく表示する。例えば円状オブジェクト３５ａの半径が一番大きく、円状オブジェクト３５ｅの半径が一番小さく表示される。この場合、環状オブジェクト３０はタッチ推奨領域を示唆するためのものであるため、一番半径の大きい円状オブジェクト３５ａの半径は、複数のオブジェクト３１が構成する環状オブジェクト３０の環状形状の半径よりも小さいことが好ましい。例えばtouchmoveのイベント発生後における最新の所定数のフレームにおいて、コントローラ入力決定部２３が決定したタッチ位置が２つの場合、表示部２２は、２つの円状オブジェクト３５ａ及び３５ｂを表示する。例えばtouchmoveのイベント発生後における最新の所定数のフレームにおいてタッチイベントが発生しないとき、表示部２２は、コントローラ入力決定部２３が決定した最新のタッチ位置を中心とした円状オブジェクト３５ａのみを表示する。
【００７１】
図７は、表示部２２によりタッチパネル１７に表示されるゲーム用画面の１つの例示であり、当該ゲーム用画面は、仮想空間内の操作対象キャラクタ４０に対するユーザの操作を支援するための仮想オブジェクトを示す。図７は、図６においてコントローラ入力決定部２３がユーザの入力の方向及び大きさを決定した後に、コントローラ入力判定部２４により速度因子が所定値τを超える大きさであると判定した場合のゲーム用画面を示す。コントローラ入力決定部２３が決定した速度因子が所定値τを超える大きさであるとコントローラ入力判定部２４が判定した場合、表示部２２は、コントローラ入力決定部２３が決定したユーザ入力の方向への入力を抑制させるための第２のオブジェクト３４へ第１のオブジェクト３３を変化させて、タッチパネル１７に表示する。
【００７２】
１つの例では、第２のオブジェクト３４は、コントローラ入力決定部２３が決定したタッチ位置に対してコントローラ入力決定部２３が決定したユーザ入力の方向へ離れた位置に配置されるオブジェクトである。この場合、タッチパネル１７に表示される第２のオブジェクト３４の最大幅は、タッチパネル１７に表示される第１のオブジェクト３３の最大幅よりも大きい。１つの例では、第２のオブジェクト３４は、第１のオブジェクト３３が壁状の物体に衝突して広がったような形状を有するオブジェクトである。１つの例では、第２のオブジェクト３４は、第１のオブジェクト３３の色を変化させたオブジェクトである。
【００７３】
図８は、表示部２２によりタッチパネル１７に表示されるゲーム用画面の１つの例示であり、当該ゲーム用画面は、仮想空間内の操作対象キャラクタ４０に対するユーザの操作を支援するための仮想オブジェクトを示す。図８は、図５においてコントローラ入力決定部２３がユーザの入力の方向及び大きさを決定した直後のゲーム用画面を示す。表示部２２は、コントローラ入力決定部２３がユーザの入力の方向を決定すると、タッチ位置を中心とした円状オブジェクト３５の外側に複数のオブジェクト３２を表示し、時間の経過とともに複数のオブジェクト３２が、タッチ位置に対してユーザ入力の方向へ離れた位置に収束するように移動するように表示する。その後、表示部２２は、図６に示すような第１のオブジェクト３３を表示する。オブジェクト３２は、環状オブジェクト３０を構成するオブジェクト３１とは異なるオブジェクトであるが、オブジェクト３１は、複数のオブジェクト３２の合成により構成されてもよい。
【００７４】
図９は、本発明の一実施形態の電子装置１０において実行される情報処理を説明するフローチャートである。なお本実施形態においては電子装置１０としてスマートフォンを用いているが、一般的にスマートフォンは３０ｆｐｓ、６０ｆｐｓなどのフレームレートが設定される。電子装置１０は、好ましくは、フレームレートに対応させて一定時間ごとに処理を実行する。
【００７５】
表示部２２は、ゲームを開始すると、図４に示すようなゲーム用画面を表示する（ステップ１０１）。
【００７６】
コントローラ入力決定部２３は、タッチイベントが発生するときに、タッチイベントを取得する（ステップ１０２）。本ステップにおいて、コントローラ入力決定部２３は、タッチイベントが発生しない場合又は有効なタッチイベントでない場合、タッチイベントを取得しない。
【００７７】
図１０は、図９に示すステップ１０２において実行される１つの実施例の情報処理を説明するフローチャートである。コントローラ入力決定部２３は、タッチパネル１７へのユーザの操作により発生したタッチイベントがタッチパネル１７の所定領域５０内で発生したものであるか否かを判定する（ステップ１１１）。コントローラ入力決定部２３は、所定領域５０内で発生したものでないと判定した場合、当該タッチイベントを無効なタッチイベントと判定する（ステップ１１２）。コントローラ入力決定部２３は、所定領域５０内で発生したものであると判定した場合、当該タッチイベントを有効なタッチイベントと判定する（ステップ１１３）。
【００７８】
コントローラ入力決定部２３は、有効なタッチイベントと判定されたタッチイベントに基づいて、タッチ位置を決定する（ステップ１０３）。次にコントローラ入力決定部２３は、有効なタッチイベントと判定されたタッチイベントに基づいて、ユーザ入力の方向及び大きさを決定する（ステップ１０４）。
【００７９】
次に電子装置１０は、ゲーム状態を更新し、表示部２２は、ゲーム用画面を更新する（ステップ１０５）。ゲーム状態は、ユーザ入力の大きさが所定値τを超える大きさであるか否かを判定した結果を含む。表示部２２は、ゲーム状態と、ステップ１０３で決定されたタッチ位置と、ステップ１０４で決定されたユーザ入力の方向及び大きさとに基づいて、ユーザの操作を支援するための仮想オブジェクトを含むゲーム用画面を描画することによりゲーム用画面を更新する。なおゲーム状態は、操作対象キャラクタ４０の移動方向、移動速度、及び位置などを含むものであり、表示部２２は、更新されたゲーム状態に基づいて、ゲーム用画面を描画することによりゲーム用画面を更新するものであるが、本明細書では説明を省略する。
【００８０】
ステップ１０６において、ゲームが終了しない限り、本処理はステップ１０２へ戻る。本処理は、必要に応じて、他の処理との同期を持たせてもよい。
【００８１】
なお、本フローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて又は代えて別の処理が実行されてもよい。例えば、ステップ１０３〜ステップ１０５の処理の順序は入れ替えることができる。また、一のタッチイベントがステップ１１２で無効なタッチイベントと判定された場合であっても、電子装置１０が備える他の機能部やプログラムは、当該一のタッチイベントを有効なタッチイベントとして用いることができる。例えば電子装置１０が設定入力決定部を備える場合、設定入力決定部は、ステップ１１２の判定に関わらず、取得したタッチイベントに基づいてデータポイントの座標を取得することができる。設定入力決定部は、当該座標の位置に対応するＧＵＩ要素に対する入力を決定し、電子装置１０は当該ＧＵＩ要素に対応する処理を実行することができる。
【００８２】
図１１は、図９に示すステップ１０５において実行される１つの実施例の情報処理を説明するフローチャートである。電子装置１０は、決定されたユーザ入力の大きさが所定値τを超えるか否かを判定する（ステップ１２１）。ステップ１２１で超えると判定されない場合、電子装置１０は、第１のオブジェクト３３を含むゲーム用画面を描画することによりゲーム用画面を更新する（ステップ１２２）。ステップ１２１で超えると判定された場合、電子装置１０は、第１のオブジェクト３３が第２のオブジェクト３４へ変化したゲーム用画面を描画することによりゲーム用画面を更新する（ステップ１２３）。
【００８３】
次に、本発明の実施形態による電子装置１０の主な作用効果について説明する。本実施形態では、コントローラ入力決定部２３は、ユーザの操作により発生したタッチイベントに基づいてタッチ位置を決定するとともにユーザ入力の方向及び大きさを決定する。表示部２２は、決定されたタッチ位置に対して決定したユーザ入力の方向を示す第１のオブジェクト３３をタッチパネル１７に表示する。コントローラ入力判定部２４は、決定されたユーザ入力の大きさ（ユーザ入力の大きさが速度因子と異なるときは速度因子）が所定値を超える大きさであるか否かを判定する。表示部２２は、決定されたユーザ入力の大きさが所定値を超える大きさでないと判定された場合、第１のオブジェクト３３を表示する。表示部２２は、決定されたユーザ入力の大きさが所定値を超える大きさであると判定された場合、決定されたユーザ入力の方向への入力を抑制させるための第２のオブジェクト３４へ第１のオブジェクト３３を変化させる。
【００８４】
ユーザは、タッチパネル１７を介して仮想コントローラを操作するとき、従来型の据置型ゲームの物理的なコントローラにおける方向レバーを操作する感触を得ることは難しい。特に仮想コントローラの場合、ユーザがある方向へ入力を行う際に、更に大きな入力を行うことができるか否かが不明な場合がある。本実施形態のように、決定されたユーザ入力の大きさが所定値を超える大きさである場合、表示部２２がユーザ入力の方向を示す第１のオブジェクト３３をユーザ入力の方向への入力を抑制させるための第２のオブジェクト３４へ変化させる構成とすることにより、電子装置１０は、ユーザに対して入力が十分な大きさに達した印象を与えること（アフォーダンス）が可能となる。一方、ユーザは、入力が十分な大きさに達したという認識を得ることができるため、自身の入力の大きさを把握し易くなる。これにより、ユーザの過剰な入力を防ぐことが可能となり、より操作性を高めることが可能となる。
【００８５】
また本実施形態では、第１のオブジェクト３３は、決定されたタッチ位置から決定されたユーザ入力の方向へ離れた位置に配置されるオブジェクトであり、第２のオブジェクト３４は、決定されたタッチ位置から決定されたユーザ入力の方向へ離れた位置に配置されるオブジェクトである。そしてタッチパネル１７に表示される第２のオブジェクト３４の最大幅は、タッチパネル１７に表示される第１のオブジェクト３３の最大幅よりも大きい。本実施形態のような構成とすることにより、ユーザは、入力が十分な大きさに達したことをより容易に認識することが可能となる。これにより、ユーザの過剰な入力をより防ぐことが可能となり、より操作性を高めることが可能となる。
【００８６】
また本実施形態では、表示部２２は、第１のステップとして、ユーザにタッチ推奨領域を示唆するための環状オブジェクト３０をタッチパネル１７の所定領域５０内に表示する。コントローラ入力決定部２３は、発生したタッチイベントがタッチパネル１７の所定領域５０内で発生したものであるか否かを判定する。コントローラ入力決定部２３は、所定領域５０内で発生したものであると判定したタッチイベントに基づいて、タッチ位置を決定する。表示部２２は、第２のステップとして、決定されたタッチ位置を中心として、時間の経過とともに内径が徐々に小さくなるように環状オブジェクト３０をタッチパネル１７に表示する。
【００８７】
本実施形態のように、表示部２２が第２のステップとして環状オブジェクト３０を動的に変化させて表示することにより、ユーザは、自身が指を置いている画面上の位置を、該指で画面が隠れている場合であっても、正確に把握することが可能となる。これにより、より操作性を高めることが可能となる。また、ユーザの操作を支援するための環状オブジェクト３０は常に固定位置に表示されるわけではないため、ユーザの操作を支援するための仮想オブジェクトが固定位置に表示される場合と比較して、ゲーム開発者はゲーム用画面を有効に活用したゲームアプリケーションを作成することが可能となる。
【００８８】
また、表示部２２は、図８に示すように、タッチ位置に対してユーザ入力の方向へ離れた位置に複数のオブジェクト３２を収束させ、その後、図６に示すように、タッチ位置に対してユーザ入力の方向へ離れた位置に第１のオブジェクト３３を表示する。このように、表示部２２が、ユーザ入力に応じて複数のオブジェクト３２を動的に収束させるように表示することにより、電子装置１０は、ユーザに対して当該オブジェクト３２を移動させる印象を与えること（アフォーダンス）が可能となる。一方、ユーザは、自身の入力に応じてオブジェクト３２が移動するため、自身の入力が適切に反映されているという認識を得ることができる。これにより、ユーザの過剰な入力を防ぐことが可能となり、より操作性を高めることが可能となる。
【００８９】
また表示部２２が所定領域５０内に環状オブジェクト３０を表示することにより、ユーザに対して環状オブジェクト３０の中央に指を置きたくなる印象を与えること（アフォーダンス）が可能となる。従来、ユーザは、タッチパネル１７を介して仮想コントローラを操作するとき、特に固定位置に仮想コントローラが無い場合、自身の指をどこに置くべきかが分かりづらい場合があった。本実施形態のような構成とすることにより、ユーザは、最初に指を置くべき位置を把握し易くなる。これにより、より操作性を高めることが可能となる。更に操作対象キャラクタ４０を制御するための入力領域を明確化するとともに、所定領域５０内で発生したタッチイベントのみを有効とすることにより、ユーザに対するゲームアプリケーションが要求する範囲への入力を支援することが可能となる。
【００９０】
また本実施形態では、表示部２２は、最新の所定数のフレームにおいて決定したタッチ位置を中心とした円状オブジェクト３５を表示する。本実施形態のような構成とすることにより、ユーザは、自身が入力した方向及び大きさとは異なるタッチ位置そのものを把握し易くなる。これにより、より操作性を高めることが可能となる。
【００９１】
上記の作用効果は、特に言及が無い限り、他の実施形態や他の実施例においても同様である。
【００９２】
本発明の他の変形実施形態では、表示部２２は、環状オブジェクト３０を表示しない。したがって、表示部２２は、コントローラ入力決定部２３がタッチ位置を決定した後に、環状オブジェクト３０を変化させない。当該変形実施形態においても、例えば表示部２２は第１のオブジェクト３３及び第２のオブジェクト３４を表示し、これによりユーザは自身の入力の大きさを把握し易くなる点において、より操作性を高くすることが可能となる。
【００９３】
本発明の他の変形実施形態では、表示部２２は、円状オブジェクト３５を表示しない。当該変形実施形態においても、例えば表示部２２は第１のオブジェクト３３及び第２のオブジェクト３４を表示し、これによりユーザは自身の入力の大きさを把握し易くなる点において、より操作性を高くすることが可能となる。
【００９４】
本発明の他の変形実施形態では、表示部２２は、第１のオブジェクト３３及び第２のオブジェクト３４を表示しない。したがって、電子装置１０は、コントローラ入力判定部２４を備えない。当該変形実施形態においても、例えば電子装置１０は、環状オブジェクト３０を表示し、表示部２２は、決定したタッチ位置を中心として、時間の経過とともに内径が徐々に小さくなるように環状オブジェクト３０を表示する。これにより、当該変形実施形態においても、ユーザは最初に指を置くべき位置を把握しやすくなる点において、より操作性を高くすることが可能となる。
【００９５】
本発明の他の変形実施形態では、コントローラ入力決定部２３は、所定領域５０に関係なく、発生したタッチイベントに基づいて、第１の軸の値及び第２の軸の値により示されるデータポイントを取得する。この場合、電子装置１０は、ステップ１０２においてステップ１１１〜１１３を実行せず、タッチパネル１７へのユーザの操作により発生したすべてのタッチイベントに基づいてステップ１０３〜１０５を実行する。当該変形実施形態においても、例えば操作対象キャラクタ４０を制御するための入力領域が明確化され、ユーザは最初に指を置くべき位置を把握し易くなる点において、より操作性を高くすることが可能となる。
【００９６】
本発明の他の変形実施形態では、コントローラ入力決定部２３は、フレームの時間とは異なる既定の処理時間ごとに、その時間内に取得した１又は複数のデータポイントをデータポイント列としてバッファに格納する。この場合、コントローラ入力決定部２３は、フレームの時間とは異なる既定の処理時間ごとに、タッチ位置、ユーザ入力の方向及び大きさを決定することができる。
【００９７】
本発明の他の変形実施形態では、コントローラ入力決定部２３は、発生したタッチイベントに基づいて取得したデータポイントをその取得時間と関連付けてバッファに格納する。コントローラ入力決定部２３は、既定の保持時間を超えたデータポイントの保持を終了する。この場合、コントローラ入力決定部２３は、既定の処理時間ごとに、データポイントをデータポイント列としてバッファに格納しない。この場合、コントローラ入力決定部２３は、バッファに保持されたデータポイントに基づいて、タッチ位置、ユーザ入力の方向及び大きさを決定することができる。
【００９８】
本発明の他の変形実施形態では、コントローラ入力決定部２３は、touchmoveのイベント発生後のフレームにおいてタッチイベントを取得しない場合、そのフレームの時間に対応するデータポイント列Ｐ（ｉ）を保持しない。この場合、コントローラ入力決定部２３は、保持時間に関わらず、データポイントが格納された５つのデータポイント列を保持する。この場合、コントローラ入力決定部２３は、保持されたデータポイントに基づいて、タッチ位置、ユーザ入力の方向及び大きさを決定することができる。
【００９９】
本発明の他の変形実施形態では、コントローラ入力決定部２３は、最新のデータポイント列Ｐ（ｎ）が含むデータポイントの各々が示すＸＹ座標のＸ座標の値の平均値及びＹ座標の値の平均値からなるＸＹ座標の位置をタッチ位置として決定する。当該変形実施形態では、コントローラ入力決定部２３は、最新のデータポイント列Ｐ（ｎ）が含むデータポイントうちの最新のデータポイントが示すＸＹ座標をタッチ位置として決定しない。
【０１００】
本発明の他の変形実施形態では、コントローラ入力決定部２３は、取得したタッチイベントに基づいて、第１の軸の値及び第２の軸の値により示されるデータポイントの座標（ｘ、ｙ）を取得し、当該座標をタッチ位置として決定する。当該変形実施形態では、コントローラ入力決定部２３は、最新のデータポイント列Ｐ（ｎ）が含むデータポイントうちの最新のデータポイントが示すＸＹ座標をタッチ位置として決定しない。当該変形実施形態では、コントローラ入力決定部２３は、発生したタッチイベントに基づいて取得したデータポイントをバッファに保持してもよいし、保持しなくてもよい。
【０１０１】
本発明の他の変形実施形態では、コントローラ入力決定部２３は、touchmoveのイベント発生後のフレームにおいてタッチイベントを取得しない場合、他のタッチイベントが発生するまで、タッチイベントを取得しているときに決定されたタッチ位置をタッチ位置として決定する。また、コントローラ入力決定部２３は、touchmoveのイベント発生後に所定数の連続するフレームにおいてタッチイベントを取得しない場合、他のタッチイベントが発生するまで、タッチイベントを取得しているときに決定された速度因子を速度因子として決定する。
【０１０２】
本発明の他の変形実施形態では、コントローラ入力決定部２３は、速度因子ではなく、変位速さをユーザ入力の大きさとして決定する。この場合、ユーザ入力の大きさは変位速さである。この場合においても、コントローラ入力決定部２３は、速度因子を決定し、コントローラ入力判定部２４は、速度因子が所定値τを超える大きさであるか否かを判定する。キャラクタ状態決定部２５は、コントローラ入力判定部２４の判定結果に基づいて、タッチパネル１７に表示される操作対象キャラクタの移動状態を決定する。
【０１０３】
本発明の他の変形実施形態では、キャラクタ状態決定部２５は、速度因子をコントローラ入力判定部２４とは異なる閾値と比較して判定し、操作対象キャラクタ４０が歩く状態及び走る状態のうちのいずれか１つの状態を決定する。このような構成とすることにより、ゲームアプリケーションに応じた動作を実現することが可能となる。
【０１０４】
本発明の他の変形実施形態では、キャラクタ状態決定部２５は、速度因子を２つの閾値と比較して判定し、操作対象キャラクタ４０が歩く状態、早く歩く状態及び走る状態のいずれかの１つの状態を決定する。
【０１０５】
本発明の他の変形実施形態では、表示部２２は、touchmoveのイベント発生後における最新の所定数のフレームにおいてタッチイベントが発生しないとき、表示部２２は、円状オブジェクト３５を表示しない。このような構成とすることにより、ユーザは、新たなタッチイベントを発生させずに操作を継続していることを確認することができる。
【０１０６】
本発明の他の変形実施形態では、電子装置１０は、振動機構及びスピーカのうちの少なくとも一方を備え、これらを制御するための出力制御部を備える。コントローラ入力決定部２３が決定した速度因子が所定値τを超える大きさであるとコントローラ入力判定部２４が判定した場合、出力制御部は、電子装置１０を振動させるための制御又は電子装置１０から音声を出力させるための制御を実行する。このような構成とすることにより、ユーザは、自身の入力の大きさを振動又は音声により認識することが可能となり、より操作性を高めることが可能となる。
【０１０７】
本発明の他の変形実施形態では、コントローラ入力決定部２３及びコントローラ入力判定部２４は、上記の実施形態の処理を実行せず（例えばコントローラ入力決定部２３は速度因子を決定せず）、以下の処理を実行する。コントローラ入力決定部２３は、決定したタッチ位置のうちタッチ開始のタッチイベントに基づいて決定したタッチ位置を基準位置として設定する。１つの例では、コントローラ入力決定部２３は、取得したタッチイベントに基づいて、第１の軸の値及び第２の軸の値により示されるデータポイントの座標（ｘ、ｙ）を取得し、当該座標をタッチ位置として決定する。タッチ開始のタッチイベントは、touchstartのタッチイベントである。
【０１０８】
当該変形実施形態では、コントローラ入力決定部２３は、決定したタッチ位置のうち基準位置を設定した後に発生したタッチイベントに基づいて決定したタッチ位置を指示位置として設定する。１つの例では、コントローラ入力決定部２３は、基準位置を設定した後に取得したタッチイベントに基づいて座標（ｘ、ｙ）を取得し、当該座標を指示位置として決定する。
【０１０９】
当該変形実施形態では、コントローラ入力決定部２３は、基準位置から指示位置への方向に基づいてユーザ入力の方向を決定する。１つの例では、コントローラ入力決定部２３は、基準位置から指示位置への方向のベクトルの角度をユーザ入力の方向に対応する角度として決定する。
【０１１０】
当該変形実施形態では、コントローラ入力決定部２３は、基準位置から指示位置までの距離に基づいてユーザ入力の大きさを決定する。１つの例では、コントローラ入力決定部２３は、基準位置から指示位置までの距離をユーザ入力の大きさとして決定する。
【０１１１】
当該変形実施形態では、コントローラ入力判定部２４は、ユーザ入力の大きさが所定値τを超える大きさであるか否かを判定する。キャラクタ状態決定部２５は、コントローラ入力判定部２４の判定結果に基づいて、タッチパネル１７に表示される操作対象キャラクタ４０の移動状態を決定する。
【０１１２】
当該変形実施形態においても、表示部２２は第１のオブジェクト３３及び第２のオブジェクト３４を表示し、決定されたユーザ入力の大きさが所定値を超える大きさである場合、表示部２２がユーザ入力の方向を示す第１のオブジェクト３３をユーザ入力の方向への入力を抑制させるための第２のオブジェクト３４へ変化させる。このような構成とすることにより、電子装置１０は、ユーザに対して入力が十分な大きさに達した印象を与えること（アフォーダンス）が可能となる。一方、ユーザは、入力が十分な大きさに達したという認識を得ることができるため、自身の入力の大きさを把握し易くなる。これにより、ユーザの過剰な入力を防ぐことが可能となり、より操作性を高くすることが可能となる。
【０１１３】
また当該変形実施形態においても、電子装置１０は、環状オブジェクト３０を表示し、表示部２２は、決定したタッチ位置を中心として、時間の経過とともに内径が徐々に小さくなるように環状オブジェクト３０を表示する。このように、当該変形実施形態においても、表示部２２が第２のステップとして環状オブジェクト３０を動的に変化させて表示することにより、ユーザは、自身が指を置いている画面上の位置を、該指で画面が隠れている場合であっても、正確に把握することが可能となる。これにより、より操作性を高めることが可能となる。また、ユーザの操作を支援するための環状オブジェクト３０は常に固定位置に表示されるわけではないため、ユーザの操作を支援するための仮想オブジェクトが固定位置に表示される場合と比較して、ゲーム開発者はゲーム用画面を有効に活用したゲームアプリケーションを作成することが可能となる。
【０１１４】
また当該変形実施形態においても、表示部２２は、図８に示すように、タッチ位置に対してユーザ入力の方向へ離れた位置に複数のオブジェクト３２を収束させ、その後、図６に示すように、タッチ位置に対してユーザ入力の方向へ離れた位置に第１のオブジェクト３３を表示する。このように当該変形実施形態においても、表示部２２が、ユーザ入力に応じて複数のオブジェクト３２を動的に収束させるように表示することにより、電子装置１０は、ユーザに対して当該オブジェクト３２を移動させる印象を与えること（アフォーダンス）が可能となる。一方、ユーザは、自身の入力に応じてオブジェクト３２が移動するため、自身の入力が適切に反映されているという認識を得ることができる。これにより、ユーザの過剰な入力を防ぐことが可能となり、より操作性を高めることが可能となる。
【０１１５】
また当該変形実施形態においても、表示部２２が所定領域５０内に環状オブジェクト３０を表示することにより、ユーザに対して環状オブジェクト３０の中央に指を置きたくなる印象を与えること（アフォーダンス）が可能となる。これにより、ユーザは最初に指を置くべき位置を把握しやすくなるため、より操作性を高くすることが可能となる。更に当該変形実施形態においても、操作対象キャラクタ４０を制御するための入力領域を明確化するとともに、所定領域５０内で発生したタッチイベントのみを有効とすることにより、ユーザに対するゲームアプリケーションが要求する範囲への入力を支援することが可能となる。
【０１１６】
なお、当該変形実施形態では、コントローラ入力決定部２３は、所定領域５０内で発生したものであると判定したタッチイベントのみに基づいて、第１の軸の値及び第２の軸の値により示されるデータポイントを取得してもよい。この場合、タッチ開始のタッチイベントは、所定領域５０内で発生したものであると判定した最初のタッチイベントである。
【０１１７】
上記の変形実施形態は、矛盾が生じない限りにおいて、適宜組み合わせて本発明の任意の実施形態とすることもできるし、任意の実施形態に適用することもできる。
【０１１８】
本発明の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する電子装置やプログラムとすることができ、また該プログラムを格納したコンピュータ読み取り可能な記憶媒体とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する方法とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムをコンピュータに供給することができるサーバとすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する仮想マシンとすることもできる。
【０１１９】
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【符号の説明】
【０１２０】
１０  電子装置
１１  プロセッサ
１２  入力装置
１３  表示装置
１４  記憶装置
１５  通信装置
１６  バス
１７  タッチパネル
２１  入力部
２２  表示部
２３  コントローラ入力決定部
２４  コントローラ入力判定部
２５  キャラクタ状態決定部
３０  環状オブジェクト
３１、３２  オブジェクト
３３  第１のオブジェクト
３４  第２のオブジェクト
３５  円状オブジェクト
４０  操作対象キャラクタ
５０  所定領域
【要約】
【課題】タッチパネルを介したユーザの操作において、より操作性を高めることができる方法を提供する。
【解決手段】本発明は、タッチパネルを介した仮想空間内の操作対象オブジェクトに対するユーザの操作を支援するための方法であって、タッチ位置を決定するステップと、操作対象オブジェクトを移動させるためのユーザ入力の方向及び大きさを決定するステップと、決定したタッチ位置に対して決定したユーザ入力の方向を示す第１のオブジェクトをタッチパネルに表示するステップと、決定したユーザ入力の大きさが所定値を超える大きさであるか否かを判定するステップと、決定したユーザ入力の大きさが所定値を超える大きさであると判定した場合、決定したユーザ入力の方向への入力を抑制させるための第２のオブジェクトへ第１のオブジェクトを変化させるステップと、を含む。
【選択図】図１【図１】
0006775076.tif 000009
【図２】
0006775076.tif 000010
【図３】
0006775076.tif 000011
【図４】
0006775076.tif 000012
【図５】
0006775076.tif 000013
【図６】
0006775076.tif 000014
【図７】
0006775076.tif 000015
【図８】
0006775076.tif 000016
【図９】
0006775076.tif 000017
【図１０】
0006775076.tif 000018
【図１１】
0006775076.tif 000019