(57)【特許請求の範囲】
【請求項１】
仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、を記憶する記憶部と、
当該仮想空間において当該視点の位置から見た当該複数のオブジェクトを表す画像を生成する生成部と、
前記生成された画像を表示装置の画面に表示させる表示部と、
当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部と、
前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部と、
当該視点の位置を移動する移動方向と移動距離を計算する移動計算部と、
前記計算された移動距離を前記求められた距離に基づいて補正する補正部と、
前記計算された移動方向に前記補正された結果の移動距離だけ移動するように、前記記憶される視点の位置を更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新部と、
を備え、
前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
前記距離計算部は、前記選択されたオブジェクトの位置が移動した場合、当該オブジェクトの移動を開始してから所定時間経過後、前記記憶されている履歴に基づいて、当該オブジェクトに追随するように当該注目領域の位置を変え、
前記補正部は、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
ことを特徴とするゲーム装置。
【請求項２】
仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、を記憶する記憶部と、
当該仮想空間において当該視点の位置から当該視線の向きに見た当該複数のオブジェクトを表す画像を生成する生成部と、
前記生成された画像を表示装置の画面に表示させる表示部と、
当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部と、
前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部と、
当該視線の向きを回転する回転方向と回転角度を計算する移動計算部と、
前記計算された回転角度を前記求められた距離に基づいて補正する補正部と、
前記計算された回転方向に前記補正された結果の回転角度だけ回転するように、前記記憶される視線の向きを更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新部と、
を備え、
前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
前記距離計算部は、前記選択されたオブジェクトの位置が移動した場合、当該オブジェクトの移動を開始してから所定時間経過後、前記記憶されている履歴に基づいて、当該オブジェクトに追随するように当該注目領域の位置を変え、
前記補正部は、前記求められた距離が小さいほど補正後の回転角度が小さくなるように、前記計算された回転角度を補正する、
ことを特徴とするゲーム装置。
【請求項３】
請求項２に記載のゲーム装置であって、
前記移動計算部は、当該視点の位置を移動する移動方向と移動距離を更に計算し、
前記補正部は、前記計算された移動距離を前記求められた距離に基づいて更に補正し、
前記更新部は、前記計算された移動方向に前記補正された結果の移動距離だけ移動するように、前記記憶される視点の位置を更に更新し、
前記補正部は、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
ことを特徴とするゲーム装置。
【請求項４】
請求項１乃至３のいずれか１項に記載のゲーム装置であって、
当該注目領域は、前記生成された画像の中央に配置される、
ことを特徴とするゲーム装置。
【請求項５】
仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、を記憶する記憶部と、
当該仮想空間において当該視点の位置から見た当該複数のオブジェクトを表す画像を生成する生成部と、
前記生成された画像を表示装置の画面に表示させる表示部と、
当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を指定量だけ移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部と、
前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部と、
当該視点の位置を移動する移動方向と移動距離を計算する移動計算部と、
前記計算された移動距離を前記求められた距離に基づいて補正する補正部と、
前記計算された移動方向に前記補正された結果の移動距離だけ移動するように、前記記憶される視点の位置を更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新部と、
を備え、
前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
前記補正部は、前記記憶されている移動指示入力が示す各々の指定量に基づいて当該移動距離の補正量を求め、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
ことを特徴とするゲーム装置。
【請求項６】
仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、を記憶する記憶部と、
当該仮想空間において当該視点の位置から当該視線の向きに見た当該複数のオブジェクトを表す画像を生成する生成部と、
前記生成された画像を表示装置の画面に表示させる表示部と、
当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を指定量だけ移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部と、
前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部と、
当該視線の向きを回転する回転方向と回転角度を計算する移動計算部と、
前記計算された回転角度を前記求められた距離に基づいて補正する補正部と、
前記計算された回転方向に前記補正された結果の回転角度だけ回転するように、前記記憶される視線の向きを更新する更新部と、
を備え、
前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
前記補正部は、前記記憶されている移動指示入力が示す各々の指定量に基づいて当該回転角度の補正量を求め、前記求められた距離が小さいほど補正後の回転角度が小さくなるように、前記計算された回転角度を補正する、
ことを特徴とするゲーム装置。
【請求項７】
請求項１、３、５のいずれか１項に記載のゲーム装置であって、
前記距離計算部は、前記生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、のそれぞれの距離の平均値を計算し、
前記補正部は、前記計算された平均値が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
ことを特徴とするゲーム装置。
【請求項８】
請求項１、３、５のいずれか１項に記載のゲーム装置であって、
前記距離計算部は、前記生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、のそれぞれの距離の最大値を計算し、
前記補正部は、前記計算された最大値が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
ことを特徴とするゲーム装置。
【請求項９】
請求項１、３、５のいずれか１項に記載のゲーム装置であって、
前記距離計算部は、前記生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、のそれぞれの距離の最小値を計算し、
前記補正部は、前記計算された最小値が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
ことを特徴とするゲーム装置。
【請求項１０】
請求項１、３、５のいずれか１項に記載のゲーム装置であって、
前記距離計算部は、前記生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、のそれぞれの距離の合計値を計算し、
前記補正部は、前記計算された合計値が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
ことを特徴とするゲーム装置。
【請求項１１】
記憶部、生成部、表示部、入力受付部、距離計算部、移動計算部、補正部、更新部を有するゲーム装置にて実行されるゲーム処理方法であって、
前記記憶部には、仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、が記憶され、
前記生成部が、当該仮想空間において当該視点の位置から見た当該複数のオブジェクトを表す画像を生成する生成ステップと、
前記表示部が、前記生成された画像を表示装置の画面に表示させる表示ステップと、
前記入力受付部が、当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付ステップと、
前記距離計算部が、前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算ステップと、
前記移動計算部が、当該視点の位置を移動する移動方向と移動距離を計算する移動計算ステップと、
前記補正部が、前記計算された移動距離を前記求められた距離に基づいて補正する補正ステップと、
前記更新部が、前記計算された移動方向に前記補正された結果の移動距離だけ移動するように、前記記憶される視点の位置を更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新ステップと、
を備え、
前記記憶部には、当該移動指示入力の所定回数分の履歴が更に記憶され、
前記距離計算ステップでは、前記距離計算部が、前記選択されたオブジェクトの位置が移動した場合、当該オブジェクトの移動を開始してから所定時間経過後、前記記憶されている履歴に基づいて、当該オブジェクトに追随するように当該注目領域の位置を変え、
前記補正ステップでは、前記補正部が、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
ことを特徴とするゲーム処理方法。
【請求項１２】
記憶部、生成部、表示部、入力受付部、距離計算部、移動計算部、補正部、更新部を有するゲーム装置にて実行されるゲーム処理方法であって、
前記記憶部には、仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、が記憶され、
前記生成部が、当該仮想空間において当該視点の位置から当該視線の向きに見た当該複数のオブジェクトを表す画像を生成する生成ステップと、
前記表示部が、前記生成された画像を表示装置の画面に表示させる表示ステップと、
前記入力受付部が、当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付ステップと、
前記距離計算部が、前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目位置を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算ステップと、
前記移動計算部が、当該視線の向きを回転する回転方向と回転角度を計算する移動計算ステップと、
前記補正部が、前記計算された回転角度を前記求められた距離に基づいて補正する補正ステップと、
前記更新部が、前記計算された回転方向に前記補正された結果の回転角度だけ回転するように、前記記憶される視線の向きを更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新ステップと、
を備え、
前記記憶部には、当該移動指示入力の所定回数分の履歴が更に記憶され、
前記距離計算ステップでは、前記距離計算部が、前記選択されたオブジェクトの位置が移動した場合、当該オブジェクトの移動を開始してから所定時間経過後、前記記憶されている履歴に基づいて、当該オブジェクトに追随するように当該注目領域の位置を変え、
前記補正ステップでは、前記補正部が、前記求められた距離が小さいほど補正後の回転角度が小さくなるように、前記計算された回転角度を補正する、
ことを特徴とするゲーム処理方法。
【請求項１３】
記憶部、生成部、表示部、入力受付部、距離計算部、移動計算部、補正部、更新部を有するゲーム装置にて実行されるゲーム処理方法であって、
前記記憶部には、仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、が記憶され、
前記生成部が、当該仮想空間において当該視点の位置から見た当該複数のオブジェクトを表す画像を生成する生成ステップと、
前記表示部が、前記生成された画像を表示装置の画面に表示させる表示ステップと、
前記入力受付部が、当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を指定量だけ移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付ステップと、
前記距離計算部が、前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算ステップと、
前記移動計算部が、当該視点の位置を移動する移動方向と移動距離を計算する移動計算ステップと、
前記補正部が、前記計算された移動距離を前記求められた距離に基づいて補正する補正ステップと、
前記更新部が、前記計算された移動方向に前記補正された結果の移動距離だけ移動するように、前記記憶される視点の位置を更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新ステップと、
を備え、
前記記憶部には、当該移動指示入力の所定回数分の履歴が更に記憶され、
前記補正ステップでは、前記補正部が、前記記憶されている移動指示入力が示す各々の指定量に基づいて当該移動距離の補正量を求め、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
ことを特徴とするゲーム処理方法。
【請求項１４】
記憶部、生成部、表示部、入力受付部、距離計算部、移動計算部、補正部、更新部を有するゲーム装置にて実行されるゲーム処理方法であって、
前記記憶部には、仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、が記憶され、
前記生成部が、当該仮想空間において当該視点の位置から当該視線の向きに見た当該複数のオブジェクトを表す画像を生成する生成ステップと、
前記表示部が、前記生成された画像を表示装置の画面に表示させる表示ステップと、
前記入力受付部が、当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を指定量だけ移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付ステップと、
前記距離計算部が、前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算ステップと、
前記移動計算部が、当該視線の向きを回転する回転方向と回転角度を計算する移動計算ステップと、
前記補正部が、前記計算された回転角度を前記求められた距離に基づいて補正する補正ステップと、
前記更新部が、前記計算された回転方向に前記補正された結果の回転角度だけ回転するように、前記記憶される視線の向きを更新する更新ステップと、
を備え、
前記記憶部には、当該移動指示入力の所定回数分の履歴が更に記憶され、
前記補正ステップでは、前記補正部が、前記記憶されている移動指示入力が示す各々の指定量に基づいて当該回転角度の補正量を求め、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された回転角度を補正する、
ことを特徴とするゲーム処理方法。
【請求項１５】
仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、を記憶する記憶部を有するコンピュータを、
当該仮想空間において当該視点の位置から見た当該複数のオブジェクトを表す画像を生成する生成部、
前記生成された画像を表示装置の画面に表示させる表示部、
当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部、
前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部、
当該視点の位置を移動する移動方向と移動距離を計算する移動計算部、
前記計算された移動距離を前記求められた距離に基づいて補正する補正部、
前記計算された移動方向に前記補正された結果の移動距離だけ移動するように、前記記憶される視点の位置を更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新部、
として機能させ、
前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
前記距離計算部は、前記選択されたオブジェクトの位置が移動した場合、当該オブジェクトの移動を開始してから所定時間経過後、前記記憶されている履歴に基づいて、当該オブジェクトに追随するように当該注目領域の位置を変え、
前記補正部は、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
ことを特徴とするプログラム。
【請求項１６】
仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、を記憶する記憶部を有するコンピュータを、
当該仮想空間において当該視点の位置から当該視線の向きに見た当該複数のオブジェクトを表す画像を生成する生成部、
前記生成された画像を表示装置の画面に表示させる表示部、
当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部、
前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部、
当該視線の向きを回転する回転方向と回転角度を計算する移動計算部、
前記計算された回転角度を前記求められた距離に基づいて補正する補正部、
前記計算された回転方向に前記補正された結果の回転角度だけ回転するように、前記記憶される視線の向きを更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新部、
として機能させ、
前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
前記距離計算部は、前記選択されたオブジェクトの位置が移動した場合、当該オブジェクトの移動を開始してから所定時間経過後、前記記憶されている履歴に基づいて、当該オブジェクトに追随するように当該注目領域の位置を変え、
前記補正部は、前記求められた距離が小さいほど補正後の回転角度が小さくなるように、前記計算された回転角度を補正する、
ことを特徴とするプログラム。
【請求項１７】
仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、を記憶する記憶部を有するコンピュータを、
当該仮想空間において当該視点の位置から見た当該複数のオブジェクトを表す画像を生成する生成部、
前記生成された画像を表示装置の画面に表示させる表示部、
当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を指定量だけ移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部、
前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部、
当該視点の位置を移動する移動方向と移動距離を計算する移動計算部、
前記計算された移動距離を前記求められた距離に基づいて補正する補正部、
前記計算された移動方向に前記補正された結果の移動距離だけ移動するように、前記記憶される視点の位置を更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新部、
として機能させ、
前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
前記補正部は、前記記憶されている移動指示入力が示す各々の指定量に基づいて当該移動距離の補正量を求め、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
ことを特徴とするプログラム。
【請求項１８】
仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、を記憶する記憶部を有するコンピュータを、
当該仮想空間において当該視点の位置から当該視線の向きに見た当該複数のオブジェクトを表す画像を生成する生成部、
前記生成された画像を表示装置の画面に表示させる表示部、
当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を指定量だけ移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部、
前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部、
当該視線の向きを回転する回転方向と回転角度を計算する移動計算部、
前記計算された回転角度を前記求められた距離に基づいて補正する補正部、
前記計算された回転方向に前記補正された結果の回転角度だけ回転するように、前記記憶される視線の向きを更新する更新部、
として機能させ、
前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
前記補正部は、前記記憶されている移動指示入力が示す各々の指定量に基づいて当該回転角度の補正量を求め、前記求められた距離が小さいほど補正後の回転角度が小さくなるように、前記計算された回転角度を補正する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像表示のスクロール処理による負荷を軽減し、プレイヤにとっての画面の見やすさを向上するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムに関する。
【背景技術】
【０００２】
仮想空間内を表すゲーム画像等の表示手法として、広い仮想空間の一部をモニター表示用の表示領域とし、プレイヤによる操作に応じて表示領域を移動する、いわゆるスクロール処理が広く用いられている。例えば特許文献１には、プレイヤがスティックを使ってタッチパネルにタッチし、任意の方向に画面をスクロールする装置等が開示されている。これによれば、例えば上下左右といったように予め決められた方向に画面をスクロールするだけでなく、プレイヤの都合に合わせて様々な方向に画面をスクロールすることができる。
【特許文献１】特開２００６−１４６５５６号公報
【０００３】
一方で、プレイヤが手で握って操作するコントローラの位置や姿勢の変化に応じて、仮想空間内における視点の位置や視線の向きを変化させ、この視点の位置からこの視線の向きに仮想空間を見た画像を画面に表示するゲームが存在する。このようなゲームにおいて、コントローラの向きや姿勢の変化量が所定量を超えると、上記のようなスクロール処理を実行する必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、どの方向にどの程度の移動量だけスクロールするかといった判断をプレイヤに任せすぎてしまうと、プレイヤの操作の仕方によっては頻繁に画面をスクロールすることになる場合があり、スクロール処理による装置への負担が重くなってしまうという問題があった。
【０００５】
また、例えば上記のコントローラを用い、仮想空間に配置されている視点の位置や視線の向きを変えながらオブジェクトを動かすゲームにおいて、ゲーム画面内のプレイヤの注目度に偏りがあると推定される状態で画面を大きくスクロールさせると、プレイヤの目が画面の変化について行けなくなり、プレイヤにとって見づらい画像になってしまうことがあった。
【０００６】
本発明はこのような課題を解決するものであり、画像表示のスクロール処理による負荷を軽減し、プレイヤにとっての画面の見やすさを向上するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００８】
本発明の第１の観点に係るゲーム装置は、記憶部、生成部、表示部、距離計算部、移動計算部、補正部、更新部を備える。
記憶部は、仮想空間に配置されるオブジェクトの位置と、当該仮想空間に配置される視点の位置と、を記憶する。
生成部は、当該仮想空間において当該視点の位置から見た当該オブジェクトを表す画像を生成する。
表示部は、生成された画像を表示する。
距離計算部は、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、の距離を求める。
移動計算部は、当該視点の位置を移動する移動方向と移動距離を計算する。
補正部は、計算された移動距離を求められた距離に基づいて補正する。
更新部は、計算された移動方向に、補正された結果の移動距離だけ、記憶される視点の位置を移動するように更新する。
そして、補正部は、補正された結果の移動距離が、求められた距離に対して単調減少するように、補正する。
【０００９】
本発明のゲーム装置が実行するゲームとしては、例えば３次元又は２次元の仮想空間におけるゲームを想定している。モニターには仮想空間を視点の位置から所定の視線の向きに眺めた画像が表示される。仮想空間には１つ以上のオブジェクトが配置される。プレイヤは、コントローラを操作して、視点の位置を指定方向に指定量だけ変えるように指示できる。視点の位置を移動すると、画面に表示される画像も移動する。分かりやすく言えば、画面がスクロールする。
視点の位置を変える場合、ゲーム装置は、単位時間あたりの視点の移動方向と移動距離、言い換えれば単位時間あたりの画面のスクロール方向とスクロール量とを求める。視点の移動方向は、例えば、プレイヤがコントローラを動かしたり操作ボタンを押下したりして指定される。視点の移動距離は、例えば、一度の操作につき所定量、あるいは操作の仕方に応じて変化する量、といったように求められる。ただし、ここで求められた視点の移動距離は、次に述べるように補正されることになる。
すなわち、ゲーム装置は、画面内に配置されているオブジェクトと視点との距離を計算する。ゲーム装置は、補正された結果得られる視点の移動距離が、計算されたオブジェクトと視点との距離に対して単調減少するように、視点の移動距離を補正する。つまり、画面内に配置されているオブジェクトが視点の近くであればあるほど、補正された後の視点の移動距離は小さくなる。言い換えれば、画面内に配置されているオブジェクトが視点の近くであればあるほど、小さくスクロールすることになる。
なお、ゲーム装置は、単位時間あたりの視点の移動方向と移動距離ではなく、トータルの視点の移動方向と移動距離を求めるようにしてもよい。この場合、画面内に配置されているオブジェクトが視点の近くであればあるほど、ゆっくりスクロールすることになる。
画面内にオブジェクトが配置されている場合、プレイヤはそのオブジェクトを比較的注視していると推測される。プレイヤが画面の特定部分を注視している状況で大きく（速く）スクロールすると、画面が見にくくなる恐れがある。しかし、本発明によれば、画面のスクロール量が多すぎたり速すぎたりして画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点の移動による画面のスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置への負荷を減らすことができる。
【００１０】
本発明のその他の観点に係るゲーム装置は、記憶部、生成部、表示部、距離計算部、移動計算部、補正部、更新部を備える。
記憶部は、仮想空間に配置されるオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、を記憶する。
生成部は、当該仮想空間において当該視点の位置から当該視線の向きに見た当該オブジェクトを表す画像を生成する。
表示部は、生成された画像を表示する。
距離計算部は、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、の距離を求める。
移動計算部は、当該視線の向きを回転する回転方向と回転角度を計算する。
補正部は、計算された回転角度を求められた距離に基づいて補正する。
更新部は、計算された回転方向に、補正された結果の回転角度だけ、記憶される視線の向きを回転するように更新する。
そして、補正部は、補正された結果の回転角度が、求められた距離に対して単調減少するように、補正する。
【００１１】
本発明のゲーム装置が実行するゲームとして、例えば３次元仮想空間におけるゲームを想定している。モニターには仮想空間を視点の位置から視線の向きに眺めた画像が表示される。仮想空間には１つ以上のオブジェクトが配置される。プレイヤは、コントローラを操作して、視線の向きを指定方向に指定量だけ変えるように指示できる。視線の向きを変えると、画面に表示される画像も移動する。つまり画面がスクロールする。
視線の向きを変える場合、ゲーム装置は、単位時間あたりの視線の回転方向と回転角度を求める。言い換えれば画面のスクロール方向とスクロール量とを求める。視線の回転方向は、例えば、プレイヤがコントローラを動かしたり操作ボタンを押下したりして指定される。視線の回転角度は、例えば、一度の操作につき所定量、あるいは操作の仕方に応じて変化する量、といったように求められる。ただし、ここで求められた視線の回転方向は、次に述べるように補正されることになる。
すなわち、ゲーム装置は、画面内に配置されているオブジェクトと視点との距離を計算する。ゲーム装置は、補正された結果得られる視線の回転角度が、計算されたオブジェクトと視点との距離に対して単調減少するように、視線の回転角度を補正する。つまり、画面内に配置されているオブジェクトが視点の近くであればあるほど、補正された後の視線の回転角度は小さくなる。言い換えれば、画面内に配置されているオブジェクトが視点の近くであればあるほど、小さくスクロールすることになる。
なお、ゲーム装置は、単位時間あたりの視線の回転方向と回転角度ではなく、トータルの視線の回転方向と回転角度を求めるようにしてもよい。この場合、画面内に配置されているオブジェクトが視点の近くであればあるほど、ゆっくりスクロールすることになる。
プレイヤが画面の特定部分を注視している状況で大きく（速く）スクロールすると、画面が見にくくなる恐れがある。しかし、本発明によれば、画面のスクロール量が多すぎたり速すぎたりして画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点の移動による画面のスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置への負荷を減らすことができる。
【００１２】
移動計算部は、当該視点の位置を移動する移動方向と移動距離を更に計算してもよい。
また、補正部は、計算された移動距離を求められた距離に基づいて更に補正してもよい。
また、更新部は、計算された移動方向に、補正された結果の移動距離だけ、記憶される視点の位置を移動するように更に更新してもよい。
また、補正部は、補正された結果の移動距離が、求められた距離に対して単調減少するように、補正してもよい。
【００１３】
本発明のゲーム装置では、プレイヤは、視線の向きだけでなく視点の位置を変えることもできる。つまり、視線の向きを変えるように画面をスクロールすることもできるし、視点の位置を変えるように画面をスクロールすることもできる。
画面のスクロールの際、ゲーム装置は、視線の回転方向と回転角度だけでなく、視点の移動方向と移動距離も求める。視点の移動方向は、例えば、プレイヤがコントローラを動かしたり操作ボタンを押下したりして指定される。視点の移動距離は、例えば、一度の操作につき所定量、あるいは操作の仕方に応じて変化する量、といったように求められる。ただし、ここで求められた視点の移動距離は、視線の回転方向と同様に、補正されることになる。
すなわち、ゲーム装置は、視線の回転方向と同様に、補正された結果得られる視点の移動距離が、計算されたオブジェクトと視点との距離に対して単調減少するように、視点の移動距離を補正する。つまり、画面内に配置されているオブジェクトが視点の近くであればあるほど、補正された後の視点の移動距離は小さくなる。言い換えれば、画面内に配置されているオブジェクトが視点の近くであればあるほど、小さく（ゆっくり）スクロールすることになる。
したがって、本発明によれば、画面のスクロール量が多すぎたり速すぎたりして画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点の移動による画面のスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置への負荷を減らすことができる。
【００１４】
当該仮想空間には、複数のオブジェクトが配置されていてもよい。
また、記憶部は、当該複数のオブジェクトのそれぞれの位置を記憶してもよい。
そして、距離計算部は、当該複数のオブジェクトのうち、生成された画像内の注目領域に描画されたオブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、の距離を求めてもよい。
【００１５】
注目領域とは、他の領域よりもプレイヤによる注目度が比較的高いと推測される領域である。
ゲーム装置は、補正された結果得られる視点の移動距離が、計算されたオブジェクトと視点との距離に対して単調減少するように、視点の移動距離を補正する。つまり、画面の注目領域内に配置されているオブジェクトが視点の近くであればあるほど、補正された後の視点の移動距離は小さくなる。言い換えれば、画面の注目領域内に配置されているオブジェクトが視点の近くであればあるほど、小さくスクロールすることになる。なお、ゲーム装置は、単位時間あたりの視点の移動方向と移動距離ではなく、トータルの視点の移動方向と移動距離を求めるようにしてもよい。この場合、画面の注目領域内に配置されているオブジェクトが視点の近くであればあるほど、ゆっくりスクロールすることになる。
あるいは、ゲーム装置は、補正された結果得られる視線の回転角度が、計算されたオブジェクトと視点との距離に対して単調減少するように、視線の回転角度を補正する。つまり、画面の注目領域内に配置されているオブジェクトが視点の近くであればあるほど、補正された後の視線の回転角度は小さくなる。言い換えれば、画面の注目領域内に配置されているオブジェクトが視点の近くであればあるほど、小さくスクロールすることになる。なお、ゲーム装置は、単位時間あたりの視線の回転方向と回転角度ではなく、トータルの視線の回転方向と回転角度を求めるようにしてもよい。この場合、画面の注目領域内に配置されているオブジェクトが視点の近くであればあるほど、ゆっくりスクロールすることになる。
【００１６】
当該注目領域は、生成された画像の中央に配置されていてもよい。
【００１７】
例えば、プレイヤは画面の中央付近を頻繁に見ながらゲームをプレイすることが推測される。そこで本発明では、スクロール量を補正するために用いられる注目領域の位置を画面の中央付近に固定している。つまり、画面の中央付近に配置されるオブジェクトが視点の近くであればあるほど、プレイヤが画面の中央付近をよく見ている状況であると推測し、スクロールを小さく（遅く）する。したがって、画面の見やすさを向上し、スクロール処理の負荷を軽減することができる。
【００１８】
ゲーム装置は、当該オブジェクトを選択する旨の選択指示入力を当該ユーザから受け付ける入力受付部を更に備えてもよい。
そして、距離計算部は、選択されたオブジェクトの生成された画面内における位置を中心として、当該注目領域を設定してもよい。
【００１９】
例えば、プレイヤが任意のオブジェクトを選択できるゲームにおいては、プレイヤは選択したオブジェクト付近を頻繁に見ながらゲームをプレイすると推測される。例えば、仮想空間に配置されているオブジェクトのいずれかをプレイヤが自由に操作して動かせるゲームでは、操作対象のオブジェクト付近をよく見ながらゲームをプレイするものと推測できる。
そこで本発明では、スクロール量を補正するために用いられる注目領域の位置を、プレイヤによって選択されたオブジェクト付近に配置している。つまり、選択したオブジェクトあるいはその付近に配置される他のオブジェクトが視点の近くであればあるほど、プレイヤが選択したオブジェクト付近をよく見ている状況であると推測し、スクロールを小さく（遅く）する。したがって、画面の見やすさを向上し、スクロール処理の負荷を軽減することができる。
【００２０】
入力受付部は、選択されたオブジェクトの位置を移動する旨の移動指示入力を当該ユーザから更に受け付けてもよい。
また、記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶してもよい。
また、更新部は、当該移動指示入力に基づいて、選択されたオブジェクトの位置を更に更新してもよい。
また、距離計算部は、選択されたオブジェクトの位置が移動した場合、当該オブジェクトの移動を開始してから所定時間経過後、記憶されている履歴に基づいて、当該オブジェクトに追随するように当該注目領域の位置を変えてもよい。
【００２１】
例えば、仮想空間に配置されているオブジェクトのいずれかをプレイヤが自由に操作して動かせるゲームにおいて、上述のように、スクロール量を補正するために用いられる注目領域の位置をプレイヤによって選択されたオブジェクト付近に配置すると、オブジェクトの位置が可変であるため、注目領域の位置も可変になる。つまりゲーム装置は、オブジェクトの位置を変えると、それに伴って注目領域の位置も変える。オブジェクトの位置が変わると、プレイヤは注視する場所を瞬時に変えられる可能性もあるが、移動が速すぎると若干遅れながら目が付いていくことも予想される。
そこで本発明では、オブジェクトの位置を変えてから所定時間だけ遅れて、注目領域の位置も変えることとしている。したがって、注目領域、すなわちプレイヤの注目度が比較的高いと推測される場所を、よりプレイヤの実態に即して移動することができるので、画面の見やすさを更に向上することができる。
【００２２】
入力受付部は、選択されたオブジェクトの位置を指定量だけ移動する旨の移動指示入力を更に受け付けてもよい。
また、記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶してもよい。
また、補正部は、記憶されている移動指示入力が示す各々の指定量に基づいて当該移動距離の補正量を求め、補正された結果の移動距離が求められた距離に対して単調減少するように補正してもよい。
【００２３】
例えば、仮想空間に配置されているオブジェクトのいずれかをプレイヤが自由に操作して動かせるゲームにおいて、上述のように、スクロール量を補正するために用いられる注目領域の位置をプレイヤによって選択されたオブジェクト付近に配置すると、オブジェクトの位置が可変であるため、注目領域の位置も可変になる。つまりゲーム装置は、オブジェクトの位置を変えると、それに伴って注目領域の位置も変える。例えばゲーム装置は、ある移動経路でオブジェクトの位置が移動すると、その移動経路と同じ経路で注目領域も移動することができる。しかし、例えばプレイヤの手ぶれなどが原因でオブジェクトの位置が瞬時に大きく移動したり素早く移動したりした場合、プレイヤの注視する場所はオブジェクトの移動経路通りにはならない可能性がある。
そこで本発明では、オブジェクトの位置の移動履歴に基づいて、適宜スクロール量の補正量を変え、オブジェクトの移動経路と異なる経路で注目領域を移動することができる。例えば、手ぶれなどでプレイヤの意図しない動きになった場合、オブジェクトの移動量のうち閾値を超えた分についてはカットするようにしたり、所定の補正用の関数を用いて移動量を補正したりしてもよい。したがって、注目領域、すなわちプレイヤの注目度が比較的高いと推測される場所を、オブジェクトの移動履歴に合わせて変えることができるので、画面の見やすさを更に向上することができる。
【００２４】
距離計算部は、生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、のそれぞれの距離の平均値を計算してもよい。
そして、補正部は、計算された移動距離を、計算された平均値に対して単調減少するように補正してもよい。
【００２５】
注目領域の中には、１つだけでなく複数のオブジェクトが配置される場合もある。この場合、ゲーム装置は、視点からの距離の計算対象として、注目領域の中のいずれのオブジェクトを採用することもできる。そこで本発明では、注目領域の中のオブジェクトのそれぞれについて、視点からの距離を求め、それらの平均距離に対して単調減少するように、移動距離の補正量を求める。
例えば、注目度が比較的高いと推定される領域の中の各オブジェクトが、全体の傾向として視点の近くにあるのであれば、注目領域付近のプレイヤの注目度は高いと推測できる。したがって、プレイヤの注目度が比較的高い場所を、よりプレイヤの実態に即して推測できるので、画面の見やすさを更に向上することができる。
【００２６】
距離計算部は、生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、のそれぞれの距離の最大値を計算してもよい。
そして、補正部は、計算された移動距離を、計算された最大値に対して単調減少するように補正してもよい。
【００２７】
注目領域の中には、１つだけでなく複数のオブジェクトが配置される場合もある。この場合、ゲーム装置は、視点からの距離の計算対象として、注目領域の中のいずれのオブジェクトを採用することもできる。そこで本発明では、注目領域の中のオブジェクトのそれぞれについて、視点からの距離を求め、それらのうちの最長距離に対して単調減少するように、移動距離の補正量を求める。
例えば、注目度が比較的高いと推定される領域の中でもとりわけ注目度が高いと推測されるオブジェクトが視点の近くにあるのであれば、注目領域付近のプレイヤの注目度は特に高いと推測できる。したがって、プレイヤの注目度が比較的高い場所を、よりプレイヤの実態に即して推測できるので、画面の見やすさを更に向上することができる。
【００２８】
距離計算部は、生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、のそれぞれの距離の最小値を計算してもよい。
そして、補正部は、計算された移動距離を、計算された最小値に対して単調減少するように補正してもよい。
【００２９】
注目領域の中には、１つだけでなく複数のオブジェクトが配置される場合もある。この場合、ゲーム装置は、視点からの距離の計算対象として、注目領域の中のいずれのオブジェクトを採用することもできる。そこで本発明では、注目領域の中のオブジェクトのそれぞれについて、視点からの距離を求め、それらのうちの最短距離に対して単調減少するように、移動距離の補正量を求める。
例えば、注目度が高いと推測される領域の中で、比較的注目されていないかもしれないオブジェクトであっても、視点の近くにあるのであれば、注目領域付近のプレイヤの注目度は高いと推測できる。したがって、プレイヤの注目度が比較的高い場所を、よりプレイヤの実態に即して推測できるので、画面の見やすさを更に向上することができる。
【００３０】
距離計算部は、生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、のそれぞれの距離の合計値を計算してもよい。
そして、補正部は、計算された移動距離を、計算された合計値に対して単調減少するように補正してもよい。
【００３１】
注目領域の中には、１つだけでなく複数のオブジェクトが配置される場合もある。この場合、ゲーム装置は、視点からの距離の計算対象として、注目領域の中のいずれのオブジェクトを採用することもできる。そこで本発明では、注目領域の中のオブジェクトのそれぞれについて、視点からの距離を求め、それらの合計距離（延べ距離）に対して単調減少するように、移動距離の補正量を求める。
例えば、注目度が比較的高いと推測される領域の中の各オブジェクトが、全体の傾向として視点の遠くにあったとしても、オブジェクトの数が多いのであれば、注目領域付近のプレイヤの注目度は高いと推測できる。したがって、プレイヤの注目度が比較的高い場所を、よりプレイヤの実態に即して推測できるので、画面の見やすさを更に向上することができる。
【００３２】
本発明のその他の観点に係るゲーム処理方法は、記憶部、生成部、表示部、距離計算部、移動計算部、補正部、更新部を有するゲーム装置にて実行されるゲーム処理方法であって、生成ステップ、表示ステップ、距離計算ステップ、移動計算ステップ、補正ステップ、更新ステップを備える。
記憶部には、仮想空間に配置されるオブジェクトの位置と、当該仮想空間に配置される視点の位置と、が記憶される。
生成ステップは、生成部が、当該仮想空間において当該視点の位置から見た当該オブジェクトを表す画像を生成する。
表示ステップは、表示部が、生成された画像を表示する。
距離計算ステップは、距離計算部が、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、の距離を求める。
移動計算ステップは、移動計算部が、当該視点の位置を移動する移動方向と移動距離を計算する。
補正ステップは、補正部が、計算された移動距離を求められた距離に基づいて補正する。
更新ステップは、更新部が、計算された移動方向に、補正された結果の移動距離だけ、記憶される視点の位置を移動するように更新する。
そして、補正ステップは、補正された結果の移動距離が、求められた距離に対して単調減少するように、補正する。
【００３３】
本発明によれば、画面のスクロール量が多すぎたり速すぎたりして画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点の移動による画面のスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理の負荷を減らすことができる。
【００３４】
本発明のその他の観点に係るゲーム処理方法は、記憶部、生成部、表示部、距離計算部、移動計算部、補正部、更新部を有するゲーム装置にて実行されるゲーム処理方法であって、生成ステップ、表示ステップ、距離計算ステップ、移動計算ステップ、補正ステップ、更新ステップを備える。
記憶部には、仮想空間に配置されるオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、が記憶される。
生成ステップは、生成部が、当該仮想空間において当該視点の位置から当該視線の向きに見た当該オブジェクトを表す画像を生成する。
表示ステップは、表示部が、生成された画像を表示する。
距離計算ステップは、距離計算部が、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、の距離を求める。
移動計算ステップは、移動計算部が、当該視線の向きを回転する回転方向と回転角度を計算する。
補正ステップは、補正部が、計算された回転角度を求められた距離に基づいて補正する。
更新ステップは、更新部が、計算された回転方向に、補正された結果の回転角度だけ、記憶される視線の向きを回転するように更新する。
そして、補正ステップは、補正された結果の回転角度が、求められた距離に対して単調減少するように、補正する。
【００３５】
本発明によれば、画面のスクロール量が多すぎたり速すぎたりして画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点の移動による画面のスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理の負荷を減らすことができる。
【００３６】
本発明のその他の観点に係るプログラムは、コンピュータを、
仮想空間に配置されるオブジェクトの位置と、当該仮想空間に配置される視点の位置と、を記憶する記憶部、
当該仮想空間において当該視点の位置から見た当該オブジェクトを表す画像を生成する生成部、
前記生成された画像を表示する表示部、
当該オブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部、
当該視点の位置を移動する移動方向と移動距離を計算する移動計算部、
前記計算された移動距離を前記求められた距離に基づいて補正する補正部、
前記計算された移動方向に、前記補正された結果の移動距離だけ、前記記憶される視点の位置を移動するように更新する更新部、
として機能させ、
前記補正部は、前記補正された結果の移動距離が、前記求められた距離に対して単調減少するように、補正する、
ことを特徴とする。
【００３７】
本発明によれば、コンピュータを上述のように動作するゲーム装置として機能させることができる。
【００３８】
本発明のその他の観点に係るプログラムは、コンピュータを、
仮想空間に配置されるオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、を記憶する記憶部、
当該仮想空間において当該視点の位置から当該視線の向きに見た当該オブジェクトを表す画像を生成する生成部、
前記生成された画像を表示する表示部、
当該オブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部、
当該視線の向きを回転する回転方向と回転角度を計算する移動計算部、
前記計算された回転角度を前記求められた距離に基づいて補正する補正部、
前記計算された回転方向に、前記補正された結果の回転角度だけ、前記記憶される視線の向きを回転するように更新する更新部、
として機能させ、
前記補正部は、前記補正された結果の回転角度が、前記求められた距離に対して単調減少するように、補正する、
ことを特徴とする。
【００３９】
本発明によれば、コンピュータを上述のように動作するゲーム装置として機能させることができる。
【００４０】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００４１】
本発明によれば、画像表示のスクロール処理による負荷を軽減し、プレイヤにとっての画面の見やすさを向上することができる。
【発明を実施するための最良の形態】
【００４２】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００４３】
（実施形態１）
図１は、プログラムを実行することにより、本発明の実施形態に係る装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。
【００４４】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ  １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、マイク１１１と、を備える。
【００４５】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態に係るゲーム装置が実現される。
【００４６】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００４７】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００４８】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００４９】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。なお、コントローラ１０５の詳細については後述する。
【００５０】
インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００５１】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００５２】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００５３】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００５４】
また、仮想空間が３次元にて構成される場合には、当該３次元空間内に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００５５】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００５６】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェイス（図示せず）により構成される。
【００５７】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００５８】
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカーに出力することにより、音声出力が可能となる。
【００５９】
さらに、情報処理装置１００には、インターフェイス１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【００６０】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００６１】
以上で説明した情報処理装置１００は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【００６２】
例えば、一般的なコンピュータは、上記情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣを備え、情報処理装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ１０５ではなく、キーボードやマウスなどを入力装置として利用する。
【００６３】
本実施形態では、現実の空間における位置や姿勢などの種々のパラメータが測定できるようなコントローラ１０５を採用する。
【００６４】
図２は、現実の空間における位置や姿勢などの種々のパラメータが測定できるようなコントローラ１０５と情報処理装置１００との外観を示す説明図である。以下、本図を参照して説明する。
【００６５】
コントローラ１０５は、把持モジュール２０１と発光モジュール２５１との組合せからなる。把持モジュール２０１は無線通信によって情報処理装置１００と通信可能に接続されており、発光モジュール２５１は、有線で情報処理装置１００と通信可能に接続されている。情報処理装置１００の処理結果の音声および画像は、テレビジョン装置２９１によって出力表示される。
【００６６】
把持モジュール２０１は、テレビジョン装置２９１のリモートコントローラと類似した外観をしており、その先端には、ＣＣＤカメラ２０２が配置されている。
【００６７】
一方、発光モジュール２５１は、テレビジョン装置２９１の上部に固定されている。発光モジュール２５１の両端には、発光ダイオード２５２が配置されており、情報処理装置１００からの電源供給によって発光する。
【００６８】
把持モジュール２０１のＣＣＤカメラ２０２は、この発光モジュール２５１の様子を撮影する。
【００６９】
撮影された画像の情報は、情報処理装置１００に送信され、情報処理装置１００のＣＰＵ  １０１は、当該撮影された画像内において発光ダイオード２５２が撮影された位置に基づいて、発光モジュール２５１に対する把持モジュール２０１の位置を取得する。
【００７０】
このほか、把持モジュール２０１内には、加速度センサ、角加速度センサ、傾きセンサ等が内蔵されており、把持モジュール２０１そのものの姿勢を測定することが可能となっている。この測定結果も、情報処理装置１００に送信される。
【００７１】
把持モジュール２０１の上面には、十字形キー２０３が配置されており、ユーザは、十字形キー２０３を押し込み操作することによって、各種の方向指示入力を行うことができる。また、Ａボタン２０４ほか、各種ボタン２０６も上面に配置されており、当該ボタンに対応付けられた指示入力を行うことができる。
【００７２】
一方、Ｂボタン２０５は、把持モジュール２０１の下面に配置されており、把持モジュール２０１の下面に窪みが構成されていることとあいまって、拳銃やマジックハンドにおける引き金を模したものとなっている。典型的には、仮想空間内における拳銃による発砲やマジックハンドによる把持の指示入力は、Ｂボタン２０５を用いて行われる。
【００７３】
また、把持モジュール２０１の上面のインジケータ２０７は、把持モジュール２０１の動作状況や情報処理装置１００との無線通信状況などをユーザに提示する。
【００７４】
把持モジュール２０１の上面に用意された電源ボタン２０８は、把持モジュール２０１そのものの動作のオン・オフを行うもので、把持モジュール２０１は内蔵された電池（図示せず）によって動作する。
【００７５】
このほか、把持モジュール２０１の上面には、スピーカー２０９が配置され、音声処理部１１０から入力される音声信号による音声を出力する。把持モジュール２０１内部には、バイブレータ（図示せず）が用意されており、情報処理装置１００からの指示に基づいて、振動の有無や強弱を制御することができるようになっている。
【００７６】
以下では、把持モジュール２０１と発光モジュール２５１との組合せからなるコントローラ１０５を用いて、把持モジュール２０１の現実世界における位置や姿勢を測定することを前提に説明する。ただし、上記のような形態によらず、たとえば超音波や赤外線通信、ＧＰＳ（Global Positioning System）等を利用してコントローラ１０５の現実世界における位置や姿勢を測定するとした場合であっても、本発明の範囲に含まれる。
【００７７】
（ゲームの概要）
次に、本発明が適用されるゲームの概要について説明する。本ゲームでは、仮想空間に配置されたオブジェクトを、マジックハンドで掴んである場所から別の場所へ移動させることを、一つの目的としている。本ゲームにおいては、プレイヤがコントローラを握るのに対応して、キャラクターはマジックハンドの柄を握っている。
【００７８】
ここで、マジックハンドとは、人の手の届く範囲よりも広い範囲に伸びる棒状の「腕」があり、その「腕」の先に配置される「手」によって、物を「吸着」して運搬したり、当該「吸着」を停止したりすることができるようなものをいう。したがって、棹の先端にトリモチがつけられており、そのトリモチによって遠方の物を獲得できるようにしたものも、マジックハンドと考えることができる。以下、理解を容易にするため、物がマジックハンドによって運搬されている間の状態を、日常的な文章表現に則って、「マジックハンドが物を掴んでいる」と呼ぶこととする。
【００７９】
図３は、このようなゲームにおける仮想空間と現実世界との対応関係を示す説明図である。以下、本図を参照して説明する。
【００８０】
仮想空間３０１には、マジックハンド３０２と、これで掴む対象となるオブジェクト３０３と、が配置されている。このマジックハンド３０２は、柄３０４と牽引ビームから構成されており、マジックハンド３０２の全長の大半を牽引ビームが占めている。「牽引ビーム」とは、漫画やアニメーションなどにおいて設定として採用されているもので、牽引ビームの先端で物体を掴み、その物体を引き寄せることができるようなものをいう。
【００８１】
本ゲームにおけるマジックハンド３０２の牽引ビームは棒状の形状をしている。そして、この牽引ビームは、オブジェクトを何も掴んでいないときには、いずれかのオブジェクト（壁など、各種の障害物のオブジェクトを含む。）に衝突するまで、マジックハンド３０２の柄３０４の一端の射出口から半直線状に伸びている。したがって、マジックハンド３０２の柄３０４の姿勢によって、マジックハンド３０２の牽引ビームの射出方向が定まることになる。
【００８２】
ここで、現実世界のプレイヤが把持モジュール２０１の位置・姿勢を変化させると、これに呼応して、マジックハンド３０２の柄３０４の位置・姿勢も変化する。したがって、本ゲームにおいては、把持モジュール２０１を測定対象として、把持モジュール２０１の位置や姿勢が測定され、マジックハンド３０２の柄３０４が指示対象となり、「当該把持モジュール２０１の姿勢の変化」という指示に基づいて、仮想空間３０１内において、マジックハンド３０２の柄３０４の位置や姿勢が変化させられることになる。
【００８３】
プレイヤは、ゲームの開始時に把持モジュール２０１を最も把持しやすい場所に固定する。すると、これに応じて、仮想空間３０１内に配置された視点３０５および視線３０６に対して、相対的に定められた位置に、最も自然な姿勢で、マジックハンド３０２の柄３０４が配置される。
【００８４】
このとき、現実世界においては、プレイヤに対して把持モジュール２０１が「基準位置」に配置されることとなり、仮想世界３０１においては、視点３０５および視線３０６に対してマジックハンド３０２の柄３０４が「基準位置」に配置されることになる。
【００８５】
この「基準位置」は、仮想空間内の視点３０５および視線３０６に対して相対的に決まるのであるが、これは、プレイヤが最も自然な姿勢で把持モジュール２０１を持った位置が、プレイヤの目の位置に対して相対的に決まることに呼応している。
【００８６】
仮想空間３０１内の視点３０５および視線３０６は、プレイヤが操作する（演ずる）仮想空間内のキャラクターの目（主観視点ともいう。）や、当該キャラクターを背後から見る目（客観視点、背後霊視点ともいう。）に対応し、この目がプレイヤの目に相当するものである。したがって、マジックハンド３０２の柄３０４の基準位置は、プレイヤの利き手に応じて、視点３０５よりも右下もしくは左下となるのが典型的である。
【００８７】
視点３０５から視線３０６の方向に進むと、仮想的な投影面３０７が、視線３０６に直交している。仮想空間３０１の様子は、画面に表示すべきオブジェクト３０３やマジックハンド３０２の牽引ビームを、この投影面３０７に、透視投影することによって得られる画像によってプレイヤに提示される。
【００８８】
透視投影の手法としては、視点３０５とオブジェクト３０３等とを結ぶ直線が、投影面３０７と交叉する点を用いる一点集中型投影が典型的であるが、視点３０５を無限遠方に配置し、オブジェクト３０３を通過して視線３０６に平行な直線が、投影面３０７と交叉する点を用いる平行投影を採用しても良い。
【００８９】
上記のように、マジックハンド３０２の柄３０４は、視点の右下（左下）に配置されているので、普通の状況では、投影面３０７のうちの画面に表示される範囲の外に透視投影される。したがって、画面にはマジックハンド３０２の柄３０４が表示されないのが一般的である。
【００９０】
さて、プレイヤが現実世界での基準位置から把持モジュール２０１の位置や姿勢を変化させると、その測定結果を参照して、情報処理装置１００は、マジックハンド３０２の柄３０４の位置や姿勢を、基準位置から対応する量（典型的には、現実世界と同じ量。）だけ、移動させる。
【００９１】
したがって、視点３０５および視線３０６に対する柄３０４の相対的な位置および姿勢は、把持モジュール２０１の位置や姿勢の変化に連動することとなる。プレイヤは、操作対象として把持モジュール２０１を用いて、指示対象たるマジックハンド３０２の柄３０４の位置や姿勢を変化させるのである。
【００９２】
プレイヤは、把持モジュール２０１の位置や姿勢を変化させて、マジックハンド３０２の柄３０４から伸びる牽引ビームが、所望のオブジェクト３０３に衝突するように操作する。そして、把持モジュール２０１のＢボタン２０５を押圧する。すると、マジックハンド３０２の先端が、オブジェクト３０３を掴むことになる。
【００９３】
上記のように、マジックハンド３０２の牽引ビームは、マジックハンド３０２の柄３０４の一端の射出点から、掴んだオブジェクト３０３の位置を目標点として向かう。したがって、Ｂボタン２０５の押圧によって、牽引ビームが向かうべき目標位置が設定されることになり、これはちょうど、射撃ゲームにおける引き金を引いた状態に相当する。また、本実施形態では、Ｂボタン２０５を押していないときは、マジックハンド３０２の牽引ビームが初めて衝突するオブジェクト３０３の位置が、牽引ビームの目標位置として設定されることになる。
【００９４】
この後は、オブジェクト３０３についての、運動のシミュレーションが開始される。オブジェクト３０３に加わる外力は以下の通りである。
（１）仮想空間内における重力。典型的には下向きである。
（２）仮想空間内において、マジックハンド３０２の柄３０４（もしくは視点３０５）とオブジェクト３０３とを結ぶ直線方向の力。いわゆる牽引力や反発力に相当する。これは、画面表示上は、プレイヤに近付く力、プレイヤから遠ざかる力に相当し、オブジェクト３０３とマジックハンド３０２の柄３０４（もしくは視点３０５）との距離、すなわち、マジックハンド３０２の伸縮によって定まる。
（３）仮想空間内において、マジックハンド３０２の柄３０４（もしくは視点３０５）とオブジェクト３０３とを結ぶ直線に直交する方向の力。これは、画面表示上は、上下左右に向かう力に相当し、マジックハンド３０２が撓む方向とその大きさによって定まる。
（４）オブジェクト３０３が移動している間に、移動方向とは反対向きに加わる力。いわゆる動摩擦力に相当する。
（５）オブジェクト３０３が静止している間に、外力とは反対向きに、同じ大きさだけ加わる力。いわゆる静止摩擦力に相当する。
【００９５】
ここで、マジックハンド３０２の伸縮および撓みについてさらに詳細に説明する。図４は、マジックハンド３０２の柄３０４とオブジェクト３０３との位置関係と、力の方向を示す説明図である。
【００９６】
本図に示すように、オブジェクト３０３を掴んでいるマジックハンド３０２は、柄３０４の位置や姿勢をプレイヤが変化させると、伸縮したり撓んだりする。一方、前述した通り、マジックハンド３０２の牽引ビームが何も掴んでいないときは、牽引ビームは、柄３０４の一端に設けられた射出口から直進する。
【００９７】
そこで、以下では、マジックハンド３０２の柄３０４の姿勢の方向３１１を、「マジックハンド３０２の牽引ビームが何も掴んでいないと仮定したときに牽引ビームが柄３０４の一端に設けられた射出口から直進する方向」と定義する。
【００９８】
一般に、マジックハンド３０２の牽引ビームがオブジェクト３０３を掴んでいるとき、オブジェクト３０３の重さによって牽引ビームが撓むため、マジックハンド３０２の柄３０４の姿勢の方向３１１と、柄３０４からオブジェクト３０３へ向かう方向とは、ずれが生じる。
【００９９】
したがって、牽引ビームは、柄３０４の姿勢の方向３１１に接するように発射され、その後滑らかに撓んで、オブジェクト３０３に至る曲線を描くこととなる。このような曲線としては、スプライン補間により得られるスプライン曲線や、円弧等、種々の曲線を用いることができる。このとき、オブジェクト３０３における牽引ビームの方向は、いわゆる開放端として計算するのが容易である。
【０１００】
オブジェクト３０３をマジックハンド３０２が掴み始めた瞬間の、柄３０４（もしくは視点３０５）とオブジェクト３０３との距離を、マジックハンド３０２の自然長と考えると、この自然長と、現在の仮想空間における柄３０４とオブジェクト３０３との距離と、を、対比すれば、バネに相当するような牽引力（反発力）４１１をシミュレートできる。すなわち、当該距離から自然長を引いた値に所定の整定数を乗じた値の牽引力（符号が負の場合は、絶対値の大きさの反発力。）４１１が生ずる、とすれば、簡易にシミュレーションを行うことができる。
【０１０１】
一方、オブジェクト３０３を上下左右に動かそうとする力４１２は、マジックハンド３０２の柄３０４の姿勢（オブジェクト３０３を掴んでいないとしたときの、牽引ビームが伸びる方向。）と、柄３０４（もしくは視点３０５）からオブジェクト３０３に向かう方向と、のずれによって生じる。
【０１０２】
すなわち、上下左右の力４１２の方向は、柄３０４の姿勢の方向３１１の方向ベクトル３２１から柄３０４（もしくは視点３０５）からオブジェクト３０３への方向の方向ベクトル３２２を減算したベクトル３２３の方向であり、その大きさは、当該ベクトル３２３に比例する、とするものである。
【０１０３】
現実の物理現象に即して考える場合には、上下左右の力４１２は、さらに、柄３０４（もしくは視点３０５）とオブジェクト３０３との距離にも比例する、とすれば、簡易にシミュレーションを行うことができる。
【０１０４】
このようにして、マジックハンド３０２に掴まえられているがゆえにオブジェクト３０３に加わる外力が計算できれば、あとは、重力や静止摩擦力、動摩擦力を、通常の物理シミュレーションと同様に計算することによって、オブジェクト３０３にかかる加速度を計算することができ、これによって、オブジェクト３０３の位置を更新することができる。これにより、オブジェクト３０３を移動させるのである。
【０１０５】
オブジェクト３０３が所望の位置に移動したら、指を離してＢボタン２０５の押圧操作を解除する。これにより、マジックハンド３０２はオブジェクト３０３を掴むことをやめ、牽引ビームは、元の通り、マジックハンド３０２の柄３０４の姿勢の方向３１１に伸びるようになる。
【０１０６】
なお、マジックハンド３０２がオブジェクト３０３を掴んでいる状態で、牽引ビームの経路上に他のオブジェクト（以下「障害物」という。）３０９が存在する場合、オブジェクト３０３を掴んでいた状態が解除される。解除されると、牽引ビームは、撓んでいる形状から半直線状の形状に戻る。
【０１０７】
（マジックハンドの柄の姿勢）
さて、マジックハンド３０２の牽引ビームの形状は、オブジェクト３０３を掴んでいないときは半直線状で、柄３０４の姿勢の方向３１１を示しているが、オブジェクト３０３を掴んでいるときは撓むため、プレイヤに柄３０４の姿勢の方向３１１を提示する他の手法が必要となる。そこで用いるのがカーソル（指示標識）である。
【０１０８】
図５は、画面にカーソル（指示標識）とマジックハンドとオブジェクトが表示される様子を示す説明図である。以下、本図を参照して説明する。
【０１０９】
本図においては、マジックハンド３０２がオブジェクト３０３を掴んでいる状態が示されており、画面５０１内で、柄３０４の方向３１１は牽引ビームの方向と一致していない。すなわち、カーソル３０８は、柄３０４の方向３１１を示す直線上に表示されるが、これは、マジックハンド３０２の牽引ビームの上ではない。
【０１１０】
画面５０１への表示される画像は、投影面３０７へ投影されるオブジェクトの姿を示すものであるから、カーソル３０８の投影面３０７内における位置は、柄３０４から柄３０４の姿勢の方向３１１に伸びる半直線が投影面３０７に交叉する点の位置、とすれば良い。これによって、プレイヤは、画面を見るだけで、マジックハンド３０２の柄３０４の方向を適切に理解することができるようになる。
【０１１１】
なお、マジックハンド３０２がオブジェクト３０３を掴んでいる状態では、柄３０４の方向３１１は牽引ビームの方向と一致している。カーソル３０８は、マジックハンド３０２の牽引ビームの上に表示されることになる。
【０１１２】
また、カーソル３０８が表示される実施形態では、マジックハンド３０２の操作手法に以下のような変形を適用することができる。すなわち、Ｂボタン２０５を押していない間は、マジックハンド３０２の牽引ビームは射出されず、柄３０４の位置や姿勢が変化すると、画面５０１内におけるカーソル３０８の表示位置が変化する。
【０１１３】
カーソル３０８の表示位置は、マジックハンド３０２の柄３０４の姿勢の方向３１１と投影面３０７とが交わる位置を採用しているが、この態様では、「マジックハンド３０２の柄３０４の姿勢の方向３１１が初めて衝突する他のオブジェクト３０３の表面の位置」と、視点３０５とを通過する直線が、投影面３０７と交わる位置を採用しても良い。後者のようにすると、ちょうどレーザーポインタで部屋の中の物体を指し示しているような操作感を得ることができる。
【０１１４】
そして、Ｂボタン２０５を押圧操作すると、マジックハンド３０２の柄３０４の射出口から牽引ビームが発射され、牽引ビームが初めて衝突したオブジェクト３０３が移動可能であれば、これを吸着する。カーソル３０８の表示位置として、レーザポインタで物体を指し示すような態様を採用しているときは、当該カーソル３０８が重なって表示されるオブジェクト３０３が吸着されるオブジェクト３０３となり、プレイヤにとってもわかりやすい。なお、吸着したオブジェクト３０３の移動は、上記の説明と同様である。
【０１１５】
このほか、Ｂボタン２０５を押圧操作し続ける操作がプレイヤにとって面倒な場合もある。このような場合には、Ｂボタン２０５を押圧操作して離すと牽引ビームが発射されて吸着が行われ、そして、所望の位置までオブジェクト３０３を移動したら、もう一度、Ｂボタン２０５を押圧操作して離してマジックハンド３０２の牽引ビームを消去し、オブジェクト３０３が解放されるような形態を採用することもできる。
【０１１６】
上記の実施形態では、「指示入力の受付の開始」が「Ｂボタン２０５の押圧操作の開始」に、「指示入力の受付の終了」が「Ｂボタン２０５の押圧操作の終了」に、それぞれ対応するが、この態様では「指示入力の受付の開始」が「牽引ビームが射出されていない状態でＢボタン２０５を押圧して離す操作」に、「指示入力の受付の終了」が「牽引ビームが射出されている状態でＢボタン２０５の押圧して離す操作」に、それぞれ対応するのである。
【０１１７】
いずれの操作体系を採用するかは、プレイヤの習熟度やゲームの種類によって適宜変更が可能である。また、指示入力を発するボタンの割り当てなどについては、Ｂボタン２０５ではなく、Ａボタン２０４を採用する等、用途に応じて適宜変更が可能である。
【０１１８】
（視点の位置の移動）
以上の説明では、視点３０５の位置は変化しなかったが、視点３０５に対して相対的にマジックハンド３０２の柄３０４の位置を変化させるだけでは、オブジェクト３０３を所望の位置に移動させることができない場合がある。このようなときに、視点３０５そのものを仮想空間内で移動させるためには、十字形キー２０３を利用する、という手法もありうる。しかしながら、本ゲームにおいては、プレイヤにとってもっと直観的な移動の手法を採用する。
【０１１９】
図６は、マジックハンドの柄３０４の位置と、視点３０５の移動の方向との関係を説明する説明図である。以下、本図を参照して説明する。
【０１２０】
ゲームの開始時に、仮想空間３０１内において、視点３０５および視線３０６に対して相対的に、マジックハンド３０２の柄３０４の基準位置３１３が定められる。
【０１２１】
この後、プレイヤが把持モジュール２０１の位置を変化させると、マジックハンド３０２の柄３０４の位置も変化する。
【０１２２】
そこで、現在の柄３０４の位置の位置ベクトルから、基準位置３１３の位置ベクトルを減算したベクトル３１４の方向に、視点を移動させるのである。
【０１２３】
このため、ベクトル３１４（もしくはこれに定数を乗じたベクトル。）を、視点３０５の移動速度の速度ベクトルと考えて、所定の単位時間に当該速度ベクトルを乗じた量だけ、視点３０５を移動させるのが最も簡単である。
【０１２４】
また、仮想空間３０１内に所定の平面（典型的には、仮想空間３０１内における「地面」に相当するものであるが、これには限られない。）を想定し、ベクトル３１４（もしくはこれに定数を乗じたベクトル。）の当該所定平面と平行な方向の成分を移動速度の速度ベクトルと考えて、処理を行ってもよい。
【０１２５】
このほか、視点３０５を含むキャラクターに加わる外力ベクトル、もしくは、加速度ベクトル（これらの場合も、地面に平行な成分のみを考えるのが典型的である。）と考えて、視点３０５そのものの移動のシミュレーションを行うこともできる。
【０１２６】
テレビジョン装置２９１を見ているプレイヤが、把持モジュール２０１を後に（背中の方向に）移動させると、仮想空間３０１内の視点３０５を持つキャラクターは、後ろ向きに移動する。したがって、オブジェクト３０３を掴んでいるマジックハンド３０２は幾分伸びることとなり、一般的には、オブジェクト３０３には、視点３０５を持つキャラクターに向かう引力が加わり、オブジェクト３０３も画面奥から手前に向かって移動することとなる。
【０１２７】
プレイヤが、把持モジュール２０１を前に（テレビジョン装置２９１に近付くように）移動させると、仮想空間３０１内の視点３０５を持つキャラクターは、前進する。すると、オブジェクト３０３を掴んでいるマジックハンド３０２は幾分縮むこととなり、一般的には、オブジェクト３０３には、視点３０５を持つキャラクターから離れようとする反発力が加わり、オブジェクト３０３も画面手前から奥に向かって進むことになる。
【０１２８】
もっとも、オブジェクト３０３とマジックハンド３０２との間の柄３０４の間の伸び縮みによる牽引力・反発力は、必ずしも想定する必要はなく、マジックハンド３０２そのものの長さを変化させるような指示入力をＡボタン２０４や各種ボタン２０６によって行うこととしても良い。
【０１２９】
上記の形態によって、
（１）仮想空間３０１内において、視点３０５を有するキャラクターを前後に移動させること
（２）仮想空間３０１内において、視点３０５および視線３０６に対して、マジックハンド３０２の柄３０４の相対的な位置および姿勢を変化させること
（３）仮想空間３０１内において、柄３０４から伸びる可撓性のマジックハンド３０２の先端でオブジェクト３０３を掴んだり、離したりすること
が可能となった。これらの機能によって、オブジェクト３０３を仮想空間３０１内である位置から別の位置へ移動させることができる。
【０１３０】
以下では、本発明の原理にしたがって、これらの機能にさらに加えるべき、新たな機能について、順に説明する。
【０１３１】
（視線の方向の制御）
上記の形態において、プレイヤがキャラクターの向き、すなわち、視線３０６の方向を変更したいと考える場合も多い。そして、上記の形態においては、把持モジュール２０１を現実空間で前後に移動させるだけで、キャラクターを前後に移動させることができたから、これと同様の容易な操作で、十字形キー２０３などを使わずに視線方向を変化させることができるようにしたい。以下では、このような技術について詳細に説明する。
【０１３２】
上記のように、本実施形態においては、柄３０４の姿勢がカーソル３０８によって、画面５０１に表示されている。このカーソル３０８は、プレイヤが把持モジュール２０１の姿勢を変更するだけで、画面５０１内で表示される位置を容易に変更することができる。そこで、本技術では、カーソル３０８が画面５０１内に表示される位置に基づいて、キャラクターの向き、すなわち、視線３０６の方向を変更する。
【０１３３】
ここで図５に戻ると、画面５０１は、上縁部５１１、右縁部５１２、左縁部５１３、下縁部５１４、中央部５１５の５つの領域に分割されている。プレイヤは、以下のように把持モジュール２０１の姿勢を変化させることで、視線３０６の方向の移動の指示を行う。
（ａ）視線３０６を上に移動したいときには、カーソル３０８が上縁部５１１に表示されるように、把持モジュール２０１の姿勢を変更し、
（ｂ）視線３０６を右に移動したいときには、カーソル３０８が右縁部５１２に表示されるように、把持モジュール２０１の姿勢を変更し、
（ｃ）視線３０６を左に移動したいときには、カーソル３０８が左縁部５１３に表示されるように、把持モジュール２０１の姿勢を変更し、
（ｄ）視線３０６を下に移動したいときには、カーソル３０８が下縁部５１４に表示されるように、把持モジュール２０１の姿勢を変更し、
（ｅ）視線３０６の方向が所望の方向となったら、カーソル３０８が中央部５１５に表示されるように、把持モジュール２０１の姿勢を変更する。
【０１３４】
すなわち、指示標識（カーソル３０８）が、画面５０１内の所定の表示領域（上縁部５１１、右縁部５１２、左縁部５１３、下縁部５１４）に表示されている間、当該表示領域のそれぞれに対応付けられる上右左下の方向に、視線３０６の方向を移動させ、指示標識（カーソル３０８）が画面５０１内の所定の表示領域以外の領域（中央部５１５）に表示されるようにすると、視線３０６の方向の移動を停止するのである。
【０１３５】
情報処理装置は、単位時間おき（たとえば、垂直同期割り込みの周期ごと。）にカーソル３０８の位置が画面５０１内のどの領域に含まれるかを識別する。そして、必要があれば、当該領域に割り当てられた移動量と方向に、視線３０６の方向を変化させる。
【０１３６】
これによって、視線３０６の方向が変化するのであるが、その後に、仮想空間内におけるマジックハンド３０２の柄３０４の姿勢３１１の方向を、画面５０１内でのカーソル３０８の表示位置が変化しないように、更新することが望ましい。
【０１３７】
図７は、視線３０６の方向の向きを右に移動させる様子を仮想空間３０１の上側から見たものを順に示す説明図である。以下、本図を参照して説明する。
【０１３８】
すなわち、
（１）まず、視線３０６の方向を変化させる前に、視点３０５および視線３０６に対する相対的なマジックハンド３０２の柄３０４の位置および姿勢を取得し（本図（ａ））、
（２）視点３０５を中心に視線３０６の方向を変化させて、キャラクターの向きを変えてから（本図（ｂ））、
（３）変化された後の視点３０５と視線３０６に対するマジックハンド３０２の柄３０４の位置および姿勢を、先に（１）で取得した位置および姿勢に更新する（本図（ｃ））。したがって、マジックハンド３０２の柄３０４の位置および姿勢は、仮想空間３０１に対して変化することとなる。
【０１３９】
このような処理によって、視線３０６の方向の移動の前後において、視点３０５と視線３０６に対するマジックハンド３０２の柄３０４の位置および姿勢は同じ値に維持されるのである。
【０１４０】
たとえば、プレイヤがキャラクターを右に向けたい場合、カーソル３０８が右縁部５１２に移動するように、把持モジュール２０１の姿勢を変更する。
【０１４１】
そして、視線３０６の方向が右に移動し始めたら、把持モジュール２０１の姿勢をそのまま固定すると、キャラクターの向き（視線３０６の方向）が更新されて、右に少しずつ向きが変わっていっても、カーソル３０８が画面５０１内で表示される位置は変わらない。
【０１４２】
最後に、キャラクターの向き（視線３０６の方向）が所望の向きに至ったら、カーソル３０８を画面５０１の中央部５１５に戻すように把持モジュール２０１の姿勢を変更すれば良い。このような、極めて直観的な操作で、容易にキャラクターの向きを変更することができるようになるのである。
【０１４３】
上縁部５１１、右縁部５１２、左縁部５１３、下縁部５１４のそれぞれの幅や、単位時間あたりの視線３０６の方向の単位時間あたりの移動量は、適用分野やプレイヤの習熟度によって適宜変更することができる。また、単位時間あたりの移動量を、中央部５１５に近いところでは小さく、画面５０１の縁に近付けば近づくほど大きくすることとしても良い。
【０１４４】
また、プレイヤ（視線３０６の方向）が上や下を向くときには、適当な上限や下限を設け、限界に至ったら、それ以上の視線３０６の方向の変更はしないこととしても良いし、視線３０６を変化させることができるのは左右のみに限定する、など、種々の制約を課すこともできる。
【０１４５】
また、画面５０１の縁の分割方法としては、このほか、画面５０１の中央から扇形に広がる領域分割を行い、各領域には画面中央から見た方向の単位時間あたりの移動量を割り当てることとして、斜め方向への移動も可能としても良い。
【０１４６】
次に、本実施形態に係るゲーム装置８００の機能的な構成について説明する。
【０１４７】
図８は、ゲーム装置８００の機能的な構成を表す図である。ゲーム装置８００は、記憶部８０１、入力受付部８０２、生成部８０３、表示部８０４、距離計算部８０５、移動計算部８０６、補正部８０７、更新部８０８を備える。
【０１４８】
図９（ａ）は、モニターに表示される画面５０１の例である。本例の画面５０１には、オブジェクトとして、マジックハンド３０２が掴んでいるオブジェクト９０１のほかに、オブジェクト９０２Ａ，９０２Ｂ，９０２Ｃが表示されている。
図９（ｂ）は、図９（ａ）に示す画面５０１が表示されている状況における仮想空間３０１を表す図である。
【０１４９】
記憶部８０１は、オブジェクト情報８５１、視点情報８５２、視線情報８５３、カーソル情報８５４、注目領域情報８５５を記憶する。ＣＰＵ  １０１とＲＡＭ  １０３が協働して記憶部８０１として機能する。ＲＡＭ  １０３の代わりに外部メモリ１０６を用いてもよい。
【０１５０】
オブジェクト情報８５１は、仮想空間３０１に配置されるオブジェクト３０３の位置を示す情報である。仮想空間３０１に複数のオブジェクト３０３が配置される場合、記憶部８０１にはそれぞれのオブジェクト３０３の位置を示す情報がオブジェクト情報８５１として記憶される。仮想空間にはデカルト座標系又は極座標系を用いたグローバル座標系が定義されている。位置はグローバル座標系における座標値を用いて表される。例えばマジックハンド３０２がオブジェクト３０３を掴んでいる状態でマジックハンド３０２を移動すると、ＣＰＵ  １０１は、オブジェクト３０３の位置の変化量を計算し、計算された変化量だけオブジェクト３０３の位置を変化させ、オブジェクト情報８５１を更新する。
【０１５１】
視点情報８５２は、仮想空間３０１に配置される視点３０５の位置を示す情報であり、グローバル座標系における座標値を用いて表される。ＣＰＵ  １０１は、現実空間における把持モジュール２０１の位置の変化に応じて視点３０５の位置の変化量を計算し、計算された変化量だけ視点３０５の位置を変化させ、視点情報８５２を更新する。
【０１５２】
視線情報８５３は、仮想空間３０１に配置される視線３０６の向きを示す情報であり、グローバル座標系における方向ベクトルで表される。ＣＰＵ  １０１は、現実空間における把持モジュール２０１の姿勢の変化に応じて視線３０６の向きの変化量を計算し、計算された変化量だけ視線３０６の向きを変化させ、視線情報８５３を更新する。
【０１５３】
本実施形態では、視点３０５の位置と視線３０６の向きはいずれも可変であるが、視点３０５の位置を固定し視線３０６の向きのみ可変とする実施形態、あるいは、視線３０６の向きを固定し視点３０５の位置のみ可変とする実施形態を採用することもできる。
【０１５４】
カーソル情報８５４は、画面５０１内におけるカーソル３０８の位置を示す情報である。例えば、画面５０１の左上の隅を原点とし、右方向をＸ軸の正の向き、下方向をＹ軸の正の向きとする２次元座標系を定義する。カーソル３０８の画面５０１内における位置は、この２次元座標系における座標値として表される。ＣＰＵ  １０１は、現実空間における把持モジュール２０１の位置や姿勢の変化に応じてカーソル３０８の位置の変化量を計算し、計算された変化量だけカーソル３０８の位置を変化させ、カーソル情報８５４を更新する。
【０１５５】
注目領域情報８５５は、画面５０１内に設定される注目領域９６０の位置を示す情報である。注目領域９６０は、ユーザからの指示入力などに基づいてＣＰＵ  １０１によりプレイヤの注目度が高いと推定され画面５０１内に設定される領域である。プレイヤの注目度が高いと推定される画面領域は、典型的には画面５０１の中央近くの一部領域である。しかし、プレイヤの注目度が高い画面領域の位置、大きさ、形状等は、ゲーム内容、ゲーム展開、オブジェクト３０３が存在する位置などによって変わることが推測される。ＣＰＵ  １０１は、ゲーム内容、ゲーム展開、オブジェクト３０３が存在する位置などによって、注目領域９６０の位置、大きさ、形状等を適宜変更することができる。画面５０１全体を注目領域９６０に設定することもできる。
【０１５６】
なお、本実施形態では、注目領域９６０を、画面５０１の中央点９５３を重心とする矩形に固定している。注目領域９６０の位置等を可変とする実施形態については後述する。
【０１５７】
入力受付部８０２は、把持モジュール２０１を操作するユーザからの様々な指示入力を受け付ける。例えば、入力受付部８０２は、視点３０５の位置や視線３０６の向きを移動する旨の移動指示入力や、任意のオブジェクト３０３を操作対象として選択する旨の選択指示入力や、オブジェクト３０３をマジックハンド３０２で掴んだり離したりする旨の操作指示入力などをプレイヤから受け付ける。そして、入力受付部８０２は、受け付けた指示入力に基づいて、記憶部８０１に記憶されている視点情報８５２、視線情報８５３、カーソル情報８５４を更新する。
【０１５８】
例えば、ユーザが把持モジュール２０１を操作して把持モジュール２０１の位置や姿勢を変えると、ＣＰＵ  １０１は、把持モジュール２０１の位置や姿勢の変化に応じて視点３０５の位置の変化量及び／又は視線３０６の向きの変化量を計算し、計算された変化量だけ視点３０５の位置及び／又は視線３０６の向きを変化させ、視点情報８５２及び／又は視線情報８５３を更新する。ＣＰＵ  １０１、ＲＡＭ  １０３、コントローラ１０５が協働して入力受付部８０２として機能する。
【０１５９】
ただし、把持モジュール２０１のように手で（典型的には片手で）握るタイプの棒状の操作用機器ではなく、両手を添えて使うタイプの操作用機器（いわゆるゲームパッド）をユーザが用いる実施形態を採用することもできる。また、モニターの上に備え付けられているタッチパネルにタッチペンを接触させて各種操作を行うタイプの操作用機器をユーザが用いる実施形態を採用することもできる。
【０１６０】
生成部８０３は、仮想空間３０１に配置される投影面３０７に視点３０５の位置から視線３０６の向きへ仮想空間３０１を投影した画像を生成する。すなわち、画像処理部１０７は、ＣＰＵ  １０１の制御により、視点３０５の位置から視線３０６の向きに仮想空間３０１を眺めた様子を表す画像を生成する。生成される画像には、視点３０５の位置あるいは視線３０６の向きによってはオブジェクト３０３を表す画像（投影画像）が含まれる場合がある。
【０１６１】
本実施形態では、生成部８０３は、把持モジュール２０１の位置と姿勢に基づいて定められるカーソル３０８を表す画像を重ねて描画する。プレイヤは、カーソル３０８の位置によって柄３０４の向き３１１を容易に認識することができる。ただし、生成部８０３は、カーソル３０８を表す画像を描画しなくてもよい。ＣＰＵ  １０１とＲＡＭ  １０３と画像処理部１０７が協働して生成部８０３として機能する。
【０１６２】
なお、本実施形態では、投影面３０７は、柄３０４の向き３１１に対して垂直に配置されるものとする。
【０１６３】
表示部８０４は、生成部８０３によって生成された画像をモニターに表示する。すなわち、画像処理部１０７は、ＣＰＵ  １０１の制御により、例えば図９（ａ）に示すような画面５０１をモニターに表示する。本図では、マジックハンド３０２が画面５０１に表示される仮想空間３０１の奥に向かって伸びており、オブジェクト９０１を掴んでいる。ＣＰＵ  １０１とＲＡＭ  １０３と画像処理部１０７が協働して表示部８０４として機能する。
【０１６４】
距離計算部８０５は、注目領域９６０内に描画されているオブジェクト３０３の仮想空間３０１における位置と、視点３０５の仮想空間３０１における位置と、の距離Ｌ１を計算する。ＣＰＵ  １０１とＲＡＭ  １０３と画像処理部１０７が協働して距離計算部８０５として機能する。
【０１６５】
移動計算部８０６は、入力受付部８０２がユーザから受け付けた移動指示入力等に基づいて、視点情報８５２に格納されている視点３０５の位置の単位時間あたりの移動方向と、単位時間あたりの移動距離を計算する。ＣＰＵ  １０１とＲＡＭ  １０３が協働して移動計算部８０６として機能する。
【０１６６】
より詳細には、ＣＰＵ  １０１は、移動方向と移動距離を次のように計算する。
まず、ＣＰＵ  １０１は、生成された画像を表示する画面５０１（又は生成された画像）の所定領域内にカーソル３０８が含まれるか否かを判別する。
【０１６７】
ここで、所定領域とは、画面５０１中の上縁部５１１、右縁部５１２、左縁部５１３、下縁部５１４のうちのいずれか１つ以上によって定義される領域である。
【０１６８】
プレイヤが把持モジュール２０１の位置や姿勢を変化させると、マジックハンド３０２の柄３０４の位置や姿勢も変化する。ＣＰＵ  １０１は、把持モジュール２０１の位置や姿勢の変化に応じて柄３０４の位置の移動方向を求め、柄３０４の位置をベクトル９５１の方向へ移動する。ＣＰＵ  １０１は、視点３０５の位置もベクトル９５１の方向へ移動する。
【０１６９】
ＣＰＵ  １０１は、視点３０５（あるいは柄３０４）の移動方向を示すベクトル９５１の方向を、
（１）カーソル３０８が上縁部５１１にある場合、投影面３０７の上方向Ｙ１、
（２）カーソル３０８が右縁部５１２にある場合、投影面３０７の右方向Ｙ２、
（３）カーソル３０８が左縁部５１３にある場合、投影面３０７の左方向Ｙ３、
（４）カーソル３０８が下縁部５１４にある場合、投影面３０７の下方向Ｙ４、
とする。
【０１７０】
例えば図９（ａ）では、カーソル３０８は画面５０１の上縁部５１１の中に描画されており、ＣＰＵ  １０１は、所定領域に設定している上縁部５１１内にカーソル３０８が含まれると判別する。ＣＰＵ  １０１は、画面５０１の上方向Ｙ１を移動方向として、視点３０５の位置を変える。
【０１７１】
なお、把持モジュール２０１の代わりに、上下左右を指定する各ボタンを備えるゲームパッドを用いる場合、ＣＰＵ  １０１は、視点３０５（あるいは柄３０４）の移動方向を示すベクトル９５１の方向を、
（１）上ボタンが押された場合、投影面３０７の上方向Ｙ１、
（２）右ボタンが押された場合、投影面３０７の右方向Ｙ２、
（３）左ボタンが押された場合、投影面３０７の左方向Ｙ３、
（４）下ボタンが押された場合、投影面３０７の下方向Ｙ４、
とする。
【０１７２】
視点３０５の位置を移動すると、ＣＰＵ  １０１は、投影面３０７内に設定される表示領域９５２の位置を移動する。投影面３０７に投影される画像全体のうち表示領域９５２に含まれる部分が、モニターに表示される画面５０１の画像となる。したがって、画面５０１内の画像は、カーソル３０８が上縁部５１１にある場合には投影面３０７の上方向Ｙ１にスクロールし、カーソル３０８が右縁部５１２にある場合には投影面３０７の右方向Ｙ２にスクロールし、カーソル３０８が左縁部５１３にある場合には投影面３０７の左方向Ｙ３にスクロールし、カーソル３０８が下縁部５１４にある場合には投影面３０７の下方向Ｙ４にスクロールすることになる。
【０１７３】
なお、以下の説明では、投影面３０７内における表示領域９５２の位置を移動することを、一般的な表現を用い、「画面５０１をスクロールする」とも表現する。
【０１７４】
更にＣＰＵ  １０１は、視点３０５（あるいは柄３０４）の移動方向を示すベクトル９５１の長さ、すなわち視点３０５の位置の移動距離を、所定値ΔＬｆｉｘに設定する。つまり、カーソル３０８が上縁部５１１，右縁部５１２，左縁部５１３，下縁部５１４のいずれかに含まれる場合、ＣＰＵ  １０１は、視点３０５の位置の単位時間あたりの移動距離を所定値ΔＬｆｉｘに設定する。視点３０５の位置を所定値ΔＬｆｉｘだけ移動するということは、画面５０１を所定値ΔＬｆｉｘで指定されるスクロール量だけスクロールし、スクロールの速さは変わらないことに相当する。
【０１７５】
ただし、ＣＰＵ  １０１は、視点３０５の単位時間あたりの移動距離を固定値ではなく可変値にしてもよい。例えば、ＣＰＵ  １０１は、画面５０１の左上の隅を原点とし、右方向をＸ軸の正の向きとし、下方向をＹ軸の正の向きとする２次元座標系を定義したとき、
（１）カーソル３０８が上縁部５１１に含まれる場合、ＣＰＵ  １０１は、カーソル３０８の画面５０１における位置のＹ座標値が小さいほど、言い換えればカーソル３０８が画面５０１の上にあるほど、視点３０５の位置の単位時間あたりの移動距離を大きくし、
（２）カーソル３０８が右縁部５１２に含まれる場合、ＣＰＵ  １０１は、カーソル３０８の画面５０１における位置のＸ座標値が大きいほど、言い換えればカーソル３０８が画面５０１の右にあるほど、視点３０５の位置の単位時間あたりの移動距離を大きくし、
（３）カーソル３０８が左縁部５１３に含まれる場合、ＣＰＵ  １０１は、カーソル３０８の画面５０１における位置のＸ座標値が小さいほど、言い換えればカーソル３０８が画面５０１の左にあるほど、視点３０５の位置の単位時間あたりの移動距離を大きくし、
（４）カーソル３０８が下縁部５１４に含まれる場合、ＣＰＵ  １０１は、カーソル３０８の画面５０１における位置のＹ座標値が大きいほど、言い換えればカーソル３０８が画面５０１の下にあるほど、視点３０５の位置の単位時間あたりの移動距離を大きくする、
ようにしてもよい。この場合、画面５０１のスクロールの速さが変わることになる。
【０１７６】
本実施形態では、画面５０１のスクロール方向を上下左右の４方向としている。しかし、４方向に限らず任意の方向にスクロールさせてもよい。例えば、ＣＰＵ  １０１は、カーソル３０８の位置の変化量を画面５０１の左右方向成分と上下方向成分とに分解し、左右方向にはカーソル３０８の位置の変化量の左右方向成分に相当する量だけスクロールさせ、上下方向にはカーソル３０８の位置の変化量の上下方向成分に相当する量だけスクロールさせることもできる。
【０１７７】
補正部８０７は、移動計算部８０６により計算された移動距離を、距離計算部８０５により求められた距離Ｌ１に基づいて補正する。このとき補正部８０７は、補正後の移動距離ΔＬが、距離計算部８０５により求められた距離Ｌ１に対して単調減少するように補正する。ＣＰＵ  １０１とＲＡＭ  １０３が協働して補正部８０７として機能する。
【０１７８】
より詳細には、ＣＰＵ  １０１は、視点３０５の位置の移動距離を次のように補正する。すなわち、ＣＰＵ  １０１は、注目領域９６０内に配置されているオブジェクト３０３（図９（ａ）の場合、オブジェクト９０２Ａ）の仮想空間３０１における位置と、視点３０５の仮想空間３０１における位置と、の距離Ｌ１が短いほど小さくなるように、視点３０５の位置の移動距離を補正する。つまり、補正によって得られる、視点３０５の位置の単位時間あたりの移動距離ΔＬは、距離Ｌ１に対して単調減少する。
【０１７９】
例えば図１０（ａ）〜（ｄ）は、注目領域９６０内に配置されているオブジェクト３０３と視点３０５との距離Ｌ１と、補正後の視点３０５の位置の移動距離ΔＬとの関係の例を示す図である。言い換えれば、本実施形態のように移動計算部８０６によって計算される移動距離が所定値ΔＬｆｉｘに固定される場合、補正部８０７が視点３０５の位置を補正するための補正関数の形状を表す図である。
【０１８０】
図１０（ａ）では、ＣＰＵ  １０１は、視点３０５の位置の移動距離ΔＬを、距離Ｌ１に比例して増加させる。ある距離（図示せず）で移動距離ΔＬを最大値ΔＬｍａｘにすると、それ以上の距離では移動距離ΔＬを最大値ΔＬｍａｘで一定とする。
図１０（ｂ）では、ＣＰＵ  １０１は、距離Ｌ１が長くなるほど移動距離ΔＬの増加率を小さくする。移動距離ΔＬは最終的に最大値ΔＬｍａｘに収束する。
図１０（ｃ）では、ＣＰＵ  １０１は、移動距離ΔＬの増加率を変化させる。増加率は０以上の実数である。
図１０（ｄ）では、ＣＰＵ  １０１は、階段関数を用いて移動距離ΔＬを変化させる。全体として、距離Ｌ１が増加するにしたがって移動距離ΔＬを大きくする傾向にあればよく、移動距離ΔＬが一定となる区間（増加率がゼロとなる区間）があってもよい。
【０１８１】
ＣＰＵ  １０１は、図１０（ａ）〜（ｄ）に示されるいずれの関数を用いてもよいし、これらの関数の組み合わせでもよい。また、距離Ｌ１が短いほど移動距離ΔＬを小さくする関係を満たすのであれば、自由に関数を定めることができる。
【０１８２】
以上のように求められた単位時間あたりの移動方向、及び、単位時間あたりの移動距離ΔＬが、それぞれ、視点３０５の位置を単位時間あたりに移動する方向、及び、単位時間あたりに移動する距離となる。ＣＰＵ  １０１は、単位時間あたり、計算された移動方向に、補正された移動距離だけ、視点３０５の位置を移動する。
【０１８３】
もし、単位時間あたりの移動距離を固定値ΔＬｆｉｘに固定して補正部８０７が補正しないと仮定すると、スクロールの際、画面５０１は常に一定のスピードでスクロールすることになる。しかし、本実施形態によれば、画面５０１の注目領域９６０内に配置されているオブジェクト３０３が視点３０５から遠くにあればあるほど、視点３０５の位置の単位時間あたりの移動距離ΔＬは大きくなり、画面５０１は大きく（速く）スクロールすることとなる。逆に画面５０１の注目領域９６０内に配置されているオブジェクト３０３が視点３０５から近くにあればあるほど、視点３０５の位置の単位時間あたりの移動距離ΔＬは小さくなり、画面５０１は小さく（遅く）スクロールすることとなる。
【０１８４】
一般に、プレイヤは画面５０１の真ん中付近をよく見ながらゲームをプレイすることが多い傾向にあると推測される。また、画面５０１に複数のオブジェクト３０３が存在する場合、真ん中付近に配置されているオブジェクト３０３ほどプレイヤの注目度は高いと推測される。そのため、注目領域９６０の位置を画面５０１の真ん中付近に固定する手法を採用することができる。なお、注目領域９６０の位置を可変とすることもできるが詳細については後述する。
【０１８５】
また、オブジェクト３０３が視点３０５の近くにあるほど、言い換えれば画面５０１に大きく映っているほど、プレイヤの注目度は高いと推測される。つまり、画面５０１全体のプレイヤによる注目度の高さの分布に偏りが生じる可能性がある。このような注目度の高さの分布に偏りがある状態で、画面５０１を大きく（速く）スクロールさせてしまうと、プレイヤが画像の変化についていけなくなったり酔ってしまったりする恐れがあり、プレイヤにとって見づらい画像になってしまう。しかし、本実施形態のゲーム装置８００は、画面５０１の注目領域９６０に、他と比べて視点３０５の近くに配置されるオブジェクト３０３が描画される状況では、画面５０１のスクロール量を減らし、少しずつスクロールさせる。したがって、プレイヤにとって画面５０１の見やすさを向上することができる。また、視点３０５の移動によるスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置８００への負荷を減らすことができる。
【０１８６】
更新部８０８は、単位時間あたり、計算された移動方向に、補正された移動距離ΔＬだけ、視点３０５の位置を移動するように、視点情報８５２を更新する。ＣＰＵ  １０１とＲＡＭ  １０３が協働して更新部８０８として機能する。
【０１８７】
ところで、ＣＰＵ  １０１は、視点３０５の位置を変えるのではなく、視線３０６の向きを変えることもできる。
【０１８８】
つまり、移動計算部８０６は、入力受付部８０２がユーザから受け付けた移動指示入力等に基づいて、視線情報８５３に格納されている視線３０６の向きの回転方向と、単位時間あたりの回転角度を求めてもよい。また、補正部８０７は、補正後の回転角度が、距離計算部８０５によって計算された距離Ｌ１に対して単調減少するように、視線３０６の向きの回転角度を補正してもよい。そして、更新部８０８は、単位時間あたり、視線３０６の向きを、求められた回転方向に、補正された回転角度だけ移動して、視線情報８５３を更新してもよい。
【０１８９】
図１１（ａ）は、モニターに表示される画面５０１の例である。
図１１（ｂ）は、図１１（ａ）に示す画面５０１が表示されている状況における仮想空間３０１を表す図である。
【０１９０】
プレイヤが把持モジュール２０１の位置や姿勢を変化させると、マジックハンド３０２の柄３０４の位置や姿勢も変化する。ＣＰＵ  １０１は、把持モジュール２０１の位置や姿勢の変化に応じて柄３０４の向きの回転方向を求め、柄３０４の向きを角度１１０１の向きへ移動（回転）する。ＣＰＵ  １０１は、視線３０６の向きも角度１１０１の方向へ移動（回転）する。
【０１９１】
ＣＰＵ  １０１は、視線３０６（あるいは柄３０４）の向きを、
（１）カーソル３０８が上縁部５１１にある場合、投影面３０７の上方向Ｙ１、
（２）カーソル３０８が右縁部５１２にある場合、投影面３０７の右方向Ｙ２、
（３）カーソル３０８が左縁部５１３にある場合、投影面３０７の左方向Ｙ３、
（４）カーソル３０８が下縁部５１４にある場合、投影面３０７の下方向Ｙ４、
に移動する。
【０１９２】
例えば図１１（ａ）では、カーソル３０８は画面５０１の上縁部５１１の中に描画されており、ＣＰＵ  １０１は、所定領域つまり上縁部５１１内にカーソル３０８が含まれると判別する。ＣＰＵ  １０１は、画面５０１の上方向Ｙ１を移動方向として、視線３０６の方向を変える。
【０１９３】
視線３０６の向きを移動すると、ＣＰＵ  １０１は、投影面３０７の向きを移動する。例えば視点３０５の位置を変えずに視線３０６の向きを変えることとすると、画面５０１内の画像は、カーソル３０８が上縁部５１１にある場合には投影面３０７の上方向Ｙ１に見上げるようにスクロールし、カーソル３０８が右縁部５１２にある場合には投影面３０７の右方向Ｙ２に（右横に）振り向くようにスクロールし、カーソル３０８が左縁部５１３にある場合には投影面３０７の左方向Ｙ３に（左横に）振り向くようにスクロールし、カーソル３０８が下縁部５１４にある場合には投影面３０７の下方向Ｙ４に見下げるようにスクロールすることになる。
【０１９４】
更にＣＰＵ  １０１は、視線３０６（あるいは柄３０４）の回転方向を示すベクトル１１０１の長さ、すなわち視線３０６の向きの単位時間あたりの回転角度を、所定値ΔＤｆｉｘに設定する。つまり、カーソル３０８が上縁部５１１，右縁部５１２，左縁部５１３，下縁部５１４のいずれかに含まれる場合、ＣＰＵ  １０１は、視線３０６の向きの単位時間あたりの回転角度を所定値ΔＤｆｉｘに設定する。
【０１９５】
ただし、ＣＰＵ  １０１は、視線３０６の回転角度を固定値ではなく可変値にしてもよい。例えば、ＣＰＵ  １０１は、画面５０１の左上の隅を原点とし、右方向をＸ軸の正の向き、下方向をＹ軸の正の向きとする２次元座標系を定義したとき、
（１）カーソル３０８が上縁部５１１に含まれる場合、ＣＰＵ  １０１は、カーソル３０８の画面５０１における位置のＹ座標値が小さいほど、言い換えればカーソル３０８が画面５０１の上にあるほど、視線３０６の向きの単位時間あたりの回転角度を大きくし、
（２）カーソル３０８が右縁部５１２に含まれる場合、ＣＰＵ  １０１は、カーソル３０８の画面５０１における位置のＸ座標値が大きいほど、言い換えればカーソル３０８が画面５０１の右にあるほど、視線３０６の向きの単位時間あたりの回転角度を大きくし、
（３）カーソル３０８が左縁部５１３に含まれる場合、ＣＰＵ  １０１は、カーソル３０８の画面５０１における位置のＸ座標値が小さいほど、言い換えればカーソル３０８が画面５０１の左にあるほど、視線３０６の向きの単位時間あたりの回転角度を大きくし、
（４）カーソル３０８が下縁部５１４に含まれる場合、ＣＰＵ  １０１は、カーソル３０８の画面５０１における位置のＹ座標値が大きいほど、言い換えればカーソル３０８が画面５０１の下にあるほど、視線３０６の向きの単位時間あたりの回転角度を大きくする、
ようにしてもよい。この場合、画面５０１のスクロールの速さが変わることになる。
【０１９６】
補正部８０７は、移動計算部８０６により計算された回転角度を、距離計算部８０５により求められた距離Ｌ１に基づいて補正する。このとき補正部８０７は、補正後の回転角度ΔＤが、距離計算部８０５により求められた距離Ｌ１に対して単調減少するように補正する。
【０１９７】
なお、ＣＰＵ  １０１は、図１０（ａ）〜（ｄ）に示される関数において位置の移動距離ΔＬを回転角度ΔＤに置き換えた関数のいずれを用いてもよいし、これらの関数の組み合わせでもよい。また、距離Ｌ１が短いほど回転角度ΔＤが小さくなる関係を満たすのであれば、自由に関数を定めることができる。
【０１９８】
以上のように求められた回転方向、及び、単位時間あたりの回転角度ΔＤが、それぞれ、視線３０６の向きを単位時間あたりに移動する向き、及び、単位時間あたりに移動する角度となる。ＣＰＵ  １０１は、単位時間あたり、計算された回転方向に、補正された回転角度だけ、視線３０６の向きを移動する。
【０１９９】
更新部８０８は、単位時間あたり、計算された回転方向に、補正された回転角度ΔＤだけ、視線３０６の向きを移動するように、視線情報８５３を更新する。
【０２００】
視点３０５の位置を変える場合と同様、視線３０６の向きを変える場合においても、画面５０１の注目領域９６０内に配置されているオブジェクト３０３が視点３０５から遠くにあればあるほど、視線３０６の向きの回転角度ΔＤは大きくなり、画面５０１は大きくスクロールすることとなる。逆に画面５０１の注目領域９６０内に配置されているオブジェクト３０３が視点３０５から近くにあればあるほど、視線３０６の向きの回転角度ΔＤは小さくなり、画面５０１は少しずつスクロールすることとなる。
【０２０１】
なお、視点３０５の位置と視線３０６の向きのうち、どちらか一方のみを移動する実施形態を採用してもよいし、両方とも移動する実施形態を採用してもよい。
【０２０２】
次に、ゲーム装置２００の上記各部が実行する画像表示処理について、図１２のフローチャートを用いて説明する。
【０２０３】
なお、本実施形態では、注目領域９６０の形状を矩形とし、画面５０１の中央の位置に固定している。
【０２０４】
まず、ＣＰＵ  １０１は、把持モジュール２０１の現実空間における位置と姿勢を示す情報をコントローラ１０５から取得する（ステップＳ１２０１）。
【０２０５】
ＣＰＵ  １０１は、ステップＳ１２０１で取得した把持モジュール２０１の位置と姿勢に基づいて柄３０４の位置と姿勢を求め、カーソル３０８の画面５０１内における位置を決定する（ステップＳ１２０２）。
【０２０６】
具体的には、ＣＰＵ  １０１は、例えば、現実空間における把持モジュール２０１の位置と仮想空間３０１における柄３０４の位置とを１対１に対応させ、ステップＳ１２０１で取得した把持モジュール２０１の位置に対応する仮想空間３０１における位置を柄３０４の位置とする。また、ステップＳ１２０１で取得した把持モジュール２０１の姿勢を柄３０４の姿勢とする。そして、ＣＰＵ  １０１は、柄３０４の向きを示す直線３１１と投影面３０７との交点の位置を、カーソル３０８の位置とする。
【０２０７】
ＣＰＵ  １０１は、ステップＳ１２０２で決定された位置をカーソル３０８の新たな位置として、カーソル情報８５４を更新する。
【０２０８】
ＣＰＵ  １０１は、ステップＳ１２０２で決定したカーソル３０８の位置が、画面５０１の所定領域内にあるか否かを判別する（ステップＳ１２０３）。
【０２０９】
例えば、上述の上縁部５１１、右縁部５１２、左縁部５１３、下縁部５１４のすべてを、所定領域とする。ＣＰＵ  １０１は、カーソル３０８の位置が上縁部５１１、右縁部５１２、左縁部５１３、下縁部５１４のいずれかの中にある場合、カーソル３０８が所定領域内にあると判別し、それ以外の場合（つまりカーソル３０８が中央部５１５にある場合）、カーソル３０８が所定領域内にないと判別する。
【０２１０】
カーソル３０８が所定領域内にないと判別された場合（ステップＳ１２０３；ＮＯ）、後述のステップＳ１２０７に進む。一方、カーソル３０８が所定領域内にあると判別された場合（ステップＳ１２０３；ＹＥＳ）、ＣＰＵ  １０１は、視点３０５の位置の移動方向と、単位時間あたりの移動距離を計算する。もしくは、ＣＰＵ  １０１は、視線３０６の向きの回転方向と、単位時間あたりの回転角度を計算する。（ステップＳ１２０４）。
【０２１１】
そして、ＣＰＵ  １０１は、ステップＳ１２０４で計算された視点３０５の位置の移動距離を、距離Ｌ１が短いほど補正後の移動距離ΔＬが小さくなるように、補正する。もしくは、ＣＰＵ  １０１は、ステップＳ１２０４で計算された視線３０６の向きの回転角度を、距離Ｌ１が短いほど補正後の回転角度ΔＤが小さくなるように、補正する（ステップＳ１２０５）。
【０２１２】
例えば図９（ａ）において、ＣＰＵ  １０１は、画面５０１に表示されているオブジェクト９０１，９０２Ａ，９０２Ｂ，９０２Ｃの中から、画面５０１の注目領域９６０内に配置されているオブジェクト（この場合オブジェクト９０２Ａが該当する）を選択する。次に、ＣＰＵ  １０１は、選択したオブジェクト９０２Ａの位置と視点３０５の位置との距離Ｌ１を計算する。そして、ＣＰＵ  １０１は、計算した距離Ｌ１が短いほど、補正後の移動距離ΔＬ（又は回転角度ΔＤ）が小さくなるように、移動距離ΔＬ（又は回転角度ΔＤ）を補正する。
【０２１３】
そして、ＣＰＵ  １０１は、単位時間あたり、ステップＳ１２０４で計算された移動方向に、ステップＳ１２０５で補正した移動距離ΔＬだけ、視点３０５の位置を移動する。もしくは、ＣＰＵ  １０１は、単位時間あたり、ステップＳ１２０４で計算された回転方向に、ステップＳ１２０５で補正した回転角度ΔＤだけ、視線３０６の向きを移動する（ステップＳ１２０６）。
【０２１４】
ＣＰＵ  １０１は、移動後の新たな視点３０５の位置を視点情報８５２に格納する。もしくは、ＣＰＵ  １０１は、移動後の新たな視線３０６の向きを視線情報８５３に格納する。
【０２１５】
ＣＰＵ  １０１は、視点３０５の位置から視線３０６の向きに仮想空間３０１を投影面３０７に投影した画像を生成する（ステップＳ１２０７）。
【０２１６】
本実施形態では、ＣＰＵ  １０１は、カーソル情報８５４に格納されているカーソル３０８の位置にカーソル３０８を表す所定画像を画像処理部１０７に描画させる。ただし、カーソル情報８５４をＲＡＭ  １０３に記憶するものの、カーソル３０８を表す画像を描画しないこととしてもよい。
【０２１７】
そして、ＣＰＵ  １０１は、ステップＳ１２０７で生成された画像を、画像処理部１０７にモニターへ表示させる（ステップＳ１２０８）。
【０２１８】
一般に、プレイヤが画面５０１内の特定部分を注視している状況で画面５０１を大きくスクロールさせると、プレイヤにとってとても見づらい画像になってしまったり酔いやすくなってしまったりする恐れがある。
例えば、画面５０１の真ん中付近ほどプレイヤの注目度が高い傾向があると推定できる。一方で、視点３０５の近くにあるものほどプレイヤの注目度が高い傾向があるとも推定できる。
そこで、本実施形態では、オブジェクト３０３が画面５０１の真ん中付近に描画され、且つ、視点３０５の近くに配置されているのであれば、画面５０１の真ん中付近をプレイヤが注視していると推定し、スクロール量を抑える。
したがって、画面５０１のスクロールが速すぎて画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面５０１の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点３０５の移動によるスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置８００への負荷を減らすことができる。
【０２１９】
本実施形態では、所定領域として上縁部５１１、右縁部５１２、左縁部５１３、下縁部５１４のすべてを用いているが、これらのうちの１つ、あるいは２つ以上の組み合わせでもよい。例えば、画面５０１がプレイヤから見て上下方向（縦方向）にしかスクロールしないゲームでは、所定領域として上縁部５１１と下縁部５１４の２つだけを用いればよい。また例えば、画面５０１がプレイヤから見て左右方向（横方向）にしかスクロールしないゲームでは、所定領域として右縁部５１２と左縁部５１３の２つだけを用いればよい。
【０２２０】
本実施形態では、所定領域と注目領域９６０を別々に定義しているが、所定領域である中央部５１５を注目領域９６０として用いてもよい。
【０２２１】
また、所定領域の形状は矩形に限定されるわけではなく、円、楕円、多角形など、任意の図形にしてもよい。
【０２２２】
本実施形態では、画面５０１の真ん中付近の一部領域を注目領域９６０としているが、画面５０１全体を注目領域９６０としてもよい。例えば画面５０１中にオブジェクト３０３が１つしかない場合には、画面５０１中、オブジェクト３０３が表示されている部分のプレイヤによる注目度が相対的に高いと推定できるので、スクロール量を抑えることによって、画面５０１の見やすさを向上することができる。
【０２２３】
なお、ＣＰＵ  １０１は、単位時間あたりの方向と距離の変化量を計算しているので、画面を速くスクロールしたり遅くスクロールしたりして、スクロールのスピードを変えている。しかし、スピードではなく絶対的なスクロール量を多くしたり少なくしたりしてもよい。すなわち、ＣＰＵ  １０１は、“単位時間あたりの”移動方向と移動距離（又は回転方向と回転角度）の代わりに、最終的にスクロールすることになる“トータルの”移動方向と移動距離（又は回転方向と回転角度）を計算してもよい。この場合、上記説明において、“単位時間あたりの”移動方向と移動距離（又は回転方向と回転角度）を、“トータルの”移動方向と移動距離（又は回転方向と回転角度）に読み替えればよい。
【０２２４】
（実施形態２）
次に、本発明のその他の実施形態について説明する。上述の実施形態では、画面５０１の注目領域９６０内に存在するオブジェクト３０３の仮想空間３０１における位置を用いてスクロール量を補正している。しかし、注目領域９６０内には複数のオブジェクト３０３が存在する場合もある。本実施形態は、画面５０１の注目領域９６０内に複数のオブジェクト３０３が描画されている場合を想定している。
【０２２５】
視点３０５とオブジェクト３０３の間の距離が短いということは、オブジェクト３０３の投影面３０７への投影画像がより大きく描画されるということである。言い換えると、画面５０１に大きく描画されるほどオブジェクト３０３は視点３０５の近くにある傾向にあると言える。上述の実施形態では、視点３０５の近くにあるものほど注目度が高いことを前提としている。しかし、オブジェクト３０３が視点３０５の近くにあるのか遠くにあるのか、画面５０１のどこを注視するか、といったプレイヤの判断は、そのオブジェクト３０３だけでなく、その周囲の状況（例えば近くにどのような他のオブジェクトがあるのか等）を加味してなされることが多いと予想される。そこで本実施形態では、複数のオブジェクト３０３が画面５０１に描画されている場合、視点３０５から見たそれらの前後関係（奥行き）も考慮している。
【０２２６】
図１３（ａ）は、モニターに表示される画面５０１の例である。画面５０１には、オブジェクト３０３として、マジックハンド３０２が掴んでいるオブジェクト９０１のほかに、オブジェクト９０２Ａ，９０２Ｂ，９０２Ｃ、及び、オブジェクト９０２Ａの背景に配置されるオブジェクト１３０１が表示されている。
図１３（ｂ）は、図１３（ａ）に示す画面５０１が表示されている状況における仮想空間３０１を表す図である。
【０２２７】
ここで、「あるオブジェクト（ＯＢＪ１）が他のオブジェクト（ＯＢＪ２）の背景に配置される」とは、仮に視線３０６の向きを正方向とする直線（１次元）座標系を定義したとき、ＯＢＪ１の座標値がＯＢＪ２の座標値より大きく、且つ、ＯＢＪ１が描画される画面領域とＯＢＪ２が描画される画面領域とに重なる部分が存在すること、を意味する。なお、ＯＢＪ１のことを「背景オブジェクト」と呼ぶことにする。ＯＢＪ２の背景に配置されるオブジェクトが複数存在する場合には、ＯＢＪ２の最も近くにあるものを背景オブジェクトとする。
【０２２８】
仮想空間３０１に複数のオブジェクト３０３が存在し、視点３０５の位置あるいは視線３０６の向きが可変であるとすると、すべてのオブジェクト３０３が背景オブジェクトとなり得る。
【０２２９】
上述のステップＳ１２０４において、ＣＰＵ  １０１は、画面５０１に表示されているオブジェクト９０１，９０２Ａ，９０２Ｂ，９０２Ｃ，１３０１の中から、注目領域９６０の中心の最も近くに描画されているオブジェクト（この場合オブジェクト９０２Ａが該当する）の背景オブジェクトを選択する。つまり図１３の（ａ）場合、ＣＰＵ  １０１は、オブジェクト１３０１を背景オブジェクトとして選択する。そして、ＣＰＵ  １０１は、視点３０５の位置の移動方向と移動距離を計算する。
【０２３０】
つまり、上述のステップＳ１２０５において、ＣＰＵ  １０１は、選択したオブジェクト１３０１の位置と視点３０５の位置との距離Ｌ２を計算する。そして、ＣＰＵ  １０１は、計算した距離Ｌ２が小さいほど移動距離ΔＬが小さくなるように、移動距離ΔＬを補正する。
【０２３１】
例えばＣＰＵ  １０１は、図１０（ａ）〜（ｄ）に示される関数において距離Ｌ１を距離Ｌ２に置き換えた関数のいずれを用いてもよいし、これらの関数の組み合わせでもよい。また、距離Ｌ２が短いほど移動距離ΔＬが小さくなる関係を満たすのであれば、自由に関数を定めることができる。
【０２３２】
本実施形態においても、視点３０５の位置を移動する代わりに、視線３０６の向きを移動してもよい。また、視点３０５の位置と視線３０６の向きの両方を変えてもよい。視線３０６の向きを変える場合、ＣＰＵ  １０１は、図１０（ａ）〜（ｄ）に示される関数において距離Ｌ１を距離Ｌ２に置き換え、且つ、移動距離ΔＬを回転角度ΔＤに置き換えた関数のいずれを用いてもよいし、これらの関数の組み合わせでもよい。また、距離Ｌ２が短いほど回転角度ΔＤが小さくなる関係を満たすのであれば、自由に関数を定めることができる。
【０２３３】
更に、ＣＰＵ  １０１は、計算された移動方向に、補正された移動距離ΔＬだけ、視点３０５の位置を変え（ステップＳ１２０６）、新たな視点３０５の位置を視点情報８５２に格納する。もしくは、ＣＰＵ  １０１は、計算された回転方向に、補正された回転角度ΔＤだけ、視線３０６の向きを変え、新たな視線３０６の向きを視線情報８５３に格納する。そして、ＣＰＵ  １０１は、視点３０５の位置から視線３０６の向きに仮想空間３０１を投影面３０７に投影した画像を生成し（ステップＳ１２０７）、生成した画像をモニターへ表示させる（ステップＳ１２０８）。
【０２３４】
上述したように、プレイヤが画面５０１内の一部分を注視している状況で画面５０１を大きくスクロールさせると、プレイヤにとってとても見づらい画像になってしまう恐れがある。
例えば、画面５０１にｎ個（ｎ≧２）のオブジェクト（ＯＢＪ１，ＯＢＪ２，…，ＯＢＪｎ）が描画されており、それらのオブジェクトのうち画面５０１の真ん中付近に描画されている複数のオブジェクト（例えばＯＢＪ１とＯＢＪ２の２つ）がほかに比べて視点３０５の近くに配置されている場合、プレイヤによる画面５０１の真ん中付近に対する注目度が他の領域に比べて高いと推定できる。
しかし、画面５０１の真ん中付近に描画されているオブジェクトのうち一方（ＯＢＪ１）は視点３０５の近くに配置され、もう一方（ＯＢＪ２）は視点３０５の遠くに配置されている場合、必ずしもプレイヤによる画面５０１の真ん中付近に対する注目度が他の領域に比べて高いとは言い切れない。プレイヤはＯＢＪ１とＯＢＪを注視しているか容易には推定できないためである。
そこで、本実施形態では、一般にプレイヤによる注目度が比較的高いと推定される画面５０１の真ん中付近に映っているオブジェクト（ＯＢＪ１，ＯＢＪ２）のうち、背景に配置される方（背景オブジェクト）に注目し、背景オブジェクトが視点３０５の近くにあるほどスクロール量を抑えることとしている。つまり、背景オブジェクトが視点３０５の近くにあるということは、もう一方のオブジェクトはさらに視点３０５の近くにあるので、ＯＢＪ１，ＯＢＪ２が配置されている画面５０１の真ん中付近のプレイヤの注目度は比較的高いと推定できるため、スクロール量を抑えるのである。
したがって、画面５０１のスクロールが速すぎて画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面５０１の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点３０５の移動によるスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置２００への負荷を減らすことができる。
【０２３５】
（実施形態３）
次に、本発明のその他の実施形態について説明する。本実施形態も、画面５０１の注目領域９６０内に複数のオブジェクト３０３が描画されている場合を想定している。
【０２３６】
図１４（ａ）は、モニターに表示される画面５０１の例である。
図１４（ｂ）は、図１４（ａ）に示す画面５０１が表示されている状況における仮想空間３０１を表す図である。
【０２３７】
本実施形態では、注目領域９６０に複数のオブジェクト３０３が含まれる場合、それらが背景オブジェクトであるか否かに関わらず、視点３０５と、注目領域９６０に含まれる各々のオブジェクト３０３と、の距離をそれぞれ計算して、視点３０５の位置の移動距離（又は視線３０６の向きの回転角度）を補正する。
【０２３８】
ＣＰＵ  １０１は、画面５０１の注目領域９６０内に配置されている各々のオブジェクト３０３の位置と、視点３０５の位置との距離をそれぞれ計算し、さらに各距離の平均値を計算する。
【０２３９】
例えば図１４（ａ）において、ＣＰＵ  １０１は、画面５０１に表示されているオブジェクト９０１，９０２Ａ，９０２Ｂ，９０２Ｃの中から、画面５０１の注目領域９６０内に配置されているオブジェクト（この場合オブジェクト９０１と９０２Ａの２つが該当する）を選択する。次に、ＣＰＵ  １０１は、選択したオブジェクト９０１の位置と視点３０５の位置との距離Ｌ３と、選択したオブジェクト９０２Ａの位置と視点３０５の位置との距離Ｌ４とを計算する。
【０２４０】
そして、ＣＰＵ  １０１は、計算された平均値が小さいほど、補正後の移動距離ΔＬ（又は回転角度ΔＤ）が小さくなるように、移動距離ΔＬ（又は回転角度ΔＤ）を補正する。つまり、視点３０５と、注目領域９６０に含まれるオブジェクト３０３との平均距離が小さいほど、スクロール量を少なく抑える。
【０２４１】
あるいは、ＣＰＵ  １０１は、画面５０１の注目領域９６０内に配置されている各々のオブジェクト３０３の位置と、視点３０５の位置との距離をそれぞれ計算し、各距離のうちの最大値が小さいほど、補正後の移動距離ΔＬ（又は回転角度ΔＤ）が小さくなるように、移動距離ΔＬ（又は回転角度ΔＤ）を補正してもよい。つまり、視点３０５と、注目領域９６０に含まれるオブジェクト３０３のうち最も視点３０５から遠いものとの距離が小さいほど、スクロール量を少なく抑えてもよい。
【０２４２】
あるいは、ＣＰＵ  １０１は、画面５０１の注目領域９６０内に配置されている各々のオブジェクト３０３の位置と、視点３０５の位置との距離をそれぞれ計算し、各距離のうちの最小値が小さいほど、補正後の移動距離ΔＬ（又は回転角度ΔＤ）が小さくなるように、移動距離ΔＬ（又は回転角度ΔＤ）を補正してもよい。つまり、視点３０５と、注目領域９６０に含まれるオブジェクト３０３のうち最も視点３０５から近いものとの距離が小さいほど、スクロール量を少なく抑えてもよい。
【０２４３】
あるいは、ＣＰＵ  １０１は、画面５０１の注目領域９６０内に配置されている各々のオブジェクト３０３の位置と、視点３０５の位置との距離をそれぞれ計算し、各距離の合計値が小さいほど、補正後の移動距離ΔＬ（又は回転角度ΔＤ）が小さくなるように、移動距離ΔＬ（又は回転角度ΔＤ）を補正してもよい。つまり、オブジェクト３０３が視点３０５の近くにある場合や、オブジェクト３０３が視点３０５から遠くにあったとしてもオブジェクト３０３の数が多い場合に、スクロール量を少なく抑えてもよい。
【０２４４】
本実施形態によれば、注目領域９６０内に含まれるそれぞれのオブジェクト３０３が視点３０５からどの程度近くにあるのか（遠くにあるのか）によってスクロール量を変える。そして、注目領域９６０内に含まれるそれぞれのオブジェクト３０３が、全体として近くにある傾向にあればスクロール量を少なく抑え、遠くにある傾向にあればスクロール量を増やす。したがって、画面５０１のスクロールが速すぎて画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面５０１の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点３０５の移動によるスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置２００への負荷を減らすことができる。
【０２４５】
（実施形態４）
次に、本発明のその他の実施形態について説明する。上記各実施形態では、注目領域９６０を画面５０１の中央に固定していたが、本実施形態では、注目領域９６０の位置を可変としている。
【０２４６】
図１５（ａ）は、モニターに表示される画面５０１の例である。
図１５（ｂ）は、図１５（ａ）に示す画面５０１が表示されている状況における仮想空間３０１を表す図である。
【０２４７】
距離計算部８０５は、プレイヤによって選択されたオブジェクト３０３の、生成部８０３により生成された画面５０１内における位置を中心として注目領域９６０を設定し、視点３０５の位置と注目領域９６０に含まれるオブジェクト３０３の位置との距離Ｌ５を計算する。
【０２４８】
より詳細には、ＣＰＵ  １０１は、仮想空間３０１に配置されているオブジェクト３０３の中から、プレイヤによって選択されているオブジェクト３０３を選択する。ここで「プレイヤによって選択されているオブジェクト３０３」とは、例えばマジックハンド３０２が掴んでいる状態のオブジェクト３０３である。図１５（ａ）の例では、オブジェクト９０１が該当する。
【０２４９】
そして、ＣＰＵ  １０１は、視点３０５の仮想空間３０１における位置と、選択したオブジェクト３０３の仮想空間３０１における位置との距離Ｌ５を計算する。ＣＰＵ  １０１が設定した注目領域９６０の中に複数のオブジェクト３０３が存在する場合、ＣＰＵ  １０１は、視点３０５の位置と、注目領域９６０に含まれるそれぞれのオブジェクト３０３の位置との各距離の平均値、最大値、あるいは最小値に対して単調減少するように、移動距離ΔＬ（又は回転角度ΔＤ）を補正する。
【０２５０】
プレイヤは、把持モジュール２０１の位置や姿勢を変えることにより、マジックハンド３０２で掴んでいるオブジェクト３０３の位置、あるいは、カーソル３０８の位置を、自由に変えることができる。すなわち、プレイヤによって選択されているオブジェクト３０３の位置は可変である。
【０２５１】
プレイヤによって選択されているオブジェクト３０３の位置を移動する移動指示入力をプレイヤから受け付けると、ＣＰＵ  １０１は、移動指示入力で指定された移動方向に、指定された移動距離だけ、オブジェクト３０３の位置を移動し、オブジェクト情報８５１を更新する。
【０２５２】
ＣＰＵ  １０１は、プレイヤによって選択されているオブジェクト３０３の位置を移動すると、図１６に示すように、注目領域９６０の位置も移動する。例えばＣＰＵ  １０１は、オブジェクト３０３の位置を移動するとともに、注目領域９６０の位置も直ちに移動する。つまりこの場合、注目領域９６０の位置は、プレイヤによって選択されているオブジェクト３０３の位置に固定されつつ動くことになる。
【０２５３】
あるいは、ＣＰＵ  １０１は、プレイヤによって選択されているオブジェクト３０３の位置を移動すると、このオブジェクト３０３の移動を開始してから所定時間経ってから、注目領域９６０の位置をオブジェクト３０３に追随するように移動してもよい。この場合、ＣＰＵ  １０１は、オブジェクト３０３の位置の所定時間Ｔ１分の移動履歴をＲＡＭ  １０３等に一時記憶させておけばよい。移動履歴は、現在時刻から過去所定時間分のオブジェクト３０３の位置の履歴である。
【０２５４】
例えば図１７（ａ）は、オブジェクト３０３の移動開始前の状態の画面５０１を表す図である。ＣＰＵ  １０１は、プレイヤによって選択されているオブジェクト９０１の移動を開始する。移動開始後、所定時間Ｔ２（ただしＴ２≦Ｔ１。典型的にはＴ２＝Ｔ１。）が経過するまで、ＣＰＵ  １０１は、図１７（ｂ）に示すように注目領域９６０を移動しない。ＣＰＵ  １０１は、オブジェクト３０３の位置を移動履歴としてＲＡＭ  １０３等に一時記憶する。所定時間Ｔ２が経過すると、ＣＰＵ  １０１は、図１７（ｃ）に示すように、オブジェクト９０１を移動した軌跡を辿るように、所定時間Ｔ２だけ遅れて注目領域９６０の位置を移動する。そして図１７（ｄ）に示すように、最終的には注目領域９６０はオブジェクト９０１が移動を終了した位置になる。このようにＣＰＵ  １０１はオブジェクト３０３の移動履歴通りに注目領域を移動してもよい。
【０２５５】
あるいは、ＣＰＵ  １０１は、オブジェクト３０３の移動履歴に何らかの演算を施して、注目領域９６０の移動経路を求めてもよい。例えば図１８（ａ）は、オブジェクト３０３の移動開始前の状態の画面５０１を表す図である。ＣＰＵ  １０１は、プレイヤによって選択されているオブジェクト９０１の移動を開始する。移動開始後、所定時間Ｔ２（ただしＴ２≦Ｔ１。典型的にはＴ２＝Ｔ１。）が経過するまで、ＣＰＵ  １０１は、図１８（ｂ）に示すように注目領域９６０を移動しない。所定時間Ｔ２が経過すると、ＣＰＵ  １０１は、オブジェクト９０１の移動履歴を参照し、単位時間あたりの位置の変位が所定の閾値を超えないようにフィルタを施し、注目領域９６０の移動経路を求める。
【０２５６】
図１９（ａ）と（ｂ）は、オブジェクト３０３の移動経路（軌跡）と、注目領域９６０の移動経路（軌跡）を示す図である。
【０２５７】
図１９（ａ）では、オブジェクト３０３の位置の変位（例えばＸ軸方向成分，Ｙ軸方向成分の変位）のうち閾値Ｃｔｈより変位が大きいところでは、注目領域９６０の位置の変位を閾値に抑えている。つまり、注目領域９６０の軌跡は、オブジェクト３０３の軌跡を、最大値がＣｔｈとなるローパスフィルタに通して得られるものである。注目領域９６０の軌跡は、オブジェクト３０３の軌跡の高周波成分を除去したものとも言える。オブジェクト３０３の位置が瞬時に大きく移動した場合でも、注目領域９６０の軌跡への影響は少なくなる。
【０２５８】
また、図１９（ｂ）では、オブジェクト３０３の位置の変位のうち閾値Ｃｔｈより変位が大きいところで、注目領域９６０の位置の変位を閾値に抑え、且つ、おおよそ各点を通るような近似曲線を、注目領域９６０の軌跡としている。この近似として、例えばスプライン近似、最小自乗近似のような公知の近似手法を採用できる。注目領域９６０の軌跡は、オブジェクト３０３の軌跡をまるめた形状になる。
【０２５９】
また、図１９（ｃ）では、ＣＰＵ  １０１は、オブジェクト３０３の軌跡における各点の変位の平均値を、注目領域９６０の軌跡の変位としている。注目領域９６０の軌跡は、直線的な形状になる。
【０２６０】
ＣＰＵ  １０１は、図１９（ａ）〜（ｃ）に示すいずれの手法を用いて注目領域９６０の移動経路を求めてもよいし、組み合わせて用いてもよい。
【０２６１】
図１８（ｂ）に戻り、ＣＰＵ  １０１は、オブジェクト３０３の移動経路１８１０から、注目領域９６０の移動経路１８２０を求める。そして、ＣＰＵ  １０１は、図１８（ｃ）に示すように、求めた移動経路に沿って注目領域９６０を移動する。注目領域９６０の移動中、オブジェクト３０３は移動経路１８３０に沿って更に移動している。そのため、ＣＰＵ  １０１は、同様にして注目領域９６０の移動経路１８４０を求め、注目領域９６０を移動する。そして図１８（ｄ）に示すように、最終的には注目領域９６０はオブジェクト９０１が移動を終了した位置になる。
【０２６２】
本実施形態によれば、注目領域９６０の位置は、プレイヤによる把持モジュール２０１の操作に従って変わるので、プレイヤの注目度が高いと考えられる画面５０１内の領域を、より的確に推定し、スクロール量を抑えることができる。したがって、画面５０１のスクロールが速すぎて画像が全体として見えづらくなってしまわないように、プレイヤにとって画面５０１の見やすさを向上できる効果が増す。更に、スクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置８００への負荷を減らすことができる。
【０２６３】
なお、ＣＰＵ  １０１は、プレイヤによって選択されているオブジェクト３０３として、図２０（ａ）と（ｂ）に示すように、カーソル３０８の位置に配置されているオブジェクト３０３を選択してもよい。例えば、マジックハンド３０２がどのオブジェクト３０３も掴んでいない場合、カーソル３０８が当たったところにあるオブジェクト３０３が選択されているものとして扱ってもよい。そして、ＣＰＵ  １０１は、視点３０５の仮想空間３０１における位置と、カーソル３０８の位置にあるオブジェクト３０３の仮想空間３０１における位置との距離Ｌ６を計算し、計算された距離に対して単調減少するように、移動距離ΔＬ（又は回転角度ΔＤ）を補正してもよい。
【０２６４】
また、プレイヤによるオブジェクト３０３の選択は、マジックハンド３０２で掴むことによって行われることに限られない。ＣＰＵ  １０１は、いずれか１つ以上のオブジェクト３０３を選択する旨のユーザによる選択指示入力を受け付けて、選択指示入力が示すオブジェクト３０３を、プレイヤによって選択されているオブジェクト３０３とすることができる。
【０２６５】
（実施形態５）
次に、本発明のその他の実施形態について説明する。本発明は、上記のような３次元仮想空間にて実行されるゲームだけでなく、２次元仮想空間にて実行されるゲームにも適用可能である。以下詳述する。
【０２６６】
図２１は、本実施形態のゲーム装置２００の機能的な構成を示す図である。
図２２（ａ）は、モニターに表示される画面５０１の例である。本実施形態では２次元の仮想空間を想定しているので、オブジェクト３０３は“平面のオブジェクト”（画像データ）である。本実施形態では、「オブジェクト」の代わりに「キャラクタ」と呼ぶこととする。画面５０１には、仮想空間３０１のうち表示領域９５２に含まれる画像がモニターに表示される。
図２２（ｂ）は、図２２（ａ）に示す画面５０１が表示されている状況における仮想空間３０１を表す図である。仮想空間３０１には、キャラクタとして、例えばプレイヤキャラクタ２２１０、その他のキャラクタ２２２０等が配置される。
【０２６７】
本実施形態においては、画面５０１には表示領域９５２に含まれる画像がモニターに表示されるのであって、上記各実施形態のように仮想空間３０１に１つの視点３０５と１つの視線３０６が存在するわけではない。しかし、以下に述べる画面５０１の拡縮（ズームイン、ズームアウト）を概念的に理解しやすくするため、“擬似的な”視点２２５０を用いて説明する。
【０２６８】
擬似的な視点２２５０から表示領域９５２に下ろした垂線と、表示領域９５２と、の交点は、表示領域９５２の中央点（重心）と常に一致する。
【０２６９】
本実施形態で扱うゲームでは、２次元仮想空間の一部分をズームイン（拡大）して表示したり全体をズームアウト（縮小）して表示したりすることができる。ズームインは擬似的な視点２２５０を表示領域９５２に近づけることに相当し、ズームアウトは擬似的な視点２２５０を表示領域９５２から遠ざけることに相当する。
【０２７０】
記憶部８０１は、キャラクタの位置を示すキャラクタ情報２１０１と、表示領域９５２の位置と大きさを示す表示領域情報２１０２、注目領域９６０の位置を示す注目領域情報２１０３を記憶する。ＣＰＵ  １０１とＲＡＭ  １０３が協働して記憶部８０１として機能する。
【０２７１】
入力受付部８０２は、把持モジュール２０１（あるいはゲームパッドやタッチパネル）を操作するユーザからの様々な指示入力を受け付ける。例えば、入力受付部８０２は、視点３０５の位置を移動する旨の移動指示入力や、任意のオブジェクト３０３を操作対象として選択する旨の選択指示入力などをプレイヤから受け付ける。ＣＰＵ  １０１、ＲＡＭ  １０３、コントローラ１０５が協働して入力受付部８０２として機能する。
【０２７２】
注目領域９６０は、例えば、表示領域９５２の中央の位置に設定される。ただし、ＣＰＵ  １０１は、上述の実施形態と同様に、選択指示入力が示すキャラクタの位置を中心とする位置に注目領域９６０を移動してもよい。
【０２７３】
生成部８０３は、表示領域９５２に含まれるキャラクタ等の画像を生成する。言い換えれば、生成部８０３は、仮想空間３０１を擬似的な視点２２５０の位置から見たキャラクタ等を表す画像を生成する。ＣＰＵ  １０１とＲＡＭ  １０３と画像処理部１０７が協働して生成部８０３として機能する。
【０２７４】
表示部８０４は、生成部８０３によって生成された画像をモニターに表示する。ＣＰＵ  １０１とＲＡＭ  １０３と画像処理部１０７が協働して表示部８０４として機能する。
【０２７５】
距離計算部８０５は、生成部８０３によって生成された画像内の注目領域９６０に描画されているキャラクタの位置と、擬似的な視点２２５０の位置と、の距離Ｌ７を求める。ＣＰＵ  １０１とＲＡＭ  １０３と画像処理部１０７が協働して距離計算部８０５として機能する。
【０２７６】
注目領域９６０に複数のキャラクタが存在する場合、距離計算部８０５は、擬似的な視点２２５０と各々のキャラクタとの距離Ｌ７をそれぞれ求め、更にそれらの平均値、最大値、最小値、合計値等を求めてもよい。
【０２７７】
移動計算部８０６は、表示領域９５２の移動方向と移動距離を計算する。言い換えれば、移動計算部８０６は、擬似的な視点２２５０の移動方向と移動距離を計算する。ＣＰＵ  １０１とＲＡＭ  １０３が協働して移動計算部８０６として機能する。
【０２７８】
補正部８０７は、移動計算部８０６により計算された移動距離を、距離計算部８０５により求められた距離Ｌ７に基づいて補正する。このとき補正部８０７は、補正後の移動距離が、距離Ｌ７に対して単調減少するように、移動距離を補正する。ＣＰＵ  １０１とＲＡＭ  １０３が協働して補正部８０７として機能する。
【０２７９】
更新部８０８は、移動計算部８０６により計算された移動方向に、補正部８０７により補正された移動距離だけ、表示領域９５２の位置を移動するように、表示領域情報２１０２を更新する。ＣＰＵ  １０１とＲＡＭ  １０３が協働して更新部８０８として機能する。
【０２８０】
次に、本実施形態の画像表示処理について、画面５０１をズームアウトする場合を例にとり説明する。なお、本実施形態では、ゲーム装置２００は、ユーザからの指示入力に応じて、画面５０１の表示倍率を自由に変えることができるものとする。
【０２８１】
図２３（ａ）は、図２２（ａ）に示す画面５０１をズームアウトし、より広い範囲の仮想空間３０１をモニターに表示したときの画面５０１の例である。
図２３（ｂ）は、図２３（ａ）に示す画面５０１が表示されている状況における仮想空間３０１を表す図である。
【０２８２】
ＣＰＵ  １０１は、画面５０１の表示倍率を変更する指示入力をユーザから受け付けると、表示領域９５２の大きさを拡大又は縮小する。同様に、注目領域９６０の大きさも拡大又は縮小する。
【０２８３】
これは、擬似的な視点２２５０を用いて説明すると、ＣＰＵ  １０１が、視野角を一定にしたまま、擬似的な視点２２５０と仮想空間３０１との距離（擬似的な視点２２５０の高さ）を変えることに相当すると言える。例えば、画面５０１をズームアウトする指示入力を受け付けた場合、ＣＰＵ  １０１は、図２３（ａ）に示すように表示領域９５２を拡張する。したがって、一個一個のキャラクタは小さく描画されることになるものの、より広い範囲の仮想空間がモニターに表示されることになる。
【０２８４】
図２４は、本実施形態の画像表示処理を説明するためのフローチャートである。
【０２８５】
まず、コントローラ１０５（あるいはゲームパッドやタッチパネルでも良い）は、プレイヤキャラクタ２２１０の位置を上下左右に移動させるための各操作ボタンによる指示入力をプレイヤから受け付ける（ステップＳ２４０１）。例えばＣＰＵ  １０１は、コントローラ１０５がプレイヤキャラクタ２２１０の位置を移動する旨の指示入力を受け付けると、プレイヤキャラクタ２２１０の位置を指定された方向に移動する。ＣＰＵ  １０１は、プレイヤキャラクタ２２１０の位置の移動に際し、プレイヤキャラクタ２２１０が常に中央部５１５の中にあるようにする。
【０２８６】
ＣＰＵ  １０１は、画面５０１をスクロールするか否かを判別する（ステップＳ２４０２）。例えばＣＰＵ  １０１は、プレイヤキャラクタ２２１０の位置が、中央部５１５を定義する矩形の４辺のいずれかまで達していない場合、プレイヤキャラクタ２２１０の位置を指示入力に従って移動する。この場合、ＣＰＵ  １０１は画面５０１をスクロールしないと判別する。一方、プレイヤキャラクタ２２１０の位置が、中央部５１５を定義する矩形の４辺のいずれかまで達している場合、ＣＰＵ  １０１は画面５０１をスクロールすると判別する。
【０２８７】
画面５０１をスクロールしないと判別された場合（ステップＳ２４０２；ＮＯ）、ステップＳ２４０１に戻る。一方、画面５０１をスクロールすると判別された場合（ステップＳ２４０２；ＹＥＳ）、ＣＰＵ  １０１は、表示領域９５２の移動方向と単位時間あたりの移動距離を求める（ステップＳ２４０３）。
【０２８８】
例えば、プレイヤキャラクタ２２１０の位置が中央部５１５を定義する矩形の４辺のいずれかまで達していて、且つ、プレイヤキャラクタ２２１０の位置を更に中央部５１５の外側へ移動する指示入力があった場合、ＣＰＵ  １０１は、指示入力が示す方向を表示領域９５２の移動方向とし、所定値を表示領域９５２の移動距離とする。
【０２８９】
ＣＰＵ  １０１は、画面５０１の表示倍率を変えたか否かを判別する（ステップＳ２４０４）。
【０２９０】
表示倍率を変えていない場合（ステップＳ２４０４；ＮＯ）、ステップＳ２４０６に進む。一方、表示倍率を変えた場合（ステップＳ２４０４；ＹＥＳ）、ＣＰＵ  １０１は、ステップＳ２４０３で求めた表示領域９５２の移動距離を補正する（ステップＳ２４０５）。
【０２９１】
具体的には、ＣＰＵ  １０１は、擬似的な視点２２５０と仮想空間３０１との距離Ｌ７が短いほど小さくなるように、表示領域９５２の移動距離を補正する。つまり、補正後の移動距離は、距離Ｌ７に対して単調減少する。
【０２９２】
ＣＰＵ  １０１は、ステップＳ２４０３で求めた移動方向に、ステップＳ２４０５で補正した移動距離だけ、表示領域９５２を移動する（ステップＳ２４０６）。
【０２９３】
そして、ＣＰＵ  １０１は、表示領域９５２内の画像を画像処理部１０７にモニターへ表示させる（ステップＳ２４０７）。
【０２９４】
本実施形態によれば、画面５０１の表示倍率を変えない場合には、スクロール量も不変である。しかし、表示倍率を変えた場合には、キャラクタの位置が注目領域９６０の真ん中に近ければ近いほど、スクロール量が少なく抑えられる。したがって、画面５０１のスクロールが速すぎて画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面５０１の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、スクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置２００への負荷を減らすことができる。
【０２９５】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【０２９６】
コンピュータをゲーム装置８００の全部又は一部として動作させるためのプログラムを、メモリカード、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ（Magneto Optical disk）などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【０２９７】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【０２９８】
以上説明したように、本発明によれば、画像表示のスクロール処理による負荷を軽減し、プレイヤにとっての画面の見やすさを向上するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【０２９９】
【図１】本発明のゲーム装置が実現される典型的な情報処理装置の概要構成を示す図である。
【図２】本実施形態にて利用されるコントローラと情報処理装置の外観を示す説明図である。
【図３】仮想空間と現実世界との対応関係を示す説明図である。
【図４】マジックハンドの柄とオブジェクトとの位置関係と、力の方向を示す説明図である。
【図５】画面にカーソルとマジックハンドとオブジェクトが表示される様子を示す説明図である。
【図６】マジックハンドの柄の位置と、視点の移動の方向との関係を説明する説明図である。
【図７】視線の方向の向きを右に移動させる様子を仮想空間の上側から見たものを順に示す説明図である。
【図８】本発明のゲーム装置の機能的な構成を示す図である。
【図９】（ａ）画面に表示される仮想空間を表す画像の例である。（ｂ）仮想空間内の視点の位置を移動する様子を説明するための図である。
【図１０】（ａ）〜（ｄ）は、視点の位置とオブジェクトの位置との距離と、視点の位置の移動量又は視線の向きの移動量と、の関係を示す図である。
【図１１】（ａ）画面に表示される仮想空間を表す画像の例である。（ｂ）仮想空間内の視線の向きを変える様子を説明するための図である。
【図１２】画像表示処理を説明するためのフローチャートである。
【図１３】（ａ）実施形態２において、画面に表示される仮想空間を表す画像の例である。（ｂ）仮想空間内の視点やオブジェクト等の位置関係を説明するための図である。
【図１４】（ａ）実施形態３において、画面に表示される仮想空間を表す画像の例である。（ｂ）仮想空間内の視点やオブジェクト等の位置関係を説明するための図である。
【図１５】（ａ）実施形態４において、画面に表示される仮想空間を表す画像の例である。（ｂ）仮想空間内の視点やオブジェクト等の位置関係を説明するための図である。
【図１６】オブジェクトの軌跡と、注目領域の軌跡とを説明するための図である。
【図１７】（ａ）〜（ｄ）は、実施形態４において、オブジェクトの軌跡と、注目領域の軌跡とを説明するための図である。
【図１８】（ａ）〜（ｄ）は、実施形態４において、オブジェクトの軌跡と、注目領域の軌跡とを説明するための図である。
【図１９】（ａ）〜（ｃ）は、実施形態４において、注目領域の軌跡を求める処理を説明するための図である。
【図２０】（ａ）実施形態４において、画面に表示される仮想空間を表す画像の他の例である。（ｂ）仮想空間内の視点やオブジェクト等の位置関係を説明するための図である。
【図２１】実施形態５において、ゲーム装置の機能的な構成を示す図である。
【図２２】（ａ）実施形態５において、画面に表示される仮想空間を表す画像の例である。（ｂ）擬似的な視点やキャラクタ等の位置関係を説明するための図である。
【図２３】（ａ）実施形態５において、ズームアウトしたときの画像の例である。（ｂ）擬似的な視点やキャラクタ等の位置関係を説明するための図である。
【図２４】画像表示処理を説明するためのフローチャートである。
【符号の説明】
【０３００】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
１１１  マイク
２０１  把持モジュール
２０２  ＣＣＤカメラ
２０３  十字形キー
２０４  Ａボタン
２０５  Ｂボタン
２０６  各種ボタン
２０７  インジケータ
２０８  電源ボタン
２５１  発光モジュール
２５２  発光ダイオード
２９１  テレビジョン装置
３０１  仮想空間
３０２  マジックハンド
３０３  オブジェクト
３０４  柄
３０５  視点
３０６  視線
３０７  投影面
３０８  カーソル
３０９  障害物
３１１  柄の姿勢の方向
３１３  基準位置
３１４  基準位置からのずれを表すベクトル
３２１  柄の姿勢の方向ベクトル
３２２  柄からオブジェクトへの方向ベクトル
３２３  上下左右のずれを表すベクトル
４１１  牽引力（反発力）
４１２  上下左右の力
５０１  画面
５１１  上縁部
５１２  右縁部
５１３  左縁部
５１４  下縁部
５１５  中央部
８００  ゲーム装置
８０１  記憶部
８０２  入力受付部
８０３  生成部
８０４  表示部
８０５  距離計算部
８０６  移動計算部
８０７  補正部
８０８  更新部
８５１  オブジェクト情報
８５２  視点情報
８５３  視線情報
８５４  カーソル情報
８５５  注目領域情報
９５１  視点の位置の移動方向
９５２  表示領域
９６０  注目領域
１１０１  視線の向きの回転方向
【図１】
0004384697.tif 000002
【図２】
0004384697.tif 000003
【図３】
0004384697.tif 000004
【図４】
0004384697.tif 000005
【図５】
0004384697.tif 000006
【図６】
0004384697.tif 000007
【図７】
0004384697.tif 000008
【図８】
0004384697.tif 000009
【図９】
0004384697.tif 000010
【図１０】
0004384697.tif 000011
【図１１】
0004384697.tif 000012
【図１２】
0004384697.tif 000013
【図１３】
0004384697.tif 000014
【図１４】
0004384697.tif 000015
【図１５】
0004384697.tif 000016
【図１６】
0004384697.tif 000017
【図１７】
0004384697.tif 000018
【図１８】
0004384697.tif 000019
【図１９】
0004384697.tif 000020
【図２０】
0004384697.tif 000021
【図２１】
0004384697.tif 000022
【図２２】
0004384697.tif 000023
【図２３】
0004384697.tif 000024
【図２４】
0004384697.tif 000025