(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-28
(45)【発行日】2024-07-08
(54)【発明の名称】プログラム、情報処理装置および方法
(51)【国際特許分類】
G06T 13/40 20110101AFI20240701BHJP
A63F 13/56 20140101ALI20240701BHJP
A63F 13/812 20140101ALI20240701BHJP
【FI】
G06T13/40
A63F13/56
A63F13/812 B
(21)【出願番号】P 2020058318
(22)【出願日】2020-03-27
【審査請求日】2023-02-24
(73)【特許権者】
【識別番号】506113602
【氏名又は名称】株式会社コナミデジタルエンタテインメント
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】關根 慶典
【審査官】高野 美帆子
(56)【参考文献】
【文献】特開2009-020874(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/40
A63F 13/56
A63F 13/812
(57)【特許請求の範囲】
【請求項1】
1または複数のコンピュータに、
仮想空間内において、ベースオブジェクトから突出する複数の長尺オブジェクトの動きを制御するオブジェクト制御ステップを実行させ、
前記長尺オブジェクト上の複数の点には、前記ベースオブジェクトの表面からの距離が遠いほど大きくなるように影響度が関連付けられており、
前記オブジェクト制御ステップでは、前記複数の点の各々が、当該点に関連付けられた影響度が大きいほど大きく動くように、前記複数の長尺オブジェクトを動かす、
プログラム。
【請求項2】
前記ベースオブジェクトは、キャラクタの頭部に対応するオブジェクトであり、
前記長尺オブジェクトは、前記キャラクタの毛髪の束に対応するオブジェクトである、
請求項1に記載のプログラム。
【請求項3】
前記複数の点の各々には、前記キャラクタの髪型に応じた前記影響度が関連付けられている、
請求項2に記載のプログラム。
【請求項4】
前記複数の点の各々には、遅延値が関連付けられており、
同一の前記長尺オブジェクト上の前記点に関連付けられた前記遅延値は同一であり、
前記オブジェクト制御ステップでは、前記複数の点の各々が、当該点に関連付けられた遅延値に応じたタイミングで動くように、前記複数の長尺オブジェクトを動かす、
請求項1から3の何れか1項に記載のプログラム。
【請求項5】
前記1または複数のコンピュータに、
前記複数の長尺オブジェクトを編集する編集ステップをさらに実行させ、
前記編集ステップでは、編集された後の各長尺オブジェクトの上の各点に対し、前記ベースオブジェクトからの距離が遠いほど大きくなるように影響度を関連付ける、
請求項
4に記載のプログラム。
【請求項6】
前記オブジェクト制御ステップでは、前記複数の長尺オブジェクトを示す情報、および、前記複数の長尺オブジェクト上の前記複数の点に関連付けられた前記影響度を示す情報を、物理演算エンジンに入力し、当該物理演算エンジンからの出力を参照して前記複数の長尺オブジェクトを動かす、
請求項1から5の何れか1項に記載のプログラム。
【請求項7】
仮想空間内において、ベースオブジェクトから突出する複数の長尺オブジェクトの動きを制御するオブジェクト制御部を備え、
前記長尺オブジェクト上の複数の点には、前記ベースオブジェクトの表面からの距離が遠いほど大きくなるように影響度が関連付けられており、
前記オブジェクト制御部は、前記複数の点の各々が、当該点に関連付けられた影響度が大きいほど大きく動くように、前記複数の長尺オブジェクトを動かす、
情報処理装置。
【請求項8】
1または複数のコンピュータが、
仮想空間内において、ベースオブジェクトから突出する複数の長尺オブジェクトの動きを制御するオブジェクト制御ステップを実行し、
前記長尺オブジェクト上の複数の点には、前記ベースオブジェクトの表面からの距離が遠いほど大きくなるように影響度が関連付けられており、
前記オブジェクト制御ステップでは、前記複数の点の各々が、当該点に関連付けられた影響度が大きいほど大きく動くように、前記複数の長尺オブジェクトを動かす、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間内のオブジェクトの動きを制御するプログラム、情報処理装置および方法に関する。
【背景技術】
【0002】
仮想空間内のキャラクタの毛髪をより自然に描写する技術として、特許文献1には、キャラクタの毛髪の色と頭皮の色との混合比を調整することが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方、キャラクタの毛髪の揺れを物理的にシミュレートすることも検討されているが、毛髪が他の毛髪にめり込んでしまう場合がある。
【0005】
本発明の一態様は、上述の課題を解決するためになされたものであり、仮想空間内における毛髪などの長尺オブジェクトの動きを違和感の少ないものとする技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記の課題を解決するために、本発明の一態様に係るプログラムは、1または複数のコンピュータに、仮想空間内において、ベースオブジェクトから突出する複数の長尺オブジェクトの動きを制御するオブジェクト制御ステップを実行させ、前記長尺オブジェクト上の複数の点には、前記ベースオブジェクトの表面からの距離が遠いほど大きくなるように影響度が関連付けられており、前記オブジェクト制御ステップでは、前記複数の点の各々が、当該点に関連付けられた影響度が大きいほど大きく動くように、前記複数の長尺オブジェクトを動かす、プログラムである。
【図面の簡単な説明】
【0007】
【
図1】本発明の一実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【
図2】本発明の一実施形態に係る情報処理装置の機能的な構成の一例を示すブロック図である。
【
図3】本発明の一実施形態に係る情報処理装置により動きが制御される毛髪の一例を示す図である。
【
図4】
図3に示す毛髪を構成する毛髪ブロックの一例を示す図である。
【
図5】
図3に示す毛髪の毛髪データのデータ形式について一具体例を示す図である。
【
図6】キャラクタの頭部表面から毛髪ブロックの各頂点までの距離と、各頂点に設定される影響度との関係について一例を示す図である。
【
図7】キャラクタの頭部表面から毛髪ブロックの各頂点までの距離と、各頂点に設定される影響度との関係について一例を示すグラフである。
【
図8】本発明の一実施形態に係る情報処理装置の動作を説明するフローチャートである。
【
図9】本発明の一実施形態に係る情報処理装置の機能的な構成の一例を示すブロック図である。
【
図10】本発明の一実施形態に係る情報処理装置の動作を説明するフローチャートである。
【発明を実施するための形態】
【0008】
〔実施形態1〕
以下、本発明の一実施形態に係る情報処理装置10について、詳細に説明する。
【0009】
<情報処理装置10の概要>
情報処理装置10は、仮想空間内に存在するベースオブジェクトから突出する複数の長尺オブジェクトの動きを制御する装置である。
【0010】
仮想空間とは、情報処理装置10の演算によって生成される、仮想オブジェクトを配置することができる仮想的な空間である。
【0011】
また、長尺オブジェクトとは、仮想空間内に配置される長いオブジェクトである。長いとは、幅および厚さに対して長さが十分に大きいことを意味する。長尺オブジェクトの形状は、例えば帯状、紐状等であり得る。なお、ベースオブジェクトから突出する長尺オブジェクトとは、ベースオブジェクトの表面から出て、当該ベースオブジェクトの外部空間において伸びている長尺オブジェクトであり、一端がベースオブジェクトに接し、他端がベースオブジェクトに接しない長尺オブジェクトと表現することもできる。
【0012】
本実施形態では、上記長尺オブジェクトが、仮想空間内に存在するキャラクタの毛髪を表現するためのオブジェクトであり、上記ベースオブジェクトがキャラクタの頭部である例を説明する。
【0013】
例えば、情報処理装置10は、ユーザによってプレイ可能なゲームを実現するゲームシステムに含まれる。当該ゲームシステムは、ユーザが単独でプレイするゲームを実現するものであってもよいし、複数のユーザでプレイするゲームを実現するものであってもよい。また、ゲームシステムは、情報処理装置10単独でプレイ可能なゲームを実現するものであってもよいし、ゲームサーバ(不図示)または他の情報処理装置10と通信することによりプレイ可能なゲームを実現するものであってもよい。
【0014】
また、本実施形態では、上記ゲームがサッカーを模したゲームである、すなわち、仮想空間内でサッカーが行われるゲームである例を説明する。以降、本実施形態に係るゲームをサッカーゲームとも表記する。つまり、本実施形態に係るキャラクタは、サッカーゲームにおいてサッカーをプレイする選手であり、情報処理装置10は、当該選手の毛髪オブジェクトの動きを制御する。
【0015】
<情報処理装置のハードウェア構成>
図1は、情報処理装置10のハードウェア構成の一例を示すブロック図である。情報処理装置10は、プロセッサ11と、主メモリ12と、補助メモリ13と、通信インタフェース14と、入出力インタフェース15とを含むコンピュータによって構成される。プロセッサ11と、主メモリ12と、補助メモリ13と、通信インタフェース14と、入出力インタフェース15とは、バスを介して互いに接続される。また、入出力インタフェース15には、出力装置16および入力装置17が接続される。
【0016】
プロセッサ11としては、例えば、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、またはこれらの組み合わせ等が用いられる。
【0017】
主メモリ12としては、例えば、半導体RAM等が用いられる。
【0018】
補助メモリ13としては、例えば、フラッシュメモリ、HDD、SDD、可搬型記憶媒体、またはこれらの組み合わせ等が用いられる。
【0019】
補助メモリ13には、情報処理装置10を構成するコンピュータによって実行されるプログラムが記憶される。当該プログラムは、本実施形態に係るゲームプログラムおよび各種プログラムである。本実施形態に係るゲームプログラムは、1または複数のコンピュータに、仮想空間内において、ベースオブジェクトから突出する複数の長尺オブジェクトの動きを制御するオブジェクト制御ステップを実行させ、前記長尺オブジェクト上の複数の点には、前記ベースオブジェクトの表面からの距離が遠いほど大きくなるように影響度が関連付けられており、前記オブジェクト制御ステップでは、前記複数の点の各々が、当該点に関連付けられた影響度が大きいほど大きく動くように、前記複数の長尺オブジェクトを動かすものである。プロセッサ11は、補助メモリ13に格納されたゲームプログラムおよび各種プログラムを主メモリ12上に展開し、展開したゲームプログラムに含まれる各命令を実行する。
【0020】
また、補助メモリ13には、当該コンピュータを情報処理装置10として動作させるためにプロセッサ11が参照する各種データが格納されている。
【0021】
通信インタフェース14は、ネットワークに接続するインタフェースである。通信インタフェース14は、ゲームシステムがゲームサーバまたは他の情報処理装置10と通信することによりプレイ可能なゲームを実現する場合に動作する。
【0022】
入出力インタフェース15としては、例えば、USBインタフェース、赤外線やBluetooth(登録商標)等の近距離通信インタフェース、またはこれらの組み合わせ等が用いられる。
【0023】
出力装置16としては、例えば、ディスプレイ、プリンタ、スピーカ、またはこれらの組み合わせ等が用いられる。入力装置17としては、例えば、ゲームをプレイするためのコントローラ、キーボード、マウス、タッチパッド、マイク、またはこれらの組み合わせ等が用いられる。
【0024】
<情報処理装置10の機能的な構成>
図2は、情報処理装置10の機能的な構成を示すブロック図である。情報処理装置10は、制御部110と記憶部120とを含む。
図1に示すプロセッサ11および通信インタフェース14が、制御部110として機能するハードウェア要素の一例である。また、主メモリ12および補助メモリ13が、記憶部120として機能するハードウェア要素の一例である。
【0025】
制御部110は、ゲーム進行部111と、毛髪データ取得部112と、毛髪制御部113(オブジェクト制御部)と、表示部114とを含む。
【0026】
ゲーム進行部111は、サッカーゲームの進行に係る処理を行う。ゲーム進行部111は、入力装置17を用いたユーザの操作に基づいて、選手のうちのユーザの操作の対象となる対象キャラクタを動作させることによりサッカーゲームを進行させる。ゲーム進行部111は、サッカーゲームをシングルプレイゲームとして進行してもよいし、マルチプレイゲームとして進行してもよい。シングルプレイゲームの場合、ゲーム進行部111は、ユーザによって操作可能な選手からなるユーザチームと、ユーザの操作に依らずにゲーム進行部111によって動作が決定される選手からなる相手チームとを対戦させる。また、マルチプレイゲームの場合、ゲーム進行部111は、ユーザによって操作可能な選手からなるユーザチームと、他の情報処理装置10を操作する他のユーザによって操作可能な選手からなる相手チームとを対戦させる。
【0027】
毛髪データ取得部112は、ゲーム進行部111によるサッカーゲームの進行に係る処理の実行により、選手の毛髪を動かす条件が成立した場合、記憶部120に記憶されている、当該選手の毛髪データD121を読み出す。毛髪データ取得部112は、読み出した毛髪データD121を、毛髪制御部113に出力する。
【0028】
(選手の毛髪の詳細)
図3は、選手の毛髪の一例を示す図である。選手の毛髪は、選手の頭部HAに、毛髪を表現するためのオブジェクトである毛髪ブロックHBが複数取り付けられ、毛髪ブロックHBの各々に毛髪が描かれたテクスチャがはりつけられたものである。つまり、毛髪ブロックHBは、選手の頭部HA(ベースオブジェクト)から突出する長尺オブジェクトである。なお、選手の「頭部HA」は、毛髪ブロックHBが取り付けられるオブジェクト(
図6参照)であり、
図3に示す複数の毛髪ブロックHBを指すものではない。
【0029】
図4は、毛髪ブロックHBの一例を示す図である。毛髪ブロックHBには、
図4において黒塗りの丸で示す複数の頂点A1~A8が設定されている。
図4の例では、8つの頂点A1~A8が設定されているが、頂点の数はこの例に限定されない。また、各頂点の位置も
図4の例に限定されない。なお、以降、複数の頂点を区別しない場合、「頂点A」と表記する。情報処理装置10は、各頂点Aを動かすことにより毛髪ブロックHBを動かし、サッカーゲームにおいて選手の毛髪の動きを表現する。
【0030】
(毛髪データD121の詳細)
図5は、毛髪データD121のデータ形式の一具体例を示す図である。
図3に示す毛髪データD121は、選手を識別するキャラクタIDが「C1」である選手の毛髪データD121である。なお、記憶部120には、サッカーゲームで使用可能なすべての選手の毛髪データD121が記憶されている。
【0031】
毛髪データD121は、上述した毛髪オブジェクトである毛髪ブロックHBの各々を識別する毛髪ブロック情報に、毛髪ブロックHBの各頂点Aを識別する頂点情報が関連付けられている。
図5に示す毛髪データD121において、毛髪ブロック情報は「毛髪ブロック」のカラムに、頂点情報は「頂点」のカラムにそれぞれ格納されている。
図5では、毛髪ブロック情報H1~H9で示される9つの毛髪ブロックHBの各々に対し、8つの頂点Aが設定されている例を示している。
図5の例において、HB1で示される毛髪ブロックに設定された8つの頂点Aの頂点情報は、それぞれ、A11~A18である。また、
図5の例において、HB9でH示される毛髪ブロックに設定された8つの頂点Aの頂点情報は、それぞれ、A91~A98である。
【0032】
各頂点情報には、各頂点Aの位置を示す頂点位置情報、各頂点Aにおける影響度および各頂点Aにおけるディレイ値(遅延値)が関連付けられている。
図5に示す毛髪データD121において、頂点位置情報は「頂点位置」のカラムに、影響度は「影響度」のカラムに、ディレイ値は「ディレイ値」のカラムにそれぞれ格納されている。
【0033】
(頂点位置)
頂点位置情報は、例えば、
図5に示すように三次元座標における座標である。当該三次元座標は、毛髪ブロックHBの各々に設定されてもよいし、選手の頭部HAに対して1つのみ設定されてもよい。前者の場合、複数の毛髪ブロックHBの数だけ三次元座標が設定されるので、頂点位置情報は、複数の毛髪ブロックHB間で同じ座標となり得る。一方、後者の場合、三次元座標は複数の毛髪ブロックHBに対して1つとなるので、頂点位置情報が複数の毛髪ブロックHB間で同じ座標となることはない。
【0034】
(影響度)
影響度は、オブジェクト上の点の動きに対する特定の原因からの影響の大きさを規定する値である。具体的には、影響度は、各頂点Aに関連付けられた、毛髪ブロックHBの各頂点Aの動きの大きさを決定するための値である。また、特定の原因とは、オブジェクト上の点を動かすトリガとなる、仮想空間において発生した事象である。本実施形態に係る当該事象は、例えば、選手の移動(走行)に伴う頭部HAの上下動であってもよい。影響度は、選手の頭部表面からの距離が遠いほど大きくなるように設定されている。ここで、「距離」とは、頭部HAと各頂点Aとの最短距離を指す。この最短距離は、頭部表面(曲面)に対する法線であって、各頂点Aと交わる法線において、頭部表面上の点から頂点Aまでの長さと表現することもできる。
【0035】
本実施形態に係る影響度は、
図5に示すように、頂点Aの色情報のR値として保存される。このため、影響度は0から255までの値を取り得る。
【0036】
図6は、選手の頭部表面から各頂点Aまでの距離と、各頂点Aに設定される影響度との関係について、一例を示す図である。
図6では、
図4に示す毛髪ブロックHBにおける頂点A1~A8のうち、頂点A1、A2、A3を例示している。頂点A1、A2、A3において、上記距離はそれぞれ、d1、d2、d3であるとし、これらの距離の値の大小関係はd1<d2<d3であるとする。なお、本実施形態に係る頭部表面は、選手の耳の表面などの、頭部HAに存在するでっぱりを含む。このため、頂点A2に関連付けられる距離d2は、耳の表面から頂点A2までの距離である。
【0037】
上述したとおり、影響度は選手の頭部HAからの距離が遠いほど大きくなるように設定されるため、頂点A1、A2、A3の各々の影響度E1、E2、E3の大小関係は、E1<E2<E3となる。
【0038】
図7は、選手の頭部HAから各頂点Aまでの距離と、影響度との関係の一例を示すグラフである。
図7の例では、上記距離が最小値から第1の値までの数値範囲内である場合、影響度は最小値として設定されている。また、上記距離が第1の値から第2の値までの数値範囲内である場合、影響度は距離が長くなるほど大きくなるように設定されている。なお、第2の値は第1の値より大きく、最大値より小さい値である。また、上記距離が第2の値から最大値までの数値範囲内である場合、影響度は最大値として設定されている。
【0039】
なお、
図7の例では第1の値から第2の値までの数値範囲において、上記距離と影響度との関係が線形性を有しているが、当該関係は非線形であってもよい。例えば、当該数値範囲において、影響度が指数関数的に増加してもよい。換言すれば、当該関係は、当該数値範囲における値x1およびy1(x1<y1)をとったとき、これらの値の関数(すなわち影響度)であるf(x1)およびf(y1)の大小関係が、f(x1)<f(y1)となる単調増加であればよい。
【0040】
また、
図7に示す距離と影響度との関係は、距離の値x2およびy2(x2<y2)をとったとき、これらの値の関数であるf(x2)およびf(y2)(影響度)の大小関係が、f(x2)≦f(y2)となる単調非減少であると表現することもできる。
【0041】
また、
図7に示すように、本実施形態に係る影響度は、選手の髪型に応じたものである。換言すれば、選手の髪型が異なる場合、上記距離と影響度との関係(関数)が異なる。ここで、髪型とは、選手の毛髪の全体的な形状を示すものであり、毛髪ブロックHBの数、各毛髪ブロックHBの形状、配置などにより特定される。髪型としては、例えば、ストレート、パーマ、アフロ、普通などが挙げられる。
【0042】
一例として、
図7に示すように、髪型がアフロである場合、普通の髪型に比べて動きが小さいと考えられるため、影響度の最大値を髪型が普通である場合より小さくしてもよい。例えば、髪型がアフロである場合、影響度の最大値は127であってもよい。
【0043】
一般に、髪型によって毛髪の動きやすさが異なるため、このように構成することにより、仮想空間内における毛髪の揺れを、現実世界における人間の毛髪の動きに似せたものとすることができる。
【0044】
(ディレイ値)
ディレイ値は、特定の原因からの影響によるオブジェクト上の点の動きのタイミングを規定する値である。具体的には、ディレイ値は、各頂点Aに関連付けられた、毛髪ブロックHBの各頂点Aを動かすタイミングを規定する値である。一例として、ディレイ値が大きいほど毛髪ブロックHBの頂点Aを動かすタイミングが遅くなる。換言すれば、ディレイ値が大きいほど、頂点Aを動かす処理の開始から実際に頂点Aを動かす処理を行うまでの時間(遅延時間)が長くなる。
【0045】
本実施形態に係るディレイ値は、
図5に示すように、1つの毛髪ブロックHBの各頂点Aにおいて同じ値である。ただし、本実施形態では、或る毛髪ブロックHBに関連付けられるディレイ値は、他の毛髪ブロックHBに関連付けられるディレイ値と異なる値となる。また、本実施形態に係るディレイ値は、
図5に示すように、頂点Aの色情報のB値として保存される。このため、ディレイ値は0から255までの値を取り得る。
【0046】
ディレイ値に関し、以上のように構成することにより、毛髪ブロックHB上の頂点Aの動きのタイミングが当該頂点Aに関連付けられたディレイ値に応じたものとなるため、全部の頂点Aが同時に動くことを避けることができる。また、同一の毛髪ブロックHB上の頂点Aに関連付けられたディレイ値は同一であるため、ある程度まとまって動くことになる。これにより、仮想空間内における毛髪の揺れを、現実世界における人間の毛髪の動きに似せたものとすることができる。
【0047】
再び
図2を参照して、制御部110の説明に戻る。毛髪制御部113は、取得した毛髪データD121に基づき、毛髪の動きを制御する。具体的には、毛髪制御部113は、取得した毛髪データD121を物理演算エンジンへ入力し、物理演算エンジンから出力される演算結果を取得する。物理演算エンジンとは、仮想空間内のオブジェクトの動きを、物理法則に基づいてシミュレートするソフトウェアである。そして、毛髪制御部113は、取得した演算結果を参照し、各毛髪ブロックHBの各頂点Aを動かす。このように構成することにより、物理演算エンジンを使用して、複数の毛髪ブロックHBを自然に動かすことができる。
【0048】
表示部114は、仮想空間が仮想カメラによって撮影される仮想画像をディスプレイに表示する。具体的には表示部114は、サッカーゲームの進行に伴う各選手の動きや毛髪の動きを描画し、ディスプレイに表示する。
【0049】
<情報処理装置10の動作>
以上のように構成された情報処理装置10の動作について説明する。情報処理装置10は、仮想空間内において、ベースオブジェクトから突出する複数の長尺オブジェクトの動きを制御するオブジェクト制御ステップを実行し、前記長尺オブジェクト上の複数の点には、前記ベースオブジェクトの表面からの距離が遠いほど大きくなるように影響度が関連付けられており、前記オブジェクト制御ステップでは、前記複数の点の各々が、当該点に関連付けられた影響度が大きいほど大きく動くように、前記複数の長尺オブジェクトを動かす。
【0050】
図8は、情報処理装置10の動作を説明するフローチャートである。
【0051】
ステップS100において、ゲーム進行部111は、サッカーゲームにおける試合を開始する試合開始処理を実行する。試合開始処理には、例えば、ユーザチームと相手チームとを示す情報を取得する処理、各チームにそれぞれ含まれる選手を示す情報を取得する処理、仮想空間を生成し、仮想カメラを配置する処理、仮想空間にフィールドや選手を配置する処理などが含まれる。
【0052】
ステップS102において、ゲーム進行部111は、入力装置17に入力された操作を示す操作信号を取得する。
【0053】
ステップS104において、ゲーム進行部111は、上記操作の対象となる選手である対象キャラクタを、操作信号に基づき動作させる動作処理を実行する。ここで、対象キャラクタを動作させたことにより、対象キャラクタの毛髪を動かす条件が成立したとする。例えば、対象キャラクタを走らせたことにより、頭部HAの上下動が発生したとする。
【0054】
ステップS106において、毛髪データ取得部112は、記憶部120から対象キャラクタの毛髪データD121を読み出す。
【0055】
ステップS108において、毛髪制御部113は、読み出された毛髪データD121を物理演算エンジンへ入力し、演算結果を取得する。ステップS110において、毛髪制御部113は、演算結果を参照し、毛髪ブロックHBの各頂点Aを動かす。
【0056】
ステップS112において、表示部114は、対象キャラクタの動作、毛髪ブロックHBの各頂点Aの動きを描画し、ディスプレイに表示する。これにより、対象キャラクタの動作に基づく毛髪の動き、例えば、対象キャラクタが走ることによる毛髪の揺れがゲーム画面において表現される。
【0057】
情報処理装置10は、ステップS102からS112までの処理を、試合開始処理にて開始された試合が終了するまで繰り返し実行する(ステップS114でNo)。試合が終了した場合(ステップS114でYes)、
図8のフローチャートで示される情報処理装置10の動作は終了する。
【0058】
<本実施形態の効果>
このように、本実施形態によれば、毛髪ブロックHBにおいて、頭部表面に近い部分の移動量が小さくなるので、毛髪ブロックHBが頭部表面にめり込むことを抑制することができる。これにより、仮想空間内における選手の毛髪の揺れを違和感の少ないものとすることができる。
【0059】
〔実施形態2〕
本発明の実施形態2に係る情報処理装置10Aについて、以下に説明する。情報処理装置10Aは、実施形態1に係る情報処理装置10と同様にゲームシステムに含まれる。当該ゲームシステムによって実現されるゲームは、サッカーゲームにおいて使用可能な選手を編集する選手編集ゲームである。なお、編集とは、ユーザの操作に基づいて、選手の各種データを変更することを指す。当該データは、選手を形成する各種オブジェクトを含むが、これに限定されない。例えば、当該データは、選手の能力、モーション、声などを含んでもよい。また、オブジェクトの編集は、オブジェクトの数、形状、色、大きさ、長さ、太さ、配置などを変更することを指す。また、選手の編集は、新たな選手の作成と、既存の選手の編集とを含む。
【0060】
当該サッカーゲームは、例えば、実施形態1で説明したサッカーゲームである。また、本実施形態では、上記選手編集ゲームが、当該サッカーゲームの1つのモードである例を説明するが、上記選手編集ゲームは当該サッカーゲームとは別のゲームであってもよい。以降、当該モードをエディットモードと表記する。また、エディットモードにて編集された選手をエディットキャラクタと表記する。
【0061】
<情報処理装置10Aの機能的な構成>
図9は、情報処理装置10Aの機能的な構成を示すブロック図である。なお、情報処理装置10Aの概要およびハードウェア構成の一例は、情報処理装置10と同様であるため、詳細な説明を繰り返さない。なお、本実施形態に係る補助メモリ13に記憶されるゲームプログラムは、1または複数のコンピュータに、仮想空間内におけるベースオブジェクトから突出する複数の長尺オブジェクトを編集する編集ステップを実行させ、前記編集ステップでは、編集された後の各長尺オブジェクトの上の各点に対し、前記ベースオブジェクトからの距離が遠いほど大きくなるように影響度を関連付けるものである。
【0062】
情報処理装置10Aは、制御部110Aと記憶部120Aとを含む。
図1に示すプロセッサ11および通信インタフェース14が、制御部110Aとして機能するハードウェア要素の一例である。また、主メモリ12および補助メモリ13が、記憶部120Aとして機能するハードウェア要素の一例である。
【0063】
制御部110Aは、ゲーム進行部111Aと、表示部114と、キャラクタ編集部115(編集部)とを含む。記憶部120Aは、エディット用データD122と、エディットキャラクタデータD123とを少なくとも記憶している。エディット用データD122は、選手の編集に使用可能な各種オブジェクトのデータである。エディットキャラクタデータD123は、エディットキャラクタ、すなわち編集された選手のデータである。エディットキャラクタデータD123は、毛髪データD121を含む。
【0064】
ゲーム進行部111Aは、入力装置17を用いてユーザの操作に基づいて、エディットモードの進行に係る処理を行う。
【0065】
キャラクタ編集部115は、ゲーム進行部111Aによるエディットモードの進行に応じて、選手の各オブジェクトを編集する。当該オブジェクトは、選手の毛髪を表現する毛髪ブロックHBの他、目、鼻、口、耳、輪郭などの顔を形成するオブジェクト、腕、胴体、脚などのオブジェクト、ユニフォームなどの衣類オブジェクトなどを含む。
【0066】
キャラクタ編集部115は、ユーザの操作に応じたオブジェクトを記憶部120Aから読み出し、当該オブジェクトを編集中の選手に反映させる。例えば、キャラクタ編集部115は、選手の髪型を定めるための複数の髪型オブジェクトのうち、ユーザの操作により選択された髪型オブジェクトを編集中の選手に反映させる。なお、「反映」とは、捜査に応じたオブジェクトを編集中の選手のオブジェクトとして使用することを指す。
【0067】
キャラクタ編集部115は、反映された髪型オブジェクトについて、各毛髪ブロックHBの各頂点Aに対し、頭部表面からの距離が遠いほど大きくなるように影響度を関連付ける。ここでの「距離」は、実施形態1で説明した距離と同様である。
【0068】
また、キャラクタ編集部115は、反映された髪型オブジェクトについて、各毛髪ブロックHBの各頂点Aに対し、ディレイ値を関連付ける。実施形態1と同様に、或る毛髪ブロックHBに関連付けられるディレイ値は、他の毛髪ブロックHBに関連付けられるディレイ値と異なる値となる。
【0069】
キャラクタ編集部115は、エディットキャラクタと別の選手との間で、髪型オブジェクトが同一である場合、当該エディットキャラクタの毛髪ブロックHBに関連付けられるディレイ値が、当該別の選手と同一となるようにディレイ値を関連付ける。これにより、同一の髪型の選手において毛髪の揺れの表現が同一となり、毛髪の揺れに再現性を出すことができる。この例の場合、各髪型オブジェクトに予めディレイ値が関連付けられていてもよい。
【0070】
<情報処理装置10Aの動作>
以上のように構成された情報処理装置10Aの動作について説明する。情報処理装置10Aは、仮想空間内におけるベースオブジェクトから突出する複数の長尺オブジェクトを編集する編集ステップを実行させ、前記編集ステップでは、編集された後の各長尺オブジェクトの上の各点に対し、前記ベースオブジェクトからの距離が遠いほど大きくなるように影響度を関連付ける。
【0071】
図10は、情報処理装置10Aの動作を説明するフローチャートである。
【0072】
ステップS1100において、ゲーム進行部111Aは、サッカーゲームにおけるエディットモードを開始するエディットモード開始処理を実行する。
【0073】
ステップS1102において、ゲーム進行部111Aは、入力装置17に入力された、選手の編集のためのエディット操作を示す操作信号を取得する。
【0074】
ステップS1104において、ゲーム進行部111Aは、エディットキャラクタ編集処理を実行する。具体的には、ゲーム進行部111Aは、入力されたエディット操作の操作信号に応じたオブジェクトを編集中の選手に反映させる処理を、キャラクタ編集部115に実行させる。ここで、エディットキャラクタ編集処理により、或る髪型オブジェクトが編集中の選手に反映されたとする。
【0075】
ステップS1106において、キャラクタ編集部115は、反映された髪型オブジェクトの毛髪ブロックHBの各頂点Aに対し、影響度およびディレイ値を関連付ける。
【0076】
情報処理装置10Aは、ステップS1102からS1106までの処理を、編集中の選手をエディットキャラクタとして保存する保存操作が行われるまで繰り返し実行する(ステップS1108でNo)。
【0077】
保存操作を示す操作信号を取得すると(ステップS1108でYes)、ステップS1110において、ゲーム進行部111Aは、毛髪データD121を含むエディットキャラクタデータD123を記憶部120Aに記憶する。換言すれば、ゲーム進行部111Aは、編集中の選手をエディットキャラクタとして保存する。以上で、
図10のフローチャートで示される情報処理装置10Aの動作は終了する。
【0078】
<本実施形態の効果>
このように、本実施形態によれば、各毛髪ブロックHB上の各頂点Aに対し、適切な影響度を関連付けることができる。
【0079】
〔変形例〕
上述した実施形態において、情報処理装置10が、サッカーゲームを実現する例を中心に説明した。ただし、情報処理装置10が実現するゲームはサッカーゲームに限らず、他のスポーツをプレイするゲームであってもよいし、スポーツをプレイするゲームとは異なるゲームであってもよい。
【0080】
また、上述した実施形態において、情報処理装置10が、ユーザによってプレイ可能なゲームを実現するゲームシステムに含まれる例を中心に説明した。ただし、情報処理装置10は、ゲームシステムに含まれる装置に限られない。
【0081】
また、上述した実施形態において、長尺オブジェクトが、頭部表面から突出する毛髪ブロックHBである例を中心に説明した。ただし、長尺オブジェクトの具体例は毛髪ブロックHBに限らず、例えば、地面に対応するオブジェクトから突出するオブジェクトであって、草や芝の束のテクスチャが貼り付けられるオブジェクトであってもよい。換言すれば、情報処理装置10が動きを制御するオブジェクトは、髪、草、芝などの一端が固定され、他端が固定されていない物体を表現するオブジェクトであればよい。
【0082】
また、上述した実施形態において、毛髪ブロックHBの各頂点Aに頭部表面からの距離および髪型に応じた影響度が関連付けられる例を中心に説明した。ただし、影響度は上記距離および髪型に応じたものに限らず、例えば、上記距離のみに応じたものであってもよい。
【0083】
また、上述した実施形態において、毛髪ブロックHBの各頂点Aに影響度およびディレイ値が関連付けられる例を中心に説明した。ただし、各頂点Aに関連付けられるパラメータは影響度およびディレイ値に限らず、例えば、影響度のみであってもよい。
【0084】
また、上述した実施形態において、影響度が頂点Aの色情報のR値として、ディレイ値が頂点Aの色情報のB値として保存される例を中心に説明した。これに対し、影響度がB値として、ディレイ値がR値として保存されてもよいし、影響度およびディレイ値の一方がG値として保存されてもよい。また、影響度およびディレイ値は、色情報と異なる情報として保存されてもよい。
【0085】
また、上述した実施形態1において、毛髪ブロックHBの各頂点Aを動かすトリガとなる特定の原因が、選手の走行による頭部HAの上下動である例を中心に説明した。ただし、特定の原因は走行による頭部HAの上下動に限らず、仮想空間における風の発生、選手と他のオブジェクトとの衝突などの、毛髪ブロックHBに外力が与えられる事象が、仮想空間において発生したことであればよい。
【0086】
また、上述した実施形態1において、毛髪制御部113が、毛髪データD121を物理演算エンジンに入力し、物理演算エンジンから出力された演算結果に基づき毛髪ブロックHBの各頂点Aを動かす例を中心に説明した。これに対し、毛髪制御部113は、物理演算エンジンを用いずに毛髪ブロックHBの各頂点Aを動かしてもよい。毛髪制御部113は、例えば頂点シェーダ用のプログラムで実装してもよい。あるいは、毛髪制御部113は、クロスシミュレーションで使われる計算式を用いて実装してもよい。
【0087】
〔まとめ〕
以上に例示した形態から、例えば以下の構成が把握される。なお、各態様の理解を容易にするために、以下では、図面の参照符号を便宜的に括弧書で付記するが、本発明を図示の態様に限定する趣旨ではない。
【0088】
本発明の一態様に係る第1のプログラムは、1または複数のコンピュータに、仮想空間内において、ベースオブジェクトから突出する複数の長尺オブジェクトの動きを制御するオブジェクト制御ステップ(S108、S110)を実行させ、前記長尺オブジェクト上の複数の点には、前記ベースオブジェクトの表面からの距離が遠いほど大きくなるように影響度が関連付けられており、前記オブジェクト制御ステップでは、前記複数の点の各々が、当該点に関連付けられた影響度が大きいほど大きく動くように、前記複数の長尺オブジェクトを動かす、プログラムである。
【0089】
上記構成により、長尺オブジェクトにおいて、ベースオブジェクトに近い部分の移動量が小さくなるので、長尺オブジェクトがベースオブジェクトにめり込むことを抑制することができる。これにより、仮想空間内における長尺オブジェクトの動きを違和感の少ないものとすることができる。
【0090】
上述した第1のプログラムにおいて、前記ベースオブジェクトは、キャラクタの頭部に対応するオブジェクトであり、前記長尺オブジェクトは、前記キャラクタの毛髪の束に対応するオブジェクトである、ことが好ましい。
【0091】
上記構成により、仮想空間内における毛髪の揺れを違和感の少ないものとすることができる。
【0092】
上述した第1のプログラムにおいて、前記複数の点の各々には、前記キャラクタの髪型に応じた前記影響度が関連付けられている、ことが好ましい。
【0093】
一般に、髪型によって毛髪の動き易さが異なるため、上記構成により、仮想空間内における毛髪の揺れを、現実世界における人間の髪の毛の動きに似せたものとすることができる。
【0094】
上述した第1のプログラムにおいて、前記複数の点の各々には、遅延値が関連付けられており、同一の前記長尺オブジェクト上の前記点に関連付けられた前記遅延値は同一であり、前記オブジェクト制御ステップでは、前記複数の点の各々が、当該点に関連付けられた遅延値に応じたタイミングで動くように、前記複数の長尺オブジェクトを動かす、ことが好ましい。
【0095】
上記構成により、長尺オブジェクト上の点の動きのタイミングが当該点に関連付けられた遅延値に応じたものとなるため、全部の点が同時に動くことを避けることができる。また、同一の長尺オブジェクト上の点に関連付けられた遅延値は同一であるため、ある程度まとまって動くことになる。これにより、仮想空間内における毛髪の揺れを、現実世界における人間の髪の毛の動きに似せたものとすることができる。
【0096】
上述した第1のプログラムにおいて、前記1または複数のコンピュータに、記複数の長尺オブジェクトを編集する編集ステップ(S1104、S1106)をさらに実行させ、前記編集ステップでは、編集された後の各長尺オブジェクトの上の各点に対し、前記ベースオブジェクトからの距離が遠いほど大きくなるように影響度を関連付ける、ことが好ましい。
【0097】
上記構成により、各長尺オブジェクトの上の各点に対し、適切な影響度を関連付けることができる。
【0098】
上述した第1のプログラムにおいて、前記オブジェクト制御ステップでは、前記複数の長尺オブジェクトを示す情報、および、前記複数の長尺オブジェクト上の前記複数の点に関連付けられた前記影響度を示す情報を、物理演算エンジンに入力し、当該物理演算エンジンからの出力を参照して前記複数の長尺オブジェクトを動かす、ことが好ましい。
【0099】
上記構成により、物理演算エンジンを使用して、複数の長尺オブジェクトを自然に動かすことができる。
【0100】
本発明の一態様に係る第2のプログラムは、1または複数のコンピュータに、仮想空間内におけるベースオブジェクトから突出する複数の長尺オブジェクトを編集する編集ステップ(S1104、S1106)を実行させ、前記編集ステップでは、編集された後の各長尺オブジェクトの上の各点に対し、前記ベースオブジェクトからの距離が遠いほど大きくなるように影響度を関連付ける、プログラムである。
【0101】
上記構成により、各長尺オブジェクトの上の各点に対し、適切な影響度を関連付けることができる。
【0102】
本発明の一態様に係る第1の情報処理装置(10)は、仮想空間内において、ベースオブジェクトから突出する複数の長尺オブジェクトの動きを制御するオブジェクト制御部(113)を備え、前記長尺オブジェクト上の複数の点には、前記ベースオブジェクトの表面からの距離が遠いほど大きくなるように影響度が関連付けられており、前記オブジェクト制御部は、前記複数の点の各々が、当該点に関連付けられた影響度が大きいほど大きく動くように、前記複数の長尺オブジェクトを動かす、情報処理装置である。
【0103】
上記構成により、上述した第1のプログラムと同様の効果を奏する。
【0104】
本発明の一態様に係る第1の方法は、1または複数のコンピュータが、仮想空間内において、ベースオブジェクトから突出する複数の長尺オブジェクトの動きを制御するオブジェクト制御ステップ(S108、S110)を実行し、前記長尺オブジェクト上の複数の点には、前記ベースオブジェクトの表面からの距離が遠いほど大きくなるように影響度が関連付けられており、前記オブジェクト制御ステップでは、前記複数の点の各々が、当該点に関連付けられた影響度が大きいほど大きく動くように、前記複数の長尺オブジェクトを動かす、方法である。
【0105】
上記構成により、上述した第1のプログラムと同様の効果を奏する。
【0106】
本発明の一態様に係る第2の情報処理装置(10A)は、仮想空間内におけるベースオブジェクトから突出する複数の長尺オブジェクトを編集する編集部(115)を備え、前記編集部は、編集された後の各長尺オブジェクトの上の各点に対し、前記ベースオブジェクトからの距離が遠いほど大きくなるように影響度を関連付ける、情報処理装置である。
【0107】
上記構成により、上述した第2のプログラムと同様の効果を奏する。
【0108】
本発明の一態様に係る第2の方法は、1または複数のコンピュータが、仮想空間内におけるベースオブジェクトから突出する複数の長尺オブジェクトを編集する編集ステップ(S1104、S1106)を実行し、前記編集ステップでは、編集された後の各長尺オブジェクトの上の各点に対し、前記ベースオブジェクトからの距離が遠いほど大きくなるように影響度を関連付ける、方法である。
【0109】
上記構成により、上述した第2のプログラムと同様の効果を奏する。
【0110】
〔ソフトウェアまたはハードウェアによる実現例〕
上述した実施形態および各変形例では、情報処理装置10の制御部110が、ソフトウェアにより実現される例について説明した。すなわち、本発明の目的を達成するためにコンピュータによって実行されるプログラムが、
図1に示したコンピュータの補助メモリ13に記憶され、プロセッサ11が当該プログラムを読み取って実行することにより、情報処理装置10の制御部110が実現される。
【0111】
なお、この場合、上記プログラムを記憶する補助メモリ13としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。
【0112】
また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。また、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0113】
なお、情報処理装置10の制御部110は、ソフトウェアによる実現に限らず、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現されてもよい。
【0114】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0115】
10、10A 情報処理装置
11 プロセッサ
12 主メモリ
13 補助メモリ
14 通信インタフェース
15 入出力インタフェース
16 出力装置
17 入力装置
110、110A 制御部
111、111A ゲーム進行部
112 毛髪データ取得部
113 毛髪制御部(オブジェクト制御部)
114 表示部
115 キャラクタ編集部(編集部)
120、120A 記憶部