JP7482953B2 - 情報処理プログラム、情報処理装置、情報処理方法、および情報処理システム - Google Patents

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

Info

Publication number
JP7482953B2
JP7482953B2 JP2022130264A JP2022130264A JP7482953B2 JP 7482953 B2 JP7482953 B2 JP 7482953B2 JP 2022130264 A JP2022130264 A JP 2022130264A JP 2022130264 A JP2022130264 A JP 2022130264A JP 7482953 B2 JP7482953 B2 JP 7482953B2
Authority
JP
Japan
Prior art keywords
texture
virtual
collision
virtual surface
color
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022130264A
Other languages
English (en)
Other versions
JP2023011546A (ja
Inventor
和英 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2022130264A priority Critical patent/JP7482953B2/ja
Publication of JP2023011546A publication Critical patent/JP2023011546A/ja
Priority to US18/356,574 priority patent/US20240062468A1/en
Application granted granted Critical
Publication of JP7482953B2 publication Critical patent/JP7482953B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/577Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/837Shooting of targets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2012Colour editing, changing, or manipulating; Use of colour codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Human Computer Interaction (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

本発明は、操作キャラクタを用いたゲーム処理を実行する情報処理に関し、より具体的には、ポリゴンメッシュの描画処理に関する。
従来から、ユーザが操作入力手段を操作して仮想空間内のキャラクタを制御して行うゲームが知られている。更に、このようなゲームにおいて、それぞれ異なる色が対応付けられている自キャラクタ及び敵キャラクタが存在しており、ユーザは、3次元仮想空間内で自キャラクタを操作してインクを発射させることで、地面を自キャラクタに対応付けられた色で塗り、敵キャラクタも同様に地面に敵キャラクタに対応付けられた色で塗ることができるゲームがあった(例えば特許文献1)。
特開2018-102931号公報
上記のようなゲームにおいては、各キャラクタに対応するインクの色で塗られた地面の表現を行うために、仮想空間の全体を覆う大きさのテクスチャに対して、描画データに従ってインクの色を書き込んでいき、それを仮想空間に投影することで、仮想空間への描画を行う、という処理を行っていた。
しかしながら、例えば段差がある場所や曲面等に対して、上記手法で投影する場合、インクが当たった箇所と、実際に塗られる箇所とにずれが生じる場合があった。例えば奥行き差や高低差のあるような場所付近にインクが当たった場合に、奥行き差や高低差が反映されず、インクが当たった箇所からすれば本来は塗られるべきではない位置にまでインクが塗られてしまう場合があった。
それ故に、本開示の目的は、仮想空間内の所定の範囲が色更新イベントで更新された状態を表現する場合に、より正確な表現が可能な情報処理プログラム、情報処理装置、情報処理方法、および情報処理システムを提供することである。
上記目的を達成するために、例えば以下のような構成例が挙げられる。
(構成1)
構成1は、操作キャラクタを用いたゲームを実行可能な情報処理装置のコンピュータに実行させる情報処理プログラムであって、コンピュータを、読出手段、仮想面生成手段、第1対応付け手段、第2対応付け手段、色更新イベント発生手段、色情報更新手段、描画手段として機能させる。読出手段は、仮想空間内のポリゴンメッシュと、当該ポリゴンメッシュと第1の対応関係で対応付けられた第1のテクスチャと、当該仮想空間内において接触判定を行うためのコリジョンと、第2テクスチャに関するデータを読み出す。仮想面生成手段は、読出手段によって読み出された仮想空間におけるコリジョンの位置に少なくとも基づいて、当該コリジョンに対応する仮想面を生成する。第1対応付け手段は、生成された仮想面の仮想空間内における位置に少なくとも基づいて、ポリゴンメッシュと当該仮想面とを対応付ける。第2対応付け手段は、生成された仮想面と、読出手段によって読み出された第2テクスチャとを、第2の対応関係で 対応付ける。色更新イベント発生手段は、対応付け手段による対応付けが行われた仮想空間内において、所定範囲を対象とした色更新イベントを発生させる。色情報更新手段は、色更新イベントの対象となる所定範囲がコリジョンと重なる場合、当該コリジョンと仮想面の対応関係と、仮想面と第2のテクスチャの第2の対応関係に基づいて、当該所定範囲が当該コリジョンと重なる位置に対応する座標の第2のテクスチャの色情報を更新する。描画手段は、第1のテクスチャと、第2のテクスチャとを用いて、ポリゴンメッシュを描画する。
上記構成例によれば、コリジョンに基づき仮想面を生成し、更に仮想面をポリゴンメッシュに対応付けている。これにより、仮想面を介してポリゴンメッシュとコリジョンとが対応付けられる。更に、仮想面に対応付けられた第2のテクスチャにおける、コリジョンが発生した位置に対応する位置の色情報を更新している。そして、この第2のテクスチャと、ポリゴンメッシュに対応付けられている第1のテクスチャとを用いてポリゴンメッシュの描画を行っている。このように、仮想面を介して、コリジョンの位置に対応する第2テクスチャの一部の色の更新、および、ポリゴンメッシュの描画を行うことで、例えば、コリジョンへの接触判定があった位置に対して所定の範囲の色を変更(所定の色で塗る等)する場合に、当該接触位置と、色が更新される所定の範囲との位置関係をより正確な関係とすることができる。
(構成2)
構成2は、上記構成1において、仮想面生成手段は、仮想空間のコリジョンの一部に対応する複数の仮想面を生成してもよい。そして、第1対応付け手段は、複数の仮想面のそれぞれにポリゴンメッシュの一部を対応付けてもよい。
上記構成例によれば、仮想面を複数設けることで、より細やかな対応付けが可能となる。これにより、色を変更させる所定の範囲を細分化することができ、コリジョンへの接触判定があった位置により正確に対応した所定の範囲を決定することができる。
(構成3)
構成3は、上記構成2において、第1対応付け手段は、複数の仮想面のそれぞれの大きさに基づいて、ポリゴンメッシュの一部を対応付けてもよい。
上記構成例によれば、仮想面とポリゴンメッシュとを同じスケールで対応付けることができ、より適切な対応関係を構築できる。
(構成4)
構成4は、上記構成2において、第2対応付け手段は、生成された複数の仮想面のそれぞれが、第2テクスチャの異なる部分に対して割り当てられるように対応付けてもよい。
上記構成例によれば、第2テクスチャを1つだけ用意して、これを複数の仮想面で共有するような対応関係を構築することができる。
(構成5)
構成5は、上記構成1または2において、仮想面生成手段は、コリジョンの位置および向きに少なくとも基づいて、当該コリジョンに対応する仮想面を生成してもよい。
上記構成例によれば、コリジョンの位置や向きを考慮して仮想面を生成するため、両者についてより正確な対応付けを構築できる。
(構成6)
構成6は、上記構成1または2において、第1対応付け手段は、仮想空間における仮想面の位置および向きに少なくとも基づいて、上記ポリゴンメッシュと当該仮想面を対応付けてもよい。
上記構成例によれば、仮想面の向きを考慮して対応付けを行う。これにより、ポリゴンメッシュと仮想面の対応付けに際して、より適切な対応付けを行うことができる。
(構成7)
構成は、上記構成1または2において、第1対応付け手段は、上記仮想空間において仮想面が配置された位置および向きとポリゴンメッシュの位置および向きとに基づいて、仮想面とポリゴンメッシュとを対応付けてもよい。
上記構成例によれば、ポリゴンメッシュと仮想面、コリジョンと仮想面のそれぞれの組み合わせについて、その位置関係をより正解に反映した対応付けができる。
(構成8)
構成8は、上記構成1~7のいずれかにおいて、色情報更新手段は、色情報更新イベントの対象となる所定範囲がコリジョンと重なる場合、当該コリジョンと仮想面との対応関係に基づいて、当該仮想面に対応する第1座標系における当該所定範囲と当該コリジョンとが重なる第1座標を含む更新対象領域を決定してもよい。更に、当該仮想面と第2のテクスチャとの第2の対応関係に基づいて、当該第2のテクスチャ上における、当該更新対象領域に対応する座標の色情報を更新してもよい。
(構成9)
構成9は、上記構成8において、第1対応付け手段は、複数生成される仮想面のうち、位置と向きに応じて隣り合うと判定される少なくとも2つ以上の仮想面がある場合は、当該隣り合う複数の仮想面が1つの仮想面として扱われるように、ポリゴンメッシュと当該仮想面を対応付けてもよい。
上記構成例によれば、色更新イベントの対象となる所定範囲が隣接関係にある2つの仮想面の境界で途切れるような表現となることを防ぐことができ、違和感のない表現が可能となる。
(構成10)
構成10は、上記構成9において、色情報更新手段は、第1座標が算出された場合、予め用意された複数パターンのうち所定の条件に基づいて決定された1つのパターンを用いて更新対象領域を決定してもよい。
上記構成例によれば、更新対象領域の大きさや形状の決定について、予め用意されているパターンから選択するだけで済むため、当該更新対象領域の決定に係る処理負荷を軽減することができる。
(構成11)
構成11は、上記構成1~10のいずれかにおいて、第1対応付け手段は、上記仮想面と第2の対応関係に基づいて対応付けられる上記第2のテクスチャと上記ポリゴンメッシュとを第3の対応関係で更に対応付けてもよい。更に、描画手段は、第3の対応関係によって対応付けられた第2のテクスチャを用いて上記ポリゴンメッシュを描画してもよい。
(構成12)
構成12は、上記構成1~11のいずれかにおいて、情報処理プログラムは、ポリゴンメッシュが地形として配置されたゲームステージを構築し、当該ゲームステージ内に配置されたキャラクタオブジェクトに、ユーザ操作に基づいて射撃動作を行わせるゲーム処理手段としてコンピュータを更に機能させてもよい。そして、色更新イベント発生手段は、キャラクタオブジェクトが射撃動作を行った場合に色更新イベントを発生させ、当該射撃動作における着弾位置に基づいて所定範囲を決定してもよい。
上記構成例によれば、例えばゲームステージの地形を所定の色で塗るようなゲームにおいて、着弾位置に正確に対応した範囲の色を更新でき、ユーザに違和感を与えないようにしたゲーム体験を提供できる。
(構成13)
構成13は、上記構成12において、キャラクタオブジェクトはゲームステージ内に複数配置され、各キャラクタオブジェクトには所定の色が対応付けられていてもよい。そして、色情報更新手段は、所定範囲の決定の基となった射撃動作を行ったキャラクタオブジェクトに対応付けられる色を用いて第2のテクスチャの色情報を更新してもよい。
上記構成例によれば、例えばゲームステージにおいて色情報を更新した面積の大きさで勝敗判定を行うような対戦ゲームにおいて、着弾位置に正確に対応した範囲に基づいて判定できるため、勝敗判定の公正さや、勝敗結果についてのユーザの納得感をより高めることができる。
(構成14)
構成14は、上記構成13において、ゲーム処理手段は、キャラクタオブジェクトが位置するポリゴンメッシュ上の部分の色が、当該キャラクタオブジェクトに対応付けられた色で更新された色である場合は、当該キャラクタオブジェクトに有利な効果を発生させてもよい。
上記構成例によれば、自キャラクタに対応する色で更新した方がゲームが有利になるため、色を更新することの動機付けを提供できる。また、色の更新を競い合うというゲーム性を提供し、対戦ゲームの興趣性を向上できる。
本実施形態によれば、コリジョンへの接触判定があった位置により正確に対応した所定範囲の色情報を更新できる。
ゲーム装置2のハードウェア構成を示すブロック図 仮想面の配置の一例を示す図 仮想面の配置の一例を示す図 ゲームステージの構成要素の関係を示す図 本実施形態の処理の概要を説明するための図 本実施形態の処理の概要を説明するための図 本実施形態の処理の概要を説明するための図 本実施形態の処理の概要を説明するための図 本実施形態の処理の概要を説明するための図 本実施形態の処理の概要を説明するための図 仮想面の結合について説明するための図 仮想面の結合について説明するための図 仮想面の結合について説明するための図 仮想面の結合について説明するための図 ゲーム装置2の記憶部22に記憶されるデータの一例 仮想面データ508のデータ構成の一例 ステージ-塗りテクスチャ対応関係データ509のデータ構成の一例 本実施形態にかかるゲーム処理の詳細を示すフローチャート ステージ準備処理の詳細を示すフローチャート 塗り処理の詳細を示すフローチャート 描画処理の詳細を示すフローチャート 従来の処理による描画の一例
以下、一実施形態について説明する。
[情報処理装置のハードウェア構成]
まず、本実施形態にかかる情報処理を実行するための情報処理装置について説明する。当該情報処理装置は、例えばスマートフォン、据置型または携帯型のゲーム装置、タブレット端末、携帯電話、パーソナルコンピュータ、ウェアラブル端末等である。また、本実施形態にかかる情報処理は、上記のようなゲーム装置等と、所定のサーバとから構成されるゲームシステムにも適用可能である。本実施形態では、据置型ゲーム装置(以下、単にゲーム装置と呼ぶ)を情報処理装置の一例として説明する。
図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)等の内部記憶媒体であってもよいし、図示しないスロットに装着される外部記憶媒体等を利用する構成でもよい。
また、ゲーム装置2は、ゲーム装置2が他のゲーム装置2や所定のサーバ装置と無線通信を行うための無線通信部23を備える。当該無線通信としては、例えば、インターネット通信や近距離無線通信が用いられる。
また、ゲーム装置2は、ゲーム装置2がコントローラ4と有線または無線通信を行うためのコントローラ通信部24を備える。
また、ゲーム装置2には、画像音声出力部25を介して表示部5(例えば、テレビ等)が接続される。プロセッサ21は、(例えば、上記の情報処理の実行によって)生成した画像や音声を、画像音声出力部25を介して表示部5に出力する。
次に、コントローラ4について説明する。図示は省略するが、本実施形態のコントローラ4は、縦長の形状のハウジングを有しており、縦長となる向きで把持されることが可能である。当該ハウジングは、縦長となる向きで把持される場合に片手で把持可能な形状および大きさをしている。
コントローラ4は、方向入力デバイスの一例であるアナログスティック42を少なくとも1つ備える。当該アナログスティック42は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック42を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。また、コントローラ4は、各種操作ボタンを含むボタン部43を備える。例えば、コントローラ4は、上記ハウジングの主面上に複数個の操作ボタンを備えていてもよい。
また、コントローラ4は、慣性センサー44を備える。具体的には、コントローラ4は、慣性センサー44として、加速度センサー、角速度センサーを備えている。本実施形態においては、加速度センサーは、所定の3軸方向に沿った加速度の大きさを検出する。また、角速度センサーは、所定の3軸回りの角速度を検出する。
また、コントローラ4は、上記コントローラ通信部24と有線または無線通信を行うための通信部41も備える。上記アナログスティック42に対する方向入力内容、ボタン部43の押下状態を示す情報、および、慣性センサー44による各種の検出結果は、適宜のタイミングで繰り返し通信部41へ出力され、ゲーム装置2に送信される。
[本実施形態で想定するゲームについて]
次に、本実施形態で実行される処理について説明するが、その前提として、本実施形態で想定するゲームの概要を説明する。本実施形態で想定するゲームは、ユーザが上記コントローラを操作して仮想空間内のキャラクタを制御して行う対戦ゲームである。より具体的には、本ゲームでは、自キャラクタ及び敵キャラクタにそれぞれ異なる色が対応付けられている。以下、各キャラクタに対応付けられた色を対応色と呼ぶ。ユーザは、3次元仮想空間内で自キャラクタを操作して、仮想空間内の所定範囲を、自キャラクタの対応色のインクで塗ることができる。具体的には、自分がいる位置の周辺の地面や壁(以下、地面等と呼ぶ)を自キャラクタの対応色のインクで塗ることができる。また、敵キャラクタも同様に、地面等を敵キャラクタの対応色で塗ることができる。そして、本ゲームは、自キャラクタの対応色の描画状態と敵キャラクタの対応色の描画状態とに基づいて対戦判定を行う対戦ゲームである。
地面等の塗り方について補足すると、ユーザは自キャラクタを操作することで描画イベントを発生させて、仮想空間の地面等を塗ることができる。当該描画イベントの種類としては、「インク銃によるインク弾の発射」がある。当該インク弾の発射によれば、自キャラクタの位置を起点としてそこから自キャラクタが向いている方向にインク弾を発射したときのインク弾の着弾位置を含む所定範囲にインクが塗られる。この他、描画イベントの種類としては「ローラによる塗布」、「敵キャラクタへの攻撃」等もあるが、本例では、インク弾の発射を描画イベントの例として説明する。
なお、各キャラクタは、自キャラクタの対応色のインクで塗られた領域内では、有利な効果が得られる。例えば、自キャラクタの対応色のインクで塗られた地面では、仮想空間内を高速に移動することができる。
次に、本実施形態における処理の概要を説明する。本実施形態で説明する処理は、上記インク弾の発射で地面等を「塗る」処理およびその描画処理に関するものである。
まず、上記インクで塗られる対象となるゲームステージ(以下、単にステージと呼ぶ)を構成する要素について説明する。本実施形態では、仮想空間内に構築されるステージは、大きく分けて、ステージポリゴンメッシュ(以下、ステージメッシュと呼ぶ)、コリジョン、仮想面で構成されている。ステージメッシュは、ステージの地形(地面、壁、天井)を構成するポリゴンメッシュである。ステージメッシュは、最終的には後述のテクスチャが貼られて描画される。コリジョンは、上記キャラクタやインク弾等の接触判定に用いられる要素である。本実施形態では、コリジョンの形状は、ステージメッシュと同じ形状(コリジョンメッシュ)であるとする。但し、他の実施形態では、コリジョンの形状はステージメッシュと同じでなくてもよく、例えば球体や箱形のコリジョンであってもよい。また、当該コリジョンは、配置はされるが描画はされない要素である。仮想面は、コリジョンに基づいて生成され、仮想空間内の所定の位置に配置される矩形の面である。当該仮想面は、複数生成・配置され得るものである。また、生成される当該仮想面の大きさについて、本実施形態では、1つのグループとされるコリジョンのメッシュの大きさに基づいて各仮想面の大きさが決定される。但し、他の実施形態では、一律に、予め定められた所定の大きさとなるように生成・配置されても良い。また、当該仮想面も、描画はされない要素である。
また、ステージメッシュの描画に用いられるテクスチャとして、ステージテクスチャと塗りテクスチャいう要素がある。ステージテクスチャは、ステージの地形の表面を描画するためのテクスチャである。また、ステージメッシュの各頂点とステージテクスチャのUV座標との対応関係については予め定義されている。
塗りテクスチャは、上記インク弾によってインクで塗られた領域を表現するためのテクスチャである。塗りテクスチャは、初期値としては透明なテクスチャである。また、本実施形態では、塗りテクスチャは上記仮想面よりは大きなサイズの1枚の(矩形の)テクスチャであり、具体的には、ステージ全体を覆うことが可能な大きさのテクスチャであるとする。そして、後述の処理で、当該塗りテクスチャの一部の色情報が上記対応色で更新される。最終的には、上記ステージテクスチャよりも塗りテクスチャが優先されるようにしてステージメッシュが描画されることで、地面等がインクで塗られた様子が表現される。なお、当該色情報の更新は、例えば、RGBAの各成分に、上記自キャラクタ、敵キャラクタに対応した色の濃さ(塗りの濃さ)を示す情報を持たせ、当該情報を更新するようにしてもよい。また、当該塗りテクスチャは複数の領域に分割され、各仮想面には、当該複数の領域のいずれかが対応付けられる。
また、本実施形態では、複数の仮想面が仮想空間内に配置されており、その仮想面の1枚1枚に塗りテクスチャの一部分が対応づけられる。すなわち、1枚の大きな塗りテクスチャを複数の仮想面で分け合って利用するような関係となっている。当該対応付けは、具体的には、塗りテクスチャのUV座標と仮想面の座標系における座標との対応関係を定義することによって行われる。例えば仮想面の4隅の座標と塗りテクスチャの一部分の4隅の座標とが対応づけられる。また、本実施形態では、当該仮想面と塗りテクスチャの一部分との対応付けにおいて、各仮想面に対応付けられた塗りテクスチャの部分が重複しないように対応付けられるものとする。
[配置位置関係について]
本実施形態では、仮想空間内に上記のようなステージメッシュ、コリジョン、仮想面が配置されることでステージが構成される。これらの配置位置の関係について、本実施形態では、それぞれがほぼ重なる、あるいは密接するようにして配置されるものとする。換言すれば、対応付けたい要素(の部分)同士が近接する位置関係となるように配置されるものとする。ここで、上記ステージメッシュおよびコリジョンは、同じ形状であるため、全く同じ位置に重ねて配置することはできる。一方、仮想面は、上記のように矩形の面であるため、形状的にはステージメッシュやコリジョンと一致しないこともある。そのため、仮想面は、ステージメッシュの形状になるべく沿うようにして配置されてもよい。例えば、直方体形状のステージメッシュ/コリジョンの場合は、図2に示すように、各面に重ねるようにして仮想面が配置されてもよい。また、円柱形状のステージメッシュ/コリジョンの場合は、図3に示すように、その周囲を囲むようにして仮想面が配置されてもよい。なお、本実施形態では、複数の仮想面の全てを合わせることで、ステージメッシュ/コリジョン(の表面)の全域がカバーされるように配置されるものとする。すなわち、いずれの仮想面とも対応付けられていないステージメッシュ/コリジョン(の表面)は存在しないものとする。
[本実施形態における処理の概要について]
次に、本実施形態に係る処理の概要を説明する。本ゲームにおいて、プレイするステージが選択され、そのステージでのプレイの開始指示が行われると、まず、そのステージの構成を定義したデータ(後述するステージデータ502)が読みこまれる。そして、当該データで定義されている内容に基づき、仮想空間内に上記ステージメッシュ、コリジョンがそれぞれ配置される。そして、コリジョンの位置および/または向きに基づいて、仮想面を生成する処理が行われる。そして、生成された仮想面の位置および/または向きに基づいて、仮想面とステージメッシュとが対応付けられる処理が行われる。そして、生成された仮想面に対し、塗りテクスチャのうち一部分が対応付けられる。本実施形態では、生成された仮想面と、これに最も近い位置にあるステージメッシュ(の一部分)とが対応付けられる。この際、仮想面の向き(法線方向)と、ステージメッシュの表面の向き(法線方向)も考慮されて対応づけられる。具体的には、法線方向が同じあるいは近似するもの(ほぼ同じ向きであるもの)同士が対応付けられる。
当該対応付けの結果、上記ステージの構成要素について、図4に示すような対応関係が構築される。図4において、仮想面は、上記のように所定の塗りテクスチャと予め対応付けられている。そして、このような仮想面が、上記のように位置および向きに基づいてステージメッシュおよびコリジョンとそれぞれ対応づけられていることを示している。すなわち、ステージメッシュとコリジョンとが仮想面を介する形で対応付けられている。また、ステージメッシュには、ステージテクスチャが予め対応付けられており、上記のようにステージメッシュの各頂点とステージテクスチャのUV座標との対応関係が定義されている。このような対応付けを行うことで、仮想面を介して、コリジョンとステージメッシュとが対応付けられることになる。また、ステージメッシュについては、仮想面を介することで、ステージメッシュの各頂点と塗りテクスチャのUV座標との対応関係も定義されることになる。
上記対応付けの結果、例えば、ステージメッシュ/コリジョンの一部分について、図5に示すような、コリジョン(ステージメッシュ)と仮想面との対応付けが行われた場合を想定する。なお、図5では、関係性をわかりやすくするために仮想面とコリジョンとが離れている図となっているが、実際は、上記のように、仮想面とコリジョン(ステージメッシュ)とはほぼ重なるか、密接するようにして配置されていてもよい。以下、このような対応付けがなされている場合を例として、図6~図10を用いて、本実施形態の処理の概要を説明する。図6~図10は、本実施形態に係る処理の概要を示す模式図である。
まず、インク弾の発射(描画イベント)が行われた結果、コリジョンとインク弾が衝突(以下、着弾という)したとする。図6にコリジョン上の着弾位置の一例を示す。この場合、このような着弾の発生が検出され、コリジョンのローカル座標系(3次元座標系)における着弾座標が算出される。
次に、図7に示すように、上記着弾座標(3次元座標)が、コリジョンに対応付けられている仮想面の座標系(2次元座標系)における座標に変換される(座標変換手法はどのような手法でもよい)。以下、当該変換した仮想面上における座標のことを「変換後座標」と呼ぶ。
次に、図8で示すように、仮想面上において、インクを塗る領域(の形状)が決定される。本実施形態では、いくつかの異なる形状の領域が「塗りパターン」として予め定義されており、この中からランダムで1つの塗りパターンが選択される。そして、当該選択された塗りパターンを、変換後座標を含む位置(典型的には変換後座標が中心に来るような位置)に配置することで、仮想面上の領域を算出する。以下、当該領域のことを更新対象領域と呼ぶ。
次に、仮想面と対応づけられている塗りテクスチャのUV座標系における、上記更新対象領域に対応する領域(以下、UV領域と呼ぶ)が、塗り対象部分として特定される。すなわち、更新対象領域の座標がUV座標に変換される。そして、当該塗り対象部分の色情報が、インク弾を発射したキャラクタに対応する対応色に更新される。これにより、透明な塗りテクスチャ上の一部(塗り対象部分)が上記対応色になったテクスチャが出来上がることになる。
次に、図9に示すように、塗りテクスチャおよびステージテクスチャを用いて、上記仮想面に対応づけられたステージメッシュを描画する処理が行われる。本例では、まずステージテクスチャをステージメッシュに貼り付け、その上に塗りテクスチャを貼り付けるような描画処理(2枚のテクスチャのブレンド)が行われる。その結果、図10に示すように、ステージメッシュの一部が対応色で塗られたような表現ができる。
[仮想面の結合について]
ここで、本実施形態では、更に以下のような処理も行う。例えば、図11に示すように、2枚の仮想面が隣り合うように配置されている場合を想定する。そして、仮想面Aの右端に近い位置にインク弾が着弾した場合を想定する。この場合、仮想面Aだけを基にして、上述したような処理で塗り対象領域を決定し、色情報を更新すると、最終的に図12のような、仮想面AとBの境界で塗りパターンの一部が途切れたような表現になることが考えられる。そして、このような表現は、ユーザから見ると不自然な表現に捉えられることもあり得る。そこで、本実施形態では、上記のような対応付けの処理に際して、隣り合うように配置されている仮想面については結合し、図13のように、1枚の仮想面としてまとめて扱われるように対応付けが行われる。これに併せて、各仮想面に対応付けられた塗りテクスチャの領域を分け合うような対応付けが行われる。そして、当該結合した仮想面を用いて上述のような処理を行うことで、図14に示すような違和感のない塗りの表現を可能としている。なお、このような仮想面の結合は、例えば、円柱型の地形や、キューブ型の地形、いわゆる踊り場のような地形に対して配置される仮想面について行われ得る。特に、円柱型の地形については、例えば塗りテクスチャを円柱に巻き付けるようにして貼り付けるという処理も考えられるが、この場合、繋ぎ目となる部分の表現が適切な表現にならない可能性もある(絵的に繋がっていない表現になる等)。この点、本実施形態のように仮想面を用い、更に隣接する仮想面は結合して扱うような処理を行うことで、円柱に対して塗りの表現を行う際も、違和感を与えない表現が可能となる。
[本実施形態のゲーム処理の詳細]
次に、図15~図21を参照して、本実施形態における処理についてより詳細に説明する。
[使用データについて]
まず、本実施形態で用いられる各種データに関して説明する。図15は、ゲーム装置2の記憶部22に記憶される各種データの一例を示すメモリマップである。ゲーム装置2の記憶部22には、ゲームプログラム501、ステージデータ502、仮想面データ508、ステージ-塗りテクスチャ対応関係データ509、キャラクタデータ510、塗りパターンデータ511、操作データ512等が記憶される。
ゲームプログラム501は、本実施形態に係るゲーム処理を実行するためのプログラムである。具体的には、後述する図20のフローチャートで示す処理を実行するためのプログラムである。
ステージデータ502は、上記ステージの構成を定義したデータである。なお、図15ではステージデータ502は1つだけの場合を示しているが、複数のステージがあれば、それぞれに対応するステージデータ502が記憶されてもよい。ステージデータ502には、ステージメッシュデータ503、コリジョンデータ504、仮想面データ505、ステージテクスチャデータ506、塗りテクスチャデータ507が少なくとも含まれている。
ステージメッシュデータ503は、上記ステージメッシュに関するデータである。ステージメッシュデータ503には、ステージを構成するポリゴンメッシュの情報や、仮想空間内における配置位置や向きを定義した情報等が含まれる。また、ポリゴンメッシュの情報には、ステージの形状を表す頂点情報や、各頂点に割り当てるステージテクスチャのUV座標を指定する情報が含まれている。
コリジョンデータ504は、上記のようなコリジョンの形状と、上記仮想空間内における配置位置や向きを定義したデータである。
ステージテクスチャデータ506は、上記のようなステージメッシュの表面に貼り付けるテクスチャのデータである(例えば、アルベドマップ等である)。
塗りテクスチャデータ507は、上記のような塗りテクスチャのデータである。本実施形態では、初期値として透明なテクスチャが設定されている。
次に、仮想面データ508は、上述した仮想面について定義したデータである。図16は、当該仮想面データ508のデータ構成の一例である。仮想面データ508は、図16に示すように、仮想面ID521、仮想面位置情報522、仮想面向き情報523、対応コリジョン領域情報524、対応ステージ領域情報525、対応塗りテクスチャ領域情報526、結合関係情報527の項目を少なくとも含むレコードの集合で構成されるデータベースである。仮想面ID521は、複数の仮想面のそれぞれを識別するためのIDである。仮想面位置情報522は、仮想空間内においてその仮想面が配置される位置を示す情報であり、仮想面向き情報523は、配置される際の仮想面の向きを示す情報である。
対応コリジョン領域情報524は、その仮想面に対応付けられたコリジョン上の領域(部分)を示す情報である。例えば、当該仮想面の4隅の座標に対応するコリジョン上の領域の座標が対応コリジョン領域情報524として設定される。対応ステージ領域情報525は、その仮想面に対応付けられたステージメッシュ上の領域(部分)を示す情報である。例えば、上記コリジョンの場合と同様に、その仮想面の4隅の座標に対応するステージメッシュの領域の座標が対応ステージ領域情報525として設定される。対応塗りテクスチャ領域情報526は、その仮想面に対応付けられた塗りテクスチャ上の領域を特定するための情報である。例えば、当該領域の4隅のUV座標が対応塗りテクスチャ領域情報526として設定され得る。結合関係情報527は、上述したように、複数の仮想面を結合して1つの仮想面として扱う場合における結合先の仮想面を示す情報である。
図15に戻り、次に、ステージ-塗りテクスチャ対応関係データ509は、上記ステージメッシュの頂点情報と塗りテクスチャのUV座標との対応関係を定義したデータである。上記ステージメッシュと仮想面との対応関係に基づき、当該ステージ-塗りテクスチャ対応関係データ509は生成される。図17に、ステージ-塗りテクスチャ対応関係データ509のデータ構成の一例を示す。ステージ-塗りテクスチャ対応関係データ509は、頂点情報551、UV座標情報553を少なくとも含むレコードの集合で構成されるデータベースである。頂点情報551は、ステージメッシュの各頂点の座標である。UV座標情報553は、上記塗りテクスチャにおいて参照するUV座標を指定する情報である。当該ステージ-塗りテクスチャ対応関係データ509によって、ステージメッシュの描画処理の際に、直接的に塗りテクスチャのUV座標を参照することが可能となる。
図15に戻り、次に、キャラクタデータ510は、自キャラクタや敵キャラクタに関するデータである。キャラクタデータ510には、各キャラクタの外観を示す情報(3Dモデル情報等)や、各キャラクタの動作を制御するための情報(位置、向き、移動速度、ステータス、アニメーションデータ等)が含まれている、
塗りパターンデータ511は、上述した更新対象領域の形状を塗りパターンとして定義したデータである。上記のように、本実施形態絵では、複数の塗りパターンが定義されている。
操作データ512は、プレイヤがコントローラ4に対して行った操作内容を示すデータである。所定の時間間隔でコントローラ4からプロセッサ21に送信されるデータであり、各種ボタンの押下状態を示す情報やアナログスティックに対する入力内容を示す情報等が含まれている。
その他、図示は省略するが、ゲーム処理に必要な各種データも記憶部22に適宜記憶される。
次に、本実施形態におけるゲーム処理の詳細を説明する。なお、ここでは主に、上記インク弾の射撃~塗りの描画に関する処理について説明し、その他の各種ゲーム処理については、詳細な説明は省略する。また、本実施形態では、1以上のプロセッサが1以上のメモリに記憶された上記プログラムを読み込んで実行することにより、以下に示すフローチャートが実現される。なお、当該フローチャートは、処理過程の単なる一例にすぎない。そのため、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判定ステップで利用される閾値も、単なる一例であり、必要に応じて他の値を採用してもよい。
[プロセッサ21が実行する処理の詳細]
図18は、本実施形態に係るゲーム処理を示すフローチャートである。当該処理は、例えばユーザがステージのプレイ開始を指示する所定操作を行ったことに応じて開始される。
[ステージの準備処理]
図18において、まず、ステップS1で、プロセッサ21は、ステージ準備処理を実行する。図19は、上記ステップS1にかかるステージ準備処理の詳細を示すフローチャートである。まず、ステップS11で、プロセッサ21は、プレイ対象としてユーザに選択されたステージに対応するステージデータ502を、例えばゲームカートリッジ等から記憶部22に読み込む。次に、ステップS12で、プロセッサ21は、読み込んだステージデータ502に基づき、上記ステージメッシュおよびコリジョンを仮想空間内に配置して、プレイの対象となるステージを構築する。
次に、ステップS13で、プロセッサ21は、上記コリジョンの位置および向きに基づき、上記仮想面データ508を生成する。すなわち、仮想面を生成して仮想空間内に配置する処理が行われる。具体的には、プロセッサ21は、ステージに配置されるコリジョンを、複数の領域に分割し、分割されたコリジョンのそれぞれに対して仮想面を生成する。コリジョンを複数の領域に分割する手法の一例として、本実施形態では、上記コリジョンを構成する複数のメッシュのうち、所定の関係にあるものどうしを集めて1つのグループとし、1つのグループとされた複数のメッシュに対応する領域に対し、対応する仮想面を1つ生成する。例えば、コリジョンを構成する複数の三角形メッシュのうち、少なくとも一辺を共有し、かつ、それぞれの三角形メッシュに対応付けられる法線の向きが同じ又は近いものを、所定の関係にあるものとして1つのグループとして良い。そして、1つのグループとされた三角形メッシュに対応する領域の位置および向きに基づき、各領域と重なるか、あるいは近接するような位置に、仮想面を生成して配置する。これに伴い、上記仮想面データ508の仮想面ID521、仮想面位置情報522、仮想面向き情報523、対応コリジョン領域情報524が設定されたレコードが生成される。なお、本実施形態では、コリジョンの位置および向きの双方に基づく例を挙げるが、他の実施形態では、いずれか一方のみに基づいて仮想面を生成してもよい。
次に、ステップS14で、プロセッサ21は、仮想面とステージメッシュとの対応付けを行う。具体的には、プロセッサ21は、上記仮想面データ508を参照し、各仮想面について、最も近い位置にあるステージメッシュの領域(一部分)を抽出する。更に、プロセッサ21は、当該抽出結果から、向きが実質的に同じ向きであるステージメッシュの領域を選択する。例えば、各仮想面の4隅の座標を基準として、最寄りとなるステージメッシュ上の座標を判定し、当該判定された4つの座標で囲まれる領域を抽出してもよい。また、抽出した部分が複数ある場合は、仮想面と向きが同じとなる領域を選択してもよい。そして、プロセッサ21は、当該選択したステージメッシュの領域と仮想面とが対応付けられるように、上記仮想面データ508の対応ステージ領域情報525を設定する。
次に、ステップS15で、プロセッサ21は、各仮想面に上記塗りテクスチャの一部分を割り当てる。割り当て手法はどのような手法でも良いが、例えば、上記仮想面ID521の若い番号順に、塗りテクスチャの左上から右下に向けて、例えばモニタを走査するような順番で、塗りテクスチャ上の一部分を割り当てていくようにしても良い。また、本実施形態では、塗りテクスチャ上のある部分に対して重複して仮想面が割り当てられることはないものとする。そして、プロセッサ21は、当該割り当てた対応関係を示す情報、具体的には、割り当てた領域を示すUV座標を対応塗りテクスチャ領域情報526に設定する。
次に、ステップS16で、プロセッサ21は、仮想面の結合関係を設定する。具体的には、プロセッサ21は、仮想面の隣接関係を判定し、隣り合う位置関係にある仮想面については1つの仮想面として扱われるように、結合関係情報527を設定する。
次に、ステップS17で、プロセッサ21は、上記ステージ-塗りテクスチャ対応関係データ509を生成することで、ステージメッシュと塗りテクスチャとの対応付けを行う。具体的には、プロセッサ21は、上記仮想面データxxに基づいて、仮想面を介して対応付けられているステージメッシュの領域と塗りテクスチャの領域とを特定する。そして、プロセッサ21は、当該ステージメッシュにおける頂点と塗りテクスチャのUV座標との対応関係を所定の座標変換処理等によって算出し、その算出結果に基づいて上記ステージ-塗りテクスチャ対応関係データ509を生成する。この際、例えば、上記仮想面の4隅の座標に対応するステージメッシュの頂点を塗りテクスチャの4隅の座標と対応付け、この4つの頂点についての対応関係のみを含む内容をステージ-塗りテクスチャ対応関係データ509としてもよい。そして、これら4つの頂点間に対応するUV座標については所定の数式で補間するようにして算出してもよい。仮想面に対応するステージメッシュの部分が頂点情報の多い部分である場合でも、このように4つの頂点についての対応関係だけできれば後は補間できるため、ステージ-塗りテクスチャ対応関係データ509の作成に係る処理負荷の軽減が期待できる。
次に、ステップS18で、プロセッサ21は、自キャラクタ、敵キャラクタを仮想空間内の所定の位置に配置する。また、その他、プロセッサ21は、所定のオブジェクト(アイテム等)を仮想空間内に適宜配置する。
次に、ステップS19で、プロセッサ21は、上記のようにして構築された仮想空間を仮想カメラで撮像し、ゲーム画像として描画する。なお、上記のように塗りテクスチャは初期状態では透明なテクスチャであるため、この時点では、ステージメッシュについては、実質的にステージテクスチャのみを用いた描画が行われることになる。その後、プロセッサ21は、ステージ準備処理を終了する。
図18に戻り、次に、ステップS2で、プロセッサ21は、操作データ512を取得する。次に、ステップS3で、プロセッサ21は、所定のキャラクタが発射したインク弾がコリジョンに衝突したか否かを判定する、つまり、プロセッサ21は、着弾の発生を検出する処理を行う。当該判定の結果、着弾が発生していない場合は(ステップS3でNO)、後述のステップS5に処理が進められる。
[塗りの処理]
一方、着弾が発生した場合は(ステップS3でYES)、ステップS4で、プロセッサ21は、塗り処理を実行する。図20は、当該塗り処理の詳細を示すフローチャートである。図20において、まず、ステップS21で、プロセッサ21は、コリジョンのローカル座標系における着弾座標を特定する。
次に、ステップS22で、プロセッサ21は、コリジョンのローカル座標系における着弾座標を、当該コリジョン(の一部分)に対応する仮想面のローカル座標系における上記変換後座標に変換する。
次に、ステップS23で、プロセッサ21は、上記変換後座標に基づき、仮想面上における上記更新対象領域を決定する。具体的には、プロセッサ21は、まず、上記塗りパターンデータ511を参照し、塗りパターンをランダムで1つ選択する。次に、当該選択された塗りパターンの中心に上記変換後座標が来るように仮想面上に配置した場合の塗りパターンの位置を算出し、これに基づいて上記更新対象領域を決定する。
なお、本実施形態では、塗りパターンについてはランダムで選択される例を挙げるが、他の実施形態では、塗りパターンの選択条件として他の条件を用いてもよい。例えば、インク弾の入射角を考慮して塗りパターンを選択してもよい。またその他、インク銃の種類が複数あるような場合、使用したインク銃の種類に応じた塗りパターンを選択するようにしてもよい。
次に、ステップS24で、プロセッサ21は、仮想面上の更新対象領域に対応する塗りテクスチャ上のUV領域を、塗り対象部分として特定する。
次に、ステップS25で、プロセッサ21は、塗りテクスチャにおける上記塗り対象部分のピクセルに係る色情報を、今回着弾したインク弾を発射したキャラクタの対応色の色情報で更新する。
その後、プロセッサ21は、塗り処理を終了する。
[その他の各種処理]
図18に戻り、次に、ステップS5で、プロセッサ21は、操作データ512等に基づき、その他のゲーム処理を実行する。例えば、プロセッサ21は、操作データ512に基づいて、自キャラクタの動作制御(移動やインク弾の射撃動作等)を行う。また、プロセッサ21は、敵キャラクタの動作制御や、発射されたインク弾の移動制御等の処理も適宜実行する。
[描画処理]
次に、ステップS6で、プロセッサ21は、描画処理を実行する。図21は、当該描画処理の詳細を示すフローチャートである。図21において、まず、ステップS31で、プロセッサ81は、ステージメッシュを構成する全てのポリゴンについて描画したか否かを判定する。まだ全て描画していない場合は(ステップS31でNO)、ステップS32で、プロセッサ81は、まだ描画していないポリゴンから、次に描画対象とする描画対象ポリゴンを選択する。
次に、ステップS33で、プロセッサ21は、現在の描画対象ポリゴンについて、そのポリゴンに対応する画素(ピクセル)の全てを描画したか否かを判定する。当該判定の結果、描画対象ポリゴンに係る全ての画素を描画していれば(ステップS33でYES)、上記ステップS31に戻り、処理が繰り返される。一方、全ての画素をまだ描画していない場合は(ステップS33でNO)、ステップS34で、プロセッサ21は、未描画の画素から、次の描画対象とする描画対象画素を選択する。
次に、ステップS35で、プロセッサ21は、ステージメッシュに関し、描画対象画素に対応するステージテクスチャ内のUV座標の色情報を取得する。具体的には、プロセッサ21は、まず、ステージメッシュの頂点情報に対応するステージテクスチャのUV座標を特定する。そして、プロセッサ21は、当該UV座標にかかる色情報を取得する。
次に、ステップS36で、プロセッサ21は、ステージメッシュに関し、描画対象画素に対応する塗りテクスチャ内のUV座標の色情報を取得する。具体的には、プロセッサ21は、上記ステージ-塗りテクスチャ対応関係データ509を参照して、ステージメッシュの各頂点に対応する塗りテクスチャのUV座標を特定する。そして、プロセッサ21は、特定したUV座標の色情報を取得する。
次に、ステップS37で、プロセッサ21は、上記ステージテクスチャおよび塗りテクスチャのそれぞれから取得したUV座標の色をブレンドすることで、描画対象画素の描画色を決定する。この際、ステージテクスチャの色よりも塗りテクスチャの色のほうが優先して描画されるようにブレンドが行われる。いわば、ステージテクスチャに塗りテクスチャをかぶせるようにして描画色が決定される。本実施形態では、ブレンド率でいうと、ステージテクスチャの色が0%の割合で、塗りテクスチャの色が100%の割合で描画されるようなブレンドが行われるものとする。この後、各種のライティング処理等が行われて、ステージメッシュに係るピクセルの最終的な描画色が決定される。そして、プロセッサ21は、当該描画色を用いて描画対象画素を描画する。その後、上記ステップS33に戻り、処理が繰り返される。
なお、ステージテクスチャに塗りテクスチャを重ねるようにして描画色を決める処理に関しては、上記に限らず、例えば、アルファテストやステンシルテスト等の技法を適用して、描画するピクセルを決定するような処理を行ってもよい(塗りテクスチャの色情報が更新された部分だけブレンドする、あるいは、色情報が更新された部分に対応するステージテクスチャの部分を描画しない、等)。
一方、上記ステップS31の判定の結果、ステージメッシュを構成する全てのポリゴンについて描画が終わっていれば(ステップS31でYES)、ステップS38で、プロセッサ21は、キャラクタ等の各種オブジェクトを描画する。
次に、ステップS39で、プロセッサ21は、上記のような描画によって生成された仮想空間の画像に、必要に応じてUI部分の画像等を合成して最終的なゲーム画像を生成し、映像信号として出力する。その後、プロセッサ21は、描画処理を終了する。
[ゲーム終了判定]
図20に戻り、次に、ステップS7で、プロセッサ21は、現在プレイ中のステージのプレイを終了する条件が満たされたか否かを判定する(例えば試合時間が終了したか否か等)。満たされていない場合は(ステップS7でNO)、上記ステップS2に戻り、処理が繰り返される。満たされた場合は(ステップS7でYES)、プロセッサ21は、当該ゲーム処理を終了する。
以上で、本実施形態のゲーム処理の詳細説明を終了する。
上記のように、本実施形態では、ステージメッシュ/コリジョンをある程度の範囲で小分けして、それぞれ仮想面を介して対応づけている。更に、3次元座標系でコリジョン(着弾位置)を判定し、対応する仮想面の2次元座標系で色情報を更新する範囲(更新対象領域、塗り対象部分)を決定している。そして、色情報を更新した塗りテクスチャをステージメッシュに貼り付けるようにして描画している。これにより、コリジョン発生位置の周辺の所定範囲を色だけ更新する表現を行う際に、コリジョン発生位置がより正確に反映されたステージメッシュ上の位置の色を更新することができる。
ここで、例えば、上記仮想面を使わない手法として、(従来の手法である)仮想空間の全体を覆う大きさのテクスチャに対して、インクの色を書き込んでいき、それを仮想空間に投影することで仮想空間への描画を行う、という手法も考えられる。しかし、この手法で投影する場合、例えば段差がある場所や曲面等に対して、インクが当たった箇所と、実際に塗られる箇所とにずれが生じる場合があった。例えば、段差の近傍において、当該段差の下側の地面に自キャラクタがいる状態で当該地面に向けてインクを発射した場合、インクの接触は段差の下側の地面で発生するため、本来は、段差の下側の地面だけ塗るべきである。しかし、従来の手法のような投影による描画手法だと、段差の上側にある地面(の一部)まで塗られてしまうこともあった(例えば図22参照)。すなわち、段差(奥行きの差や高低差等)を一部貫通して塗りが反映されることがあった。その結果、塗られた地面の表現について、ユーザに違和感を与える虞があった。また、この点に対処すべく、描画処理において高さや奥行きの判定も行おうとすると、処理や制御が複雑になってしまい、処理負荷が高まるという懸念もあった。この点、上記実施形態のように仮想面を介してステージメッシュおよびコリジョンを対応付けるようにすることで、処理負荷を高めることなく、コリジョン発生位置がより正確に反映されたステージメッシュ上の位置の色を更新することができる。
また、仮想面を使わない別の手法として、上記コリジョンの頂点情報に塗りテクスチャのUV座標を持たせるという手法も考えられる。しかし、これだけでは、着弾位置に対して、(上記塗りテクスチャにおいて)どこをどれだけ塗ってよいのかが判定できない。そのため、本実施形態では、上記のように仮想面を用いている。すなわち、着弾座標を仮想面のローカル座標系に一旦変換して、当該仮想面上でインクを塗るべき範囲や向きを計算し、その後、塗りテクスチャを参照して色情報を更新する、という処理を行っている。これにより、インクが塗られる範囲を、インク弾の着弾位置により正確に対応した範囲とすることができ、違和感のない塗りの表現ができる。
また、本実施形態によれば、開発コストの削減も期待できる。例えば、ゲームの開発段階において、上記ステージを制作する際に、ステージメッシュとコリジョンとの対応関係や、ステージメッシュにおける各ポリゴンの表面と塗りテクスチャとの対応関係を直接的に設定することを考えると、ステージ作成にかかる工数が増大することが考えられる。例えば、頂点情報に塗りテクスチャのUV座標を持たせる場合、ステージメッシュの頂点数が多いほど、ステージ作成にかかる工数が増大することが考えられる。また、例えば、一旦ステージを作成した後に、ステージの一部の手直し等が発生した場合も、上記の対応関係を設定し直す必要が発生して工数が増大することも考えられる。この点、本実施形態であれば、上記頂点数等を意識することなく、コリジョンを配置するだけで、配置されたコリジョンに基づいて自動的に仮想面を生成し、この仮想面を用いてステージメッシュとコリジョン、更には、ステージメッシュと塗りテクスチャとを対応付けることができる。これにより、上記のような対応関係の設定にかかる工数の削減が期待できる。
[変形例]
なお、上記実施形態では、地面や壁等の地形をインクで塗るという例を説明したが、他の実施形態では、上記のような塗りを行う対象は地形に限らず、仮想空間内の所定範囲であればどのような範囲を対象としてもよい。例えば移動する所定のオブジェクト(の表面)を対象としてもよい。
また、上記実施形態では、各キャラクタの対応色のインクで地面等を塗るというゲームの例を示した。他の実施形態では、例えば、最初から汚れている地面等があり、上記インクの代わりに洗浄弾を発射して汚れを落としていく、というようなゲームにも上記の処理は適用可能である。すなわち、上述の「塗り」における色情報更新に係る処理を、汚れた地面等を「洗浄」することに適用してもよい。
また、上記仮想面の配置については、仮想空間を例えば直方体で格子状に区切ったものを想定した場合の、各直方体の各面を上記仮想面としてもよい。この場合は、仮想空間の大きさが複数ステージ間で共通していれば、上記仮想面の配置位置は複数のステージ間で共通化することもできるため、ステージ毎に仮想面の配置位置を定義した上記仮想面データ505は省略することも可能である。
また、上述した隣接する仮想面の結合に関して、上記のようにステージ準備処理において隣接判定および結合の設定を行う他、例えば、着弾が発生した際に、隣接関係を判定するようにしてもよい。一例を挙げると、まず、着弾位置が仮想面の端の近傍であるか否かを判定する。その結果、端の近傍である場合は、更に、隣り合う仮想面が存在するか否かを判定してもよい。そして、存在する場合に、当該隣り合う仮想面を1枚の仮想面として、上記の塗り処理等を行うようにしてもよい。
また、上記実施形態では、上記ステージ準備処理において、上記コリジョンに基づき仮想面を生成した後、仮想面とステージメッシュとの対応付けを行う制御例を示した。他の実施形態では、事前に仮想面、コリジョン、ステージメッシュとの対応付けを定義したデータを用意しておき、上記ステージ準備処理では当該データを読み込むようにすることで、上記のような仮想面の生成に係る処理を省略するような制御を行ってもよい。その他、上記以外の手法で、コリジョンとステージメッシュ(と塗りテクスチャ)とを仮想面を介して対応付ける制御を行ってもよい。
また、上記実施形態では、仮想面と塗りテクスチャとの対応付けについて、1枚の塗りテクスチャを複数の仮想面で共有するような対応付けを行う例を挙げたが、この他、仮想面毎に別々の塗りテクスチャを用意して割り当てるような対応付けを行ってもよい。
また、上記実施形態では、情報処理の一例としてゲーム処理を例示したが、この他、仮想空間を用いたシミュレータアプリケーション等にも上記の処理は適用可能である。
また、上記実施形態においては、一連のゲーム処理を単一のゲーム装置2で実行される場合を説明した。他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。更には、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。また、いわゆるクラウドゲーミングの構成としてもよい。例えば、ゲーム装置2は、ユーザの操作を示す操作データを所定のサーバに送り、当該サーバにおいて各種ゲーム処理が実行され、その実行結果が動画・音声としてゲーム装置2にストリーミング配信されるような構成としてもよい。
2 ゲーム装置
4 コントローラ
5 表示部
21 プロセッサ
22 記憶部
23 無線通信部
24 コントローラ通信部
25 画像音声出力部

Claims (17)

  1. 情報処理装置のコンピュータに実行させる情報処理プログラムであって、
    仮想空間内のポリゴンメッシュと、当該ポリゴンメッシュと第1の対応関係で対応付けられた第1のテクスチャと、当該仮想空間内において接触判定を行うためのコリジョンと、第2のテクスチャに関するデータを読み出す読出手段と、
    前記読出手段によって読み出された前記仮想空間における前記コリジョンの位置に少なくとも基づいて、当該コリジョンに対応する仮想面を生成する仮想面生成手段、 生成された前記仮想面の前記仮想空間における位置に少なくとも基づいて、前記ポリゴンメッシュと当該仮想面を対応付ける第1対応付け手段と、
    生成された前記仮想面と、前記読出手段によって読み出された前記第2のテクスチャとを、第2の対応関係で対応付ける第2対応付け手段、
    前記第1対応付け手段および第2対応付け手段による対応付けが行われた前記仮想空間内において、所定範囲を対象とした色更新イベントを発生させる色更新イベント発生手段と、
    前記色更新イベントの対象となる前記所定範囲が前記コリジョンと重なる場合、当該コリジョンと前記仮想面の対応関係と、前記仮想面と前記第2のテクスチャの前記第2の対応関係に基づいて、当該所定範囲が当該コリジョンと重なる位置に対応する座標の前記第2のテクスチャの色情報を更新する色情報更新手段と、
    前記第1のテクスチャと、前記第2のテクスチャとを用いて、前記ポリゴンメッシュを描画する描画手段として前記コンピュータを機能させる、情報処理プログラム。
  2. 前記仮想面生成手段は、前記仮想空間の前記コリジョンの一部に対応する複数の前記仮想面を生成し、
    前記第1対応付け手段は、複数の前記仮想面のそれぞれに前記ポリゴンメッシュの一部を対応付ける、請求項1に記載の情報処理プログラム。
  3. 前記第1対応付け手段は、複数の前記仮想面のそれぞれの大きさに基づいて、前記ポリゴンメッシュの一部を対応付ける、請求項2に記載の情報処理プログラム。
  4. 第2対応付け手段は、生成された複数の前記仮想面のそれぞれが、前記第2のテクスチャの異なる部分に対して割り当てられるように対応付ける、請求項2に記載の情報処理プログラム。
  5. 前記仮想面生成手段は、前記コリジョンの位置および向きに少なくとも基づいて、当該コリジョンに対応する仮想面を生成する、請求項1に記載の情報処理プログラム。
  6. 前記第1対応付け手段は、前記仮想空間における前記仮想面の位置および向きに少なくとも基づいて、前記ポリゴンメッシュと当該仮想面とを対応付ける、請求項1に記載の情報処理プログラム。
  7. 前記第1対応付け手段は、
    前記仮想空間における前記仮想面が配置された位置および向きと前記ポリゴンメッシュの位置および向きとに基づいて当該仮想面と当該ポリゴンメッシュとを対応付ける、請求項1に記載の情報処理プログラム。
  8. 前記色情報更新手段は、
    前記色更新イベントの対象となる前記所定範囲が前記コリジョンと重なる場合、当該コリジョンと前記仮想面との対応関係に基づいて、当該仮想面に対応する第1座標系における当該所定範囲と当該コリジョンとが重なる第1座標を含む更新対象領域を決定し、
    当該仮想面と前記第2のテクスチャとの前記第2の対応関係に基づいて、当該第2のテクスチャ上における、当該更新対象領域に対応する座標の色情報を更新する、請求項1に記載の情報処理プログラム。
  9. 前記第1対応付け手段は、複数生成された前記仮想面のうち、前記位置と向きに応じて隣り合うと判定される少なくとも2つ以上の仮想面がある場合は、当該隣り合う仮想面が1つの仮想面として扱われるように、前記ポリゴンメッシュと当該隣り合う仮想面とを対応付ける、請求項8に記載の情報処理プログラム。
  10. 前記色情報更新手段は、前記第1座標が算出された場合、予め用意された複数パターンのうち所定の条件に基づいて決定された1つのパターンを用いて前記更新対象領域を決定する、請求項9に記載の情報処理プログラム。
  11. 前記第1対応付け手段は、前記仮想面と前記第2の対応関係に基づいて対応付けられる前記第2のテクスチャと、前記ポリゴンメッシュとを第3の対応関係で更に対応付け、
    前記描画手段は、前記第3の対応関係によって対応付けられた前記第2のテクスチャを用いて前記ポリゴンメッシュを描画する、請求項1に記載の情報処理プログラム。
  12. 前記情報処理プログラムは、前記ポリゴンメッシュが地形として配置されたゲームステージを構築し、当該ゲームステージ内に配置されたキャラクタオブジェクトに、ユーザ操作に基づいて射撃動作を行わせるゲーム処理手段として前記コンピュータを更に機能させ、
    前記色更新イベント発生手段は、前記キャラクタオブジェクトが射撃動作を行った場合に前記色更新イベントを発生させ、当該射撃動作における着弾位置に基づいて前記所定範囲を決定する、請求項1に記載の情報処理プログラム。
  13. 前記キャラクタオブジェクトは前記ゲームステージ内に複数配置され、各キャラクタオブジェクトには所定の色が対応付けられており、
    前記色情報更新手段は、前記所定範囲の決定の基となった射撃動作を行ったキャラクタオブジェクトに対応付けられる色を用いて前記第2のテクスチャの色情報を更新する、請求項12に記載の情報処理プログラム。
  14. 前記ゲーム処理手段は、前記キャラクタオブジェクトが位置する前記ポリゴンメッシュ上の部分の色が、当該キャラクタオブジェクトに対応付けられた色で更新された色である場合は、当該キャラクタオブジェクトに有利な効果を発生させる、請求項12に記載の情報処理プログラム。
  15. 仮想空間内のポリゴンメッシュと、当該ポリゴンメッシュと第1の対応関係で対応付けられた第1のテクスチャと、当該仮想空間内において接触判定を行うためのコリジョンと、第2テクスチャに関するデータを読み出す読出手段と、
    前記読出手段によって読み出された前記仮想空間における前記コリジョンの位置に少なくとも基づいて、当該コリジョンに対応する仮想面を生成する仮想面生成手段と、
    生成された前記仮想面の前記仮想空間における位置に少なくとも基づいて、前記ポリゴンメッシュと当該仮想面を対応付ける第1対応付け手段と、
    生成された前記仮想面と、前記読出手段によって読み出された前記第2のテクスチャとを、第2の対応関係で対応付ける第2対応付け手段と、
    前記第1対応付け手段および第2対応付け手段による対応付けが行われた前記仮想空間内において、所定範囲を対象とした色更新イベントを発生させる色更新イベント発生手段と、
    前記色更新イベントの対象となる前記所定範囲が前記コリジョンと重なる場合、当該コリジョンと前記仮想面の対応関係と、前記仮想面と前記第2のテクスチャの前記第2の対応関係に基づいて、当該所定範囲が当該コリジョンと重なる位置に対応する座標の前記第2のテクスチャの色情報を更新する色情報更新手段と、
    前記第1のテクスチャと、前記第2のテクスチャとを用いて、前記ポリゴンメッシュを描画する描画手段とを備える、情報処理装置。
  16. 情報処理装置のコンピュータに実行させる情報処理方法であって、
    前記コンピュータに、
    仮想空間内のポリゴンメッシュと、当該ポリゴンメッシュと第1の対応関係で対応付けられた第1のテクスチャと、当該仮想空間内において接触判定を行うためのコリジョンと、第2テクスチャに関するデータを読み出させ、
    前記読み出された前記仮想空間における前記コリジョンの位置に少なくとも基づいて、当該コリジョンに対応する仮想面を生成させ、
    前記生成された前記仮想面の前記仮想空間内における位置に少なくとも基づいて、前記ポリゴンメッシュと当該仮想面を対応付けさせ、
    前記生成された前記仮想面と、前記読み出された前記第2テクスチャとを、第2の対応関係で対応付けさせ、
    前記対応付けが行われた前記仮想空間内において、所定範囲を対象とした色更新イベントを発生させ、
    前記色更新イベントの対象となる前記所定範囲が前記コリジョンと重なる場合、当該コリジョンと前記仮想面の対応関係と、前記仮想面と前記第2のテクスチャの前記第2の対応関係に基づいて、当該所定範囲が当該コリジョンと重なる位置に対応する座標の前記第2のテクスチャの色情報を更新させ、
    前記第1のテクスチャと、前記第2のテクスチャとを用いて、前記ポリゴンメッシュを描画させる、情報処理方法。
  17. 仮想空間内のポリゴンメッシュと、当該ポリゴンメッシュと第1の対応関係で対応付けられた第1のテクスチャと、当該仮想空間内において接触判定を行うためのコリジョンと、第2テクスチャに関するデータを読み出す読出手段と、
    前記読出手段によって読み出された前記仮想空間における前記コリジョンの位置に少なくとも基づいて、当該コリジョンに対応する仮想面を生成する仮想面生成手段と、
    前記生成された前記仮想面の前記仮想空間内における位置に少なくとも基づいて、前記ポリゴンメッシュと当該仮想面を対応付ける第1対応付け手段と、
    生成された前記仮想面と、前記読出手段によって読み出された前記第2テクスチャとを、第2の対応関係で対応付ける第2対応付け手段と、
    前記対応付け手段による対応付けが行われた前記仮想空間内において、所定範囲を対象とした色更新イベントを発生させる色更新イベント発生手段と、
    前記色更新イベントの対象となる前記所定範囲が前記コリジョンと重なる場合、当該コリジョンと前記仮想面の対応関係と、前記仮想面と前記第2のテクスチャの前記第2の対応関係に基づいて、当該所定範囲が当該コリジョンと重なる位置に対応する座標の前記第2のテクスチャの色情報を更新する色情報更新手段と、
    前記第1のテクスチャと、前記第2のテクスチャとを用いて、前記ポリゴンメッシュを描画する描画手段とを備える、情報処理システム。
JP2022130264A 2022-08-17 2022-08-17 情報処理プログラム、情報処理装置、情報処理方法、および情報処理システム Active JP7482953B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022130264A JP7482953B2 (ja) 2022-08-17 2022-08-17 情報処理プログラム、情報処理装置、情報処理方法、および情報処理システム
US18/356,574 US20240062468A1 (en) 2022-08-17 2023-07-21 Computer-readable non-transitory storage medium, information processing apparatus, information processing method, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022130264A JP7482953B2 (ja) 2022-08-17 2022-08-17 情報処理プログラム、情報処理装置、情報処理方法、および情報処理システム

Publications (2)

Publication Number Publication Date
JP2023011546A JP2023011546A (ja) 2023-01-24
JP7482953B2 true JP7482953B2 (ja) 2024-05-14

Family

ID=85120339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022130264A Active JP7482953B2 (ja) 2022-08-17 2022-08-17 情報処理プログラム、情報処理装置、情報処理方法、および情報処理システム

Country Status (2)

Country Link
US (1) US20240062468A1 (ja)
JP (1) JP7482953B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005122479A (ja) 2003-10-16 2005-05-12 Namco Ltd プログラム、情報記憶媒体及び画像生成装置
JP2005128687A (ja) 2003-10-22 2005-05-19 Namco Ltd プログラム、情報記憶媒体、及び画像生成システム
JP2012155570A (ja) 2011-01-27 2012-08-16 Namco Bandai Games Inc プログラム、情報記憶媒体及び画像生成装置
JP2018110659A (ja) 2017-01-10 2018-07-19 任天堂株式会社 情報処理プログラム、情報処理方法、情報処理システム、および情報処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005122479A (ja) 2003-10-16 2005-05-12 Namco Ltd プログラム、情報記憶媒体及び画像生成装置
JP2005128687A (ja) 2003-10-22 2005-05-19 Namco Ltd プログラム、情報記憶媒体、及び画像生成システム
JP2012155570A (ja) 2011-01-27 2012-08-16 Namco Bandai Games Inc プログラム、情報記憶媒体及び画像生成装置
JP2018110659A (ja) 2017-01-10 2018-07-19 任天堂株式会社 情報処理プログラム、情報処理方法、情報処理システム、および情報処理装置

Also Published As

Publication number Publication date
JP2023011546A (ja) 2023-01-24
US20240062468A1 (en) 2024-02-22

Similar Documents

Publication Publication Date Title
JP4447568B2 (ja) ゲーム装置、ゲーム装置の制御方法及びプログラム
JP7386360B2 (ja) 情報処理方法、装置及び端末デバイス
JP6643775B2 (ja) ゲーム機、ゲームシステム及びプログラム
JP2011215946A (ja) プログラム、情報記憶媒体、及び、画像生成装置
JP2010233671A (ja) プログラム、情報記憶媒体及びゲーム装置
JP2021112561A (ja) ビデオゲーム内のゲームオブジェクトの状態を変化させるためのシステム及び方法
US8662976B2 (en) Game processing system, game processing method, game processing apparatus, and computer-readable storage medium having game processing program stored therein
JP2006268676A (ja) プログラム、情報記憶媒体、及び画像生成システム
TWI302845B (ja)
JP2023541697A (ja) 仮想シーンにおける位置取得方法、装置、電子機器、記憶媒体及びコンピュータプログラム
JP2023018098A (ja) プログラム、ゲーム装置、サーバ装置及びゲーム提供方法
JP4776017B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2020107251A (ja) 画像生成システム及びプログラム
JP2004073741A (ja) ゲームプログラム
JP7482953B2 (ja) 情報処理プログラム、情報処理装置、情報処理方法、および情報処理システム
JP2009129167A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP7097163B2 (ja) ゲームシステム、ゲーム提供方法及びプログラム
JP3640384B2 (ja) ビデオゲームシステムおよびビデオゲーム用記憶媒体
JP2008067853A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4553907B2 (ja) ビデオゲームシステムおよびビデオゲーム用記憶媒体
JP2005122479A (ja) プログラム、情報記憶媒体及び画像生成装置
JP4313810B2 (ja) ビデオゲームシステムおよびビデオゲーム用記憶媒体
JP4003794B2 (ja) 画像処理方法及び画像処理装置
JP6931723B2 (ja) ゲーム機、ゲームシステム及びプログラム
JP7434601B2 (ja) ウィジェットの表示方法、装置、機器及びコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240308

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240430

R150 Certificate of patent or registration of utility model

Ref document number: 7482953

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150