(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-27
(45)【発行日】2024-07-05
(54)【発明の名称】ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法
(51)【国際特許分類】
A63F 13/52 20140101AFI20240628BHJP
A63F 13/812 20140101ALI20240628BHJP
A63F 13/55 20140101ALI20240628BHJP
A63F 13/525 20140101ALI20240628BHJP
【FI】
A63F13/52
A63F13/812 D
A63F13/55
A63F13/525
(21)【出願番号】P 2022016300
(22)【出願日】2022-02-04
【審査請求日】2023-01-16
【前置審査】
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】岡村 陽子
(72)【発明者】
【氏名】井上 圭次郎
(72)【発明者】
【氏名】山本 愛
【審査官】鈴木 崇雅
(56)【参考文献】
【文献】特開2018-112924(JP,A)
【文献】特開2002-063596(JP,A)
【文献】特開2021-108813(JP,A)
【文献】特開2016-151865(JP,A)
【文献】ファミスタ ゲーム - 進化の軌跡 1986~2020 [プロ野球 ファミスタ 2020 SWITCHまで],YouTube[online][video],2021年08月04日,https://www.youtube.com/watch?v=YzVPWZ3oJLM,[検索日:2023年11月13日]
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-98
A63F 9/24
(57)【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに、
ポリゴンにより形成されるオブジェクトが配置された仮想空間内において、当該仮想空間内に配置される地面
オブジェクトの少なくとも一部が視界に含まれる向きに仮想カメラを設定させ、
前記仮想空間内における前記地面
オブジェクトの上方において、所定のオブジェクトをゲーム処理に基づいて移動制御させ、
前記仮想カメラに基づいて、前記地面
オブジェクトと前記
所定のオブジェクトが含まれるゲーム画像を生成させる描画処理であって、かつ、前記
所定のオブジェクトの前記仮想空間内における高さが所定の高さより高い場合に、少なくとも前記
所定のオブジェクトに輪郭線を描画させる描画処理によって前記ゲーム画像を生成させる、ゲームプログラム。
【請求項2】
前記コンピュータに、
前記描画処理において、前記
所定のオブジェクトの高さに応じた不透明度で前記輪郭線を描画させる、請求項1に記載のゲームプログラム。
【請求項3】
前記コンピュータに、
前記描画処理において、前記
所定のオブジェクトよりも大きい輪郭用オブジェクトを描画することによって前記輪郭線を描画する描画処理によって前記ゲーム画像を生成させる、請求項1又は2に記載のゲームプログラム。
【請求項4】
前記コンピュータにさらに、
前記描画処理において、前記
所定のオブジェクトの前記仮想カメラに対する奥行に応じて、描画される前記
所定のオブジェクトの大きさに対して前記輪郭線が太く描画される描画処理によって前記ゲーム画像を生成させる、請求項1~3のいずれかに記載のゲームプログラム。
【請求項5】
前記コンピュータにさらに、
前記描画処理において、前記
所定のオブジェクトの高さ応じて、描画される前記
所定のオブジェクトの大きさに対して前記輪郭線が太く描画される描画処理によって前記ゲーム画像を生成させる、請求項1~4のいずれかに記載のゲームプログラム。
【請求項6】
前記コンピュータにさらに、
前記描画処理において、前記輪郭用オブジェクトの大きさを、前記
所定のオブジェクトの前記仮想カメラに対する奥行に応じて大きくして前記描画処理を行うことによって前記ゲーム画像を生成させる、請求項3に記載のゲームプログラム。
【請求項7】
前記コンピュータに、
前記ゲーム処理として、操作入力に基づいて前記仮想空間内のプレイヤキャラクタに前記
所定のオブジェクトを打ち返させる処理を行わせる、請求項1~6のいずれかに記載のゲームプログラム。
【請求項8】
前記
所定のオブジェクトはボールオブジェクトであって、
前記地面
オブジェクトの少なくとも一部は、前記プレイヤキャラクタおよび対戦相手となる相手キャラクタが配置されたコートであって、
前記コンピュータに、
前記プレイヤキャラクタの背後側かつ上方側に、前記コートを視界に含む向きとなるよう前記仮想カメラを設定させ、
前記ゲーム処理として、相手キャラクタが打ったボールオブジェクトを操作入力に基づいて前記プレイヤキャラクタに打ち返させるスポーツゲーム処理を行わせる、請求項7に記載のゲームプログラム。
【請求項9】
前記コンピュータにさらに、
操作入力に基づいて、前記プレイヤキャラクタを前記コート上で移動制御させ、
前記仮想カメラの位置を、前記プレイヤキャラクタの移動に合わせて移動させる、請求項8に記載のゲームプログラム。
【請求項10】
前記コートはテニスコートであって、
前記スポーツゲーム処理はテニスゲーム処理である、請求項8又は9に記載のゲームプログラム。
【請求項11】
プロセッサを備えるゲームシステムであって、
前記プロセッサは、
ポリゴンにより形成されるオブジェクトが配置された仮想空間内において、当該仮想空間内に配置される地面
オブジェクトの少なくとも一部が視界に含まれる向きに仮想カメラを設定し、
前記仮想空間内における前記地面
オブジェクトの上方において、所定のオブジェクトをゲーム処理に基づいて移動制御し、
前記仮想カメラに基づいて、前記地面
オブジェクトと前記
所定のオブジェクトが含まれるゲーム画像を生成する描画処理であって、かつ、前記
所定のオブジェクトの前記仮想空間内における高さが所定の高さより高い場合に、少なくとも前記
所定のオブジェクトに輪郭線を描画する描画処理によって前記ゲーム画像を生成する、ゲームシステム。
【請求項12】
前記プロセッサは、
前記描画処理において、前記
所定のオブジェクトの高さに応じた不透明度で前記輪郭線を描画する、請求項11に記載のゲームシステム。
【請求項13】
前記プロセッサは、
前記描画処理において、前記
所定のオブジェクトよりも大きい輪郭用オブジェクトを描画することによって前記輪郭線を描画する描画処理によって前記ゲーム画像を生成する、請求項11又は12に記載のゲームシステム。
【請求項14】
前記プロセッサは、さらに、
前記描画処理において、前記
所定のオブジェクトの前記仮想カメラに対する奥行に応じて、描画される前記
所定のオブジェクトの大きさに対して前記輪郭線が太く描画される描画処理によって前記ゲーム画像を生成する、請求項11~13のいずれかに記載のゲームシステム。
【請求項15】
前記プロセッサは、さらに、
前記描画処理において、前記
所定のオブジェクトの高さ応じて、描画される前記
所定のオブジェクトの大きさに対して前記輪郭線が太く描画される描画処理によって前記ゲーム画像を生成する、請求項11~14のいずれかに記載のゲーム
システム。
【請求項16】
前記プロセッサは、さらに、
前記描画処理において、前記輪郭用オブジェクトの大きさを、前記
所定のオブジェクトの前記仮想カメラに対する奥行に応じて大きくして前記描画処理を行うことによって前記ゲーム画像を生成する、請求項13に記載のゲームシステム。
【請求項17】
前記プロセッサは、
前記ゲーム処理として、操作入力に基づいて前記仮想空間内のプレイヤキャラクタに前記
所定のオブジェクトを打ち返させる処理を行う、請求項11~16のいずれかに記載のゲームシステム。
【請求項18】
前記
所定のオブジェクトはボールオブジェクトであって、
前記地面
オブジェクトの少なくとも一部は、前記プレイヤキャラクタおよび対戦相手となる相手キャラクタが配置されたコートであって、
前記プロセッサは、
前記プレイヤキャラクタの背後側かつ上方側に、前記コートを視界に含む向きとなるよう前記仮想カメラを設定し、
前記ゲーム処理として、相手キャラクタが打ったボールオブジェクトを操作入力に基づいて前記プレイヤキャラクタに打ち返させるスポーツゲーム処理を行う、請求項17に記載のゲームシステム。
【請求項19】
前記プロセッサは、さらに、
操作入力に基づいて、前記プレイヤキャラクタを前記コート上で移動制御し、
前記仮想カメラの位置を、前記プレイヤキャラクタの移動に合わせて移動する、請求項18に記載のゲームシステム。
【請求項20】
前記コートはテニスコートであって、
前記スポーツゲーム処理はテニスゲーム処理である、請求項18又は19に記載のゲームシステム。
【請求項21】
プロセッサを備えるゲーム装置であって、
前記プロセッサは、
ポリゴンにより形成されるオブジェクトが配置された仮想空間内において、当該仮想空間内に配置される地面
オブジェクトの少なくとも一部が視界に含まれる向きに仮想カメラを設定し、
前記仮想空間内における前記地面
オブジェクトの上方において、所定のオブジェクトをゲーム処理に基づいて移動制御し、
前記仮想カメラに基づいて、前記地面
オブジェクトと前記
所定のオブジェクトが含まれるゲーム画像を生成する描画処理であって、かつ、前記
所定のオブジェクトの前記仮想空間内における高さが所定の高さより高い場合に、少なくとも前記
所定のオブジェクトに輪郭線を描画する描画処理によって前記ゲーム画像を生成する、ゲーム装置。
【請求項22】
情報処理装置のコンピュータに、
ポリゴンにより形成されるオブジェクトが配置された仮想空間内において、当該仮想空間内に配置される地面
オブジェクトの少なくとも一部が視界に含まれる向きに仮想カメラを設定させ、
前記仮想空間内における前記地面
オブジェクトの上方において、所定のオブジェクトをゲーム処理に基づいて移動制御させ、
前記仮想カメラに基づいて、前記地面
オブジェクトと前記
所定のオブジェクトが含まれるゲーム画像を生成させる描画処理であって、かつ、前記
所定のオブジェクトの前記仮想空間内における高さが所定の高さより高い場合に、少なくとも前記
所定のオブジェクトに輪郭線を描画させる描画処理によって前記ゲーム画像を生成させる、ゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、対戦スポーツゲーム等のゲーム処理に関する。
【背景技術】
【0002】
従来から、オブジェクトを配置した仮想空間を描画する処理において、オブジェクトの輪郭線を描画する技術が知られている(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の技術では、オブジェクトの輪郭線が常に描画されるものであった。ここで、オブジェクトの輪郭線を描画したい場合と描画したくない場合とがある。そこで、簡単な処理でオブジェクトの輪郭線を描画するか否か描画しないかを判定できるのが望ましい。
【0005】
それ故に、本発明の目的は、簡単な処理でオブジェクトの輪郭線を描画するか描画しないかを判定して、判定結果に基づいて輪郭線を描画することができるゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、例えば以下のような構成例が挙げられる。
【0007】
構成例の一例は、情報処理装置のコンピュータに、仮想空間内において、当該仮想空間内に配置される地面の少なくとも一部が視界に含まれる向きに仮想カメラを設定させ、仮想空間内における地面の上方において、所定のオブジェクトをゲーム処理に基づいて移動制御させ、仮想カメラに基づいて、地面とオブジェクトが含まれるゲーム画像を生成させる描画処理であって、かつ、オブジェクトの仮想空間内における高さが所定の高さより高い場合に、少なくともオブジェクトに輪郭線を描画させる描画処理によってゲーム画像を生成させるゲームプログラムである。
【0008】
上記構成例によれば、空中のオブジェクトが遠方の地面または背景と重なる場合において輪郭線を描画したい状況において、簡単な処理で描画するか否かの判定を行うことができる。
【0009】
他の構成例として、コンピュータに、描画処理において、オブジェクトの高さに応じた不透明度で輪郭線を描画させてもよい。
【0010】
上記構成例によれば、高さに応じてオブジェクトの輪郭を際立たせることができる。
【0011】
他の構成例として、コンピュータに、描画処理において、オブジェクトよりも大きい輪郭用オブジェクトを描画することによって輪郭線を描画する描画処理によってゲーム画像を生成させてもよい。
【0012】
上記構成例によれば、オブジェクトと同じように輪郭用オブジェクトを描画することによって輪郭線を描画することができる。
【0013】
他の構成例として、コンピュータにさらに、描画処理において、オブジェクトの仮想カメラに対する奥行に応じて、描画されるオブジェクトの大きさに対して輪郭線が太く描画される描画処理によってゲーム画像を生成させてもよい。
【0014】
上記構成例によれば、オブジェクトが奥に位置してオブジェクトの描画サイズが小さくなった場合でも、オブジェクトの輪郭が見え難くならないので、オブジェクトの視認性を確保できる。
【0015】
他の構成例として、コンピュータにさらに、描画処理において、オブジェクトの高さに応じて、描画されるオブジェクトの大きさに対して輪郭線が太く描画される描画処理によってゲーム画像を生成させてもよい。
【0016】
上記構成例によれば、オブジェクトが高い所に位置してオブジェクトが背景等に重なった場合でも、オブジェクトの輪郭が見え難くならないので、オブジェクトの視認性を確保できる。
【0017】
他の構成例として、コンピュータにさらに、描画処理において、輪郭用オブジェクトの大きさを、オブジェクトの仮想カメラに対する奥行に応じて大きくして描画処理を行うことによってゲーム画像を生成させてもよい。
【0018】
上記構成例によれば、オブジェクトの視認性を確保できる。
【0019】
他の構成例として、コンピュータに、ゲーム処理として、操作入力に基づいて仮想空間内のプレイヤキャラクタにオブジェクトを打ち返させる処理を行わせてもよい。
【0020】
上記構成例によれば、プレイヤキャラクタにオブジェクトを打ち返させるゲームにおいて、打ち返すオブジェクトが見えづらくならないようにオブジェクトの輪郭を描画できる。
【0021】
他の構成例として、オブジェクトはボールオブジェクトであって、地面の少なくとも一部は、プレイヤキャラクタおよび対戦相手となる相手キャラクタが配置されたコートであって、コンピュータに、プレイヤキャラクタの背後側かつ上方側に、コートを視界に含む向きとなるよう仮想カメラを設定させ、ゲーム処理として、相手キャラクタが打ったボールオブジェクトを操作入力に基づいてプレイヤキャラクタに打ち返させるスポーツゲーム処理を行わせてもよい。
【0022】
上記構成例によれば、ボールとコート外の背景等とが重なる場合において輪郭線を描画したい場合に、簡単な処理で概ね問題無い判定(輪郭線を描画するか否かの判定)を行うことができる。
【0023】
他の構成例として、コンピュータにさらに、操作入力に基づいて、プレイヤキャラクタをコート上で移動制御させ、仮想カメラの位置を、プレイヤキャラクタの移動に合わせて移動させてもよい。
【0024】
他の構成例として、コートはテニスコートであって、スポーツゲーム処理はテニスゲーム処理であってもよい。
【0025】
上記構成例によれば、テニスゲームにおいて、オブジェクトの視認性が確保できる。
【発明の効果】
【0026】
本実施形態によれば、簡単な処理でオブジェクトの輪郭線を描画するか描画しないかを判定して、判定結果に基づいて輪郭線を描画することができるゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法を提供することができる。
【図面の簡単な説明】
【0027】
【
図1】ゲーム装置2の内部構成等の一例を示すブロック図
【
図3】仮想空間内におけるボールの輪郭線の太さ(輪郭用オブジェクトの大きさ)について説明するための図
【
図4】ゲーム画面(ゲーム画像)におけるボールの見え方について説明するための図
【
図5】記憶部22に記憶される各種データの例を示す図
【
図8】仮想空間内におけるボールの輪郭線の太さ(輪郭用オブジェクトの大きさ)の変形例について説明するための図
【発明を実施するための形態】
【0028】
以下、一実施形態について説明する。
【0029】
[情報処理装置のハードウェア構成]
まず、本実施形態にかかる情報処理を実行するための情報処理装置について説明する。当該情報処理装置は、例えばスマートフォン、据置型または携帯型のゲーム装置、タブレット端末、携帯電話、パーソナルコンピュータ、ウェアラブル端末等である。また、本実施形態にかかる情報処理は、上記のようなゲーム装置等と、所定のサーバとから構成されるゲームシステムにも適用可能である。本実施形態では、据置型ゲーム装置(「ゲーム装置」という場合がある)を情報処理装置の一例として説明する。
【0030】
図1は、本実施形態に係るゲーム装置2の内部構成等の一例を示すブロック図である。ゲーム装置2は、プロセッサ21を備える。プロセッサ21は、ゲーム装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ21は、記憶部22に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。なお、記憶部22は、例えば、フラッシュメモリやDRAM(Dynamic Random Access Memory)等の内部記憶媒体であってもよいし、図示しないスロットに装着される外部記憶媒体等を利用する構成でもよい。
【0031】
また、ゲーム装置2は、ゲーム装置2が他のゲーム装置2や所定のサーバ装置と無線通信を行うための無線通信部23を備える。当該無線通信としては、例えば、インターネット通信や近距離無線通信が用いられる。
【0032】
また、ゲーム装置2は、ゲーム装置2がコントローラ4と有線または無線通信を行うためのコントローラ通信部24を備える。
【0033】
また、ゲーム装置2には、画像音声出力部25を介して表示部5(例えば、テレビ等)が接続される。プロセッサ21は、(例えば、上記の情報処理の実行によって)生成した画像や音声を、画像音声出力部25を介して表示部5に出力する。
【0034】
次に、コントローラ4について説明する。コントローラ4は、方向入力デバイスの一例であるアナログスティック42を少なくとも1つ備える。当該アナログスティック42は、方向を入力することが可能な方向入力部として用いることができる。ユーザ(プレイヤ)は、アナログスティック42を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。また、コントローラ4は、各種操作ボタンを含むボタン部43を備える。例えば、コントローラ4は、当該コントローラ4のハウジングの主面上に複数個の操作ボタン(例えば、Aボタン、Bボタン、Xボタン、Yボタン)を備えていてもよい。
【0035】
また、コントローラ4は、慣性センサー44を備える。具体的には、コントローラ4は、慣性センサー44として、加速度センサー、角速度センサーを備えている。本実施形態においては、加速度センサーは、所定の3軸方向に沿った加速度の大きさを検出する。また、角速度センサーは、所定の3軸回りの角速度を検出する。
【0036】
また、コントローラ4は、コントローラ通信部24と有線または無線通信を行うための通信部41を備える。アナログスティック42に対する方向入力内容、ボタン部43の押下状態を示す情報、および、慣性センサー44による各種の検出結果は、適宜のタイミングで繰り返し通信部41へ出力され、ゲーム装置2に送信される。
【0037】
[本実施形態で想定するゲームについて]
次に、本実施形態にかかるゲーム装置2で実行されるゲーム処理(情報処理の一例)の概要を説明する。まず、
図2に示すように、本実施形態で想定するゲームは、一例として、シングルスのテニスをモチーフにしたテニスゲームである。具体的には、本ゲームでは、仮想的な人型のオブジェクトである2つの選手キャラクタオブジェクト(「キャラクタ」という場合がある)を、仮想空間内に用意されたテニスコートの自分側コートと相手側コートにそれぞれ1つ配置して、テニスゲームが行われる。そして、ユーザ(プレイヤ)は、アナログスティック42を操作することによって操作対象のキャラクタを移動させて、所定の操作ボタンを操作することによって当該キャラクタにテニスラケットを振る動作を行わせて、テニスボールを打つことができる。
【0038】
また、本ゲームは、インターネット等のネットワークを介して又は近距離無線通信等によって2人のユーザでプレイすることが可能である。本実施形態では、1人のユーザが1人のキャラクタを担当して操作する場合を想定する。なお、相手のユーザがいない場合には、相手のキャラクタはコンピュータにより自動で動作する。
【0039】
[本実施形態のゲーム処理の概要]
次に、本実施形態にかかるゲーム装置2で実行されるゲーム処理の概要を説明する。
図2に示すように、本ゲームでは、仮想空間内に地面オブジェクト(単に「地面」という場合がある)51が配置される。そして、地面51の一部がテニスコート52となっており、又、テニスコート52の周りの地面の領域としてコート外周領域53が設けられている。
【0040】
テニスコート52は、(仮想空間内のサイズで)長辺が24m短辺11mの長方形である。コート外周領域53は、テニスコート52を含んだサイズで、長辺が40m短辺20mの長方形である。なお、テニスコート52とコート外周領域53を合わせた領域を、テニスコートと考えてもよい。そして、
図2に示すように、仮想空間において、テニスコート52は、長辺がZ軸方向(奥行方向)を向き、短辺がX軸方向(左右方向)を向くように配置される。なお、地面51からの高さはY軸の値で表される。
【0041】
テニスコート52は、クレーコートをイメージした赤茶色である。コート外周領域53は、濃いグレーである。テニスコート52およびコート外周領域53を除いた地面51の領域は、芝生であり、薄い緑色である。また、
図2に示すように、テニスコート52の向こう側の芝生の地面51には、複数の木のオブジェクト(単に「木」という場合がある)70が配置されている。木70は、幹が茶色で葉が濃い緑色である。また、仮想空間の奥行方向の遠方には、青色の空の背景を表現する空背景オブジェクト(単に「空背景」という場合がある)71が配置されている。
【0042】
また、テニスコート52(およびコート外周領域53)には、自分側コートにユーザが操作するキャラクタ(「プレイヤキャラクタ」という場合がある)61が配置され、相手側コートに相手のキャラクタ(「相手キャラクタ」という場合がある)62が配置される。そして、プレイヤキャラクタ61と相手キャラクタ62とで、ボールのオブジェクト(「ボール」という場合がある)50をテニスラケットで打ち合ってテニスゲームが進行する。
【0043】
ボール50は、緑色と青色の2色のボールであり(
図3(A)参照)、直径70mmである。ここで、上記したように、テニスコート52は赤茶色であり、コート外周領域53は濃いグレーである。このため、ユーザによるボール50の識別性(視認性)を低下させないように、ボール50を緑色と青色の2色としている。なお、2色にしているのは、ボール50の回転をユーザが視認できるようにするためである。
【0044】
仮想空間内に配置される仮想カメラは、プレイヤキャラクタ61の背後側の上方から、テニスコート52およびコート外周領域53を含む領域が撮影範囲(描画範囲:仮想カメラの視界と呼んでもよい)に含まれるように見下ろして撮影して、
図2に示すようなゲーム画像を生成する。また、仮想カメラは、プレイヤキャラクタ61の左右の移動(X軸方向の移動)に合わせて左右に移動して、プレイヤキャラクタ61の背後側の上方から仮想空間を撮影する。
【0045】
ここで、上記したように、コート外周領域53の外側には、薄い緑色の芝生(コート外周領域53の外側の地面51の領域)や、濃い緑色の葉を含む木70や、青色の空背景71が存在する。このため、緑色と青色の2色のボール50が、ゲーム画像において、上記した芝生や木70の葉や空背景71と重なる場合には(例えば、プレイヤキャラクタ61又は相手キャラクタ62がロブを打ってボール50が高く上がった場合等には)、ボール50の視認性が低下することとなる。
【0046】
そこで、ボール50の視認性を確保するために、ボール50に輪郭線を描画することが考えられる。しかし、赤茶色のテニスコート52や濃いグレーのコート外周領域53とボール50が重なる場合には、ボール50の視認性は低下することはなく、このような場合にまでボール50に輪郭線を描画する必要性は低いと考えられ、又、このような場合にまでボール50に輪郭線を描画するとボール50が浮き上がって見えて不自然な表示となってしまう場合がある。
【0047】
そこで、本ゲームでは、ボール50の地面51からの高さ(
図2のY軸の値)および仮想カメラからボール50までの距離(
図2のZ軸方向の距離)に応じてボール50に輪郭線を描画するか描画しないかを判定し、輪郭線を描画すると判定した場合にはボール50に輪郭線を描画して、ボール50の視認性を確保している。また、本ゲームでは、ボール50の地面51からの高さおよび仮想カメラからボール50までの距離に応じて、ボール50の大きさ(直径70mm)に対する輪郭線の太さを徐々に変化させている。以下、具体的に説明する。
【0048】
図3は、仮想空間内におけるボール50の輪郭線の太さ(輪郭用オブジェクト90の大きさ)について説明するための図である。本ゲームでは、仮想空間内において、直径70.00mmの球形状のボール50の中心を中心とする球形状の輪郭用オブジェクト90を設ける。また、本ゲームでは、輪郭用オブジェクト90について、透明度を100%~0%の範囲で滑らかに変化させ(言い換えると、不透明度を0%~100%の範囲で滑らかに変化させ)、又、直径を70.00mm~100.00mmの範囲で滑らかに変化させる。
【0049】
以下、
図3を参照して、具体的に説明する。
図3(A)~(D)に示すように、ボール50(正確には、ボール50の中心)の地面51からの高さ(
図2のY軸の値)が3.00m以下の場合、輪郭用オブジェクト90の透明度は100%とされる(つまり、輪郭用オブジェクト90は描画されない)。なお、地面51は平面である。また、ボール50の地面51からの高さが3.00mを超えると、輪郭用オブジェクト90の透明度は徐々に減少し、当該高さが3.25mにおいて輪郭用オブジェクト90の透明度は、
図3(E)~(H)に示すように75%になる。また、ボール50の地面51からの高さが3.25mを超えると、同様に輪郭用オブジェクト90の透明度は徐々に減少し、当該高さが3.50mにおいて輪郭用オブジェクト90の透明度は、
図3(I)~(L)に示すように50%になる。また、ボール50の地面51からの高さが3.50mを超えると、同様に輪郭用オブジェクト90の透明度は徐々に減少し、当該高さが4.00m以上において輪郭用オブジェクト90の透明度は、
図3(M)~(P)に示すように0%になる(つまり、輪郭用オブジェクト90は本来の濃さのグレーとなる)。
【0050】
また、
図3に示すように、仮想カメラからボール50までの距離(正確には、仮想カメラのZ軸における位置からボール50の中心のZ軸における位置までの距離)が25.00mの場合、輪郭用オブジェクト90の直径は、ボール50の地面51からの高さが3.00m(
図3(A)参照)を超えると70.00mmから徐々に増加し、当該高さが3.25mにおいて77.50mmになる(
図3(E)参照)。ここで、仮想カメラからボール50までの距離が25.00mの位置は、
図2において破線80で示している。なお、ボール50の地面51からの高さが3.00m以下の場合、および、仮想カメラからボール50までの距離が25.00m未満の場合は、輪郭用オブジェクト90の直径は、70.00mmに固定される。また、ボール50の地面51からの高さが3.25mを超えると、輪郭用オブジェクト90の直径は、同様に徐々に増加し、当該高さが3.50mにおいて85.00mmになる(
図3(I)参照)。また、ボール50の地面51からの高さが3.50mを超えると、輪郭用オブジェクト90の直径は、同様に徐々に増加し、当該高さが4.00m以上において100.00mmになる(
図3(M)参照)。
【0051】
また、仮想カメラからボール50までの距離が27.00mの場合、輪郭用オブジェクト90の直径は、ボール50の地面51からの高さが3.00m(
図3(B)参照)を超えると70.00mmから徐々に増加し、当該高さが3.25mにおいて80.00mmになる(
図3(F)参照)。また、ボール50の地面51からの高さが3.25mを超えると、輪郭用オブジェクト90の直径は、同様に徐々に増加し、当該高さが3.50mにおいて90.00mmになる(
図3(J)参照)。また、ボール50の地面51からの高さが3.50mを超えると、輪郭用オブジェクト90の直径は、同様に徐々に増加し、当該高さが4.00m以上において100.00mmになる(
図3(N)参照)。
【0052】
また、仮想カメラからボール50までの距離が29.00mの場合、輪郭用オブジェクト90の直径は、ボール50の地面51からの高さが3.00m(
図3(C)参照)を超えると70.00mmから徐々に増加し、当該高さが3.25mにおいて90.00mmになる(
図3(G)参照)。また、ボール50の地面51からの高さが3.25mを超えると、輪郭用オブジェクト90の直径は、同様に徐々に増加し、当該高さが3.50mにおいて95.00mmになる(
図3(K)参照)。また、ボール50の地面51からの高さが3.50mを超えると、輪郭用オブジェクト90の直径は、同様に徐々に増加し、当該高さが4.00m以上において100.00mmになる(
図3(O)参照)。
【0053】
また、仮想カメラからボール50までの距離が31.00mの場合、輪郭用オブジェクト90の直径は、ボール50の地面51からの高さが3.00m(
図3(D)参照)を超えると70.00mmから徐々に増加し、当該高さが3.25m以上において100.00mmになる(
図3(H)(L)(P)参照)。
【0054】
なお、上記では、
図3を参照してボール50の地面51からの高さが高くなるに従って輪郭用オブジェクト90の直径が「徐々(滑らかに)に増加」することについて説明したが、輪郭用オブジェクト90の直径は、仮想カメラからボール50までの距離が遠くなるに従って同様に「徐々(滑らかに)に増加」する。高さや奥行に応じて変化する輪郭用オブジェクト90の直径や透明度は、予め設定された最大値および最小値の間で補間によって決定される。補間方法は様々な方法が適用可能である。例えば、線形補間であってもよいし、Hermite補間が用いられてもよい。
【0055】
ここで、輪郭用オブジェクト90およびボール50の描画方法について説明する。本ゲームでは、仮想カメラ(視点)から見てボール50と重なった輪郭用オブジェクト90の部分が描画されない描画方法によって、輪郭用オブジェクト90およびボール50を描画することによって、ゲーム画像におけるボール50の輪郭線を描画する。以下、具体的に説明する。まず、輪郭用オブジェクト90およびボール50は、いずれも、球を構成するポリゴンの表面が当該球の外側面である(つまり、ポリゴンの法線ベクトルの方向が球面の外側向きである)。また、ポリゴンの表面(球の外側面)は描画される一方で、ポリゴンの裏面(球の内側面)は描画されない。そして、Zバッファ法を用いて描画を行う際に、まず、輪郭用オブジェクト90について、仮想カメラから見える部分を描画する一方で、当該描画した部分のZバッファの値(Z値)については更新しない。その後、ボール(ボールオブジェクト)50の仮想カメラから見える部分を描画する。このように、先に輪郭用オブジェクト90を描画した際にZバッファの値を更新しないので、後に描画したボール50が輪郭用オブジェクト90に隠れることなく描画(表示)され、後述する
図4に示すようにゲーム画像においてボール50の輪郭線が描画されることとなる。
【0056】
なお、他の描画方法でボール50の輪郭線を描画してもよい。他の描画方法では、輪郭用オブジェクト90は、球を構成するポリゴンの表面が当該球の内側面である(つまり、ポリゴンの法線ベクトルの方向が球面の内側向きである)。言い換えると、輪郭用オブジェクト90は、球を構成するポリゴンの裏面が当該球の外側面である。そして、仮想カメラから見てポリゴンの裏面(輪郭用オブジェクト90の外側面)は描画されないので、ボール50の表面が描画されると共に、ボール50の表面の周囲に輪郭用オブジェクト90の表面(内側面)が輪郭線として描画されることとなる。
【0057】
図4は、本ゲームのゲーム画面(ゲーム画像)におけるボール50および輪郭線の見え方を説明するための図であり、
図2のボール50の周辺の領域を拡大した図である。また、
図4では、一例として、輪郭線が描画(表示)されたボール50が、地面51から3.5mの高さで、テニスコート52の手前側から奥側に移動している場面を示している。なお、
図4の(J)、(K)、(L)のボール50(および輪郭用オブジェクト90)は、それぞれ、
図3の(J)、(K)、(L)のボール50(および輪郭用オブジェクト90)に対応している。
【0058】
図4に示すように、ゲーム画面において、仮想空間内のボール50および輪郭用オブジェクト90は、手前側から奥側に移動するに従って、徐々に小さく表示される。ここで、
図3を用いて説明したように、輪郭用オブジェクト90は、仮想空間内において仮想カメラからの距離が遠くなるに従って大きくなる。このことから、
図4に示すように、ゲーム画面において、ボール50が徐々に小さく表示される一方で、輪郭用オブジェクト90の大きさ(つまり、輪郭線の太さ)は、ボール50が表示の上で小さくなる割合ほどは小さくならない。このことから、本ゲームでは、
図4に示すように、ボール50が奥行方向に移動するほどボール50の輪郭線を強調して目立たせる(輪郭を際立たせる)ことができるので、ボール50の視認性を確保することができる。また、このとき、ボール50自体の大きさを変えないことで、遠近感を損ねずに視認性を確保することができる。
【0059】
また、本ゲームでは、ボール50の高さに応じて輪郭用オブジェクト90の直径を大きく(又透明度を低く)することで(
図3参照)、ゲーム画面(ゲーム画像)においてボール50の輪郭線を強調して目立たせる(輪郭を際立たせる)ことができるので、ボール50の視認性を確保することができる。
【0060】
[本実施形態の情報処理の詳細]
次に、
図5~
図7を参照して、本実施形態の情報処理について詳細に説明する。
【0061】
[使用データについて]
本ゲーム処理において用いられる各種データに関して説明する。
図5は、ゲーム装置2の記憶部22に格納されるプログラムおよびデータの一例を示している。記憶部22には、ゲームプログラム101、プレイヤキャラクタデータ102、相手キャラクタデータ103、ボールデータ104、輪郭用オブジェクトデータ105、ポリゴンデータ106および操作データ107等が格納される。
【0062】
ゲームプログラム101は、本実施形態に係るゲーム処理を実行するためのゲームプログラムである。
【0063】
プレイヤキャラクタデータ102は、本ゲームの仮想空間内のプレイヤキャラクタについて定義したデータであり、プレイヤキャラクタの大きさ、位置、向き、姿勢、移動速度、移動方向等を示すデータである。
【0064】
相手キャラクタデータ103は、本ゲームの仮想空間内の相手キャラクタについて定義したデータであり、相手キャラクタの大きさ、位置、向き、姿勢、移動速度、移動方向等を示すデータである。
【0065】
ボールデータ104は、本ゲームの仮想空間内のボール50の大きさ、位置、移動方向、移動速度等を定義したデータであり、このボールデータ104を用いて仮想空間内でボール50が移動制御される。
【0066】
輪郭用オブジェクトデータ105は、本ゲームの仮想空間内の輪郭用オブジェクト90の大きさ、位置、移動方向、移動速度等を定義したデータであり、この輪郭用オブジェクトデータ105を用いて仮想空間内でボール50と共に輪郭用オブジェクト90が移動制御される。なお、輪郭用オブジェクトデータ105には、輪郭用オブジェクト90の透明度と、地面51からボール50の中心(輪郭用オブジェクト90の中心)までの距離との関係を示すデータが含まれている。また、輪郭用オブジェクトデータ105には、輪郭用オブジェクト90の直径と、仮想カメラ(視点)からボール50の中心までの距離(
図2のZ軸方向の距離)および地面51からボール50の中心までの距離との関係を示すデータが含まれている。
【0067】
ポリゴンデータ106は、プレイヤキャラクタ61、相手キャラクタ62、地面51(テニスコート52等を含む)、ボール50、木70、空背景71等のオブジェクトを仮想空間内で形成(構成)するためのデータである。
【0068】
操作データ107は、自ゲーム装置2に対して行われた操作を示すデータである。
【0069】
[ゲーム処理の詳細について]
次に、フローチャートを参照して、本実施形態に係るゲーム処理の詳細を説明する。
図6および
図7は、本実施形態に係るゲーム処理の詳細を示すフローチャートの一例である。
【0070】
図6のステップS100において、プロセッサ21は、オブジェクト動作処理を行う。具体的には、プロセッサ21は、仮想空間内において、操作データ107に基づいてプレイヤキャラクタ61を移動させる制御を行い、他のゲーム装置2の操作により動作する相手キャラクタ62について相手キャラクタデータ103に基づいて移動させる制御を行い、ボールデータ104に基づいてボール50(および輪郭用オブジェクト90)を移動させる制御等を行う。また、オブジェクト移動処理では、仮想空間内において、操作データ107に基づいてプレイヤキャラクタ61がボール50をテニスラケットで打つ処理等も行われる。その後、処理はステップS200に移る。
【0071】
ステップS200において、プロセッサ21は、ボール輪郭線処理を行う。
図7は、ボール輪郭線処理のフローチャートの一例である。以下、
図7を参照して説明する。
【0072】
図7のステップS201において、プロセッサ21は、輪郭用オブジェクトデータ105に基づいて、仮想空間内に配置された輪郭用オブジェクト90の透明度を決定する。例えば、プロセッサ21は、地面51からボール50の中心(輪郭用オブジェクト90の中心)までの距離が4.00mの場合には、輪郭用オブジェクト90の透明度を0%に決定する(
図3(N)等参照)。その後、処理はステップS202に移る。
【0073】
ステップS202において、プロセッサ21は、輪郭用オブジェクトデータ105に基づいて、仮想空間内に配置された輪郭用オブジェクト90の直径を決定する。例えば、プロセッサ21は、仮想カメラ(視点)からボール50の中心(輪郭用オブジェクト90の中心)までの距離が29.00mで地面51からボール50の中心までの距離が3.50mの場合には、輪郭用オブジェクト90の直径を95.00mmに決定する(
図3(K)等参照)。その後、処理はステップS203に移る。
【0074】
ステップS203において、プロセッサ21は、仮想空間内において、ステップS201およびS202で決定した透明度および直径で輪郭用オブジェクト90を構成する。その後、処理は
図6のステップS300に移る。
【0075】
図6のステップS300において、プロセッサ21は、仮想カメラにより仮想空間を撮影してゲーム画像を生成する。その際に、プロセッサ21は、
図3の説明の際に述べた描画方法で輪郭用オブジェクト90およびボール50を描画することによって、ゲーム画像においてボール50の輪郭線を描画する(
図4参照)。その後、処理はステップS400に移る。
【0076】
ステップS400において、プロセッサ21は、ステップS300で生成したゲーム画像を表示部5に出力して表示部5にゲーム画面を表示させる表示処理を行う。その後、処理はステップS500に移る。
【0077】
ステップS500において、プロセッサ21は、本ゲームが終了するか否かを判定する。具体的には、プロセッサ21は、本ゲームの終了条件(例えば、試合終了の条件)が満たされたか否かを判定する。この判定がYESの場合、本ゲーム処理は終了し、この判定がNOの場合、処理はステップS100に戻ってステップS100~S400の処理が実行され、本ゲームは継続する。
【0078】
以上に説明したように、本実施形態によれば、仮想空間内において、ボール50の地面51からの高さが所定の高さ(3.00m)を超えると、輪郭用オブジェクト90の透明度を100%から徐々に低下させて輪郭用オブジェクト90を描画する(
図3参照)。これにより、
図2に示すようなゲーム画像において、テニスコート52およびコート外周領域53の外側の領域とボール50とが重ならない場合には、ボール50の視認性は確保されているので、基本的にボール50の輪郭線を描画しない。その一方で、テニスコート52およびコート外周領域53の外側の領域とボール50が重なる場合には、ボール50の視認性は確保されない場合があるので、基本的にボール50の輪郭線を描画して、ボール50の視認性を確保することができる。そして、本実施形態によれば、ボール50の輪郭線を描画するか描画しないかの判定を、仮想空間内でのボール50の高さ等に応じて行うので、簡単な処理で当該判定を行うことができる。
【0079】
また、以上に説明したように、本実施形態によれば、想空間内において、ボール50の地面51からの高さが高くなるに従って、輪郭用オブジェクト90の透明度を徐々に低下させて輪郭用オブジェクト90の色を徐々に濃くして描画する(
図3参照)。これにより、本実施形態によれば、
図2に示すようなゲーム画像において、ボール50が高く上がってボール50の視認性が低下し易くなるに従って、ボール50の輪郭を濃くできるので、自然な態様でボール50の視認性を効果的に確保できる。
【0080】
また、以上に説明したように、本実施形態によれば、仮想空間内において、仮想カメラからボール50までの距離(
図2のZ軸方向の距離)が所定の距離(25.00m:
図2の符号80が示す破線)を超えると、輪郭用オブジェクト90の直径を徐々に大きくして輪郭用オブジェクト90を描画する(
図3参照)。これにより、本実施形態によれば、仮想カメラからボール50までの距離に応じて、ボール50の大きさ(直径70.00mm)に対する輪郭線の太さを変化させることができるので、ボールの視認性を向上させることができる。
【0081】
また、以上に説明したように、本実施形態によれば、仮想空間内において、地面51からボール50までの高さ(
図2のY軸方向の距離)が所定の高さ(3.00m)を超えると、輪郭用オブジェクト90の直径を徐々に大きくして輪郭用オブジェクト90を描画する(
図3参照)。これにより、本実施形態によれば、地面51からボール50までの高さに応じて、ボール50の大きさ(直径70mm)に対する輪郭線の太さを変化させることができるので、ボールの視認性を向上させることができる。
【0082】
[変形例]
なお、上記した本実施形態では、テニスゲームを例に挙げて説明した。しかし、テニスゲームに限らず、例えば、ゴルフゲーム、野球ゲーム等でもよい。
【0083】
また、上記した本実施形態では、仮想空間内の輪郭用オブジェクト90を用いて、ゲーム画像においてボール50の輪郭線を描く例を挙げた。しかし、輪郭用オブジェクト90を用いる(設ける)ことなくゲーム画像にボール50の輪郭線を描いてもよい。例えば、Zバッファ法によってボール50を描画する処理において、ボール50の外周のエッジ部分と当該エッジ部分に隣接する部分(例えば、木70や空背景71の部分)とのZ値が大きく異なる場合に(つまり、Z値の差が所定以上と判定された場合に)、当該エッジ部分の外側の所定数のピクセルを輪郭線として描く(塗る)ことによって、所定数のピクセル幅の輪郭線をゲーム画像に描画してもよい。
【0084】
また、上記した本実施形態において(
図4参照)、ゲーム画面でボール50が奥行方向に移動しても輪郭線の太さ(ゲーム画面における輪郭線の幅の寸法)が減少しない程度に、仮想空間内において輪郭用オブジェクト90の直径が増加するのが望ましい。
【0085】
また、上記した本実施形態では、輪郭用オブジェクト90の透明度がボール50の地面51からの高さに応じて変化し、輪郭用オブジェクト90の直径がボール50の地面51からの高さおよびボール50の仮想カメラからの距離(奥行)に応じて変化する例を挙げた(
図3参照)。しかし、
図8に示すように、輪郭用オブジェクト90の透明度について、ボール50の高さに関わらず常に0%とし(つまり、常に本来の濃さのグレーで表示し)、輪郭用オブジェクト90の直径について、ボール50の仮想カメラからの距離に応じた変化をさせない構成としてもよい。具体的には、
図8に示すように、仮想カメラからボール50までの距離が25.00m以上の場合、輪郭用オブジェクト90の直径は、ボール50の地面51からの高さが3.00m(
図8(A)参照)を超えると70.00mmから徐々に増加し、当該高さが3.25mにおいて80.00mmになる(
図8(B)参照)。また、ボール50の地面51からの高さが3.25mを超えると、輪郭用オブジェクト90の直径は、同様に徐々に増加し、当該高さが3.50mにおいて90.00mmになる(
図8(C)参照)。また、ボール50の地面51からの高さが3.50mを超えると、輪郭用オブジェクト90の直径は、同様に徐々に増加し、当該高さが4.00m以上において100.00mmになる(
図8(D)参照)。なお、
図3の場合と同様に、ボール50の地面51からの高さが3.00m以下の場合、および、仮想カメラからボール50までの距離が25.00m未満の場合は、輪郭用オブジェクト90の直径は、70.00mmに固定される。高さや奥行に応じて変化する輪郭用オブジェクト90の直径や透明度は、予め設定された最大値および最小値の間で補間によって決定される。補間方法は様々な方法が適用可能である。例えば、線形補間であってもよいし、Hermite補間が用いられてもよい。
【0086】
また、上記した本実施形態においては、ゲーム処理にかかる一連の処理が単一のゲーム装置2で実行される場合を説明した。他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。更には、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。また、いわゆるクラウドゲーミングの構成としてもよい。例えば、ゲーム装置2は、ユーザの操作を示す操作データを所定のサーバに送り、当該サーバにおいて各種ゲーム処理が実行され、その実行結果が動画・音声としてゲーム装置2にストリーミング配信されるような構成としてもよい。
【符号の説明】
【0087】
2 ゲーム装置
4 操作部(コントローラ)
5 表示部
21 プロセッサ
22 記憶部(メモリ)
23 無線通信部
24 コントローラ通信部
25 画像音声出力部
50 ボール
51 地面
52 テニスコート
53 コート外周領域
61、62 キャラクタ
70 木
71 空背景
90 輪郭用オブジェクト