(57)【要約】【課題】指示位置を指定する操作の操作性を向上する。【解決手段】情報処理装置は、表示装置の画面に表示される３次元の仮想空間における指示位置Ｐｓ２を算出する。情報処理装置は、ユーザの入力に基づいて前記画面上における２次元の入力位置Ｐｉ２を算出する。指示位置Ｐｓ２は、入力位置Ｐｉ２に基づいて算出される。情報処理装置は、距離条件を満たす３次元位置であって、かつ、範囲条件を満たす３次元位置を、指示位置Ｐｓ２として算出する。距離条件は、仮想空間における所定の基準位置からの距離に関する条件である。範囲条件は、３次元位置に対応する画面上の位置が、基準位置に対応する画面上の位置と入力位置Ｐｉ２とによって決められる範囲内となることを示す条件である。【選択図】図４
2015006252.tif 000002
【特許請求の範囲】
【請求項１】
表示装置の画面に表示される３次元の仮想空間における指示位置を算出する情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
ユーザの入力に基づいて前記画面上における２次元の入力位置を算出する入力位置算出手段と、
前記仮想空間における所定の基準位置からの距離に関する距離条件を満たす３次元位置であって、かつ、当該３次元位置に対応する画面上の位置が、前記基準位置に対応する画面上の位置と前記入力位置とによって決められる範囲内となることを示す範囲条件を満たす３次元位置を、前記指示位置として前記入力位置に基づいて算出する指示位置算出手段として前記コンピュータを機能させる、情報処理プログラム。
【請求項２】
前記指示位置算出手段は、前記指示位置に対応する画面上の位置が、前記基準位置に対応する画面上の位置と前記入力位置との間の所定範囲内となることを前記範囲条件として、前記指示位置を算出する、請求項１に記載の情報処理プログラム。
【請求項３】
前記指示位置算出手段は、前記指示位置に対応する画面上の位置が、前記基準位置に対応する画面上の位置と前記入力位置とを結ぶ線分上に位置することを前記範囲条件として、前記指示位置を算出する、請求項２に記載の情報処理プログラム。
【請求項４】
前記指示位置算出手段は、前記仮想空間において前記基準位置から所定距離内となることを前記距離条件として、前記指示位置を算出する、請求項１から請求項３のいずれか１項に記載の情報処理プログラム。
【請求項５】
前記指示位置算出手段は、前記仮想空間における所定平面に関する距離が前記基準位置から所定距離内となることを前記距離条件として、前記指示位置を算出する、請求項４に記載の情報処理プログラム。
【請求項６】
前記指示位置算出手段は、前記指示位置に対応する画面上の位置が前記画面上における所定の制限領域内となるように、前記指示位置を算出する、請求項１から請求項５のいずれか１項に記載の情報処理プログラム。
【請求項７】
前記情報処理装置は、方向入力装置から入力情報を取得し、
前記入力位置算出手段は、最後に算出された指示位置の画面上における位置を前記入力情報が示す方向へ移動させた位置となるように、前記入力情報に基づいて新たな入力位置を算出し、
前記指示位置算出手段は、前記新たな入力位置に基づいて新たな指示位置を算出する、請求項１から請求項６のいずれか１項に記載の情報処理プログラム。
【請求項８】
前記指示位置算出手段は、
前記画面上において前記範囲条件を満たす１以上の位置を候補位置として前記入力位置に基づいて算出する候補算出手段と、
前記候補位置のうちで前記距離条件を満たす位置に対応する前記仮想空間内の位置を前記指示位置として決定する指示位置決定手段とを含む、請求項１から請求項７のいずれか１項に記載の情報処理プログラム。
【請求項９】
前記指示位置決定手段は、前記距離条件を満たす候補位置のうちで前記基準位置から最も離れた位置に対応する仮想空間内の位置を前記指示位置として決定する、請求項８に記載の情報処理プログラム。
【請求項１０】
前記候補算出手段は、画面上における前記基準位置と前記入力位置とについて二分探索法を用いることによって、所定の条件が満たされるまで候補位置を繰り返し算出し、
前記指示位置決定手段は、候補位置が算出される毎に前記距離条件を満たすか否かを判定し、前記距離条件を満たす候補位置から前記指示位置を決定する、請求項８または請求項９に記載の情報処理プログラム。
【請求項１１】
前記指示位置算出手段は、前記範囲条件を満たす３次元位置のうちで、前記距離条件を満たし、かつ、前記画面上における距離が前記基準位置から最も離れた位置付近の位置を前記指示位置とする、請求項１から請求項７のいずれか１項に記載の情報処理プログラム。
【請求項１２】
前記指示位置算出手段は、指示位置に対応する画面上の位置が、前記基準位置に対応する画面上の位置を基準とする所定領域内となるか、または、指示位置が前記仮想空間において前記基準位置から所定距離内となることを前記距離条件として用いて前記指示位置を算出する、請求項１から請求項１１のいずれか１項に記載の情報処理プログラム。
【請求項１３】
前記指示位置算出手段は、仮想空間内の位置のうちで画面に表示されている位置を前記指示位置とする、請求項１から請求項１２のいずれか１項に記載の情報処理プログラム。
【請求項１４】
表示装置の画面に表示される３次元の仮想空間における指示位置を算出する情報処理装置であって、
ユーザの入力に基づいて前記画面上における２次元の入力位置を算出する入力位置算出部と、
前記仮想空間における所定の基準位置からの距離に関する距離条件を満たす３次元位置であって、かつ、当該３次元位置に対応する画面上の位置が、前記基準位置に対応する画面上の位置と前記入力位置とによって決められる範囲内となることを示す範囲条件を満たす３次元位置を、前記指示位置として前記入力位置に基づいて算出する指示位置算出部とを備える、情報処理装置。
【請求項１５】
表示装置の画面に表示される３次元の仮想空間における指示位置を算出する情報処理システムであって、
ユーザの入力に基づいて前記画面上における２次元の入力位置を算出する入力位置算出部と、
前記仮想空間における所定の基準位置からの距離に関する距離条件を満たす３次元位置であって、かつ、当該３次元位置に対応する画面上の位置が、前記基準位置に対応する画面上の位置と前記入力位置とによって決められる範囲内となることを示す範囲条件を満たす３次元位置を、前記指示位置として前記入力位置に基づいて算出する指示位置算出部とを備える、情報処理システム。
【請求項１６】
表示装置の画面に表示される３次元の仮想空間における指示位置を算出する情報処理装置によって実行される指示位置の算出方法であって、
ユーザの入力に基づいて前記画面上における２次元の入力位置を算出する入力位置算出ステップと、
前記仮想空間における所定の基準位置からの距離に関する距離条件を満たす３次元位置であって、かつ、当該３次元位置に対応する画面上の位置が、前記基準位置に対応する画面上の位置と前記入力位置とによって決められる範囲内となることを示す範囲条件を満たす３次元位置を、前記指示位置として前記入力位置に基づいて算出する指示位置算出ステップとを備える、算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示装置の画面に表示される３次元の仮想空間における指示位置を算出するための情報処理プログラム、情報処理装置、情報処理システム、および、指示位置の算出方法に関する。
【背景技術】
【０００２】
従来、スティック等の入力装置を用いて画面上においてカーソル（ポインタ）を動かし、画面に表示される仮想空間をカーソルによって指定する技術がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−０６８０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
入力装置を用いて指示された方向へ単にカーソルを移動させるだけでは、指示位置（カーソルの位置）を動かす操作をユーザが快適に行うことができない場合があった。
【０００５】
それ故、本発明の目的は、指示位置を指定する操作の操作性を向上することができる情報処理プログラム、情報処理装置、情報処理システム、および、指示位置の算出方法を提供することである。
【課題を解決するための手段】
【０００６】
上記の課題を解決すべく、本発明は、以下の（１）〜（１３）の構成を採用した。
【０００７】
（１）
本発明の一例は、表示装置の画面に表示される３次元の仮想空間における指示位置を算出する情報処理装置のコンピュータにおいて実行される情報処理プログラムである。情報処理プログラムは、入力位置算出手段と、指示位置算出手段としてコンピュータを機能させる。
入力位置算出手段は、ユーザの入力に基づいて画面上における２次元の入力位置を算出する。
指示位置算出手段は、仮想空間における所定の基準位置からの距離に関する距離条件を満たす３次元位置であって、かつ、当該３次元位置に対応する画面上の位置が、基準位置に対応する画面上の位置と入力位置とによって決められる範囲内となることを示す範囲条件を満たす３次元位置を、指示位置として入力位置に基づいて算出する。
【０００８】
上記（１）の構成によれば、上記距離条件を満たすように指示位置が算出されるので、画面上において指示位置が取り得る範囲を制限することができる。これによって、指示位置を指定する操作の操作性を向上することができる。また、上記範囲条件を満たすように指示位置が算出されるので、ユーザによる入力位置を反映して指示位置を決定することができる。これによっても、指示位置を指定する操作の操作性を向上することができる。
【０００９】
（２）
指示位置算出手段は、指示位置に対応する画面上の位置が、基準位置に対応する画面上の位置と入力位置との間の所定範囲内となることを範囲条件として、指示位置を算出してもよい。
【００１０】
上記（２）の構成によれば、画面上において指示位置は基準位置と入力位置との間の範囲内となるので、基準位置から見た入力位置の向きと指示位置の向きとが概ね同じ方向となる。したがって、画面上において入力位置と指示位置とが同じ位置にならない場合でもユーザが違和感を抱きにくくなるので、操作性の良い操作方法を提供することができる。
【００１１】
（３）
指示位置算出手段は、指示位置に対応する画面上の位置が、基準位置に対応する画面上の位置と入力位置とを結ぶ線分上に位置することを範囲条件として、指示位置を算出してもよい。
【００１２】
上記（３）の構成によれば、上記線分上から指定位置を容易に算出することができる。また、基準位置から見た入力位置の向きと指示位置の向きとを同じ方向とすることができるので、操作性の良い操作方法を提供することができる。
【００１３】
（４）
指示位置算出手段は、仮想空間において基準位置から所定距離内となることを距離条件として、指示位置を算出してもよい。
【００１４】
上記（４）の構成によれば、指示位置が取り得る範囲を、基準位置から所定距離内となる範囲に容易に制限することができる。
【００１５】
（５）
指示位置算出手段は、仮想空間における所定平面に関する距離が基準位置から所定距離内となることを距離条件として、指示位置を算出してもよい。
【００１６】
上記（５）の構成によれば、例えば所定平面に関する距離が短く、所定平面と垂直な方向について距離が長いような位置を、指示位置とすることができる。このように、上記（５）の構成によれば、所定平面を適宜設定することによって、指示位置の取り得る範囲を、指示位置の用途に応じた適切な範囲とすることができる。
【００１７】
（６）
指示位置算出手段は、指示位置に対応する画面上の位置が画面上における所定の制限領域内となるように、指示位置を算出してもよい。
【００１８】
上記（６）の構成によれば、上記距離条件による方法とは別の方法で、指示位置の取り得る範囲を制限することができる。したがって、指示位置を大きく動かさなければならない状況をより生じにくくすることができるので、指示位置を指定する操作の操作性をより向上することができる。
【００１９】
（７）
情報処理装置は、方向入力装置から入力情報を取得してもよい。入力位置算出手段は、最後に算出された指示位置の画面上における位置を入力情報が示す方向へ移動させた位置となるように、入力情報に基づいて新たな入力位置を算出してもよい。指示位置算出手段は、新たな入力位置に基づいて新たな指示位置を算出してもよい。
【００２０】
上記（７）の構成によれば、前回の指示位置から、ユーザによって指示された入力方向へ移動した位置が新たな入力位置となる。これによって、ユーザにとってわかりやすい位置となるように入力位置を算出することができる。
【００２１】
（８）
指示位置算出手段は、候補算出手段と、指示位置決定手段とを含んでいてもよい。
候補算出手段は、画面上において範囲条件を満たす１以上の位置を候補位置として入力位置に基づいて算出する。
指示位置決定手段は、候補位置のうちで距離条件を満たす位置に対応する仮想空間内の位置を指示位置として決定する。
【００２２】
上記（８）の構成によれば、候補位置を算出し、候補位置について上記範囲条件および距離条件を判定することによって、範囲条件および距離条件を満たす指示位置を容易に算出することができる。
【００２３】
（９）
指示位置決定手段は、距離条件を満たす候補位置のうちで基準位置から最も離れた位置に対応する仮想空間内の位置を指示位置として決定してもよい。
【００２４】
上記（９）の構成によれば、候補位置のうちで入力位置に最も近いものが指示位置となる。これによれば、ユーザが指示した方向と、指示位置の移動方向とのずれを小さくすることができるので、ユーザにとって違和感が少なく、操作性の良い操作方法を提供することができる。
【００２５】
（１０）
候補算出手段は、画面上における基準位置と入力位置とについて二分探索法を用いることによって、所定の条件が満たされるまで候補位置を繰り返し算出してもよい。
指示位置決定手段は、候補位置が算出される毎に距離条件を満たすか否かを判定し、距離条件を満たす候補位置から指示位置を決定してもよい。
【００２６】
上記（１０）の構成によれば、二分探索法を用いて候補位置を算出することによって、候補位置を効率良く決定することができ、指示位置の算出処理を効率良く行うことができる。
【００２７】
（１１）
指示位置算出手段は、範囲条件を満たす３次元位置のうちで、距離条件を満たし、かつ、画面上における距離が基準位置から最も離れた位置付近の位置を指示位置としてもよい。
【００２８】
上記（１１）の構成によれば、範囲条件および距離条件を満たす位置のうちで、画面上において入力位置に最も近い位置が指示位置となる。これによれば、ユーザが指示した方向と、指示位置の移動方向とのずれを小さくすることができるので、ユーザにとって違和感が少なく、操作性の良い操作方法を提供することができる。
【００２９】
（１２）
指示位置算出手段は、指示位置に対応する画面上の位置が、基準位置に対応する画面上の位置を基準とする所定領域内となるか、または、指示位置が仮想空間において基準位置から所定距離内となることを距離条件として用いて指示位置を算出してもよい。
【００３０】
上記（１２）の構成によれば、所定領域内の範囲については、仮想空間における距離に関わらず、指示位置として指定することが可能となる。これによって、指示位置を移動させる操作の操作性をより向上することができる。
【００３１】
（１３）
指示位置算出手段は、仮想空間内の位置のうちで画面に表示されている位置を指示位置としてもよい。
【００３２】
上記（１３）の構成によれば、上記視点の位置から直線を延ばして仮想空間内のオブジェクトと接触した位置が指示位置となる。これによれば、画面に表示されている位置が指示位置となるので、仮想空間内に配置されるオブジェクトによって指示位置が隠れてしまうことなく、指示位置をユーザにわかりやすく提示することができる。
【００３３】
なお、本発明の別の一例は、上記（１）〜（１３）の情報処理プログラムを実行することによって実現される各手段と同等の手段を備える情報処理装置あるいは情報処理システムであってもよいし、上記（１）〜（１３）において実行される指示位置の算出方法であってもよい。
【発明の効果】
【００３４】
本発明によれば、距離条件および範囲条件を満たすように指示位置を算出することによって、指示位置を指定する操作の操作性を向上することができる。
【図面の簡単な説明】
【００３５】
【図１】本実施形態に係る情報処理システムの一例を示すブロック図
【図２】テレビの画面に表示されるゲーム画像の一例を示す図
【図３】指示位置が移動する前の状態におけるゲーム画像の一例を示す図
【図４】図３に示す状態から指示位置が移動した後の状態におけるゲーム画像の一例を示す図
【図５】入力位置を補正するための制限領域の一例を示す図
【図６】指示位置を算出する途中の状態の一例を示す図
【図７】候補位置の決定方法の一例を示す図
【図８】距離条件が満たされる範囲の一例を示す図
【図９】許可領域の一例を示す図
【図１０】図９に示す領域および許可領域の一例を真上から見た図
【図１１】本実施形態において情報処理装置（ＣＰＵ）が実行する指示位置算出処理の流れの一例を示すフローチャート
【発明を実施するための形態】
【００３６】
［１．情報処理システムの構成］
以下、本実施形態の一例に係る情報処理プログラム、情報処理システム、情報処理装置、および、情報処理の実行方法について説明する。図１は、本実施形態に係る情報処理システムの一例を示すブロック図である。図１において、情報処理システム１は、入力装置２、情報処理装置３、および、テレビ４を備える。本実施形態における情報処理システム１は、テレビ４の画面に表示される３次元の仮想空間において、入力装置２を用いてユーザが指示する指示位置を算出するものである。
【００３７】
情報処理システム１は、ユーザが入力を行うための入力装置（コントローラ）２を含む。本実施形態においては、入力装置２は、スティック１１を有する。スティック１１は、少なくとも方向を入力可能な方向入力装置の一例である。本実施形態においては、スティック１１は、基準状態から上下左右の任意の方向（０°から３６０°の任意の方向）に傾倒可能であり、基準状態から傾倒した方向および傾倒した量（角度）に応じた値を出力する。具体的には、スティック１１の出力値は、傾倒方向および傾倒量を表す２次元座標値である。
【００３８】
なお、入力装置２が有する方向入力装置は、スティック１１の他、スライドパッドや、十字キーや、ポインティングデバイス（マウス等）であってもよい。また、入力装置２は、方向入力装置に加えて（または代えて）、ボタン、入力装置２の姿勢を検知可能なセンサ（ジャイロセンサ等）、および／または、タッチパネルといった他の種類の入力装置を備えていてもよい。
【００３９】
入力装置２は、ユーザの操作を検出し、ユーザの操作を表す操作データを情報処理装置３へ送信する。本実施形態においては、操作データは、スティック１１の出力値のデータを含む。
【００４０】
情報処理システム１は情報処理装置３を含む。情報処理装置３は、情報処理システム１において実行される情報処理（後述する指示位置算出処理）を実行する。情報処理装置３は、パーソナルコンピュータ、ゲーム装置、携帯端末、スマートフォン等、どのような形態の情報処理装置であってもよい。情報処理装置３は、入力装置２およびテレビ４と通信可能である。なお、情報処理装置３と入力装置２またはテレビ４との通信は、有線であってもよいし無線であってもよい。
【００４１】
図１に示すように、情報処理装置３は、ＣＰＵ１４、メモリ１５、および、プログラム記憶部１６を備える。ＣＰＵ１４は、メモリ１５を用いて所定の情報処理プログラムを実行することによって、上記情報処理を実行する。詳細は後述するが、本実施形態における上記情報処理は、上記操作データに基づいて指示位置を算出する操作位置算出処理である。なお、指示位置は、テレビ４に表示される仮想空間内の位置であって、ユーザによって操作される位置である。また、情報処理装置３は、情報処理を実行することが可能な任意の構成でよく、例えば情報処理の一部または全部が専用回路によって実行されてもよい。本実施形態においては、上記情報処理によって情報処理装置３が画像を生成し、生成された画像が情報処理装置３からテレビ４へ出力される。
【００４２】
プログラム記憶部１６は、上記情報処理プログラムを記憶する。プログラム記憶部１６は、ＣＰＵ１４がアクセス可能な任意の記憶装置（記憶媒体）である。プログラム記憶部１６は、例えばハードディスク等の、情報処理装置３に内蔵される記憶部であってもよいし、例えば光ディスク等の、情報処理装置３に着脱可能な記憶媒体であってもよい。
【００４３】
テレビ４は、画像を表示する表示装置の一例である。情報処理装置３からテレビ４へ画像が送信されてくる場合、テレビ４は当該画像を表示する。
【００４４】
上記情報処理システム１においては、入力装置２に対する入力に応じて情報処理装置３が情報処理を実行し、実行の結果得られた画像がテレビ４に表示される。このように、本実施形態においては、情報処理システム１は、入力機能、情報処理機能、および表示機能が複数の装置によって実現される構成である。なお、他の実施形態においては、これらの機能のうち複数の機能が単一の情報処理装置によって実現されてもよい。例えば、情報処理システム１は、入力装置２および情報処理装置３に代えて、入力機能および情報処理機能を有する単一の情報処理装置（例えば、携帯型の情報処理端末等）を含んでいてもよい。
【００４５】
また、他の実施形態においては、情報処理装置３で実行される情報処理が複数の装置によって実行されてもよい。例えば、他の実施形態においては、情報処理装置３において実行される情報処理の少なくとも一部が、ネットワーク（広域ネットワークおよび／またはローカルネットワーク）によって通信可能な複数の装置によって分散して実行されてもよい。
【００４６】
［２．本実施形態における処理の概要］
以下、本実施形態において実行される情報処理の概要について説明する。本実施形態においては、情報処理システム１は、仮想空間内における指示位置をユーザの入力に基づいて算出（制御）する情報処理を実行する。ここで、本実施形態においては、指示位置がゲーム操作に用いられる場合を例として説明する。すなわち、本実施形態においては、仮想のゲーム空間がテレビ４に表示され、ゲーム空間内において指示位置が算出される場合を例として説明する。
【００４７】
（２−１：ゲーム画像の概要）
図２は、テレビ４の画面に表示されるゲーム画像の一例を示す図である。図２に示すように、画面には、ユーザによって操作されるプレイヤキャラクタ２１が配置された仮想空間（ゲーム空間）が表示される。本実施形態においては、プレイヤキャラクタ２１は、画面上における所定位置（具体的には、画面中央よりやや下の位置）に表示される。また、図２に示すように、仮想空間内においてポインタ画像２２が表示される。ポインタ画像２２は、指示位置を示す。さらに、本実施形態においては、プレイヤキャラクタ２１から指示位置までを結ぶ線２３が表示される。詳細は後述するが、スティック１１に対する操作に応じて、ポインタ画像２２が移動するとともに、線２３が変化する。なお、本実施形態においては、指示位置を示す画像（上記ポインタ画像２２および線２３）が表示されるが、他の実施形態においては、指示位置を示す画像は表示されなくてもよい。
【００４８】
また、ユーザによる所定の動作指示に応じて、指示位置に対して所定の処理（ゲーム処理）が実行される。例えば、情報処理システム１は、上記動作指示に応じて、指示位置に対してプレイヤキャラクタ２１に攻撃動作を行わせたり、他のキャラクタ（仲間のキャラクタ等）を指示位置へ移動させたりする。
【００４９】
（２−２：指示位置の制御の概要）
次に、図３および図４を参照して、ユーザの入力に応じて指示位置を移動させる方法の概要について説明する。図３は、指示位置が移動する前の状態におけるゲーム画像の一例を示す図である。図３に示す状態では、仮想空間に配置される壁２６上に指示位置Ｐｓ１がある。以下では、この状態において、右方向を指示する入力（具体的には、スティック１１を右に傾倒する入力）が行われた場合を例として説明する。
【００５０】
入力装置２（スティック１１）に対して方向を指示する入力が行われると、情報処理システム１は、当該入力に基づいて入力位置（図３に示す位置Ｐｉ２）を算出する。入力位置は、画面上の位置として算出される。すなわち、入力位置は、画面上の位置を示す２次元座標によって表される。なお、ユーザの入力に基づく入力位置の算出方法は任意である。本実施形態においては、入力位置Ｐｉ２は、移動前（入力前）における指示位置Ｐｓ１に対応する画面上の位置を、入力に応じた位置および方向へ移動させた位置として算出される。具体的には、入力位置Ｐｉ２は、画面上において、スティック１１の傾倒方向に応じた方向へ、傾倒量に応じた量だけ指示位置Ｐｓ１を移動させた位置となる。図３に示す例においては、右方向を指示する入力が行われるので、入力位置Ｐｉ２は、入力前の指示位置Ｐｓ１が画面上において右方向へ移動した位置となる。このように、本実施形態においては、入力位置の算出（制御）は、画面に対応する２次元平面において行われる。
【００５１】
なお、図３に示す仮想空間においては、プレイヤキャラクタ２１の前方には、壁と壁の間から突き出た足場２４があり、足場２４の先は崖になっている。そのため、画面上は、プレイヤキャラクタ２１から遠く離れた地面２５が足場２４の向こうに表示されている。図３に示す例では、入力位置Ｐｉ２は、この地面２５を指している。つまり、入力位置Ｐｉ２に対応する仮想空間内の位置は、地面２５上の位置となっている。
【００５２】
図４は、図３に示す状態から指示位置が移動した後の状態におけるゲーム画像の一例を示す図である。上記のようにして入力位置Ｐｉ２が算出されると、情報処理システム１は、入力位置Ｐｉ２に基づいて指示位置を算出する。なお、指示位置は、仮想空間内の位置として算出される。すなわち、指示位置は、仮想空間内の位置を示す３次元座標によって表される。ここで、本実施形態においては、以下に示す範囲条件および距離条件を満たすように指示位置が算出される。
・範囲条件：画面上において、プレイヤキャラクタ２１の位置と、入力位置とを結ぶ線分上の範囲内となること
・距離条件：仮想空間において、プレイヤキャラクタ２１からの距離が所定距離内となること
なお、図３および図４に示す例では、地面２５はプレイヤキャラクタ２１から上記所定距離よりも離れており、地面２５の位置は距離条件を満たさないものとする。したがって、このとき、上記範囲条件および距離条件を満たす指示位置Ｐｓ２は、画面上においてプレイヤキャラクタ２１の位置から入力位置Ｐｉ２を結ぶ線分上となる位置であって、仮想空間において地面２５ではない位置となる。すなわち、図４に示されるように、指示位置Ｐｓ２は、壁２６上の位置となる。なお、本実施形態においては、指示位置Ｐｓ２は、上記線分上で、プレイヤキャラクタ２１から離れた位置となるように算出される（詳細は後述する）。
【００５３】
また、図３および図４の例では示されないが、入力位置が範囲条件および距離条件を満たす場合、情報処理システム１は、入力位置に対応する仮想空間内の位置を指示位置とする。
【００５４】
以上のように、本実施形態においては、ユーザの方向入力に応じて指示位置が移動される場合、入力位置（に対応する仮想空間内の位置）がそのまま指示位置とならない場合がある。具体的には、本実施形態においては、仮想空間内の距離に関してプレイヤキャラクタ２１から遠い位置が指示位置とならないように、上記距離条件を考慮して指示位置が算出される。ここで、指示位置を移動させる操作に関しては、例えば画面の右上から左下まで指示位置を移動させる場合のように、指示位置を大きく動かす場合には時間を要するおそれがある。そのため、指示位置を大きく動かす場合には、時間を要するために操作性が悪いとユーザが感じるおそれがある。これに対して、本実施形態によれば、距離条件によって指示位置の取り得る範囲が制限されるので、指示位置を大きく動かさなければならない状況が生じにくくなる。したがって、ユーザは指示位置の操作をより快適に行うことができ、操作性を向上することができる。
【００５５】
また、本実施形態においては、プレイヤキャラクタ２１から所定距離よりも遠い領域が指示位置の取り得る範囲から排除される。このような領域は、ユーザが指示位置として指定する必要性が小さいと推測することができ、このような領域を指示位置として指定できないとしても、ユーザにとって不都合は少ない（あるいは無い）と考えられる。むしろ場合によっては、このような領域が指定できないことによってユーザにとって都合が良いと考えられる。したがって、本実施形態によれば、操作の際に生じる不都合が小さく（あるいは不都合が無く）、かつ、操作性の良い操作方法を提供することができる。
【００５６】
また、本実施形態においては、上記範囲条件を用いることによって、画面上におけるプレイヤキャラクタ２１の位置から見た入力位置Ｐｉ２の向きと指示位置Ｐｓ２の向きとが同じ方向となる（図４参照）。詳細は後述するが、これによって、ユーザが違和感を抱きにくい、操作性の良い操作方法を提供することができる。
【００５７】
以上のように、情報処理システム１は、距離条件を満たす位置であって、かつ、範囲条件を満たす位置を、指示位置として入力位置に基づいて算出する。これによって、情報処理システム１は、上述した効果を奏し、画面上の指示位置を指定する操作の操作性を向上することができる。
【００５８】
［３．指示位置の算出］
次に、指示位置の算出方法の詳細について説明する。なお、以下においても、図３および図４に示す状況と同じ状況を例として用いて説明を行う。
【００５９】
（３−１：入力位置の算出）
まず、指示位置を算出するために用いられる入力位置の算出方法の詳細について説明する。入力位置は、スティック１１に対する方向指示入力に応じて算出される。上述のように、本実施形態においては、新たな入力位置は、現在の指示位置に対応する画面上の位置を、方向指示入力に応じた位置および方向へ移動させた位置として算出される。
【００６０】
上記のように、本実施形態においては、新たな入力位置は、最後に算出された指示位置を基準として算出される。すなわち、情報処理システム１は、方向入力装置（スティック１１）から入力情報を取得し、最後に算出された指示位置の画面上における位置を入力情報が示す方向へ移動させた位置となるように、入力情報に基づいて新たな入力位置を算出する。そして、新たな指示位置は、上記新たな入力位置に基づいて算出される。このように、前回の指示位置から、指示された入力方向へ移動した位置を新たな入力位置とすることで、ユーザにとってわかりやすい位置となるように入力位置を算出することができる。
【００６１】
また、本実施形態においては、ユーザの入力に基づいて入力位置Ｐｉ２が算出されると、入力位置Ｐｉ２は、画面上における所定の制限領域内に位置するように補正される。図５は、入力位置を補正するための制限領域の一例を示す図である。図５に示すように、本実施形態においては、画面上において制限領域３０が設定される。制限領域３０は、画面上における所定位置（例えば画面中央の位置）を基準として設定されてもよいし、プレイヤキャラクタ２１に対応する画面上の位置を基準として設定されてもよい。
【００６２】
ユーザの入力に基づいて入力位置が算出されると、情報処理システム１は、入力位置が制限領域３０内に含まれるか否かを判定する。図５に示す入力位置Ｐｉ２のように、入力位置が制限領域３０内である場合、入力位置Ｐｉ２に対する補正は行われない。一方、入力位置が制限領域３０外である場合、制限領域３０内に含まれるように入力位置Ｐｉ２に対する補正が行われる。補正の具体的な方法は任意であるが、本実施形態においては、以下の方法によって補正が行われる。例えば、図５に示す指示位置Ｐｓ５が設定されている状態において、ユーザの入力に基づいて入力位置Ｐｉ６が算出された場合を例として説明する。この場合、補正後の入力位置Ｐｉ７は、最新の指示位置Ｐｓ５と補正前の入力位置Ｐｉ６とを結ぶ線分上であって制限領域３０内の位置となるように算出される。
【００６３】
上記のように、本実施形態においては、入力位置が制限領域３０内に補正されるので、入力位置に基づいて算出される指示位置の画面上における位置は制限領域３０内となる。つまり、情報処理システム１は、指示位置に対応する画面上の位置が画面上における制限領域３０内となるように、指示位置を算出する。これによれば、上記距離条件による方法とは別の方法で、指示位置の取り得る範囲を制限領域３０内に制限することができる。したがって、指示位置を大きく動かさなければならない状況をより生じにくくすることができるので、指示位置を指定する操作の操作性をより向上することができる。なお、他の実施形態においては、制限領域３０を用いた入力位置の補正処理は実行されなくてもよい。
【００６４】
（３−２：指示位置の算出）
上記制限領域３０を用いた補正によって入力位置が（必要に応じて）補正されると、情報処理システム１は、入力位置に基づいて指示位置を算出する。上述のように、指示位置は、上記距離条件および範囲条件を満たすように算出される。ここで、本実施形態においては、情報処理システム１は、画面上におけるプレイヤキャラクタ２１の位置（「キャラクタ位置」と呼ぶ。）Ｐｃと入力位置Ｐｉ２とを結ぶ線分上で二分探索法を用いて候補位置を算出する。そして、候補位置のうちから上記距離条件を満たすものと指示位置とする。以下、本実施形態における指示位置の算出方法の詳細について説明する。
【００６５】
図６は、指示位置を算出する途中の状態の一例を示す図である。本実施形態においては、まず情報処理システム１は、画面上におけるキャラクタ位置Ｐｃから入力位置Ｐｉ２までの線分上を探索範囲とし、当該探索範囲の中点となる位置Ｐｍ１を１回目の候補位置として算出する。そして、情報処理システム１は、１回目の候補位置である位置Ｐｍ１について上記距離条件を満たすか否かを判定する。すなわち、情報処理システム１は、候補位置Ｐｍ１に対応する仮想空間内での位置を算出し、プレイヤキャラクタ２１の位置から、算出された位置までの距離が、上記所定距離以下であるか否かを判定する。
【００６６】
次に、情報処理システム１は、上記１回目の候補位置Ｐｍ１についての判定結果に応じて、２回目の候補位置を算出する。図７は、候補位置の決定方法の一例を示す図である。本実施形態においては、１回目の候補位置Ｐｍ１が距離条件を満たす場合、現在の探索範囲のうちで、（キャラクタ位置Ｐｃから見て）候補位置Ｐｍ１よりも奥側の半分を新たな探索範囲とし、新たな探索範囲の中点を２回目の候補位置Ｐｍ２とする。すなわち、この場合、２回目の候補位置Ｐｍ２は、１回目の候補位置Ｐｍ１と入力位置Ｐｉ２との中点の位置に決定される（図７に示す（ａ））。一方、１回目の候補位置Ｐｍ１が距離条件を満たさない場合、現在の探索範囲のうちで、（キャラクタ位置Ｐｃから見て）候補位置Ｐｍ１よりも手前側の半分を新たな探索範囲とし、新たな探索範囲の中点を２回目の候補位置Ｐｍ２とする。すなわち、この場合、２回目の候補位置Ｐｍ２は、１回目の候補位置Ｐｍ１とキャラクタ位置Ｐｃとの中点の位置に決定される（図７に示す（ｂ））。なお、２回目の候補位置Ｐｍ２についても１回目の候補位置Ｐｍ１と同様、距離条件を満たすか否かが判定される。
【００６７】
本実施形態においては、情報処理システム１は、候補位置の決定処理と、新たに決定された候補位置に関する判定処理（候補位置が距離条件を満たすか否かの判定）とを、所定の終了条件が満たされるまで繰り返す。なお、本実施形態においては、終了条件は、上記決定処理と判定処理を所定回数（例えば７回）だけ実行したことである。終了条件が満たされると、情報処理システム１は、距離条件を満たす候補位置であって最後に算出された候補位置に対応する仮想空間内の位置を、指示位置とする。すなわち、本実施形態においては、距離条件を満たす候補位置のうちで、キャラクタ位置Ｐｃから最も遠い候補位置に対応する仮想空間内の位置が指示位置となる。
【００６８】
なお、３回目以降の候補位置を算出する方法は２回目の候補位置を算出する方法と同様である。すなわち、ｎ回目（ｎは１以上の整数）の候補位置Ｐｍ（ｎ）が距離条件を満たす場合、ｎ回目の探索範囲のうちで候補位置Ｐｍ（ｎ）よりも奥側の半分を新たな探索範囲とし、新たな探索範囲の中点が（ｎ＋１）回目の候補位置Ｐｍ（ｎ＋１）として設定される。一方、ｎ回目の候補位置Ｐｍ（ｎ）が距離条件を満たさない場合、ｎ回目の探索範囲のうちで候補位置Ｐｍ（ｎ）よりも手前側の半分を新たな探索範囲とし、新たな探索範囲の中点が（ｎ＋１）回目の候補位置Ｐｍ（ｎ＋１）として設定される。例えば、図７に示す（ａ）の場合において、２回目の候補位置Ｐｍ２が距離条件を満たす場合、３回目の候補位置Ｐｍ３は、２回目の候補位置Ｐｍ２と入力位置Ｐｉ２との中点の位置に決定される（図７に示す（ｃ））。一方、２回目の候補位置Ｐｍ２が距離条件を満たさない場合、３回目の候補位置Ｐｍ３は、１回目の候補位置Ｐｍ１と２回目の入力位置Ｐｉ２との中点の位置に決定される（図７に示す（ｄ））。
【００６９】
また、上記終了条件の内容は任意である。例えば他の実施形態においては、ある候補位置と次に算出される候補位置との差が所定値以下になったことを終了条件としてもよい。上記の差は、画面上の距離であってもよいし、仮想空間内の距離であってもよい。
【００７０】
以上のように、本実施形態においては、情報処理システム１は、範囲条件を満たす（キャラクタ位置Ｐｃと入力位置Ｐｉ２との線分上となる）１以上の候補位置を入力位置に基づいて算出する。そして、候補位置のうちで距離条件を満たす候補位置に対応する仮想空間内の位置を、指示位置として決定する。これによれば、範囲条件および距離条件を満たす指示位置を容易に算出することができる。
【００７１】
また、本実施形態においては、情報処理システム１は、画面上における基準位置（キャラクタ位置Ｐｃ）と入力位置とについて二分探索法を用いることによって、所定の終了条件が満たされるまで候補位置を繰り返し算出する。また、情報処理システム１は、候補位置が算出される毎に距離条件を満たすか否かを判定し、距離条件を満たす候補位置から指示位置を決定する。このように、二分探索法を用いて候補位置を算出することによって、候補位置を効率良く決定することができ、指示位置の算出処理を効率良く行うことができる。
【００７２】
なお、候補位置を用いて指示位置を算出する方法は、本実施形態のような二分探索法を用いる方法に限らない。例えば他の実施形態においては、情報処理システム１は、キャラクタ位置Ｐｃから入力位置Ｐｉ２までの線分上において所定の間隔で候補位置を設定し、各候補位置について距離条件を判定してもよい。そして、情報処理システム１は、距離条件を満たす候補位置のうちから指示位置を選択する（例えば、キャラクタ位置Ｐｃから最も離れた候補位置を指示位置とする）ようにしてもよい。
【００７３】
また、本実施形態においては、距離条件を満たす候補位置のうちで基準位置（プレイヤキャラクタ２１の位置）から最も離れた位置に対応する仮想空間内の位置が指示位置として決定される。したがって、候補位置のうちで入力位置に最も近いものが指示位置となる。これによれば、ユーザが指示した方向と、指示位置の移動方向とのずれを小さくすることができるので、ユーザにとって違和感が少なく、操作性の良い操作方法を提供することができる。
【００７４】
なお、他の実施形態においては、指示位置は、候補位置を用いない方法で算出されてもよい。例えば、情報処理システム１は、上記範囲条件を満たす仮想空間内の位置のうちで、画面上における距離が基準位置から最も離れた位置（かつ、距離条件を満たす位置）を指示位置としてもよい。具体的には、情報処理システム１は、まず、範囲条件を満たし、かつ、距離条件を満たす仮想空間内の領域を算出する。次に、情報処理システム１は、算出された領域のうちで、画面上における距離が基準位置から最も遠い位置を指示位置とする。これによっても本実施形態と同様、ユーザが指示した方向と、指示位置の移動方向とのずれを小さくすることができる。なお、このとき、指示位置は、厳密な意味で「最も離れた位置」である必要はない。指示位置は、上記特定された領域のうちで、画面上における距離が基準位置から最も離れた位置の付近の位置（最も離れた位置から所定距離内の位置）であってもよい。これによっても本実施形態と同様、ユーザが指示した方向と、指示位置の移動方向とのずれを小さくする効果を有する。
【００７５】
なお、本実施形態においては、候補位置に関して距離条件を判定する場合、候補位置Ｐｍ１に対応する仮想空間内での位置として、画面に表示されている位置が算出される。つまり、情報処理システム１は、画面に仮想空間を表示する場合の視点の位置から直線を延ばした場合に当該直線が最初に接触した位置を候補位置とする。そのため、指示位置は、仮想空間内の位置のうち、画面に表示されている位置となる。これによれば、画面に表示されている位置が指示位置となるので、仮想空間内に配置されるオブジェクトによって指示位置が隠れてしまうことなく、指示位置をユーザにわかりやすく提示することができる。
【００７６】
（３−３：範囲条件）
上述のように、本実施形態においては、情報処理システム１は、「画面上において、プレイヤキャラクタ２１の位置と、入力位置とを結ぶ線分上の範囲内となること」を範囲条件として用いる。ここで、範囲条件は、指示位置に対応する画面上の位置が、基準位置（プレイヤキャラクタ２１の位置）に対応する画面上の位置と入力位置とによって決められる範囲内となることを示す任意の条件でよい。
【００７７】
ここで、本実施形態においては、入力位置と指示位置とが対応しない（画面上において同じ位置にならない）場合があり、ユーザの指示した入力方向と指示位置の移動方向とが一致しない場合がある。例えば、図３および図４に示す例では、スティック１１に対して右方向の入力が行われるのに対して、ポインタ画像２２は下方向へ移動する。そのため、ユーザは指示位置の移動先を予測しにくく、指示位置の挙動に違和感を抱くおそれがある。
【００７８】
これに関して、本実施形態においては、情報処理システム１は、「指示位置に対応する画面上の位置が、基準位置に対応する画面上の位置と入力位置との間の所定範囲内となること」を範囲条件として用いる。これによれば、指示位置は基準位置と入力位置との間の範囲内となるので、基準位置から見た入力位置の向きと指示位置の向きとが概ね同じ方向となる。したがって、画面上において入力位置と指示位置とが同じ位置にならない場合でもユーザが違和感を抱きにくくなるので、操作性の良い操作方法を提供することができる。
【００７９】
なお、本実施形態における範囲条件は、上記所定の範囲を、キャラクタ位置Ｐｃと入力位置Ｐｉ２とを結ぶ線分上の範囲とした範囲条件である。つまり、本実施形態における範囲条件は、指示位置に対応する画面上の位置が、基準位置に対応する画面上の位置と入力位置とを結ぶ線分上に位置することである。これによれば、上記線分上から指定位置を容易に算出することができる。
【００８０】
なお、上記所定範囲は、例えば、キャラクタ位置Ｐｃと入力位置Ｐｉ２とを結ぶ線分から所定距離以内の範囲として設定されてもよい。これによれば、上記線分から少し外れた位置が指示位置となり得る。そのため、場合によっては、画面上での距離が入力位置Ｐｉ２により近い位置を指示位置とすることができ、それによってユーザの違和感をより抑えることができる。
【００８１】
（３−４：距離条件）
上述のように、本実施形態においては、情報処理システム１は、「仮想空間において、プレイヤキャラクタ２１からの距離が所定距離内となること」を距離条件として用いた。これによれば、指示位置が取り得る範囲を、プレイヤキャラクタ２１から所定距離内となる範囲に容易に制限することができる。
【００８２】
また、本実施形態においては、情報処理システム１は、仮想空間における「基準位置から指示位置までの距離」として、仮想空間における所定平面（例えば地面と平行な平面）上での距離を用いてもよい。つまり、情報処理システム１は、仮想空間における所定平面に関する距離が基準位置から所定距離内となることを距離条件として、指示位置を算出してもよい。これによれば、情報処理システム１は、所定平面と垂直な方向の長さを無視して距離条件を判定することとなる。例えば、地面を所定平面とする場合、プレイヤキャラクタ２１の位置から段差がある（高さ方向に差がある）位置を指示位置とすることができる。
【００８３】
距離条件は、仮想空間における所定の基準位置からの距離に関する任意の条件でよい。本実施形態においては、基準位置はプレイヤキャラクタ２１の位置であったが、他の実施形態においては、基準位置は他の位置であってもよい。例えば、画面の中央に対応する仮想空間内の位置が基準位置に設定されてもよいし、ユーザが設定した位置が基準位置に設定されてもよい。
【００８４】
また、本実施形態においては、指示位置が基準位置から所定距離内となることを条件としたが、他の実施形態においては、距離条件の内容はこれに限らない。例えば他の実施形態においては、情報処理システム１は、キャラクタ位置Ｐｃと入力位置Ｐｉ２とを結ぶ線分上をキャラクタ位置Ｐｃから進んだ場合に「（仮想空間における）基準位置からの距離」が急激に変化する（変化量が所定値以上となる）位置を特定し、当該位置の手前の位置を指示位置としてもよい。例えば図３に示す例においては、プレイヤキャラクタ２１と入力位置Ｐｉ２を結ぶ線分上において、仮想空間での位置が壁２６から地面２５に変化する箇所で、「基準位置からの距離」が急激に変化する。そのため、上記の方法によっても本実施形態と同様に、壁２６の位置を指示位置として算出することができる。このように、距離条件として、基準位置からの距離の変化量に関する条件が用いられても良い。
【００８５】
（３−５：許可領域）
次に、本実施形態において指示位置の算出に用いられる許可領域について説明する。本実施形態においては、情報処理システム１は、上記距離条件を単に用いるのではなく、許可領域を考慮した距離条件をゲーム状況に応じて用いる。詳細は後述するが、許可領域とは、画面上において（画面に対応する平面において）設定される領域であり、上記“（２−２：指示位置の制御の概要）”で述べた距離条件を満たさない場合でも、許可領域内の位置であれば指示位置となり得る。
【００８６】
図８は、距離条件が満たされる範囲の一例を示す図である。上述のように、距離条件は、「プレイヤキャラクタ２１から所定距離以内であること」であるので、図８に示す例においては、画面に表示される仮想空間のうちで距離条件を満たす範囲は、領域３１の範囲（図８において斜線で示す範囲）となる。ここで、図８においては、仮想空間を表示するための視線（仮想カメラの視線）の地面に対する俯角が、図３に示す場合よりも小さい。そのため、画面上で見ると領域３１は、プレイヤキャラクタ２１の前方（画面上においては上側）にはあまり広がっていない。図８に示す例においては、地面がほぼ平らであり、プレイヤキャラクタ２１のはるか前方まで地面が広がっているにも関わらず、プレイヤキャラクタ２１の前方については広い範囲で指示位置を移動させることができない。そのため、ユーザは、指示位置を十分に移動させることができず、操作を行いにくいと感じるおそれがある。
【００８７】
そこで、本実施形態においては、情報処理システム１は、仮想カメラの俯角が所定角度以下となる場合には、許可領域を設定する。図９は、許可領域の一例を示す図である。図９においては、画面上において許可領域３２が設定されている。許可領域３２は、どのような範囲に設定されてもよいが、本実施形態においては、上記基準位置（プレイヤキャラクタ２１の位置）に対応する画面上の位置を基準に設定される。すなわち、プレイヤキャラクタ２１を中心とする楕円領域が許可領域３２として設定される。なお、許可領域３２は、上述した制限領域３０よりも狭い（すなわち、許可領域３２は制限領域３０内に含まれる）ように設定される。
【００８８】
上記許可領域３２が設定される場合、情報処理システム１は、許可領域３２を考慮した距離条件を用いて指示位置の算出を行う。つまり、仮想空間内におけるある位置が、プレイヤキャラクタ２１から所定距離以内とならない場合であっても、画面上において許可領域３２内に含まれる場合には、当該位置が距離条件を満たすと判断される。したがって、許可領域３２内においては指示位置を移動させることが可能となる。図１０は、図９に示す領域３１および許可領域３２の一例を真上から見た図である。図９および図１０に示すように、許可領域３２を設定することによって、ユーザは、プレイヤキャラクタ２１の前方においてより広い範囲を指示位置とすることが可能となる。
【００８９】
許可領域３２が設定される場合、指示位置の算出処理において用いられる距離条件は、「指示位置に対応する画面上の位置が許可領域内となるか、または、指示位置が仮想空間においてプレイヤキャラクタの位置から所定距離内となること」である。すなわち、候補位置が距離条件を満たすか否かの判断は、許可領域３２が設定されない場合とは異なる。より具体的には、情報処理システム１は、候補位置に対応する画面上の位置が許可領域３２内となる場合、距離条件が満たされると判定する。また、候補位置がプレイヤキャラクタ２１から所定距離以内となる場合も、距離条件が満たされると判定する。一方、候補位置に対応する画面上の位置が許可領域３２内とならず、かつ、候補位置がプレイヤキャラクタ２１から所定距離以内とならない場合、距離条件が満たされないと判定する。なお、候補位置を算出する方法は、許可領域３２が設定される場合も許可領域３２が設定されない場合と同じである。
【００９０】
以上のように、本実施形態においては、（所定条件下で）許可領域３２を考慮した距離条件が用いられる。つまり、情報処理システム１は、指示位置に対応する画面上の位置が、基準位置（プレイヤキャラクタ２１の位置）に対応する画面上の位置を基準とする許可領域３２内となるか、または、指示位置が仮想空間において基準位置から所定距離内となることを距離条件として用いて指示位置を算出する。これによれば、許可領域３２内の範囲については、仮想空間における距離に関わらず、指示位置として指定することが可能となる。これによって、指示位置を移動させる操作の操作性をより向上することができる。
【００９１】
なお、本実施形態においては、情報処理システム１は、仮想空間を画面に表示するための仮想カメラの俯角が所定角度以下である場合には許可領域３２を設定し、当該俯角が所定角度より大きい場合には許可領域３２を設定しない。ここで、許可領域３２を設定するか否か（許可領域３２を考慮した距離条件を用いるか否か）の条件は任意である。例えば、情報処理システム１は、ユーザの指示に応じて許可領域３２の設定／非設定が切り替えられてもよい。また、プレイヤキャラクタの状態（例えば、指示位置に対して行われるプレイヤキャラクタの動作等）に応じて許可領域３２の設定／非設定を切り替えられてもよい。また、他の実施形態においては、許可領域３２が常に設定されてもよいし、許可領域３２が常に設定されなくてもよい。
【００９２】
また、本実施形態においては、許可領域３２の位置および大きさは、画面上において固定であるが、他の実施形態においては、許可領域３２の位置および／または大きさは可変であってもよい。例えば、他の実施形態においては、情報処理システム１は、プレイヤキャラクタの状態（例えば、指示位置に対して行われるプレイヤキャラクタの動作等）に応じて許可領域３２の位置および／または大きさを変更してもよい。例えば、プレイヤキャラクタ２１が、自身の近くでしか使用できないアイテムを使用可能な状態である場合には、許可領域３２を相対的に小さくし、自身から離れた位置で使用できるアイテムを使用可能な状態である場合には、許可領域３２を相対的に大きくしてもよい。
【００９３】
［４．指示位置算出処理の具体例］
以下、本実施形態において情報処理システム１（情報処理装置３）で実行される指示位置算出処理の具体的な一例について説明する。図１１は、本実施形態において情報処理装置３（ＣＰＵ１４）が実行する指示位置算出処理の流れの一例を示すフローチャートである。本実施形態においては、図１１に示す一連の処理は、ＣＰＵ１４が、プログラム記憶部１６に記憶される情報処理プログラムを実行することによって行われる。
【００９４】
図１１に示す指示位置算出処理が開始されるタイミングは任意である。本実施形態においては、上記情報処理プログラムが、所定のゲームプログラムの一部として構成されるものとする。このとき、図１１に示す指示位置算出処理は、例えば上記ゲームプログラムの実行を開始する指示をユーザが行ったことに応じて開始される。また、情報処理プログラム（ゲームプログラム）は、適宜のタイミングでその一部または全部がメモリ１５に読み出され、ＣＰＵ１４によって実行される。これによって、図１１に示す一連の処理が開始される。なお、上記情報処理プログラムは、情報処理装置３内のプログラム記憶部１６に予め記憶されているものとする。ただし、他の実施形態においては、情報処理プログラムは、情報処理装置３に着脱可能な記憶媒体から取得されてメモリ１５に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてメモリ１５に記憶されてもよい。
【００９５】
なお、図１１に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて（または代えて）別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をＣＰＵが実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよい。
【００９６】
指示位置算出処理においては、まずステップＳ１において、ＣＰＵ１４は、操作データを取得する。すなわち、ＣＰＵ１４は、スティック１１の出力値のデータを含む操作データを入力装置２から受信し、受信した操作データをメモリ１５に記憶する。ステップＳ１の次にステップＳ２の処理が実行される。
【００９７】
ステップＳ２において、ＣＰＵ１４は、ステップＳ１で取得した操作データに基づいて入力位置を算出する。本実施形態においては、入力位置は、上記“（２−２：指示位置の制御の概要）”および“（３−１：画面上での入力位置の制限）”で述べた方法に従って算出される。ＣＰＵ１４は、操作データをメモリ１５から読み出し、操作データに基づいて算出した入力位置を示すデータをメモリ１５に記憶する。ステップＳ２の次にステップＳ３の処理が実行される。
【００９８】
ステップＳ３において、ＣＰＵ１４は、許可領域を設定するか否かを判定する。具体的には、仮想カメラの視線方向の俯角が所定角度以下であるか否かを判定する。なお、仮想カメラの視線方向は、後述するステップＳ７の処理において設定・変更される。ステップＳ３における判定結果が否定である場合、ステップＳ４の処理が実行される。一方、ステップＳ３における判定結果が肯定である場合、ステップＳ５の処理が実行される。
【００９９】
ステップＳ４において、ＣＰＵ１４は、許可領域を設定せずに指示位置を算出する。すなわち、上記“（３−２：指示位置の算出）”で述べた方法に従って指示位置が算出される。具体的な処理としては、ＣＰＵ１４は、メモリ１５から読み出した入力位置のデータに基づいて指示位置を算出し、算出した指示位置を示すデータをメモリ１５に記憶する。ステップＳ４の次に、後述するステップＳ６の処理が実行される。
【０１００】
ステップＳ５において、ＣＰＵ１４は、許可領域を設定して指示位置を算出する。すなわち、上記“（３−２：指示位置の算出）”および“（３−５：許可領域）”で述べた方法に従って指示位置が算出される。具体的な処理としては、ＣＰＵ１４は、メモリ１５から読み出した入力位置のデータに基づいて指示位置を算出し、算出した指示位置を示すデータをメモリ１５に記憶する。ステップＳ５の次に、後述するステップＳ６の処理が実行される。
【０１０１】
ステップＳ６において、ＣＰＵ１４は、指示位置を示す画像を表示する。具体的には、ＣＰＵ１４は、仮想空間における指示位置に、ポインタ画像を表すオブジェクトを配置し、プレイヤキャラクタ２１から指示位置までを結ぶ線のオブジェクトを配置する。これによって、後述する表示処理（ステップＳ７）によって、画面上にポインタ画像２２および線２３が表示される。ステップＳ６の次に、後述するステップＳ７の処理が実行される。
【０１０２】
ステップＳ７において、ＣＰＵ１４は、他の情報処理（上記ステップＳ１〜Ｓ６における処理以外のゲーム処理）を実行する。他の情報処理としては、例えば、ユーザによる入力に従ってプレイヤキャラクタ２１の動作を制御する処理、所定のアルゴリズムに従ってプレイヤキャラクタ２１以外の他のキャラクタの動作を制御する処理、仮想カメラの位置（視点）および姿勢（視線方向）を制御する処理、および、仮想カメラに基づいてゲーム画像を生成してテレビ４に表示させる処理等がある。ステップＳ７の次にステップＳ８の処理が実行される。
【０１０３】
ステップＳ８において、ＣＰＵ１４は、指示位置算出処理を終了するか否かを判定する。この判定の具体的な方法は任意である。例えば、ゲームプログラムの実行を終了する旨の指示がユーザによって行われた場合には、ＣＰＵ１４は、指示位置算出処理を終了すると判定し、ユーザによる当該指示がない場合には、操作位置算出処理を終了しないと判定する。ステップＳ８の判定結果が否定である場合、ステップＳ１の処理が再度実行される。以降、ステップＳ８において操作位置算出処理を終了すると判定されるまで、ステップＳ１〜Ｓ８の処理が繰り返し実行される。一方、ステップＳ８の判定結果が肯定である場合、ＣＰＵ１４は、図１１に示す指示位置算出処理を終了する。
【０１０４】
［５．変形例］
（指示位置に基づく情報処理に関する変形例）
本実施形態においては、上述の方法で算出された指示位置に基づく情報処理の一例として、指示位置を示す画像を表示する（指示位置を示すオブジェクトを配置する）処理が実行された。ここで、指示位置に基づく情報処理の内容は任意である。例えば、他の実施形態においては指示位置を示す画像は表示されなくてもよく、情報処理システム１は、仮想空間に配置されるオブジェクトに、指示位置に対して何らかの動作（例えば、指示位置へ移動する動作や、指示位置に対する射撃動作）を行わせる処理を実行してもよい。
【０１０５】
また、本実施形態においては、ゲームを進行するためのゲーム処理に対して、指示位置算出処理が用いられる場合を例として説明したが、本実施形態における指示位置算出処理は、ゲーム処理以外の任意の情報処理に用いることが可能である。
【０１０６】
（入力装置に関する変形例）
上記実施形態においては、方向を入力することが可能な方向入力装置（スティック１１）に対する入力に基づいて入力位置を算出する場合を例として説明した。ここで、他の実施形態においては、方向入力装置とは異なる種類の入力装置に対する入力に基づいて入力位置が算出されてもよい。例えば他の実施形態においては、情報処理システム１は、ポインティングデバイス（タッチパネルやマウス等）によって指定された位置を入力位置として算出するようにしてもよい。
【産業上の利用可能性】
【０１０７】
以上のように、本実施形態は、指示位置を指定する操作の操作性を向上すること等を目的として、例えばゲーム装置、ゲームシステム、ゲームプログラム等として利用することが可能である。
【符号の説明】
【０１０８】
１  情報処理システム
２  入力装置
３  情報処理装置
４  テレビ
１１  スティック
１４  ＣＰＵ
１５  メモリ
１６  プログラム記憶部
２２  ポインタ画像
３０  制限領域
３２  許可領域
【図１】
2015006252.tif 000003
【図２】
2015006252.tif 000004
【図３】
2015006252.tif 000005
【図４】
2015006252.tif 000006
【図５】
2015006252.tif 000007
【図６】
2015006252.tif 000008
【図７】
2015006252.tif 000009
【図８】
2015006252.tif 000010
【図９】
2015006252.tif 000011
【図１０】
2015006252.tif 000012
【図１１】
2015006252.tif 000013