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

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

Info

Publication number
JP6719308B2
JP6719308B2 JP2016138928A JP2016138928A JP6719308B2 JP 6719308 B2 JP6719308 B2 JP 6719308B2 JP 2016138928 A JP2016138928 A JP 2016138928A JP 2016138928 A JP2016138928 A JP 2016138928A JP 6719308 B2 JP6719308 B2 JP 6719308B2
Authority
JP
Japan
Prior art keywords
virtual camera
image
moving body
user
change
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
JP2016138928A
Other languages
English (en)
Other versions
JP2018010487A (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.)
Namco Ltd
Bandai Namco Entertainment Inc
Original Assignee
Namco Ltd
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 Namco Ltd, Bandai Namco Entertainment Inc filed Critical Namco Ltd
Priority to JP2016138928A priority Critical patent/JP6719308B2/ja
Priority to CN201780043165.9A priority patent/CN109478341A/zh
Priority to PCT/JP2017/024793 priority patent/WO2018012394A1/ja
Publication of JP2018010487A publication Critical patent/JP2018010487A/ja
Priority to US16/245,716 priority patent/US10955909B2/en
Application granted granted Critical
Publication of JP6719308B2 publication Critical patent/JP6719308B2/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/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
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1686Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being an integrated camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable 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
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye 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
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0325Detection arrangements using opto-electronic means using a plurality of light emitters or reflectors or a plurality of detectors forming a reference frame from which to derive the orientation of the object, e.g. by triangulation or on the basis of reference deformation in the picked up image
    • 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/0334Foot operated pointing devices
    • 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
    • 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/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
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • 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
    • 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

Description

