(57)【要約】【課題】互いに繋がったオブジェクトの動きをより自然に且つ簡単に表現する。【解決手段】仮想空間には、互いに連結点で連結される第１オブジェクトと第２オブジェクトが配置される。画像生成装置２００において、記憶部２０１は、第１オブジェクトの位置及び向きと、第２オブジェクトの位置及び向きと、を記憶する。移動部２０２は、第１オブジェクトの位置及び／又は向きを移動する。また、移動部２０２は、第１オブジェクトに対して相対的に固定され、且つ、第１オブジェクトと交差しない移動可能領域に、第２オブジェクトの端点の位置が含まれるように、第２オブジェクトの位置及び／又は向きを移動する。生成部２０３は、第１オブジェクトと第２オブジェクトを表す画像を生成する。【選択図】図２
2011039619.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間内に配置される第１オブジェクトの位置及び向きと、当該仮想空間内に配置され所定の連結点で前記第１オブジェクトと連結される第２オブジェクトの位置及び向きと、を記憶する記憶部と、
前記記憶される第１オブジェクトの位置及び向きを移動する移動部と、
前記記憶される第１オブジェクトの位置及び向きと、前記記憶される第２オブジェクトの位置及び向きと、に基づいて、前記第１オブジェクトと前記第２オブジェクトを表す画像を生成する生成部と、
を備え、
前記移動部は、前記第１オブジェクトに対して相対的に固定され、且つ、前記第１オブジェクトと交差しない所定の移動可能領域に、前記第２オブジェクトの端点の位置が含まれるように、前記第２オブジェクトの位置及び向きを更に移動する、
ことを特徴とする画像生成装置。
【請求項２】
請求項１に記載の画像生成装置であって、
前記移動可能領域は、２次元の当該仮想空間における線状の領域、又は、３次元の当該仮想空間における面状の領域である、
ことを特徴とする画像生成装置。
【請求項３】
請求項２に記載の画像生成装置であって、
前記移動部は、前記第１オブジェクトが移動されると、
（ａ）移動された時刻における前記連結点の位置から、
（ｂ）前記第１オブジェクトに対する前記第２オブジェクトの相対的な位置が常に固定されると仮定したときの前記端点の位置であって、前記移動された時刻より所定時間だけ前の時刻における前記端点の位置へ、
と結ぶ半直線と、前記移動可能領域と、の交点の位置に、前記端点を配置する、
ことを特徴とする画像生成装置。
【請求項４】
請求項２に記載の画像生成装置であって、
前記移動部は、
（ｐ）現在の時刻における前記連結点の位置から、
（ｑ）前記現在の時刻より所定時間だけ前の時刻における前記端点の位置へ、
と結ぶ半直線と、前記移動可能領域と、の交点の位置に、前記端点を配置する、
ことを特徴とする画像生成装置。
【請求項５】
請求項３又は４に記載の画像生成装置であって、
前記移動可能領域は、前記連結点を中心とする円の一部、若しくは、前記連結点を中心とする球面の一部であり、
前記移動部は、前記交点が存在しない場合、前記移動可能領域のうち前記半直線に最も近い位置に、前記端点を配置する、
ことを特徴とする画像生成装置。
【請求項６】
記憶部、移動部、生成部を有する画像生成装置において実行される画像生成方法であって、
前記記憶部には、仮想空間内に配置される第１オブジェクトの位置及び向きと、当該仮想空間内に配置され所定の連結点で前記第１オブジェクトと連結される第２オブジェクトの位置及び向きと、が記憶され、
前記移動部が、前記記憶される第１オブジェクトの位置及び向きを移動する移動ステップと、
前記生成部が、前記記憶される第１オブジェクトの位置及び向きと、前記記憶される第２オブジェクトの位置及び向きと、に基づいて、前記第１オブジェクトと前記第２オブジェクトを表す画像を生成する生成ステップと、
を備え、
前記移動ステップでは、前記移動部が、前記第１オブジェクトに対して相対的に固定され、且つ、前記第１オブジェクトと交差しない所定の移動可能領域に、前記第２オブジェクトの端点の位置が含まれるように、前記第２オブジェクトの位置及び向きを更に移動する、
ことを特徴とする画像生成方法。
【請求項７】
コンピュータを、
仮想空間内に配置される第１オブジェクトの位置及び向きと、当該仮想空間内に配置され所定の連結点で前記第１オブジェクトと連結される第２オブジェクトの位置及び向きと、を記憶する記憶部、
前記記憶される第１オブジェクトの位置及び向きを移動する移動部、
前記記憶される第１オブジェクトの位置及び向きと、前記記憶される第２オブジェクトの位置及び向きと、に基づいて、前記第１オブジェクトと前記第２オブジェクトを表す画像を生成する生成部、
として機能させ、
前記移動部は、前記第１オブジェクトに対して相対的に固定され、且つ、前記第１オブジェクトと交差しない所定の移動可能領域に、前記第２オブジェクトの端点の位置が含まれるように、前記第２オブジェクトの位置及び向きを更に移動する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、互いに繋がったオブジェクトの動きをより自然に且つ簡単に表現するために好適な画像生成装置、画像生成方法、ならびに、プログラムに関する。
【背景技術】
【０００２】
近年、コンピュータグラフィックスの分野における技術が発達し、より精密でよりリアルなシミュレーション画像を作成できるようになってきている。例えば特許文献１には、毛髪・布・衣服等の柔軟な物体を複数の四角形ポリゴンで構成し、その頂点を仮想的な質点として、隣り合う質点の間を仮想的なバネで連結したモデルにより、その形状を求めるクロスシミュレーション関連技術が開示されている。この際には、所定の更新間隔時間（典型的には、垂直同期割り込み周期）おきに微分方程式を数値積分して解くことになる。
【０００３】
ここで、更新間隔時間とは、数値積分の分野では「ステップ時間」「時間刻み幅」とも呼ばれ、微小時間であることが必要とされるが、「微小」の程度は適用分野に応じて様々であり、更新間隔時間を短かくすればするほど、シミュレーションの誤差は小さくなるが、数値積分に要する計算量が多くなる。また、質点の数を増やせば増やすほど、毛髪等の形状をそれだけ正確にシミュレートできる、とも考えられるが、質点の数を増やせばそれだけ、数値積分に要する計算量が多くなる。
【０００４】
例えば、プレイヤーなどに操作されるキャラクターに髪の毛などのオブジェクトが連結されている場合に、キャラクターの動きに合わせて髪の毛が振れる様子を正確にシミュレートしようとすると、ポリゴンの演算量が増えるだけでなく、頭と髪の毛との衝突判定もしなければならず、画像生成にかかる処理の負荷は増大する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−０９９９５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、計算速度が遅く計算資源が限定された情報処理装置などにおいてこのようなシミュレーションを行う場合には、この更新間隔時間をできるだけ長くし、質点の数をできるだけ少なくして、計算を簡易に済ませたいという要望は大きい。一方で、更新間隔時間を長くしたり質点の数を少なくしたりすると、キャラクターの動きが激しい場合に、現実の髪の毛の動きからかけ離れたものとなってしまうという問題が生じる。また例えば、頭と髪の毛との衝突判定を省略すると、まるで髪の毛が頭に刺さってしまうような不自然な画像になってしまうことがあった。
【０００７】
本発明はこのような課題を解決するものであり、互いに繋がったオブジェクトの動きをより自然に且つ簡単に表現するために好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００９】
本発明の第１の観点に係る画像生成装置は、記憶部、移動部、生成部を備える。
記憶部は、仮想空間内に配置される第１オブジェクトの位置及び向きと、当該仮想空間内に配置され所定の連結点で前記第１オブジェクトと連結される第２オブジェクトの位置及び向きと、を記憶する。
移動部は、記憶される第１オブジェクトの位置及び向きを移動する。
生成部は、記憶される第１オブジェクトの位置及び向きと、記憶される第２オブジェクトの位置及び向きと、に基づいて、第１オブジェクトと第２オブジェクトを表す画像を生成する。
そして、移動部は、第１オブジェクトに対して相対的に固定され、且つ、第１オブジェクトと交差しない所定の移動可能領域に、第２オブジェクトの端点の位置が含まれるように、第２オブジェクトの位置及び向きを更に移動する。
【００１０】
例えば、髪をポニーテールにした女性を描く場合、頭の部分が第１オブジェクトであり、結っているポニーテールの髪の部分が第２オブジェクトである。例えば、犬を描く場合、胴体部分が第１オブジェクトであり、胴体に繋がるしっぽの部分が第２オブジェクトである。所定の部位（以下「連結点」と呼ぶ）で連結される２つのオブジェクトであれば、一方が第１オブジェクトに、他方が第２オブジェクトになり得る。
【００１１】
第１オブジェクトの位置あるいは向きが移動すると、第１オブジェクトに連結される第２オブジェクトの位置あるいは向きは、第１オブジェクトの影響を受けて変化する。本発明の画像生成装置は、第１オブジェクトに繋がっている第２オブジェクトの動きがより自然な動きになるような画像を生成する。
【００１２】
より詳細には、仮想空間内には、第１オブジェクトに対して相対的に固定され、且つ、第１オブジェクトと交差しない移動可能領域が予め設定される。移動可能領域は、第２オブジェクトの端点が移動できる範囲を定義する。端点は、例えばポニーテールや犬のしっぽの先端である。移動可能領域は、第１オブジェクトと共に移動する。移動可能領域の形状や大きさは任意であるが、典型的には、連結点を中心とする円の一部又は全部、あるいは、連結点を中心とする球面の一部又は全部である。ただし、任意の形状、任意の大きさをもった移動可能領域を定義することができる。
【００１３】
第１オブジェクトは仮想空間内で自由に移動することが可能である。一方、第２オブジェクトの端点の位置は、全く自由に位置が変わるのではなく、予め設定された移動可能領域内でのみ変化する。そして、移動可能領域は、第１オブジェクトと交差することがない。従って、画像生成装置は、第１オブジェクトと第２オブジェクトとの衝突判定を行うことなく、第２オブジェクトが第１オブジェクトの影響を受けつつ移動する様子を表現することができる。例えば、頭を大きく動かしたときにポニーテールが頭と重なってしまう（髪が頭に“刺さってしまう”）ような不自然な画像になることはない。本発明によれば、互いに繋がったオブジェクトの動きをより自然に且つ簡単に表現することができる。
【００１４】
移動可能領域は、２次元の当該仮想空間における線状の領域、又は、３次元の当該仮想空間における面状の領域であってもよい。
【００１５】
つまり、２次元仮想空間においては、第２オブジェクトの端点は、任意の直線又は曲線の一部分、もしくはそれらの組み合わせの形状をもつ移動可能領域内で移動する。３次元仮想空間においては、第２オブジェクトの端点は、任意の平面又は曲面の一部分、もしくはそれらの組み合わせの形状をもつ移動可能領域内で移動する。本発明の画像生成装置は、２次元仮想空間に配置されるオブジェクトが移動する様子を表す画像を生成することができ、また、３次元仮想空間に配置されるオブジェクトが移動する様子を表す画像を生成することもできる。
【００１６】
移動部は、第１オブジェクトが移動されると、
（ａ）移動された時刻における連結点の位置から、
（ｂ）第１オブジェクトに対する第２オブジェクトの相対的な位置が常に固定されると仮定したときの端点の位置であって、移動された時刻より所定時間だけ前の時刻における端点の位置へ、
と結ぶ半直線と、移動可能領域と、の交点の位置に、端点を配置してもよい。
【００１７】
つまり、第２オブジェクトは、第１オブジェクトと一緒に移動するのではなく、まるで慣性が働くかのように、第１オブジェクトより若干遅れて移動する。その際、画像生成装置は、重力や慣性力の厳密な計算や、第１オブジェクトと第２オブジェクトの衝突判定の計算などをしなくてもよい。本発明によれば、互いに繋がったオブジェクトの動きをより自然に且つ簡単に表現することができる。
【００１８】
移動部は、
（ｐ）現在の時刻における連結点の位置から、
（ｑ）現在の時刻より所定時間だけ前の時刻における端点の位置へ、
と結ぶ半直線と、移動可能領域と、の交点の位置に、端点を配置してもよい。
【００１９】
本発明においても、第２オブジェクトは、第１オブジェクトと一緒に移動するのではなく、まるで慣性が働くかのように、第１オブジェクトより若干遅れて移動する。そして、画像生成装置は、重力や慣性力の厳密な計算や、第１オブジェクトと第２オブジェクトの衝突判定の計算などをしなくてもよい。
【００２０】
移動可能領域は、連結点を中心とする円の一部、若しくは、連結点を中心とする球面の一部であってもよい。
そして、移動部は、交点が存在しない場合、移動可能領域のうち半直線に最も近い位置に、端点を配置してもよい。
【００２１】
例えば、移動可能領域の形状を円や球面の一部とすると、移動後の連結点（例えば頭を移動した後のポニーテールの結び目）から、所定時間前の端点（例えばＸ秒前にポニーテールの先端があった位置）へ結ぶ半直線と、移動後の移動可能領域と、の交点が存在しない可能性がある。このような場合には、移動可能領域のうち、求めた半直線に最も近い部分に端点を配置するのである。端点は、あくまで移動可能領域内で移動するものとする。本発明によれば、互いに繋がったオブジェクトの動きをより自然に且つ簡単に表現することができる。
【００２２】
本発明のその他の観点に係る画像生成方法は、記憶部、移動部、生成部を有する画像生成装置において実行される画像生成方法であって、移動ステップと生成ステップを備える。
記憶部には、仮想空間内に配置される第１オブジェクトの位置及び向きと、当該仮想空間内に配置され所定の連結点で第１オブジェクトと連結される第２オブジェクトの位置及び向きと、が記憶される。
移動ステップでは、移動部が、記憶される第１オブジェクトの位置及び向きを移動する。
生成ステップでは、生成部が、記憶される第１オブジェクトの位置及び向きと、記憶される第２オブジェクトの位置及び向きと、に基づいて、第１オブジェクトと第２オブジェクトを表す画像を生成する。
また、移動ステップでは、移動部が、第１オブジェクトに対して相対的に固定され、且つ、第１オブジェクトと交差しない所定の移動可能領域に、第２オブジェクトの端点の位置が含まれるように、第２オブジェクトの位置及び向きを更に移動する。
【００２３】
本発明によれば、互いに繋がったオブジェクトの動きをより自然に且つ簡単に表現することができる。
【００２４】
本発明のその他の観点に係るプログラムは、コンピュータを、記憶部、移動部、生成部として機能させる。
記憶部は、仮想空間内に配置される第１オブジェクトの位置及び向きと、当該仮想空間内に配置され所定の連結点で第１オブジェクトと連結される第２オブジェクトの位置及び向きと、を記憶する。
移動部は、記憶される第１オブジェクトの位置及び向きを移動する。
生成部は、記憶される第１オブジェクトの位置及び向きと、記憶される第２オブジェクトの位置及び向きと、に基づいて、第１オブジェクトと第２オブジェクトを表す画像を生成する。
また、移動部は、第１オブジェクトに対して相対的に固定され、且つ、第１オブジェクトと交差しない所定の移動可能領域に、第２オブジェクトの端点の位置が含まれるように、第２オブジェクトの位置及び向きを更に移動する。
【００２５】
本発明によれば、コンピュータを上述のように動作する画像生成装置として機能させることができる。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００２６】
本発明によれば、互いに繋がったオブジェクトの動きをより自然に且つ簡単に表現するために好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の画像生成装置が実現される典型的な情報処理装置の概要構成を示す図である。
【図２】画像生成装置の機能的な構成を説明するための図である。
【図３】第１オブジェクト、第２オブジェクト、連結点、端点を説明するための図である。
【図４】ポリゴンを用いた３次元画像モデルによる第１オブジェクト、第２オブジェクト、連結点、端点を説明するための図である。
【図５】移動可能領域を説明するための図である。
【図６】移動可能領域を説明するための図である。
【図７】第１オブジェクトに対する第２オブジェクトの相対的な位置が常に固定されると仮定したときの端点の位置を説明するための図である。
【図８】第１オブジェクトと第２オブジェクトが移動する様子を説明するための図である。
【図９】第１オブジェクトと第２オブジェクトが移動する様子を説明するための図である。
【図１０】第１オブジェクトと第２オブジェクトが移動する様子を説明するための図である。
【図１１】第１オブジェクトと第２オブジェクトが移動する様子を説明するための図である。
【図１２】画像生成処理を説明するためのフローチャートである。
【図１３】実施形態２において、第１オブジェクトと第２オブジェクトが移動する様子を説明するための図である。
【図１４】実施形態２において、第１オブジェクトと第２オブジェクトが移動する様子を説明するための図である。
【発明を実施するための形態】
【００２８】
（実施形態１）
本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下の実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００２９】
図１は、プログラムを実行することにより、本発明の画像生成装置の機能を果たす典型的な情報処理装置１００の概要構成を示す模式図である。以下、本図を参照して説明する。
【００３０】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ（Read Only Memory）１０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェース１０４と、コントローラ１０５と、外部メモリ１０６と、ＤＶＤ−ＲＯＭ（Digital Versatile Disk - Read Only Memory）ドライブ１０７と、画像処理部１０８と、音声処理部１０９と、ＮＩＣ（Network Interface Card）１１０と、を備える。
【００３１】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０７に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態の画像生成装置が実現される。
【００３２】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００３３】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００３４】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００３５】
インターフェース１０４を介して接続されたコントローラ１０５は、プレイヤーがダンスゲームやサッカーゲームなどのゲームの実行の際に行う操作入力を受け付ける。インターフェース１０４には、複数のコントローラ１０５が接続されていてもよい。
【００３６】
インターフェース１０４を介して着脱自在に接続された外部メモリ１０６には、ゲームのプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワークを用いたゲームのチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。プレイヤーは、コントローラ１０５を介して操作入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００３７】
ＤＶＤ−ＲＯＭドライブ１０７に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０７は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００３８】
画像処理部１０８は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０８が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０８が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０８に接続されるモニター（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００３９】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００４０】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００４１】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００４２】
また、ゲームの画像などの情報をＤＶＤ−ＲＯＭに用意しておき、これをフレームメモリに展開することによって、ゲームの様子などを画面に表示することができるようになる。
【００４３】
音声処理部１０９は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカー（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカーから出力させる。
【００４４】
音声処理部１０９では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ＡＤＰＣＭ（Adaptive Differential Pulse Code Modulation）形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカーに出力することにより、音声出力が可能となる。
【００４５】
ＮＩＣ  １１０は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００４６】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０７に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００４７】
次に、上記構成を有する情報処理装置１００により実現される、本実施形態の画像生成装置２００の機能的な構成について説明する。
【００４８】
図２は、本実施形態の画像生成装置２００の機能的な構成を示す図である。画像生成装置２００は、記憶部２０１、移動部２０２、生成部２０３を備える。
【００４９】
図３は、画像生成装置２００が扱う仮想空間内に配置される第１オブジェクト３１０と第２オブジェクト３２０を表す図である。仮想空間にはグローバル座標系が定義される。例えば、髪をポニーテールにした女性を表す画像を生成する場合において、第１オブジェクト３１０が頭の部分であり、第２オブジェクト３２０がポニーテールの髪の部分である。
【００５０】
第１オブジェクト３１０と第２オブジェクト３２０は連結点３３０で連結される。図３において、第１オブジェクト３１０（頭）と第２オブジェクト３２０（ポニーテール）は、厳密には“点”ではなくある程度の幅をもった“領域（結び目）”で連結される。ただし、以下の説明においては、本発明をより理解しやすいように、連結“点”という表現を用いる。第１オブジェクト３１０と第２オブジェクト３２０は連結点３３０で連結されるので、第１オブジェクト３１０の位置が移動すると、第１オブジェクト３１０の移動に応じて、第２オブジェクト３２０の位置も移動することになる。詳細は後述する。
【００５１】
端点３４０は、第２オブジェクト３２０の先端部分（ポニーテールの最も髪が長い部分）である。端点３４０の位置は、典型的には、第１オブジェクト３１０と第２オブジェクト３２０が静止している状況において、第２オブジェクト３２０のうち第１オブジェクト３１０から最も離れている部分の位置である。
【００５２】
ここで、第１オブジェクト３１０、第２オブジェクト３２０等について、更に詳しく説明する。図４は、ポリゴンを用いた３次元モデルによる第１オブジェクト３１０、第２オブジェクト３２０、連結点３３０、端点３４０を簡略して表した図である。
【００５３】
第１オブジェクト３１０は、複数の制御点４１０を網目状に結んでできる多角形（典型的には三角形や四角形）の集合体である。制御点４１０は、第１オブジェクト３１０の骨格（以下「ボーン」４１５という。）に予め対応付けられている。同様に、第２オブジェクト３２０は、複数の制御点４２０を網目状に結んでできる多角形の集合体である。制御点４２０は、第２オブジェクト４２０のボーン４２５に予め対応付けられている。
【００５４】
制御点４１０，４２０の数、制御点４１０，４２０同士の連結の仕方、ボーン４１５，４２５の数、ボーン４１５，４２５と制御点４１０，４２０との関連付けの仕方は、いずれも任意である。
【００５５】
第１オブジェクト３１０を構成する制御点４１０（又は第２オブジェクト３２０を構成する制御点４２０）のうちのいずれか１つ以上が連結点３３０となる。また、第２オブジェクト３２０を構成する制御点４２０のうちのいずれか１つが端点３４０となる。
【００５６】
ＣＰＵ  １０１は、制御点４１０が対応付けられているボーン４１５の位置を移動することにより、あるいは、制御点４１０の位置を直接移動することにより、第１オブジェクト３１０の位置及び／又は形状を変化させることができる。また、ＣＰＵ  １０１は、ボーン４１５を回転させることにより、第１オブジェクト３１０を回転することができる。
【００５７】
同様に、ＣＰＵ  １０１は、制御点４２０が対応付けられているボーン４２５の位置を移動することにより、あるいは、制御点４２０の位置を直接移動することにより、第２オブジェクト３２０の位置及び／又は形状を変化させることができる。また、ＣＰＵ  １０１は、ボーン４２５を回転させることにより、第２オブジェクト３２０を回転させたりすることができる。ただし、第２オブジェクト３２０の移動は、連結点３３０の移動の影響を受けることになる。
【００５８】
次に、画像生成装置２００の記憶部２０１、移動部２０２、生成部２０３の詳細について説明する。
記憶部２０１は、第１オブジェクト３１０の位置及び向きを表す第１オブジェクト情報２５１と、第２オブジェクト３２０の位置及び向きを表す第２オブジェクト情報２５２と、を記憶する。ＣＰＵ  １０１とＲＡＭ  １０３が協働して記憶部２０１として機能する。
【００５９】
第１オブジェクト３１０の位置は、例えば、グローバル座標系における第１オブジェクト３１０を代表する点の座標値によって表される。代表する点とは、典型的には、第１オブジェクト３１０の重心点である。例えば図３において、第１オブジェクト３１０（頭）の中心点３５０を、第１オブジェクト３１０の位置としてもよい。あるいは、第１オブジェクト３１０の位置は、第１オブジェクト３１０を構成する制御点４１０の全部又は一部の座標値によって表されてもよい。第２オブジェクト３２０の位置についても同様である。
【００６０】
第１オブジェクト３１０の向きは、例えば、グローバル座標系における第１オブジェクト３１０を代表する点（例えば“頭”の中心点３５０）の位置から、第１オブジェクト３１０の所定の点（例えば“鼻の先端”の点３６０）の位置へ、と結ぶベクトル３７０の向きである。
【００６１】
第２オブジェクト３２０の向きは、連結点３３０から端点３４０へと結ぶベクトル３８０の向きである。ただし、連結点３３０から第２オブジェクト３２０内の任意の点へと結ぶベクトルの向きを、第２オブジェクト３２０の向きとしてもよい。
【００６２】
移動部２０２は、記憶部２０１に記憶される第１オブジェクト情報２５１が示す第１オブジェクト３１０の位置と向きを移動し、移動後の第１オブジェクト３１０の位置と向きで第１オブジェクト情報２５１を更新する。また、移動部２０２は、第１オブジェクト３１０の位置及び／又は向きを移動すると、第２オブジェクト３２０の位置及び／又は向きも移動する。ＣＰＵ  １０１とＲＡＭ  １０３が協働して移動部２０２として機能する。
【００６３】
ここで、第２オブジェクト３２０の位置と向きを移動する処理について、図５を用いて詳しく説明する。図５は、３次元仮想空間内に配置される第１オブジェクト３１０（頭）を真上（Ｚ方向）から見下ろした様子を表す図である。
【００６４】
ＣＰＵ  １０１は、第１オブジェクト３１０に対して相対的に固定され、且つ、第１オブジェクト３１０と交差しない所定の移動可能領域５５０を仮想空間内に設定する。移動可能領域５５０は、モニター等に表示されない論理的な領域である。ＣＰＵ  １０１は、移動可能領域５５０に第２オブジェクト３２０の端点３３０の位置が含まれるように、第２オブジェクト３２０の位置及び向きを移動する。
【００６５】
例えば、図５に示すように、移動可能領域５５０は、連結点３３０を中心とし、第１オブジェクト３１０と第２オブジェクト３２０が静止した状態における連結点３３０と端点３４０との距離を半径の長さとする、円の一部又は全部である。端点３４０は、点５５１と他の点５５２とを結ぶ弧で表される軌道上を移動可能である。端点３４０は、弧の形状をした移動可能領域５５０上を、まるで敷かれたレール上を滑るかのように、移動することができる。
【００６６】
また例えば、図６に示すように、移動可能領域５５０は、連結点３３０を中心とし、第１オブジェクト３１０と第２オブジェクト３２０が静止した状態における連結点３３０と端点３４０との距離を半径の長さとする、球面の一部又は全部である。端点３４０は、曲面の形状をした移動可能領域５５０上を、まるでお皿の上を転がるかのように、移動することができる。
【００６７】
図７は、第１オブジェクト３１０に対する第２オブジェクト３２０の相対的な位置が常に固定されていると仮定したとき、ある時刻Ｔ１から後の時刻Ｔ２にかけて、第１オブジェクト３１０と第２オブジェクト３２０が平行移動する様子を表す図である。第１オブジェクト３１０が移動すると、連結点３３０と移動可能領域５５０も共に移動する。第１オブジェクト３１０が移動すると、連結点３３０と移動可能領域５５０も同じ量だけ移動する。線分７１０は、連結点３３０が移動する軌跡を表す。線分７２０は、端点３４０が描く軌跡を表す。線分７２０の長さと向きは、線分７１０の長さと向きと同じである。
【００６８】
しかし、第１オブジェクト３１０（頭）に対して第２オブジェクト３２０（ポニーテール）を常に固定したまま移動すると、不自然な画像になってしまう恐れがある。そこで、本発明では、第２オブジェクト３２０上の端点３４０の位置を、移動可能領域５５０上で動くこととしている。
【００６９】
図８等を用いて具体的に説明する。図８は、ある時刻Ｔにおける各オブジェクトと、時刻Ｔ＋ΔＴにおける各オブジェクトと、時刻Ｔ＋２×ΔＴにおける各オブジェクトと、を表す図である。所定時刻ΔＴは、典型的には、垂直同期割り込み（ＶＳＹＮＣ）の時間間隔である。
【００７０】
時刻ｔ＝Ｔにおいて、第１オブジェクト８１０Ａと第２オブジェクト８２０Ａは静止している。連結点８３０Ａ、端点８４０Ａ、移動可能領域８５０Ａも静止している。
【００７１】
次に、時刻ｔ＝Ｔ＋ΔＴにおいて、ＣＰＵ  １０１は、
（ａ１）時刻ｔ＝Ｔ＋ΔＴにおける連結点８３０Ｂの位置と、
（ｂ１）第１オブジェクト８１０Ｂに対する第２オブジェクト８２０Ｂの相対的な位置が常に固定されると仮定したときの端点の位置であって、時刻ｔ＝Ｔ＋ΔＴより所定時間ΔＴだけ前の時刻（すなわちｔ＝Ｔ）における端点８４０Ａの位置と、
を取得する。
【００７２】
そして、ＣＰＵ  １０１は、
（ｃ１）連結点８３０Ｂから端点８４０Ａへと結ぶ半直線８７０と、
（ｄ１）時刻ｔ＝Ｔ＋ΔＴにおける移動可能領域８５０Ｂと、
の交点の位置に、端点８４０Ｂを配置する。
【００７３】
この結果、第２オブジェクト８２０Ｂのうち連結点８３０Ｂの近くの部分は、第１オブジェクト８１０Ｂと一緒に移動するが、端点８４０Ｂの近くの部分は、少し遅れ気味に第１オブジェクト８１０Ｂに付いていくように移動する。
【００７４】
更に、時刻ｔ＝Ｔ＋２×ΔＴにおいて、ＣＰＵ  １０１は、
（ａ２）時刻ｔ＝Ｔ＋２×ΔＴにおける連結点８３０Ｃの位置と、
（ｂ２）第１オブジェクト８１０Ｃに対する第２オブジェクト８２０Ｃの相対的な位置が常に固定されると仮定したときの端点の位置であって、時刻ｔ＝Ｔ＋２×ΔＴより所定時間ΔＴだけ前の時刻（すなわちｔ＝Ｔ＋ΔＴ）における端点８８０（以下「仮想的な端点」ともいう。）の位置と、
を取得する。
【００７５】
そして、ＣＰＵ  １０１は、
（ｃ２）連結点８３０Ｃから仮想的な端点８８０へと結ぶ半直線８９０と、
（ｄ２）時刻ｔ＝Ｔ＋２×ΔＴにおける移動可能領域８５０Ｃと、
の交点の位置に、端点８４０Ｃを配置する。すなわち、第２オブジェクト８２０Ｃの位置と向きが求まる。ＣＰＵ  １０１は、求められた第２オブジェクト８２０Ｃの位置と向きを用いて、第２オブジェクト情報２５２を更新する。
【００７６】
つまり、ポニーテールは、頭の移動に合わせて単純に平行移動するのではなく、慣性力が働くかのように逆向きになびく。画像生成装置２００は、厳密な慣性力を計算することなく、より自然な髪の動きを表現することができる。
【００７７】
上記の処理において、半直線８９０と移動可能領域８５０Ｃとの交点が存在しない場合、図９に示すように、ＣＰＵ  １０１は、移動可能領域８５０Ｃのうち半直線８９０に最も近い位置に、端点８４０Ｃを配置するものとする。仮に、移動可能領域８５０Ｃを設けないとした場合における第２オブジェクト９００の一部は、第１オブジェクト８１０Ｃと重なることになり、まるで髪が頭に刺さってしまっているかのような不自然な画像になってしまうからである。移動可能領域８５０Ａ，８５０Ｂ，８５０Ｃの位置や形状は、第１オブジェクト８１０Ａ，８１０Ｂ，８１０Ｃと第２オブジェクト８２０Ａ，８２０Ｂ，８２０Ｃの形状を考慮し、互いに重なることのないように予め定義されることが望ましい。
【００７８】
ＣＰＵ  １０１は、図８，図９に示す方法とは異なる他の方法で、第２オブジェクト８２０Ａ，８２０Ｂ，８２０Ｃを移動させることもできる。他のひとつの方法について説明する。図１０は、ある時刻Ｔにおける各オブジェクトと、時刻Ｔ＋ΔＴにおける各オブジェクトと、時刻Ｔ＋２×ΔＴにおける各オブジェクトと、を表す図である。
【００７９】
時刻ｔ＝Ｔにおいて、第１オブジェクト８１０Ａと第２オブジェクト８２０Ａは静止している。連結点８３０Ａ、端点８４０Ａ、移動可能領域８５０Ａも静止している。
【００８０】
次に、時刻ｔ＝Ｔ＋ΔＴにおいて、ＣＰＵ  １０１は、
（ｐ１）時刻ｔ＝Ｔ＋ΔＴにおける連結点８３０Ｂの位置と、
（ｑ１）現在時刻ｔ＝Ｔ＋ΔＴより所定時間ΔＴだけ前の時刻（すなわちｔ＝Ｔ）における端点８４０Ａの位置と、
を取得する。
【００８１】
そして、ＣＰＵ  １０１は、
（ｒ１）連結点８３０Ｂから端点８４０Ａへと結ぶ半直線８７０と、
（ｓ１）時刻ｔ＝Ｔ＋ΔＴにおける移動可能領域８５０Ｂと、
の交点の位置に、端点８４０Ｂを配置する。ここまでは、上述の方法と同じである。
【００８２】
更に、時刻ｔ＝Ｔ＋２×ΔＴにおいて、ＣＰＵ  １０１は、
（ｐ２）時刻ｔ＝Ｔ＋２×ΔＴにおける連結点８３０Ｃの位置と、
（ｑ２）現在時刻ｔ＝Ｔ＋２×ΔＴより所定時間ΔＴだけ前の時刻（すなわちｔ＝Ｔ＋ΔＴ）における端点８４０Ｂの位置と、
を取得する。
【００８３】
そして、ＣＰＵ  １０１は、
（ｒ２）連結点８３０Ｃから端点８４０Ｂへと結ぶ半直線１０９０と、
（ｓ２）時刻ｔ＝Ｔ＋２×ΔＴにおける移動可能領域８５０Ｃと、
の交点の位置に、端点８４０Ｃを配置する。ＣＰＵ  １０１は、求められた第２オブジェクト８２０Ｃの位置と向きを用いて、第２オブジェクト情報２５２を更新する。
【００８４】
半直線１０９０と移動可能領域８５０Ｃとの交点が存在しない場合、図１１に示すように、ＣＰＵ  １０１は、移動可能領域８５０Ｃのうち半直線１０９０に最も近い位置に、端点８４０Ｃを配置するものとする。
【００８５】
この方法においても、ポニーテールは、頭の移動に合わせて単純に平行移動するのではなく、慣性力が働くかのように逆向きになびく。画像生成装置２００は、厳密な慣性力を計算することなく、より自然な髪の動きを表現することができる。そして、第２オブジェクト８２０Ｃの一部が、第１オブジェクト８１０Ｃと重なってしまうことがない。
【００８６】
生成部２０３は、記憶部２０１に記憶される第１オブジェクト情報２５１が示す第１オブジェクト３１０の位置及び向きと、記憶部２０１に記憶される第２オブジェクト情報２５２が示す第２オブジェクト３２０の位置及び向きと、に基づいて、第１オブジェクト３１０と第２オブジェクト３２０を表す画像を生成する。生成された画像はモニターに表示される。生成部２０３がＶＳＹＮＣのタイミングで繰り返し画像を生成することにより、第１オブジェクト３１０と第２オブジェクト３２０が仮想空間内を移動する様子を表すアニメーションが作成される。ＣＰＵ  １０１とＲＡＭ  １０３と画像処理部１０８が協働して生成部２０３として機能する。
【００８７】
次に、本実施形態の画像生成装置の上記各部が実行する画像生成処理について、図１２のフローチャートを用いて説明する。この画像生成処理は、ＶＳＹＮＣなどの定期的なタイミングで繰り返し行われる。
【００８８】
まず、ＣＰＵ  １０１は、所定時間ΔＴ内に第１オブジェクト３１０の位置及び／又は向きが移動したか否かを判別する（ステップＳ１２０１）。
【００８９】
第１オブジェクト３１０が移動していない場合（ステップＳ１２０１；ＮＯ）、ＣＰＵ  １０１は画像生成処理を終了する。
【００９０】
第１オブジェクト３１０が移動した場合（ステップＳ１２０１；ＹＥＳ）、ＣＰＵ  １０１は、移動後の連結点３３０の位置と、移動後の移動可能領域５５０の位置と、を取得する（ステップＳ１２０２）。ＣＰＵ  １０１は、取得した連結点３３０の位置を用いて第１オブジェクト情報２５１を更新する。
【００９１】
ＣＰＵ  １０１は、第１オブジェクト３１０に対する第２オブジェクト３２０の相対的な位置が常に固定されると仮定したときの端点の位置であって、所定時間ΔＴだけ前の時刻における端点（仮想的な端点）の位置を取得する（ステップＳ１２０３）。
【００９２】
ＣＰＵ  １０１は、移動後の連結点３３０から所定時間ΔＴ前の仮想的な端点へ結ぶ半直線を求める（ステップＳ１２０４）。
【００９３】
あるいは、ＣＰＵ  １０１は、ステップＳ１２０３において現在時刻より所定時間ΔＴ前の端点３３０の位置を取得し、ステップＳ１２０４において移動後の連結点３３０から現在時刻より所定時間ΔＴ前の端点３３０へ結ぶ半直線を求めてもよい。
【００９４】
ＣＰＵ  １０１は、ステップＳ１２０２で取得した移動可能領域５５０と、ステップＳ１２０４で求めた半直線と、の交点を求める（ステップＳ１２０５）。
【００９５】
交点が存在する場合（ステップＳ１２０６；ＹＥＳ）、ＣＰＵ  １０１は、ステップＳ１２０５で求めた交点の位置に端点３４０を配置する（ステップＳ１２０７）。ＣＰＵ  １０１は、求めた端点３４０の位置を用いて第２オブジェクト情報２５２を更新する。
【００９６】
一方、交点が存在しない場合（ステップＳ１２０６；ＮＯ）、ＣＰＵ  １０１は、ステップＳ１２０２で取得した移動可能領域５５０上の最も半直線に近い位置に端点３４０を配置する（ステップＳ１２０８）。ＣＰＵ  １０１は、求めた端点３４０の位置を用いて第２オブジェクト情報２５２を更新する。
【００９７】
そして、ＣＰＵ  １０１は、画像処理部１０８を制御して、第１オブジェクト３１０と第２オブジェクト３２０を表す画像を生成してモニターに表示する（ステップＳ１２０９）。
【００９８】
以上の処理が繰り返し行われることにより、第１オブジェクト３１０と第２オブジェクト３２０の位置や向きが移動する様子を表すアニメーションが生成される。
【００９９】
本実施形態によれば、第１オブジェクト３１０と第２オブジェクト３２０の当たり判定（衝突判定）の処理を行うことなく、第１オブジェクト３１０と第２オブジェクト３２０が移動する様子を表す画像を生成することができる。例えば、第１オブジェクト３１０と第２オブジェクト３２０とが重なってしまうような不自然な画像になることを避けることができる。
【０１００】
一般に、オブジェクト同士の当たり判定は、オブジェクトの形状が複雑になるほど、負荷の重い処理になる傾向にある。しかし、本発明によれば、当たり判定処理、重力の厳密な計算、慣性力の厳密な計算等をすることなく、互いに繋がったオブジェクトの動きをより自然に且つ簡単に表現することができる。ただし、重力や慣性力等の計算を行った上で上述の画像生成処理を行うこともできる。
【０１０１】
（実施形態２）
次に、本発明のその他の実施形態について説明する。図８〜１１では、第１オブジェクト８１０Ａ，８１０Ｂ，８１０Ｃの位置が移動したときの第２オブジェクト８２０Ａ，８２０Ｂ，８２０Ｃの位置と向きが移動する処理を説明した。本実施形態では、第１オブジェクト８１０Ａ，８１０Ｂ，８１０Ｃの向きが移動したときの第２オブジェクト８２０Ａ，８２０Ｂ，８２０Ｃの位置と向きが移動する処理を説明する。
【０１０２】
図１３は、ある時刻Ｔにおける各オブジェクトと、時刻Ｔ＋ΔＴにおける各オブジェクトと、時刻Ｔ＋２×ΔＴにおける各オブジェクトと、を表す図である。
【０１０３】
時刻ｔ＝Ｔにおいて、第１オブジェクト８１０Ａと第２オブジェクト８２０Ａは静止している。連結点８３０Ａ、端点８４０Ａ、移動可能領域８５０Ａも静止している。
【０１０４】
次に、時刻ｔ＝Ｔ＋ΔＴにおける第１オブジェクト８１０Ｂの向きは、時刻ｔ＝Ｔにおける第１オブジェクト８１０Ａの向きと比べて、角度θ１だけ変化している。ＣＰＵ  １０１は、
（ａ’１）時刻ｔ＝Ｔ＋ΔＴにおける連結点８３０Ｂの位置と、
（ｂ’１）第１オブジェクト８１０Ｂに対する第２オブジェクト８２０Ｂの相対的な位置が常に固定されると仮定したときの端点の位置であって、時刻ｔ＝Ｔ＋ΔＴより所定時間ΔＴだけ前の時刻（すなわちｔ＝Ｔ）における端点８４０Ａの位置と、
を取得する。
【０１０５】
そして、ＣＰＵ  １０１は、
（ｃ’１）連結点８３０Ｂから端点８４０Ａへと結ぶ半直線１３７０と、
（ｄ’１）時刻ｔ＝Ｔ＋ΔＴにおける移動可能領域８５０Ｂと、
の交点の位置に、端点８４０Ｂを配置する。
【０１０６】
更に、時刻ｔ＝Ｔ＋２×ΔＴにおける第１オブジェクト８１０Ｃの向きは、時刻ｔ＝Ｔ＋ΔＴにおける第１オブジェクト８１０Ｃの向きと比べて、更に角度θ２だけ変化している。ＣＰＵ  １０１は、
（ａ’２）時刻ｔ＝Ｔ＋２×ΔＴにおける連結点８３０Ｃの位置と、
（ｂ’２）第１オブジェクト８１０Ｃに対する第２オブジェクト８２０Ｃの相対的な位置が常に固定されると仮定したときの端点の位置であって、時刻ｔ＝Ｔ＋２×ΔＴより所定時間ΔＴだけ前の時刻（すなわちｔ＝Ｔ＋ΔＴ）における仮想的な端点１３８０の位置と、
を取得する。
【０１０７】
そして、ＣＰＵ  １０１は、
（ｃ’２）連結点８３０Ｃから仮想的な端点１３８０へと結ぶ半直線１３９０と、
（ｄ’２）時刻ｔ＝Ｔ＋２×ΔＴにおける移動可能領域８５０Ｃと、
の交点の位置に、端点８４０Ｃを配置する。すなわち、第２オブジェクト８２０Ｃの位置と向きが求まる。ＣＰＵ  １０１は、求められた第２オブジェクト８２０Ｃの位置と向きを用いて、第２オブジェクト情報２５２を更新する。
【０１０８】
半直線１３９０と移動可能領域８５０Ｃとの交点が存在しない場合、ＣＰＵ  １０１は、移動可能領域８５０Ｃのうち半直線１３９０に最も近い位置に、端点８４０Ｃを配置するものとする。
【０１０９】
ＣＰＵ  １０１は、図１３に示す方法とは異なる他の方法で、第２オブジェクト８２０Ａ，８２０Ｂ，８２０Ｃを移動させることもできる。図１４は、ある時刻Ｔにおける各オブジェクトと、時刻Ｔ＋ΔＴにおける各オブジェクトと、時刻Ｔ＋２×ΔＴにおける各オブジェクトと、を表す図である。
【０１１０】
時刻ｔ＝Ｔにおいて、第１オブジェクト８１０Ａと第２オブジェクト８２０Ａは静止している。連結点８３０Ａ、端点８４０Ａ、移動可能領域８５０Ａも静止している。
【０１１１】
次に、時刻ｔ＝Ｔ＋ΔＴにおいて、ＣＰＵ  １０１は、
（ｐ’１）時刻ｔ＝Ｔ＋ΔＴにおける連結点８３０Ｂの位置と、
（ｑ’１）現在時刻ｔ＝Ｔ＋ΔＴより所定時間ΔＴだけ前の時刻（すなわちｔ＝Ｔ）における端点８４０Ａの位置と、
を取得する。
【０１１２】
そして、ＣＰＵ  １０１は、
（ｒ’１）連結点８３０Ｂから端点８４０Ａへと結ぶ半直線１４７０と、
（ｓ’１）時刻ｔ＝Ｔ＋ΔＴにおける移動可能領域８５０Ｂと、
の交点の位置に、端点８４０Ｂを配置する。
【０１１３】
更に、時刻ｔ＝Ｔ＋２×ΔＴにおいて、ＣＰＵ  １０１は、
（ｐ’２）時刻ｔ＝Ｔ＋２×ΔＴにおける連結点８３０Ｃの位置と、
（ｑ’２）現在時刻ｔ＝Ｔ＋２×ΔＴより所定時間ΔＴだけ前の時刻（すなわちｔ＝Ｔ＋ΔＴ）における端点８４０Ｂの位置と、
を取得する。
【０１１４】
そして、ＣＰＵ  １０１は、
（ｒ’２）連結点８３０Ｃから端点８４０Ｂへと結ぶ半直線１４９０と、
（ｓ’２）時刻ｔ＝Ｔ＋２×ΔＴにおける移動可能領域８５０Ｃと、
の交点の位置に、端点８４０Ｃを配置する。ＣＰＵ  １０１は、求められた第２オブジェクト８２０Ｃの位置と向きを用いて、第２オブジェクト情報２５２を更新する。
【０１１５】
半直線１４９０と移動可能領域８５０Ｃとの交点が存在しない場合、ＣＰＵ  １０１は、移動可能領域８５０Ｃのうち半直線１４９０に最も近い位置に、端点８４０Ｃを配置するものとする。
【０１１６】
第１オブジェクト８１０Ａ，８１０Ｂ，８１０Ｃと第２オブジェクト８２０Ａ，８２０Ｂ，８２０Ｃの移動は平面的な移動に限られず、立体的な移動でもよい。簡単に言えば、画像生成装置２００は、キャラクターが左右に頭を振ったときのポニーテールの動きのほか、キャラクターが上下に頭を振ったときのポニーテールの動きや、キャラクターが立ったりしゃがんだりしたときのポニーテールの動きを、自然に且つ簡単に表現することができる。
【０１１７】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【０１１８】
上記の説明では、ＣＰＵ  １０１は、３次元の仮想空間に配置されるオブジェクトを表す画像を生成しているが、２次元の仮想空間に配置されるオブジェクトを表す画像を生成することもできる。簡単に言えば、図５を、３次元仮想空間内に配置される第１オブジェクト３１０等を真上（Ｚ方向）から見下ろした画像ではなく、２次元仮想空間内に配置される第１オブジェクト３１０等を表す画像とみなしてもよい。
【０１１９】
２次元仮想空間においては移動可能領域５５０は線状の領域であればよく、３次元仮想空間においては移動可能領域５５０は面状の領域であればよい。
【０１２０】
移動可能領域５５０の形状や大きさは任意であるが、連結点３３０を中心とする円もしくは球面に設定すると、連結点３３０と端点３４０（もしくは仮想的な端点９００）との交点をより簡単に求めることができる。ただし、円もしくは球面の中心は連結点３３０でなくてもよい。
【０１２１】
第１オブジェクト３１０と第２オブジェクト３２０は、頭と髪に限られず、任意の形状、任意の大きさをもつオブジェクトであってもよい。例えば、第１オブジェクト３１０が犬の胴体であり、第２オブジェクト３２０が犬のしっぽであるとすると、犬が走ってしっぽが振れる様子を表す画像を簡単に生成することができる。その際、胴体の部分としっぽの部分との当たり判定を行う必要がない。そして、例えば犬が複雑な動きあるいは俊敏な動きをしたとき、犬の胴体にしっぽが突き刺さってしまうような不自然な画像になることがない。
【０１２２】
上記の画像生成装置２００の全部又は一部としてコンピュータを動作させるためのプログラムを、メモリカード、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ（Magneto Optical disk）などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【０１２３】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【０１２４】
以上説明したように、本発明によれば、互いに繋がったオブジェクトの動きをより自然に且つ簡単に表現するために好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することができる。
【符号の説明】
【０１２５】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェース
１０５  コントローラ
１０６  外部メモリ
１０７  ＤＶＤ−ＲＯＭドライブ
１０８  画像処理部
１０９  音声処理部
１１０  ＮＩＣ
２００  画像生成装置
２０１  記憶部
２０２  移動部
２０３  生成部
２５１  第１オブジェクト情報
２５２  第２オブジェクト情報
３１０，８１０Ａ，８１０Ｂ，８１０Ｃ  第１オブジェクト
３２０，８２０Ａ，８２０Ｂ，８２０Ｃ  第２オブジェクト
３３０，８３０Ａ，８３０Ｂ，８３０Ｃ  連結点
３４０，８４０Ａ，８４０Ｂ，８４０Ｃ  端点
３５０  中心点
３６０  所定の点
３７０，３８０  ベクトル
４１０，４２０  制御点
４１５，４２５  ボーン
５５０，８５０Ａ，８５０Ｂ，８５０Ｃ  移動可能領域
５５１，５５２  点
７１０  線分（連結点が描く軌跡）
７２０  線分（端点が描く軌跡）
８７０，８９０，１０９０，１３７０，１３９０，１４９０  半直線
８８０，１３８０  仮想的な端点
【図１】
2011039619.tif 000003
【図２】
2011039619.tif 000004
【図３】
2011039619.tif 000005
【図４】
2011039619.tif 000006
【図５】
2011039619.tif 000007
【図６】
2011039619.tif 000008
【図７】
2011039619.tif 000009
【図８】
2011039619.tif 000010
【図９】
2011039619.tif 000011
【図１０】
2011039619.tif 000012
【図１１】
2011039619.tif 000013
【図１２】
2011039619.tif 000014
【図１３】
2011039619.tif 000015
【図１４】
2011039619.tif 000016