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

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

▶ 株式会社 ラセングルの特許一覧

特開2023-150304画像生成方法、画像生成装置、およびプログラム
<>
  • 特開-画像生成方法、画像生成装置、およびプログラム 図1
  • 特開-画像生成方法、画像生成装置、およびプログラム 図2
  • 特開-画像生成方法、画像生成装置、およびプログラム 図3
  • 特開-画像生成方法、画像生成装置、およびプログラム 図4
  • 特開-画像生成方法、画像生成装置、およびプログラム 図5
  • 特開-画像生成方法、画像生成装置、およびプログラム 図6
  • 特開-画像生成方法、画像生成装置、およびプログラム 図7
  • 特開-画像生成方法、画像生成装置、およびプログラム 図8
  • 特開-画像生成方法、画像生成装置、およびプログラム 図9
  • 特開-画像生成方法、画像生成装置、およびプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023150304
(43)【公開日】2023-10-16
(54)【発明の名称】画像生成方法、画像生成装置、およびプログラム
(51)【国際特許分類】
   G06T 19/00 20110101AFI20231005BHJP
   A63F 13/52 20140101ALI20231005BHJP
   A63F 13/55 20140101ALI20231005BHJP
【FI】
G06T19/00 A
A63F13/52
A63F13/55
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022059344
(22)【出願日】2022-03-31
(71)【出願人】
【識別番号】522039773
【氏名又は名称】株式会社 ラセングル
(74)【代理人】
【識別番号】100153246
【弁理士】
【氏名又は名称】伊吹 欽也
(72)【発明者】
【氏名】奥屋 武志
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050BA08
5B050BA09
5B050BA13
5B050CA07
5B050DA10
5B050EA07
5B050EA12
5B050EA18
5B050EA19
5B050EA24
5B050EA28
5B050FA02
5B050FA09
(57)【要約】
【課題】物体の動きを表現するための非写実的な演出に対する処理負荷を低減することが可能な画像生成方法、画像生成装置、およびプログラムを提供すること。
【解決手段】
移動対象の物体である剣40に対して相対位置に位置決めされた点オブジェクトの位置座標を取得し、軌跡点群データに取得した位置座標を追加し(ステップS33)、軌跡点群データに基づいて、仮想空間において線状ブラーの骨格としての少なくとも1つの四角形ポリゴンを生成し(ステップS35)、生成された少なくとも1つの四角形ポリゴンを所定の色に塗る(ステップS35)。
【選択図】図3

