(57)【要約】【課題】より自然な操作感を与える。【解決手段】受け付け手段１１は、仮想空間５０における領域５３を移動させるための、ユーザによる操作入力を受け付ける。表示制御手段１２は、仮想空間５０のうち領域５３の画像を表示手段２０に表示させる。決定手段１３は、操作入力に基づいて仮想空間５０における領域５３の移動速度を決定する。領域制御手段１４は、移動速度に応じて表示領域を移動させる。この場合において、領域制御手段１４は、表示領域が、自由移動範囲５４を超えるときは、領域５３と自由移動範囲５４との距離が上限値を超えない範囲で、領域５３を移動させる。【選択図】図４
2014085816.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
所定領域の一部である表示領域を移動させるための操作入力を受け付ける受け付け手段と、
前記表示領域の画像を表示手段に表示させる表示制御手段と、
前記操作入力に基づいて前記表示領域の移動速度を決定する決定手段と、
前記移動速度に応じて前記表示領域を移動させ、前記表示領域が、前記所定領域における所定範囲を超える場合、前記表示領域と前記所定範囲との距離が所定の上限値を超えない範囲で、前記表示領域を移動させる領域制御手段と
して機能させるためのプログラム。
【請求項２】
前記コンピュータを、前記移動速度に応じて前記上限値を算出する上限値算出手段としてさらに機能させる
請求項１に記載のプログラム。
【請求項３】
前記上限値算出手段は、前記移動速度が大きいほど、大きな値を前記上限値として算出する
請求項２に記載のプログラム。
【請求項４】
前記領域制御手段は、前記所定範囲を超える方向に、前記表示領域を移動させる
請求項１ないし３のいずれか一項に記載のプログラム。
【請求項５】
前記領域制御手段は、前記距離が前記上限値に達するまでに前記移動速度をゼロにする
請求項１ないし４のいずれか一項に記載のプログラム。
【請求項６】
前記領域制御手段は、前記移動速度がゼロになった後、前記所定範囲を超えない位置まで前記表示領域を移動させる
請求項５に記載のプログラム。
【請求項７】
前記領域制御手段は、前記所定範囲の境界近傍の位置まで再度、前記表示領域を移動させる
請求項６に記載のプログラム。
【請求項８】
前記領域制御手段は、最新の前記移動速度に応じて、繰り返し前記上限値を算出する
請求項１ないし７のいずれか一項に記載のプログラム。
【請求項９】
前記操作入力が無い場合、前記領域制御手段は、前記移動速度を時間とともに減衰させる
請求項１ないし８のいずれか一項に記載のプログラム。
【請求項１０】
前記移動速度に基づいて算出された移動後の前記表示領域の位置が、前記所定範囲を越えた場合、前記領域制御手段は、前記表示領域の位置を、前記所定範囲内に補正する
請求項１ないし９のいずれか一項に記載のプログラム。
【請求項１１】
前記決定手段は、前記領域制御手段により補正された前記表示領域の位置によらず、前記表示領域の移動速度を決定する
請求項１０に記載のプログラム。
【請求項１２】
前記表示領域と前記所定領域との距離は、前記表示領域の中心と前記所定領域の端部との距離である
請求項１ないし１１のいずれか一項に記載のプログラム。
【請求項１３】
前記表示領域と前記所定領域との距離は、前記表示領域の端部と前記所定領域の端部との距離である
請求項１ないし１１のいずれか一項に記載のプログラム。
【請求項１４】
前記決定手段は、所定の期間の前記操作入力の累計に基づいて算出される第１速度を前記移動速度として決定する
請求項１ないし１３のいずれか一項に記載のプログラム。
【請求項１５】
前記決定手段は、前回算出された操作入力の累計を減衰させた上で、今回の操作入力を加算させた操作入力の累計に基づいて算出される前記第１速度を前記移動速度として決定する
請求項１４に記載のプログラム。
【請求項１６】
前記仮想空間は、ｎ次元仮想空間（ｎ≧１）であり、
前記決定手段は、前記操作入力により指定される前記ｎ次元仮想空間上の第１点と第２点との距離に応じて算出される第２速度を前記移動速度として決定する
請求項１４または１５に記載のプログラム。
【請求項１７】
前記決定手段は、前記第１速度および前記第２速度のうち前記操作入力に応じて決定される一方の速度を、前記移動速度として決定する
請求項１６に記載のプログラム。
【請求項１８】
前記決定手段は、前記操作入力が継続して行われている間は前記第２速度を前記移動速度として決定し、前記操作入力が行われていないときは前記第１速度を前記移動速度として決定する
請求項１７に記載のプログラム。
【請求項１９】
前記所定領域は仮想空間である
請求項１ないし１８のいずれか一項に記載のプログラム。
【請求項２０】
所定領域の一部である表示領域を移動させるための操作入力を受け付ける受け付け手段と、
前記表示領域の画像を表示手段に表示させる表示制御手段と、
前記操作入力に基づいて前記表示領域の移動速度を決定する決定手段と、
前記移動速度に応じて前記表示領域を移動させ、前記表示領域が、前記所定領域における所定範囲を超える場合、前記表示領域と前記所定範囲との距離が所定の上限値を超えない範囲で、前記表示領域を移動させる領域制御手段と
を有する情報処理装置。
【請求項２１】
所定領域の一部である表示領域を移動させるための操作入力を受け付けるステップと、
前記表示領域の画像を表示手段に表示させるステップと、
前記操作入力に基づいて前記表示領域の移動速度を決定するステップと、
前記移動速度に応じて前記表示領域を移動させ、前記表示領域が、前記所定領域における所定範囲を超える場合、前記表示領域と前記所定範囲との距離が所定の上限値を超えない範囲で、前記表示領域を移動させるステップと
を有する情報処理方法。
【請求項２２】
所定領域の一部である表示領域を移動させるための操作入力を受け付ける受け付け手段と、
前記表示領域の画像を表示手段に表示させる表示制御手段と、
前記操作入力に基づいて前記表示領域の移動速度を決定する決定手段と、
前記移動速度に応じて前記表示領域を移動させ、前記表示領域が、前記所定領域における所定範囲を超える場合、前記表示領域と前記所定範囲との距離が所定の上限値を超えない範囲で、前記表示領域を移動させる領域制御手段と
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザインターフェースに関する。
【背景技術】
【０００２】
オブジェクトをスクロールさせる画像を表示する技術が知られている。特許文献１は、複数のオブジェクトがスクロールされている場合において、区切りとなる特定位置が表示されているときには、特定位置が表示されていない場合と比べて移動量が少なくなるように移動量を決定する技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１５０５５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、より自然な操作感をユーザに提供する。
【課題を解決するための手段】
【０００５】
本発明は、コンピュータを、所定領域の一部である表示領域を移動させるための操作入力を受け付ける受け付け手段と、前記表示領域の画像を表示手段に表示させる表示制御手段と、前記操作入力に基づいて前記表示領域の移動速度を決定する決定手段と、前記移動速度に応じて前記表示領域を移動させ、前記表示領域が、前記所定領域における所定範囲を超える場合、前記表示領域と前記所定範囲との距離が所定の上限値を超えない範囲で、前記表示領域を移動させる領域制御手段として機能させるためのプログラムを提供する。
【０００６】
このプログラムは、前記コンピュータを、前記移動速度に応じて前記上限値を算出する上限値算出手段としてさらに機能させてもよい。
【０００７】
前記上限値算出手段は、前記移動速度が大きいほど、大きな値を前記上限値として算出してもよい。
【０００８】
前記領域制御手段は、前記所定範囲を超える方向に、前記表示領域を移動させてもよい。
【０００９】
前記領域制御手段は、前記距離が前記上限値に達するまでに前記移動速度をゼロにしてもよい。
【００１０】
前記領域制御手段は、前記移動速度がゼロになった後、前記所定範囲を超えない位置まで前記表示領域を移動させてもよい。
【００１１】
前記領域制御手段は、前記所定範囲の境界近傍の位置まで再度、前記表示領域を移動させてもよい。
【００１２】
前記領域制御手段は、最新の前記移動速度に応じて、繰り返し前記上限値を算出してもよい。
【００１３】
前記操作入力が無い場合、前記領域制御手段は、前記移動速度を時間とともに減衰させてもよい。
【００１４】
前記移動速度に基づいて算出された移動後の前記表示領域の位置が、前記所定範囲を越えた場合、前記領域制御手段は、前記表示領域の位置を、前記所定範囲内に補正してもよい。
【００１５】
前記決定手段は、前記領域制御手段により補正された前記表示領域の位置によらず、前記表示領域の移動速度を決定してもよい。
【００１６】
前記表示領域と前記所定領域との距離は、前記表示領域の中心と前記所定領域の端部との距離であってもよい。
【００１７】
前記表示領域と前記所定領域との距離は、前記表示領域の端部と前記所定領域の端部との距離であってもよい。
【００１８】
前記決定手段は、所定の期間の前記操作入力の累計に基づいて算出される第１速度を前記移動速度として決定してもよい。
【００１９】
前記決定手段は、前回算出された操作入力の累計を減衰させた上で、今回の操作入力を加算させた操作入力の累計に基づいて算出される前記第１速度を前記移動速度として決定してもよい。
【００２０】
前記仮想空間は、ｎ次元仮想空間（ｎ≧１）であり、前記決定手段は、前記操作入力により指定される前記ｎ次元仮想空間上の第１点と第２点との距離に応じて算出される第２速度を前記移動速度として決定してもよい。
【００２１】
前記決定手段は、前記第１速度および前記第２速度のうち前記操作入力に応じて決定される一方の速度を、前記移動速度として決定してもよい。
【００２２】
前記決定手段は、前記操作入力が継続して行われている間は前記第２速度を前記移動速度として決定し、前記操作入力が行われていないときは前記第１速度を前記移動速度として決定してもよい。
【００２３】
前記所定領域は仮想空間であってもよい。
【００２４】
また、本発明は、所定領域の一部である表示領域を移動させるための操作入力を受け付ける受け付け手段と、前記表示領域の画像を表示手段に表示させる表示制御手段と、前記操作入力に基づいて前記表示領域の移動速度を決定する決定手段と、前記移動速度に応じて前記表示領域を移動させ、前記表示領域が、前記所定領域における所定範囲を超える場合、前記表示領域と前記所定範囲との距離が所定の上限値を超えない範囲で、前記表示領域を移動させる領域制御手段とを有する情報処理装置を提供する。
【００２５】
さらに、本発明は、所定領域の一部である表示領域を移動させるための操作入力を受け付けるステップと、前記表示領域の画像を表示手段に表示させるステップと、前記操作入力に基づいて前記表示領域の移動速度を決定するステップと、前記移動速度に応じて前記表示領域を移動させ、前記表示領域が、前記所定領域における所定範囲を超える場合、前記表示領域と前記所定範囲との距離が所定の上限値を超えない範囲で、前記表示領域を移動させるステップとを有する情報処理方法を提供する。
【００２６】
さらに、本発明は、所定領域の一部である表示領域を移動させるための操作入力を受け付ける受け付け手段と、前記表示領域の画像を表示手段に表示させる表示制御手段と、前記操作入力に基づいて前記表示領域の移動速度を決定する決定手段と、前記移動速度に応じて前記表示領域を移動させ、前記表示領域が、前記所定領域における所定範囲を超える場合、前記表示領域と前記所定範囲との距離が所定の上限値を超えない範囲で、前記表示領域を移動させる領域制御手段とを有する情報処理システムを提供する。
【発明の効果】
【００２７】
本発明によれば、より自然な操作感がユーザに提供される。
【図面の簡単な説明】
【００２８】
【図１】本実施形態における仮想空間５０を例示する図。
【図２】比較例において表示手段２０に表示される画像を例示する図。
【図３】本実施形態において表示手段２０に表示される画像を例示する図。
【図４】一実施形態に係る情報処理装置１の機能構成を示す図。
【図５】領域５３と自由移動範囲５４との距離を例示する図。
【図６】情報処理装置１のハードウェア構成を示す図。
【図７】情報処理装置１の動作を示すフローチャート。
【図８】仮想空間５０における仮想平面５５を例示する図。
【図９】操作入力の履歴を例示する図。
【図１０】始点Ｐｓおよび目標点Ｐｃを例示する図。
【図１１】移動速度を例示する図。
【図１２】算出された上限値を例示する図。
【図１３】進入後の移動速度の変化を例示する図。
【図１４】最大進入量を例示する図。
【図１５】領域５３と自由移動範囲５４との位置関係を例示する図。
【発明を実施するための形態】
【００２９】
１．概要
図１は、本実施形態における仮想空間５０を例示する図である。仮想空間５０は、３次元仮想空間である。仮想空間５０は、フィールド５１およびオブジェクト５２を有する。フィールド５１は、仮想空間においてオブジェクトが配置される面である。オブジェクト５２は、仮想空間内に配置された仮想オブジェクトであり、例えば、キャラクター（人、動物、モンスター等）、建造物（家、塔、城等）、自然物（山、川、樹木、岩等）、およびフィールドに定着しない工作物（車、ブロック等）等を表すもののうち少なくとも一つを含む。図１の例では、それぞれキャラクターを表す複数のオブジェクト５２が配置されている。
【００３０】
仮想空間５０には仮想カメラ（図示略）が設けられており、この仮想カメラで仮想的に撮影された画像が表示装置に表示される。領域５３は、この仮想カメラにより撮影される領域、すなわち表示手段２０に表示される領域を表している。領域５３は、ユーザの操作入力に応じて移動する。すなわち、表示手段２０に表示される画像は、操作入力に応じてスクロールする。領域５３に対しては、自由移動範囲５４が設定されている。領域５３は、あらかじめ決められた注視点（例えば領域５３の中心または端点など）が自由移動範囲５４の内部にあるうちは仮想カメラの操作に応じて自由に移動するが、注視点が自由移動範囲５４の外部に出ると、領域５３の移動は、注視点が内部にある場合と比較して制限される。なおこの例では、領域５３は自由移動範囲５４を超えることが一切できないわけではない。決められた制限のもと、領域５３の少なくとも一部が自由移動範囲５４の外に出る場合がある。また、自由移動範囲５４は３次元形状を有しているが、図１では単純化して２次元的な形状を示している。
【００３１】
図２は、比較例において表示手段２０に表示される画像を例示する図である。矢印Ｖは、領域５３（仮想カメラ）の移動速度を示している。この例では、領域５３が右向きの移動速度を有する例（すなわち表示される画像が左向きにスクロールする例）が示されている。移動速度は、ユーザの操作入力に応じて与えられる。この操作入力に応じて、図２（ａ）から図２（ｂ）、さらには図２（ｃ）へと表示される画像が変化する。図２（ｃ）は、領域５３の右端と自由移動範囲５４の右辺とが一致した状態、すなわち、領域５３の右端が自由移動範囲５４の右端まで移動した状態を示している。比較例においては、この状態において、領域５３が右向きの（仮想的な、または計算上の）移動速度を有していても（例えば領域５３を右に移動させる操作入力が与えられても）、領域５３はこれ以上、右には移動しない（図２（ｄ））。この状況において、ユーザは、領域５３が自由移動範囲５４の端部に達したからこれ以上スクロールしないのか、それとも装置が故障してスクロールしないのか判断に迷う場合がある。
【００３２】
図３は、本実施形態において表示手段２０に表示される画像を例示する図である。図３（ａ）〜（ｃ）は、図２（ａ）〜（ｃ）と同じである。図３（ｃ）の状態、すなわち、領域５３の注視点が自由移動範囲５４の右端まで移動したときに、領域５３が右向きの移動速度を有する場合、領域５３の注視点は、自由移動範囲５４の右端を越えて右側に移動する（図３（ｄ））。自由移動範囲５４の右端を越えた後、注視点は、ある量まで進んだあと止まり、さらには自由移動範囲５４に戻る向き（逆向き）に移動する。その後、領域５３は、注視点（この例では右辺上の点）と自由移動範囲５４の右辺とが一致した状態で停止する（図３（ｅ））。この例によれば、ユーザは、領域５３が自由移動範囲５４の端部に達したということを直感的に理解することができる。以下、このようなユーザインターフェースを提供する装置の構成および動作について説明する。
【００３３】
２．構成
図４は、一実施形態に係る情報処理装置１の機能構成を示す図である。情報処理装置１は、受け付け手段１１と、表示制御手段１２と、決定手段１３と、領域制御手段１４とを有する。受け付け手段１１は、所定の領域（この例では仮想空間５０）における領域５３を移動させるための、ユーザによる操作入力を受け付ける。表示制御手段１２は、仮想空間５０のうち領域５３の画像を表示手段２０に表示させる。表示手段２０は、この例では、情報処理装置１とは別の外部装置により提供される機能であり、文字および画像の少なくとも一方を表示する。決定手段１３は、操作入力に基づいて仮想空間５０における領域５３の移動速度を決定する。領域制御手段１４は、移動速度に応じて表示領域を移動させる。この場合において、領域制御手段１４は、表示領域が、仮想空間５０における所定範囲（自由移動範囲５４）を超えるときは、領域５３と自由移動範囲５４との距離が上限値（しきい値）を超えない範囲で、領域５３を移動させる。
【００３４】
図５は、領域５３と自由移動範囲５４との距離を例示する図である。この例で、領域５３と自由移動範囲５４との距離は、注視点Ｐと端部との距離、より詳細には、注視点Ｐについての、所定の座標軸方向の座標と、自由移動範囲５４についての、その座標軸方向の座標の最大値（または最小値）との差である。この例で、領域５３の注視点Ｐは、領域５３の中心である。図５（ａ）の例では、注視点Ｐが自由移動範囲５４のｘ軸正方向側にはみ出しており、注視点Ｐのｘ座標の最大値と自由移動範囲５４のｘ座標の最大値との差が、注視点Ｐと自由移動範囲５４との距離ｄである。図５（ｂ）は自由移動範囲５４の形状が矩形でない例を示している。この例では、注視点Ｐが自由移動範囲５４のｙ軸負方向側にはみ出しており、注視点Ｐのｙ座標と自由移動範囲５４のｙ座標の最小値との差が、領域５３と自由移動範囲５４との距離ｄである。以下の例では、領域５３と自由移動範囲５４との距離を、領域５３が自由移動範囲５４の外部に進入しているという観点から「進入量」という。なお、注視点は中心点に限定されない。領域５３の位置を示すものであれば、中心点以外の点が注視点として用いられてもよい。なお、注視点として領域５３の中心が用いられる場合、自由移動範囲５４は、領域５３の可動範囲を一回り（領域５３の高さおよび幅の半分に相当する長さ）小さくした範囲である。
【００３５】
再び図４を参照する。この例で、情報処理装置１は、第１速度算出手段１５および第２速度算出手段１６をさらに有する。また、受け付け手段１１が受け付けた操作入力は、単位期間毎に区分される。さらに、仮想空間５０は、ｎ次元仮想空間（ｎ≧１）である。第１速度算出手段１５は、操作入力に応じて第１速度を算出する。第１速度は、所定の期間の操作入力の累計に基づいて算出される速度である。第２速度算出手段１６は、操作入力に応じて第２速度を算出する。第２速度は、ｎ次元仮想空間において操作入力により指定される第１点と第２点との距離に応じて算出される速度である。決定手段１３は、第１速度および第２速度のうち、ユーザの操作入力に応じて決定される一方の速度を、移動速度として決定する。
【００３６】
図６は、情報処理装置１のハードウェア構成を示す図である。この例で、情報処理装置１は、ビデオゲームを実行するためのゲーム装置である。情報処理装置１は、ＣＰＵ１０１と、メモリ１０２と、外部メモリＩＦ１０３と、入出力ＩＦ１０４と、通信部１０５とを有するコンピュータ装置である。情報処理装置１の操作には、コントローラ２が用いられる。また、情報処理装置１は、表示装置４に接続されている。表示装置４は、画像および文字の少なくとも一方を含む情報を表示する装置であり、ディスプレイ（液晶パネル、有機ＥＬ（Electro-Luminescence）パネル等）、および駆動回路を有する。この例で、情報処理装置１はいわゆる据え置き型のゲーム装置であり、表示装置４を内蔵していない。表示装置４は、外付け装置、例えばテレビ受像機である。なお、情報処理装置１は、表示装置４を内蔵していてもよい。
【００３７】
ＣＰＵ１０１は、情報処理装置１の各部を制御する装置であり、各種の演算を行う。メモリ１０２は、プログラムおよびデータを記憶する記憶装置であり、例えばＲＡＭ（Random Access Memory）およびＲＯＭ（Read Only Memory）を有する。外部メモリＩＦ１０３は、プログラム（例えばゲームプログラム）およびデータを記憶した外部メモリ３（例えば光ディスク、磁気ディスク、または半導体メモリ）との間でプログラムおよびデータの読み書きをするインターフェースである。入出力ＩＦ１０４は、入出力装置（この例では表示装置４）との間で信号を仲介するインターフェースである。通信部１０５は、コントローラ２と通信する装置であり、例えばアンテナおよび増幅器を有する。外部メモリ３またはメモリ１０２に記憶されているプログラム（例えばゲームプログラム）を実行することにより、そのプログラムに係る機能（例えばビデオゲーム）が情報処理装置１において実現される。
【００３８】
コントローラ２は、情報処理装置１に対し指示を入力する装置であるが、この例ではさらに、情報処理装置１から送信される信号に従って画像を表示する機能を有する。コントローラ２は、ＣＰＵ２０１と、タッチスクリーン２０２と、通信部２０３とを有する。ＣＰＵ２０１は、コントローラ２の各部を制御する装置であり、メモリ（図示略）を使用して各種の演算を行う。タッチスクリーン２０２は、情報を表示する機能と指示を入力する機能とを兼ね備えた装置であり、例えば、ディスプレイおよび駆動回路、並びにディスプレイの表面に設けられたタッチセンサを有する。通信部２０３は、情報処理装置１と通信する装置であり、例えばアンテナおよび増幅器を有する。
【００３９】
この例では、外部メモリ３またはメモリ１０２に記憶されているプログラム（ゲームプログラム、システムソフトウェア、またはこれらの組み合わせ）によって、仮想空間５０における領域５３の画像を、表示装置４およびタッチスクリーン２０２の少なくとも一方に表示する機能が提供される。また、領域５３は、コントローラ２を介した操作入力に応じて、仮想空間５０内を移動する。このプログラムを実行しているＣＰＵ１０１は、受け付け手段１１、表示制御手段１２、決定手段１３、領域制御手段１４、第１速度算出手段１５、および第２速度算出手段１６の一例である。表示装置４およびタッチスクリーン２０２の少なくとも一方は、表示手段２０の一例である。
【００４０】
３．動作
図７は情報処理装置１の動作を示すフローチャートである。図７のフローの開始前において、仮想空間５０における領域５３の画像を表示させるためのプログラムが実行されている。ここでは、領域５３の画像がタッチスクリーン２０２に表示され、タッチスクリーン２０２におけるユーザによる操作入力に応じた指示が情報処理装置１に入力される例を説明する。また、この例で図７の処理は、所定の周期（例えば６０Ｈｚに相当する１６．７ミリ秒）で繰り返し実行される。この処理の単位期間を「フレーム」という。
【００４１】
タッチスクリーン２０２における操作には、「ドラッグ」と「フリック」とがある。ドラッグは、指でタッチスクリーン２０２をなぞる操作、すなわちタッチした状態を継続したままタッチ位置を動かす操作である。フリックは、指でタッチスクリーン２０２を素早くはらう操作、すなわち所定の基準値より速い速度でドラッグした後で指をタッチスクリーン２０２から離す操作である。これらの操作に応じて領域５３の移動速度が決定され、決定された移動速度に応じて移動した領域５３の画像が表示される。
【００４２】
ステップＳ１０１において、ＣＰＵ１０１は、操作入力を受け付ける。詳細には以下のとおりである。コントローラ２から送信される、ユーザの操作入力を示す信号（以下「操作入力信号」という）は、タッチスクリーン２０２においてタッチされた位置の座標（以下「実座標」という）を含む。現フレームにおいてタッチスクリーン２０２がタッチされていない場合、操作入力信号はヌル値を含む。ＣＰＵ１０１は、実座標を、仮想空間５０における位置を示す座標（以下「仮想座標」という。また、仮想座標により示される点を「仮想点」という）に変換する。実座標はタッチスクリーン２０２上の座標なので２次元座標であるが、仮想空間５０は３次元空間なので３次元座標である。この例では、２次元座標を３次元座標に変換するため、仮想空間５０における仮想平面が用いられる。
【００４３】
図８は、仮想空間５０における仮想平面５５を例示する図である。この例では、キャラクターを示すオブジェクト５２が配置されている面がｘｙ平面となるようにｘ軸およびｙ軸が定義され、高さ方向がｚ軸として定義されている。仮想平面５５は、ｚ座標が一定（例えばキャラクターの顔の高さ）の平面である。ＣＰＵ１０１は仮想平面５５を用いて、実座標を仮想座標に変換する。すなわち、ＣＰＵ１０１は、実座標を、仮想平面５５上にマッピングする。なお、２次元座標から３次元座標への変換はこれ以外の方法により行われてもよい。
【００４４】
メモリ１０２は、過去の所定期間（例えば、継続中のドラッグまたは継続中のフリックが開始されたフレームから直近のフレームまで）の各フレームにおける仮想座標を順に記憶している。ＣＰＵ１０１は、このフレームにおける仮想座標を、メモリ１０２に書き込む。
【００４５】
領域５３の移動速度は、メモリ１０２に記憶されている複数の仮想座標を用いて算出される。この例で、領域５３の移動速度には、慣性速度（第１速度の一例）とドラッグ速度（第２速度の一例）とがある。各フレームにおいて、ＣＰＵ１０１は、慣性速度およびドラッグ速度を算出する。ＣＰＵ１０１は、操作入力に応じて、慣性速度およびドラッグ速度の一方を、領域５３の移動速度として採用する。以下、これらの速度の算出方法を説明する。
【００４６】
再び図７を参照する。ステップＳ１０２において、ＣＰＵ１０１は、慣性速度を算出する。慣性速度Ｖｉは、操作入力の累積（すなわちメモリ１０２に記憶されている複数の仮想座標）に応じて算出される。
【００４７】
図９は、操作入力の履歴を例示する図である。横軸および縦軸は、仮想空間５０のｘ座標およびｙ座標を示している。始点Ｐｓは、継続中のドラッグが開始された仮想点を示している。ベクトルｍ（ｊ）は、第ｊフレームにおけるドラッグ位置と第（ｊ−１）フレームにおけるドラッグ位置との差に相当するベクトルである。なお、ここでは継続中のドラッグが開始されたフレームを第０フレームとする。ＣＰＵ１０１は、次式（１）に従って、第ｊフレームにおける慣性速度Ｖｉ（ｊ）を算出する。ＣＰＵ１０１は、算出した慣性速度Ｖｉ（ｊ）をメモリ１０２に記憶する。
Ｖｉ（ｊ）＝ｋ１×Ｓ（ｊ）    …（１）
ここで、ベクトルＳ（ｊ）は、第ｊフレームまでの操作入力の累積を示すベクトルであり、次式（２）により算出される。
Ｓ（ｊ）＝ｋ２×Ｓ（ｊ−１）＋ｋ３×ｍ（ｊ）    …（２）
【００４８】
係数ｋ１は、入力量と画面上での速度との調整に用いられる係数である。係数ｋ１は、例えば、０＜ｋ１＜１の範囲にある。係数ｋ１は、領域５３が自由移動範囲５４の中にある限りは一定である。領域５３の一部が自由移動範囲５４を越えると、係数ｋ１は、進入量に応じて変化する。具体的には、進入量が大きくなるほど、係数ｋ１は小さくなる。係数ｋ２は、領域５３が仮想空間５０を移動するときの抵抗（例えば、仮想空間５０を仮想カメラが移動するときの空気抵抗に相当）に応じた係数であり、例えば、０＜ｋ２＜１の範囲の定数である。
【００４９】
係数ｋ３は、入力量と画面上での速度との調整に用いられる係数であり、ベクトルｍ（ｊ）とベクトルｍ（ｊ−１）とがなす角度に応じて値が決まる。具体的には、ベクトルｍ（ｊ）とベクトルｍ（ｊ−１）とがなす角度が小さいほど係数ｋ３は大きくなる。これは次のような理由による。フリックする場合、タッチスクリーン２０２から指を離す直前のタッチ位置の軌跡は、ユーザが意図したものとは異なる場合がある。例えばユーザが真横にフリックしようとしても、指を離す瞬間は無意識のうちに上向きに指が動いてしまう場合がある。このようにそれ以前のベクトルｍとの角度差が大きい場合に、最後の操作入力の影響を低減するために係数ｋ３が用いられる。
【００５０】
再び図７を参照する。ステップＳ１０３において、ＣＰＵ１０１は、ドラッグ速度を算出する。詳細には以下のとおりである。ドラッグ速度Ｖｄは、始点Ｐｓおよび目標点Ｐｃに応じて算出される。目標点Ｐｃは、現フレームにおけるタッチ位置に対応する仮想点である。
【００５１】
図１０は、始点Ｐｓおよび目標点Ｐｃを例示する図である。各フレームにおける操作入力は、図９の例と同じである。ベクトルＭ（ｊ）は、始点Ｐｓから目標点Ｐｃに向かうベクトルである（Ｍ（ｊ）＝Σｍ（ｊ））。ＣＰＵ１０１は、次式（３）に従って、第ｊフレームにおけるドラッグ速度Ｖｄ（ｊ）を算出する。ＣＰＵ１０１は、算出したドラッグ速度Ｖｄ（ｊ）をメモリ１０２に記憶する。メモリ１０２は、Ｖｄ（ｊ）およびＶｄ（ｊ−１）の、少なくとも２フレーム分のドラッグ速度を記憶する。
Ｖｄ（ｊ）＝ｋ４×Ｖｄ（ｊ−１）−ｋ５×Ｍ（ｊ）  …（３）
【００５２】
係数ｋ４は、係数ｋ１と同様に、領域５３が仮想空間５０を移動するときの抵抗に応じた係数である。ｋ４はｋ１と等しくてもよいし、異なっていてもよい。係数ｋ５は、操作入力に対する感度を示す係数であり、ｋ５＞０の範囲の値を有する。係数ｋ５の値が大きいほど操作入力に対する感度が高くなる（操作入力が同じでも、係数ｋ５の値が大きいほど速度は大きくなる）。
【００５３】
再び図７を参照する。ステップＳ１０４において、ＣＰＵ１０１は、移動速度を決定する。この例で、ＣＰＵ１０１は、操作入力に応じて移動速度を決定する。具体的には、ＣＰＵ１０１は、現フレームにおいてタッチスクリーン２０２がタッチされている場合（すなわちドラッグが継続している場合）はドラッグ速度を、現フレームにおいてタッチスクリーン２０２がタッチされていない場合は、慣性速度を、領域５３の移動速度として採用する。
【００５４】
図１１は、移動速度を例示する図である。横軸は時間を、縦軸は移動速度を示している。この例では、時刻ｔ１までドラッグが行われ、時刻ｔ１においてユーザがタッチスクリーン２０２から指を離し、それ以降、指を離した状態が継続した例を示している。なお図１１は、領域５３が自由移動範囲５４を越えない場合の例を示している。図中、破線は計算されただけで移動速度としては採用されていない速度を、実線は移動速度として採用された速度を示している。ドラッグ中はドラッグ速度Ｖｄが、指を離した後は慣性速度Ｖｉが、それぞれ移動速度として採用されている。なお、指を離した瞬間（時刻ｔ１）において、ドラッグ速度Ｖｄと慣性速度Ｖｉとが同一であるとは限らないから、時刻ｔ１において移動速度をドラッグ速度Ｖｄから慣性速度Ｖｉに切り替えると、移動速度が不連続に変化してしまう場合がある。移動速度の不連続な変化を防ぐため、この例でＣＰＵ１０１は、指を離してから所定の期間（ｔｂ）において、移動速度がＶｄからＶｉに連続的に変化するように移動速度を補間する。具体的には、ドラッグ速度Ｖｄに乗算される係数が１００％から０％へ、慣性速度Ｖｉに乗算される係数が０％から１００％へと時間ｔｂをかけてそれぞれ線形に変化し、これらの係数が乗算されたドラッグ速度と慣性速度が加算された値が、移動速度として用いられる。なお、この補間処理は行われなくてもよい。
【００５５】
再び図７を参照する。ステップＳ１０５において、ＣＰＵ１０１は、領域５３の移動後の位置（正確には移動後の位置の候補）を算出する。移動後の位置の算出には、領域５３の現在位置と、移動速度と、フレーム周期が用いられる。領域５３の位置は、代表点（例えば、左上頂点）の位置により表される。
【００５６】
ステップＳ１０６において、ＣＰＵ１０１は、移動後の領域５３の位置が自由移動範囲５４を越えているか否か判断する。自由移動範囲５４を越えると判断された場合（Ｓ１０６：ＹＥＳ）、ＣＰＵ１０１は、処理をステップＳ１０７に移行する。自由移動範囲５４を越えないと判断された場合（Ｓ１０６：ＮＯ）、ＣＰＵ１０１は、処理をステップＳ１０８に移行する。
【００５７】
ステップＳ１０７において、ＣＰＵ１０１は、進入量の許容進入量（進入量の上限値）を算出する。この例で、ＣＰＵ１０１は、移動速度に応じて許容進入量を算出する。具体的には、算出される許容進入量は、移動速度が大きいほど大きくなる。
【００５８】
図１２は、算出された許容進入量を例示する図である。図１２（ａ）は移動速度がＶ１である場合の許容進入量ｄｔｈ１を、図１２（ｂ）は移動速度がＶ２である場合の許容進入量ｄｔｈ２を示している。Ｖ１＞Ｖ２の場合、ｄｔｈ１≧ｄｔｈ２である。なお、図７のフローはフレーム毎に繰り返し実行されるから、領域５３が自由移動範囲５４を越えている限り許容進入量は毎フレーム、計算（更新）される。
【００５９】
再び図７を参照する。ＣＰＵ１０１は、算出した許容進入量をメモリ１０２に書き込む。メモリ１０２には、許容進入量の初期値として例えばゼロが記憶されている。すなわち、領域５３が自由移動範囲５４内にある場合、メモリ１０２に記憶されている許容進入量はゼロである。領域５３の少なくとも一部が自由移動範囲５４を越えている場合、自由移動範囲５４を越えると判断されたフレームにおいて算出された許容進入量がメモリ１０２に記憶されている。許容進入量を算出すると、ＣＰＵ１０１は、処理をステップＳ１０８に移行する。なお、許容進入量は、例えば進入量がゼロになったときに初期値にリセットされる。
【００６０】
ステップＳ１０８において、ＣＰＵ１０１は、進入量が許容進入量を超えない範囲で、領域５３を移動させる。ステップＳ１０８の処理の詳細は、領域５３が自由移動範囲５４の内にある場合と外にある場合とで異なっている。領域５３が自由移動範囲５４内にある場合、許容進入量はゼロであるが進入量もゼロであるので、領域５３は許容進入量の制限とは関係なく移動する。すなわち、ＣＰＵ１０１は、ステップＳ１０５で算出された位置を示す座標を、領域５３の座標としてメモリ１０２に書き込む。
【００６１】
領域５３が自由移動範囲５４を越えている場合、領域５３の移動は、許容進入量の制限を受ける。すなわち、ＣＰＵ１０１は、進入量が許容進入量を超えない限りにおいてはステップＳ１０５で算出された位置を示す座標を、領域５３の座標としてメモリ１０２に書き込むが、進入量が許容進入量を超える場合、ＣＰＵ１０１は、進入量が許容進入量と等しくなるようにステップＳ１０５で算出された位置を補正する（すなわち、進入量が許容進入量まで戻される）。ＣＰＵ１０１は、補正された位置を示す座標を、領域５３の座標としてメモリ１０２に書き込む。すなわちこの場合、領域５３の観測される（見た目の）移動速度は、結果として、ステップＳ１０４で算出される移動速度とは異なったものになる。なお以下の説明において、単に「移動速度」という場合はステップＳ１０４で算出される移動速度を意味し、実際に観測される移動速度は「観測される移動速度」と記載して区別する。なお、このように領域５３の位置の補正が行われても、ステップＳ１０４においては、この補正によらずに毎フレーム、移動速度が算出される。
【００６２】
ステップＳ１０９において、ＣＰＵ１０１は、メモリ１０２に記憶されている座標に対応する位置における領域５３の画像を、タッチスクリーン２０２に描画するための信号を出力する。タッチスクリーン２０２は、通信部１０５および通信部２０３を介して受信したこの信号に従って画像を描画する。次のフレームになると、ＣＰＵ１０１は、ステップＳ１０１〜Ｓ１０９の処理を再び実行する。
【００６３】
ここで、領域５３が自由移動範囲５４内にある状態でフリックが行われ、領域５３が自由移動範囲５４を越え、その後ドラッグまたはフリックが行われなかった場合を考える。この場合、式（１）の係数ｋ１およびｋ２の効果により移動速度は時間の経過とともに減衰し、やがてゼロになる。なお、数学的に厳密に式（１）に従うと移動速度がゼロにならない場合があるが、この例では、各種パラメータの値に対して切り捨ての処理などが行われ、時間が経過すると移動速度はゼロになる。一方で、領域５３が自由移動範囲５４を越えている間、許容進入量はその時点の移動速度に応じてフレーム毎に更新される。移動速度が時間とともに減少するので、許容進入量も時間とともに減少する。実際の進入量は、ゼロから始まり徐々に増加する。進入量が許容進入量より小さいうちは時間の経過に伴って進入量が大きくなるが、進入量が許容進入量に達すると許容進入量による制限を受ける。許容進入量は時間の経過とともに減少しているから、許容進入量に達した後は、進入量は時間の経過とともに減少する。すなわち、観測される移動速度は、進入量が許容進入量に達した時点を境に反転しているように見える。
【００６４】
図１３は、進入量、および観測される移動速度の変化を例示する図である。図１３（ａ）の縦軸は進入量を、図１３（ｂ）の縦軸は観測される移動速度を示している。横軸はいずれも時間を示している。進入量および移動速度は、領域５３が自由移動範囲５４の外に向かう向きが正方向である。時刻ｔ１１において、領域５３が自由移動範囲５４の端部に達し、外部への侵入が始まる。この時点から、許容進入量が計算される（ステップＳ１０７）。許容進入量は時間の経過とともに減少し、実進入量は時間の経過とともに増加する。時刻ｔ１２において、実進入量が許容進入量と等しくなる。これ以降は、ステップＳ１０５で計算される進入量が許容進入量を超えている場合にはステップＳ１０８で許容進入量まで戻されるので、実進入量が許容進入量を超えることはない。表示される画面においては、領域５３が時刻ｔ１２を境に反転しているように見えるので、観測される移動速度は時刻ｔ１２においてゼロになり、時刻ｔ１２以降は負の値となる。時刻ｔ１２以降、実進入量は時間の経過とともに減少し、時刻ｔ１３においてゼロになる。この例では、時刻ｔ１３以降、領域５３は自由移動範囲５４の境界で止まっている。すなわち、観測される移動速度は、時刻ｔ１３以降はゼロである。なお、この例では、領域５３が自由移動範囲５４の境界で止まっているが、反転した領域５３が止まる位置は自由移動範囲５４の境界に限定されない。例えば、自由移動範囲５４の境界近傍の所定の位置で領域５３が止まってもよい。
【００６５】
図１４は、最大進入量を例示する図である。図１４（ａ）は移動速度がＶ１である場合の許容進入量ｄｍａｘ１を、図１４（ｂ）は移動速度がＶ２である場合の許容進入量ｄｍａｘ２を示している。Ｖ１＞Ｖ２の場合、ｄｍａｘ１≧ｄｍａｘ２である。
【００６６】
図１５は、領域５３と自由移動範囲５４との位置関係を例示する図である。図１５（ａ）の状態において、領域５３は自由移動範囲５４の内部にある。この状態で左向きのフリック入力Ｆが与えられ、その後さらなる操作入力が与えられない（ユーザはタッチスクリーン２０２にタッチしない）場合を考える。この場合、領域５３は、右向きに移動し、領域５３の注視点Ｐと自由移動範囲５４の右端とが一致する（図１５（ｂ））。この状態で移動速度がゼロでなければ、領域５３は、自由移動範囲５４の外部に進入する。進入量が最大に達した（図１５（ｃ））後、領域５３の移動速度は反転し、最終的には、領域５３の注視点Ｐと自由移動範囲５４の右端とが一致した状態で停止する（図１５（ｄ））。なお、ＣＰＵ１０１は、最大進入量から決められた上限値以上（自由移動範囲５４の内部に向かって）離れた位置まで、領域５３を移動させてもよい。この上限値は、許容進入量と等しくてもよいし、異なっていてもよい（許容進入量より大きくてもよい）。
【００６７】
以上で説明したように本実施形態によれば、自由移動範囲５４の境界付近で領域５３を移動させる場合に、ユーザにより自然な操作感を与えることができる。
【００６８】
４．変形例
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。以下、変形例をいくつか説明する。以下の変形例のうち２つ以上のものが組み合わせて用いられてもよい。
【００６９】
４−１．変形例１
移動速度の算出方法は、実施形態で説明したものに限定されない。例えば移動速度は、慣性速度Ｖｉおよびドラッグ速度Ｖｄに加え、別の算出方法で算出された第３速度を含む複数の速度の中から、操作入力に応じて採用されてもよい。別の例で、移動速度は、単一の算出方法によって算出されてもよい。より具体的には、慣性速度Ｖｉおよびドラッグ速度Ｖｄのいずれか一方のみが操作入力によらずに移動速度として採用されてもよい。この場合、ＣＰＵ１０１は、採用されなかった移動速度を算出する処理を行わなくてもよい。
【００７０】
また、慣性速度およびドラッグ速度の具体的算出方法は、実施形態で説明したものに限定されない。例えば、慣性速度の算出に用いられる操作入力の累積として、継続中のドラッグが開始されたフレームであって過去の所定数のフレームの操作入力のみが用いられてもよい。
【００７１】
４−２．変形例２
領域５３と自由移動範囲５４との距離は、実施形態で説明したものに限定されない。例えば、領域５３の特定点と自由移動範囲５４の特定点との距離が用いられてもよい。領域５３および自由移動範囲５４の特定点は、例えば、重心、頂点、または決められた辺上の点などが用いられる。
【００７２】
４−３．変形例３
許容進入量（すなわち領域５３と自由移動範囲５４との距離の上限値）は、実施形態で説明したものに限定されない。例えば、許容進入量は移動速度によらず一定の値であってもよい。あるいは、許容進入量は、移動速度とは別のパラメータに応じて決められてもよい。
【００７３】
４−４．変形例４
操作入力と領域５３の移動方向との関係は、実施形態で説明したものに限定されない。ＣＰＵ１０１は、ドラッグまたはフリックの方向と同じ方向の移動速度を発生させてもよい。
【００７４】
４−５．変形例５
情報処理装置１またはその他の装置のハードウェア構成は実施形態で説明したものに限定されない。例えば、コントローラ２はタッチスクリーン２０２を有していなくてもよい。この場合、コントローラ２は、キーパッドおよび／またはボタンを有し、押下されたキーまたはボタンに応じた操作入力信号を、情報処理装置１に供給してもよい。あるいは、コントローラ２は、加速度センサを有し、与えられた加速度に応じた（すなわちユーザがコントローラ２を振り回すアクションに応じた）操作入力信号を、情報処理装置１に供給してもよい。
【００７５】
４−６．変形例６
領域５３が自由移動範囲５４を越えた後における進入量を決定する処理は、実施形態で説明したものに限定されない。実施形態で説明した処理に代わり以下で説明する処理が用いられてもよい。この例において、許容進入量は、領域５３が自由移動範囲５４を越えたときの移動速度に応じて決まる。許容進入量はフレーム毎には更新されず、領域５３が自由移動範囲５４内に戻るまで同じ値の許容進入量が用いられる。領域５３が自由移動範囲５４を越えると、領域５３を自由移動範囲５４内に押し戻す仮想的な操作入力が与えられる。この仮想的な操作入力は、例えば、ばねのように進入量に比例した逆向きの操作入力である。領域５３が自由移動範囲５４を越えている間は、式（１）の慣性速度の算出においては、この仮想的な操作入力が用いられる。この仮想的な操作入力により領域５３の移動速度は反転し、領域５３は自由移動範囲５４内に戻る。
【００７６】
４−７．変形例７
情報処理装置１のフローや、各種の処理に用いられるパラメータおよび数式はあくまで例示であり、実施形態で説明したものに限定されない。例えば、図７のフローの一部のステップは、省略されたり、他のステップと順番が入れ替えられたりしてもよい。
【００７７】
４−８．変形例８
領域５３は、仮想空間の一部であるものに限定されない。領域５３は実空間の一部であってもよい。
【００７８】
４−９．その他の変形例
情報処理装置１は、据え置き型のゲーム装置に限定されない。情報処理装置１０は、携帯型ゲーム装置、パーソナルコンピュータ、携帯電話機、ＰＤＡ（Personal Digital Assistants）、タブレット端末など、ゲーム装置以外の情報処理装置であってもよい。また、情報処理装置１において実行されるアプリケーションプログラムは、ゲームアプリケーションに限定されない。文書編集アプリケーション、学習アプリケーション、その他の実用ソフトなど、ゲーム以外の機能を実現させるためのアプリケーションプログラムが情報処理装置１において実行されてもよい。また、実施形態で説明した情報処理装置１の機能の一部を、ネットワーク上のサーバ装置が有していてもよい。この場合、サーバ装置と情報処置装置１とを有する情報処理システムが、実施形態で説明した機能を有する。
【００７９】
情報処理装置１により実行されるアプリケーションプログラムは、記憶媒体により提供されるものに限定されない。アプリケーションプログラムは、インターネット等のネットワークを介したダウンロードにより提供されてもよい。また、情報処理装置１のシステムソフトウェアが、記憶媒体またはダウンロードにより提供されてもよい。
【符号の説明】
【００８０】
１…情報処理装置
１１…受け付け手段
１２…表示制御手段
１３…決定手段
１４…領域制御手段
１５…第１速度算出手段
１６…第２速度算出手段
１０１…ＣＰＵ
１０２…メモリ
１０３…外部メモリＩＦ
１０４…入出力ＩＦ
１０５…通信部
２…コントローラ
２０１…ＣＰＵ
２０２…タッチスクリーン
２０３…通信部
３…外部メモリ
４…表示装置
２０…表示手段
５０…仮想空間
５１…フィールド
５２…オブジェクト
５３…領域
５４…自由移動範囲
５５…仮想平面
【図１】
2014085816.tif 000003
【図２】
2014085816.tif 000004
【図３】
2014085816.tif 000005
【図４】
2014085816.tif 000006
【図５】
2014085816.tif 000007
【図６】
2014085816.tif 000008
【図７】
2014085816.tif 000009
【図８】
2014085816.tif 000010
【図９】
2014085816.tif 000011
【図１０】
2014085816.tif 000012
【図１１】
2014085816.tif 000013
【図１２】
2014085816.tif 000014
【図１３】
2014085816.tif 000015
【図１４】
2014085816.tif 000016
【図１５】
2014085816.tif 000017