Nothing Special   »   [go: up one dir, main page]

JP4384697B2 - ゲーム装置、ゲーム処理方法、ならびに、プログラム - Google Patents

ゲーム装置、ゲーム処理方法、ならびに、プログラム Download PDF

Info

Publication number
JP4384697B2
JP4384697B2 JP2008081003A JP2008081003A JP4384697B2 JP 4384697 B2 JP4384697 B2 JP 4384697B2 JP 2008081003 A JP2008081003 A JP 2008081003A JP 2008081003 A JP2008081003 A JP 2008081003A JP 4384697 B2 JP4384697 B2 JP 4384697B2
Authority
JP
Japan
Prior art keywords
distance
movement
viewpoint
unit
virtual space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008081003A
Other languages
English (en)
Other versions
JP2009232984A (ja
Inventor
幸博 山▲崎▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Digital Entertainment Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konami Digital Entertainment Co Ltd filed Critical Konami Digital Entertainment Co Ltd
Priority to JP2008081003A priority Critical patent/JP4384697B2/ja
Priority to KR1020107005981A priority patent/KR101084030B1/ko
Priority to CN2009801065782A priority patent/CN101970067A/zh
Priority to US12/934,600 priority patent/US20110014977A1/en
Priority to PCT/JP2009/055468 priority patent/WO2009119453A1/ja
Priority to TW098109406A priority patent/TWI374043B/zh
Publication of JP2009232984A publication Critical patent/JP2009232984A/ja
Application granted granted Critical
Publication of JP4384697B2 publication Critical patent/JP4384697B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5255Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/573Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using trajectories of game objects, e.g. of a golf ball according to the point of impact
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/426Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving on-screen location information, e.g. screen coordinates of an area at which the player is aiming with a light gun
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1087Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals comprising photodetecting means, e.g. a camera
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6045Methods for processing data by generating or executing the game program for mapping control signals received from the input arrangement into game commands
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • A63F2300/646Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car for calculating the trajectory of an object
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6661Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera
    • A63F2300/6676Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera by dedicated player input

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

本発明は、画像表示のスクロール処理による負荷を軽減し、プレイヤにとっての画面の見やすさを向上するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムに関する。
仮想空間内を表すゲーム画像等の表示手法として、広い仮想空間の一部をモニター表示用の表示領域とし、プレイヤによる操作に応じて表示領域を移動する、いわゆるスクロール処理が広く用いられている。例えば特許文献1には、プレイヤがスティックを使ってタッチパネルにタッチし、任意の方向に画面をスクロールする装置等が開示されている。これによれば、例えば上下左右といったように予め決められた方向に画面をスクロールするだけでなく、プレイヤの都合に合わせて様々な方向に画面をスクロールすることができる。
特開2006−146556号公報
一方で、プレイヤが手で握って操作するコントローラの位置や姿勢の変化に応じて、仮想空間内における視点の位置や視線の向きを変化させ、この視点の位置からこの視線の向きに仮想空間を見た画像を画面に表示するゲームが存在する。このようなゲームにおいて、コントローラの向きや姿勢の変化量が所定量を超えると、上記のようなスクロール処理を実行する必要がある。
しかしながら、どの方向にどの程度の移動量だけスクロールするかといった判断をプレイヤに任せすぎてしまうと、プレイヤの操作の仕方によっては頻繁に画面をスクロールすることになる場合があり、スクロール処理による装置への負担が重くなってしまうという問題があった。
また、例えば上記のコントローラを用い、仮想空間に配置されている視点の位置や視線の向きを変えながらオブジェクトを動かすゲームにおいて、ゲーム画面内のプレイヤの注目度に偏りがあると推定される状態で画面を大きくスクロールさせると、プレイヤの目が画面の変化について行けなくなり、プレイヤにとって見づらい画像になってしまうことがあった。
本発明はこのような課題を解決するものであり、画像表示のスクロール処理による負荷を軽減し、プレイヤにとっての画面の見やすさを向上するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することを目的とする。
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第1の観点に係るゲーム装置は、記憶部、生成部、表示部、距離計算部、移動計算部、補正部、更新部を備える。
記憶部は、仮想空間に配置されるオブジェクトの位置と、当該仮想空間に配置される視点の位置と、を記憶する。
生成部は、当該仮想空間において当該視点の位置から見た当該オブジェクトを表す画像を生成する。
表示部は、生成された画像を表示する。
距離計算部は、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、の距離を求める。
移動計算部は、当該視点の位置を移動する移動方向と移動距離を計算する。
補正部は、計算された移動距離を求められた距離に基づいて補正する。
更新部は、計算された移動方向に、補正された結果の移動距離だけ、記憶される視点の位置を移動するように更新する。
そして、補正部は、補正された結果の移動距離が、求められた距離に対して単調減少するように、補正する。
本発明のゲーム装置が実行するゲームとしては、例えば3次元又は2次元の仮想空間におけるゲームを想定している。モニターには仮想空間を視点の位置から所定の視線の向きに眺めた画像が表示される。仮想空間には1つ以上のオブジェクトが配置される。プレイヤは、コントローラを操作して、視点の位置を指定方向に指定量だけ変えるように指示できる。視点の位置を移動すると、画面に表示される画像も移動する。分かりやすく言えば、画面がスクロールする。
視点の位置を変える場合、ゲーム装置は、単位時間あたりの視点の移動方向と移動距離、言い換えれば単位時間あたりの画面のスクロール方向とスクロール量とを求める。視点の移動方向は、例えば、プレイヤがコントローラを動かしたり操作ボタンを押下したりして指定される。視点の移動距離は、例えば、一度の操作につき所定量、あるいは操作の仕方に応じて変化する量、といったように求められる。ただし、ここで求められた視点の移動距離は、次に述べるように補正されることになる。
すなわち、ゲーム装置は、画面内に配置されているオブジェクトと視点との距離を計算する。ゲーム装置は、補正された結果得られる視点の移動距離が、計算されたオブジェクトと視点との距離に対して単調減少するように、視点の移動距離を補正する。つまり、画面内に配置されているオブジェクトが視点の近くであればあるほど、補正された後の視点の移動距離は小さくなる。言い換えれば、画面内に配置されているオブジェクトが視点の近くであればあるほど、小さくスクロールすることになる。
なお、ゲーム装置は、単位時間あたりの視点の移動方向と移動距離ではなく、トータルの視点の移動方向と移動距離を求めるようにしてもよい。この場合、画面内に配置されているオブジェクトが視点の近くであればあるほど、ゆっくりスクロールすることになる。
画面内にオブジェクトが配置されている場合、プレイヤはそのオブジェクトを比較的注視していると推測される。プレイヤが画面の特定部分を注視している状況で大きく(速く)スクロールすると、画面が見にくくなる恐れがある。しかし、本発明によれば、画面のスクロール量が多すぎたり速すぎたりして画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点の移動による画面のスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置への負荷を減らすことができる。
本発明のその他の観点に係るゲーム装置は、記憶部、生成部、表示部、距離計算部、移動計算部、補正部、更新部を備える。
記憶部は、仮想空間に配置されるオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、を記憶する。
生成部は、当該仮想空間において当該視点の位置から当該視線の向きに見た当該オブジェクトを表す画像を生成する。
表示部は、生成された画像を表示する。
距離計算部は、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、の距離を求める。
移動計算部は、当該視線の向きを回転する回転方向と回転角度を計算する。
補正部は、計算された回転角度を求められた距離に基づいて補正する。
更新部は、計算された回転方向に、補正された結果の回転角度だけ、記憶される視線の向きを回転するように更新する。
そして、補正部は、補正された結果の回転角度が、求められた距離に対して単調減少するように、補正する。
本発明のゲーム装置が実行するゲームとして、例えば3次元仮想空間におけるゲームを想定している。モニターには仮想空間を視点の位置から視線の向きに眺めた画像が表示される。仮想空間には1つ以上のオブジェクトが配置される。プレイヤは、コントローラを操作して、視線の向きを指定方向に指定量だけ変えるように指示できる。視線の向きを変えると、画面に表示される画像も移動する。つまり画面がスクロールする。
視線の向きを変える場合、ゲーム装置は、単位時間あたりの視線の回転方向と回転角度を求める。言い換えれば画面のスクロール方向とスクロール量とを求める。視線の回転方向は、例えば、プレイヤがコントローラを動かしたり操作ボタンを押下したりして指定される。視線の回転角度は、例えば、一度の操作につき所定量、あるいは操作の仕方に応じて変化する量、といったように求められる。ただし、ここで求められた視線の回転方向は、次に述べるように補正されることになる。
すなわち、ゲーム装置は、画面内に配置されているオブジェクトと視点との距離を計算する。ゲーム装置は、補正された結果得られる視線の回転角度が、計算されたオブジェクトと視点との距離に対して単調減少するように、視線の回転角度を補正する。つまり、画面内に配置されているオブジェクトが視点の近くであればあるほど、補正された後の視線の回転角度は小さくなる。言い換えれば、画面内に配置されているオブジェクトが視点の近くであればあるほど、小さくスクロールすることになる。
なお、ゲーム装置は、単位時間あたりの視線の回転方向と回転角度ではなく、トータルの視線の回転方向と回転角度を求めるようにしてもよい。この場合、画面内に配置されているオブジェクトが視点の近くであればあるほど、ゆっくりスクロールすることになる。
プレイヤが画面の特定部分を注視している状況で大きく(速く)スクロールすると、画面が見にくくなる恐れがある。しかし、本発明によれば、画面のスクロール量が多すぎたり速すぎたりして画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点の移動による画面のスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置への負荷を減らすことができる。
移動計算部は、当該視点の位置を移動する移動方向と移動距離を更に計算してもよい。
また、補正部は、計算された移動距離を求められた距離に基づいて更に補正してもよい。
また、更新部は、計算された移動方向に、補正された結果の移動距離だけ、記憶される視点の位置を移動するように更に更新してもよい。
また、補正部は、補正された結果の移動距離が、求められた距離に対して単調減少するように、補正してもよい。
本発明のゲーム装置では、プレイヤは、視線の向きだけでなく視点の位置を変えることもできる。つまり、視線の向きを変えるように画面をスクロールすることもできるし、視点の位置を変えるように画面をスクロールすることもできる。
画面のスクロールの際、ゲーム装置は、視線の回転方向と回転角度だけでなく、視点の移動方向と移動距離も求める。視点の移動方向は、例えば、プレイヤがコントローラを動かしたり操作ボタンを押下したりして指定される。視点の移動距離は、例えば、一度の操作につき所定量、あるいは操作の仕方に応じて変化する量、といったように求められる。ただし、ここで求められた視点の移動距離は、視線の回転方向と同様に、補正されることになる。
すなわち、ゲーム装置は、視線の回転方向と同様に、補正された結果得られる視点の移動距離が、計算されたオブジェクトと視点との距離に対して単調減少するように、視点の移動距離を補正する。つまり、画面内に配置されているオブジェクトが視点の近くであればあるほど、補正された後の視点の移動距離は小さくなる。言い換えれば、画面内に配置されているオブジェクトが視点の近くであればあるほど、小さく(ゆっくり)スクロールすることになる。
したがって、本発明によれば、画面のスクロール量が多すぎたり速すぎたりして画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点の移動による画面のスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置への負荷を減らすことができる。
当該仮想空間には、複数のオブジェクトが配置されていてもよい。
また、記憶部は、当該複数のオブジェクトのそれぞれの位置を記憶してもよい。
そして、距離計算部は、当該複数のオブジェクトのうち、生成された画像内の注目領域に描画されたオブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、の距離を求めてもよい。
注目領域とは、他の領域よりもプレイヤによる注目度が比較的高いと推測される領域である。
ゲーム装置は、補正された結果得られる視点の移動距離が、計算されたオブジェクトと視点との距離に対して単調減少するように、視点の移動距離を補正する。つまり、画面の注目領域内に配置されているオブジェクトが視点の近くであればあるほど、補正された後の視点の移動距離は小さくなる。言い換えれば、画面の注目領域内に配置されているオブジェクトが視点の近くであればあるほど、小さくスクロールすることになる。なお、ゲーム装置は、単位時間あたりの視点の移動方向と移動距離ではなく、トータルの視点の移動方向と移動距離を求めるようにしてもよい。この場合、画面の注目領域内に配置されているオブジェクトが視点の近くであればあるほど、ゆっくりスクロールすることになる。
あるいは、ゲーム装置は、補正された結果得られる視線の回転角度が、計算されたオブジェクトと視点との距離に対して単調減少するように、視線の回転角度を補正する。つまり、画面の注目領域内に配置されているオブジェクトが視点の近くであればあるほど、補正された後の視線の回転角度は小さくなる。言い換えれば、画面の注目領域内に配置されているオブジェクトが視点の近くであればあるほど、小さくスクロールすることになる。なお、ゲーム装置は、単位時間あたりの視線の回転方向と回転角度ではなく、トータルの視線の回転方向と回転角度を求めるようにしてもよい。この場合、画面の注目領域内に配置されているオブジェクトが視点の近くであればあるほど、ゆっくりスクロールすることになる。
当該注目領域は、生成された画像の中央に配置されていてもよい。
例えば、プレイヤは画面の中央付近を頻繁に見ながらゲームをプレイすることが推測される。そこで本発明では、スクロール量を補正するために用いられる注目領域の位置を画面の中央付近に固定している。つまり、画面の中央付近に配置されるオブジェクトが視点の近くであればあるほど、プレイヤが画面の中央付近をよく見ている状況であると推測し、スクロールを小さく(遅く)する。したがって、画面の見やすさを向上し、スクロール処理の負荷を軽減することができる。
ゲーム装置は、当該オブジェクトを選択する旨の選択指示入力を当該ユーザから受け付ける入力受付部を更に備えてもよい。
そして、距離計算部は、選択されたオブジェクトの生成された画面内における位置を中心として、当該注目領域を設定してもよい。
例えば、プレイヤが任意のオブジェクトを選択できるゲームにおいては、プレイヤは選択したオブジェクト付近を頻繁に見ながらゲームをプレイすると推測される。例えば、仮想空間に配置されているオブジェクトのいずれかをプレイヤが自由に操作して動かせるゲームでは、操作対象のオブジェクト付近をよく見ながらゲームをプレイするものと推測できる。
そこで本発明では、スクロール量を補正するために用いられる注目領域の位置を、プレイヤによって選択されたオブジェクト付近に配置している。つまり、選択したオブジェクトあるいはその付近に配置される他のオブジェクトが視点の近くであればあるほど、プレイヤが選択したオブジェクト付近をよく見ている状況であると推測し、スクロールを小さく(遅く)する。したがって、画面の見やすさを向上し、スクロール処理の負荷を軽減することができる。
入力受付部は、選択されたオブジェクトの位置を移動する旨の移動指示入力を当該ユーザから更に受け付けてもよい。
また、記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶してもよい。
また、更新部は、当該移動指示入力に基づいて、選択されたオブジェクトの位置を更に更新してもよい。
また、距離計算部は、選択されたオブジェクトの位置が移動した場合、当該オブジェクトの移動を開始してから所定時間経過後、記憶されている履歴に基づいて、当該オブジェクトに追随するように当該注目領域の位置を変えてもよい。
例えば、仮想空間に配置されているオブジェクトのいずれかをプレイヤが自由に操作して動かせるゲームにおいて、上述のように、スクロール量を補正するために用いられる注目領域の位置をプレイヤによって選択されたオブジェクト付近に配置すると、オブジェクトの位置が可変であるため、注目領域の位置も可変になる。つまりゲーム装置は、オブジェクトの位置を変えると、それに伴って注目領域の位置も変える。オブジェクトの位置が変わると、プレイヤは注視する場所を瞬時に変えられる可能性もあるが、移動が速すぎると若干遅れながら目が付いていくことも予想される。
そこで本発明では、オブジェクトの位置を変えてから所定時間だけ遅れて、注目領域の位置も変えることとしている。したがって、注目領域、すなわちプレイヤの注目度が比較的高いと推測される場所を、よりプレイヤの実態に即して移動することができるので、画面の見やすさを更に向上することができる。
入力受付部は、選択されたオブジェクトの位置を指定量だけ移動する旨の移動指示入力を更に受け付けてもよい。
また、記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶してもよい。
また、補正部は、記憶されている移動指示入力が示す各々の指定量に基づいて当該移動距離の補正量を求め、補正された結果の移動距離が求められた距離に対して単調減少するように補正してもよい。
例えば、仮想空間に配置されているオブジェクトのいずれかをプレイヤが自由に操作して動かせるゲームにおいて、上述のように、スクロール量を補正するために用いられる注目領域の位置をプレイヤによって選択されたオブジェクト付近に配置すると、オブジェクトの位置が可変であるため、注目領域の位置も可変になる。つまりゲーム装置は、オブジェクトの位置を変えると、それに伴って注目領域の位置も変える。例えばゲーム装置は、ある移動経路でオブジェクトの位置が移動すると、その移動経路と同じ経路で注目領域も移動することができる。しかし、例えばプレイヤの手ぶれなどが原因でオブジェクトの位置が瞬時に大きく移動したり素早く移動したりした場合、プレイヤの注視する場所はオブジェクトの移動経路通りにはならない可能性がある。
そこで本発明では、オブジェクトの位置の移動履歴に基づいて、適宜スクロール量の補正量を変え、オブジェクトの移動経路と異なる経路で注目領域を移動することができる。例えば、手ぶれなどでプレイヤの意図しない動きになった場合、オブジェクトの移動量のうち閾値を超えた分についてはカットするようにしたり、所定の補正用の関数を用いて移動量を補正したりしてもよい。したがって、注目領域、すなわちプレイヤの注目度が比較的高いと推測される場所を、オブジェクトの移動履歴に合わせて変えることができるので、画面の見やすさを更に向上することができる。
距離計算部は、生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、のそれぞれの距離の平均値を計算してもよい。
そして、補正部は、計算された移動距離を、計算された平均値に対して単調減少するように補正してもよい。
注目領域の中には、1つだけでなく複数のオブジェクトが配置される場合もある。この場合、ゲーム装置は、視点からの距離の計算対象として、注目領域の中のいずれのオブジェクトを採用することもできる。そこで本発明では、注目領域の中のオブジェクトのそれぞれについて、視点からの距離を求め、それらの平均距離に対して単調減少するように、移動距離の補正量を求める。
例えば、注目度が比較的高いと推定される領域の中の各オブジェクトが、全体の傾向として視点の近くにあるのであれば、注目領域付近のプレイヤの注目度は高いと推測できる。したがって、プレイヤの注目度が比較的高い場所を、よりプレイヤの実態に即して推測できるので、画面の見やすさを更に向上することができる。
距離計算部は、生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、のそれぞれの距離の最大値を計算してもよい。
そして、補正部は、計算された移動距離を、計算された最大値に対して単調減少するように補正してもよい。
注目領域の中には、1つだけでなく複数のオブジェクトが配置される場合もある。この場合、ゲーム装置は、視点からの距離の計算対象として、注目領域の中のいずれのオブジェクトを採用することもできる。そこで本発明では、注目領域の中のオブジェクトのそれぞれについて、視点からの距離を求め、それらのうちの最長距離に対して単調減少するように、移動距離の補正量を求める。
例えば、注目度が比較的高いと推定される領域の中でもとりわけ注目度が高いと推測されるオブジェクトが視点の近くにあるのであれば、注目領域付近のプレイヤの注目度は特に高いと推測できる。したがって、プレイヤの注目度が比較的高い場所を、よりプレイヤの実態に即して推測できるので、画面の見やすさを更に向上することができる。
距離計算部は、生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、のそれぞれの距離の最小値を計算してもよい。
そして、補正部は、計算された移動距離を、計算された最小値に対して単調減少するように補正してもよい。
注目領域の中には、1つだけでなく複数のオブジェクトが配置される場合もある。この場合、ゲーム装置は、視点からの距離の計算対象として、注目領域の中のいずれのオブジェクトを採用することもできる。そこで本発明では、注目領域の中のオブジェクトのそれぞれについて、視点からの距離を求め、それらのうちの最短距離に対して単調減少するように、移動距離の補正量を求める。
例えば、注目度が高いと推測される領域の中で、比較的注目されていないかもしれないオブジェクトであっても、視点の近くにあるのであれば、注目領域付近のプレイヤの注目度は高いと推測できる。したがって、プレイヤの注目度が比較的高い場所を、よりプレイヤの実態に即して推測できるので、画面の見やすさを更に向上することができる。
距離計算部は、生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、のそれぞれの距離の合計値を計算してもよい。
そして、補正部は、計算された移動距離を、計算された合計値に対して単調減少するように補正してもよい。
注目領域の中には、1つだけでなく複数のオブジェクトが配置される場合もある。この場合、ゲーム装置は、視点からの距離の計算対象として、注目領域の中のいずれのオブジェクトを採用することもできる。そこで本発明では、注目領域の中のオブジェクトのそれぞれについて、視点からの距離を求め、それらの合計距離(延べ距離)に対して単調減少するように、移動距離の補正量を求める。
例えば、注目度が比較的高いと推測される領域の中の各オブジェクトが、全体の傾向として視点の遠くにあったとしても、オブジェクトの数が多いのであれば、注目領域付近のプレイヤの注目度は高いと推測できる。したがって、プレイヤの注目度が比較的高い場所を、よりプレイヤの実態に即して推測できるので、画面の見やすさを更に向上することができる。
本発明のその他の観点に係るゲーム処理方法は、記憶部、生成部、表示部、距離計算部、移動計算部、補正部、更新部を有するゲーム装置にて実行されるゲーム処理方法であって、生成ステップ、表示ステップ、距離計算ステップ、移動計算ステップ、補正ステップ、更新ステップを備える。
記憶部には、仮想空間に配置されるオブジェクトの位置と、当該仮想空間に配置される視点の位置と、が記憶される。
生成ステップは、生成部が、当該仮想空間において当該視点の位置から見た当該オブジェクトを表す画像を生成する。
表示ステップは、表示部が、生成された画像を表示する。
距離計算ステップは、距離計算部が、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、の距離を求める。
移動計算ステップは、移動計算部が、当該視点の位置を移動する移動方向と移動距離を計算する。
補正ステップは、補正部が、計算された移動距離を求められた距離に基づいて補正する。
更新ステップは、更新部が、計算された移動方向に、補正された結果の移動距離だけ、記憶される視点の位置を移動するように更新する。
そして、補正ステップは、補正された結果の移動距離が、求められた距離に対して単調減少するように、補正する。
本発明によれば、画面のスクロール量が多すぎたり速すぎたりして画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点の移動による画面のスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理の負荷を減らすことができる。
本発明のその他の観点に係るゲーム処理方法は、記憶部、生成部、表示部、距離計算部、移動計算部、補正部、更新部を有するゲーム装置にて実行されるゲーム処理方法であって、生成ステップ、表示ステップ、距離計算ステップ、移動計算ステップ、補正ステップ、更新ステップを備える。
記憶部には、仮想空間に配置されるオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、が記憶される。
生成ステップは、生成部が、当該仮想空間において当該視点の位置から当該視線の向きに見た当該オブジェクトを表す画像を生成する。
表示ステップは、表示部が、生成された画像を表示する。
距離計算ステップは、距離計算部が、当該オブジェクトの当該仮想空間における位置と、記憶されている視点の位置と、の距離を求める。
移動計算ステップは、移動計算部が、当該視線の向きを回転する回転方向と回転角度を計算する。
補正ステップは、補正部が、計算された回転角度を求められた距離に基づいて補正する。
更新ステップは、更新部が、計算された回転方向に、補正された結果の回転角度だけ、記憶される視線の向きを回転するように更新する。
そして、補正ステップは、補正された結果の回転角度が、求められた距離に対して単調減少するように、補正する。
本発明によれば、画面のスクロール量が多すぎたり速すぎたりして画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点の移動による画面のスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理の負荷を減らすことができる。
本発明のその他の観点に係るプログラムは、コンピュータを、
仮想空間に配置されるオブジェクトの位置と、当該仮想空間に配置される視点の位置と、を記憶する記憶部、
当該仮想空間において当該視点の位置から見た当該オブジェクトを表す画像を生成する生成部、
前記生成された画像を表示する表示部、
当該オブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部、
当該視点の位置を移動する移動方向と移動距離を計算する移動計算部、
前記計算された移動距離を前記求められた距離に基づいて補正する補正部、
前記計算された移動方向に、前記補正された結果の移動距離だけ、前記記憶される視点の位置を移動するように更新する更新部、
として機能させ、
前記補正部は、前記補正された結果の移動距離が、前記求められた距離に対して単調減少するように、補正する、
ことを特徴とする。
本発明によれば、コンピュータを上述のように動作するゲーム装置として機能させることができる。
本発明のその他の観点に係るプログラムは、コンピュータを、
仮想空間に配置されるオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、を記憶する記憶部、
当該仮想空間において当該視点の位置から当該視線の向きに見た当該オブジェクトを表す画像を生成する生成部、
前記生成された画像を表示する表示部、
当該オブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部、
当該視線の向きを回転する回転方向と回転角度を計算する移動計算部、
前記計算された回転角度を前記求められた距離に基づいて補正する補正部、
前記計算された回転方向に、前記補正された結果の回転角度だけ、前記記憶される視線の向きを回転するように更新する更新部、
として機能させ、
前記補正部は、前記補正された結果の回転角度が、前記求められた距離に対して単調減少するように、補正する、
ことを特徴とする。
本発明によれば、コンピュータを上述のように動作するゲーム装置として機能させることができる。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
本発明によれば、画像表示のスクロール処理による負荷を軽減し、プレイヤにとっての画面の見やすさを向上することができる。
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
(実施形態1)
図1は、プログラムを実行することにより、本発明の実施形態に係る装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。
情報処理装置100は、CPU(Central Processing Unit)101と、ROM 102と、RAM(Random Access Memory)103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、マイク111と、を備える。
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態に係るゲーム装置が実現される。
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
インターフェイス104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。なお、コントローラ105の詳細については後述する。
インターフェイス104を介して着脱自在に接続された外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
また、仮想空間が3次元にて構成される場合には、当該3次元空間内に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェイス(図示せず)により構成される。
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカーに出力することにより、音声出力が可能となる。
さらに、情報処理装置100には、インターフェイス104を介してマイク111を接続することができる。この場合、マイク111からのアナログ信号に対しては、適当なサンプリング周波数でA/D変換を行い、PCM形式のディジタル信号として、音声処理部110でのミキシング等の処理ができるようにする。
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
以上で説明した情報処理装置100は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
例えば、一般的なコンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、情報処理装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ105ではなく、キーボードやマウスなどを入力装置として利用する。
本実施形態では、現実の空間における位置や姿勢などの種々のパラメータが測定できるようなコントローラ105を採用する。
図2は、現実の空間における位置や姿勢などの種々のパラメータが測定できるようなコントローラ105と情報処理装置100との外観を示す説明図である。以下、本図を参照して説明する。
コントローラ105は、把持モジュール201と発光モジュール251との組合せからなる。把持モジュール201は無線通信によって情報処理装置100と通信可能に接続されており、発光モジュール251は、有線で情報処理装置100と通信可能に接続されている。情報処理装置100の処理結果の音声および画像は、テレビジョン装置291によって出力表示される。
把持モジュール201は、テレビジョン装置291のリモートコントローラと類似した外観をしており、その先端には、CCDカメラ202が配置されている。
一方、発光モジュール251は、テレビジョン装置291の上部に固定されている。発光モジュール251の両端には、発光ダイオード252が配置されており、情報処理装置100からの電源供給によって発光する。
把持モジュール201のCCDカメラ202は、この発光モジュール251の様子を撮影する。
撮影された画像の情報は、情報処理装置100に送信され、情報処理装置100のCPU 101は、当該撮影された画像内において発光ダイオード252が撮影された位置に基づいて、発光モジュール251に対する把持モジュール201の位置を取得する。
このほか、把持モジュール201内には、加速度センサ、角加速度センサ、傾きセンサ等が内蔵されており、把持モジュール201そのものの姿勢を測定することが可能となっている。この測定結果も、情報処理装置100に送信される。
把持モジュール201の上面には、十字形キー203が配置されており、ユーザは、十字形キー203を押し込み操作することによって、各種の方向指示入力を行うことができる。また、Aボタン204ほか、各種ボタン206も上面に配置されており、当該ボタンに対応付けられた指示入力を行うことができる。
一方、Bボタン205は、把持モジュール201の下面に配置されており、把持モジュール201の下面に窪みが構成されていることとあいまって、拳銃やマジックハンドにおける引き金を模したものとなっている。典型的には、仮想空間内における拳銃による発砲やマジックハンドによる把持の指示入力は、Bボタン205を用いて行われる。
また、把持モジュール201の上面のインジケータ207は、把持モジュール201の動作状況や情報処理装置100との無線通信状況などをユーザに提示する。
把持モジュール201の上面に用意された電源ボタン208は、把持モジュール201そのものの動作のオン・オフを行うもので、把持モジュール201は内蔵された電池(図示せず)によって動作する。
このほか、把持モジュール201の上面には、スピーカー209が配置され、音声処理部110から入力される音声信号による音声を出力する。把持モジュール201内部には、バイブレータ(図示せず)が用意されており、情報処理装置100からの指示に基づいて、振動の有無や強弱を制御することができるようになっている。
以下では、把持モジュール201と発光モジュール251との組合せからなるコントローラ105を用いて、把持モジュール201の現実世界における位置や姿勢を測定することを前提に説明する。ただし、上記のような形態によらず、たとえば超音波や赤外線通信、GPS(Global Positioning System)等を利用してコントローラ105の現実世界における位置や姿勢を測定するとした場合であっても、本発明の範囲に含まれる。
(ゲームの概要)
次に、本発明が適用されるゲームの概要について説明する。本ゲームでは、仮想空間に配置されたオブジェクトを、マジックハンドで掴んである場所から別の場所へ移動させることを、一つの目的としている。本ゲームにおいては、プレイヤがコントローラを握るのに対応して、キャラクターはマジックハンドの柄を握っている。
ここで、マジックハンドとは、人の手の届く範囲よりも広い範囲に伸びる棒状の「腕」があり、その「腕」の先に配置される「手」によって、物を「吸着」して運搬したり、当該「吸着」を停止したりすることができるようなものをいう。したがって、棹の先端にトリモチがつけられており、そのトリモチによって遠方の物を獲得できるようにしたものも、マジックハンドと考えることができる。以下、理解を容易にするため、物がマジックハンドによって運搬されている間の状態を、日常的な文章表現に則って、「マジックハンドが物を掴んでいる」と呼ぶこととする。
図3は、このようなゲームにおける仮想空間と現実世界との対応関係を示す説明図である。以下、本図を参照して説明する。
仮想空間301には、マジックハンド302と、これで掴む対象となるオブジェクト303と、が配置されている。このマジックハンド302は、柄304と牽引ビームから構成されており、マジックハンド302の全長の大半を牽引ビームが占めている。「牽引ビーム」とは、漫画やアニメーションなどにおいて設定として採用されているもので、牽引ビームの先端で物体を掴み、その物体を引き寄せることができるようなものをいう。
本ゲームにおけるマジックハンド302の牽引ビームは棒状の形状をしている。そして、この牽引ビームは、オブジェクトを何も掴んでいないときには、いずれかのオブジェクト(壁など、各種の障害物のオブジェクトを含む。)に衝突するまで、マジックハンド302の柄304の一端の射出口から半直線状に伸びている。したがって、マジックハンド302の柄304の姿勢によって、マジックハンド302の牽引ビームの射出方向が定まることになる。
ここで、現実世界のプレイヤが把持モジュール201の位置・姿勢を変化させると、これに呼応して、マジックハンド302の柄304の位置・姿勢も変化する。したがって、本ゲームにおいては、把持モジュール201を測定対象として、把持モジュール201の位置や姿勢が測定され、マジックハンド302の柄304が指示対象となり、「当該把持モジュール201の姿勢の変化」という指示に基づいて、仮想空間301内において、マジックハンド302の柄304の位置や姿勢が変化させられることになる。
プレイヤは、ゲームの開始時に把持モジュール201を最も把持しやすい場所に固定する。すると、これに応じて、仮想空間301内に配置された視点305および視線306に対して、相対的に定められた位置に、最も自然な姿勢で、マジックハンド302の柄304が配置される。
このとき、現実世界においては、プレイヤに対して把持モジュール201が「基準位置」に配置されることとなり、仮想世界301においては、視点305および視線306に対してマジックハンド302の柄304が「基準位置」に配置されることになる。
この「基準位置」は、仮想空間内の視点305および視線306に対して相対的に決まるのであるが、これは、プレイヤが最も自然な姿勢で把持モジュール201を持った位置が、プレイヤの目の位置に対して相対的に決まることに呼応している。
仮想空間301内の視点305および視線306は、プレイヤが操作する(演ずる)仮想空間内のキャラクターの目(主観視点ともいう。)や、当該キャラクターを背後から見る目(客観視点、背後霊視点ともいう。)に対応し、この目がプレイヤの目に相当するものである。したがって、マジックハンド302の柄304の基準位置は、プレイヤの利き手に応じて、視点305よりも右下もしくは左下となるのが典型的である。
視点305から視線306の方向に進むと、仮想的な投影面307が、視線306に直交している。仮想空間301の様子は、画面に表示すべきオブジェクト303やマジックハンド302の牽引ビームを、この投影面307に、透視投影することによって得られる画像によってプレイヤに提示される。
透視投影の手法としては、視点305とオブジェクト303等とを結ぶ直線が、投影面307と交叉する点を用いる一点集中型投影が典型的であるが、視点305を無限遠方に配置し、オブジェクト303を通過して視線306に平行な直線が、投影面307と交叉する点を用いる平行投影を採用しても良い。
上記のように、マジックハンド302の柄304は、視点の右下(左下)に配置されているので、普通の状況では、投影面307のうちの画面に表示される範囲の外に透視投影される。したがって、画面にはマジックハンド302の柄304が表示されないのが一般的である。
さて、プレイヤが現実世界での基準位置から把持モジュール201の位置や姿勢を変化させると、その測定結果を参照して、情報処理装置100は、マジックハンド302の柄304の位置や姿勢を、基準位置から対応する量(典型的には、現実世界と同じ量。)だけ、移動させる。
したがって、視点305および視線306に対する柄304の相対的な位置および姿勢は、把持モジュール201の位置や姿勢の変化に連動することとなる。プレイヤは、操作対象として把持モジュール201を用いて、指示対象たるマジックハンド302の柄304の位置や姿勢を変化させるのである。
プレイヤは、把持モジュール201の位置や姿勢を変化させて、マジックハンド302の柄304から伸びる牽引ビームが、所望のオブジェクト303に衝突するように操作する。そして、把持モジュール201のBボタン205を押圧する。すると、マジックハンド302の先端が、オブジェクト303を掴むことになる。
上記のように、マジックハンド302の牽引ビームは、マジックハンド302の柄304の一端の射出点から、掴んだオブジェクト303の位置を目標点として向かう。したがって、Bボタン205の押圧によって、牽引ビームが向かうべき目標位置が設定されることになり、これはちょうど、射撃ゲームにおける引き金を引いた状態に相当する。また、本実施形態では、Bボタン205を押していないときは、マジックハンド302の牽引ビームが初めて衝突するオブジェクト303の位置が、牽引ビームの目標位置として設定されることになる。
この後は、オブジェクト303についての、運動のシミュレーションが開始される。オブジェクト303に加わる外力は以下の通りである。
(1)仮想空間内における重力。典型的には下向きである。
(2)仮想空間内において、マジックハンド302の柄304(もしくは視点305)とオブジェクト303とを結ぶ直線方向の力。いわゆる牽引力や反発力に相当する。これは、画面表示上は、プレイヤに近付く力、プレイヤから遠ざかる力に相当し、オブジェクト303とマジックハンド302の柄304(もしくは視点305)との距離、すなわち、マジックハンド302の伸縮によって定まる。
(3)仮想空間内において、マジックハンド302の柄304(もしくは視点305)とオブジェクト303とを結ぶ直線に直交する方向の力。これは、画面表示上は、上下左右に向かう力に相当し、マジックハンド302が撓む方向とその大きさによって定まる。
(4)オブジェクト303が移動している間に、移動方向とは反対向きに加わる力。いわゆる動摩擦力に相当する。
(5)オブジェクト303が静止している間に、外力とは反対向きに、同じ大きさだけ加わる力。いわゆる静止摩擦力に相当する。
ここで、マジックハンド302の伸縮および撓みについてさらに詳細に説明する。図4は、マジックハンド302の柄304とオブジェクト303との位置関係と、力の方向を示す説明図である。
本図に示すように、オブジェクト303を掴んでいるマジックハンド302は、柄304の位置や姿勢をプレイヤが変化させると、伸縮したり撓んだりする。一方、前述した通り、マジックハンド302の牽引ビームが何も掴んでいないときは、牽引ビームは、柄304の一端に設けられた射出口から直進する。
そこで、以下では、マジックハンド302の柄304の姿勢の方向311を、「マジックハンド302の牽引ビームが何も掴んでいないと仮定したときに牽引ビームが柄304の一端に設けられた射出口から直進する方向」と定義する。
一般に、マジックハンド302の牽引ビームがオブジェクト303を掴んでいるとき、オブジェクト303の重さによって牽引ビームが撓むため、マジックハンド302の柄304の姿勢の方向311と、柄304からオブジェクト303へ向かう方向とは、ずれが生じる。
したがって、牽引ビームは、柄304の姿勢の方向311に接するように発射され、その後滑らかに撓んで、オブジェクト303に至る曲線を描くこととなる。このような曲線としては、スプライン補間により得られるスプライン曲線や、円弧等、種々の曲線を用いることができる。このとき、オブジェクト303における牽引ビームの方向は、いわゆる開放端として計算するのが容易である。
オブジェクト303をマジックハンド302が掴み始めた瞬間の、柄304(もしくは視点305)とオブジェクト303との距離を、マジックハンド302の自然長と考えると、この自然長と、現在の仮想空間における柄304とオブジェクト303との距離と、を、対比すれば、バネに相当するような牽引力(反発力)411をシミュレートできる。すなわち、当該距離から自然長を引いた値に所定の整定数を乗じた値の牽引力(符号が負の場合は、絶対値の大きさの反発力。)411が生ずる、とすれば、簡易にシミュレーションを行うことができる。
一方、オブジェクト303を上下左右に動かそうとする力412は、マジックハンド302の柄304の姿勢(オブジェクト303を掴んでいないとしたときの、牽引ビームが伸びる方向。)と、柄304(もしくは視点305)からオブジェクト303に向かう方向と、のずれによって生じる。
すなわち、上下左右の力412の方向は、柄304の姿勢の方向311の方向ベクトル321から柄304(もしくは視点305)からオブジェクト303への方向の方向ベクトル322を減算したベクトル323の方向であり、その大きさは、当該ベクトル323に比例する、とするものである。
現実の物理現象に即して考える場合には、上下左右の力412は、さらに、柄304(もしくは視点305)とオブジェクト303との距離にも比例する、とすれば、簡易にシミュレーションを行うことができる。
このようにして、マジックハンド302に掴まえられているがゆえにオブジェクト303に加わる外力が計算できれば、あとは、重力や静止摩擦力、動摩擦力を、通常の物理シミュレーションと同様に計算することによって、オブジェクト303にかかる加速度を計算することができ、これによって、オブジェクト303の位置を更新することができる。これにより、オブジェクト303を移動させるのである。
オブジェクト303が所望の位置に移動したら、指を離してBボタン205の押圧操作を解除する。これにより、マジックハンド302はオブジェクト303を掴むことをやめ、牽引ビームは、元の通り、マジックハンド302の柄304の姿勢の方向311に伸びるようになる。
なお、マジックハンド302がオブジェクト303を掴んでいる状態で、牽引ビームの経路上に他のオブジェクト(以下「障害物」という。)309が存在する場合、オブジェクト303を掴んでいた状態が解除される。解除されると、牽引ビームは、撓んでいる形状から半直線状の形状に戻る。
(マジックハンドの柄の姿勢)
さて、マジックハンド302の牽引ビームの形状は、オブジェクト303を掴んでいないときは半直線状で、柄304の姿勢の方向311を示しているが、オブジェクト303を掴んでいるときは撓むため、プレイヤに柄304の姿勢の方向311を提示する他の手法が必要となる。そこで用いるのがカーソル(指示標識)である。
図5は、画面にカーソル(指示標識)とマジックハンドとオブジェクトが表示される様子を示す説明図である。以下、本図を参照して説明する。
本図においては、マジックハンド302がオブジェクト303を掴んでいる状態が示されており、画面501内で、柄304の方向311は牽引ビームの方向と一致していない。すなわち、カーソル308は、柄304の方向311を示す直線上に表示されるが、これは、マジックハンド302の牽引ビームの上ではない。
画面501への表示される画像は、投影面307へ投影されるオブジェクトの姿を示すものであるから、カーソル308の投影面307内における位置は、柄304から柄304の姿勢の方向311に伸びる半直線が投影面307に交叉する点の位置、とすれば良い。これによって、プレイヤは、画面を見るだけで、マジックハンド302の柄304の方向を適切に理解することができるようになる。
なお、マジックハンド302がオブジェクト303を掴んでいる状態では、柄304の方向311は牽引ビームの方向と一致している。カーソル308は、マジックハンド302の牽引ビームの上に表示されることになる。
また、カーソル308が表示される実施形態では、マジックハンド302の操作手法に以下のような変形を適用することができる。すなわち、Bボタン205を押していない間は、マジックハンド302の牽引ビームは射出されず、柄304の位置や姿勢が変化すると、画面501内におけるカーソル308の表示位置が変化する。
カーソル308の表示位置は、マジックハンド302の柄304の姿勢の方向311と投影面307とが交わる位置を採用しているが、この態様では、「マジックハンド302の柄304の姿勢の方向311が初めて衝突する他のオブジェクト303の表面の位置」と、視点305とを通過する直線が、投影面307と交わる位置を採用しても良い。後者のようにすると、ちょうどレーザーポインタで部屋の中の物体を指し示しているような操作感を得ることができる。
そして、Bボタン205を押圧操作すると、マジックハンド302の柄304の射出口から牽引ビームが発射され、牽引ビームが初めて衝突したオブジェクト303が移動可能であれば、これを吸着する。カーソル308の表示位置として、レーザポインタで物体を指し示すような態様を採用しているときは、当該カーソル308が重なって表示されるオブジェクト303が吸着されるオブジェクト303となり、プレイヤにとってもわかりやすい。なお、吸着したオブジェクト303の移動は、上記の説明と同様である。
このほか、Bボタン205を押圧操作し続ける操作がプレイヤにとって面倒な場合もある。このような場合には、Bボタン205を押圧操作して離すと牽引ビームが発射されて吸着が行われ、そして、所望の位置までオブジェクト303を移動したら、もう一度、Bボタン205を押圧操作して離してマジックハンド302の牽引ビームを消去し、オブジェクト303が解放されるような形態を採用することもできる。
上記の実施形態では、「指示入力の受付の開始」が「Bボタン205の押圧操作の開始」に、「指示入力の受付の終了」が「Bボタン205の押圧操作の終了」に、それぞれ対応するが、この態様では「指示入力の受付の開始」が「牽引ビームが射出されていない状態でBボタン205を押圧して離す操作」に、「指示入力の受付の終了」が「牽引ビームが射出されている状態でBボタン205の押圧して離す操作」に、それぞれ対応するのである。
いずれの操作体系を採用するかは、プレイヤの習熟度やゲームの種類によって適宜変更が可能である。また、指示入力を発するボタンの割り当てなどについては、Bボタン205ではなく、Aボタン204を採用する等、用途に応じて適宜変更が可能である。
(視点の位置の移動)
以上の説明では、視点305の位置は変化しなかったが、視点305に対して相対的にマジックハンド302の柄304の位置を変化させるだけでは、オブジェクト303を所望の位置に移動させることができない場合がある。このようなときに、視点305そのものを仮想空間内で移動させるためには、十字形キー203を利用する、という手法もありうる。しかしながら、本ゲームにおいては、プレイヤにとってもっと直観的な移動の手法を採用する。
図6は、マジックハンドの柄304の位置と、視点305の移動の方向との関係を説明する説明図である。以下、本図を参照して説明する。
ゲームの開始時に、仮想空間301内において、視点305および視線306に対して相対的に、マジックハンド302の柄304の基準位置313が定められる。
この後、プレイヤが把持モジュール201の位置を変化させると、マジックハンド302の柄304の位置も変化する。
そこで、現在の柄304の位置の位置ベクトルから、基準位置313の位置ベクトルを減算したベクトル314の方向に、視点を移動させるのである。
このため、ベクトル314(もしくはこれに定数を乗じたベクトル。)を、視点305の移動速度の速度ベクトルと考えて、所定の単位時間に当該速度ベクトルを乗じた量だけ、視点305を移動させるのが最も簡単である。
また、仮想空間301内に所定の平面(典型的には、仮想空間301内における「地面」に相当するものであるが、これには限られない。)を想定し、ベクトル314(もしくはこれに定数を乗じたベクトル。)の当該所定平面と平行な方向の成分を移動速度の速度ベクトルと考えて、処理を行ってもよい。
このほか、視点305を含むキャラクターに加わる外力ベクトル、もしくは、加速度ベクトル(これらの場合も、地面に平行な成分のみを考えるのが典型的である。)と考えて、視点305そのものの移動のシミュレーションを行うこともできる。
テレビジョン装置291を見ているプレイヤが、把持モジュール201を後に(背中の方向に)移動させると、仮想空間301内の視点305を持つキャラクターは、後ろ向きに移動する。したがって、オブジェクト303を掴んでいるマジックハンド302は幾分伸びることとなり、一般的には、オブジェクト303には、視点305を持つキャラクターに向かう引力が加わり、オブジェクト303も画面奥から手前に向かって移動することとなる。
プレイヤが、把持モジュール201を前に(テレビジョン装置291に近付くように)移動させると、仮想空間301内の視点305を持つキャラクターは、前進する。すると、オブジェクト303を掴んでいるマジックハンド302は幾分縮むこととなり、一般的には、オブジェクト303には、視点305を持つキャラクターから離れようとする反発力が加わり、オブジェクト303も画面手前から奥に向かって進むことになる。
もっとも、オブジェクト303とマジックハンド302との間の柄304の間の伸び縮みによる牽引力・反発力は、必ずしも想定する必要はなく、マジックハンド302そのものの長さを変化させるような指示入力をAボタン204や各種ボタン206によって行うこととしても良い。
上記の形態によって、
(1)仮想空間301内において、視点305を有するキャラクターを前後に移動させること
(2)仮想空間301内において、視点305および視線306に対して、マジックハンド302の柄304の相対的な位置および姿勢を変化させること
(3)仮想空間301内において、柄304から伸びる可撓性のマジックハンド302の先端でオブジェクト303を掴んだり、離したりすること
が可能となった。これらの機能によって、オブジェクト303を仮想空間301内である位置から別の位置へ移動させることができる。
以下では、本発明の原理にしたがって、これらの機能にさらに加えるべき、新たな機能について、順に説明する。
(視線の方向の制御)
上記の形態において、プレイヤがキャラクターの向き、すなわち、視線306の方向を変更したいと考える場合も多い。そして、上記の形態においては、把持モジュール201を現実空間で前後に移動させるだけで、キャラクターを前後に移動させることができたから、これと同様の容易な操作で、十字形キー203などを使わずに視線方向を変化させることができるようにしたい。以下では、このような技術について詳細に説明する。
上記のように、本実施形態においては、柄304の姿勢がカーソル308によって、画面501に表示されている。このカーソル308は、プレイヤが把持モジュール201の姿勢を変更するだけで、画面501内で表示される位置を容易に変更することができる。そこで、本技術では、カーソル308が画面501内に表示される位置に基づいて、キャラクターの向き、すなわち、視線306の方向を変更する。
ここで図5に戻ると、画面501は、上縁部511、右縁部512、左縁部513、下縁部514、中央部515の5つの領域に分割されている。プレイヤは、以下のように把持モジュール201の姿勢を変化させることで、視線306の方向の移動の指示を行う。
(a)視線306を上に移動したいときには、カーソル308が上縁部511に表示されるように、把持モジュール201の姿勢を変更し、
(b)視線306を右に移動したいときには、カーソル308が右縁部512に表示されるように、把持モジュール201の姿勢を変更し、
(c)視線306を左に移動したいときには、カーソル308が左縁部513に表示されるように、把持モジュール201の姿勢を変更し、
(d)視線306を下に移動したいときには、カーソル308が下縁部514に表示されるように、把持モジュール201の姿勢を変更し、
(e)視線306の方向が所望の方向となったら、カーソル308が中央部515に表示されるように、把持モジュール201の姿勢を変更する。
すなわち、指示標識(カーソル308)が、画面501内の所定の表示領域(上縁部511、右縁部512、左縁部513、下縁部514)に表示されている間、当該表示領域のそれぞれに対応付けられる上右左下の方向に、視線306の方向を移動させ、指示標識(カーソル308)が画面501内の所定の表示領域以外の領域(中央部515)に表示されるようにすると、視線306の方向の移動を停止するのである。
情報処理装置は、単位時間おき(たとえば、垂直同期割り込みの周期ごと。)にカーソル308の位置が画面501内のどの領域に含まれるかを識別する。そして、必要があれば、当該領域に割り当てられた移動量と方向に、視線306の方向を変化させる。
これによって、視線306の方向が変化するのであるが、その後に、仮想空間内におけるマジックハンド302の柄304の姿勢311の方向を、画面501内でのカーソル308の表示位置が変化しないように、更新することが望ましい。
図7は、視線306の方向の向きを右に移動させる様子を仮想空間301の上側から見たものを順に示す説明図である。以下、本図を参照して説明する。
すなわち、
(1)まず、視線306の方向を変化させる前に、視点305および視線306に対する相対的なマジックハンド302の柄304の位置および姿勢を取得し(本図(a))、
(2)視点305を中心に視線306の方向を変化させて、キャラクターの向きを変えてから(本図(b))、
(3)変化された後の視点305と視線306に対するマジックハンド302の柄304の位置および姿勢を、先に(1)で取得した位置および姿勢に更新する(本図(c))。したがって、マジックハンド302の柄304の位置および姿勢は、仮想空間301に対して変化することとなる。
このような処理によって、視線306の方向の移動の前後において、視点305と視線306に対するマジックハンド302の柄304の位置および姿勢は同じ値に維持されるのである。
たとえば、プレイヤがキャラクターを右に向けたい場合、カーソル308が右縁部512に移動するように、把持モジュール201の姿勢を変更する。
そして、視線306の方向が右に移動し始めたら、把持モジュール201の姿勢をそのまま固定すると、キャラクターの向き(視線306の方向)が更新されて、右に少しずつ向きが変わっていっても、カーソル308が画面501内で表示される位置は変わらない。
最後に、キャラクターの向き(視線306の方向)が所望の向きに至ったら、カーソル308を画面501の中央部515に戻すように把持モジュール201の姿勢を変更すれば良い。このような、極めて直観的な操作で、容易にキャラクターの向きを変更することができるようになるのである。
上縁部511、右縁部512、左縁部513、下縁部514のそれぞれの幅や、単位時間あたりの視線306の方向の単位時間あたりの移動量は、適用分野やプレイヤの習熟度によって適宜変更することができる。また、単位時間あたりの移動量を、中央部515に近いところでは小さく、画面501の縁に近付けば近づくほど大きくすることとしても良い。
また、プレイヤ(視線306の方向)が上や下を向くときには、適当な上限や下限を設け、限界に至ったら、それ以上の視線306の方向の変更はしないこととしても良いし、視線306を変化させることができるのは左右のみに限定する、など、種々の制約を課すこともできる。
また、画面501の縁の分割方法としては、このほか、画面501の中央から扇形に広がる領域分割を行い、各領域には画面中央から見た方向の単位時間あたりの移動量を割り当てることとして、斜め方向への移動も可能としても良い。
次に、本実施形態に係るゲーム装置800の機能的な構成について説明する。
図8は、ゲーム装置800の機能的な構成を表す図である。ゲーム装置800は、記憶部801、入力受付部802、生成部803、表示部804、距離計算部805、移動計算部806、補正部807、更新部808を備える。
図9(a)は、モニターに表示される画面501の例である。本例の画面501には、オブジェクトとして、マジックハンド302が掴んでいるオブジェクト901のほかに、オブジェクト902A,902B,902Cが表示されている。
図9(b)は、図9(a)に示す画面501が表示されている状況における仮想空間301を表す図である。
記憶部801は、オブジェクト情報851、視点情報852、視線情報853、カーソル情報854、注目領域情報855を記憶する。CPU 101とRAM 103が協働して記憶部801として機能する。RAM 103の代わりに外部メモリ106を用いてもよい。
オブジェクト情報851は、仮想空間301に配置されるオブジェクト303の位置を示す情報である。仮想空間301に複数のオブジェクト303が配置される場合、記憶部801にはそれぞれのオブジェクト303の位置を示す情報がオブジェクト情報851として記憶される。仮想空間にはデカルト座標系又は極座標系を用いたグローバル座標系が定義されている。位置はグローバル座標系における座標値を用いて表される。例えばマジックハンド302がオブジェクト303を掴んでいる状態でマジックハンド302を移動すると、CPU 101は、オブジェクト303の位置の変化量を計算し、計算された変化量だけオブジェクト303の位置を変化させ、オブジェクト情報851を更新する。
視点情報852は、仮想空間301に配置される視点305の位置を示す情報であり、グローバル座標系における座標値を用いて表される。CPU 101は、現実空間における把持モジュール201の位置の変化に応じて視点305の位置の変化量を計算し、計算された変化量だけ視点305の位置を変化させ、視点情報852を更新する。
視線情報853は、仮想空間301に配置される視線306の向きを示す情報であり、グローバル座標系における方向ベクトルで表される。CPU 101は、現実空間における把持モジュール201の姿勢の変化に応じて視線306の向きの変化量を計算し、計算された変化量だけ視線306の向きを変化させ、視線情報853を更新する。
本実施形態では、視点305の位置と視線306の向きはいずれも可変であるが、視点305の位置を固定し視線306の向きのみ可変とする実施形態、あるいは、視線306の向きを固定し視点305の位置のみ可変とする実施形態を採用することもできる。
カーソル情報854は、画面501内におけるカーソル308の位置を示す情報である。例えば、画面501の左上の隅を原点とし、右方向をX軸の正の向き、下方向をY軸の正の向きとする2次元座標系を定義する。カーソル308の画面501内における位置は、この2次元座標系における座標値として表される。CPU 101は、現実空間における把持モジュール201の位置や姿勢の変化に応じてカーソル308の位置の変化量を計算し、計算された変化量だけカーソル308の位置を変化させ、カーソル情報854を更新する。
注目領域情報855は、画面501内に設定される注目領域960の位置を示す情報である。注目領域960は、ユーザからの指示入力などに基づいてCPU 101によりプレイヤの注目度が高いと推定され画面501内に設定される領域である。プレイヤの注目度が高いと推定される画面領域は、典型的には画面501の中央近くの一部領域である。しかし、プレイヤの注目度が高い画面領域の位置、大きさ、形状等は、ゲーム内容、ゲーム展開、オブジェクト303が存在する位置などによって変わることが推測される。CPU 101は、ゲーム内容、ゲーム展開、オブジェクト303が存在する位置などによって、注目領域960の位置、大きさ、形状等を適宜変更することができる。画面501全体を注目領域960に設定することもできる。
なお、本実施形態では、注目領域960を、画面501の中央点953を重心とする矩形に固定している。注目領域960の位置等を可変とする実施形態については後述する。
入力受付部802は、把持モジュール201を操作するユーザからの様々な指示入力を受け付ける。例えば、入力受付部802は、視点305の位置や視線306の向きを移動する旨の移動指示入力や、任意のオブジェクト303を操作対象として選択する旨の選択指示入力や、オブジェクト303をマジックハンド302で掴んだり離したりする旨の操作指示入力などをプレイヤから受け付ける。そして、入力受付部802は、受け付けた指示入力に基づいて、記憶部801に記憶されている視点情報852、視線情報853、カーソル情報854を更新する。
例えば、ユーザが把持モジュール201を操作して把持モジュール201の位置や姿勢を変えると、CPU 101は、把持モジュール201の位置や姿勢の変化に応じて視点305の位置の変化量及び/又は視線306の向きの変化量を計算し、計算された変化量だけ視点305の位置及び/又は視線306の向きを変化させ、視点情報852及び/又は視線情報853を更新する。CPU 101、RAM 103、コントローラ105が協働して入力受付部802として機能する。
ただし、把持モジュール201のように手で(典型的には片手で)握るタイプの棒状の操作用機器ではなく、両手を添えて使うタイプの操作用機器(いわゆるゲームパッド)をユーザが用いる実施形態を採用することもできる。また、モニターの上に備え付けられているタッチパネルにタッチペンを接触させて各種操作を行うタイプの操作用機器をユーザが用いる実施形態を採用することもできる。
生成部803は、仮想空間301に配置される投影面307に視点305の位置から視線306の向きへ仮想空間301を投影した画像を生成する。すなわち、画像処理部107は、CPU 101の制御により、視点305の位置から視線306の向きに仮想空間301を眺めた様子を表す画像を生成する。生成される画像には、視点305の位置あるいは視線306の向きによってはオブジェクト303を表す画像(投影画像)が含まれる場合がある。
本実施形態では、生成部803は、把持モジュール201の位置と姿勢に基づいて定められるカーソル308を表す画像を重ねて描画する。プレイヤは、カーソル308の位置によって柄304の向き311を容易に認識することができる。ただし、生成部803は、カーソル308を表す画像を描画しなくてもよい。CPU 101とRAM 103と画像処理部107が協働して生成部803として機能する。
なお、本実施形態では、投影面307は、柄304の向き311に対して垂直に配置されるものとする。
表示部804は、生成部803によって生成された画像をモニターに表示する。すなわち、画像処理部107は、CPU 101の制御により、例えば図9(a)に示すような画面501をモニターに表示する。本図では、マジックハンド302が画面501に表示される仮想空間301の奥に向かって伸びており、オブジェクト901を掴んでいる。CPU 101とRAM 103と画像処理部107が協働して表示部804として機能する。
距離計算部805は、注目領域960内に描画されているオブジェクト303の仮想空間301における位置と、視点305の仮想空間301における位置と、の距離L1を計算する。CPU 101とRAM 103と画像処理部107が協働して距離計算部805として機能する。
移動計算部806は、入力受付部802がユーザから受け付けた移動指示入力等に基づいて、視点情報852に格納されている視点305の位置の単位時間あたりの移動方向と、単位時間あたりの移動距離を計算する。CPU 101とRAM 103が協働して移動計算部806として機能する。
より詳細には、CPU 101は、移動方向と移動距離を次のように計算する。
まず、CPU 101は、生成された画像を表示する画面501(又は生成された画像)の所定領域内にカーソル308が含まれるか否かを判別する。
ここで、所定領域とは、画面501中の上縁部511、右縁部512、左縁部513、下縁部514のうちのいずれか1つ以上によって定義される領域である。
プレイヤが把持モジュール201の位置や姿勢を変化させると、マジックハンド302の柄304の位置や姿勢も変化する。CPU 101は、把持モジュール201の位置や姿勢の変化に応じて柄304の位置の移動方向を求め、柄304の位置をベクトル951の方向へ移動する。CPU 101は、視点305の位置もベクトル951の方向へ移動する。
CPU 101は、視点305(あるいは柄304)の移動方向を示すベクトル951の方向を、
(1)カーソル308が上縁部511にある場合、投影面307の上方向Y1、
(2)カーソル308が右縁部512にある場合、投影面307の右方向Y2、
(3)カーソル308が左縁部513にある場合、投影面307の左方向Y3、
(4)カーソル308が下縁部514にある場合、投影面307の下方向Y4、
とする。
例えば図9(a)では、カーソル308は画面501の上縁部511の中に描画されており、CPU 101は、所定領域に設定している上縁部511内にカーソル308が含まれると判別する。CPU 101は、画面501の上方向Y1を移動方向として、視点305の位置を変える。
なお、把持モジュール201の代わりに、上下左右を指定する各ボタンを備えるゲームパッドを用いる場合、CPU 101は、視点305(あるいは柄304)の移動方向を示すベクトル951の方向を、
(1)上ボタンが押された場合、投影面307の上方向Y1、
(2)右ボタンが押された場合、投影面307の右方向Y2、
(3)左ボタンが押された場合、投影面307の左方向Y3、
(4)下ボタンが押された場合、投影面307の下方向Y4、
とする。
視点305の位置を移動すると、CPU 101は、投影面307内に設定される表示領域952の位置を移動する。投影面307に投影される画像全体のうち表示領域952に含まれる部分が、モニターに表示される画面501の画像となる。したがって、画面501内の画像は、カーソル308が上縁部511にある場合には投影面307の上方向Y1にスクロールし、カーソル308が右縁部512にある場合には投影面307の右方向Y2にスクロールし、カーソル308が左縁部513にある場合には投影面307の左方向Y3にスクロールし、カーソル308が下縁部514にある場合には投影面307の下方向Y4にスクロールすることになる。
なお、以下の説明では、投影面307内における表示領域952の位置を移動することを、一般的な表現を用い、「画面501をスクロールする」とも表現する。
更にCPU 101は、視点305(あるいは柄304)の移動方向を示すベクトル951の長さ、すなわち視点305の位置の移動距離を、所定値ΔLfixに設定する。つまり、カーソル308が上縁部511,右縁部512,左縁部513,下縁部514のいずれかに含まれる場合、CPU 101は、視点305の位置の単位時間あたりの移動距離を所定値ΔLfixに設定する。視点305の位置を所定値ΔLfixだけ移動するということは、画面501を所定値ΔLfixで指定されるスクロール量だけスクロールし、スクロールの速さは変わらないことに相当する。
ただし、CPU 101は、視点305の単位時間あたりの移動距離を固定値ではなく可変値にしてもよい。例えば、CPU 101は、画面501の左上の隅を原点とし、右方向をX軸の正の向きとし、下方向をY軸の正の向きとする2次元座標系を定義したとき、
(1)カーソル308が上縁部511に含まれる場合、CPU 101は、カーソル308の画面501における位置のY座標値が小さいほど、言い換えればカーソル308が画面501の上にあるほど、視点305の位置の単位時間あたりの移動距離を大きくし、
(2)カーソル308が右縁部512に含まれる場合、CPU 101は、カーソル308の画面501における位置のX座標値が大きいほど、言い換えればカーソル308が画面501の右にあるほど、視点305の位置の単位時間あたりの移動距離を大きくし、
(3)カーソル308が左縁部513に含まれる場合、CPU 101は、カーソル308の画面501における位置のX座標値が小さいほど、言い換えればカーソル308が画面501の左にあるほど、視点305の位置の単位時間あたりの移動距離を大きくし、
(4)カーソル308が下縁部514に含まれる場合、CPU 101は、カーソル308の画面501における位置のY座標値が大きいほど、言い換えればカーソル308が画面501の下にあるほど、視点305の位置の単位時間あたりの移動距離を大きくする、
ようにしてもよい。この場合、画面501のスクロールの速さが変わることになる。
本実施形態では、画面501のスクロール方向を上下左右の4方向としている。しかし、4方向に限らず任意の方向にスクロールさせてもよい。例えば、CPU 101は、カーソル308の位置の変化量を画面501の左右方向成分と上下方向成分とに分解し、左右方向にはカーソル308の位置の変化量の左右方向成分に相当する量だけスクロールさせ、上下方向にはカーソル308の位置の変化量の上下方向成分に相当する量だけスクロールさせることもできる。
補正部807は、移動計算部806により計算された移動距離を、距離計算部805により求められた距離L1に基づいて補正する。このとき補正部807は、補正後の移動距離ΔLが、距離計算部805により求められた距離L1に対して単調減少するように補正する。CPU 101とRAM 103が協働して補正部807として機能する。
より詳細には、CPU 101は、視点305の位置の移動距離を次のように補正する。すなわち、CPU 101は、注目領域960内に配置されているオブジェクト303(図9(a)の場合、オブジェクト902A)の仮想空間301における位置と、視点305の仮想空間301における位置と、の距離L1が短いほど小さくなるように、視点305の位置の移動距離を補正する。つまり、補正によって得られる、視点305の位置の単位時間あたりの移動距離ΔLは、距離L1に対して単調減少する。
例えば図10(a)〜(d)は、注目領域960内に配置されているオブジェクト303と視点305との距離L1と、補正後の視点305の位置の移動距離ΔLとの関係の例を示す図である。言い換えれば、本実施形態のように移動計算部806によって計算される移動距離が所定値ΔLfixに固定される場合、補正部807が視点305の位置を補正するための補正関数の形状を表す図である。
図10(a)では、CPU 101は、視点305の位置の移動距離ΔLを、距離L1に比例して増加させる。ある距離(図示せず)で移動距離ΔLを最大値ΔLmaxにすると、それ以上の距離では移動距離ΔLを最大値ΔLmaxで一定とする。
図10(b)では、CPU 101は、距離L1が長くなるほど移動距離ΔLの増加率を小さくする。移動距離ΔLは最終的に最大値ΔLmaxに収束する。
図10(c)では、CPU 101は、移動距離ΔLの増加率を変化させる。増加率は0以上の実数である。
図10(d)では、CPU 101は、階段関数を用いて移動距離ΔLを変化させる。全体として、距離L1が増加するにしたがって移動距離ΔLを大きくする傾向にあればよく、移動距離ΔLが一定となる区間(増加率がゼロとなる区間)があってもよい。
CPU 101は、図10(a)〜(d)に示されるいずれの関数を用いてもよいし、これらの関数の組み合わせでもよい。また、距離L1が短いほど移動距離ΔLを小さくする関係を満たすのであれば、自由に関数を定めることができる。
以上のように求められた単位時間あたりの移動方向、及び、単位時間あたりの移動距離ΔLが、それぞれ、視点305の位置を単位時間あたりに移動する方向、及び、単位時間あたりに移動する距離となる。CPU 101は、単位時間あたり、計算された移動方向に、補正された移動距離だけ、視点305の位置を移動する。
もし、単位時間あたりの移動距離を固定値ΔLfixに固定して補正部807が補正しないと仮定すると、スクロールの際、画面501は常に一定のスピードでスクロールすることになる。しかし、本実施形態によれば、画面501の注目領域960内に配置されているオブジェクト303が視点305から遠くにあればあるほど、視点305の位置の単位時間あたりの移動距離ΔLは大きくなり、画面501は大きく(速く)スクロールすることとなる。逆に画面501の注目領域960内に配置されているオブジェクト303が視点305から近くにあればあるほど、視点305の位置の単位時間あたりの移動距離ΔLは小さくなり、画面501は小さく(遅く)スクロールすることとなる。
一般に、プレイヤは画面501の真ん中付近をよく見ながらゲームをプレイすることが多い傾向にあると推測される。また、画面501に複数のオブジェクト303が存在する場合、真ん中付近に配置されているオブジェクト303ほどプレイヤの注目度は高いと推測される。そのため、注目領域960の位置を画面501の真ん中付近に固定する手法を採用することができる。なお、注目領域960の位置を可変とすることもできるが詳細については後述する。
また、オブジェクト303が視点305の近くにあるほど、言い換えれば画面501に大きく映っているほど、プレイヤの注目度は高いと推測される。つまり、画面501全体のプレイヤによる注目度の高さの分布に偏りが生じる可能性がある。このような注目度の高さの分布に偏りがある状態で、画面501を大きく(速く)スクロールさせてしまうと、プレイヤが画像の変化についていけなくなったり酔ってしまったりする恐れがあり、プレイヤにとって見づらい画像になってしまう。しかし、本実施形態のゲーム装置800は、画面501の注目領域960に、他と比べて視点305の近くに配置されるオブジェクト303が描画される状況では、画面501のスクロール量を減らし、少しずつスクロールさせる。したがって、プレイヤにとって画面501の見やすさを向上することができる。また、視点305の移動によるスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置800への負荷を減らすことができる。
更新部808は、単位時間あたり、計算された移動方向に、補正された移動距離ΔLだけ、視点305の位置を移動するように、視点情報852を更新する。CPU 101とRAM 103が協働して更新部808として機能する。
ところで、CPU 101は、視点305の位置を変えるのではなく、視線306の向きを変えることもできる。
つまり、移動計算部806は、入力受付部802がユーザから受け付けた移動指示入力等に基づいて、視線情報853に格納されている視線306の向きの回転方向と、単位時間あたりの回転角度を求めてもよい。また、補正部807は、補正後の回転角度が、距離計算部805によって計算された距離L1に対して単調減少するように、視線306の向きの回転角度を補正してもよい。そして、更新部808は、単位時間あたり、視線306の向きを、求められた回転方向に、補正された回転角度だけ移動して、視線情報853を更新してもよい。
図11(a)は、モニターに表示される画面501の例である。
図11(b)は、図11(a)に示す画面501が表示されている状況における仮想空間301を表す図である。
プレイヤが把持モジュール201の位置や姿勢を変化させると、マジックハンド302の柄304の位置や姿勢も変化する。CPU 101は、把持モジュール201の位置や姿勢の変化に応じて柄304の向きの回転方向を求め、柄304の向きを角度1101の向きへ移動(回転)する。CPU 101は、視線306の向きも角度1101の方向へ移動(回転)する。
CPU 101は、視線306(あるいは柄304)の向きを、
(1)カーソル308が上縁部511にある場合、投影面307の上方向Y1、
(2)カーソル308が右縁部512にある場合、投影面307の右方向Y2、
(3)カーソル308が左縁部513にある場合、投影面307の左方向Y3、
(4)カーソル308が下縁部514にある場合、投影面307の下方向Y4、
に移動する。
例えば図11(a)では、カーソル308は画面501の上縁部511の中に描画されており、CPU 101は、所定領域つまり上縁部511内にカーソル308が含まれると判別する。CPU 101は、画面501の上方向Y1を移動方向として、視線306の方向を変える。
視線306の向きを移動すると、CPU 101は、投影面307の向きを移動する。例えば視点305の位置を変えずに視線306の向きを変えることとすると、画面501内の画像は、カーソル308が上縁部511にある場合には投影面307の上方向Y1に見上げるようにスクロールし、カーソル308が右縁部512にある場合には投影面307の右方向Y2に(右横に)振り向くようにスクロールし、カーソル308が左縁部513にある場合には投影面307の左方向Y3に(左横に)振り向くようにスクロールし、カーソル308が下縁部514にある場合には投影面307の下方向Y4に見下げるようにスクロールすることになる。
更にCPU 101は、視線306(あるいは柄304)の回転方向を示すベクトル1101の長さ、すなわち視線306の向きの単位時間あたりの回転角度を、所定値ΔDfixに設定する。つまり、カーソル308が上縁部511,右縁部512,左縁部513,下縁部514のいずれかに含まれる場合、CPU 101は、視線306の向きの単位時間あたりの回転角度を所定値ΔDfixに設定する。
ただし、CPU 101は、視線306の回転角度を固定値ではなく可変値にしてもよい。例えば、CPU 101は、画面501の左上の隅を原点とし、右方向をX軸の正の向き、下方向をY軸の正の向きとする2次元座標系を定義したとき、
(1)カーソル308が上縁部511に含まれる場合、CPU 101は、カーソル308の画面501における位置のY座標値が小さいほど、言い換えればカーソル308が画面501の上にあるほど、視線306の向きの単位時間あたりの回転角度を大きくし、
(2)カーソル308が右縁部512に含まれる場合、CPU 101は、カーソル308の画面501における位置のX座標値が大きいほど、言い換えればカーソル308が画面501の右にあるほど、視線306の向きの単位時間あたりの回転角度を大きくし、
(3)カーソル308が左縁部513に含まれる場合、CPU 101は、カーソル308の画面501における位置のX座標値が小さいほど、言い換えればカーソル308が画面501の左にあるほど、視線306の向きの単位時間あたりの回転角度を大きくし、
(4)カーソル308が下縁部514に含まれる場合、CPU 101は、カーソル308の画面501における位置のY座標値が大きいほど、言い換えればカーソル308が画面501の下にあるほど、視線306の向きの単位時間あたりの回転角度を大きくする、
ようにしてもよい。この場合、画面501のスクロールの速さが変わることになる。
補正部807は、移動計算部806により計算された回転角度を、距離計算部805により求められた距離L1に基づいて補正する。このとき補正部807は、補正後の回転角度ΔDが、距離計算部805により求められた距離L1に対して単調減少するように補正する。
なお、CPU 101は、図10(a)〜(d)に示される関数において位置の移動距離ΔLを回転角度ΔDに置き換えた関数のいずれを用いてもよいし、これらの関数の組み合わせでもよい。また、距離L1が短いほど回転角度ΔDが小さくなる関係を満たすのであれば、自由に関数を定めることができる。
以上のように求められた回転方向、及び、単位時間あたりの回転角度ΔDが、それぞれ、視線306の向きを単位時間あたりに移動する向き、及び、単位時間あたりに移動する角度となる。CPU 101は、単位時間あたり、計算された回転方向に、補正された回転角度だけ、視線306の向きを移動する。
更新部808は、単位時間あたり、計算された回転方向に、補正された回転角度ΔDだけ、視線306の向きを移動するように、視線情報853を更新する。
視点305の位置を変える場合と同様、視線306の向きを変える場合においても、画面501の注目領域960内に配置されているオブジェクト303が視点305から遠くにあればあるほど、視線306の向きの回転角度ΔDは大きくなり、画面501は大きくスクロールすることとなる。逆に画面501の注目領域960内に配置されているオブジェクト303が視点305から近くにあればあるほど、視線306の向きの回転角度ΔDは小さくなり、画面501は少しずつスクロールすることとなる。
なお、視点305の位置と視線306の向きのうち、どちらか一方のみを移動する実施形態を採用してもよいし、両方とも移動する実施形態を採用してもよい。
次に、ゲーム装置200の上記各部が実行する画像表示処理について、図12のフローチャートを用いて説明する。
なお、本実施形態では、注目領域960の形状を矩形とし、画面501の中央の位置に固定している。
まず、CPU 101は、把持モジュール201の現実空間における位置と姿勢を示す情報をコントローラ105から取得する(ステップS1201)。
CPU 101は、ステップS1201で取得した把持モジュール201の位置と姿勢に基づいて柄304の位置と姿勢を求め、カーソル308の画面501内における位置を決定する(ステップS1202)。
具体的には、CPU 101は、例えば、現実空間における把持モジュール201の位置と仮想空間301における柄304の位置とを1対1に対応させ、ステップS1201で取得した把持モジュール201の位置に対応する仮想空間301における位置を柄304の位置とする。また、ステップS1201で取得した把持モジュール201の姿勢を柄304の姿勢とする。そして、CPU 101は、柄304の向きを示す直線311と投影面307との交点の位置を、カーソル308の位置とする。
CPU 101は、ステップS1202で決定された位置をカーソル308の新たな位置として、カーソル情報854を更新する。
CPU 101は、ステップS1202で決定したカーソル308の位置が、画面501の所定領域内にあるか否かを判別する(ステップS1203)。
例えば、上述の上縁部511、右縁部512、左縁部513、下縁部514のすべてを、所定領域とする。CPU 101は、カーソル308の位置が上縁部511、右縁部512、左縁部513、下縁部514のいずれかの中にある場合、カーソル308が所定領域内にあると判別し、それ以外の場合(つまりカーソル308が中央部515にある場合)、カーソル308が所定領域内にないと判別する。
カーソル308が所定領域内にないと判別された場合(ステップS1203;NO)、後述のステップS1207に進む。一方、カーソル308が所定領域内にあると判別された場合(ステップS1203;YES)、CPU 101は、視点305の位置の移動方向と、単位時間あたりの移動距離を計算する。もしくは、CPU 101は、視線306の向きの回転方向と、単位時間あたりの回転角度を計算する。(ステップS1204)。
そして、CPU 101は、ステップS1204で計算された視点305の位置の移動距離を、距離L1が短いほど補正後の移動距離ΔLが小さくなるように、補正する。もしくは、CPU 101は、ステップS1204で計算された視線306の向きの回転角度を、距離L1が短いほど補正後の回転角度ΔDが小さくなるように、補正する(ステップS1205)。
例えば図9(a)において、CPU 101は、画面501に表示されているオブジェクト901,902A,902B,902Cの中から、画面501の注目領域960内に配置されているオブジェクト(この場合オブジェクト902Aが該当する)を選択する。次に、CPU 101は、選択したオブジェクト902Aの位置と視点305の位置との距離L1を計算する。そして、CPU 101は、計算した距離L1が短いほど、補正後の移動距離ΔL(又は回転角度ΔD)が小さくなるように、移動距離ΔL(又は回転角度ΔD)を補正する。
そして、CPU 101は、単位時間あたり、ステップS1204で計算された移動方向に、ステップS1205で補正した移動距離ΔLだけ、視点305の位置を移動する。もしくは、CPU 101は、単位時間あたり、ステップS1204で計算された回転方向に、ステップS1205で補正した回転角度ΔDだけ、視線306の向きを移動する(ステップS1206)。
CPU 101は、移動後の新たな視点305の位置を視点情報852に格納する。もしくは、CPU 101は、移動後の新たな視線306の向きを視線情報853に格納する。
CPU 101は、視点305の位置から視線306の向きに仮想空間301を投影面307に投影した画像を生成する(ステップS1207)。
本実施形態では、CPU 101は、カーソル情報854に格納されているカーソル308の位置にカーソル308を表す所定画像を画像処理部107に描画させる。ただし、カーソル情報854をRAM 103に記憶するものの、カーソル308を表す画像を描画しないこととしてもよい。
そして、CPU 101は、ステップS1207で生成された画像を、画像処理部107にモニターへ表示させる(ステップS1208)。
一般に、プレイヤが画面501内の特定部分を注視している状況で画面501を大きくスクロールさせると、プレイヤにとってとても見づらい画像になってしまったり酔いやすくなってしまったりする恐れがある。
例えば、画面501の真ん中付近ほどプレイヤの注目度が高い傾向があると推定できる。一方で、視点305の近くにあるものほどプレイヤの注目度が高い傾向があるとも推定できる。
そこで、本実施形態では、オブジェクト303が画面501の真ん中付近に描画され、且つ、視点305の近くに配置されているのであれば、画面501の真ん中付近をプレイヤが注視していると推定し、スクロール量を抑える。
したがって、画面501のスクロールが速すぎて画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面501の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点305の移動によるスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置800への負荷を減らすことができる。
本実施形態では、所定領域として上縁部511、右縁部512、左縁部513、下縁部514のすべてを用いているが、これらのうちの1つ、あるいは2つ以上の組み合わせでもよい。例えば、画面501がプレイヤから見て上下方向(縦方向)にしかスクロールしないゲームでは、所定領域として上縁部511と下縁部514の2つだけを用いればよい。また例えば、画面501がプレイヤから見て左右方向(横方向)にしかスクロールしないゲームでは、所定領域として右縁部512と左縁部513の2つだけを用いればよい。
本実施形態では、所定領域と注目領域960を別々に定義しているが、所定領域である中央部515を注目領域960として用いてもよい。
また、所定領域の形状は矩形に限定されるわけではなく、円、楕円、多角形など、任意の図形にしてもよい。
本実施形態では、画面501の真ん中付近の一部領域を注目領域960としているが、画面501全体を注目領域960としてもよい。例えば画面501中にオブジェクト303が1つしかない場合には、画面501中、オブジェクト303が表示されている部分のプレイヤによる注目度が相対的に高いと推定できるので、スクロール量を抑えることによって、画面501の見やすさを向上することができる。
なお、CPU 101は、単位時間あたりの方向と距離の変化量を計算しているので、画面を速くスクロールしたり遅くスクロールしたりして、スクロールのスピードを変えている。しかし、スピードではなく絶対的なスクロール量を多くしたり少なくしたりしてもよい。すなわち、CPU 101は、“単位時間あたりの”移動方向と移動距離(又は回転方向と回転角度)の代わりに、最終的にスクロールすることになる“トータルの”移動方向と移動距離(又は回転方向と回転角度)を計算してもよい。この場合、上記説明において、“単位時間あたりの”移動方向と移動距離(又は回転方向と回転角度)を、“トータルの”移動方向と移動距離(又は回転方向と回転角度)に読み替えればよい。
(実施形態2)
次に、本発明のその他の実施形態について説明する。上述の実施形態では、画面501の注目領域960内に存在するオブジェクト303の仮想空間301における位置を用いてスクロール量を補正している。しかし、注目領域960内には複数のオブジェクト303が存在する場合もある。本実施形態は、画面501の注目領域960内に複数のオブジェクト303が描画されている場合を想定している。
視点305とオブジェクト303の間の距離が短いということは、オブジェクト303の投影面307への投影画像がより大きく描画されるということである。言い換えると、画面501に大きく描画されるほどオブジェクト303は視点305の近くにある傾向にあると言える。上述の実施形態では、視点305の近くにあるものほど注目度が高いことを前提としている。しかし、オブジェクト303が視点305の近くにあるのか遠くにあるのか、画面501のどこを注視するか、といったプレイヤの判断は、そのオブジェクト303だけでなく、その周囲の状況(例えば近くにどのような他のオブジェクトがあるのか等)を加味してなされることが多いと予想される。そこで本実施形態では、複数のオブジェクト303が画面501に描画されている場合、視点305から見たそれらの前後関係(奥行き)も考慮している。
図13(a)は、モニターに表示される画面501の例である。画面501には、オブジェクト303として、マジックハンド302が掴んでいるオブジェクト901のほかに、オブジェクト902A,902B,902C、及び、オブジェクト902Aの背景に配置されるオブジェクト1301が表示されている。
図13(b)は、図13(a)に示す画面501が表示されている状況における仮想空間301を表す図である。
ここで、「あるオブジェクト(OBJ1)が他のオブジェクト(OBJ2)の背景に配置される」とは、仮に視線306の向きを正方向とする直線(1次元)座標系を定義したとき、OBJ1の座標値がOBJ2の座標値より大きく、且つ、OBJ1が描画される画面領域とOBJ2が描画される画面領域とに重なる部分が存在すること、を意味する。なお、OBJ1のことを「背景オブジェクト」と呼ぶことにする。OBJ2の背景に配置されるオブジェクトが複数存在する場合には、OBJ2の最も近くにあるものを背景オブジェクトとする。
仮想空間301に複数のオブジェクト303が存在し、視点305の位置あるいは視線306の向きが可変であるとすると、すべてのオブジェクト303が背景オブジェクトとなり得る。
上述のステップS1204において、CPU 101は、画面501に表示されているオブジェクト901,902A,902B,902C,1301の中から、注目領域960の中心の最も近くに描画されているオブジェクト(この場合オブジェクト902Aが該当する)の背景オブジェクトを選択する。つまり図13の(a)場合、CPU 101は、オブジェクト1301を背景オブジェクトとして選択する。そして、CPU 101は、視点305の位置の移動方向と移動距離を計算する。
つまり、上述のステップS1205において、CPU 101は、選択したオブジェクト1301の位置と視点305の位置との距離L2を計算する。そして、CPU 101は、計算した距離L2が小さいほど移動距離ΔLが小さくなるように、移動距離ΔLを補正する。
例えばCPU 101は、図10(a)〜(d)に示される関数において距離L1を距離L2に置き換えた関数のいずれを用いてもよいし、これらの関数の組み合わせでもよい。また、距離L2が短いほど移動距離ΔLが小さくなる関係を満たすのであれば、自由に関数を定めることができる。
本実施形態においても、視点305の位置を移動する代わりに、視線306の向きを移動してもよい。また、視点305の位置と視線306の向きの両方を変えてもよい。視線306の向きを変える場合、CPU 101は、図10(a)〜(d)に示される関数において距離L1を距離L2に置き換え、且つ、移動距離ΔLを回転角度ΔDに置き換えた関数のいずれを用いてもよいし、これらの関数の組み合わせでもよい。また、距離L2が短いほど回転角度ΔDが小さくなる関係を満たすのであれば、自由に関数を定めることができる。
更に、CPU 101は、計算された移動方向に、補正された移動距離ΔLだけ、視点305の位置を変え(ステップS1206)、新たな視点305の位置を視点情報852に格納する。もしくは、CPU 101は、計算された回転方向に、補正された回転角度ΔDだけ、視線306の向きを変え、新たな視線306の向きを視線情報853に格納する。そして、CPU 101は、視点305の位置から視線306の向きに仮想空間301を投影面307に投影した画像を生成し(ステップS1207)、生成した画像をモニターへ表示させる(ステップS1208)。
上述したように、プレイヤが画面501内の一部分を注視している状況で画面501を大きくスクロールさせると、プレイヤにとってとても見づらい画像になってしまう恐れがある。
例えば、画面501にn個(n≧2)のオブジェクト(OBJ1,OBJ2,…,OBJn)が描画されており、それらのオブジェクトのうち画面501の真ん中付近に描画されている複数のオブジェクト(例えばOBJ1とOBJ2の2つ)がほかに比べて視点305の近くに配置されている場合、プレイヤによる画面501の真ん中付近に対する注目度が他の領域に比べて高いと推定できる。
しかし、画面501の真ん中付近に描画されているオブジェクトのうち一方(OBJ1)は視点305の近くに配置され、もう一方(OBJ2)は視点305の遠くに配置されている場合、必ずしもプレイヤによる画面501の真ん中付近に対する注目度が他の領域に比べて高いとは言い切れない。プレイヤはOBJ1とOBJを注視しているか容易には推定できないためである。
そこで、本実施形態では、一般にプレイヤによる注目度が比較的高いと推定される画面501の真ん中付近に映っているオブジェクト(OBJ1,OBJ2)のうち、背景に配置される方(背景オブジェクト)に注目し、背景オブジェクトが視点305の近くにあるほどスクロール量を抑えることとしている。つまり、背景オブジェクトが視点305の近くにあるということは、もう一方のオブジェクトはさらに視点305の近くにあるので、OBJ1,OBJ2が配置されている画面501の真ん中付近のプレイヤの注目度は比較的高いと推定できるため、スクロール量を抑えるのである。
したがって、画面501のスクロールが速すぎて画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面501の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点305の移動によるスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置200への負荷を減らすことができる。
(実施形態3)
次に、本発明のその他の実施形態について説明する。本実施形態も、画面501の注目領域960内に複数のオブジェクト303が描画されている場合を想定している。
図14(a)は、モニターに表示される画面501の例である。
図14(b)は、図14(a)に示す画面501が表示されている状況における仮想空間301を表す図である。
本実施形態では、注目領域960に複数のオブジェクト303が含まれる場合、それらが背景オブジェクトであるか否かに関わらず、視点305と、注目領域960に含まれる各々のオブジェクト303と、の距離をそれぞれ計算して、視点305の位置の移動距離(又は視線306の向きの回転角度)を補正する。
CPU 101は、画面501の注目領域960内に配置されている各々のオブジェクト303の位置と、視点305の位置との距離をそれぞれ計算し、さらに各距離の平均値を計算する。
例えば図14(a)において、CPU 101は、画面501に表示されているオブジェクト901,902A,902B,902Cの中から、画面501の注目領域960内に配置されているオブジェクト(この場合オブジェクト901と902Aの2つが該当する)を選択する。次に、CPU 101は、選択したオブジェクト901の位置と視点305の位置との距離L3と、選択したオブジェクト902Aの位置と視点305の位置との距離L4とを計算する。
そして、CPU 101は、計算された平均値が小さいほど、補正後の移動距離ΔL(又は回転角度ΔD)が小さくなるように、移動距離ΔL(又は回転角度ΔD)を補正する。つまり、視点305と、注目領域960に含まれるオブジェクト303との平均距離が小さいほど、スクロール量を少なく抑える。
あるいは、CPU 101は、画面501の注目領域960内に配置されている各々のオブジェクト303の位置と、視点305の位置との距離をそれぞれ計算し、各距離のうちの最大値が小さいほど、補正後の移動距離ΔL(又は回転角度ΔD)が小さくなるように、移動距離ΔL(又は回転角度ΔD)を補正してもよい。つまり、視点305と、注目領域960に含まれるオブジェクト303のうち最も視点305から遠いものとの距離が小さいほど、スクロール量を少なく抑えてもよい。
あるいは、CPU 101は、画面501の注目領域960内に配置されている各々のオブジェクト303の位置と、視点305の位置との距離をそれぞれ計算し、各距離のうちの最小値が小さいほど、補正後の移動距離ΔL(又は回転角度ΔD)が小さくなるように、移動距離ΔL(又は回転角度ΔD)を補正してもよい。つまり、視点305と、注目領域960に含まれるオブジェクト303のうち最も視点305から近いものとの距離が小さいほど、スクロール量を少なく抑えてもよい。
あるいは、CPU 101は、画面501の注目領域960内に配置されている各々のオブジェクト303の位置と、視点305の位置との距離をそれぞれ計算し、各距離の合計値が小さいほど、補正後の移動距離ΔL(又は回転角度ΔD)が小さくなるように、移動距離ΔL(又は回転角度ΔD)を補正してもよい。つまり、オブジェクト303が視点305の近くにある場合や、オブジェクト303が視点305から遠くにあったとしてもオブジェクト303の数が多い場合に、スクロール量を少なく抑えてもよい。
本実施形態によれば、注目領域960内に含まれるそれぞれのオブジェクト303が視点305からどの程度近くにあるのか(遠くにあるのか)によってスクロール量を変える。そして、注目領域960内に含まれるそれぞれのオブジェクト303が、全体として近くにある傾向にあればスクロール量を少なく抑え、遠くにある傾向にあればスクロール量を増やす。したがって、画面501のスクロールが速すぎて画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面501の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、視点305の移動によるスクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置200への負荷を減らすことができる。
(実施形態4)
次に、本発明のその他の実施形態について説明する。上記各実施形態では、注目領域960を画面501の中央に固定していたが、本実施形態では、注目領域960の位置を可変としている。
図15(a)は、モニターに表示される画面501の例である。
図15(b)は、図15(a)に示す画面501が表示されている状況における仮想空間301を表す図である。
距離計算部805は、プレイヤによって選択されたオブジェクト303の、生成部803により生成された画面501内における位置を中心として注目領域960を設定し、視点305の位置と注目領域960に含まれるオブジェクト303の位置との距離L5を計算する。
より詳細には、CPU 101は、仮想空間301に配置されているオブジェクト303の中から、プレイヤによって選択されているオブジェクト303を選択する。ここで「プレイヤによって選択されているオブジェクト303」とは、例えばマジックハンド302が掴んでいる状態のオブジェクト303である。図15(a)の例では、オブジェクト901が該当する。
そして、CPU 101は、視点305の仮想空間301における位置と、選択したオブジェクト303の仮想空間301における位置との距離L5を計算する。CPU 101が設定した注目領域960の中に複数のオブジェクト303が存在する場合、CPU 101は、視点305の位置と、注目領域960に含まれるそれぞれのオブジェクト303の位置との各距離の平均値、最大値、あるいは最小値に対して単調減少するように、移動距離ΔL(又は回転角度ΔD)を補正する。
プレイヤは、把持モジュール201の位置や姿勢を変えることにより、マジックハンド302で掴んでいるオブジェクト303の位置、あるいは、カーソル308の位置を、自由に変えることができる。すなわち、プレイヤによって選択されているオブジェクト303の位置は可変である。
プレイヤによって選択されているオブジェクト303の位置を移動する移動指示入力をプレイヤから受け付けると、CPU 101は、移動指示入力で指定された移動方向に、指定された移動距離だけ、オブジェクト303の位置を移動し、オブジェクト情報851を更新する。
CPU 101は、プレイヤによって選択されているオブジェクト303の位置を移動すると、図16に示すように、注目領域960の位置も移動する。例えばCPU 101は、オブジェクト303の位置を移動するとともに、注目領域960の位置も直ちに移動する。つまりこの場合、注目領域960の位置は、プレイヤによって選択されているオブジェクト303の位置に固定されつつ動くことになる。
あるいは、CPU 101は、プレイヤによって選択されているオブジェクト303の位置を移動すると、このオブジェクト303の移動を開始してから所定時間経ってから、注目領域960の位置をオブジェクト303に追随するように移動してもよい。この場合、CPU 101は、オブジェクト303の位置の所定時間T1分の移動履歴をRAM 103等に一時記憶させておけばよい。移動履歴は、現在時刻から過去所定時間分のオブジェクト303の位置の履歴である。
例えば図17(a)は、オブジェクト303の移動開始前の状態の画面501を表す図である。CPU 101は、プレイヤによって選択されているオブジェクト901の移動を開始する。移動開始後、所定時間T2(ただしT2≦T1。典型的にはT2=T1。)が経過するまで、CPU 101は、図17(b)に示すように注目領域960を移動しない。CPU 101は、オブジェクト303の位置を移動履歴としてRAM 103等に一時記憶する。所定時間T2が経過すると、CPU 101は、図17(c)に示すように、オブジェクト901を移動した軌跡を辿るように、所定時間T2だけ遅れて注目領域960の位置を移動する。そして図17(d)に示すように、最終的には注目領域960はオブジェクト901が移動を終了した位置になる。このようにCPU 101はオブジェクト303の移動履歴通りに注目領域を移動してもよい。
あるいは、CPU 101は、オブジェクト303の移動履歴に何らかの演算を施して、注目領域960の移動経路を求めてもよい。例えば図18(a)は、オブジェクト303の移動開始前の状態の画面501を表す図である。CPU 101は、プレイヤによって選択されているオブジェクト901の移動を開始する。移動開始後、所定時間T2(ただしT2≦T1。典型的にはT2=T1。)が経過するまで、CPU 101は、図18(b)に示すように注目領域960を移動しない。所定時間T2が経過すると、CPU 101は、オブジェクト901の移動履歴を参照し、単位時間あたりの位置の変位が所定の閾値を超えないようにフィルタを施し、注目領域960の移動経路を求める。
図19(a)と(b)は、オブジェクト303の移動経路(軌跡)と、注目領域960の移動経路(軌跡)を示す図である。
図19(a)では、オブジェクト303の位置の変位(例えばX軸方向成分,Y軸方向成分の変位)のうち閾値Cthより変位が大きいところでは、注目領域960の位置の変位を閾値に抑えている。つまり、注目領域960の軌跡は、オブジェクト303の軌跡を、最大値がCthとなるローパスフィルタに通して得られるものである。注目領域960の軌跡は、オブジェクト303の軌跡の高周波成分を除去したものとも言える。オブジェクト303の位置が瞬時に大きく移動した場合でも、注目領域960の軌跡への影響は少なくなる。
また、図19(b)では、オブジェクト303の位置の変位のうち閾値Cthより変位が大きいところで、注目領域960の位置の変位を閾値に抑え、且つ、おおよそ各点を通るような近似曲線を、注目領域960の軌跡としている。この近似として、例えばスプライン近似、最小自乗近似のような公知の近似手法を採用できる。注目領域960の軌跡は、オブジェクト303の軌跡をまるめた形状になる。
また、図19(c)では、CPU 101は、オブジェクト303の軌跡における各点の変位の平均値を、注目領域960の軌跡の変位としている。注目領域960の軌跡は、直線的な形状になる。
CPU 101は、図19(a)〜(c)に示すいずれの手法を用いて注目領域960の移動経路を求めてもよいし、組み合わせて用いてもよい。
図18(b)に戻り、CPU 101は、オブジェクト303の移動経路1810から、注目領域960の移動経路1820を求める。そして、CPU 101は、図18(c)に示すように、求めた移動経路に沿って注目領域960を移動する。注目領域960の移動中、オブジェクト303は移動経路1830に沿って更に移動している。そのため、CPU 101は、同様にして注目領域960の移動経路1840を求め、注目領域960を移動する。そして図18(d)に示すように、最終的には注目領域960はオブジェクト901が移動を終了した位置になる。
本実施形態によれば、注目領域960の位置は、プレイヤによる把持モジュール201の操作に従って変わるので、プレイヤの注目度が高いと考えられる画面501内の領域を、より的確に推定し、スクロール量を抑えることができる。したがって、画面501のスクロールが速すぎて画像が全体として見えづらくなってしまわないように、プレイヤにとって画面501の見やすさを向上できる効果が増す。更に、スクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置800への負荷を減らすことができる。
なお、CPU 101は、プレイヤによって選択されているオブジェクト303として、図20(a)と(b)に示すように、カーソル308の位置に配置されているオブジェクト303を選択してもよい。例えば、マジックハンド302がどのオブジェクト303も掴んでいない場合、カーソル308が当たったところにあるオブジェクト303が選択されているものとして扱ってもよい。そして、CPU 101は、視点305の仮想空間301における位置と、カーソル308の位置にあるオブジェクト303の仮想空間301における位置との距離L6を計算し、計算された距離に対して単調減少するように、移動距離ΔL(又は回転角度ΔD)を補正してもよい。
また、プレイヤによるオブジェクト303の選択は、マジックハンド302で掴むことによって行われることに限られない。CPU 101は、いずれか1つ以上のオブジェクト303を選択する旨のユーザによる選択指示入力を受け付けて、選択指示入力が示すオブジェクト303を、プレイヤによって選択されているオブジェクト303とすることができる。
(実施形態5)
次に、本発明のその他の実施形態について説明する。本発明は、上記のような3次元仮想空間にて実行されるゲームだけでなく、2次元仮想空間にて実行されるゲームにも適用可能である。以下詳述する。
図21は、本実施形態のゲーム装置200の機能的な構成を示す図である。
図22(a)は、モニターに表示される画面501の例である。本実施形態では2次元の仮想空間を想定しているので、オブジェクト303は“平面のオブジェクト”(画像データ)である。本実施形態では、「オブジェクト」の代わりに「キャラクタ」と呼ぶこととする。画面501には、仮想空間301のうち表示領域952に含まれる画像がモニターに表示される。
図22(b)は、図22(a)に示す画面501が表示されている状況における仮想空間301を表す図である。仮想空間301には、キャラクタとして、例えばプレイヤキャラクタ2210、その他のキャラクタ2220等が配置される。
本実施形態においては、画面501には表示領域952に含まれる画像がモニターに表示されるのであって、上記各実施形態のように仮想空間301に1つの視点305と1つの視線306が存在するわけではない。しかし、以下に述べる画面501の拡縮(ズームイン、ズームアウト)を概念的に理解しやすくするため、“擬似的な”視点2250を用いて説明する。
擬似的な視点2250から表示領域952に下ろした垂線と、表示領域952と、の交点は、表示領域952の中央点(重心)と常に一致する。
本実施形態で扱うゲームでは、2次元仮想空間の一部分をズームイン(拡大)して表示したり全体をズームアウト(縮小)して表示したりすることができる。ズームインは擬似的な視点2250を表示領域952に近づけることに相当し、ズームアウトは擬似的な視点2250を表示領域952から遠ざけることに相当する。
記憶部801は、キャラクタの位置を示すキャラクタ情報2101と、表示領域952の位置と大きさを示す表示領域情報2102、注目領域960の位置を示す注目領域情報2103を記憶する。CPU 101とRAM 103が協働して記憶部801として機能する。
入力受付部802は、把持モジュール201(あるいはゲームパッドやタッチパネル)を操作するユーザからの様々な指示入力を受け付ける。例えば、入力受付部802は、視点305の位置を移動する旨の移動指示入力や、任意のオブジェクト303を操作対象として選択する旨の選択指示入力などをプレイヤから受け付ける。CPU 101、RAM 103、コントローラ105が協働して入力受付部802として機能する。
注目領域960は、例えば、表示領域952の中央の位置に設定される。ただし、CPU 101は、上述の実施形態と同様に、選択指示入力が示すキャラクタの位置を中心とする位置に注目領域960を移動してもよい。
生成部803は、表示領域952に含まれるキャラクタ等の画像を生成する。言い換えれば、生成部803は、仮想空間301を擬似的な視点2250の位置から見たキャラクタ等を表す画像を生成する。CPU 101とRAM 103と画像処理部107が協働して生成部803として機能する。
表示部804は、生成部803によって生成された画像をモニターに表示する。CPU 101とRAM 103と画像処理部107が協働して表示部804として機能する。
距離計算部805は、生成部803によって生成された画像内の注目領域960に描画されているキャラクタの位置と、擬似的な視点2250の位置と、の距離L7を求める。CPU 101とRAM 103と画像処理部107が協働して距離計算部805として機能する。
注目領域960に複数のキャラクタが存在する場合、距離計算部805は、擬似的な視点2250と各々のキャラクタとの距離L7をそれぞれ求め、更にそれらの平均値、最大値、最小値、合計値等を求めてもよい。
移動計算部806は、表示領域952の移動方向と移動距離を計算する。言い換えれば、移動計算部806は、擬似的な視点2250の移動方向と移動距離を計算する。CPU 101とRAM 103が協働して移動計算部806として機能する。
補正部807は、移動計算部806により計算された移動距離を、距離計算部805により求められた距離L7に基づいて補正する。このとき補正部807は、補正後の移動距離が、距離L7に対して単調減少するように、移動距離を補正する。CPU 101とRAM 103が協働して補正部807として機能する。
更新部808は、移動計算部806により計算された移動方向に、補正部807により補正された移動距離だけ、表示領域952の位置を移動するように、表示領域情報2102を更新する。CPU 101とRAM 103が協働して更新部808として機能する。
次に、本実施形態の画像表示処理について、画面501をズームアウトする場合を例にとり説明する。なお、本実施形態では、ゲーム装置200は、ユーザからの指示入力に応じて、画面501の表示倍率を自由に変えることができるものとする。
図23(a)は、図22(a)に示す画面501をズームアウトし、より広い範囲の仮想空間301をモニターに表示したときの画面501の例である。
図23(b)は、図23(a)に示す画面501が表示されている状況における仮想空間301を表す図である。
CPU 101は、画面501の表示倍率を変更する指示入力をユーザから受け付けると、表示領域952の大きさを拡大又は縮小する。同様に、注目領域960の大きさも拡大又は縮小する。
これは、擬似的な視点2250を用いて説明すると、CPU 101が、視野角を一定にしたまま、擬似的な視点2250と仮想空間301との距離(擬似的な視点2250の高さ)を変えることに相当すると言える。例えば、画面501をズームアウトする指示入力を受け付けた場合、CPU 101は、図23(a)に示すように表示領域952を拡張する。したがって、一個一個のキャラクタは小さく描画されることになるものの、より広い範囲の仮想空間がモニターに表示されることになる。
図24は、本実施形態の画像表示処理を説明するためのフローチャートである。
まず、コントローラ105(あるいはゲームパッドやタッチパネルでも良い)は、プレイヤキャラクタ2210の位置を上下左右に移動させるための各操作ボタンによる指示入力をプレイヤから受け付ける(ステップS2401)。例えばCPU 101は、コントローラ105がプレイヤキャラクタ2210の位置を移動する旨の指示入力を受け付けると、プレイヤキャラクタ2210の位置を指定された方向に移動する。CPU 101は、プレイヤキャラクタ2210の位置の移動に際し、プレイヤキャラクタ2210が常に中央部515の中にあるようにする。
CPU 101は、画面501をスクロールするか否かを判別する(ステップS2402)。例えばCPU 101は、プレイヤキャラクタ2210の位置が、中央部515を定義する矩形の4辺のいずれかまで達していない場合、プレイヤキャラクタ2210の位置を指示入力に従って移動する。この場合、CPU 101は画面501をスクロールしないと判別する。一方、プレイヤキャラクタ2210の位置が、中央部515を定義する矩形の4辺のいずれかまで達している場合、CPU 101は画面501をスクロールすると判別する。
画面501をスクロールしないと判別された場合(ステップS2402;NO)、ステップS2401に戻る。一方、画面501をスクロールすると判別された場合(ステップS2402;YES)、CPU 101は、表示領域952の移動方向と単位時間あたりの移動距離を求める(ステップS2403)。
例えば、プレイヤキャラクタ2210の位置が中央部515を定義する矩形の4辺のいずれかまで達していて、且つ、プレイヤキャラクタ2210の位置を更に中央部515の外側へ移動する指示入力があった場合、CPU 101は、指示入力が示す方向を表示領域952の移動方向とし、所定値を表示領域952の移動距離とする。
CPU 101は、画面501の表示倍率を変えたか否かを判別する(ステップS2404)。
表示倍率を変えていない場合(ステップS2404;NO)、ステップS2406に進む。一方、表示倍率を変えた場合(ステップS2404;YES)、CPU 101は、ステップS2403で求めた表示領域952の移動距離を補正する(ステップS2405)。
具体的には、CPU 101は、擬似的な視点2250と仮想空間301との距離L7が短いほど小さくなるように、表示領域952の移動距離を補正する。つまり、補正後の移動距離は、距離L7に対して単調減少する。
CPU 101は、ステップS2403で求めた移動方向に、ステップS2405で補正した移動距離だけ、表示領域952を移動する(ステップS2406)。
そして、CPU 101は、表示領域952内の画像を画像処理部107にモニターへ表示させる(ステップS2407)。
本実施形態によれば、画面501の表示倍率を変えない場合には、スクロール量も不変である。しかし、表示倍率を変えた場合には、キャラクタの位置が注目領域960の真ん中に近ければ近いほど、スクロール量が少なく抑えられる。したがって、画面501のスクロールが速すぎて画像が全体として見えづらくなってしまわないようにすることができ、プレイヤにとって画面501の見やすさを向上することができる。例えば、画面が頻繁にスクロールすることによってプレイヤが酔ってしまうようなことがないようにすることができる。更に、スクロール処理が頻繁に発生してしまわないようにすることができ、スクロール処理によるゲーム装置200への負荷を減らすことができる。
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
コンピュータをゲーム装置800の全部又は一部として動作させるためのプログラムを、メモリカード、CD−ROM、DVD、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
以上説明したように、本発明によれば、画像表示のスクロール処理による負荷を軽減し、プレイヤにとっての画面の見やすさを向上するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することができる。
本発明のゲーム装置が実現される典型的な情報処理装置の概要構成を示す図である。 本実施形態にて利用されるコントローラと情報処理装置の外観を示す説明図である。 仮想空間と現実世界との対応関係を示す説明図である。 マジックハンドの柄とオブジェクトとの位置関係と、力の方向を示す説明図である。 画面にカーソルとマジックハンドとオブジェクトが表示される様子を示す説明図である。 マジックハンドの柄の位置と、視点の移動の方向との関係を説明する説明図である。 視線の方向の向きを右に移動させる様子を仮想空間の上側から見たものを順に示す説明図である。 本発明のゲーム装置の機能的な構成を示す図である。 (a)画面に表示される仮想空間を表す画像の例である。(b)仮想空間内の視点の位置を移動する様子を説明するための図である。 (a)〜(d)は、視点の位置とオブジェクトの位置との距離と、視点の位置の移動量又は視線の向きの移動量と、の関係を示す図である。 (a)画面に表示される仮想空間を表す画像の例である。(b)仮想空間内の視線の向きを変える様子を説明するための図である。 画像表示処理を説明するためのフローチャートである。 (a)実施形態2において、画面に表示される仮想空間を表す画像の例である。(b)仮想空間内の視点やオブジェクト等の位置関係を説明するための図である。 (a)実施形態3において、画面に表示される仮想空間を表す画像の例である。(b)仮想空間内の視点やオブジェクト等の位置関係を説明するための図である。 (a)実施形態4において、画面に表示される仮想空間を表す画像の例である。(b)仮想空間内の視点やオブジェクト等の位置関係を説明するための図である。 オブジェクトの軌跡と、注目領域の軌跡とを説明するための図である。 (a)〜(d)は、実施形態4において、オブジェクトの軌跡と、注目領域の軌跡とを説明するための図である。 (a)〜(d)は、実施形態4において、オブジェクトの軌跡と、注目領域の軌跡とを説明するための図である。 (a)〜(c)は、実施形態4において、注目領域の軌跡を求める処理を説明するための図である。 (a)実施形態4において、画面に表示される仮想空間を表す画像の他の例である。(b)仮想空間内の視点やオブジェクト等の位置関係を説明するための図である。 実施形態5において、ゲーム装置の機能的な構成を示す図である。 (a)実施形態5において、画面に表示される仮想空間を表す画像の例である。(b)擬似的な視点やキャラクタ等の位置関係を説明するための図である。 (a)実施形態5において、ズームアウトしたときの画像の例である。(b)擬似的な視点やキャラクタ等の位置関係を説明するための図である。 画像表示処理を説明するためのフローチャートである。
符号の説明
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
201 把持モジュール
202 CCDカメラ
203 十字形キー
204 Aボタン
205 Bボタン
206 各種ボタン
207 インジケータ
208 電源ボタン
251 発光モジュール
252 発光ダイオード
291 テレビジョン装置
301 仮想空間
302 マジックハンド
303 オブジェクト
304 柄
305 視点
306 視線
307 投影面
308 カーソル
309 障害物
311 柄の姿勢の方向
313 基準位置
314 基準位置からのずれを表すベクトル
321 柄の姿勢の方向ベクトル
322 柄からオブジェクトへの方向ベクトル
323 上下左右のずれを表すベクトル
411 牽引力(反発力)
412 上下左右の力
501 画面
511 上縁部
512 右縁部
513 左縁部
514 下縁部
515 中央部
800 ゲーム装置
801 記憶部
802 入力受付部
803 生成部
804 表示部
805 距離計算部
806 移動計算部
807 補正部
808 更新部
851 オブジェクト情報
852 視点情報
853 視線情報
854 カーソル情報
855 注目領域情報
951 視点の位置の移動方向
952 表示領域
960 注目領域
1101 視線の向きの回転方向

Claims (18)

  1. 仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、を記憶する記憶部と、
    当該仮想空間において当該視点の位置から見た当該複数のオブジェクトを表す画像を生成する生成部と、
    前記生成された画像を表示装置の画面に表示させる表示部と、
    当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部と、
    前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部と、
    当該視点の位置を移動する移動方向と移動距離を計算する移動計算部と、
    前記計算された移動距離を前記求められた距離に基づいて補正する補正部と、
    前記計算された移動方向に前記補正された結果の移動距離だけ移動するように、前記記憶される視点の位置を更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新部と、
    を備え、
    前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
    前記距離計算部は、前記選択されたオブジェクトの位置が移動した場合、当該オブジェクトの移動を開始してから所定時間経過後、前記記憶されている履歴に基づいて、当該オブジェクトに追随するように当該注目領域の位置を変え、
    前記補正部は、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
    ことを特徴とするゲーム装置。
  2. 仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、を記憶する記憶部と、
    当該仮想空間において当該視点の位置から当該視線の向きに見た当該複数のオブジェクトを表す画像を生成する生成部と、
    前記生成された画像を表示装置の画面に表示させる表示部と、
    当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部と、
    前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部と、
    当該視線の向きを回転する回転方向と回転角度を計算する移動計算部と、
    前記計算された回転角度を前記求められた距離に基づいて補正する補正部と、
    前記計算された回転方向に前記補正された結果の回転角度だけ回転するように、前記記憶される視線の向きを更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新部と、
    を備え、
    前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
    前記距離計算部は、前記選択されたオブジェクトの位置が移動した場合、当該オブジェクトの移動を開始してから所定時間経過後、前記記憶されている履歴に基づいて、当該オブジェクトに追随するように当該注目領域の位置を変え、
    前記補正部は、前記求められた距離が小さいほど補正後の回転角度が小さくなるように、前記計算された回転角度を補正する、
    ことを特徴とするゲーム装置。
  3. 請求項2に記載のゲーム装置であって、
    前記移動計算部は、当該視点の位置を移動する移動方向と移動距離を更に計算し、
    前記補正部は、前記計算された移動距離を前記求められた距離に基づいて更に補正し、
    前記更新部は、前記計算された移動方向に前記補正された結果の移動距離だけ移動するように、前記記憶される視点の位置を更に更新し、
    前記補正部は、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
    ことを特徴とするゲーム装置。
  4. 請求項1乃至3のいずれか1項に記載のゲーム装置であって、
    当該注目領域は、前記生成された画像の中央に配置される、
    ことを特徴とするゲーム装置。
  5. 仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、を記憶する記憶部と、
    当該仮想空間において当該視点の位置から見た当該複数のオブジェクトを表す画像を生成する生成部と、
    前記生成された画像を表示装置の画面に表示させる表示部と、
    当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を指定量だけ移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部と、
    前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部と、
    当該視点の位置を移動する移動方向と移動距離を計算する移動計算部と、
    前記計算された移動距離を前記求められた距離に基づいて補正する補正部と、
    前記計算された移動方向に前記補正された結果の移動距離だけ移動するように、前記記憶される視点の位置を更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新部と、
    を備え、
    前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
    前記補正部は、前記記憶されている移動指示入力が示す各々の指定量に基づいて当該移動距離の補正量を求め、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
    ことを特徴とするゲーム装置。
  6. 仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、を記憶する記憶部と、
    当該仮想空間において当該視点の位置から当該視線の向きに見た当該複数のオブジェクトを表す画像を生成する生成部と、
    前記生成された画像を表示装置の画面に表示させる表示部と、
    当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を指定量だけ移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部と、
    前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部と、
    当該視線の向きを回転する回転方向と回転角度を計算する移動計算部と、
    前記計算された回転角度を前記求められた距離に基づいて補正する補正部と、
    前記計算された回転方向に前記補正された結果の回転角度だけ回転するように、前記記憶される視線の向きを更新する更新部と、
    を備え、
    前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
    前記補正部は、前記記憶されている移動指示入力が示す各々の指定量に基づいて当該回転角度の補正量を求め、前記求められた距離が小さいほど補正後の回転角度が小さくなるように、前記計算された回転角度を補正する、
    ことを特徴とするゲーム装置。
  7. 請求項1、3、5のいずれか1項に記載のゲーム装置であって、
    前記距離計算部は、前記生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、のそれぞれの距離の平均値を計算し、
    前記補正部は、前記計算された平均値が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
    ことを特徴とするゲーム装置。
  8. 請求項1、3、5のいずれか1項に記載のゲーム装置であって、
    前記距離計算部は、前記生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、のそれぞれの距離の最大値を計算し、
    前記補正部は、前記計算された最大値が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
    ことを特徴とするゲーム装置。
  9. 請求項1、3、5のいずれか1項に記載のゲーム装置であって、
    前記距離計算部は、前記生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、のそれぞれの距離の最小値を計算し、
    前記補正部は、前記計算された最小値が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
    ことを特徴とするゲーム装置。
  10. 請求項1、3、5のいずれか1項に記載のゲーム装置であって、
    前記距離計算部は、前記生成された画像内の注目領域に描画されたオブジェクトが複数の場合、当該オブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、のそれぞれの距離の合計値を計算し、
    前記補正部は、前記計算された合計値が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
    ことを特徴とするゲーム装置。
  11. 記憶部、生成部、表示部、入力受付部、距離計算部、移動計算部、補正部、更新部を有するゲーム装置にて実行されるゲーム処理方法であって、
    前記記憶部には、仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、が記憶され、
    前記生成部が、当該仮想空間において当該視点の位置から見た当該複数のオブジェクトを表す画像を生成する生成ステップと、
    前記表示部が、前記生成された画像を表示装置の画面に表示させる表示ステップと、
    前記入力受付部が、当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付ステップと、
    前記距離計算部が、前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算ステップと、
    前記移動計算部が、当該視点の位置を移動する移動方向と移動距離を計算する移動計算ステップと、
    前記補正部が、前記計算された移動距離を前記求められた距離に基づいて補正する補正ステップと、
    前記更新部が、前記計算された移動方向に前記補正された結果の移動距離だけ移動するように、前記記憶される視点の位置を更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新ステップと、
    を備え、
    前記記憶部には、当該移動指示入力の所定回数分の履歴が更に記憶され、
    前記距離計算ステップでは、前記距離計算部が、前記選択されたオブジェクトの位置が移動した場合、当該オブジェクトの移動を開始してから所定時間経過後、前記記憶されている履歴に基づいて、当該オブジェクトに追随するように当該注目領域の位置を変え、
    前記補正ステップでは、前記補正部が、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
    ことを特徴とするゲーム処理方法。
  12. 記憶部、生成部、表示部、入力受付部、距離計算部、移動計算部、補正部、更新部を有するゲーム装置にて実行されるゲーム処理方法であって、
    前記記憶部には、仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、が記憶され、
    前記生成部が、当該仮想空間において当該視点の位置から当該視線の向きに見た当該複数のオブジェクトを表す画像を生成する生成ステップと、
    前記表示部が、前記生成された画像を表示装置の画面に表示させる表示ステップと、
    前記入力受付部が、当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付ステップと、
    前記距離計算部が、前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目位置を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算ステップと、
    前記移動計算部が、当該視線の向きを回転する回転方向と回転角度を計算する移動計算ステップと、
    前記補正部が、前記計算された回転角度を前記求められた距離に基づいて補正する補正ステップと、
    前記更新部が、前記計算された回転方向に前記補正された結果の回転角度だけ回転するように、前記記憶される視線の向きを更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新ステップと、
    を備え、
    前記記憶部には、当該移動指示入力の所定回数分の履歴が更に記憶され、
    前記距離計算ステップでは、前記距離計算部が、前記選択されたオブジェクトの位置が移動した場合、当該オブジェクトの移動を開始してから所定時間経過後、前記記憶されている履歴に基づいて、当該オブジェクトに追随するように当該注目領域の位置を変え、
    前記補正ステップでは、前記補正部が、前記求められた距離が小さいほど補正後の回転角度が小さくなるように、前記計算された回転角度を補正する、
    ことを特徴とするゲーム処理方法。
  13. 記憶部、生成部、表示部、入力受付部、距離計算部、移動計算部、補正部、更新部を有するゲーム装置にて実行されるゲーム処理方法であって、
    前記記憶部には、仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、が記憶され、
    前記生成部が、当該仮想空間において当該視点の位置から見た当該複数のオブジェクトを表す画像を生成する生成ステップと、
    前記表示部が、前記生成された画像を表示装置の画面に表示させる表示ステップと、
    前記入力受付部が、当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を指定量だけ移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付ステップと、
    前記距離計算部が、前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算ステップと、
    前記移動計算部が、当該視点の位置を移動する移動方向と移動距離を計算する移動計算ステップと、
    前記補正部が、前記計算された移動距離を前記求められた距離に基づいて補正する補正ステップと、
    前記更新部が、前記計算された移動方向に前記補正された結果の移動距離だけ移動するように、前記記憶される視点の位置を更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新ステップと、
    を備え、
    前記記憶部には、当該移動指示入力の所定回数分の履歴が更に記憶され、
    前記補正ステップでは、前記補正部が、前記記憶されている移動指示入力が示す各々の指定量に基づいて当該移動距離の補正量を求め、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
    ことを特徴とするゲーム処理方法。
  14. 記憶部、生成部、表示部、入力受付部、距離計算部、移動計算部、補正部、更新部を有するゲーム装置にて実行されるゲーム処理方法であって、
    前記記憶部には、仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、が記憶され、
    前記生成部が、当該仮想空間において当該視点の位置から当該視線の向きに見た当該複数のオブジェクトを表す画像を生成する生成ステップと、
    前記表示部が、前記生成された画像を表示装置の画面に表示させる表示ステップと、
    前記入力受付部が、当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を指定量だけ移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付ステップと、
    前記距離計算部が、前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算ステップと、
    前記移動計算部が、当該視線の向きを回転する回転方向と回転角度を計算する移動計算ステップと、
    前記補正部が、前記計算された回転角度を前記求められた距離に基づいて補正する補正ステップと、
    前記更新部が、前記計算された回転方向に前記補正された結果の回転角度だけ回転するように、前記記憶される視線の向きを更新する更新ステップと、
    を備え、
    前記記憶部には、当該移動指示入力の所定回数分の履歴が更に記憶され、
    前記補正ステップでは、前記補正部が、前記記憶されている移動指示入力が示す各々の指定量に基づいて当該回転角度の補正量を求め、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された回転角度を補正する、
    ことを特徴とするゲーム処理方法。
  15. 仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、を記憶する記憶部を有するコンピュータを
    当該仮想空間において当該視点の位置から見た当該複数のオブジェクトを表す画像を生成する生成部、
    前記生成された画像を表示装置の画面に表示させる表示部、
    当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部、
    前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部、
    当該視点の位置を移動する移動方向と移動距離を計算する移動計算部、
    前記計算された移動距離を前記求められた距離に基づいて補正する補正部、
    前記計算された移動方向に前記補正された結果の移動距離だけ移動するように、前記記憶される視点の位置を更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新部、
    として機能させ、
    前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
    前記距離計算部は、前記選択されたオブジェクトの位置が移動した場合、当該オブジェクトの移動を開始してから所定時間経過後、前記記憶されている履歴に基づいて、当該オブジェクトに追随するように当該注目領域の位置を変え、
    前記補正部は、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
    ことを特徴とするプログラム。
  16. 仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、を記憶する記憶部を有するコンピュータを
    当該仮想空間において当該視点の位置から当該視線の向きに見た当該複数のオブジェクトを表す画像を生成する生成部、
    前記生成された画像を表示装置の画面に表示させる表示部、
    当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部、
    前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部、
    当該視線の向きを回転する回転方向と回転角度を計算する移動計算部、
    前記計算された回転角度を前記求められた距離に基づいて補正する補正部、
    前記計算された回転方向に前記補正された結果の回転角度だけ回転するように、前記記憶される視線の向きを更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新部、
    として機能させ、
    前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
    前記距離計算部は、前記選択されたオブジェクトの位置が移動した場合、当該オブジェクトの移動を開始してから所定時間経過後、前記記憶されている履歴に基づいて、当該オブジェクトに追随するように当該注目領域の位置を変え、
    前記補正部は、前記求められた距離が小さいほど補正後の回転角度が小さくなるように、前記計算された回転角度を補正する、
    ことを特徴とするプログラム。
  17. 仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、を記憶する記憶部を有するコンピュータを、
    当該仮想空間において当該視点の位置から見た当該複数のオブジェクトを表す画像を生成する生成部、
    前記生成された画像を表示装置の画面に表示させる表示部、
    当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を指定量だけ移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部、
    前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部、
    当該視点の位置を移動する移動方向と移動距離を計算する移動計算部、
    前記計算された移動距離を前記求められた距離に基づいて補正する補正部、
    前記計算された移動方向に前記補正された結果の移動距離だけ移動するように、前記記憶される視点の位置を更新し、当該移動指示入力に基づいて、前記選択されたオブジェクトの位置を更新する更新部、
    として機能させ、
    前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
    前記補正部は、前記記憶されている移動指示入力が示す各々の指定量に基づいて当該移動距離の補正量を求め、前記求められた距離が小さいほど補正後の移動距離が小さくなるように、前記計算された移動距離を補正する、
    ことを特徴とするプログラム。
  18. 仮想空間に配置される複数のオブジェクトの位置と、当該仮想空間に配置される視点の位置と、視線の向きと、を記憶する記憶部を有するコンピュータを、
    当該仮想空間において当該視点の位置から当該視線の向きに見た当該複数のオブジェクトを表す画像を生成する生成部、
    前記生成された画像を表示装置の画面に表示させる表示部、
    当該複数のオブジェクトのうちのいずれかを選択する旨の選択指示入力と、前記選択されたオブジェクトの位置を指定量だけ移動する旨の移動指示入力と、を当該ユーザから受け付ける入力受付部、
    前記選択されたオブジェクトの前記生成された画像内における位置を中心として注目領域を設定し、当該複数のオブジェクトのうち当該注目領域に描画されたオブジェクトの当該仮想空間における位置と、前記記憶されている視点の位置と、の距離を求める距離計算部、
    当該視線の向きを回転する回転方向と回転角度を計算する移動計算部、
    前記計算された回転角度を前記求められた距離に基づいて補正する補正部、
    前記計算された回転方向に前記補正された結果の回転角度だけ回転するように、前記記憶される視線の向きを更新する更新部、
    として機能させ、
    前記記憶部は、当該移動指示入力の所定回数分の履歴を更に記憶し、
    前記補正部は、前記記憶されている移動指示入力が示す各々の指定量に基づいて当該回転角度の補正量を求め、前記求められた距離が小さいほど補正後の回転角度が小さくなるように、前記計算された回転角度を補正する、
    ことを特徴とするプログラム。
JP2008081003A 2008-03-26 2008-03-26 ゲーム装置、ゲーム処理方法、ならびに、プログラム Active JP4384697B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2008081003A JP4384697B2 (ja) 2008-03-26 2008-03-26 ゲーム装置、ゲーム処理方法、ならびに、プログラム
KR1020107005981A KR101084030B1 (ko) 2008-03-26 2009-03-19 게임장치, 게임처리방법 및 정보기록매체
CN2009801065782A CN101970067A (zh) 2008-03-26 2009-03-19 游戏装置、游戏处理方法、信息记录介质以及程序
US12/934,600 US20110014977A1 (en) 2008-03-26 2009-03-19 Game device, game processing method, information recording medium, and program
PCT/JP2009/055468 WO2009119453A1 (ja) 2008-03-26 2009-03-19 ゲーム装置、ゲーム処理方法、情報記録媒体、ならびに、プログラム
TW098109406A TWI374043B (en) 2008-03-26 2009-03-23 Game device, game processing method, information recording medium, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008081003A JP4384697B2 (ja) 2008-03-26 2008-03-26 ゲーム装置、ゲーム処理方法、ならびに、プログラム

Publications (2)

Publication Number Publication Date
JP2009232984A JP2009232984A (ja) 2009-10-15
JP4384697B2 true JP4384697B2 (ja) 2009-12-16

Family

ID=41113648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008081003A Active JP4384697B2 (ja) 2008-03-26 2008-03-26 ゲーム装置、ゲーム処理方法、ならびに、プログラム

Country Status (6)

Country Link
US (1) US20110014977A1 (ja)
JP (1) JP4384697B2 (ja)
KR (1) KR101084030B1 (ja)
CN (1) CN101970067A (ja)
TW (1) TWI374043B (ja)
WO (1) WO2009119453A1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8384665B1 (en) * 2006-07-14 2013-02-26 Ailive, Inc. Method and system for making a selection in 3D virtual environment
JP5350304B2 (ja) * 2010-03-29 2013-11-27 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム装置の制御方法及びプログラム
JP2012173950A (ja) * 2011-02-21 2012-09-10 Denso Corp 連続操作学習装置、及び、ナビゲーション装置
US9285883B2 (en) 2011-03-01 2016-03-15 Qualcomm Incorporated System and method to display content based on viewing orientation
JP5323126B2 (ja) * 2011-05-20 2013-10-23 シャープ株式会社 画像処理システム、画像処理装置、及び、指示受付装置
US20130120371A1 (en) * 2011-11-15 2013-05-16 Arthur Petit Interactive Communication Virtual Space
JP5200158B1 (ja) * 2011-12-27 2013-05-15 株式会社コナミデジタルエンタテインメント ゲーム装置、制御装置、ゲーム制御方法、及びプログラム
TWI498771B (zh) 2012-07-06 2015-09-01 Pixart Imaging Inc 可辨識手勢動作的眼鏡
KR20140010685A (ko) * 2012-07-16 2014-01-27 삼성전자주식회사 휴대 단말기에서 객체 이동 방법 및 장치
US9589000B2 (en) * 2012-08-30 2017-03-07 Atheer, Inc. Method and apparatus for content association and history tracking in virtual and augmented reality
US20140080601A1 (en) 2012-09-17 2014-03-20 King.Com Limited Method of designing multiple computer games
US10828558B2 (en) 2013-02-19 2020-11-10 King.Com Ltd. Video game with spreading tile backgrounds for matched tiles
US9079097B2 (en) 2013-02-19 2015-07-14 King.Com Ltd. Video game with replaceable tiles having selectable physics
US9592441B2 (en) 2013-02-19 2017-03-14 King.Com Ltd. Controlling a user interface of a computer device
US20140274418A1 (en) * 2013-03-12 2014-09-18 King.Com Limited Module for a switcher game
US9937418B2 (en) 2013-06-07 2018-04-10 King.Com Ltd. Computing device, game, and methods therefor
TWI570752B (zh) * 2013-12-11 2017-02-11 財團法人工業技術研究院 儲能元件與超級電容器元件
JP2015166890A (ja) 2014-03-03 2015-09-24 ソニー株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム
US9936195B2 (en) * 2014-11-06 2018-04-03 Intel Corporation Calibration for eye tracking systems
CN107407977B (zh) * 2015-03-05 2020-12-08 索尼公司 信息处理设备、控制方法及程序
CN105983234A (zh) * 2015-09-11 2016-10-05 北京蚁视科技有限公司 一种防止用户眩晕的视频图像显示方法
JP6532393B2 (ja) * 2015-12-02 2019-06-19 株式会社ソニー・インタラクティブエンタテインメント 表示制御装置及び表示制御方法
JP6744543B2 (ja) * 2015-12-25 2020-08-19 キヤノンマーケティングジャパン株式会社 情報処理システム、その制御方法、及びプログラム
US10678337B2 (en) * 2016-01-04 2020-06-09 The Texas A&M University System Context aware movement recognition system
JP6402432B2 (ja) * 2016-09-06 2018-10-10 株式会社アクセル 情報処理装置、及び情報処理方法
WO2018058693A1 (zh) * 2016-10-01 2018-04-05 北京蚁视科技有限公司 一种防止用户眩晕的视频图像显示方法
CN106582012B (zh) * 2016-12-07 2018-12-11 腾讯科技(深圳)有限公司 一种vr场景下的攀爬操作处理方法和装置
US10217186B2 (en) * 2017-02-15 2019-02-26 Htc Corporation Method, virtual reality apparatus and recording medium for displaying fast-moving frames of virtual reality
JP6959365B2 (ja) * 2017-06-09 2021-11-02 株式会社ソニー・インタラクティブエンタテインメント 中心窩レンダリングシステムにおけるシャドーの最適化及びメッシュスキンの適応
EP3444016A1 (fr) * 2017-08-17 2019-02-20 Bigben Interactive SA Procede de contrôle d'un element d'affichage par une console de jeux
KR102343648B1 (ko) * 2017-08-29 2021-12-24 삼성전자주식회사 영상 부호화 장치 및 영상 부호화 시스템
JP7292597B2 (ja) * 2018-04-11 2023-06-19 大日本印刷株式会社 表示システム、画像処理装置、およびプログラム
JP6854972B2 (ja) * 2018-05-02 2021-04-07 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
KR102149732B1 (ko) * 2019-04-17 2020-08-31 라쿠텐 인코포레이티드 표시 제어 장치, 표시 제어 방법, 프로그램, 및 비일시적인 컴퓨터 판독 가능한 정보 기록 매체
WO2021049356A1 (ja) * 2019-09-13 2021-03-18 ソニー株式会社 再生装置、再生方法、及び記録媒体
CN111729311B (zh) * 2020-06-22 2024-05-10 苏州幻塔网络科技有限公司 攀爬跳跃方法、装置、计算机设备及计算机可读存储介质
CN112473138B (zh) * 2020-12-10 2023-11-17 网易(杭州)网络有限公司 游戏的显示控制方法及装置、可读存储介质、电子设备
CN112604282B (zh) * 2020-12-25 2022-09-02 珠海金山数字网络科技有限公司 虚拟镜头控制方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2558991B2 (ja) * 1992-04-06 1996-11-27 松下電器産業株式会社 視点・光源機能の属性追加交換直接操作システム
JPH0991109A (ja) * 1995-09-28 1997-04-04 Oki Electric Ind Co Ltd 仮想3次元空間表示装置
GB9606791D0 (en) * 1996-03-29 1996-06-05 British Telecomm Control interface
JP3009633B2 (ja) * 1997-04-03 2000-02-14 コナミ株式会社 画像装置、画像表示方法および記録媒体
JPH11154244A (ja) * 1997-11-21 1999-06-08 Canon Inc 画像処理装置と画像情報の処理方法
JP2001149643A (ja) * 1999-09-16 2001-06-05 Sony Computer Entertainment Inc 3次元ゲームにおけるオブジェクト表示方法、情報記録媒体およびエンタテインメント装置
US6670957B2 (en) * 2000-01-21 2003-12-30 Sony Computer Entertainment Inc. Entertainment apparatus, storage medium and object display method
EP1363246A4 (en) * 2001-02-23 2006-11-08 Fujitsu Ltd "DISPLAY CONTROL DEVICE, INFORMATION EQUIPMENT EQUIPPED WITH THE DISPLAY CONTROL DEVICE AND VIEWPOINT POSITION CONTROL DEVICE"
JP2003334382A (ja) * 2002-05-21 2003-11-25 Sega Corp ゲーム装置、画像処理装置及び画像処理方法
JP2004005024A (ja) * 2002-05-30 2004-01-08 Konami Co Ltd 情報処理プログラム
JP4474640B2 (ja) * 2004-05-11 2010-06-09 株式会社セガ 画像処理プログラム、ゲーム処理プログラムおよびゲーム情報処理装置
JP2006018476A (ja) * 2004-06-30 2006-01-19 Sega Corp 画像の表示制御方法
JP2007260232A (ja) 2006-03-29 2007-10-11 Konami Digital Entertainment:Kk ゲーム装置、ゲーム制御方法、ならびに、プログラム

Also Published As

Publication number Publication date
WO2009119453A1 (ja) 2009-10-01
KR20100046262A (ko) 2010-05-06
TWI374043B (en) 2012-10-11
JP2009232984A (ja) 2009-10-15
KR101084030B1 (ko) 2011-11-17
US20110014977A1 (en) 2011-01-20
TW201012513A (en) 2010-04-01
CN101970067A (zh) 2011-02-09

Similar Documents

Publication Publication Date Title
JP4384697B2 (ja) ゲーム装置、ゲーム処理方法、ならびに、プログラム
JP5576061B2 (ja) プログラム及びゲーム装置
JP5519591B2 (ja) 情報表示装置、情報表示方法、ならびに、プログラム
JP5210547B2 (ja) 移動制御プログラムおよび移動制御装置
JP2006102275A (ja) ゲームシステム、プログラム及び情報記憶媒体
JP3795903B2 (ja) ゲーム装置、コンピュータの制御方法及びプログラム
WO2010095549A1 (ja) ゲーム装置、ゲーム制御方法、情報記録媒体、及び、プログラム
JP4881981B2 (ja) 仮想空間表示装置、視点設定方法、および、プログラム
JP3747050B1 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2011239937A (ja) ゲーム装置、ゲーム処理方法、ならびに、プログラム
JP5307060B2 (ja) 画像処理装置、画像処理方法、ならびに、プログラム
JP2004220273A (ja) 模擬実験装置、模擬実験方法、ならびに、プログラム
JP2007260232A (ja) ゲーム装置、ゲーム制御方法、ならびに、プログラム
JP5124545B2 (ja) ゲーム装置、ゲーム処理方法、ならびに、プログラム
JP4508918B2 (ja) 画像生成システム及び情報記憶媒体
JP4469709B2 (ja) 画像処理プログラムおよび画像処理装置
JP2011239936A (ja) ゲーム装置、ゲーム処理方法、ならびに、プログラム
JP2008113825A (ja) ゲーム装置、ゲーム処理方法、ならびに、プログラム
JP3989511B1 (ja) ゲーム装置、ゲーム制御方法、ならびに、プログラム
JP2017012307A (ja) プログラム及び端末
JP6863678B2 (ja) プログラム及びゲーム装置
JP7154258B2 (ja) プログラム、端末及びゲーム制御方法
JP6945699B2 (ja) プログラム及びゲーム装置
JP5238764B2 (ja) ゲーム装置、ゲーム処理方法、ならびに、プログラム
JP4956600B2 (ja) ゲーム装置、ゲーム処理方法、ならびに、プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090811

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090908

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090925

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4384697

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131002

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250