(57)【要約】【課題】他の装置において表示する場合に適切な向きで表示させることが可能な画像を保存するゲームシステムを提供する。【解決手段】ゲームシステムの一例は、ゲームの実行中にプレイヤの操作に応じて撮影モードに切り替える。撮影モードでは、プレイヤの操作に応じて仮想空間内の仮想カメラをロール方向に回転させる。ゲームシステムは、仮想カメラがロール方向に所定の閾値以上回転された場合、画像の回転情報として９０度回転させることを示す情報を記憶する。そして、ゲームシステムは、プレイヤの指示に応じて、当該指示タイミングにおいて画面に表示されている画像と、当該画像の回転情報とを記憶媒体に記憶させる。【選択図】図２１
2019037614.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間内においてオブジェクトの制御を行うオブジェクト制御部と、
プレイヤの操作に基づいて、前記仮想空間内の仮想カメラの姿勢を制御する仮想カメラ制御部と、
前記仮想カメラに基づく前記仮想空間の画像を、表示のために所定時間毎に生成する画像生成部と、
プレイヤの指示に応じて、当該指示タイミングにおいて前記画像生成部によって生成された画像と、当該指示タイミングにおける前記仮想カメラの姿勢に基づいて決定される当該画像の回転情報とを所定の記憶媒体に記憶させる画像記憶処理部とを備える、ゲームシステム。
【請求項２】
プレイヤの操作に基づいて、ゲームプレイ中に撮影モードへの切り替えを行うモード切替部をさらに備え、
前記撮影モードにおいて、
前記オブジェクト制御部は、前記仮想空間内におけるオブジェクトの状態を更新しないように制御し、
前記仮想カメラ制御部は、プレイヤの操作に基づいて、前記仮想カメラを少なくとも視線方向の軸回りに回転させ、
前記指示タイミングにおける前記仮想カメラの前記視線方向の軸回りの回転量に基づいて、前記回転情報を決定する回転情報決定部をさらに備える、請求項１に記載のゲームシステム。
【請求項３】
前記回転情報決定部は、前記回転量が所定の閾値以上になった場合、前記回転情報として、前記記憶媒体に記憶した画像を表示する際に当該画像を９０度回転して表示させることを示す情報を決定する、請求項２に記載のゲームシステム。
【請求項４】
前記撮影モードにおいて、前記画像生成部が生成する画像の少なくとも一部に所定の追加画像を付加させ、かつ、前記仮想カメラの回転量が所定の閾値以上となった場合、当該追加画像を回転させて付加させる追加画像処理部をさらに備える、請求項２又は３に記載のゲームシステム。
【請求項５】
前記撮影モードにおいて、プレイヤの指示に応じて、前記画像生成部が生成する画像の少なくとも一部の表示態様を変化させるための処理を行う変化処理部をさらに備える、請求項２から４の何れかに記載のゲームシステム。
【請求項６】
前記変化処理部は、前記画像生成部が生成する画像の少なくとも一部に対して、画像を変形する処理、画像をぼかす処理、画像の色調を変更する処理、画像の明るさを変更する処理、画像の解像度を変更する処理、画像の特徴を抽出する処理のうちの少なくとも何れかを行う、請求項５に記載のゲームシステム。
【請求項７】
前記画像生成部は、ゲームプレイ中に表示される一部の画像が前記撮影モードにおいては表示されないように、前記画像を生成する、請求項２から６の何れかに記載のゲームシステム。
【請求項８】
横長又は縦長の画面を有する表示部と、
前記表示部を支持する可搬型のハウジングと、
前記画像生成部が生成した画像を前記表示部に表示させる表示制御部と、をさらに備える、請求項１から７の何れかに記載のゲームシステム。
【請求項９】
前記画像生成部が生成する画像を外部に出力する外部出力部をさらに備える、請求項８に記載のゲームシステム。
【請求項１０】
情報処理システムのコンピュータにおいて実行されるゲームプログラムであって、前記コンピュータに、
仮想空間内においてオブジェクトの制御を行うオブジェクト制御処理と、
プレイヤの操作に基づいて、前記仮想空間内の仮想カメラの姿勢を制御する仮想カメラ制御処理と、
前記仮想カメラに基づく前記仮想空間の画像を、表示のために所定時間毎に生成する画像生成処理と、
前記画像生成処理において生成される前記仮想空間の画像が所定の記憶媒体に記憶される際に用いられる、当該所定の記憶媒体に記憶される画像の回転情報を前記仮想カメラの姿勢に基づいて決定する回転情報決定処理と、
を実行させる、ゲームプログラム。
【請求項１１】
前記コンピュータに、プレイヤの操作に基づいて、ゲームプレイ中に撮影モードへの切り替えを行うモード切替処理をさらに実行させ、
前記撮影モードに切り替えられている場合、
前記オブジェクト制御処理において、前記仮想空間内におけるオブジェクトの状態を更新しないように制御し、
前記仮想カメラ制御処理において、プレイヤの操作に基づいて、前記仮想カメラを少なくとも視線方向の軸回りに回転させ、
前記回転情報決定処理において、前記画像生成処理において前記画像が生成されるときの前記仮想カメラの前記視線方向の軸回りの回転量に基づいて、前記回転情報を決定する、請求項１０に記載のゲームプログラム。
【請求項１２】
前記回転情報決定処理において、前記回転量が所定の閾値以上になった場合、前記回転情報として、前記画像を表示する際に当該画像を９０度回転して表示させることを示す情報を決定する、請求項１１に記載のゲームプログラム。
【請求項１３】
前記撮影モードにおいて、前記画像生成処理において生成される画像の少なくとも一部に所定の追加画像を付加させ、かつ、前記仮想カメラの回転量が所定の閾値以上となった場合、当該追加画像を回転させて付加させる追加画像処理を、前記コンピュータにさらに実行させる、請求項１１又は１２に記載のゲームプログラム。
【請求項１４】
前記撮影モードにおいて、プレイヤの指示に応じて、前記画像生成処理において生成される画像の少なくとも一部の表示態様を変化させるための変化処理を、前記コンピュータにさらに実行させる、請求項１１から１３の何れかに記載のゲームプログラム。
【請求項１５】
前記変化処理において、前記画像生成処理において生成される画像の少なくとも一部に対して、画像を変形する処理、画像をぼかす処理、画像の色調を変更する処理、画像の明るさを変更する処理、画像の解像度を変更する処理、画像の特徴を抽出する処理のうちの少なくとも何れかを行う、請求項１４に記載のゲームプログラム。
【請求項１６】
前記画像生成処理において、ゲームプレイ中に表示される一部の画像が前記撮影モードにおいては表示されないように、前記画像を生成する、請求項１１から１５の何れかに記載のゲームプログラム。
【請求項１７】
仮想空間内においてオブジェクトの制御を行うオブジェクト制御部と、
プレイヤの操作に基づいて、前記仮想空間内の仮想カメラの姿勢を制御する仮想カメラ制御部と、
前記仮想カメラに基づく前記仮想空間の画像を、表示のために所定時間毎に生成する画像生成部と、
プレイヤの指示に応じて、当該指示タイミングにおいて前記画像生成部によって生成された画像と、当該指示タイミングにおける前記仮想カメラの姿勢に基づいて決定される当該画像の回転情報とを所定の記憶媒体に記憶させる画像記憶処理部とを備える、ゲーム装置。
【請求項１８】
プレイヤの操作に基づいて、ゲームプレイ中に撮影モードへの切り替えを行うモード切替部をさらに備え、
前記撮影モードにおいて、
前記オブジェクト制御部は、前記仮想空間内におけるオブジェクトの状態を更新しないように制御し、
前記仮想カメラ制御部は、プレイヤの操作に基づいて、前記仮想カメラを少なくとも視線方向の軸回りに回転させ、
前記指示タイミングにおける前記仮想カメラの前記視線方向の軸回りの回転量に基づいて、前記回転情報を決定する回転情報決定部をさらに備える、請求項１７に記載のゲーム装置。
【請求項１９】
情報処理システムにおいて実行されるゲーム処理方法であって、
仮想空間内においてオブジェクトの制御を行うオブジェクト制御ステップと、
プレイヤの操作に基づいて、前記仮想空間内の仮想カメラの姿勢を制御する仮想カメラ制御ステップと、
前記仮想カメラに基づく前記仮想空間の画像を、表示のために所定時間毎に生成する画像生成ステップと、
プレイヤの指示に応じて、当該指示タイミングにおいて前記画像生成ステップで生成された画像と、当該指示タイミングにおける前記仮想カメラの姿勢に基づいて決定される当該画像の回転情報とを所定の記憶媒体に記憶させる画像記憶処理ステップとを含む、ゲーム処理方法。
【請求項２０】
プレイヤの操作に基づいて、ゲームプレイ中に撮影モードへの切り替えを行うモード切替ステップをさらに含み、
前記撮影モードにおいて、
前記オブジェクト制御ステップでは、前記仮想空間内におけるオブジェクトの状態を更新しないように制御し、
前記仮想カメラ制御ステップでは、プレイヤの操作に基づいて、前記仮想カメラを少なくとも視線方向の軸回りに回転させ、
前記指示タイミングにおける前記仮想カメラの前記視線方向の軸回りの回転量に基づいて、前記回転情報を決定する回転情報決定ステップをさらに含む、請求項１９に記載のゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を生成するゲームシステム、ゲームプログラム、ゲーム装置、および、ゲーム処理方法に関する。
【背景技術】
【０００２】
従来より、ゲームを実行し、プレイヤの指示に応じて画面に表示されるゲーム画像を記憶媒体に保存することが可能な装置がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−４５２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術では、画面に表示される画像を例えば横長の画像として記憶媒体に保存するだけであり、当該保存された画像を他の装置において表示する場合において適切な向きで表示されるようにするには改善の余地があった。
【０００５】
それ故、本発明の目的は、他の装置において表示する場合に適切な向きで表示させることが可能な画像を保存するゲームシステム、ゲームプログラム、ゲーム装置、および、ゲーム処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記の課題を解決すべく、本発明は、以下の構成を採用した。
【０００７】
本発明の一例は、オブジェクト制御部と、仮想カメラ制御部と、画像生成部と、画像記憶処理部と、を備えるゲームシステムである。オブジェクト制御部は、仮想空間内においてオブジェクトの制御を行う。仮想カメラ制御部は、プレイヤの操作に基づいて、前記仮想空間内の仮想カメラの姿勢を制御する。画像生成部は、前記仮想カメラに基づく前記仮想空間の画像を、表示のために所定時間毎に生成する。画像記憶処理部は、プレイヤの指示に応じて、当該指示タイミングにおいて前記画像生成部によって生成された画像と、当該指示タイミングにおける前記仮想カメラの姿勢に基づいて決定される当該画像の回転情報とを所定の記憶媒体に記憶させる。
【０００８】
上記によれば、仮想カメラに姿勢を制御し、姿勢が変化された仮想カメラに基づく仮想空間の画像と、仮想カメラの姿勢に応じて決定される当該画像の回転情報とを記憶媒体に記憶することができる。画像を回転させるとともに、当該回転に応じた回転情報を記憶媒体に記憶することができ、例えば、記憶媒体に記憶した画像を他の装置において表示する場合に、画像を回転させて表示させることができる。
【０００９】
また、他の構成では、上記ゲームシステムは、プレイヤの操作に基づいて、ゲームプレイ中に撮影モードへの切り替えを行うモード切替部をさらに備えてもよい。前記撮影モードにおいて、前記オブジェクト制御部は、前記仮想空間内におけるオブジェクトの状態を更新しないように制御し、前記仮想カメラ制御部は、プレイヤの操作に基づいて、前記仮想カメラを少なくとも視線方向の軸回りに回転させてもよい。また、上記ゲームシステムは、前記指示タイミングにおける前記仮想カメラの前記視線方向の軸回りの回転量に基づいて、前記回転情報を決定する回転情報決定部をさらに備えてもよい。
【００１０】
上記によれば、ゲームプレイ中に撮影モードに切り替えることができる。撮影モードでは、仮想空間内のオブジェクトの状態が更新されないため、仮想空間内のオブジェクトを静止させることができる。また、仮想カメラを視線方向の軸回りに回転させることができ、当該回転させた画像と、回転情報とを記憶媒体に記憶させることができる。
【００１１】
また、他の構成では、前記回転情報決定部は、前記回転量が所定の閾値以上になった場合、前記回転情報として、前記記憶媒体に記憶した画像を表示する際に当該画像を９０度回転して表示させることを示す情報を決定してもよい。
【００１２】
上記によれば、視線方向の軸回りの回転量が所定の閾値以上になった場合に、画像を９０度回転して表示させることを示す情報を、記憶媒体に記憶することができる。これにより、他の装置において画像が表示される場合に、当該画像を９０度回転させて表示させることができる。
【００１３】
また、他の構成では、上記ゲームシステムは、前記撮影モードにおいて、前記画像生成部が生成する画像の少なくとも一部に所定の追加画像を付加させ、かつ、前記仮想カメラの回転量が所定の閾値以上となった場合、当該追加画像を回転させて付加させる追加画像処理部をさらに備えてもよい。
【００１４】
上記によれば、仮想空間の画像に付加画像を付加することができ、付加画像も同様に回転させることができる。
【００１５】
また、他の構成では、上記ゲームシステムは、前記撮影モードにおいて、プレイヤの指示に応じて、前記画像生成部が生成する画像の少なくとも一部の表示態様を変化させるための処理を行う変化処理部をさらに備えてもよい。
【００１６】
上記によれば、仮想空間の画像の表示態様を変化させて、記憶媒体に記憶することができる。
【００１７】
また、他の構成では、前記変化処理部は、前記画像生成部が生成する画像の少なくとも一部に対して、画像を変形する処理、画像をぼかす処理、画像の色調を変更する処理、画像の明るさを変更する処理、画像の解像度を変更する処理、画像の特徴を抽出する処理のうちの少なくとも何れかを行ってもよい。
【００１８】
上記によれば、仮想空間の画像に様々な処理を行うことで画像の表示態様を変化させることができる。
【００１９】
また、他の構成では、前記画像生成部は、ゲームプレイ中に表示される一部の画像が前記撮影モードにおいては表示されないように、前記画像を生成してもよい。
【００２０】
上記によれば、ゲームプレイ中に表示される画像を撮影モードにおいては表示されないようにして、記憶媒体に記憶することができる。
【００２１】
また、他の構成では、上記ゲームシステムは、横長又は縦長の画面を有する表示部と、前記表示部を支持する可搬型のハウジングと、前記画像生成部が生成した画像を前記表示部に表示させる表示制御部とをさらに備えてもよい。
【００２２】
上記によれば、横長又は縦長の画面を有する表示部と一体となった可搬型のゲームシステムにおいて、上記画像および当該画像の回転情報を記憶媒体に記憶することができる。
【００２３】
また、他の構成では、前記画像生成部が生成する画像を外部に出力する外部出力部をさらに備えてもよい。
【００２４】
上記によれば、ゲームシステムにおいて生成した画像を外部に出力することができ、画像を外部の装置に表示することができる。
【００２５】
また、他の発明は、上記ゲームシステムの各部が行う処理を実行するゲームプログラムであってもよい。また、他の発明は、上記ゲームシステムの各部を備えるゲーム装置であってもよい。また、他の発明は、情報処理システムにおいて行われるゲーム処理方法であってもよい。
【発明の効果】
【００２６】
本発明によれば、仮想空間の画像と当該画像の回転情報とを記憶媒体に保存することができる。
【図面の簡単な説明】
【００２７】
【図１】本体装置２に左コントローラ３および右コントローラ４を装着した状態の一例を示す図
【図２】本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図
【図３】本体装置２の一例を示す六面図
【図４】左コントローラ３の一例を示す六面図
【図５】右コントローラ４の一例を示す六面図
【図６】本体装置２の内部構成の一例を示すブロック図
【図７】本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図
【図８】本実施形態のゲームプレイ中に表示されるゲーム画像の一例を示す図
【図９】撮影モードにおいて表示される画像の一例を示す図
【図１０】撮影モードにおける仮想カメラのロール方向の回転を説明するための図
【図１１】撮影モードにおいて仮想カメラＶＣをロール方向（時計回り）に回転させたときの画像の一例を示す図
【図１２】図１１の状態から仮想カメラＶＣをロール方向（時計回り）にさらに回転させたときの画像の一例を示す図
【図１３】画像の回転情報を決定する条件の一例を示す図
【図１４】図１２の状態から仮想カメラＶＣをロール方向（時計回り）にさらに回転させたときの画像の一例を示す図
【図１５】図１４に示す画像が表示されている場合にディスプレイ１２を縦長となるように把持したときの様子を示す図
【図１６】図１４に示すスナップショット画像がスマートフォンにおいて表示されるときの一例を示す図
【図１７】回転情報を処理できない他の装置にスナップショット画像が表示される場合の一例を示す図
【図１８】仮想カメラＶＣのピッチ方向およびヨー方向の回転を説明するための図
【図１９】ゲームシステム１のＤＲＡＭ８５に記憶されるデータの一例を示す図
【図２０】ゲームシステム１のフラッシュメモリ８４に記憶されるデータの一例を示す図
【図２１】ゲームシステム１において行われる処理の詳細を示すフローチャート
【図２２】ステップＳ６の回転処理の詳細を示すフローチャート
【発明を実施するための形態】
【００２８】
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム１の一例は、本体装置（情報処理装置；本実施形態ではゲーム装置本体として機能する）２と左コントローラ３および右コントローラ４とを含む。本体装置２は、左コントローラ３および右コントローラ４がそれぞれ着脱可能である。つまり、ゲームシステム１は、左コントローラ３および右コントローラ４をそれぞれ本体装置２に装着して一体化された装置として利用できる。また、ゲームシステム１は、本体装置２と左コントローラ３および右コントローラ４とを別体として利用することもできる（図２参照）。以下では、本実施形態のゲームシステム１のハードウェア構成について説明し、その後に本実施形態のゲームシステム１の制御について説明する。
【００２９】
図１は、本体装置２に左コントローラ３および右コントローラ４を装着した状態の一例を示す図である。図１に示すように、左コントローラ３および右コントローラ４は、それぞれ本体装置２に装着されて一体化されている。本体装置２は、ゲームシステム１における各種の処理（例えば、ゲーム処理）を実行する装置である。本体装置２は、ディスプレイ１２を備える。左コントローラ３および右コントローラ４は、ユーザが入力を行うための操作部を備える装置である。
【００３０】
図２は、本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図である。図１および図２に示すように、左コントローラ３および右コントローラ４は、本体装置２に着脱可能である。なお、以下において、左コントローラ３および右コントローラ４の総称として「コントローラ」と記載することがある。
【００３１】
図３は、本体装置２の一例を示す六面図である。図３に示すように、本体装置２は、略板状のハウジング１１を備える。本実施形態において、ハウジング１１の主面（換言すれば、表側の面、すなわち、ディスプレイ１２が設けられる面）は、大略的には矩形形状である。
【００３２】
なお、ハウジング１１の形状および大きさは、任意である。一例として、ハウジング１１は、携帯可能な大きさであってよい。また、本体装置２単体または本体装置２に左コントローラ３および右コントローラ４が装着された一体型装置は、携帯型装置となってもよい。また、本体装置２または一体型装置が手持ち型の装置となってもよい。また、本体装置２または一体型装置が可搬型装置となってもよい。
【００３３】
図３に示すように、本体装置２は、ハウジング１１の主面に設けられるディスプレイ１２を備える。ディスプレイ１２は、本体装置２が生成した画像を表示する。本実施形態においては、ディスプレイ１２は、液晶表示装置（ＬＣＤ）とする。ただし、ディスプレイ１２は任意の種類の表示装置であってよい。
【００３４】
また、本体装置２は、ディスプレイ１２の画面上にタッチパネル１３を備える。本実施形態においては、タッチパネル１３は、マルチタッチ入力が可能な方式（例えば、静電容量方式）のものである。ただし、タッチパネル１３は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式（例えば、抵抗膜方式）のものであってもよい。
【００３５】
本体装置２は、ハウジング１１の内部においてスピーカ（すなわち、図６に示すスピーカ８８）を備えている。図３に示すように、ハウジング１１の主面には、スピーカ孔１１ａおよび１１ｂが形成される。そして、スピーカ８８の出力音は、これらのスピーカ孔１１ａおよび１１ｂからそれぞれ出力される。
【００３６】
また、本体装置２は、本体装置２が左コントローラ３と有線通信を行うための端子である左側端子１７と、本体装置２が右コントローラ４と有線通信を行うための右側端子２１を備える。
【００３７】
図３に示すように、本体装置２は、スロット２３を備える。スロット２３は、ハウジング１１の上側面に設けられる。スロット２３は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム１およびそれと同種の情報処理装置に専用の記憶媒体（例えば、専用メモリカード）である。所定の種類の記憶媒体は、例えば、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。また、本体装置２は、電源ボタン２８を備える。
【００３８】
本体装置２は、下側端子２７を備える。下側端子２７は、本体装置２がクレードルと通信を行うための端子である。本実施形態において、下側端子２７は、ＵＳＢコネクタ（より具体的には、メス側コネクタ）である。上記一体型装置または本体装置２単体をクレードルに載置した場合、ゲームシステム１は、本体装置２が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置２単体を充電する機能を有する。また、クレードルは、ハブ装置（具体的には、ＵＳＢハブ）の機能を有する。
【００３９】
図４は、左コントローラ３の一例を示す六面図である。図４に示すように、左コントローラ３は、ハウジング３１を備える。本実施形態においては、ハウジング３１は、縦長の形状、すなわち、上下方向（すなわち、図１および図４に示すｙ軸方向）に長い形状である。左コントローラ３は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング３１は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ３は、横長となる向きで把持されることも可能である。左コントローラ３が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００４０】
左コントローラ３は、アナログスティック３２を備える。図４に示すように、アナログスティック３２は、ハウジング３１の主面に設けられる。アナログスティック３２は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック３２を傾倒することによって傾倒方向に応じた方向の入力（および、傾倒した角度に応じた大きさの入力）が可能である。なお、左コントローラ３は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック３２を押下する入力が可能である。
【００４１】
左コントローラ３は、各種操作ボタンを備える。左コントローラ３は、ハウジング３１の主面上に４つの操作ボタン３３〜３６（具体的には、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および左方向ボタン３６）を備える。さらに、左コントローラ３は、録画ボタン３７および−（マイナス）ボタン４７を備える。左コントローラ３は、ハウジング３１の側面の左上に第１Ｌボタン３８およびＺＬボタン３９を備える。また、左コントローラ３は、ハウジング３１の側面の、本体装置２に装着される際に装着される側の面に第２Ｌボタン４３および第２Ｒボタン４４を備える。これらの操作ボタンは、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。
【００４２】
また、左コントローラ３は、左コントローラ３が本体装置２と有線通信を行うための端子４２を備える。
【００４３】
図５は、右コントローラ４の一例を示す六面図である。図５に示すように、右コントローラ４は、ハウジング５１を備える。本実施形態においては、ハウジング５１は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ４は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング５１は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ４は、横長となる向きで把持されることも可能である。右コントローラ４が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００４４】
右コントローラ４は、左コントローラ３と同様、方向入力部としてアナログスティック５２を備える。本実施形態においては、アナログスティック５２は、左コントローラ３のアナログスティック３２と同じ構成である。また、右コントローラ４は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ４は、左コントローラ３と同様、ハウジング５１の主面上に４つの操作ボタン５３〜５６（具体的には、Ａボタン５３、Ｂボタン５４、Ｘボタン５５、およびＹボタン５６）を備える。さらに、右コントローラ４は、＋（プラス）ボタン５７およびホームボタン５８を備える。また、右コントローラ４は、ハウジング５１の側面の右上に第１Ｒボタン６０およびＺＲボタン６１を備える。また、右コントローラ４は、左コントローラ３と同様、第２Ｌボタン６５および第２Ｒボタン６６を備える。
【００４５】
また、右コントローラ４は、右コントローラ４が本体装置２と有線通信を行うための端子６４を備える。
【００４６】
図６は、本体装置２の内部構成の一例を示すブロック図である。本体装置２は、図３に示す構成の他、図６に示す各構成要素８１〜９１、９７、および９８を備える。これらの構成要素８１〜９１、９７、および９８のいくつかは、電子部品として電子回路基板上に実装されてハウジング１１内に収納されてもよい。
【００４７】
本体装置２は、プロセッサ８１を備える。プロセッサ８１は、本体装置２において実行される各種の情報処理を実行する情報処理部であって、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のみから構成されてもよいし、ＣＰＵ機能、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）機能等の複数の機能を含むＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）から構成されてもよい。プロセッサ８１は、記憶部（具体的には、フラッシュメモリ８４等の内部記憶媒体、あるいは、スロット２３に装着される外部記憶媒体等）に記憶される情報処理プログラム（例えば、ゲームプログラム）を実行することによって、各種の情報処理を実行する。
【００４８】
本体装置２は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ８４およびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８５を備える。フラッシュメモリ８４およびＤＲＡＭ８５は、プロセッサ８１に接続される。フラッシュメモリ８４は、主に、本体装置２に保存される各種のデータ（プログラムであってもよい）を記憶するために用いられるメモリである。ＤＲＡＭ８５は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【００４９】
本体装置２は、スロットインターフェース（以下、「Ｉ／Ｆ」と略記する。）９１を備える。スロットＩ／Ｆ９１は、プロセッサ８１に接続される。スロットＩ／Ｆ９１は、スロット２３に接続され、スロット２３に装着された所定の種類の記憶媒体（例えば、専用メモリカード）に対するデータの読み出しおよび書き込みを、プロセッサ８１の指示に応じて行う。
【００５０】
プロセッサ８１は、フラッシュメモリ８４およびＤＲＡＭ８５、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【００５１】
本体装置２は、ネットワーク通信部８２を備える。ネットワーク通信部８２は、プロセッサ８１に接続される。ネットワーク通信部８２は、ネットワークを介して外部の装置と通信（具体的には、無線通信）を行う。本実施形態においては、ネットワーク通信部８２は、第１の通信態様としてＷｉ−Ｆｉの規格に準拠した方式により、無線ＬＡＮに接続して外部装置と通信を行う。また、ネットワーク通信部８２は、第２の通信態様として所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により、同種の他の本体装置２との間で無線通信を行う。なお、上記第２の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置２との間で無線通信可能であり、複数の本体装置２の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【００５２】
本体装置２は、コントローラ通信部８３を備える。コントローラ通信部８３は、プロセッサ８１に接続される。コントローラ通信部８３は、左コントローラ３および／または右コントローラ４と無線通信を行う。本体装置２と左コントローラ３および右コントローラ４との通信方式は任意であるが、本実施形態においては、コントローラ通信部８３は、左コントローラ３との間および右コントローラ４との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信を行う。
【００５３】
プロセッサ８１は、上述の左側端子１７、右側端子２１、および下側端子２７に接続される。プロセッサ８１は、左コントローラ３と有線通信を行う場合、左側端子１７を介して左コントローラ３へデータを送信するとともに、左側端子１７を介して左コントローラ３から操作データを受信する。また、プロセッサ８１は、右コントローラ４と有線通信を行う場合、右側端子２１を介して右コントローラ４へデータを送信するとともに、右側端子２１を介して右コントローラ４から操作データを受信する。また、プロセッサ８１は、クレードルと通信を行う場合、下側端子２７を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置２は、左コントローラ３および右コントローラ４との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置または本体装置２単体がクレードルに装着された場合、本体装置２は、クレードルを介してデータ（例えば、画像データや音声データ）を据置型モニタ等に出力することができる。
【００５４】
ここで、本体装置２は、複数の左コントローラ３と同時に（換言すれば、並行して）通信を行うことができる。また、本体装置２は、複数の右コントローラ４と同時に（換言すれば、並行して）通信を行うことができる。したがって、複数のユーザは、左コントローラ３および右コントローラ４のセットをそれぞれ用いて、本体装置２に対する入力を同時に行うことができる。一例として、第１ユーザが左コントローラ３および右コントローラ４の第１セットを用いて本体装置２に対して入力を行うと同時に、第２ユーザが左コントローラ３および右コントローラ４の第２セットを用いて本体装置２に対して入力を行うことが可能となる。
【００５５】
本体装置２は、タッチパネル１３の制御を行う回路であるタッチパネルコントローラ８６を備える。タッチパネルコントローラ８６は、タッチパネル１３とプロセッサ８１との間に接続される。タッチパネルコントローラ８６は、タッチパネル１３からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ８１へ出力する。
【００５６】
また、ディスプレイ１２は、プロセッサ８１に接続される。プロセッサ８１は、（例えば、上記の情報処理の実行によって）生成した画像および／または外部から取得した画像をディスプレイ１２に表示する。
【００５７】
本体装置２は、コーデック回路８７およびスピーカ（具体的には、左スピーカおよび右スピーカ）８８を備える。コーデック回路８７は、スピーカ８８および音声入出力端子２５に接続されるとともに、プロセッサ８１に接続される。コーデック回路８７は、スピーカ８８および音声入出力端子２５に対する音声データの入出力を制御する回路である。
【００５８】
本体装置２は、電力制御部９７およびバッテリ９８を備える。電力制御部９７は、バッテリ９８およびプロセッサ８１に接続される。また、図示しないが、電力制御部９７は、本体装置２の各部（具体的には、バッテリ９８の電力の給電を受ける各部、左側端子１７、および右側端子２１）に接続される。電力制御部９７は、プロセッサ８１からの指令に基づいて、バッテリ９８から上記各部への電力供給を制御する。
【００５９】
また、バッテリ９８は、下側端子２７に接続される。外部の充電装置（例えば、クレードル）が下側端子２７に接続され、下側端子２７を介して本体装置２に電力が供給される場合、供給された電力がバッテリ９８に充電される。
【００６０】
図７は、本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図である。なお、本体装置２に関する内部構成の詳細については、図６で示しているため図７では省略している。
【００６１】
左コントローラ３は、本体装置２との間で通信を行う通信制御部１０１を備える。図７に示すように、通信制御部１０１は、端子４２を含む各構成要素に接続される。本実施形態においては、通信制御部１０１は、端子４２を介した有線通信と、端子４２を介さない無線通信との両方で本体装置２と通信を行うことが可能である。通信制御部１０１は、左コントローラ３が本体装置２に対して行う通信方法を制御する。すなわち、左コントローラ３が本体装置２に装着されている場合、通信制御部１０１は、端子４２を介して本体装置２と通信を行う。また、左コントローラ３が本体装置２から外されている場合、通信制御部１０１は、本体装置２（具体的には、コントローラ通信部８３）との間で無線通信を行う。コントローラ通信部８３と通信制御部１０１との間の無線通信は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従って行われる。
【００６２】
また、左コントローラ３は、例えばフラッシュメモリ等のメモリ１０２を備える。通信制御部１０１は、例えばマイコン（マイクロプロセッサとも言う）で構成され、メモリ１０２に記憶されるファームウェアを実行することによって各種の処理を実行する。
【００６３】
左コントローラ３は、各ボタン１０３（具体的には、ボタン３３〜３９、４３、４４、および４７）を備える。また、左コントローラ３は、アナログスティック（図７では「スティック」と記載する）３２を備える。各ボタン１０３およびアナログスティック３２は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部１０１へ出力する。
【００６４】
通信制御部１０１は、各入力部（具体的には、各ボタン１０３、アナログスティック３２、各センサ１０４および１０５）から、入力に関する情報（具体的には、操作に関する情報、またはセンサによる検出結果）を取得する。通信制御部１０１は、取得した情報（または取得した情報に所定の加工を行った情報）を含む操作データを本体装置２へ送信する。なお、操作データは、所定時間に１回の割合で繰り返し送信される。なお、入力に関する情報が本体装置２へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【００６５】
上記操作データが本体装置２へ送信されることによって、本体装置２は、左コントローラ３に対して行われた入力を得ることができる。すなわち、本体装置２は、各ボタン１０３およびアナログスティック３２に対する操作を、操作データに基づいて判別することができる。
【００６６】
左コントローラ３は、電力供給部１０８を備える。本実施形態において、電力供給部１０８は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ３の各部（具体的には、バッテリの電力の給電を受ける各部）に接続される。
【００６７】
図７に示すように、右コントローラ４は、本体装置２との間で通信を行う通信制御部１１１を備える。また、右コントローラ４は、通信制御部１１１に接続されるメモリ１１２を備える。通信制御部１１１は、端子６４を含む各構成要素に接続される。通信制御部１１１およびメモリ１１２は、左コントローラ３の通信制御部１０１およびメモリ１０２と同様の機能を有する。したがって、通信制御部１１１は、端子６４を介した有線通信と、端子６４を介さない無線通信（具体的には、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信）との両方で本体装置２と通信を行うことが可能であり、右コントローラ４が本体装置２に対して行う通信方法を制御する。
【００６８】
右コントローラ４は、左コントローラ３の各入力部と同様の各入力部を備える。具体的には、各ボタン１１３、アナログスティック５２を備える。これらの各入力部については、左コントローラ３の各入力部と同様の機能を有し、同様に動作する。
【００６９】
右コントローラ４は、処理部１２１を備える。処理部１２１は、通信制御部１１１に接続される。
【００７０】
右コントローラ４は、電力供給部１１８を備える。電力供給部１１８は、左コントローラ３の電力供給部１０８と同様の機能を有し、同様に動作する。
【００７１】
（本実施形態のゲーム及びゲーム画像の保存方法の説明）
次に、本実施形態のゲーム及びゲーム画像の保存方法について説明する。図８は、本実施形態のゲームプレイ中に表示されるゲーム画像の一例を示す図である。例えば、ゲームプログラムが記憶された外部記憶媒体をスロット２３に装着し、プレイヤによってゲームの開始が指示されると、図８に示されるようなゲーム画像がディスプレイ１２に表示される。なお、ゲーム画像は、外部の据置型モニタに表示されてもよい。
【００７２】
本実施形態のゲームが開始されると、仮想空間が定義され、当該仮想空間内に、プレイヤによって操作されるプレイヤキャラクタやゲームシステム１（具体的にはプロセッサ８１）によって制御されるノンプレイヤキャラクタ、仮想カメラ、その他のオブジェクトが配置される。図８は、仮想カメラに基づいて生成された仮想空間の画像の一例が示されている。
【００７３】
図８に示されるように、ディスプレイ１２には、プレイヤキャラクタ２００と、ノンプレイヤキャラクタ（以下、「ＮＰＣ」と表記する）２０１および２０２とが表示される。また、ディスプレイ１２には、タワーオブジェクト２０３、ビルオブジェクト２０４および２０５が表示される。また、ディスプレイ１２の画面の左上部には、プレイヤキャラクタ２００の体力値（又は残機数）を示す体力表示２０６が表示される。
【００７４】
プレイヤキャラクタ２００は、プレイヤの操作に応じて仮想空間内を移動したりジャンプしたりする。例えば、プレイヤキャラクタ２００は、左コントローラ３のアナログスティック３２に対する操作に応じて仮想空間内を移動する。また、プレイヤキャラクタ２００は、右コントローラ４のＡボタン５３に対する操作に応じて、仮想空間内でジャンプする。
【００７５】
一方、ＮＰＣ２０１および２０２は、ゲームシステム１によって制御される。ＮＰＣ２０１および２０２は、例えば、仮想空間内を図８に示す左右方向に移動する。ＮＰＣ２０１および２０２は、敵キャラクタであり、プレイヤキャラクタ２００がＮＰＣ２０１又は２０２と接触すると、プレイヤキャラクタ２００の体力値が減少して、体力表示２０６の３つの「丸印」が１つだけ減少する。例えば、体力値が「０」（体力表示２０６の丸印が「０」）になると、ゲームオーバーとなる。
【００７６】
本実施形態のゲームでは、プレイヤは、基本的にディスプレイ１２が横長となる向きでゲームシステム１を把持してゲームを行う。ここで、本実施形態のゲームでは、「ゲームモード」と「撮影モード」とがある。
【００７７】
ゲームモードは、図８に示されるような通常のゲームプレイ中のモードである。ゲームモードでは、プレイヤキャラクタ２００は、プレイヤの操作に応じて動作する。また、ゲームモードでは、ＮＰＣは、ゲームシステム１によって動作される。また、ゲームモードでは、ゲームが開始されてからの経過時間が計測される。例えば、ゲームの開始からの経過時間が所定時間に達すると、ゲームオーバーとなる。
【００７８】
撮影モードは、プレイヤによる録画ボタン３７に対する操作に応じて、ディスプレイ１２に表示されている画像を静止画として保存するモードである。撮影モードにおいては、プレイヤキャラクタ２００やＮＰＣは動作せず、静止したままである。すなわち、撮影モードにおいては、プレイヤの操作によってプレイヤキャラクタ２００が動作したり、ゲームシステム１によってＮＰＣが動作されたりすることはなく、ゲームの進行が一時的に停止される。また、撮影モードでは、ゲームが開始されてからの経過時間の計測も一時的に停止される。
【００７９】
撮影モードにおいて録画ボタン３７に対する操作が行われると、ディスプレイ１２に表示されている画像が、所定の記憶媒体（例えば、フラッシュメモリ）に記憶される。本実施形態では、録画ボタン３７に対する操作が行われた場合、ディスプレイ１２に表示されている画像と、当該画像の回転情報とが記憶媒体に保存される。例えば、回転情報は、ＥＸＩＦ（Exchangeable image file format）情報における回転情報であってもよい。また、回転情報に加えて、画像の撮影日時や解像度の情報が付加情報として画像とともに記憶されてもよい。以下では、録画ボタン３７に対する操作に応じて記憶媒体に保存される画像を、「スナップショット画像」ということがある。
【００８０】
画像の回転情報は、他の装置（例えば、スマートフォンやタブレット端末、パーソナルコンピュータ等）がスナップショット画像を表示装置に表示するときに、当該画像を何度回転させるかを決定するための情報である。画像の回転情報としては、「無回転」を示す情報、「反時計回りに９０度回転」を示す情報、「時計回りに９０度回転」を示す情報、「１８０度回転」を示す情報等がある。本実施形態では、スナップショット画像とともに記憶媒体に保存される回転情報として、「無回転」を示す情報、「反時計回りに９０度回転」を示す情報、および、「時計回りに９０度回転」を示す情報がある。
【００８１】
画像の回転情報として、「時計回りに９０度回転」を示す情報が記憶される場合、当該画像を他の装置で表示する際に、当該画像が時計回りに９０度回転されて表示される。また、画像の回転情報として、「反時計回りに９０度回転」を示す情報が記憶される場合、当該画像を他の装置で表示する際に、当該画像が時計回りに９０度回転されて表示される。画像の回転情報として、「無回転」を示す情報が記憶される場合、当該画像が他の装置で表示される場合には、当該画像は回転されない。
【００８２】
ゲームモードから撮影モード（又は撮影モードからゲームモード）への切り替えは、プレイヤの切り替え操作に応じて行われる。例えば、ゲームモード中に左コントローラ３のボタン（例えば、ボタン３３〜３６の何れか）が押下されたことに応じて、ゲームモードから撮影モード（又は撮影モードからゲームモード）に切り替えられる。ゲームモードから撮影モードに切り替えられる場合、撮影モードへの切り替え操作が行われた時点においてディスプレイ１２に表示されていたゲーム画像が、静止画としてディスプレイ１２に表示される。
【００８３】
図９は、撮影モードにおいて表示される画像の一例を示す図である。図９に示されるように、撮影モードにおいては、ゲームモードにおいて表示されていた画像の一部が非表示となる。具体的には、ゲームの状況を示す体力表示２０６が、撮影モードにおいては非表示となる。また、ゲームモードにおいては、プレイヤキャラクタ２００やＮＰＣ２０１，２０２が発するセリフ（文字）が表示されることがある。また、例えば、プレイヤキャラクタ２００が仮想空間の特定の場所に位置するとき、画面に文字が表示されることがある。このようなゲームモード中にゲームの状況に応じて表示されていた文字は、撮影モードに切り替えられた場合に非表示となる。なお、撮影モードにおいてもゲームの状況を示す体力表示２０６やゲームの状況に応じて表示されるセリフ等の文字が表示されてもよい。
【００８４】
また、撮影モードにおいては、ゲームモードにおいて表示されていなかったロゴ画像２０７が表示される。ロゴ画像２０７は、例えば画面の右下に表示される。なお、ロゴ画像２０７の位置は、プレイヤの操作に応じて、画面の左下、右下、右上、左上の何れかに変更されてもよい。また、ロゴ画像２０７は、プレイヤの操作に応じて、非表示とされてもよい。また、ロゴ画像の他にも、ゲームモードにおいて表示されていなかった画像が、撮影モードにおいて表示されてもよい。例えば、撮影モードの操作説明が表示されてもよい。
【００８５】
図９に示す撮影モードにおいて表示される画像は、仮想空間に配置された仮想カメラに基づいて生成される。撮影モード中は、この仮想カメラの位置・姿勢がプレイヤの操作に応じて変化する。
【００８６】
図１０は、撮影モードにおける仮想カメラのロール方向の回転を説明するための図である。仮想空間には、仮想空間に固定のＸＹＺ直交座標系が設定される。例えば、Ｙ軸は、仮想空間の上方向に向かう軸である。また、Ｙ軸に垂直なＸ軸およびＺ軸が設定され、ＸＺ平面上に地面オブジェクトが配置される。ゲームモードにおいて、プレイヤキャラクタ２００やＮＰＣは地面オブジェクト上を移動する。
【００８７】
図１０に示されるように、仮想空間には仮想カメラＶＣが設定される。仮想カメラＶＣには、仮想カメラＶＣに固定のＸｃＹｃＺｃ直交座標系が設定される。Ｘｃ軸は、仮想カメラＶＣの右方向の軸であり、Ｙｃ軸は仮想カメラＶＣの上方向の軸であり、Ｚｃ軸は、仮想カメラＶＣの視線方向（撮像方向）の軸である。撮影モード中は、仮想カメラＶＣは、プレイヤの操作に応じてＺｃ軸周り（ロール方向）に回転する。例えば、仮想カメラＶＣは、左コントローラ３のＺＬボタン３９又は右コントローラ４のＺＲボタン６１に対する操作に応じて、ロール方向に回転する。なお、特定の場面においてロール方向の回転が制限される場合があってもよい。
【００８８】
図１１は、撮影モードにおいて仮想カメラＶＣをロール方向（時計回り）に回転させたときの画像の一例を示す図である。図１２は、図１１の状態から仮想カメラＶＣをロール方向（時計回り）にさらに回転させたときの画像の一例を示す図である。
【００８９】
撮影モードにおいて、例えばＺＬボタン３９が押下されると、仮想カメラＶＣがロール方向（時計回り）に回転する。また、撮影モードにおいて、例えばＺＲボタン６１が押下されると、仮想カメラＶＣがロール方向（反時計回り）に回転する。ゲームシステム１は、所定の時間間隔（例えば、１／６０秒間隔）でＺＬボタン３９又はＺＲボタン６１が押下されたか否かを判定し、ＺＬボタン３９又はＺＲボタン６１が押下された場合に、仮想カメラＶＣを所定の角度（例えば、１〜２度）だけロール方向（時計回り又は反時計回り）に回転させる。そして、ゲームシステム１は、回転した仮想カメラＶＣから仮想空間を見た画像を生成してディスプレイ１２に表示する。
【００９０】
図１１に示されるように、ロール方向（時計回り）に回転した後の仮想カメラＶＣから仮想空間を見た画像がディスプレイ１２に表示される。図１１では、画像全体が反時計回りに回転している（仮想カメラＶＣは時計回りに回転している）。一方、ディスプレイ１２の右下に表示されたロゴ画像２０７は回転していない。このとき、録画ボタン３７に対する操作が行われると、図１１に示されるような画像全体が反時計回りに回転した画像が、スナップショット画像として、当該画像の回転情報とともに記憶媒体（例えば、フラッシュメモリ８４）に記憶される。このとき、画像の回転情報としては、「無回転」を示す情報が記憶される。
【００９１】
図１１に示す状態からさらにＺＬボタン３９が押下されると、仮想カメラＶＣがさらにロール方向（時計回り）に回転する（図１２）。すると、図１２に示されるように、画像全体がさらに反時計回りに回転する。このとき、ディスプレイ１２の右下に表示されたロゴ画像２０７も、反時計回りに９０度回転する。また、このとき、録画ボタン３７に対する操作が行われると、図１２に示されるような画像全体が反時計回りに回転した画像が、スナップショット画像として、当該画像の回転情報とともに記憶媒体に記憶される。具体的には、画像の回転情報として、「時計回りに９０度回転」を示す情報が記憶される。
【００９２】
ここで、図１１で示したように回転情報として「無回転」を示す情報を記憶するか、あるいは、図１２で示したように回転情報として「時計回りに９０度回転（又は反時計回りに９０度回転）」を示す情報を記憶するかは、仮想カメラＶＣのロール方向の回転角に応じて決定される。
【００９３】
図１３は、画像の回転情報を決定する条件の一例を示す図である。図１３に示されるように、仮想カメラＶＣのＺｃ軸に垂直な平面において、仮想カメラＶＣの上方向のＹｃ軸と、仮想空間の上方向のＹ軸との角度ｒが算出される。ここでは、反時計回りの回転を正の回転角、時計回りの回転を負の回転角として表す。この角度ｒは、「−９０度」から「９０度」の範囲で変化可能である。すなわち、本実施形態では、仮想カメラＶＣは、ロール方向に「−９０度」〜「９０度」の範囲で回転可能である。なお、他の実施形態では、仮想カメラＶＣは、ロール方向に「−１８０度」〜「１８０度」の範囲で回転してもよい。
【００９４】
なお、仮想カメラＶＣは、後述するようにピッチ方向（仮想空間を見下ろす方向または見上げる方向）にも回転可能である。仮想カメラＶＣがピッチ方向に回転しているときは、Ｚｃ軸に垂直な平面に仮想空間のＹ軸を投影し、当該投影したＹ軸と、Ｙｃ軸とがなす角を、上記角度ｒとして算出する。
【００９５】
仮想カメラＶＣの上方向のＹｃ軸と仮想空間の上方向のＹ軸とがなす角度ｒが、例えば「−６０度」より小さい場合、回転情報として、「時計回りに９０度回転」を示す情報が決定される。すなわち、仮想カメラＶＣが時計回りに６０度よりも大きく回転された場合（つまり、ディスプレイ１２に表示された画像全体が反時計回りに６０度よりも大きく回転された場合）、回転情報として、「時計回りに９０度回転」を示す情報が決定される。この場合、ロゴ画像２０７は、画面上で反時計回りに９０度回転される。
【００９６】
また、この角度ｒが、例えば「６０度」より大きい場合、回転情報として、「反時計回りに９０度回転」を示す情報が決定される。すなわち、仮想カメラＶＣが反時計回りに６０度よりも大きく回転された場合（つまり、ディスプレイ１２に表示された画像全体が時計回りに６０度よりも大きく回転された場合）、回転情報として、「反時計回りに９０度回転」を示す情報が決定される。この場合、ロゴ画像２０７は、画面上で時計回りに９０度回転される。
【００９７】
また、角度ｒが、「−６０度」以上、かつ、「６０度」以下のときには、回転情報として、「無回転」を示す情報が決定される。この場合、ロゴ画像２０７は、画面上で回転されない。
【００９８】
角度ｒに基づいて決定された回転情報は、録画ボタン３７に対する操作に応じて、画面に表示されている画像とともに記憶媒体に記憶される。
【００９９】
図１４は、図１２の状態から仮想カメラＶＣをロール方向（時計回り）にさらに回転させたときの画像の一例を示す図である。図１５は、図１４に示す画像が表示されている場合にディスプレイ１２を縦長となるように把持したときの様子を示す図である。
【０１００】
図１２に示す状態からさらにＺＬボタン３９が押下されると、仮想カメラＶＣがさらにロール方向（時計回り）に回転する（図１４）。図１４に示されるように、ディスプレイ１２の右下に表示されたロゴ画像２０７は、図１２に示す状態から変化しない。そして、図１４に示されるように、図９に示す状態から反時計回りに９０度回転した画像が、ディスプレイ１２に表示される。
【０１０１】
このとき録画ボタン３７に対する操作が行われると、図１４に示される画像が、スナップショット画像として、当該画像の回転情報とともに記憶媒体に記憶される。このときの画像の回転情報としては、「時計回りに９０度回転」を示す情報が記憶される。
【０１０２】
図１４および図１５に示されるように、仮想カメラＶＣがロール方向に９０度回転されると、縦長の画像となる。図９に示す横長のときには表示されていなかったタワーオブジェクト２０３の一部が、図１４および図１５では表示されている。また、図９において画面の左側に表示されていたビルオブジェクト２０５は、図１４および図１５では表示されていない。すなわち、仮想カメラＶＣをロール方向に９０度回転させた場合、仮想カメラＶＣを回転させないときと比べて、仮想空間の上下方向に広く、かつ、左右方向に狭い画像が表示される。このように、撮影モードにおいて仮想カメラＶＣをロール方向に回転させることにより、プレイヤキャラクタ２００と、タワーオブジェクト２０３の全体とを含む画像を表示し、録画ボタン３７に対する操作に応じて、当該画像をスナップショット画像として記憶媒体に記憶することができる。
【０１０３】
（スナップショット画像の他の装置での表示）
録画ボタン３７に対する操作に応じて記憶媒体に保存されたスナップショット画像は、他の装置（例えば、スマートフォン）において表示することができる。例えば、ゲームシステム１とスマートフォンとが無線または有線で接続され、スナップショット画像が回転情報とともに他の装置に送信される。また、ゲームシステム１及び他の装置に着脱可能な記憶媒体を介して、ゲームシステム１において生成されたスナップショット画像及びその回転情報を他の装置にコピーすることができる。そして、スナップショット画像が他の装置において表示される場合、回転情報に基づいてスナップショット画像が回転されて、表示される。
【０１０４】
図１６は、図１４に示すスナップショット画像がスマートフォンにおいて表示されるときの一例を示す図である。図１６に示されるように、スマートフォンは、縦長の画面を備える。画像の回転情報として、「時計回りに９０度回転」を示す情報が記憶されている場合、スマートフォンは、当該回転情報に基づいて、スナップショット画像を、時計回りに９０度回転させて表示させる。このように、スマートフォンの画面に合った縦長の画像をスマートフォンにおいて表示することができる。
【０１０５】
以上のように、本実施形態では、ゲーム中にプレイヤの操作に応じて撮影モードに切り替えられる。撮影モードでは、仮想空間内のオブジェクトの状態が更新されない。また、撮影モードでは、プレイヤの操作に応じて、仮想カメラＶＣが、当該仮想カメラの視線方向の軸回りに回転する。そして、プレイヤの指示に応じて、仮想カメラに基づく仮想空間の画像（スナップショット画像）と、仮想カメラの視線方向の軸回りの回転に応じて決定される当該画像の回転情報とが、記憶媒体に記憶される。スナップショット画像とともに回転情報が保存されるため、スナップショット画像を他の装置において表示するときに、当該画像を回転情報に応じて回転させて表示させることができる。
【０１０６】
このように、ゲームシステム１において行われるゲームの１シーンをスナップショット画像としてその回転情報とともに保存するため、例えば、縦長の画面を有するスマートフォンにおいて縦長の画像として表示することができる。例えば、ゲームシステム１において保存された画像をスマートフォンの壁紙（背景画像）として利用することができる。
【０１０７】
なお、ゲームシステム１において保存されたスナップショット画像を、ゲームシステム１のディスプレイ１２に表示する場合には、ゲームシステム１は、画像を回転させずに表示させる。すなわち、図１４に示す画像をスナップショット画像として例えばフラッシュメモリ８４に保存した場合において、当該保存した画像をディスプレイ１２に表示する場合には、図１４に示す画像が表示される。これは、ディスプレイ１２は、縦長となる向きで把持することが可能であるからである。また、ゲームシステム１が、保存したスナップショット画像を、例えば外部の据置型モニタに表示する場合には、スナップショット画像を９０度回転させて表示させてもよいし、回転させずに表示させてもよい。
【０１０８】
なお、他の装置が上記回転情報を処理できない場合（例えばＥＸＩＦに対応していない場合）、他の装置は、スナップショット画像を回転させずに表示させる。
【０１０９】
図１７は、回転情報を処理できない他の装置にスナップショット画像が表示される場合の一例を示す図である。
【０１１０】
図１７に示すように、他の装置は、縦長の画面を有する装置である。他の装置は、スナップショット画像とともに記憶された回転情報を処理できず、スナップショット画像を回転させることができない。このため、他の装置は、スナップショット画像を横長の画像として画面に表示する。例えば、他の装置は、図１７に示されるように、スナップショット画像を、横方向および縦方向に縮小して画面に表示する。
【０１１１】
（撮影モードにおける他の操作）
次に、仮想カメラＶＣのロール方向の回転以外の撮影モードにおいて可能な操作について説明する。
【０１１２】
本実施形態では、仮想カメラＶＣは、ロール方向（Ｚｃ軸回り）に限らず、ピッチ方向（Ｘｃ軸回り）にもヨー方向（Ｙｃ軸回り）にも回転可能である。図１８は、仮想カメラＶＣのピッチ方向およびヨー方向の回転を説明するための図である。
【０１１３】
例えば、仮想カメラＶＣは、撮影モードにおいて、右コントローラ４のアナログスティック５２に対する操作に応じて、ピッチ方向およびヨー方向に回転する。例えば、図１８に示されるように、アナログスティック５２の左右方向が入力されると、仮想カメラＶＣの注視点がプレイヤキャラクタ２００に固定されたまま、仮想カメラＶＣがＹｃ軸回りに回転する。このとき、仮想カメラＶＣの位置も変化する。例えば、仮想カメラＶＣは、アナログスティック５２の左右方向への入力に応じて、ＸＺ平面と平行であってプレイヤキャラクタ２００を中心とした円上を移動する。
【０１１４】
また、図１８に示されるように、アナログスティック５２の上下方向が入力されると、仮想カメラＶＣの注視点がプレイヤキャラクタ２００に固定されたまま、仮想カメラＶＣがＸｃ軸回りに回転する。このとき、仮想カメラＶＣの位置も変化する。例えば、仮想カメラＶＣは、アナログスティック５２の上下方向への入力に応じて、ＸＺ平面と垂直な面上であって、プレイヤキャラクタ２００を中心とした扇形の弧上を移動する。
【０１１５】
このように、仮想カメラＶＣは、撮影モードにおいて、プレイヤの操作に応じてピッチ方向およびヨー方向にも回転する。このため、プレイヤは、所望の角度から仮想空間を見た画像をスナップショット画像として保存することができる。
【０１１６】
なお、ゲームモードにおいても、右コントローラ４のアナログスティック５２に対する操作に応じて、仮想カメラＶＣは、図１８に示すようにピッチ方向およびヨー方向に回転する。このため、ゲームモードにおいても、プレイヤは、所望の角度から仮想空間を見てゲームを行うことができる。しかしながら、ゲームモードにおいては、仮想カメラＶＣは、プレイヤの操作に応じてロール方向に回転しない。なお、ゲームモードにおいても、プレイヤの操作に応じて、仮想カメラＶＣがロール方向に回転してもよい。また、特定の場面においてピッチ方向およびヨー方向の回転が制限される場合があってもよい。
【０１１７】
また、撮影モードにおいて、左コントローラ３のアナログスティック３２に対する操作に応じて、仮想カメラＶＣの注視点又は位置（視点）を仮想空間内で移動させてもよい。また、撮影モードにおいて、プレイヤの操作に応じて、仮想カメラＶＣの画角が変更されてもよい。
【０１１８】
また、撮影モードにおいて、例えば、右コントローラ４の所定のボタンに対する操作に応じて、仮想カメラＶＣのズーム設定（ズームイン又はズームアウト）が可能であってもよい。
【０１１９】
（フィルタの選択）
また、撮影モードにおいて、プレイヤは、フィルタを選択することができる。ここで、「フィルタ」は、ディスプレイ１２に表示される画像の表示態様を変更するためのものである。フィルタが選択されると、仮想カメラＶＣに基づく画像に所定の処理が加えられ、画像の表示態様が変化する。例えば、本実施形態では、フィルタとして、「ぼかし」、「セピア」、「白黒」、「低解像度」、「線描」、「点描」、「魚眼カメラ」、「シルエット」等が用意される。
【０１２０】
「ぼかし」フィルタは、画像をぼかす処理を行うフィルタである。「セピア」フィルタは、画像全体をセピア調に加工するためのフィルタである。「白黒」フィルタは、画像全体を白黒で表示するためのフィルタである。
【０１２１】
また、「低解像度」フィルタは、仮想カメラＶＣに基づいて取得される画像の解像度を通常（ゲームモード中の画像）よりも下げた画像を生成するためのものである。
【０１２２】
また、「線描」フィルタは、線だけで描いた画像を生成するためのフィルタである。「線描」フィルタが選択された場合、仮想カメラＶＣに基づいて生成された画像に対してエッジ抽出処理が行われる。また、「点描」フィルタは、点だけで描いた画像を生成するためのフィルタである。「点描」フィルタが選択された場合、仮想カメラＶＣに基づいて生成された画像から特徴（点）が抽出され、当該特徴が抽出された画像が生成される。
【０１２３】
「魚眼カメラ」フィルタは、魚眼カメラで仮想空間を見たような変形した画像を生成するためのフィルタである。「魚眼カメラ」フィルタが選択された場合、仮想カメラＶＣに基づいて生成された画像が変形される。
【０１２４】
「シルエット」フィルタは、シルエット画像を表示するためのフィルタである。例えば、仮想カメラＶＣに基づいて画像の各画素に深度値が対応付けられた３次元画像が生成される。この生成された３次元画像の深度値を用いて、シルエット画像が生成される。
【０１２５】
このように、「フィルタ」は、仮想カメラＶＣに基づいて生成された画像に対して所定の処理（画像を変形する処理、画像をぼかす処理、画像の色調を変更する処理、画像の明るさを変更する処理、画像の解像度を変更する処理等）を行ったり、仮想カメラＶＣに基づいて生成された３次元画像の特徴を抽出する処理（例えば、深度値を抽出する処理、エッジを抽出する処理）を行ったりするためのものである。
【０１２６】
例えば、プレイヤは、左コントローラ３の所定のボタンに対する操作に応じて、フィルタを選択することができる。フィルタが選択された場合、ディスプレイ１２には、選択されたフィルタに応じたフィルタ処理（画像を変形する処理、画像をぼかす処理、画像の色調を変更する処理、画像の明るさを変更する処理、解像度を変更する処理、画像の特徴を抽出する処理）が行われた画像が表示される。そして、録画ボタン３７に対する操作が行われたことに応じて、フィルタ処理が行われた画像と上記回転情報とが記憶媒体に保存される。
【０１２７】
なお、仮想カメラＶＣに基づく仮想空間の画像にフィルタ処理が行われた場合であっても、ロゴ画像２０７の表示態様は変化しない。具体的には、フィルタ処理が行われた後の画像が描画され、当該画像に、予め定められたロゴ画像２０７が重ねて描画される。これにより、フィルタ処理が行われた後の画像に、フィルタ処理が行われていないロゴ画像２０７を重ねた画像が生成されて表示される。なお、フィルタが選択された場合、ロゴ画像２０７も含めて、画像の表示態様が変化されてもよい。また、ロゴ画像２０７に対応するオブジェクトを仮想空間に配置し、仮想カメラで当該オブジェクトを撮像することにより、ロゴ画像２０７を含む仮想空間の画像が生成されてもよい。
【０１２８】
（処理の詳細）
次に、ゲームシステム１において行われる処理の詳細について説明する。まず、ゲームシステム１に記憶されるデータについて説明した後、ゲームシステム１において行われる情報処理の詳細について説明する。
【０１２９】
図１９は、ゲームシステム１のＤＲＡＭ８５に記憶されるデータの一例を示す図である。図２０は、ゲームシステム１のフラッシュメモリ８４に記憶されるデータの一例を示す図である。
【０１３０】
図１９に示されるように、ゲームシステム１のＤＲＡＭ８５には、ゲームプログラムＤ２００と、撮影制御プログラムＤ２０１と、仮想カメラデータＤ２０２と、画像データＤ２０３と、回転情報Ｄ２０４と、フィルタ情報Ｄ２０５と、モード情報Ｄ２０６と、プレイヤキャラクタ情報Ｄ２０７と、ＮＰＣ情報Ｄ２０８とが記憶される。なお、ゲームシステム１のＤＲＡＭ８５には、図１９に示す他にも、様々なデータやプログラムが記憶される。
【０１３１】
ゲームプログラムＤ２００は、本実施形態のゲームを行うためのプログラムであり、スロット２３に装着された外部記憶媒体に予め記憶されている。ゲームプログラムＤ２００は、ゲームの開始時に外部記憶媒体からＤＲＡＭ８５に読み込まれる。
【０１３２】
撮影制御プログラムＤ２０１は、撮影モードにおいてスナップショット画像と回転情報とを記憶媒体（例えばフラッシュメモリ８４）に記憶させるためのプログラムである。撮影制御プログラムＤ２０１は、予め本体装置２（例えばフラッシュメモリ８４）に記憶されている。撮影制御プログラムＤ２０１は、例えば本体装置２の電源が投入された場合に、フラッシュメモリ８４からＤＲＡＭ８５に読み込まれる。
【０１３３】
仮想カメラデータＤ２０２は、姿勢情報と位置情報とを含む。仮想カメラデータＤ２０２の姿勢情報は、上記仮想カメラＶＣのロール方向の回転角、ピッチ方向の回転角、および、ヨー方向の回転角を含む。また、仮想カメラデータＤ２０２の位置情報は、仮想カメラＶＣの仮想空間における位置、注視点等を示す情報である。
【０１３４】
画像データＤ２０３は、仮想カメラＶＣに基づいて生成される仮想空間の画像を示すデータである。撮影モードにおいて上記フィルタが適用される場合、画像データＤ２０３としては、フィルタが適用された後の画像データが記憶される。また、撮影モードにおいてロゴ画像２０７が付加される場合、画像データＤ２０３には、仮想カメラＶＣに基づいて生成される仮想空間の画像にロゴ画像２０７が付加された画像が記憶される。
【０１３５】
回転情報Ｄ２０４は、画像データＤ２０３の回転情報を示すデータである。例えば、回転情報Ｄ２０４としては、「無回転」を示す情報、「時計回りに９０度回転」を示す情報、「反時計回りに９０度回転」を示す情報がある。
【０１３６】
フィルタ情報Ｄ２０５は、選択されたフィルタの種類を示す情報である。
【０１３７】
モード情報Ｄ２０６は、ゲームモードか撮影モードかを示すデータである。モード情報Ｄ２０６には、初期的にはゲームモードを示す値が記憶される。
【０１３８】
プレイヤキャラクタ情報Ｄ２０７は、プレイヤキャラクタ２００の状態を示すデータである。具体的には、プレイヤキャラクタ情報Ｄ２０７は、プレイヤキャラクタ２００の位置や動作、体力値（又は残機数）を示すデータを含む。
【０１３９】
ＮＰＣ情報Ｄ２０８は、ＮＰＣ（ノンプレイヤキャラクタ）の状態を示すデータである。具体的には、ＮＰＣ情報Ｄ２０８は、各ノンプレイヤキャラクタの位置や動作を示すデータを含む。
【０１４０】
また、図２０に示されるように、ゲームシステム１のフラッシュメモリ８４には、スナップショット画像データＤ３００が記憶される。スナップショット画像データＤ３００は、録画ボタン３７が押下されたタイミングでＤＲＡＭ８５からコピーされるデータである。スナップショット画像データＤ３００は、録画ボタン３７が押下されたタイミングにおける画像データＤ２０３と同じデータである。また、スナップショット画像データＤ３００には、回転情報Ｄ３０１が付加される。回転情報Ｄ３０１は、録画ボタン３７が押下されたタイミングにおける回転情報Ｄ２０４と同じデータである。フラッシュメモリ８４には、録画ボタン３７が押下された各タイミングにおける画像データＤ２０３およびその回転情報Ｄ２０４が記憶される。例えば、あるタイミングにおける画像データＤ２０３およびその回転情報Ｄ２０４が、スナップショット画像データＤ３００および回転情報Ｄ３０１として記憶され、別のタイミングにおける画像データＤ２０３およびその回転情報Ｄ２０４が、スナップショット画像データＤ３１０および回転情報Ｄ３１１として記憶される。なお、回転情報の他にも、スナップショット画像の付加情報として、撮影日時を示す情報、解像度を示す情報等が記憶される。
【０１４１】
次に、ゲームシステム１において行われる処理の詳細について説明する。図２１は、ゲームシステム１において行われる処理の詳細を示すフローチャートである。図２１に示す処理は、ゲームシステム１のプロセッサ８１がゲームプログラムＤ２００又は撮影制御プログラム２０１を実行することにより行われる。ゲームシステム１において本実施形態のゲームの実行が指示されると、図２１に示す処理が開始される。
【０１４２】
図２１に示されるように、プロセッサ８１は、コントローラの各ボタンやアナログスティックに対して行われた操作を示す操作データを取得する（ステップＳ１）。続いて、プロセッサ８１は、操作データに基づいてゲーム処理を実行する（ステップＳ２）。
【０１４３】
具体的には、プロセッサ８１は、ゲーム処理において、例えばアナログスティック３２に対する操作に応じて、仮想空間内のプレイヤキャラクタ２００の位置を更新する。また、プロセッサ８１は、例えば右コントローラ４のＡボタン５３に対する操作に応じて、プレイヤキャラクタ２００にジャンプ動作を行わせる。また、プロセッサ８１は、例えば、プレイヤキャラクタ２００がＮＰＣと接触した場合、プレイヤキャラクタ２００の体力値（又は残機数）を減少させる。プロセッサ８１は、プレイヤキャラクタ２００の位置や動作、体力値に応じたデータを、プレイヤキャラクタ情報Ｄ２０７としてＤＲＡＭ８５に記憶する。また、プロセッサ８１は、ＮＰＣ（ノンプレイヤキャラクタ）の位置を更新したり、ＮＰＣに所定の動作を行わせたりする。プロセッサ８１は、ＮＰＣの位置や動作に応じたデータを、ＮＰＣ情報Ｄ２０８としてＤＲＡＭ８５に記憶する。また、プロセッサ８１は、操作データに基づいて、仮想カメラＶＣの位置を更新したり、仮想カメラＶＣをピッチ方向又はヨー方向に回転させたりする。プロセッサ８１は、仮想カメラＶＣの位置や姿勢に応じたデータを、仮想カメラデータＤ２０２としてＤＲＡＭ８５に記憶する。これらの処理を行った後、プロセッサ８１は、仮想カメラＶＣに基づいて仮想空間の画像を生成し、画像データＤ２０３としてＤＲＡＭ８５に記憶する。そして、プロセッサ８１は、当該仮想カメラＶＣに基づいて生成した画像に、プレイヤキャラクタ２００の体力値を示す体力表示２０６を付加した画像を、例えばディスプレイ１２に表示させる。
【０１４４】
次に、プロセッサ８１は、操作データに基づいて、撮影モードへの切替指示が行なわれたか否かを判定する（ステップＳ３）。撮影モードへの切替指示が行なわれていない場合（ステップＳ３：ＮＯ）、プロセッサ８１は、再びステップＳ１の処理を実行する。ステップＳ１〜ステップＳ３の処理は、上記ゲームモードにおける処理である。撮影モードへの切替指示が行なわれていない間、ステップＳ１〜ステップＳ３の処理が所定の時間間隔（例えば、１／６０秒間隔）で繰り返し実行される。なお、ステップＳ１〜ステップＳ３の処理が行われている間、プレイヤによってゲームプレイの終了を示す指示が行われた場合やゲームオーバーとなった場合は、プロセッサ８１は、図２１に示す処理を終了する。
【０１４５】
なお、ステップＳ１〜ステップＳ３の処理が行われている間、録画ボタン３７が押下された場合、プロセッサ８１は、当該押下のタイミングにおいてディスプレイ１２に表示されている画像を、フラッシュメモリ８４に保存する。この場合は、撮影モードでは非表示とされる図８に示す体力表示２０６やプレイヤキャラクタ２００又はＮＰＣのセリフを示す文字も、保存される。
【０１４６】
撮影モードへの切替指示が行なわれた場合（ステップＳ３：ＹＥＳ）、プロセッサ８１は、撮影モードを設定する（ステップＳ４）。具体的には、プロセッサ８１は、モード情報Ｄ２０６に撮影モードを示す値を記憶する。モード情報Ｄ２０６に撮影モードを示す値が記憶されている場合、プレイヤキャラクタ２００およびＮＰＣの状態（位置や動作等）は更新されない。すなわち、撮影モードにおいては、プレイヤキャラクタ情報Ｄ２０７およびＮＰＣ情報Ｄ２０８は更新されない。また、モード情報Ｄ２０６に撮影モードを示す値が記憶されている場合、ゲームの開始からの経過時間の計測も中断される。
【０１４７】
ステップＳ４に続いて、ステップＳ５〜ステップＳ１３の処理が行われる。ステップＳ５〜ステップＳ１３の処理は、撮影モードにおける処理である。なお、ステップＳ５〜ステップＳ１３の処理は、所定の時間間隔（例えば、１／６０秒間隔）で繰り返し実行される。また、ステップＳ５〜ステップＳ１３の処理が行われている間も、プロセッサ８１は上記操作データを繰り返し取得する。
【０１４８】
ステップＳ５において、プロセッサ８１は、ロール方向への回転操作が行われたか否かを判定する。具体的には、プロセッサ８１は、ＺＬボタン３９又はＺＲボタン６１に対する操作が行われたか否かを判定する。ロール方向への回転操作が行われたと判定した場合（ステップＳ５：ＹＥＳ）、プロセッサ８１は、回転処理を行う（ステップＳ６）。ステップＳ６の回転処理は、仮想カメラＶＣをロール方向に回転させる処理である。以下、ステップＳ６の回転処理の詳細について説明する。図２２は、ステップＳ６の回転処理の詳細を示すフローチャートである。
【０１４９】
図２２に示されるように、プロセッサ８１は、仮想カメラＶＣをロール方向（視線方向の軸）に回転させる（ステップＳ２１）。例えば、ＺＬボタン３９が押下された場合、プロセッサ８１は、仮想カメラＶＣを時計回りに所定の角度だけ回転させる。また、ＺＲボタン６１が押下された場合、プロセッサ８１は、仮想カメラＶＣを反時計回りに所定の角度だけ回転させる。そして、プロセッサ８１は、回転後の仮想カメラＶＣの姿勢情報を仮想カメラデータＤ２０２としてＤＲＡＭ８５に記憶する。
【０１５０】
次に、プロセッサ８１は、仮想カメラＶＣのロール方向の回転角ｒが、所定の閾値以上か否かを判定する（ステップＳ２２）。例えば、所定の閾値として「６０度」が用いられてもよい。回転角ｒが所定の閾値（６０度）以上の場合（ステップＳ２２：ＹＥＳ）、プロセッサ８１は、「反時計回りに９０度回転」を決定し、「反時計回りに９０度回転」を示す情報を、回転情報Ｄ２０４としてＤＲＡＭ８５に記憶する（ステップＳ２３）。
【０１５１】
ステップＳ２２でＮＯと判定した場合、プロセッサ８１は、回転角ｒが、所定の閾値以下か否かを判定する（ステップＳ２４）。例えば、所定の閾値として「−６０度」が用いられてもよい。回転角ｒが所定の閾値（−６０度）以下の場合（ステップＳ２４：ＹＥＳ）、プロセッサ８１は、「時計回りに９０度回転」を決定し、「時計回りに９０度回転」を示す情報を、回転情報Ｄ２０４としてＤＲＡＭ８５に記憶する（ステップＳ２５）。
【０１５２】
ステップＳ２４でＮＯと判定した場合、プロセッサ８１は、「無回転」を決定し、「無回転」を示す情報を、回転情報Ｄ２０４としてＤＲＡＭ８５に記憶する（ステップＳ２６）。
【０１５３】
ステップＳ２３、ステップＳ２５、又はステップＳ２６の処理を実行した場合、プロセッサ８１は、図２２に示す処理を終了する。
【０１５４】
図２１に戻り、ロール方向への回転操作が行われなかったと判定した場合（ステップＳ５：ＮＯ）、プロセッサ８１は、その他の操作が行われたか否かを判定する（ステップＳ７）。ここで、「その他の操作」とは、仮想カメラＶＣのロール方向への回転以外の操作であり、例えば、仮想カメラＶＣの移動操作、仮想カメラＶＣのピッチ方向又はヨー方向への回転操作、フィルタの選択操作、ロゴ画像２０７の位置変更操作、ロゴ画像２０７の非表示を選択する操作である。
【０１５５】
その他の操作が行われたと判定した場合（ステップＳ７：ＹＥＳ）、プロセッサ８１は、操作に応じた処理を実行する（ステップＳ８）。
【０１５６】
例えば、仮想カメラＶＣの移動操作が行われた場合、プロセッサ８１は、仮想カメラＶＣを仮想空間内で移動させたり、仮想カメラＶＣの注視点を移動させたりする。また、仮想カメラＶＣのピッチ方向又はヨー方向への回転操作が行われた場合、プロセッサ８１は、仮想カメラＶＣをピッチ方向又はヨー方向に回転させる。プロセッサ８１は、これらの処理の結果に応じて、仮想カメラデータＤ２０２をＤＲＡＭ８５に記憶する。また、フィルタの選択操作が行われた場合、プロセッサ８１は、フィルタ情報Ｄ２０５に選択されたフィルタに応じた値を設定する。フィルタが選択された場合、プロセッサ８１は、次の画像生成処理において、仮想カメラＶＣに基づいて生成された画像に、選択されたフィルタに応じたフィルタ処理を行う。また、ロゴ画像２０７の位置変更操作が行われた場合、プロセッサ８１は、ロゴ画像２０７の表示位置を変更する。また、ロゴ画像２０７の非表示を選択する操作が行われた場合、プロセッサ８１は、ロゴ画像２０７を非表示に設定する。
【０１５７】
ステップＳ６の処理を実行した場合、ステップＳ８の処理を実行した場合、又は、ステップＳ７でＮＯと判定した場合、プロセッサ８１は、画像生成処理を実行する（ステップＳ９）。
【０１５８】
具体的には、ステップＳ９において、プロセッサ８１は、仮想カメラＶＣに基づいて、仮想空間の画像を生成する。
【０１５９】
また、プロセッサ８１は、ステップＳ８においてフィルタが選択された場合、仮想カメラＶＣに基づいて生成された画像に、選択されたフィルタに応じたフィルタ処理を行う。例えば、「ぼかし」フィルタが選択された場合、プロセッサ８１は、仮想カメラＶＣに基づいて生成された画像に対してぼかし処理を行うことにより、当該「ぼかし」フィルタを適用した後の画像を生成する。また、「線描」フィルタが選択された場合、仮想カメラＶＣに基づいて生成された画像に対してエッジを抽出する処理（特徴を抽出する処理）を行うことにより、当該「線描」フィルタを適用した後の画像を生成する。また、「魚眼カメラ」フィルタが選択された場合、プロセッサ８１は、仮想カメラＶＣに基づいて生成された画像を変形することにより、当該「魚眼カメラ」フィルタを適用した後の画像を生成する。また、「シルエット」フィルタが選択された場合、プロセッサ８１は、仮想カメラＶＣに基づいて生成された画像の深度値を用いて、シルエット画像を生成する。
【０１６０】
なお、ここでは、仮想カメラＶＣに基づいて生成された画像（フィルタが適用される前の画像）、又は、当該仮想カメラＶＣに基づいて生成された画像にフィルタ処理が行われた画像を、「仮想カメラ画像」ということがある。
【０１６１】
そして、プロセッサ８１は、生成した「仮想カメラ画像」に、予め記憶されたロゴ画像２０７を付加して、画像データＤ２０３としてＤＲＡＭ８５に記憶する。このとき、プロセッサ８１は、ステップＳ６の回転処理において設定された回転情報Ｄ２０４に応じて、ロゴ画像２０７を回転させて付加する。例えば、回転情報Ｄ２０４として、「時計回りに９０度回転」を示す情報が設定されている場合、プロセッサ８１は、ロゴ画像２０７を反時計回りに９０度回転させて、「仮想カメラ画像」に付加する。また、回転情報Ｄ２０４として、「反時計回りに９０度回転」を示す情報が設定されている場合、プロセッサ８１は、ロゴ画像２０７を時計回りに９０度回転させて、「仮想カメラ画像」に付加する。また、回転情報Ｄ２０４として、「無回転」を示す情報が設定されている場合、プロセッサ８１は、ロゴ画像２０７を回転させずに、「仮想カメラ画像」に付加する。なお、ステップＳ８においてロゴ画像２０７の非表示が設定された場合、ロゴ画像２０７は付加されない。また、ゲームモードにおけるステップＳ２のゲーム処理において付加された体力表示２０６は付加されない。また、ゲームモードにおいて表示されるプレイヤキャラクタ２００やＮＰＣのセリフを示す文字は、ステップＳ９の画像生成処理においては描画されない。
【０１６２】
ステップＳ９に続いて、プロセッサ８１は、画像出力処理を行う（ステップＳ１０）。具体的には、プロセッサ８１は、ステップＳ９においてＤＲＡＭ８５に記憶した画像データＤ２０３をディスプレイ１２に出力する。
【０１６３】
次に、プロセッサ８１は、録画ボタン３７が押下されたか否かを判定する（ステップＳ１１）。録画ボタン３７が押下された場合（ステップＳ１１：ＹＥＳ）、プロセッサ８１は、ＤＲＡＭ８５に記憶した画像データＤ２０３と、回転情報Ｄ２０４とをフラッシュメモリ８４に保存する。フラッシュメモリ８４においては、画像データＤ２０３は、スナップショット画像データＤ３００として保存され、回転情報Ｄ２０４は、回転情報Ｄ３０１として保存される。
【０１６４】
なお、ステップＳ１２の処理は、プロセッサ８１が撮影制御プログラムＤ２０１を実行することにより行われる。
【０１６５】
ステップＳ１２の処理を実行した場合、又は、ステップＳ１１でＮＯと判定した場合、プロセッサ８１は、撮影モードを終了するか否かを判定する（ステップＳ１３）。撮影モードを終了しないと判定した場合、すなわち、プレイヤによって撮影モードの終了の指示が行われなかった場合（ステップＳ１３：ＮＯ）、プロセッサ８１は、再びステップＳ５の処理を実行する。
【０１６６】
一方、撮影モードを終了すると判定した場合、すなわち、プレイヤによって撮影モードの終了の指示が行われた場合（ステップＳ１３：ＹＥＳ）、プロセッサ８１は、モード情報Ｄ２０６にゲームモードを示す情報を記憶して、再びステップＳ１の処理を実行する。これにより、撮影モードからゲームモードへの切り替えが行われる。以降、上記ステップＳ１〜ステップＳ３の処理が繰り返し行われ、一時的に停止されたゲームが再開される。すなわち、ゲームは、撮影モードに切り替えられた直前の状態から再開される。以上で図２１の説明を終了する。
【０１６７】
なお、図２１および図２２で示した処理は単なる一例であり、図２１および図２２において、各ステップの順番を入れ替えたり、他のステップが加えられたり、上記ステップの一部が省略されたりしてもよい。また、各ステップで用いた数値は単なる一例であり、他の値が用いられてもよい。例えば、ステップＳ２２においては所定の閾値として「６０度」が用いられたが、所定の閾値は、例えば「４５度」であってもよいし、「７５度」であってもよい。また、ステップＳ２４においては所定の閾値として「−６０度」が用いられたが、所定の閾値は、例えば「−４５度」であってもよいし、「−７５度」であってもよい。
【０１６８】
以上のように、本実施形態では、ゲームプレイ中（ステップＳ１〜ステップＳ３）にプレイヤによって撮影モードへの切替操作が行われた場合、ゲームモードから撮影モードに切り替えられる（ステップＳ４）。撮影モードにおいては、プレイヤキャラクタ２００およびＮＰＣを含む仮想空間内の全てのオブジェクトの動作が停止する。撮影モードにおいては、プレイヤの操作に応じて、仮想カメラＶＣをロール方向に回転させる（ステップＳ６）。仮想カメラＶＣのロール方向への回転角（回転角の絶対値）が所定の閾値以上となった場合（ステップＳ２２でＹＥＳ、又は、ステップＳ２４でＹＥＳ）、画像の回転情報として「反時計回り又は時計回りに９０度回転」が決定される（ステップＳ２３、又は、ステップＳ２５）。そして、プレイヤの指示に応じて、当該指示タイミングにおいて仮想カメラＶＣに基づいて生成された画像（仮想カメラ画像）が、当該画像の回転情報とともに記憶媒体に記憶される（ステップＳ１２）。
【０１６９】
これにより、本実施形態では、仮想空間の画像を９０度回転させた画像として保存することができ、例えば、通常のゲームプレイ中は横長の画像として表示されるものを、縦長の画像として保存することができる。保存した画像を他の装置に表示させる場合に、縦長の画像として表示させることができる。
【０１７０】
また、本実施形態では、撮影モードにおいてゲームの進行を一時的に停止し、その状態で仮想カメラＶＣをピッチ方向やヨー方向に回転させたり、移動させたりすることができる。これにより、仮想空間を所望の角度、位置から見た画像を撮影することができ、ゲーム中の様々な画像を保存することができる。
【０１７１】
また、本実施形態では、フィルタを選択することで、ゲーム中の画像の表示態様を変化させて撮影することができる。
【０１７２】
（変形例）
以上、本実施形態について説明したが、他の実施形態では、様々な変形が加えられてもよい。
【０１７３】
例えば、上記実施形態では、仮想カメラＶＣを、仮想カメラＶＣに固定のＺｃ軸回りに回転させた。他の実施形態では、Ｚｃ軸とは異なる軸であって、仮想カメラＶＣの視線方向の軸（例えば、Ｚｃ軸と平行な軸。あるいは、Ｚｃ軸と完全に並行ではない軸であってＺｃ軸に対して所定の角度だけずれた軸）回りに仮想カメラＶＣを回転させてもよい。すなわち、仮想カメラＶＣの視線方向の軸は、Ｚｃ軸と完全に一致する軸であってもよいし、Ｚｃ軸と平行な軸であってもよいし、Ｚｃ軸に対して所定の角度だけずれた軸（Ｚｃ軸方向成分を有する他の軸）であってもよい。そして、仮想カメラＶＣを、当該視線方向の軸回りに回転させ、当該視線方向の軸回りの回転の量に応じて、上記回転情報が設定されてもよい。
【０１７４】
また、上記実施形態では、スロット２３に装着された外部記憶媒体にゲームプログラムＤ２００が記憶され、本体装置２に予め備えられたフラッシュメモリ８４に撮影制御プログラムＤ２０１が記憶された。そして、プロセッサ８１がゲームプログラムＤ２００を実行することにより、画像の回転情報を決定し、プロセッサ８１が撮影制御プログラムＤ２０１を実行することにより、画像および当該画像の回転情報をフラッシュメモリ８４に記憶した。他の実施形態では、撮影制御プログラムＤ２０１はゲームプログラムＤ２００の一部であってもよい。すなわち、ゲームプログラムＤ２００と撮影制御プログラムＤ２０１とを含むプログラムが外部記憶媒体に記憶されてもよい。また、ゲームプログラムＤ２００と撮影制御プログラムＤ２０１とを含むプログラムがフラッシュメモリ８４に予め記憶されてもよい。また、ゲームプログラムＤ２００と撮影制御プログラムＤ２０１とを含むプログラムが、外部の装置からダウンロードされてもよい。
【０１７５】
また、上記実施形態では、ゲームモードにおいてプレイヤの操作に応じて仮想カメラＶＣをピッチ方向およびヨー方向に回転可能であるとした。他の実施形態では、ゲームモードにおいて、仮想カメラＶＣを、ピッチ方向にもヨー方向にもさらにロール方向にも回転不可能としてもよい。
【０１７６】
また、上記実施形態では、ゲームモードにおいて、プレイヤの操作に応じて仮想カメラＶＣをロール方向に回転不可能であるものとした。他の実施形態では、ゲームモード中に、プレイヤの操作に応じて仮想カメラＶＣをロール方向に（さらにピッチ方向およびヨー方向にも）回転可能であってもよい。そして、ゲームプレイ中に、録画ボタン３７に対する操作に応じて、表示中の画像と、仮想カメラＶＣのロール方向の回転角に応じて決定される当該画像の回転情報とを記憶媒体に保存してもよい。
【０１７７】
また、上記実施形態では、ゲームモードにおいて、プレイヤの操作に応じてプレイヤキャラクタ２００を操作するゲームを想定した。他の実施形態では、プレイヤの操作に応じてプレイヤキャラクタ２００を操作するゲームに限らず、プレイヤの操作によらずに自動で仮想空間内のオブジェクトが動作するゲームであってもよく、このようなゲームの進行中にゲームモードから撮影モードに切り替えられてもよい。そして、撮影モードにおいて、プレイヤの操作に応じて仮想カメラのロール方向への回転が行われ、プレイヤの指示に応じて、当該指示タイミングにおける仮想カメラから見た画像と、当該画像の回転情報とが、記憶媒体に記憶されてもよい。
【０１７８】
また、上記実施形態では、録画ボタン３７に対する操作に応じて、静止画が記憶媒体に保存された。他の実施形態では、プレイヤの操作に応じて、動画が保存されてもよい。例えば、ゲームプレイ中に仮想カメラをロール方向に回転させ、プレイヤの操作に応じて、ゲーム中の動画と、仮想カメラのロール方向の回転角に応じて決定される回転情報とが記憶媒体に保存されてもよい。
【０１７９】
また、上記実施形態では、録画ボタン３７に対する操作に応じて、ディスプレイ１２に表示された画像および当該画像の回転情報がフラッシュメモリ８４に保存されるものとした。画像および当該画像の回転情報は、録画ボタン３７に対する操作に応じて、任意の記憶媒体に記憶されてもよい。例えば、画像および当該画像の回転情報は、録画ボタン３７に対する操作に応じて、スロット２３又は他のスロットに装着された外部記憶媒体に保存されてもよい。また、例えば、ゲームシステム１が無線又は有線でネットワーク（例えばインターネット）に接続されている場合、録画ボタン３７に対する操作に応じて、ネットワーク上の記憶媒体に画像および当該画像の回転情報が保存されてもよい。
【０１８０】
また、上記実施形態では、所定の時間間隔（例えば、１／６０秒間隔）で仮想カメラＶＣを用いて仮想空間の画像を生成するとともに、当該生成した画像の回転情報が決定され、ＤＲＡＭ８５に記憶された。そして、録画ボタン３７に対する操作が行われたタイミングで、ＤＲＡＭ８５に記憶された画像と当該画像の回転情報が別の記憶媒体に記憶された。すなわち、常に仮想空間の画像が生成され、画像が生成される毎に当該画像の回転情報が決定されて一時的に記憶され、録画ボタン３７に対する操作が行われたことに応じて、一時的に記憶された画像とその回転情報とが記憶媒体に記憶された。他の実施形態では、所定の時間間隔（例えば、１／６０秒間隔）で仮想カメラＶＣを用いて仮想空間の画像を生成し、録画ボタン３７に対する操作が行われたタイミングで、当該タイミングにおいて生成された画像の回転情報が決定されてもよい。すなわち、他の実施形態では、録画ボタン３７に対する操作が行われたタイミングで、表示中の画像の回転情報を当該操作タイミングにおける仮想カメラの姿勢に基づいて決定し、表示中の画像と回転情報とを記憶媒体に記憶してもよい。
【０１８１】
また、上記実施形態では、画像の回転情報として、「無回転」を示す情報、「時計回りに９０度回転」を示す情報、「反時計回りに９０度回転」を示す情報のうちの何れかが記憶された。他の実施形態では、仮想カメラの姿勢に基づいて、画像の回転情報として、「無回転」を示す情報、「時計回りに９０度回転」を示す情報、「反時計回りに９０度回転」を示す情報に加えて、「１８０度回転」を示す情報、「時計回りに９０度回転して左右反転」を示す情報、「反時計回りに９０度回転して左右反転」を示す情報、「無回転かつ左右反転」を示す情報、「無回転かつ上下反転」を示す情報のうちの何れかを記憶してもよい。
【０１８２】
また、上記ゲームシステムは単なる一例に過ぎず、任意の情報処理装置又は複数の装置を組み合わせた情報処理システムにおいて、上記ゲームプログラムおよび撮影制御プログラムが実行されてもよい。例えば、情報処理装置は、スマートフォン、タブレット端末、パーソナルコンピュータ、据置型のゲーム装置等であってもよい。また、情報処理システムは、ネットワーク（例えばインターネット）に接続された複数の装置によって構成されてもよい。情報処理装置又は情報処理システムは、プレイヤの操作に応じて仮想カメラの姿勢を制御する。そして、情報処理装置又は情報処理システムは、プレイヤの操作に応じて、仮想カメラから見た仮想空間の画像と、当該画像の回転情報とを記憶媒体に記憶させてもよい。
【０１８３】
以上、本発明について説明したが、上記説明は本発明の例示に過ぎず、種々の改良や変形が加えられてもよい。
【符号の説明】
【０１８４】
１  ゲームシステム
２  本体装置
３  左コントローラ
４  右コントローラ
１２  ディスプレイ
３２  アナログスティック
３７  録画ボタン
３９  ＺＬボタン
５２  アナログスティック
６１  ＺＲボタン
８１  プロセッサ
８４  フラッシュメモリ
８５  ＤＲＡＭ
２００  プレイヤキャラクタ
２０１、２０２  ＮＰＣ（ノンプレイヤキャラクタ）
２０３  タワーオブジェクト
２０６  体力表示
２０７  ロゴ画像
【図１】
2019037614.tif 000003
【図２】
2019037614.tif 000004
【図３】
2019037614.tif 000005
【図４】
2019037614.tif 000006
【図５】
2019037614.tif 000007
【図６】
2019037614.tif 000008
【図７】
2019037614.tif 000009
【図８】
2019037614.tif 000010
【図９】
2019037614.tif 000011
【図１０】
2019037614.tif 000012
【図１１】
2019037614.tif 000013
【図１２】
2019037614.tif 000014
【図１３】
2019037614.tif 000015
【図１４】
2019037614.tif 000016
【図１５】
2019037614.tif 000017
【図１６】
2019037614.tif 000018
【図１７】
2019037614.tif 000019
【図１８】
2019037614.tif 000020
【図１９】
2019037614.tif 000021
【図２０】
2019037614.tif 000022
【図２１】
2019037614.tif 000023
【図２２】
2019037614.tif 000024