【特許請求の範囲】
【請求項1】
仮想空間において、所定の物体が移動した際に該物体の移動方向とは反対側に線状ブラーを生成する画像生成方法であって、前記物体の移動の開始からk番目(kは、2以上の整数)のフレームに対する前記線状ブラーを生成する画像生成方法であって、
前記物体に対して相対位置に位置決めされた仮想点の前記仮想空間における位置座標を取得する工程であって、前記k番目のフレームにおける前記物体に対応する前記仮想点の位置座標を取得し、前記物体の移動の開始時である1番目のフレームから前記k番目のフレームの各々に対する前記仮想点の位置座標を集約した情報に前記取得した位置座標を追加する工程と、
前記集約した情報に基づいて、前記仮想空間において前記線状ブラーの骨格としての少なくとも1つの四角形ポリゴンを生成する工程と、
前記生成された少なくとも1つの四角形ポリゴンを所定の色に塗る工程と
を有することを特徴とする画像生成方法。
【請求項2】
前記四角形ポリゴンを生成する工程は、連続する2つのフレームの各々の仮想点の位置に基づいて前記四角形ポリゴンの4つの頂点を決める工程であって、該4つの頂点のうち線状ブラーの上流側の2つの頂点を前記連続する2つのフレームの前の方のフレームに対応する仮想点の位置に基づいて決められた2つの位置とし、前記4つの頂点のうち線状ブラーの下流側の2つの頂点を前記連続する2つのフレームにおいて後ろの方のフレームに対応する仮想点の座標に基づいて決められた2つの位置とすることを特徴とする請求項1に記載の画像生成方法。
【請求項3】
仮想空間において、所定の物体が移動した際に該物体の移動方向とは反対側に線状ブラーを生成する画像生成方法であって、
前記線状ブラーの各々について、前記物体の移動から現時点までの各フレームにおける前記物体に対して相対位置に位置決めされた仮想点の位置座標を各々取得する工程と、
テッセレーション機能により、前記物体の移動に伴う仮想点の軌跡に沿った少なくとも1つの四角形ポリゴンを生成する工程と、
前記生成された少なくとも1つの四角形ポリゴン内の各ピクセルを描画する工程とを有し、
前記テッセレーション機能は、前記取得した仮想点の位置座標の各々に基づいて前記少なくとも1つの四角形ポリゴンの各頂点の位置座標を算出するように適合されていることを特徴とする画像生成方法。
【請求項4】
所定のタイミングで所定の物体の移動の開始からN番目(Nは2以上の整数)のフレームまで発生する線状ブラーを生成する画像生成装置であって、
前記N番目のフレームまでの各フレームにおいて、前記物体に対して相対位置に位置決めされた仮想点の位置座標を取得する手段と、
前記物体の移動に伴う仮想点の軌跡に沿うように少なくとも1つの四角形ポリゴンを生成する手段であって、前記仮想点の位置座標に基づいて前記四角形ポリゴンの各頂点を取得する手段と、
前記四角形ポリゴンを所定の色に塗る手段と
を備えることを特徴とする画像生成装置。
【請求項5】
コンピュータに、
仮想空間において、所定の物体が移動した際に該物体の移動方向とは反対側に線状ブラーを生成する画像生成方法であって、前記物体の移動の開始からk番目(kは、2以上の整数)のフレームに対する前記線状ブラーを生成する画像生成方法を実行させるプログラムであって、
前記画像生成方法は、
前記物体に対して相対位置に位置決めされた仮想点の前記仮想空間における位置座標を取得する工程であって、前記k番目のフレームにおける前記物体に対応する前記仮想点の位置座標を取得し、前記物体の移動の開始時である1番目のフレームから前記k番目のフレームの各々に対する前記仮想点の位置座標を集約した情報に前記取得した位置座標を追加する工程と、
前記集約した情報に基づいて、前記仮想空間において前記線状ブラーの骨格としての少なくとも1つの四角形ポリゴンを生成する工程と、
前記生成された少なくとも1つの四角形ポリゴンを所定の色に塗る工程と
を有することを特徴とするプログラム。
【請求項6】
コンピュータに、
仮想空間において、所定の物体が移動した際に該物体の移動方向とは反対側に線状ブラーを生成する画像生成方法を実行させるプログラムであって、
前記画像生成方法は、
前記線状ブラーの各々について、前記物体の移動から現時点までの各フレームにおける前記物体に対して相対位置に位置決めされた前記少なくとも1つの線状ブラーの数と同数の仮想点の位置座標を各々取得する工程と、
テッセレーション機能により、前記物体の移動に伴う仮想点の軌跡に沿った少なくとも1つの四角形ポリゴンを生成する工程と、
前記生成された少なくとも1つの四角形ポリゴン内の各ピクセルを描画する工程とを有し、
前記テッセレーション機能は、前記取得した仮想点の位置座標の各々に基づいて前記少なくとも1つの四角形ポリゴンの各頂点の位置座標を算出するように適合されていることを特徴とするプログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像生成方法、画像生成装置、およびプログラムに関する。
【背景技術】
【0002】
アニメーションやゲームにおけるコンピュータグラフィックス(CG)において、非写実的な動きの効果の表現方法が種々提案されている。非特許文献1には、キャラクタが高速で移動していることを誇張表現する技術として、移動した物体の後方(移動方向と反対方向)に線状のブラーを生成するものが開示されている。非特許文献1では、対象となるキャラクタを複数の面に分割し、分割したそれぞれの面に対応して一本の線を描画することにより線状のブラーを生成している。
【0003】
こういった非写実的なエフェクトを生成する機能はゲームエンジンにも実装されてきている。ゲームエンジンであるUnityにおけるTrail Rendererを活用すれば、シーン内でオブジェクトが動くときに、その後ろにトレイル(軌跡)を作成することができ、オブジェクトの動きを強調することができる(非特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【非特許文献1】大林 正一、他2名、“3Dアニメーションのためのカトゥーンブラー”、画像電子学会、情報処理学会、Visual Computing/グラフィクスとCAD合同シンポジウム 2005、pp.179―116、2005年6月
【特許文献2】Unity Trail Rendererマニュアル、インターネット<https://docs.unity3d.com/ja/2018.4/Manual/class-TrailRenderer.html>
【発明の概要】
【発明が解決しようとする課題】
【0005】
ゲームをより盛り上げるために美麗なグラフィックスや多彩なエフェクトを組み込むことが多いが、ゲームでは描画がリアルタイム処理である以上、グラフィクスの質やエフェクトの種類や量と処理負荷とにはある意味トレードオフが存在すると言える。すなわち、所定のフレームレート(例えば、30fps)のゲームの場合、例えばエフェクトの数を増やすとその分処理も重くなって画像の生成に遅れが生じることがあり、その結果フレームレートが上記所定のフレームレートよりも実質的に一時的に落ち、映像がカクついてしまう、という事態が発生し得る。よって、よりリッチな演出を実現するためにグラフィックスを綺麗にしたり、エフェクトの種類や数を増やしたいところではあるが、処理負荷の増加による影響を考慮しなければならないのである。
【0006】
このようなことは、ゲームに限らずリアルタイムな画像生成が必要なものに対して言えるものであり、リアルタイムレンダリング等においてグラフィックスの質の向上やより多彩な演出の実現には、処理負荷の観点から制限が課せられていると言えるかもしれない。
【0007】
本発明は、このような課題に鑑みてなられたものであって、その目的とするところは、物体の動きを表現するための非写実的な演出に対する処理負荷を低減することが可能な画像生成方法、画像生成装置、およびプログラムを提供することにある。
【課題を解決するための手段】
【0008】
このような目的を達成するために、本発明の第一の態様は、仮想空間において、所定の物体が移動した際に該物体の移動方向とは反対側に線状ブラーを生成する画像生成方法であって、前記物体の移動の開始からk番目(kは、2以上の整数)のフレームに対する前記線状ブラーを生成する画像生成方法であって、前記物体に対して相対位置に位置決めされた仮想点の前記仮想空間における位置座標を取得する工程であって、前記k番目のフレームにおける前記物体に対応する前記仮想点の位置座標を取得し、前記物体の移動の開始時である1番目のフレームから前記k番目のフレームの各々に対する前記仮想点の位置座標を集約した情報に前記取得した位置座標を追加する工程と、前記集約した情報に基づいて、前記仮想空間において前記線状ブラーの骨格としての少なくとも1つの四角形ポリゴンを生成する工程と、前記生成された少なくとも1つの四角形ポリゴンを所定の色に塗る工程とを有することを特徴とする。
【0009】
本発明の第二の態様は、仮想空間において、所定の物体が移動した際に該物体の移動方向とは反対側に線状ブラーを生成する画像生成方法であって、前記線状ブラーの各々について、前記物体の移動から現時点までの各フレームにおける前記物体に対して相対位置に位置決めされた仮想点の位置座標を各々取得する工程と、テッセレーション機能により、前記物体の移動に伴う仮想点の軌跡に沿った少なくとも1つの四角形ポリゴンを生成する工程と、前記生成された少なくとも1つの四角形ポリゴン内の各ピクセルを描画する工程とを有し、前記テッセレーション機能は、前記取得した仮想点の位置座標の各々に基づいて前記少なくとも1つの四角形ポリゴンの各頂点の位置座標を算出するように適合されていることを特徴とする。
【0010】
本発明の第三の態様は、所定のタイミングで所定の物体の移動の開始からN番目(Nは2以上の整数)のフレームまで発生する線状ブラーを生成する画像生成装置であって、前記N番目のフレームまでの各フレームにおいて、前記物体に対して相対位置に位置決めされた仮想点の位置座標を取得する手段と、前記物体の移動に伴う仮想点の軌跡に沿うように少なくとも1つの四角形ポリゴンを生成する手段であって、前記仮想点の位置座標に基づいて前記四角形ポリゴンの各頂点を取得する手段と、前記四角形ポリゴンを所定の色に塗る手段とを備えることを特徴とする。
【0011】
本発明の第四の態様は、コンピュータに、仮想空間において、所定の物体が移動した際に該物体の移動方向とは反対側に線状ブラーを生成する画像生成方法であって、前記物体の移動の開始からk番目(kは、2以上の整数)のフレームに対する前記線状ブラーを生成する画像生成方法を実行させるプログラムであって、前記画像生成方法は、前記物体に対して相対位置に位置決めされた仮想点の前記仮想空間における位置座標を取得する工程であって、前記k番目のフレームにおける前記物体に対応する前記仮想点の位置座標を取得し、前記物体の移動の開始時である1番目のフレームから前記k番目のフレームの各々に対する前記仮想点の位置座標を集約した情報に前記取得した位置座標を追加する工程と、前記集約した情報に基づいて、前記仮想空間において前記線状ブラーの骨格としての少なくとも1つの四角形ポリゴンを生成する工程と、前記生成された少なくとも1つの四角形ポリゴンを所定の色に塗る工程とを有することを特徴とする。
【0012】
本発明の第五の態様は、コンピュータに、仮想空間において、所定の物体が移動した際に該物体の移動方向とは反対側に線状ブラーを生成する画像生成方法を実行させるプログラムであって、前記画像生成方法は、前記線状ブラーの各々について、前記物体の移動から現時点までの各フレームにおける前記物体に対して相対位置に位置決めされた前記少なくとも1つの線状ブラーの数と同数の仮想点の位置座標を各々取得する工程と、テッセレーション機能により、前記物体の移動に伴う仮想点の軌跡に沿った少なくとも1つの四角形ポリゴンを生成する工程と、前記生成された少なくとも1つの四角形ポリゴン内の各ピクセルを描画する工程とを有し、前記テッセレーション機能は、前記取得した仮想点の位置座標の各々に基づいて前記少なくとも1つの四角形ポリゴンの各頂点の位置座標を算出するように適合されていることを特徴とする。
【発明の効果】
【0013】
本発明によれば、物体の動きを表現するための非写実的な演出に対する処理負荷を低減することが可能である。
【図面の簡単な説明】
【0014】
図1】本発明の一実施形態に係る情報処理装置の概略構成を示す図である。
図2】本発明の一実施形態に係るテッセレーションを説明するための図である。
図3】本発明の一実施形態に係る線状ブラーを生成する処理手順を示すフローチャートである。
図4】本発明の一実施形態に係る線状ブラーを示す模式図である。
図5】本発明の一実施形態に係る線状ブラーの生成を説明するための模式図である。
図6】本発明の一実施形態に係る点オブジェクトの位置を説明するための模式図である。
図7図3に示すフローチャートにおけるステップS35の処理手順を示すフローチャートである。
図8】本発明の一実施形態に係る線状ブラーを構成することになる四角形ポリゴンの概念図である。
図9】本発明の一実施形態に係る仮想空間における四角形ポリゴンの生成を説明するための模式図である。
図10】本発明の一実施例に係る線状ブラーのレンダリング画像を示す図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して、本発明の実施の形態を説明するが、本発明は本実施形態に限定されるものではない。なお、以下で説明する図面で、同機能を有するものは同一符号を付け、その繰り返しの説明は省略することもある。
【0016】
本発明は、2D(Two Dimensions)、3D(Three Dimensions)を問わずコンピュータグラフィックス(CG;Computer Graphics)において、所定のタイミングで所定の物体が移動したときに該物体の移動の軌跡を表現する線状ブラーを生成するものである。
【0017】
本明細書において「線状ブラー」とは、物体の移動の軌跡を表現するためのものであって、該物体の移動方向とは反対側に生成される少なくとも1本の線で構成されたエフェクト(線によって表現されたブラー)である。このような線で表現されたブラーは現実世界では有り得ないので、非写実的なブラー(非現実的なブラー)とも言える。このように線状ブラーを生成することによって、物体の移動方向や移動スピード、移動の程度を強調することができる。線状ブラーは直線状であっても良いし、曲線状であっても良い。また、線ブラーの線の長さを変えることによって、物体の移動距離(移動幅)を強調することもでき、また線ブラーの太さを変えることによって移動している物体の迫力度を変えることもできる。すなわち、線状ブラーの長さや太さを任意に決めることができ、線状ブラーが複数本ある場合、各々の太さや長さを変えても良い。本発明の線状ブラーによれば、移動している物体に対してより多彩な表現を実現することができる。
【0018】
以下、ゲームを例に本発明の一実施形態を説明する。本実施形態に係るゲームは2Dのゲームであって、剣を持ったキャラクタをプレイヤが操作するアクションゲームであり、プレイヤの操作によって剣が振られた際に該剣から線状のブラーが生成される。
【0019】
図1は、本実施形態に係るゲーム処理装置100の概略構成を示す図である。ゲーム処理装置100は、家庭用の据え置き型ゲーム機であるが、ゲーム用PC(Personal Computer)やアーケードゲーム機、携帯用ゲーム機等、他のゲーム機であっても良い。
【0020】
ゲーム処理装置100は、CPU(Central Processing Unit)101、GPU(Graphics Processing Unit)102、ストレージ103、メモリ104、出力インタフェース(I/F)105、リーダ106、リーダインタフェース(I/F)107、入力インタフェース(I/F)108、通信モジュール109を備えている。ゲーム処理装置100には、出力I/F105を介して表示部110が接続され、また入力I/F108を介して入力部111が接続される。
【0021】
CPU101は、種々の演算、制御、判別などの処理動作を実行するものであり、例えばストレージ103から所定のプログラムをメモリ104にロードし、該プログラムに含まれる一連の命令を実行することによって、様々な処理を実行するよう機能する。
【0022】
GPU102は、画像処理を行うためのプロセッサであって、CPU101からの所定の命令に応じて画像を描画し、表示部110に画像を表示させる。本実施形態では、GPU102はDirect 3D 11準拠のGPUであり、図2に示すテッセレーション201を含むレンダリングパイプライン200を実行することができる。テッセレーション201において典型的には、ハルシェーダ203は、ポリゴン分割のための最適な制御点を算出し、テッセレータ204は、算出された制御点に基づいてポリゴンを分割し、ドメインシェーダ205は、制御点に沿って頂点座標を算出する。本実施形態では、頂点シェーダ202、ハルシェーダ203、ドメインシェーダ205、ジオメトリシェーダ206、フラグメントシェーダ208はそれぞれプログラマブルなシェーダであり、それら各シェーダを実行するシェーダプログラムはそれぞれストレージ103に格納されている。また、テッセレータ204およびラスタライザ207はそれぞれGPU102に設けられた専用回路(ハードウエア)である。なお、上記レンダリングパイプライン200に含まれる各種シェーダ、テッセレータ204、ラスタライザ207はそれぞれ、ソフトウエアで構成されていても良いし、ハードウエアで構成されていても良い。
【0023】
ストレージ103は、CPU101が読み出して実行するためのプログラム(例えば、通信モジュール109を介してダウンロードされたゲームプログラムや図3に示すプログラム、各種シェーダプログラム等)及び各種のデータが格納されている。メモリ104は、データ及びプログラムを一時的に保持する。メモリ104は、揮発性メモリであり、CPU101やGPU102の処理動作中のデータや入力データ、さらにはリーダ106にて読み取られたゲームプログラムを一時的に格納するものであって、例えばRAM(Random Access Memory)である。メモリ104は、CPU101のデータ処理に使われるCPU側メモリ104aと、GPU102のデータ処理に使われるGPU側メモリ104bとを有する。
【0024】
出力I/F105は、CPU101やGPU102の指令に従って、ディスプレイといった表示部110に映像を表示する。リーダ106は、ゲーム処理装置100に設けられ、所定のゲームプログラムが格納されたメモリカードやDVD(Digital Versatile Disc)といった外部記憶媒体を装着可能に構成され、該装着された外部記憶媒体から所定のデータ(ゲームプログラム等)を読み取る。リーダI/F107は、CPU101からの指令に応じて、リーダ106に装着された外部記憶媒体からのデータの読み取りを行う。入力I/F108は、コントローラ等の入力部111を介してプレイヤが操作することによって入力された操作に関する入力信号を受付ける。通信モジュール109は、通信回路網に接続されて、通信回路網に接続されている他のコンピュータと通信する。この通信は有線であっても無線であっても良い。通信モジュール109を介して所謂オンラインゲームを実行しても良い。
【0025】
図3は、本実施形態に係る線状ブラーを生成する処理手順を示すフローチャートである。図3に示す画像生成の方法は、所定のゲームを構成する一フレーム(各フレーム)毎の線状ブラーを生成するものである。本処理は、CPU101がストレージ103に格納された図3に示すプログラムを読み出し、該プログラムを実行することによって行われる。
【0026】
上述のように、本実施形態に係るゲームにおいては、移動する物体(オブジェクト)である振られた剣から線状ブラーが生成されるので、所定のタイミングにおいて入力部111によりプレイヤから線状ブラー生成対象の剣を振ることを示すボタン入力があると本処理は開始される。なお、本実施形態では、上記ボタン入力により剣が振られると、該剣の動き始めのフレームからN(Nは2以上の整数)フレームだけM個(Mは1以上の整数)の線状ブラーが発生する。すなわち、剣の振りはじめからNフレーム分の時間(持続時間)が経つと線ブラーは消えることになる。本実施形態では、現在が何番目のフレーム処理になるかを把握するため、各フレームの処理が終わる毎に処理したフレーム数をカウントすることとする。すなわち、CPU101は、現在のフレーム処理が終わるとCPU側メモリ104aにて処理済みフレームのカウント数を累積させる。
【0027】
なお、本実施形態においては、線状ブラーが発生するフレーム数であるNを2以上の整数とすることは重要である。何故ならば、線状ブラーは移動している剣の軌跡でもあるので時間的に離散した2つ以上のフレームの情報があって初めてどのように移動したかが分かるためでる。また、後述するように本実施形態の線状ブラーは、前後するフレームにて取得された点オブジェクト(後述)の各々に基づいて生成された四角形ポリゴンが線状ブラーを構成することになり、該四角形ポリゴンを生成する必要があるからである。この四角形ポリゴンを生成するために少なくとも連続した2つのフレームが必要であるので、本実施形態では、持続時間に係るフレーム数Nは2以上の整数でなければならないのである。
【0028】
図4は、本実施形態に係る線状ブラーを説明するための模式図である。図4に示すように、プレイヤの入力部111を介した剣を振る操作により剣40が矢印方向Pに沿って移動する場合、剣40に対して該剣40の移動方向Pとは反対側に剣40の軌跡を示すように複数の線状ブラー41が生成される。なお、図4において、剣40は移動方向Pに沿って移動することになるので、剣40の振り始め時は(移動が始まるときは)線状ブラー41の一方端42に剣40が位置することになり、時系列的に剣40の振りの動作(移動)に沿って線状ブラー41は一方端42から移動方向P側に延びていくことになる。よって、一方端42は、線状ブラー41の起点(剣40の振り(移動)に伴う軌跡の起点)と言える。
【0029】
ステップS31では、CPU101は、移動対象の物体(オブジェクト)に対して生成する線状ブラーの起点となる位置に点オブジェクトをM個だけゲーム中の空間(仮想空間)に配置する。すなわち、CPU101は、図5に示すように、仮想空間に配置された剣40(仮想空間において、剣の移動(振り出し)を指示する入力がプレイヤからあった際の位置に配置された剣40)に対して所定の相対位置にM個の点オブジェクト51を配置する。上記点オブジェクトとは、線状ブラー生成の基準となる仮想点である。本実施形態において、点オブジェクトは剣40の動きに応じてフレーム毎に移動するものであり、剣40に対して所定の相対位置に位置決めされる。よって、上記仮想空間において剣40が動けば(その位置(仮想空間中の座標)や向きを変えれば)、点オブジェクト51もその動きに追従して動く(その位置(仮想空間中の座標)を変えること)になる。図5に示すように、本実施形態では、点オブジェクト51は剣40に埋め込まれた相対位置に配置されるが、剣40の外側に点オブジェクト51を配置するようにしても良い。後述するが、各フレームで配置された点オブジェクトを繋げるように線状ブラーが生成されることになるので、本実施形態で重要なことは、どのフレームにおいても剣40(線ブラーのエフェクトをつける対象となる物体)に対して決まった位置に点オブジェクトを配置することであり、剣40に対して相対的に何処の位置に配置するかが問題では無いのである。
【0030】
本実施形態では、本ステップは、フレーム毎の処理に対する事前処理であり、CPU101は、メモリ104にてカウントされた処理済みのフレーム数をリセットする。
【0031】
ステップS32では、CPU101は、現在処理中のフレームが剣40の振り出しの開始からN番目のフレーム処理が終了しているか否かを判定する。CPU101は、CPU側メモリ104aに展開されたカウンタを参照し、カウンタ値(カウント数)がNである場合はN番目のフレームの処理が終了していると判断し(ステップS32のYes)、本処理を終了する。一方、CPU101は、カウンタ値がNではない場合はN番目のフレームの処理が終了していないと判断し(ステップS32のNo)、ステップS33に進む。
【0032】
ステップS33では、CPU101は、現時点(現フレーム)のM個の点オブジェクト各々の位置を取得し、その座標を現フレームにおけるM個の点オブジェクト各々の位置として軌跡点群データに追加する。すなわち、CPU101は、各フレームにおけるM個の点オブジェクトの各々位置座標をまとめた情報となる軌跡点群データをCPU側メモリ104aにおいて形成していく。なお、本実施形態においては、1フレーム目(剣の振り始めから1番目のフレーム)の点オブジェクトの位置はS31にて設定された位置となる。
【0033】
下記表1は、本実施形態に係る軌跡点群データである。本実施形態は2Dゲームであるので、仮想空間は2次元座標系であり、各フレームで位置決めされた点オブジェクトの位置は上記仮想空間の2次元座標系における座標(x、y)となる。例えば現フレームが1フレーム目である場合は、CPU101は、M個の線ブラー(線ブラー1~線ブラーM)の各々について取得された点オブジェクトの位置座標をそれぞれ取得し、表1に示す軌跡点群データのフレーム1「行」に追加していく。同様に、N番目のフレーム処理においては、CPU101は、線ブラー1~線ブラーMの各々について取得された点オブジェクトの位置座標をそれぞれ取得し、表1に示す軌跡点群データのフレームN「行」に追加する。このように、軌跡点群データは、生成すべき線状ブラーの各々について、1番目のフレームから現フレームの各々に対する点オブジェクトの位置(座標)を集約した情報である。
【0034】
【表1】
【0035】
本実施形態では、剣40とステップS31にて位置決めされた点オブジェクトとについて、点オブジェクトが剣40の動きに追従するように階層が組まれている。すなわち、剣を振る動作に従って剣40が移動すると、その移動に追従するように点オブジェクトの位置も移動していくことになる。例えば、図6に示すように1番目であるフレーム1について、1番目の点オブジェクト61の仮想空間における座標(x11、y11)、2番目の点オブジェクト62の座標(x12、y12)、・・・M番目の点オブジェクト63の座標(x1M、y1M)はそれぞれ、ステップS31にて位置決めされた点オブジェクトの各々の座標と同一である。フレーム1の処理においては、CPU101は、この時のM個の点オブジェクトの位置である座標(x11、y11)~(x1M、y1M)を取得し、軌跡点群データに格納する。次いで、初期位置(プレイヤが剣の振り出しを指示したときの剣の位置)から剣40が動きだすと、その動きに追従するように点オブジェクト61~63(M個の点オブジェクトの各々)が各フレームにおいて位置決めされることになるので、CPU101はフレーム2の処理においては、フレーム2における剣40の位置に応じて位置決めされた各点オブジェクト、すなわち、1番目の点オブジェクトの座標(x21、y21)、2番目の点オブジェクトの座標(x22、y22)・・・M番目の点オブジェクトの座標(x2M、y2M)を取得し、軌跡点群データに格納する。各フレームについては順次同様に処理をして、Nフレームの処理においてCPU101は、1番目の点オブジェクトの座標(xN1、yN1)、2番目の点オブジェクトの座標(xN2、yN2)・・・M番目の点オブジェクトの座標(xNM、yNM)を軌跡点群データに格納する。
【0036】
なお、剣40についても、それよりも上位関係にあるもの(例えば、手や肩)との間において、上位部位の動きに追従するように階層を組んでも良いことは言うまでもない。また、リアルタイム処理が必要ではない場合は、各フレームにおける点オブジェクトを人の手で配置(例えばクリエイターが点オブジェクトを配置すること)しても良い。この場合においても、各点オブジェクトの位置座標を取得して集計し、軌跡点群データを作成することになる。
【0037】
ステップS34では、CPU101は、CPU側メモリ104aに保持された現時点の(現フレームまでの)軌跡点群データをGPU側メモリ104bに転送する。これと共にCPU101は、M個の線状ブラーを描画するためにステップS35を実行するようGPU102に描画命令を発行する。CPU101は、該描画命令と共に、線状ブラーの個数Mを示す個数情報をGPU側メモリ104bに送信する。個数情報については、上述のように本実施形態では、M個の線状ブラーを生成する仕様であるので、その数を示す情報を用いれば良い。
【0038】
ステップS35では、CPU101は、軌跡点群データに基づき、GPU102のテッセレーション機能を活用して現フレームに対する線状ブラーの生成をGPU102にさせる。すなわち、CPU101は、剣40の移動方向Pとは反対側に軌跡点群データに基づいて作成された少なくとも1つの四角形ポリゴン(現フレーム数によって生成される四角形ポリゴンの数は変わってくる)を線状ブラーの延在方向に連なるように生成し、それら四角形ポリゴンを所定の色に塗ることによって線状ブラーを生成することをGPU102に実行させる。
【0039】
図7は、本実施形態に係るステップS35におけるGPU102が実行する処理手順を示すフローチャートである。
【0040】
ステップS71では、頂点シェーダ202は、GPU側メモリ104bに格納された個数情報に基づいて、後の四角形ポリゴン生成の基点となる仮想点(基点)をM個生成し、各々に対してそれぞれ異なるIDを付与する。本実施形態では、1番目の線状ブラーに対する基点に付与されるIDをID[1]とし、M番目の線状ブラーに対する基点に付与されるIDをID[M]とする。
【0041】
ステップS72では、ハルシェーダ203は、M個の起点の各々に基づいて、一方向に連なる四角形ポリゴンを生成する組み方を設定する。すなわち、M個の基点の各々に対して(生成すべきM個の線状ブラーの各々に対して)、現在処理中のフレームの序数k(現在処理しているフレームが本処理を開始(剣の振り始め)からk番目のフレーム(kは2以上、かつN以下の整数(2≦k≦Nを満たす整数))を2倍した数の点からなる一方向に連なる四角形ポリゴンを生成する組み方を設定する。本実施形態では、点オブジェクトの位置座標に基づいて生成される四角形ポリゴンが線状ブラーを構成するのだが、本ステップでは生成するべき四角形ポリゴンを構成する頂点同士の繋ぎ方のみ定義されるものであり、各頂点の座標はまだ定義されていない。なお、1番目のフレームについては、ハルシェーダ203は、四角形ポリゴンの数をゼロ個と計算する。
【0042】
図8は、本実施形態に係るハルシェーダ203の処理を説明するための図であって、線状ブラーを構成することになる四角形ポリゴンの生成を説明するための概念図である。図8にて示されているように、ステップS71にて識別された各基点に対して、k×2個の頂点からなる四角形ポリゴンが形成されることになる。すなわち、一方向にk個の点が配列され、その列から所定の長さだけ離間してさらにk個の点を配列することによって、上記一方向に各点を頂点とした四角形ポリゴンが形成されることになる。例えば、図8に示すように、頂点[1、1、1]、[1、2、1]、[1、1、2]、[1、2、2]の4つの頂点から四角形ポリゴン81が形成され、同様に頂点[1、k-1、1]、[1、k、1]、[1、k-1、2]、[1、k、2]の4つの頂点から四角形ポリゴン82が形成される。なお、図8において、[a、b、c]という表記は、各頂点の座標を示すものではなく各頂点を識別するためのラベルであって、括弧内の左側の表記は基点のIDを示し、真ん中の表記は配置された基点の序数(対応するフレームの序数(何番目のフレームか))を示し、右側の表記は該序数に従った配列を識別するものである。
【0043】
例えば、ハルシェーダ203は、四角形ポリゴン81において、頂点[1、1、1]、[1、1、2]はそれぞれフレーム1の点オブジェクトに対応し、頂点[1、2、1]、[1、2、2]はそれぞれフレーム2の点オブジェクトに対応することを定義している。また、ハルシェーダ203は、同一フレーム(フレーム1)に対応する頂点[1、1、1]と頂点[1、1、2]とを結ぶ線分、および同一フレーム(フレーム2)に対応する頂点[1、2、1]と頂点[1、2、2]とを結ぶ線分を四角形ポリゴン81の対向する辺の対の一方とし、連続する2つのフレーム(フレーム1、2)に対応する頂点[1、1、1]と頂点[1、2、1]とを結ぶ線分、および連続する2つのフレームに対応する頂点[1、1、2]と頂点[1、2、2]とを結ぶ線分を四角形ポリゴン81の対向する辺の対の他方とするように定義する。同様にして、ハルシェーダ203は、頂点[1、k-1、1]、[1、k-1、2]がフレームk-1の点オブジェクトに対応し、頂点[1、k、1]、[1、k、2]の頂点がフレームkの点オブジェクトに対応するように定義し、頂点[1、k-1、1]と頂点[1、k-1、2]とを結ぶ線分、および頂点[1、k、1]と頂点[1、k、2]とを結ぶ線分を四角形ポリゴン82(k-1番目の四角形ポリゴン)の対向する辺の対の一方とし、頂点[1、k-1、1]と頂点[1、k、1]とを結ぶ線分、および頂点[1、k-1、2]と頂点[1、k、2]とを結ぶ線分を四角形ポリゴン82の対向する辺の対の他方とするように定義する。
【0044】
ステップS73では、テッセレータ204は、ステップS72にて設定された四角形ポリゴンの組み方に従って実際に四角形ポリゴンを生成する。このようにして図8に示す四角形ポリゴンが生成されるが、この段階でもまだ各頂点の座標は決まっていない。よって、本ステップで生成される四角形ポリゴンは展開すべき空間(仮想空間)においては位置が特定されていないので、仮想四角形ポリゴンと言える。なお、1番目のフレームの場合は、ステップS72にて四角形ポリゴンの数はゼロ個と計算されているので、四角形ポリゴンは生成されない。
【0045】
このように本実施形態では、ハルシェーダ203により、あるフレームに対応させて2つの対の点を仮想四角形ポリゴンの2つの頂点として配置し、そこから離間してその次のフレームに対する2つの対の点を上記仮想四角形ポリゴンの残りの2つの頂点として配置するように定義しており、この定義に従ってテッセレータ204により、線状ブラーの大枠とも言える仮想四角形を生成することになる。
【0046】
ステップS74では、ドメインシェーダ205は、軌跡点群データおよび個数情報に基づいてステップS74で生成された四角形ポリゴン(仮想四角形ポリゴン)のゲーム中の空間(仮想空間)における各頂点の位置を計算し、仮想四角形ポリゴンの各頂点を該計算された各頂点に移動することによって、仮想空間中に形成すべき線状ブラーの骨格である少なくとも1つの四角形ポリゴンを生成する。すなわち、ドメインシェーダ205は、仮想空間に生成される四角形ポリゴンが連なる方向がフレーム1からフレームk(k番目のフレーム)までの各々に対応する各点オブジェクトの座標を繋いだ線分(剣40の移動に伴う点オブジェクトの軌跡と言える)の延在方向に沿うように各頂点を計算し、四角形ポリゴンを生成する。なお、本ステップで生成される四角形ポリゴンを、ステップS73で生成される四角形ポリゴン(仮想四角形ポリゴン)と区別するため、実四角形ポリゴンと言うこともある。また、1番目のフレームについては、ステップS73において仮想四角形ポリゴンは生成されていないので、実四角形ポリゴンも生成されないことになる。
【0047】
図9は、本実施形態におけるドメインシェーダ205の処理を説明するための図であって、仮想空間における四角形ポリゴンの生成を説明するための模式図である。図9では、1番目の線状ブラー(ID[1]の基点から生成された仮想四角形ポリゴンに対応)に対する実四角形ポリゴン群90の生成について説明する。実四角形ポリゴン群とは、フレーム数に応じて生成される少なくとも1つの実四角形ポリゴンを連ねたものである(フレーム数が2の場合は、実四角形ポリゴン群は実質、1つの実四角形ポリゴンとなる)。
【0048】
図9において、符号91はフレーム1における点オブジェクトの位置(座標(x11、y11))であり、符号92はフレーム2における点オブジェクトの位置(座標(x21、y21))である。符号91a、91bはそれぞれ、位置91からLだけ離間した位置であり、距離2L(位置91aと位置1bとの間の距離)は、形成すべき線状ブラーの太さに相当する。符号92a、92bはそれぞれ、位置92からLだけ離間した位置であり、位置92aと92bとの間の距離は線状ブラーの太さ2Lである。ドメインシェーダ205は、軌跡点群データに基づいて位置91の座標から線状ブラーの太さ2Lを考慮した位置座標として位置91a、91bの座標を計算し、(頂点[1、1、1]および頂点[1、1、2]がフレーム1の点オブジェクトに対応するように定義されているので該定義に従って)ステップS73で作成した仮想四角形ポリゴン81の頂点[1、1、1]を位置91aに移動させ、頂点[1、1、2]を位置91bに移動させる。その結果、フレーム1に対応する仮想四角形ポリゴン81の頂点[1、1、1]、[1、1、2]の座標はそれぞれ、位置91a、91bの座標に設定されることになる。同様にして、ドメインシェーダ205は、ステップS73で作成した仮想四角形ポリゴン81の頂点[1、2、1]を位置92aに移動させ、頂点[1、2、2]を位置92bに移動させる。このようにして、ドメインシェーダ205は、仮想空間中に形成すべき線状ブラーの一部となる実四角形ポリゴン93(線状ブラーの起点(位置91、91a、91b)から数えて1番目の実四角形ポリゴン)を生成する。
【0049】
符号94はフレームk-1における点オブジェクトの座標(xk-11、yk-11)であり、符号95はフレームkにおける点オブジェクトの座標(xk1、yk1)である。ドメインシェーダ205は、上述同様にして、軌跡点群データに基づいて位置94の座標から線状ブラーの太さ2Lを考慮した位置座標として位置94a、94bの座標を計算し、(頂点[1、k-1、1]および頂点[1、k-1、2]はフレームk-1の点オブジェクトに対応するように定義されているので該定義に従って)ステップS74で作成した仮想四角形ポリゴン82の頂点[1、k-1、1]を位置94aに移動させ、頂点[1、k-1、2]を位置94bに移動させる。また、ドメインシェーダ205は、軌跡点群データに基づいて位置95の座標から線状ブラーの太さ2Lを考慮した位置座標として位置95a、95bの座標を計算し、ステップS74で作成した仮想四角形ポリゴン82の頂点[1、k、1]を位置95aに移動させ、頂点[1、k、2]を位置95bに移動させる。このようにして、ドメインシェーダ205は、仮想空間中に形成すべき線状ブラーの一部となる実四角形ポリゴン96(線ブラーの起点から数えてk-1番目の実四角形ポリゴン)を生成する。
【0050】
図9において、一点鎖線は、各フレームに対応する点オブジェクトの位置(フレーム1の点オブジェクトの位置91・・・フレームkの点オブジェクトの位置95)を結ぶ線分であって、剣40の振り動作に伴う点オブジェクトの軌跡とも言える(以降、「軌跡97」とも呼ぶ)。本実施形態では、実四角形ポリゴンの各頂点は、対応する点オブジェクトの位置に基づいて決定されるので、仮想四角形ポリゴン群に対して軌跡97の形状に応じて実四角形ポリゴン群90の形状も変形されることになる。
【0051】
このようにして、ドメインシェーダ205は、形成すべき線状ブラーの骨格としての、少なくとも1つの実四角形ポリゴンからなり、点オブジェクト97の延在方向に沿って連なる実四角形ポリゴン群90を生成する。すなわち、ドメインシェーダ205は、フレームk-1(連続する2つのフレームの前の方のフレーム)に対応する点オブジェクトの位置94に基づいて互いに線状ブラーの太さ2Lだけ離間した2つの位置の座標を算出して該2つの位置を実四角形ポリゴン96の2つの頂点とし、フレームk(連続する2つのフレームの後ろの方のフレーム)に対応する点オブジェクトの位置95に基づいて互いに2Lだけ離間した2つの位置の座標を算出して該2つの位置を実四角形ポリゴン96の残りの2つの頂点とすることによって、実四角形ポリゴンを生成する。この処理を、フレーム1からフレームkにおいて連続する2つのフレーム対の各々について行うことにより、ドメインシェーダ205は、少なくとも1つの実四角形ポリゴンからなる実四角形ポリゴン群(現時点での処理がフレーム2の場合は生成される実四角形ポリゴンが1つなので、実四角形ポリゴン群は1つの実四角形ポリゴンとなる)を生成するのである。
【0052】
ステップS75では、ラスタライザ207およびフラグメントシェーダ208は、ステップS74にて生成された実四角形ポリゴン群90を構成する実四角形ポリゴン内の各ピクセルを描画する。すなわち、ラスタライザ207およびフラグメントシェーダ208は、上記生成された実四角形ポリゴンの各々を所定の色(生成すべき線状ブラーの色)に塗る処理を実行する。これにより、線状ブラーが生成されることになる。
【0053】
このようにステップS35では、CPU101は、仮想空間において形成すべき線状ブラーの骨格としての実四角形ポリゴン群90を生成する処理をGPU102に実行させる。より具体的には、例えば実四角形ポリゴン96を生成する場合は、該実四角形ポリゴン96の4つの頂点のうち形成すべき線状ブラーの上流側(線状ブラーの起点側)の2つの頂点をフレームk-1に対応する点オブジェクト94に基づいて決められ、互いに線状ブラーの太さ(距離2L)だけ離間した2つの位置94a、94bとし、上記4つの頂点のうち形成すべき線状ブラーの下流側の2つの頂点をフレームkに対応する点オブジェクト95に基づいて決められ、互いに線状ブラーの太さ(距離2L)だけ離間した2つの位置95a、95bとするようにGPU102は機能するのである。
【0054】
図3に戻り、ステップS36では、CPU101は、GPU102にステップS35にて生成した線状ブラーを表示部110に表示させる。また、CPU101は、CPU側メモリ104aに展開されている処理済みのフレーム数に関するカウンタを1増加させる。このようにして、あるフレームにおける剣40の動きに応じた線状ブラーが生成され、表示部110に表示されるのである。なお、ステップS35では、1番目のフレームについては四角形ポリゴンが生成されていないので、結果的に線状ブラーは表示されない。
【0055】
次いで、ステップS32に戻り、ステップS32にて現在処理するフレームがフレームNか否かを判定し、フレームNではない場合(CPU側メモリ104aのカウンタ値がNよりも小さい場合)、フレームNの処理が終わるまでステップS33~S36を繰り返す。よって、ステップS33~S36は各フレームに対する処理とも言える。
【0056】
なお、本実施形態では、1番目のフレームについては、ステップS35において四角形ポリゴンを生成しないようにしているが、ステップS33とステップS34との間に1番目のフレームの処理か否かを判定するステップを設け、1番目のフレームの処理である場合は、ステップS34、S35を行わず、ステップS36にて線状ブラーを表示しないというモノであっても良い。
【0057】
次に本実施形態の実施例について説明する。
図10は、本実施例を説明するための図であって、本実施例および後述する比較例での作成対象のレンダリング画像を示す図である。図10に示す様に、本実施例および比較例では5本の線状ブラーを生成した。
【0058】
本実施例、および比較例の双方において、以下のスペックのPCを用いた。
用いたPCのスペック:
CPU;Intel(登録商標) Core(TM)i9-9980XE 3.00GHz
RAM;128GB 2666MHz
GPU:NVIDIA(登録商標) GeForceRTX(登録商標) 2080 Ti 11GB
【0059】
(比較例)
比較例においては、上記スペックのPCを用い、ゲームエンジンUnityのTrail RendererによりCPUにて線状ブラーに関するポリゴンを生成して、図10に示す線状ブラーを生成した(従来法)。
【0060】
(本実施例)
本実施例においては、上記スペックのPCを用い、図3に示すプログラムに従い、GPUのテッセレーション機能を応用して図10に示す線状ブラーを生成した。
【0061】
上記比較例、および本実施例により図10に示す線状ブラーを生成する処理時間は以下の通りである。なお、線状ブラー無しのシーン全体の処理時間、および線状ブラー有りのシーン全体の処理時間を求め、ブラー有り処理時間とブラー無し処理時間との差分を線状ブラーを生成する処理時間とした。
【0062】
比較例:0.10ms
本実施例:0.02ms
このように、本実施例によれば、線状ブラーを生成する処理時間について従来法よりも早くすることができる。
【0063】
上記実施例から分かるように、本実施形態によれば、非写実的な演出である線状ブラーの生成をより高速に行うことができ、処理負荷を低減することができる。従って、グラフィックスをより綺麗にしたり、他のエフェクトの種類やその数を増やしても、フレームレートの一時的な低下を低減することができ、ゲームといったリアルタイム処理においてよりより映像の質を上げたり、より多彩な演出を実現することができる。
【0064】
さて、本発明の1つの特徴は、線状ブラーの生成対象となる物体(例えば、剣40)の移動に伴い取得された各フレームに対する点オブジェクトの位置に基づいて、線状ブラーの骨格となる少なくとも1つの四角形ポリゴン(例えば、図9に示す実四角形ポリゴン群90)を生成することであるが、本実施形態のようにGPUのテッセレーション機能を応用して上記処理を実行することでより一層威力を発揮することができる。すなわち、上記比較例に示した従来法では、CPUにより線状ブラーを生成しているのに対して、本実施形態ではGPUを用いて線状ブラーを生成しているので、比較例に比べて高速に線状ブラーを生成することができる。また、比較例において図10に示す線状ブラーからその本数を増やした場合、上記本数の増加に応じて線状ブラーの生成に要するCPUの処理負荷も増加する。一方、本実施形態によれば、1度のGPU描画命令で複数の線状ブラーを並列に描画できるため、生成すべき線状ブラーの数を増やしても処理時間はあまり増加しない。従って、本実施形態によれば、より多数の線状ブラーを高速に生成することができるので、少ない数から多数の線状ブラーまで対応することができ、線状ブラーの演出の幅を広げることができる。
【0065】
このように本実施形態に係るテッセレーション機能への工夫により、テッセレーション機能を応用した線状ブラーの生成が実現されるのであるが、本実施形態におけるテッセレーション機能の活用の方向性や目的と、典型的なテッセレーション機能の活用の方向性や目的とは全く異なる。典型的なテッセレーションは、すでにあるポリゴンをさらに分割するために用いられるものである。これに対して、本実施形態においては、あるポリゴンをより詳細なポリゴンに分割するという典型的な活用ではなく、線状ブラーの骨格となる四角形ポリゴンを新しく産み出すために用いられるものである。すなわち、本実施形態に係るテッセレーションを活用する思想は、既にあるポリゴンをさらに分割するという典型的なものではなく、線状ブラーの骨格となる四角形ポリゴンをゼロから創り出すというものである。本実施形態に適合されたテッセレーション機能は、軌跡点群データ(現在のフレームまでの点オブジェクトの位置(座標))に基づいて、少なくとも1つの実四角形ポリゴンからなり、対象の物体の移動に伴う点オブジェクトの軌跡に沿って連なる実四角形ポリゴン群を新たに生成するように作用し、その結果、上記点オブジェクトの軌跡の形状と同様の形状の線状ブラーが形成されるのである。
【0066】
なお、本実施形態では、ゲーム処理装置100にて実行されるゲームについて説明したが、クラウドを活用したゲームやオンラインゲーム(例えば、スマートフォンなどの携帯端末にて実行されるゲーム)にも適用することができることは言うまでもない。この場合は、画像生成やゲームの処理の少なくとも一部を実行するサーバを設け、プレイヤがゲームを実行するクライアント(携帯端末等)が該サーバと通信しながらゲーム処理を行うことになるが、図3に示す本実施形態に係る処理の全部、あるいは一部を上記サーバにて実行させれば良い。
【0067】
(その他の実施形態)
上述の実施形態では、線状ブラーの発生対象の物体として剣を挙げているが、剣に限らず、斧や槍といった他の武器、銃弾や矢やミサイルといった発射されたもの、自動車や飛行機等の乗り物、人や動物やモンスターといったキャラクタ自身やキャラクタの一部位(腕や足等)、ボールや帽子、紙飛行機といったキャラクタによって投げられたり、蹴られたりしたアイテム等、移動する物体であればいずれにも本発明の線状ブラーの生成方法を適用することができる。
【0068】
また、上述の実施形態では、インタラクティブコンテンツとしてゲームを挙げているがこれに限らず、VR(Vitual Reality)/AR(Augmented Reality)/MR(Mixed Reality)等のXR(Cross Reality)、ライブ配信といった他のインタラクティブコンテンツであっても良い。このようなインタラクティブコンテンツは、リアルタイムに画像生成する必要があるので本実施形態はより一層威力を発揮するが、リアルタイムな画像生成が必ずしも必要ではないCGコンテンツに上述の実施形態を適用することもできることは言うまでもない。このようなものとしては、例えば、アニメ、映画、テレビ番組、CM(Commercial Message)、録画対応の動画配信といった映像コンテンツが挙げられる。また、対象のコンテンツにおいて全てがCGであっても良いし、その一部がCG(例えば、上記ARやVFX(Visual Effects)のように現実の映像にCGを合成するもの等)であっても良い。すなわち、コンテンツの少なくとも一部にCGが使われているモノであれば、いずれにも適用することができる。
【0069】
さらに、上述した実施形態の機能を実現するように前述した実施形態の構成を動作させるプログラム(例えば、図3に示す処理を行うプログラム)を記憶媒体に記憶させ、該記憶媒体に記憶されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も上述の実施形態の範疇に含まれる。すなわち、コンピュータ読み取り可能な記憶媒体も実施例の範囲に含まれる。また、前述のコンピュータプログラムが記憶された記憶媒体はもちろんそのコンピュータプログラム自体も上述の実施形態に含まれる。かかる記憶媒体としてはたとえばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、磁気テープ、不揮発性メモリカード、ROM等を用いることができる。また上述の記憶媒体に記憶されたプログラム単体で処理を実行しているものに限らず、他のソフトウエア、拡張ボードの機能と共同して、OS上で動作し上述の実施形態の動作を実行するものも上述した実施形態の範疇に含まれる。
【符号の説明】
【0070】
100 ゲーム処理装置
101 CPU
102 GPU
103 ストレージ
104 メモリ
202 頂点シェーダ
203 ハルシェーダ
204 テッセレータ
205 ドメインシェーダ
206 ジオメトリシェーダ
207 ラスタライザ
208 フラグメントシェーダ
40 剣
41 線状ブラー
51、61 点オブジェクト
91 実四角形ポリゴン群
91、92、94、95 点オブジェクトの位置
91a、91b、92a、92b、94a、94b、95a、95b 頂点となる位置
93、96 実四角形ポリゴン
97 点オブジェクトの軌跡

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10