(57)【要約】【課題】精度良く操作対象を操作することができる仮想コントローラを、コンピュータ上に実現することができるプログラムを提供する。【解決手段】本発明は、接触又は近接操作を受け付ける操作入力部９を含む表示装置２に接続される或いは当該表示装置２を備えるコンピュータ１を、操作入力部９に対するユーザの操作に応じて、仮想コントローラ画像１０ａの属性を変更していく仮想コントローラ属性変更手段１４、及び、仮想コントローラ属性変更手段１４によって変更された仮想コントローラ画像の強度属性１５ｄ及び方向属性１５ｆに基づいて、仮想コントローラ画像１０ａを生成すると共に、仮想コントローラ画像１０ａの強度属性１５ｄ及び方向属性１５ｆに連動して、操作対象が移動していくように、表示装置２に表示する操作対象画像１０ｂを生成する表示画像生成手段１３、として機能させることを特徴とする。【選択図】図１６
2018187289.tif 000002
【特許請求の範囲】
【請求項１】
接触又は近接操作を受け付ける操作入力部を含む表示装置に接続される或いは当該表示装置を備えるコンピュータを、
前記操作入力部に対するユーザの操作に応じて、仮想コントローラ画像の属性を変更していく仮想コントローラ属性変更手段、及び、
前記仮想コントローラ属性変更手段によって変更された前記仮想コントローラ画像の属性に基づいて、前記仮想コントローラ画像を生成すると共に、前記仮想コントローラ画像の属性に連動して、操作対象が移動していくように、前記表示装置に表示する前記操作対象の画像を生成する表示画像生成手段、
として機能させることを特徴とする、プログラム。
【請求項２】
前記仮想コントローラ画像には、強度を示す第１の画像及び方向を示す第２の画像の少なくとも一つが含まれていることを特徴とする、請求項１に記載のプログラム。
【請求項３】
前記第１の画像は、前記操作対象の移動速度を表し、
前記第２の画像は、前記操作対象の移動方向を表すことを特徴とする、請求項２に記載のプログラム。
【請求項４】
前記仮想コントローラ画像には、操作モードを示す第３の画像が含まれていることを特徴とする、請求項１〜３のいずれかに記載のプログラム。
【請求項５】
前記仮想コントローラ画像には、基準面を示す第４の画像が含まれていることを特徴とする、請求項１〜４いずれかに記載のプログラム。
【請求項６】
前記仮想コントローラ画像には、高さを示す第５の画像が含まれていることを特徴とする、請求項１〜５のいずれかに記載のプログラム。
【請求項７】
前記仮想コントローラ画像には、仰俯角を示す第６の画像が含まれていることを特徴とする、請求項１〜６のいずれかに記載のプログラム。
【請求項８】
前記仮想コントローラ画像には、操作対象の状態を示す第７の画像が含まれていることを特徴とする、請求項１〜７のいずれかに記載のプログラム。
【請求項９】
前記操作入力部への前記ユーザによる操作が行なわれた場合、前記仮想コントローラ属性変更手段が、前記ユーザによる操作方向に基づいて、前記仮想コントローラ画像における方向に関する属性を変更するように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜８のいずれかに記載のプログラム。
【請求項１０】
前記操作入力部への前記ユーザによる操作として、タッチアンドホールドが行なわれている間、前記仮想コントローラ属性変更手段が、タッチアンドホールドの動きに合せて、前記仮想コントローラ画像における方向に関する属性を変更するように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜９のいずれかに記載のプログラム。
【請求項１１】
前記操作入力部への前記ユーザによる操作が行なわれた場合、前記仮想コントローラ属性変更手段が、前記ユーザによる操作の距離に基づいて、前記仮想コントローラ画像における強度に関する属性を変更するように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜１０のいずれかに記載のプログラム。
【請求項１２】
前記操作入力部への前記ユーザによる操作として、スワイプが行なわれた場合、前記仮想コントローラ属性変更手段が、スワイプの距離に基づいて、前記仮想コントローラ画像における強度に関する属性を変更するように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜１１のいずれかに記載のプログラム。
【請求項１３】
前記操作入力部への前記ユーザによる操作として、フリックが行なわれた場合、前記仮想コントローラ属性変更手段が、フリックに基づいて、前記仮想コントローラ画像における強度に関する属性を変更するように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜１２のいずれかに記載のプログラム。
【請求項１４】
前記操作入力部への前記ユーザによる操作として、タップが行なわれた場合、前記操作対象が所定の動作をするように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜１３のいずれかに記載のプログラム。
【請求項１５】
前記操作入力部への前記ユーザによる操作として、タップが行なわれた場合、前記仮想コントローラ属性変更手段が、前記操作対象が停止するように、前記仮想コントローラ画像における強度に関する属性を変更するように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜１４のいずれかに記載のプログラム。
【請求項１６】
前記操作入力部への前記ユーザによる操作によって、視点の変更の指示が行なわれた場合、前記表示画像生成手段が、視点を変更した画像を生成するように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜１５のいずれかに記載のプログラム。
【請求項１７】
前記操作入力部への前記ユーザによる操作によって、操作モードの変更の指示が行なわれた場合、前記表示画像生成手段が、変更後の操作モードを示す画像を生成するように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜１６のいずれかに記載のプログラム。
【請求項１８】
前記操作入力部への前記ユーザによる操作によって、前記操作対象をピックアップして移動させる指示が検出された場合、前記表示画像生成手段が、前記操作対象を移動させるように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜１７のいずれかに記載のプログラム。
【請求項１９】
前記操作入力部への前記ユーザによる操作が行なわれていない間、前記仮想コントローラ属性変更手段が、前記仮想コントローラ画像の強度に関する属性を、予め決められた規則に従って、自動的に変更していくように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜１８のいずれかに記載のプログラム。
【請求項２０】
操作モードとして、対象物を探索するモードが指定されている場合、前記表示画像生成手段が、対象物を表示するような画像を生成するように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜１９のいずれかに記載のプログラム。
【請求項２１】
操作モードとして、対象物を選択するモードが指定されている場合、前記操作入力部への前記ユーザの操作に基づいて、前記表示画像生成手段が、対象物を選択するような画像を生成するように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜２０のいずれかに記載のプログラム。
【請求項２２】
前記操作入力部に対して、前記ユーザが接触又は近接の操作を行なっている間、前記仮想コントローラ属性変更手段が、前記仮想コントローラ画像における強度に関する属性を固定するように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜２１のいずれかに記載のプログラム。
【請求項２３】
操作モードとして、前記操作対象が自動的に移動するモードが指定されている場合、前記仮想コントローラ属性変更手段が、予め決められた規則に従って、前記仮想コントローラ画像の属性を、自動的に変更していくように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜２２のいずれかに記載のプログラム。
【請求項２４】
前記表示画像生成手段が、前記表示装置に画像を表示するためのフレーム単位で、前記仮想コントローラ属性変更手段によって生成されている前記仮想コントローラ画像の属性を参照して、前記仮想コントローラ画像及び前記操作対象の画像を生成するように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜２３のいずれかに記載のプログラム。
【請求項２５】
前記操作入力部に対する前記ユーザの操作に対する前記仮想コントローラ画像の強度に関する属性の変化率が調整可能なように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜２４のいずれかに記載のプログラム。
【請求項２６】
前記操作入力部への前記ユーザによる操作によって、前記操作対象の高度の変更の指示が行なわれた場合、前記表示画像生成手段が、前記操作対象の高度を変更した画像を生成するように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜２５のいずれかに記載のプログラム。
【請求項２７】
前記操作入力部への前記ユーザによる操作によって、前記操作対象の仰俯角の変更の指示が行なわれた場合、前記表示画像生成手段が、前記操作対象の仰俯角を変更した画像を生成するように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜２６のいずれかに記載のプログラム。
【請求項２８】
前記操作検出部は二以上の領域に分割し、当該各領域に対して、前記仮想コントローラ画像の属性を割り当て、前記仮想コントローラ属性変更部が、当該各領域に対する前記ユーザの操作に応じて、対応する前記仮想コントローラ画像の属性を変化させるように、前記コンピュータを制御するようにしたことを特徴とする、請求項１〜２７のいずれかに記載のプログラム。
【請求項２９】
接触又は近接操作を受け付ける操作入力部を含む表示装置に接続される或いは当該表示装置を備える情報処理装置であって、
前記操作入力部に対するユーザの操作に応じて、仮想コントローラ画像の属性を変更していく仮想コントローラ属性変更手段と、
前記仮想コントローラ属性変更手段によって変更された前記仮想コントローラ画像の属性に基づいて、前記仮想コントローラ画像を生成すると共に、前記仮想コントローラ画像の属性に連動して、操作対象が移動していくように、前記表示装置に表示する前記操作対象の画像を生成する表示画像生成手段とを備えることを特徴とする、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作入力部を含む表示装置に接続される或いは当該表示装置を備えるコンピュータで実行されるプログラムに関し、より特定的には、仮想コントローラを用いて、画面上の操作対象画像を操作するためのプログラムに関する。
【背景技術】
【０００２】
タッチパネルは、スマートフォンやタブレット端末、ノートパソコン、ディスプレイ装置等に、使用されている。たとえば、タッチパネルを使用したスマートフォンやタブレット端末で、プログラムを実行して、アプリケーションを楽しむ場合、タッチパネルを指やタッチペン等で操作することで、操作対象の移動速度や移動方向を制御することができる。タッチパネルを使用したアプリケーションにおいては、直感的な操作が求められるところ、ゲームに関する例とはなるが、特許文献１及び特許文献２に記載されているような発明が従来提案されている。
【０００３】
特許文献１に記載のプログラムでは、入力操作領域に対する摺動操作を検出し、検出した摺動操作に基づいて、操作対象となるキャラクタの移動を制御し、キャラクタの移動方向及び移動速度を表す回転する仮想トラックボールを表示し、回転方向を矢印で示すことで、仮想空間におけるキャラクタの移動方向や移動速度を、ユーザに、視覚的に把握しやすくさせている。これにより、ユーザは、把握した移動方向や移動速度を参照しながら、摺動操作を行なうことができ、それにより、キャラクタの操作性を向上させることが可能となっている。
【０００４】
特許文献２に記載のプログラムでは、ユーザのスワイプ方向に、回転コントローラを回転させて、当該回転コントローラと連動するように、仮想空間内において、当該スワイプ方向に操作対象となるキャラクタが移動する（特許文献２の段落0026参照）。これによって、３Ｄゲームでの仮想的なコントローラを実現している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４４２０７３０号公報
【特許文献２】特許第５８７６６００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１及び２に記載されているように、従来、回転する仮想トラックボールや回転コントローラを用いて、操作対象となるキャラクタの移動方向や移動速度を表現するゲームプログラムは存在していた。
【０００７】
しかし、特許文献１のゲームプログラムにおいては、あくまでも、ユーザの摺動操作によって、キャラクタが移動するに過ぎず、仮想トラックボールは、キャラクタの移動方向や移動速度を表示しているに過ぎない。
【０００８】
言い換えるならば、特許文献１のプログラム上での処理は、「摺動操作の認識」→「キャラクタの移動」→「仮想トラックボールの回転」という順で行なわれており、あくまでも、仮想トラックボールは、キャラクタの移動方向や移動速度を表現しているに過ぎない（特許文献１の段落0074参照）。すなわち、特許文献１のプログラムでは、仮想トラックボールの動きに連動して、キャラクタが移動するのではない。
【０００９】
特許文献１において、摺動操作に直接連動しているのはキャラクタの移動であるので、ユーザが仮想トラックボールを所望の方向や速度で回転させながらキャラクタを操作しようとしても、所望通りにキャラクタが移動しないと感じることとなる。特許文献１では、仮想トラックボールが用いられてはいるものの、仮想トラックボールは、キャラクタの移動方向や移動速度を表している指標に過ぎないこととなる。結果、ユーザとしては、あくまでも、キャラクタを摺動操作で直接移動させているとの感覚を得ることしかできない。逆を言えば、仮想トラックボールを操作することで、キャラクタの移動をコントロールしているとの印象をユーザは得ることはできず、仮想トラックボールの存在により却って、所望通りに操作対象を操作できないとの印象を与えてしまう結果となる。このように、特許文献１に記載の仮想トラックボールは、仮想的なコントローラとしては不十分であると言わざるを得ない。
【００１０】
特許文献２のプログラムにおいては、ユーザのスワイプ方向に回転コントローラを回転させて、当該回転コントローラと連動するように、キャラクタが仮想空間内を移動することとなるため、特許文献１のプログラムに比べて、回転コントローラを操作している感覚でキャラクタが移動しているとの印象をユーザは受けることとなる。
【００１１】
しかし、特許文献２のプログラムでは、単に、回転コントローラの回転方向や回転量、回転速度などとキャラクタの移動とが連動しているとされているに過ぎず（特許文献２の図４のＳ７等参照）、具体的に、どのようにして連動しているのかが不明である。また、特許文献２では、スワイプ動作による連動のみが想定されているに過ぎず、スワイプ以外の操作が行なわれた場合に、どのように、回転コントローラとキャラクタの移動とが連動するのかについて、一切開示されていない。さらに、特許文献２のプログラムにおいては、回転コントローラの回転方向や回転速度で、キャラクタの移動方向や移動速度を表すこととなるが、特許文献２の図２や図５に示されている回転コントローラの回転方向や回転速度は、直感的には分かりにくい。このように、特許文献２に記載の回転コントローラであっても、仮想的なコントローラとしては不十分であると言わざるを得ない。
【００１２】
このように、従来、仮想的なコントローラとして、特許文献１及び特許文献２に記載のものが提案されているが、実際に、特許文献１の仮想トラックボール及び特許文献２の回転コントローラを使用したとしても、キャラクタを精度良く操作することができない。
【００１３】
また、このような従来の仮想的なコントローラは、ゲームプログラムだけに使用されるものではなく、画面上の何らかの操作対象を操作する場合にも適用可能である。しかし、ゲーム以外のアプリケーションに、従来の仮想的なコントローラを適用したとしても、操作対象を精度良く操作することはできないことに違いはない。
【００１４】
それゆえ、本発明は、精度良く操作対象を操作することができる仮想コントローラを、コンピュータ上に実現することができるプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するために、本発明は、以下のような特徴を有する。本発明は、接触又は近接操作を受け付ける操作入力部を含む表示装置に接続される或いは当該表示装置を備えるコンピュータを、操作入力部に対するユーザの操作に応じて、仮想コントローラ画像の属性を変更していく仮想コントローラ属性変更手段、及び、仮想コントローラ属性変更手段によって変更された仮想コントローラ画像の属性に基づいて、仮想コントローラ画像を生成すると共に、仮想コントローラ画像の属性に連動して、操作対象が移動していくように、表示装置に表示する操作対象の画像を生成する表示画像生成手段、として機能させることを特徴とする、プログラムである。
【００１６】
仮想コントローラ画像には、強度を示す第１の画像及び方向を示す第２の画像の少なくとも一つが含まれているとよい。
【００１７】
第１の画像は、操作対象の移動速度を表し、第２の画像は、操作対象の移動方向を表すとよい。
【００１８】
仮想コントローラ画像には、操作モードを示す第３の画像が含まれているとよい。
【００１９】
仮想コントローラ画像には、基準面を示す第４の画像が含まれているとよい。
【００２０】
仮想コントローラ画像には、高さを示す第５の画像が含まれているとよい。
【００２１】
仮想コントローラ画像には、仰俯角を示す第６の画像が含まれているとよい。
【００２２】
仮想コントローラ画像には、操作対象の状態を示す第７の画像が含まれているとよい。
【００２３】
操作入力部へのユーザによる操作が行なわれた場合、仮想コントローラ属性変更手段が、ユーザによる操作方向に基づいて、仮想コントローラ画像における方向に関する属性を変更するとよい。
【００２４】
操作入力部へのユーザによる操作として、タッチアンドホールドが行なわれている間、仮想コントローラ属性変更手段が、タッチアンドホールドの動きに合せて、仮想コントローラ画像における方向に関する属性を変更するとよい。
【００２５】
操作入力部へのユーザによる操作が行なわれた場合、仮想コントローラ属性変更手段が、ユーザによる操作の距離に基づいて、仮想コントローラ画像における強度に関する属性を変更するとよい。
【００２６】
操作入力部へのユーザによる操作として、スワイプが行なわれた場合、仮想コントローラ属性変更手段が、スワイプの距離に基づいて、仮想コントローラ画像における強度に関する属性を変更するとよい。
【００２７】
操作入力部へのユーザによる操作として、フリックが行なわれた場合、仮想コントローラ属性変更手段が、フリックに基づいて、仮想コントローラ画像における強度に関する属性を変更するとよい。
【００２８】
操作入力部へのユーザによる操作として、タップが行なわれた場合、操作対象が所定の動作をするようにするとよい。
【００２９】
操作入力部へのユーザによる操作として、タップが行なわれた場合、仮想コントローラ属性変更手段が、操作対象が停止するように、仮想コントローラ画像における強度に関する属性を変更するとよい。
【００３０】
操作入力部へのユーザによる操作によって、視点の変更の指示が行なわれた場合、表示画像生成手段が、視点を変更した画像を生成するとよい。
【００３１】
操作入力部へのユーザによる操作によって、操作モードの変更の指示が行なわれた場合、表示画像生成手段が、変更後の操作モードを示す画像を生成するとよい。
【００３２】
操作入力部へのユーザによる操作によって、操作対象をピックアップして移動させる指示が検出された場合、表示画像生成手段が、操作対象を移動させるとよい。
【００３３】
操作入力部へのユーザによる操作が行なわれていない間、仮想コントローラ属性変更手段が、仮想コントローラ画像の強度に関する属性を、予め決められた規則に従って、自動的に変更していくとよい。
【００３４】
操作モードとして、対象物を探索するモードが指定されている場合、表示画像生成手段が、対象物を表示するような画像を生成するとよい。
【００３５】
操作モードとして、対象物を選択するモードが指定されている場合、操作入力部へのユーザの操作に基づいて、表示画像生成手段が、対象物を選択するような画像を生成するとよい。
【００３６】
操作入力部に対して、ユーザが接触又は近接の操作を行なっている間、仮想コントローラ属性変更手段が、仮想コントローラ画像における強度に関する属性を固定するとよい。
【００３７】
操作モードとして、操作対象が自動的に移動するモードが指定されている場合、仮想コントローラ属性変更手段が、予め決められた規則に従って、仮想コントローラ画像の属性を、自動的に変更していくとよい。
【００３８】
表示画像生成手段が、表示装置に画像を表示するためのフレーム単位で、仮想コントローラ属性変更手段によって生成されている仮想コントローラ画像の属性を参照して、仮想コントローラ画像及び操作対象の画像を生成するとよい。
【００３９】
操作入力部に対するユーザの操作に対する仮想コントローラ画像の強度に関する属性の変化率が調整可能なように、コンピュータを制御するとよい。
【００４０】
操作入力部へのユーザによる操作によって、操作対象の高度の変更の指示が行なわれた場合、表示画像生成手段が、操作対象の高度を変更した画像を生成するとよい。
【００４１】
操作入力部へのユーザによる操作によって、操作対象の仰俯角の変更の指示が行なわれた場合、表示画像生成手段が、操作対象の仰俯角を変更した画像を生成するとよい。
【００４２】
操作検出部は二以上の領域に分割し、当該各領域に対して、仮想コントローラ画像の属性を割り当て、仮想コントローラ属性変更部が、当該各領域に対するユーザの操作に応じて、対応する仮想コントローラ画像の属性を変化させるとよい。
【００４３】
本発明は、接触又は近接操作を受け付ける操作入力部を含む表示装置に接続される或いは当該表示装置を備える情報処理装置であって、
操作入力部に対するユーザの操作に応じて、仮想コントローラ画像の属性を変更していく仮想コントローラ属性変更手段と、
仮想コントローラ属性変更手段によって変更された仮想コントローラ画像の属性に基づいて、仮想コントローラ画像を生成すると共に、仮想コントローラ画像の属性に連動して、操作対象が移動していくように、表示装置に表示する操作対象の画像を生成する表示画像生成手段とを備えることを特徴とする。
【発明の効果】
【００４４】
本発明によれば、ユーザの操作に応じて、仮想コントローラ画像の属性を変更していくことができ、仮想コントローラ画像の属性に基づいて、仮想コントローラ画像が表示されていくことなる。したがって、ユーザの操作と仮想コントローラ画像とが連動しているため、ユーザは、仮想コントローラ画像を操作するという印象を受けることができる。そして、仮想コントローラ画像の属性と連動して、操作対象が移動していくように、表示装置に表示する操作対象の画像が生成されていくので、ユーザは、自身が操作している仮想コントローラ画像が示す操作通りに、精度良く、操作対象が移動しているとの印象を受けることができる。結果、従来の技術と比較して、精度良く操作対象を操作することができる仮想コントローラを、コンピュータ上に実現することができるプログラムが提供されることとなる。
【００４５】
仮想コントローラ画像として、強度を示す第１の画像を用いれば、操作対象の移動速度や強さ、重さ、大きさなどの強度を認識しながら、ユーザは、仮想コントローラ画像を操作することができ、さらに、精度の高い操作が可能となる。
【００４６】
仮想コントローラ画像として、方向を示す第２の画像を用いれば、操作対象の移動方向や攻撃方向、防御方向などの方向を認識しながら、ユーザは、仮想コントローラ画像を操作することができ、さらに、精度の高い操作が可能となる。
【００４７】
典型的には、第１の画像が操作対象の移動速度を表すものとし、第２の画像が操作対象の移動方向を表すものとすることによって、本発明のプログラムを、仮想空間上での仮想的なコントローラとして使用することが可能となる。
【００４８】
仮想コントローラ画像に、操作モードを示す第３の画像を含めることで、操作モードに応じた操作環境をユーザに提供することができる。
【００４９】
仮想コントローラ画像に、水平面又は地面、大気圏、雲、有光層との境界面などの基準面を示す第４の画像を含めることで、ユーザに、基準面と操作対象との位置関係を認識させることができる。
【００５０】
仮想コントローラ画像に、高さを示す第５の画像を含めることで、ユーザに、操作対象の高さを認識させることができる。
【００５１】
仮想コントローラ画像に、仰俯角を示す第６の画像を含めることで、ユーザに、操作対象の仰俯角を認識させることができる。
【００５２】
仮想コントローラ画像に、操作対象の状態を示す第７の画像を含めることで、ユーザに、操作対象の状態を認識させることができる。
【００５３】
仮想コントローラ属性変更手段が、ユーザによる操作方向に基づいて、仮想コントローラ画像における方向に関する属性を変更することで、操作方向に応じて、操作対象を移動させることができる。
【００５４】
タッチアンドホールドの動きに合せて、仮想コントローラ画像における方向に関する属性を変更することで、操作対象の移動方向を微調整しながら操作対象を移動させることができるので、操作対象を精度良く移動させることができる。
【００５５】
ユーザによる操作の距離に基づいて、仮想コントローラ画像における強度に関する属性を変更することで、操作の距離に応じて、操作対象の速度などの強度を変更することができる。
【００５６】
スワイプの距離に基づいて、仮想コントローラ画像における強度に関する属性を変更することで、スワイプ距離に応じた操作対象の速度などの強度の変更が可能となり、操作対象の速度などの強度を微調整することができる。
【００５７】
フリックに基づいて、仮想コントローラ画像における強度に関する属性を変更することで、フリックの回数や速度、その他のフリックに関する情報などに応じて操作対象の速度などの強度の増加又は減少を行なうことができ、操作対象の速度などの強度を微調整することができる。
【００５８】
タップが行なわれた場合、操作対象が所定の動作をするようにする。ここで、所定の動作としては、たとえば、停止や攻撃、防御、変身、ジャンプ、回転、ワープ、分身などのアクションの他、減速や急減速などの予め決められた動作とするが、特に限定されるものではない。
【００５９】
タップが行なわれた場合、操作対象が停止するように、仮想コントローラ画像における強度に関する属性を変更することで、操作対象の停止が可能となる。
【００６０】
視点の変更の指示が行なわれた場合、表示画像生成手段が、視点を変更した画像を生成することで、視点変更後の画像の表示が可能となる。
【００６１】
操作モードの変更の指示が行なわれた場合、表示画像生成手段が、変更後の操作モードを示す画像を生成することで、操作モードをユーザに認識させることが可能となる。
【００６２】
操作対象をピックアップして移動させる指示が検出された場合、表示画像生成手段が、操作対象を移動させることで、操作対象の移動をユーザに認識させることができる。
【００６３】
操作入力部へのユーザによる操作が行なわれていない間、仮想コントローラ属性変更手段が、仮想コントローラ画像の強度に関する属性を、予め決められた規則に従って、自動的に変更していくことで、操作対象の自動的な減速又は加速などが可能となる。また、後述の強度属性の固定と組み合わせることで、好みの強度で、操作対象を操作することが可能となる。
【００６４】
対象物を探索するモードが指定されている場合、表示画像生成手段が、対象物を表示するような画像を生成することで、ユーザに、探索物を認識させることができる。
【００６５】
ユーザが接触又は近接の操作を行なっている間、仮想コントローラ属性変更手段が、仮想コントローラ画像における強度に関する属性を固定することで、たとえば、操作対象を等速で移動させることが可能となり、好みの強度で操作対象を移動させることができる。
【００６６】
操作対象が自動的に移動するモードが指定されている場合、仮想コントローラ画像の属性を、自動的に変更していくことで、操作対象が自動的に移動するように、表示することが可能となる。
【００６７】
フレーム単位で、仮想コントローラ画像の属性が参照されて、仮想コントローラ画像及び操作対象の画像が生成されることで、仮想コントローラ画像と操作対象とが、シームレスに、連動しているとの印象をユーザに与え、自然で精度の高い操作対象のコントロールが実現される。
【００６８】
強度属性の変化率を調整可能とすることで、表示装置の大きさに合わせて、自然な操作感を実現することができる。また、ユーザの好みに応じた操作感を実現することができる。
【００６９】
操作対象の高度の変更の指示が行なわれた場合、表示画像生成手段が、操作対象の高度を変更した画像を生成することで、操作対象の高度の変更を表示することができる。
【００７０】
操作検出部は二以上の領域に分割されており、当該各領域に対して、仮想コントローラ画像の属性を割り当てることで、たとえば、右指や左指で、別々の操作を行なうことができ、操作のバリエーションが増加することとなる。
【００７１】
本発明のこれら、及び他の目的、特徴、局面、効果は、添付図面と照合して、以下の詳細な説明から一層明らかになるであろう。
【図面の簡単な説明】
【００７２】
【図１】図１は、本発明の実施形態に係るプログラムを実行するコンピュータ１のハードウエア的構成を示すブロック図である。
【図２】図２は、本発明のプログラムを実行しているコンピュータ１が備えることとなる機能を示す機能ブロック図である。
【図３】図３は、本発明のプログラムで使用するデータの内容をまとめた一覧表である。
【図４】図４は、本発明のプログラムを実行している際のコンピュータ１の動作の流れを示すフローチャートである。
【図５】図５は、図４におけるＳ１０４での処理の詳細を示すフローチャートである。
【図６】図６は、操作入力部９に対する操作があった場合のコンピュータ１の動作を示すフローチャートである。
【図７】図７は、図６のＳ３０２における領域内操作処理でのコンピュータ１の動作を示すフローチャートである。
【図８】図８は、図６のＳ３０３における領域外操作処理の内、一本の指で操作された場合のコンピュータ１の動作を示すフローチャートである。
【図９】図９は、図６のＳ３０３における領域外操作処理の内、二本の指で操作された場合のコンピュータ１の動作を示すフローチャートである。
【図１０】図１０は、操作モードが自動移動モードの場合のフレーム間での動作を示すフローチャートである。
【図１１】図１１は、機能状態表示部属性１５ａ及び水平・方向表示部属性１５ｂの表示内容の一例を示す図である。
【図１２】図１２は、領域内で、タップされた場合の仮想コントローラ画像１０ａにおける機能状態表示部１０ｅの遷移の一例を示す概念図である。
【図１３】図１３は、領域内で、ダブルタップされた場合の画面の遷移の一例を示す概念図である。
【図１４】図１４は、領域内で、長押しがされて、操作対象がピックアップされ、タッチアンドホールドによって、操作対象が移動された場合の画面の遷移の一例を示す概念図である。
【図１５】図１５は、方向属性１５ｆを変更するルールの一例を示す図である。
【図１６】図１６は、タッチアンドホールドによって、操作対象の移動方向が変更されるときの様子を示した画面の例である。
【図１７】図１７は、スワイプ時の画面の例を示す図である。
【図１８】図１８は、フリック時の画面の例を示す図である。
【図１９】図１９は、スワイプによる方向変更、移動速度の変更、及び減速処理までの一連の処理が行なわれた場合の表示画面の一例を示す図である。
【図２０】図２０は、二本指でスワイプしたときの画面の一例を示す図である。
【図２１】図２１は、通常モードの際の機能状態表示部１０ｅの画像の変形例を示す図である。
【図２２】図２２は、機能状態表示部１０ｅの画像の他の変形例を示す図である。
【図２３】図２３は、機能状態表示部１０ｅの画像の他の変形例を示す図である。
【図２４】図２４は、ガンシューティングゲームに本発明の仮想コントローラを用いた場合の画面の遷移の例を示す図である
【図２５】図２５は、二つの仮想コントローラを用いる場合の原理を説明するための図である。
【図２６】図２６は、二つの仮想コントローラを用いる場合に、接触操作があった場合の処理を示すフローチャートである。
【図２７】図２７は、二つの仮想コントローラ画像を用いる場合の画面の一例を示す図である。
【図２８】図２８は、機能状態表示部１０ｅと水平・方向表示部１０ｆとの位置関係を変更して高さを示す一例を示す図である。
【図２９】図２９は、仰俯角・高さ表示部の一例を示す図である。
【発明を実施するための形態】
【００７３】
図１は、本発明の実施形態に係るプログラムを実行するコンピュータ１のハードウエア的構成を示すブロック図である。コンピュータ１は、たとえば、スマートフォン、タブレット端末、ノートパソコン、パソコン、デジタルオーディオプレーヤー等の情報処理端末である。図１において、コンピュータ１は、表示装置２と、入力部３と、記憶部４と、通信部５と、ＣＵＰ（Central Processing Unit）６と、ＲＯＭ（Read only memory）７と、ＲＡＭ（Random access memory）８とを備える。
【００７４】
以下の説明では、コンピュータ１が実行するプログラムは、ゲームプログラムであるとしているが、本発明は、ゲームプログラムに限定されるものではない。操作対象となる画像をユーザが操作するようなプログラムであれば、ゲームプログラム以外の操作に本発明のプログラムを用いることができ、本発明を適用するプログラムのジャンルやカテゴリーは、全く限定されない。たとえば、全面がモニタ化しているミーティングテーブルで、大人数が操作対象を同時操作するようなアプリケーションなどに本発明を使うことができるし、その他、地図情報や交通情報の表示プログラム、広告の表示プログラム、３次元画像の表示プログラム、ＣＡＤデータのビューアープログラム、各種シミュレーションプログラムなど、プログラムのジャンルやカテゴリーは多岐におよび、本発明の適用範囲は広い。
【００７５】
表示装置２は、たとえば、タッチパネル等であり、操作入力部９と、表示部１０とを含む。コンピュータ１は、スマートフォンやタブレット端末のように、表示装置２を内蔵していてもよいし、表示装置２に対して有線、無線、又はネットワーク等の通信手段で接続可能なパソコン等であってもよい。
【００７６】
操作入力部９は、指やタッチペン等による接触操作や近接操作を検知することができる装置であり、抵抗膜方式や、静電容量方式、表面型静電容量方式、投影型静電容量方式、超音波表面弾性波方式、光学方式、電磁誘導方式など、いかなる方式を用いるものであってもよい。なお、以下の説明では、代表して指での操作について説明することとするが、タッチペン等で操作した場合も、指での操作と同様に動作するものとする。なお、操作入力部９としては、画面全体が操作可能な領域となっている場合の他、画面の一部のみが操作可能な領域となっていてもよい。
【００７７】
表示部１０は、液晶パネルや有機ＥＬパネル等、いかなる方式を用いるものであってもよい。好ましくは、表示部１０上に、操作入力部９が構成されているとよいが、それに限られるものではなく、表示部１０と操作入力部９とが別々に構成されていてもよい。たとえば、表示部１０と操作入力部９とが分かれていて、表示領域と操作領域とが分かれている場合や、物理的に二画面に分かれている場合なども、表示装置２の概念に含まれるものとする。すなわち、表示装置２とは、接触又は近接操作を受け付ける操作入力部を含むものであれば、いかなる装置であってもよい。
【００７８】
入力部３は、操作入力部９以外の入力を受け付けるためのボタンや各種装置である。記憶部４は、ＲＯＭ７やＲＡＭ８以外の記憶装置であり、たとえば、ハードディスクやリムーバブルメモリなどである。通信部５は、外部と通信するための有線又は無線の通信装置である。
【００７９】
記憶部４又はＲＯＭ７に記憶されているプログラムをＣＰＵ６が読み込んで、コンピュータ１全体の動作を制御することで、本発明のプログラムは実行される。図２は、本発明のプログラムを実行しているコンピュータ１が備えることとなる機能を示す機能ブロック図である。図３は、本発明のプログラムで使用するデータの内容をまとめた一覧表である。以下、図２及び図３を参照しながら、本発明のプログラムを実行することによって、コンピュータ装置が備えることとなる機能について説明することとする。なお、以下の説明において、「〜部」と表現されている箇所は、「〜手段」と置き換えて理解してもよいことは言うまでもない。
【００８０】
制御部１２は、コンピュータ１の全体の動作を制御しており、プログラムを実行中の場合、仮想コントローラ属性変更部１４に仮想コントローラ画像の属性を変更させたり、フレーム単位で、必要な画像を表示画像生成部１３に生成させたりして、ハードウエアとしての表示部１０に必要な画像を表示させている。
【００８１】
表示部１０に表示される画像は、仮想コントローラ画像１０ａと、操作対象画像１０ｂと、背景画像１０ｃと、表示物画像１０ｄとであるとしているが、あくまでも一例である。
【００８２】
仮想コントローラ画像１０ａは、機能状態表示部１０ｅと、水平・方向表示部１０ｆとによって構成される。機能状態表示部１０ｅは、強度を示す画像と、操作モードを示す画像とからなる。水平・方向表示部１０ｆは、方向を示す画像と、水平面又は地面に平行な面を示す画像とからなる。
【００８３】
強度を示す画像を第１の画像とする。強度を示す第１の画像は、機能状態表示部１０ｅの一部として、メータ値やカウント値、数値、色、大きさ、形、回転の速さなどによって表現されているものとする。ここで、強度とは、操作対象の移動速度だけではなく、強さ、重さ、大きさなどであるが、例示したものに限られるものではない。
【００８４】
方向を示す画像を第２の画像とする。方向を示す第２の画像は、水平・方向表示部１０ｆの一部、方向表示部１０ｆ−２とし、矢印や指し示すような形状、色などによって表現されているものとする。ここで、方向とは、操作対象の移動方向だけではなく、攻撃方向や防御方向などであるが、例示したものに限られるものではない。
【００８５】
本発明においては、最低限、第１の画像若しくは第２の画像の少なくともどちらか一方が仮想コントローラ画像に含まれているものとするが、本発明の実施形態では、第１及び第２の画像が仮想コントローラ画像に含まれているとしている。
【００８６】
操作モードを示す画像を第３の画像とする。操作モードが一つしかない場合は、第１の画像が第３の画像を兼ねることとなる。一方、複数の操作モードが存在する場合、各操作モードを示す第３の画像が仮想コントローラ画像に含まれることとなる。操作モードを示す第３の画像は、その形状や色などによって、各操作モードの違いが分かるように表現されているものとする。
【００８７】
水平面又は地面に平行な面を示す画像を第４の画像とする。水平面又は地面に平行な面を示す必要がない場合は、仮想コントローラ画像において、第４の画像を表示する必要がないため、第４の画像は、必須ではない。ただし、仮想画面が３次元空間によって表現されている場合、第４の画像が表示された方が、どの視点からの表示であるかが分かりやすくなるため、以下の説明では第４の画像を用いることとする。第４の画像は、水平・方向表示部１０ｆの一部、水平表示部１０ｆ−１とし、リング状や円形状、平面状、多角形状等の形によって、水平面又は地面と平行な面を表現している。
【００８８】
なお、第４の画像としては、ここでは、水平面又は地面に平行な面を示すと例示しているが、それに限られるものではない。水平面や地面の他、大気圏、雲、有光層との境界面などを第４の画像によって示すことも可能である。したがって、第４の画像は、水平面又は地面、大気圏、雲、有光層との境界面などの基準面を示す画像であるといえ、第４の画像によって、ユーザに、基準面と操作対象との位置関係を認識させることが可能となる。以下の説明において、水平面や水平属性という用語を用いて説明を行なっているが、基準面の概念を使用した第４の画像を用いる場合は、適宜、基準面や基準面に関する属性として読み替えることで、基準面を使用した場合の発明についても、その技術的内容を理解することができる。
【００８９】
なお、本発明の仮想コントローラ画像については、いかなる形状の画像であるかについては、本発明を限定するものではなく、図面及び明細書に記載した画像に限定されるものではない。
【００９０】
操作対象画像１０ｂは、操作対象となるキャラクタ、オブジェクトなどである。背景画像１０ｃは、背景の画像である。表示物画像１０ｄは、操作対象以外の表示物に関する画像データであり、仮想コントローラ画像１０ａ、操作対象画像１０ｂ、及び背景画像１０ｃ以外の画像ある。
【００９１】
制御部１２は、ハードウエアとしての操作入力部９が指で操作された場合に、操作検出部１１から、操作内容に関する情報を受け取り、操作内容に応じた必要な動作を、仮想コントローラ属性変更部１４及び表示画像生成部１３に実行させる。
【００９２】
操作入力部９が指で操作されると、操作検出部１１は、操作入力部９によって操作された内容を制御部１２に送る。たとえば、操作検出部１１は、フレーム単位では、タッチしている位置に関する情報を制御部１２に送り、また、フレーム間では、操作内容がタップであったのか、スワイプであったのか、フリックであったのか、ダブルタップであったのか、長押しであったのか、タッチアンドホールドであったのか等の情報を、向きや長さ等の属性と共に、制御部１２に送る。
【００９３】
ハードウエアとしての記憶部４は、予め、設定情報４ａ、仮想コントローラ画像データ４ｂ、操作対象画像データ４ｃ、背景画像データ４ｄ、及び表示物画像データ４ｅを格納している。設定情報４ａは、初期設定に関する情報や前回のプログラム終了時に使用されていた設定（後述の事前設定情報１５ｇや操作強度情報１５ｈ、表示位置情報１５ｉなど）に関するデータなどである。仮想コントローラ画像データ４ｂは、仮想コントローラ画像１０ａの表示に必要なデータである。操作対象画像データ４ｃは、操作対象画像１０ｂの表示に必要なデータである。背景画像データ４ｄは、背景画像１０ｃの表示に必要なデータである。表示物画像データ４ｅは、表示物画像１０ｄの表示に必要なデータである。
【００９４】
表示画像生成部１３は、記憶部４に予め格納されている各種データを利用して、表示部１０に表示する画像を生成することとなるが、プログラムの進行に合わせて、表示すべき画像を変更していく必要がある。そのため、図２では、ゲームの進行と合わせて変更していく情報を管理するために、ＲＡＭ８内に実現される仮想コントローラ属性記憶部１５、操作対象属性記憶部１６、及び視点属性記憶部１７を図示している。
【００９５】
ゲームが進行していくことによって、仮想空間上の視点は、変化していくこととなる。そのため、視点属性記憶部１７は、２次元仮想空間又は３次元仮想空間上の視点カメラの位置を視点属性１７ａとして記憶している。
【００９６】
ゲームが進行していくことによって、操作対象となるキャラクタ等の位置や速度、方向が変化し、また、操作対象のオブジェクトが複数ある場合、現時点で操作対象となっているオブジェクトが変化していくこととなる。そのため、操作対象属性記憶部１６は、操作対象の位置を定義する位置情報１６ｂや、操作対象の移動速度を定義する速度情報１６ｃ、操作対象の移動方向を定義する方向情報１６ｄ、操作対象がどのオブジェクトであるかを定義する対象情報１６ｅを、操作対象属性１６ａとして記憶している。
【００９７】
ゲームが進行していくことによって、仮想コントローラ画像が変化していく。機能状態表示部１０ｅに関する属性は、機能状態表示部属性１５ａとして、仮想コントローラ属性記憶部１５に格納されており、機能状態表示部属性１５ａは、操作モードに関する属性（操作モード属性１５ｃ）と、強度を定義する属性（強度属性１５ｄ）とを含む。本実施形態では、操作モード属性として、通常モード、自動移動モード、自動攻撃モード、探索モード、又は選択モードを定義しているが、これに限られるものではない。
【００９８】
操作モードは、用途に応じて、変更、増加、削除、拡張等ができるものであり、プログラム開発者側だけでなく、適宜、ユーザ設定によっても変更、増加、削除、拡張等ができるものである。たとえば、プログラムの進行に合せて、レベルがアップした場合、自動的に、操作モードが増加するようなプログラムが提供されていてもよいし、また、ユーザが適宜、操作モードを変更したり、増加したり、削除したりすることができるようになっていてもよい。ユーザによる操作モードの増加、変更等は、アイテムの獲得や購入等と連携していてもよい。
【００９９】
通常モードとは、操作対象をマニュアル操作で移動させるモードである。通常モードの場合、操作入力部９に対する指の移動に連動して、機能状態表示部属性１５ａ及び水平・方向表示部属性１５ｂが変化する。
【０１００】
自動移動モードとは、操作対象が自動で移動するモードである。自動移動モードの場合、操作入力部９に対する指の操作とは関係なく、自動的に機能状態表示部属性１５ａ及び水平・方向表示部属性１５ｂが変化する。
【０１０１】
自動攻撃モードとは、自動で攻撃アクションをしつつ、操作対象をマニュアル操作で移動させるモードである。自動移動モードの場合、通常モードのように、操作入力部９に対する指の移動に連動して、機能状態表示部属性１５ａ及び水平・方向表示部属性１５ｂが変化するが、同時に、自動的に、攻撃アクションが行なわれる。
【０１０２】
探索モードとは、仮想空間上の対象（表示物の弱点や隠れた表示物など）を探索するモードであり、探索結果を、表示部１０に表示するモードである。
【０１０３】
選択モードとは、探索モードで探索された対象を、操作入力部９に対する指の移動に合わせて、選択するモードである。
【０１０４】
水平・方向表示部１０ｆに関する属性は、水平・方向表示部属性１５ｂとして、仮想コントローラ属性記憶部１５に格納されており、水平・方向表示部属性１５ｂは、水平面に対する位置関係を定義する水平属性１５ｅと、水平・方向表示部が示す方向を定義する方向属性１５ｆとを含む。
【０１０５】
また、仮想コントローラ属性記憶部１５は、事前設定情報１５ｇ、操作強度情報１５ｈ、及び表示位置情報１５ｉを記憶している。
【０１０６】
事前設定情報１５ｇは、前回終了時の操作強度情報、表示位置情報、機能表示部属性、水平・方向表示部属性、操作対象属性、及び視点属性である。事前設定情報１５ｇは、処理の終了時に、記憶部４に設定情報４ａとして格納され、処理の開始時に、設定情報４ａから読み込まれた値であるとよいが、それに限られるものではない。
【０１０７】
操作強度情報１５ｈは、指の移動と強度属性の変化率との関係を定義した情報である。たとえば、画面が小さい場合は、画面の大きな場合に比べて、小さな指の移動でも、強度の上昇率が大きくなるなどして、表示装置２の画面サイズに合わせて、操作強度情報を自動で設定してもよい。指の移動と強度属性の変化率との関係については、本発明において、どのような定義が用いられてもよいが、たとえば、スワイプの場合、少しの指の移動でも、強度の上昇が大きくなったり、逆に、指を大きく移動しても強度の上昇が小さくなったりするように、自動又は手動で設定した内容が、操作強度情報１５ｈである。また、フリックの場合、たとえば、フリック時の指の移動の変化率（加速度）が、強度属性の変化率とすることができる。また、指の移動と強度属性との間の変化率は、適宜、ユーザが調整可能である。
【０１０８】
表示位置情報１５ｉは、仮想コントローラ画像の表示位置を定義した情報である。たとえば、固定位置に仮想コントローラ画像を表示するという設定の場合は、その固定位置が表示位置情報１５ｉとして定義されている。その他、表示位置情報１５ｉにおいて、タッチ位置の近傍に仮想コントローラ画像を表示すると定義したり、操作対象の上に仮想コントローラ画像を表示すると定義したりしておくことも可能である。また、仮想コントローラ画像が移動していくのであれば、仮想コントローラ画像の位置情報を表示位置情報１５ｉに格納しておく。
【０１０９】
処理の開始時には、仮想コントローラ属性変更部１４は、記憶部４に格納されている設定情報４ａを読み出して、仮想コントローラ属性記憶部１５の事前設定情報１５ｇ、操作強度情報１５ｈ、及び表示位置情報１５ｉを設定する。処理の終了時には、仮想コントローラ属性変更部１４は、終了時の前設定情報１５ｇ、操作強度情報１５ｈ、及び表示位置情報１５ｉを読み出して、記憶部４に設定情報４ａとして、格納する。なお、設定情報４ａには、初期値が登録されており、ユーザは必要に応じて、初期値を設定情報４ａとして用いることができる。
【０１１０】
なお、図３に示した情報や属性は、あくまでも定義の一例であり、その他の定義がなされていてもよい。当然、ゲームの進行には、図３以外の情報が必要となるが、図３では、本発明を実現するために必要な情報を示している。
【０１１１】
操作検出部１１によって、操作入力部９への指の操作が検出されると、制御部１２は、操作内容を仮想コントローラ属性変更部１４に送る。仮想コントローラ属性変更部１４は、操作内容に応じて、仮想コントローラ属性記憶部１５に記憶されているデータを適宜変更すると共に、必要に応じて、視点属性記憶部１７に記憶されている視点属性１７ａを変更する。
【０１１２】
このように、操作入力部９での操作が行なわれると、仮想コントローラ属性記憶部１５の内容がリアルタイムで書き換えられていくこととなる。詳しくは、後述のフローチャートを参照しながら説明するが、たとえば、スワイプの操作が行なわれた場合、スワイプの距離に応じて、強度属性１５ｄが変更されることとなり、また、フリックの操作が行なわれた場合、フリックの回数や速度に応じて、強度属性１５ｄが変更（増加又は減少）されることとなる。一例であるが、フリックの回数や速度に応じて、強度属性１５ｄが増加するとは、操作対象の速度が加速していくことであり、強度属性１５ｄが減少するとは、操作対象の速度が減速していくことである。また、スワイプやフリックの方向に応じて、方向属性１５ｆが変更されたり、タッチアンドホールドの際に、指の移動方向と連動して、方向族性１５ｆが変更されたりする。
【０１１３】
表示画像生成部１３は、制御部１２から、フレームの到来など表示タイミングが指示された場合、仮想コントローラ属性記憶部１５に記憶されている各種情報及び属性並びに視点属性記憶部１７に記憶されている視点属性１７ａに基づいて、表示すべき仮想コントローラ画像を生成して表示する。
【０１１４】
たとえば、表示画像生成部１３は、強度属性１５ｄによって、レベル５の強度が示されている場合、表示画像生成部１３は、状態機能表示部１０ｅが示す強度をレベル５とするような画像（たとえば、メータ値を５とするような画像）を生成する。
【０１１５】
たとえば、方向属性１５ｆによって、絶対座標に対して北東の方向が示されている場合、表示画像生成部１３は、視点属性１７ａが示す視点から見たときの北東方向を示す画像を、水平・方向表示部１０ｆの画像として生成する。
【０１１６】
このように、表示画像生成部１３は、仮想コントローラ画像１０ａを、仮想コントローラ属性記憶部１５に記憶されている内容に基づいて、リアルタイムで画面上に表示させることとなる。よって、ユーザは、自身の操作内容が、リアルタイムで、仮想コントローラ画像１０ａに反映されているとの印象を受けることとなる。
【０１１７】
また、表示画像生成部１３は、制御部１２から、フレームの到来など表示タイミングが指示された場合、仮想コントローラ属性記憶部１５に記憶されている各種情報及び属性に基づいて、操作対象属性記憶部１６に記憶されている各種情報を変更する。
【０１１８】
具体的には、表示画像生成部１３は、方向属性１５ｆ及び強度属性１５ｄに基づいて、現在記憶されている位置情報１６ｂを書き換える。すなわち、方向属性１５ｆ及び強度属性１５ｄが示す方向及び強度で、一フレームの間に、操作対象が仮想空間上を移動したとして、表示画像生成部１３は、位置情報１６ｂが示す操作対象の位置を書き換える。
【０１１９】
また、書き換え前の位置情報１６ｂと書き換え後の位置情報とを比較するか、若しくは、強度属性１５ｄに基づいて、表示画像生成部１３は、操作対象の移動速度を認識し、速度情報１６ｃを書き換える。
【０１２０】
さらに、書き換え前の位置情報１６ｂと書き換え後の位置情報とを比較するか、若しくは、方向属性１５ｄに基づいて、表示画像生成部１３は、操作対象の移動方向を認識し、方向情報１６ｄを書き換える。そして、表示画像生成部１３は、書き換え後の位置情報１６ｂ、速度情報１６ｃ、及び方向情報１６ｄ並びに視点属性１７ａに基づいて、次のフレームでの操作対象画像１０ｂを生成して、表示部１０に、表示させる。
【０１２１】
なお、ここでは、操作対象属性１６ａとして、速度情報１６ｃ及び方向情報１６ｄを用いたが、これは、操作対象の速度や方向に応じて、操作対象の形状や色などが変化したりすることを想定しているからである。操作対象が、速度や方向に応じて、形状や色などを変化しないものであれば、位置情報１６ｂを書き換えるだけで、表示画像生成部１３は、次のフレームの操作対象画像１０ｂを生成することができる。
【０１２２】
なお、操作対象がユーザによって変更された場合は、表示画像生成部１３は、新たに選択された操作対象に、対象情報１６ｅを書き換えて、新たな操作対象画像１０ｂを、位置情報１６ｂ、速度情報１６ｃ、及び方向情報１６ｄ並びに視点属性１７ａに基づいて、生成し、表示部１０に、表示させる。
【０１２３】
以上が、本発明のプログラムを実行したコンピュータ１において実現される機能の概説である。以下の説明では、具体的な画面の例を挙げながら、本発明のプログラムの動作の流れを説明する。ただし、以下に示すプログラムの流れは、あくまでも本発明を実現するための一例に過ぎず、本発明を限定するものではない。本発明のプログラムによって、コンピュータを本発明で定義される手段として機能させる限りにおいては、下記に示すフローチャートによる流れ以外のプログラムが用いられたとしても、本発明のプログラムに含まれることは言うまでもない。
【０１２４】
なお、以下のフローチャートの説明において、動作の主体は、基本的には、コンピュータ１ということとなるが、図２に示す仮想的な機能ブロックが動作の主体であることと明示することにより、説明が分かりやすくなる場合は、図２に示す機能ブロックを動作の主体として用いることとする。
【０１２５】
図４は、本発明のプログラムを実行している際のコンピュータ１の動作の流れを示すフローチャートである。まず、アプリケーションの処理が開始されると、仮想コントローラ属性変更手段１４は、仮想コントローラに関する事前設定情報１５ｇを読み出し（Ｓ１０１）、読み出した事前設定情報１５ｇに基づいて、操作強度情報１５ｈ及び表示位置情報１５ｉを設定する（Ｓ１０２）。また、仮想コントローラ属性変更手段１４は、事前設定情報１５ｇに基づいて、機能状態表示部属性１５ａ及び水平・方向表示部属性１５ｂを設定する（Ｓ１０３）。このようにして、処理の開始直後に、コンピュータ１は、仮想コントローラ属性記憶部１５での初期設定を実行する。その後、コンピュータ１は、フレーム単位で、背景画像、操作対象画像、表示物画像及び仮想コントローラ画像を表示するための処理を実行していく（Ｓ１０４）。
【０１２６】
図５は、図４におけるＳ１０４での処理の詳細を示すフローチャートである。まず、コンピュータ１は、フレームタイミングが到来したか否かを判断する（Ｓ２０１）。当該フレームタイミングの判断は、フレームタイミングの割り込み処理などで実行されるとよいが、限定されるものではない。
【０１２７】
フレームタイミングが到来したら、表示画像生成部１３は、表示位置情報１５ｉ、機能状態表示部属性１５ａ、及び水平・方向表示部属性１５ｂを読み込む（Ｓ２０２）。次に、表示画像生成部１３は、機能状態表示部属性１５ａに基づいて、機能状態表示部１０ｅの表示内容を決定する（Ｓ２０３）。次に、表示画像生成部１３は、水平・方向表示部属性１５ｂに基づいて、水平・方向表示部１０ｆの表示内容を決定する（Ｓ２０４）。
【０１２８】
ここで、Ｓ２０３及びＳ２０４において決定される機能状態表示部属性１５ａ及び水平・方向表示部属性１５ｂの表示内容について、具体例を挙げて説明することとする。
【０１２９】
図１１は、機能状態表示部属性１５ａ及び水平・方向表示部属性１５ｂの表示内容の一例を示す図である。図１１において、１０ａは、仮想コントローラ画像を示し、１０ｅは、機能状態表示部（第１の画像及び第３の画像）を示し、１０ｆ−１及び１０ｆ−２は、水平・方向表示部１０ｆを示しており、そのうち、１０ｆ−１は、水平面と平行な面を示す水平表示部（第４の画像）であり、１０ｆ−２は、方向を示す方向表示部（第３の画像）であり、１０ｂは、操作対象である。なお、仮想空間において、操作対象が載っている地面が水平面に対して、上下しているのであれば、水平・方向表示部１０ｆにおいて、水平表示部１０ｆ−１は、操作対象の下の地面と平行となるように、適宜、水平属性の角度が変更されていくとよい。
【０１３０】
図１１（ａ）は、操作モード属性が通常モードの場合の表示例である。図１１（ｂ）は、操作モード属性が自動移動モードの場合の表示例である。図１１（ｃ）は、操作モード属性１５ｃが自動攻撃モードの場合の表示例である。図１１（ｄ）は、操作モード属性が探索モードの場合の表示例である。図１１（ｅ）は、操作モード属性が選択モードの場合の表示例である。図１１（ａ）ないし（ｅ）を比較すれば分かるように、操作モード属性に応じて、機能状態表示部１０ｅの画像（第３の画像）が変更となる。言い換えるならば、操作モード毎に、第３の画像が変更となっている。
【０１３１】
また、機能状態表示部１０ｅは、メータ式になっており、たとえば、図１１（ａ）に示すように、強度属性１５ｄに応じて、色が変化するようになっている。このメータの変化が第１の画像である。図１１（ａ）では、メータ値が３まで変化している。
【０１３２】
また、方向表示部１０ｆ−２の色が変っている方向が、方向属性によって示されている方向を示す。水平・方向表示部１０ｆが回転することで、色が変っている方向表示部１０ｆ−２の部分が、方向を示すこととなる。
【０１３３】
図５において、Ｓ２０４の後、表示画像生成部１３は、方向属性１５ｆ及び強度属性１５ｄに基づいて、操作対象属性１６ａの位置情報１６ｂ、速度情報１６ｃ、及び方向情報１６ｄを決定する（Ｓ２０５）。具体的には、一つ前のフレームで示されていた位置情報１６ａを、方向属性１５ｆ及び強度属性１５ｄに基づいて、変更して、次のフレームでの位置情報１６ａを算出する。算出方法は、特に限定されないが、たとえば、方向属性１５ｆ及び強度属性１５ｄに基づいて、移動方向のベクトルを算出して、当該ベクトルの方向と大きさによって、位置情報１６ａを変更し、次のフレームでの位置情報１６ａを算出するようにするとよい。
【０１３４】
次に、表示画像生成部１３は、操作対象属性１６ａの位置情報１６ｂに基づいて、次のフレームでの視点属性１７ａを決定する（Ｓ２０６）。具体的には、視点が操作対象と連動して変更する場合は、位置情報１６ｂとの相対的な関係（たとえば、操作対象と一定の距離及び角度を離した地点を視点位置とするなど）を考慮して、視点属性１７ａを決定する。なお、視点が固定の場合は、視点属性１７ａは、変更せずにそのままにしておく。なお、視点属性は、フレーム単位での操作対象の移動に連動して変更になる他、後述の図９に示す２本指操作の場合でも変更されるが、図９の動作が行なわれた場合でも、適宜、視点属性１７ａは変更になっているため、変更後の視点属性１７ａを用いて、Ｓ２０６の動作を実行することができる。
【０１３５】
次に、表示画像生成部１３は、Ｓ２０６で決定した視点属性１７ａに基づいて、その視点からの背景画像及び表示物画像を生成して、表示部１０に表示する（Ｓ２０７）。その際、ゲームの進行に合わせて、適宜、背景画像や表示物の内容が変更されることとなる。あわせて、表示画像生成部１３は、操作モードが自動攻撃モード又は探索モードの場合には、そのモードに必要な表示物（たとえば、攻撃の画像や探索後の画像など）を表示する（Ｓ２０７）。
【０１３６】
次に、表示画像生成部１３は、表示位置情報１５ｉで定義されている位置に、Ｓ２０３及びＳ２０４で決定した仮想コントローラ画像１０ａの機能状態表示部１０ｅ及び水平・方向表示部１０ｆを表示部１０に表示する（Ｓ２０８）。たとえば、表示位置情報１５ｉにおいて、操作対象の上に、仮想コントローラ画像１０ａを表示することが定義されている場合、表示画像生成部１３は、位置情報１６ｂで定義されている操作対象の位置に基づいて、仮想コントローラ画像１０ａの表示位置を決定し、さらに、視点属性１７ａで定義されている視点から見たときの仮想コントローラ画像１０ａを、表示部１０に表示することとなる。その他、たとえば、表示位置情報１５ｉにおいて、仮想コントローラ画像１０ａの表示位置として、固定位置（たとえば、画面の左上や左下など）が定義されている場合、表示画像生成部１３は、当該固定位置に仮想コントローラ画像１０ａを表示することとなる。
【０１３７】
仮想コントローラ画像１０ａの表示に際しては、表示画像生成部１３は、視点属性１７ａで定義されている視点から見たときに、水平部１０ｆ−１が仮想空間の水平面若しくは地面などの基準面と平行になるように、水平・方向表示部１０ｆを生成する。また、機能状態表示部１０ｅは、ユーザに対して、常に、正面を向くように表示した方が、現在の強度が分かりやすいため、機能状態表示部１０ｅを生成する際、表示画像生成部１３は、機能状態表示部１０ｅが正面を向くように、画像を生成する。
【０１３８】
次に、表示画像生成部１３は、Ｓ２０５で決定した操作対象属性に基づいて、操作対象画像１０ｂを生成して、表示部１０に表示する（Ｓ２０９）。その後、処理の終了指示があるまで、Ｓ２０１ないしＳ２０９の動作は、フレーム毎に継続して行われる（Ｓ２１０）。
【０１３９】
図５の動作で示すように、本発明のプログラムを実行中のコンピュータ１は、フレーム毎に、最新の仮想コントローラ属性を読み込み、仮想コントローラ画像１０ａの表示内容を決定して、仮想コントローラ画像１０ａを表示する。あわせて、コンピュータ１は、最新の仮想コントローラ属性に基づいて、操作対象属性を決定し、最新の操作対象属性に基づいて、操作対象画像１０ｂの表示内容を決定して、操作対象画像１０ｂを表示する。詳細は後述するが、仮想コントローラ属性は、ユーザの操作に応じて、フレーム毎に細かく決定していくこととなり、フレーム毎に決定された仮想コントローラ属性に基づいて、フレーム毎に操作対象画像が決定していくこととなる。したがって、仮想コントローラ画像の状態に連動して、操作対象が移動していくようになり、仮想コントローラ画像を操作することで、操作対象の移動を操作しているとの印象をユーザに与えることとなる。したがって、仮想コントローラ属性をユーザ操作に応じて、細かく制御することができれば、高精度に、操作対象の移動を操作することができることとなる。以下、どのようにして、仮想コントローラ属性をユーザの操作に応じて、細かく制御していくことができるのかについて説明していくこととする。
【０１４０】
図６は、操作入力部９に対する操作があった場合のコンピュータ１の動作を示すフローチャートである。図６に示す動作は、操作入力部９に対する操作が行われたときに立ち上がるイベントであり、図４及び図５に示すメインの処理と並行して実行される処理である。
【０１４１】
まず、操作があった場合、仮想コントローラ属性変更部１４は、操作された範囲が仮想コントローラ画像１０ａの表示領域内での操作であるか、それとも、仮想コントローラ画像１０ａの表示領域外での操作であるかを判断する（Ｓ３０１）。仮想コントローラ画像１０ａの表示領域内での操作とは、たとえば、図１３に示されているように、仮想コントローラ画像１０ａの上で、指で触られた場合の操作のことである。表示領域としては、たとえば、仮想コントローラ画像１０ａが表示されている画素を用いたり、仮想コントローラ画像１０ａを近似する円形や矩形、多角形などの領域を用いたりするとよいが、限定されるものではない。
【０１４２】
表示領域内での操作の場合、仮想コントローラ属性変更部１４は、Ｓ３０２の領域内操作処理（図７）を実行する。一方、表示領域外での操作の場合は、仮想コントローラ属性変更部１４は、Ｓ３０３の領域外操作処理（図８及び図９）を実行する。
【０１４３】
図７は、図６のＳ３０２における領域内操作処理でのコンピュータ１の動作を示すフローチャートである。
【０１４４】
図７において、まず、仮想コントローラ属性変更部１４は、操作入力部９に入力された操作がどのような操作であったかを認識する（Ｓ４０１）。
【０１４５】
タップの操作が行われていた場合（Ｓ４０２）、コンピュータ１は、予め設定情報４ａに設定されている操作モードの順にしたがって、次の操作モードを読み込み（Ｓ４０３）、仮想コントローラ属性記憶部１５に記憶されている操作モード１５ｃを変更する（Ｓ４０４）。なお、予め設定されている操作モードの順番は、ユーザによって、変更することが可能であるとよい。
【０１４６】
このようなＳ４０２ないしＳ４０４の動作は、図４及び図５に示す動作とは並行して実行されており、操作モード１５ｃが変更された場合、図５に示すフレーム単位での表示処理において、次のフレームの際に、Ｓ２０３において、新しい操作モードに基づいて、機能状態表示部１０ｅの表示内容が決まることとなるので、Ｓ２０８において、新しい操作モードに対応する機能状態表示部１０ｅの画像が画面に表示されることとなる。
【０１４７】
Ｓ４０４の後、処理は、リターンすることとなるが、再度、領域内での操作によって、タップがなされた場合、再度、Ｓ４０２ないしＳ４０４の動作が実行されて、次の操作モードに切り替えられることとなる。操作モードを切り替える順番は、循環するようになっているとよい。
【０１４８】
図１２は、領域内で、タップされた場合の仮想コントローラ画像１０ａにおける機能状態表示部１０ｅの遷移の一例を示す概念図である。図１２に示すように、予め設定されている順番（ここでは、通常モード→自動移動モード→自動攻撃モード→探索モード→選択モード→通常モード）の順に従って、機能状態表示部１０ｅの表示内容が変更されていくこととなる。
【０１４９】
Ｓ４０１において、ダブルタップであると認識された場合（Ｓ４０５）、仮想コントローラ属性変更部１４は、予め設定情報４ａに設定されている視点属性の順序にしたがって、次の視点属性を読み込み（Ｓ４０６）、視点属性記憶部１７に記憶されている視点属性１７ａを変更する（Ｓ４０７）。なお、予め設定されている視点属性の順番は、ユーザによって、変更することが可能であるとよい。
【０１５０】
Ｓ４０７の後、処理は、リターンすることとなるが、再度、領域内での操作によって、ダブルタップがなされた場合、再度、Ｓ４０５ないしＳ４０７の動作が実行されて、次の視点属性に切り替えられることとなる。
【０１５１】
このようなＳ４０５ないしＳ４０７の動作は、図４及び図５に示す動作とは並行して実行されており、視点属性１７ａが変更された場合、図５に示すフレーム単位での表示処理において、次のフレームの際に、Ｓ２０７、Ｓ２０８、及びＳ２０９において、新しい視点属性に基づいて、背景画像や表示物画像、仮想コントローラ画像、操作対象画像の表示内容が決まることとなるので、新しい視点属性に対応する画像が画面に表示されることとなる。
【０１５２】
図１３は、領域内で、ダブルタップされた場合の画面の遷移の一例を示す概念図である。予め視点属性としては、操作対象の斜め上方からの視点、操作対象の真上からの視点、及び操作対象の正面からの視点の順で、設定されているとする。この場合、図１３に示すように、ダブルタップによって、操作対象の斜め上方からの視点が真上からの視点に切り替わり、次のダブルタップによって、真上からの視点が正面からの視点に切り替わり、次のダブルタップによって、正面からの視点が斜め上方からの視点に切り替わることとなる。
【０１５３】
Ｓ４０１において、長押しであると認識された場合（Ｓ４０８）、仮想コントローラ属性変更部１４は、操作対象をピックアップして移動する処理であると認識して、操作対象のピックアップを示す機能状態表示部１０ｅ（たとえば、操作対象と摘むような画像）を表示部１０に表示する（Ｓ４０９）。操作対象をピックアップして移動する処理とは、たとえば、ユーザが操作可能なキャラクタ等の操作対象が複数ある場合に、長押しとタッチアンドホールドによって、操作対象を選択して、位置関係を移動させるような処理のことである。
【０１５４】
タッチアンドホールドによって、仮想コントローラ画像１０ａ及び操作対象画像１０ｂが指の移動に合わせて、移動され（Ｓ４１０）、ユーザが離した位置に、仮想コントローラ画像１０ａ及び操作対象画像１０ｂが配置されて、それに合わせて、操作対象属性の位置情報１６ｂが変更される（Ｓ４１１）。
【０１５５】
図１４は、領域内で、長押しがされて、操作対象がピックアップされ、タッチアンドホールドによって、操作対象が移動された場合の画面の遷移の一例を示す概念図である。まず、長押しによって、図１４（ａ）に記載の通常モードの機能状態表示部１０ｅの画像から、図１４（ｂ）に記載の操作対象選択モードの画像に切り替わる。その後、タッチアンドホールドによって、表示画像生成部１３は、仮想コントローラ画像１０ａ及び操作対象画像１０ｂの表示位置を、指の移動と連動させて、移動させて表示する。そして、図１４（ｃ）に示すように、操作入力部９から指が離れたら、表示画像生成部１３は、指が離れた位置に仮想コントローラ画像１０ａの及び操作対象画像を表示する。
【０１５６】
図８は、図６のＳ３０３における領域外操作処理の内、一本の指で操作された場合のコンピュータ１の動作を示すフローチャートである。図８を参照しながら、領域外で一本の指で操作された場合のコンピュータ１の動作について説明する。なお、図８の動作において、操作モードが自動移動モードの場合は、コンピュータ１は、操作を受け付けずに、そのままリターンとする。
【０１５７】
まず、仮想コントローラ属性変更部１４は、操作モードを判断する（Ｓ５０１）。操作モードが通常モード又は自動攻撃モードの場合、仮想コントローラ属性変更部１４は、操作入力部９での指の接触位置（操作入力部９が指の近接でも動作する場合は近接位置も含む。以下同様。）を認識する（Ｓ５０２）。後述のＳ５１１のように、強度属性の変化処理が実行されているため、強度は徐々に変化（たとえば、減少又は増加）していくが、操作入力部９に指が接触した時点で、強度の変化を停止するために、強度属性を固定する（Ｓ５０３）。次のフレームのタイミングが到来したら（Ｓ５０４のＹＥＳ）、仮想コントローラ属性変更部１４は、現時点の接触位置を認識する（Ｓ５０５）。ここで、仮想コントローラ属性変更部１４は、接触位置が前回認識した位置から変更されているか否かを判断する（Ｓ５０６）。なお、過敏な反応をさけるため、接触位置の変更があったか否かの判断においては、ある程度の範囲内での変更の場合は、接触位置の変更はなかったとして扱うようにするとよい。
【０１５８】
変更されている場合（Ｓ５０６のＹＥＳ）、それは、接触しながら指が移動したことを意味し、タッチアンドホールドの操作が行なわれたことを意味する。
【０１５９】
タッチアンドホールドがなされた場合、仮想コントローラ属性変更部１４は、一つ前の接触位置と現在の接触位置とに基づいて、方向属性１５ｆを変更する（Ｓ５０７）。なお、Ｓ５０７において、もし、強度属性１５ｄが０であるなど、停止状態を示している場合は、一定の速度で操作対象が移動するように、方向属性１５ｆの変更と合わせて、強度属性１５ｄを予め設定されている数値まで上昇させるとよい。若しくは、停止状態の場合に方向転換のみを行なうような場合は、仮想コントローラ属性変更部１４は、方向属性１５ｆのみを変更することとしてもよい。すなわち、方向転換の場合は、強度属性１５ｄが０の場合も許容されていることとなる。その他、強度属性１５ｄが０である場合は、適宜、予め決められた動作が実現されるように、仮想コントローラ属性変更部１４は、仮想コントローラ属性を変更すればよい。
【０１６０】
ここで、方向属性１５ｆを変更するためのルールとしては、種々考えられるが、図１５を用いて、方向属性１５ｆを変更するためのルールの一例を説明する。
【０１６１】
たとえば、図１５（ａ）に示すように、接触位置の移動方向が右方向になった場合、方向表示部１０ｆ−２が示す方向は、右方向となるように、方向属性１５ｆが変更される。
【０１６２】
また、同（ｂ）に示すように、接触位置の移動方向が左方向となった場合、方向表示部１０ｆ−２が示す方向は、左方向となるように、方向属性１５ｆが変更される。同（ｃ）に示すように、接触位置の移動方向が右上方向となった場合、方向表示部１０ｆ−２が示す方向は、右上方向となるように、方向属性１５ｆが変更される。同（ｄ）に示すように、接触位置の移動方向が左下方向となった場合、方向表示部１０ｆ−２が示す方向は、左下方向となるように、方向属性１５ｆが変更される。
【０１６３】
なお、１フレームの間で、一瞬にして、右から左に方向表示部１０ｆ−２が示す向きが変更すると不自然と感じる場合、方向属性１５ｆを複数のフレームの間で、徐々に変更しながら、最終的には所望の方向となるように、方向属性１５ｆの変更を補完する処理を行なうとよい。
【０１６４】
Ｓ５０７の後、仮想コントローラ属性変更部１４は、指が離れたか否かを判断する（Ｓ５０８）。指が離れた場合、仮想コントローラ属性変更部１４は、Ｓ５０９の動作に進む。
【０１６５】
一方、指が離れずに、接触したままの場合、フレームタイミングの到来毎に、接触位置が変更となっているのであれば（すなわち、Ｓ５０６のＹＥＳへの進行であり、タッチアンドホールドの状態である）、Ｓ５０４ないしＳ５０７の動作によって、方向属性１５ｆが変更されて、水平・方向表示部１０ｆの表示内容が変更され続ける。さらに、それに合わせて、操作対象の位置情報１６ｂが、Ｓ５０３で固定された強度属性１５ｄに基づいた速度及び変更されていく方向属性１５ｆに追随して変更していくこととなるので、フレーム毎に、操作対象が移動していくように、画面に表示されることとなる。なお、タッチアンドホールド中に、Ｓ５０３において、強度属性１０ｄが固定されているので、固定された強度属性１５ｄによって、操作対象は移動することとなる。また、タッチアンドホールド中に、一端、操作入力部９に接触した状態で、指の移動が止まったとしても、Ｓ５０３において、強度属性１０ｄが固定されているので、固定された強度属性１５ｄによって、方向属性１５ｆが示す方向に、操作対象は移動していくこととなる。
【０１６６】
図１６は、タッチアンドホールドによって、操作対象の移動方向が変更されるときの様子を示した画面の例である。まず、図１６（ａ）に示すように、画面が接触されると、図１６（ｂ）に示すようにメータ値（強度属性１５ｄ）が固定され、接触している間、操作対象は、固定されたメータ値に基づいて、移動を行なう。その後、図１６（ｃ）に示すように、指が移動されて接触位置が変更となった場合、図１６（ｄ）に示すように、メータ値が固定された状態で、方向属性１５ｆが変更となり、それに合わせて、水平・方向表示部１０ｆの表示が変更され、あわせて、操作対象が方向表示の方向に移動することとなる。
【０１６７】
このようなタッチアンドホールドによって、仮想コントローラ画像１０ａの水平・方向表示部１０ｆが示す方向を微調整しながら、指を動かすことで、操作対象の移動方向を細かくコントロールすることができる。従来の特許文献１に記載の発明では、仮想トラックボールは、あくまでも、キャラクタの移動方向を示している指標に過ぎず、トラックボールを操作して、キャラクタを移動させているという感覚をユーザに与えることはできなかった。また、従来の特許文献２に記載の発明では、スワイプしている方向にキャラクタを移動させるだけであり、回転コントローラの回転方向を微調整しながら、キャラクタを移動させるという動作はできなかった。しかし、本発明では、仮想コントローラが示す方向をタッチアンドホールドによって、微調整しながら、操作対象を細かく移動させることができるため、精度の高いコントロールが可能となる。
【０１６８】
また、Ｓ５０３において、接触している間は、強度属性１５ｄを固定することができるので、メータ値を見ながら、好みの速度で接触して、強度属性１５ｄを固定し、その状態で、方向属性１５ｆを変更することができるので、方向だけでなく、速度についても、精度よくコントロールすることが可能となる。さらに、後述のＳ５１１において、強度属性１５ｄが自動的に変化（減少又は増加）するため、好みの強度属性１５ｄにまで変化した時点で、接触することで、強度属性１５ｄを固定することができ、その点においても、精度よく速度をコントロールすることが可能と言える。
【０１６９】
図８に戻り、Ｓ５０９以降の動作について説明する。指が離れた後、仮想コントローラ属性変更部１４は、Ｓ５０９において、最終的な操作の内容を認識する。なお、Ｓ５０９において、タッチアンドホールドであると認識するか、タップであると認識するか、スワイプであると認識するか、フリックであると認識するかについては、予め条件を定義付けしておいて、定義付けされた条件に合致する場合に、仮想コントローラ属性変更部１４は、操作結果を分類するものとする。たとえば、予め定義している第１の時間までに指が離れたらタップ、第１の時間から予め定義している第２の時間までに指が離れた場合がフリック、第２の時間から予め定義している第３の時間までに指が離れた場合はスワイプ、第３の時間以降に指が離れた場合はタッチアンドホールドというように定義することも可能であるし、その他、指の移動速度を判断材料として、所定の移動速度以上の場合は、フリックであると判断し、それ以外は、スワイプであると判断し、指が離れない場合は、タッチアンドホールドであると判断することも可能であり、限定されるものではない。
【０１７０】
Ｓ５０９において、仮想コントローラ属性変更部１４が、最終的な操作の内容がタッチアンドホールドであったと認識した場合（Ｓ５１０）、強度属性の変化処理（Ｓ５１１）に進む。
【０１７１】
Ｓ５１１の強度属性の変化処理では、予め決められた規則（たとえば、時間進行に沿って、強度属性を徐々に変化させてなど）に従って、強度属性１５ｄの変更が行なわれる。たとえば、強度を示すメータ値を、時間進行に沿って、徐々に小さな値にすることで、１フレームの間に進む距離を徐々に減少させていくことが可能となるので、操作対象が減速していくように、表示させることが可能となる。また、強度を示すメータ値を、時間進行に沿って、徐々に大きな値にすることで、１フレームの間に進む距離を徐々に増加させていくことが可能となるので、操作対象が加速していくように、表示させることが可能となる。
【０１７２】
Ｓ５０９において、仮想コントローラ属性変更部１４が、最終的な操作の内容がタッチであったと認識した場合（Ｓ５１２）、操作対象が移動中であった場合は、強度属性を０に変更する。強度属性が０となれば、その後のフレームにおいて、操作対象属性１６ａの位置情報１６ｂが変更しないこととなるので、操作対象が停止することとなる（Ｓ５１３）。また、Ｓ５１２において、操作対象が既に停止中であった場合は、コンピュータ１は、操作対象がアクションを行なうような表示を、表示させる（Ｓ５１３）。その他、タップがあった場合の処理としては、種々考えられ、タップがあった場合の動作は、停止だけに限られない。すなわち、タップがあった場合、コンピュータ１は、操作対象が所定の動作としては、たとえば、停止や攻撃、防御、変身、回転、ワープ、分身などのアクションの他、減速や急減速などの予め決められた動作をするように、操作対象の画像や各種属性を変更するとよい。
【０１７３】
Ｓ５０９において、仮想コントローラ属性変更部１４が、最終的な操作の内容がスワイプであったと認識した場合（Ｓ５１４）、仮想コントローラ属性変更部１４は、スワイプ距離に応じて、強度属性１５ｄを変更する（Ｓ５１５）。
【０１７４】
図１７は、スワイプ時の画面の例を示す図である。図１７（ａ）に示すように、小さくスワイプされた場合、強度属性１５ｄのメータの振れ幅を小さくする（すなわち、強度属性１５ｄが小さく増加する）ことで、操作対象の移動速度を小さくすることができる。一方、図１７（ｂ）に示すように、大きくスワイプされた場合、強度属性１５ｄのメータの振れ幅を大きくする（すなわち、強度属性１５ｄが大きく増加する）ことで、操作対象の移動速度を大きくすることができる。強度属性１５ｄが変化すれば、１フレームの間に進む距離を変化させることができるので、操作対象を早く移動させたり、遅く移動させたりするように、表示させることが可能となる。
【０１７５】
Ｓ５１５の後、強度属性の変化処理（Ｓ５１１）に進む。そのため、スワイプによって、スワイプ距離に応じた速度で、操作対象が移動することとなるが、その後、予め設定されている変化率に応じて、減速するように、操作対象が表示されることとなる。
【０１７６】
Ｓ５０９において、仮想コントローラ属性変更部１４が、最終的な操作の内容がフリックであったと認識した場合（Ｓ５１６）、仮想コントローラ属性変更部１４は、現在設定されている強度属性１５ｄに対して、強度属性を加算する処理を行なう（Ｓ５１７）。加算する量は、予め設定されているものとする。たとえば、フリック１回毎に、強度属性１５の値が３増加するというように、予め決めておく。フリックの回数に基づいて、強度属性の増減を算出してもよいが、クリックの速度などによって、強度属性の増減を算出してもよい。その他、フリックに関する情報に基づいて、強度属性の増減を算出してもよく、発明としては、フリックに基づいて、強度属性を変更すると定義づけることができる。
【０１７７】
図１８は、フリック時の画面の例を示す図である。図１８（ａ）に示すように、フリックが１回行なわれると、機能状態表示部１０ｅの示すメータ値が１フリック分上昇するように表示される（図１８（ｂ））。さらに、図１８（ｂ）の後、再度フリックがなされると（図８のフローチャートとしては、Ｓ５１１の後、再度、Ｓ５０１からの動作が始まることを意味する）、さらに、機能状態表示部１０ｅの示すメータ値が１フリック分上昇するように表示される（図１８（ｃ））。このようにして、強度属性１５ｄがフリック毎に増加することとなるので、たとえば、操作対象を徐々に加速させていくような表示を行なうことが可能となる。
【０１７８】
図１９は、スワイプによる方向変更、移動速度の変更、及び減速処理までの一連の処理が行なわれた場合の表示画面の一例を示す図である。図１９（ａ）において、メータ値が３の時に、画面に指を触れたとして、右上にスワイプされたとする。指が触れた時点で、図８の動作が立ち上がり、Ｓ５０３の処理によって、強度属性１５ａが固定される。そして、Ｓ５０６において、指の移動が検出されるので、方向族性１５ｆが変更となるため、方向表示部１０ｆ−２の示す方向が変更されて、その方向に、操作対象が移動することとなる。その後、複数のフレーム間で、方向変更が行なわれた後、指が離れたことがＳ５０８において検出される。すると、Ｓ５０９において、スワイプによる操作であったことが認識されて、図１９（ａ）の右図に示すように、仮想コントローラ画像１０ａの機能状態表示部１０ｅのメータ値が上昇し、それに合わせて、操作対象の移動速度も上昇することとなる。
【０１７９】
その後、図１９（ｂ）に示すように、指が離れた状態では、強度属性１５ｄが徐々に変化（ここでは、減少）していき、それに合わせて、機能状態表示部１０ｅのメータ値が徐々に減少していくように表示される。その結果、操作対象も、徐々に減速するように表示されることとなる。
【０１８０】
このように、スワイプの距離に応じて、強度属性１５ｄの値を変更することができるだけでなく、フリックによって、段階的に強度属性１５ｄを変更させることが可能である。したがって、ユーザは、スワイプやフリックによって、操作対象の移動速度を微調整することが可能となるので、移動方向だけでなく、移動速度も精度良くコントロールすることが可能となる。
【０１８１】
図８の動作説明に戻る。図８のＳ５０１において、操作モードが探索モードであると判断された場合、表示画像生成部１３は、探索ポイントを画面上に表示させる（Ｓ５１８）。
【０１８２】
次に、図８のＳ５０１において、操作モードが選択モードであると判断された場合、仮想コントローラ属性変更部１４がフリックを検出した場合（Ｓ５１９）、仮想コントローラ属性変更部１４がフリックの方向を認識して、フリックの方向に応じて、表示画像生成部１３が対象物を選択して表示する（Ｓ５２０）。たとえば、対象物とは、弱点表示などである。Ｓ５２０では、フリックを複数回受け付けることができ、ユーザが適宜、所望の対象物を選択することができるようになっているとする。選択モードで対象物が選択された後、たとえば、その後、タップがなされたとしたら、その対象物に対して攻撃アクションを行なうように、処理がされるとよい。
【０１８３】
図９は、図６のＳ３０３における領域外操作処理の内、二本の指で操作された場合のコンピュータ１の動作を示すフローチャートである。図９を参照しながら、領域外で二本の指で操作された場合のコンピュータ１の動作について説明する。なお、二本指での操作としては、ピンチ、二本指でのスワイプ、二本指での回転があるとする。
【０１８４】
まず、仮想コントローラ属性変更部１４は、二本指での操作結果を認識する（Ｓ６０１）。ピンチである場合（Ｓ６０２）、仮想コントローラ属性変更部１４は、拡大又は縮小のために、視点属性を変更する（Ｓ６０３）。
【０１８５】
Ｓ６０１において、２本指でのスワイプであったと認識された場合（Ｓ６０４）、仮想コントローラ属性変更部１４は、アングル変更のために、視点属性を変更する（Ｓ６０５）。この点に付き、図２０を参照しながら具体例で説明する。図２０は、二本指でスワイプしたときの画面の一例を示す図である。図２０（ａ）に示すように、二本指で下方向にスワイプした場合、視点を上げていき、上げた視点から操作対象及び仮想コントローラを見たとき視線となるように、仮想コントローラ属性変更部１４は、視点属性１７ａを変更する。この際、図２０（ａ）の反時計回りの回転矢印で示したように、水平・方向表示部１０ｆは、水平面に合わせて回転するように表示されることとなるが、状態機能表示部１０ｅについては、メータ値がはっきり分かるようにするために、画面と平行な状態の表示が維持されているとする。ただし、本発明が、それに、限定されるものではない。
【０１８６】
一方、図２０（ｂ）に示すように、二本指で上方向にスワイプした場合、視点を下げていき、下げた視点から操作対象及び仮想コントローラを見たとき視線となるように、仮想コントローラ属性変更部１４は、視点属性１７ａを変更する。この際、図２０（ｂ）の時計回りの回転矢印で示したように、水平・方向表示部１０ｆは、水平面に合わせて回転するように表示されることとなるが、状態機能表示部１０ｅについては、メータ値がはっきり分かるようにするために、画面と平行な状態の表示が維持されているとする。ただし、本発明が、それに、限定されるものではない。
【０１８７】
Ｓ６０１において、２本指での回転であったと認識された場合（Ｓ６０６）、仮想コントローラ属性変更部１４は、視点向き変更のために、視点属性１７ａを変更する（Ｓ６０７）。たとえば、２本指で、時計回りに回転された場合、仮想コントローラ属性変更部１４は、視点も時計回りの方向に移動するように、視点属性１７ａを変更する。逆に、２本指で、反時計回りに回転された場合、仮想コントローラ属性変更部１４は、視点も反時計回りの方向に移動するように、視点属性１７ａを変更する。
【０１８８】
図１０は、操作モードが自動移動モードの場合のフレーム間での動作を示すフローチャートである。自動移動モードに設定されている場合、ユーザの操作とは別に、仮想コントローラ属性が自動で変更されていくこととなる。仮想コントローラ属性が自動で変更すれば、図５で示したＳ２０５において、操作対象属性も自動で変更されていくこととなるので、操作対象の画像が自動で変更されていき、結果、操作対象が自動で移動していくこととなる。
【０１８９】
図１０の動作において、まず、仮想コントローラ属性変更部１４は、自動移動モードに関する設定情報４ａを読み込む（Ｓ７０１）。自動移動モードに関する設置情報４ａとしては、たとえば、移動速度や移動方向などに関する情報がある。移動方向は、一定方向の移動だけではなく、背景画像に追随して移動方向が時間と共に変化する定義なども用いられる。これらの自動移動に関する規則は、予め決められており、予め決められた規則に従って、自動的に仮想コントローラ画像の属性が変更していく。
【０１９０】
次に、フレームタイミングが到来した場合（Ｓ７０２のＹＥＳ）、仮想コントローラ属性変更部１４は、自動移動モードの設定情報４ａに基づいて、強度属性１５ｄ及び方向属性１５ｆを変更する（Ｓ７０３）。これにより、図５のＳ２０５の処理において、操作対象属性１６ａが連動して変更されることとなるので、操作対象の自動移動が実現される。
【０１９１】
なお、ここでは、自動移動モードの場合は、仮想コントローラ属性を自動的に変更していくことで、操作対象属性を連動して自動的に変更することとしたが、仮想コントローラ属性の変更を介さずに、直接、操作対象属性を自動的に変更するようにしてもよい。
【０１９２】
ここまでで、本発明のプログラムの一実施形態を説明したが、以下、いくつかの変形例について説明する。
【０１９３】
（仮想コントローラ画像の変形例）
仮想コントローラ画像の変形例について説明する。図２１は、通常モードの際の機能状態表示部１０ｅの画像の変形例を示す図である。機能状態表示部１０ｅにおいては、強度が視覚的に分かるようになっていればよいため、図２１に示すように、強度に応じて、上下に色や模様が変化する画像を用いてもよい。また、左右に色や模様が変化する画像であってよい。その他、強度が視覚的に分かるような画像であれば、今まで説明した例に限定されるものではない。たとえば、強度として、赤色、黄色、青色のように、色を変化させることで、強度を表すような機能状態表示部１０ｅが用いられてもよい。
【０１９４】
図２２は、機能状態表示部１０ｅの画像の他の変形例を示す図である。図２２に示すように、機能状態表示部１０ｅとして、球体の画像を用いてもよい。この場合、強度は、第１の画像である球体の回転速度の速度で表すことができる。また、機能モードは、図２２に示すように、球体の色や模様の変化等によって、表すことができる。
【０１９５】
図２１及び図２２では、機能状態表示部１０ｅの画像の変形例を示したが、水平・方向表示部１０ｆの画像についても、水平面との位置関係が分かる画像として、たとえば、リング状の形状の他、楕円状や多角形状の形状を用いることができ、また、方向の分かる画像として、４つの矢印の他、少なくとも一つの矢印が用いられていればよく、矢印の形状についても、適宜、選択すればよい。また、矢印の他、指の形状やその他の模試的な形状によって、方向を示すようにしてもよい。
【０１９６】
図２３は、機能状態表示部１０ｅの画像の他の変形例を示す図である。たとえば、画面を押下した際、押下したことをユーザに示すために、図２３に示すように、機能状態表示部１０ｅの画像の色を変更（ここでは、グラデーションによる色合いとしている）することによって、押下感をユーザに与えるようにしてもよい。
【０１９７】
（仮想コントローラの使用方法の変形例）
上記までの説明では、仮想コントローラは、仮想空間上で操作対象の移動をコントロールするために用いられることとしたが、仮想空間上で操作対象としては、今までに示したキャラクタ以外にも、たとえば、画面の方が自動スクロールし、操作対象の方が大きく移動しないようなオブジェクトも操作対象となりうる。たとえば、ガンシューティングゲームなどのように、仮想の銃火器はほとんど動かないが、銃撃方向をコントロールするような場合にも、本発明の仮想コントローラを用いることができる。
【０１９８】
図２４は、ガンシューティングゲームに本発明の仮想コントローラを用いた場合の画面の遷移の例を示す図である。図２４（ａ）及び同（ｅ）に示すように、通常モードの場合は、スワイプによって得られる方向属性１５ｆや強度属性１５ｄに基づいて、所望の方向と強度で敵キャラクタを攻撃しているとする。その際、探索モードに変更されたとすると、図２４（ｂ）に示すように、弱点が探索されて、弱点が表示される。そして、選択モードが選択されたとすると、図２４（ｃ）に示すように、フリックの方向で、弱点を選択することが可能となる。その際、方向属性１５ｆが変更される。そして、図２４（ｄ）に示すように、変更された方向属性１５ｆが示す方向に、通常モードで攻撃を加えることができる。
【０１９９】
このように、本発明の仮想コントローラは、操作対象が二次元又は三次元仮想空間上で移動するような場合にのみ限定して使用されるものではなく、何らかの操作対象（図２４の例では、銃火器や弾丸など）が画面上を移動するような場合の仮想のコントローラとしても使用することができる。そのような場合であっても、仮想コントローラの操作によって方向属性１５ｆ及び強度属性１５ｄを変更し、さらに、銃火器や弾丸の位置情報１６ｂや速度情報１６ｃ、方向情報１６ｄ、対象情報１６ｅ等の操作対象情報１６ａを方向属性１５ｆ及び強度属性１５ｄに基づいて変更し、画面上に、表示させることができる。
【０２００】
その他、種々のゲームやアプリケーション等で仮想コントローラを利用することが可能である。ゲーム以外のアプリケーションの例については、冒頭で述べた通りであるが、何らかの操作対象を有するアプリケーションに本仮想コントローラを適用することが可能である。
【０２０１】
（仮想コントローラが二つ以上の場合）
上記実施形態では、仮想コントローラが１つであるとしていたが、仮想コントローラは、画面上、二つ以上表示されていてもよい。以下、仮想コントローラが二つ以上表示される場合のコンピュータ１の動作について説明する。
【０２０２】
図２５は、二つの仮想コントローラを用いる場合の原理を説明するための図である。二つの仮想コントローラを用いる場合、操作入力部９を、仮想境界線を境に、左指領域と右指領域とに分けることで、左指の操作であるか、右指の操作であるかを操作検出部１１が認識できるようにしておく。すなわち、左指領域に指が接触した場合は、左指での操作であるとして、左指での操作用の仮想コントローラ属性を制御していき、右指領域に指が接触した場合は、右指での操作であるとして、右指での操作用の仮想コントローラ属性を制御していく。これによって、左指用及び右指用の二つの仮想コントローラを制御していくことが可能となる。
【０２０３】
なお、操作入力部の分割範囲は、図２５に示す例に限られるものではなく、上下の分割でもよいし、斜めの分割でもよいし、多角形や曲線による分割でもよく、二つに分割されているのであれば、どのような分割方法であってもよい。また、三つ以上に分割してもよく、その場合、三つ以上の仮想コントローラを利用するようにしてもよい。また、操作入力部の分割については、プログラム全般に渡って２領域に分割されている場合の他、基本を１領域として、必要に応じて、２領域以上に分割するような場合も、本発明に含まれる。
【０２０４】
図２６は、二つの仮想コントローラを用いる場合に、接触操作があった場合の処理を示すフローチャートである。図２６において、操作検出部１１は、操作範囲を判断する（Ｓ８０１）。
【０２０５】
仮想コントローラの表示領域内での操作の場合は、二つの仮想コントローラの内、操作された方の仮想コントローラについて、領域内操作処理（Ｓ８０２）を実行する。領域内操作処理（Ｓ８０２）は、図７に示した動作と同様である。
【０２０６】
一方、表示領域外での操作の場合であって、左指領域での操作の場合は、領域外操作処理（Ｓ８０３）を実行し、右指領域での操作の場合は、領域外操作処理（Ｓ８０４）を実行する。いずれの領域外操作処理も、図８及び図９における処理と同様である。
【０２０７】
仮想コントローラが三つ以上の場合も、領域に応じて、領域外操作処理がそれぞれ実行されればよい。
【０２０８】
図２７は、二つの仮想コントローラ画像を用いる場合の画面の一例を示す図である。図２７（ａ）において、左指の仮想コントローラ１０ａ−１を探索モードに変更し、右指の仮想コントローラ１０ａ−２を通常モードに変更したとする。これにより、同（ｂ）に示すように、弱点が探索されて表示され、右指で、攻撃を避けつつ通常モードで敵キャラに攻撃を加えることが可能となる。
【０２０９】
図２７（ｃ）に示すように、左指の仮想コントローラ１０ａ−１を選択モードに変更することで、右指で攻撃を避けつつ左指のフリックで弱点を選択して、攻撃を加えることが可能となる。
【０２１０】
さらに、図２７（ｄ）に示すように、右指の仮想コントローラ１０ａ−２を自動攻撃モードとすれば、弱点を自動的に攻撃することが可能となる。
【０２１１】
なお、左指の仮想コントローラ１０ａ−１及び右指の仮想コントローラ１０ａ−２の表示位置は、左右に分かれている必要はなく、どこに表示されていてもよい。
【０２１２】
このように、操作検出部１１を二以上の領域に分割し、各領域に対して、仮想コントローラ画像の属性を割り当て、仮想コントローラ属性変更部１４が、各領域に対するユーザの操作に応じて、対応する仮想コントローラ画像の属性を変化させることで、二以上の仮想コントローラ画像を用いて、二以上の異なる動作を同時に行なうことが可能となる。
【０２１３】
領域の分割についても、ゲームだけに限られるものではない。たとえば、ミーティングテーブルや大画面のディスプレイなどを用いて、一以上の操作対象を複数の者が操作することを目的として、仮想コントローラを各ユーザにそれぞれ割り当てて、各自が仮想コントローラを用いて、一以上の操作対象を操作するようにしてもよい。たとえば、ゲーム以外の使用方法としては、工場や店舗内の画像、ＣＡＤ画像などを表示装置に表示して、各自に割り当てられた操作領域を操作して、仮想コントローラをコントロールし、操作対象を操作しながら、会議や打ち合わせなどを行なうといったアプリケーションも可能である。繰り返しになるが、これらの用途は、あくまでも一例に過ぎない点、付言しておく。
【０２１４】
また、上記では、領域を分割しているため、画面上、全ての領域が何らかの領域に割り当てられているとの誤解が生じる可能性があるが、ここでいう領域の分割とは、画面を全て、操作ができる領域に割り当てる場合に限らず、画面の一部のみ操作ができる領域に分割し、操作ができない領域も画面上に設けられているということも含むものである。それは、２領域以上を用いる場合に限らず、１領域しか用いない場合も、画面の一部のみが操作が可能な領域として割り当てられていることも、当然、本発明に含まれるものである。
【０２１５】
（仮想空間上の上下方向への移動に関する変形例）
上記実施形態では、水平・方向表示部１０ｆにおいて、水平表示部１０ｆ−１は、仮想空間上の水平面若しくは地面などの基準面を示すように表示することとした。そのため、たとえば、操作対象がジャンプするような動作を行なった場合、仮想コントローラにおける水平・方向表示部１０ｆは、水平面若しくは地面などの基準面と平行となるように、水平表示部１０ｆ−１を表示しているに過ぎず、ジャンプの高さを仮想コントローラの表示内容で確認することはできなかった。なお、ジャンプアクションは、たとえば、図５のＳ２０２〜Ｓ２０９の間の動作中でシェイクを受け付けることでシェイクが行なわれた際に行なわれたり、図８のＳ５０９の操作結果認識でタップが認識されたとき行なわれたりすることで実現できるが、特に限定されない。
【０２１６】
ジャンプアクションに応じて、仮想コントローラ画像の表示内容を変更するような実施形態においては、図２８に示すように、機能状態表示部１０ｅと水平・方向表示部１０ｆとの位置関係を変更することで、ジャンプの高さを視覚的に分かるようにすることが可能である。ここで、機能状態表示部１０ｅと水平・方向表示部１０ｆとの位置関係が高さを示す第５の画像となる。なお、この際、水平属性１５ｅには、高さ属性が含まれることとなり、当該高さ属性に応じて、表示画像生成部１３が、水平・方向表示部１０ｆの高さを調整した仮想コントローラ画像（第５の画像）を生成することとなる。
【０２１７】
また、水平属性において、水平表示部１０ｆ−１の仰府角に関する属性（仰府角属性）を定義しておき、表示画像生成部１３は、水平属性の仰府角属性に基づいて、水平・方向表示部１０ｆの仰府角が変更するように、仮想コントローラ画像（第６の画像）を生成することで、操作対象の上下方向での動きの向きなどを表現することができる。たとえば、飛行機の上昇や下降を、このような仰府角での表示によって表現することが可能である。
【０２１８】
また、図２９に示すように、仰府角や高度を示すために、さらに、仮想コントローラ画像に、仰府角・高さ表示部（第６の画像）を設けて、仰府角や高度を表示するようにしてもよい。
【０２１９】
（画像についての変形例）
上記実施形態では、第１ないし第６の画像を提案したが、その他の画像が仮想コントローラ画像に表示されてよい。たとえば、第７の画像として、操作対象の状態（ゲームプログラムで言えば、毒や麻酔状態となった際の操作ペナルティの状態や、無敵となった時の状態、時間限定でレベルがアップしたときの状態など）を示す画像が、仮想コントローラ画像に含まれていてもよい。
【０２２０】
その他、仮想コントローラ画像には、上記に示した例以外の画像が含まれていてもよく、第１ないし第７の画像は、本発明を限定するものではない。
【０２２１】
なお、本発明は、上記で説明したプログラムを実行するパーソナルコンピューターやワークステーション、スマートフォン、タブレット端末、デジタルオーディオプレーヤー、その他のコンピュータ装置など、情報処理装置であってもよい。
【０２２２】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本明細書に開示されている発明の構成要件は、それぞれ独立に単独した発明として成立するものとする。各構成要件をあらゆる組み合わせ方法で組み合わせた発明も、本発明に含まれることとする。
【産業上の利用可能性】
【０２２３】
本発明は、プログラムに関し、産業上利用可能である。
【符号の説明】
【０２２４】
１  コンピュータ
２  表示装置
３  入力部
４  記憶部
４ａ  設定情報
４ｂ  仮想コントローラ画像データ
４ｃ  操作対象画像データ
４ｄ  背景画像データ
４ｅ  表示物画像データ
５  通信部
６  ＣＵＰ
７  ＲＯＭ
８  ＲＡＭ
９  操作入力部
１０  表示部
１０ａ  仮想コントローラ画像
１０ｂ  操作対象画像
１０ｃ  背景画像
１０ｄ  表示物画像
１０ｅ  機能状態表示部
１０ｆ  水平・方向表示部
１０ｆ−１  水平表示部
１０ｆ−２  方向表示部
１２  制御部
１３  表示画像生成部
１４  仮想コントローラ属性変更部
１１  操作検出部
１２  制御部
１３  表示画像生成部
１５  仮想コントローラ属性記憶部
１５ａ  機能状態表示部属性
１５ｂ  水平・方向表示部属性
１５ｃ  操作モード属性
１５ｄ  強度属性
１５ｅ  水平属性
１５ｆ  方向属性
１５ｇ  事前設定情報
１５ｈ  操作強度情報
１５ｉ  表示位置情報
１６  操作対象属性記憶部
１６ａ  操作対象属性
１６ｂ  位置情報
１６ｃ  速度情報
１６ｄ  方向情報
１６ｅ  対象情報
１７  視点属性記憶部
１７ａ  視点属性
【図１】
2018187289.tif 000003
【図２】
2018187289.tif 000004
【図３】
2018187289.tif 000005
【図４】
2018187289.tif 000006
【図５】
2018187289.tif 000007
【図６】
2018187289.tif 000008
【図７】
2018187289.tif 000009
【図８】
2018187289.tif 000010
【図９】
2018187289.tif 000011
【図１０】
2018187289.tif 000012
【図１１】
2018187289.tif 000013
【図１２】
2018187289.tif 000014
【図１３】
2018187289.tif 000015
【図１４】
2018187289.tif 000016
【図１５】
2018187289.tif 000017
【図１６】
2018187289.tif 000018
【図１７】
2018187289.tif 000019
【図１８】
2018187289.tif 000020
【図１９】
2018187289.tif 000021
【図２０】
2018187289.tif 000022
【図２１】
2018187289.tif 000023
【図２２】
2018187289.tif 000024
【図２３】
2018187289.tif 000025
【図２４】
2018187289.tif 000026
【図２５】
2018187289.tif 000027
【図２６】
2018187289.tif 000028
【図２７】
2018187289.tif 000029
【図２８】
2018187289.tif 000030
【図２９】
2018187289.tif 000031