JP2019046430A - ビデオゲーム画像レンダリング方法及びシステム - Google Patents

ビデオゲーム画像レンダリング方法及びシステム Download PDF

Info

Publication number
JP2019046430A
JP2019046430A JP2017230189A JP2017230189A JP2019046430A JP 2019046430 A JP2019046430 A JP 2019046430A JP 2017230189 A JP2017230189 A JP 2017230189A JP 2017230189 A JP2017230189 A JP 2017230189A JP 2019046430 A JP2019046430 A JP 2019046430A
Authority
JP
Japan
Prior art keywords
computer readable
readable medium
environmental element
virtual camera
collision
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017230189A
Other languages
English (en)
Other versions
JP2019046430A5 (ja
JP6960317B2 (ja
Inventor
ラテル、ケビン
Ratelle Kevin
ジャニス、フレドリック
Joanis Frederic
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.)
Square Enix Ltd
Original Assignee
Square Enix 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 Square Enix Ltd filed Critical Square Enix Ltd
Publication of JP2019046430A publication Critical patent/JP2019046430A/ja
Publication of JP2019046430A5 publication Critical patent/JP2019046430A5/ja
Application granted granted Critical
Publication of JP6960317B2 publication Critical patent/JP6960317B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • 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
    • 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/2016Rotation, translation, scaling

Abstract

【課題】仮想環境内で該仮想カメラの動きに応じて、前記画像フレーム内に該環境素子の動きの様子をレンダリングする方法を提供する。
【解決手段】仮想環境における仮想カメラの視野にシーンの展開を描写させる形で、画像フレームを作成し、該仮想環境内で仮想カメラの動きに応じて、該シーンに該環境素子の動きの様子を前記画像フレーム内にレンダリングする。他の方法においては、仮想環境には仮想カメラ、注目のオブジェクト、少なくとも一部が仮想カメラと注目のオブジェクト間に配置されている環境素子が含まれて、シーンの展開を描写しつつ、一連の画像フレームを作成し、多数の画像フレームの進行に亘り、環境素子の一部の動きの様子をレンダリングして、移動した環境素子の一部がそれまで占領していた少なくとも1部のシーンに注目のオブジェクトを更に現わす。
【選択図】図11

Description

本発明は、概して画像のレンダリングに関し、特に、ビデオゲームのコンテクスト内での画像のレンダリングに関する。
ビデオゲームの仮想環境には、仮想カメラ、プレイングキャラクタ、その他のオブジェクト等、各種のオブジェクトが含まれている。3人称ビデオゲームの場合、仮想カメラはユーザがそのアクションを制御するプレイングキャラクタを「見ている」。しかしながら、仮想カメラとプレイングキャラクタの間にある特定のオブジェクトが、プレイングキャラクタの表示を遮ることがある。これは、特に、仮想カメラがブッシュや他の植物近くにある時に発生しうる。この場合、プレイングキャラクタはもはや十分にスクリーン上にレンダリングされず、ユーザ(プレーヤ)は目視で自分のプレイングキャラクタと接触できず、ゲーム経験値に否定的な影響を及ぼし得る。仮想カメラの位置を障害物から離すことは簡単な解決法であるように思われるが、プレイヤは、常に仮想カメラの位置を独立的に制御できるとは限らない。更に、カメラがどこに配置されようと、植物はカメラに写りこまないままであることが多々ある。それ故、この問題の解決は、これからの研究に期待される。
第1の広い観点によると、処理実体により実行させることにより、該処理実体に方法を実行させることが出来るコンピュータ可読命令からなるコンピュータ可読媒体において、該方法は、仮想環境における仮想カメラの視野にシーンの展開を描写させる形で、画像フレームを作成し、該シーンには、環境素子が含まれており、該仮想環境内で仮想カメラの動きに応じて、前記画像フレーム内に該環境素子の動きの様子をレンダリングする、ことからなることを特徴とする、コンピュータ可読媒体を提供する。
第2の広い観点によると、仮想環境における仮想カメラの視野にシーンの展開を描写させる形で、画像フレームを作成し、該シーンには、環境素子が含まれており、該仮想環境内で仮想カメラの動きに応じて、前記画像フレーム内に該環境素子の動きの様子をレンダリングすることからなる方法を提供する。
第3の広い観点によると、処理実体により実行させることにより、該処理実体に方法を実行させることが出来るコンピュータ可読命令からなるコンピュータ可読媒体において、該方法は、ビデオゲーム用の仮想環境を維持し、該仮想環境には仮想カメラ、注目のオブジェクト、少なくとも一部が該仮想カメラと該注目のオブジェクト間に配置されている環境素子が含まれており、該ビデオゲーム内でシーンの展開を描写しつつ、一連の画像フレームを作成し、該シーンには該仮想カメラの視野内に前記仮想環境からのオブジェクトが含まれており、多数の画像フレームの進行に亘り、前記環境素子の一部の動きの様子をレンダリングして、移動した環境素子の一部がそれまで占領していた少なくとも1部のシーンに前記注目のオブジェクトを更に表す、ことからなることを特徴とする、コンピュータ可読媒体を提供する。
第4の広い観点によると、ビデオゲーム用の仮想環境を維持し、該仮想環境には仮想カメラ、注目のオブジェクト、少なくとも一部が該仮想カメラと注目のオブジェクト間に配置されている環境素子が含まれており、該ビデオゲーム内でシーンの展開を描写しつつ、一連の画像フレームを作成し、該シーンには該仮想カメラの視野内に前記仮想環境からのオブジェクトが含まれており、多数の画像フレームの進行に亘り、前記環境素子の一部の動きの様子をレンダリングして、移動した環境素子の一部がそれまで占領していた少なくとも1部のシーンに前記注目のオブジェクトを更に表すことからなる方法を提供する。
図1は、本発明の限定されない例示的な実施例を実装したゲーム装置の構成を示すブロック図である。 図2は、図1のゲーム装置によって実行されるゲームプログラムの要素を示す図であり、ゲームデータ処理機能及びゲームレンダリング処理機能を有するものである。 図3は、本発明の実施例によるゲームデータの一例を示す図である。 図4は、3Dグラフィック情景をディスプレィ装置に表示するためのゲーム画面に変換する処理の一例を示す図である。 図5は、各種の環境素子に関係付けられた衝突プリミティブ(要素)を有するシーンの一例を示す概略図である。 図6は、図5のシーンの概略図であり、仮想カメラ、関連付けされたカメラ衝突プリミティブ及びキャラクタを示す斜視図である。 図7は、キャラクタの「前に」環境素子(草木)をレンダリングすることにより、キャラクタのレンダリングを省いたシーンの一例を示す、スクリーン上のレンダリングを示す図である。 図8は、非限定的実施例による、環境素子の衝突プリミティブとカメラ衝突プリミティブとの衝突があった際に、環境素子の移動を演算する処理を示すフローチャートである。 図9は、カメラ衝突プリミティブと環境素子の衝突プリミティブが均衡状態で相互貫通した例を示す概略図である。 図10は、図7のシーンをスクリーン上にレンダリングした図であり、キャタがスクリーン上にレンダリングされ、観者の視覚に入るように草木を後退させたシーンの図である。 図11は、非限定的実施例による、環境素子が動く様子をレンダリングする処理を示すフローチャートである。 図12は、他の非限定的実施例による、環境素子が動く様子をレンダリングする処理を示すフローチャートである。
図1は、本発明の限定されない例示的な実施例を実装したゲーム装置1の構成を示すブロック図である。ある場合には、ゲーム装置1は、Xbox(登録商標)、Playstation(登録商標)又はNintendo(登録商標)ゲーム筐体といった専用のゲーム筐体である。また他の場合には、ゲーム装置1は、多目的ワークステーション又はラップトップコンピュータである。更に他の場合、ゲーム装置1は、スマートフォンのようなモバイル装置であり、また更に他の場合には、ゲーム装置1は携帯型ゲーム装置である。
ゲーム装置1は、少なくとも一つの処理装置10、少なくとも一つのコンピュータ可読メモリ11,少なくとも一つの入出力モジュール15及び少なくとも一つの電源27を有し、更にビデオゲームを遊ぶのに使用されるゲーム装置で見受けられるさまざまな部品も含まれる。ゲーム装置1の様様な部品は、データバス、コントロールバス、パワーバスなどのような一つ以上のバスを介して互いに通信することが出来る。
図1に示すように、プレイヤ7は、ディスプレィ装置5のスクリーンに表示されるゲーム画像を見ながら、ゲームコントローラ3を介してゲームの局面を制御することでゲームをプレイする。従って、ゲーム装置1はゲームコントローラ3から入出力モジュール15を介して入力を受ける。ゲーム装置1は、また、ディスプレィ装置5及び/又はオーディオ装置(例えば、スピーカ、図示せず)に入出力モジュール15を介して出力を供給する。他の実施例では、入出力モジュール15に接続されるのは、一つ以上のゲームコントローラ3及び/又は一つ以上のディスプレィ装置5でもよい。
処理装置10は、一つ以上のコアを有する一以上の中央処理ユニット(CPU)を有する。また処理装置10は、出力データを、ディスプレィ装置5のディスプレィの入出力モジュール15に供給するためのビデオエンコーダ/ビデオコーデック(コーダ/デコーダ、図示せず)と接続された、少なくとも一つのグラフィック処理ユニット(GPU)を有する。更に該処理装置10は、オーディオ装置の入出力モジュール15に供給される出力データを生成するためのオーディオエンコーダ/オーディオコーデック(コーダ/デコーダ、図示せず)と接続された少なくとも一つのオーディオ処理ユニットを有する。
コンピュータ可読メモリ11は、RAM(ランダムアクセスメモリ)、ROM(リードオンリーメモリ)、フラッシュメモリ、ハードディスク駆動装置、DVD/CD/Blueray(登録商標)及び/又は他の適切なメモリ装置、技術又は構成を有する。コンピュータ可読メモリ11は、ゲームプログラム33,ゲームデータ34及びオペレーティングシステム35などの多様な情報を格納している。
ゲーム装置1の電源が入ると、処理装置10は処理装置10を起動するブート処理を実行し、コンピュータ可読メモリ11と通信する。特にこのブート処理ではオペレーティングシステム35を実行する。オペレーティングシステム35は、ゲーム装置に適した何らかの商用又は専用オペレーティングシステムである。オペレーティングシステム35が実行されると、処理装置10はディスプレィ装置5に表示する画像を生成し、ゲーム装置1はゲームコントローラ3を介してプレイヤ7が選択することの出来る多様なオプションや、プレイするビデオゲームを選択、及び/又は開始するオプションを表示する。プレイヤ7により選択/開始されたビデオゲームは、ゲームプログラム33によってエンコードされている。
処理装置10は該ゲームプログラム33を実行して、エンコードされたビデオゲームに関連する多様な種類の情報処理機能を実行することが出来るように構成されている。特に、図2に示すように、ゲームプログラム33を実行することで処理装置は、以下に述べるゲームデータ処理機能22及びゲームレンダリング処理機能24を実行することとなる。
ゲームレンダリング処理機能24はディスプレィ装置5に表示されるゲーム画像の生成を含むものである。ここで、ゲームデータ処理機能22は、ゲームの進行やゲームの現在状態を表す情報を処理することを含む(例えば、ディスプレィ装置5に表示する必要のないゲームに関する情報の処理)。図2では、ゲームデータ処理機能22及びゲームレンダリング処理機能24は、単一のゲームプログラム33の一部を構成している。しかし、他の実施例では、ゲームデータ処理機能22及びゲームレンダリング処理機能24は、別個のメモリに格納された別個のプログラムであり、分かれた、恐らく遠方の処理装置により実行される場合もある。例えば、ゲームレンダリング処理機能22は、CPUで実行することもでき、ゲームレンダリング処理機能24はGPUで実行することも出来る。
ゲームプログラム33の実行中には、処理装置10は、オブジェクト、キャラクタのような構成物、及び/又はあるゲームの規則に従ったレベルを操作し、ある種の人工的な知的アルゴリズムの適用を行う。ゲームプログラム33の実行中、処理装置10は、生成、ロード、格納、読み込みを行い、また、オブジェクトやキャラクタ及び/又はレベルに関するデータを持ったゲームデータ34に全般的なアクセスを行う。図3は、本発明の実施例に基づくゲームデータ34の例を説明する一例である。ゲームデータ34は、前述の構成に関するデータを有しており、従って、オブジェクトデータ42、レベルデータ44及び/又はキャラクタデータ46を含む。
オブジェクトとは、ゲーム画像のフレーム(コマ)にグラフィカルに表示することの出来るゲーム環境における何らかの素子又は素子の部分を表す。オブジェクトは、建物、車両、家具、植物、空、大地、大洋、太陽及び/又は何らかの適当な素子を3次元的に表現したものである。オブジェクトは、数字、幾何学又は数学的な表現のような、他の非グラフィカルな表現であることもある。オブジェクトデータ42は、ゲーム画像のフレーム内でのグラフィカルな表現のような、オブジェクトの現在表現についてのデータや、数字、幾何学又は数学的な表現についてのデータを格納する。オブジェクトデータ42としては、画像データ、位置データ、材料/テクスチャデータ、物理状態データ、可視性データ、照明データ(例えば、方向、位置、色及び/又は強度)、サウンドデータ、モーションデータ、衝突データ、環境データ、タイマーデータ及び/又は該オブジェクトに関連する他のデータなどの属性データも格納することができる。オブジェクトの特定の属性データはゲームプログラム33で制御可能である。
キャラクタは、オブジェクトに類似するが、属性は本質的により動的であり、オブジェクトが通常持たない追加的な属性を持っている。プレイングキャラクタのある属性は、プレイヤ7により制御することが出来る。またキャラクタ(プレイングキャラクタ又はノンプレイングキャラクタ)のある属性は、ゲームプログラム33により制御され得る。キャラクタの一例をいくつかの非制限的可能性としてあげると、人、アバター、動物などである。キャラクタは、数字、幾何学又は数学的な表現のような他の非視覚的表現も持つことがある。キャラクタは、キャラクタが装備する武器、又はキャラクタが着る衣服などの1以上のオブジェクトと関連することがある。キャラクタデータ46は、ゲーム画面のフレームにおけるグラフィカルな表現、又は数字、幾何学又は数学的の表現のような、キャラクタの現在表現についてのデータを格納する。キャラクタデータ46は、画像データ、位置データ、材料/テクスチャデータ、物理状態データ、可視性データ、照明データ(例えば、方向、位置、色及び/又は強度)、サウンドデータ、モーションデータ、衝突データ、環境データ、タイマーデータ及び/又は該キャラクタに関連する他のデータなどの属性データも格納することができる。
ゲームデータ34は、オブジェクトデータ42、レベルデータ44及び/又はキャラクタデータ46の表現及び/又は属性の一部である、ディスプレィ装置5に表示される際のゲームの現在の視野又はカメラアングルに関するデータ(例えば、1人称視点、3人称視点など)を含む。
ゲームプログラム33を実行する際には、処理装置10は、プレイヤ7がゲームを選択/スタートした後に、イニシャライズ段階を行い、ゲームをイニシャライズする。イニシャライズ段階は、必要なゲームのセットアップを実行し、ゲームの開始に際してゲームデータ34を準備するために使用される。ゲームデータ34は、ゲームプログラム33の処理に伴って変化(即ち、ゲームのプレイ中)する。ここで“ゲームの状態”という用語は、ここではゲームデータ34の現在の状態又は性質、従って、多様なオブジェクトデータ42、レベルデータ44及び/又はキャラクタデータ46及びそれらの対応する表現及び/又は属性を定義するために使用される。
イニシャライズ段階の後、ゲームプログラム33を実行する処理装置10は、一つ以上のゲームループを実行する。一つ以上のゲームループは、ゲームプレイ中継続的に実行され、ゲームデータ処理機能22及びゲームレンダリング処理機能24はルーチン的に実行されるようになる。
ゲームループは、(i)ゲームデータ処理機能22がゲームコントローラ3を介したプレイヤの入力処理を行い、ゲーム状態をアップデートし、その後(ii)ゲームレンダリング処理機能24がアップデートされたゲーム状態に基づいてディスプレィ装置5に表示すべきゲーム画像を生成するように機能する。ゲームループは時間経過を追跡し、ゲームプレイの進行を制御する。プレイヤが入力する以外のパラメータが、ゲーム状態に影響を与える点は注目すべき点である。例えば、多様なタイマー(即ち、経過時間、特定のイベントからの時間、一日のバーチャル時間など)がゲーム状態に影響を与え得る。別の言い方をすると、ゲームは、プレイヤ7が入力を行わなくても進行しており、従って、プレイヤの入力が無くてもゲーム状態はアップデートされるのである。
一般的に、ゲームデータ処理機能22が毎秒実行する回数は、ゲーム状態に対する毎秒のアップデート回数を規定し(以後、「アップデート/秒」と称する)、ゲームレンダリング処理機能24が毎秒実行する回数は、毎秒のゲーム画像のレンダリングを規定する(以後、「フレーム/秒」と称する)。理論的には、ゲームデータ処理機能22とゲームレンダリング処理機能24は、毎秒の実行回数が同じと考えられる。特定の非限定的な例として、目標が毎秒25フレームだとすると、ゲームデータ処理機能22とゲームレンダリング処理機能24は、共に40ms毎に実行可能な能力(即ち、1s/25FPS)が望ましい。ゲームデータ処理機能22が実行し、その後にゲームレンダリング処理機能24が実行する場合、ゲームデータ処理機能22とゲームレンダリング処理機能24は共に40msのタイムウインド(time window)で実行される必要がある。その時のゲーム状態によって、ゲームデータ処理機能22及び/又はゲームレンダリング処理機能24を行う時間は変わり得るものである。もしゲームデータ処理機能22とゲームレンダリング処理機能24が共に40ms以下で実行されるなら、ゲームデータ処理機能22とゲームレンダリング処理機能24の次のサイクルを実行する前にスリープタイマーを使用することが出来る。しかし、ゲームデータ処理機能22とゲームレンダリング処理機能24が与えられたサイクルを実行するのに40ms以上掛かる場合には、一定のゲームスピードを維持するためにゲーム画像の表示をスキップするのも一つのテクニックである。
目標となる毎秒フレーム数が、25フレーム/秒以上又は以下の場合(例えば、60フレーム/秒)もあるが、人間の目がゲーム画像フレームのレンダリングにおいて何らの遅れも感じないように、ゲームデータ処理機能22とゲームレンダリング処理機能24は20から25回/秒以下とならないように実行されることが望ましい。当然、フレームレートが高くなればなるほど、画像間の時間は短くなり、ゲームループを実行するに必要な処理装置もより高性能となり、GPUのような特別な処理装置に頼ることとなる。
他の実施例では、ゲームデータ処理機能22とゲームレンダリング処理機能24は別々のゲームループで、従って独立した処理で実行されることもある。こうした場合、ゲームレンダリング処理機能24が実行中の時であっても、ゲームデータ処理機能22は特別のレート(即ち、特別なアップデート回数/秒)でルーチン実行することが出来、またゲームデータ処理機能22が実行中かどうかに関係なく、ゲームレンダリング処理機能24は特別のレート(即、特別なフレーム数/秒)でルーチン実行することが出来る。
ゲームデータ処理機能22とゲームレンダリング処理機能24をルーチン的に行う処理は、当業者の範囲における多様な技術に基づいて実行され、そうした技術は本明細書において、ゲームデータ処理機能22とゲームレンダリング処理機能24がどのように実行されるかの非限定的な一例として述べられる。
ゲームデータ処理機能22が実行されると、ゲームコントローラ3を介したプレイヤ入力(もし有れば)及びゲームデータ34が処理される。特に、プレイヤ7がビデオゲームをプレイする際には、プレイヤ7は、いくつかの例を挙げるが、左に移動せよ、右に移動せよ、ジャンプせよ、撃て、などの多様なコマンドをゲームコントローラ3を介して入力する。プレイヤが入力すると、ゲームデータ処理機能22はゲームデータ34をアップデートする。別の言い方をすると、オブジェクトデータ42、レベルデータ44及び/又はキャラクタデータ46がゲームコントローラ3を介したプレイヤの入力に反応してアップデートされる。なおゲームデータ処理機能22が実行するたびにゲームコントローラ3を介したプレイヤ入力がある訳では無い。プレイヤ入力が入力されなくても、ゲームデータ34は処理され、アップデートされる。こうしたゲームデータ34のアップデートは、表現及び/又は属性がゲームデータ34に対するアップデートを規定しているとき、オブジェクトデータ42、レベルデータ44及び/又はキャラクタデータ46の表現及び/又は属性に応じて行われる。例えば、タイマーデータは一つ以上のタイマー(例えば、経過時間、特定のイベントからの経過時間、一日のバーチャル時間など)を規定し、それらはゲームデータ34(例えば、オブジェクトデータ42、レベルデータ44及び/又はキャラクタデータ46)のアップデートを生じさせる。他の例として、プレイヤ7によって制御されないオブジェクトが衝突すると(跳ね返ったり、合流したり、砕けたりなど)、ゲームデータ34、例えばオブジェクトデータ42、レベルデータ44及び/又はキャラクタデータ46は衝突によりアップデートされる。
一般的に、ゲームデータ34(例えば、オブジェクト、レベル及び/又はキャラクタの表現及び/又は属性)はゲームの3次元(3D)グラフィックシーンを規定するデータを表す。一つ以上の3Dグラフィックオブジェクトを含む3次元(3D)グラフィックシーンを、ディスプレィ装置5に表示する2次元(2D)のラスタライズされたゲーム画像に変換する処理は、一般的にレンダリングと呼ばれる。図4に、3Dグラフィックシーンをディスプレィ装置5にスクリーンを介して表示するためのゲーム画像に変換する処理の例を示す。ステップ52で、ゲームデータ処理機能22は、ゲームの3次元(3D)グラフィックシーンを表現するデータを処理して、このデータを複数のバーテックスデータに変換する。バーテックスデータはレンダリングパイプライン55(グラフィックパイプラインとしても知られている)により処理するのに適している。ステップ55では、ゲームレンダリング処理機能24がレンダリングパイプラインによりバーテックスデータを処理する。レンダリングパイプラインの出力は、スクリーンを介してディスプレィ装置5に表示する一般的なピクセルである(ステップ60)。
より詳細に述べると、ステップ52で、グラフィックシーンの3Dグラフィックオブジェクトは、一つ以上の3Dグラフィック要素(primitive)に細分化される。要素は、レンダリングのための幾何学的な存在(例えば、点、線、ポリゴン、表面、オブジェクト、パッチなど)を規定するために互いにグループ化され及び/又は接続された一つ以上のバーテックスのグループである。各3Dグラフィック要素毎に、バーテックスデータがこの段階で生成される。各要素のバーテックスデータは一つ以上の属性(例えば、位置、色、法線又はテクスチャ座標系情報など)を含むものである。バーテックスデータを引き出す際に、カメラ変換(a camera transformation)(例えば、回転変換)が行われ、3Dグラフィックシーンの3Dグラフィックオブジェクトを、現在の視点又はカメラアングルに変換する。また、バーテックスデータを引き出す際に、光源データ(例えば、方向、位置、色及び/又は強度)が考慮される。この段階で引き出されたバーテックスデータは、一般的にレンダリングパイプラインに送られるバーテックスの順序付きリストである。順序付きリストのフォーマットは一般的にレンダリングパイプラインの特定な実行に依存する。
ステップ55で、ゲームレンダリング処理機能24はバーテックスデータをレンダリングパイプラインにより処理する。レンダリングパイプラインはよく知られており(例えば、OpenGL、DirectXなど)、レンダリングパイプラインの実行に用いられる特定のレンダリングパイプラインに拘わらず、レンダリングパイプラインの一般的な処理は、3Dシーンの2Dラスタ表現(例えば、ピクセル)を生成することである。レンダリングパイプラインは、一般的に、バーテックスデータの2次元(2D)スクリーン空間への投影位置を計算し、ディスプレィ5に出力するためのゲーム画像(例えば、ピクセル)を引き出すために、光、色、位置、情報、テクスチャ座標を考慮に入れた多様な処理及び/又は他の適当な処理を行なう(ステップ60)。
ある場合には、ゲーム装置1はインターネットのサーバーと一つ以上のインターネット設備の間に配置される。従って、複数のプレイヤが同じオンラインゲームに参加することが出来、ゲームプログラムの機能(ゲームレンダリング処理機能及び/又はゲームデータ処理機能)は、少なくとも一部をサーバーにより実行することも可能である。
ビデオゲームのゲーム環境は、仮想カメラ、プレイングキャラクタ、複数の環境素子、更に他のオブジェクト等、各種のオブジェクトを含んでいる仮想環境である。仮想環境内のカメラの位置やアングルは、仮想カメラから一般的に外に向けて広がる仮想環境の領域内に、オブジェクトを含んだ視界を定めている。仮想カメラからは、該仮想カメラの視界内にあるサブセットのオブジェクトだけを見ることができ、プレイングキャラクタを制御しているゲームのプレイヤが、該サブセットのオブジェクトをスクリーン上にレンダリングする。どのオブジェクトが見えるかは、仮想カメラに対してそれらオブジェクトが介在する位置(Zバッファ位置とも呼ばれる)に加えて、視界内にあるオブジェクトの透明度の機能による。
環境素子に関しては、柔軟なものもある。柔軟で適切な環境素子の例としては、(葦、枝、葉、つる、藻を含む)植物、無生物(旗、ビーズカーテン、垂直ブラインド等)、死骸等のオブジェクトがある。図5は、柔軟な環境素子の非限定的な例として、死骸502及び植物504を示している。図に示すように、各環境素子は、1以上の「骨」(セグメント)及び、スクリーン上にはレンダリングされない対応する「衝突プリミティブ」と関連しており、衝突計算に使われるが、これは後に説明する。例えば、植物504は、複数の枝を有しており、各枝は、1以上の骨514、516、518により、対応する囲み衝突プリミティブ524、526、528(カプセル等の、例えば、半球によって両端が覆われている円柱状のもので、簡単な形状を有している)と共に表現される。同様に、死骸502は、骨532、534、536に対応したカプセル様の衝突プリミティブ542、544、546に囲まれた該骨の配列により表現される。環境素子が多数の骨及び対応するカプセル様の衝突プリミティブと関連付けられている場合、カプセル同士は、異なる寸法を有するかもしれない。所定のカプセルの一端側半球の半径は変動し、変動することでランタイムを定義することが出来る。他の実施例では、衝突プリミティブはカプセルである必要は無く、その代わりにプリズム、又は他の3次元形状であり得る。
環境素子502、504は、柔軟な特性を有する。更に、仮想環境内では自然位置が存在しており、その位置に対して、各環境素子が、反発力や重力により偏向することが出来る。例えば、単一の骨によって表現される反発力のある葦の場合、ベースポイントが与えられ、その周りで骨が回転する。骨は仮想環境内で自然位置を有しており、その反発力は、ベースポイントに絶えず付随する形で、環境素子内で動かないままである自然位置に対する偏向力により決めることが出来る。もし偏向力が、他のオブジェクトと骨の衝突プリミティブとの衝突に負けたら、反発力のある葦は、ベースポイントの周りを揺れるようにレンダリングされ、その反発力により、弾力のある葦は、もしオブジェクトが動けば(オブジェクトが動いた時)その自然位置に戻るだろう。
例えば図5の植物504や死骸502のように、相互に連結した多数の骨を有する複雑な例では、それぞれの骨にベースポイントが設定されており、該ベースポイントの周りに対応する骨が回転しているが、ベースポイントも仮想環境内で動くことが出来る。そして、衝突の間に、骨同士の間で力の移動が起こる。例えば、骨は自然位置を有しており、該骨の反発力は、対応するベースポイントに絶えず付随する形で、自然位置に対する偏向力により決めることが出来る。もし偏向力が、他のオブジェクトと特定の骨の衝突プリミティブ(例えば、524、526、528、542、544、546)との衝突に打ち勝てば、対応する枝等はベースポイントの周りで揺れるようにレンダリングされるが、衝撃力のいくらかは、衝撃を与えられた骨に連結した他の骨に伝わる。このため、連結した骨は、更に他の連結した骨に移る移動を経験するだろう。もしオブジェクトが取り除かれると(取り除く時)、骨はその反発力により、骨の自然位置に戻るようにレンダリングされる。
ある実施例では、仮想カメラと関連付けられた衝突プリミティブが、環境素子(即ち、より具体的に言うと、上述した環境素子の衝突プリミティブ)と衝突ことがある。特に、図6に示すように、仮想カメラ602は、該カメラの衝突プリミティブ604(以降、「カメラ衝突プリミティブ」と呼ぶ)と関連付けられ、スクリーン上にはレンダリングされないものの、衝突計算に使用される(追って、説明する)。カメラ衝突プリミティブ604に関する更なる詳細は、図6を参照して説明する。特に、ある実施例では、仮想カメラ602は、カメラ衝突プリミティブ604内に(例えば、その端部に)配置される。別の実施例では、カメラ衝突プリミティブ604は、仮想カメラ602と注目のオブジェクトの間の、仮想カメラ602の前に配置される。ある実施例では、ゲームは3人称ゲームであり、注目のオブジェクトはプレイングキャラクタ606である。仮想カメラ602とプレイングキャラクタ606は相対的に動くが、仮想カメラ602は、プレイングキャラクタ606を含めるように絶えず正しい位置に置かれるので、カメラ衝突プリミティブ604は、仮想カメラ602とプレイングキャラクタ606の間に配置されるのである。仮想カメラ602の動きは、仮想環境内で仮想カメラ602が平行移動(translation)するか、仮想環境内で固定場所に対して仮想カメラ602の方位が変化するかのいずれかである。
カメラ衝突プリミティブ604は、多くの形状を取ることが出来、そのうちの1つはカプセロイドである。カプセロイドは、特定の長さを有する3D形状であり、その両端部は、潜在的に異なる半径を有する半球により覆われている。仮想カメラ602近くにあるカメラ衝突プリミティブ604の端部にある半球の半径は、プレイングキャラクタ606近くにあるカメラ衝突プリミティブ604の端部の半径より小さくすることが出来る。カプセロイドの両端の半球の半径は各種変えることができ、これによりランタイムを定義することができる。また、カメラ衝突プリミティブ604は、仮想カメラ602とプレイングキャラクタ606間の距離を延長する必要は無い。むしろ、カメラ衝突プリミティブ604は、その長さを短くすることができ、例えば、仮想カメラ602とプレイングキャラクタ606間の距離の、90%、75%、50%、若しくはこれより短いところで終わることもある。絶対的な意味で、又は、仮想カメラ602とプレイングキャラクタ606間の距離に対する相対的な意味で、このカプセロイドの長さを各種変えることが出来、これによりランタイムが定義される。
図7は、仮想カメラ602から、3人称視点で見た例を示しており(図7には仮想カメラは示されていないが)、ここには仮想カメラの視野で見えるオブジェクトが含まれている。この例では、目に見えるオブジェクトは、床702、影704及び葉706、708、710である。葉706、708、710は、柔軟性及び弾力性があり、それらの自然位置は図7に示されている。葉706、708、710は、共通の植物の一部であり、互いに連結した骨と関連付けられる。このため、各葉の動きは、他の葉に対して影響を及ぼす。図7は、カメラ衝突プリミティブ604(図7には示されていない)の影響は無く、スクリーン上にレンダリングされた図を示しており、葉706の「後ろ」の位置にいるプレイングキャラクタ606は視界から遮られ、図には示されない。プレイングキャラクタ606は、環境素子(この場合は、葉706)を含む、少なくとも1つのオブジェクトにより視界が遮られることがわかる。
一実施例では、カメラ衝突プリミティブ604と、葉706、708、710と関連付けられた衝突プリミティブ(図7には示されていない)とが衝突すると、1以上の環境素子(この場合、葉706、708、710)を外側に曲げることが出来るが、以下説明する。
処理実体(即ち、プロセッサ10)が行うレンダリング処理の概要を、図11に言及して説明する。ステップ1110で、処理実体は、ビデオゲームの仮想環境を維持する。ここで思いおこすと、環境素子には、仮想カメラ602、注目のオブジェクト(プレイングキャラクタ等)及び、仮想カメラと注目のオブジェクト(葉706等)の間で少なくとも一部が配置された環境素子を含めることができる。ステップ1120で、処理実体は、ビデオゲーム内で、即ち、ゲームレンダリング処理機能24の一部として、シーンの展開を描写している一連の画像フレームを作成している。シーンには、仮想カメラの視野内で、仮想環境からのオブジェクトが含められる。ステップ1130で、複数の画像フレームの進行に亘って、処理実体は、仮想カメラ602が仮想環境内で動くと環境素子の一部の動き(例えば、たわみ)の出現をレンダリングする。移動した環境素子の一部がそれまでに占領していたシーンは、それまで出現していなかった注目のオブジェクトの一部に取って代わる。このようにして、注目のオブジェクトが、移動した環境素子の一部がそれまでに占領していたシーンの少なくとも一部に更に現われる。
このために、図8に言及する。図8は、プレイングキャラクタの姿を仮想カメラから隠している環境素子の動きを出現させる処理のステップが示されている。この処理は、処理実体が実行するコンピュータ可読命令にエンコードされる。該処理は、関連付けられた衝突プリミティブを有するシーンで、一部又は全ての環境素子の、一部又は全てのセグメントに適用することができる。この処理は、フレーム毎に実行することが出来る。ただし、それは必ずしも必要ではなく、該処理は、計算資源を省くためにそれほど頻繁に実行しなくてもよい。カメラ衝突プリミティブ604を定義することが出来たと仮定し、これは初期化段階でなされる。
ステップ810で、処理実体は、環境素子の特定のセグメントの衝突プリミティブとカメラ衝突プリミティブとの新たな衝突があるか、又は進行中の衝突があるかを検知する。動いている仮想カメラと関連付けられたカメラ衝突プリミティブが特定のセグメントの衝突プリミティブと接触し始めたことがわかれば、衝突は「新しい」と考えることが出来る。衝突は、単一のフレームの間続くことがある。また、衝突は少なくとも数フレームに亘り続く場合もあり、このため、後続のフレームにおいて、最初に「新しい」衝突と考えられたものが、その後、「進行中の」衝突に考えられる。仮想カメラがパッタリ停止しても、カメラ衝突プリミティブと特定のセグメントの衝突プリミティブ間の接触はまだあるので、ステップ810で衝突は「進行中」と検知することが出来ると解釈すべきである。
ステップ810で新しい又は進行中の衝突が実際に検知されると、ここで処理は、ステップ820に進み、「接触トルク」を決定する。即ち、該衝突で発生した、特定のセグメントの衝突プリミティブにかかる力(及び/又はそのベースポイント周りのトルク)を演算する。「接触トルク」の演算を実行するための非限定的な技術については、後述する。
カメラ衝突プリミティブと環境素子の少なくとも1つの衝突プリミティブとの衝突が検知されたときは、仮想カメラそれ自体が環境素子と衝突したのではなく、あくまでその衝突プリミティブと衝突したと解釈すべきである。環境素子は、十分に仮想カメラと近いので、実際に該カメラと接触しなくてもその外観が隠れてしまう。
ステップ820において衝突で発生する接触トルクの演算が終了すると、処理はステップ830に進み、特定のセグメントの次の位置及び速度を、数ある中で、ステップ820で演算した接触トルクに基づく一連の数学方程式に従って演算する。この演算を実行するための非限定的テクニックについては後述する。基本的に、ステップ820で演算した接触トルクは、セグメントのベースポイントに関して適用することが出来る他のトルクと共に、コンピュータで演算し、これがトルクの和となり、(その和がゼロで無い限り)特定のセグメントが移動する。トルク演算の例は、環境素子の固有の反発力又は重力に由来する。
新しい又は進行中の衝突がステップ810で検知されなければ、処理はステップ840に進み、処理実体は特定のセグメントが動いているかどうかを決定する。
ステップ840で処理実体が、特定のセグメントが動いていると決定すると、処理実体はステップ830に進み、前述したように、特定のセグメントの次の位置及び速度を一連の数学的方程式に従って演算する。もはや新しい、又は進行中の衝突は無いので、動きはもはや接触トルクによるものではなく、ゲーム中の他のファクタ、即ち、特定の環境素子を自然位置に戻す偏向力や、処理が実行され、特定のセグメントに連結した環境素子の他のセグメントを動かすことにより起こる力に基づいてなされるが、これに限定されるわけではない。
ステップ840で、処理実体が特定のセグメントが動いていないと決定すれば、その時次のステップはステップ850となる。この処理により、特定のセグメントの位置及び速度の変更は無い。
最終的には、カメラ衝突プリミティブと特定の環境素子に関連付けられた衝突プリミティブとは平衡状態に達すると理解される。この平衡状態では、トルクの和はゼロである。この点において、図9を見てみると、トウモロコシの茎902のカプセル様の衝突プリミティブ904とカメラ衝突プリミティブ906間で達した平衡状態が図示されている(カプセロイドの大端側視点から横方向に見て)。カメラ衝突プリミティブ906との衝突の結果、衝突プリミティブ904は、図の底部に対してわずかに回転している。このようにして、トウモロコシ902は、動いたり/撓んだりしてレンダリングされる。ゼロサムトルクはトウモロコシ902の反発力によりバランスを取った接触トルクから生じる。
図9の実施例では、平衡状態で、衝突プリミティブ904とカメラ衝突プリミティブ906が相互貫通している。その他の実施例では、トウモロコシ902の衝突プリミティブ904とカメラ衝突プリミティブ906は相互貫通しないで、平衡状態に達するよう強制される。これにより、トウモロコシ902がより撓んでレンダリングされる。何故なら、仮想カメラ602の位置は、ユーザによる制御に依存しつつ、ゲームプログラムにより決定されているが、該仮想カメラの位置に密接に係わっているカメラ衝突プリミティブ906により衝突プリミティブ904がより押しのけられるからである。
図7の葉706、708、710の例に戻り、各葉は個々の衝突プリミティブにより表わせられ、葉同士は共通の茎又は軸(図の底部の先にある)に連結していると仮定して、図10を見ると、平衡状態に達した後、図8の処理の効果が視覚的に証明される。特に、プレイングキャラクタの姿を仮想カメラから隠していた葉706が、今移動し、どかされ、それまで隠れていたプレイングキャラクタ606が今見えている。特に、処理実体は、葉706の動きの様子をレンダリングすることにより、仮想カメラの視野を明確にした。
図7と図10を比較すると、画像中心、即ちカメラ衝突プリミティブ(図10には示されてはいないが)に対する方向においてとはいえ、葉708はわずかに移動している。これは、葉706、708が同じ軸に連結されているため、葉706の右側への大きな移動が、葉708の右側へのわずかな移動を誘発したという事実による。どの程度までモーションの移転が行われるかは、ゲームプログラムの洗練レベルに依存する。いずれにせよ、ゲームプログラムにより、葉708に大きな右方向の力がかかったとしても、葉708の衝突プリミティブに実行した時の図8の処理で、カメラ衝突プリミティブとの衝突が検知され、それ自身の部分だけで仮想カメラとプレイングキャラクタとの視線の障害は終わることはない。
仮想カメラが仮想環境内で移動し、環境素子の各衝突プリミティブとカメラ衝突プリミティブ間で新たに検出された衝突により、新たな環境素子が移動する時、上記した仮想カメラの視野の明確性はダイナミックに進行中である。
非限定的接触トルクの演算アルゴリズム
(カメラ衝突プリミティブと環境素子の衝突プリミティブとの)衝突の検知に付け加えて、環境素子の次の位置及び速度を演算するためにステップ830を実行する非限定的アルゴリズムについて説明する。ここで、環境素子の衝突プリミティブは、ベースポイント周りを回転するので、次の位置及び速度は角度測定であると考えられる。ただし、これはあらゆる実施例で必要ではない。一般的に言って、環境素子は初期自然位置及びバネ定数により決まる反発力を有する、減衰したバネとしてモデル化されるが、これはあらゆる実施例で必要なわけではない。
図8において、最初のステップは、衝突しているプリミティブ、即ち、柔軟な素子の衝突プリミティブであるP1(この場合、枝)とカメラ衝突プリミティブであるP2におけるセグメント上の3Dで、2つの最も接近した点を見つけることである。一旦この2つの最も接近した点が見つかれば、枝が回転する中心であるベースポイント、点Pbを見つけることに進む。本非限定的モデルにおいては、枝は回転するだけであり、平行移動(translate)したり、引き伸ばされたりしない。ただし、他の実施例では、このより複雑な行動も考慮されるかもしれない。親枝及び子枝は、複雑に互いに影響を及ぼすだろうが、これはゲームプログラムにより処理される。
カメラ衝突プリミティブと特定の枝の衝突プリミティブとの衝突により、回転或いはその枝を軸としての回転が起こることを説明する。最初に、dベクトルを、P2からP1へ向かうベクトルと定義する。
Figure 2019046430
そしてこの方向(単位ベクトル)を次のように記載する。
Figure 2019046430
カメラ衝突プリミティブと、枝と関連付けられた衝突プリミティブの衝突により発生する力には、次の式を使うことができる。
Figure 2019046430
ここで、r=r+rであり、rは、枝のカプセルの半径であり、rは、枝と衝突しているカメラ衝突プリミティブの半径(2半径のカプセルを有するカプセロイド用であり、rは接触ポイントでの半径である)である。これらのパラメータは、ユーザが入力する。カッコ内の用語は、カプセル/カプセロイドが最もからみ合い、長さd(衝突プリミティブ間の最小距離)がゼロの時に最大の力が発揮されることを確実にする比率を差し引いた単位である。
ファクタmは、多数の値で微調整することができる。
Figure 2019046430
ここで、fは、メインファクタであり、柔軟なセグメントを有する各環境素子に対してユーザが入力する。また、pはカメラ衝突プリミティブに依存しており、ユーザにより入力する乗数である。ファクタμは、枝の衝突プリミティブとキャラクタ、又はカメラ衝突プリミティブとが衝突した際、該枝が異なる形で反応するようにするための別の乗数である。最終的に、ファクタfvは、速さ効果乗数であり、このため、もしキャラクタが枝の中に駆け込んだ場合、キャラクタがゆっくり枝に移動した場合と比較して植物はより大きく動く。即ち、
Figure 2019046430
ここで、vは仮想カメラ(或いは枝に駆け込むキャラクタ)の速度の標準であり、sは、(ユーザが定義可能な)速度効果乗数である。
このようにして、上記した数1により、枝の衝突プリミティブと(この場合)カメラ衝突プリミティブとの衝突構造から、フレーム毎に枝が受ける力を演算する。この力は耐えず作用し、プリミティブ同士が相互貫通している限り続く。それらがかろうじて接触している時は、力はとても小さいものとなり、相互貫通するにつれ、力は増してきて、やがて滑らかな動きになる。それらの構造は依然として、休み位置/平衡位置で相互貫通している。
上記したように演算した力は、接触トルクを発生させるために使用する。何故なら、枝はそのベースポイント周りを回転するからである。接触トルクに使用するレバーは、次のとおりである。
Figure 2019046430
このようにして、枝に発生した接触トルクは、以下のようになる。

Figure 2019046430
次の位置及び速度を演算するための非限定的アルゴリズム
枝と他の特定の柔軟環境素子は、減衰ばねとしてシミュレーションすることができる。接触トルクを演算している同じフレーム中、バネ力モデルをシュミレーションし、結果として生じたトルクを接触トルクに加える。枝はトルクを使用しているので、必然的にその量は、角度で測る。
このシミュレーションにおいて、減衰力は枝の速度を妨害し、次のように計算する。
Figure 2019046430
ここでkは、ユーザが入力することができる定数であり、「減衰ファクタ」と呼ばれるものである。ωは、このシステムの固有振動数であり、これもまたユーザが定義することができる。vは、角速度を示す。減衰力に加えて、バネ力は枝の転置を妨害し、次のように計算される。
Figure 2019046430
ここで、ω(数3でも使用されている)は、このシステムの自然振動数である。Xは、枝の角度位置である。
次の角度位置は、現在の位置を知ることで見つけることができる。次の運動方程式を使用することが出来る。
Figure 2019046430
ここで、Δtは、1フレーム継続時間であり、定義によれば、速度は位置の微分
Figure 2019046430
であり、加速度は、位置の2階微分値
Figure 2019046430
であり、次の式に続く。
Figure 2019046430
数5を使うためには、依然として、フレーム毎に変化する速度v及び加速度aが必要となる。速度に関しては、依然として運動方程式を使用しつつ、第1近似度を使用することが出来る。即ち、
Figure 2019046430
加速度は、速度の微分値であることは公知のことであり、即ち、
Figure 2019046430
これが数6に繋がる。
Figure 2019046430
数5及び数6において、加速度値を決定する必要がある。ニュートンの法則から、
Figure 2019046430
。 パラメータは沢山あるので、便宜上、m=1を使用する。複数のトルクを使用しているので、加速度は、全てのトルクの和となる。即ち、
Figure 2019046430
このように、フレームにおける次の角度位置及び速度を計算する最終式は次のようになる。
Figure 2019046430
Figure 2019046430
減衰バネモデルの下では、環境素子はその自然位置に戻りたいという傾向性(ばね定数により定義できる)がある。該自然位置は、環境素子の衝突プリミティブとカメラ衝突プリミティブとの間にそれ以上の接触が無いように仮想カメラが離れる時の位置であると再び仮定できる。
別の実施例では、環境素子の衝突プリミティブとカメラ衝突プリミティブとの間にまだ接触があるとしても、環境素子がその自然位置に戻ることが出来る。これは、仮想カメラが静止しているか、又は特定の閾値より速度が小さい時に設定することができる。即ち、カメラ衝突プリミティブが、低速度で視野明確化効果を持つのを止める。このようにして、環境素子がその自然位置に戻った結果、(図7に示すように)プレイングキャラクタが仮想カメラから再び姿を消すことになる。これにより、プレイヤが、プレイングキャラクタを十分に見ることができなくなるが、特定の柔軟な環境素子に追加したリアリズムとして感知できるかもしれない。例えば、一連のビーズを有するビーズカーテンを想像してみてほしい。該カーテンは、仮想カメラとプレイングキャラクタとの間のある距離にわたり、横梁から縦方向に垂れ下がっている。この一連のビーズは、重力により、まっすぐな垂直方向の位置に戻りたがる傾向がある。プレイヤは、プレイングキャラクタがもっとはっきりと見えるように(即ち、はっきりレンダリングされるように)動的シーンの間にビーズカーテンが仮想カメラの視界から動くことを期待しているが、それと等しく、シーンが静的になったときにビーズカーテンが垂直なもとの位置に戻ることからくるリアリズムを期待する。これは、カメラ衝突プリミティブに対応する実際とは異なる形態のビーズカーテンと比較してよりリアルなものとして感じることができる。
更に別の実施例では、プレイングキャラクタが仮想カメラの仮定上の視野から離れたらすぐに、環境素子がその自然位置に戻ることが出来る(即ち、プレイングキャラクタは仮想カメラの前に障害物が無くとももはや見えない)。
図12においては、ビデオゲームの仮想環境を維持するステップ1210を有する処理が規定されている。仮想環境には、仮想カメラ、注目のオブジェクト及び、少なくとも一部が仮想カメラと注目のオブジェクトの間に配置されている環境素子が含まれている。この方法は、一連の画像フレームを、ビデオゲーム内でシーンの展開を描写しつつ作成するステップ1220を有している。このシーンには、仮想カメラの視野内に仮想環境からのオブジェクトが含まれている。該処理は、更に、環境素子の一部の動きをレンダリングするステップ1230が含まれ、移動した環境素子の一部がそれまでに占領していた少なくとも一部のシーンに注目のオブジェクトをよりあらわにさせるものであり、例えば図7と図10にスクリーン上にレンダリングしたように変化する。これは、多数の画像フレーム中で起こる。仮想カメラ自体は可視できないが、カメラ衝突プリミティブの動きや衝突を介して効果を感じることができる。
当業者であれば、更なる実現方法や変形が可能であると考える。また、特定の実施例は、上述した特定の素子を省略している場合があるが、本発明の範囲内のすべては、添付のクレームにより定義されると理解される。

Claims (31)

  1. 処理実体により実行させることにより、該処理実体に方法を実行させることが出来るコンピュータ可読命令からなるコンピュータ可読媒体において、該方法は、
    仮想環境における仮想カメラの視野にシーンの展開を描写させる形で、画像フレームを作成し、該シーンには、環境素子が含まれており、
    該仮想環境内で仮想カメラの動きに応じて、前記画像フレーム内に該環境素子の動きの様子をレンダリングする、ことからなることを特徴とする、コンピュータ可読媒体。
  2. 前記方法は、更に、多数の画像フレームの進行に亘り、移動した環境素子の一部がそれまで占領していた少なくとも1部のシーンを、前記仮想環境中でそれまで現われていなかった注目のオブジェクトの一部に置き換えることを特徴とする、請求項1記載のコンピュータ可読媒体。
  3. 前記注目のオブジェクトは、ビデオゲームのプレイングキャラクタであることを特徴とする、請求項2記載のコンピュータ可読媒体。
  4. 前記方法は更に、カメラ衝突プリミティブと前記環境素子の少なくとも1つの衝突プリミティブとの衝突の発生を検知し、該検知に応答して、環境素子の動きの様子をレンダリングすることを特徴とする、請求項2記載のコンピュータ可読媒体。
  5. 前記カメラ衝突プリミティブも、前記環境素子の衝突プリミティブも前記画像フレームにレンダリングしないことを特徴とする、請求項4記載のコンピュータ可読媒体。
  6. 前記カメラ衝突プリミティブは、前記仮想カメラと前記注目のオブジェクトとの間にある仮想3D形状であることを特徴とする、請求項4記載のコンピュータ可読媒体。
  7. 前記カメラ衝突プリミティブは、同一の、又は異なる半径を有するカプセロイドであることを特徴とする、請求項6記載のコンピュータ可読媒体。
  8. 前記3D形状は、第1及び第2端部を有する細長形状であり、該第1端部は前記仮想カメラに近接し、該第2端部は、該仮想カメラと前記注目のオブジェクト間に配置されることを特徴とする、請求項6記載のコンピュータ可読媒体。
  9. 3D形状は、前記第1端部に対してテーパー状であることを特徴とする、請求項8記載のコンピュータ可読媒体。
  10. 前記3D形状は、前記第1及び第2端部間で長さ寸法を有しており、前記長さ寸法に直角な断面は、前記注目のオブジェクトにより近い、前記3D形状の半分部分よりも、前記仮想カメラにより近い該3D形状の半分部分がより小さいことを特徴とする、請求項8記載のコンピュータ可読媒体。


  11. 3D形状は、前記仮想カメラから前記注目のオブジェクトに対して外側に大きさが広がっていることを特徴とする、請求項8記載のコンピュータ可読媒体。
  12. 前記第2端部は、前記仮想カメラと前記注目のオブジェクトの略半分のところに位置していることを特徴とする、請求項6記載のコンピュータ可読媒体。
  13. 前記第2端部は、前記仮想カメラと前記注目のオブジェクト間の距離の4分の3に満たないところに位置していることを特徴とする、請求項6記載のコンピュータ可読媒体。
  14. 前記環境素子の少なくとも1つの衝突プリミティブは、該環境素子を囲む仮想3D形状を有していることを特徴とする、請求項6記載のコンピュータ可読媒体。
  15. 前記環境素子が骨としてモデル化された時は、該環境素子の少なくとも1つの衝突プリミティブは、該骨を囲む仮想3D形状を有していることを特徴とする、請求項6記載のコンピュータ可読媒体。
  16. 前記環境素子が相互に連結した複数の骨としてモデル化された時は、該環境素子の少なくとも1つの衝突プリミティブは、それぞれの骨を囲む仮想3D形状の配列を有していることを特徴とする、請求項6記載のコンピュータ可読媒体。
  17. 前記環境素子の少なくとも1つの衝突プリミティブの少なくとも1つはカプセルを有していることを特徴とする、請求項14記載のコンピュータ可読媒体。
  18. 前記環境素子が動くと、前記カプセルがベースポイント周りで屈曲することを特徴とする、請求項17記載のコンピュータ可読媒体。
  19. 前記ベースポイントは、前記仮想カメラの視野内には存在しないことを特徴とする、請求項18記載のコンピュータ可読媒体。
  20. 前記環境素子の移動の程度は、該環境素子の前記衝突プリミティブに作用されたトルクに対応していることを特徴とする、請求項4記載のコンピュータ可読媒体。
  21. 前記方法は更に、作用するトルクを演算することを特徴とする、請求項20記載のコンピュータ可読媒体。
  22. 作用するトルクの演算は、前記衝突により生じる衝突トルクの機能及び、前記環境素子に関連付けられた反発力を演算するによることを特徴とする、請求項21記載のコンピュータ可読媒体。
  23. 前記環境素子が動く前に、該環境素子は自然位置を占領しており、前記方法は更に、前記仮想カメラが追加的に動くと、該環境素子が、その自然位置に戻るようにレンダリングすることを特徴とする、請求項1記載のコンピュータ可読媒体。
  24. 前記環境素子が動く前に、移動した該環境素子部分は自然位置を占領しており、前記方法は更に、前記カメラ衝突プリミティブと該環境素子部分の衝突プリミティブとがもはや衝突していないと検知されると、該環境素子部分が、その自然位置に戻るようにレンダリングすることを特徴とする、請求項4記載のコンピュータ可読媒体。
  25. 前記カメラ衝突プリミティブと、前記環境素子の少なくとも1つの衝突プリミティブとの衝突が検知された時、前記仮想カメラは該環境素子と衝突しないことを特徴とする、請求項4記載のコンピュータ可読媒体。
  26. 前記環境素子内で前記仮想カメラが動くと、該仮想環境内で該仮想カメラが平行移動(translation)するか、仮想環境内での固定位置に対して仮想カメラの方位を変化させるかのいずれかであることを特徴とする、請求項1記載のコンピュータ可読媒体。
  27. 前記仮想カメラの動きは、前記ビデオゲームのプレイヤから受けた入力と、前記処理実体による処理の結果であることを特徴とする、請求項3記載のコンピュータ可読媒体。
  28. 前記環境素子は、植物、葦、枝、葉、つる、藻、旗、ビーズカーテン、垂直ブラインド、及び死骸のいずれかであることを特徴とする、請求項1記載のコンピュータ可読媒体。
  29. 仮想環境における仮想カメラの視野にシーンの展開を描写させる形で、画像フレームを作成し、該シーンには、環境素子が含まれており、
    該仮想環境内で該仮想カメラの動きに応じて、前記画像フレーム内に該環境素子の動きの様子をレンダリングする、
    ことからなることを特徴とする、方法
  30. 処理実体により実行させることにより、該処理実体に方法を実行させることが出来るコンピュータ可読命令からなるコンピュータ可読媒体において、該方法は、
    ビデオゲーム用の仮想環境を維持し、該仮想環境には仮想カメラ、注目のオブジェクト、少なくとも一部が該仮想カメラと該注目のオブジェクト間に配置されている環境素子が含まれており、
    ビデオゲーム内でシーンの展開を描写しつつ、一連の画像フレームを作成し、該シーンには該仮想カメラの視野内に前記仮想環境からのオブジェクトが含まれており、
    多数の画像フレームの進行に亘り、前記環境素子の一部の動きの様子をレンダリングして、移動した環境素子の一部がそれまで占領していた少なくとも1部のシーンに前記注目のオブジェクトを更に現わす、ことからなることを特徴とする、コンピュータ可読媒体。
  31. ビデオゲーム用の仮想環境を維持し、該仮想環境には仮想カメラ、注目のオブジェクト、少なくとも一部が該仮想カメラと該注目のオブジェクト間に配置されている環境素子が含まれており、
    ビデオゲーム内でシーンの展開を描写しつつ、一連の画像フレームを作成し、該シーンには該仮想カメラの視野内に前記仮想環境からのオブジェクトが含まれており、
    多数の画像フレームの進行に亘り、該環境素子の一部の動きの様子をレンダリングして、移動した該環境素子の一部がそれまで占領していたシーンの少なくとも1部に該注目のオブジェクトを更に現わす、ことからなることを特徴とする、方法。
JP2017230189A 2017-09-01 2017-11-30 ビデオゲーム画像レンダリング方法及びシステム Active JP6960317B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/694,574 US10751621B2 (en) 2017-09-01 2017-09-01 Method and system for rendering video game images
US15/694574 2017-09-01

Publications (3)

Publication Number Publication Date
JP2019046430A true JP2019046430A (ja) 2019-03-22
JP2019046430A5 JP2019046430A5 (ja) 2020-12-24
JP6960317B2 JP6960317B2 (ja) 2021-11-05

Family

ID=60452412

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017230189A Active JP6960317B2 (ja) 2017-09-01 2017-11-30 ビデオゲーム画像レンダリング方法及びシステム

Country Status (4)

Country Link
US (1) US10751621B2 (ja)
EP (1) EP3451297A1 (ja)
JP (1) JP6960317B2 (ja)
CA (1) CA2984295C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021117990A (ja) * 2020-01-29 2021-08-10 グリー株式会社 コンピュータプログラム、サーバ装置、端末装置、及び方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3779644B1 (en) * 2018-03-26 2023-03-08 Sony Group Corporation Information processing device and information processing method
JP7223610B2 (ja) * 2019-03-22 2023-02-16 任天堂株式会社 画像処理プログラム、画像処理システム、画像処理装置、および画像処理方法
JP7233399B2 (ja) * 2020-06-23 2023-03-06 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
CN112206528B (zh) * 2020-10-12 2024-03-01 网易(杭州)网络有限公司 植被模型渲染方法、装置、设备及存储介质
CN112807684A (zh) * 2020-12-31 2021-05-18 上海米哈游天命科技有限公司 一种遮挡物信息获取方法、装置、设备及存储介质
CN113426113A (zh) * 2021-07-05 2021-09-24 未来科技(襄阳)有限公司 3d游戏启动器及2d游戏的3d启动方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002042152A (ja) * 2000-07-25 2002-02-08 Namco Ltd 画像処理装置、画像処理方法、および画像処理用プログラムを記録した記録媒体
JP2009059111A (ja) * 2007-08-30 2009-03-19 Square Enix Holdings Co Ltd 画像生成装置及び方法、並びにプログラム及び記録媒体
JP2016171989A (ja) * 2015-03-16 2016-09-29 株式会社スクウェア・エニックス プログラム、記録媒体、情報処理装置及び制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014145A (en) * 1997-07-07 2000-01-11 International Business Machines Corporation Navagation with optimum viewpoints in three-dimensional workspace interactive displays having three-dimensional objects with collision barriers
US7574024B2 (en) * 2000-10-02 2009-08-11 The Research Foundation Of State University Of New York Centerline and tree branch skeleton determination for virtual objects
US7146297B2 (en) 2002-03-27 2006-12-05 Intel Corporation Detecting collisions of three-dimensional models
US7403202B1 (en) * 2005-07-12 2008-07-22 Electronic Arts, Inc. Computer animation of simulated characters using combinations of motion-capture data and external force modelling or other physics models
US20100251185A1 (en) * 2009-03-31 2010-09-30 Codemasters Software Company Ltd. Virtual object appearance control
US9616339B2 (en) * 2014-04-24 2017-04-11 Microsoft Technology Licensing, Llc Artist-directed volumetric dynamic virtual cameras
JP6649742B2 (ja) * 2015-10-27 2020-02-19 株式会社コーエーテクモゲームス 情報処理装置、動作制御方法及び動作制御プログラム
JP6576874B2 (ja) * 2016-04-08 2019-09-18 任天堂株式会社 画像処理装置、画像処理システムおよび画像処理方法
EP3616035B1 (en) * 2017-06-19 2024-04-24 Apple Inc. Augmented reality interface for interacting with displayed maps

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002042152A (ja) * 2000-07-25 2002-02-08 Namco Ltd 画像処理装置、画像処理方法、および画像処理用プログラムを記録した記録媒体
JP2009059111A (ja) * 2007-08-30 2009-03-19 Square Enix Holdings Co Ltd 画像生成装置及び方法、並びにプログラム及び記録媒体
JP2016171989A (ja) * 2015-03-16 2016-09-29 株式会社スクウェア・エニックス プログラム、記録媒体、情報処理装置及び制御方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SELAN RODRIGUES DOS SANTOS ET AL.: "Camera Control Based on Rigid Body Dynamics for Virtual Environments", [ONLINE], JPN6021036308, June 2009 (2009-06-01), ISSN: 0004593856 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021117990A (ja) * 2020-01-29 2021-08-10 グリー株式会社 コンピュータプログラム、サーバ装置、端末装置、及び方法
US11475609B2 (en) 2020-01-29 2022-10-18 Gree, Inc. Computer program, server device, terminal device, and method for moving gift in virtual space
JP7296411B2 (ja) 2020-01-29 2023-06-22 グリー株式会社 コンピュータプログラム、サーバ装置、端末装置、及び方法

Also Published As

Publication number Publication date
EP3451297A1 (en) 2019-03-06
JP6960317B2 (ja) 2021-11-05
US10751621B2 (en) 2020-08-25
CA2984295A1 (en) 2019-03-01
US20190070505A1 (en) 2019-03-07
CA2984295C (en) 2021-04-13

Similar Documents

Publication Publication Date Title
JP6960317B2 (ja) ビデオゲーム画像レンダリング方法及びシステム
US10022628B1 (en) System for feature-based motion adaptation
JP6129910B2 (ja) アニメーションについての従属グラフ評価のシステム及び方法
JP6970508B2 (ja) プローブを用いた拡散形グローバルイルミネーション(diffuse global illumination)のための方法、システム及びコンピュータ可読媒体
US10596467B2 (en) System and method for determining curved path of travel for a character in cover mode in a game environment
US10537805B2 (en) System and method for placing a character animation at a location in a game environment
JP6983521B2 (ja) 画像処理方法及びコンピュータ可読媒体
US20230334744A1 (en) Method and apparatus for generating walk animation of virtual role, device and storage medium
US11816772B2 (en) System for customizing in-game character animations by players
CA3105308A1 (en) Systems and methods for changing a state of a game object in a video game
US8538736B1 (en) System and method for simulating object weight in animations
EP3381524B1 (en) Controlling locomotion of a plurality of non-player characters in a simulated multi-dimensional world space
EP3254742A1 (en) System and method for placing a character animation at a location in a game environment
US20240161371A1 (en) Asystem for customizing in-game character animations by players
JP4782631B2 (ja) プログラム、情報記憶媒体及び画像生成システム
EP3254741B1 (en) System and method for determining curved path of travel for a character in cover mode in a game environment
Abi Chakra Priority based level of detail approach for interpolated animations of articulated models
Chow AI role playing game development

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210908

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211011

R150 Certificate of patent or registration of utility model

Ref document number: 6960317

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150