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

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

▶ 株式会社コーエーテクモゲームスの特許一覧

特開2023-96266情報処理装置、プログラム、及び描画方法
<>
  • 特開-情報処理装置、プログラム、及び描画方法 図1
  • 特開-情報処理装置、プログラム、及び描画方法 図2
  • 特開-情報処理装置、プログラム、及び描画方法 図3
  • 特開-情報処理装置、プログラム、及び描画方法 図4
  • 特開-情報処理装置、プログラム、及び描画方法 図5
  • 特開-情報処理装置、プログラム、及び描画方法 図6
  • 特開-情報処理装置、プログラム、及び描画方法 図7
  • 特開-情報処理装置、プログラム、及び描画方法 図8
  • 特開-情報処理装置、プログラム、及び描画方法 図9
  • 特開-情報処理装置、プログラム、及び描画方法 図10
  • 特開-情報処理装置、プログラム、及び描画方法 図11
  • 特開-情報処理装置、プログラム、及び描画方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023096266
(43)【公開日】2023-07-07
(54)【発明の名称】情報処理装置、プログラム、及び描画方法
(51)【国際特許分類】
   G06T 19/00 20110101AFI20230630BHJP
   A63F 13/52 20140101ALI20230630BHJP
   A63F 13/55 20140101ALI20230630BHJP