本発明は、シミュレーションシステム及びプログラム等に関する。
従来より、HMD(頭部装着型表示装置)をユーザが頭部に装着し、HMDの画面に表示される画像をユーザが見ることで、いわゆるバーチャルリアリティー(VR)の世界を体感できるシミュレーションシステムが知られている。このようなシミュレーションシステムの従来技術としては、例えば特許文献1等に開示される技術がある。
特開平11−309269号公報
HMDを用いたシミュレーションシステムでは、仮想空間において仮想カメラから見える画像がHMDに表示される。このような画像をHMDに表示することで、ユーザの視界の全周囲に亘って、広大なVR空間が広がるようになるため、ユーザの仮想現実感を格段に向上できる。
このようなシミュレーションシステムでは、仮想空間においてユーザに対応するキャラクタ等の移動体が移動し、移動体の移動に追従する仮想カメラから見える画像が生成される。この場合に、移動体の進行方向や姿勢が大きく変化する状況が発生すると、仮想カメラの位置や姿勢が変化し、HMDの表示画像が大きく変化してしまう。そして表示画像の大きな変化は、ユーザの目の負担等になり、例えばユーザの3D酔い等の問題を招いてしまう。
本発明の幾つかの態様によれば、移動体の加速度の変化や仮想カメラの視線方向の変化が原因でユーザに与えてしまう負担等を軽減できるシミュレーションシステム及びプログラム等を提供できる。
頭部装着型表示装置を装着するユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、前記移動体の移動に応じて移動する仮想カメラの制御を行う仮想カメラ制御部と、前記頭部装着型表示装置の表示画像として、前記仮想空間において前記仮想カメラから見える画像を生成する表示処理部と、を含み、前記表示処理部は、前記移動体の加速度の変化又は前記仮想カメラの視線方向の変化が、所与の変化条件を満たしたと判断される場合に、前記頭部装着型表示装置の表示画像を、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理を行うシミュレーションシステムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
本発明の一態様によれば、ユーザに対応する移動体を仮想空間において移動させる処理が行われ、頭部装着型表示装置の表示画像として、移動体の移動に応じて移動する仮想カメラから見える画像が生成される。そして移動体の加速度の変化又は仮想カメラの視線方向の変化が、所与の変化条件を満たすと、頭部装着型表示装置の表示画像が、仮想カメラから見える画像とは異なる画像に変化する。例えば、移動体の加速度や仮想カメラの視線方向が、所与の変化条件を満たすような変化をした場合に、仮想カメラから見える画像を頭部装着型表示装置の表示画像としてそのまま表示してしまうと、ユーザの目の負担等になってしまう状況が発生する。本発明の一態様によれば、このような状況が発生した場合に、頭部装着型表示装置の表示画像が、仮想カメラから見える通常の画像から、当該画像とは異なる画像に変化するようになる。従って、移動体の加速度の変化や仮想カメラの視線方向の変化が原因でユーザに与えてしまう負担等を軽減できるシミュレーションシステム等の提供が可能になる。
また本発明の一態様では、前記表示処理部は、前記所与の変化条件が満たされた場合に、前記頭部装着型表示装置の表示画像の全体を変化させる表示処理を行ってもよい。
このようにすれば、所与の変化条件が満たされて、仮想カメラから見える画像がユーザの目の負担等になってしまう状況が発生した場合に、頭部装着型表示装置の表示画像の全体が変化することで、当該状況を回避できるようになる。
また本発明の一態様では、前記表示処理部は、前記表示画像の全体を変化させる表示処理として、前記表示画像をフェードアウトさせる処理を行ってもよい。
このようにすれば、所与の変化条件が満たされて、仮想カメラから見える画像がユーザの目の負担等になってしまう状況が発生した場合に、頭部装着型表示装置の表示画像がフェードアウトされることで、当該状況を回避できるようになる。
また本発明の一態様では、前記表示処理部は、前記所与の変化条件が満たされた場合に、前記仮想カメラから見える画像に対して所与のエフェクト処理を施す表示処理を行ってもよい。
このようにすれば、所与の変化条件が満たされた場合に、仮想カメラから見える画像に対して、ユーザの目の負担等を軽減できるエフェクト処理を施すことが可能になる。
また本発明の一態様では、前記表示処理部は、前記移動体の進行方向を、前記進行方向とは異なる方向に変化させる加速度変化イベントが発生した場合に、前記所与の変化条件が満たされたと判断して、前記頭部装着型表示装置の表示画像を、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理を行ってもよい。
このようにすれば、移動体の進行方向を当該進行方向とは異なる方向に変化させるような加速度変化イベントが発生すると、頭部装着型表示装置の表示画像が、仮想カメラから見える画像とは異なる画像に変化して、ユーザの目の負担等を軽減できるようになる。
また本発明の一態様では、前記加速度変化イベントは、前記移動体の衝突イベント及び前記移動体の落下イベントの少なくとも1つであってもよい。
このようにすれば移動体が衝突対象物と衝突したり、移動体が落下するようなイベントが生じた場合に、頭部装着型表示装置の表示画像が、仮想カメラから見える画像とは異なる画像に変化して、衝突時や落下時におけるユーザの目の負担等を軽減できるようになる。
また本発明の一態様では、前記表示処理部は、前記仮想カメラの視線方向の角度変化が、所与の角度以上である場合に、前記所与の変化条件が満たされたと判断して、前記頭部装着型表示装置の表示画像を、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理を行ってもよい。
このようにすれば、仮想カメラの視線方向の変化が所与の角度以上となるような大きな視線方向の変化があった場合に、頭部装着型表示装置の表示画像が、仮想カメラから見える画像とは異なる画像に変化して、視線方向の大きな変化を原因とするユーザの目の負担等を軽減できるようになる。
また本発明の一態様では、前記表示処理部は、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミング及び処理度合いの少なくとも一方を、前記所与の変化条件を満たす第1のイベントの発生時と、前記所与の変化条件を満たす第2のイベントの発生時とで異ならせてもよい。
このようにすれば、各イベントに応じた適切な処理開始タイミングや処理度合いで、仮想カメラから見える画像とは異なる画像に変化させる表示処理を実行できるようになる。
また本発明の一態様では、前記仮想カメラ制御部は、前記ユーザの一人称視点として設定される前記仮想カメラの制御を行ってもよい。
このようにすれば、一人称視点での画像が頭部装着型表示装置に表示されるようなバーチャルリアリティのシステムにおいて、移動体の加速度の変化や仮想カメラの視線方向の変化が原因でユーザに与えてしまう負担等を軽減できるようになる。
また本発明の一態様では、前記頭部装着型表示装置を装着する前記ユーザの視点情報のトラッキング情報を取得する入力処理部を含み(入力処理部としてコンピュータを機能させてもよい)、前記仮想カメラ制御部は、前記トラッキング情報に基づいて前記仮想カメラの位置、姿勢を変化させる一方で、前記移動体の進行方向が変化した場合にも前記仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、前記仮想カメラを設定してもよい。
このようにユーザの視点情報のトラッキング情報に基づいて仮想カメラの位置、姿勢を変化させることで、仮想現実感の高い表示画像を頭部装着型表示装置に表示できる。一方、移動体の進行方向が変化した場合にも、仮想カメラのピッチングやローリングの姿勢変化については無効又は制限することで、表示画像の揺れ等を原因とする3D酔い等の問題の発生を抑制できるようになる。
また本発明の一態様では、前記移動体が移動するコースの状況又は前記移動体の進行方向の変化に応じて、前記ユーザのプレイ位置を変化させる可動筐体を含んでもよい。
このようにすれば、移動体の進行方向の変化やコースの状況を、可動筐体によりユーザのプレイ位置を変化させることで、ユーザに体感させることが可能になり、3D酔いの発生等を更に抑制できるようになる。
また本発明の一態様では、前記移動体が移動するコースの状況に応じた音又は前記移動体の進行方向の変化に応じた出力音を生成する音処理部を含んでもよい(音処理部としてコンピュータを機能させてもよい)。
このようにすれば、移動体の進行方向の変化やコースの状況を、出力音の変化によりユーザに聴覚的に認識させることが可能になり、3D酔いの発生等を更に抑制できるようになる。
また本発明の一態様では、前記表示処理部は、前記ユーザによる設定情報又は前記ユーザのプレイ履歴情報に基づいて、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミング及び処理度合いの少なくとも一方を変化させてもよい。
このようにすれば、ユーザが入力した設定情報や、ユーザの過去のプレイ履歴情報などに基づいて、仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミングや処理度合いを設定できるようになる。
本実施形態のシミュレーションシステムの構成例を示すブロック図。 図2(A)、図2(B)は本実施形態に用いられるHMDの一例。 図3(A)、図3(B)は本実施形態に用いられるHMDの他の例。 シミュレーションシステムの一例であるスキーシミュレータの構成例。 スキーシミュレータでのゲーム画像の例。 シミュレーションシステムの一例であるロボットシミュレータの構成例。 ロボットシミュレータでのゲーム画像の例。 図8(A)〜図8(C)はキャラクタが岩に衝突した場合の加速度変化が原因で発生する問題点の説明図。 図9(A)〜図9(C)はキャラクタが崖から落下した場合の加速度変化が原因で発生する問題点の説明図。 図10(A)、図10(B)はキャラクタが岩に衝突する場面を説明するゲーム画像の例。 図11(A)、図11(B)はキャラクタが岩に衝突する場面でのフェードアウト処理を説明するゲーム画像の例。 図12(A)、図12(B)はキャラクタが崖から落下する場面を説明するゲーム画像の例。 図13(A)、図13(B)はキャラクタが崖から落下する場面でのフェードアウト処理を説明するゲーム画像の例。 図14(A)、図14(B)は本実施形態のエフェクト処理の説明図。 図15(A)〜図15(C)はキャラクタが転倒した場合の仮想カメラの視線方向の変化が原因で発生する問題点の説明図。 図16(A)、図16(B)はフェードアウト処理やエフェクト処理の開始タイミングを各イベントに応じて設定する手法の説明図。 図17(A)、図17(B)は各イベントに応じた処理開始タイミングや処理度合いを設定する手法の説明図。 移動体の進行方向の変化に伴う仮想カメラの姿勢変化の問題点の説明図。 図19(A)〜図19(C)はトラッキング情報に基づいて仮想カメラの位置、姿勢を変化させる手法の説明図。 仮想カメラの姿勢変化を無効にする手法の説明図。 仮想カメラの姿勢変化を無効にする手法の説明図。 仮想カメラの姿勢変化の無効処理の第1の実現手法の説明図。 仮想カメラの姿勢変化の無効処理の第2の実現手法の説明図。 図24(A)〜図24(C)は崖からの落下時における仮想カメラの設定手法の説明図。 図25(A)〜図25(C)は岩との衝突時における仮想カメラの設定手法の説明図。 可動筐体、出力音の制御手法の説明図。 ユーザの設定情報に基づき処理開始タイミングや処理度合いを設定する手法の説明図。 プレイ履歴に基づき処理開始タイミングや処理度合いを設定する手法の説明図。 本実施形態の詳細な処理例を示すフローチャート。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
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に示すように、移動体処理部114と仮想カメラ制御部118と表示処理部120を含む。また入力処理部102を含むことができる。
移動体処理部114は、ユーザに対応する移動体(仮想ユーザ、搭乗移動体等)を仮想空間(オブジェクト空間)において移動させる処理を行う。例えば移動体の位置、方向の情報を所定期間毎(例えばフレーム毎)に求める処理を行って、仮想空間のコースなどにおいて移動体を移動させる処理を行う。また移動体処理部114は移動体を動作させる処理(モーション処理)なども行う。
仮想カメラ制御部118は、移動体の移動に応じて移動する仮想カメラの制御を行う。例えば移動体に追従するように移動する仮想カメラの制御を行う。例えば仮想カメラ制御部118は、ユーザの一人称視点として設定される仮想カメラの制御を行う。例えば仮想空間において移動する移動体の視点に対応する位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置(位置座標)や姿勢(回転軸回りでの回転角度)を制御する。
表示処理部120は、HMD200の表示画像(表示映像)として、仮想空間において仮想カメラ(ユーザ視点)から見える画像を生成する。例えば仮想空間であるオブジェクト空間において所与の視点から見える画像を生成する。生成される画像は立体視用の画像であることが望ましい。
そして表示処理部120は、移動体の加速度の変化又は仮想カメラの視線方向の変化が、所与の変化条件を満たしたと判断される場合に、HMD200の表示画像を、仮想カメラから見える画像とは異なる画像に変化させる表示処理を行う。例えば表示処理部120は、所与の変化条件を満たしたと判断される場合に、通常のゲーム画像(シミュレーション画像)として表示される画像とは異なる画像に、HMD200の表示画像を変化させる。例えばゲーム処理(シミュレーション処理)の結果に基づきリアルタイムに更新されるゲーム画像(シミュレーション画像)とは異なる画像に変化させる。例えば移動体の加速度の変化や仮想カメラの視線方向の変化を原因とするユーザの目等の負担(3D酔い等)が軽減される画像に、HMD200の表示画像を変化させる。所与の変化条件を満たしたか否かは、例えば移動体の加速度の変化又は仮想カメラの視線方向の変化を実際に監視することで判断してもよいし、所与の変化条件を満たすようなイベント(加速度変化イベント又は視線方向変化イベント等)が発生したか否かに基づいて判断してもよい。
例えば表示処理部120は、所与の変化条件が満たされた場合に、HMD200の表示画像の全体を変化させる表示処理を行う。即ち、表示画像を全体的に変化させるような表示処理を行う。例えば表示処理部120は、表示画像の全画素を対象とするような表示処理を行う。具体的には、表示画像の全画素の画素値を所与の値(例えば白又は黒などの所定色に対応する画素値)に変化させるような表示処理を行う。或いは、表示画像の全画素を対象とするようなエフェクト処理(フィルタ処理)を行う。
例えば表示処理部120は、表示画像の全体を変化させる表示処理として、表示画像をフェードアウトさせる処理を行う。例えば所与の条件が満たすようなイベントが発生した場合に、例えば所与の時間経過後に表示画像をフェードアウトさせる処理を行う。フェードアウト処理は、例えば表示画像の画素(全画素)の色を徐々に所定色に近づける処理である。フェードアウト処理としては、例えばホワイトアウト処理やブラックアウト処理などがある。ホワイトアウト処理は、表示画像の画素の色(輝度値)を徐々に白くする処理である。ブラックアウト処理は、表示画像の画素の色を徐々に黒くする処理である。なお、フェードアウト処理は、ホワイトアウト処理やブラックアウト処理には限定されず、例えば表示画像の全画素の色を徐々に赤くするレッドアウト処理などの種々の処理を想定できる。
また表示処理部120は、所与の変化条件が満たされた場合に、仮想カメラから見える画像に対して所与のエフェクト処理を施す表示処理を行ってもよい。例えば所与の条件が満たすようなイベントが発生した場合に、例えば所与の時間経過後に、仮想カメラから見える画像に対して所与のエフェクト処理を行う。このようにすることで、所与の変化条件が満たされた場合に、HMD200の表示画像を、仮想カメラから見える画像とは異なる画像に変化させることができる。この場合のエフェクト処理としては、例えばぼかし処理、半透明合成処理、二値化処理、或いはモザイク処理などの種々の処理を想定できる。例えばエフェクト処理は、仮想カメラから見える画像に対して各種の画像フィルタ処理を施すことで実現できる。画像フィルタ処理としては、例えば移動平均フィルタ処理、ガウシアンフィルタ処理、或いはメディアンフィルタ処理などの種々の処理を想定できる。例えば表示処理部120は、ゲーム処理(シミュレーション処理)によりリアルタイムに生成された画像に対して、画像フィルタ処理などを施すことで、所与の変化条件が満たされた場合のエフェクト処理を実現する。このエフェクト処理は、HMD200の表示画像の全体に対して行われるものであることが望ましいが、一部の領域に対して行われるものであってもよい。
また表示処理部120は、移動体の進行方向を、進行方向とは異なる方向に変化させる加速度変化イベントが発生した場合に、所与の変化条件が満たされたと判断する。そしてHMD200の表示画像を、仮想カメラから見える画像とは異なる画像に変化させる表示処理を行う。例えば移動体の進行方向を、左方向、右方向、下方向或いは上方向などの方向に変化させるような加速度(仮想空間での擬似的な加速度)が作用したと判断される加速度変化イベントが発生した場合に、所与の変化条件が満たされたと判断する。例えば、このような加速度変化イベントの発生条件が満たされた場合に、所与の変化条件が満たされたと判断する。例えば第1〜第Nの加速度変化イベントを用意しておく。そして第1〜第Nの加速度変化イベントの第m(1≦m≦N)の加速度変化イベントが発生したと判断された場合には、仮想カメラから見える画像とは異なる画像に変化させる表示処理として、当該第mの加速度変化イベントに対応づけられた表示処理を行う。具体的には、第mの加速度変化イベントに対応する処理開始タイミングや処理度合いで、当該表示処理を実行する。
ここで加速度変化イベントは、例えば移動体の衝突イベント及び移動体の落下イベントの少なくとも1つである。なお加速度変化イベントは、衝突イベントや落下イベント以外のイベントであってもよい。例えば加速度変化イベントは、急減速イベント、急加速イベント、或いは急斜面走行イベントなどであってもよい。
衝突イベントは、例えば移動体が仮想空間内の他のオブジェクトと衝突するイベントである。このように他のオブジェクトに衝突することで、移動体の進行方向を変化させる加速度(衝突の反作用による加速度)が発生したと考えられるため、加速度変化について所与の変化条件が満たされたと判断する。そしてHMD200の表示画像を、仮想カメラから見える画像とは異なる画像に変化させる表示処理が行われる。
落下イベントは、例えば移動体が下側方向等に落下移動するイベントである。例えば落下イベントは、移動体の下方にコース(マップ)が存在しなくなり、下側方向に移動体が落下するイベントである。このように移動体が落下することで、移動体の進行方向を下側方向に変化させる加速度(重力による加速度)が発生したと考えられるため、加速度変化について所与の変化条件が満たされたと判断する。そしてHMD200の表示画像を、仮想カメラから見える画像とは異なる画像に変化させる表示処理が行われる。この場合に、例えば衝突イベントの発生時の当該表示処理と、落下イベントの発生時の当該表示処理は、その処理内容を異ならせてもよい。例えば当該表示処理の処理開始タイミング及び処理度合いの少なくとも一方を異ならせる。
また表示処理部120は、仮想カメラの視線方向の角度変化が、所与の角度以上である場合に、所与の変化条件が満たされたと判断して、HMD200の表示画像を、仮想カメラから見える画像とは異なる画像に変化させる表示処理を行う。例えば移動体が転倒したり、回転したり、或いは移動制御が不能になるなどして、仮想カメラの視線方向の角度変化が、所与の角度以上になるような状況が発生した場合に、所与の変化条件が満たされたと判断する。例えば前述の衝突イベントや落下イベントと同様に、仮想カメラの視線方向の角度変化が所与の角度以上となるイベントが発生した場合に、所与の変化条件が満たされたと判断し、仮想カメラから見える画像とは異なる画像に変更する処理を実行する。
また表示処理部120は、仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミング及び処理度合いの少なくとも一方を、所与の変化条件を満たす第1のイベントの発生時と、所与の変化条件を満たす第2のイベントの発生時とで異ならせる。例えば第1のイベントでは、第2のイベントに比べて、当該表示処理の処理開始タイミングを早くする。また第1のイベントでは、第2のイベントに比べて、当該表示処理の処理度合いを強くする。処理開始タイミングは、フェードアウト処理やエフェクト処理などの処理が開始されるまでのタイミングである。処理度合いは、例えばフェードアウト処理におけるフェードアウト時間(元の画像から所定色に変化するまでに要する時間)や、エフェクト処理におけるエフェクトの強さ(フィルタの強さ)などを表すものであり、フェードアウト処理やエフェクト処理の処理パラメータとして設定されるものである。第1のイベントは例えば前述の衝突イベントであり、第2のイベントは例えば落下イベントであるが、これには限定されず、第1、第2のイベントとしては種々のイベントを想定できる。
また本実施形態のシミュレーションシステムは入力処理部102を含む。そして入力処理部102(入力受け付け部)は、HMD200(頭部装着型表示装置)を装着するユーザの視点情報のトラッキング情報を取得する。例えばユーザの視点位置、視線方向の少なくとも1つである視点情報のトラッキング情報(視点トラッキング情報)を取得する。このトラッキング情報は、例えばHMD200のトラッキング処理を行うことで取得できる。なおトラッキング処理によりユーザの視点位置、視線方向を直接に取得するようにしてもよい。
そして仮想カメラ制御部118は、ユーザの一人称視点として設定される仮想カメラの制御を行う。例えば仮想カメラ制御部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は、移動体の位置に対応するポイントのコース情報を読み出して、移動体を進行方向に移動させる処理を実行する。例えば下り坂のコースでは下り方向に移動し、上り坂のコースでは上り方向に移動するように、移動体の進行方向が設定される。また右カーブのコースでは右方向に曲がり、左カーブのコースでは左方向に曲がるように、移動体の進行方向が設定される。そして、このように移動体の進行方向が変化した場合にも、移動体がピッチングやローリングの姿勢変化を行わないように(当該姿勢変化が制限されるように)、移動体の移動処理が実行される。そしてこの場合にも、移動体に付随する所与のオブジェクト(例えばスキー板や、移動体であるキャラクタの体の一部等)については、コースの状態(形状等)に応じて姿勢を変化させる。例えば下り坂のコースでは、下り坂に沿うように、当該所与のオブジェクトの姿勢を変化させ、上がり坂のコースでは、上がり坂に沿うように、当該所与のオブジェクトの姿勢を変化させる。
また移動体処理部114は、移動体の進行方向の変化に応じて移動体の姿勢が変化するように移動体を移動させる処理を行う。例えば下り方向に進む進行方向である場合には、下り方向に移動しているように見える姿勢に変化させ、上り方向に進む進行方向である場合には、上り方向に移動しているように見える姿勢に変化させて、移動体を移動させる。同様に右方向や左方向に曲がる進行方向の場合には、右に曲がったり、左に曲がっているように見える姿勢に変化させて、移動体を移動させる。この場合に仮想カメラ制御部118は、移動体の進行方向の変化に応じて移動体の姿勢が変化した場合にも、仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、仮想カメラを設定する。例えば下り方向や上り方向に進む進行方向であり、下り方向や上り方向に対応する姿勢に、移動体の姿勢が変化した場合にも、仮想カメラのピッチングの姿勢変化については無効又は制限する。例えば仮想カメラがピッチングの姿勢変化を行わないようにする。また例えば右方向や左方向に曲がる進行方向であり、右方向や左方向に曲がる姿勢に、移動体の姿勢が変化した場合にも、仮想カメラのローリングの姿勢変化については無効又は制限する。例えば仮想カメラがローリングの姿勢変化を行わないようにする。
また本実施形態では、ユーザがプレイするゲームのゲーム処理として、仮想現実のシミュレーション処理を行う。仮想現実のシミュレーション処理は、実空間での事象を仮想空間で模擬するためのシミュレーション処理であり、当該事象をユーザに仮想体験させるための処理である。例えば実空間のユーザに対応する仮想ユーザやその搭乗移動体などの移動体を、仮想空間で移動させたり、移動に伴う環境や周囲の変化をユーザに体感させるための処理を行う。
そして可動筐体40は、ゲーム処理であるシミュレーション処理の結果に基づいてプレイ位置を変化させる。例えば仮想空間での移動体の移動処理の結果等に基づいて、プレイ位置を変化させる。例えば、ユーザの進行方向の変化に伴う加速度の変化(加速、減速)を、ユーザに体感させるためのシミュレーション処理として、可動筐体40によりプレイ位置を変化させる処理を行う。或いは、コース上を移動体が移動する際に、コースの上り下りや凹凸をユーザに体感させるためのシミュレーション処理として、可動筐体40によりプレイ位置を変化させる処理を行う。このように可動筐体40によりプレイ位置を変化させることで、HMD200での表示画像の揺れと、ユーザが体感する加速度等の変化が、ある程度連動するようになり、ユーザの3D酔い等を抑制できるようになる。
なおプレイ位置は、仮想現実(VR)のシミュレーションゲームをプレイする際にユーザが位置するプレイポジションである。例えばプレイ位置は、シートなどのライド部でのユーザのライド位置である。例えばライド部であるシート等に座って、仮想現実のシミュレーションゲームをプレイしている場合には、プレイ位置は例えばシートのライド位置である着座位置である。またユーザが、バイク、自転車、又は馬などの乗り物や動物を模擬したライド部にまたがっている場合には、プレイ位置は、またがっている位置である。またユーザが立ち姿勢でシミュレーションゲームをプレイする場合には、プレイ位置は、例えばユーザの立ち位置である。
また本実施形態のシミュレーションシステムは音処理部130を有しており、音処理部130は、移動体の進行方向の変化に応じた音又は移動体が移動するコースの状況に応じた出力音を生成する処理を行う。例えば移動体の進行方向が変化したり、コースの状況が変化した場合に、その変化をユーザに認識させるための出力音を生成する。例えば凹凸のあるコースでは、「ガタガタ」というような音を出力して、コースに凹凸があることをユーザに聴覚的に認識させる。またユーザの進行方向が急激に変化した場合に、進行方向を変化させる加速度の変化(加速、減速等)をユーザに認識させるための音を出力して、進行方向が変化したことをユーザに聴覚的に認識させる。このようにすることで、ユーザの3D酔いの発生を低減できるようになる。
また表示処理部120は、ユーザによる設定情報又はユーザのプレイ履歴情報に基づいて、仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミング及び処理度合いの少なくとも一方を変化させる。例えばゲームの各種の設定情報をユーザが入力するためのオプション設定画面などにおいて、当該表示処理の処理開始タイミングや処理度合いを設定できるようにする。或いは、過去のユーザのプレイ履歴情報に基づいて、当該表示処理の処理開始タイミングや処理度合いを変化させる。例えばプレイ履歴情報に基づいて、ゲームプレイを頻繁に行っておりゲームプレイに慣れている判断されるユーザや、上級者であると判断されるユーザについては、当該表示処理の処理開始タイミングを遅くしたり、処理度合いを弱くする。一方、プレイ履歴情報に基づいて、ゲームプレイに慣れていないと判断されるユーザや、初級者であると判断されるユーザについては、当該表示処理の処理開始タイミングを早くしたり、処理度合いを強くする。例えばプレイ履歴情報に基づいて、ユーザの衝突回数、落下回数、転倒回数、又は過去のセッテイングを考慮して、仮想カメラから見える画像とは異なる画像に変化させる処理を実行する。このプレイ履歴情報は、例えばユーザが所持する携帯型情報記憶媒体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(A)では、仮想空間においてスキーヤー(仮想ユーザ)であるキャラクタCH(広義には移動体)がコース上を滑って走行している。そして仮想空間の仮想ユーザに対応するキャラクタCHの視点の位置に、仮想カメラが設定されており、この仮想カメラから見える画像が、図5に示すようにHMD200に表示(立体視表示)される。これにより、例えば一人称視点での画像をHMD200に表示できるようになり、あたかも仮想空間でのスキーヤーになってコースを走行しているかのような仮想現実感をユーザに与えることができる。
そして図8(A)では、キャラクタCHの前方側(進行方向側)に岩RK(衝突対象物)が存在しており、図8(B)では、この岩RKにキャラクタCHが衝突している。これにより図8(C)に示すようにキャラクタCHの進行方向DTが変化している。
この岩RKとの衝突イベントは、キャラクタCH(移動体)の進行方向DTを、異なる方向に向かって変化させる加速度変化イベントである。例えば岩RKとの衝突により、キャラクタCHの進行方向DTが、キャラクタCHの正面方向から右側方向に変化している。このような進行方向DTの変化処理は、例えばキャラクタCHと岩RKとの衝突の演算処理(ヒットチェック処理)を行うことで実現できる。この衝突の演算処理は、キャラクタCHが岩RKとの衝突により受ける反作用力に基づく物理演算処理を行うことで実現できる。例えば図8(B)の衝突により受けた反作用力により、図8(C)のようにキャラクタCHの進行方向DTを変化させる物理演算処理を行う。
図9(A)では、スキーヤーであるキャラクタCHが崖CFの近くまで走行しており、図9(B)では崖CFから落下している。この崖CFからの落下により、図9(C)に示すようにキャラクタCHの進行方向DTが変化している。
この崖CFからの落下イベントも、キャラクタの進行方向DTを、異なる方向に向かって変化させる加速度変化イベントである。例えば崖CFからの落下により、キャラクタCHの進行方向DTが、キャラクタCHの正面方向から下側方向に変化している。このような進行方向DTの変化処理は、例えば崖CFからのキャラクタCHの落下移動の演算処理を行うことで実現できる。この落下移動の演算処理は、崖CFから転落したキャラクタCHが受ける重力による物理演算処理を行うことで実現できる。例えば図9(B)の落下時に受けた重力により、図9(C)のようにキャラクタCHの進行方向DTを変化させる物理演算処理を行う。
このように岩との衝突や崖からの落下により、キャラクタCHの進行方向DTが大きく変化すると、図5に示すHMDの表示画像が大きく変化してしまう。このHMDの表示画像の大きな変化は、例えば3D酔いなどの問題を招く。ここで3D酔いとは、例えば立体感のある動きの激しい映像を見続けることで、めまいなどの乗り物酔いのような症状を起こすことである。
例えば図8(B)の岩RKとの衝突によって、図8(C)のようにキャラクタCHの進行方向DTが大きく変化すると、キャラクタCHに追従する仮想カメラの視線方向も大きく変化してしまう。例えば一人称視点の場合には、キャラクタCHの視点の位置に仮想カメラが設定され、例えばキャラクタCHの進行方向DTの方に仮想カメラの視線方向が向いている。従って、図8(C)のように進行方向DTが大きく変化すると、仮想カメラの視線方向も大きく変化し、図5のHMDの表示画像も大きく変化する。
このような衝突イベント発生時のHMDの表示画像の激しい変化は、仮想空間での擬似的な事象(疑似衝突)によるものであるため、現実世界の事象との間に乖離がある。このような、現実世界とは乖離したHMDの表示画像の激しい変化が発生すると、ユーザの3D酔いを引き起こしてしまう。
この場合に、例えば図8(B)の岩との衝突時に、図4の可動筐体40を動作させて、衝突による反作用力をユーザに体感させることで、現実世界と仮想世界の乖離を小さくし、ユーザの3D酔いを軽減することも可能である。例えば岩との衝突時に、エアバネ部50〜53を微少に伸び縮みさせることで、衝突による振動を、ある程度、ユーザに体感させることができる。
しかしながら、このような可動筐体40による衝突の疑似的な体感には限界があり、HMDに表示される仮想世界の画像の激しい変化と、現実世界のユーザの体感との間には、大きな乖離がある。即ち、現実世界ではユーザは岩に衝突していないのに、仮想世界の画像だけが岩との衝突により大きく揺れ動いてしまう現象が起こる。このような現象が頻繁に起こると、ユーザの3D酔い等を引き起こしてしまう。
また図9(A)〜図9(C)の崖からの落下時において、図4の現実世界のユーザは、落下による重力加速度を体感することはできない。従って、仮想世界では崖から落下しているのには、現実世界ではこのような落下が生じておらず、仮想空間での事象と現実世界での事象に乖離が発生する。このような現実世界の事象とは乖離したHMDの表示画像の変化が発生すると、ユーザの3D酔い等を引き起こしてしまう。
そこで本実施形態では、このようなキャラクタの衝突イベントや落下イベントなどの加速度変化イベントが発生したと判断される場合に、HMDの表示画像を、仮想カメラから見える画像とは異なる画像に変化させる処理を行う。例えばキャラクタ(移動体)の加速度の変化が、所与の変化条件を満たしたと判断される場合に、HMDの表示画像を、仮想カメラから見える画像とは異なる画像に変化させる。例えばHMDの表示画像の全体を変化させる表示処理を行う。このような表示処理としては、例えば表示画像をフェードアウトさせる処理や、仮想カメラから見える画像に対してエフェクト処理を施す処理などがある。
図10(A)は、図8(A)のようにキャラクタCHが岩RKの方向に向かって走行している時にHMDに表示される画像の例である。図10(A)のG1に示すように、キャラクタCHの正面方向(進行方向側)には岩が存在している。そして図10(B)は、G2の岩に衝突する瞬間の画像であり、図8(B)の状況に対応する画像である。このように岩に衝突して、図8(C)に示すようにキャラクタCHの進行方向DTが大きく変化すると、HMDの表示画像が激しく変化してしまい、ユーザの3D酔い等の問題を引き起こす。
そこで本実施形態では、この衝突イベントのような加速度変化イベントが発生した場合(広義には加速度変化が所与の変化条件を満たした場合)に、図11(A)、図11(B)に示すようなフェードアウト処理を行う。例えば図11(A)のように表示画像(仮想カメラから見える画像)のフェードアウト処理を開始し、最終的には図11(B)に示すように画面全体をホワイトアウトする。例えば図11(A)ではG3に示す岩の画像が、図10(A)、図10(B)での岩の画像に比べて白色に近づいた色になっている。
この場合に例えば図8(B)のようにキャラクタCHが岩RKに衝突した後、所与の期間の間は、図10(A)、図10(B)のような通常のゲーム画像(シミュレーション画像)をHMDに表示する。そして、所与の期間が経過して、フェードアウト処理の開始タイミングになった場合に、図11(A)、図11(B)に示すようなフェードアウト処理(ホワイトアウト処理)を開始する。
図12(A)、図12(B)は、図9(A)、図9(B)のようにキャラクタCHが崖CFを越えて落下する場面においてHMDに表示される画像の例である。即ち、図12(A)ではH1に示す崖に向かってキャラクタCHが走行しており、図12(B)では、H2に示す崖下に向かってキャラクタCHが落下している。このように崖から落下して、図9(C)に示すようにキャラクタCHの進行方向DTが大きく変化すると、HMDの表示画像が激しく変化してしまい、ユーザの3D酔い等の問題を引き起こす。
そこで本実施形態では、この落下イベントのような加速度変化イベントが発生した場合に、図13(A)、図13(B)に示すようなフェードアウト処理を行う。例えば図13(A)のように表示画像のフェードアウト処理を開始し、最終的には図13(B)に示すように画面全体をホワイトアウトする。
この場合に図9(B)、図9(C)に示すようにキャラクタCHが崖CFから衝突した後、所与の期間の間は、図12(B)のような通常のゲーム画像(シミュレーション画像)をHMDに表示する。そして、所与の期間が経過して、フェードアウト処理の開始タイミングになった場合に、図13(A)、図13(B)に示すようなフェードアウト処理(ホワイトアウト処理)を開始する。
このように本実施形態では、キャラクタCH(移動体)の加速度の変化が、所与の変化条件を満たしたと判断される場合に、HMDの表示画像を、仮想カメラから見える画像(通常のゲーム画像、シミュレーション画像)とは異なる画像に変化させている。具体的には、衝突イベントや落下イベントなどの加速度変化イベントが発生した場合に、画面全体をフェードアウトするフェードアウト処理を行っている。これらの加速度変化イベントは、キャラクタCHの進行方向DTを、当該進行方向とは異なる方向に変化させるイベントである。
なお、加速度変化イベントの発生時(変化条件成立時)に行う処理は、このようなフェードアウト処理には限定されない。例えば図14(A)に示すようにぼかし処理、半透明合成処理等のエフェクト処理を行うようにしてもよい。例えば図14(A)では表示画像の全体に対してエフェクト処理を施している。例えばぼかし処理では、HMDの表示画像の全体をぼかす処理を行う。この場合にぼかし処理の開始タイミングから、ぼかしの度合い(広義には表示処理の処理度合い)を徐々に強くするようにしてもよい。半透明合成処理は、仮想カメラから見える画像に対して、所定の画像を半透明合成することで実現できる。この場合に半透明合成処理の開始タイミングから、半透明対象画像の半透明合成率(広義には表示処理の処理度合い)を徐々に高くするようにしてもよい。またエフェクト処理としては種々の処理を想定することができ、例えば二値化処理やモザイク処理などであってもよい。またエフェクト処理は、例えば仮想カメラから見える画像(原画像)に対して、画像フィルタ処理を施すことで実現できる。画像フィルタ処理は、例えば移動平均フィルタ処理、ガウシアンフィルタ処理、或いはメディアンフィルタ処理などである。また図14(B)に示すように、表示画像の一部の領域(例えば中央部の主要領域)に対してだけエフェクト処理(画像フィルタ処理)を行うようにしてもよい。
また本実施形態では、仮想カメラの視線方向の変化が所与の変化条件を満たしたと判断される場合に、HMDの表示画像を、仮想カメラから見える画像とは異なる画像に変化させてもよい。例えば仮想カメラの視線方向の変化イベントが発生した場合に、フェードアウト処理やエフェクト処理を行う。
例えば図15(A)では、移動体であるキャラクタCHがコースCS上を走行している。仮想カメラVCはキャラクタCHの視点の位置に設定されており、これにより一人称視点での画像が生成されている。そして図15(B)では、キャラクタCHが転倒してしまい、これに伴い仮想カメラVCの視線方向CVLが激しく変化している。このような場合にも、例えば図11(A)、図11(B)、図13(A)、図13(B)で説明したフェードアウト処理を行ったり、図14(A)、図14(B)で説明したエフェクト処理を行う。即ちHMDの表示画像の全体を変化させる処理を行う。より具体的には、図15(C)に示すように、仮想カメラVCの視線方向CVLの角度変化が、所与の角度θth以上である場合に、所与の変化条件が満たされたと判断して、HMDの表示画像を、仮想カメラVCから見える画像とは異なる画像に変化させる。例えば転倒等により、仮想カメラVCの視線方向がCVLから角度θth以上、変化して、CVL’になったと判断される場合に、表示画像に対してフェードアウト処理やエフェクト処理を行う。
以上のように本実施形態では、移動体の加速度の変化や仮想カメラの視線方向の変化が、所与の変化条件を満たした場に、HMDの表示画像を、仮想カメラから見える画像とは異なる画像に変化させている。具体的には、衝突イベントや落下イベントなどの加速度変化イベントが発生した場合や、転倒イベントなどの仮想カメラの視線方向変化イベントが発生した場合に、HMDの表示画像の全体を変化させる表示処理を行う。具体的には、表示画像をフェードアウトさせる処理を行ったり、表示画像に対するエフェクト処理(加工処理)を行う。
このようにすれば、加速度変化イベントや視線方向変化イベントの発生時に、例えばHMDの表示画像が大きく揺れたり、激しく揺れることで、ユーザの目の負担等になり、3D酔い等の不具合が発生してしまうのを、効果的に防止できるようになる。
例えばゲームに慣れていないユーザや初心者のユーザのゲームプレイでは、衝突や落下や転倒などのイベントが、頻繁に繰り返されてしまう。そして、これによりHMDの表示画像が頻繁に激しく変化すると、3D酔い等の問題を招く。例えば現実世界のユーザに対しては加速度は作用していないのに、仮想空間において衝突イベントや落下イベントなどの加速度変化イベントが発生し、それに対応した表示画像がHMDに表示されると、現実世界の事象と仮想世界の事象の間に乖離が生じてしまう。また現実世界のユーザの視線方向は変化していないのに、仮想空間において転倒イベント等が発生して、仮想カメラの視線方向が激しく変化し、それに対応した表示画像がHMDに表示されると、現実世界の事象と仮想世界の事象の間に乖離が生じてしまう。このような現実世界と仮想世界の事象の乖離が生じると、ユーザが3D酔いを引き起こしてしまう。
この点、本実施形態では、加速度変化イベントや視線方向変化イベントが発生すると、フェードアウト処理やエフェクト処理が行われ、ゲームが一時的に中断する。従って、現実世界と仮想世界の事象が乖離している時間が、短期間で済むようになり、HMDの表示画像の揺れを原因とするユーザの目の負担等を軽減できる。そして例えばイベントの発生場所或いはその周囲の場所からゲームの再スタートが行われる。例えば衝突、落下又は転倒などのイベントが発生した場所から、例えばゲームスタート地点側に戻った場所から、ゲームの再スタートが行われ、ユーザは、通常通りのゲームを再開できる。従って、例えばゲームに慣れていないユーザや初心者のユーザが、衝突、落下、転倒などを繰り返した場合でも、ユーザの目の負担等が十分に軽減されることで、3D酔いを引き起こしてしまうのを効果的に防止できるようになる。
図16(A)、図16(B)は、衝突や落下などのイベント発生時のフェードアウト処理の詳細を説明する図である。本実施形態では、仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミングや処理度合いを、所与の変化条件を満たす第1のイベントの発生時と、所与の変化条件を満たす第2のイベントの発生時とで異ならせている。なお以下では、仮想カメラから見える画像とは異なる画像に変化させる処理が、フェードアウト処理である場合を例にとり説明するが、当該処理は図14(A)、図14(B)に示すようなエフェクト処理等であってもよい。
例えば図16(A)に示すように、衝突イベントが発生すると、衝突の物理演算処理が行われる。例えば図8(B)ようにキャラクタCHが岩RKに衝突した場合に、衝突時のキャラクタCHの進行方向DTと、岩RKの衝突面の情報(形状情報。衝突面の向く方向の情報)から、物理演算処理を行って、衝突後の進行方向DTを求める。そして例えば図8(C)に示すように、求められた進行方向DTにキャラクタCHを移動させる処理が行われる。
この場合に図16(A)に示すように、所与の期間TAが経過するまでは、フェードアウト処理(エフェクト処理)を開始しない。そして、この期間TAにおいては通常のゲーム画像を表示する。例えば衝突により進行方向DTが変化した場合において仮想カメラから見える画像をHMDに表示する。そして期間TAの経過後に、フェードアウト処理を開始する。
また図16(B)に示すように、落下イベントが発生すると、落下の物理演算処理が行われる。例えば図9(B)に示すようにキャラクタCHが崖CFから落下した場合に、キャラクタCHの速度や重力加速度の情報に基づいて、落下後のキャラクタCHの進行方向を求める物理演算処理を行う。そして図9(C)に示すように、求められた進行方向DTの方にキャラクタCHを落下させる処理が行われる。
この場合に図16(B)に示すように、所与の期間TBが経過するまでは、フェードアウト処理(エフェクト処理)を開始しない。そして、この期間TBにおいては通常のゲーム画像を表示する。例えば、落下により進行方向DTが変化した場合において仮想カメラから見える画像をHMDに表示する。そして期間TBの経過後に、フェードアウト処理を開始する。
このようにすれば、衝突や落下のイベントの発生後、期間TA、TBが経過するまでは通常のゲーム画像が表示され、その後にフェードアウト処理が行われるため、ユーザが感じる不自然感を最小限にできる。即ち、期間TA、TBの経過を待たずに、フェードアウト処理が行われてしまうと、衝突や落下の直後に直ぐにフェードアウト処理が開始されてしまう。このようになると、ユーザは、自身がどのような状況になったかを把握できなくなり、ユーザの混乱や不自然感を招くおそれがある。
これに対して図16(A)、図16(B)では、期間TA、TBが経過するまでは通常のゲーム画像が表示され、その後にフェードアウト処理が行われる。従って、ユーザは、岩に衝突したり、崖から落下したことを、期間TA、TBでのHMDの表示画像を見ることで、適切に把握できるようになる。従って、ユーザは、衝突や落下により、どのような状況になったかを把握できるようになり、ユーザが不自然さを感じるなどの事態を防止できる。
更に本実施形態では、図16(A)、図16(B)から明らかなように、フェードアウト処理(広義には仮想カメラから見える画像とは異なる画像に変化させる処理)の処理開始タイミングを、イベントに応じて異ならせている。例えば衝突イベント(第1のイベント)と落下イベント(第2のイベント)とで、フェードアウト処理の処理開始タイミングを異ならせている。
例えば図16(A)の衝突イベントでは、処理開始タイミングTMAが早くなっている。即ち期間TAが短い。一方、図16(B)の落下イベントでは、処理開始タイミングTMBが図16(A)に比べて遅くなっている。即ち、期間TBの方が期間TAよりも長い。
例えば衝突イベントの発生時には、衝突によるユーザの混乱等を最小限に抑えるために、処理開始タイミングTMAを早くして、直ぐにフェードアウト処理(エフェクト処理)を開始する。一方、落下イベントの発生時には、落下している様子をユーザによく見せて、ゲームの演出効果を高めるために、処理開始タイミングTMBを、図16(A)の衝突時の処理開始タイミングTMAに比べて遅くする。こうすることで、ユーザは、自身が落下している様子を、長い期間TBの間、HMDの表示画像を介して仮想体験できるようになり、ゲームの演出効果を向上できる。
また本実施形態では、フェードアウト処理(仮想カメラから見える画像とは異なる画像に変化させる処理)の処理度合いを、イベントに応じて異ならせてもよい。例えば衝突イベント(第1のイベント)と落下イベント(第2のイベント)とで、フェードアウト処理の処理度合いを異ならせる。例えば衝突イベントでは、フェードアウト処理の処理度合いを強くして、例えば短い時間でホワイトアウトするようにする。一方、落下イベントでは、フェードアウト処理の処理度合いを弱くして、例えば衝突イベントに比べて長い時間をかけてホワイトアウトするようにする。
例えば図17(A)に示すように、各イベントEV1、EV2、EV3・・・に対して、処理開始タイミングTM1、TM2、TM3・・・の情報を対応づけておく。処理開始タイミングの情報は、例えばイベント発生後、フェードアウト処理やエフェクト処理などの表示処理が開始するまでの時間を特定する情報である。また図17(B)に示すように、各イベントEV1、EV2、EV3・・・に対して、処理度合いPD1、PD2、PD3・・・の情報を対応づけておく。処理度合いの情報は、例えばフェードアウト処理の開始後、完全にフェードアウトするまでの時間を特定する情報や、エフェクト処理でのエフェクトの強さ(例えばぼかし度合い、半透明度、フィルタ係数等)を特定する情報などである。このようにすることで、発生した各イベントに応じて、処理開始タイミングや処理度合いを異ならせることが可能になり、各イベントに応じた最適な処理開始タイミングや処理度合いで、フェードアウト処理やエフェクト処理を実行できるようになる。
4.2 仮想カメラの姿勢変化の無効処理
図18は、仮想空間においてスキーヤーであるキャラクタCHがコースCS上を滑って走行している様子を示す図である。図18において水平面HSは、仮想空間のワールド座標系での水平面(XZ平面)である。平坦なコースCSでは、図18のA1に示すようにキャラクタCHの進行方向DTは、水平面HSに平行(略平行。以下、同様)な方向になっている。そして仮想カメラVCの視線方向CVLも水平面HSに平行(略平行)な方向になっている。なお仮想カメラVCの視点位置CVPは、例えばキャラクタCHの視点の位置(例えば目の位置)に設定され、これにより一人称視点が実現される。
一方、図18のA2、A3では、キャラクタCHは下り坂のコースCSを走行しており、キャラクタCHの進行方向DTは、水平面HSに対して俯角をなす方向になっている。そしてキャラクタCHは、下り坂のコースCSの面に対して垂直(略垂直。以下、同様)の立ち姿勢になっているため、仮想カメラVCの視線方向CVLも、水平面HSに対して俯角をなす方向になっている。そして、その後、A4ではキャラクタCHは平坦なコースCSを走行するため、進行方向DT及び仮想カメラVCの視線方向CVLは、水平面HSに対して平行な方向へと戻っている。
このように図18では、コースCSのキャラクタCHの走行により、進行方向DTがA1〜A4に示すように変化すると、それに伴い仮想カメラVCの視線方向CVLも変化する。一人称視点の画像をHMDに表示する場合には、図18に示すように、進行方向DTの変化に連動して仮想カメラVCの視線方向CVLを変化させるのが一般的である。そして、このように仮想カメラVCの視線方向CVLが変化すると、図5のHMDの表示画像も、視線方向CVLの変化に応じて大きく変化してしまう。例えば、図18のA1、A2、A3では、水平面HSに平行な視線方向CVLでの表示画像から、水平面HSに対して俯角をなす視線方向CVLでの表示画像に変化し、その後、A4では、水平面HSに平行な視線方向CVLでの表示画像に戻る。即ち、キャラクタCHの進行方向DTの変化に伴い、仮想カメラVCの視線方向CVLが大きく変化し、HMDの表示画像も大きく揺れてしまう。また、例えばコースCSに細かい凹凸があるような場合には、その凹凸に応じて表示画像が激しく揺れてしまう。
そして、このように表示画像が揺れると、いわゆるユーザの3D酔いを引き起こしてしまう。例えば現実世界のスキーヤーは、図18のようなコースの起伏があった場合に、進行方向の変化(加速度の変化、重力方向の変化、遠心力の変化)を三半規管などにより検知して、例えば視線方向を、遠くの方を見るような方向に向ける。これにより、目に見える画像も変化しなくなり、酔いが防止される。
ところが、仮想空間の世界をHMDを介して見るようなVRのシステムでは、図18のように進行方向DTの変化に伴い、仮想カメラVCの視線方向CVLが変化してしまうと、ユーザの意思や感覚とは無関係に、HMDの表示画像が揺れてしまう。例えば現実世界のユーザは下りや上りのコースを実際には走行していないのに、HMDの表示画像だけが、仮想空間のコースの下りや上りの傾斜に応じて変化してしまう。従って、ユーザの意思や感覚とのズレが生じて、3D酔いを引き起こしてしまう。
この場合に図4の可動筐体40では、仮想空間でのコースの下りや上りの傾斜に応じて、ベース部41をX軸回りにピッチングさせており、これにより、仮想空間のコースの下りや上りの傾斜を、ある程度、ユーザに体感させることができるようになっている。しかしながら、例えば仮想空間でのコースの傾斜が20度〜40度というような傾斜である場合に、図4のベース部41のピッチングによる傾斜は例えば10度以下程度となる。このため、仮想世界のコースの傾斜とは大きな相違があり、図4のベース部41をピッチングさせても、表示画像の揺れを原因とする3D酔いの発生を十分には防止できない。
このように図18の仮想カメラVCの制御手法では、ユーザの意思や感覚とは無関係に、仮想空間のコースの形状に応じて、ユーザの頭部を、あたかも強制的に下に向けたり上に向けたりするような画像がHMDに表示されてしまうため、3D酔いを引き起こしてしまう。
そこで本実施形態では、ユーザの視線方向に対応する仮想カメラVCの視線方向CVLが、ユーザが自身の頭を自分で動かさない限り、例えば常に水平面HSに対して平行(略平行)になるようにする。即ち、仮想空間のコースCSに傾斜(起伏)があった場合にも、図18のように仮想カメラVCの視線方向CVLがコースCSの傾斜に沿うように変化することはなく、視線方向CVLが水平面HSに平行になるように、仮想カメラVCを制御する。この時に、仮想カメラVCの視線方向CVLは常に水平面HSに平行になるということではなく、ユーザが自身の意思や感覚で視線方向を下方向や上方向に向けた場合には、仮想カメラVCの視線方向CVLもそれに応じて下方向や上方向を向くようになる。こうすることで、ユーザの意思や反応に基づく視線方向の変化を許容しながら、ユーザの意思や感覚とは無関係に視線方向が変化してしまう事態を抑制できる。従って、ユーザの仮想現実感の向上と、HMDの表示画像の揺れを原因とする3D酔いの防止とを、両立して実現できるようになる。
より具体的には本実施形態では、ユーザの視点情報のトラッキング情報を取得し、取得されたトラッキング情報に基づいて仮想カメラVCの位置、姿勢を変化させる。ここで仮想カメラVCの位置は視点位置CVPに対応し、仮想カメラVCの姿勢は視線方向CVLに対応する。
例えば図19(A)〜図19(C)のように現実世界のユーザPLが視線方向VL(頭部)を下方向や上方向に向けると、当該ユーザPLの視点情報のトラッキング情報(視点トラッキング情報)が例えばHMD200のトラッキング処理により取得される。そして取得されたトラッキング情報(ユーザの視点位置、視線方向の特定情報)に基づいて、仮想カメラVCの視点位置CVP、視線方向CVLを設定することで、図19(A)〜図19(C)のように仮想カメラVCの位置、姿勢を変化させる。例えば図19(B)のようにユーザPLの視線方向VLが下方向を向けば、仮想カメラVCの視線方向CVLも下方向を向く。図19(C)のようにユーザPLの視線方向VLが上方向を向けば、仮想カメラVCの視線方向CVLも上方向を向く。このようにすることで、現実世界のユーザPLが視点位置VPや視線方向VLを変化させると、それに応じて仮想カメラVCの視点位置CVP、視線方向CVLも変化するようになる。従って、仮想カメラVCがユーザPLの実際の一人称視点のように振る舞うため、仮想現実感を向上できる。
より具体的には、ゲームの開始前に、ユーザに対して、基準ポーズ(基準となる立ち姿勢)をとることを指示する。そしてHMD200のトラッキング処理により、ユーザの初期視点位置、初期視線方向を検出し、記憶部(HMDやシミュレーションシステムの記憶部)に保存する。次に、ゲームが開始すると、今度は、保存された初期視点位置、初期視線方向からの変化情報が、トラッキング情報として取得される。即ち、ユーザの視点位置、視線方向の変化情報が、トラッキング情報として取得される。例えば視点位置の変化情報は、視点位置の座標の変化値であり、視線方向の変化情報は、視線方向を表す回転角度(回転軸回りでの回転角度)の変化値である。例えば初期視点位置の座標を(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)と表すことができる。
次にトラッキング情報に基づいて、仮想カメラの視点位置、視線方向を設定して、仮想カメラの位置、姿勢を変化させる。この場合に、仮想カメラの視点位置、視線方向の設定は、仮想カメラの初期視点位置の座標、初期視線方向を表す回転角度に対して、上述の(Δx、Δy、Δz)、(Δθx、Δθy、Δθz)を加算する処理などにより実現できる。
このような手法によれば、図4において可動筐体40にライドするユーザの身長(体格)の大小に依存せずに、キャラクタの視点位置に仮想カメラが設定されるようになる。従って、例えばユーザの身長に応じて異なるモデルのキャラクタを用意する必要がなくなるため、データ量の削減等を図れる。
以上のように本実施形態では、トラッキング処理により取得されたトラッキング情報に基づいて、仮想カメラVCの位置、姿勢を変化させている。こうすることで、現実世界のユーザが視点位置や視線方向を変化させると、それに連動して仮想空間での仮想カメラVCの視点位置、視線方向も変化するため、ユーザの仮想現実感を向上できる。
その一方で本実施形態では、図18のようにキャラクタCH(移動体)の進行方向DTが変化した場合にも、仮想カメラVCのピッチング及びローリングの少なくとも一方の姿勢変化については無効(或いは制限)になるように、仮想カメラVCを設定する。
例えば図20では、下り坂のコースCSを走行することで、B1、B2、B3、B4に示すようにキャラクタCHの進行方向DTが変化している。この場合にも図20では、仮想カメラVCのピッチングの姿勢変化(ピッチングに対応する回転軸の回りでの回転運動)は行われず、例えば仮想カメラVCの視線方向CVLは、水平面HSに平行な方向に維持される。即ち図18では、仮想カメラVCの視線方向CVLが、コースCSの状態(傾斜、起伏、形状等)に応じて変化しており、仮想カメラVCのピッチングの姿勢変化が行われていた。これに対して図20では、仮想カメラVCの視線方向CVLは、コースCSの状態に依存せずに、仮想カメラVCのピッチングの姿勢変化が行われない。但し、図20において、仮想カメラVCの視線方向CVLは、常に水平面HSに平行というわけではなく、図19(A)〜図19(C)で説明したように、ユーザが視線方向を上方向や下方向に向けると、それに応じて仮想カメラVCの視線方向CVLも変化する。
また本実施形態では、キャラクタCHが右方向や左方向に曲がるような進行方向の変化により、ローリングが生じるような状況になった場合にも、図21に示すように、仮想カメラ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軸回りの回転運動である。図20では、XV軸回りの回転運動である仮想カメラVCのピッチングが行われず、図21では、ZV軸回りの回転運動である仮想カメラVCのローリングが行われないように、仮想カメラVCが設定されている。一方、YV軸回りの回転運動である仮想カメラVCのヨーイングについては許容される。
なお図20、図21では、進行方向の変化による仮想カメラVCのピッチングやローリングの姿勢変化を無効にする場合について説明したが、当該姿勢変化を制限(抑制)するような仮想カメラVCの制御を行ってもよい。例えば図18のようにキャラクタCHの進行方向DTに平行になるように仮想カメラVCの視線方向CVLが変化した場合における、仮想カメラVCのピッチ角の変化をαとする。この場合に図20では、仮想カメラVCのピッチ角の変化はΔθp=0となっているが、Δθp<αというように、Δθpが十分に小さくなるように、仮想カメラVCのピッチングの姿勢変化を制限してもよい。また図21のコーナリングによるローリングにおいて、鉛直方向の軸に対するキャラクタCHの体軸(長辺方向に沿った軸。縦軸)の角度であるローリング角の変化をβとする。この場合に図21では、仮想カメラVCのロール角の変化はΔθr=0となっているが、Δθr<βというように、Δθrが十分に小さくなるように仮想カメラVCのローリングの姿勢変化を制限してもよい。
以上のように本実施形態によれば、キャラクタCH(移動体)の進行方向DTの変化により、ピッチングやローリングが発生するような状況になった場合にも、仮想カメラVCのピッチ角やロール角は変化しないようになる(或いはピッチ角やロール角の変化が制限される)。このため、HMDの表示画像が大きく揺れたり、激しく揺れるような事態が防止され、3D酔いの発生を抑制できる。この場合に図19(A)〜図19(C)に示すように、ユーザが頭部を動かすなどして視点位置VPや視線方向VLを変化させた場合には、それに応じて仮想カメラVCの姿勢が変化する。これにより、あたかも本当のスキーヤーになってコースを滑っているような仮想現実感をユーザに与えることができる。従って、本実施形態によれば、3D酔い等の不具合の発生の防止と、仮想現実感の向上を両立して実現できるシミュレーションシステムの提供が可能になる。
例えば本実施形態の比較例の手法として、仮想カメラの視線方向を、常に水平面に平行になるように設定する手法が考えられる。この比較例の手法は、通常の三人称視点の疑似三次元画像を生成するシステムには適している。しかしながら、この比較例の手法では、ユーザの意思や反応に依らずに、常に仮想カメラの視線方向を水平方向に向けているため、HMDを用いるようなシステムには不適である。
これに対して本実施形態の手法では、ユーザの意思や無意識の反応で、頭部を動かすなどして、現実世界でのユーザの視点位置や視線方向が変化すると、それに連動して仮想世界での仮想カメラの視点位置や視線方向が変化する(図19(A)〜図19(C))。従って、ユーザの意思や反応に基づく視点の変化が、仮想カメラの視点の変化として反映するようになるため、HMDを用いるシステムに最適な仮想カメラの制御を実現でき、ユーザの仮想現実感の向上等を図れる。そして本実施形態では、このようなユーザの意思や反応に基づく視点の変化を反映させながら、移動体の進行方向の変化による影響については、仮想カメラのピッチングやローリングの姿勢変化に対して反映させない。従って、仮想現実感の向上を図りながら、3D酔い等の発生を防止できるシミュレーションシステムの提供が可能になる。
図22は、仮想カメラのピッチングやローリングの姿勢変化の無効処理(制限処理)を実現する第1の実現手法を説明する図である。
図22では、C1〜C4に示すようにキャラクタCH(移動体)の進行方向DTが変化した場合にも、キャラクタCHのピッチング及びローリングの少なくとも一方の姿勢変化が無効(又は制限)になるように、キャラクタCHを移動させる処理が行われている。そして姿勢変化が無効(又は制限)にされたキャラクタCHの視点の位置に、仮想カメラVCが設定されている。別の言い方をすれば、ユーザに対応するキャラクタCH(仮想ユーザ)が仮想空間において移動する際に、その視線方向を、キャラクタCHと基準座標(足元位置LP)は共通で、体軸(Y軸)がワールド座標系の水平面HS(基準面)に垂直となる基本モデル(基本姿勢)の視点座標系に変換して演算することによって、3D酔いの発生を防止している。
例えば図18では、コースCSの状態(傾斜)に応じて、キャラクタCHのピッチングの姿勢が変化している。例えば下り坂のコースCSでは、キャラクタCHが前側にピッチングする姿勢変化が行われる。即ち水平方向に対して俯角となるピッチ角の姿勢変化が行われる。上り坂のコースCSでは、キャラクタCHが後ろ側にピッチングする姿勢変化が行われる。即ち水平方向に対して仰角となるピッチ角の姿勢変化が行われる。
これに対して図22では、C1〜C4に示すようにキャラクタCHの進行方向DTが変化した場合にも、キャラクタCHはピッチングの姿勢変化を行わない。例えばキャラクタCHの体軸(頭部と足元を結ぶ軸)が、ワールド座標系の水平面HSに対して例えば直角(略直角)になるように、キャラクタCHの姿勢が設定(固定)される。例えばキャラクタCHの足元の位置LP(基準座標)に対して、基本姿勢(直立姿勢)のキャラクタCHが配置される。そしてキャラクタCHの進行方向DTが変化した場合にも、キャラクタCHは、基本姿勢(直立姿勢)のままコースCSを走行する。例えばコース情報として、各ポイントでのコースの高さ情報が設定されている場合に、キャラクタCHを移動させる際には、このコース情報の高さ情報だけを参照する。そしてキャラクタCHの姿勢は変化させずに、例えば基準位置である足元位置LPの高さだけを変化させる。図22では、下り坂のコースCSであるため、キャラクタCHがコースCSを走行するにつれて、キャラクタCH(足元位置LP)の高さだけが変化し、キャラクタCHの姿勢は変化しない。
同様に、右方向や左方向へのコーナリングにより、図21で説明したように姿勢をローリングさせるような状況が発生した場合にも、キャラクタCHのローリングの姿勢変化は行われない。即ち、コーナリングによる進行方向DTの変化があった場合にも、キャラクタCHは、図22のような基本姿勢(立ち姿勢)のままで、図21のようなローリングの姿勢変化は行われずに、コースCS上を走行するようになる。
そして、このような基本姿勢のキャラクタCHの視点(視点座標系)の位置に仮想カメラVCの視点位置CVPが設定される。また仮想カメラVCの視線方向CVLは、水平面HSに平行な方向を向いている。例えばキャラクタCHの姿勢は基本姿勢のままで変化しないため、足元の位置LPに対するキャラクタCHの視点位置は固定の位置となっており、この固定の位置に仮想カメラVCの視点位置CVPが設定される。またキャラクタCHの基本姿勢は直立姿勢であり、仮想カメラVCの視線方向CVLはキャラクタCHの体軸と直交(略直交)する方向に向いている。
なお、実際には、スキーヤーであるキャラクタCHは少しだけ前傾した基本姿勢となっている。このため、キャラクタCHの体軸と水平面HSのなす角度は、90度よりも少しだけ小さくなり、キャラクタCHの体軸と仮想カメラVCの視線方向CVLのなす角度は、90度よりも少しだけ大きくなる。
このように図22では、進行方向DTが変化した場合にも、キャラクタCHがピッチングやローリングの姿勢変化を行わずに、基本姿勢(直立姿勢、前傾姿勢)のままでコースCS上を走行する。そして、このような基本姿勢のままのキャラクタCHの視点位置に仮想カメラVCを設定することで、結果的に、図20に示すような仮想カメラVCの姿勢制御を実現できる。即ち、進行方向DTが変化した場合にも、仮想カメラVCのピッチングやローリングが行われないような姿勢制御を実現できる。
図23は、仮想カメラのピッチングやローリングの姿勢変化の無効処理(制限処理)の第2の実現手法を説明する図である。
図23のF1〜F4では、キャラクタCH(移動体)の進行方向DTの変化に応じてキャラクタCHの姿勢が変化するようにキャラクタCHを移動させる処理が行われている。例えば下り坂のコースCSであれば、キャラクタCHが前側にピッチングする姿勢変化が行われ、上り坂のコースCSであれば、後ろ側にピッチングする姿勢変化が行われる。また、右方向や左方向に曲がる場合には、ローリングする姿勢変化が行われる。
そして図23のF1〜F4では、このように進行方向DTの変化に応じてキャラクタCHの姿勢が変化した場合にも、仮想カメラVCのピッチングやローリングの姿勢変化については無効(制限)になるように、仮想カメラVCを設定される。
例えば図23のF2、F3では、下り坂のコースCSであるため進行方向DTは下方向を向いており、キャラクタCHについても前側にピッチングする姿勢変化が行われている。しかしながら、仮想カメラVCの視線方向CVLは、水平方向を向いており、進行方向DTとは異なる方向を向いている。
このようにすれば、コースCSの状態等に応じてキャラクタCHの進行方向が変化した場合にも、ユーザが頭部等を動かさない限り、仮想カメラVCの視線方向CVLは一定の方向(水平方向)を向くようになる。従って、HMDの表示画像が大きく揺れたり、激しく揺れる事態を防止でき、3D酔いの発生を防止できる。そして図22の第1の実現手法とは異なり、図23の第2の実現手法では、キャラクタCHの姿勢については、進行方向DTに応じて変化する。例えば下り坂のコースCSであれば、下方向を向く姿勢になり、上り坂のコースCSであれば、上方向を向く姿勢になる。またコーナリング時には、図21のように体軸を右又は左に傾けたローリングの姿勢になる。従って、例えば対戦用画像、観賞用画像又はデモ画像においても、相手ユーザやギャラリー等が不自然さを感じない画像を表示できるようになる。従って、HMDの表示画像の揺れによる3D酔いの発生の防止と、適切な対戦用画像、観賞用画像又はデモ画像の生成とを両立して実現できるようになる。なお、対戦用画像は、対戦用として用いられる画像である。例えば対戦用画像は、当該ユーザのキャラクタ等の移動体を、対戦相手となる相手ユーザが見るための画像であり、例えば当該相手ユーザのHMD(表示部)に表示される画像である。観賞用画像(観戦用画像)は、観賞用に用いられる画像である。例えば観賞用画像は、ユーザの移動体が移動するゲームの様子を観賞(観戦)するための画像である。例えば観賞用画像は、ギャラリーがゲームの様子を観るために観賞用モニターに表示される画像である。デモ用画像は、デモ用として用いられる画像である。例えばデモ用画像は、ゲームの開始前や開始後などにデモンストレーション用に表示される画像である。
図24(A)〜図24(C)は、崖CFからの落下イベント時における仮想カメラVCの姿勢変化を説明する図である。図24(A)のようにキャラクタCHが崖CFから飛び出して、図24(B)や図24(C)に示すように落下した場合に、キャラクタCHの進行方向DTが水平方向から下側方向に変化する。この場合に本実施形態では図20で説明した手法を用いることで、図24(B)、図24(C)に示すように、仮想カメラVCの視線方向CVLは下側方向を向かず、水平方向に維持される。即ち、仮想カメラVCのピッチングの姿勢変化が無効になっている。
ここで図24(B)は、図22の第1の実現手法を用いた場合の例であり、図24(C)は、図23の第2の実現手法を用いた場合の例である。図24(B)では第1の実現手法を用いているため、キャラクタCHのピッチングの姿勢変化が無効になっている。図24(C)では第2の実現手法を用いているため、キャラクタCHはピッチングの姿勢変化を行っているが、仮想カメラVCについてはピッチングの姿勢変化が無効になっている。なお、図24(B)、図24(C)において、図19(B)に示すように現実世界のユーザが下側方向を向いた場合には、仮想カメラVCの視線方向CVLも下側方向を向くようになり、ユーザは崖下の様子を見ることが可能になる。
図25(A)〜図25(C)は、岩RKへの衝突イベント時における仮想カメラVCの姿勢変化を説明する図である。図25(A)のようにキャラクタCHが岩RKに衝突した場合に、図25(B)、図25(C)では、キャラクタCHの進行方向DTが例えば上側方向に変化している。この場合に本実施形態では図20で説明した手法を用いること、図25(B)、図25(C)に示すように、仮想カメラVCの視線方向CVLは上側方向を向かず、水平方向に維持される。即ち、仮想カメラVCのピッチングの姿勢変化が無効になっている。
ここで図25(B)は、図22の第1の実現手法を用いた場合の例であり、図25(C)は、図23の第2の実現手法を用いた場合の例である。図25(B)では第1の実現手法を用いているため、キャラクタCHのピッチングの姿勢変化が無効になっている。図25(C)では第2の実現手法を用いているため、キャラクタCHはピッチングの姿勢変化を行っているが、仮想カメラVCについてはピッチングの姿勢変化が無効になっている。なお図25(B)、図25(C)において、図19(C)に示すように現実世界のユーザが上側方向を向いた場合には、仮想カメラVCの視線方向CVLも上側方向を向くようになる。
このように図24(A)〜図25(C)では、仮想カメラVCのピッチング等の姿勢変化が無効になるため、ユーザの3D酔い等の発生を抑制できる。しかしながら、例えば図24(A)〜図24(C)では、仮想カメラVCの視線方向CVLは水平に維持されるものの、仮想カメラVCの視点位置CVPが下側方向に移動するため、図5のHMDの表示画像もこれに伴い大きく変化してしまう。また図25(A)〜図25(C)では、仮想カメラVCの視点位置CVPが上側方向に移動するため、図5のHMDの表示画像もこれに伴い大きく変化してしまう。従って、仮想カメラのピッチング等の姿勢変化を無効にする手法だけでは、ユーザの3D酔い等の発生を完全には防止できない。
この点、本実施形態では、図10(A)〜図14(B)で説明したように、衝突イベントや落下イベントが発生した場合に、表示画像のフェードアウト処理等を行っている。従って、図24(A)〜図25(C)において、仮想カメラVCの視点位置CVPが下側方向や上側方向に移動して、HMDの表示画像が大きく変化した場合にも、短時間で表示画像をフェードアウトすることなどにより、ユーザの3D酔い等の発生を防止できるようになる。
4.3 可動筐体及び出力音の制御、ユーザ設定、プレイ履歴
本実施形態では、図26に示すように、移動体(キャラクタ等)の進行方向の変化又は移動体が移動するコースの状況(状態)に応じて、図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酔いが発生する事態してしまうおそれがあるが、図26の本実施形態の手法によれば、このような事態の発生を防止できる。
また本実施形態では、ユーザによる設定情報又はユーザのプレイ履歴情報に基づいて、フェードアウト処理やエフェクト処理(仮想カメラから見える画像とは異なる画像に変化させる表示処理)の処理開始タイミングや処理度合いを変化させてもよい。
例えば図27は、ユーザがゲームの各種のオプションを設定するオプション設定画面の例である。このオプション設定画面において、ユーザは、フェードアウト処理やエフェクト処理の処理開始タイミングや処理度合いを設定できるようになっている。例えば3D酔いを起こしやすいユーザは、処理開始タイミングを早くしたり、処理度合いを強くする。こうすることで、フェードアウト処理やエフェクト処理が短時間で開始したり、その処理度合いが強くなるため、このようなユーザが3D酔いを引き起こすのを効果的に防止できる。一方、3D酔いを起こしにくいユーザは、処理開始タイミングを遅くしたり、処理度合いを弱くすることで、よりリアルな設定でのゲームを楽しめるようになる。
また図28では、ユーザのプレイ履歴の情報に基づいて、フェードアウト処理やエフェクト処理の処理開始タイミングや処理度合いを設定する。例えばユーザのプレイ履歴情報に基づいて、例えば衝突、落下、転倒などのイベントの発生率が高いと判断されるユーザについては、処理開始タイミングを早くしたり、処理度合いを強くする。こうすることで、ゲームプレイに慣れていないと判断されるユーザや、初級者であると判断されるユーザについては、処理開始タイミングを早くしたり、処理度合いを強くすることで、3D酔いを引き起こすのを効果的に防止できる。一方、ゲームプレイに慣れている判断されるユーザや、上級者であると判断されるユーザについては、3D酔いを起こしにくいと判断して、処理開始タイミングを遅くしたり、処理度合いを弱くする。例えばプレイ履歴情報に基づいて、ユーザの衝突回数、落下回数、転倒回数、又は過去のセッテイング(オプション設定等)を特定する。そして、ユーザの衝突回数、落下回数、転倒回数又は過去のセッテイングなどの情報に基づいて、仮想カメラから見える画像とは異なる画像に変化させる処理を実行する。例えばフェードアウト処理やエフェクト処理の処理開始タイミングや処理度合いなどの設定パラメータを、当該情報に基づいて決定する。なおプレイ履歴の情報は、例えば図1の携帯型情報記憶媒体195(ICカード等)に記憶されており、携帯型情報記憶媒体195からプレイ履歴の情報に基づいて、処理開始タイミングや処理度合いの設定を行う。或いは外部のサーバからユーザのプレイ履歴の情報をダウンロードしてもよい。
4.4 処理例
次に本実施形態の処理例について図29のフローチャートを用いて説明する。
まず、ユーザの操作情報を取得する(ステップS1)。例えば図1の操作部160を用いて入力したユーザの操作情報を取得する。またユーザの視点情報のトラッキング情報を取得する(ステップS2)。例えば図2(A)〜図3(B)等で説明したトラッキング処理により得られたトラッキング情報を取得する。そしてユーザの操作情報、コース情報等に基づく、移動体の移動処理を実行する(ステップS3)。例えばユーザの操作情報に基づいて、コース情報で規定されるコース上で、キャラクタ等の移動体を移動させる処理を実行する。
次に、移動体の加速度の変化、仮想カメラの視線方向の変化について、所与の変化条件を満たすイベントが発生したか否かを判断する(ステップS4)。例えば前述した衝突イベントや落下イベントや転倒イベントが発生したか否かを判断する。そして、当該イベントが発生した場合には、当該イベントに対応する処理開始タイミングになったか否かを判断する(ステップS5)。この処理開始タイミングは、例えば図17(A)で説明したようなテーブルデータを用いて取得できる。そして、処理開始タイミングになった場合には、当該イベントに対応する処理度合いで、フェードアウト処理(エフェクト処理)を実行する(ステップS6)。この処理度合いは、例えば図17(B)で説明したようなテーブルデータを用いて取得できる。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(移動体、伸縮部等)と共に記載された用語(キャラクタ、エアバネ部等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また移動体の移動処理、仮想カメラの制御処理(設定処理)、変化条件の成立やイベント発生の判断処理、HMDの表示画像の表示処理、フェードアウト処理、エフェクト処理等も、本実施形態で説明したものに限定されず、これらと均等な手法・処理・構成も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲーム装置、家庭用ゲーム装置、又は多数のユーザが参加する大型アトラクションシステム等の種々のシミュレーションシステムに適用できる。
CH キャラクタ(移動体)、DT 進行方向、CS コース、
VC 仮想カメラ、VP、CVP 視点位置、VL、CVL 視線方向、
LP 足元位置、HS 水平面、RK 岩、CF 崖、
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 (14)

  1. 頭部装着型表示装置を装着するユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、
    前記移動体の移動に応じて移動する仮想カメラの制御を行う仮想カメラ制御部と、
    前記頭部装着型表示装置の表示画像として、前記仮想空間において前記仮想カメラから見える画像を生成する表示処理部と、
    を含み、
    前記表示処理部は、
    前記移動体の進行方向を、前記進行方向とは異なる方向に変化させる進行方向変化イベントが発生した場合に、所与の変化条件が満たされたと判断して、前記頭部装着型表示装置の表示画像を、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理を行うことを特徴とするシミュレーションシステム。
  2. 請求項1において、
    前記表示処理部は、
    前記所与の変化条件が満たされた場合に、前記頭部装着型表示装置の表示画像の全体を変化させる表示処理を行うことを特徴とするシミュレーションシステム。
  3. 請求項2において、
    前記表示処理部は、
    前記表示画像の全体を変化させる表示処理として、前記表示画像をフェードアウトさせる処理を行うことを特徴とするシミュレーションシステム。
  4. 請求項1乃至3のいずれかにおいて、
    前記表示処理部は、
    前記所与の変化条件が満たされた場合に、前記仮想カメラから見える画像に対して所与のエフェクト処理を施す表示処理を行うことを特徴とするシミュレーションシステム。
  5. 請求項1乃至4のいずれかにおいて、
    前記進行方向変化イベントは、前記移動体の衝突イベント及び前記移動体の落下イベントの少なくとも1つであることを特徴とするシミュレーションシステム。
  6. 請求項1乃至のいずれかにおいて、
    前記表示処理部は、
    前記仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミング及び処理度合いの少なくとも一方を、前記所与の変化条件を満たす第1のイベントの発生時と、前記所与の変化条件を満たす第2のイベントの発生時とで異ならせることを特徴とするシミュレーションシステム。
  7. 請求項1乃至のいずれかにおいて、
    前記仮想カメラ制御部は、
    前記ユーザの一人称視点として設定される前記仮想カメラの制御を行うことを特徴とするシミュレーションシステム。
  8. 請求項1乃至のいずれかにおいて、
    前記頭部装着型表示装置を装着する前記ユーザの視点情報のトラッキング情報を取得する入力処理部を含み、
    前記仮想カメラ制御部は、
    前記トラッキング情報に基づいて前記仮想カメラの位置、姿勢を変化させる一方で、前記移動体の進行方向が変化した場合にも前記仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、前記仮想カメラを設定することを特徴とするシミュレーションシステム。
  9. 頭部装着型表示装置を装着するユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、
    前記移動体の移動に応じて移動する仮想カメラの制御を行う仮想カメラ制御部と、
    前記頭部装着型表示装置の表示画像として、前記仮想空間において前記仮想カメラから見える画像を生成する表示処理部と、
    前記頭部装着型表示装置を装着する前記ユーザの視点情報のトラッキング情報を取得する入力処理部と、
    を含み、
    前記表示処理部は、
    前記移動体の加速度の変化又は前記仮想カメラの視線方向の変化が、所与の変化条件を満たしたと判断される場合に、前記頭部装着型表示装置の表示画像を、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理を行い、
    前記仮想カメラ制御部は、
    前記トラッキング情報に基づいて前記仮想カメラの位置、姿勢を変化させる一方で、前記移動体の進行方向が変化した場合にも前記仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、前記仮想カメラを設定することを特徴とするシミュレーションシステム。
  10. 請求項1乃至9のいずれかにおいて、
    前記移動体が移動するコースの状況又は前記移動体の進行方向の変化に応じて、前記ユーザのプレイ位置を変化させる可動筐体を含むことを特徴とするシミュレーションシステム。
  11. 請求項1乃至10のいずれかにおいて、
    前記移動体が移動するコースの状況に応じた音又は前記移動体の進行方向の変化に応じた出力音を生成する音処理部を含むことを特徴とするシミュレーションシステム。
  12. 請求項1乃至11のいずれかにおいて、
    前記表示処理部は、
    前記ユーザによる設定情報又は前記ユーザのプレイ履歴情報に基づいて、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミング及び処理度合いの少なくとも一方を変化させることを特徴とするシミュレーションシステム。
  13. 頭部装着型表示装置を装着するユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、
    前記移動体の移動に応じて移動する仮想カメラの制御を行う仮想カメラ制御部と、
    前記頭部装着型表示装置の表示画像として、前記仮想空間において前記仮想カメラから見える画像を生成する表示処理部として、
    コンピュータを機能させ、
    前記表示処理部は、
    前記移動体の進行方向を、前記進行方向とは異なる方向に変化させる進行方向変化イベントが発生した場合に、所与の変化条件が満たされたと判断して、前記頭部装着型表示装置の表示画像を、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理を行うことを特徴とするプログラム。
  14. 頭部装着型表示装置を装着するユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、
    前記移動体の移動に応じて移動する仮想カメラの制御を行う仮想カメラ制御部と、
    前記頭部装着型表示装置の表示画像として、前記仮想空間において前記仮想カメラから見える画像を生成する表示処理部と、
    前記頭部装着型表示装置を装着する前記ユーザの視点情報のトラッキング情報を取得する入力処理部として、
    コンピュータを機能させ、
    前記表示処理部は、
    前記移動体の加速度の変化又は前記仮想カメラの視線方向の変化が、所与の変化条件を満たしたと判断される場合に、前記頭部装着型表示装置の表示画像を、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理を行い、
    前記仮想カメラ制御部は、
    前記トラッキング情報に基づいて前記仮想カメラの位置、姿勢を変化させる一方で、前記移動体の進行方向が変化した場合にも前記仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、前記仮想カメラを設定することを特徴とするプログラム。
JP2016138928A 2016-07-13 2016-07-13 シミュレーションシステム及びプログラム Active JP6719308B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016138928A JP6719308B2 (ja) 2016-07-13 2016-07-13 シミュレーションシステム及びプログラム
CN201780043165.9A CN109478341A (zh) 2016-07-13 2017-07-06 模拟系统、处理方法及信息存储介质
PCT/JP2017/024793 WO2018012394A1 (ja) 2016-07-13 2017-07-06 シミュレーションシステム、処理方法及び情報記憶媒体
US16/245,716 US10955909B2 (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
JP2016138928A JP6719308B2 (ja) 2016-07-13 2016-07-13 シミュレーションシステム及びプログラム

Publications (2)

Publication Number Publication Date
JP2018010487A JP2018010487A (ja) 2018-01-18
JP6719308B2 true JP6719308B2 (ja) 2020-07-08

Family

ID=60952521

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US10955909B2 (ja)
JP (1) JP6719308B2 (ja)
CN (1) CN109478341A (ja)
WO (1) WO2018012394A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11480787B2 (en) 2018-03-26 2022-10-25 Sony Corporation Information processing apparatus and information processing method

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102374404B1 (ko) * 2017-07-25 2022-03-15 삼성전자주식회사 콘텐트를 제공하기 위한 디바이스 및 방법
JP7104539B2 (ja) * 2018-03-29 2022-07-21 株式会社バンダイナムコエンターテインメント シミュレーションシステム及びプログラム
JP2020004263A (ja) * 2018-06-29 2020-01-09 株式会社コロプラ 仮想体験をユーザに提供するためのプログラム、コンピュータ及び方法
JP2020042480A (ja) * 2018-09-10 2020-03-19 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
DE102019002403A1 (de) * 2019-04-02 2020-10-08 Daimler Ag Verfahren und Vorrichtung zur Beeinflussung einer optischen Ausgabe von Bilddaten auf einer Ausgabeeinrichtung in einem Fahrzeug
US11699279B1 (en) * 2019-06-28 2023-07-11 Apple Inc. Method and device for heading estimation
JP6761888B1 (ja) 2019-10-25 2020-09-30 株式会社バーチャルキャスト 表示制御装置、表示制御方法、および表示システム
US11301047B2 (en) * 2020-04-24 2022-04-12 Sony Interactive Entertainment Inc. Hybrid wireless streaming solution, switching from 2D to 3D based on an intuitive hand gesture in virtual reality or augmented reality (AR) head-mounted displays (HMD)
US11465031B2 (en) * 2020-09-16 2022-10-11 RevolutioNice, Inc. Ambulation simulation systems, terrain simulation systems, treadmill systems, and related systems and methods
CN112802166B (zh) * 2021-01-18 2023-08-08 网易(杭州)网络有限公司 模拟虚拟植物受风摆动的显示方法、装置、存储介质及设备
US20220295040A1 (en) * 2021-03-11 2022-09-15 Quintar, Inc. Augmented reality system with remote presentation including 3d graphics extending beyond frame
CN112862935B (zh) * 2021-03-16 2023-03-17 天津亚克互动科技有限公司 游戏角色的运动处理方法及装置、存储介质、计算机设备

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5354202A (en) * 1990-08-01 1994-10-11 Atari Games Corporation System and method for driver training with multiple driver competition
US5707237A (en) * 1993-04-20 1998-01-13 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
TW469148B (en) * 1996-10-09 2001-12-21 Sega Enterprises Kk Game apparatus, method of game processing, game execution method, and game system
US6752716B1 (en) * 1997-11-07 2004-06-22 Kabushiki Kaisha Sega Enterprises Game machine for simulating vibration
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 株式会社ナムコ 画像生成装置及び情報記憶媒体
JP2000339490A (ja) * 1999-05-28 2000-12-08 Mitsubishi Electric Corp Vr酔い低減方法
JP2003066825A (ja) * 2001-08-24 2003-03-05 Mitsubishi Heavy Ind Ltd 擬似体感装置
JP4957938B2 (ja) * 2001-09-19 2012-06-20 株式会社セガ ゲームプログラム、ゲーム装置及びネットワークサーバ
EP1495434B1 (en) * 2002-04-05 2018-02-28 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 任天堂株式会社 ゲームプログラムおよびゲーム装置
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 任天堂株式会社 画像処理プログラム、装置、システムおよび方法
US9179619B1 (en) * 2012-03-01 2015-11-10 Pioneer Hi-Bred International, Inc. Soybean variety XB72D12
US20160033770A1 (en) * 2013-03-26 2016-02-04 Seiko Epson Corporation Head-mounted display device, control method of head-mounted display device, and display system
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
US10013808B2 (en) * 2015-02-03 2018-07-03 Globus Medical, Inc. Surgeon head-mounted display apparatuses
CN105653020A (zh) * 2015-07-14 2016-06-08 朱金彪 穿越时空的方法和装置以及使用其的眼镜或头盔
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
CN105320820A (zh) * 2015-12-02 2016-02-10 上海航空电器有限公司 基于沉浸式虚拟现实平台的快速座舱设计系统及方法
US10133343B2 (en) * 2015-12-02 2018-11-20 Tactonic Tecnologies, LLC Foot operated navigation and interaction for virtual reality experiences
JP5996814B1 (ja) * 2016-02-08 2016-09-21 株式会社コロプラ 仮想空間の画像をヘッドマウントディスプレイに提供する方法及びプログラム
US20170228931A1 (en) * 2016-02-08 2017-08-10 Google Inc. Limited field of view in virtual reality
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 任天堂株式会社 ゲームシステム、ゲームプログラム、情報処理装置およびゲーム制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11480787B2 (en) 2018-03-26 2022-10-25 Sony Corporation Information processing apparatus and information processing method

Also Published As

Publication number Publication date
WO2018012394A1 (ja) 2018-01-18
US10955909B2 (en) 2021-03-23
JP2018010487A (ja) 2018-01-18
CN109478341A (zh) 2019-03-15
US20190220088A1 (en) 2019-07-18

Similar Documents

Publication Publication Date Title
JP6719308B2 (ja) シミュレーションシステム及びプログラム
JP6689694B2 (ja) シミュレーションシステム及びプログラム
JP6714791B2 (ja) シミュレーションシステム及びプログラム
US11014000B2 (en) Simulation system, processing method, and information storage medium
US10639557B2 (en) Synchronized motion simulation for virtual reality
JP6761340B2 (ja) シミュレーションシステム及びプログラム
JP6957218B2 (ja) シミュレーションシステム及びプログラム
JP6712423B2 (ja) シミュレーションシステム
US20190105572A1 (en) Drivable vehicle augmented reality game
JP6849317B2 (ja) ゲームシステム
JP6774260B2 (ja) シミュレーションシステム
JP6910809B2 (ja) シミュレーションシステム、プログラム及びコントローラ
JP7072441B2 (ja) シミュレーションシステム及びプログラム
JP6918189B2 (ja) シミュレーションシステム及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200501

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200616

R150 Certificate of patent or registration of utility model

Ref document number: 6719308

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250