JP2021186373A - ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法 - Google Patents

ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法 Download PDF

Info

Publication number
JP2021186373A
JP2021186373A JP2020096049A JP2020096049A JP2021186373A JP 2021186373 A JP2021186373 A JP 2021186373A JP 2020096049 A JP2020096049 A JP 2020096049A JP 2020096049 A JP2020096049 A JP 2020096049A JP 2021186373 A JP2021186373 A JP 2021186373A
Authority
JP
Japan
Prior art keywords
return movement
posture
designated object
processor
memory
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
JP2020096049A
Other languages
English (en)
Other versions
JP7436293B2 (ja
Inventor
直希 深田
Naoki Fukada
コリー マイケル バネル
Bunnell Corey Michael
祐也 佐藤
Yuya Sato
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.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2020096049A priority Critical patent/JP7436293B2/ja
Priority to US17/328,218 priority patent/US11701588B2/en
Publication of JP2021186373A publication Critical patent/JP2021186373A/ja
Priority to US18/322,220 priority patent/US20230321544A1/en
Priority to JP2024017949A priority patent/JP2024036655A/ja
Application granted granted Critical
Publication of JP7436293B2 publication Critical patent/JP7436293B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the 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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/422Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle automatically for the purpose of assisting the player, e.g. automatic braking in a driving 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/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/537Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
    • 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/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Optics & Photonics (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】仮想空間内におけるオブジェクトの位置や姿勢を戻しながら、当該戻る動きを利用可能とするゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法を提供する。【解決手段】操作入力に基づいて選択された指定オブジェクトに対して、操作入力に基づいて開始指示された時点から順に遡って過去にメモリに記憶された位置および姿勢に戻る復帰移動をするように、仮想的な物理演算に用いられる運動に関するパラメータを変化させ、仮想的な物理演算に基づいて、プレイヤキャラクタ、指定オブジェクト、およびそれら以外のオブジェクトを含めた仮想空間内の状態を更新させる。【選択図】図12

Description

本発明は、仮想空間内におけるオブジェクトに対する処理を行うゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法に関する。
従来、仮想空間内に配置されているオブジェクトの動きを利用するゲームプログラムがある(例えば、非特許文献1参照)。
"ゼルダの伝説 ブレス オブ ザ ワイルド"、[online]、任天堂株式会社、[令和2年4月24日検索]、インターネット(URL:https://www.nintendo.co.jp/zelda/index.html)
しかしながら、上記非特許文献1で開示されたゲームプログラムでは、仮想空間内で動作するオブジェクトにおいて、当該動作を戻す動きを利用することはできなかった。
それ故に、本発明の目的は、仮想空間内におけるオブジェクトの位置や姿勢を戻しながら、当該戻る動きを利用可能とするゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法を提供することである。
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
本発明のゲームプログラムの一構成例は、情報処理装置に含まれるコンピュータで実行される。ゲームプログラムは、コンピュータに、ユーザの操作入力に基づいて、仮想空間内においてプレイヤキャラクタを制御させ、仮想空間内における所定範囲内のオブジェクトについて、時間毎の位置および姿勢を時間経過に沿ってメモリに記憶させ、オブジェクトのうち、操作入力に基づいて選択された指定オブジェクトに対して、操作入力に基づいて開始指示された時点から順に遡って過去にメモリに記憶された位置および姿勢に戻る復帰移動をするように、仮想的な物理演算に用いられる運動に関するパラメータを変化させ、仮想的な物理演算に基づいて、プレイヤキャラクタ、指定オブジェクト、およびそれら以外のオブジェクトを含めた仮想空間内の状態を更新させる。
上記によれば、仮想空間内におけるオブジェクトの位置や姿勢を戻しながら、当該戻る動きを利用可能とする今までにないゲームを実現することができる。
また、指定オブジェクトに復帰移動をさせるとき、当該復帰移動の経過に応じてより過去にメモリに記憶された位置および姿勢を目標とし、当該目標の位置および姿勢となるように、指定オブジェクトのパラメータとして速度および角速度、または加速度および角加速度を変更させてもよい。
上記によれば、速度および角速度、または加速度および角加速度を用いてオブジェクトを復帰移動させることによって、仮想空間の物理法則に応じた移動を演出することができる。
また、上記時間毎の位置および姿勢は、表示の単位時間となるフレーム毎にメモリに記憶されてもよい。上記復帰移動中の経過フレームに応じてより過去のフレームにおいてメモリに記憶された位置および姿勢が目標となってもよい。
上記によれば、表示の単位時間毎に記憶された位置および姿勢を目標としてオブジェクトが移動するため、スムーズに復帰移動することができる。
また、上記時間毎の位置および姿勢は、少なくとも開始指示までの最新の所定時間分までメモリに記憶されてもよい。
上記によれば、最新の所定時間分に記憶された位置および姿勢に基づいてオブジェクトが復帰移動するため、ユーザが記憶しているオブジェクトの位置および/または姿勢変化を遡る動作を実現することができる。
また、コンピュータに、さらに、指定オブジェクトが、所定時間分前にメモリに記憶された位置および姿勢へ向かう復帰移動をするか、操作入力によって復帰移動の解除指示がされた場合に当該復帰移動を終了させてもよい。
上記によれば、予定されている移動を完了して終了するオブジェクトの復帰移動を、ユーザ操作に応じて中断させることができる。
また、コンピュータに、さらに、メモリに記憶された位置および姿勢に基づいて、指定オブジェクトが復帰移動をする際の移動経路を示すための経路表示オブジェクトを仮想空間内に配置させてもよい。
上記によれば、復帰移動が予定されている経路をユーザに提示することができる。
また、上記時間毎の位置および姿勢は、表示の単位時間となるフレーム毎に少なくとも開始指示までの最新の所定時間分までメモリに記憶されてもよい。コンピュータに、さらに、操作入力に基づいて指定オブジェクトが選択されたとき、メモリに記憶された位置および姿勢に基づいて、指定オブジェクトが復帰移動をする際の所定時間分の移動経路を示すための経路表示オブジェクトを仮想空間内に配置させてもよい。この場合、開始指示に基づいて指定オブジェクトに復帰移動をさせるとき、当該復帰移動の経過フレームに応じてより過去のフレームにメモリに記憶された位置および姿勢を目標とし、当該目標の位置および姿勢となるように、指定オブジェクトのパラメータとして速度および角速度、または加速度および角加速度を変更させてもよい。コンピュータに、さらに、指定オブジェクトが、所定時間分前にメモリに記憶された位置および姿勢への復帰移動をするか、操作入力によって復帰移動の解除指示がされた場合に当該復帰移動を終了させてもよい。
上記によれば、所定時間分の位置および姿勢の記憶が、移動経路表示中も更新されるため、当該移動経路表示中に当該移動経路が古い記憶分から漸減的に短く変化させることができる。
また、指定オブジェクトが、所定時間分前にメモリに記憶された位置および姿勢へ向かう復帰移動をした場合、仮想的な物理演算の結果、当該所定時間分前にメモリに記憶された位置および姿勢まで戻らない場合であっても当該復帰移動を終了させてもよい。
上記によれば、所定時間分前に記憶された位置および姿勢に戻らない状態でも、復帰移動を終了させることができる。
また、コンピュータに、さらに、操作入力に基づいた選択開始指示に基づいて、指定オブジェクトの選択を受け付けない通常状態から指定オブジェクトの選択を行うことが可能な選択可能状態に遷移させ、選択可能状態において、指定オブジェクトとして選択可能なオブジェクトを通常状態と異なる表示態様で描画させてもよい。
上記によれば、復帰移動させる指定オブジェクトとして選択可能なオブジェクトを区別してユーザに提示することができる。
また、コンピュータに、さらに、操作入力に基づいて仮想カメラを制御させ、選択可能状態において、画面上の所定位置に配置される照準の表示位置に指定オブジェクトとして選択可能なオブジェクトがある場合に、当該オブジェクトを指定オブジェクトとして選択させ、選択されている指定オブジェクトが存在する場合において、開始指示がされたときに、当該指定オブジェクトの復帰移動を開始させてもよい。
上記によれば、復帰移動させる指定オブジェクトとして選択可能なオブジェクトから、当該指定オブジェクトを選択するための照準をユーザに提示することができる。
また、オブジェクトは、遷移することが可能な状態変化がそれぞれ予め設定されてもよい。コンピュータに、さらに、物理演算に加え、プレイヤキャラクタの行動および周囲の状態に応じて仮想空間内のオブジェクトに状態変化をさせる状態変化演算に基づいて仮想空間内の状態を更新させてもよい。上記状態変化は、復帰移動中であっても過去の状態に関わらず行われてもよい。
上記によれば、復帰移動がオブジェクトの状態まで戻すものでないため、単にオブジェクトを過去に戻す動作とは異なる今までにないゲームを実現することができる。
また、上記状態変化には、オブジェクトの消滅が少なくとも含まれてもよい。上記復帰移動中の指定オブジェクトが消滅した場合には、当該復帰移動が終了してもよい。
上記によれば、復帰移動中にオブジェクトが消滅する状態変化が生じた場合、当該復帰移動を終了させるため、単にオブジェクトを過去に戻す動作とは異なる今までにないゲームを実現することができる。
また、本発明は、ゲーム装置、ゲームシステム、およびゲーム処理方法の形態で実施されてもよい。
本発明によれば、仮想空間内におけるオブジェクトの位置や姿勢を戻しながら、当該戻る動きを利用可能とする今までにないゲームを実現することができる。
本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図 本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図 本体装置2の一例を示す六面図 左コントローラ3の一例を示す六面図 右コントローラ4の一例を示す六面図 本体装置2の内部構成の一例を示すブロック図 本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図 仮想空間に登場するプレイヤキャラクタPCを用いてゲームプレイする例を示す図 復帰移動を行う前における仮想空間の状況の一例を示す図 復帰移動させる対象となる移動可能オブジェクトOBJmを表示する一例を示す図 指定された移動可能オブジェクトOBJmを復帰移動させる場合の経路表示オブジェクトTを表示する一例を示す図 指定された移動可能オブジェクトOBJmを復帰移動させている状態の一例を示す図 記憶されている移動可能オブジェクトOBJmの過去配置データの一例を示す図 本実施例において本体装置2のDRAM85に設定されるデータ領域の一例を示す図 ゲームシステム1で実行される情報処理の一例を示すフローチャート 図15におけるステップS127において行われる復帰移動処理の詳細な一例を示すサブルーチン
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含み、情報処理システムとしても機能する。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図6に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図1および図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
左コントローラ3は、アナログスティック32を備える。図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33〜36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。さらに、左コントローラ3は、録画ボタン37および−(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上に第1Lボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面の、本体装置2に装着される際に装着される側の面に第2Lボタン43および第2Rボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。本実施形態においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、右コントローラ4は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53〜56(具体的には、Aボタン53、Bボタン54、Xボタン55、およびYボタン56)を備える。さらに、右コントローラ4は、+(プラス)ボタン57およびホームボタン58を備える。また、右コントローラ4は、ハウジング51の側面の右上に第1Rボタン60およびZRボタン61を備える。また、右コントローラ4は、左コントローラ3と同様、第2Lボタン65および第2Rボタン66を備える。
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81〜91、97、および98を備える。これらの構成要素81〜91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System−on−a−chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi−Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
左コントローラ3は、各ボタン103(具体的には、ボタン33〜39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113およびアナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
右コントローラ4は、処理部121を備える。処理部121は、通信制御部111に接続される。
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
以上に説明したように、本実施形態におけるゲームシステム1については左コントローラ3および右コントローラ4が本体装置2から着脱可能である。また、クレードルに左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置や本体装置2単体を装着することによって据置型モニタ等の外部表示装置に画像(および音声)を出力可能である。以下、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置の利用態様におけるゲームシステム1を用いて説明する。
このように、一体型装置となったゲームシステム1における左コントローラ3および/または右コントローラ4の各操作ボタンやスティックの操作、あるいは本体装置2のタッチパネル13に対するタッチ操作、一体型装置全体を動かす操作等に応じて、ディスプレイ12に表示される仮想空間を用いたゲームプレイが行われる。本実施例では、一例として、上記操作ボタン、スティック、およびタッチパネル13を用いたユーザ操作に応じて、仮想空間内におけるプレイヤキャラクタや仮想空間内に配置された各オブジェクトを用いたゲームプレイが可能となる。
図8〜図13を用いてゲームシステム1において行われるゲーム処理の概要について説明する。なお、図8は、本体装置2のディスプレイ12に表示されるゲーム画像として、仮想空間に登場するプレイヤキャラクタPCを用いてゲームプレイする例を示す図である。図9は、復帰移動を行う前における仮想空間の状況の一例を示す図である。図10は、復帰移動させる対象となる移動可能オブジェクトOBJmを表示する一例を示す図である。図11は、指定された移動可能オブジェクトOBJmを復帰移動させる場合の経路表示オブジェクトTを表示する一例を示す図である。図12は、指定された移動可能オブジェクトOBJmを復帰移動させている状態の一例を示す図である。図13は、記憶されている移動可能オブジェクトOBJmの過去配置データの一例を示す図である。なお、以下の説明では、ゲームシステム1において実行するアプリケーションの一例としてゲームを用いているが、ゲームシステム1において他のアプリケーションを実行してもかまわない。
図8において、ゲームシステム1のディスプレイ12には、仮想空間にプレイヤキャラクタPCおよび複数のオブジェクトOBJが配置されたゲーム画像が表示されている。例えば、本実施例における仮想空間に配置されるプレイヤキャラクタPCは、ゲームシステム1に対するユーザ操作に応じて動作する。また、本実施例における仮想空間に配置されるオブジェクトOBJは、仮想空間において、その位置を移動させたりその姿勢を変化させたりすることが可能な移動可能オブジェクトOBJmと、その位置を移動させたりその姿勢を変化させたりすることができない固定オブジェクトOBJfとが設定されている。一例として、移動可能オブジェクトOBJmは、プレイヤキャラクタPCの動作に応じて、動かされたり状態が遷移したりするオブジェクトであり、固定オブジェクトOBJfは、プレイヤキャラクタPCの動作によって移動させることができない地形、建物、樹木等のオブジェクトである。
本実施例では、プレイヤキャラクタPCが移動可能オブジェクトOBJmを動かすことが可能であり、当該移動する移動可能オブジェクトOBJmを用いて仮想空間内の状況を変化させることができる。また、本実施例において、プレイヤキャラクタPCは、仮想空間内において自然に移動したりプレイヤキャラクタPCによって一旦移動させられたりした移動可能オブジェクトOBJmを所定時間前の位置に戻すように復帰移動させる能力を有する。なお、上記復帰移動は、プレイヤキャラクタPCを操作するユーザが指定する移動可能オブジェクトOBJmの動きを元に戻すものであって、当該移動可能オブジェクトOBJmが当該動きに伴って遷移した状態まで戻すものではない。例えば、ユーザが指定する移動可能オブジェクトOBJmを復帰移動させる場合、その位置や姿勢を戻すことができるが、当該復帰移動前のそれ自身やその中身の状態を戻すことはできず、移動可能オブジェクトOBJmの移動によって当該復帰移動前に他のオブジェクトに与えた影響等を戻すことはできない。ここで、移動可能オブジェクトOBJmに設定されている遷移可能な状態としては、損傷、燃焼、耐電、漏れ、凍結、消滅等、オブジェクトの素材に応じた様々なものが考えられ、上記復帰移動では、このような遷移可能な状態まで過去の状態に戻すものではなく、当該復帰移動中であっても過去の状態に関わらずに状態変化させる遷移処理が行われる。
図9において、プレイヤキャラクタPCを操作するユーザが復帰移動を指示する操作を行う前にディスプレイ12に表示されている仮想空間には、プレイヤキャラクタPC、3つの移動可能オブジェクトOBJm1〜OBJm3、および2つの固定オブジェクトOBJf1およびOBJf2が配置されている。そして、ユーザは、所定の操作を行うことによって、直前に(所定の時間前(例えば、20秒前)までに)移動した移動可能オブジェクトOBJmの少なくとも1つを当該移動における経路を逆行して戻すように復帰移動させることができる。
図10において、復帰移動を行わせるオブジェクトの選択の開始を指示する操作(復帰移動動作を起動する操作)をユーザが行った場合、当該指示に基づいて、復帰移動させるオブジェクト(指定オブジェクト)の選択を受け付けない通常状態から当該選択を行うことが可能な選択可能状態にゲームモードを遷移させる。そして、選択可能状態において、復帰移動させる対象として選択可能なオブジェクトを通常状態とは異なる表示態様で描画する。一例として、図10の例では、オブジェクト全体の色を変化させることによって、復帰移動させる対象として選択可能なオブジェクトを通常状態とは異なる表示態様で描画している。
ここで、移動可能オブジェクトOBJmは、上記復帰移動させることが可能であり、上記復帰移動させる対象として選択可能なオブジェクトとなる。したがって、本実施例では、上記選択可能状態にゲームモードが遷移することに応じて、仮想空間に配置されたオブジェクトのうち、移動可能オブジェクトOBJmの表示態様が変化することになる。これによって、復帰移動させる対象として指定可能なオブジェクトの選択肢を、他のオブジェクトと区別してユーザに知覚させることができる。
図11において、復帰移動させる対象として選択可能なオブジェクト(移動可能オブジェクトOBJm)を通常状態とは異なる表示態様で描画された場合、当該オブジェクトの中から復帰移動させるオブジェクトを選択して指定するための照準として、カーソルCが表示される。カーソルCは、ディスプレイ12における所定位置(例えば、画面中央)に固定表示されてもよいし、ユーザ操作に応じたディスプレイ12における任意の位置に表示されてもよい。前者の場合、ディスプレイ12に表示する表示範囲を制御するための仮想カメラの位置および/または姿勢をユーザ操作に応じて変化させることによって、ユーザは、仮想空間における任意の位置にカーソルCを重畳表示させることができる。
復帰移動させる対象として選択可能なオブジェクト(移動可能オブジェクトOBJm)の1つが、カーソルCの表示位置と重畳する位置に配置されている場合、当該オブジェクトが復帰移動させる指定オブジェクトとして指定される。例えば、図11の一例では、カーソルCの表示位置と重畳して移動可能オブジェクトOBJm1が配置されているため、表示されている複数の移動可能オブジェクトOBJm1〜OBJmのうち、移動可能オブジェクトOBJm1が指定オブジェクトとして指定されている。
このように指定オブジェクトが指定された場合、当該指定オブジェクトが復帰移動をする際の移動経路を示す経路表示オブジェクトTが仮想空間内に配置されて表示される。経路表示オブジェクトTは、指定オブジェクトがどの位置を通ってどういう動きで戻るかを示す軌道エフェクトであり、復帰移動を開始した場合に当該復帰移動で移動するルートと当該復帰移動する際の指定オブジェクトの姿勢が示される。本実施例では、移動可能オブジェクトOBJmそれぞれにおける現時点から遡って所定時間分の位置および姿勢が記憶されており、当該記憶に基づいて経路表示オブジェクトTが生成される。すなわち、図11に示す例においては、移動可能オブジェクトOBJm1が指定される所定時間前には復帰姿勢オブジェクトPeの位置にあり、そこから経路表示オブジェクトTに示す経路を逆方向に辿って現在の位置まで移動してきたことが示されているともいえる。
例えば、指定オブジェクトの復帰移動は、現時点から所定時間前(例えば、20秒前)まで遡った時点までの当該指定オブジェクトの動きを現時点から逆再生するような動きで行われる。したがって、経路表示オブジェクトTは、所定時間前から現時点までの指定オブジェクトの動きを現時点から所定時間前まで逆行するように行われる復帰移動の移動経路が示される。
したがって、上述したように指定オブジェクトが指定された際、当該指定オブジェクトが最後に動いた後に既に上記所定時間以上が現時点で経過している場合、当該指定オブジェクトが復帰移動する経路が存在しないため、当該指定オブジェクトに対する経路表示オブジェクトTが表示されないことになる。また、上述したように指定オブジェクトが指定されることに応じて、当該指定オブジェクトに対する経路表示オブジェクトTが表示された場合であっても、現時点から上記所定時間前の時点が、移動の途中である場合、経路表示オブジェクトTによって表示される経路は当該途中の位置までとなる。さらに、上述したように指定オブジェクトが指定されることに応じて、当該指定オブジェクトに対する経路表示オブジェクトTが表示されている場合であっても、経路表示オブジェクトTが表示された待機状態で時間経過することに伴って復帰移動できる経路が漸減的に短くなる場合もある。このように、所定時間分の位置および姿勢の記憶が、経路表示オブジェクトTの表示中にも更新が継続されることによって、当該経路表示オブジェクトTの表示中に経路表示オブジェクトTにおける古い記憶分の経路から消去されて、漸減的に経路が変化することになる。
なお、移動可能オブジェクトOBJmそれぞれにおける記憶される所定時間分の位置および姿勢は、移動可能オブジェクトOBJmが動いている間の時間のみ記憶されてもかまわない。この場合、移動可能オブジェクトOBJmが最後に動いた後に上記所定時間以上が現時点で経過しているとしても、当該最後に動いた際の移動可能オブジェクトOBJmの位置変化および姿勢変化が記憶されている。したがって、この例では、指定オブジェクトが指定された際、当該指定オブジェクトが最後に動いた後に既に上記所定時間以上が現時点で経過していたとしても、当該指定オブジェクトが復帰移動する経路が存在しており、当該指定オブジェクトに対する経路表示オブジェクトTが表示されることになる。
また、経路表示オブジェクトTによって示される復帰移動における指定オブジェクトの姿勢は、当該復帰移動期間における所定時間間隔毎の状態および当該復帰移動後の最終的な状態がそれぞれ示される。例えば、図11の例では、経路表示オブジェクトTにおいて、復帰移動中の3つの時点の指定オブジェクトの姿勢を示す復帰姿勢オブジェクトP1、P2、およびP3が表示されている。また、図11の例では、経路表示オブジェクトTにおいて、復帰移動後の最終的な位置および最終的な指定オブジェクトの姿勢を示す復帰姿勢オブジェクトPeが表示されている。
図12において、指定オブジェクトの復帰移動を開始する指示の操作が行われると、指定オブジェクトは、直前の動きを逆再生するように復帰移動を開始する。具体的には、移動可能オブジェクトOBJmそれぞれにおいて記憶されている現時点から所定時間前までの時系列的な位置を示すデータ(位置データ)および姿勢を示すデータ(姿勢データ)に基づいて、当該時系列を遡るように指定オブジェクトを移動させる。
図13に示すように、現時点から所定時間前までの時系列的な配置を示す位置データPDおよび姿勢データADは、現時点までの経過時間tに対応する移動可能オブジェクトOBJm毎の位置および姿勢を示している。本実施例では、現時点から所定時間前(例えば、20秒前(経過時間tmax))までの時系列的な位置および姿勢を示すデータ(すなわち、現時点までの最新の所定時間分までの時系列データ)が、表示の単位時間となるフレーム毎に記憶されている。なお、位置データおよび姿勢データを記憶する時間間隔は、上記フレーム毎でなくてもよく、他の時間間隔(例えば、1秒毎)であってもかまわない。なお、現時点から所定時間前までの時系列的な位置および姿勢を示すデータは、仮想空間における所定の範囲内に配置されているオブジェクトを対象として記憶されてもよい。例えば、ディスプレイ12に表示されているオブジェクト、プレイヤキャラクタPCから所定の距離内に配置されているオブジェクト、複数のゲームワールドやゲームステージのうち、プレイヤキャラクタPCが配置されているゲームワールドやゲームステージ内に配置されているオブジェクト等を対象として、位置データPDおよび姿勢データADが記憶されてもよい。
本実施例では、指定オブジェクトに復帰移動させる場合、復帰移動を開始する操作が行われた時点から順に遡って過去に記憶された位置および姿勢に戻るように復帰移動させる。例えば、復帰移動の経過に応じて、より過去に記憶された時系列的に直近の位置および姿勢を順に当該復帰移動の目標として設定される。そして、復帰移動の経過に応じて、それぞれの時点で設定された目標の位置および姿勢となるように指定オブジェクトを復帰移動させるための仮想的な物理演算に用いられる運動に関するパラメータを算出して、当該パラメータを用いて当該目標に移動するように指定オブジェクトを復帰移動させる。一例として、上記パラメータは、その時点で設定されている目標に復帰移動するために指定オブジェクトに与えられる速度および角速度を示すデータである。他の例として、上記パラメータは、その時点で設定されている目標に復帰移動するために指定オブジェクトに与えられる加速度および角加速度を示すデータであってもよい。
なお、指定オブジェクトが復帰移動した場合であっても、単に指定オブジェクトが過去の状態に戻るわけではない。つまり、上記復帰移動では、指定オブジェクトに設定されている遷移可能な状態まで過去の状態に戻すものではない。ここで、配置されているプレイヤキャラクタPCを含む各キャラクタや各オブジェクトを含めた仮想空間内の状態については、仮想的な物理演算に基づいて更新されるが、当該物理演算に加えて、プレイヤキャラクタPCを含む各キャラクタの行動および周囲の状態に応じて仮想空間内のオブジェクトの状態を変化させる状態変化演算に基づいて仮想空間内の状態が更新されている。このようなオブジェクトの状態変化は、指定オブジェクトが復帰移動中であっても、指定オブジェクトを含めて当該指定オブジェクトの過去の状態に関わらずに行われる。
上述した復帰移動では、復帰移動開始時点では、指定オブジェクトの現時点の位置および現時点の姿勢から、最も時系列的に近い過去に記憶された位置および姿勢(上記フレーム毎にデータが記憶されている場合、1フレーム前に記憶された位置および姿勢)を復帰移動の目標として運動に関するパラメータが算出され、当該パラメータを用いて指定オブジェクトが復帰移動する。また、指定オブジェクトが上記目標への移動を行った場合、次に過去に遡って時系列的に近い過去に記憶された位置および姿勢(上記フレーム毎にデータが記憶されている場合、さらに1フレーム前に記憶された位置および姿勢)を復帰移動の新たな目標として運動に関するパラメータが算出され、当該パラメータを用いて指定オブジェクトが復帰移動する。そして、最も時系列的に遠い過去に記憶された位置および姿勢(すなわち、所定時間前に記憶された位置および姿勢であり、経過時間tmaxにおいて記憶されている位置および姿勢)となる最終的な復帰移動の目標に指定オブジェクトが到達した場合、当該目標に指定オブジェクトを停止状態で配置して当該復帰移動を終了させる。
なお、図12に示すように、指定オブジェクトが復帰移動している間も、経路表示オブジェクトTを継続表示することが考えられる。この場合、指定オブジェクトが既に復帰移動した経路部分を消去してこれから復帰移動する経路のみを継続表示する。
また、指定オブジェクトが復帰移動している間に当該復帰移動の残り時間を示す残存時間ゲージGを表示してもよい。この場合、残存時間ゲージGは、復帰移動開始時にフルスケール(最大目盛)で残り時間を表示するとともに、以降の復帰移動時には復帰移動の経過時間に応じてゲージ残量を減らして表示する。
ここで、上記パラメータを用いた復帰移動中に、その時点で設定されている移動目標に到達しないこともあり得る。例えば、復帰移動中の指定オブジェクトが他のオブジェクトやキャラクタと衝突したり、復帰移動中の指定オブジェクトが仮想空間における環境の影響を受けたりするような妨げによって、移動目標に到達しないことが考えられる。このように、指定オブジェクトがその時点で設定されている移動目標に到達していない状況で、当該指定オブジェクトの次の移動目標を設定するタイミングとなった場合であっても、当該状況における指定オブジェクトが当該次の移動目標に移動するための運動に関するパラメータが算出され、当該パラメータを用いて指定オブジェクトが復帰移動する。すなわち、復帰移動中の指定オブジェクトに障害があったとしても復帰移動の処理は継続される。これは、プレイヤが復帰移動に干渉をすることができるということでもあるので、復帰移動を使ったプレイヤキャラクタの移動など、ゲームプレイに活かすこともできる。
なお、復帰移動中の指定オブジェクトが他のオブジェクトやキャラクタと衝突することによって、衝突する両者の少なくとも一方の状態、存在、位置、および姿勢等が変化してもかまわない。一例として、上記少なくとも一方が衝突による損傷等によって状態が変化(消滅を含む)したり、衝突時の運動パラメータに応じて上記少なくとも一方の配置位置および姿勢に影響が与えられたりしてもよい。
また、復帰移動終了時において、指定オブジェクトは上記直前の移動の途中となる位置に停止して配置されることもあるため、当該位置が仮想空間における空中等の静止できない状況であることもあり得る。このように、指定オブジェクトが静止できない位置で復帰移動が終了した場合、その後の指定オブジェクトは、当該位置から仮想空間に設定された物理演算に基づいて動作してもかまわない。一例として、指定オブジェクトが仮想空間における空中の位置で復帰移動を終えた場合、当該空中の位置から仮想空間において自由落下するように指定オブジェクトが動作してもかまわない。
また、復帰移動中に当該復帰移動の解除指示を示すユーザ操作が行われた場合や復帰移動中の指定オブジェクトの状態に応じて、指定オブジェクトの復帰移動動作が途中で終了可能に構成されてもかまわない。この場合、仮想的な物理演算の結果、当該所定時間分前に記憶された位置および姿勢まで復帰移動によって戻らない場合であっても当該復帰移動を終了することになる。復帰移動の解除指示を示すユーザ操作に応じて、復帰移動動作を途中で終了可能にする場合、当該解除指示を示すユーザ操作が行われたことを契機として指定オブジェクトの復帰移動を途中で停止させて当該指定オブジェクトをその時点で静止させる。この場合、復帰移動を途中で停止したその後の指定オブジェクトは、当該停止した位置から仮想空間に設定された物理法則に基づいて動作してもかまわない。また、復帰移動の途中で指定オブジェクトが消滅するような状態変化があった場合、その時点で復帰移動を終了させるとともに、当該指定オブジェクトを仮想空間から消去してもかまわない。この場合、指定オブジェクトの復帰移動は、所定時間前に記憶された位置および姿勢まで到達する場合に加えて、ユーザ操作によって復帰移動の解除指示が行われた場合や復帰移動中に指定オブジェクトが消滅した場合に終了することになる。
このように、ユーザ操作に応じて選択された指定オブジェクトは、時間経過に沿って記憶された最新の所定時間分の時間毎の位置および姿勢を目標としたパラメータに基づいて、順に遡って過去に復帰移動する。なお、指定オブジェクトは、強制的に過去の位置および姿勢に戻るのではなく、過去の位置および姿勢を目標とした運動をするためのパラメータを与えられるだけである。実際の挙動は物理演算に基づいて決定されるので、ゲーム中のそれ以外の要素が加わった場合には物理演算によって異なる挙動をすることもあり得る。すなわち、復帰移動中に仮想空間における他のオブジェクトやキャラクタと干渉可能である。つまり、復帰移動する指定オブジェクトだけでなく、仮想空間における他のオブジェクトやキャラクタも同様に当該復帰移動中に物理演算に基づいて動作する。すなわち、当該復帰移動は単に過去に強制的に戻る演出とは異なるものである。また、復帰移動する指定オブジェクトの遷移可能な状態が過去の状態に戻るものではなく、復帰移動中であっても過去の状態に関わらずに遷移処理が行われ、復帰移動が完了せずに途中で過去の動きとは異なる動きが生じることもあるため、この点においても、復帰移動動作が指定オブジェクトを単に過去に巻き戻して表現している演出とは異なるものである。
次に、図14〜図16を参照して、本実施例においてゲームシステム1で実行される具体的な処理の一例について説明する。図14は、本実施例において本体装置2のDRAM85に設定されるデータ領域の一例を示す図である。なお、DRAM85には、図14に示すデータの他、他の処理で用いられるデータも記憶されるが、詳細な説明を省略する。
DRAM85のプログラム記憶領域には、ゲームシステム1で実行される各種プログラムPaが記憶される。本実施例においては、各種プログラムPaは、左コントローラ3および/または右コントローラ4や本体装置2から取得したデータに基づいた情報処理を行うためのアプリケーションプログラム(例えば、ゲームプログラム)等が記憶される。なお、各種プログラムPaは、フラッシュメモリ84に予め記憶されていてもよいし、ゲームシステム1に着脱可能な記憶媒体(例えば、スロット23に装着された所定の種類の記憶媒体)から取得されてDRAM85に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてDRAM85に記憶されてもよい。プロセッサ81は、DRAM85に記憶された各種プログラムPaを実行する。
また、DRAM85のデータ記憶領域には、ゲームシステム1において実行される情報処理等の処理において用いられる各種のデータが記憶される。本実施形態においては、DRAM85には、操作データDa、過去配置データDb、指定オブジェクトデータDc、目標データDd、運動パラメータデータDe、カーソルデータDf、プレイヤキャラクタデータDg、オブジェクトデータDh、復帰移動フラグデータDi、経路表示オブジェクトデータDj、および画像データDk等が記憶される。
操作データDaは、左コントローラ3および/または右コントローラ4や本体装置2からそれぞれ適宜取得した操作データである。上述したように、左コントローラ3および/または右コントローラ4や本体装置2からそれぞれ取得される操作データには、各入力部(具体的には、各ボタン、アナログスティックタッチパネル、各センサ)からの入力に関する情報(具体的には、操作に関する情報や各センサによる検出結果)が含まれている。本実施例では、無線通信によって左コントローラ3および/または右コントローラ4や本体装置2からそれぞれ操作データを取得しており、当該取得した操作データを用いて操作データDaが適宜更新される。なお、操作データDaの更新周期は、後述するゲームシステム1で実行される処理の周期である1フレーム毎に更新されてもよいし、上記操作データが取得される周期毎に更新されてもよい。
過去配置データDbは、現時点から所定時間前までの移動可能オブジェクトOBJm毎の時系列的な配置を示す配置データであり、時系列的な過去の位置および姿勢を示すデータを含んでいる。例えば、過去配置データDbは、現時点までの経過時間に対応する移動可能オブジェクトOBJm毎の位置および姿勢を示しており、現時点から所定時間前(例えば、20秒前)までの時系列的な位置および姿勢を示すデータ(すなわち、現時点までの最新の所定時間分までの時系列データ)が、表示の単位時間となるフレーム毎に記憶されている。
指定オブジェクトデータDcは、ユーザ操作に応じて選択された指定オブジェクトを示すデータである。例えば、指定オブジェクトデータDcは、指定オブジェクトを特定する情報、指定オブジェクトの配置位置、配置姿勢、配置状態等を示すデータである。
目標データDdは、指定オブジェクトが復帰移動する際に順次設定される位置および姿勢の目標を示すデータである。運動パラメータデータDeは、指定オブジェクトが上記目標に到達するための仮想的な物理演算に用いられる運動に関するパラメータを示すデータである。
カーソルデータDfは、指定オブジェクトを指定する際に用いられるカーソルCと重畳表示される仮想空間における位置を示すデータである。
プレイヤキャラクタデータDgは、仮想空間に配置されているプレイヤキャラクタPCの配置位置および配置姿勢や、仮想空間における動作や状態等を示すデータである。オブジェクトデータDhは、仮想空間にそれぞれ配置されているオブジェクト毎のオブジェクトの種別、配置位置、配置姿勢、および配置状態等を示すデータである。
復帰移動フラグデータDiは、指定オブジェクトが復帰移動中である場合にオンに設定される復帰移動フラグの状態を示すデータである。
経路表示オブジェクトデータDjは、経路表示オブジェクトTの形状、配置位置、配置姿勢を示すデータである。
画像データDkは、表示画面(例えば、本体装置2のディスプレイ12)に画像(例えば、キャラクタやオブジェクトの画像、仮想空間の画像、背景画像等)を表示するためのデータである。
次に、図15および図16を参照して、本実施例における情報処理の詳細な一例を説明する。図15は、ゲームシステム1で実行される情報処理の一例を示すフローチャートである。図16は、図15におけるステップS127において行われる復帰移動処理の詳細な一例を示すサブルーチンである。本実施例においては、図15および図16に示す一連の処理は、プロセッサ81が各種プログラムPaに含まれる所定のアプリケーションプログラム(ゲームプログラム)を実行することによって行われる。また、図15および図16に示す情報処理が開始されるタイミングは任意である。
なお、図15および図16に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をプロセッサ81が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、プロセッサ81以外のプロセッサや専用回路が実行するようにしてもよい。また、本体装置2において実行される処理の一部は、本体装置2と通信可能な他の情報処理装置(例えば、本体装置2とネットワークを介して通信可能なサーバ)によって実行されてもよい。すなわち、図15および図16に示す各処理は、本体装置2を含む複数の情報処理装置が協働することによって実行されてもよい。
図15において、プロセッサ81は、情報処理における初期設定を行い(ステップS121)、次のステップに処理を進める。例えば、上記初期設定では、プロセッサ81は、以下に説明する処理を行うためのパラメータを初期化する。例えば、プロセッサ81は、予め設定されている仮想空間の設定に基づいて、プレイヤキャラクタPCや複数のオブジェクトを仮想空間に初期配置して、プレイヤキャラクタデータDgおよびオブジェクトデータDhを初期設定する。また、プロセッサ81は、複数のオブジェクトのうち、復帰移動させる対象として選択可能な移動可能オブジェクトOBJmについては、それぞれ初期配置された位置および姿勢を用いて、過去配置データDbを更新する。
次に、プロセッサ81は、左コントローラ3、右コントローラ4、および/または本体装置2から操作データを取得して操作データDaを更新し(ステップS122)、次のステップに処理を進める。
次に、プロセッサ81は、仮想空間において、プレイヤキャラクタPCを動作させ(ステップS123)、次のステップに処理を進める。例えば、プロセッサ81は、ステップS122において取得した操作データDaに基づいて、プレイヤキャラクタPCを動作させ、プレイヤキャラクタデータDgを更新する。また、プロセッサ81は、プレイヤキャラクタPCの動作および周囲の状態に応じてプレイヤおよび仮想空間における仮想的な物理演算に基づいて、仮想空間に配置されたプレイヤキャラクタPCを動作させ、プレイヤキャラクタデータDgを更新する。さらに、プロセッサ81は、プレイヤキャラクタPCの状態を変化させる状態変化演算に基づいて、プレイヤキャラクタPCの状態を変化させ、プレイヤキャラクタデータDgを更新する。なお、ユーザの操作入力に基づいて、仮想空間内においてプレイヤキャラクタを制御させるプロセッサは、一例としてステップS123の処理を行うプロセッサ81に相当する。また、仮想的な物理演算に基づいて、プレイヤキャラクタを含めた仮想空間内の状態を更新させるプロセッサは、一例としてステップS123の処理を行うプロセッサ81に相当する。
次に、プロセッサ81は、仮想空間において各オブジェクトを動作させ(ステップS124)、次のステップに処理を進める。例えば、プロセッサ81は、プレイヤキャラクタPCの動作、オブジェクト自身や他のオブジェクトの動作、および仮想空間における仮想的な物理演算に基づいて、仮想空間に配置された各オブジェクトを動作させ、オブジェクトデータDhを更新する。また、プロセッサ81は、各オブジェクトの状態を変化させる状態変化演算に基づいて、各オブジェクトの状態を変化させ、オブジェクトデータDhを更新する。なお、指定オブジェクトに指定されて復帰移動中のオブジェクトについては、後述するステップS127における復帰移動処理において動作制御されるため、上記ステップS124のオブジェクト動作処理の対象外とする。なお、仮想的な物理演算に基づいて、オブジェクトを含めた仮想空間内の状態を更新させるプロセッサは、一例としてステップS124の処理を行うプロセッサ81に相当する。また、物理演算に加え、プレイヤキャラクタの行動および周囲の状態に応じて仮想空間内のオブジェクトに状態変化をさせる状態変化演算に基づいて仮想空間内の状態を更新させるプロセッサは、一例としてステップS124の処理を行うプロセッサ81に相当する。
次に、プロセッサ81は、オブジェクトの配置情報を記憶し(ステップS125)、次のステップに処理を進める。例えば、プロセッサ81は、複数のオブジェクトのうち、復帰移動させる対象として選択可能な移動可能オブジェクトOBJmについては、それぞれ現時点の位置および姿勢を用いて、過去配置データDbにおける最新データとして追記し、既に記憶されているデータにおける経過時間を当該記憶からの時間に応じて更新する。また、プロセッサ81は、必要に応じて、過去配置データDbに記憶されているデータにおいて、記憶から所定時間以上経過したオブジェクトの配置データを過去配置データDbから消去する。なお、仮想空間内における所定範囲内のオブジェクトについて、時間毎の位置および姿勢を時間経過に沿ってメモリに記憶させるプロセッサは、一例としてステップS125の処理を行うプロセッサ81に相当する。
次に、プロセッサ81は、復帰移動を行うか否かを判定する(ステップS126)。例えば、プロセッサ81は、ユーザ操作に基づいて現時点のゲームモードを判定し、現時点のゲームモードが復帰移動させるオブジェクト(指定オブジェクト)の選択を行うことが可能な選択可能状態や復帰移動を実行している復帰移動中状態である場合、上記ステップS126において肯定判定する。また、プロセッサ81は、現時点のゲームモードが復帰移動させる指定オブジェクトの選択を受け付けずに復帰移動も実行中ではない通常状態である場合、上記ステップS126において否定判定する。そして、プロセッサ81は、復帰移動を行う場合、ステップS127に処理を進める。一方、プロセッサ81は、復帰移動を行わない場合、ステップS128に処理を進める。
ステップS127において、プロセッサ81は、復帰移動処理を行って、ステップS128に処理を進める。以下、図16を参照して、上記ステップS127で行われる復帰移動処理について説明する。なお、オブジェクトのうち、操作入力に基づいて選択された指定オブジェクトに対して、操作入力に基づいて開始指示された時点から順に遡って過去にメモリに記憶された位置および姿勢に戻る復帰移動をするように、仮想的な物理演算に用いられる運動に関するパラメータを変化させるプロセッサは、一例としてステップS127の処理を行うプロセッサ81に相当する。また、操作入力に基づいた選択開始指示に基づいて、指定オブジェクトの選択を受け付けない通常状態から指定オブジェクトの選択を行うことが可能な選択可能状態に遷移させるプロセッサは、一例としてステップS126およびS127の処理を行うプロセッサ81に相当する。
図16において、プロセッサ81は、復帰移動フラグがオンであるか否かを判定する(ステップS141)。例えば、プロセッサ81は、復帰移動フラグデータDiを参照して、復帰移動フラグがオンに設定されている場合、上記ステップS141において肯定判定する。そして、プロセッサ81は、復帰移動フラグがオフである場合、ステップS143に処理を進める。一方、プロセッサ81は、復帰移動フラグがオンである場合、ステップS151に処理を進める。
ステップS143において、プロセッサ81は、復帰移動対象となるオブジェクトを他のオブジェクトとは区別可能な表示態様として、次のステップに処理を進める。例えば、プロセッサ81は、復帰移動の対象となる移動可能オブジェクトOBJm全体の色を変化させることによって、指定オブジェクトとして選択可能なオブジェクトを通常状態とは異なる表示態様で描画する(図10参照)。
次に、プロセッサ81は、カーソルを設定して(ステップS144)、次のステップに処理を進める。例えば、プロセッサ81は、ディスプレイ12の表示画面中央にカーソルCが表示されるようにカーソルを設定して、カーソルデータDfを更新する(図10参照)。
次に、プロセッサ81は、カーソルCと重畳表示される位置に復帰移動対象が配置されているか否かを判定する(ステップS145)。そして、プロセッサ81は、カーソルCと重畳表示される位置に復帰移動対象が配置されている場合(図11参照)、ステップS146に処理を進める。一方、プロセッサ81は、カーソルCと重畳表示される位置に復帰移動対象が配置されていない場合、ステップS147に処理を進める。
ステップS146において、プロセッサ81は、カーソルCと重畳表示される位置に復帰移動対象が復帰移動する場合の移動経路を示す経路表示オブジェクトを表示して、ステップS147に処理を進める。例えば、プロセッサ81は、復帰移動対象として選択されているオブジェクトの過去位置データDbを参照し、現時点から所定時間前(例えば、20秒前)までの当該オブジェクトの配置位置および配置姿勢をそれぞれ抽出する。そして、プロセッサ81は、所定時間前までの配置位置を時系列順に繋いだ移動経路を算出するとともに、所定時間前までの所定時間間隔毎の配置姿勢と当該所定時間前における復帰移動の最終的な配置姿勢を用いて、当該移動経路内に復帰姿勢オブジェクトPを設定することによって、経路表示オブジェクトT(図11参照)を作成して経路表示オブジェクトデータDjを更新する。なお、メモリに記憶された位置および姿勢に基づいて、指定オブジェクトが復帰移動をする際の移動経路を示すための経路表示オブジェクトを仮想空間内に配置させるプロセッサは、一例としてステップS146の処理を行うプロセッサ81に相当する。
ステップS147において、プロセッサ81は、復帰移動を開始するか否かを判定する。例えば、プロセッサ81は、操作データDaを参照して、ユーザが復帰移動を開始する操作を行った場合、上記ステップS147において肯定判定する。そして、プロセッサ81は、復帰移動を開始する場合、ステップS148に処理を進める。一方、プロセッサ81は、復帰移動を開始しない場合、当該サブルーチンによる処理を終了する。
ステップS148において、プロセッサ81は、現時点で復帰移動対象として選択されているオブジェクトを指定オブジェクトとして決定し、次のステップに処理を進める。例えば、プロセッサ81は、決定された指定オブジェクトに関する情報(オブジェクトを特定する情報、現時点のオブジェクトの配置位置、配置姿勢、配置状態等)を用いて、指定オブジェクトデータDcを更新する。また、プロセッサ81は、仮想空間からカーソルCを消去するとともに、カーソルデータDfを初期化(例えば、null)する。なお、選択可能状態において、画面上の所定位置に配置される照準の表示位置に指定オブジェクトとして選択可能なオブジェクトがある場合に、当該オブジェクトを指定オブジェクトとして選択させるプロセッサは、一例としてステップS148の処理を行うプロセッサ81に相当する。
次に、プロセッサ81は、復帰移動フラグをオンに設定して(ステップS149)、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、復帰移動フラグをオンに設定して、復帰移動フラグデータDiを更新する。なお、選択されている指定オブジェクトが存在する場合において、開始指示がされたときに、当該指定オブジェクトの復帰移動を開始させるプロセッサは、一例としてステップS149の処理を行うプロセッサ81に相当する。
一方、上記ステップS141において、復帰移動フラグがオンであると判定された場合、プロセッサ81は、復帰移動させる目標を設定して(ステップS151)、次のステップに処理を進める。例えば、プロセッサ81は、指定オブジェクトの復帰移動の経過に応じて、当該指定オブジェクトに対してより過去に記憶された時系列的に直近の配置位置および配置姿勢を順に当該復帰移動の目標として設定して、目標データDdを更新する。具体的には、プロセッサ81は、復帰移動させる指定オブジェクトの過去位置データDbを参照し、現時点から所定時間前(例えば、20秒前)までの当該オブジェクトの配置位置および配置姿勢のうち、最新の配置位置および配置姿勢を最初の目標として設定する。そして、復帰移動開始からの経過時間が、目標として設定された配置情報に付随して過去配置データDbに記憶されている経過時間に到達した場合、より過去に過去位置データDbとして記憶された時系列的に直近となる次の配置位置および配置姿勢を新たな復帰移動の目標として設定して、目標データDdを更新する。これによって、指定オブジェクトが復帰移動する際に順次設定される目標は、復帰移動を開始する操作が行われた時点から順に遡って過去に記憶された位置および姿勢に戻るように経過時間に応じて設定される。
次に、プロセッサ81は、指定オブジェクトを復帰移動させるための運動パラメータを算出し(ステップS152)、次のステップに処理を進める。例えば、プロセッサ81は、現時点の指定オブジェクトの位置および姿勢が、目標データDdに設定されている目標の配置位置および配置姿勢となるための仮想的な物理演算に用いられる運動に関するパラメータを算出し、当該パラメータを用いて運動パラメータデータDeを更新する。一例として、プロセッサ81は、現時点の位置から目標に到達するために仮想空間において指定オブジェクトに与えられる速度および角速度を、運動パラメータとして算出する。他の例として、プロセッサ81は、現時点の位置から目標に到達するために仮想空間において指定オブジェクトに与えられる加速度および角加速度を、運動パラメータとして算出する。
次に、プロセッサ81は、上記ステップS152において算出されたパラメータに基づいて、指定オブジェクトを動作させ(ステップS153)、次のステップに処理を進める。例えば、プロセッサ81は、指定オブジェクトデータDcが示す指定オブジェクトの現時点の配置位置および配置姿勢を、上記ステップS152において算出されたパラメータに基づいて仮想空間において変化させ、当該変化後の配置位置および配置姿勢を用いて指定オブジェクトデータDcを更新する。また、プロセッサ81は、指定オブジェクトデータDcが示す指定オブジェクトの現時点の状態を仮想空間内で変化させる状態変化演算に基づいて、復帰移動中の指定オブジェクトの状態を変化させ、指定オブジェクトデータDcを更新する。なお、仮想的な物理演算に基づいて、指定オブジェクトを含めた仮想空間内の状態を更新させるプロセッサは、一例としてステップS153の処理を行うプロセッサ81に相当する。
なお、指定オブジェクトが復帰移動している間も、経路表示オブジェクトTを継続して表示してもよい。この場合、指定オブジェクトが既に復帰移動した経路部分を消去してこれから復帰移動する経路のみを継続表示することが考えられる(図12参照)。この場合、プロセッサ81は、上記ステップS153において、指定オブジェクトが既に復帰移動した経路部分を削除して、経路表示オブジェクトデータDjを更新する。また、指定オブジェクトが復帰移動している間に残存時間ゲージGを表示する場合、プロセッサ81は、当該復帰移動開始時に残存時間ゲージGをフルスケール(最大目盛)で表示するとともに、以降の復帰移動時には復帰移動の経過時間に応じてゲージ残量を減らして表示する。
次に、プロセッサ81は、復帰移動中の指定オブジェクトが他のオブジェクトやキャラクタと衝突したか否かを判定する(ステップS154)。例えば、プロセッサ81は、指定オブジェクトデータDc、プレイヤキャラクタデータDg、およびオブジェクトデータDhを用いて、指定オブジェクトとの上記衝突の有無を判定する。そして、プロセッサ81は、復帰移動中の指定オブジェクトが他のオブジェクトやキャラクタと衝突した場合、ステップS155に処理を進める。一方、プロセッサ81は、復帰移動中の指定オブジェクトが他のオブジェクトやキャラクタと衝突していない場合、ステップS156に処理を進める。
ステップS155において、プロセッサ81は、衝突した両者に対する衝突処理を行い、ステップS156に処理を進める。例えば、プロセッサ81は、衝突する両者の少なくとも一方の状態、存在、位置、および姿勢等を変化させて、指定オブジェクトデータDc、プレイヤキャラクタデータDg、およびオブジェクトデータDhを更新する。一例として、プロセッサ81は、衝突した両者のうち、少なくとも一方を当該衝突による損傷等によって状態を変化(状態の変化には、消滅を含む)させ、当該変化後の状態を用いて、指定オブジェクトデータDc、プレイヤキャラクタデータDg、および/またはオブジェクトデータDhを更新する。他の例として、プロセッサ81は、衝突時の運動パラメータに応じて、衝突した両者の少なくとも一方の位置および姿勢を変化させ、当該変化後の位置および姿勢を用いて、指定オブジェクトデータDc、プレイヤキャラクタデータDg、および/またはオブジェクトデータDhを更新する。なお、仮想的な物理演算に基づいて、指定オブジェクトおよびそれ以外のオブジェクトを含めた仮想空間内の状態を更新させるプロセッサは、一例としてステップS156の処理を行うプロセッサ81に相当する。
ステップS156において、復帰移動中の指定オブジェクトが仮想空間から消滅したか否かを判定する。一例として、上記ステップS155における処理において、復帰移動中の指定オブジェクトに仮想空間から消滅する状態の変化が生じた場合、プロセッサ81は、上記ステップS156において肯定判定する。そして、プロセッサ81は、指定オブジェクトが仮想空間から消滅した場合、ステップS157に処理を進める。一方、プロセッサ81は、指定オブジェクトが仮想空間から消滅していない場合、ステップS159に処理を進める。
ステップS157において、プロセッサ81は、指定オブジェクトを仮想空間から消滅させる消滅処理を行い、次のステップに処理を進める。例えば、プロセッサ81は、仮想空間から指定オブジェクトを消去するとともに、指定オブジェクトデータDc、目標データDd、および運動パラメータデータDeと当該指定オブジェクトに関連する過去配置データDbおよびオブジェクトデータDhとを初期化(例えば、null)する。また、経路表示オブジェクトTを表示しながら指定オブジェクトが復帰移動している場合、プロセッサ81は、仮想空間から経路表示オブジェクトTを消去するとともに、経路表示オブジェクトデータDjを初期化(例えば、null)する。このように、これらの消滅処理によって、指定オブジェクトの復帰移動が終了する。
次に、プロセッサ81は、ゲームモードを通常状態に移行させるとともに、復帰移動フラグをオフに設定して(ステップS158)、ステップS159に処理を進める。例えば、プロセッサ81は、復帰移動フラグをオフに設定して、復帰移動フラグデータDiを更新する。
ステップS159において、プロセッサ81は、復帰移動が終了したか否かを判定する。例えば、プロセッサ81は、所定時間分前に記憶された位置および姿勢へ向かう復帰移動を完了した場合や、復帰移動中において復帰移動の解除指示を示すユーザ操作が行われた場合、実行している復帰移動が終了したと判定する。そして、プロセッサ81は、復帰移動が終了した場合、ステップS160に処理を進める。一方、プロセッサ81は、復帰移動が終了していない場合、当該サブルーチンによる処理を終了する。なお、指定オブジェクトが、所定時間分前にメモリに記憶された位置および姿勢へ向かう復帰移動をするか、操作入力によって復帰移動の解除指示がされた場合に当該復帰移動を終了させるプロセッサは、一例としてステップS159の処理を行うプロセッサ81に相当する。
ステップS160において、プロセッサ81は、復帰移動終了処理を行って、次のステップに処理を進める。例えば、プロセッサ81は、仮想空間における現時点の位置に指定オブジェクトを停止させるとともに、当該指定オブジェクトにおける現時点の配置位置、配置姿勢、および配置状態等を用いて、当該指定オブジェクトのオブジェクトデータDhを更新する。また、プロセッサ81は、指定オブジェクトデータDc、目標データDd、および運動パラメータデータDeと復帰移動を終了した指定オブジェクトに関連する過去配置データDbとを初期化(例えば、null)する。また、経路表示オブジェクトTを表示しながら指定オブジェクトが復帰移動していた場合、プロセッサ81は、仮想空間から経路表示オブジェクトTを消去するとともに、経路表示オブジェクトデータDjを初期化(例えば、null)する。このように、これらの復帰移動終了処理によって、指定オブジェクトの復帰移動が終了するとともに、当該終了以降のオブジェクトの動作に関しては、上記ステップS124における処理によって行われる。なお、指定オブジェクトが、所定時間分前にメモリに記憶された位置および姿勢へ向かう復帰移動をするか、操作入力によって復帰移動の解除指示がされた場合に当該復帰移動を終了させるプロセッサは、一例としてステップS160の処理を行うプロセッサ81に相当する。
次に、プロセッサ81は、ゲームモードを通常状態に移行させるとともに、復帰移動フラグをオフに設定して(ステップS161)、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、復帰移動フラグをオフに設定して、復帰移動フラグデータDiを更新する。
図15に戻り、ステップS128において、プロセッサ81は、表示制御処理を行い、次のステップに処理を進める。例えば、プロセッサ81は、指定オブジェクトデータDc、カーソルデータDf、プレイヤキャラクタデータDg、オブジェクトデータDh、および経路表示オブジェクトデータDjに基づいて、仮想空間にプレイヤキャラクタPC、指定オブジェクトを含む各オブジェクト、および経路表示オブジェクトTをそれぞれ配置する。また、プロセッサ81は、操作データDaに基づいて、表示画像を生成するための仮想カメラの位置および/または姿勢を設定し、当該仮想カメラを仮想空間に配置する。そして、設定した仮想カメラから見た仮想空間の画像を生成して、当該仮想空間画像をディスプレイ12に表示する制御を行う。なお、操作入力に基づいて仮想カメラを制御させるプロセッサは、一例としてステップS128の処理を行うプロセッサ81に相当する。
次に、プロセッサ81は、ゲーム処理を終了するか否かを判定する(ステップS129)。上記ステップS129においてゲーム処理を終了する条件としては、例えば、ゲーム処理が終了される条件が満たされたことや、ユーザがゲーム処理を終了する操作を行ったこと等がある。プロセッサ81は、ゲーム処理を終了しない場合に上記ステップS122に戻って処理を繰り返し、ゲーム処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップS122〜ステップS129の一連の処理は、ステップS129で処理を終了すると判定されるまで繰り返し実行される。
このように、本実施例においては、指定オブジェクトの位置、姿勢等を戻しながら、当該指定オブジェクトが戻る動きを利用できるゲームを実現することができる。
なお、上述した実施例では、指定オブジェクトを復帰移動させる際、当該復帰移動を開始指示された時点から順に遡って過去に記憶された当該指定オブジェクトの位置および姿勢に戻るように動作させているが、戻す指定オブジェクトのパラメータは、これに限らない。例えば、指定オブジェクトを復帰移動させる際、当該指定オブジェクトにおける過去の位置および姿勢を少なくとも目標として戻るように動作させてもよい。
一例として、復帰移動する指定オブジェクトが円柱、円錐、円錐台、円盤、円環、樽型、中空円柱等、所定軸を中心とした回転体形状である場合、当該軸を中心として回転させてもオブジェクト自体の形状としては変わらない。したがって、このような軸を中心とするオブジェクトの向きは復帰移動の目標とすることなく、仮想空間における当該軸の方向をオブジェクトの姿勢とすることによって、当該オブジェクトの位置および姿勢を目標として戻るように動作させることが考えられる。また、上述したような回転体以外の形状のオブジェクトであっても、当該オブジェクトに定義される軸の仮想空間における方向を姿勢として、当該オブジェクトの向きを目標とすることなく位置および姿勢を目標として戻るように復帰移動させてもよい。
また、仮想空間におけるオブジェクトの姿勢には、仮想空間におけるオブジェクトの向きの概念も含まれるものであってもよい。例えば、復帰移動させるオブジェクトに少なくとも2方向(例えば、オブジェクトの上方向および正面方向や、直交する3方向)が定義され、仮想空間における当該2方向の向きをオブジェクトの姿勢として定義する場合、当該オブジェクトの復帰移動中の位置および姿勢を制御することによって、当該オブジェクトの向き(例えば、オブジェクトの正面方向が向く仮想空間における上下左右前後方向に対する向き)も制御されていることになる。このように、本実施例では、指定オブジェクトを復帰移動させる場合、オブジェクトの向きの概念を含むオブジェクトの姿勢および位置をそれぞれ目標として制御してもよい。
また、上述した実施例では、現時点から所定時間前までのオブジェクトの位置と姿勢を記憶し、時間経過と共に所定時間分に含まれる位置と姿勢が更新されることになるため、過去に記憶された位置と姿勢から順に失われることになるが、オブジェクトが移動して停止した後の期間中には記憶される位置と姿勢とを更新しないようにしてもよい。このようにすることで、記憶される所定時間分の位置と姿勢とは、当該オブジェクトが最後に移動した動きにおける位置と姿勢とになる。すなわち、直近で移動があったときの動きを用いた復帰移動をさせることができるので、例えば、指定オブジェクトを指定して復帰移動を開始させるための操作に時間がかかってしまった場合にも復帰移動ができなくなってしまうことを防ぐことができる。
また、上述した実施例では、復帰移動を開始指示された時点から遡って過去に記憶されるオブジェクトの情報は、当該開始指示までの最新の所定時間分(例えば、20秒間分)まで記憶されているが、ゲーム開始から現時点までの全てのオブジェクトの情報が記憶されていてもかまわない。また、復帰移動を開始指示された時点から遡って過去に記憶されるオブジェクトの情報は、仮想空間における所定の範囲内のオブジェクトを対象として記憶されてもよいし、仮想空間に配置されている全オブジェクトを対象として記憶されてもよい。
また、ゲームシステム1は、どのような装置であってもよく、携帯型のゲーム装置、任意の携帯型電子機器(PDA(Personal Digital Assistant)、携帯電話、パーソナルコンピュータ、カメラ、タブレット等)等であってもよい。この場合、オブジェクトを移動する操作を行うための入力装置は、左コントローラ3や右コントローラ4でなくてもよく、別のコントローラ、マウス、タッチパッド、タッチパネル、トラックボール、キーボード、十字キー、スライドパッド等であってもよい。
また、上述した説明では情報処理をゲームシステム1でそれぞれ行う例を用いたが、上記処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲームシステム1がさらに他の装置(例えば、別のサーバ、他の画像表示装置、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した情報処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、ゲームシステム1のプロセッサ81が所定のプログラムを実行することによって情報処理を行うことが可能であるが、ゲームシステム1が備える専用回路によって上記処理の一部または全部が行われてもよい。
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
また、上記プログラムは、外部メモリ等の外部記憶媒体を通じてゲームシステム1に供給されるだけでなく、有線または無線の通信回線を通じて当該装置に供給されてもよい。また、上記プログラムは、当該装置内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
以上のように、本発明は、仮想空間内におけるオブジェクトの位置や姿勢等を戻しながら、当該戻る動きを利用可能とすること等を可能とするゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法等として利用することができる。
1…情報処理システム
2…本体装置
3…左コントローラ
4…右コントローラ
11…ハウジング
12…ディスプレイ
13…タッチパネル
32、52…アナログスティック
42、64…端子
81…プロセッサ
82…ネットワーク通信部
83…コントローラ通信部
85…DRAM
101、111…通信制御部

Claims (30)

  1. 情報処理装置に含まれるコンピュータで実行されるゲームプログラムであって、
    前記コンピュータに、
    ユーザの操作入力に基づいて、仮想空間内においてプレイヤキャラクタを制御させ、
    仮想空間内における所定範囲内のオブジェクトについて、時間毎の位置および姿勢を時間経過に沿ってメモリに記憶させ、
    前記オブジェクトのうち、前記操作入力に基づいて選択された指定オブジェクトに対して、前記操作入力に基づいて開始指示された時点から順に遡って過去に前記メモリに記憶された位置および姿勢に戻る復帰移動をするように、仮想的な物理演算に用いられる運動に関するパラメータを変化させ、
    前記仮想的な物理演算に基づいて、前記プレイヤキャラクタ、前記指定オブジェクト、およびそれら以外のオブジェクトを含めた仮想空間内の状態を更新させる、ゲームプログラム。
  2. 前記指定オブジェクトに前記復帰移動をさせるとき、当該復帰移動の経過に応じてより過去に前記メモリに記憶された位置および姿勢を目標とし、当該目標の位置および姿勢となるように、前記指定オブジェクトの前記パラメータとして速度および角速度、または加速度および角加速度を変更させる、請求項1に記載のゲームプログラム。
  3. 前記時間毎の位置および姿勢は、表示の単位時間となるフレーム毎に前記メモリに記憶され、
    前記復帰移動中の経過フレームに応じてより過去のフレームにおいて前記メモリに記憶された前記位置および姿勢が前記目標となる、請求項2に記載のゲームプログラム。
  4. 前記時間毎の位置および姿勢は、少なくとも前記開始指示までの最新の所定時間分まで前記メモリに記憶される、請求項1乃至3の何れか1つに記載のゲームプログラム。
  5. 前記コンピュータに、さらに、
    前記指定オブジェクトが、前記所定時間分前に前記メモリに記憶された位置および姿勢へ向かう前記復帰移動をするか、前記操作入力によって前記復帰移動の解除指示がされた場合に当該復帰移動を終了させる、請求項4に記載のゲームプログラム。
  6. 前記コンピュータに、さらに、
    前記メモリに記憶された前記位置および姿勢に基づいて、前記指定オブジェクトが前記復帰移動をする際の移動経路を示すための経路表示オブジェクトを前記仮想空間内に配置させる、請求項1乃至5の何れか1つに記載のゲームプログラム。
  7. 前記時間毎の位置および姿勢は、表示の単位時間となるフレーム毎に少なくとも前記開始指示までの最新の所定時間分まで前記メモリに記憶され、
    前記コンピュータに、さらに、
    前記操作入力に基づいて前記指定オブジェクトが選択されたとき、前記メモリに記憶された前記位置および姿勢に基づいて、前記指定オブジェクトが前記復帰移動をする際の前記所定時間分の移動経路を示すための経路表示オブジェクトを前記仮想空間内に配置させ、
    前記開始指示に基づいて前記指定オブジェクトに前記復帰移動をさせるとき、当該復帰移動の経過フレームに応じてより過去のフレームに前記メモリに記憶された位置および姿勢を目標とし、当該目標の位置および姿勢となるように、前記指定オブジェクトの前記パラメータとして速度および角速度、または加速度および角加速度を変更させ、
    前記コンピュータに、さらに、
    前記指定オブジェクトが、前記所定時間分前に前記メモリに記憶された位置および姿勢への前記復帰移動をするか、前記操作入力によって前記復帰移動の解除指示がされた場合に当該復帰移動を終了させる、請求項1に記載のゲームプログラム。
  8. 前記指定オブジェクトが、前記所定時間分前に前記メモリに記憶された位置および姿勢へ向かう前記復帰移動をした場合、前記仮想的な物理演算の結果、当該所定時間分前に前記メモリに記憶された位置および姿勢まで戻らない場合であっても当該復帰移動を終了させる、請求項5または7に記載のゲームプログラム。
  9. 前記コンピュータに、さらに、
    前記操作入力に基づいた選択開始指示に基づいて、前記指定オブジェクトの選択を受け付けない通常状態から前記指定オブジェクトの選択を行うことが可能な選択可能状態に遷移させ、
    前記選択可能状態において、前記指定オブジェクトとして選択可能なオブジェクトを前記通常状態と異なる表示態様で描画させる、請求項1乃至8の何れか1つに記載のゲームプログラム。
  10. 前記コンピュータに、さらに、
    前記操作入力に基づいて仮想カメラを制御させ、
    前記選択可能状態において、画面上の所定位置に配置される照準の表示位置に前記指定オブジェクトとして選択可能なオブジェクトがある場合に、当該オブジェクトを前記指定オブジェクトとして選択させ、
    選択されている前記指定オブジェクトが存在する場合において、前記開始指示がされたときに、当該指定オブジェクトの前記復帰移動を開始させる、請求項9に記載のゲームプログラム。
  11. 前記オブジェクトは、遷移することが可能な状態変化がそれぞれ予め設定され、
    前記コンピュータに、さらに、
    前記物理演算に加え、前記プレイヤキャラクタの行動および周囲の状態に応じて前記仮想空間内のオブジェクトに前記状態変化をさせる状態変化演算に基づいて前記仮想空間内の状態を更新させ、
    前記状態変化は、前記復帰移動中であっても過去の状態に関わらず行われる、請求項1乃至10の何れか1つに記載のゲームプログラム。
  12. 前記状態変化には、オブジェクトの消滅が少なくとも含まれ、
    前記復帰移動中の前記指定オブジェクトが消滅した場合には、当該復帰移動が終了する、請求項11に記載のゲームプログラム。
  13. プロセッサを備え、
    前記プロセッサは、
    ユーザの操作入力に基づいて、仮想空間内においてプレイヤキャラクタを制御し、
    仮想空間内における所定範囲内のオブジェクトについて、時間毎の位置および姿勢を時間経過に沿ってメモリに記憶させ、
    前記オブジェクトのうち、前記操作入力に基づいて選択された指定オブジェクトに対して、前記操作入力に基づいて開始指示された時点から順に遡って過去に前記メモリに記憶された位置および姿勢に戻る復帰移動をするように、仮想的な物理演算に用いられる運動に関するパラメータを変化させ、
    前記仮想的な物理演算に基づいて、前記プレイヤキャラクタ、前記指定オブジェクト、およびそれら以外のオブジェクトを含めた仮想空間内の状態を更新する、ゲーム装置。
  14. 前記プロセッサは、前記指定オブジェクトに前記復帰移動をさせるとき、当該復帰移動の経過に応じてより過去に前記メモリに記憶された位置および姿勢を目標とし、当該目標の位置および姿勢となるように、前記指定オブジェクトの前記パラメータとして速度および角速度、または加速度および角加速度を変更する、請求項13に記載のゲーム装置。
  15. 前記プロセッサは、前記時間毎の位置および姿勢を、表示の単位時間となるフレーム毎に前記メモリに記憶させ、
    前記プロセッサは、前記復帰移動中の経過フレームに応じてより過去のフレームにおいて前記メモリに記憶された前記位置および姿勢を前記目標とする、請求項14に記載のゲーム装置。
  16. 前記プロセッサは、前記時間毎の位置および姿勢を、少なくとも前記開始指示までの最新の所定時間分まで前記メモリに記憶させる、請求項13乃至15の何れか1つに記載のゲーム装置。
  17. さらに、前記プロセッサは、前記指定オブジェクトが、前記所定時間分前に前記メモリに記憶された位置および姿勢へ向かう前記復帰移動をするか、前記操作入力によって前記復帰移動の解除指示がされた場合に当該復帰移動を終了する、請求項16に記載のゲーム装置。
  18. さらに、前記プロセッサは、前記メモリに記憶された前記位置および姿勢に基づいて、前記指定オブジェクトが前記復帰移動をする際の移動経路を示すための経路表示オブジェクトを前記仮想空間内に配置する、請求項13乃至17の何れか1つに記載のゲーム装置。
  19. 前記プロセッサは、前記時間毎の位置および姿勢を、表示の単位時間となるフレーム毎に少なくとも前記開始指示までの最新の所定時間分まで前記メモリに記憶させ、
    さらに、前記プロセッサは、前記操作入力に基づいて前記指定オブジェクトが選択されたとき、前記メモリに記憶された前記位置および姿勢に基づいて、前記指定オブジェクトが前記復帰移動をする際の前記所定時間分の移動経路を示すための経路表示オブジェクトを前記仮想空間内に配置し、
    前記プロセッサは、前記開始指示に基づいて前記指定オブジェクトに前記復帰移動をさせるとき、当該復帰移動の経過フレームに応じてより過去のフレームに前記メモリに記憶された位置および姿勢を目標とし、当該目標の位置および姿勢となるように、前記指定オブジェクトの前記パラメータとして速度および角速度、または加速度および角加速度を変更し、
    さらに、前記プロセッサは、前記指定オブジェクトが、前記所定時間分前に前記メモリに記憶された位置および姿勢への前記復帰移動をするか、前記操作入力によって前記復帰移動の解除指示がされた場合に当該復帰移動を終了する、請求項13に記載のゲーム装置。
  20. 前記プロセッサは、前記指定オブジェクトが、前記所定時間分前に前記メモリに記憶された位置および姿勢へ向かう前記復帰移動をした場合、前記仮想的な物理演算の結果、当該所定時間分前に前記メモリに記憶された位置および姿勢まで戻らない場合であっても当該復帰移動を終了する、請求項17または19に記載のゲーム装置。
  21. さらに、前記プロセッサは、
    前記操作入力に基づいた選択開始指示に基づいて、前記指定オブジェクトの選択を受け付けない通常状態から前記指定オブジェクトの選択を行うことが可能な選択可能状態に遷移し、
    前記選択可能状態において、前記指定オブジェクトとして選択可能なオブジェクトを前記通常状態と異なる表示態様で描画する、請求項13乃至20の何れか1つに記載のゲーム装置。
  22. さらに、前記プロセッサは、
    前記操作入力に基づいて仮想カメラを制御し、
    前記選択可能状態において、画面上の所定位置に配置される照準の表示位置に前記指定オブジェクトとして選択可能なオブジェクトがある場合に、当該オブジェクトを前記指定オブジェクトとして選択し、
    選択されている前記指定オブジェクトが存在する場合において、前記開始指示がされたときに、当該指定オブジェクトの前記復帰移動を開始する、請求項21に記載のゲーム装置。
  23. 前記オブジェクトは、遷移することが可能な状態変化がそれぞれ予め設定され、
    さらに、前記プロセッサは、前記物理演算に加え、前記プレイヤキャラクタの行動および周囲の状態に応じて前記仮想空間内のオブジェクトに前記状態変化をさせる状態変化演算に基づいて前記仮想空間内の状態を更新し、
    前記状態変化は、前記復帰移動中であっても過去の状態に関わらず行われる、請求項13乃至22の何れか1つに記載のゲーム装置。
  24. 前記状態変化には、オブジェクトの消滅が少なくとも含まれ、
    前記復帰移動中の前記指定オブジェクトが消滅した場合には、当該復帰移動が終了する、請求項23に記載のゲーム装置。
  25. プロセッサを備え、
    前記プロセッサは、
    ユーザの操作入力に基づいて、仮想空間内においてプレイヤキャラクタを制御し、
    仮想空間内における所定範囲内のオブジェクトについて、時間毎の位置および姿勢を時間経過に沿ってメモリに記憶させ、
    前記オブジェクトのうち、前記操作入力に基づいて選択された指定オブジェクトに対して、前記操作入力に基づいて開始指示された時点から順に遡って過去に前記メモリに記憶された位置および姿勢に戻る復帰移動をするように、仮想的な物理演算に用いられる運動に関するパラメータを変化させ、
    前記仮想的な物理演算に基づいて、前記プレイヤキャラクタ、前記指定オブジェクト、およびそれら以外のオブジェクトを含めた仮想空間内の状態を更新する、ゲームシステム。
  26. 前記プロセッサは、前記指定オブジェクトに前記復帰移動をさせるとき、当該復帰移動の経過に応じてより過去に前記メモリに記憶された位置および姿勢を目標とし、当該目標の位置および姿勢となるように、前記指定オブジェクトの前記パラメータとして速度および角速度、または加速度および角加速度を変更する、請求項25に記載のゲームシステム。
  27. 前記プロセッサは、前記時間毎の位置および姿勢を、表示の単位時間となるフレーム毎に少なくとも前記開始指示までの最新の所定時間分まで前記メモリに記憶させ、
    さらに、前記プロセッサは、前記操作入力に基づいて前記指定オブジェクトが選択されたとき、前記メモリに記憶された前記位置および姿勢に基づいて、前記指定オブジェクトが前記復帰移動をする際の前記所定時間分の移動経路を示すための経路表示オブジェクトを前記仮想空間内に配置し、
    前記プロセッサは、前記開始指示に基づいて前記指定オブジェクトに前記復帰移動をさせるとき、当該復帰移動の経過フレームに応じてより過去のフレームに前記メモリに記憶された位置および姿勢を目標とし、当該目標の位置および姿勢となるように、前記指定オブジェクトの前記パラメータとして速度および角速度、または加速度および角加速度を変更し、
    さらに、前記プロセッサは、前記指定オブジェクトが、前記所定時間分前に前記メモリに記憶された位置および姿勢への前記復帰移動をするか、前記操作入力によって前記復帰移動の解除指示がされた場合に当該復帰移動を終了する、請求項25に記載のゲームシステム。
  28. 情報処理装置のプロセッサに、
    ユーザの操作入力に基づいて、仮想空間内においてプレイヤキャラクタを制御させ、
    仮想空間内における所定範囲内のオブジェクトについて、時間毎の位置および姿勢を時間経過に沿って前記情報処理装置のメモリに記憶させ、
    前記オブジェクトのうち、前記操作入力に基づいて選択された指定オブジェクトに対して、前記操作入力に基づいて開始指示された時点から順に遡って過去に前記メモリに記憶された位置および姿勢に戻る復帰移動をするように、仮想的な物理演算に用いられる運動に関するパラメータを変化させ、
    前記仮想的な物理演算に基づいて、前記プレイヤキャラクタ、前記指定オブジェクト、およびそれら以外のオブジェクトを含めた仮想空間内の状態を更新させる、ゲーム処理方法。
  29. 前記指定オブジェクトに前記復帰移動をさせるとき、当該復帰移動の経過に応じてより過去に前記メモリに記憶された位置および姿勢を目標とし、当該目標の位置および姿勢となるように、前記指定オブジェクトの前記パラメータとして速度および角速度、または加速度および角加速度を変更させる、請求項28に記載のゲーム処理方法。
  30. 前記時間毎の位置および姿勢は、表示の単位時間となるフレーム毎に少なくとも前記開始指示までの最新の所定時間分まで前記メモリに記憶され、
    さらに、前記プロセッサに、前記操作入力に基づいて前記指定オブジェクトが選択されたとき、前記メモリに記憶された前記位置および姿勢に基づいて、前記指定オブジェクトが前記復帰移動をする際の前記所定時間分の移動経路を示すための経路表示オブジェクトを前記仮想空間内に配置させ、
    前記開始指示に基づいて前記指定オブジェクトに前記復帰移動をさせるとき、当該復帰移動の経過フレームに応じてより過去のフレームに前記メモリに記憶された位置および姿勢を目標とし、当該目標の位置および姿勢となるように、前記指定オブジェクトの前記パラメータとして速度および角速度、または加速度および角加速度を変更させ、
    さらに、前記プロセッサに、前記指定オブジェクトが、前記所定時間分前に前記メモリに記憶された位置および姿勢への前記復帰移動をするか、前記操作入力によって前記復帰移動の解除指示がされた場合に当該復帰移動を終了させる、請求項28に記載のゲーム処理方法。
JP2020096049A 2020-06-02 2020-06-02 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法 Active JP7436293B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020096049A JP7436293B2 (ja) 2020-06-02 2020-06-02 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
US17/328,218 US11701588B2 (en) 2020-06-02 2021-05-24 Storage medium storing game program, game apparatus, game system, and game processing method
US18/322,220 US20230321544A1 (en) 2020-06-02 2023-05-23 Storage medium storing game program, game apparatus, game system, and game processing method
JP2024017949A JP2024036655A (ja) 2020-06-02 2024-02-08 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020096049A JP7436293B2 (ja) 2020-06-02 2020-06-02 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2024017949A Division JP2024036655A (ja) 2020-06-02 2024-02-08 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法

Publications (2)

Publication Number Publication Date
JP2021186373A true JP2021186373A (ja) 2021-12-13
JP7436293B2 JP7436293B2 (ja) 2024-02-21

Family

ID=78706685

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020096049A Active JP7436293B2 (ja) 2020-06-02 2020-06-02 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
JP2024017949A Pending JP2024036655A (ja) 2020-06-02 2024-02-08 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2024017949A Pending JP2024036655A (ja) 2020-06-02 2024-02-08 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法

Country Status (2)

Country Link
US (2) US11701588B2 (ja)
JP (2) JP7436293B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022088680A (ja) * 2020-06-10 2022-06-14 株式会社三洋物産 遊技機
JP7479541B2 (ja) 2023-04-27 2024-05-08 任天堂株式会社 ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7436293B2 (ja) * 2020-06-02 2024-02-21 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
CN113457132B (zh) * 2021-06-23 2024-03-01 北京达佳互联信息技术有限公司 对象投放方法、装置、电子设备及存储介质

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3559024B2 (ja) 2002-04-04 2004-08-25 マイクロソフト コーポレイション ゲームプログラムおよびゲーム装置
US20100151927A1 (en) * 2005-11-26 2010-06-17 Jacques Miles Learning The Game Sports Officiating Simulation Device
US8882590B2 (en) * 2006-04-28 2014-11-11 Nintendo Co., Ltd. Touch-controlled game character motion providing dynamically-positioned virtual control pad
JP4536121B2 (ja) * 2008-02-22 2010-09-01 株式会社コナミデジタルエンタテインメント ゲームプログラム、ゲーム装置、およびゲーム制御方法
US20110183754A1 (en) * 2010-01-25 2011-07-28 Mansour Ali Saleh Alghamdi Game system based on real time and location of user
US9573064B2 (en) * 2010-06-24 2017-02-21 Microsoft Technology Licensing, Llc Virtual and location-based multiplayer gaming
US9690266B2 (en) * 2011-09-19 2017-06-27 Siemens Industry, Inc. Building automation system control with motion sensing
US9266022B1 (en) * 2012-08-21 2016-02-23 David Paul Pasqualone System to pause a game console whenever an object enters an exclusion zone
US20140141889A1 (en) * 2012-11-19 2014-05-22 2343127 Ontario Inc. Systems and Methods for Capture and Use of Local Elements in Gameplay
US9582516B2 (en) * 2013-10-17 2017-02-28 Nant Holdings Ip, Llc Wide area augmented reality location-based services
US10304287B2 (en) * 2015-10-28 2019-05-28 Disney Enterprise, Inc. Systems and methods for awarding user accounts associated with users of a video game based on information that is unique to individual user accounts
US10969748B1 (en) * 2015-12-28 2021-04-06 Disney Enterprises, Inc. Systems and methods for using a vehicle as a motion base for a simulated experience
JP6755224B2 (ja) * 2017-08-28 2020-09-16 任天堂株式会社 ゲームシステム、ゲームプログラム、ゲーム装置、および、ゲーム処理方法
US10970560B2 (en) * 2018-01-12 2021-04-06 Disney Enterprises, Inc. Systems and methods to trigger presentation of in-vehicle content
JP7329764B2 (ja) 2018-06-04 2023-08-21 任天堂株式会社 ゲームプログラム、情報処理システム、情報処理装置、および情報処理方法
JP6916150B2 (ja) * 2018-06-05 2021-08-11 任天堂株式会社 ゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法
US10841632B2 (en) * 2018-08-08 2020-11-17 Disney Enterprises, Inc. Sequential multiplayer storytelling in connected vehicles
US11110351B2 (en) * 2018-09-06 2021-09-07 Bandai Namco Entertainment Inc. Information storage media, game devices and servers
US10785621B1 (en) * 2019-07-30 2020-09-22 Disney Enterprises, Inc. Systems and methods to provide an interactive space based on vehicle-to-vehicle communications
JP7184261B2 (ja) * 2020-01-30 2022-12-06 任天堂株式会社 情報処理システム、情報処理プログラム、情報処理装置、および情報処理方法
US11076276B1 (en) * 2020-03-13 2021-07-27 Disney Enterprises, Inc. Systems and methods to provide wireless communication between computing platforms and articles
EP4010097A1 (en) * 2020-03-20 2022-06-15 Google LLC Using semantic natural language processing machine learning algorithms for a video game application
JP7089546B2 (ja) * 2020-04-09 2022-06-22 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および情報処理制御方法
JP7436293B2 (ja) * 2020-06-02 2024-02-21 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
JP2021194259A (ja) * 2020-06-15 2021-12-27 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP7203068B2 (ja) * 2020-08-26 2023-01-12 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
US11491397B2 (en) * 2020-08-27 2022-11-08 Nintendo Co., Ltd. Non-transitory computer-readable storage medium having stored therein game program, game system, information processing apparatus, and information processing method
JP7200184B2 (ja) * 2020-08-28 2023-01-06 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP7407150B2 (ja) * 2021-08-17 2023-12-28 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
JP7500011B2 (ja) * 2021-09-08 2024-06-17 株式会社ハル研究所 ゲームプログラム、情報処理装置、情報処理システム、および、ゲーム処理方法
JP7469378B2 (ja) * 2022-05-24 2024-04-16 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022088680A (ja) * 2020-06-10 2022-06-14 株式会社三洋物産 遊技機
JP7479541B2 (ja) 2023-04-27 2024-05-08 任天堂株式会社 ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法

Also Published As

Publication number Publication date
JP2024036655A (ja) 2024-03-15
US20230321544A1 (en) 2023-10-12
US20210370178A1 (en) 2021-12-02
US11701588B2 (en) 2023-07-18
JP7436293B2 (ja) 2024-02-21

Similar Documents

Publication Publication Date Title
JP7436293B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
EP2527017B1 (en) Game program, game system, and game processing method
JP6916150B2 (ja) ゲームシステム、ゲームプログラム、ゲーム装置、およびゲーム処理方法
US9126114B2 (en) Storage medium, input terminal device, control system, and control method
JP5210547B2 (ja) 移動制御プログラムおよび移動制御装置
US11697063B2 (en) Storage medium having stored therein information processing program, information processing apparatus, information processing system, and information processing method
JP7232223B2 (ja) ゲームプログラム、ゲームシステム、情報処理装置、および、情報処理方法
JP7200184B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP7233399B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
US9751019B2 (en) Input methods and devices for music-based video games
JP5081399B2 (ja) ゲーム装置、プログラム及び情報記録媒体
JP7469378B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
JP2023039201A (ja) ゲームプログラム、情報処理装置、情報処理システム、および、ゲーム処理方法
US9582162B2 (en) Information processing apparatus, information processing system, storage medium and information processing method
JP2022124628A (ja) ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
JP7491977B2 (ja) ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法
JP7403107B2 (ja) 情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法
JP6978540B2 (ja) プログラム、端末、及びゲームシステム
JP7421521B2 (ja) ゲームプログラム、情報処理装置、情報処理システム、および情報処理方法
JP5846766B2 (ja) ゲーム装置、ゲーム制御方法、及びゲーム制御プログラム
JP2012161586A (ja) ゲーム装置、ゲーム制御方法、及びゲーム制御プログラム
JP2018198656A (ja) 情報処理プログラム、情報処理装置、情報処理方法、および情報処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240124

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240208

R150 Certificate of patent or registration of utility model

Ref document number: 7436293

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150