以下に本発明の実施形態を説明する。以下では、理解を容易にするため、PDA(Personal Data Assistants)とゲーム装置とに本発明が適用される実施形態を説明する。しかしながら、携帯電話などの情報処理装置にも同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。ここで、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することができる。従って、これらの実施形態も本発明の範囲に含まれる。
(第1の実施形態)
(情報処理装置の説明)
図1は、本発明の第1の実施形態に係る情報表示装置が実現される典型的な情報処理装置100の概要構成を示す模式図である。
情報処理装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェース104と、入力部105と、メモリカセット106と、画像処理部107と、タッチスクリーン108と、NIC(Network Interface Card)109と、音声処理部110と、マイク111と、スピーカ112と、RTC(Real Time Clock)113と、を備える。
ワードプロセッサ用のプログラムおよびデータを記憶したメモリカセット106(詳細は後述)がインターフェース104に接続されたスロット(図示せず)に装着されている状態において、情報処理装置100の電源が投入されると、ワードプロセッサ用のプログラムが実行される。これにより、本実施形態に係る情報表示装置が実現される。なお、本実施形態に係る情報表示装置は、ワードプロセッサとして機能する情報表示装置である。
CPU 101は、情報処理装置100全体の動作を制御する。CPU 101は、各構成要素と接続され、制御信号やデータをやりとりする。CPU 101は、各構成要素から、各種のデータを取得する。CPU 101は、当該各種のデータを、種々の演算により加工する。CPU 101は、加工結果を示すデータや制御信号を、各構成要素に供給する。CPU 101は、内部にキャッシュやレジスタを備える。CPU 101に取得された各種のデータは、一旦キャッシュに格納される。その後、当該各種のデータは、レジスタに取り出されてから各種の演算が施される。
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録される。IPLが実行されることにより、メモリカセット106に記録されたプログラムがRAM 103に読み出され、CPU 101によるプログラムの実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムやデータが記録される。
RAM 103は、データやプログラムを一時的に記憶する。RAM 103には、メモリカセット106から読み出されたプログラムやデータなどが保持される。このほか、RAM 103は、外部機器に伝達する情報や、外部機器から伝達された情報も、一時的に記憶する。
インターフェース104は、情報処理装置100にメモリカセット106を接続するためのインターフェースである。
入力部105は、図2に示すコントロールボタンなどであり、ユーザによる指示入力を受け付ける。入力部105は、上、右、下、もしくは、左を指定する方向ボタンや、決定ボタンなどから構成される。
メモリカセット106は、インターフェース104を介して、情報処理装置100に着脱自在に接続される。メモリカセット106は、読出し専用のROM領域と、SRAM領域と、を有する。読出し専用のROM領域は、ワードプロセッサ用のプログラムおよび当該プログラムで使用する画像データや音声データなどが記憶される領域である。SRAM領域は、文書編集結果などのデータがセーブされる領域である。CPU 101は、メモリカセット106に対する読み出し処理を行って、必要なプログラムやデータを読み出し、読み出したデータをRAM 103等に一時的に記憶する。
画像処理部107は、メモリカセット106から読み出されたデータを加工する。画像処理部107は、画像演算プロセッサ(図示せず)と、フレームメモリ(図示せず)と、を備える。加工処理は、画像演算プロセッサによって実行される。加工されたデータ(画像情報)はフレームメモリ(図示せず)に記録される。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換される。ビデオ信号に変換された画像情報は、タッチセンサ式のディスプレイ(タッチスクリーン108)へ出力される。これにより、各種の画像表示が可能となる。
画像演算プロセッサは、2次元の画像の重ね合わせ演算、αブレンディング等の透過演算、ならびに、各種の飽和演算などを高速に実行する。また、画像演算プロセッサは、レンダリング画像を得る演算の高速実行も可能である。レンダリング画像は、所定の視点位置から三次元仮想空間に配置されたポリゴンを俯瞰した様子を表す画像である。レンダリング画像は、ポリゴン情報を、Zバッファ法によりレンダリングすることにより生成される。なお、ポリゴン情報は、三次元仮想空間に配置され、各種のテクスチャが付加されたポリゴンを表す情報である。画像演算プロセッサは、点光源や平行光源、円錐光源などの典型的な(正)光源によってポリゴンが照らされる度合を計算する機能を有する。これらの機能は、ライブラリ化もしくはハードウェア化されている。これにより、これらの計算の高速化が実現されている。
さらに、画像演算プロセッサは、文字の形状を定義するフォント情報にしたがって、文字列を、2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画したりする。画像演算プロセッサは、ROM 102に記録されている一般的なフォント情報を利用しても良いし、メモリカセット106に記録されている専用のフォント情報を利用してもよい。なお、画像演算プロセッサは、適宜、CPU 101と協調動作して、上述した各種の処理を実行する。
タッチスクリーン108は、タッチセンサを重畳して構成される液晶パネルである。タッチスクリーン108は、ユーザが指もしくはタッチペンなどによって押圧した位置に応じた位置情報を検知し、CPU 101へ入力する。つまり、タッチスクリーン108は、入力部105と同様、ユーザからの指示入力を受け付ける。タッチスクリーン108は、例えば、図2に示すように、情報処理装置100の前面の中央部に配置される。
なお、入力部105やタッチスクリーン108を介してユーザにより入力された指示に応じて、RAM 103に一時的に記憶されたデータを適宜メモリカセット106に記憶することができる。
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものである。NIC 109は、例えば、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格に従うインターフェース(図示せず)により構成される。あるいは、NIC 109は、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integraged Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line Modem)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、CPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
情報処理装置100は、NIC 109を介してインターネット内のSNTPサーバに接続し、SNTPサーバから情報を取得することによって、現在の日時情報を得ることもできる。
音声処理部110は、メモリカセット106から読み出した音声データをアナログ音声信号に変換する。音声処理部110は、音声処理部110に接続されたスピーカ112にアナログ音声信号を供給し、当該アナログ音声信号に基づく音声をスピーカに出力させる。また、音声処理部110は、CPU 101の制御の下、文書の編集中に発生させるべき効果音を生成し、これに対応した音声をスピーカ112から出力させる。
音声処理部110は、メモリカセット106に記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、音声処理部110は、メモリカセット106に記録された音声データがADPCM(Adaptive Differential Pulse Code Modulation)形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換されて、スピーカ112などに出力されることにより、音声出力が実現される。
また、音声処理部110は、マイク111から入力されたアナログ信号を適当なサンプリング周波数でA/D(Analog/Digital)変換を行い、PCM形式のデジタル信号を生成する。
マイク111は、音声をアナログ信号に変換し、変換により得られたアナログ信号を音声処理部に供給する。マイク111は、例えば、図2に示すように、情報処理装置100の前面の端部に配置される。
スピーカ112は、音声処理部110から供給されたアナログ信号を音声に変換して出力する。スピーカ112は、例えば、図2に示すように、情報処理装置100の前面の端部に配置される。
RTC 113は、水晶振動子や発振回路などを備える計時用のデバイスである。RTC 113は、内蔵電池から電源を供給され、情報処理装置100の電源がオフのときでも動作し続ける。
このほか、情報処理装置100はメモリカセット106に替えて、DVD−ROMからプログラムやデータを読み出す、DVD−ROMドライブを備えるように構成して、DVD−ROMにメモリカセット106と同様の機能を持たせるようにしてもよい。また、インターフェース104は、メモリカセット106以外の外部メモリ媒体からデータを読み出すように構成してもよい。あるいは、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、メモリカセット106等と同じ機能を果たすように構成してもよい。
(情報表示装置の説明)
次に、本実施形態に係る情報表示装置300の機能について、図面を参照して説明する。まず、図3を参照して、本発明の実施形態に係る情報表示装置300の構成を説明する。なお、インターフェース104にメモリカセット106が装着されている状態において、情報処理装置100の電源が投入されると、本実施形態に係る情報表示装置300が構成される。
図3に示すように、情報表示装置300は、検知部301と、操作量取得部302と、変化部303と、表示情報取得部304と、表示部305と、を備える。
検知部301は、画面に対するなぞり操作を検知する。なぞり操作は、例えば、ユーザの指先やタッチペンのペン先が画面上に接している状態で、指先やペン先が画面上を移動する操作である。検知部301は、例えば、画面上における指先やペン先のタッチ位置を検知することにより、なぞり操作を検知する。検知部301は、例えば、タッチスクリーン108により構成される。
操作量取得部302は、検知されたなぞり操作の軌跡の長さもしくは速度から、対象情報に対する操作量を取得する。対象情報は、例えば、文書内における注目範囲の位置である。ここで、注目範囲は、文書全体のうち、ユーザが注目する範囲であり、画面内に表示される範囲である。本実施形態では、操作量は、スクロール量である。操作量取得部302は、例えば、CPU 101により構成される。
変化部303は、取得された操作量に基づいて、対象情報を変化させる。例えば、変化部303は、スクロール量に基づいて、文書内における注目範囲の位置を変化させる。変化部303は、例えば、CPU 101により構成される。
表示情報取得部304は、変化後の対象情報に基づいて、画面に表示すべき表示情報を取得する。例えば、表示情報取得部304は、変化後の注目範囲の位置に基づいて、スクロール後に画面に表示されるべき表示情報を取得する。表示情報取得部304は、例えば、CPU 101により構成される。
表示部305は、検知されたなぞり操作のうち最後に検知されたなぞり操作の軌跡と、取得された表示情報と、を画面に表示する。かかる構成によれば、例えば、ユーザは、編集中の文書の一部を確認しながら、最後になしたなぞり操作がどのような軌跡を描いたかを確認することができる。表示部305は、例えば、CPU 101と画像処理部107とタッチスクリーン108とにより構成される。
ここで、操作量取得部302は、検知されたなぞり操作のうち最後に検知されたなぞり操作の軌跡と、当該最後に検知されたなぞり操作の直前に検知されたなぞり操作の軌跡とが、類似するか否かによって、場合分けして、以下に示す処理を実行する。
すなわち、操作量取得部302は、(a)これらの軌跡が互いに類似しない場合、最後に検知されたなぞり操作の軌跡の長さもしくは速度にあらかじめ対応付けられる既定値を操作量として取得する。
一方、操作量取得部302は、(b)これらの軌跡が互いに類似する場合、最後に検知されたなぞり操作の軌跡の長さもしくは速度にあらかじめ対応付けられる既定値より大きい値を操作量として取得する。
つまり、操作量取得部302は、最新の2つのなぞり操作の軌跡が互いに一致する場合、これらの軌跡が互いに一致しない場合に取得する操作量よりも大きな値の操作量を取得する。なお、これらの軌跡が互いに一致しない場合に取得される操作量は、最後に検知されたなぞり操作の軌跡の長さもしくは速度にあらかじめ対応付けられる既定値となる。この既定値は、例えば、最後に検知されたなぞり操作の軌跡の長さが長いほど大きな値になるように設定され、この軌跡の長さが短いほど小さな値になるように設定される。あるいは、この既定値は、このなぞり操作の速度が速いほど大きな値になるように設定され、このなぞり操作の速度が遅いほど小さな値になるように設定される。
次に、本実施形態に係る情報表示装置300において、軌跡が互いに類似するなぞり操作が連続して実行されることにより、1回のなぞり操作に対応する操作量を増加させる手法について説明する。なお、本実施形態では、ワードプロセッサにおける文書の編集中に、タッチスクリーン108に対してなぞり操作がなされると、タッチスクリーン108に表示される画像が、なぞり操作に基づいて決定される操作量に基づいてスクロールされる例について説明する。
ここで、本実施形態では、この操作量は、なぞり操作の軌跡の長さに基づいて決定されるものとする。つまり、操作量は、基本的には、なぞり操作の軌跡の長さが長いほど大きく、なぞり操作の軌跡の長さが短いほど小さい。
まず、図4を参照して、情報表示装置300により文書情報が表示される様子について説明する。
情報表示装置300は、前面にタッチスクリーン108を備える。文書のサイズが大きい場合、文書全体を同時にこのタッチスクリーン108に表示しようとすると、表示される画像が小さくなりすぎてしまう。そこで、タッチスクリーン108には、文書全体のうち、一部の文書が表示されることが望ましい。ここで、文書全体のうち、タッチスクリーン108に表示される文書の範囲を、注目範囲という。図4には、文書全体を表す文書401のうち、注目範囲402の内容(文書)が、タッチスクリーン108に表示される様子を示している。
注目範囲402は、例えば、タッチスクリーン108に表示される先頭の行の番号(以下「表示開始行番号」という。)Psttにより特定される。この表示開始行番号Psttは、例えば、タッチスクリーン108に対して、縦方向(長手方向)のなぞり操作が受け付けられると変更される。つまり、タッチスクリーン108に対する縦方向のなぞり操作が受け付けられると、タッチスクリーン108に表示される文書がスクロールする。なお、本実施形態では、タッチスクリーン108に表示される文書の行数が固定(10行)であり、表示開始行番号Psttが決定されると、注目範囲が特定されるものとする。
次に、図5を参照して、縦方向のなぞり操作によりタッチスクリーン108に表示される画像がスクロールされる様子について説明する。
タッチスクリーン108と指410との位置関係が、図4に示す状態から図5に示す状態になるように、1回目のなぞり操作がなされたとする。このなぞり操作により、タッチスクリーン108に対する指410の位置が、図5における上方に距離L1だけ移動したものとする。このとき、表示開始行番号Psttは、距離L1にあらかじめ対応付けられているスクロール量S0だけ増加する。なお、図5においては、なぞり操作が検知される前の注目範囲402と指410とを破線で示し、なぞり操作が検知された後の注目範囲402と指410とを実線で示している。
ここで、なぞり操作が検知された後、このなぞり操作の軌跡を表す画像(以下「軌跡画像」という。)が、タッチスクリーン108に表示される。ここで、本実施形態では、軌跡が互いに類似するなぞり操作が連続して実行されると、タッチスクリーン108に表示される軌跡画像の体裁が変化する。ここで、直前のなぞり操作が検知されてから猶予時間が経過する前に次のなぞり操作が検知される場合、これらのなぞり操作が連続して実行されたとみなす。
図6(a)〜(f)には、軌跡が互いに類似するなぞり操作が連続して3回実行され、3回目のなぞり操作の軌跡を表す軌跡画像600がタッチスクリーン108に表示された後、所定の猶予時間が経過してから、1〜3回目のなぞり操作のそれぞれと軌跡が類似する4回目のなぞり操作が検知された例を示す。図6(a)は、なぞり操作前のタッチスクリーン108aを示す図である。図6(b)は、1回目のなぞり操作直後のタッチスクリーン108bを示す図である。図6(c)は、2回目のなぞり操作直後のタッチスクリーン108cを示す図である。図6(d)は、3回目のなぞり操作直後のタッチスクリーン108dを示す図である。図6(e)は、3回目のなぞり操作から猶予時間が経過したときのタッチスクリーン108eを示す図である。図6(f)は、4回目のなぞり操作直後のタッチスクリーン108fを示す図である。なお、タッチスクリーン108a〜fを総称して、適宜、タッチスクリーン108とする。
なお、どのような場合に、なぞり操作の軌跡が互いに類似するとみなすかは、適宜調整が可能である。例えば、なぞり操作の軌跡の重なり具合が比較的大きい場合、なぞり操作の軌跡が互いに類似するとみなすことができる。なぞり操作の軌跡の重なり具合は、なぞり操作が検知された際のタッチ位置が、互いにどの程度一致するかにより定めることができる。例えば、1回目のなぞり操作におけるタッチ位置の数をP1、2回目のなぞり操作におけるタッチ位置の数をP2、2回のなぞり操作における共通のタッチ位置の数をP12、として、P12/(P1+P2)が所定の閾値以上の場合に、1回目のなぞり操作と2回目のなぞり操作とが類似すると判別することができる。
あるいは、なぞり操作の軌跡を構成する代表点の座標が、互いに所定の距離以内である場合に、なぞり操作の軌跡が互いに類似していると判定することができる。代表点は、始点、終点、重心、もしくは、中間点などである。なお、中間点は、例えば、始点が検知された時刻と終点が検知された時刻との中間の時刻において接触が検知された点である。
まず、図6(a)に示すように、なぞり操作が検知されるまでは、なぞり操作の軌跡を表す軌跡画像600は、タッチスクリーン108aに表示されない。なお、後述する軌跡画像600b、600c、600d、600fを総称して、適宜、軌跡画像600とする。そして、1回目のなぞり操作が検知されると、図6(b)に示すように、この1回目のなぞり操作の軌跡を表す軌跡画像600bがタッチスクリーン108bに表示される。軌跡画像600bは、例えば、最後に検知されたタッチ位置に矢印の頭がくるような矢印を表す画像であって、所定の色、および、所定の太さの矢印により表される画像である。
ここで、1回目のなぞり操作の軌跡を表す軌跡画像600bが表示されてから所定の猶予時間が経過する前に、軌跡画像600bに重なるような2回目のなぞり操作が検知されると、図6(c)に示すように、この2回目のなぞり操作の軌跡を表す軌跡画像600cがタッチスクリーン108cに表示される。2回目のなぞり操作の軌跡を表す軌跡画像600cは、1回目のなぞり操作の軌跡を表す軌跡画像600bとは異なる体裁で表示される。例えば、2回目のなぞり操作の軌跡を表す軌跡画像600cは、1回目のなぞり操作の軌跡を表す軌跡画像600bよりも太い矢印により表される。
同様に、2回目のなぞり操作の軌跡を表す軌跡画像600cが表示されてから所定の猶予時間が経過する前に、軌跡画像600cに重なるような3回目のなぞり操作が検知されると、図6(d)に示すように、この3回目のなぞり操作の軌跡を表す軌跡画像600dがタッチスクリーン108dに表示される。3回目のなぞり操作の軌跡を表す軌跡画像600dは、2回目のなぞり操作の軌跡を表す軌跡画像600cとは異なる体裁で表示される。例えば、3回目のなぞり操作の軌跡を表す軌跡画像600dは、2回目のなぞり操作の軌跡を表す軌跡画像600cよりも太い矢印により表される。
このように、最後に検知されたなぞり操作の軌跡が、その直前に検知されたN(ただし、Nは自然数)個のなぞり操作の軌跡のそれぞれと類似する場合、最後に検知されたなぞり操作の軌跡をタッチスクリーン108に表示する体裁は、Nに基づいて定められる。本実施形態では、Nが大きいほど、太い矢印を表す軌跡画像600が表示される。従って、軌跡が互いに類似するなぞり操作が、猶予時間よりも短い間隔で連続して検知されると、より太い矢印を表す軌跡画像600がタッチスクリーン108に表示されるようになる。
ただし、軌跡画像600がタッチスクリーン108に表示された後、新たななぞり操作が検知されないまま所定の猶予時間が経過すると、軌跡画像600はタッチスクリーン108から消去される。図6(e)には、3回目のなぞり操作の軌跡を表す軌跡画像600dがタッチスクリーン108dに表示された後、4回目のなぞり操作が検知されないまま猶予時間が経過して、3回目のなぞり操作の軌跡を表す軌跡画像600dがタッチスクリーン108dから消去された例を示している。
そして、3回目のなぞり操作の軌跡を表す軌跡画像600dがタッチスクリーン108dから消去された後、4回目のなぞり操作が検知されると、図6(f)に示すように、タッチスクリーン108fに4回目のなぞり操作の軌跡を表す軌跡画像600fが表示される。しかし、4回目のなぞり操作の軌跡を表す軌跡画像600fの体裁は、4回目のなぞり操作の軌跡と3回目のなぞり操作の軌跡とが類似する場合であっても、1回目のなぞり操作の軌跡を表す軌跡画像600bと同様の体裁となる。
また、最後に検知されたなぞり操作の軌跡が、その直前に検知されたN(ただし、Nは自然数)個のなぞり操作の軌跡のそれぞれと類似する場合、以下の(A)もしくは(B)の値が、スクロール量(操作量)とされる。
(A)正の値域を有する単調増加関数にNを適用した値を既定値に加算した値。
(B)1以上の値域を有する単調増加関数にNを適用した値を既定値に乗算した値。
つまり、軌跡が互いに類似するなぞり操作が連続して(猶予時間以上の間隔をおかずに)検知されたときのスクロール量を表す関数をS(N)、単調増加関数をF(N)とすると、自然数であるNについて、以下の式(1)もしくは式(2)を満たす。ここで、S0は、なぞり操作が単発で検知されたときのスクロール量であり、なぞり操作の軌跡の長さL1に対応付けられる規定値である。
S(N) = F(N) + S0 (1)
S(N) = F(N) × S0 (2)
単調増加関数としてどのような関数を採用するかは、適宜調整が可能である。ただし、どのような単調増加関数を採用したとしても、1回のなぞり操作に対応するスクロール量は、軌跡が互いに類似するなぞり操作が連続して検知されると、なぞり操作が検知される毎に増加する。つまり、式(1)と式(2)とは、いずれも、S0<S(1)<S(2)<S(3)・・・であることを意味している。
以下、図7を参照して、1回のなぞり操作に対するスクロール量が変化する様子について説明する。なお、図7は、軌跡が互いに類似するなぞり操作が連続して3回実行され、3回目のなぞり操作の軌跡がタッチスクリーン108に表示された後、所定の猶予時間が経過してから、1〜3回目のなぞり操作のそれぞれと軌跡が類似する4回目のなぞり操作が検知された例を示す。
まず、1回目のなぞり操作が検知されると、注目範囲402は、S0だけスクロールする。次に、1回目のなぞり操作が検知された後、猶予期間が経過する前に2回目のなぞり操作が検知されると、注目範囲402は、S(1)だけスクロールする。さらに、2回目のなぞり操作が検知された後、猶予期間が経過する前に3回目のなぞり操作が検知されると、注目範囲402は、S(2)だけスクロールする。ここで、3回目のなぞり操作が検知された後、猶予期間が経過した後に4回目のなぞり操作が検知されると、注目範囲402は、S0だけスクロールする。
このように、最後に検知されたなぞり操作の軌跡を表す軌跡画像600がタッチスクリーン108に表示されている間(最後になぞり操作が検知されてから猶予期間が経過するまでの間)に、最後に検知されたなぞり操作の軌跡と類似する軌跡のなぞり操作が検知されると、1回のなぞり操作に対するスクロール量が増加していく。一方、最後に検知されたなぞり操作の軌跡を表す軌跡画像600がタッチスクリーン108から消去された後(最後になぞり操作が検知されてから猶予期間が経過した後)に、最後に検知されたなぞり操作の軌跡と類似する軌跡のなぞり操作が検知されると、1回のなぞり操作に対するスクロール量は、既定値に戻される。
次に、本実施形態に係る情報表示装置300の動作について、図8を参照して説明する。図8は、本実施形態に係る情報表示装置300が実行する情報表示処理を示すフローチャートである。なお、図8に示す情報表示処理は、例えば、ワードプロセッサとして機能する情報表示装置300が、編集対象の文書の内容が保存されているファイルのファイル名が指定された後に実行する処理である。
まず、CPU 101は、初期化処理を実行する(ステップS101)。ここでは、CPU 101は、タッチスクリーン108に表示される文書の内容が保存されているファイルを、メモリカセット106からRAM 103に読み出すなどの処理を実行する。また、CPU 101は、表示開始行番号Psttを1にセットする。さらに、CPU 101は、後述するタイマカウンタの値を0にクリアする。なお、表示開始行番号Psttやタイマカウンタの値は、RAM 103などに記憶されているものとする。
CPU 101は、ステップS101の処理を完了すると、注目範囲の内容をタッチスクリーン108に表示する(ステップS102)。具体的には、CPU 101は、画像処理部110と協働して、RAM 103に読み出したファイルの内容のうち、表示開始行番号Psttにより指定される注目範囲の内容を表す画像を生成し、この画像を表す信号をタッチスクリーン108に供給する。一方、タッチスクリーン108は、供給された信号に基づいて、注目範囲の内容を表示する。ここでは、注目範囲の内容は、1行目から10行目の文書の内容である。
CPU 101は、ステップS102の処理を完了すると、タッチ位置を検知する(ステップS103)。例えば、CPU 101は、タッチスクリーン108から供給される信号に基づいて、タッチ位置を表す座標を取得する。なお、CPU 101は、検知時刻と対応付けてタッチ位置を表す座標をRAM 103などに記憶する。
CPU 101は、ステップS103の処理を完了すると、タイマの値が閾値以上であるか否かを判別する(ステップS104)。なお、このタイマカウンタの値は、後述するステップS111において、軌跡画像600がタッチスクリーン108に表示された時刻からの経過時間を表す。また、このタイマカウンタの値を自動的にカウントアップするタイマカウンタは、後述するステップS112において起動される。そして、この閾値は、タッチスクリーン108に軌跡画像600が表示された時刻から表示が消去される時刻までの時間である猶予時間を表す値である。
CPU 101は、タイマカウンタの値が閾値以上であると判別すると(ステップS104:YES)、画像処理部110を制御して、タッチスクリーン108に表示している軌跡画像600を消去する(ステップS105)。
CPU 101は、タイマカウンタの値が閾値以上ではないと判別した場合(ステップS104:NO)、もしくは、ステップS105の処理を完了した場合、なぞり操作があったか否かを判別する(ステップS106)。CPU 101は、例えば、検知時刻と対応付けられてRAM 103に記憶されている、タッチ位置を表す座標に基づいて、なぞり操作があったか否かを判別する。
CPU 101は、なぞり操作がなかったと判別すると(ステップS106:NO)、ステップS103に処理を戻す。
一方、CPU 101は、なぞり操作があったと判別すると(ステップS106:YES)、今回検知されたなぞり操作の軌跡が、直前に検知されたなぞり操作の軌跡と類似するか否かを判別する(ステップS107)。つまり、ステップS107においては、直前に検知されたなぞり操作の軌跡を表す軌跡画像600がタッチスクリーン108に表示されており、かつ、今回検知されたなぞり操作の軌跡と直前に検知されたなぞり操作の軌跡とが類似しているか否かが判別される。なお、なぞり操作の軌跡が互いに類似しているか否かは、例えば、これらの軌跡の重なり具合が所定の閾値よりも大きいか否かにより判別される。
CPU 101は、今回検知されたなぞり操作の軌跡が、直前に検知されたなぞり操作の軌跡と類似していると判別した場合(ステップS107:YES)、Nに(N+1)を代入、つまり、Nの値を1つ増加させる(ステップS108)。ここで、Nは、今回検知されたなぞり操作の軌跡と軌跡が類似するなぞり操作が、今回のなぞり操作が検知される直前に、何回連続して検知されているかの回数を示す値である。ここで、連続とは、直前のなぞり操作の軌跡を表す軌跡画像600がタッチスクリーン108に表示された時刻から猶予時間が経過する前に(直前のなぞり操作の軌跡を表す軌跡画像600がタッチスクリーン108に表示されている間に)、次のなぞり操作が検知されることを意味する。なお、Nの値は、RAM 103に記憶される。
一方、CPU 101は、今回検知されたなぞり操作の軌跡が、直前に検知されたなぞり操作の軌跡と類似していないと判別した場合(ステップS107:NO)、Nに0を代入、つまり、Nの値を0にする(ステップS109)。なお、Nの値は、RAM 103に記憶される。
CPU 101は、ステップS108もしくはステップS109の処理を完了すると、Nの値に基づいてスクロール量を決定する(ステップS110)。ここで、Nの値が0である場合、スクロール量は、検知されたなぞり操作の軌跡の長さにあらかじめ対応付けられる既定値に決定される。一方、Nの値が1以上である場合、スクロール量は、検知されたなぞり操作の軌跡の長さにあらかじめ対応付けられる既定値よりも大きな値であって、Nが大きいほど大きな値に決定される。決定されたスクロール量は、RAM 103に記憶される。
CPU 101は、ステップS110の処理を完了すると、RAM 103に記憶されているタッチ位置を表す座標に基づいて、最後に検知されたなぞり操作の軌跡を表す軌跡画像600をタッチスクリーン108に表示する(ステップS111)。
CPU 101は、ステップS111の処理を終了すると、タイマカウンタを起動する(ステップS112)。なお、このタイマカウンタは、なぞり操作の軌跡を表す軌跡画像600がタッチスクリーン108に表示された時刻からの経過時間を表す値を、所定の周期毎に自動でカウントアップする。このタイマカウンタは、例えば、CPU 101とRTC113とが協働することにより実現される。
CPU 101は、ステップS112の処理を終了すると、スクロール処理を実行する(ステップS113)。例えば、CPU 101は、ステップS110において決定されたスクロール量に従って、表示開始行番号Psttを変化させる。そして、CPU 101は、画像処理部107を制御して、RAM 103に読み出されているファイルの内容のうち、表示開始行番号Psttにより指定される注目範囲の内容を表す画像を生成し、この画像を表す信号をタッチスクリーン108に供給する。一方、タッチスクリーン108は、CPU 101から供給された信号に基づいて、注目範囲の内容を表示する。なお、CPU 101が表示開始行番号Psttを徐々に変化させながら、表示開始行番号Psttにより指定される注目範囲の内容を表す画像を生成、供給することにより、タッチスクリーン108に表示される画像がスクロールする。
CPU 101は、ステップS113の処理を終了すると、ステップS103に処理を戻す。
本実施形態に係る情報表示装置300によれば、軌跡が互いに類似するなぞり操作が連続して検知された場合、なぞり操作が検知される毎に、なぞり操作に対応付けられるスクロール量が大きくなる。このため、タッチスクリーン108に表示されている画像を、比較的少ない回数のなぞり操作により、速やかにスクロールすることができる。
(第2の実施形態)
第1の実施形態では、本発明を、ワードプロセッサとして機能する情報表示装置300に適用する例を示した。しかし、本発明を、種々の装置として機能する情報表示装置300に適用してもよい。本実施形態では、本発明を、ゲーム装置として機能する情報表示装置300に適用する例について説明する。ゲーム装置により制御されるゲームは、どのようなゲームであってもよいが、本実施形態では、味方キャラクタと敵キャラクタとがボクシングで対戦するボクシングゲームである場合について説明する。なお、図1に示す情報処理装置100のインターフェース104に、ボクシングゲームを制御するプログラムならびにデータが格納されたメモリカセット106が装着されている状態において、情報処理装置100の電源が投入されると、本実施形態に係る情報表示装置300が実現される。
まず、図9を参照して、本実施形態に係る情報表示装置300により制御されるボクシングゲームの対戦中画面について説明する。
ボクシングゲームのプレイ中は、図9に示すように、タッチスクリーン108には、味方キャラクタ901と、敵キャラクタ901と、味方体力ゲージ911と、敵体力ゲージ912と、が表示される。
味方キャラクタ901は、ゲームのユーザが操作する仮想空間内の味方キャラクタである。
敵キャラクタ902は、仮想空間内において味方キャラクタと対戦する敵キャラクタである。敵キャラクタ902は、コンピュータにより操作される。
味方体力ゲージ911は、味方キャラクタ901の体力を表すゲージである。味方キャラクタ901の体力は、0〜100の数値により表される。味方キャラクタ901が敵キャラクタ902から攻撃を受けると、味方キャラクタ901の体力は、敵キャラクタ902の攻撃力の分だけ減少する。味方キャラクタ901の体力が0以下になると、味方キャラクタ901の敗北が決定する。
敵体力ゲージ912は、敵キャラクタ902の体力を表すゲージである。敵キャラクタ902の体力は、0〜100の数値により表される。敵キャラクタ902が味方キャラクタ901から攻撃を受けると、敵キャラクタ902の体力は、味方キャラクタ901の攻撃力の分だけ減少する。敵キャラクタ902の体力が0以下になると、敵キャラクタ902の敗北が決定する。
ここで、ユーザは、味方キャラクタ901に敵キャラクタ902を攻撃させたい場合、攻撃の種類に対応付けられている軌跡を描くように、タッチスクリーン108に対してなぞり操作を行う。なお、最新のなぞり操作が検知されてから所定の猶予期間が経過するまでの間、タッチスクリーン108には、この最新のなぞり操作の軌跡を表す軌跡画像920が表示される。
次に、図10Aを参照して、味方キャラクタ901が実行することが可能な攻撃について説明する。
図10Aに示す例では、味方キャラクタ901が実行することが可能な攻撃の種類は、“ストレート”と“フック”と“アッパー”と“必殺技”との4つである。攻撃の種類のそれぞれには、なぞり操作の軌跡と、基本攻撃力と、が対応付けられている。
なぞり操作の軌跡は、味方キャラクタ901に攻撃を出させるためにユーザが実行すべきなぞり操作の軌跡である。
“ストレート”に対応付けられるなぞり操作の軌跡は、タッチスクリーン108上において、味方キャラクタ901から敵キャラクタ902に向かって真っ直ぐになぞることにより描かれる軌跡である。
“フック”に対応付けられるなぞり操作の軌跡は、タッチスクリーン108上において、味方キャラクタ901から敵キャラクタ902に向かって、山を描くようになぞることにより描かれる軌跡である。
“アッパー”に対応付けられるなぞり操作の軌跡は、タッチスクリーン108上において、味方キャラクタ901から敵キャラクタ902に向かって、谷を描くようになぞることにより描かれる軌跡である。
“必殺技”に対応付けられるなぞり操作の軌跡は、タッチスクリーン108上において、味方キャラクタ901から敵キャラクタ902に向かって真っ直ぐなぞった後、一度味方キャラクタ901のいる方にやや下方に移動させながらなぞり、再度敵キャラクタ902に向かって真っ直ぐになぞることにより描かれる軌跡である。
基本攻撃力は、この基本攻撃力に対応付けられている攻撃が敵キャラクタ902にヒットした場合に決定される攻撃力の基本となる攻撃力である。“ストレート”に対応付けられた基本攻撃力は3である。“フック”に対応付けられた基本攻撃力は2である。“アッパー”に対応付けられた基本攻撃力は5である。“必殺技”に対応付けられた基本攻撃力は10である。ここで、攻撃力は、攻撃の種類に対応付けられた基本攻撃力と、入力時間に対応付けられた倍率と、連続入力回数に対応付けられた倍率と、の積である。攻撃力は、攻撃を受けた敵キャラクタ902の体力の減少分、つまり、攻撃を受けた敵キャラクタ902が受けるダメージと等しい。
ここで、図10Bを参照して、入力時間に対応付けられる倍率について説明する。本実施形態では、なぞり操作が開始された時刻からなぞり操作が完了した時刻までの経過時間である入力時間が短いほど、高い倍率が設定される。
図10Bに示す例では、入力時間が0.2sec未満である場合、倍率は3倍であり、入力時間が0.2sec以上かつ0.5sec未満である場合、倍率が2倍であり、入力時間が0.5sec以上である場合、倍率が1倍である。
次に、図10Cを参照して、連続入力回数に対応付けられる倍率について説明する。本実施形態では、軌跡が互いに類似するなぞり操作が連続して入力された回数である連続入力回数が多いほど、高い倍率が設定される。ここで、直前のなぞり操作が検知された時刻から所定の猶予時間が経過するまでに、次のなぞり操作が検知される場合に、これらのなぞり操作が連続しているものとする。
図10Cに示す例では、連続入力回数が1である場合、倍率は1倍であり、連続入力回数が2である場合、倍率が2倍であり、連続入力回数が3である場合、倍率が3倍であり、連続入力回数が4である場合、倍率が4倍であり、連続入力回数が5である場合、倍率が5倍である。
以下、図11を参照して、攻撃の種類と、入力時間と、連続入力回数と、に基づいて、攻撃力を計算する例について説明する。なお、図11に示す例では、“必殺技”に対応付けられた軌跡を描くなぞり操作が1回検知されてから、“フック”に対応付けられた軌跡を描くなぞり操作が4回検知され、これら5回のなぞり操作がいずれも連続しているものとする。
まず、1回目のなぞり操作によって、“必殺技”に対応付けられた軌跡が0.1secで入力されると、攻撃力は、10×3×1=30となる。
次に、2回目のなぞり操作によって、“フック”に対応付けられた軌跡が0.3secで入力されると、攻撃力は、3×2×1=6となる。
次に、3回目のなぞり操作によって、“フック”に対応付けられた軌跡が0.3secで入力されると、攻撃力は、3×2×2=12となる。
次に、3回目のなぞり操作によって、“フック”に対応付けられた軌跡が0.1secで入力されると、攻撃力は、3×3×3=27となる。
最後に、5回目のなぞり操作によって、“フック”に対応付けられた軌跡が0.1secで入力されると、攻撃力は、3×3×4=36となる。
このように、本実施形態では、軌跡が互いに類似するなぞり操作が連続して検知されると、操作量が増大する。つまり、なぞり操作が単発で行われると攻撃力が低い攻撃であっても、なぞり操作が連続で行われると攻撃力が増大する。例えば、図11に示す例では、5回目のなぞり操作により繰り出される“フック”の攻撃力は、1回目のなぞり操作により繰り出される“必殺技”の攻撃力よりも高くなっている。つまり、本実施形態では、互いに同じ軌跡を描くなぞり操作が連続して正確に実行された場合に、攻撃力が増大するように設定される。このように攻撃力が設定されることは、現実世界のボクシングにおいて、同じ箇所に連続して同じ攻撃を受けた場合に、ダメージが増大することに対応させることになる。
次に、本実施形態に係る情報表示装置300の動作について、図12を参照して説明する。図12は、本実施形態に係る情報表示装置300が実行する情報表示処理を示すフローチャートである。なお、図12に示す情報表示処理は、例えば、ボクシングゲームを実行するゲーム装置として機能する情報表示装置300が、ボクシングゲームの開始を指示する操作入力を受け付けた後に実行される処理である。
まず、CPU 101は、初期化処理を実行する(ステップS201)。例えば、CPU 101は、味方キャラクタ901、敵キャラクタ902、味方体力ゲージ911、敵体力ゲージ912など、初期画面に表示するオブジェクトの情報を、メモリカセット106からRAM 103に読み出すなどの処理を実行する。また、CPU 101は、味方キャラクタ901の体力を表す変数、ならびに、敵キャラクタ902の体力を表す変数に100をセットする。さらに、CPU 101は、後述するタイマカウンタの値を0にクリアする。なお、体力を表す変数やタイマカウンタの値は、RAM 103などに記憶されているものとする。
CPU 101は、ステップS201の処理を完了すると、初期画面を表す画像をタッチスクリーン108に表示する(ステップS202)。具体的には、CPU 101は、画像処理部110と協働して、RAM 103に読み出したオブジェクトの情報や各キャラクタの体力を表す変数に基づいて、初期画面を表す画像信号を生成し、タッチスクリーン108に供給する。一方、タッチスクリーン108は、供給された画像信号に基づいて、初期画面を表示する。ここでは、初期画面に含まれる味方体力ゲージ911と敵体力ゲージ912とは、100を表す画像である。
CPU 101は、ステップS202の処理を完了すると、タッチ位置を検知する(ステップS203)。例えば、CPU 101は、タッチスクリーン108から供給される信号に基づいて、タッチ位置を表す座標を取得する。なお、CPU 101は、検知時刻と対応付けてタッチ位置を表す座標をRAM 103などに記憶する。
CPU 101は、ステップS203の処理を完了すると、タイマカウンタの値が閾値以上であるか否かを判別する(ステップS204)。なお、このタイマカウンタの値は、後述するステップS211において、軌跡画像920がタッチスクリーン108に表示された時刻からの経過時間を表す。また、このタイマカウンタの値を自動的にカウントアップするタイマカウンタは、後述するステップS212において起動される。そして、この閾値は、タッチスクリーン108に軌跡画像920が表示された時刻から表示が消去される時刻までの時間である猶予時間を表す値である。
CPU 101は、タイマカウンタの値が閾値以上であると判別すると(ステップS204:YES)、画像処理部110を制御するなどして、タッチスクリーン108に表示している軌跡画像920を消去する(ステップS205)。
CPU 101は、タイマカウンタの値が閾値以上ではないと判別した場合(ステップS204:NO)、もしくは、ステップS205の処理を完了した場合、なぞり操作があったか否かを判別する(ステップS206)。CPU 101は、例えば、検知時刻と対応付けられてRAM 103に記憶されている、タッチ位置を表す座標に基づいて、なぞり操作があったか否かを判別する。
CPU 101は、なぞり操作がなかったと判別すると(ステップS206:NO)、ステップS203に処理を戻す。
一方、CPU 101は、なぞり操作があったと判別すると(ステップS206:YES)、今回検知されたなぞり操作の軌跡が、直前に検知されたなぞり操作の軌跡と類似するか否かを判別する(ステップS207)。つまり、ステップS207においては、直前に検知されたなぞり操作の軌跡を表す軌跡画像920がタッチスクリーン108に表示されており、かつ、今回検知されたなぞり操作の軌跡と直前に検知されたなぞり操作の軌跡とが類似しているか否かが判別される。なお、なぞり操作の軌跡が互いに類似しているか否かは、例えば、これらの軌跡の重なり具合が所定の閾値よりも大きいか否かにより判別される。
CPU 101は、今回検知されたなぞり操作の軌跡が、直前に検知されたなぞり操作の軌跡と類似していると判別した場合(ステップS207:YES)、Nに(N+1)を代入、つまり、Nの値を1つ増加させる(ステップS208)。ここで、Nは、今回検知されたなぞり操作の軌跡と軌跡が類似するなぞり操作が、今回のなぞり操作が検知される直前に、何回連続して検知されているかの回数を示す値である。ここで、連続とは、直前のなぞり操作の軌跡を表す軌跡画像920がタッチスクリーン108に表示された時刻から猶予時間が経過する前に(直前のなぞり操作の軌跡を表す軌跡画像920がタッチスクリーン108に表示されている間に)、次のなぞり操作が検知されることを意味する。なお、Nの値は、RAM 103に記憶される。
一方、CPU 101は、今回検知されたなぞり操作の軌跡が、直前に検知されたなぞり操作の軌跡と類似していないと判別した場合(ステップS207:NO)、Nに0を代入、つまり、Nの値を0にする(ステップS209)。なお、Nの値は、RAM 103に記憶される。
CPU 101は、ステップS208もしくはステップS209の処理を完了すると、Nの値に基づいて攻撃力を決定する(ステップS210)。ここで、Nの値が0である場合、攻撃力は、検知されたなぞり操作の軌跡に対応する攻撃の種類となぞり操作の速さとにあらかじめ対応付けられる既定値に設定される。一方、Nの値が1以上である場合、攻撃力は、この既定値よりも大きな値であって、Nが大きいほど大きな値に設定される。決定された攻撃力は、RAM 103に記憶される。
CPU 101は、ステップS210の処理を完了すると、RAM 103に記憶されているタッチ位置を表す座標に基づいて、最後に検知されたなぞり操作の軌跡を表す軌跡画像920をタッチスクリーン108に表示する(ステップS211)。
CPU 101は、ステップS211の処理を終了すると、タイマカウンタを起動する(ステップS212)。なお、このタイマカウンタは、なぞり操作の軌跡を表す軌跡画像920がタッチスクリーン108に表示された時刻からの経過時間を表す値を、所定の周期毎に自動でカウントアップする。このタイマカウンタは、例えば、CPU 101とRTC113とが協働することにより実現される。
CPU 101は、ステップS212の処理を終了すると、体力を減算して表示する(ステップS213)。例えば、CPU 101は、画像処理部107を制御して、敵体力ゲージ912により表される体力からステップS210において決定された攻撃力分を減じた体力を敵体力ゲージ912により表す画像信号を生成し、タッチスクリーン108に供給する。一方、タッチスクリーン108は、CPU 101から供給された画像信号に基づいて、ステップS210において決定された攻撃力分だけ体力が減じられた敵体力ゲージ912を表す画像を含む画面を表示する。
CPU 101は、ステップS213の処理を終了すると、ステップS203に処理を戻す。
本実施形態に係る情報表示装置300によれば、軌跡が互いに類似するなぞり操作が連続して行われた場合、なぞり操作が検知される毎に、なぞり操作に対応付けられる攻撃力が大きくなる。このため、軌跡が互いに類似するなぞり操作が繰り返して検知されると、比較的少ない回数のなぞり操作により、速やかに敵キャラクタ902にダメージを与えることができる。
(第3の実施形態)
第1の実施形態では、タッチスクリーン108に表示されている文書を表す画像が、なぞり操作により縦方向にスクロールされる例を示した。しかし、タッチスクリーン108に表示される画像は任意であり、また、なぞり操作により画像がスクロールされる方向も任意である。例えば、タッチスクリーン108に表示される画像が地図を表す画像であり、なぞり操作により画像が任意の方向にスクロールされてもよい。
例えば、図13に示すように、地図全体を表す地図1301のうち、注目範囲の地図がタッチスクリーン108に表示される場合、なぞり操作が検知されると、注目範囲が変更されて、タッチスクリーン108に表示される画像がスクロールされる。ここで、注目範囲は、例えば、表示開始座標Csttにより特定される。表示開始座標Csttは、注目範囲の左上隅の地図1301における座標である。つまり、本実施形態では、決定された操作量に基づいて、表示開始座標Csttが変更される。
ここで、画像がスクロールされる方向は、なぞり操作がなされた方向にあらかじめ対応付けられた方向である。例えば、図13に示すように、なぞり操作が左下方向に向けてなされると、地図1301における注目範囲1302は、右上方向に移動する。なお、図13において、なぞり操作後の注目範囲1302と指410とは、実線で示される。そして、なぞり操作前の注目範囲1302と指410とは、破線で示される。
ここで、スクロール量は、なぞり操作の軌跡の長さ(もしくは、なぞり操作の速さ)にあらかじめ対応付けられた規定値と、軌跡が互いに類似するなぞり操作が連続してなされた回数と、に基づいて定められる。そして、この回数が多いほど、スクロール量が多くなるように、スクロール量が決定される。
また、図14に示すように、最後に検知されたなぞり操作の軌跡を表す軌跡画像1400が、このなぞり操作が検知された時刻から猶予時間が経過するまでの時刻までの間、タッチスクリーン108に表示される。このように、軌跡画像1400がユーザに提示されることにより、ユーザは、既になされたなぞり操作と同様のなぞり操作をし易くなる。
本実施形態に係る情報表示装置300によれば、軌跡が互いに類似するなぞり操作が連続して行われた場合、なぞり操作が検知される毎に、なぞり操作に対応付けられるスクロール量が大きくなる。このため、軌跡が互いに類似するなぞり操作が繰り返して検知されると、比較的少ない回数のなぞり操作により、速やかに所望の範囲の地図が画面内に表示されるようにすることができる。
(第4の実施形態)
第1〜3の実施形態では、本発明を、タッチスクリーンを備える情報表示装置に適用する例を示した。しかし、本発明が適用される情報表示装置は、タッチスクリーンを備えるものに限られない。以下、本実施形態に係る情報表示装置について説明する。なお、本実施形態に係る情報表示装置は、ダンスゲームを制御するゲーム装置として機能するものとする。
(情報処理装置の説明)
図15は、本発明の情報表示装置の機能を果たす典型的な情報処理装置150の概要構成を示す模式図である。
情報処理装置150は、CPU 101と、ROM 102と、RAM 103と、インターフェース104と、画像処理部107と、NIC 109と、音声処理部110と、RTC 113と、ハードディスク114と、外部メモリ115と、入力装置116と、DVD−ROM(Digital Versatile Disk − Read Only Memory)ドライブ117と、を備える。
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ117に装着し、情報処理装置150の電源を投入することにより、当該プログラムが実行され、本実施形態のゲーム装置が実現される。
CPU 101は、情報処理装置150全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、ALU(Arithmetic Logic Unit)(図示せず)を用いて、レジスタという高速アクセスが可能な記憶領域に記憶されたデータの加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、CPU 101は、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行うことができるコプロセッサを備える。
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録される。IPLがCPU 101によって実行されることにより、DVD−ROMに記録されたプログラムがRAM 103に読み出され、CPU 101による起動処理が開始される。
RAM 103は、データやプログラムを一時的に記憶するためのもので、例えば、DVD−ROMから読み出されたプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
インターフェース104は、情報処理装置150に外部メモリ115を接続するためのインターフェースである。また、情報処理装置150は、インターフェース104を介して、増設用のハードディスクを接続することができる。
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され、画像処理部107に接続されるモニター250へ出力される。
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。また、画像演算プロセッサは、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報に従って、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
また、CPU 101と画像演算プロセッサがDVD−ROMに予め格納された画像データをフレームメモリに書き込むことによって、ゲームの様子などを画面に表示することができる。画像データをフレームメモリに書き込み表示させる処理を、定期的なタイミング(典型的には垂直同期割り込み(VSYNC)のタイミング)で繰り返し行うことにより、モニター250にアニメーションを表示することが可能になる。
NIC 109は、情報処理装置150をインターネット等のコンピュータ通信網(図示せず)に接続するためのものである。NIC 109は、例えば、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格に従うインターフェース(図示せず)により構成される。あるいは、NIC 109は、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integraged Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line Modem)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、CPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、スピーカから出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲などの音声データを生成し、生成された音声データをデコードすることにより、様々な音声をスピーカから出力させる。
音声処理部110は、DVD−ROMに記録された音声データがMIDIデータである場合には、音声処理部110が有する音源データを参照して、MIDIデータをPCMデータに変換する。また、音声処理部110は、ADPCM形式やOgg Vorbis形式等により圧縮された音声データである場合には、圧縮された音声データをPCMデータに変換する。PCMデータは、サンプリング周波数に応じたタイミングでD/A変換を行って、スピーカに出力することにより、音声出力が可能となる。
RTC 113は、水晶振動子や発振回路などを備える計時用のデバイスである。RTC 113は、内蔵電池から電源を供給され、情報処理装置105の電源がオフのときでも動作し続ける。
ハードディスク114は、情報処理装置150全体の動作制御に必要なオペレーティングシステム(OS)のプログラムや各種のゲームデータ等を格納する。CPU 101は、ハードディスク114に記憶される情報を随時書き換えることができる。
外部メモリ115は、インターフェース104を介して、情報処理装置150に着脱自在に接続される。外部メモリ115には、ゲームのプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワークを用いた他の装置との通信のログ(記録)のデータなどが記憶される。CPU 101は、外部メモリ115に記憶される情報を随時書き換えることができる。
入力装置116は、図16に示すように、ゲーム画面が表示されるモニター250付近に設置される。入力装置116は、ユーザの様子などを撮影するカメラを備える。CPU 101は、カメラによって撮影された画像を表す画像データを解析し、画像に含まれるユーザの部位(例えばユーザの手、足、顔など)を判別する。画像解析の手法には、例えば、パターン認識による解析、特徴点の抽出による解析、空間周波数の算出による解析などがある。カメラによる撮影は、ゲーム中に継続的に行われる。
また、入力装置116は、入力装置116からユーザ(もしくはユーザの任意の部位)までの距離を測定する深度センサーを備える。例えば、入力装置116は、赤外線を周囲に照射し、この赤外線の反射波を検知する。そして、入力装置116は、照射波と反射波との位相差や、赤外線が発射されてからその反射光が検知されるまでの時間(飛行時間)に基づいて、照射波の発射口から照射波を反射した物体までの距離(以下「深度」ともいう。)を求める。深度センサーによる深度の検知は、赤外線を発射可能な方向のそれぞれについて、所定の時間間隔で繰り返し行われる。
深度センサーを備えることにより、情報処理装置150は、現実空間に配置された物体の3次元的な位置や形状をより詳しく把握することが可能になる。具体的には、CPU 101が第1の時刻に取得された第1の画像データと第2の時刻に取得された第2の画像データとを画像解析した結果、第1の画像データと第2の画像データの両方にユーザの頭部を表す部分が含まれていることを判別したとする。CPU 101は、第1の画像データ内における頭部の位置と、第2の画像データ内における頭部の位置と、の変化から、カメラから見てユーザの頭部が上下左右のどの方向にどの程度動いたのかを判別することができるだけでなく、第1の画像データにおける頭部の深度と、第2の画像データ内における頭部の深度と、の変化から、カメラから見てユーザの頭部が前後のどちらの方向にどの程度動いたのか(どの程度カメラに近づいたりカメラから遠ざかったりしたのか)を判別することもできる。
このように、CPU 101は、入力装置116が備えるカメラによって撮影された画像と、入力装置116が備える深度センサーによって測定された距離(深度)と、に基づいて、いわゆるモーションキャプチャーのように、現実空間におけるユーザの3次元的な動きをデジタル化して把握することができる。
例えば、ダンスゲームにおいて、ユーザがモニター250画面の前(つまり入力装置116の前)でダンスを踊るモーションをすると、CPU 101は、ユーザがダンスを踊るモーションを行ったことを認識することができる。そして、CPU 101は、認識したモーションに応じて、ゲームを進行することができる。つまり、ユーザは、タッチパッド型のコントローラなどを持つことなく、自分の体を自由に動かすことによって、所望の指示を入力することができる。入力装置116は、ユーザからの指示入力を受け付ける、いわゆる“コントローラ”の役割を果たす。
撮影された画像を表すデジタルの画像データは、複数の画素の集合である。典型的には、画素のそれぞれに三原色(R,G,B)の強度を表す値が対応付けられる。画像深度センサーにより各方向の深度が測定されるということは、実質的には、1つの画素が、赤(R),緑(G),青(B)に加えて、深度(D)というもう一次元を用いて表されることを意味する。
DVD−ROMドライブ117に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データなどが予め記録される。DVD−ROMドライブ117は、CPU 101の制御によって、装着されたDVD−ROMに記録されたプログラムやデータを読み出す。CPU 101は、読み出されたプログラムやデータをRAM 103等に一時的に記憶する。
(情報表示装置の説明)
次に、DVD−ROMドライブ117にゲーム制御用のDVD−ROMが装着されている状態において、情報処理装置150の電源が投入されることにより実現される、本実施形態の情報表示装置1700の機能的な構成等について説明する。
本実施形態の情報表示装置1700において実行されるゲームはダンスゲームである。CPU 101は、ゲームを開始すると、ダンス用の楽曲を再生すると共に、ユーザが達成すべきゲーム課題をユーザに順々に提示する。ゲーム課題は、ゲーム内時刻と、現実空間においてユーザがいるべき位置と取るべき姿勢とを表すデータと、が対応付けられることにより定義される。CPU 101は、ゲーム課題の内容を反映したキャラクターオブジェクト(以下、「模範キャラクタ」という。本実施形態ではダンスのインストラクターの姿をしている。)をモニター250に表示する。CPU 101は、模範キャラクタの位置や姿勢を変化させることにより、ユーザにゲーム課題を提示する。つまり、模範キャラクタは、ユーザがなすべき振り動作を三次元仮想空間内で実行するキャラクタである。
ユーザは、モニター250に動画で表示される模範キャラクタの動きを参考にしながら自分の体を動かす。ユーザの体の動きが入力装置116によって検知される。例えば、ユーザの両手の位置と向き、ユーザの両足の位置と向き、ユーザの頭の位置と向きなどがCPU 101によって識別される。そして、この識別結果に基づいて、予め設定されたゲーム課題通りにユーザが手、足、頭などを動かしたか否かが、つまりユーザの成績が、CPU 101によって判定される。ユーザは、模範キャラクタの動きを参考にして体を動かせば、楽曲に合わせてダンスを踊っている感覚を味わうことができる。
なお、本実施形態の情報表示装置1700は、ダンスゲームが開始される前や後に、ユーザの動作から移動操作を検知し、検知された移動操作に従って、画面内に表示される模範キャラクタの向きを変化させる。かかる構成によれば、ユーザは、模範キャラクタの向きを、参考にしたい身体の部位の動きが明確に確認できる向きに変化させることができる。
なお、模範キャラクタの向きを変化させることは、三次元仮想空間内において模範キャラクタを撮影することにより画面内に表示する画像を生成する仮想カメラの位置や角度(向き)を変化させることと同義である。
図17は、本実施形態の情報表示装置1700の機能的な構成を示す図である。図17に示すように、情報表示装置1700は、検知部1701と、操作量取得部1702と、変化部1703と、表示情報取得部1704と、表示部1705と、を備える。
検知部1701は、ユーザの動作から所定の移動操作を検知する。移動操作は、現実空間において、ユーザが身体の所定の部位(以下、「注目部位」という。)を移動させることによって、情報表示装置1700に与える操作である。移動操作は、ユーザが注目部位を移動させる方向に対応付けられて用意されていてもよい。例えば、ユーザが、一方の手を静止させた状態から、ある方向に移動させる動作が、当該方向に対応付けられた移動操作とされる。
一方、検知部1701は、例えば、現実空間における注目部位の位置を所定周期毎に監視することにより、移動操作を検知する。具体的には、例えば、検知部1701は、垂直同期割り込みが所定回数発生する毎に、注目部位を被写体とする動画像内における注目部位の位置と情報表示装置1700から注目部位までの距離とを取得することにより、現実空間における注目部位の位置の変化を取得し、当該注目部位の位置の変化に基づいて移動操作を検知する。検知部1701は、例えば、CPU 101と入力装置116とにより構成される。
操作量取得部1702は、検知された移動操作の軌跡の長さもしくは速度から、対象情報に対する操作量を取得する。対象情報は、例えば、仮想カメラの位置や角度(向き)を表す情報とすることができる。ここで、模範キャラクタが常に画面の中心に表示されるものとすると、仮想カメラの角度が決定すると当該仮想カメラの位置が決定する。本実施形態では、対象情報は、仮想カメラから模範キャラクタに向かうベクトル(以下、「撮影方向ベクトル」という。)の向きを表す情報とし、操作量は、撮影方向ベクトルの向きの変更量(仮想カメラの移動距離と同義)とする。操作量取得部302は、例えば、CPU 101により構成される。
変化部1703は、取得された操作量に基づいて、対象情報を変化させる。例えば、変化部1703は、撮影方向ベクトルの向きの変更量に基づいて、三次元仮想空間内に設置される仮想カメラの位置ならびに角度を変化させる。変化部1703は、例えば、CPU 101により構成される。
表示情報取得部1704は、変化後の対象情報に基づいて、画面に表示すべき表示情報を取得する。例えば、表示情報取得部1704は、位置と角度とが変更された仮想カメラにより撮影される三次元仮想空間内の様子を表す画像を取得する。表示情報取得部1704は、例えば、CPU 101により構成される。
表示部1705は、取得された表示情報を画面に表示する。また、表示部1705は、検知された移動操作のうち最後に検知された移動操作の軌跡を、適宜、画面に表示する。かかる構成によれば、例えば、ユーザは、画面内に表示された模範キャラクタの向きなどを確認しながら、最後になした移動操作がどのような軌跡を描いたかを確認することができる。表示部1705は、例えば、CPU 101と画像処理部107とモニター250とにより構成される。
ここで、操作量取得部1702は、検知された移動操作のうち最後に検知された移動操作の軌跡と、当該最後に検知された移動操作の直前に検知された移動操作の軌跡とが、類似するか否かによって、場合分けして、以下に示す処理を実行する。
すなわち、操作量取得部1702は、(a)これらの軌跡が互いに類似しない場合、最後に検知された移動操作の軌跡の長さもしくは速度にあらかじめ対応付けられる既定値を操作量として取得する。
一方、操作量取得部1702は、(b)これらの軌跡が互いに類似する場合、最後に検知された移動操作の軌跡の長さもしくは速度にあらかじめ対応付けられる既定値より大きい値を操作量として取得する。
つまり、操作量取得部1702は、最新の2つの移動操作の軌跡が互いに一致する場合、これらの軌跡が互いに一致しない場合に取得する操作量よりも大きな値の操作量を取得する。なお、これらの軌跡が互いに一致しない場合に取得される操作量は、最後に検知された移動操作の軌跡の長さもしくは速度にあらかじめ対応付けられる既定値となる。この既定値は、例えば、最後に検知された移動操作の軌跡の長さが長いほど大きな値になるように設定され、この軌跡の長さが短いほど小さな値になるように設定される。あるいは、この既定値は、例えば、この移動操作の速度が速いほど大きな値になるように設定され、この移動操作の速度が遅いほど小さな値になるように設定される。
次に、図18を参照して、ユーザの動作から検知される移動操作について説明する。
図18に示すように、ユーザは、モニター250と対峙した状態において、注目部位を動かす。注目部位は、どこに設定されていてもよいが、本実施形態では、左手1811とする。一方、入力装置116は、カメラや深度センサーによって、注目部位の動きを検知する。ここでは、入力装置116は、所定の時間間隔で、注目部位の重心の座標を取得することにより、注目部位の動きを検知するものとする。現実空間における注目部位の座標は、例えば、X軸の座標、Y軸の座標、ならびにZ軸の座標により表される。
ここで、モニター250の表示面に直交する軸(ユーザとモニター250とを結ぶ軸)をX軸とし、ユーザからモニター250に向かう向きをX軸の+方向とする。また、モニター250の縦軸をY軸とし、画面の下から上に向かう向きをY軸の+方向とする。そして、モニター250の横軸をZ軸とし、画面の右から左に向かう向きをZ軸の+方向とする。
また、図18に示すように、時刻がtの時点における注目部位の重心の座標をRP(t)(X(t),Y(t),Z(t))とする。ここで、X(t)は、時刻がtの時点における注目部位の重心のX座標であり、Y(t)は、時刻がtの時点における注目部位の重心のY座標であり、Z(t)は、時刻がtの時点における注目部位の重心のZ座標である。以下、注目部位の重心の座標を、適宜、注目部位の位置とする。
ユーザが、注目部位の位置をどのように変化させた場合に、ユーザの動作が移動操作として検知されるかは、適宜、調整が可能である。また、移動操作は、注目部位が移動する方向に対応付けられて複数個用意されていてもよい。
本実施形態では、図19Aに示すように、上方向、下方向、左方向、および、右方向のそれぞれについて、移動操作が対応付けられている。
ここで、上方向に対応付けられる移動操作の成立条件は、Y座標の変化が所定値未満の状態が所定時間以上継続した後、Y座標が単調増加して所定値以上増加することである。
また、下方向に対応付けられる移動操作の成立条件は、Y座標の変化が所定値未満の状態が所定時間以上継続した後、Y座標が単調減少して所定値以上減少することである。
そして、左方向に対応付けられる移動操作の成立条件は、Z座標の変化が所定値未満の状態が所定時間以上継続した後、Z座標が単調増加して所定値以上増加することである。
また、右方向に対応付けられる移動操作の成立条件は、Z座標の変化が所定値未満の状態が所定時間以上継続した後、Z座標が単調減少して所定値以上減少することである。
なお、図18は、左方向に対応付けられる移動操作が成立するときのユーザの動きを示している。具体的には、図18は、ユーザが、モニター250に対峙した状態で、注目部位である左手1811を、胴体に近い位置において所定時間以上静止させた後、所定距離以上Z軸の+方向に伸ばしている様子を示している。
ここで、本実施形態では、軌跡が互いに類似する移動操作が連続して入力された回数である連続入力回数が多いほど、移動操作の軌跡の長さや速度にあらかじめ対応付けられている操作量に乗じられる倍率が高く設定される。ここで、直前の移動操作が検知された時刻から所定の猶予時間が経過するまでに、次の移動操作が検知される場合に、これらの移動操作が連続しているものとする。
図19Bに示す例では、連続入力回数が1である場合、倍率は1倍であり、連続入力回数が2である場合、倍率が2倍であり、連続入力回数が3である場合、倍率が4倍であり、連続入力回数が4である場合、倍率が8倍であり、連続入力回数が5である場合、倍率が16倍である。このように、操作量は、連続入力回数を指数とするべき乗によって定まる量であってもよい。
図20に、移動操作が連続して検知されることによって、仮想カメラの位置および角度が変化する様子を示す。図20は、三次元仮想空間において、仮想カメラ2000と模範キャラクタ1801とを俯瞰した様子を示している。ここで、三次元仮想空間において、仮想カメラ2000から模範キャラクタ1801までの距離はr1で一定であり、仮想カメラ2000は模範キャラクタ1801が存在する方向を向いているものとする。この場合、仮想カメラ2000から模範キャラクタ1801に向かう撮影方向ベクトルの向きが決定されると、仮想カメラ2000の角度が決定されるとともに、仮想カメラ2000の位置も決定される。
ここで、撮影方向ベクトルの向きを対象情報とすると、対象情報に対する操作量は、撮影方向ベクトルの回転角度となる。つまり、移動操作が検知されると、撮影方向ベクトルの回転角度が決定され、仮想カメラ2000は、撮影方向ベクトルの回転角度に応じて、模範キャラクタ1801の方向を向くように角度が調整されつつ、模範キャラクタ1801を中心にして弧を描くように移動する。なお、図20は、左方向に対応付けられた移動操作が3回連続して検知され、当該移動操作が検知される毎に、連続入力回数に対応する回転角度分、三次元仮想空間の上方からみて反時計回りに、撮影方向ベクトルが回転する例を示している。以下、具体的に説明する。
初期状態において、仮想カメラ2000は、模範キャラクタ1801の正面を向く位置であるVP0に配置されているものとする。この時点においては、図21Aに示すように、模範キャラクタ1801を正面から見た様子を示す画像が、モニター250に表示される。
ここで、左方向に対応付けられた1回目の移動操作が検知されると、仮想カメラ2000は、模範キャラクタ1801を中心にしてθ1により示される角度だけ反時計回りに移動した位置であるVP1に移動する。なお、θ1は、VP0と模範キャラクタ1801とを結ぶ直線と、VP1と模範キャラクタ1801とを結ぶ直線と、のなす角度である。
この時点においては、図21Bに示すように、模範キャラクタ1801を正面よりも右側から見た様子を示す画像が、モニター250に表示される。さらに、モニター250には、1回目の移動操作の軌跡を表す軌跡画像2101bが表示される。軌跡画像2101bは、図示するように、検知された移動操作に対応付けられた方向を示す矢印の画像とすることができる。ここで、軌跡画像2101bにより示される矢印の長さは、移動操作の軌跡の長さや速さに対応付けられた長さとすることができる。ただし、本実施形態では、移動操作の軌跡の長さや速さは、毎回一定であり、矢印の長さは一定であるものとする。なお、軌跡画像2101bは、移動操作が検知されたときに、特定部位の位置の軌跡をユーザに提示するための画像である。従って、ユーザの後方の所定の位置に視点(ユーザよりもX座標が小さい視点)を設定して、特定部位をモニター250に投影した場合に、モニター250の面に投影される特定部位の軌跡に重なるように、軌跡画像2101bをモニター250内に表示する。つまり、軌跡画像2101bは、モニター250を鏡に見立てた場合、特定部位の鏡像により描かれる軌跡を表す。
ここで、左方向に対応付けられた2回目の移動操作が1回目の移動操作に連続して検知されると、仮想カメラ2000は、模範キャラクタ1801を中心にしてθ2により示される角度だけ反時計回りに移動した位置であるVP2に移動する。なお、θ2は、VP1と模範キャラクタ1801とを結ぶ直線と、VP2と模範キャラクタ1801とを結ぶ直線と、のなす角度である。ここで、θ2=θ1×2である。
この時点においては、図21Cに示すように、模範キャラクタ1801を模範キャラクタ1801に向かって右側から見た様子を示す画像が、モニター250に表示される。さらに、モニター250には、2回目の移動操作の軌跡を表す軌跡画像2101cが表示される。軌跡画像2101cは、図示するように、検知された移動操作に対応付けられた方向を示す矢印の画像とすることができる。ここで、軌跡画像2101cにより示される矢印の太さを、軌跡画像2101bにより示される矢印の太さよりも太くすることができる。
そして、左方向に対応付けられた3回目の移動操作が2回目の移動操作に連続して検知されると、仮想カメラ2000は、模範キャラクタ1801を中心にしてθ3により示される角度だけ反時計回りに移動した位置であるVP3に移動する。なお、θ3は、VP2と模範キャラクタ1801とを結ぶ直線と、VP3と模範キャラクタ1801とを結ぶ直線と、のなす角度である。ここで、θ3=θ1×4である。
この時点においては、図21Dに示すように、模範キャラクタ1801を背面(後方)から見た様子を示す画像が、モニター250に表示される。さらに、モニター250には、3回目の移動操作の軌跡を表す軌跡画像2101dが表示される。軌跡画像2101dは、図示するように、検知された移動操作に対応付けられた方向を示す矢印の画像とすることができる。ここで、軌跡画像2101dにより示される矢印の太さを、軌跡画像2101cにより示される矢印の太さよりも太くすることができる。
このように、ユーザの移動操作に基づく操作量に応じて、仮想カメラ2000の位置および角度が変更される。
次に、本実施形態に係る情報表示装置1700の動作について、図22を参照して説明する。図22は、本実施形態に係る情報表示装置1700が実行する情報表示処理を示すフローチャートである。なお、図22に示す情報表示処理は、例えば、ダンスゲームを実行するゲーム装置として機能する情報表示装置1700が、模範キャラクタ1801を見る角度を変更する旨を指示する操作入力を受け付けた後に実行される処理である。
まず、CPU 101は、初期化処理を実行する(ステップS301)。例えば、CPU 101は、模範キャラクタ1801など、初期画面に表示するオブジェクトの情報を、CD−ROMからRAM 103に読み出すなどの処理を実行する。また、CPU 101は、撮影方向ベクトルの向きを表す変数を0に設定する。なお、撮影方向ベクトルの向きを表す変数は、例えば、0以上360未満の数値により表され、仮想カメラ2000が初期位置であるVP0に存在する場合を0として、仮想カメラ2000が模範キャラクタ1801を中心にして反時計回りへ回転するのに従って回転角度分増加する数値であってもよい。さらに、CPU 101は、後述するタイマカウンタの値を0にクリアする。なお、撮影方向ベクトルの向きを表す変数やタイマカウンタの値は、RAM 103などに記憶されているものとする。
CPU 101は、ステップS301の処理を完了すると、初期画面を表す画像をモニター250に表示する(ステップS302)。具体的には、CPU 101は、画像処理部110と協働して、RAM 103に読み出したオブジェクトの情報に基づいて、初期画面を表す画像信号を生成し、モニター250に供給する。一方、モニター250は、供給された画像信号に基づいて、初期画面を表示する。初期画面は、例えば、図21Aに示す画面である。
CPU 101は、ステップS302の処理を完了すると、注目部位の位置を検知する(ステップS303)。例えば、CPU 101は、入力装置116から供給される信号に基づいて、注目部位の位置を表す座標(X座標、Y座標、Z座標)を取得する。なお、CPU 101は、検知時刻と対応付けて注目部位の位置を表す座標をRAM 103などに記憶する。また、垂直同期割込が所定回数発生する毎に、注目部位の位置を検知する場合、CPU 101は、垂直同期割込が所定回数発生するまでウェイトした後に、当該注目部位の位置の検知を実行する。
CPU 101は、ステップS303の処理を完了すると、タイマの値が閾値以上であるか否かを判別する(ステップS304)。なお、このタイマカウンタの値は、後述するステップS311において、軌跡画像2101がモニター250に表示された時刻からの経過時間を表す。なお、軌跡画像2101は、軌跡画像2101b、軌跡画像2101c、軌跡画像2101dの総称である。また、このタイマカウンタの値を自動的にカウントアップするタイマカウンタは、後述するステップS312において起動される。そして、この閾値は、モニター250に軌跡画像2101が表示された時刻から表示が消去される時刻までの時間である猶予時間を表す値である。
CPU 101は、タイマカウンタの値が閾値以上であると判別すると(ステップS304:YES)、画像処理部110を制御するなどして、モニター250に表示している軌跡画像2101を消去する(ステップS305)。
CPU 101は、タイマカウンタの値が閾値以上ではないと判別した場合(ステップS304:NO)、もしくは、ステップS305の処理を完了した場合、移動操作があったか否かを判別する(ステップS306)。CPU 101は、例えば、検知時刻と対応付けられてRAM 103に記憶されている、注目部位の位置を表す座標に基づいて、移動操作があったか否かを判別する。
ここで、注目部位の位置を表す座標に基づいて、移動操作があったか否かを判別する手法の一例について説明する。
まず、左方向に対応付けられる移動操作を検知する場合について説明する。なお、左方向に対応付けられる移動操作の成立条件は、図19Aに示す通り、Z座標の変化が所定値未満の状態が所定時間以上継続した後、Z座標が単調増加して所定値以上増加することである。
図23は、左方向に対応付けられる移動操作を検知する移動操作検知処理を示すフローチャートである。
まず、CPU 101は、停止確定フラグがセット済みであるか否かを判別する(ステップS401)。ここで、停止確定フラグは、注目部位が静止状態であることが検知されたときにセットされるフラグである。なお、停止確定フラグは、RAM 103などに記憶され、ステップS301の初期化処理において、クリアされているものとする。
CPU 101は、停止確定フラグがセット済みではないと判別すると(ステップS401:NO)、Z座標の変化量が閾値未満であるか否かを判別する(ステップS402)。ここで、Z座標の変化量は、最も遅い検知時刻に対応付けられてRAM 103に記憶されているZ座標の、2番目に遅い検知時刻に対応付けられてRAM 103に記憶されているZ座標からの変化量である。
CPU 101は、Z座標の変化量が閾値未満でないと判別すると(ステップS402:NO)、停止時間カウンタを停止する(ステップS403)。ここで、停止時間カウンタは、Z座標の変化量が所定の閾値未満の状態が維持されている時間を示す変数の値(以下、「停止時間カウンタの値」という。)をカウントアップするカウンタである。なお、停止時間カウンタの値は、例えば、RAM 103に記憶される。停止時間カウンタは、例えば、CPU 101とRTC 113とが協働することにより実現される。
一方、CPU 101は、Z座標の変化量が閾値未満であると判別すると(ステップS402:YES)、停止時間カウンタを起動する(ステップS404)。なお、CPU 101は、停止時間カウンタが既に起動されている場合、何も処理しない。一方、CPU 101は、停止時間カウンタが停止されていた場合、停止時間カウンタの値を0にクリアした後、停止時間カウンタを起動する。
CPU 101は、ステップS404の処理を終了すると、停止時間カウンタの値が閾値以上であるか否かを判別する(ステップS405)。つまり、ステップS405では、所定時間以上継続して、注目部位のZ軸方向の変化がなかったか否かが判別される。
CPU 101は、停止時間カウンタの値が閾値以上であると判別すると(ステップS405:YES)、停止確定フラグをセットする(ステップS406)。
CPU 101は、ステップS406の処理を終了すると、停止時間カウンタを停止し(ステップS407)、停止位置を保存する(ステップS408)。停止位置は、例えば、最新の検知時刻に対応付けられてRAM 103に記憶されているY座標であり、RAM 103に記憶される。
一方、CPUは 101は、停止確定フラグがセット済みであると判別すると(ステップS401:YES)、移動開始フラグがセット済みであるか否かを判別する(ステップS409)。ここで、移動開始フラグは、注目部位が静止状態からZ軸の+方向への移動状態に移行したことが検知されたときにセットされるフラグである。なお、移動開始フラグは、RAM 103などに記憶され、ステップS301の初期化処理において、クリアされているものとする。
CPU 101は、移動開始フラグがセット済みではないと判別すると(ステップS409:NO)、Z座標の合計減少量が第1閾値以上であるか否かを判別する(ステップS410)。ここで、Z座標の合計減少量は、最も遅い検知時刻に対応付けられてRAM 103に記憶されたZ座標の、注目部位が停止したと判定された検知時刻に対応付けられてRAM 103に記憶されたZ座標(ステップS408で保存された停止位置)からの減少量である。また、第1閾値は、注目部位が静止状態から移動状態に移行したか否かを判別するための閾値である。つまり、ステップS410では、注目部位が、停止状態からZ軸の−方向への移動状態に移行したか否かが判別される。
CPU 101は、Z座標の合計減少量が第1閾値以上であると判別すると(ステップS410:YES)、停止確定フラグをクリアする(ステップS413)。つまり、本移動操作検知処理では、左方向に対応付けられる移動操作を検知することが目的であるため、注目部位が停止状態から右方向に移動したことが検知された場合、再度、注目部位が停止状態にあることを検知する処理に戻る。
一方、CPU 101は、Z座標の合計減少量が第1閾値以上ではないと判別すると(ステップS410:NO)、Z座標の合計増加量が第1閾値以上であるか否かを判別する(ステップS411)。ここで、Z座標の合計増加量は、最も遅い検知時刻に対応付けられてRAM 103に記憶されたZ座標の、注目部位が停止したと判定された検知時刻に対応付けられてRAM 103に記憶されたZ座標(ステップS408で保存された停止位置)からの増加量である。つまり、ステップS411では、注目部位が、停止状態からZ軸の+方向への移動状態に移行したか否かが判別される。
CPU 101は、Z座標の合計増加量が第1閾値以上であると判別すると(ステップS411:YES)、移動開始フラグをセットする(ステップS412)。
一方、CPUは 101は、移動開始フラグがセット済みであると判別すると(ステップS409:YES)、Z座標の増加量が閾値未満であるか否かを判別する(ステップS414)。ここで、Z座標の増加量は、最も遅い検知時刻に対応付けられてRAM 103に記憶されているZ座標の、2番目に遅い検知時刻に対応付けられてRAM 103に記憶されているZ座標からの増加量である。つまり、ステップS414では、注目部位のZ軸の+方向への移動が終了したか否かが判別される。
CPUは 101は、Z座標の増加量が閾値未満であると判別すると(ステップS414:YES)、停止確定フラグをクリアし(ステップS415)、さらに、移動開始フラグをクリアする(ステップS416)。
CPU 101は、ステップS416の処理を終了すると、Z座標の合計増加量が第2閾値以上であるか否かを判別する(ステップS417)。ここで、第2閾値は、注目部位が移動操作とみなせる程度に移動したか否かを判別するための閾値である。従って、第2閾値は、第1閾値よりも大きい。
CPUは 101は、Z座標の合計増加量が閾値以上であると判別すると(ステップS417:YES)、左方向に対応付けられる移動操作ありと判定する(ステップS418)。例えば、CPU 101は、左方向に対応付けられる移動操作があったことを示すフラグをセットする。このフラグは、例えば、RAM 103に記憶される。
一方、CPU 101は、ステップS403の処理を終了した場合、停止時間カウンタの値が閾値以上ではないと判定した場合(ステップS405:NO)、ステップS408の処理を終了した場合、Z座標の増加量が第1閾値以上ではないと判別した場合(ステップS411:NO)、ステップS412の処理を終了した場合、ステップS413の処理を終了した場合、Z座標の増加量が閾値未満ではないと判別した場合(ステップS414:NO)、もしくは、Z座標の合計増加量が第2閾値以上ではないと判別した場合(ステップS417:NO)、左方向に対応付けられる移動操作なしと判定する(ステップS419)。例えば、CPU 101は、左方向に対応付けられる移動操作があったことを示すフラグをクリアする。
CPU 101は、ステップS418もしくはステップS419の処理を終了すると、移動操作検知処理を終了する。
なお、図23に示すフローチャートは、左方向に対応付けられる移動操作を検知する処理であるが、他の方向に対応付けられる移動操作についても同様の手法により検知することができる。つまり、図23に示すフローチャートにおける各ステップの処理を、以下に示す処理に置換することで、他の方向に対応付けられる移動操作が検知される。なお、停止確定フラグ、停止時間カウンタ、移動開始フラグは、方向毎に用意される。
まず、右方向に対応付けられる移動操作を検知する場合、ステップS410においてZ座標の合計増加量が第1閾値以上であるか否かが判別され、ステップS411においてZ座標の合計減少量が第1閾値以上であるか否かが判別され、ステップS414においてZ座標の減少量が閾値未満であるか否かが判別され、ステップS417においてZ座標の合計減少量が第2閾値以上であるか否かが判別され、ステップS418において右方向に対応付けられる移動操作ありと判定され、ステップS419において右方向に対応付けられる移動操作なしと判定される。
そして、上方向に対応付けられる移動操作を検知する場合、ステップS402においてY座標の変化量が閾値未満であるか否かが判別され、ステップS410においてY座標の合計減少量が第1閾値以上であるか否かが判別され、ステップS411においてY座標の合計増加量が第1閾値以上であるか否かが判別され、ステップS414においてY座標の増加量が閾値未満であるか否かが判別され、ステップS417においてY座標の合計増加量が第2閾値以上であるか否かが判別され、ステップS418において上方向に対応付けられる移動操作ありと判定され、ステップS419において上方向に対応付けられる移動操作なしと判定される。
そして、下方向に対応付けられる移動操作を検知する場合、ステップS402においてY座標の変化量が閾値未満であるか否かが判別され、ステップS410においてY座標の合計増加量が第1閾値以上であるか否かが判別され、ステップS411においてY座標の合計減少量が第1閾値以上であるか否かが判別され、ステップS414においてY座標の減少量が閾値未満であるか否かが判別され、ステップS417においてY座標の合計減少量が第2閾値以上であるか否かが判別され、ステップS418において下方向に対応付けられる移動操作ありと判定され、ステップS419において下方向に対応付けられる移動操作なしと判定される。
CPU 101は、いずれの方向に対応付けられる移動操作もなかったと判別すると(ステップS306:NO)、ステップS303に処理を戻す。
一方、CPU 101は、いずれかの方向に対応付けられる移動操作があったと判別すると(ステップS306:YES)、今回検知された移動操作の軌跡が、直前に検知された移動操作の軌跡と類似するか否かを判別する(ステップS307)。つまり、ステップS307においては、直前に検知された移動操作の軌跡を表す軌跡画像2101がモニター250に表示されており、かつ、今回検知された移動操作の軌跡と直前に検知された移動操作の軌跡とが類似しているか否かが判別される。なお、移動操作の軌跡が互いに類似しているか否かは、移動操作に対応付けられる方向が一致するか否かのみにより判別されてもよいし、このような方向の一致/不一致に加え、さらに、これらの軌跡の重なり具合が所定の閾値よりも大きいかを考慮して判定されてもよい。
CPU 101は、今回検知された移動操作の軌跡が、直前に検知された移動操作の軌跡と類似していると判別した場合(ステップS307:YES)、Nに(N+1)を代入、つまり、Nの値を1つ増加させる(ステップS308)。ここで、Nは、今回検知された移動操作の軌跡と軌跡が類似する移動操作が、今回の移動操作が検知される直前に、何回連続して検知されているかの回数を示す値である。ここで、連続とは、直前の移動操作の軌跡を表す軌跡画像2101がモニター250に表示された時刻から猶予時間が経過する前に(直前の移動操作の軌跡を表す軌跡画像2101がモニター250に表示されている間に)、次の移動操作が検知されることを意味する。なお、Nの値は、RAM 103に記憶される。
一方、CPU 101は、今回検知された移動操作の軌跡が、直前に検知された移動操作の軌跡と類似していないと判別した場合(ステップS307:NO)、Nに0を代入、つまり、Nの値を0にする(ステップS309)。なお、Nの値は、RAM 103に記憶される。
CPU 101は、ステップS308もしくはステップS309の処理を完了すると、Nの値に基づいて回転角度を決定する(ステップS310)。ここで、回転角度は、撮影方向ベクトル(模範キャラクタ1801を撮影する角度)を回転させる角度である。ここで、Nの値が0である場合、回転角度は、検知された移動操作の方向、当該移動操作の軌跡の長さ、当該移動操作の速さなどにあらかじめ対応付けられる既定値に設定される。一方、Nの値が1以上である場合、回転角度は、この既定値よりも大きな値であって、Nが大きいほど大きな値に設定される。決定された回転角度は、RAM 103に記憶される。
CPU 101は、ステップS310の処理を完了すると、RAM 103に記憶されている注目部位の位置を表す座標に基づいて、最後に検知された移動操作の軌跡を表す軌跡画像2101をモニター250に表示する(ステップS311)。
CPU 101は、ステップS311の処理を終了すると、タイマカウンタを起動する(ステップS312)。なお、このタイマカウンタは、移動操作の軌跡を表す軌跡画像2101がモニター250に表示された時刻からの経過時間を表す値を、所定の周期毎に自動でカウントアップする。このタイマカウンタは、例えば、CPU 101とRTC113とが協働することにより実現される。
CPU 101は、ステップS312の処理を終了すると、仮想カメラ2000を移動する(ステップS313)。例えば、CPU 101は、ステップS310において決定された回転角度に応じて仮想カメラ2000を移動させ、画像処理部107を制御して、移動後の仮想カメラ2000から撮影される仮想空間内の様子を表す画像信号を生成し、モニター250に供給する。一方、モニター250は、CPU 101から供給された画像信号に基づいて、以前とは異なる視点から見た仮想空間内の様子を表す画像を表示する。
CPU 101は、ステップS313の処理を終了すると、ステップS303に処理を戻す。
本実施形態に係る情報表示装置1700によれば、軌跡が互いに類似する移動操作が連続して行われた場合、移動操作が検知される毎に、移動操作に対応付けられる回転角度が大きくなる。このため、軌跡が互いに類似する移動操作が繰り返して検知されると、比較的少ない回数の移動操作により、視点を速やかに回転させることができる。
(第5の実施形態)
第4の実施形態では、カメラや赤外線センサを備える入力装置116を用いて、注目部位の動きを検知する例を示した。しかし、注目部位の動きを検知する手法はかかる手法に限られない。以下、本実施形態では、第4の実施形態に係る情報処理装置150において、入力装置116に代えて、右手用コントローラ210と左手用コントローラ220とセンサバー230とを用いて、注目部位の動きを検知する例について説明する。
図24は、本実施形態に係る情報表示装置の構成例を示す図である。
右手用コントローラ210は、主となるコントローラであり、例えば、テレビ等のリモコンと類似した外観を有し、情報処理装置150とワイヤレスで(無線通信によって)接続される。
一方、左手用コントローラ220は、右手用コントローラ210と接続された状態で使用される補助的なコントローラであり、右手用コントローラ210を介して、情報処理装置150に情報を送信する。
ユーザは、右手用コントローラ210と左手用コントローラ220とを両手で把持して、ゲームをプレイすることになる。なお、情報処理装置150において、右手用コントローラ210を右手で把持し、左手用コントローラ220を左手で把持することが、正しい(標準的な)持ち方として定められている。
また、センサバー230は、所定の長さの棒状に形成され、モニター250の上部に、画面の向きに沿って適宜固定される。このセンサバー230には、両端に1つずつ発光素子231が埋設されている。なお、埋設される発光素子231の数は一例であり、これらの数より多くてもよい。センサバー230は、情報処理装置150から電源供給を受けて発光素子231を適宜発光させる。なお、センサバー230は、所定のケーブルを介して情報処理装置150と接続される。
右手用コントローラ210は、先端にCCDカメラ211が配置され、先端がモニター250に向けられると、このCCDカメラ211がセンサバー230の2つの発光素子231(2つの発光点)を含む画像を撮影する。また、右手用コントローラ210は、内部に無線通信部を備えており、撮影した画像の情報を、無線通信にて情報処理装置150に順次送信する。
そして、情報処理装置150は、右手用コントローラ210から送られた画像中における2つの発光点の位置関係等に基づいて、右手用コントローラ210の位置及び向き等を適宜取得する。例えば、CPU 101及び画像処理部107等は、右手用コントローラ210から見える2つの発光点の位置関係等を解析して、右手用コントローラ210の空間位置及び、その先端の向き(長手軸線の方向)を算定し、最終的に、ユーザが右手用コントローラ210を画面上のどこに向けて操作しているか等を取得する。なお、このような右手用コントローラ210の位置等の計測は、例えば、垂直同期割り込み(1/60秒)毎に行われる。
また、右手用コントローラ210は、内部に、3軸の加速度センサを備えており、右手用コントローラ210の3軸方向の動きを測定することが可能となっている。なお、このような加速度センサの代わりに、角速度センサや傾きセンサ等により、右手用コントローラ210の動きを測定してもよい。右手用コントローラ210は、このような測定結果(例えば、3軸それぞれの加速度情報)を情報処理装置150に順次送信する。そして、情報処理装置150は、右手用コントローラ210から送られる測定結果に基づいて、右手用コントローラ210の動きを検出する。例えば、ユーザが右手用コントローラ210を振る、ひねる、突くといった動作やその移動方向を取得する。なお、このような右手用コントローラ210の動きの検出も、例えば、垂直同期割り込み毎に行われる。
右手用コントローラ210の上面には、十字形キー212が配置されており、ユーザが任意の方向を指定した指示入力を行うことができる。また、Aボタン213や、各種ボタン215も上面に配置されており、ユーザはこれらのボタンに対応付けられた指示入力を行うことができる。一方、Bボタン214は、右手用コントローラ210の下面に配置される。Bボタン214は、押圧される面に窪みが構成され、ユーザがトリガを引くように操作することができるようになっている。
右手用コントローラ210の上面には、複数の小さな孔216が設けられており、内部に埋設されたスピーカからクリアな音声を出力できるようになっている。右手用コントローラ210の上面のインジケータ217は、右手用コントローラ210が複数使用された場合でもユーザが識別できるように、適宜点灯する。また、右手用コントローラ210の上面に用意された電源ボタン218は、例えば、情報処理装置150のオン・オフを指示する。更に、右手用コントローラ210の内部には、バイブレータ等の振動機構が配置され、情報処理装置150から送られる指示情報に応答して、振動を発生させることもできるようになっている。
一方、左手用コントローラ220も、内部に、3軸の加速度センサを備えており、左手用コントローラ220の3軸方向の動きを測定することが可能となっている。なお、このような加速度センサの代わりに、角速度センサや傾きセンサ等により、左手用コントローラ220の動きを測定してもよい。左手用コントローラ220は、このような測定結果(例えば、3軸それぞれの加速度情報)を、右手用コントローラ210を介して情報処理装置150に順次送信する。
そして、情報処理装置150は、左手用コントローラ220からの測定結果に基づいて、左手用コントローラ220の動きを検出する。例えば、ユーザが左手用コントローラ220を振る、ひねる、突くといった動作やその移動方向を取得する。なお、このような左手用コントローラ220の動きの検出も、例えば、垂直同期割り込み毎に行われる。
左手用コントローラ220の上面には、コントロールスティック221が配置されており、ユーザが任意の方向を指定した指示入力を行うことができる。この他にも、左手用コントローラ220の先端部には、Cボタン222が配置され、また、左手用コントローラ220の下面には、Zボタン223が配置されており、ユーザが各種操作を行えるようになっている。
このように、右手用コントローラ210と左手用コントローラ220とセンサバー230との組合せによって、右手用コントローラ210や左手用コントローラ220の操作や位置等が得られる。なお、右手用コントローラ210等の位置の測定は、センサバー230の発光点(発光素子231)をCCDカメラ211が撮影する手法に限られず、他の手法でも適宜適用可能である。例えば、センサバー230を介した2地点間の無線通信の時差等から、右手用コントローラ210等の位置を求めてもよく、また、超音波や赤外線等を使用して、三角測量の原理にて右手用コントローラ210等の位置を求めてもよい。
ここで、ユーザが右手で右手用コントローラ210を把持している場合、右手の位置と右手用コントローラ210の位置とは、ほぼ同じ位置であるとみなすことができる。従って、ユーザが右手で右手用コントローラ210を把持している場合、CPU 101は、上述した種々の処理により、右手の動きを検知することができる。
同様に、ユーザが左手で左手用コントローラ220を把持している場合、左手の位置と左手用コントローラ220の位置とは、ほぼ同じ位置であるとみなすことができる。従って、ユーザが左手で左手用コントローラ220を把持している場合、CPU 101は、上述した種々の処理により、左手の動きを検知することができる。
なお、本実施形態に係る情報表示処理は、ステップS303において、入力装置116に代えて、右手用コントローラ210と左手用コントローラ220とセンサバー230とを用いて、注目部位の位置を検知すること以外は、図22に示す情報表示処理と同様である。
本実施形態に係る情報表示装置によれば、軌跡が互いに類似する移動操作が連続して行われた場合、移動操作が検知される毎に、移動操作に対応付けられる回転角度が大きくなる。このため、軌跡が互いに類似する移動操作が繰り返して検知されると、比較的少ない回数の移動操作により、速やかに視点を回転させることができる。
(第6の実施形態)
第1〜5の実施形態では、1つの情報表示装置に本発明が適用される例を示したが、複数の情報表示装置を含む情報表示システムに本発明が適用されても良い。以下、本実施形態に係る情報表示システムについて説明する。
図26に示すように、本実施形態に係る情報表示システム2600は、情報表示装置310と、情報表示装置320と、情報表示サーバ330と、を備える。情報表示装置310と情報表示装置320と情報表示サーバ330とは、インターネットなどのコンピュータ通信網を介して相互に接続され、インフラストラクチャ通信により相互に通信する。なお、情報表示サーバ330が備える機能を、情報表示装置310と情報表示装置320とのうちの少なくとも一方が備えている場合、情報表示システム2600に情報表示サーバ330が含まれていなくてもよい。
情報表示装置310は、情報表示装置320や情報表示サーバ330とインターネットを介して接続され、種々のデータを送信および受信する。例えば、情報表示装置310は、情報表示サーバ330から受信した画像情報に基づいた画像を、ユーザAに提示する。また、情報表示装置310は、ユーザAの動作から検知した移動操作を示す情報を、情報表示サーバ330に送信する。情報表示装置310は、第1の実施形態に係る情報表示装置300と同様の構成であってもよい。例えば、情報処理装置100のスロットに所定のメモリカセット106が装着された状態において、情報処理装置100の電源が投入されることにより、情報表示装置310が実現される。
情報表示装置320は、情報表示装置310や情報表示サーバ330とインターネットを介して接続され、種々のデータを送信および受信する。例えば、情報表示装置320は、情報表示サーバ330から受信した画像情報に基づいた画像を、ユーザBに提示する。また、情報表示装置320は、ユーザBの動作から検知した移動操作を示す情報を、情報表示サーバ330に送信する。情報表示装置320は、基本的に、情報表示装置310と同様の構成および機能を有する。
情報表示サーバ330は、情報表示装置310や情報表示装置3210とインターネットを介して接続され、種々のデータを送信および受信する。例えば、情報表示サーバ330は、ユーザAやユーザBに提示される画像を表す画像情報を生成し、情報表示装置310や情報表示装置320に送信する。また、情報表示サーバ330は、ユーザAの動作から検知された移動操作を示す情報を情報表示装置310から受信するとともに、ユーザBの動作から検知された移動操作を示す情報を情報表示装置320から受信する。情報表示サーバ330は、パーソナルコンピュータやワークステーションなどにより構成される。情報表示サーバ330は、サーバ側制御部、サーバ側記憶部、サーバ側通信部などを備える。
次に、本実施形態に係る情報表示システム2600の動作について説明する。なお、本実施形態では、情報表示システム2600が、ユーザAとユーザBとの双方により1人の味方キャラクタが操作されるボクシングゲームを制御する例について説明する。なお、ボクシングゲームの基本的な制御は、図12に示す情報表示処理と同様である。以下、図12を参照して、本実施形態に係る情報表示システム2600が実行する情報表示処理について説明する。
なお、情報表示サーバ330が、ボクシングゲームの基本的な制御を実行し、情報表示装置310や情報表示装置320は、ユーザインターフェースとして機能するものとする。この場合、サーバ側制御部は、サーバ側記憶部に記憶されているプログラムに従って、ボクシングゲームを制御する。また、サーバ側制御部は、サーバ側通信部を制御することにより、画像情報を情報表示装置310や情報表示装置320に送信するとともに、移動操作を示す情報を情報表示装置310や情報表示装置320から受信する。
まず、ステップS201において、サーバ側制御部は、初期化処理を実行し、初期画面に表示するオブジェクトの情報の読み出しや、変数の初期化を実行する。
そして、ステップS202において、サーバ側制御部は、初期画面を表す画像を生成し、生成した画像を、情報表示装置310および情報表示装置320に送信する。一方、情報表示装置310および情報表示装置320は、情報表示サーバ330から受信した画像を、画面に表示する。従って、情報表示装置310がユーザAに提示する画像と、情報表示装置320がユーザBに提示する画像と、は同じ画像である。
また、ステップS203において、情報表示装置310がユーザAによりなされたタッチ操作によるタッチ位置を検知するとともに、情報表示装置320がユーザBによりなされたタッチ操作によるタッチ位置を検知する。なお、タッチ位置を表す座標や検知時刻は、適宜、情報表示サーバ330に供給される。そして、タッチ位置を表す座標は、検知時刻と対応付けられて、サーバ側記憶部に記憶される。
そして、ステップS204において、サーバ側制御部は、タイマカウンタの値が閾値以上であるか否かを判別する。なお、タイマカウンタの値は、情報表示装置310および情報表示装置320が軌跡画像を表示した時刻からの経過時間を表す。そして、この閾値は、情報表示装置310および情報表示装置320が軌跡画像を表示した時刻から軌跡画像が消去される時刻までの時間である猶予時間を表す値である。
ここで、ステップS205において、サーバ側制御部は、軌跡画像が消去された画像を示す情報を、情報表示装置310および情報表示装置320に送信する。これにより、情報表示装置310および情報表示装置320が表示する画像は、軌跡画像が消去された画像となる。
また、ステップS206において、サーバ側制御部は、ユーザAによるなぞり操作、もしくは、ユーザBによるなぞり操作があったか否かを判別する。例えば、サーバ側制御部は、検知時刻と対応付けられて、サーバ側記憶部に記憶されている、タッチ位置を表す座標に基づいて、なぞり操作があったか否かを判別する。
そして、ステップS207において、サーバ側制御部は、今回検知されたなぞり操作の軌跡が、直前に検知されたなぞり操作の軌跡と類似するか否かを判別する。ここで、ユーザAによりなされたなぞり操作と、ユーザBによりなされたなぞり操作と、は区別されない。つまり、ユーザAもしくはユーザBのいずれかによりなされた最新のなぞり操作の軌跡が、ユーザAもしくはユーザBのいずれかによりなされた直前のなぞり操作の軌跡と類似するか否かが判別される。
また、ステップS208において、サーバ側制御部は、Nに(N+1)を代入、つまり、Nの値を1つ増加させる。ここで、Nは、今回検知されたなぞり操作の軌跡と軌跡が類似するなぞり操作が、今回のなぞり操作が検知される直前に、何回連続して検知されているかの回数を示す値である。なお、Nの値は、例えば、サーバ側記憶部に記憶される。
一方、ステップS209において、サーバ側制御部は、Nに0を代入、つまり、Nの値を0にする。なお、Nの値は、例えば、サーバ側記憶部に記憶される。
そして、ステップS210において、サーバ側制御部は、Nの値に基づいて攻撃力を決定する。なお、決定された攻撃力は、例えば、サーバ側記憶部に記憶される。
次に、ステップS211において、サーバ側制御部は、サーバ側記憶部に記憶されているタッチ位置を表す座標に基づいて、最後に検知されたなぞり操作の軌跡を表す軌跡画像を含む画像を生成し、情報表示装置310および情報表示装置320に送信する。これにより、情報表示装置310および情報表示装置320が表示する画像は、軌跡画像を含む画像となる。
また、ステップS212において、サーバ側制御部は、タイマカウンタを起動する。なお、このタイマカウンタは、なぞり操作の軌跡を表す軌跡画像が画面に表示された時刻からの経過時間を表す値を、所定の周期毎に自動でカウントアップする。タイマカウンタは、例えば、情報表示サーバ330が備える。
そして、ステップS213において、サーバ側制御部は、決定された攻撃力に応じて体力が減じられた様子を示す画像を生成し、情報表示装置310および情報表示装置320に送信する。これにより、情報表示装置310および情報表示装置320が表示する画像は、決定された攻撃力に応じて体力が減じられた様子を示す画像となる。
本実施形態に係る情報表示システム2600によれば、軌跡が互いに類似するなぞり操作が、複数のユーザのいずれかによってなされた場合、なぞり操作が検知される毎に、なぞり操作に対応付けられる攻撃力が大きくなる。かかる構成によれば、ユーザ毎に別々のなぞり操作を繰り返すよりも、全てのユーザが同様のなぞり操作を繰り返す方が、効率よく敵キャラクタを倒すことができるようになる。これにより、ユーザ間に一体感、連帯感が生まれ、複数のユーザにより1つのゲームをプレイすることの楽しさが増すことが期待できる。
(変形例)
本発明は、上述した第1〜6の実施形態に限られるものではなく、種々の変形が可能である。
第1、4、5の実施形態では、軌跡が互いに類似するなぞり操作や移動操作の繰り返し回数が増加すると、軌跡画像600が表す矢印の太さが徐々に太くなる例を示した。しかし、繰り返し回数の増加とともに変化する軌跡画像600の体裁はこれに限られない。例えば、繰り返し回数の増加と共に、軌跡画像600の色(彩度、明度、色相)を変化させることができる。
第1、3の実施形態では、なぞり操作に基づいて決定される操作量が、画面に表示される画像のスクロール量である例を示し、第2の実施形態では、なぞり操作に基づいて決定される操作量が、敵キャラクタに与えるダメージである例を示し、第4、5の実施形態では、移動操作に基づいて決定される操作量が、模範キャラクタを見る視点の回転角度である例を示した。しかし、なぞり操作や移動操作に基づいて決定される操作量は、どのようなものであってもよい。例えば、なぞり操作に基づいて決定される操作量は、画面に地図が表示される場合における、地図の拡大率(または、縮小率)であってもよい。この場合、軌跡が互いに類似するなぞり操作が連続して検知される毎に、拡大率が大きく(または、縮小率が小さく)なるように拡大率(または、縮小率)が決定される。
第1、3の実施形態では、なぞり操作の軌跡の長さにより操作量が決定される例を示し、第2の実施形態では、なぞり操作の速さにより操作量が決定される例を示した。しかし、なぞり操作や移動操作の軌跡の長さとなぞり操作や移動操作の速さとのうちのいずれに基づいて操作量が決定されるかは、適宜調整が可能である。また、なぞり操作や移動操作の軌跡の長さとなぞり操作や移動操作の速さとの両方に基づいて操作量が決定されてもよい。
また、なぞり操作や移動操作を検知する条件は、上記実施形態に開示したものに限定されないことは勿論である。例えば、第4の実施形態では、ある方向に対応付けられる移動操作の成立条件に、他の方向における移動量を考慮しない例を示したが、他の方向における移動量を考慮してもよい。
また、第4の実施形態では、特定部位の軌跡を表す軌跡画像2101を画面内に表示し、その一方、特定部位の現在位置を表す画像を画面内に表示しない例を示した。しかし、本発明において、特定部位の現在位置を表す画像を画面内に表示してもよい。
例えば、CPU 101は、図25に示すように、現実空間における注目部位(左手1811)の現在位置に対応する画面内の位置に、注目部位を模した注目部位オブジェクト2501を表示しても良い。なお、ユーザの後方の所定の位置に視点(ユーザよりもX座標が小さい視点)を設定して、特定部位を画面に投影した場合に、画面に投影される特定部位と重なるように、注目部位オブジェクト2501を画面内に表示することができる。つまり、注目部位オブジェクト2501は、画面を鏡に見立てた場合、特定部位の鏡像に相当する。なお、図25は、1回目の移動操作が検知された後、注目部位オブジェクト2501が軌跡画像2101bをなぞるように注目部位がユーザによって移動させられている様子を示している。
かかる構成によれば、現実空間における特定部位の現在位置が、画面内においてどの位置に相当するのかが、ユーザに提示される。このため、ユーザは、画面内に表示された特定部位オブジェクト2501の位置を参考にして、移動操作を実行することができる。典型的には、ユーザは、画面内において特定部位オブジェクト2501が軌跡画像2101bをなぞるように特定部位を動かすことで、入力済みの移動操作と同様の移動操作を容易に繰り返すことができる。
第6の実施形態では、インフラストラクチャ通信により相互に接続された複数の情報表示装置を備える情報表示システム2600に本発明が適用される例を示したが、本発明が適用される情報表示システムはこの例に限られない。例えば、図27に示すように、情報表示装置340と情報表示装置350とがアドホック通信により接続された情報表示システム2700に本発明が適用されてもよい。この場合、情報表示サーバ330が備える機能は、情報表示装置340と情報表示装置350とのうちの少なくとも一方が備える。また、相互に接続される複数の情報表示装置の数は、2つに限られず、3つ以上でもよい。
第6の実施形態では、複数の情報表示装置を備える情報表示システムに本発明が適用される例を示したが、当該情報表示システムが備える機能を備える情報表示装置に本発明が適用されてもよい。例えば、図28に示すように、2つのタッチスクリーン(タッチスクリーン108A、タッチスクリーン108B)を備える情報処理装置160により実現される情報表示装置に本発明を適用することができる。この場合、タッチスクリーン108Aは、ユーザAによる第1の動作から移動操作を検知するとともに、表示情報と最後に検知された移動操作の軌跡とをユーザAに対して提示する。また、タッチスクリーン108Bは、ユーザBによる第2の動作から移動操作を検知するとともに、表示情報と最後に検知された移動操作の軌跡とをユーザBに対して提示する。そして、最後に検知された移動操作と軌跡が類似する移動操作が、第1の動作もしくは第2の動作から検知される毎に、操作量が増大していく。
第6の実施形態では、複数のユーザが同一の味方キャラクタを操作するゲームシステムに本発明が適用される例を示したが、本発明が適用されるシステムはこの例に限られない。例えば、複数のユーザのそれぞれが、互いに協力して敵キャラクタと戦う複数の味方キャラクタのいずれかを操作するゲームシステムに本発明が適用されてもよい。この場合も、複数のユーザにより互いに類似するなぞり操作が繰り返されると、敵キャラクタに与えるダメージが増大していくことになる。典型的には、複数のユーザのそれぞれが、自分が操作する味方キャラクタに他のユーザが操作する味方キャラクタと同じ攻撃をさせるためのなぞり操作を繰り返すことにより、敵キャラクタに与えるダメージが増大していくことになる。
また、本発明が適用されるシステムはゲームシステムに限られず、複数のユーザが文書(文章、地図、図面等)を閲覧したり編集したりするシステムに本発明が適用されてもよい。