(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023106168
(43)【公開日】2023-08-01
(54)【発明の名称】ノード生成用プログラム、ノード生成方法、及びプログラム
(51)【国際特許分類】
G06T 19/00 20110101AFI20230725BHJP
【FI】
G06T19/00 A
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022007336
(22)【出願日】2022-01-20
(71)【出願人】
【識別番号】595000427
【氏名又は名称】株式会社コーエーテクモゲームス
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】坂入 則彰
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050BA12
5B050CA07
5B050DA10
5B050EA07
5B050EA13
5B050EA18
5B050EA19
5B050EA24
5B050EA28
5B050FA02
5B050FA09
5B050GA08
(57)【要約】
【課題】設計者がゲーム等のシミュレーション制御用ノードを生成する場合の設計者の負担を軽減することを目的とする。
【解決手段】本開示は、メッシュ状に分割された2次元仮想空間内のテクスチャの座標値及び3次元仮想空間内のポリゴンメッシュの座標値が関連付けられた座標情報を記憶する記憶部を有する情報処理装置10に、前記テクスチャ内のメッシュの各頂点を所定数グループ化し、前記座標情報を用いて前記グループ化したメッシュの各頂点に対応して前記ポリゴンメッシュ内の頂点をグループ化し、当該ポリゴンメッシュ内の前記グループ化された各グループにおける各ノードの所定位置を算出するポリゴン内位置算出ステップと、前記各所定位置を各ノードの位置とすることで前記各ノードを生成するノード生成ステップとを実行させるノード生成用プログラムである。
【選択図】
図7
【特許請求の範囲】
【請求項1】
メッシュ状に分割された2次元仮想空間内のテクスチャの座標値及び3次元仮想空間内のポリゴンメッシュの座標値が関連付けられた座標情報を記憶する記憶部を有する情報処理装置に、
前記テクスチャ内のメッシュの各頂点を所定数グループ化し、前記座標情報を用いて前記グループ化したメッシュの各頂点に対応して前記ポリゴンメッシュ内の頂点をグループ化し、当該ポリゴンメッシュ内の前記グループ化された各グループにおける各ノードの所定位置を算出するポリゴン内位置算出ステップと、
前記各所定位置を各ノードの位置とすることで前記各ノードを生成するノード生成ステップと、
を実行させるノード生成用プログラム。
【請求項2】
前記各所定位置は、前記各グループにおける中心位置である、請求項1に記載のノード生成用プログラム。
【請求項3】
請求項1又は2に記載のノード生成用プログラムであって、
前記座標情報を用いて前記ポリゴンメッシュ内の2つの所定の頂点に対応する前記テクスチャ内の2つの対応位置を求め、当該2つの対応位置の座標値の増減に基づいて、前記ノードの生成方向を決定する生成方向決定ステップを実行し、
前記ノード生成ステップは、前記決定された前記ノードの生成方向に基づいて、前記ノードを生成する処理を含む、ノード生成用プログラム。
【請求項4】
前記ポリゴン内位置算出ステップは、前記増減に基づいて前記ポリゴンメッシュ内の前記グループ化された各グループの順序付けを行う処理を含み、
前記ノード生成ステップは、前記順序付けに基づいて、各所定位置を各ノードの位置とすることで前記各ノードを順次生成する処理を含む、
請求項3に記載のノード生成用プログラム。
【請求項5】
前記ポリゴンメッシュは、3次元モデルの細長い形状部分を示す、請求項1乃至4のいずれか一項に記載のノード生成用プログラム。
【請求項6】
メッシュ状に分割された2次元仮想空間内のテクスチャの座標値及び3次元仮想空間内のポリゴンメッシュの座標値が関連付けられた座標情報を記憶する記憶部を有する情報処理装置が実行するノード生成方法であって、
前記情報処理装置は、
前記テクスチャ内のメッシュの各頂点を所定数グループ化し、前記座標情報を用いて前記グループ化したメッシュの各頂点に対応して前記ポリゴンメッシュ内の頂点をグループ化し、当該ポリゴンメッシュ内の前記グループ化された各グループにおける各所定位置を算出するポリゴン内位置算出ステップと、
前記各所定位置を各ノードの位置とすることで前記各ノードを生成するノード生成ステップと、
を実行するノード生成方法。
【請求項7】
コンピュータに、請求項6に記載の方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ノード生成用プログラム、ノード生成方法、及びプログラムに関する。
【背景技術】
【0002】
近年、3次元仮想空間内で3次元モデル(キャラクタ)の自然な動きを可能にしたゲームが開発されている。3次元モデル全体の動きに合わせて、あたかも重力等の作用により、3次元モデルの一部が3次元モデル全体の動きとは独立して自然に動くように表現することも可能である(特許文献1参照)。
【0003】
そして、3次元モデルの一部が髪の毛の場合、ゲームプログラムの設計者は、ある程度の髪の毛をまとめた束とし、この束毎に自然な動きが生じるように設計している。この場合、3次元モデルのポリゴンによる髪の毛の束が仮想の重力や仮想の風等の作用により自然な動きをするために、設計者は、3次元モデルの各髪の毛の束内を更に複数にグループ化し、各グループに対してポリゴンに関連付けたシミュレーション制御用ノードを設定している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、設計者がシミュレーション制御用ノードを設定する場合には、ノードを1つずつ設定しなければならない。そのため、設計者が1つの髪の毛の束のような細長い形状部分内に複数のノードを設定する作業を、複数の全ての細長い形状部分に対して行おうとすると、非常に手間がかかるという課題が生じていた。
【0006】
本開示は、上述の課題に鑑みてなされたもので、シミュレーション制御用ノードを生成する場合の設計者の負担を軽減することを目的とする。
【課題を解決するための手段】
【0007】
請求項1に係る発明は、メッシュ状に分割された2次元仮想空間内のテクスチャの座標値及び3次元仮想空間内のポリゴンメッシュの座標値が関連付けられた座標情報を記憶する記憶部を有する情報処理装置に、前記テクスチャ内のメッシュの各頂点を所定数グループ化し、前記座標情報を用いて前記グループ化したメッシュの各頂点に対応して前記ポリゴンメッシュ内の頂点をグループ化し、当該ポリゴンメッシュ内の前記グループ化された各グループにおける各ノードの所定位置を算出するポリゴン内位置算出ステップと、前記各所定位置を各ノードの位置とすることで前記各ノードを生成するノード生成ステップと、を実行させるノード生成用プログラムである。
【発明の効果】
【0008】
以上説明したように本発明によれば、シミュレーション制御用ノードを生成する場合の設計者の負担を軽減することができるという効果を奏する。
【図面の簡単な説明】
【0009】
【
図1】本発明の実施形態に係る情報処理装置の機能構成図である。
【
図2】本発明の実施形態に係る情報処理装置のハードウェア構成図である。
【
図3】シミュレーション制御用ノードの生成処理を示したフローチャートである。
【
図4】表示装置110に表示された画面例であり、3次元モデルを示す図である。
【
図5】表示装置110に表示された画面例であり、3次元モデルと、複数のテクスチャを示した図である。
【
図6】(a)はポリゴンメッシュの所定の頂点を示す概念図、(b)はポリゴンメッシュの所定の頂点に対応するテクスチャの対応位置を示す概念図である。
【
図7】シミュレーション制御用ノードを設定する処理において、(a)はテクスチャをグループに分けた概念図、(b)はテクスチャの各グループに対応するポリゴンメッシュ内の各グループを示した概念図、(c)はポリゴンメッシュ内の各グループの中心位置を各シミュレーション制御用ノードとしたノード列を示した概念図である。
【
図8】最終的に生成された複数のノード列を示す概念図である。
【発明を実施するための形態】
【0010】
以下、図面に基づいて本発明の実施形態を説明する。
【0011】
本実施形態は、設計者が情報処理装置を使ってシミュレーション制御用ノードを設定する技術に関する。なお、以降、「シミュレーション制御用ノード」は、単に「ノード」と示す場合がある。
【0012】
〔情報処理装置の機能構成〕
まず、
図1を用いて、情報処理装置10の機能構成について説明する。
図1は、本発明の実施形態における情報処理装置の機能構成図である。
【0013】
図1に示されているように、情報処理装置10は、受付部11、表示制御部12、生成方向決定部13、ポリゴン内位置算出部14、及びノード生成部15を有している。これら各部は、情報処理装置10でノード生成用プログラムが実行されることで、実現される処理又は機能である。また、情報処理装置10には、後述のメモリ102又は補助記憶装置103によって構築された記憶部19を有している。この記憶部19には、後述の2次元仮想空間内のテクスチャの座標値(テクスチャUV)と3次元仮想空間内のポリゴンメッシュの座標値が関連付けられた座標情報cが記憶されている。なお、テクスチャUVは、テクスチャ用に2次元仮想空間をU軸とV軸で表した座標(
図6(b)参照)である。
【0014】
受付部11は、設計者が操作装置111を操作して入力した内容を受け付ける。
【0015】
表示制御部12は、後述の表示装置110に対して、画面等を表示させる。
【0016】
生成方向決定部13は、座標情報cを用いてポリゴンメッシュ内の2つの所定の頂点に対応するテクスチャ内の2つの対応位置を求め、これら2つの対応位置の座標値の増減aに基づいて、ノードの生成方向を決定する。2つの所定の頂点としては、例えば、ポリゴンメッシュ内の隣接する2つの頂点、ポリゴンメッシュ内の一定数(例えば、3つ)離れた2つの頂点が挙げられる。
【0017】
ポリゴン内位置算出部14は、テクスチャ内のメッシュの各頂点を所定数グループ化し、座標情報cを用いてグループ化に対応してポリゴンメッシュ内の頂点をグループ化する。更に、ポリゴン内位置算出部14は、増減aに基づいてポリゴンメッシュ内のグループ化された各グループの順序付けを行う共に、ポリゴンメッシュ内の各グループにおける各所定位置を算出する。
【0018】
ノード生成部15は、順序づけに基づいて各所定位置を各ノードの位置とすることで各ノードを順次生成する。
【0019】
〔ハードウェア構成〕
次に、
図2を用いて、情報処理装置10のハードウェア構成について説明する。
図2は、本発明の実施形態に係る情報処理装置のハードウェア構成図である。
図2に示されているように、情報処理装置10は、プロセッサ101、メモリ102、補助記憶装置103、接続装置104、通信装置105、ドライブ装置106を有する。なお、情報処理装置10を構成する各ハードウェアは、バス107を介して相互に接続される。
【0020】
プロセッサ101は、情報処理装置10全体の制御を行う制御部の役割を果たし、CPU(Central Processing Unit)等の各種演算デバイスを有する。プロセッサ101は、各種プログラム(例えば、ノード生成用プログラム)をメモリ102上に読み出して実行する。なお、プロセッサ101には、GPGPU(General-purpose computing on graphics processing units)が含まれていてもよい。
【0021】
メモリ102は、ROM(Read Only Memory)、RAM(Random Access Memory)等の主記憶デバイスを有する。プロセッサ101とメモリ102とは、いわゆるコンピュータを形成し、プロセッサ101が、メモリ102上に読み出した各種プログラム(例えば、ノード生成用プログラム)を実行することで、当該コンピュータは各種機能を実現する。
【0022】
補助記憶装置103は、各種プログラムや、各種プログラムがプロセッサ101によって実行される際に用いられる各種情報を格納する。
【0023】
接続装置104は、外部装置(例えば、表示装置110、操作装置111)と情報処理装置10とを接続する接続デバイスである。
【0024】
通信装置105は、他の装置との間で各種情報を送受信するための通信デバイスである。
【0025】
ドライブ装置106は記録媒体130をセットするためのデバイスである。ここでいう記録媒体130には、CD-ROM(Compact Disc Read-Only Memory)、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体130には、ROM(Read Only Memory)、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【0026】
なお、補助記憶装置103にインストールされる各種プログラムは、例えば、配布された記録媒体130がドライブ装置106にセットされ、該記録媒体130に記録された各種プログラムがドライブ装置106により読み出されることでインストールされる。あるいは、補助記憶装置103にインストールされる各種プログラムは、通信装置105を介してネットワークからダウンロードされることで、インストールされてもよい。
【0027】
〔実施形態の処理又は動作〕
続いて、
図3乃至
図8を用いて、本実施形態の処理又は動作の一例について詳細に説明する。
図3は、シミュレーション制御用ノードの生成処理を示したフローチャートである。
図4は、表示装置110に表示された画面例であり、3次元モデルを示す図である。
図5は、表示装置110に表示された画面例であり、3次元モデルと、複数のテクスチャを示した図である。
【0028】
まず、設計者は、表示装置110上に、
図4に示されているような3次元モデルmを表示させる。この状態では、髪の毛の各束も含めた3次元モデルm全体が、3次元コンピュータグラフィックスのポリゴンによって表示される。なお、
図4では、特に、髪の毛の複数の束の部分を図面上で明確にするため、髪の毛の複数の束の部分をポリゴンメッシュpmとして表している。
【0029】
そして、設計者は、表示装置110上に、
図5に示されている設計画面を表示させる。
図5に示されているように、設計画面には、
図4で示されている3次元モデルmを表示するための3次元仮想空間を表すモデル表示領域A1が表示される。また、設計画面には、設計画面の左側に各テクスチャが表示される2次元仮想空間を表すためのテクスチャ表示領域A2が表示される。
図5では、テクスチャ表示領域A2は、別のウィンドウとして表示されているが、別のウィンドウでなくてもよい。テクスチャ表示領域A2には、3次元モデルmの髪の毛の各束に貼り付けるテクスチャが2次元表示されている。
【0030】
また、メッシュ状に分割された2次元仮想空間内のテクスチャの座標値及び3次元仮想空間内のポリゴンメッシュの座標値が関連付けられた座標情報cによって、2次元のテクスチャの所定位置が指定(又は選択)されれば、対応する3次元のポリゴンメッシュの所定位置が特定される。逆に、3次元のポリゴンメッシュの所定位置が指定(又は選択)されれば、対応する2次元のテクスチャの所定位置が特定される。
【0031】
ここで、
図3において、設計者が操作装置111を使用して、
図5に示されているように、カーソル4等で所定の髪の毛の束を示すポリゴンメッシュpm1を選択すると、受付部11は、ポリゴンメッシュの選択の受け付ける(S11)。
【0032】
これにより、表示制御部12は、受付部11によって選択が受け付けられたポリゴンメッシュpm1に対応するテクスチャ(ここでは、テクスチャt1)の表示態様を変更する。
図5では、表示態様の変更の一例として、メッシュ状の2次元座標が表示されている。また、表示態様の変更の他の例としては、複数のテクスチャのうちテクスチャt1のみの表示色を変更したり、他のテクスチャは表示せずテクスチャt1のみを表示したり、テクスチャt1のみを拡大表示したりすることが挙げられる。
【0033】
なお、
図5では、特に、選択された髪の毛の束の部分のポリゴンメッシュpm1を図面上で明確にするため、ポリゴンメッシュpm1のみにメッシュ状の3次元座標が表示されている。
【0034】
次に、生成方向決定部13は、座標情報cを用いてポリゴンメッシュ内の2つの所定の頂点に対応するテクスチャ内の2つの対応位置を求め、これら2つの対応位置の座標値の増減aに基づいて、ノードの生成方向を決定する(S13)。ここで、
図6を用いて、生成方向決定部13の処理の一例を詳細に説明する。
図6において、(a)はポリゴンメッシュの所定の頂点を示す概念図、(b)はポリゴンメッシュの所定の頂点に対応するテクスチャの対応位置を示す概念図である。なお、
図6(b)では、2次元仮想空間のU軸とV軸が表されている。
【0035】
図6(a)、(b)に示されているように、生成方向決定部13は、記憶部19に記憶されている座標情報cを用いてポリゴンメッシュpm1内の2つの所定の隣接する頂点v1,v2に対応するテクスチャt1内の2つの対応位置c1,c2を求める。そして、生成方向決定部13は、対応位置c1,c2の増減aを計算し、増減aが増加を示している場合には、ノードの生成方向を
図6における下方向に決定し、増減aが減少を示している場合には、ノードの生成方向を
図6における上方向に決定する。このように増減を計算するのは、他の設計者が
図5に示されているような各テクスチャを作成した場合、必ずしも
図5に示されているように、髪の毛のテクスチャがモデルの髪の毛の方向と一致するように(上から下に伸びるように)作成するわけではなく、
図5の右から左に伸びるように作成したり、下から上に伸びるように作成したりするため、どのような方向に作成されても対応するためである。なお、テクスチャの方向が一方向に定まっている場合は、生成方向決定部13の処理は実行しなくてもよい。
【0036】
以上のようにして、生成方向決定部13は、2次元の座標値(テクスチャUV)に基づいて、ノードの生成方向を決める。
【0037】
次に、
図3に戻り、ポリゴン内位置算出部14は、テクスチャ内のメッシュの各頂点を所定数グループ化し、座標情報cを用いてグループ化に対応してポリゴンメッシュ内の頂点をグループ化する(S14)。更に、ポリゴン内位置算出部14は、増減aに基づいてポリゴンメッシュ内のグループ化された各グループの順序付けを行う共に、ポリゴンメッシュ内の各グループにおける各所定位置を算出する(S15)。
【0038】
ここで、
図7を用いて、ポリゴン内位置算出部14の処理の一例を詳細に説明する。
図7は、シミュレーション制御用ノードを設定する処理において、(a)はテクスチャをグループに分けた概念図、(b)はテクスチャの各グループに対応するポリゴンメッシュ内の各グループを示した概念図、(c)はポリゴンメッシュ内の各グループの中心位置を各シミュレーション制御用ノードとしたノード列を示した概念図である。なお、
図7(a)では、2次元仮想空間のU軸とV軸が表されている。
【0039】
図7(a)に示されているように、ポリゴン内位置算出部14は、2次元座標において、テクスチャt1を複数にグループ化する。グループの数は、設計者等によって予め定められている。例えば、設計者等はノードの作成の受付時等にグループ数を任意に指定することができる。本実施形態では、グループ数を「5」と指定された場合が示されており、
図7(a)では、5つのグループg1~g5の場合について示されている。そして、ポリゴン内位置算出部14は、座標情報cを用いて、テクスチャt1に対応するポリゴンメッシュpm1において、グループg1~g5に対応するグループG1~G5を特定する。更に、ポリゴン内位置算出部14は、増減aに基づいてポリゴンメッシュpm1内のグループ化された各グループG1~G5の順序付けを行うと共に、各グループG1~G5の所定位置(ここでは、中心位置)を算出する。なお、所定位置は、中心位置だけでなく、中心位置から一定値離れた位置としてもよく、所定位置は任意に指定することができる。
【0040】
このように、ポリゴン内位置算出部14は、2次元の座標値(テクスチャUV)に基づいて、各グループG1~G5の所定位置(ここでは、中心位置)を算出する。即ち、ポリゴン内位置算出部14は、生成方向決定部13と同様に、2次元の座標値(テクスチャUV)に基づく処理を行う。
【0041】
このように、直接、ポリゴンメッシュをグループ化せずに、テクスチャをグループ化することで、対応するポリゴンメッシュをグループ化するのは、ポリゴンメッシュが必ずしも直線形状ではないため、直接グループ化することが困難だからである。例えば、直線形状ではなく渦巻き状の髪の毛を、ポリゴンメッシュの頂点のみを用いてグループ化する場合、髪の毛の先端部分は、
図7(b)における最下位置ではなく、最下位置から巻き上がって、髪の毛の中央部分に最も近くなってしまう場合がある。このような場合には、髪の毛の先端部分と中間部分がグループ化されてしまうというような問題が生じてしまう。これに対して、本実施形態のように、まずは直線形状のテクスチャを基にグループ化を行うことで、先端部分に対応するテクスチャと中間部分に対応するテクスチャが近接することはないため、適切なグループ化が可能となる。このように、本実施形態では、3次元仮想空間で髪の毛の束が渦巻き状等である場合であっても、2次元仮想空間で容易にグループ化することができる。
【0042】
次に、
図3に戻り、ノード生成部15は、ポリゴン内位置算出部14による順序づけに基づいて各所定位置を各ノードの位置とすることで、各ノードを順次生成する(S16)。
【0043】
ここで、
図7を用いて、ノード生成部15の処理の一例を詳細に説明する。ノード生成部15は、
図7(b)の各グループG1~G5の各中心位置を、
図7(c)に示されているように、ノードN1~N5の位置として、ノードN1からノードN5の順番にノードを生成することで、ノード列C1を生成する。これにより、ノード生成部15は、ポリゴンメッシュpm1の表面付近に、生成順序に従って、ノードを自動生成する。
【0044】
なお、表示装置110にポリゴンメッシュが表示される場合、
図7(b)に示されているようにメッシュ状に表されるが、
図7(c)では、図面上でポリゴンメッシュpm1とノード列C1の位置関係を明確にするために、ポリゴンメッシュpm1をメッシュ状に表していない。
【0045】
以上のようにして、情報処理装置10は、ノード列の生成を繰り返し、最終的に、
図8に示されているような複数のノード列を作成することができる。なお、
図8は、最終的に生成された複数のノード列を示す概念図である。
【0046】
〔実施形態の主な効果〕
以上説明したように本実施形態によれば、テクスチャの座標値とポリゴンメッシュ座標値が関連付けられているため、設計者が、
図5に示されているように、所望のポリゴンメッシュ(ここでは、ポリゴンメッシュpm1)を選択するだけで、情報処理装置10が自動的にノードの生成を行う。これにより、ノードを生成する場合の設計者の負担を軽減することができるという効果を奏する。
【0047】
〔補足〕
本発明は上述の実施形態に限定されるものではなく、以下に示すような構成又は処理(動作)であってもよい。
(1)上述のプログラムは、(非一時的)記録媒体に記録され、又はインターネット等のネットワークを通して提供することも可能である。
(2)上述の実施形態では、
図8に示されているように、髪の毛の束用に細長いノード列を生成する場合について説明したが、これに限るものではない。例えば、情報処理装置10が、テクスチャのU値とV値で別々に処理を行ってノードを生成することで、マント等のグリッド形状のノード生成にも応用が可能である。この場合、例えば、情報処理装置10は、テクスチャのV値に対応するノード列を作成し、その後に既に作成したノード列内の各ノードを含んだ、テクスチャのU値に対応するノード列を作成する。
(3)上述の実施形態では、3次元モデル(キャラクタ)の髪の毛について説明したが、これに限るものではなく、直線状又は湾曲状に限らず細長い形状部分であればよい。細長い形状部分の他の例として、ハチマキ、タスキ、帯、ロープ、紐、ベルト、短冊、タコ等の生物の足が挙げられる。
(4)また、上述の実施形態は、ゲームの画像生成について説明したが、これに限るものではなく、ゲーム以外の技術(例えばCADやコンピュータ・シミュレーション等)にも適用可能である。
【符号の説明】
【0048】
10 情報処理装置
11 受付部
12 表示制御部
13 生成方向決定部
14 ポリゴン内位置算出部
15 ノード生成部
19 記憶部
110 表示装置
111 操作装置