(57)【要約】【課題】仮想空間で移動対象を移動させるための操作を行う操作領域の拡大を図りつつ、画面の視認性の向上を図る。【解決手段】タッチパネルに最初にタッチされた始点座標を検出する（ステップ１）。画面上における始点座標に表示された表示物の表示種別を判定する（ステップ２）。始点座標の表示種別がイベントオブジェクトを除いた背景である場合、始点座標以降のタッチパネルの入力に基づいて、画面上の移動対象を移動させる（ステップ７）。【選択図】図３
2010049318.tif 000002
【特許請求の範囲】
【請求項１】
タッチパネルへの入力に応じて、画面に表示された仮想空間内の移動対象を移動させる移動制御プログラムにおいて、
タッチパネルに最初にタッチされた始点座標を検出する検出ステップと、
画面上の前記始点座標に表示された表示物の表示種別を判定する判定ステップと、
前記表示種別が、画面の一部に表示されたイベントオブジェクトである場合、当該イベントオブジェクトに対応付けられたイベント処理を実行するイベント処理ステップと、
前記表示種別が、前記イベントオブジェクトを除く背景である場合、前記始点座標以降のタッチパネルへの入力に基づいて、画面上の移動対象を移動させる移動ステップと
を有する処理方法をプロセッサに実行させることを特徴とする移動制御プログラム。
【請求項２】
タッチパネルへの入力がなくなった場合に、画面上の移動対象の移動を終了する終了ステップをさらに有することを特徴とする請求項１に記載された移動制御プログラム。
【請求項３】
前記移動ステップは、
前記始点座標を始点にとした入力軌跡上における各座標を時系列的なサンプルとして取得する第１のステップと、
前記時系列的なサンプルにおける前後の隣接座標間の距離に基づいて、前記入力軌跡の終点座標を特定する第２のステップと、
前記始点座標と、前記終点座標とに基づいて、仮想空間内における移動対象の移動を規定する移動ベクトルを算出する第３のステップと、
前記移動ベクトルに基づいて、画面上の移動対象を移動させる第４のステップと
を有することを特徴とする請求項１または２に記載された移動制御プログラム。
【請求項４】
前記移動ステップは、
画面上の移動対象が移動している間、前記移動ベクトルを画面に表示する第５のステップをさらに有することを特徴とする請求項３に記載された移動制御プログラム。
【請求項５】
前記移動ベクトルの表示位置は、前記始点座標を基準に設定されることを特徴とする請求項４に記載された移動制御プログラム。
【請求項６】
ユーザの操作によって移動可能な移動オブジェクトが複数表示されている場合、前記移動対象として、ユーザによって指定されたいずれかの移動オブジェクトを設定する設定ステップをさらに有することを特徴とする請求項１から５のいずれかに記載された移動制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動制御プログラムに係り、特に、タッチパネルへの入力に応じた移動対象の移動制御に関する。
【背景技術】
【０００２】
従来より、画面上に装着されたタッチパネルへの入力に応じて、仮想空間内のキャラクター（移動対象）を移動させる各種のコンピュータゲームが市販されている。この類のゲームにおいて、キャラクターを移動させるためのインターフェースには、様々なものが存在する。例えば、第１の手法として、画面端の一部を操作領域として予め割り当てておき、この操作領域上におけるタッチペン等の操作によって、キャラクターを移動させる手法が知られている。また、第２の手法として、画面においてキャラクターが表示されている表示領域を最初にタッチし、これを始点に描かれた入力軌跡に基づいて、キャラクターを移動させる手法も知られている。これらの手法では、タッチペン等によってタッチされる領域が画面の一部に限定されるので、ユーザにとって使い勝手がよくない。そこで、第３の手法として、より広範囲な領域での操作を可能にすべく、画面全体を操作領域とした用いた手法も知られている。この第３の手法では、画面中心を基準として画面を複数の領域に分割し、分割された領域のそれぞれに対して移動方向を割り当てる。この割り当てによって、例えば、画面の右上をタッチすればキャラクターが右上の方向に移動し、左下をタッチすれば左下の方向に移動する。
【０００３】
このような操作領域の拡大を意図した従来技術として、特許文献１には、２つの表示装置（ＬＣＤ）を備えたゲーム機用のオブジェクト移動制御プログラムが開示されている。具体的には、一方の表示装置の画面には、狭い空間が精緻に描かれた三次元の仮想空間が表示され、他方の表示装置の画面には、これよりも広い範囲が俯瞰的に描かれた二次元の仮想空間が表示される。ユーザは、二次元の仮想空間に表示されたキャラクターのシンボルを最初にタッチし、そこから入力軌跡を描く。これにより、三次元の仮想空間に表示されたキャラクターは、タッチパネル上に描かれた入力軌跡に追従して、画面上を移動する。
【０００４】
【特許文献１】特開２００７−２６１２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した第３の手法は、操作領域を拡大できるという点では優れているが、画面の視認性に劣るという欠点がある。なぜなら、タッチペンを持っている手（例えば右手）が画面（例えば右下の画面）と重なり、そこに表示されている画像を隠してしまうケースが生じ易いからである。この問題は、表示装置が備える画面が小さいほど顕在化する。
【０００６】
そこで、本発明の目的は、仮想空間で移動対象を移動させるための操作を行う操作領域の拡大を図りつつ、画面の視認性の向上を図ることである。
【課題を解決するための手段】
【０００７】
かかる課題を解決すべく、本発明は、タッチパネルへの入力に応じて、画面に表示された仮想空間内の移動対象を移動させる移動制御プログラムを提供する。この移動制御プログラムは、検出ステップと、判定ステップと、イベント処理ステップと、移動ステップとを有する処理方法をプロセッサに実行させる。検出ステップでは、タッチパネルに最初にタッチされた始点座標を検出する。判定ステップでは、画面上の始点座標に表示された表示物の表示種別を判定する。イベント処理ステップは、表示種別が、画面の一部に表示されたイベントオブジェクトである場合に実行され、このイベントオブジェクトに対応付けられたイベント処理を実行する。移動ステップは、表示種別が、イベントオブジェクトを除く背景である場合に実行され、始点座標以降のタッチパネルへの入力に基づいて、画面上の移動対象を移動させる。
【０００８】
ここで、本発明において、タッチパネルへの入力がなくなった場合に、画面上の移動対象の移動を終了する終了ステップをさらに設けてもよい。
【０００９】
また、本発明において、上記移動ステップは、始点座標を始点とした入力軌跡上における各座標を時系列的なサンプルとして取得する第１のステップと、時系列的なサンプルにおける前後の隣接座標間の距離に基づいて、入力軌跡の終点座標を特定する第２のステップと、始点座標と、終点座標とに基づいて、仮想空間内における移動対象の移動を規定する移動ベクトルを算出する第３のステップと、移動ベクトルに基づいて、画面上の移動対象を移動させる第４のステップとを有していてもよい。また、上記移動ステップとして、画面上の移動対象が移動している間、移動ベクトルを画面に表示する第５のステップをさらに設けてもよい。この場合、移動ベクトルの表示位置は、始点座標を基準に設定することが好ましい。
【００１０】
さらに、本発明において、ユーザの操作によって移動可能な移動オブジェクトが複数表示されている場合、移動対象として、ユーザによって指定されたいずれかの移動オブジェクトを設定する設定ステップをさらに設けてもよい。
【発明の効果】
【００１１】
本発明によれば、始点座標に表示された表示物の表示種別が背景であることを条件として、画面上の移動対象の移動が許可される。通常、背景の表示領域は画面の大半を占めるので、これをベースに操作領域を設定すれば、広範囲な操作領域を確保できる。また、背景が表示されている範囲内であれば、任意のタッチ位置を基準として移動方向を自在に指定できる。したがって、タッチペンを持っている手が画面の一部を隠してしまうケースを有効に回避できる。その結果、操作性と視認性との両立を図ることが可能になる。
【発明を実施するための最良の形態】
【００１２】
図１は、一般的な携帯型ゲーム機のブロック構成図である。この携帯型ゲーム機１のシステムバス２には、プロセッサ３、ＲＡＭ４（ＲＡＭ：Random Access Memory）、ＬＣＤコントローラ５、インターフェース回路６、コネクタ７が接続されている。表示装置であるＬＣＤ８（ＬＣＤ：Liquid Crystal Display）は、ＬＣＤコントローラ５によって駆動制御され、プロセッサ３によって生成された画像を表示する。外部より提供されるＲＯＭカートリッジ（ＲＯＭ：Read Only Memory）には、本実施形態にかかる移動制御プログラムをサブルーチンとして含むゲームプログラムが格納されており、これをコネクタ７に接続することによって、携帯型ゲーム機１の内部に取り込まれる。
【００１３】
ＬＣＤ８の画面上には、タッチパネル１０が重ね合わせて取り付けられている。タッチパネル１０は、タッチペン１３（指でも可）の接触を電気的な信号に変換し、接触面の座標（画面の座標に対応）として出力する。インターフェース回路６は、タッチパネル１０からの座標信号および操作スイッチ１１からの操作信号をシステムバス２に転送するとともに、システムバス２上の音声信号をスピーカ１２に転送する。
【００１４】
基本的な処理の流れとしては、ＲＯＭカートリッジ９より適宜読み出されたプログラムがＲＡＭ４に格納され、ＲＡＭ４より読み出されたプログラムによって規定された処理がプロセッサ３にて実行される。そして、その処理結果に応じて、ＬＣＤ８に表示される画像と、スピーカ１３より発せられる音声とが制御される。なお、ＲＡＭ４は、プロセッサ３のワークメモリとしても使用され、処理過程で生成された中間データが一時的に格納される。また、ＲＡＭ４には、タッチパネル１０から出力された接触点の座標データ（後述する座標Ｐ0，Ｐ1，Ｐ2，Ｐ3，・・・）が、離散的かつ時系列的なサンプルとして格納される。
【００１５】
ここで、プロセッサ３は、ＣＰＵ（Central Processing Unit）単独で構成してもよいが、ＣＰＵ自身の処理負荷の軽減を図るべく、画像処理プロセッサや音声処理プロセッサを併用した形態であってもよい。また、ＬＣＤ８は、単一の表示パネルのみでもよいが、複数の表示パネルによって構成してもよい。
【００１６】
図２は、本実施形態にかかるゲームの画面構成例を示す図である。画面には、二次元的または三次元的な背景をベースとした仮想空間内において、タッチペン１３の操作によって移動可能なキャラクターＣ（移動対象）が表示されている。このキャラクターＣは、タッチパネル１０への入力に応じて、画面に表示された仮想空間内を移動する。また、この画面の一部、具体的には画面端の右上には、イベントオブジェクトＯＢＪも表示されている。イベントオブジェクトＯＢＪは、例えば、キャラクターＣの移動以外の他のイベントを起動させるためのアイコン等である。イベントオブジェクトＯＢＪのクリックによって起動されるイベントとしては、例えば、使用可能なアイテムをリスト化した別ウインドウの表示や、実行可能なコマンドをリスト化した別ウインドウの表示等が挙げられる。基本的に、キャラクターＣ自体は、イベントオブジェクトＯＢＪとみなさないが、他のキャラクターとの会話が可能な状況といった如く、予め設定された特定の条件に合致する場合には、イベントオブジェクトＯＢＪとして取り扱われる。
【００１７】
図３は、移動制御プログラムによって規定される処理手順のフローチャートである。上述したように、この移動制御プログラムは、ゲームプログラムの一部を構成しており、プロセッサ３によって実行される。
【００１８】
まず、ステップ１において、図４に示すように、タッチパネル１０に最初にタッチされた始点座標Ｐ0が検出される。タッチパネル１０の接触面は、ＬＣＤ８の画面に重ねられており、タッチパネル１０へのタッチは、その位置に表示された画像に関するユーザの何らかの意思表示とみなされる。
【００１９】
つぎに、ステップ２において、画面上の始点座標Ｐ0に表示された表示物の表示種別が判定される。図４は、表示物の表示種別を判定するためのレイヤの模式図である。仮想空間内にキャラクターＣが表示された画面は、これを概念的に捉えた場合、イベントオブジェクト表示レイヤと、背景表示レイヤとを重ね合わせた積層構造とみなすことができる。基本的に、それぞれのレイヤのサイズは、ＬＣＤ８の画面サイズおよびタッチパネル１０の接触面のサイズと同一である。イベントオブジェクト表示レイヤは、画面の一部に配置されたイベントオブジェクトＯＢＪ1，ＯＢＪ2の表示領域に対応する。ここで、イベントオブジェクトＯＢＪ1は、図２の例では、画像右上に表示した別ウインドウ表示用のアイコンを、イベントオブジェクトＯＢＪ2は、他のキャラクターとの会話が可能な状況下におけるキャラクターＣをそれぞれ想定している。一方、背景表示レイヤは、画面の大半を占める背景ＢＫＧの表示領域に対応する。
【００２０】
背景表示レイヤよりも上にイベントオブジェクト表示レイヤを配置するということは、背景ＢＫＧよりもイベントオブジェクトＯＢＪ1，ＯＢＪ2の表示が優先されることを意味する。したがって、背景ＢＫＧとイベントオブジェクトＯＢＪ1，ＯＢＪ2とが重なっている部分に関しては、背景ＢＫＧが隠されて、イベントオブジェクトＯＢＪ1，ＯＢＪ2のみが表示される。ステップ２の判定も同様であり、表示種別の優先順位に基づいて、始点座標Ｐ0によって指定された表示種別が何であるかが判断される。
【００２１】
この点に関して、始点座標がＰ0，Ｐ0’の２つのケースを挙げて説明する。始点座標がＰ0のケースでは、上層のイベントオブジェクトレイヤを参照すると、いずれのイベントオブジェクトＯＢＪ1，ＯＢＪ2の表示領域に含まれない。そこで、下層の背景表示レイヤを参照すると、始点座標Ｐ0が背景ＢＫＧの表示領域に含まれる。これにより、始点座標Ｐ0の表示種別が背景ＢＫＧであると判定される。その結果、ステップ２の判定結果は「否定」となり、ステップ４に進む。これに対して、始点座標がＰ0'のケースでは、イベントオブジェクトレイヤの参照結果から、イベントオブジェクトＯＢＪ1の表示領域に含まれる。したがって、背景表示レイヤを参照するまでもなく、始点座標Ｐ0'の表示種別がイベントオブジェクトＯＢＪ1であると判定される。その結果、ステップ２の判定結果が「肯定」となり、ステップ３に進む。
【００２２】
始点座標Ｐ0'の表示種別がイベントオブジェクトＯＢＪ1であると判定された場合、ステップ３において、このイベントオブジェクトＯＢＪ1に対応付けられたイベント処理が実行される。例えば、イベントオブジェクトＯＢＪ1が別ウインドウ表示用のアイコンの場合には、イベントとして別ウインドウが表示されるといった如くである。これにより、今回のユーザのアクション、すなわち、タッチペン１３によるタッチパネル１０へのタッチに起因した処理が終了する。なお、始点座標Ｐ0'の表示種別がキャラクターＣの場合、予め設定された特定の条件に合致するならば、イベントオブジェクトＯＢＪと判定される。
【００２３】
これに対して、始点座標Ｐ0の表示種別がイベントオブジェクトＯＢＪ1，ＯＢＪ2を除く背景ＢＫＧであると判定された場合には、ステップ４〜９の一連の手順が実行される。これにより、始点座標Ｐ0以降（始点座標Ｐ0を含む）のタッチパネル１０の入力に基づいて、画面上におけるキャラクターＣの移動が行われる。なお、始点座標Ｐ0の表示種別がキャラクターＣの場合、予め設定された特定の条件に合致しないならば、背景ＢＫＧと判定される。
【００２４】
具体的には、ステップ４において、図５に示すように、始点座標Ｐ0を始点としてタッチペン１３によって描かれた入力軌跡上に存在する各座標（Ｐ1，Ｐ2，Ｐ3，・・・）が時系列的なサンプルとして取得される。この時系列的なサンプルは、空間的（接触点の配置間隔）および時間的（サンプリング間隔）な分解能に起因した離散した座標点の集合であり、タッチペン１３の単位時間当たりの移動量が大きいほど、前後に隣接した座標点間の距離（間隔）が大きくなる。
【００２５】
つぎに、ステップ５において、時系列的なサンプルに基づいて、タッチペン１３の操作によって描かれた入力軌跡の終点に相当する座標、すなわち終点座標Ｐeが特定される。終点座標Ｐeの特定にあたっては、まず、時系列的なサンプルにおいて前後に隣接した座標Ｐn-1，Ｐn間の距離ｄが随時算出される。そして、この距離ｄが０またはほぼ０である場合、その時点でタッチペン１３の移動（軌跡の入力）が終了したとみなし、その座標Ｐnが終点座標Ｐeとして設定される。
【００２６】
ステップ６において、始点座標Ｐ0と終点座標Ｐeとに基づいて、二次元または三次元の仮想空間内におけるキャラクターＣの移動を規定する移動ベクトルＶが算出される。移動ベクトルＶの方向は、始点座標Ｐ0を基準とした終点座標Ｐeの方向として定義される。例えば、終点座標Ｐ0が始点座標Ｐ0の右上に位置する場合、移動ベクトルＶは右上方向となる。また、移動ベクトルＶの大きさ（スカラー値）は、基本的に、始点座標Ｐ0と終点座標Ｐeの間の距離として定義される。始点座標Ｐ0と終点座標Ｐeの間の距離が大きくなるほど、移動ベクトルが大きくなる。本実施形態では、２つの座標Ｐ0，Ｐeを直線で結んだものを移動ベクトルＶとしているが、中間点Ｐ1、Ｐ2，・・・も加味した移動ベクトルＶの算出手法を排除するものではない。
【００２７】
ステップ７において、移動ベクトルＶに基づいて、キャラクターＣの移動制御が行われる。キャラクターＣの移動方向は、移動ベクトルＶの方向によって決定され、その移動速度（または移動量）は、移動ベクトルＶの大きさによって決定される。例えば、二次元の仮想空間でのキャラクターＣの移動をスクロールにて実現する場合には、移動ベクトルＶによって、スクロール方向およびスクロール量が決定される。
【００２８】
なお、図２に示したように、画面上のキャラクターＣが移動している間、移動ベクトルＶも画面に表示してもよい。これにより、ユーザがキャラクターＣの移動方向を視覚的に把握できる。この場合、画面上の始点座標Ｐ0に対応する画像位置を始点とした矢印（ベクトル）の表示といった如く、始点座標Ｐ0を基準に移動ベクトルＶの表示位置を設定することが好ましい。これにより、タッチペン１３の操作と、これに応じたキャラクターＣの移動とを自然な形で対応付けることができる。なお、キャラクターＣの移動速度を移動ベクトルＶの大きさ相当に設定してしまうと、キャラクターＣの移動が速くなりすぎてしまう場合には、操作性の観点より移動速度に上限を設けてもよい。
【００２９】
ステップ８において、タッチパネル１０への入力がなくなったか否か、すなわち、タッチパネル１０からタッチペン１３が離されたか否かが判定される。タッチパネル１０への入力がある場合にはステップ４に戻り、ステップ４〜７が繰り返される。これに対して、タッチパネル１０への入力がなくなった場合には、ステップ４〜８のループを抜けてステップ９に進み、キャラクターＣの移動処理が終了する。これによって、画面に表示されたキャラクターＣは、タッチパネル１０への入力がなくならない限り、換言すれば、タッチパネル１０からタッチペン１３が離されない限り、移動ベクトルＶにしたがって画面上を移動し続ける。そして、タッチパネル１０への入力がなくなった時点で、キャラクターＣは停止する。
【００３０】
このように、本実施形態によれば、移動ベクトルＶの方向の基準を与える基準点を、例えば、画面中心のように固定化していた従来技術と比較して、操作性および視認性の双方に優れたインターフェイスを実現できる。始点座標Ｐ0の表示種別がイベントオブジェクトＯＢＪを除いた背景ＢＫＧである場合、仮想空間内におけるキャラクターＣの移動が許可される。図２に示したように、通常、仮想空間を規定する背景ＢＫＧの表示領域は画面の大半を占めている。したがって、仮想空間でキャラクターＣの移動操作を行う操作領域を背景ＢＫＧをベースに設定すれば、操作領域を広範囲に確保することができる。また、背景ＢＫＧが表示されている領域内であれば、任意のタッチ位置（始点座標Ｐ0）を基準として、移動方向を自在に指定することができる。例えば、図２（ａ）のように、キャラクターＣの右側でのタッチによる右方向への移動指定、同図（ｂ）のように、キャラクターＣの左下側でのタッチによる上方向への移動指定、同図（ｃ）のように、キャラクターＣの下側でのタッチによる左方向への移動指定といった如くである。このように、移動ベクトルＶの基準点を固定化するのではなく、動的に設定可能にすることで、タッチペン１３を持っている手によって画面が隠されてしまうといったケースを有効に回避できる。
【００３１】
なお、上述した実施形態では、イベントオブジェクトＯＢＪおよび背景ＢＫＧという２種類の表示物を例に説明したが、本発明はこれに限定されるものではなく、それ以外の種別を追加してもよい。例えば、（１）キャラクターＣの体力等を示すステータスや仮想空間上の方向を示すコンパスを含む各種インフォメーション、（２）画面の四隅を囲むフレーム（装飾枠）といった如くである。これらの表示物（１），（２）の取り扱いは任意であり、背景ＢＫＧと同様にキャラクターＣの移動を許可する領域（感帯）としてもよいし（この場合、背景ＢＫＧと同等に取り扱われる）、キャラクターＣの移動を許可しない領域（不感帯）としてもよい。
【００３２】
また、本実施形態では、画面に表示された移動オブジェクト、すなわち、ユーザの操作によって移動可能なキャラクターＣが単一である場合を一例に説明したが、本発明はこれに限定されるものではなく、画面上に複数の移動オブジェクトが存在する場合であっても適用可能である。この場合、適宜の選択手法によって、ユーザが指定したいずれかの移動オブジェクトを移動対象として選択・切替可能にすればよい。一旦、移動対象として設定された移動オブジェクトは、ユーザによる明示的な切り替えがない限り、変更されないようにする。移動オブジェクトの選択手法としては、例えば、移動対象として選択したい移動オブジェクトの表示領域上におけるタッチペン１３によるアクション（例えばダブルタッチ）、操作スイッチ１１を用いた切り替え等が挙げられる。
【００３３】
さらに、本実施形態では、ゲームの仮想空間内に登場するキャラクターＣを例に説明したが、移動対象はこれに限定されるものではなく、画面に表示された仮想空間内を移動可能であればどのようなものであってもよい。
【図面の簡単な説明】
【００３４】
【図１】一般的な携帯型ゲーム機のブロック構成図
【図２】画面構成例を示す図
【図３】移動制御プログラムによって規定される処理手順を示すフローチャート
【図４】表示物の表示種別を判定するためのレイヤの模式図
【図５】移動ベクトル算出の説明図
【符号の説明】
【００３５】
１  携帯型ゲーム機
２  システムバス
３  プロセッサ
４  ＲＡＭ
５  ＬＣＤコントローラ
６  インターフェース回路
７  コネクタ
８  ＬＣＤ
９  ＲＯＭカートリッジ
１０  タッチパネル
１１  操作スイッチ
１２  スピーカ
１３  タッチペン
【図１】
2010049318.tif 000003
【図３】
2010049318.tif 000004
【図４】
2010049318.tif 000005
【図５】
2010049318.tif 000006
【図２】
2010049318.tif 000007