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