IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 任天堂株式会社の特許一覧

特開2024-180196ゲームプログラム、ゲーム装置、ゲームシステム、ゲーム方法
<>
  • 特開-ゲームプログラム、ゲーム装置、ゲームシステム、ゲーム方法 図1
  • 特開-ゲームプログラム、ゲーム装置、ゲームシステム、ゲーム方法 図2
  • 特開-ゲームプログラム、ゲーム装置、ゲームシステム、ゲーム方法 図3
  • 特開-ゲームプログラム、ゲーム装置、ゲームシステム、ゲーム方法 図4
  • 特開-ゲームプログラム、ゲーム装置、ゲームシステム、ゲーム方法 図5
  • 特開-ゲームプログラム、ゲーム装置、ゲームシステム、ゲーム方法 図6
  • 特開-ゲームプログラム、ゲーム装置、ゲームシステム、ゲーム方法 図7
  • 特開-ゲームプログラム、ゲーム装置、ゲームシステム、ゲーム方法 図8
  • 特開-ゲームプログラム、ゲーム装置、ゲームシステム、ゲーム方法 図9
  • 特開-ゲームプログラム、ゲーム装置、ゲームシステム、ゲーム方法 図10
  • 特開-ゲームプログラム、ゲーム装置、ゲームシステム、ゲーム方法 図11
  • 特開-ゲームプログラム、ゲーム装置、ゲームシステム、ゲーム方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024180196
(43)【公開日】2024-12-26
(54)【発明の名称】ゲームプログラム、ゲーム装置、ゲームシステム、ゲーム方法
(51)【国際特許分類】
   G06T 19/00 20110101AFI20241219BHJP
   A63F 13/55 20140101ALI20241219BHJP
   A63F 13/5252 20140101ALI20241219BHJP
   G06T 15/40 20110101ALI20241219BHJP
   G06T 15/04 20110101ALI20241219BHJP
   G06T 15/80 20110101ALI20241219BHJP
