JP2018010486A - シミュレーションシステム及びプログラム - Google Patents

シミュレーションシステム及びプログラム Download PDF

Info

Publication number
JP2018010486A
JP2018010486A JP2016138927A JP2016138927A JP2018010486A JP 2018010486 A JP2018010486 A JP 2018010486A JP 2016138927 A JP2016138927 A JP 2016138927A JP 2016138927 A JP2016138927 A JP 2016138927A JP 2018010486 A JP2018010486 A JP 2018010486A
Authority
JP
Japan
Prior art keywords
virtual camera
moving body
user
posture
moving
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.)
Granted
Application number
JP2016138927A
Other languages
English (en)
Other versions
JP6689694B2 (ja
Inventor
嘉明 石井
Yoshiaki Ishii
嘉明 石井
伸哉 牧野
Shinya Makino
伸哉 牧野
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.)
Bandai Namco Entertainment Inc
Original Assignee
Bandai Namco Entertainment Inc
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 Bandai Namco Entertainment Inc filed Critical Bandai Namco Entertainment Inc
Priority to JP2016138927A priority Critical patent/JP6689694B2/ja
Priority to PCT/JP2017/024792 priority patent/WO2018012393A1/ja
Priority to CN201780043158.9A priority patent/CN109478340B/zh
Publication of JP2018010486A publication Critical patent/JP2018010486A/ja
Priority to US16/245,598 priority patent/US10915166B2/en
Application granted granted Critical
Publication of JP6689694B2 publication Critical patent/JP6689694B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/25Output arrangements for video game devices
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B69/00Training appliances or apparatus for special sports
    • A63B69/18Training appliances or apparatus for special sports for skiing
    • 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/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • 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/212Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
    • 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/24Constructional details thereof, e.g. game controllers with detachable joystick handles
    • 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
    • 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/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
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/807Gliding or sliding on surfaces, e.g. using skis, skates or boards
    • 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/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • 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
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • 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/0304Detection arrangements using opto-electronic means
    • 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/0304Detection arrangements using opto-electronic means
    • G06F3/0308Detection arrangements using opto-electronic means comprising a plurality of distinctive and separately oriented light emitters or reflectors associated to the pointing device, e.g. remote cursor controller with distinct and separately oriented LEDs at the tip whose radiations are captured by a photo-detector associated to the screen
    • 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
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B71/00Games or sports accessories not covered in groups A63B1/00 - A63B69/00
    • A63B71/06Indicating or scoring devices for games or players, or for other sports activities
    • A63B71/0619Displays, user interfaces and indicating devices, specially adapted for sport equipment, e.g. display mounted on treadmills
    • A63B71/0622Visual, audio or audio-visual systems for entertaining, instructing or motivating the user
    • A63B2071/0638Displaying moving images of recorded environment, e.g. virtual environment
    • A63B2071/0644Displaying moving images of recorded environment, e.g. virtual environment with display speed of moving landscape controlled by the user's performance
    • 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/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8041Skating using skis, skates or board
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Optics & Photonics (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Cardiology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Controls And Circuits For Display Device (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】表示画像の揺れ等を原因とする3D酔い等の問題の発生を抑制できるシミュレーションシステム及びプログラム等の提供。
【解決手段】シミュレーションシステムは、HMDを装着するユーザの視点情報のトラッキング情報を取得する入力処理部と、ユーザに対応する移動体(CH)を仮想空間において移動させる処理を行う移動体処理部と、ユーザの一人称視点として設定される仮想カメラ(VC)の制御を行う仮想カメラ制御部と、HMDの表示画像として、仮想空間において仮想カメラから見える画像を生成する表示処理部を含む。仮想カメラ制御部は、トラッキング情報に基づいて仮想カメラの位置、姿勢を変化させる一方で、移動体の進行方向が変化した場合にも仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、仮想カメラを設定する。
【選択図】図11

Description

本発明は、シミュレーションシステム及びプログラム等に関する。
従来より、HMD(頭部装着型表示装置)をユーザが頭部に装着し、HMDの画面に表示される画像をユーザが見ることで、いわゆるバーチャルリアリティー(VR)の世界を体感できるシミュレーションシステムが知られている。このようなシミュレーションシステムの従来技術としては、例えば特許文献1等に開示される技術がある。
特開平11−309269号公報
HMDを用いたシミュレーションシステムでは、仮想空間において仮想カメラから見える画像がHMDに表示される。このような画像をHMDに表示することで、ユーザの視界の全周囲に亘って、広大なVR空間が広がるようになるため、ユーザの仮想現実感を格段に向上できる。
しかしながら、仮想空間においてユーザに対応するキャラクタ等の移動体が移動し、それに伴い仮想カメラが移動した場合に、HMDの表示画像がユーザの意思とは無関係に激しく変化する場合がある。例えば凹凸のあるコースをキャラクタ等の移動体が移動すると、コースの凹凸に合わせてHMDの表示画像(映像)も上下等に激しく揺れてしまう。そして、このような表示画像の揺れは、ユーザの3D酔いなどの問題を招いてしまう。
本発明の幾つかの態様によれば、表示画像の揺れ等を原因とする3D酔い等の問題の発生を抑制できるシミュレーションシステム及びプログラム等を提供できる。
本発明の一態様は、頭部装着型表示装置を装着するユーザの視点情報のトラッキング情報を取得する入力処理部と、前記ユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、前記ユーザの一人称視点として設定される仮想カメラの制御を行う仮想カメラ制御部と、前記頭部装着型表示装置の表示画像として、前記仮想空間において前記仮想カメラから見える画像を生成する表示処理部と、を含み、前記仮想カメラ制御部は、前記トラッキング情報に基づいて前記仮想カメラの位置、姿勢を変化させる一方で、前記移動体の進行方向が変化した場合にも前記仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、前記仮想カメラを設定するシミュレーションシステムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
本発明の一態様によれば、ユーザに対応する移動体を仮想空間において移動させる処理が行われ、頭部装着型表示装置の表示画像として、当該ユーザの一人称視点として設定される仮想カメラから見える画像が生成される。そして、頭部装着型表示装置を装着するユーザの視点情報のトラッキング情報が取得され、当該トラッキング情報に基づいて仮想カメラの位置、姿勢が変化するようになる。その一方で、移動体の進行方向が変化した場合にも仮想カメラのピッチングやローリングの姿勢変化については無効又は制限される。このようにユーザの視点情報のトラッキング情報に基づいて仮想カメラの位置、姿勢を変化させることで、仮想現実感の高い表示画像を頭部装着型表示装置に表示できる。一方、移動体の進行方向が変化した場合にも、仮想カメラのピッチングやローリングの姿勢変化については無効又は制限することで、表示画像の揺れ等を原因とする3D酔い等の問題の発生を抑制できるようになる。
また本発明の一態様では、前記入力処理部は、前記頭部装着型表示装置のトラッキング処理により得られた前記トラッキング情報を取得し、前記トラッキング情報は、前記ユーザの初期視点情報からの視点情報の変化情報を含んでもよい。
このようにすれば、頭部装着型表示装置のトラッキング処理を行い、初期視点情報からの変化情報をトラッキング情報として取得することで、ユーザの視点情報に応じて仮想カメラの位置、姿勢を変化させることが可能になる。
また本発明の一態様では、前記移動体処理部は、前記移動体の進行方向が変化した場合にも、前記移動体のピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されるように、前記移動体を移動させる処理を行い、前記仮想カメラ制御部は、前記姿勢変化が無効又は制限された前記移動体の視点の位置に、前記仮想カメラを設定してもよい。
このようにすれば、移動体の進行方向が変化した場合にもピッチングやローリングの姿勢変化が無効又は制限されるような移動体の視点の位置に、仮想カメラを設定することで、仮想カメラのピッチングやローリングの姿勢変化を無効又は制限できるようになる。
また本発明の一態様は、ユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、前記ユーザの一人称視点として設定される仮想カメラの制御を行う仮想カメラ制御部と、表示画像として、前記仮想空間において前記仮想カメラから見える画像を生成する表示処理部と、を含み、前記移動体処理部は、前記移動体の進行方向が変化した場合にも、前記移動体のピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されるように、前記移動体を移動させる処理を行い、前記仮想カメラ制御部は、前記姿勢変化が無効又は制限された前記移動体の視点の位置に、前記仮想カメラを設定するシミュレーションシステムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
本発明の一態様によれば、ユーザに対応する移動体を仮想空間において移動させる処理が行われ、表示画像として、当該ユーザの一人称視点として設定される仮想カメラから見える画像が生成される。そして移動体の進行方向が変化した場合にもピッチングやローリングの姿勢変化が無効又は制限されるような移動体の視点の位置に、仮想カメラが設定される。このようにすれば、仮想カメラのピッチングやローリングの姿勢変化を無効又は制限できるようになり、表示画像の揺れ等を原因とする3D酔い等の問題の発生を抑制できるようになる。
また本発明の一態様では、ワールド座標系において前記移動体のローカル座標系の基準位置を移動させる処理が行われると共に、前記ワールド座標系に対する前記ローカル座標系のピッチング及びローリングの少なくとも一方の回転移動が無効又は制限されるように、前記ローカル座標系が設定され、前記ローカル座標系における前記移動体の視点の位置に、前記仮想カメラの視点座標系が設定されてもよい。
このような座標系の設定を行うことで、移動体の進行方向が変化した場合にもピッチングやローリングの姿勢変化が無効又は制限されるような移動体の視点の位置に、仮想カメラを設定できるようになる。
また本発明の一態様では、前記移動体処理部は、前記仮想空間のコースの状態の変化により前記移動体の進行方向が変化した場合にも、前記移動体のピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されるように、前記コースにおいて前記移動体を移動させる処理を行うと共に、前記移動体に付随する所与のオブジェクトについては、前記コースの状態に応じて姿勢を変化させてもよい。
このようにすれば、移動体のピッチングやローリングの姿勢変化が無効又は制限された場合に、移動体に付随するオブジェクトについて不自然な画像が生成されてしまうのを防止できるようになる。
また本発明の一態様では、前記表示処理部は、対戦用画像、観賞用画像又はデモ画像については、ピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されていない第2の移動体が表示される画像を生成してもよい。
このようにすれば、対戦用画像、観賞用画像又はデモ画像については、ピッチングやローリングの姿勢変化が無効又は制限されないような第2の移動体を用いて生成されるようになるため、不自然な画像が生成されてしまう事態を防止できる。
また本発明の一態様では、前記仮想カメラ制御部は、所与の条件が成立したかに応じて、前記移動体のピッチング及びローリングの少なくとも一方の姿勢変化を無効又は制限する処理をオン又はオフにしてもよい。
このようにすれば、所与の条件が成立したかに応じて、移動体のピッチングやローリング姿勢変化を無効又は制限する処理をオンにしたり、オフにしたりすることが可能になる。
また本発明の一態様では、前記仮想カメラ制御部は、前記仮想空間において前記移動体が移動するコースの状況に応じて、前記移動体のピッチング及びローリングの少なくとも一方の姿勢変化を無効又は制限する処理をオン又はオフにしてもよい。
このようにすれば、移動体が移動するコースの状況に応じて、移動体のピッチングやローリング姿勢変化を無効又は制限する処理をオンにしたり、オフにしたりすることが可能になる。
また本発明の一態様では、前記移動体処理部は、前記移動体の進行方向の変化に応じて前記移動体の姿勢が変化するように前記移動体を移動させる処理を行い、前記仮想カメラ制御部は、前記移動体の進行方向の変化に応じて前記移動体の姿勢が変化した場合にも、前記仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、前記仮想カメラを設定してもよい。
このようにすれば、移動体の進行方向の変化に応じて移動体の姿勢が変化することで、より自然に見える画像が生成できるようになると共に、仮想カメラのピッチングやローリングの姿勢変化を無効又は制限することで、3D酔いの発生等を抑制できるようになる。
また本発明の一態様では、前記移動体処理部は、前記仮想カメラの位置及び姿勢の少なくとも一方を基準にして、前記移動体の姿勢を設定してもよい。
このようにすれば、ピッチングやローリングの姿勢変化が無効又は制限された仮想カメラの位置や姿勢を基準にして、移動体の姿勢を設定できるようになり、より自然に見える画像の生成が可能になる。
また本発明の一態様では、前記移動体の進行方向の変化又は前記移動体が移動するコースの状況に応じて、前記ユーザのプレイ位置を変化させる可動筐体を含んでもよい。
このようにすれば、移動体の進行方向の変化やコースの状況を、可動筐体によりユーザのプレイ位置を変化させることで、ユーザに体感させることが可能になり、3D酔いの発生等を更に抑制できるようになる。
また本発明の一態様では、前記移動体の進行方向の変化に応じた音又は前記移動体が移動するコースの状況に応じた出力音を生成する音処理部を含んでもよい(音処理部としてコンピュータを機能させてもよい)。
このようにすれば、移動体の進行方向の変化やコースの状況を、出力音の変化によりユーザに聴覚的に認識させることが可能になり、3D酔いの発生等を更に抑制できるようになる。
また本発明の一態様では、前記仮想カメラ制御部は、前記ユーザによる設定情報又は前記ユーザのプレイ履歴情報に基づいて、前記仮想カメラの前記姿勢変化を無効又は制限する処理のオン又はオフを設定してもよい。
このようにすれば、ユーザが入力した設定情報や、ユーザの過去のプレイ履歴情報などに基づいて、仮想カメラのピッチングやローリングの姿勢変化を無効又は制限する処理のオン又はオフを設定できるようになる。
本実施形態のシミュレーションシステムの構成例を示すブロック図。 図2(A)、図2(B)は本実施形態に用いられるHMDの一例。 図3(A)、図3(B)は本実施形態に用いられるHMDの他の例。 シミュレーションシステムの一例であるスキーシミュレータの構成例。 スキーシミュレータでのゲーム画像の例。 シミュレーションシステムの一例であるロボットシミュレータの構成例。 ロボットシミュレータでのゲーム画像の例。 移動体の進行方向の変化に伴う仮想カメラの姿勢変化の問題点の説明図。 図9(A)〜図9(C)はトラッキング情報に基づいて仮想カメラの位置、姿勢を変化させる手法の説明図。 トラッキング情報に基づいて仮想カメラの位置、姿勢を変化させる処理の具体例を説明するフローチャート。 仮想カメラの姿勢変化を無効にする本実施形態の手法の説明図。 仮想カメラの姿勢変化を無効にする本実施形態の手法の説明図。 仮想カメラの姿勢変化の無効処理の第1の実現手法の説明図。 ワールド座標系、ローカル座標系、視点座標系の設定手法の説明図。 付随オブジェクトについての姿勢の制御手法の説明図。 対戦用画像、観賞用画像、デモ画像の生成手法の説明図。 図17(A)、図17(B)は移動体の姿勢変化を無効にする処理のオン又はオフを設定する手法の説明図。 仮想カメラの姿勢変化の無効処理の第2の実現手法の説明図。 図19(A)、図19(B)は仮想カメラの位置や姿勢を基準に移動体の姿勢を設定する手法の説明図。 可動筐体、出力音の制御手法の説明図。 ユーザの設定情報に基づき仮想カメラの姿勢変化の無効処理をオン又はオフにする手法の説明図。 プレイ履歴に基づき仮想カメラの姿勢変化の無効処理をオン又はオフにする手法の説明図。 本実施形態の詳細な処理例を示すフローチャート。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.シミュレーションシステム
図1は、本実施形態のシミュレーションシステム(シミュレータ、ゲームシステム)の構成例を示すブロック図である。本実施形態のシミュレーションシステムは例えばバーチャルリアリティ(VR)をシミュレートするシステムであり、ゲームコンテンツを提供するゲームシステム、スポーツ競技シミュレータや運転シミュレータなどのリアルタイムシミュレーションシステム、映像等のコンテンツを提供するコンテンツ提供システム、或いは遠隔作業を実現するオペレーティングシステムなどの種々のシステムに適用可能である。なお、本実施形態のシミュレーションシステムは図1の構成に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
可動筐体40は、ユーザのプレイ位置等を変化させる筐体である。例えば可動筐体40は、移動体の進行方向の変化又は移動体が移動するコースの状況に応じて、ユーザのプレイ位置を変化させる。可動筐体40の詳細について後述する。
操作部160は、ユーザ(プレーヤ)が種々の操作情報(入力情報)を入力するためのものである。操作部160は、例えば操作ボタン、方向指示キー、ジョイスティック、ハンドル、ペダル又はレバー等の種々の操作デバイスにより実現できる。例えば後述の図4では、操作部材43、44、足台45、46などにより操作部160が実現されている。図6では、操作レバー161、162、アクセルペダル163、ブレーキペダル164などにより操作部160が実現されている。
記憶部170は各種の情報を記憶する。記憶部170は、処理部100や通信部196などのワーク領域として機能する。ゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。記憶部170の機能は、半導体メモリ(DRAM、VRAM)、HDD(ハードディスクドライブ)、SSD、光ディスク装置などにより実現できる。記憶部170は、オブジェクト情報記憶部172、描画バッファ178を含む。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、BD、CD)、HDD、或いは半導体メモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(入力装置、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
HMD200(頭部装着型表示装置)は、ユーザの頭部に装着されて、ユーザの眼前に画像を表示する装置である。HMD200は非透過型であることが望ましいが、透過型であってもよい。またHMD200は、いわゆるメガネタイプのHMDであってもよい。
HMD200は、センサ部210、表示部220、処理部240を含む。なおHMD200に発光素子を設ける変形実施も可能である。センサ部210は、例えばヘッドトラッキングなどのトラッキング処理を実現するためものである。例えばセンサ部210を用いたトラッキング処理により、HMD200の位置、方向を特定する。HMD200の位置、方向が特定されることで、ユーザの視点位置、視線方向を特定できる。
トラッキング方式としては種々の方式を採用できる。トラッキング方式の一例である第1のトラッキング方式では、後述の図2(A)、図2(B)で詳細に説明するように、センサ部210として複数の受光素子(フォトダイオード等)を設ける。そして外部に設けられた発光素子(LED等)からの光(レーザー等)をこれらの複数の受光素子により受光することで、現実世界の3次元空間でのHMD200(ユーザの頭部)の位置、方向を特定する。第2のトラッキング方式では、後述の図3(A)、図3(B)で詳細に説明するように、複数の発光素子(LED)をHMD200に設ける。そして、これらの複数の発光素子からの光を、外部に設けられた撮像部で撮像することで、HMD200の位置、方向を特定する。第3のトラッキング方式では、センサ部210としてモーションセンサを設け、このモーションセンサを用いてHMD200の位置、方向を特定する。モーションセンサは例えば加速度センサやジャイロセンサなどにより実現できる。例えば3軸の加速度センサと3軸のジャイロセンサを用いた6軸のモーションセンサを用いることで、現実世界の3次元空間でのHMD200の位置、方向を特定できる。なお、第1のトラッキング方式と第2のトラッキング方式の組合わせ、或いは第1のトラッキング方式と第3のトラッキング方式の組合わせなどにより、HMD200の位置、方向を特定してもよい。またHMD200の位置、方向を特定することでユーザの視点位置、視線方向を特定するのではなく、ユーザの視点位置、視線方向を直接に特定するトラッキング処理を採用してもよい。
HMD200の表示部220は例えば液晶ディスプレイ(LCD)や有機ELディスプレイなどにより実現できる。例えばHMD200には、表示部220として、ユーザの左目の前に配置される第1のディスプレイと、右目の前に配置される第2のディスプレイが設けられており、例えば立体視表示が可能になっている。立体視表示を行う場合には、例えば視差が異なる左目用画像と右目用画像を生成し、第1のディスプレイに左目用画像を表示し、第2のディスプレイに右目用画像を表示すればよい。なお1つのディスプレイの第1、第2の表示領域に左目用画像、右目用画像を表示するようにしてもよい。
HMD200の処理部240は、HMD200において必要な各種の処理を行う。例えば処理部240は、センサ部210の制御処理や表示部220の表示制御処理などを行う。また処理部240が、3次元音響(立体音響)処理を行って、3次元的な音の方向や距離や広がりの再現を実現してもよい。
音出力部192は、本実施形態により生成された音を出力するものであり、例えばスピーカ又はヘッドホン等により実現できる。
I/F(インターフェース)部194は、携帯型情報記憶媒体195とのインターフェース処理を行うものであり、その機能はI/F処理用のASICなどにより実現できる。携帯型情報記憶媒体195は、ユーザが各種の情報を保存するためのものであり、電源が非供給になった場合にもこれらの情報の記憶を保持する記憶装置である。携帯型情報記憶媒体195は、ICカード(メモリカード)、USBメモリ、或いは磁気カードなどにより実現できる。
通信部196は、有線や無線のネットワークを介して外部(他の装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、操作部160からの操作情報や、HMD200でのトラッキング情報(HMDの位置及び方向の少なくとも一方の情報。視点位置及び視線方向の少なくとも一方の情報)や、プログラムなどに基づいて、ゲーム処理(シミュレーション処理)、移動体処理、仮想カメラ制御処理、表示処理、或いは音処理などを行う。
処理部100の各部が行う本実施形態の各処理(各機能)はプロセッサ(ハードウェアを含むプロセッサ)により実現できる。例えば本実施形態の各処理は、プログラム等の情報に基づき動作するプロセッサと、プログラム等の情報を記憶するメモリにより実現できる。プロセッサは、例えば各部の機能が個別のハードウエアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。プロセッサは、例えばCPU(Central Processing Unit)であってもよい。但し、プロセッサはCPUに限定されるものではなく、GPU(Graphics Processing Unit)、或いはDSP(Digital Signal Processor)等、各種のプロセッサを用いることが可能である。またプロセッサはASICによるハードウェア回路であってもよい。メモリ(記憶部170)は、SRAM、DRAM等の半導体メモリであってもよいし、レジスターであってもよい。或いはハードディスク装置(HDD)等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部100の各部の処理(機能)が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
処理部100は、入力処理部102、演算処理部110、出力処理部140を含む。演算処理部110は、ゲーム処理部112、可動筐体処理部113、移動体処理部114、オブジェクト空間設定部116、仮想カメラ制御部118、表示処理部120、音処理部130を含む。上述したように、これらの各部により実行される本実施形態の各処理は、プロセッサ(或いはプロセッサ及びメモリ)により実現できる。なお、これらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
入力処理部102は、操作情報やトラッキング情報を受け付ける処理や、記憶部170から情報を読み出す処理や、通信部196を介して情報を受信する処理を、入力処理として行う。例えば入力処理部102は、操作部160を用いてユーザが入力した操作情報やHMD200のセンサ部210等により検出されたトラッキング情報を取得する処理や、読み出し命令で指定された情報を、記憶部170から読み出す処理や、外部装置(サーバ等)からネットワークを介して情報を受信する処理を、入力処理として行う。ここで受信処理は、通信部196に情報の受信を指示したり、通信部196が受信した情報を取得して記憶部170に書き込む処理などである。
演算処理部110は、各種の演算処理を行う。例えばゲーム処理(シミュレーション処理)、移動体処理、仮想カメラ制御処理、表示処理、或いは音処理などの演算処理を行う。
ゲーム処理部112(ゲーム処理のプログラムモジュール)はユーザがゲームをプレイするための種々のゲーム処理を行う。別の言い方をすれば、ゲーム処理部112(シミュレーション処理部)は、ユーザが仮想現実(バーチャルリアリティ)を体験するための種々のシミュレーション処理を実行する。ゲーム処理は、例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、開始したゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、或いはゲーム成績を演算する処理などである。
可動筐体処理部113(可動筐体処理のプログラムモジュール)は、可動筐体40についての種々の処理を行う。例えば可動筐体40の制御処理を行ったり、可動筐体40を制御するための種々の情報の検出処理を行う。例えば可動筐体処理部113は、後述の図4のエアバネ部50〜53などの制御処理を行う。例えばエアバネ部50〜53を伸縮させるための制御処理を行う。また操作部材43、44によるスイング操作や、足台45、46によるエッジング操作が行われた場合に、可動筐体処理部113は、その操作情報の検出処理を行い、検出された操作情報に基づいて、可動筐体40の制御処理等を実行する。また可動筐体処理部113は、図6のベース部452の姿勢を変化(ピッチング、ローリング等)させる電動シリンダ(不図示)の制御処理を行う。例えば電動シリンダのロッド部の直線運動を制御する処理を行う。また可動筐体処理部113は、図6の操作レバー161、162、アクセルペダル163、ブレーキペダル164による操作情報の検出処理を行い、検出された操作情報に基づいて、可動筐体40の制御処理等を実行する。
移動体処理部114(移動体処理のプログラムモジュール)は、仮想空間内で移動する移動体についての種々の処理を行う。例えば仮想空間であるオブジェクト空間(ゲーム空間)において移動体を移動させる処理や、移動体を動作させる処理を行う。例えば移動体処理部114は、操作部160によりユーザが入力した操作情報や、取得されたトラッキング情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(モデルオブジェクト)をオブジェクト空間内(仮想空間内)で移動させたり、移動体を動作(モーション、アニメーション)させる制御処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(例えば1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
移動体は、例えば実空間のユーザ(プレーヤ)に対応する仮想空間の仮想ユーザ(仮想プレーヤ)、或いは当該仮想ユーザが搭乗(操作)する搭乗移動体(操作移動体)などである。例えば移動体は、後述の図4のスキーシミュレータにおいて、ユーザに対応して仮想空間でスキーを行うキャラクタ(仮想ユーザ)である。或いは、図6のロボットシミュレータにおいてユーザに対応するキャラクタ(仮想ユーザ)が搭乗するロボット(搭乗移動体)である。
オブジェクト空間設定部116(オブジェクト空間設定処理のプログラムモジュール)は、複数のオブジェクトが配置されるオブジェクト空間(広義には仮想空間)の設定処理を行う。例えば、移動体(人、ロボット、車、電車、飛行機、船、モンスター又は動物等)、マップ(地形)、建物、観客席、コース(道路)、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクト情報記憶部172には、オブジェクト空間でのオブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等の情報であるオブジェクト情報がオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部116は、例えば各フレーム毎にこのオブジェクト情報を更新する処理などを行う。
仮想カメラ制御部118(仮想カメラ制御処理のプログラムモジュール)は、オブジェクト空間の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点、基準仮想カメラ)の制御処理を行う。例えば仮想カメラの位置(視点位置)又は姿勢(視線方向)を制御する処理を行う。具体的には、仮想カメラの位置(X、Y、Z)や、姿勢情報である回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。この仮想カメラはユーザ(仮想ユーザ)の視点に相当する。立体視表示の場合は、左目用の第1の視点(左目用の第1の仮想カメラ)と、右目用の第2の視点(右目用の第2の仮想カメラ)が設定される。
表示処理部120(表示処理のプログラムモジュール)は、ゲーム画像(シミュレーション画像)の表示処理を行う。例えば処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、HMD200の表示部220に表示する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間(仮想空間)において仮想カメラ(所与の視点。左目用、右目用の第1、第2の視点)から見える画像が生成される。なお、表示処理部120で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
音処理部130(音処理のプログラムモジュール)は、処理部100で行われる種々の処理の結果に基づいて音処理を行う。具体的には、楽曲(音楽、BGM)、効果音、又は音声などのゲーム音を生成し、ゲーム音を音出力部192に出力させる。なお音処理部130の音処理の一部(例えば3次元音響処理)を、HMD200の処理部240により実現してもよい。
出力処理部140は各種の情報の出力処理を行う。例えば出力処理部140は、記憶部170に情報を書き込む処理や、通信部196を介して情報を送信する処理を、出力処理として行う。例えば出力処理部140は、書き込み命令で指定された情報を、記憶部170に書き込む処理や、外部の装置(サーバ等)に対してネットワークを介して情報を送信する処理を行う。送信処理は、通信部196に情報の送信を指示したり、送信する情報を通信部196に指示する処理などである。
そして本実施形態のシミュレーションシステムは、図1に示すように、入力処理部102と移動体処理部114と仮想カメラ制御部118と表示処理部120を含む。
入力処理部102(入力受け付け部)は、HMD200(頭部装着型表示装置)を装着するユーザの視点情報のトラッキング情報を取得する。例えばユーザの視点位置、視線方向の少なくとも1つである視点情報のトラッキング情報(視点トラッキング情報)を取得する。このトラッキング情報は、例えばHMD200のトラッキング処理を行うことで取得できる。なおトラッキング処理によりユーザの視点位置、視線方向を直接に取得すようにしてもよい。
移動体処理部114は、ユーザに対応する移動体(仮想ユーザ、搭乗移動体等)を仮想空間(オブジェクト空間)において移動させる処理を行う。例えば移動体の位置、方向の情報を所定期間毎(例えばフレーム毎)に求める処理を行って、仮想空間のコースなどにおいて移動体を移動させる処理を行う。また移動体処理部114は移動体を動作させる処理(モーション処理)なども行う。
仮想カメラ制御部118は、例えばユーザの一人称視点(広義にはユーザの視点)として設定される仮想カメラの制御を行う。例えば仮想空間において移動する移動体の視点に対応する位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置(位置座標)や姿勢(回転軸回りでの回転角度)を制御する。表示処理部120は、HMD200の表示画像(表示映像)として、仮想空間において仮想カメラ(ユーザ視点)から見える画像を生成する。例えば仮想空間であるオブジェクト空間において所与の視点から見える画像を生成する。生成される画像は立体視用の画像であることが望ましい。
そして仮想カメラ制御部118は、トラッキング情報(ユーザの視点位置及び視線方向の少なくとも一方の情報)に基づいて仮想カメラの位置、姿勢を変化させる。例えば、仮想カメラ制御部118は、実空間でのユーザの視点位置、視線方向の変化に応じて仮想カメラの位置(視点位置)、姿勢(視線方向)が変化するように、仮想カメラを設定する。
例えば仮想空間での仮想ユーザの視点(一人称視点)に対して仮想カメラが設定される。そしてHMD200を装着した実空間(実世界)のユーザが首を振ったり、体を動かすなどして、ユーザの視点位置や視線方向が変化すると、仮想空間の仮想ユーザの視点位置や視線方向もそれに応じて変化する。即ち、実空間でのユーザの視点位置や視線方向が変化すると、それに応じて仮想空間での仮想カメラの位置や姿勢が変化する。またユーザが操作部160を操作することなどにより、仮想ユーザ(キャラクタ)やその搭乗移動体(ロボット、電車、車、バイク、自転車、飛行機又は船等)が仮想空間内で移動すると、その移動に追従するように仮想カメラの位置(仮想ユーザの視点位置)も変化する。このようにすることで、ユーザは、あたかも自身の分身である仮想ユーザやその搭乗移動体が仮想空間で移動するような仮想現実を体験できるようになる。なお仮想空間での仮想ユーザの視点は、例えば一人称視点になるが、その一人称視点の画像に、例えば仮想ユーザ(キャラクタ)の体の一部が映ったり、搭乗移動体の内部の様子が映るようにしてもよい。
その一方で仮想カメラ制御部118は、移動体の進行方向が変化した場合にも、仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、仮想カメラを設定する。例えば移動体の進行方向の変化に依存せずに、ピッチングやローリングを行わないように仮想カメラの姿勢を設定する。例えば実空間でのユーザの視点位置や視線方向が変化すると、それに応じて仮想カメラの位置や姿勢は変化するが、移動体の進行方向が変化した場合に、仮想カメラは、移動体の進行方向に応じたピッチングやローリングは行わないようになる。例えば、ピッチ角やロール角が初期の設定角度から変化せずに一定になるように、仮想カメラが設定される。例えばピッチング(ピッチ角)については、仮想空間のワールド座標系において例えば水平方向の面(XZ平面)に平行になるように仮想カメラが設定される。ローリング(ロール角)については、例えばワールド座標系の鉛直方向(Y軸)から変化しないように仮想カメラが設定される。なお、ピッチングやローリングの姿勢変化を無効にするとは、ピッチングやローリングの姿勢変化を行わないようにすることである。ピッチングやローリングの姿勢変化を制限するとは、移動体の進行方向に応じたピッチングやローリングの回転角度よりも、小さい回転角度(十分に小さい回転角度)でピッチングやローリングの姿勢変化を行わせることである。
なお仮想カメラの姿勢は、例えば、仮想カメラの視線方向のベクトルと、仮想カメラの上方向のベクトル(仮想カメラの上向き方向がどの方向であるかを表すベクトル)とにより規定できる。視線方向のベクトルは仮想カメラの注視位置により設定できる。例えば仮想カメラの視線方向のベクトルを変化させることで、仮想カメラのピッチングやヨーイングの姿勢変化(回転移動)を実現できる。例えば仮想カメラの上方向のベクトルを変化させることで、仮想カメラのローリングの姿勢変化(回転移動)を実現できる。
また入力処理部102は、HMD200のトラッキング処理により得られたトラッキング情報を取得する。例えば後述の図2(A)〜図3(B)のようなHMD200のトラッキング処理により、ユーザの視点位置及び視線方向の少なくとも1つである視点情報を特定するためのトラッキング情報を取得する。そして、このトラッキング情報は、ユーザの初期視点情報からの視点情報の変化情報を含む。例えばトラッキング情報は、ユーザの初期視点位置からの視点位置の変化情報(視点位置の座標の変化値)、及び、ユーザの初期視線方向からの視線方向の変化情報(視線方向の回転軸回りでの回転角度の変化値)の少なくとも一方を含む。このようなトラッキング情報が含む視点情報の変化情報に基づいて、ユーザの視点位置や視線方向を特定できるようになる。
また移動体処理部114は、移動体の進行方向が変化した場合にも、移動体のピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されるように、移動体を移動させる処理を行う。例えばコース等を移動する移動体の進行方向が変化した場合にも、移動体の姿勢のピッチングやローリングが変化しないように、移動体のモデルオブジェクトが、その移動位置に配置設定される。そして仮想カメラ制御部118は、姿勢変化が無効又は制限された移動体の視点の位置に、仮想カメラを設定する。例えば仮想ユーザに対応する移動体の一人称視点の位置に、仮想カメラが配置設定される。このようにすることで、移動体の進行方向が変化した場合にも、仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるようになる。
この場合に具体的には、例えばワールド座標系において移動体のローカル座標系の基準位置を移動させる処理が行われる。ローカル座標系の基準位置は、例えば原点位置であり、例えば移動体の所定位置(例えば後述する足元位置や腰の位置等)がローカル座標系の原点位置になるように移動体が配置設定される。そしてワールド座標系に対するローカル座標系のピッチング及びローリングの少なくとも一方の回転移動が無効又は制限されるように、ローカル座標系が設定される。そしてローカル座標系における移動体の視点の位置に、仮想カメラの視点座標系(視点座標系の原点)が設定される。
なお、移動体の進行方向が変化した場合にも、移動体のピッチングやローリングの姿勢変化が無効又は制限されるように移動体を移動させる手法では、仮想カメラの姿勢の制御手法は、上述した手法には限定されない。またHMD200に対して画像を表示する代わりに、プロジェクション用のスクリーンに対して投影装置により画像を投影するようにしてもよい。プロジェクション用スクリーンは、1つの曲面又は複数の面により構成されるスクリーンであり、例えばドーム形状のスクリーンと呼ばれる曲面スクリーンである。
また移動体の姿勢は、複数の各回転軸回り(X軸、Y軸、Z軸)での移動体(モデルオブジェクト)の回転角度により規定できる。移動体の姿勢変化は各回転軸回りでの回転移動である。例えば移動体の姿勢は、ワールド座標系に対する移動体のローカル座標系の各回転軸回りでの回転角度により規定でき、例えば座標変換の回転行列により表すことができる。
また移動体処理部114は、仮想空間のコースの状態の変化により移動体の進行方向が変化した場合にも、移動体のピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されるように、コースにおいて移動体を移動させる処理を行う。そして移動体に付随する所与のオブジェクトについては、コースの形状に応じて姿勢を変化させる。
例えばコースに対応するコース情報が記憶部170に記憶され、移動体処理部114は、このコース情報に基づいて移動体の移動処理を行う。例えばコース上の各ポイントに対応づけて、コースの高さ情報や方向情報などのコース情報が記憶され、移動体処理部114は、移動体の位置に対応するポイントのコース情報を読み出して、移動体を進行方向に移動させる処理を実行する。例えば下り坂のコースでは下り方向に移動し、上り坂のコースでは上り方向に移動するように、移動体の進行方向が設定される。また右カーブのコースでは右方向に曲がり、左カーブのコースでは左方向に曲がるように、移動体の進行方向が設定される。そして、このように移動体の進行方向が変化した場合にも、移動体がピッチングやローリングの姿勢変化を行わないように(当該姿勢変化が制限されるように)、移動体の移動処理が実行される。そしてこの場合にも、移動体に付随する所与のオブジェクト(例えば後述するスキー板や、移動体であるキャラクタの体の一部等)については、コースの状態(形状等)に応じて姿勢を変化させる。例えば下り坂のコースでは、下り坂に沿うように、当該所与のオブジェクトの姿勢を変化させ、上がり坂のコースでは、上がり坂に沿うように、当該所与のオブジェクトの姿勢を変化させる。
また表示処理部120は、対戦用画像、観賞用画像又はデモ画像については、ピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されていない第2の移動体が表示される画像を生成する。即ち、姿勢変化が無効又は制限されていない移動体を用いて、対戦用画像、観賞用画像又はデモ画像を生成する。ここで対戦用画像は、対戦用として用いられる画像である。例えば対戦用画像は、当該ユーザの移動体を、対戦相手となる相手ユーザが見るための画像であり、例えば当該相手ユーザのHMD(表示部)に表示される画像である。観賞用画像(観戦用画像)は、観賞用に用いられる画像である。例えば観賞用画像は、ユーザの移動体が移動するゲームの様子を観賞(観戦)するための画像である。例えば観賞用画像は、ギャラリーがゲームの様子を観るために観賞用モニターに表示される画像である。デモ用画像は、デモ用として用いられる画像である。例えばデモ用画像は、ゲームの開始前や開始後などにデモンストレーション用に表示される画像である。例えばユーザの移動体を用いて行ったゲームの様子(過去のゲームプレイの様子)を表す映像の情報が記憶部170に記憶され、当該映像を再生することなどによりデモ用画像が表示される。
また仮想カメラ制御部118は、所与の条件が成立したかに応じて、移動体のピッチング及びローリングの少なくとも一方の姿勢変化を無効又は制限する処理をオン又はオフにする。例えばユーザの選択により、当該姿勢変化を無効又は制限するモード(処理)をオンにしたり、オフにする。具体的には、ゲームの各種の設定を行うオプション設定画面において、当該姿勢変化を無効又は制限するモードをオンにしたり、オフにすることができるようにする。或いは仮想カメラ制御部118は、仮想空間において移動体が移動するコースの状況に応じて、移動体のピッチング及びローリングの少なくとも一方の姿勢変化を無効又は制限する処理をオン又はオフにしてもよい。例えば平坦なコースでは、当該姿勢変化を無効又は制限する処理は不要であるためオフにする。或いは急な上り坂等などにおいて、当該姿勢変化を無効又は制限する処理を行うと不自然な画像が生成されてしまう場合には、当該姿勢変化を無効又は制限する処理をオフにする。一方、凹凸のあるコースや下り坂のコースなど、3D酔いの防止の必要があるコース状況においては、当該姿勢変化を無効又は制限する処理をオンにする。
また移動体処理部114は、移動体の進行方向の変化に応じて移動体の姿勢が変化するように移動体を移動させる処理を行う。例えば下り方向に進む進行方向である場合には、下り方向に移動しているように見える姿勢に変化させ、上り方向に進む進行方向である場合には、上り方向に移動しているように見える姿勢に変化させて、移動体を移動させる。同様に右方向や左方向に曲がる進行方向の場合には、右に曲がったり、左に曲がっているように見える姿勢に変化させて、移動体を移動させる。この場合に仮想カメラ制御部118は、移動体の進行方向の変化に応じて移動体の姿勢が変化した場合にも、仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、仮想カメラを設定する。例えば下り方向や上り方向に進む進行方向であり、下り方向や上り方向に対応する姿勢に、移動体の姿勢が変化した場合にも、仮想カメラのピッチングの姿勢変化については無効又は制限する。例えば仮想カメラがピッチングの姿勢変化を行わないようにする。また例えば右方向や左方向に曲がる進行方向であり、右方向や左方向に曲がる姿勢に、移動体の姿勢が変化した場合にも、仮想カメラのローリングの姿勢変化については無効又は制限する。例えば仮想カメラがローリングの姿勢変化を行わないようにする。
この場合に移動体処理部114は、仮想カメラの位置及び姿勢の少なくとも一方を基準にして、移動体の姿勢を設定してもよい。例えばローリングやピッチングの姿勢変化が無効又は制限された仮想カメラの位置や姿勢を設定する。そして当該仮想カメラの位置や姿勢を基準にして、移動体の最終的な姿勢を設定する。例えば移動体の視点位置に、当該仮想カメラの位置が設定され、移動体の所定部位(例えば足)や付属オブジェクト(例えばスキー板)が、コースに接地するように、移動体の姿勢を設定する。この移動体の姿勢の設定は、例えばモーション処理における逆運動学処理などを行うことで実現できる。
また本実施形態のシミュレーションシステムは、ユーザのプレイ位置を変化させる可動筐体40を含むことができる。そして可動筐体40は、移動体の進行方向の変化又は移動体が移動するコースの状況(ゲーム状況)に応じて、ユーザのプレイ位置(ユーザの位置や姿勢)を変化させる。この可動筐体40によるプレイ位置の変化は、可動筐体処理部113による可動筐体40の制御処理により実現される。例えば後述の図4では、エアバネ部50〜53を用いてプレイ位置(PPL)を変化させている。後述の図6では不図示の電動シリンダなどによりベース部452の姿勢を変化させることで、ユーザのプレイ位置を変化させている。
例えば本実施形態では、ユーザがプレイするゲームのゲーム処理として、仮想現実のシミュレーション処理を行う。仮想現実のシミュレーション処理は、実空間での事象を仮想空間で模擬するためのシミュレーション処理であり、当該事象をユーザに仮想体験させるための処理である。例えば実空間のユーザに対応する仮想ユーザやその搭乗移動体などの移動体を、仮想空間で移動させたり、移動に伴う環境や周囲の変化をユーザに体感させるための処理を行う。そして可動筐体40は、ゲーム処理であるシミュレーション処理の結果に基づいてプレイ位置を変化させる。例えば仮想空間での移動体の移動処理の結果等に基づいて、プレイ位置を変化させる。例えば、ユーザの進行方向の変化に伴う加速度の変化(加速、減速)を、ユーザに体感させるためのシミュレーション処理として、可動筐体40によりプレイ位置を変化させる処理を行う。或いは、コース上を移動体が移動する際に、コースの上り下りや凹凸をユーザに体感させるためのシミュレーション処理として、可動筐体40によりプレイ位置を変化させる処理を行う。このように可動筐体40によりプレイ位置を変化させることで、HMD200での表示画像の揺れと、ユーザが体感する加速度等の変化が、ある程度連動するようになり、ユーザの3D酔い等を抑制できるようになる。
なおプレイ位置は、仮想現実(VR)のシミュレーションゲームをプレイする際にユーザが位置するプレイポジションである。例えばプレイ位置は、シートなどのライド部でのユーザのライド位置である。例えばライド部であるシート等に座って、仮想現実のシミュレーションゲームをプレイしている場合には、プレイ位置は例えばシートのライド位置である着座位置である。またユーザが、バイク、自転車、又は馬などの乗り物や動物を模擬したライド部にまたがっている場合には、プレイ位置は、またがっている位置である。またユーザが立ち姿勢でシミュレーションゲームをプレイする場合には、プレイ位置は、例えばユーザの立ち位置である。
また本実施形態のシミュレーションシステムは音処理部130を有しており、音処理部130は、移動体の進行方向の変化に応じた音又は移動体が移動するコースの状況に応じた出力音を生成する処理を行う。例えば移動体の進行方向が変化したり、コースの状況が変化した場合に、その変化をユーザに認識させるための出力音を生成する。例えば凹凸のあるコースでは、「ガタガタ」というような音を出力して、コースに凹凸があることをユーザに聴覚的に認識させる。またユーザの進行方向が急激に変化した場合に、進行方向を変化させる加速度の変化(加速、減速等)をユーザに認識させるための音を出力して、進行方向が変化したことをユーザに聴覚的に認識させる。このようにすることで、ユーザの3D酔いの発生を低減できるようになる。
また仮想カメラ制御部118は、ユーザによる設定情報又はユーザのプレイ履歴情報に基づいて、仮想カメラの姿勢変化を無効又は制限する処理のオン又はオフを設定する。例えばゲームの各種の設定情報をユーザが入力するためのオプション設定画面などにおいて、仮想カメラの姿勢変化を無効又は制限するモードのオン又はオフを設定できるようにする。或いは、過去のユーザのプレイ履歴情報に基づいて、仮想カメラの姿勢変化を無効又は制限する処理のオン又はオフを設定する。例えば、オンの設定をより頻繁に選んでいるユーザに対しては、当該処理をオンに設定し、オフの設定をより頻繁に選んでいるユーザに対しては、当該処理をオフに設定する。このプレイ履歴情報は、例えばユーザが所持する携帯型情報記憶媒体195から読み出してもよいし、携帯型情報記憶媒体195に記憶されるユーザID等の識別情報に基づいて、サーバからダウンロードしてもよい。
2.トラッキング処理
次にトラッキング処理の例について説明する。図2(A)に本実施形態のシミュレーションシステムに用いられるHMD200の一例を示す。図2(A)に示すようにHMD200には複数の受光素子201、202、203(フォトダイオード)が設けられている。受光素子201、202はHMD200の前面側に設けられ、受光素子203はHMD200の右側面に設けられている。またHMDの左側面、上面等にも不図示の受光素子が設けられている。
またHMD200には、ヘッドバンド260等が設けられており、ユーザPLは、より良い装着感で安定的に頭部にHMD200を装着できるようになっている。また、HMD200には、不図示のヘッドホン端子が設けられており、このヘッドホン端子にヘッドホン270(音出力部192)を接続することで、例えば3次元音響(3次元オーディオ)の処理が施されたゲーム音を、ユーザPLは聴くことが可能になる。なお、ユーザの頭部の頷き動作や首振り動作をHMD200のセンサ部210等により検出することで、ユーザの操作情報を入力できるようにしてもよい。
図2(B)に示すように、シミュレーションシステム(可動筐体40)の周辺には、ベースステーション280、284が設置されている。ベースステーション280には発光素子281、282が設けられ、ベースステーション284には発光素子285、286が設けられている。発光素子281、282、285、286は、例えばレーザー(赤外線レーザー等)を出射するLEDにより実現される。ベースステーション280、284は、これら発光素子281、282、285、286を用いて、例えばレーザーを放射状に出射する。そして図2(A)のHMD200に設けられた受光素子201〜203等が、ベースステーション280、284からのレーザーを受光することで、HMD200のトラッキングが実現され、ユーザPLの頭の位置や向く方向(視点位置、視線方向)を検出できるようになる。
図3(A)にHMD200の他の例を示す。図3(A)では、HMD200に対して複数の発光素子231〜236が設けられている。これらの発光素子231〜236は例えばLEDなどにより実現される。発光素子231〜234は、HMD200の前面側に設けられ、発光素子235や不図示の発光素子236は、背面側に設けられる。これらの発光素子231〜236は、例えば可視光の帯域の光を出射(発光)する。具体的には発光素子231〜236は、互いに異なる色の光を出射する。そして図3(B)に示す撮像部150をユーザPLの前方側に設置し、この撮像部150により、これらの発光素子231〜236の光を撮像する。即ち、撮像部150の撮像画像には、これらの発光素子231〜236のスポット光が映る。そして、この撮像画像の画像処理を行うことで、ユーザPLの頭部(HMD)のトラッキングを実現する。即ちユーザPLの頭部の3次元位置や向く方向(視点位置、視線方向)を検出する。
例えば図3(B)に示すように撮像部150には第1、第2のカメラ151、152が設けられており、これらの第1、第2のカメラ151、152の第1、第2の撮像画像を用いることで、ユーザPLの頭部の奥行き方向での位置等が検出可能になる。またHMD200に設けられたモーションセンサのモーション検出情報に基づいて、ユーザPLの頭部の回転角度(視線)も検出可能になっている。従って、このようなHMD200を用いることで、ユーザPLが、周囲の360度の全方向うちのどの方向を向いた場合にも、それに対応する仮想空間(仮想3次元空間)での画像(ユーザの視点に対応する仮想カメラから見える画像)を、HMD200の表示部220に表示することが可能になる。なお、発光素子231〜236として、可視光ではなく赤外線のLEDを用いてもよい。また、例えばデプスカメラ等を用いるなどの他の手法で、ユーザの頭部の位置や動き等を検出するようにしてもよい。
なお、ユーザの視点位置、視線方向(ユーザの位置、方向)を検出するトラッキング処理の手法は、図2(A)〜図3(B)で説明した手法には限定されない。例えばHMD200に設けられたモーションセンサー等を用いて、HMD200の単体でトラッキング処理を実現してもよい。即ち、図2(B)のベースステーション280、284、図3(B)の撮像部150などの外部装置を設けることなく、トラッキング処理を実現する。或いは、公知のアイトラッキング、フェイストラッキング又はヘッドトラッキングなどの種々の視点トラッキング手法により、ユーザの視点位置、視線方向などの視点情報等を検出してもよい。
3.シミュレーションシステムの具体例
次にシミュレーションシステムの具体例について説明する。図4は、シミュレーションシステムの一例であるスキーシミュレータの構成例を示す斜視図である。
図4のスキーシミュレータは可動筐体40を有し、この可動筐体40は、対向するベース部41、42を含む。ベース部41、42は図4のDRC方向において対向するように設けられる。ベース部41、42の間には、その四隅に、エアバネ部50、51、52、53(広義には伸縮部)が設けられている。これらのエアバネ部50、51、52、53は、エアコンプレッサやバブルを用いて空気の供給や排出が行われることで、DRC方向において伸縮する。
例えば図4に示すように鉛直方向をY軸方向とし、ユーザPLの向く方向をZ軸方向とし、Y軸方向とZ軸方向に直交する方向をX軸方向とする。この場合に、全てのエアバネ部50、51、52、53が伸びることで、ベース部41を、Y軸方向で上側(ベース部42に対して上側)に移動させることができる。また全てのエアバネ部50、51、52、53が縮むことで、ベース部41を、Y軸方向で下側に移動させることができる。これらの上下方向でのベース部41の移動により、例えばスキーで滑る際の雪面の状態の再現などが可能になる。例えば少ないストロークで、且つ、速い速度で上下方向にベース部41を移動させることで、雪面の凹凸などを表現できる。
また四隅のエアバネ部50、51、52、53のうちの左側のエアバネ部50、51が縮んで、右側のエアバネ部52、53が伸びたり、或いは左側のエアバネ部50、51が伸びて、右側のエアバネ部52、53が縮むことで、ベース部41をZ軸回りにローリングさせことができる。また後ろ側のエアバネ部50、52が縮んで、前側のエアバネ部51、53が伸びたり、後ろ側のエアバネ部50、52が伸びて、前側のエアバネ部51、53が縮むことで、ベース部41をX軸回りにピッチングさせることができる。このようなローリングやピッチングを行うことで、スキーで滑っている斜面の状態等を表現できる。
また可動筐体40は、操作部材43、44を含む。操作部材43、44はベース部41上に設けられる。操作部材43には、ユーザPLの左足を載せるための足台45が回動自在に設けられている。操作部材44には、右足を載せるための足台46が回動自在に設けられている。
具体的には、操作部材43、44は図4のDRD方向にスイング移動(揺動)する。即ちY軸回りでのヨーイングのスイング移動が可能になる。足台45、46はDRE方向に回動する。即ちZ軸回りでの回転が可能である。
ユーザPLは、スキーを滑る要領で、操作部材43、44、足台45、46を用いた操作を行う。例えば操作部材43、44をDRD方向でスイング移動するスイング操作や、足台45、46をDRE方向で回動させるエッジング操作を行うことで、現実世界のスキーで行うようなスキー操作を行う。これにより、HMD200に映し出させる仮想ユーザが、対応するスキー操作を行い、仮想空間内のコース上でスキーを滑る仮想現実を、ユーザPLは体感できるようになる。
また可動筐体40には、ガイド部60、62が設けられている。ユーザPLは、ガイド部60、62により規定されるプレイ位置PPLに立って、スキーのシミュレーションゲームをプレイする。ガイド部60、62には、ユーザPLが手で把持するための把持部61、63(把持部63は不図示)が設けられている。把持部61、63は現実世界のスキーのストックのグリップに相当する。ユーザPLは、このようなスキーのストックを模したガイド部60、62の把持部61、63を手で握ることで、自身の身体を支える。そして、左右の把持部61、63を手で握って身体を支えながら、スキーを行う要領で、操作部材43、44をスイング移動するスイング操作を行ったり、足台45、46を用いたエッジング操作を行って、スキーのシミュレーションゲームを楽しむ。なおユーザPLの前方に設けられた風洞部69からは風が送出され、あたかもスキーで滑ったことによる風が身体にあたったかのような仮想現実感を与えることができる。
またガイド部60は、HMD200の表示画像を生成する処理装置(図1の処理部100、記憶部170等を含む装置。例えばゲーム装置、PC等)からのケーブル20を、下方から上方に所定経路に沿ってガイドする。例えばガイド部60は、中空構造のパイプにより構成され、処理装置からのケーブル20は、このガイド部60のパイプの中を通って、ケーブル取り出し口65から取り出される。具体的には、ガイド部60は、経由点TPであるケーブル取り出し口65においてケーブル20を支持する棒状の支持ガイド64を有しており、ケーブル20は、経由点TPであるケーブル取り出し口65から取り出されてHMD200に接続される。
そして図4では、エアバネ部50〜53が伸縮することで、ベース部41の上下方向の移動や、ベース部41のZ軸回りでのローリングやX軸回りでのピッチングの回転移動が行われ、これに応じてユーザPLのプレイ位置PPLも変化する。即ち、ユーザPLが立っているベース部41が、上下方向に移動したり、ローリングやピッチングの回転移動を行うと、ユーザPLの立ち位置であるプレイ位置PPLも変化する。そして前述したように、可動筐体40は、仮想空間の仮想ユーザや搭乗移動体などの移動体の進行方向の変化又は移動体が移動するコースの状況に応じて、ユーザPLのプレイ位置PPLを変化させることになる。
図5は、図4のスキーシミュレータにおいてHMD200に表示されるゲーム画像(シミュレーション画像)の例である。このゲーム画像は、いわゆる一人称視点での画像である。図5のゲーム画像では、ユーザに対応する仮想ユーザ(仮想スキーヤー)が走行するスキーコースの画像や、コースの周りの風景の画像が、リアルに表示されている。これらの画像はいわゆる立体視画像としてHMD200によりユーザに表示される。またこのゲーム画像では、仮想ユーザの体の一部やスキーやストックについても、適宜、表示される。例えば図4においてユーザが視線を下に向けると、図2(A)〜図3(B)等で説明した手法により視線方向の変化が検出され、図5のように仮想ユーザの体の一部(手、足等)や、スキーやストックがゲーム画像の表示されるようになる。こうすることで、仮想空間において、あたかも現実のスキーヤーとしてスキー走行しているかのような仮想現実感を、ユーザに与えることが可能になる。
図6は、シミュレーションシステムの一例であるロボットシミュレータ(ロボットゲーム装置)の構成例を示す斜視図である。図6に示す可動筐体40では、底部450(ベース部)の上にカバー部451が設けられ、その上に、ベース部452(台座部)が設けられる。このベース部452にはシート支持部464が設けられ、シート支持部464の上にシート462が取り付けられることで、ライド部460が構成されている。
またベース部452には、移動部470が設けられる。具体的には、ベース部452にはレール部454、455が設けられ、レール部454、455に沿った方向で移動可能になるように、移動部470が設けられる。
移動部470は支持部472を有し、支持部472の上端には上面部473(操作基台)が設けられる。そして上面部473には、操作レバー161、162や、センサ部を有するゲームコントローラ165が設けられている。ゲームコントローラ165が有するセンサ部は、位置及び方向の少なくとも一方を検出する。操作レバー161、162は、図1の操作部160を構成するものである。ユーザが操作レバー161、162を手で操作すると、それに連動して、仮想空間のロボットのコックピット内の仮想ユーザが、コックピットに設けられた操作レバーを操作する様子が表示されるようになる。
ユーザが、操作レバー161、162を前方側に倒すと、仮想空間のロボットが前方側に移動し、操作レバー161、162を後方側に倒すと、ロボットが後方側に移動する。ユーザが操作レバー161、162が右方向側、左方向側に倒すと、ロボットが右方向側、左方向側に移動する。また操作レバー161、162の一方を前方側に倒し、他方を後方側に倒すことで、ロボットの向く方向を変えることができる。
ゲームコントローラ165には、センサ部として用いられる少なくとも1つの受光素子が設けられる。そして図2(A)、図2(B)のトラッキング処理と同様の処理により、ゲームコントローラ165のセンサ部の検出機能(位置及び方向の少なくとも一方の検出機能)が実現される。この検出機能により、例えば可動筐体40の可動によるプレイ位置(ライド部460でのライド位置、着座位置)の変化を検出できるようになる。
移動部470の支持部472の下端には下面部474が設けられ、下面部474には、アクセルペダル163、ブレーキペダル164が設けられる。ユーザがアクセルペダル163を踏むと、仮想空間のロボットが加速して移動するダッシュ移動が行われる。ユーザがブレーキペダル164を踏むと、ロボットの移動が停止する。
可動筐体40のベース部452には、フレーム部430が設けられている。そしてフレーム部430のガイド部432が、処理装置からのケーブル20をガイドしている。例えば下方から上方へと向かう所定経路でケーブル20をガイドする。そして、ガイドされたケーブル20は、経由点TPを経由してHMD200に接続される。具体的には、ケーブル20は、経由点TPにおいて固定具433により固定されて、HMD200に接続される。
ライド部460のシート462の背面側には、不図示の2本の電動シリンダが設けられている。これらの電動シリンダのロッド部が伸縮することで、ベース部452の姿勢が変化する。例えばベース部452のピッチングやローリングなどの姿勢変化が実現される。例えば2本の電動シリンダのロッド部が共に伸びることで、前側へのベース部452のピッチングの姿勢変化が実現される。2本の電動シリンダのロッド部が共に縮むことで、後ろ側へのベース部452のピッチングの姿勢変化が実現される。2本の電動シリンダのロッド部の一方が伸び、他方が縮むことで、右側や左側へのベース部452のローリングの姿勢変化が実現される。これらのベース部452のピッチングやローリングの姿勢変化により、ユーザの体の向きをピッチングさせたり、ローリングさせることが可能になる。
図7に、図6のロボットシミュレータにおいてHMD200に表示されるゲーム画像の例を示す。本実施形態で、ユーザに対応する仮想ユーザが、仮想空間内のロボットのコックピットに搭乗して、敵ロボット等と対戦するロボットゲームのゲーム画像が生成される。ロボットの出撃時には、仮想世界において、コックピットのフードが閉じられる。そしてユーザ(仮想ユーザ)は、狭い空間のコックピット内でロボットを操縦して、敵ロボット等と対戦するゲームを楽しむことになる。
図7のゲーム画像に示すように、仮想世界のロボットの有視界式のコックピットのフードFDには、ウィンドウWDが設けられており、ユーザは、このウィンドウWDを介して外界の様子を見ることができる。図7では、ウィンドウWD内には、敵ロボットERBや照準SGや戦闘フィールドのマップが表示されている。またユーザが操作するロボットの武器であるミサイルのランチャーLAA、キャノン砲CNBや、これらの武器の残り弾数を示す弾数アイコンSNA、SNBも表示されている。
照準SGは、HMD200を装着するユーザの視線(頭部、HMD)の動きに追従するように移動する。例えばユーザが右を向けば、ゲーム画像上の照準SGは右に移動し、左を向けば照準SGは左に移動する。ユーザは、照準SGの位置を敵ロボットERBの位置に移動し、ランチャーLAAやキャノン砲CNBにより攻撃することで、対戦ゲームを楽しむ。
なお本実施形態のシミュレーションシステムを実現する装置は、図4、図6に示すような装置には限定されない。例えば本実施形態のシミュレーションシステムは、表示部としてHMDが用いられる家庭用ゲーム装置、業務用ゲーム装置、パーソナルコンピュータ(PC)、携帯型情報端末や、多数のユーザが参加する大型アトラクション装置などの種々の装置に適用できる。また本実施形態のシミュレーションシステムは、ネットワークを介して複数の端末装置(ゲーム装置、PC、携帯型情報端末等)が通信接続されるサーバシステムにより実現してもよい。この場合に本実施形態の各処理は、シミュレーションシステムと端末装置との分散処理により実現してもよい。
4.本実施形態の手法
次に本実施形態の手法について詳細に説明する。なお、以下では本実施形態の手法を図4のスキーシミュレータのスキーゲームに適用した場合を主に例にとり説明する。但し、本実施形態はこれに限定されず、種々のゲーム(RPG、ロボット対戦ゲーム、アクションゲーム、対戦ゲーム、競争ゲーム、スポーツゲーム、ホラー体験ゲーム、電車や飛行機等の乗り物のシミュレーションゲーム、パズルゲーム、コミュニケーションゲーム、或いは音楽ゲーム等)に適用でき、ゲーム以外にも適用可能である。また以下では、移動体が、仮想ユーザであるキャラクタである場合を例にとり説明するが、移動体は、仮想ユーザが搭乗するロボット、車、飛行機又は電車等の搭乗移動体であってもよい。
4.1 仮想カメラの姿勢変化の無効処理
図8は、仮想空間においてスキーヤーであるキャラクタCH(広義には移動体)がコースCS上を滑って走行している様子を示す図である。仮想空間の仮想ユーザに対応するキャラクタCHの視点の位置に、仮想カメラVCが設定されており、この仮想カメラVCから見える画像が、図5に示すようにHMD200に表示(立体視表示)される。これにより、一人称視点での画像をHMD200に表示できるようになり、あたかも仮想空間でのスキーヤーになってコースCSを走行しているかのような仮想現実感をユーザに与えることができる。
図8において水平面HSは、仮想空間のワールド座標系での水平面(XZ平面)である。平坦なコースCSでは、図8のA1に示すようにキャラクタCHの進行方向DTは、水平面HSに平行(略平行。以下、同様)な方向になっている。そして仮想カメラVCの視線方向CVLも水平面HSに平行(略平行)な方向になっている。なお仮想カメラVCの視点位置CVPは、例えばキャラクタCHの視点の位置(例えば目の位置)に設定され、これにより一人称視点が実現される。
一方、図8のA2、A3では、キャラクタCHは下り坂のコースCSを走行しており、キャラクタCHの進行方向DTは、水平面HSに対して俯角をなす方向になっている。そしてキャラクタCHは、下り坂のコースCSの面に対して垂直(略垂直。以下、同様)の立ち姿勢になっているため、仮想カメラVCの視線方向CVLも、水平面HSに対して俯角をなす方向になっている。そして、その後、A4ではキャラクタCHは平坦なコースCSを走行するため、進行方向DT及び仮想カメラVCの視線方向CVLは、水平面HSに対して平行な方向へと戻っている。
このように図8では、コースCSのキャラクタCHの走行により、進行方向DTがA1〜A4に示すように変化すると、それに伴い仮想カメラVCの視線方向CVLも変化する。一人称視点の画像をHMDに表示する場合には、図8に示すように、進行方向DTの変化に連動して仮想カメラVCの視線方向CVLを変化させるのが一般的である。そして、このように仮想カメラVCの視線方向CVLが変化すると、図5のHMDの表示画像も、視線方向CVLの変化に応じて大きく変化してしまう。例えば、図8のA1、A2、A3では、水平面HSに平行な視線方向CVLでの表示画像から、水平面HSに対して俯角をなす視線方向CVLでの表示画像に変化し、その後、A4では、水平面HSに平行な視線方向CVLでの表示画像に戻る。即ち、キャラクタCHの進行方向DTの変化に伴い、仮想カメラVCの視線方向CVLが大きく変化し、HMDの表示画像も大きく揺れてしまう。また、例えばコースCSに細かい凹凸があるような場合には、その凹凸に応じて表示画像が激しく揺れてしまう。
そして、このように表示画像が揺れると、いわゆるユーザの3D酔いを引き起こしてしまう。ここで3D酔いとは、例えば立体感のある動きの激しい映像を見続けることで、めまいなどの乗り物酔いのような症状を起こすことである。
例えば現実世界のスキーヤーは、図8のようなコースの起伏があった場合に、進行方向の変化(加速度の変化、重力方向の変化、遠心力の変化)を三半規管などにより検知して、例えば視線方向を、遠くの方を見るような方向に向ける。これにより、目に見える画像も変化しなくなり、酔いが防止される。
ところが、仮想空間の世界をHMDを介して見るようなVRのシステムでは、図8のように進行方向DTの変化に伴い、仮想カメラVCの視線方向CVLが変化してしまうと、ユーザの意思や感覚とは無関係に、HMDの表示画像が揺れてしまう。例えば現実世界のユーザは下りや上りのコースを実際には走行していないのに、HMDの表示画像だけが、仮想空間のコースの下りや上りの傾斜に応じて変化してしまう。従って、ユーザの意思や感覚とのズレが生じて、3D酔いを引き起こしてしまう。
この場合に図4の可動筐体40では、仮想空間でのコースの下りや上りの傾斜に応じて、ベース部41をX軸回りにピッチングさせており、これにより、仮想空間のコースの下りや上りの傾斜を、ある程度、ユーザに体感させることができるようになっている。しかしながら、例えば仮想空間でのコースの傾斜が20度〜40度というような傾斜である場合に、図4のベース部41のピッチングによる傾斜は例えば10度以下程度となる。このため、仮想世界のコースの傾斜とは大きな相違があり、図4のベース部41をピッチングさせても、表示画像の揺れを原因とする3D酔いの発生を十分には防止できない。
このように図8の仮想カメラVCの制御手法では、ユーザの意思や感覚とは無関係に、仮想空間のコースの形状に応じて、ユーザの頭部を、あたかも強制的に下に向けたり上に向けたりするような画像がHMDに表示されてしまうため、3D酔いを引き起こしてしまう。
そこで本実施形態では、ユーザの視線方向に対応する仮想カメラVCの視線方向CVLが、ユーザが自身の頭を自分で動かさない限り、例えば常に水平面HSに対して平行(略平行)になるようにする。即ち、仮想空間のコースCSに傾斜(起伏)があった場合にも、図8のように仮想カメラVCの視線方向CVLがコースCSの傾斜に沿うように変化することはなく、視線方向CVLが水平面HSに平行になるように、仮想カメラVCを制御する。この時に、仮想カメラVCの視線方向CVLは常に水平面HSに平行になるということではなく、ユーザが自身の意思や感覚で視線方向を下方向や上方向に向けた場合には、仮想カメラVCの視線方向CVLもそれに応じて下方向や上方向を向くようになる。こうすることで、ユーザの意思や反応に基づく視線方向の変化を許容しながら、ユーザの意思や感覚とは無関係に視線方向が変化してしまう事態を抑制できる。従って、ユーザの仮想現実感の向上と、HMDの表示画像の揺れを原因とする3D酔いの防止とを、両立して実現できるようになる。
より具体的には本実施形態では、ユーザの視点情報のトラッキング情報を取得し、取得されたトラッキング情報に基づいて仮想カメラVCの位置、姿勢を変化させる。ここで仮想カメラVCの位置は視点位置CVPに対応し、仮想カメラVCの姿勢は視線方向CVLに対応する。
例えば図9(A)〜図9(C)のように現実世界のユーザPLが視線方向VL(頭部)を下方向や上方向に向けると、当該ユーザPLの視点情報のトラッキング情報(視点トラッキング情報)が例えばHMD200のトラッキング処理により取得される。そして取得されたトラッキング情報(ユーザの視点位置、視線方向の特定情報)に基づいて、仮想カメラVCの視点位置CVP、視線方向CVLを設定することで、図9(A)〜図9(C)のように仮想カメラVCの位置、姿勢を変化させる。例えば図9(B)のようにユーザPLの視線方向VLが下方向を向けば、仮想カメラVCの視線方向CVLも下方向を向く。図9(C)のようにユーザPLの視線方向VLが上方向を向けば、仮想カメラVCの視線方向CVLも上方向を向く。このようにすることで、現実世界のユーザPLが視点位置VPや視線方向VLを変化させると、それに応じて仮想カメラVCの視点位置CVP、視線方向CVLも変化するようになる。従って、仮想カメラVCがユーザPLの実際の一人称視点のように振る舞うため、仮想現実感を向上できる。
図10は、トラッキング情報に基づいて仮想カメラの位置、姿勢を変化させる処理の具体例を説明するフローチャートである。図3では、HMD200のトラッキング処理により、トラッキング情報として、ユーザの初期視点情報からの視点情報の変化情報を取得している。
まず、基準ポーズをとることをユーザに指示する(ステップS1)。例えば図4において可動筐体40にライドしているユーザに対して、HMD200の表示画像により、基準ポーズ(基準となる立ち姿勢)をとることを指示する。そしてHMD200のトラッキング処理により、ユーザの初期視点位置、初期視線方向を検出し、記憶部(HMDやシミュレーションシステムの記憶部)に保存する(ステップS2)。例えばステップS1で基準ポーズをとった時のユーザの視点位置、視線方向が、初期視点位置、初期視線方向として検出されて保存される。そして、この初期視点位置、初期視線方向に基づいて、仮想カメラの初期視点位置、初期視線方向が設定される。
次に、ゲームが開始すると(ステップS3)、今度は、ステップS2で保存された初期視点位置、初期視線方向からの変化情報が、トラッキング情報として取得される。即ち、ユーザの視点位置、視線方向の変化情報が、トラッキング情報として取得される。例えば視点位置の変化情報は、視点位置の座標の変化値であり、視線方向の変化情報は、視線方向を表す回転角度(回転軸回りでの回転角度)の変化値である。例えば初期視点位置の座標を(x0、y0、z0)とし、視点位置の座標の変化値を(Δx、Δy、Δz)とする。また初期視線方向を表す回転角度を(θx0、θy0、θz0)とし、視線方向を表す回転角度の変化値を(Δθx、Δθy、Δθz)とする。すると、現在の視点位置は(x、y、z)=(x0+Δx、y0+Δy、z0+Δz)と表され、現在の視線方向の回転角度は(θx、θy、θz)=(θx0+Δθx、θy0+Δθy、θz0+Δθz)と表すことができる。
次にトラッキング情報に基づいて、仮想カメラの視点位置、視線方向を設定して、仮想カメラの位置、姿勢を変化させる(ステップS5)。これらの処理は、ゲームが終了するまで(ステップS6)、行われる。この場合に、仮想カメラの視点位置、視線方向の設定は、仮想カメラの初期視点位置の座標、初期視線方向を表す回転角度に対して、上述の(Δx、Δy、Δz)、(Δθx、Δθy、Δθz)を加算する処理などにより実現できる。
図10で説明した手法によれば、図4において可動筐体40にライドするユーザの身長(体格)の大小に依存せずに、キャラクタの視点位置に仮想カメラが設定されるようになる。従って、例えばユーザの身長に応じて異なるモデルのキャラクタを用意する必要がなくなるため、データ量の削減等を図れる。例えば身長が高いユーザと身長が低いユーザの両方に対して、同じ形状のモデルのキャラクタで、当該ユーザの仮想ユーザを実現できるようになる。なお、ユーザの身長(体格)に応じて異なるモデルのキャラクタを用意する手法を採用することも可能である。
以上のように本実施形態では、トラッキング処理により取得されたトラッキング情報に基づいて、図9(A)〜図10で説明したように仮想カメラVCの位置、姿勢を変化させている。こうすることで、現実世界のユーザが視点位置や視線方向を変化させると、それに連動して仮想空間での仮想カメラVCの視点位置、視線方向も変化するため、ユーザの仮想現実感を向上できる。
その一方で本実施形態では、図8のようにキャラクタCH(移動体)の進行方向DTが変化した場合にも、仮想カメラVCのピッチング及びローリングの少なくとも一方の姿勢変化については無効(或いは制限)になるように、仮想カメラVCを設定する。
例えば図11では、下り坂のコースCSを走行することで、B1、B2、B3、B4に示すようにキャラクタCHの進行方向DTが変化している。この場合にも図11では、仮想カメラVCのピッチングの姿勢変化(ピッチングに対応する回転軸の回りでの回転運動)は行われず、例えば仮想カメラVCの視線方向CVLは、水平面HSに平行な方向に維持される。即ち図8では、仮想カメラVCの視線方向CVLが、コースCSの状態(傾斜、起伏、形状等)に応じて変化しており、仮想カメラVCのピッチングの姿勢変化が行われていた。これに対して図11では、仮想カメラVCの視線方向CVLは、コースCSの状態に依存せずに、仮想カメラVCのピッチングの姿勢変化が行われない。但し、図11において、仮想カメラVCの視線方向CVLは、常に水平面HSに平行というわけではなく、図9(A)〜図10で説明したように、ユーザが視線方向を上方向や下方向に向けると、それに応じて仮想カメラVCの視線方向CVLも変化する。
また本実施形態では、キャラクタCHが右方向や左方向に曲がるような進行方向の変化により、ローリングが生じるような状況になった場合にも、図12に示すように、仮想カメラVCのローリングの姿勢変化は行われない。即ち、ローリングの回転軸の回りで回転しないように仮想カメラVCが設定される。このようにすることで、図5のHMDの表示画像において、ユーザが頭を左右に傾けない限り、水平線の方向が変化しないようになり、3D酔いを抑制できる。
なお、キャラクタCHが右方向や左方向に曲がるような進行方向の変化があった場合に、例えば仮想カメラVCのヨーイングの姿勢変化については行われるようになっている。例えばキャラクタCHが右方向に曲がった場合には、仮想カメラVCの視線方向CVLが右方向を向き、キャラクタCHが左方向に曲がった場合には、仮想カメラVCの視線方向CVLが左方向を向くように、ヨーイングの姿勢変化が行われる。こうすることで、ユーザは、仮想ユーザであるキャラクタCHの進行方向において見えるべき画像を、仮想カメラVCを介して見ることができるようになり、図5のHMDの表示画像として適切な画像を表示できるようになる。
例えば、仮想カメラVCの長軸(光軸)に沿った軸をZV軸とし、ZV軸に直交し、且つ、ワールド座標系の鉛直方向の軸に平行な軸をYV軸とし、ZV軸及びYV軸に直交する軸をXV軸とする。この場合に、仮想カメラVCのピッチングは、例えばXV軸回りの回転運動である。仮想カメラVCのローリングは、例えばZV軸回りの回転運動である。またヨーイングは、例えばYV軸回りの回転運動である。図11では、XV軸回りの回転運動である仮想カメラVCのピッチングが行われず、図12では、ZV軸回りの回転運動である仮想カメラVCのローリングが行われないように、仮想カメラVCが設定されている。一方、YV軸回りの回転運動である仮想カメラVCのヨーイングについては許容される。
なお図11、図12では、進行方向の変化による仮想カメラVCのピッチングやローリングの姿勢変化を無効にする場合について説明したが、当該姿勢変化を制限(抑制)するような仮想カメラVCの制御を行ってもよい。例えば図8のようにキャラクタCHの進行方向DTに平行になるように仮想カメラVCの視線方向CVLが変化した場合における、仮想カメラVCのピッチ角の変化をαとする。この場合に図11では、仮想カメラVCのピッチ角の変化はΔθp=0となっているが、Δθp<αというように、Δθpが十分に小さくなるように、仮想カメラVCのピッチングの姿勢変化を制限してもよい。また図12のコーナリングによるローリングにおいて、鉛直方向の軸に対するキャラクタCHの体軸(長辺方向に沿った軸。縦軸)の角度であるローリング角の変化をβとする。この場合に図12では、仮想カメラVCのロール角の変化はΔθr=0となっているが、Δθr<βというように、Δθrが十分に小さくなるように仮想カメラVCのローリングの姿勢変化を制限してもよい。
以上のように本実施形態によれば、キャラクタCH(移動体)の進行方向DTの変化により、ピッチングやローリングが発生するような状況になった場合にも、仮想カメラVCのピッチ角やロール角は変化しないようになる(或いはピッチ角やロール角の変化が制限される)。このため、HMDの表示画像が大きく揺れたり、激しく揺れるような事態が防止され、3D酔いの発生を抑制できる。この場合に図9(A)〜図9(C)に示すように、ユーザが頭部を動かすなどして視点位置VPや視線方向VLを変化させた場合には、それに応じて仮想カメラVCの姿勢が変化する。これにより、あたかも本当のスキーヤーになってコースを滑っているような仮想現実感をユーザに与えることができる。従って、本実施形態によれば、3D酔い等の不具合の発生の防止と、仮想現実感の向上を両立して実現できるシミュレーションシステムの提供が可能になる。
例えば本実施形態の比較例の手法として、仮想カメラの視線方向を、常に水平面に平行になるように設定する手法が考えられる。この比較例の手法は、通常の三人称視点の疑似三次元画像を生成するシステムには適している。しかしながら、この比較例の手法では、ユーザの意思や反応に依らずに、常に仮想カメラの視線方向を水平方向に向けているため、HMDを用いるようなシステムには不適である。
これに対して本実施形態の手法では、ユーザの意思や無意識の反応で、頭部を動かすなどして、現実世界でのユーザの視点位置や視線方向が変化すると、それに連動して仮想世界での仮想カメラの視点位置や視線方向が変化する(図9(A)〜図9(C))。従って、ユーザの意思や反応に基づく視点の変化が、仮想カメラの視点の変化として反映するようになるため、HMDを用いるシステムに最適な仮想カメラの制御を実現でき、ユーザの仮想現実感の向上等を図れる。そして本実施形態では、このようなユーザの意思や反応に基づく視点の変化を反映させながら、移動体の進行方向の変化による影響については、仮想カメラのピッチングやローリングの姿勢変化に対して反映させない。従って、仮想現実感の向上を図りながら、3D酔い等の発生を防止できるシミュレーションシステムの提供が可能になる。
4.2 具体例
仮想カメラのピッチングやローリングの姿勢変化の無効処理(制限処理)の実現手法としては、種々の手法を想定できる。例えば図13は第1の実現手法を説明する図である。
図13では、C1〜C4に示すようにキャラクタCH(移動体)の進行方向DTが変化した場合にも、キャラクタCHのピッチング及びローリングの少なくとも一方の姿勢変化が無効(又は制限)になるように、キャラクタCHを移動させる処理が行われている。そして姿勢変化が無効(又は制限)にされたキャラクタCHの視点の位置に、仮想カメラVCが設定されている。別の言い方をすれば、ユーザに対応するキャラクタCH(仮想ユーザ)が仮想空間において移動する際に、その視線方向を、キャラクタCHと基準座標(足元位置LP)は共通で、体軸(Y軸)がワールド座標系の水平面HS(基準面)に垂直となる基本モデル(基本姿勢)の視点座標系に変換して演算することによって、3D酔いの発生を防止している。
例えば図8では、コースCSの状態(傾斜)に応じて、キャラクタCHのピッチングの姿勢が変化している。例えば下り坂のコースCSでは、キャラクタCHが前側にピッチングする姿勢変化が行われる。即ち水平方向に対して俯角となるピッチ角の姿勢変化が行われる。上り坂のコースCSでは、キャラクタCHが後ろ側にピッチングする姿勢変化が行われる。即ち水平方向に対して仰角となるピッチ角の姿勢変化が行われる。
これに対して図13では、C1〜C4に示すようにキャラクタCHの進行方向DTが変化した場合にも、キャラクタCHはピッチングの姿勢変化を行わない。例えばキャラクタCHの体軸(頭部と足元を結ぶ軸)が、ワールド座標系の水平面HSに対して例えば直角(略直角)になるように、キャラクタCHの姿勢が設定(固定)される。例えばキャラクタCHの足元の位置LP(基準座標)に対して、基本姿勢(直立姿勢)のキャラクタCHが配置される。そしてキャラクタCHの進行方向DTが変化した場合にも、キャラクタCHは、基本姿勢(直立姿勢)のままコースCSを走行する。例えばコース情報として、各ポイントでのコースの高さ情報が設定されている場合に、キャラクタCHを移動させる際には、このコース情報の高さ情報だけを参照する。そしてキャラクタCHの姿勢は変化させずに、例えば基準位置である足元位置LPの高さだけを変化させる。図13では、下り坂のコースCSであるため、キャラクタCHがコースCSを走行するにつれて、キャラクタCH(足元位置LP)の高さだけが変化し、キャラクタCHの姿勢は変化しない。
同様に、右方向や左方向へのコーナリングにより、図12で説明したように姿勢をローリングさせるような状況が発生した場合にも、キャラクタCHのローリングの姿勢変化は行われない。即ち、コーナリングによる進行方向DTの変化があった場合にも、キャラクタCHは、図13のような基本姿勢(立ち姿勢)のままで、図12のようなローリングの姿勢変化は行われずに、コースCS上を走行するようになる。
そして、このような基本姿勢のキャラクタCHの視点(視点座標系)の位置に仮想カメラVCの視点位置CVPが設定される。また仮想カメラVCの視線方向CVLは、水平面HSに平行な方向を向いている。例えばキャラクタCHの姿勢は基本姿勢のままで変化しないため、足元の位置LPに対するキャラクタCHの視点位置は固定の位置となっており、この固定の位置に仮想カメラVCの視点位置CVPが設定される。またキャラクタCHの基本姿勢は直立姿勢であり、仮想カメラVCの視線方向CVLはキャラクタCHの体軸と直交(略直交)する方向に向いている。
なお、実際には、スキーヤーであるキャラクタCHは少しだけ前傾した基本姿勢となっている。このため、キャラクタCHの体軸と水平面HSのなす角度は、90度よりも少しだけ小さくなり、キャラクタCHの体軸と仮想カメラVCの視線方向CVLのなす角度は、90度よりも少しだけ大きくなる。
このように図13では、進行方向DTが変化した場合にも、キャラクタCHがピッチングやローリングの姿勢変化を行わずに、基本姿勢(直立姿勢、前傾姿勢)のままでコースCS上を走行する。そして、このような基本姿勢のままのキャラクタCHの視点位置に仮想カメラVCを設定することで、結果的に、図11に示すような仮想カメラVCの姿勢制御を実現できる。即ち、進行方向DTが変化した場合にも、仮想カメラVCのピッチングやローリングが行われないような姿勢制御を実現できる。
図14は、仮想世界の座標系であるワールド座標系(XW、YW、ZW)と、キャラクタCHのローカルな座標系であるローカル座標系(XL、YL、ZL)と、仮想カメラの座標系である視点座標系(XV、YV、ZV)の関係を示す図である。本実施形態では、図14のワールド座標系(XW、YW、ZW)において、キャラクタCH(移動体)のローカル座標系(XL、YL、ZL)の基準位置(原点位置。足元位置)を移動させる処理が行われる。そしてワールド座標系に対するローカル座標系のピッチング及びローリングの少なくとも一方の回転移動が無効又は制限されるように、ローカル座標系が設定される。そしてローカル座標系におけるキャラクタCHの視点の位置に、仮想カメラの視点座標系が設定される。例えば仮想カメラから見える画像を生成する描画処理において、図14に示すような各座標系の設定で、座標変換処理(ジオメトリ処理)が行われる。このようにすることで図13に示す手法を実現することが可能になる。
また図13のように基本姿勢のままでキャラクタCHをコースCS上で走行させた場合に、例えばコースCSに対して接地するスキー板の画像などについて、不自然な画像が生成されてしまうおそれがある。図5の一人称視点の画像では、例えばユーザが顔を下に向けた場合などにおいて、スキー板の画像も表示されるため、このようにスキー板が不自然な画像になってしまう事態は望ましくない。
そこで本実施形態では、仮想空間のコースCSの状態(形状等)の変化によりキャラクタCH(移動体)の進行方向が変化した場合にも、ピッチングやローリングなどの姿勢変化が無効又(は制限)されるように、コースCSにおいてキャラクタCHを移動させる処理を行うと共に、キャラクタCHに付随する所与のオブジェクトについては、コースCSの状態(傾斜、起伏、凹凸等)に応じて姿勢を変化させる。
例えば図15のD1では、基本姿勢をとるキャラクタCHの体軸に対してその長辺が直交するように、スキー板SKのオブジェクトが付随している。このためスキー板SKが、下り坂のコースCSに適正に接地しなくなり、不自然な画像になってしまう。
そこで本実施形態では、図15のD2に示すように、キャラクタCHに付随するスキー板SKのオブジェクトについては、コースCSの状態に応じて姿勢を変化させる。例えばコースCSの面(接地面)に平行になるように、スキー板SKのオブジェクトの姿勢を変化させる。例えばコース情報からコースの傾斜の角度情報を取得し、コースの傾斜と平行になるように、キャラクタCHの足元位置LPにスキー板SKのオブジェクトを配置する。こうすることで、スキー板SKが常にコースCSに適正に接地する画像が表示されるようになり、ユーザに不自然感を与えてしまう事態を防止できる。
なお、コースの状態に応じて姿勢を変化させるオブジェクトは、図15のようなスキー板には限定されず、種々のオブジェクトを想定できる。例えばキャラクタの足や手などの部位や、ロボットなどの移動体におけるコースとの接地部であってもよい。例えば仮想空間のコースなどに接地する部分について、図14のスキー板と同様に、コースの状態に応じてその姿勢を変化させる。なお、コースは車ゲームにおけるコースのように、そのエリアが明確に区画されている必要は無く、例えば仮想空間のマップにおいて、移動体が移動する領域として予定されているようなコース(例えばRPGのコース)であれば十分である。
また本実施形態では、対戦用画像、観賞用画像又はデモ画像については、ピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されていない第2の移動体が表示される画像を生成してもよい。
例えば図16のE1では、図13で説明したように、キャラクタCHの進行方向DTが変化した場合にも、キャラクタCHのピッチングやローリングの姿勢変化が行われないように(或いは姿勢変化が制限されるように)、キャラクタCHを移動させている。そしてユーザのHMDには、図16のE1に示すようなキャラクタCHを用いた表示画像を生成して表示する。こうすることで、HMDの表示画像に大きな揺れや激しい揺れが生じるのが防止され、3D酔いの発生を防止できる。
一方、図16のE2では、図8と同様に、進行方向DTの変化に応じて、ピッチングやローリングの姿勢変化が行われるキャラクタCH2(広義には第2の移動体)を用いて画像が生成される。例えばキャラクタCH2では、下り坂のコースCSであれば前側にピッチングする姿勢変化が行われ、上り坂のコースCSであれば後ろ側にピッチングする姿勢変化が行われる。またキャラクタCH2では、右方向や左方向に曲がる場合には、図12に示すようにローリングする姿勢変化が行われる。そして、このようなキャラクタCH2を用いて、対戦用画像、観賞用画像又はデモ画像が生成される。例えば対戦用画像は、ユーザの対戦相手となる相手ユーザのHMD等に表示される画像である。観賞用画像は、例えばギャラリー等が、ユーザのキャラクタを用いたゲーム(対戦等)の様子を観賞するために表示される画像である。デモ画像は、ゲーム開始前や開始後におけるデモンストレーションモードにおいて表示される画像であり、例えばユーザの過去のゲームプレイの様子を示す再生画像である。
このような対戦用画像、観賞用画像又はデモ画像において、図16のE1に示すように基本姿勢のままのキャラクタCHを用いて画像が生成されてしまうと、相手ユーザやギャラリー等が不自然さを感じる画像になってしまう。
この点、図16の手法によれば、HMDの表示画像については、図16のE1に示すような基本姿勢のままで走行するキャラクタCHを用いて生成されるため、表示画像の揺れが防止され、3D酔いの発生を防止できる。一方、対戦用画像、観賞用画像又はデモ画像については、図16のE2に示すように、進行方向DTに応じて適正に姿勢が変化するキャラクタCH2を用いて生成されるため、不自然さを感じさせない適正な画像を生成できる。従って、3D酔いの発生の防止と、適正な対戦用画像、観賞用画像又はデモ画像の生成とを両立して実現できるようになる。
また本実施形態では、所与の条件が成立したかに応じて、図13のように移動体のピッチング及びローリングの少なくとも一方の姿勢変化を無効又は制限する処理(モード)をオン又はオフにする手法を採用してもよい。図17(A)は、当該手法を説明するフローチャートである。まず、移動体(キャラクタ、搭乗移動体等)のピッチング、ローリングの姿勢変化を無効(制限)にするか否かについての所与の条件が成立したか否かを判断する(ステップS11)。そして、所与の条件が成立した場合には、移動体のピッチング、ローリングの姿勢変化を無効(制限)にするモードをオン又はオフにする(ステップS12)。この場合の所与の条件は、当該モードをオンにする条件であってもよいし、オフにする条件であってもよい。また、移動体のピッチング、ローリングの一方のみをオン又はオフにできるようにしてもよい。
例えば図17(B)では、移動体である車CAが、急な坂道のコースCSを上っている。この場合に車CAのピッチングの姿勢変化が無効に設定されてしまうと、例えば車CAのボンネットがコースCSに潜り込んでしまうような不自然な画像が生成されてしまうおそれがある。従って、このような状況の場合には、所与の条件が成立したと判断して、車CAのピッチングの姿勢変化を無効にするモードをオフに設定する。こうすることで、車CAの姿勢がコースCSの傾斜に沿うようになり、図17(B)のような不自然な画像が生成されてしまう事態を防止できる。
図17(A)のステップS11の所与の条件としては種々の条件を想定できる。例えばコース(移動面)が下りである場合、或いはコースが水平であっても凹凸等の特殊形状がある場合に、所与の条件が成立したとして、移動体のピッチングやローリングの姿勢変化を無効にする無効モード(或いは制限モード。以下、同様)をオンにしてもよい。そして例えば図17(B)のようにコースが上り坂であり、その傾斜角度が所定角度以上になった場合には、当該無効モードをオフにする。或いは、コース(移動面)が水平又は水平に近い状態である場合には、当該無効モードをオフしてもよい。即ち、仮想空間において移動体が移動するコースの状況に応じて、移動体のピッチング及びローリングの少なくとも一方の姿勢変化を無効又は制限する処理をオン又はオフに設定する。このようにすることで、3D酔いの防止のために当該無効モードが必要な状況において、当該無効モードをオンにし、当該無効モードが不要な状況においては、当該無効モードをオフに設定できるようになる。
なお、後述の図21、図22のように、オプション設定画面等でのユーザの設定情報やユーザのプレイ履歴情報に基づいて、当該無効モードをオンにしたり、オフにするようにしてもよい。このようにすれば、ユーザの意思やユーザの過去のプレイ状況に応じて、当該無効モードをオン又はオフに設定できるようになる。
図18は、仮想カメラのピッチングやローリングの姿勢変化の無効処理(制限処理)の第2の実現手法を説明する図である。
図18のF1〜F4では、キャラクタCH(移動体)の進行方向DTの変化に応じてキャラクタCHの姿勢が変化するようにキャラクタCHを移動させる処理が行われている。例えば下り坂のコースCSであれば、キャラクタCHが前側にピッチングする姿勢変化が行われ、上り坂のコースCSであれば、後ろ側にピッチングする姿勢変化が行われる。また、右方向や左方向に曲がる場合には、ローリングする姿勢変化が行われる。
そして図18のF1〜F4では、このように進行方向DTの変化に応じてキャラクタCHの姿勢が変化した場合にも、仮想カメラVCのピッチングやローリングの姿勢変化については無効(制限)になるように、仮想カメラVCを設定される。
例えば図18のF2、F3では、下り坂のコースCSであるため進行方向DTは下方向を向いており、キャラクタCHについても前側にピッチングする姿勢変化が行われている。しかしながら、仮想カメラVCの視線方向CVLは、水平方向を向いており、進行方向DTとは異なる方向を向いている。
このようにすれば、コースCSの状態等に応じてキャラクタCHの進行方向が変化した場合にも、ユーザが頭部等を動かさない限り、仮想カメラVCの視線方向CVLは一定の方向(水平方向)を向くようになる。従って、HMDの表示画像が大きく揺れたり、激しく揺れる事態を防止でき、3D酔いの発生を防止できる。そして図13の第1の実現手法とは異なり、図18の第2の実現手法では、キャラクタCHの姿勢については、進行方向DTに応じて変化する。例えば下り坂のコースCSであれば、下方向を向く姿勢になり、上り坂のコースCSであれば、上方向を向く姿勢になる。またコーナリング時には、図12のように体軸を右又は左に傾けたローリングの姿勢になる。従って、図16のE2で説明した対戦用画像、観賞用画像又はデモ画像においても、相手ユーザやギャラリー等が不自然さを感じない画像を表示できるようになる。従って、HMDの表示画像の揺れによる3D酔いの発生の防止と、適切な対戦用画像、観賞用画像又はデモ画像の生成とを両立して実現できるようになる。
なお図18の手法を行う場合に、仮想カメラVCの位置及び姿勢の少なくとも一方を基準にして、キャラクタCH(移動体)の姿勢を設定してもよい。
例えば図19(A)のように、キャラクタCHの進行方向DTが変化した場合にもピッチングやローリングの姿勢変化が行われないように仮想カメラVCの位置、姿勢(視点位置CVP、視線方向CVL)が設定されたとする。この場合に図19(B)に示すように、図19(A)のように設定された仮想カメラVCの位置や姿勢を基準にして、キャラクタCHの姿勢が設定される。例えば仮想カメラVCの位置がキャラクタCHの視点位置になり、キャラクタCHの足元位置LPがコースCSに接地するように、キャラクタCHの姿勢を設定する。また例えばスキー板SKのオブジェクトが、適正にコースCSの移動面に接地するように、キャラクタCHの姿勢(前傾姿勢)を設定する。
このようなキャラクタCHの姿勢の設定は、例えばモーション処理おける逆運動学処理などにより実現できる。例えばキャラクタCHのモーションデータ(スケルトンデータ)において、頭部の位置(視点位置)が、仮想カメラVCの位置に設定され、足の位置が、コースCSに接地する足元位置LPに設定されるように、各関節や各ボーンの位置を逆運動学処理により求める。この際にスキー板SKの方向(長辺方向)もコースCSの移動面の方向に沿うようにする。こうすることで、図18のように、進行方向DTが変化しても、仮想カメラVCについてはピッチングやローリングの姿勢変化が行われない一方で、キャラクタCHの姿勢については、コースCSの傾斜や形状等に応じて適切な姿勢になるような処理を実現できる。
また本実施形態では、図20に示すように、移動体(キャラクタ等)の進行方向の変化又は移動体が移動するコースの状況(状態)に応じて、図4、図6等で説明した可動筐体40がユーザのプレイ位置を変化させてもよい。或いは、移動体の進行方向の変化に応じた音又は移動体が移動するコースの状況に応じた出力音を生成してもよい。
例えば、仮想空間の移動体(キャラクタ等)の進行方向が、下り坂のコースで下方向を向いた場合には、現実空間のユーザの姿勢が前側にピッチングするように可動筐体40を制御する。図4を例にとれば、後ろ側のエアバネ部50、52を伸ばす一方で、前側のエアバネ部51、53を縮める。また例えば下り坂のコースを下っているようにユーザに感じさせる出力音(例えば風切り音)を出力する。また仮想空間の移動体の進行方向が、上り坂のコースで上方向を向いた場合には、現実空間のユーザの姿勢が後ろ側にピッチングするように可動筐体40を制御する。図4を例にとれば、後ろ側のエアバネ部50、52を縮める一方で、前側のエアバネ部51、53を伸ばす。また例えば上り坂のコースを上っているようにユーザに感じさせる出力音を出力する。
またコースが凹凸のあるガタガタ道である場合には、ユーザのプレイ位置を上下に揺らすような可動筐体40の制御を行う。図4を例にとれば、各エアバネ部50〜52を上下方向に細かく伸縮させる。またガタガタ道を表すような出力音を出力する。
このように可動筐体40や出力音を制御すれば、仮想空間での移動体の進行方向の変化やコースの状況を、可動筐体40や出力音を用いてユーザに感じさせることが可能になる。例えば進行方向の変化やコース状況による加速度等の変化を、可動筐体40によるプレイ位置の変化により体感させたり、出力音の変化により聴覚的に認識させることが可能になる。従って、現実世界でのユーザの体感や聴覚状態と、仮想世界での移動体やコースの状況とが、ある程度、一致するようになり、3D酔いの発生の抑制を図れる。例えば、このような可動筐体40によるプレイ位置の変化や出力音の変化が無い状態で、仮想空間での移動体の進行方向やコース状況が激しく変化すると、ユーザの体感や聴覚状態と仮想空間の状況とが一致しなくなる。このため3D酔いが発生する事態してしまうおそれがあるが、図20の本実施形態の手法によれば、このような事態の発生を防止できる。
また本実施形態では、ユーザによる設定情報又はユーザのプレイ履歴情報に基づいて、仮想カメラの姿勢変化(ピッチング、ローリング)の無効処理(又は制限処理)のオン又はオフを設定してもよい。
例えば図21は、ユーザがゲームの各種のオプションを設定するオプション設定画面の例である。このオプション設定画面において、ユーザは、仮想カメラのピッチング、ローリングの無効処理(無効設定)を、オン又はオフにする選択が可能になっている。このようにすれば、例えば3D酔いを起こしにくいユーザは、仮想カメラのピッチング、ローリングの無効処理をオフにすることで、よりリアルな仮想カメラの設定でのゲームを楽しめるようになる。一方、3D酔いを起こしやすいユーザは、当該無効処理をオンに設定することで、3D酔いの発生を効果的に防止できる。
また図22では、ユーザのプレイ履歴の情報に基づいて、仮想カメラのピッチング、ローリングの無効処理をオン又はオフに設定する。例えばユーザのプレイ履歴情報に基づいて、図21のオプション設定画面等において当該無効処理をオンにしている傾向が高いと判断されるユーザについては、当該無効処理を自動的にオンに設定する。一方、プレイ履歴情報に基づいて、オプション設定画面等において当該無効処理をオフにしている傾向が高いと判断されるユーザについては、当該無効処理を自動的にオフに設定する。或いは、プレイ履歴情報に基づいて、当該ゲームのプレイを頻繁に行っていると判断されるユーザについては、ゲームに慣れており、3D酔いを起こしにくいと判断して、当該無効処理をオフに設定してもよい。プレイ履歴の情報は、例えば図1の携帯型情報記憶媒体195(ICカード等)に記憶されており、携帯型情報記憶媒体195からプレイ履歴の情報に基づいて、当該無効処理のオン、オフの設定を行う。或いは外部のサーバからユーザのプレイ履歴の情報をダウンロードしてもよい。
なお、仮想カメラのピッチング、ローリングを制限する処理を行う場合に、その制限処理の度合いを、ユーザによる設定情報又はユーザのプレイ履歴情報に基づいて設定してもよい。例えば制限処理の度合いを、図21のオプション設定画面においてユーザが設定できるようにしたり、ユーザのプレイ履歴情報に基づいて、制限処理の度合いを強くしたり、弱くする。ここで制限処理の度合いは、例えば移動体の進行方向の変化に対する、仮想カメラのピッチ角やローリング角の変化の度合いを表すものである。例えば、初級のユーザやゲームに慣れていないユーザについては、移動体の進行方向の変化に対する仮想カメラのピッチ角やローリング角の変化の度合いを、より小さくする(或いはゼロにする)。一方、上級のユーザやゲームに慣れているユーザについては、移動体の進行方向の変化に対する、仮想カメラのピッチ角やローリング角の変化の度合いを、大きくする(或いは1にする)。こうすることで、ユーザに応じた最適な処理度合いの設定が可能になる。
4.3 処理例
次に本実施形態の処理例について図23のフローチャートを用いて説明する。
まず、ユーザの操作情報を取得する(ステップS21)。例えば図1の操作部160を用いて入力したユーザの操作情報を取得する。またユーザの視点情報のトラッキング情報を取得する(ステップS22)。例えば図2(A)〜図3(B)等で説明したトラッキング処理により得られたトラッキング情報を取得する。
次に、ユーザの操作情報、コース情報等に基づく、移動体の移動処理を実行する(ステップS23)。例えばユーザの操作情報に基づいて、コース情報で規定されるコース上で、キャラクタ等の移動体を移動させる処理を実行する。次に、移動体の移動情報(進行方向等)や、ステップS22で取得されたトラッキング情報等に基づいて、仮想カメラの位置(視点位置)、姿勢(視線方向)を変化させる処理を実行する(ステップS24)。例えば移動体の移動に追従するように仮想カメラの位置等を変化させる。例えば移動体であるキャラクタの視点位置に仮想カメラの位置を設定する。また図9(A)〜図9(C)で説明したように、トラッキング情報に基づいて、ユーザの視点位置や視線方向に応じて仮想カメラの位置や姿勢を変化させる処理を実行する。そして、この際に、図11〜図18等で説明したように、仮想カメラのピッチング、ローリングの姿勢変化を無効(制限)にする。次に、このようにして設定された仮想カメラから見える画像を生成して、HMDに表示する(ステップS25)。即ち、図5、図7に示すような画像を生成して、HMDに表示する。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(移動体、伸縮部等)と共に記載された用語(キャラクタ、エアバネ部等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またトラッキング情報の取得処理、移動体の移動処理、仮想カメラの制御処理(設定処理)、HMDの表示画像の表示処理、移動体の姿勢の制御処理等も、本実施形態で説明したものに限定されず、これらと均等な手法・処理・構成も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲーム装置、家庭用ゲーム装置、又は多数のユーザが参加する大型アトラクションシステム等の種々のシミュレーションシステムに適用できる。
CH キャラクタ(移動体)、DT 進行方向、CS コース、
VC 仮想カメラ、VP、CVP 視点位置、VL、CVL 視線方向、
LP 足元位置、HS 水平面、SK スキー板(付随オブジェクト)、
PL ユーザ、PPL プレイ位置、TP 経由点、CP ケーブル接続点、
20 ケーブル、40 可動筐体、41、42 ベース部、43 44 操作部材、
45、46 足台、50〜53 エアバネ部、60、62 ガイド部、
61、63 把持部、64 支持ガイド、65 ケーブル取り出し口、69 風洞部、
100 処理部、102 入力処理部、110 演算処理部、112 ゲーム処理部、
113 可動筐体処理部、114 移動体処理部、116 オブジェクト空間設定部、
118 仮想カメラ制御部、120 表示処理部、130 音処理部、
140 出力処理部、150 撮像部、151、152 カメラ、
160 操作部、161、162 操作レバー、163 アクセルペダル、
164 ブレーキペダル、165 ゲームコントローラ、
170 記憶部、172 空間情報記憶部、178 描画バッファ、
180 情報記憶媒体、192 音出力部、194 I/F部、
195 携帯型情報記憶媒体、196 通信部、
200 HMD(頭部装着型表示装置)、201〜203 受光素子、
210 センサ部、220 表示部、231〜236 発光素子、240 処理部、
260 ヘッドバンド、270 ヘッドホン、280、284 ステーション、
281、282、285、286 発光素子、
430、フレーム部、432 ガイド部、433 固定具、450 底部、
451 カバー部、452 ベース部、454、455 レール部、460 ライド部、
462 シート、464 シート支持部、470 移動部、472 支持部、
473 上面部、474 下面部

Claims (16)

  1. 頭部装着型表示装置を装着するユーザの視点情報のトラッキング情報を取得する入力処理部と、
    前記ユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、
    前記ユーザの一人称視点として設定される仮想カメラの制御を行う仮想カメラ制御部と、
    前記頭部装着型表示装置の表示画像として、前記仮想空間において前記仮想カメラから見える画像を生成する表示処理部と、
    を含み、
    前記仮想カメラ制御部は、
    前記トラッキング情報に基づいて前記仮想カメラの位置、姿勢を変化させる一方で、前記移動体の進行方向が変化した場合にも前記仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、前記仮想カメラを設定することを特徴とするシミュレーションシステム。
  2. 請求項1において、
    前記入力処理部は、
    前記頭部装着型表示装置のトラッキング処理により得られた前記トラッキング情報を取得し、
    前記トラッキング情報は、前記ユーザの初期視点情報からの視点情報の変化情報を含むことを特徴とするシミュレーションシステム。
  3. 請求項1又は2において、
    前記移動体処理部は、
    前記移動体の進行方向が変化した場合にも、前記移動体のピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されるように、前記移動体を移動させる処理を行い、
    前記仮想カメラ制御部は、
    前記姿勢変化が無効又は制限された前記移動体の視点の位置に、前記仮想カメラを設定することを特徴とするシミュレーションシステム。
  4. ユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、
    前記ユーザの一人称視点として設定される仮想カメラの制御を行う仮想カメラ制御部と、
    表示画像として、前記仮想空間において前記仮想カメラから見える画像を生成する表示処理部と、
    を含み、
    前記移動体処理部は、
    前記移動体の進行方向が変化した場合にも、前記移動体のピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されるように、前記移動体を移動させる処理を行い、
    前記仮想カメラ制御部は、
    前記姿勢変化が無効又は制限された前記移動体の視点の位置に、前記仮想カメラを設定することを特徴とするシミュレーションシステム。
  5. 請求項3又は4において、
    ワールド座標系において前記移動体のローカル座標系の基準位置を移動させる処理が行われると共に、前記ワールド座標系に対する前記ローカル座標系のピッチング及びローリングの少なくとも一方の回転移動が無効又は制限されるように、前記ローカル座標系が設定され、前記ローカル座標系における前記移動体の視点の位置に、前記仮想カメラの視点座標系が設定されることを特徴とするシミュレーションシステム。
  6. 請求項3乃至5のいずれかにおいて、
    前記移動体処理部は、
    前記仮想空間のコースの状態の変化により前記移動体の進行方向が変化した場合にも、前記移動体のピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されるように、前記コースにおいて前記移動体を移動させる処理を行うと共に、前記移動体に付随する所与のオブジェクトについては、前記コースの状態に応じて姿勢を変化させることを特徴とするシミュレーションシステム。
  7. 請求項3乃至6のいずれかにおいて、
    前記表示処理部は、
    対戦用画像、観賞用画像又はデモ画像については、ピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されていない第2の移動体が表示される画像を生成することを特徴とするシミュレーションシステム。
  8. 請求項3乃至7のいずれかにおいて、
    前記仮想カメラ制御部は、
    所与の条件が成立したかに応じて、前記移動体のピッチング及びローリングの少なくとも一方の姿勢変化を無効又は制限する処理をオン又はオフにすることを特徴とするシミュレーションシステム。
  9. 請求項8において、
    前記仮想カメラ制御部は、
    前記仮想空間において前記移動体が移動するコースの状況に応じて、前記移動体のピッチング及びローリングの少なくとも一方の姿勢変化を無効又は制限する処理をオン又はオフにすることを特徴とするシミュレーションシステム。
  10. 請求項1又は2において、
    前記移動体処理部は、
    前記移動体の進行方向の変化に応じて前記移動体の姿勢が変化するように前記移動体を移動させる処理を行い、
    前記仮想カメラ制御部は、
    前記移動体の進行方向の変化に応じて前記移動体の姿勢が変化した場合にも、前記仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、前記仮想カメラを設定することを特徴とするシミュレーションシステム。
  11. 請求項10において、
    前記移動体処理部は、
    前記仮想カメラの位置及び姿勢の少なくとも一方を基準にして、前記移動体の姿勢を設定することを特徴とするシミュレーションシステム。
  12. 請求項1乃至11のいずれかにおいて、
    前記移動体の進行方向の変化又は前記移動体が移動するコースの状況に応じて、前記ユーザのプレイ位置を変化させる可動筐体を含むことを特徴とするシミュレーションシステム。
  13. 請求項1乃至12のいずれかにおいて、
    前記移動体の進行方向の変化に応じた音又は前記移動体が移動するコースの状況に応じた出力音を生成する音処理部を含むことを特徴とするシミュレーションシステム。
  14. 請求項1乃至13のいずれかにおいて、
    前記仮想カメラ制御部は、
    前記ユーザによる設定情報又は前記ユーザのプレイ履歴情報に基づいて、前記仮想カメラの前記姿勢変化を無効又は制限する処理のオン又はオフを設定することを特徴とするシミュレーションシステム。
  15. 頭部装着型表示装置を装着するユーザの視点情報のトラッキング情報を取得する入力処理部と、
    前記ユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、
    前記ユーザの一人称視点として設定される仮想カメラの制御を行う仮想カメラ制御部と、
    前記頭部装着型表示装置の表示画像として、前記仮想空間において前記仮想カメラから見える画像を生成する表示処理部として、
    コンピュータを機能させ、
    前記仮想カメラ制御部は、
    前記トラッキング情報に基づいて前記仮想カメラの位置、姿勢を変化させる一方で、前記移動体の進行方向が変化した場合にも前記仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、前記仮想カメラを設定することを特徴とするプログラム。
  16. ユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、
    前記ユーザの一人称視点として設定される仮想カメラの制御を行う仮想カメラ制御部と、
    表示画像として、前記仮想空間において前記仮想カメラから見える画像を生成する表示処理部として、
    コンピュータを機能させ、
    前記移動体処理部は、
    前記移動体の進行方向が変化した場合にも、前記移動体のピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されるように、前記移動体を移動させる処理を行い、
    前記仮想カメラ制御部は、
    前記姿勢変化が無効又は制限された前記移動体の視点の位置に、前記仮想カメラを設定することを特徴とするプログラム。
JP2016138927A 2016-07-13 2016-07-13 シミュレーションシステム及びプログラム Active JP6689694B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016138927A JP6689694B2 (ja) 2016-07-13 2016-07-13 シミュレーションシステム及びプログラム
PCT/JP2017/024792 WO2018012393A1 (ja) 2016-07-13 2017-07-06 シミュレーションシステム、処理方法及び情報記憶媒体
CN201780043158.9A CN109478340B (zh) 2016-07-13 2017-07-06 模拟系统、处理方法以及信息存储介质
US16/245,598 US10915166B2 (en) 2016-07-13 2019-01-11 Simulation system, processing method, and information storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016138927A JP6689694B2 (ja) 2016-07-13 2016-07-13 シミュレーションシステム及びプログラム

Publications (2)

Publication Number Publication Date
JP2018010486A true JP2018010486A (ja) 2018-01-18
JP6689694B2 JP6689694B2 (ja) 2020-04-28

Family

ID=60951710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016138927A Active JP6689694B2 (ja) 2016-07-13 2016-07-13 シミュレーションシステム及びプログラム

Country Status (4)

Country Link
US (1) US10915166B2 (ja)
JP (1) JP6689694B2 (ja)
CN (1) CN109478340B (ja)
WO (1) WO2018012393A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6446150B1 (ja) * 2018-03-29 2018-12-26 株式会社コロプラ プログラム、情報処理装置、および方法
WO2020203870A1 (ja) * 2019-03-31 2020-10-08 アヘッド・バイオコンピューティング株式会社 情報処理装置、情報処理方法、および、プログラム
JP2020170501A (ja) * 2019-03-31 2020-10-15 アヘッド・バイオコンピューティング株式会社 情報処理装置、情報処理方法、および、プログラム
TWI812273B (zh) * 2022-06-10 2023-08-11 仁寶電腦工業股份有限公司 基於影像的環境模擬的運算裝置、運動系統及控制方法

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6719308B2 (ja) * 2016-07-13 2020-07-08 株式会社バンダイナムコエンターテインメント シミュレーションシステム及びプログラム
JP6689694B2 (ja) 2016-07-13 2020-04-28 株式会社バンダイナムコエンターテインメント シミュレーションシステム及びプログラム
GB2554914B (en) * 2016-10-14 2022-07-20 Vr Chitect Ltd Virtual reality system and method
KR102374404B1 (ko) * 2017-07-25 2022-03-15 삼성전자주식회사 콘텐트를 제공하기 위한 디바이스 및 방법
US10498964B2 (en) * 2017-12-28 2019-12-03 Gopro, Inc. Adaptive modes of operation based on user intention or activity
CN112119451A (zh) * 2018-05-22 2020-12-22 索尼公司 信息处理装置、信息处理方法和程序
JP7382954B2 (ja) 2018-11-01 2023-11-17 株式会社ソニー・インタラクティブエンタテインメント Vr酔い低減システム、ヘッドマウントディスプレイ、vr酔い低減方法及びプログラム
JP7330683B2 (ja) * 2018-11-06 2023-08-22 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US11612316B2 (en) * 2019-06-20 2023-03-28 Awss Zidan Medical system and method operable to control sensor-based wearable devices for examining eyes
JP6924799B2 (ja) * 2019-07-05 2021-08-25 株式会社スクウェア・エニックス プログラム、画像処理方法及び画像処理システム
CN110850977B (zh) * 2019-11-06 2023-10-31 成都威爱新经济技术研究院有限公司 一种基于6dof头戴式显示器的立体图像交互方法
NL1043556B1 (nl) * 2020-02-04 2021-09-13 Virtuwalk Bv Haptische VR simulatie-inrichting waarmee een gebruiker zich intuïtief door een virtuele omgeving kan verplaatsen
CN111610861A (zh) * 2020-05-25 2020-09-01 歌尔科技有限公司 跨平台交互方法、ar装置及服务器和vr装置及服务器
CN111708169B (zh) * 2020-07-10 2021-12-21 重庆三原色展览展示有限公司 一种适于舒适佩戴的vr眼镜整体镜框
US11465031B2 (en) * 2020-09-16 2022-10-11 RevolutioNice, Inc. Ambulation simulation systems, terrain simulation systems, treadmill systems, and related systems and methods
CN112817453A (zh) * 2021-01-29 2021-05-18 聚好看科技股份有限公司 虚拟现实设备和虚拟现实场景中物体的视线跟随方法
CN113457132B (zh) * 2021-06-23 2024-03-01 北京达佳互联信息技术有限公司 对象投放方法、装置、电子设备及存储介质
CN113926187A (zh) * 2021-10-20 2022-01-14 腾讯科技(深圳)有限公司 虚拟场景中的对象控制方法、装置及终端设备
CN115346415B (zh) * 2022-09-05 2023-07-25 中国航空工业集团公司沈阳空气动力研究所 一种沉浸式滑雪模拟系统及其使用方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH117543A (ja) * 1997-06-13 1999-01-12 Namco Ltd 情報記憶媒体及び画像生成装置
JPH1166343A (ja) * 1997-08-14 1999-03-09 Namco Ltd 画像生成装置及び情報記憶媒体
JP2008198232A (ja) * 2008-05-07 2008-08-28 Namco Bandai Games Inc 画像生成システム、プログラム及び情報記憶媒体
JP2012215934A (ja) * 2011-03-31 2012-11-08 Namco Bandai Games Inc プログラム、情報記憶媒体、端末、及びサーバ

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57173232A (en) 1981-04-17 1982-10-25 Hitachi Ltd Automatic equalizer
WO1994024652A1 (en) 1993-04-20 1994-10-27 Kabushiki Kaisha Ace Denken Driving simulation system
JP3428151B2 (ja) 1994-07-08 2003-07-22 株式会社セガ 画像表示装置を用いた遊戯装置
US5921780A (en) 1996-06-28 1999-07-13 Myers; Nicole J. Racecar simulator and driver training system and method
TW394702B (en) 1996-10-09 2000-06-21 Sega Enterprises Kk Player, solution and play implementation and play system
ES2275316T3 (es) 1997-11-07 2007-06-01 Kabushiki Kaisha Sega Doing Business As Sega Corporation Maquina de juego.
US6010403A (en) 1997-12-05 2000-01-04 Lbe Technologies, Inc. System and method for displaying an interactive event
JPH11309269A (ja) 1998-04-27 1999-11-09 Sony Corp ゲーム装置、シミュレーション装置及びゲーム画像表示方法
JP3046578B2 (ja) 1998-06-11 2000-05-29 株式会社ナムコ 画像生成装置及び情報記憶媒体
JP2002157607A (ja) * 2000-11-17 2002-05-31 Canon Inc 画像生成システム、画像生成方法および記憶媒体
JP2003066825A (ja) 2001-08-24 2003-03-05 Mitsubishi Heavy Ind Ltd 擬似体感装置
JP4957938B2 (ja) 2001-09-19 2012-06-20 株式会社セガ ゲームプログラム、ゲーム装置及びネットワークサーバ
AU2003223488A1 (en) 2002-04-05 2003-10-27 Konstantin Sizov Portable in-the-vehicle road simulator
US7126607B2 (en) 2002-08-20 2006-10-24 Namco Bandai Games, Inc. Electronic game and method for effecting game features
JP3822617B2 (ja) 2004-07-16 2006-09-20 株式会社コナミデジタルエンタテインメント ゲーム機の衝撃体感装置およびこの装置を備えたゲーム機
US7625287B2 (en) 2005-10-05 2009-12-01 Nintendo Co., Ltd. Driving game steering wheel simulation method and apparatus
JP4761528B2 (ja) 2005-10-11 2011-08-31 任天堂株式会社 ゲームプログラムおよびゲーム装置
CN100478849C (zh) * 2007-04-10 2009-04-15 南京航空航天大学 基于多加速度传感器的虚拟现实头盔防眩晕系统及方法
US8021270B2 (en) 2008-07-03 2011-09-20 D Eredita Michael Online sporting system
US9418568B2 (en) 2009-09-29 2016-08-16 Advanced Training System Llc System, method and apparatus for driver training system with dynamic mirrors
CN101780321B (zh) 2009-12-30 2012-01-25 永春至善体育用品有限公司 一种高临场感的运动健身器材虚拟实景的制作方法以及基于该虚拟实景的互动系统和方法
JP5738569B2 (ja) * 2010-10-15 2015-06-24 任天堂株式会社 画像処理プログラム、装置、システムおよび方法
CN102013185B (zh) * 2010-11-26 2012-05-30 南京多伦科技股份有限公司 一种汽车驾驶模拟器少自由度体感装置及其位姿调整方法
JP6085411B2 (ja) * 2011-06-02 2017-02-22 任天堂株式会社 画像処理装置、画像処理方法、および画像処理装置の制御プログラム
US9179619B1 (en) 2012-03-01 2015-11-10 Pioneer Hi-Bred International, Inc. Soybean variety XB72D12
KR101845350B1 (ko) * 2013-03-26 2018-05-18 세이코 엡슨 가부시키가이샤 두부 장착형 표시 장치 및 두부 장착형 표시 장치의 제어 방법
JP5888372B2 (ja) 2013-08-29 2016-03-22 キヤノンマーケティングジャパン株式会社 情報処理システムとその処理方法及びプログラム
US9978202B2 (en) 2014-02-14 2018-05-22 Igt Canada Solutions Ulc Wagering gaming apparatus for detecting user interaction with game components in a three-dimensional display
US9589384B1 (en) 2014-11-26 2017-03-07 Amazon Technologies, Inc. Perspective-enabled linear entertainment content
CN104474665A (zh) * 2014-11-27 2015-04-01 曦煌科技(北京)有限公司 一种基于虚拟现实环境的模拟步行器及其模拟方法
US10013808B2 (en) 2015-02-03 2018-07-03 Globus Medical, Inc. Surgeon head-mounted display apparatuses
US10139902B2 (en) * 2015-09-16 2018-11-27 Colopl, Inc. Method and apparatus for changing a field of view without synchronization with movement of a head-mounted display
US10133343B2 (en) 2015-12-02 2018-11-20 Tactonic Tecnologies, LLC Foot operated navigation and interaction for virtual reality experiences
US20170228931A1 (en) 2016-02-08 2017-08-10 Google Inc. Limited field of view in virtual reality
JP5996814B1 (ja) 2016-02-08 2016-09-21 株式会社コロプラ 仮想空間の画像をヘッドマウントディスプレイに提供する方法及びプログラム
US10338392B2 (en) * 2016-06-13 2019-07-02 Microsoft Technology Licensing, Llc Identification of augmented reality image display position
JP6714791B2 (ja) 2016-07-13 2020-07-01 株式会社バンダイナムコエンターテインメント シミュレーションシステム及びプログラム
JP6689694B2 (ja) 2016-07-13 2020-04-28 株式会社バンダイナムコエンターテインメント シミュレーションシステム及びプログラム
JP6715192B2 (ja) 2017-01-06 2020-07-01 任天堂株式会社 ゲームシステム、ゲームプログラム、情報処理装置およびゲーム制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH117543A (ja) * 1997-06-13 1999-01-12 Namco Ltd 情報記憶媒体及び画像生成装置
JPH1166343A (ja) * 1997-08-14 1999-03-09 Namco Ltd 画像生成装置及び情報記憶媒体
JP2008198232A (ja) * 2008-05-07 2008-08-28 Namco Bandai Games Inc 画像生成システム、プログラム及び情報記憶媒体
JP2012215934A (ja) * 2011-03-31 2012-11-08 Namco Bandai Games Inc プログラム、情報記憶媒体、端末、及びサーバ

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6446150B1 (ja) * 2018-03-29 2018-12-26 株式会社コロプラ プログラム、情報処理装置、および方法
JP2019175362A (ja) * 2018-03-29 2019-10-10 株式会社コロプラ プログラム、情報処理装置、および方法
WO2020203870A1 (ja) * 2019-03-31 2020-10-08 アヘッド・バイオコンピューティング株式会社 情報処理装置、情報処理方法、および、プログラム
JP2020170207A (ja) * 2019-03-31 2020-10-15 アヘッド・バイオコンピューティング株式会社 情報処理装置、情報処理方法、および、プログラム
JP2020170501A (ja) * 2019-03-31 2020-10-15 アヘッド・バイオコンピューティング株式会社 情報処理装置、情報処理方法、および、プログラム
US20220011857A1 (en) * 2019-03-31 2022-01-13 Ahead Biocomputing, Co. Ltd. Information processing device, information processing method, and non-transitory computer readable storage medium storing an information processing program
EP3951723A4 (en) * 2019-03-31 2022-12-28 Ahead Biocomputing, Co. Ltd INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND PROGRAM
JP7305185B2 (ja) 2019-03-31 2023-07-10 アヘッド・バイオコンピューティング株式会社 情報処理装置、情報処理方法、および、プログラム
US11880502B2 (en) 2019-03-31 2024-01-23 Ahead Biocomputing, Co. Ltd. Information processing device, information processing method, and non-transitory computer readable storage medium storing an information processing program
TWI812273B (zh) * 2022-06-10 2023-08-11 仁寶電腦工業股份有限公司 基於影像的環境模擬的運算裝置、運動系統及控制方法

Also Published As

Publication number Publication date
US20190220087A1 (en) 2019-07-18
CN109478340A (zh) 2019-03-15
JP6689694B2 (ja) 2020-04-28
CN109478340B (zh) 2022-12-20
US10915166B2 (en) 2021-02-09
WO2018012393A1 (ja) 2018-01-18

Similar Documents

Publication Publication Date Title
JP6689694B2 (ja) シミュレーションシステム及びプログラム
US11493990B2 (en) Simulation system, processing method, and information storage medium
JP6719308B2 (ja) シミュレーションシステム及びプログラム
US10639557B2 (en) Synchronized motion simulation for virtual reality
US11014000B2 (en) Simulation system, processing method, and information storage medium
JP6761340B2 (ja) シミュレーションシステム及びプログラム
JP6957218B2 (ja) シミュレーションシステム及びプログラム
JP6712423B2 (ja) シミュレーションシステム
JP6849317B2 (ja) ゲームシステム
JP6774260B2 (ja) シミュレーションシステム
JP7072441B2 (ja) シミュレーションシステム及びプログラム
JP6918189B2 (ja) シミュレーションシステム及びプログラム
JP6660321B2 (ja) シミュレーションシステム及びプログラム
JP2017188827A (ja) シミュレーションシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190709

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: 20200317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200408

R150 Certificate of patent or registration of utility model

Ref document number: 6689694

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250