【FI】
G06T19/00 A
A63F13/52
A63F13/55
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021211889
(22)【出願日】2021-12-27
(71)【出願人】
【識別番号】595000427
【氏名又は名称】株式会社コーエーテクモゲームス
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】土岐 翼
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050BA08
5B050BA09
5B050BA12
5B050BA13
5B050CA07
5B050CA08
5B050DA10
5B050EA07
5B050EA13
5B050EA18
5B050EA24
5B050EA26
5B050FA02
(57)【要約】
【課題】動きのある紐状オブジェクトの描画が崩れることを抑制すること。
【解決手段】紐状オブジェクトの動きを描画する情報処理装置であって、紐状オブジェクトの複数の制御点の位置及び姿勢を算出するように構成されている算出部と、算出した複数の制御点の姿勢うち、基準となる一端の制御点の姿勢に基づき、複数の制御点の描画用の姿勢を、一端の制御点から他端の制御点まで順次、決定するように構成されている決定部と、算出した複数の制御点の位置、及び決定した複数の制御点の描画用の姿勢に基づいて、紐状オブジェクトの動きを描画するように構成されている描画部と、を有する情報処理装置が提供される。
【選択図】図3
【特許請求の範囲】
【請求項1】
紐状オブジェクトの動きを描画する情報処理装置であって、
紐状オブジェクトの複数の制御点の位置及び姿勢を算出するように構成されている算出部と、
算出した前記複数の制御点の姿勢うち、基準となる一端の制御点の姿勢に基づき、前記複数の制御点の描画用の姿勢を、前記一端の制御点から他端の制御点まで順次、決定するように構成されている決定部と、
算出した前記複数の制御点の位置、及び決定した前記複数の制御点の描画用の姿勢に基づいて、紐状オブジェクトの動きを描画するように構成されている描画部と、
を有する情報処理装置。
【請求項2】
前記決定部は、算出した前記一端の制御点の姿勢を前記紐状オブジェクトの前記一端の制御点における接線方向に合わせた前記一端の制御点の描画用の姿勢を決定し、前記一端の制御点の次の制御点から前記他端の制御点までを順番に処理対象として、処理対象の制御点の一つ前の制御点の描画用の姿勢を前記紐状オブジェクトの処理対象の制御点における接線方向に合わせた処理対象の制御点の描画用の姿勢を決定するように構成されている
請求項1記載の情報処理装置。
【請求項3】
前記算出部は、初期形状を保持する紐状オブジェクトの前記複数の制御点の位置及び姿勢をシミュレーションにより算出するように構成されている
請求項1又は2記載の情報処理装置。
【請求項4】
前記描画部は、前記紐状オブジェクトのポリゴンの頂点を、算出した前記複数の制御点の位置、及び決定した前記複数の制御点の描画用の姿勢に基づいて決めるように構成されている
請求項1乃至3の何れか一項に記載の情報処理装置。
【請求項5】
前記紐状オブジェクトは、紐又は髪の毛の動きを再現するオブジェクトである
請求項1乃至4の何れか一項に記載の情報処理装置。
【請求項6】
紐状オブジェクトの動きを描画する情報処理装置に、
紐状オブジェクトの複数の制御点の位置及び姿勢を算出する手順、
算出した前記複数の制御点の姿勢うち、基準となる一端の制御点の姿勢に基づき、前記複数の制御点の描画用の姿勢を、前記一端の制御点から他端の制御点まで順次、決定する手順、
算出した前記複数の制御点の位置、及び決定した前記複数の制御点の描画用の姿勢に基づいて、紐状オブジェクトの動きを描画する手順、
を実行させるためのプログラム。
【請求項7】
紐状オブジェクトの動きを描画する情報処理装置の描画方法であって、
前記情報処理装置は、
紐状オブジェクトの複数の制御点の位置及び姿勢を算出し、
算出した前記複数の制御点の姿勢うち、基準となる一端の制御点の姿勢に基づき、前記複数の制御点の描画用の姿勢を、前記一端の制御点から他端の制御点まで順次、決定し、
算出した前記複数の制御点の位置、及び決定した前記複数の制御点の描画用の姿勢に基づいて、紐状オブジェクトの動きを描画する、
描画方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、プログラム、及び描画方法に関する。
【背景技術】
【0002】
従来から、仮想空間内における毛髪などの長尺オブジェクトの動きを違和感の少ないものとする技術は知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2021-157601号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば紐や髪の毛などの紐状オブジェクトの動きを再現するシミュレーションでは紐状オブジェクトに複数の制御点を配置し、複数の制御点を独立に運動方程式に従って動かしている。また、紐状オブジェクトの動きを再現するシミュレーションでは、より現実に近い動きを再現するため、紐状オブジェクトの向きを表す姿勢を運動方程式に従って動かしているものもある。
【0005】
このようなシミュレーションの結果に基づいて紐状オブジェクトの動きを描画する情報処理装置では、モデルが持つポリゴンの頂点の位置を、制御点の位置及び紐状オブジェクトの姿勢に従って移動させることで紐状オブジェクトの動きを描画していた。
【0006】
しかしながら、シミュレーションの結果に基づいて紐状オブジェクトの動きを描画する従来の情報処理装置では、紐状オブジェクトの動きが激しい場合などに姿勢がばらついてしまい、紐状オブジェクトの描画が崩れてしまうという問題があった。特許文献1は、このような問題を解決するものではない。
【0007】
本開示は、動きのある紐状オブジェクトの描画が崩れることを抑制すること、を課題とする。
【課題を解決するための手段】
【0008】
本開示によれば、紐状オブジェクトの動きを描画する情報処理装置であって、紐状オブジェクトの複数の制御点の位置及び姿勢を算出するように構成されている算出部と、算出した前記複数の制御点の姿勢うち、基準となる一端の制御点の姿勢に基づき、前記複数の制御点の描画用の姿勢を、前記一端の制御点から他端の制御点まで順次、決定するように構成されている決定部と、算出した前記複数の制御点の位置、及び決定した前記複数の制御点の描画用の姿勢に基づいて、紐状オブジェクトの動きを描画するように構成されている描画部と、を有する情報処理装置が提供される。
【発明の効果】
【0009】
本開示によれば、動きのある紐状オブジェクトの描画が崩れることを抑制できる。
【図面の簡単な説明】
【0010】
図1】本実施形態に係る情報処理システムの一例の構成図である。
図2】本実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
図3】本実施形態に係る情報処理装置の機能構成の一例を示す図である。
図4】紐状オブジェクトに配置される複数の制御点について説明するための一例の図である。
図5】紐状オブジェクトの向きを表す姿勢について説明する一例の図である。
図6】紐状オブジェクトの描画について説明する一例の図である。
図7】紐状オブジェクトの描画について説明する一例の図である。
図8】制御点の描画用の姿勢を決定する処理の一例の説明図である。
図9】制御点の描画用の姿勢を決定する処理の一例の説明図である。
図10】制御点の描画用の姿勢を決定する処理の一例の説明図である。
図11】本実施形態に係る情報処理システムの処理の一例のフローチャートである。
図12】制御点の描画用の姿勢を決定する処理の一例のフローチャートである。
【発明を実施するための形態】
【0011】
以下、本開示を実施するための形態について図面を参照して説明する。なお、本実施形態の紐状オブジェクトは、仮想空間に配置される紐や髪の毛などの幅や厚さに対して長さが十分に大きいオブジェクトである。
【0012】
[システム構成]
まず、一実施形態に係る紐状オブジェクトの動きを描画する情報処理システムの例を説明する。一実施形態に係る情報処理システムは、例えばシミュレーション又はゲームなどに利用される。
【0013】
図1は本実施形態に係る情報処理システムの一例の構成図である。本実施形態の情報処理システムは図1(A)又は図1(B)に示すように構成される。図1(A)に示す情報処理システムは情報処理装置10を有する構成である。情報処理装置10は、ユーザが操作するコンピュータである。図1(A)の情報処理装置10はユーザからの操作をタッチパネル、コントローラ、マウス、又はキーボード等で受け付けて、操作に応じた情報処理を実行し、実行結果を表示する。
【0014】
また、図1(B)の情報処理システムは、ネットワーク18を介して情報処理装置10とサーバ装置14とが通信可能に接続された構成である。図1(B)の情報処理装置10は図1(A)と同様なコンピュータである。図1(B)のサーバ装置14も図1(A)と同様なコンピュータで実現できる。
【0015】
サーバ装置14は情報処理装置10との間でデータを送受信することで、情報処理装置10が受け付けたユーザの操作に応じた情報処理を実行し、実行結果を情報処理装置10に提供する。情報処理装置10はサーバ装置14から提供された実行結果を表示する。
【0016】
サーバ装置14はクラウドコンピュータにより実現してもよい。なお、図1(B)に示したサーバ装置14の個数は、1つに限定されるものではなく、2つ以上で分散処理してもよい。サーバ装置14は情報処理装置10へのプログラム(アプリケーション)などのダウンロード処理、ユーザのログイン処理、又は各種データベースを管理する処理、などに利用してもよい。なお、図1のシステム構成は一例である。
【0017】
[ハードウェア構成]
本実施形態に係る情報処理装置10は、例えば図2に示すように構成される。サーバ装置14の構成は情報処理装置10と同様であるため、説明を省略する。図2は本実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【0018】
図2の情報処理装置10は、例えばCPU(Central Processing Unit)100、記憶装置102、通信装置104、入力装置106、及び出力装置108を有する。CPU100はプログラムに従って情報処理装置10を制御する。記憶装置102は、例えばROM(Read Only Memory)やRAM(Random Access Memory)などのメモリ、HDD(Hard Disk Drive)やSSD(Solid State Drive)などのストレージである。記憶装置102はCPU100で実行するプログラム及びデータを記憶する。
【0019】
通信装置104は、通信を制御するネットワーク回路などの通信デバイスである。入力装置106は、タッチパッド、コントローラ、マウス、キーボード、カメラ、マイクなどの入力デバイスである。また、出力装置108はディスプレイ、スピーカなどの出力デバイスである。タッチパネルは入力装置106の一例であるタッチパッドと出力装置108の一例であるディスプレイとを組み合わせることで実現される。図2のハードウェア構成は一例である。
【0020】
[機能ブロック]
以下では、図1(A)の構成を一例として説明する。なお、図3に示す機能構成は一例であって、例えば図3に示した機能構成の少なくとも一部をサーバ装置14に設け、情報処理装置10とサーバ装置14とが連携して処理を行うようにしてもよい。
【0021】
図3は本実施形態に係る情報処理装置の機能構成の一例を示す図である。図3の情報処理装置10は、制御部200、操作受付部202、出力制御部204、通信部206、及び記憶部210を有する。
【0022】
記憶部210は、プログラム212、オブジェクト情報DB214、シミュレーション結果DB216、描画用姿勢情報DB218、及びポリゴン情報DB220を記憶している。記憶部210は記憶装置102で実現してもよいし、ネットワーク18等を介して接続された記憶装置により実現してもよい。
【0023】
プログラム212は、CPU100が実行するプログラムの一例である。オブジェクト情報DB214は、仮想空間に配置された紐状オブジェクトに関する情報を記憶する。シミュレーション結果DB216は、紐状オブジェクトの動きのシミュレーション結果を記憶する。描画用姿勢情報DB218は、紐状オブジェクトの描画に利用する描画用の姿勢情報を記憶する。ポリゴン情報DB220は紐状オブジェクトの描画に利用するモデルのポリゴンに関する情報を記憶する。
【0024】
本実施形態では仮想空間内の紐状オブジェクトの動きをシミュレートし、仮想空間内の所定の視点(仮想カメラ)から見た紐状オブジェクトの画像を描画する。仮想空間は2次元又は3次元座標系上に紐状オブジェクトが存在する空間のことである。紐状オブジェクトは、2次元又は3次元のコンピュータグラフィックスで仮想空間内に配置される。
【0025】
制御部200は情報処理装置10の全体の制御を行う。情報処理装置10の全体の制御には、ユーザから紐状オブジェクトの動きを描画する操作を受け付け、操作に応じた紐状オブジェクトの動きを描画して表示する制御が含まれる。
【0026】
制御部200は、CPU100がプログラム212に記載された処理を実行することにより実現される。図3の制御部200は、算出部230、決定部232、及び描画部234を有する構成である。また、算出部230は制御点位置算出部240及び姿勢算出部242を有する構成である。
【0027】
算出部230は、紐状オブジェクトに配置された複数の制御点の位置及び姿勢を算出する処理を行う。算出部230が有する制御点位置算出部240は、複数の制御点を運動方程式に従って独立に動かし、複数の制御点の位置を算出する。また、制御点位置算出部240は紐状オブジェクトの長さや制御点間の距離などの拘束条件及び制御点が姿勢の接線方向に存在する拘束条件(伸び・歪み拘束条件)を保つように、複数の制御点の位置を算出する。なお、制御点位置算出部240の処理の詳細は後述する。
【0028】
姿勢算出部242は、紐状オブジェクトの制御点と制御点との間に持たせている紐状オブジェクトの向きを表す姿勢を運動方程式に従って動かし、制御点と制御点との間の姿勢を算出する。姿勢算出部242は、算出した制御点と制御点との間の姿勢を、制御点の姿勢として用いる。また、姿勢算出部242は初期の姿勢同士のねじれ具合に戻すように姿勢を動かす拘束条件(曲げ・ねじれ拘束条件)を保つように、複数の制御点の姿勢を算出する。なお、姿勢算出部242の処理の詳細は後述する。
【0029】
決定部232は、算出部230が算出した複数の制御点の位置及び姿勢から、複数の制御点の描画用の姿勢を決定する。決定部230は、算出部230が算出した複数の制御点の姿勢のうち、基準となる一端の制御点の姿勢に基づき、複数の制御点の描画用の姿勢を決定する。決定部232は、基準となる一端の制御点から他端の制御点まで、描画用の姿勢を順番に決定する。なお、決定部232の処理の詳細は後述する。
【0030】
描画部234は、算出部230が算出した複数の制御点の位置、及び決定部232が決定した複数の制御点の描画用の姿勢に基づいて、動きのある紐状オブジェクトを描画して表示する。
【0031】
操作受付部202は入力装置106に対するユーザの各種操作を受け付ける。出力制御部204は制御部200の制御に従って各種画面を出力装置108に表示する。操作受付部202はCPU100がプログラムに従って入力装置106を制御することにより実現される。また、出力制御部204は、CPU100がプログラムに従って出力装置108を制御することにより実現される。入力装置106に対するユーザの各種操作とは、CPU100に処理を実行させるため、ユーザが操作受付部202を操る操作をいう。出力制御部204は、制御部200の制御に従い、各種画面の表示と音の出力とを行う。
【0032】
通信部206は、ネットワーク18等を介して通信する。通信部206はCPU100がプログラムを実行し、プログラムに従って通信装置104を制御することにより実現される。
【0033】
[紐状オブジェクトに配置される複数の制御点]
図4は紐状オブジェクトに配置される複数の制御点について説明するための一例の図である。図4(A)及び図4(B)に示すように、紐状オブジェクトには複数の制御点1000が配置されている。
【0034】
例えば図4(A)の紐状オブジェクトの動きを再現するシミュレーションでは、制御点1000を独立に運動方程式に従って動かす積分処理と、動かした後に紐の長さ等を保つように制御点1000を動かす拘束処理と、が行われる。
【0035】
図4(B)の紐状オブジェクトはバネの螺旋形状のように初期形状を保持しながら揺れる紐状オブジェクトの例である。図4(B)の紐状オブジェクトは、制御点1000を独立に運動方程式に従って動かす積分処理と、動かした後に紐の長さ等を保つように制御点1000を動かす拘束処理と、を行ったとしても、紐状オブジェクトの動きを再現できない。なお、図4(B)の紐状オブジェクトの初期形状を保持するために復元力を働かせる方法もあるが、不自然な揺れになることが多い。
【0036】
[紐状オブジェクトの向きを表す姿勢]
図5は紐状オブジェクトの向きを表す姿勢について説明する一例の図である。例えばバネの螺旋形状や髪の毛の癖などの初期形状を保持する紐状オブジェクトの動きを再現するシミュレーションでは、制御点1000と制御点1000との間に、紐状オブジェクトの向きを表す姿勢1002を持たせる。姿勢1002は運動方程式に従って動かされる。
【0037】
初期の前後の姿勢1002同士のねじれ具合の関係(例えば図5(A)に図示した関係1002-1)を記憶しておき、その関係1002-1に戻すように姿勢1002を動かすことで、初期形状を保持する紐状オブジェクトの動きを再現できる。前後の姿勢1002同士のねじれ具合を考慮すれば、例えば図5(B)に示したような螺旋形状の紐状オブジェクトであっても、初期形状を保持しながら自然に揺れる紐状オブジェクトの動きを再現できる。前後の姿勢1002同士のねじれ具合を考慮して紐状オブジェクトの動きを再現するシミュレーションでは、初期形状の保持が重要となる紐状オブジェクトの全般に広く利用できる。
【0038】
[紐オブジェクトの描画]
図6は紐状オブジェクトの描画について説明する一例の図である。図6(A)は紐状オブジェクトの制御点1000と、制御点1000の間に持たせた紐オブジェクトの向きを表す姿勢1002と、を表している。図6(B)は制御点1000の描画用の姿勢1002を表している。また、図6では制御点1000を繋ぐように制御点1000の間に表示された点線が紐状オブジェクトの接点方向を示している。
【0039】
例えば図6の紐状オブジェクトの動きを再現する描画では、モデルが持つポリゴン1004の頂点の位置を、図6(B)に示した制御点1000の位置と制御点1000の姿勢1002とに従って移動させることで紐状オブジェクトの動きを描画していた。
【0040】
しかしながら、図6に示した紐状オブジェクトの描画では、図7に示すような問題が生じる場合がある。図7は紐状オブジェクトの描画について説明する一例の図である。例えば図7(A)は制御点1000の間に持たせた姿勢1002が、親骨の移動が激しい、拘束処理のイテレーション回数が少ない等といった要因により、紐状オブジェクトの接線方向からずれている例である。
【0041】
制御点1000の間に持たせた姿勢1002が図7(A)のように紐状オブジェクトの接線方向からずれていると、制御点1000の描画用の姿勢1002は図7(B)に示したように紐状オブジェクトの接線方向からずれることになる。
【0042】
したがって、図7の紐状オブジェクトの動きを再現する描画では、モデルが持つポリゴン1004の頂点の位置を、図7(B)に示した制御点1000の位置と制御点1000の姿勢1002とに従って移動させて紐状オブジェクトの動きを描画するため、ポリゴン1004の描画が崩れてしまい、正しい見た目にならない。
【0043】
そこで、本実施形態では図8図10に示すように制御点1000の描画用の姿勢1002を擬似的に決定することで、動きのある紐状オブジェクトの描画が崩れることを抑制する。図8図10は制御点の描画用の姿勢を決定する処理の一例の説明図である。
【0044】
図8(A)は紐状オブジェクトの複数の制御点1000a~1000gと、制御点1000a~1000gの間に持たせた姿勢1002a~1002fと、を表している。制御点1000aは基準となる一端の制御点(根元の制御点)の一例である。制御点1000gは他端の制御点(先端の制御点)の一例である。
【0045】
図8(A)は制御点1000a~1000gの間に持たせた姿勢1002a~1002fが紐状オブジェクトの接線方向からずれているため、姿勢1002a~1002fを制御点1000a~1000gの描画用の姿勢として用いると、紐状オブジェクトの描画が崩れてしまう。
【0046】
そこで、本実施形態では図8(B)に示すように、基準となる一端の制御点1000aと次の制御点1000bの間の姿勢1002aを制御点1000a~1000gの描画用の姿勢1002の決定に利用する。本実施形態では、基準となる一端の制御点1000aと次の制御点1000bの間の姿勢1002aに基づき、制御点1000a~1000gの描画用の姿勢1002を決定する。図9(A)は、図8(B)の制御点1000aの姿勢1002aを、制御点1000aにおける紐状オブジェクトの接線方向に合わせた描画用の姿勢1002aを示している。
【0047】
次に、描画用の姿勢1002を決定する処理対象を制御点1000aから制御点1000bに変更して処理を続ける。図9(B)は、図9(A)の制御点1000aの描画用の姿勢1002aを、制御点1000aの次の制御点1000bの姿勢1002bとして用いる様子を表している。図10(A)は図9(B)の制御点1000bの姿勢1002bを、制御点1000bにおける紐状オブジェクトの接線方向に合わせた描画用の姿勢1002bを示している。
【0048】
以下、制御点1000c~1000gを順番に処理対象として、処理対象の一つ前の制御点1000の描画用の姿勢1002を処理対象の制御点1000における接線方向に合わせた、処理対象の制御点1000の描画用の姿勢1002を例えば図10(B)のように決定する。例えば図10(B)では、制御点1000a~1000gの描画用の姿勢1002a~1002gが、それぞれ制御点1000a~1000gの接線方向を向いているため、ポリゴン1004の描画が崩れず、正しい見た目となる。
【0049】
[処理]
以下では、本実施形態に係る情報処理システムが紐状オブジェクトの動きを描画する操作をユーザから受け付けて、その操作に応じた紐状オブジェクトの動きを描画して出力装置108に表示(出力)するシミュレーションの処理例を説明する。図11は本実施形態に係る情報処理システムの処理の一例のフローチャートである。
【0050】
ステップS100において、情報処理装置10はユーザからシミュレーションを開始する操作を受け付ける。情報処理装置10の制御部200は、ユーザから受け付けた操作に従って、シミュレーション処理を開始する。
【0051】
ステップS102において、算出部230の制御点位置算出部240は図8(A)に示したように、紐状オブジェクトの複数の制御点1000a~1000gの位置を運動方程式により算出する。制御点位置算出部240は、仮想空間内の紐状オブジェクトの制御点1000a~1000gの動きを、物理法則に基づいてシミュレートする。
【0052】
ステップS104において、算出部230の姿勢算出部242は図8(A)に示したように、制御点1000a~1000gの間に持たせた姿勢1002a~1002fを運動方程式により算出する。ステップS106において、算出部230の制御点位置算出部240及び姿勢算出部242は動かした後に必要に応じて拘束処理を行う。例えば拘束処理は処理負荷の軽減のため、処理の頻度を調整してもよい。
【0053】
ステップS102~S106は、紐状オブジェクトの複数の制御点1000a~1000gの位置、及び制御点1000a~1000gの間に持たせた姿勢1002a~1002fをシミュレートする処理である。
【0054】
ステップS108において、制御部200の決定部232は例えば図12に示すような制御点1000の描画用の姿勢1002を決定する処理を行う。図12は制御点の描画用の姿勢を決定する処理の一例のフローチャートである。
【0055】
ステップS200において、決定部232は例えば図8(B)に示すように、基準となる一端(根元)の制御点1000aと次の制御点1000bとの間の姿勢1002aを制御点1000aの姿勢1002aとして取得する。
【0056】
ステップS202において、決定部232は例えば図9(A)に示すように、制御点1000aの姿勢1002aを制御点1000aにおける紐状オブジェクトの接線方向に合わせた制御点1000aの描画用の姿勢1002aを決定する。なお、以下では制御点1000における紐状オブジェクトの接線方向を、単に制御点1000の接線方向と呼ぶことがある。
【0057】
ステップS204において、決定部232は描画用の姿勢1002を決定する次の処理対象の制御点1000を選択する。例えば図9(B)に示すように、決定部232は処理対象を制御点1000aから制御点1000bに変更する。
【0058】
ステップS206において、決定部232は処理対象の制御点1000の一つ前の制御点1000の描画用の姿勢1002を取得する。例えば図9(B)に示すように、決定部232は処理対象の制御点1000bの一つ前の制御点1000aの描画用の姿勢1002aを取得する。
【0059】
ステップS208において、決定部232は一つ前の制御点1000の描画用の姿勢1002を処理対象の制御点1000の接線方向に合わせた、処理対象の制御点1000の描画用の姿勢1002を決定する。例えば図10(A)に示すように、決定部232は一つ前の制御点1000aの描画用の姿勢1002aを処理対象の制御点1000bの接線方向に合わせた、処理対象の制御点1000bの描画用の姿勢1002bを決定する。
【0060】
ステップS210において、決定部232は次の処理対象の制御点1000があるか否かを判定する。次の処理対象の制御点1000があれば、決定部232はステップS204の処理に戻り、ステップS204~S210の処理を行う。ステップS204~S210の処理を繰り返すことで、決定部232は例えば図10(B)に示すように、それぞれの制御点1000c~1000gの描画用の姿勢1002c~1002gを決定する。
【0061】
ステップS210において、決定部232は次の処理対象の制御点1000が無いと判定すると、図12のフローチャートの処理を終了する。図12のフローチャートの処理により、決定部232は制御点1000ごとに描画用の姿勢1002を決定できる。
【0062】
図11のステップS110に戻り、制御部200の描画部234は、算出部230が算出した制御点1000の位置、及び決定部232が決定した制御点1000の描画用の姿勢1002に基づいた描画処理を行う。例えば図10(B)の例では、描画部234は制御点1000a~1000gの位置、及び制御点1000a~1000gの描画用の姿勢1002a~1002gに基づいて、動きのある紐状オブジェクトを描画して表示する。
【0063】
ステップS112において、制御部200はシミュレーション処理を終了するか否かを判定し、シミュレーション終了と判定するまで、ステップS102~S112の処理を繰り返す。シミュレーション終了と判定すると、制御部200は図11のフローチャートの処理を終了する。
【0064】
本実施形態は、例えばゲームキャラクタの髪の毛の描画に適用できる。また、本実施形態は、ソーシャルネットワークサービスで利用者が利用するアバターの髪の毛やノンプレイヤキャラクタ(NPC)の髪の毛の描画に適用できる。
【0065】
本実施形態によれば、仮想空間を所定の視点から見た紐状オブジェクトを描画して表示する情報処理装置10において、動きのある紐状オブジェクトの描画が崩れることを抑制できる。例えば紐状オブジェクトの動きが激しく、且つ拘束条件の適応回数が少ない場合であっても、紐状オブジェクトの描画が崩れることを抑制できる。
【0066】
開示した一実施形態の情報処理装置は例示であって制限的なものではないと考えられるべきである。上記の実施形態は添付の請求の範囲及びその主旨を逸脱することなく、様々な形態で変形及び改良が可能である。また、上記した複数の実施形態に記載された事項は矛盾しない範囲で他の構成も取り得ることができ、また、矛盾しない範囲で組み合わせることができる。
【符号の説明】
【0067】
10 情報処理装置
14 サーバ装置
18 ネットワーク
200 制御部
202 操作受付部
204 出力制御部
206 通信部
210 記憶部
212 プログラム
214 オブジェクト情報DB
216 シミュレーション結果DB
218 描画用姿勢情報DB
220 ポリゴン情報DB
230 算出部
232 決定部
234 描画部
240 制御点位置算出部
242 姿勢算出部
1000 制御点
1002 姿勢
1004 ポリゴン
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12