【FI】
G06T19/00 300B
A63F13/55
A63F13/5252
G06T15/40 500
G06T15/04
G06T15/80
【審査請求】未請求
【請求項の数】36
【出願形態】OL
(21)【出願番号】P 2023099696
(22)【出願日】2023-06-16
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100115808
【弁理士】
【氏名又は名称】加藤 真司
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(74)【代理人】
【識別番号】100113549
【弁理士】
【氏名又は名称】鈴木 守
(72)【発明者】
【氏名】松宮 信雄
(72)【発明者】
【氏名】増岡 康弘
(72)【発明者】
【氏名】及川 祐亮
【テーマコード(参考)】
5B050
5B080
【Fターム(参考)】
5B050AA10
5B050BA09
5B050BA10
5B050BA20
5B050CA07
5B050CA08
5B050EA26
5B050FA02
5B050FA05
5B050GA08
5B080AA13
5B080BA02
5B080CA00
5B080FA00
5B080GA02
5B080GA11
5B080GA22
(57)【要約】      (修正有)
【課題】3次元仮想空間内のオブジェクトに演出を付与するゲームプログラム、装置、システム及び方法を提供する。
【解決手段】ゲームプログラムは、情報処理装置のコンピュータに、3次元仮想空間内のフィールドにおいて、操作入力に基づいてプレイヤキャラクタを制御させるプレイヤキャラクタ制御処理と、プレイヤキャラクタの移動に応じて第1の仮想カメラの移動を行わせる第1の仮想カメラ移動処理と、第1の仮想カメラに基づいて、フィールドを構成する第1のオブジェクトを含む3次元仮想空間の第1の画像を生成する第1の画像生成処理と、第1の仮想カメラに連動して移動する第2の仮想カメラに基づいて、第1の仮想カメラの撮像範囲外の第2のオブジェクトを含む3次元仮想空間の第2の画像を生成する第2の画像生成処理と、第1の画像に第2の画像を合成させることによってゲーム画像を生成する画像合成処理とを含む処理を実行させる。
【選択図】図3
【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに、
3次元仮想空間内のフィールドにおいて、操作入力に基づいてプレイヤキャラクタを制御させるプレイヤキャラクタ制御処理と、
前記プレイヤキャラクタの移動に応じて第1の仮想カメラの移動を行わせる第1の仮想カメラ移動処理と、
前記第1の仮想カメラに基づいて、前記フィールドを構成する第1のオブジェクトを含む前記3次元仮想空間の第1の画像を生成する第1の画像生成処理と、
前記第1の仮想カメラに連動して移動する第2の仮想カメラに基づいて、前記第1の仮想カメラの撮像範囲外の第2のオブジェクトを含む前記3次元仮想空間の第2の画像を生成する第2の画像生成処理と、
前記第1の画像に前記第2の画像を合成させることによってゲーム画像を生成する画像合成処理と、
を含む処理を実行させるゲームプログラム。
【請求項2】
前記コンピュータに、
前記第1の画像生成処理において、Zバッファを用いて前記第1の画像の生成を行わせ、
前記画像合成処理において、前記第1の画像の対応する位置における前記Zバッファ内の奥行き値に基づいて、前記第2の画像を構成するテクスチャの拡大又は縮小を行わせ、拡大又は縮小の行われた前記第2の画像を前記第1の画像へ合成することによって前記ゲーム画像を生成させる、
請求項1に記載のゲームプログラム。
【請求項3】
前記コンピュータに、
前記画像合成処理において、前記第2の画像の所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成させる、請求項1又は請求項2に記載のゲームプログラム。
【請求項4】
前記コンピュータに、
前記画像合成処理において、1または複数の水平方向に延びる線を含む参照用の画像を参照し、前記参照用の画像の前記線に対応する前記所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成させる、請求項3に記載のゲームプログラム。
【請求項5】
前記コンピュータに、
前記画像合成処理において、前記参照用の画像中の前記1または複数の水平方向に延びる線を垂直方向にスクロールさせる、請求項4に記載のゲームプログラム。
【請求項6】
前記コンピュータに、
前記画像合成処理において、前記第2の画像を構成する複数のチャンネル毎にテクスチャの拡大率を変えて、前記第2の画像を前記第1の画像に対して合成させることで、前記ゲーム画像を生成させる、
請求項1又は請求項2に記載のゲームプログラム。
【請求項7】
前記コンピュータに、
前記画像合成処理において、前記3次元仮想空間の仮想光源と前記第1のオブジェクトを構成する面の法線ベクトルとに基づいて、前記第1のオブジェクトの暗部と明部を判定させ、前記暗部に対応する前記ゲーム画像の領域に対してシェーディングを行う、
請求項1又は請求項2に記載のゲームプログラム。
【請求項8】
前記コンピュータに、
前記画像合成処理において、前記第2の画像のうち所定の輝度以上の領域が合成される領域については前記シェーディングを行わない、
請求項7に記載のゲームプログラム。
【請求項9】
前記コンピュータに、
前記第1の画像生成処理において、Zバッファを用いて前記第1の画像の生成を行わせ、
前記第2の画像生成処理において、ミップマップレベルの異なる複数の第2の画像の生成を行わせ、
前記画像合成処理において、前記第1の画像の対応する領域における前記Zバッファ内の奥行き値に基づいて、前記第2のオブジェクトに対応するテクスチャの第1のミップマップレベルを求め、所定の奥行き値を有する第1の領域では求めた第1のミップマップレベルを選択させ、所定の奥行き値以外の第2の領域では求めた第1のミップマップレベルより解像度の低い第2のミップマップレベルを選択させ、選択されたミップマップレベルに対応したテクスチャを前記第1の画像に合成させる、
請求項1又は請求項2に記載のゲームプログラム。
【請求項10】
3次元仮想空間内のフィールドにおいて、操作入力に基づいてプレイヤキャラクタを制御させるプレイヤキャラクタ制御手段と、
前記プレイヤキャラクタの移動に応じて第1の仮想カメラの移動を行わせる第1の仮想カメラ移動手段と、
前記第1の仮想カメラに基づいて、前記フィールドを構成する第1のオブジェクトを含む前記3次元仮想空間の第1の画像を生成する第1の画像生成手段と、
前記第1の仮想カメラに連動して移動する第2の仮想カメラに基づいて、前記第1の仮想カメラの撮像範囲外の第2のオブジェクトを含む前記3次元仮想空間の第2の画像を生成する第2の画像生成手段と、
前記第1の画像に前記第2の画像を合成させることによってゲーム画像を生成する画像合成手段と、
を含むゲーム装置。
【請求項11】
前記第1の画像生成手段は、Zバッファを用いて前記第1の画像の生成を行い、
前記画像合成手段は、前記第1の画像の対応する位置における前記Zバッファ内の奥行き値に基づいて、前記第2の画像を構成するテクスチャの拡大又は縮小を行い、拡大又は縮小の行われた前記第2の画像を前記第1の画像へ合成することによって前記ゲーム画像を生成する、
請求項10に記載のゲーム装置。
【請求項12】
前記画像合成手段は、前記第2の画像の所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成する、請求項10又は請求項11に記載のゲーム装置。
【請求項13】
前記画像合成手段は、1または複数の水平方向に延びる線を含む参照用の画像を参照し、前記参照用の画像の前記線に対応する前記所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成する、請求項12に記載のゲーム装置。
【請求項14】
前記画像合成手段は、前記参照用の画像中の前記1または複数の水平方向に延びる線を垂直方向にスクロールさせる、請求項13に記載のゲーム装置。
【請求項15】
前記画像合成手段は、前記第2の画像を構成する複数のチャンネル毎にテクスチャの拡大率を変えて、前記第2の画像を前記第1の画像に対して合成することで、前記ゲーム画像を生成する、請求項10又は請求項11に記載のゲーム装置。
【請求項16】
前記画像合成手段は、前記3次元仮想空間の仮想光源と前記第1のオブジェクトを構成する面の法線ベクトルとに基づいて、前記第1のオブジェクトの暗部と明部を判定し、前記暗部に対応する前記ゲーム画像の領域に対してシェーディングを行う、
請求項10又は請求項11に記載のゲーム装置。
【請求項17】
前記画像合成手段は、前記第2の画像のうち所定の輝度以上の領域が合成される領域については前記シェーディングを行わない、請求項16に記載のゲーム装置。
【請求項18】
前記第1の画像生成手段は、Zバッファを用いて前記第1の画像の生成を行い、
前記第2の画像生成手段は、ミップマップレベルの異なる複数の第2の画像の生成を行い、
前記画像合成手段は、前記第1の画像の対応する領域における前記Zバッファ内の奥行き値に基づいて、前記第2のオブジェクトに対応するテクスチャの第1のミップマップレベルを求め、所定の奥行き値を有する第1の領域では求めた第1のミップマップレベルを選択し、所定の奥行き値以外の第2の領域では求めた第1のミップマップレベルより解像度の低い第2のミップマップレベルを選択し、選択されたミップマップレベルに対応したテクスチャを前記第1の画像に合成する、
請求項10又は請求項11に記載のゲーム装置。
【請求項19】
ネットワークを介して接続されたサーバ装置とユーザ端末とを備えるゲームシステムであって、
前記ユーザ端末は、
ユーザからの操作入力を受け付ける入力手段と、
入力された操作の情報を前記サーバ装置に送信すると共に、前記サーバ装置から送信されたゲームの情報を受信する通信部と、
ゲーム画像を表示する表示手段と、
を備え、
前記サーバ装置は、
前記ユーザ端末から送信された操作の情報を受信すると共に、前記ユーザ端末にゲームの情報を送信する通信部と、
3次元仮想空間内のフィールドにおいて、前記ユーザの操作の情報に基づいてプレイヤキャラクタを制御させるプレイヤキャラクタ制御手段と、
前記プレイヤキャラクタの移動に応じて第1の仮想カメラの移動を行わせる第1の仮想カメラ移動手段と、
前記第1の仮想カメラに基づいて、前記フィールドを構成する第1のオブジェクトを含む前記3次元仮想空間の第1の画像を生成する第1の画像生成手段と、
前記第1の仮想カメラに連動して移動する第2の仮想カメラに基づいて、前記第1の仮想カメラの撮像範囲外の第2のオブジェクトを含む前記3次元仮想空間の第2の画像を生成する第2の画像生成手段と、
前記第1の画像に前記第2の画像を合成させることによってゲーム画像を生成する画像合成手段と、
を備えるゲームシステム。
【請求項20】
前記第1の画像生成手段は、Zバッファを用いて前記第1の画像の生成を行い、
前記画像合成手段は、前記第1の画像の対応する位置における前記Zバッファ内の奥行き値に基づいて、前記第2の画像を構成するテクスチャの拡大又は縮小を行い、拡大又は縮小の行われた前記第2の画像を前記第1の画像へ合成することによって前記ゲーム画像を生成する、
請求項19に記載のゲームシステム。
【請求項21】
前記画像合成手段は、前記第2の画像の所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成する、請求項19又は請求項20に記載のゲームシステム。
【請求項22】
前記画像合成手段は、1または複数の水平方向に延びる線を含む参照用の画像を参照し、前記参照用の画像の前記線に対応する前記所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成する、請求項21に記載のゲームシステム。
【請求項23】
前記画像合成手段は、前記参照用の画像中の前記1または複数の水平方向に延びる線を垂直方向にスクロールさせる、請求項22に記載のゲームシステム。
【請求項24】
前記画像合成手段は、前記第2の画像を構成する複数のチャンネル毎にテクスチャの拡大率を変えて、前記第2の画像を前記第1の画像に対して合成することで、前記ゲーム画像を生成する、請求項19又は請求項20に記載のゲームシステム。
【請求項25】
前記画像合成手段は、前記3次元仮想空間の仮想光源と前記第1のオブジェクトを構成する面の法線ベクトルとに基づいて、前記第1のオブジェクトの暗部と明部を判定し、前記暗部に対応する前記ゲーム画像の領域に対してシェーディングを行う、
請求項19又は請求項20に記載のゲームシステム。
【請求項26】
前記画像合成手段は、前記第2の画像のうち所定の輝度以上の領域が合成される領域については前記シェーディングを行わない、請求項25に記載のゲームシステム。
【請求項27】
前記第1の画像生成手段は、Zバッファを用いて前記第1の画像の生成を行い、
前記第2の画像生成手段は、ミップマップレベルの異なる複数の第2の画像の生成を行い、
前記画像合成手段は、前記第1の画像の対応する領域における前記Zバッファ内の奥行き値に基づいて、前記第2のオブジェクトのテクスチャに対応する第1のミップマップレベルを求め、所定の奥行き値を有する第1の領域では求めた第1のミップマップレベルを選択し、所定の奥行き値以外の第2の領域では求めた第1のミップマップレベルより解像度の低い第2のミップマップレベルを選択し、選択されたミップマップレベルに対応したテクスチャを前記第1の画像に合成する、
請求項19又は請求項20に記載のゲームシステム。
【請求項28】
情報処理装置のコンピュータによってゲーム画像を生成するゲーム方法であって、
前記コンピュータが、3次元仮想空間内のフィールドにおいて、操作入力に基づいてプレイヤキャラクタを制御するステップと、
前記コンピュータが、前記プレイヤキャラクタの移動に応じて第1の仮想カメラの移動を行うステップと、
前記コンピュータが、前記第1の仮想カメラに基づいて、前記フィールドを構成する第1のオブジェクトを含む前記3次元仮想空間の第1の画像を生成するステップと、
前記コンピュータが、前記第1の仮想カメラに連動して移動する第2の仮想カメラに基づいて、前記第1の仮想カメラの撮像範囲外の第2のオブジェクトを含む前記3次元仮想空間の第2の画像を生成するステップと、
前記コンピュータが、前記第1の画像に前記第2の画像を合成することによってゲーム画像を生成するステップと、
を備えるゲーム方法。
【請求項29】
前記第1の画像を生成するステップでは、Zバッファを用いて前記第1の画像の生成を行い、
前記ゲーム画像を生成するステップでは、前記第1の画像の対応する位置における前記Zバッファ内の奥行き値に基づいて、前記第2の画像を構成するテクスチャの拡大又は縮小を行い、拡大又は縮小の行われた前記第2の画像を前記第1の画像へ合成することによって前記ゲーム画像を生成する、
請求項28に記載のゲーム方法。
【請求項30】
前記ゲーム画像を生成するステップでは、前記第2の画像の所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成する、請求項28又は請求項29に記載のゲーム方法。
【請求項31】
前記ゲーム画像を生成するステップでは、1または複数の水平方向に延びる線を含む参照用の画像を参照し、前記参照用の画像の前記線に対応する前記所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成する、請求項30に記載のゲーム方法。
【請求項32】
前記ゲーム画像を生成するステップでは、前記参照用の画像中の前記1または複数の水平方向に延びる線を垂直方向にスクロールさせる、請求項31に記載のゲーム方法。
【請求項33】
前記ゲーム画像を生成するステップでは、前記第2の画像を構成する複数のチャンネル毎にテクスチャの拡大率を変えて、前記第2の画像を前記第1の画像に対して合成することで、前記ゲーム画像を生成する、請求項28又は請求項29に記載のゲーム方法。
【請求項34】
前記ゲーム画像を生成するステップでは、前記3次元仮想空間の仮想光源と前記第1のオブジェクトを構成する面の法線ベクトルとに基づいて、前記第1のオブジェクトの暗部と明部を判定し、前記暗部に対応する前記ゲーム画像の領域に対してシェーディングを行う、請求項28又は請求項29に記載のゲーム方法。
【請求項35】
前記ゲーム画像を生成するステップでは、前記第2の画像のうち所定の輝度以上の領域が合成される領域については前記シェーディングを行わない、請求項34に記載のゲーム方法。
【請求項36】
前記第1の画像を生成するステップでは、Zバッファを用いて前記第1の画像の生成を行い、
前記第2の画像を生成するステップでは、ミップマップレベルの異なる複数の第2の画像の生成を行い、
前記ゲーム画像を生成するステップでは、前記第1の画像の対応する領域における前記Zバッファ内の奥行き値に基づいて、前記第2のオブジェクトに対応するテクスチャの第1のミップマップレベルを求め、所定の奥行き値を有する第1の領域では求めた第1のミップマップレベルを選択し、所定の奥行き値以外の第2の領域では求めた第1のミップマップレベルより解像度の低い第2のミップマップレベルを選択し、選択されたミップマップレベルに対応したテクスチャを前記第1の画像に合成する、
請求項28又は請求項29に記載のゲーム方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム画像を生成する技術に関する。
【背景技術】
【0002】
従来から3次元仮想空間内の物体を所定の視点から捉えた映像を生成する画像処理が知られていた。特許文献1は、3次元仮想空間内の物体の周囲にエフェクトを施す画像処理方法を開示している。
【0003】
特許文献1には、例えば、エフェクトを表示する場合、各視点から物体を捉える仮想カメラの前にエフェクトを流し込むための板を配置し、主画像と合成してエフェクトを表示する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003-337957号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載された画像処理方法では、合成用の静止画を予め用意しておく必要があった。このため、例えば、仮想カメラの移動に合わせてエフェクトの表現を変更させたい場合には、多くの異なるエフェクトを用意する必要があり、開発コストがかかってしまう。
【0006】
本発明は、上記背景に鑑み、3次元仮想空間内のオブジェクトに演出を付与する新たな方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
(構成1)
構成1のゲームプログラムは、情報処理装置のコンピュータに、3次元仮想空間内のフィールドにおいて、操作入力に基づいてプレイヤキャラクタを制御させるプレイヤキャラクタ制御処理と、前記プレイヤキャラクタの移動に応じて第1の仮想カメラの移動を行わせる第1の仮想カメラ移動処理と、前記第1の仮想カメラに基づいて、前記フィールドを構成する第1のオブジェクトを含む前記3次元仮想空間の第1の画像を生成する第1の画像生成処理と、前記第1の仮想カメラに連動して移動する第2の仮想カメラに基づいて、前記第1の仮想カメラの撮像範囲外の第2のオブジェクトを含む前記3次元仮想空間の第2の画像を生成する第2の画像生成処理と、前記第1の画像に前記第2の画像を合成させることによってゲーム画像を生成する画像合成処理とを含む処理を実行させる。
【0008】
この構成により、第1の仮想カメラに基づいて生成された第1の画像に対し、第1の仮想カメラに連動して移動する第2の仮想カメラに基づいて生成された第2の画像を合成するので、第1の画像に対し、第2の画像を演出として加えることができる。演出の表現を変えたい場合には、第2のオブジェクトを変更すればよいので、予め多数の合成用の静止画を用意する必要がなく開発コストを低減させることができる。
【0009】
(構成2)
構成1のゲームプログラムの前記第1の画像生成処理において、前記コンピュータに、Zバッファを用いて前記第1の画像の生成を行わせ、前記画像合成処理において、前記第1の画像の対応する位置における前記Zバッファ内の奥行き値に基づいて、前記第2の画像を構成するテクスチャの拡大又は縮小を行わせ、拡大又は縮小の行われた前記第2の画像を前記第1の画像へ合成することによって前記ゲーム画像を生成させてもよい。
【0010】
このように奥行き値を用いて第2の画像のテクスチャの拡大又は縮小を行うことにより、第2の画像を第1の画像中のオブジェクトに対して投影したプロジェクションマッピングのような表現を演出することができる。
【0011】
(構成3)
構成1又は構成2のゲームプログラムの前記画像合成処理において、前記コンピュータに、前記第2の画像の所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成させてもよい。この構成により、第2の画像にノイズが発生した演出を行うことができる。例えば、同期ずれのようなノイズを発生させることで、演出を現実のプロジェクションマッピングに近づけることができる。
【0012】
(構成4)
構成3のゲームプログラムの前記画像合成処理において、前記コンピュータに、1または複数の水平方向に延びる線を含む参照用の画像を参照し、前記参照用の画像の前記線に対応する前記所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成させてもよい。これにより、簡易な構成で、所定の領域を水平方向に歪ませることができる。
【0013】
(構成5)
構成4のゲームプログラムの前記画像合成処理において、前記参照用の画像中の前記1または複数の水平方向に延びる線を垂直方向にスクロールさせてもよい。これにより、水平方向に歪ませる所定の領域を垂直方向に移動させることができる。
【0014】
(構成6)
構成1~5のいずれかのゲームプログラムの前記画像合成処理において、前記コンピュータに、前記第2の画像を構成する複数のチャンネル毎にテクスチャの拡大率を変えて、前記第2の画像を前記第1の画像に対して合成させることで、前記ゲーム画像を生成させてもよい。この構成により、簡易な構成で色収差の発生の演出を行える。
【0015】
(構成7)
構成1~6のいずれかのゲームプログラムの前記画像合成処理において、前記コンピュータに、前記3次元仮想空間の仮想光源と前記第1のオブジェクトを構成する面の法線ベクトルとに基づいて、前記第1のオブジェクトの暗部と明部を判定させ、前記暗部に対応する前記ゲーム画像の領域に対してシェーディングを行ってもよい。この構成により、第1の画像と第2の画像が合成されることにより、第1のオブジェクトの細部が見えにくくなることを抑制できる。
【0016】
(構成8)
構成7のゲームプログラムの前記画像合成処理において、前記コンピュータに、前記第2の画像のうち所定の輝度以上の領域が合成される領域については前記シェーディングを行わない構成としてもよい。この構成により、明るい領域においてシェーディングを行うと不自然な画像になってしまうことを防ぐことができる。
【0017】
(構成9)
構成1~8のいずれかのゲームプログラムの前記第1の画像生成処理において、前記コンピュータに、Zバッファを用いて前記第1の画像の生成を行わせ、前記第2の画像生成処理において、ミップマップレベルの異なる複数の第2の画像の生成を行わせ、前記画像合成処理において、前記第1の画像の対応する領域における前記Zバッファ内の奥行き値に基づいて、前記第2のオブジェクトに対応するテクスチャの第1のミップマップレベルを求め、所定の奥行き値を有する第1の領域では求めた第1のミップマップレベルを選択させ、所定の奥行き値以外の第2の領域では求めた第1のミップマップレベルより解像度の低い第2のミップマップレベルを選択させ、選択されたミップマップレベルに対応したテクスチャを前記第1の画像に合成させてもよい。この構成により、所定の奥行きを有する領域でフォーカスが合い、それ以外の領域でフォーカスが合わないフォーカスずれの演出を行える。
【0018】
(構成10)
構成10のゲーム装置は、3次元仮想空間内のフィールドにおいて、操作入力に基づいてプレイヤキャラクタを制御させるプレイヤキャラクタ制御手段と、前記プレイヤキャラクタの移動に応じて第1の仮想カメラの移動を行わせる第1の仮想カメラ移動手段と、前記第1の仮想カメラに基づいて、前記フィールドを構成する第1のオブジェクトを含む前記3次元仮想空間の第1の画像を生成する第1の画像生成手段と、前記第1の仮想カメラに連動して移動する第2の仮想カメラに基づいて、前記第1の仮想カメラの撮像範囲外の第2のオブジェクトを含む前記3次元仮想空間の第2の画像を生成する第2の画像生成手段と、前記第1の画像に前記第2の画像を合成させることによってゲーム画像を生成する画像合成手段とを含む。
【0019】
(構成11)
構成10のゲーム装置において、前記第1の画像生成手段は、Zバッファを用いて前記第1の画像の生成を行い、前記画像合成手段は、前記第1の画像の対応する位置における前記Zバッファ内の奥行き値に基づいて、前記第2の画像を構成するテクスチャの拡大又は縮小を行い、拡大又は縮小の行われた前記第2の画像を前記第1の画像へ合成することによって前記ゲーム画像を生成してもよい。
【0020】
(構成12)
構成10又は11のゲーム装置において、前記画像合成手段は、前記第2の画像の所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成してもよい。
【0021】
(構成13)
構成12のゲーム装置において、前記画像合成手段は、1または複数の水平方向に延びる線を含む参照用の画像を参照し、前記参照用の画像の前記線に対応する前記所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成してもよい。
【0022】
(構成14)
構成13のゲーム装置において、前記画像合成手段は、前記参照用の画像中の前記1または複数の水平方向に延びる線を垂直方向にスクロールさせてもよい。
【0023】
(構成15)
構成10~14のいずれかのゲーム装置において、前記画像合成手段は、前記第2の画像を構成する複数のチャンネル毎にテクスチャの拡大率を変えて、前記第2の画像を前記第1の画像に対して合成することで、前記ゲーム画像を生成してもよい。
【0024】
(構成16)
構成10~15のいずれかのゲーム装置において、前記画像合成手段は、前記3次元仮想空間の仮想光源と前記第1のオブジェクトを構成する面の法線ベクトルとに基づいて、前記第1のオブジェクトの暗部と明部を判定し、前記暗部に対応する前記ゲーム画像の領域に対してシェーディングを行ってもよい。
【0025】
(構成17)
構成10~16のいずれかのゲーム装置において、前記画像合成手段は、前記第2の画像のうち所定の輝度以上の領域が合成される領域については前記シェーディングを行わない構成としてもよい。
【0026】
(構成18)
構成10~17のいずれかのゲーム装置において、前記第1の画像生成手段は、Zバッファを用いて前記第1の画像の生成を行い、前記第2の画像生成手段は、ミップマップレベルの異なる複数の第2の画像の生成を行い、前記画像合成手段は、前記第1の画像の対応する領域における前記Zバッファ内の奥行き値に基づいて、前記第2のオブジェクトに対応するテクスチャの第1のミップマップレベルを求め、所定の奥行き値を有する第1の領域では求めた第1のミップマップレベルを選択し、所定の奥行き値以外の第2の領域では求めた第1のミップマップレベルより解像度の低い第2のミップマップレベルを選択し、選択されたミップマップレベルに対応したテクスチャを前記第1の画像に合成してもよい。
【0027】
(構成19)
構成19のゲームシステムは、ネットワークを介して接続されたサーバ装置とユーザ端末とを備えるゲームシステムであって、前記ユーザ端末は、ユーザからの操作入力を受け付ける入力手段と、入力された操作の情報を前記サーバ装置に送信すると共に、前記サーバ装置から送信されたゲームの情報を受信する通信部と、ゲーム画像を表示する表示手段とを備え、前記サーバ装置は、前記ユーザ端末から送信された操作の情報を受信すると共に、前記ユーザ端末にゲームの情報を送信する通信部と、3次元仮想空間内のフィールドにおいて、前記ユーザの操作の情報に基づいてプレイヤキャラクタを制御させるプレイヤキャラクタ制御手段と、前記プレイヤキャラクタの移動に応じて第1の仮想カメラの移動を行わせる第1の仮想カメラ移動手段と、前記第1の仮想カメラに基づいて、前記フィールドを構成する第1のオブジェクトを含む前記3次元仮想空間の第1の画像を生成する第1の画像生成手段と、前記第1の仮想カメラに連動して移動する第2の仮想カメラに基づいて、前記第1の仮想カメラの撮像範囲外の第2のオブジェクトを含む前記3次元仮想空間の第2の画像を生成する第2の画像生成手段と、前記第1の画像に前記第2の画像を合成させることによってゲーム画像を生成する画像合成手段とを備える。
【0028】
(構成20)
構成19のゲームシステムにおいて、前記第1の画像生成手段は、Zバッファを用いて前記第1の画像の生成を行い、前記画像合成手段は、前記第1の画像の対応する位置における前記Zバッファ内の奥行き値に基づいて、前記第2の画像を構成するテクスチャの拡大又は縮小を行い、拡大又は縮小の行われた前記第2の画像を前記第1の画像へ合成することによって前記ゲーム画像を生成してもよい。
【0029】
(構成21)
構成19又は20のゲームシステムにおいて、前記画像合成手段は、前記第2の画像の所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成してもよい。
【0030】
(構成22)
構成21のゲームシステムにおいて、前記画像合成手段は、1または複数の水平方向に延びる線を含む参照用の画像を参照し、前記参照用の画像の前記線に対応する前記所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成してもよい。
【0031】
(構成23)
構成22のゲームシステムにおいて、前記画像合成手段は、前記参照用の画像中の前記1または複数の水平方向に延びる線を垂直方向にスクロールさせてもよい。
【0032】
(構成24)
構成19~23のいずれかのゲームシステムにおいて、前記画像合成手段は、前記第2の画像を構成する複数のチャンネル毎にテクスチャの拡大率を変えて、前記第2の画像を前記第1の画像に対して合成することで、前記ゲーム画像を生成してもよい。
【0033】
(構成25)
構成19~24のいずれかのゲームシステムにおいて、前記画像合成手段は、前記3次元仮想空間の仮想光源と前記第1のオブジェクトを構成する面の法線ベクトルとに基づいて、前記第1のオブジェクトの暗部と明部を判定し、前記暗部に対応する前記ゲーム画像の領域に対してシェーディングを行ってもよい。
【0034】
(構成26)
構成19~25のいずれかのゲームシステムにおいて、前記画像合成手段は、前記第2の画像のうち所定の輝度以上の領域が合成される領域については前記シェーディングを行わない構成としてもよい。
【0035】
(構成27)
構成19~26のいずれかのゲームシステムにおいて、前記第1の画像生成手段は、Zバッファを用いて前記第1の画像の生成を行い、前記第2の画像生成手段は、ミップマップレベルの異なる複数の第2の画像の生成を行い、前記画像合成手段は、前記第1の画像の対応する領域における前記Zバッファ内の奥行き値に基づいて、前記第2のオブジェクトに対応するテクスチャの第1のミップマップレベルを求め、所定の奥行き値を有する第1の領域では求めた第1のミップマップレベルを選択し、所定の奥行き値以外の第2の領域では求めた第1のミップマップレベルより解像度の低い第2のミップマップレベルを選択し、選択されたミップマップレベルに対応したテクスチャを前記第1の画像に合成してもよい。
【0036】
(構成28)
構成28のゲーム方法は、情報処理装置のコンピュータによってゲーム画像を生成するゲーム方法であって、前記コンピュータが、3次元仮想空間内のフィールドにおいて、操作入力に基づいてプレイヤキャラクタを制御するステップと、前記コンピュータが、前記プレイヤキャラクタの移動に応じて第1の仮想カメラの移動を行うステップと、前記コンピュータが、前記第1の仮想カメラに基づいて、前記フィールドを構成する第1のオブジェクトを含む前記3次元仮想空間の第1の画像を生成するステップと、前記コンピュータが、前記第1の仮想カメラに連動して移動する第2の仮想カメラに基づいて、前記第1の仮想カメラの撮像範囲外の第2のオブジェクトを含む前記3次元仮想空間の第2の画像を生成するステップと、前記コンピュータが、前記第1の画像に前記第2の画像を合成することによってゲーム画像を生成するステップとを備える。
【0037】
(構成29)
構成28のゲーム方法は、前記第1の画像を生成するステップでは、Zバッファを用いて前記第1の画像の生成を行い、前記ゲーム画像を生成するステップでは、前記第1の画像の対応する位置における前記Zバッファ内の奥行き値に基づいて、前記第2の画像を構成するテクスチャの拡大又は縮小を行い、拡大又は縮小の行われた前記第2の画像を前記第1の画像へ合成することによって前記ゲーム画像を生成してもよい。
【0038】
(構成30)
構成28又は29のゲーム方法は、前記ゲーム画像を生成するステップでは、前記第2の画像の所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成してもよい。
【0039】
(構成31)
構成30のゲーム方法は、前記ゲーム画像を生成するステップでは、1または複数の水平方向に延びる線を含む参照用の画像を参照し、前記参照用の画像の前記線に対応する前記所定の領域のテクスチャを水平方向にずらして、前記第2の画像を前記第1の画像に対して合成してもよい。
【0040】
(構成32)
構成28~31のいずれかのゲーム方法は、前記ゲーム画像を生成するステップでは、前記第2の画像を構成する複数のチャンネル毎にテクスチャの拡大率を変えて、前記第2の画像を前記第1の画像に対して合成することで、前記ゲーム画像を生成してもよい。
【0041】
(構成33)
構成28~32のいずれかのゲーム方法は、前記ゲーム画像を生成するステップでは、前記3次元仮想空間の仮想光源と前記第1のオブジェクトを構成する面の法線ベクトルとに基づいて、前記第1のオブジェクトの暗部と明部を判定し、前記暗部に対応する前記ゲーム画像の領域に対してシェーディングを行ってもよい。
【0042】
(構成34)
構成28~33のいずれかのゲーム方法は、前記ゲーム画像を生成するステップでは、前記第2の画像のうち所定の輝度以上の領域が合成される領域については前記シェーディングを行わないこととしてもよい。
【0043】
(構成35)
構成28~34のいずれかのゲーム方法は、前記第1の画像を生成するステップでは、Zバッファを用いて前記第1の画像の生成を行い、前記第2の画像を生成するステップでは、ミップマップレベルの異なる複数の第2の画像の生成を行い、前記ゲーム画像を生成するステップでは、前記第1の画像の対応する領域における前記Zバッファ内の奥行き値に基づいて、前記第2のオブジェクトに対応するテクスチャの第1のミップマップレベルを求め、所定の奥行き値を有する第1の領域では求めた第1のミップマップレベルを選択し、所定の奥行き値以外の第2の領域では求めた第1のミップマップレベルより解像度の低い第2のミップマップレベルを選択し、選択されたミップマップレベルに対応したテクスチャを前記第1の画像に合成してもよい。
【図面の簡単な説明】
【0044】
図1】実施の形態に係るゲーム装置のハードウェア構成の一例を示すブロック図である。
図2】ゲーム装置の記憶部に記憶される各種データの一例を示すメモリマップである。
図3】ゲームプログラムを構成するモジュールを示す図である。
図4】実施の形態のゲーム装置が行う画像合成処理の基本的な処理を説明するための図である。
図5】実施の形態のゲーム装置が行う画像合成処理の基本的な処理を説明するための図である。
図6】(a)~(c)プロジェクションマッピングを行った画像の例を示す図である。
図7】水平方向の歪みが入ったゲーム画像の例を示す図である。
図8】参照用の画像の例を示す図である。
図9】色収差の例を示す図である。
図10】(a)画像合成によりディテールが失われた例を示す図である。(b)シェーディングを行ったゲーム画像の例を示す図である。
図11】実施の形態のゲーム装置の動作を示す図である。
図12】実施の形態のゲームシステムの構成を示す図である。
【発明を実施するための形態】
【0045】
以下、本実施の形態のゲームプログラム及びゲーム装置について図面を参照して説明する。なお、以下の説明はあくまでも好ましい態様の一例を示したものであり、特許請求の範囲に記載された発明を限定する意図ではない。
【0046】
(第1の実施の形態)
第1の実施の形態のゲーム装置は、ゲーム内で、プロジェクションマッピングを表現するゲームプログラムがインストールされている。プロジェクションマッピングとは、プロジェクターを使用して空間や物体に映像を投影し、重ね合わせた映像にさまざまな視覚効果を与える技術である。本実施の形態のゲーム装置は、3次元仮想空間内にあるオブジェクトに対して、プロジェクションマッピングの投影を行ったかのような表現を行う。
【0047】
図1は、本実施の形態に係るゲーム装置10のハードウェア構成の一例を示すブロック図である。ゲーム装置10は、例えばスマートフォン、据置型または携帯型のゲーム装置、タブレット端末、携帯電話、パーソナルコンピュータ、ウェアラブル端末等である。また、本実施の形態にかかる情報処理は、上記のようなゲーム装置等と、所定のサーバ装置とから構成されるゲームシステムにも適用可能である。本実施の形態では、据置型ゲーム装置(以下、単にゲーム装置と呼ぶ)を一例として説明する。
【0048】
図1において、ゲーム装置10は、プロセッサ11を備える。プロセッサ11は、ゲーム装置10において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ11は、記憶部12に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。なお、記憶部12は、例えば、フラッシュメモリやDRAM(Dynamic Random Access Memory)等の内部記憶媒体であってもよいし、図示しないスロットに装着される外部記憶媒体等を利用する構成でもよい。
【0049】
また、ゲーム装置10は、ゲーム装置10が他のゲーム装置10や所定のサーバ装置と無線通信を行うための無線通信部13を備える。当該無線通信としては、例えば、インターネット通信や近距離無線通信が用いられる。また、ゲーム装置10は、コントローラ20と有線または無線通信を行うためのコントローラ通信部14を備える。
【0050】
また、ゲーム装置10には、画像音声出力部15を介して表示部16(例えば、テレビ等)が接続される。プロセッサ11は、(例えば、上記の情報処理の実行によって)生成した画像や音声を、画像音声出力部15を介して表示部16に出力する。
【0051】
次に、コントローラ20について説明する。図示は省略するが、本実施の形態のコントローラ20は、縦長の形状のハウジングを有しており、縦長となる向きで把持されることが可能である。当該ハウジングは、縦長となる向きで把持される場合に片手で把持可能な形状および大きさをしている。
【0052】
コントローラ20は、方向入力デバイスの一例であるアナログスティック22を少なくとも1つ備える。当該アナログスティック22は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック22を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。また、コントローラ20は、各種操作ボタンを含むボタン部23を備える。例えば、コントローラ20は、上記ハウジングの主面上に複数個の操作ボタンを備えていてもよい。当該操作ボタンは、例えば、ABXYボタンや、プラスボタン、マイナスボタン、Lボタン、Rボタン等である。
【0053】
また、コントローラ20は、慣性センサ24を備える。具体的には、コントローラ20は、慣性センサ24として、加速度センサ、角速度センサを備えている。本実施の形態においては、加速度センサは、所定の3軸方向に沿った加速度の大きさを検出する。また、角速度センサは、所定の3軸回りの角速度を検出する。
【0054】
また、コントローラ20は、上記コントローラ通信部14と有線または無線通信を行うための通信部21も備える。上記アナログスティック22に対する方向入力内容、ボタン部23の押下状態を示す情報、および、慣性センサ24による各種の検出結果は、適宜のタイミングで繰り返し通信部21へ出力され、ゲーム装置10に送信される。
【0055】
[ゲーム装置に記憶されるデータについて]
次に、ゲーム装置10に記憶されるデータについて説明する。図2は、ゲーム装置10の記憶部12に記憶される各種データの一例を示すメモリマップである。ゲーム装置10の記憶部12には、ゲームプログラム31、プレイヤキャラクタデータ32、仮想空間データ33、プロジェクションデータ34、第1の画像データ35、第2の画像データ36等が記憶されている。
【0056】
ゲームプログラム31は、本実施の形態に係るゲーム処理を実行するためのプログラムである。ゲームプログラム31については、図3を参照して後述する。プレイヤキャラクタデータ32は、プレイヤのキャラクタに関するデータである。プレイヤキャラクタデータ32には、例えば、プレイヤキャラクタの外観、能力、経験値、所持アイテム等のデータが含まれる。仮想空間データ33は、ゲームの世界を構成する3次元仮想空間(以下、「ゲーム世界」という)のデータである。仮想空間データ33には、地形等のオブジェクトのデータを含む。
【0057】
プロジェクションデータ34は、ゲーム世界にプロジェクションされるオブジェクトを含む3次元仮想空間(以下、「プロジェクション世界」という)のデータである。プロジェクション世界はゲーム世界と対応しており、仮想空間は対応する座標を有している。プロジェクション世界の所定の位置にあるオブジェクトは、ゲーム世界における同じ所定の位置に合成される。
【0058】
本実施の形態においては、ゲーム世界を構成する3次元仮想空間とプロジェクション世界を構成する3次元仮想空間は、同じ3次元仮想空間である。しかし、ゲーム世界を構成する3次元仮想空間とプロジェクション世界を構成する3次元仮想空間は、別の仮想空間であってもよい。つまり、プロジェクションされるオブジェクトは、ゲーム世界の3次元仮想空間とは別の仮想空間に配置されていてもよい。
【0059】
図4及び図5は、本実施の形態のゲーム装置が行う画像合成処理の基本的な処理を説明するための図である。図4の(1)はゲーム世界を示し、図4の(2)はプロジェクション世界を示している。
【0060】
図4に示す例では、ゲーム世界は、ステージを構成するオブジェクトを有している。プレイヤキャラクタは、このステージ上を移動できる。プロジェクション世界には、ゲーム世界に合成されるオブジェクトが配置されている。合成されるオブジェクトは静止していてもよいし、動いていてもよい。オブジェクトに動きを持たせる場合、ゲーム世界でのプレイヤキャラクタの移動に対応づけてオブジェクトを移動させてもよい。例えば、合成されるオブジェクトがプレイヤキャラクタの近くに来るように移動させることで、合成により生成されたゲーム画像においては、投影されるオブジェクトがプレイヤキャラクタについて回るような演出を実現できる。
【0061】
本例では、プロジェクション世界においては、キャラクタが移動するステージのオブジェクトは存在しないが、プロジェクション世界にゲーム世界と同様のキャラクタの移動を制限するような判定領域を設けてもよい。
【0062】
図4の(1)に示すように、ゲーム世界は、ゲーム世界を見る視点となる第1の仮想カメラを有している。第1の仮想カメラの位置及び向きはプレイヤキャラクタの移動に伴って変わる。点線で示す平面は、第1の仮想カメラから見たゲーム世界の画像である。第1の仮想カメラに映るゲーム世界の画像(以下、「ゲーム世界画像」という)は、図4の(3)に示すように、3次元仮想空間が画像平面に投影された画像である。ゲーム世界画像は、第1の画像に該当する。なお、現実のカメラでの撮影とは異なり、ゲーム世界画像は、3次元仮想空間を画像平面に投影した画像を描画することで生成される。
【0063】
図4の(2)に示すように、プロジェクション世界は、プロジェクション世界を見る視点となる第2の仮想カメラを示す図である。第2の仮想カメラの位置及び向きは、第1の仮想カメラと連動しており、第1の仮想カメラの位置及び向きと同じである。図5を用いて、第1の仮想カメラと第2の仮想カメラの連動について説明する。
【0064】
図5は、図4と同じゲーム世界とプロジェクション世界を示している。図4との違いは、図5では、第1の仮想カメラ及び第2の仮想カメラがステージの右側に移動していることである。図5の(1)に示すように、第1の仮想カメラが移動および回転することにより、3次元仮想空間は点線で示す平面に投影され、(3)に示すようにステージを斜めから見た画像となる。プロジェクション世界の第2の仮想カメラは、第1の仮想カメラと連動して移動し、第1のカメラと同じ位置及び方向からプロジェクション世界を見る。第2の仮想カメラの移動によりプロジェクション世界の直方体のオブジェクトの側面が見えるようになっている。
【0065】
点線で示す平面は、第2の仮想カメラから見たプロジェクション世界の画像である。第2の仮想カメラに映るプロジェクション世界の画像(以下、「プロジェクション世界画像」という)は、図4の(3)に示すように、3次元仮想空間が画像平面に投影された画像である。プロジェクション世界画像は、第2の画像に該当する。プロジェクション世界画像も3次元仮想空間を画像平面に投影した画像を描画することで生成される。
【0066】
本実施の形態では、第1の仮想カメラに基づいて生成したゲーム世界の画像(3)と第2の仮想カメラに基づいて生成したプロジェクション世界の画像(4)をポストプロセスエフェクトで合成し、図4の(5)に示すような画像を生成する。
【0067】
図2の説明に戻る。第1の画像データ35は、上述したとおり、ゲーム世界を第1の仮想カメラから見たゲーム世界画像のデータである。第1の仮想カメラは、プレイヤキャラクタの移動に応じて移動する。第2の画像データ36は、プロジェクション世界を第2の仮想カメラから見たプロジェクション世界画像のデータである。第2の仮想カメラは、第1の仮想カメラに連動して移動する。ゲーム世界とプロジェクション世界は対応しているので、第1の仮想カメラと第2の仮想カメラが連動して移動することにより、ゲーム世界画像とプロジェクション世界画像は、ゲーム世界とプロジェクション世界を同じ視点及び方向から撮影した画像となる。
【0068】
図3は、ゲームプログラム31を構成するモジュールを示す図である。ゲームプログラム31は、プレイヤキャラクタ制御モジュール41と、第1の仮想カメラ移動処理モジュール42と、第2の仮想カメラ移動処理モジュール43と、第1の画像生成処理モジュール44と、第2の画像生成処理モジュール45と、画像合成処理モジュール46とを備えている。図3では、本実施の形態のゲーム装置10によって実現される画像合成技術に関連するモジュールを示しているが、ゲームプログラム31はゲームの進行に必要な処理を行う図示しないモジュールを備えている。
【0069】
プレイヤキャラクタ制御モジュール41は、3次元仮想空間内のフィールドにおいて、操作入力に基づいてプレイヤキャラクタを制御させる機能を有する。第1の仮想カメラ移動処理モジュール42は、プレイヤキャラクタの移動に応じて第1の仮想カメラの移動を行わせる機能を有する。すなわち、プレイヤキャラクタから見た画像を表示するように、プレイヤキャラクタの動きに合わせて第1の仮想カメラを移動させる。第2の仮想カメラ移動処理モジュール43は、第1の仮想カメラに連動して第2の仮想カメラの移動および回転を行わせる機能を有する。すなわち、第2の仮想カメラは、第1の仮想カメラの移動および回転と同じ移動および回転をする。
【0070】
第1の画像生成処理モジュール44は、第1の仮想カメラに基づいて、フィールドを構成する地形等のオブジェクトを含むゲーム世界画像を生成する機能を有する。第2の画像生成処理モジュール45は、第1の仮想カメラに連動して移動する第2の仮想カメラに基づいて、プロジェクションされる対象となるオブジェクトのプロジェクション世界画像を生成する機能を有する。
【0071】
画像合成処理モジュール46は、ゲーム世界画像にプロジェクション世界画像をポストプロセスエフェクトで合成させることによってゲーム画像を生成する機能を有する。ゲーム世界画像とプロジェクション世界画像の合成の基本的な処理については、図4及び図5を参照して説明したとおりであるが、より具体的には、プロジェクション世界画像のテクスチャをゲーム世界画像にマッピングすることによって、ゲーム世界画像とプロジェクション世界画像とを合成する。このマッピングはテクスチャマッピングと呼ばれる。プロジェクション世界画像のテクスチャには、縦方向をV、横方向をUとするUV座標が設定されており、UV座標によって、ゲーム世界画像のどこにプロジェクション世界画像のどこを合成するかを指定する。第1画像がポリゴンの場合には、ポリゴンの各頂点に対してUV座標を指定する。
【0072】
本ゲームプログラム31は、リアルなプロジェクションマッピングの表現を行うため、種々の工夫を行う。具体的には、投影される画像に遠近感を持たせること、投影される画像にノイズを入れること、投影される画像に色収差を持たせること、3次元仮想空間内のオブジェクトの視認性を高めるため陰影をつけること、投影される画像のフォーカスずれを表現することである。なお、これらの表現のすべてを実行する必要はなく、場面に応じて選択することができる。以下、プロジェクションマッピングのリアルな表現を行うための機能を順に説明する。
【0073】
(遠近感)
図6(a)~図6(c)は、プロジェクションマッピングを行った画像の例を示す図である。ステージがゲーム世界画像である。この例では、遠近感が分かりやすいように、「PM」の文字を含むプロジェクション世界画像を投影した例を示している。
【0074】
現実世界のプロジェクションマッピングでは、画像が投影される建物等の形状にかかわらず、図6(a)に示すように、文字が浮き出して見えるような画像がマッピングされるのが一つの理想である。しかし、ゲーム内の表現としては、背景から画像が浮き出すと、投影に見えない場合がある。そこで、本実施の形態のゲームプログラム31は、ゲーム世界の仮想空間の深度情報を用いて、合成される画像に擬似的に遠近感を付与する。
【0075】
第1の画像生成処理モジュール44は、ゲーム世界画像を生成する際に、Zバッファを用いてゲーム世界画像を生成する。3次元コンピュータグラフィックスでは、描画処理を高速化するために、深度(奥行き)情報を用いて物体の描画処理を行う技術が用いられる。この技術において、深度情報を格納するメモリ領域がZバッファである。
【0076】
画像合成処理モジュール46は、Zバッファに格納された奥行き値に基づいて、プロジェクション世界画像を構成するテクスチャの拡大又は縮小を行わせる。具体的には、プロジェクション世界画像のテクスチャをゲーム世界画像にマッピングする際に、UV座標を拡縮することにより、ゲーム世界画像に合成されるプロジェクション世界画像のテクスチャを拡大・縮小する。画像合成処理モジュール46は基準となる奥行き値を定めておき、プロジェクション世界画像を合成する箇所の奥行き値が基準の奥行き値より大きいか小さいかによってUV座標を拡大するか縮小するかを決定する。
【0077】
図6(b)は、奥行き値が大きくなるに従ってプロジェクション世界画像を縮小する処理を行い、縮小処理を行った「PM」の文字画像を合成した例を示す図である。図6(b)に示す例では、奥に行くにしたがって「PM」の文字が細くなり、文字がステージに投影されているように見える。
【0078】
図6(c)は、奥行き値が大きくなるに従ってプロジェクション世界画像を拡大する処理を行い、拡大処理を行った「PM」の文字画像を合成した例を示す図である。図6(c)に示す例では、奥に行くにしたがって「PM」の文字が太くなっている。これにより、放射状の光によるプロジェクションマッピングを表現することができる。
【0079】
このように、ゲーム世界画像とプロジェクション世界画像を合成する際に、UV座標を拡縮するという簡易な構成で、ゲーム画像に投影される画像に遠近感を持たせることができる。
【0080】
(ノイズ)
現実のプロジェクションマッピングでは、ビデオの同期ズレのようなノイズが見える場合がある。そこで、本実施の形態のゲームプログラム31は、このノイズを擬似的に付与する。
【0081】
画像合成処理モジュール46は、プロジェクション世界画像の所定の領域について、プロジェクション世界画像をゲーム世界画像に合成する際に、UV座標のU方向をずらす。本実施の形態において、所定の領域は、プロジェクション世界画像の左端から右端まで伸びる細長い領域である。所定の領域において、UV座標のU方向をずらすと、プロジェクション世界画像のゲーム世界画像へのマッピング位置が水平方向にずれ、ゲーム画像において、水平方向にノイズが入ったように見せることができる。
【0082】
図7は、水平方向の歪みが入ったゲーム画像の例を示す図である。円で囲んだ部分Aを見ると、菱形の模様の上部が水平方向に歪んでいるのが分かる。プロジェクション世界画像のどの領域に水平方向のノイズを入れるか、つまり所定の領域の決め方は、次の通りである。まず、プロジェクション世界画像に対応する参照用の画像を準備する。
【0083】
図8は、参照用の画像の例を示す図である。参照用の画像は、水平方向に延びる複数の線が垂直方向にスクロールしている。この線はランダムに発生するようにしてもよい。画像合成処理モジュール46は、参照用の画像を参照し、線に対応するプロジェクション世界画像の領域を所定の領域とし、所定の領域においてプロジェクション世界画像のUV座標のU方向をずらすことで、プロジェクション世界画像に歪みを生じさせる。なお、例えば、線が太い場合には線が細い場合に比べて大きくずらすといったように、線の太さによって、U方向をずらす程度を決めてもよい。
【0084】
参照用の画像においては、線が下方向に高速にスクロールしているので、線に対応する所定の領域も高速に下方向にスクロールする。すなわち、歪みが発生する領域が下方向に移動することになる。実際には、一瞬、ザラっとずれるような表現によってノイズを表し、リアルなプロジェクションマッピングのように見せることができる。
【0085】
このように、ゲーム世界画像とプロジェクション世界画像を合成する際に、UV座標のU方向にずらすという簡易な構成でノイズを発生させ、プロジェクションマッピングのリアルな表現を行える。
【0086】
本実施の形態では、参照用の画像において水平方向に延びる複数の線が垂直方向にスクロールしており、この参照用の画像を画像合成処理モジュール46が参照して水平方向に歪ませる領域を決める例を挙げたが、変形例として、参照用の画像において水平方向に延びる線をスクロールさせない構成とすることも考えられる。すなわち、画像合成処理モジュールは、参照用の画像のどの座標(縦軸上の位置)を参照するかを時間の経過と共に変化させる。参照した座標に線が引いてあれば、プロジェクション世界画像のUV座標のU方向をずらし、線が引いてなければUV座標をずらさないという処理を行う。これにより、プロジェクション世界画像において歪みが発生する領域を垂直方向に移動させることができる。
【0087】
(色収差)
画像合成処理モジュール46は、プロジェクション世界画像を構成するRGBのチャンネル毎にテクスチャのUV座標の拡大率を変え、拡大率の異なるチャンネルのテクスチャをゲーム世界画像に合成することとしてもよい。
【0088】
拡大率は、例えば、Bチャンネルについては等倍とし、Gチャンネルは0.99倍、Rチャンネルは1.01倍とする。すなわち、Bチャンネルの画像を合成する際には、UV座標をそのまま用いてマッピングする。Gチャンネルを合成する際には、UV座標を0.99倍した座標を用いてマッピングする。Rチャンネルを合成する際には、UV座標を1.01倍した座標を用いてマッピングする。
【0089】
UV座標は画像の中心を(0,0)とすると、中心から離れるにしたがって、Gチャンネル、RチャンネルのUV座標値のずれが大きくなる。これにより、ゲーム世界画像とプロジェクション世界画像とを合成したゲーム画像は、中心から外側にいくにしたがって、Gは中心寄りにずれ、Rは外側にずれるので、プロジェクション世界画像に色収差が発生したように見える。これにより、レンズの簡易的なシミュレーションを実現し、リアルなプロジェクションマッピングを表現できる。
【0090】
図9は、色収差の例を示す図である。人物の画像の右側に緑の縁取りの領域が現れ、左側に赤の縁取りの領域が現れる。このようにUV座標の拡大率を変えるだけで、簡易に色収差を再現することができる。
【0091】
なお、ここで説明した方法では、中心から離れるにしたがって色収差を大きくする例を挙げたが、周期的にズレ量を変化させるなどの構成をとることも可能である。
【0092】
(陰影)
ゲーム世界画像にプロジェクション世界画像を合成すると、プロジェクション世界画像によってゲーム世界画像のディテールが失われてしまう場合がある。図10(a)は、画像合成によりディテールが失われた例を示す図である。
【0093】
図10(a)は、ゲーム世界画像はレンガの模様を有しているが、プロジェクション世界画像が合成されたためにレンガとレンガの境目が見えにくくなっている。画像合成処理モジュール46は、ゲーム画像に対してシェーディングを行って、ゲーム世界画像のディテールを強調してもよい。
【0094】
画像合成処理モジュール46は、ゲーム世界の仮想光源とオブジェクトを構成する面の法線ベクトルとに基づいて、オブジェクトの暗部と明部を判定させる。暗部は、例えば、レンガの境目のように、光が入り込まずに影になっている部分や、仮想光源からの光線とオブジェクト面の法線との角度が大きい部分である。したがって、仮想光源の位置とオブジェクトの面の法線とから暗部と明部を判定することができる。
【0095】
なお、法線ベクトルは、例えば、テクスチャのデータを格納したGバッファ(Geometry Buffer)の法線ベクトルの情報を用いる。そして、画像合成処理モジュール46は、暗部に対応するゲーム画像の領域に対してシェーディングを行う。
【0096】
図10(b)は、シェーディングを行ったゲーム画像の例を示す図である。図10(b)示す画像では、暗部であるレンガとレンガの境目に陰影をつけているため、レンガとレンガの境目が図10(a)に比べて良く見える。
【0097】
また、画像合成処理モジュール46は、プロジェクション世界画像の領域ごとの輝度を求め、所定の輝度未満の領域が合成されたゲーム画像の領域においてシェーディングを行い、所定の輝度以上の領域が合成されたゲーム画像の領域においてはシェーディングを行わないようにしてもよい。現実のプロジェクションマッピングにおいて、強い光が投影されている領域では、建物等の背景が見えにくくなりやすい。明るい場所についてシェーディングをするとかえって不自然な画像になってしまう。所定の輝度以上の領域についてシェーディングを行わないことにより、陰影の不自然なゲーム画像になることを防止できる。
【0098】
(フォーカスずれ)
画像合成処理モジュール46は、プロジェクション世界画像のミップレベルを、深度に応じてオリジナルのミップレベルから変更することにより、ある深度にだけフォーカスが合って、他の深度ではフォーカスが合わない状態を再現する。
【0099】
第2の画像生成処理モジュール45は、プロジェクション世界画像を生成する際に、メインの画像に加え、メインの画像から順次1/4に面積を縮小した複数のミップマップ画像を生成する。ミップマップは、解像度が徐々に低くなっていく複数のミップマップ画像での集合であり、その解像度をミップレベルという。
【0100】
画像合成処理モジュール46は、ゲーム世界画像にプロジェクション世界画像を合成する際に、ゲーム世界画像の対応する位置におけるZバッファの奥行き値に基づいて、どの大きさのミップマップ画像を合成するかを決める。通常であれば、奥行き値が小さければ大きいミップマップレベルの画像(解像度の高いミップマップ画像)を用い、奥行き値が大きければ小さいミップマップレベルの画像(解像度の低いミップマップ)を用いるといった具合に、奥行き値とミップマップレベルとに相関関係を持たせる。このように、奥行き値との相関関係に基づいて決定されるミップマップレベルを、本明細書では「オリジナルのミップマップレベル」という。
【0101】
フォーカスずれを表現する機能においては、所定の奥行き値の領域については、オリジナルのミップマップレベルを選択するが、それ以外の領域についてはオリジナルより小さいミップマップレベルを選択する。これにより、所定の奥行き値の領域については、フォーカスが合った画像となるが、それ以外の領域についてはフォーカスが合わない画像となる。このように、ミップマップレベルの選択を変えるだけでフォーカスのずれた画像を簡易に実現できる。
【0102】
以上、本実施の形態のゲームプログラム31が、プロジェクションマップのリアルな表現を行うための種々の機能について説明した。いずれの機能もゲーム世界画像およびプロジェクション世界画像を生成した後のポストプロセスエフェクトによる処理であり、高速にリアルな表現を実現することができる。
【0103】
図11は、本実施の形態のゲーム装置10の動作を示す図である。ゲーム装置10は、まず、ユーザからの操作入力を受け付け、入力された操作に基づいてプレイヤキャラクタの制御を行う(S10)。ゲーム装置10は、プレイヤキャラクタの制御に続いて、第1の仮想カメラの移動処理を行い(S11)、ゲーム世界の3次元仮想空間とプレイヤキャラクタを含むゲーム世界画像を生成する(S12)。また、ゲーム装置10は、第2の仮想カメラを、第1の仮想カメラと連動させて移動し(S13)、プロジェクション世界画像を生成する(S14)。ゲーム装置10は、プロジェクション世界画像をゲーム世界画像にマッピングすることにより、ゲーム世界画像とプロジェクション世界画像とを合成する(S15)。この画像合成の際に、プロジェクションマッピングをリアルに見せる各種の処理のうち、選択した処理を行う。ゲーム装置10は、画像合成して生成したゲーム画像をゲーム装置10に表示する(S16)。
【0104】
以上、第1の実施の形態のゲーム装置、ゲーム方法、及びゲームプログラムについて説明した。本実施の形態のゲーム装置は、第1の仮想カメラに基づいて生成されたゲーム世界画像に対し、第1の仮想カメラに連動して移動する第2の仮想カメラに基づいて生成されたプロジェクション世界画像を合成するという簡便な構成により、ゲーム世界画像に対してプロジェクションマッピングの演出を加えることができ、開発コストを低減させることができる。
【0105】
(第2の実施の形態)
図12は、第2の実施の形態のゲームシステム50の構成を示す図である。本実施の形態のゲームシステム50は、サーバ装置51と、ユーザ端末52とを備えている。サーバ装置51と、ユーザ端末52とは、インターネット等のネットワーク53を介して通信可能に構成されている。ユーザ端末52は、ゲーム専用の装置であってもよいし、例えばスマートフォン、タブレット端末、携帯電話、パーソナルコンピュータ、ウェアラブル端末等の汎用装置であってもよい。図12では、ユーザ端末52を1台のみ示しているが、ユーザ端末52は複数であってもよい。
【0106】
本実施の形態のゲームシステム50では、サーバ装置51が第1の実施の形態で説明したゲーム装置10の機能を有している。すなわち、ユーザの操作入力に基づいてプレイヤキャラクタを制御し、プレイヤキャラクタの移動に基づいて第1の仮想カメラ、第2の仮想カメラの移動処理を行い、第1の仮想カメラ、第2の仮想カメラに基づいて生成したゲーム世界画像、プロジェクション世界画像を合成してゲーム画像を生成する。
【0107】
ユーザ端末52は、ユーザからの操作入力を受け付け、入力された操作の情報をサーバ装置51に送信する。サーバ装置51は、ユーザ端末52から送信されてきた操作の情報に基づいてゲーム画像の生成を行い、生成したゲーム画像をゲーム情報の一部としてユーザ端末52に送信する。ユーザ端末52は、サーバ装置51から送信されてきたゲーム画像を表示する。
【0108】
このようにサーバ装置51とユーザ端末52を含んで構成されるゲームシステム50においても、プロジェクションマップを表現したゲーム画像を簡便に生成することができる。本実施の形態では、プレイヤキャラクタの制御処理から画像合成処理までをサーバ装置51が担う例を説明したが、サーバ装置51とユーザ端末52との間における機能分担は任意に変えることができる。
【符号の説明】
【0109】
10 ゲーム装置
11 プロセッサ
12 記憶部
13 無線通信部
14 コントローラ通信部
15 画像音声出力部
16 表示部
20 コントローラ
21 通信部
22 アナログスティック
23 ボタン部
24 慣性センサ
31 ゲームプログラム
32 プレイヤキャラクタデータ
33 仮想空間データ
34 プロジェクションデータ
35 第1の画像データ
36 第2の画像データ
41 プレイヤキャラクタ制御モジュール
42 第1の仮想カメラ移動処理モジュール
43 第2の仮想カメラ移動処理モジュール
44 第1の画像生成処理モジュール
45 第2の画像生成処理モジュール
46 画像合成処理モジュール
50 ゲームシステム
51 サーバ装置
52 ユーザ端末
53 ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12