(57)【要約】      （修正有）【課題】処理負荷の増大を招くことなく紐状キャラクタのおもしろみを生かしたアプリケーションを提供する。【解決手段】関節を直列に連結した関節構造を有する紐状部分を含むキャラクタオブジェクトを設定する設定手段と、操作入力情報又は所与のイベントに基づきキャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させることで前記キャラクタオブジェクトを動かすキャラクタオブジェクト制御手段と、前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する目標配置状態情報設定手段と、してコンピュータを機能させ、前記キャラクタオブジェクト制御手段は、設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、前記キャラクタオブジェクトの前記関節に前記仮想力を作用させて前記目標配置状態に誘導する処理を行う。【選択図】図２３
2011143121.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、キャラクタオブジェクトが移動動作する仮想空間の画像を生成させるためのプログラムであって、
操作入力情報又は所与のイベントに基づきキャラクタオブジェクトに仮想力を作用させて前記キャラクタオブジェクトを動かすキャラクタオブジェクト制御手段と、
前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する目標配置状態情報設定手段と、してコンピュータを機能させ、
前記キャラクタオブジェクト制御手段は、
設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、生成した誘導ベクトルに基づき前記キャラクタオブジェクトに前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行い、
前記目標配置状態設定手段は、
時間の経過によって、前記目標配置状態を変化させることを特徴とするプログラム。
【請求項２】
請求項１において、
関節を直列に連結した関節構造を有する紐状部分を含むキャラクタオブジェクトを設定する設定手段と、をさらに含み、
前記キャラクタオブジェクト制御手段は、
操作入力情報又は所与のイベントに基づきキャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させるように構成され、前記誘導ベクトルに基づき前記キャラクタオブジェクトの前記関節に前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行うことを特徴とするプログラム。
【請求項３】
コンピュータに、キャラクタオブジェクトが移動動作する仮想空間の画像を生成させるためのプログラムであって、
関節を直列に連結した関節構造を有する紐状部分を含むキャラクタオブジェクトを設定する設定手段と、
操作入力情報又は所与のイベントに基づきキャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させることで前記キャラクタオブジェクトを動かすキャラクタオブジェクト制御手段と、
前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する目標配置状態情報設定手段と、してコンピュータを機能させ、
前記キャラクタオブジェクト制御手段は、
設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、生成した誘導ベクトルに基づき前記キャラクタオブジェクトの前記関節に前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行うことを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記目標配置状態設定手段は、
時計の文字盤の短針、長針が示すべき時刻に対応して前記目標配置状態を設定することを特徴とするプログラム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記仮想空間に前記キャラクタオブジェクトとは異なる他のオブジェクトを配置する処理又は移動させる処理を行う障害物設定手段と、
前記キャラクタオブジェクトと前記他のオブジェクトとの接触検出を行う接触検出手段と、してさらにコンピュータを機能させ、
前記キャラクタオブジェクト制御手段は、
前記キャラクタオブジェクトと前記他のオブジェクトとの接触検出結果に基づき、前記キャラクタオブジェクトに仮想力を作用させることを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記キャラクタオブジェクト制御手段は、
前記操作入力情報として、前記仮想空間の画像が表示された表示部における接触位置の移動履歴情報を含む操作入力情報を取得し、前記接触位置の移動履歴情報に基づき、作用させる仮想力の方向を決定することを特徴とするプログラム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記キャラクタオブジェクト制御手段は、
前記目標配置状態に対応して設定された第１の位置と前記キャラクタオブジェクトの現在位置に対応して設定された第２の位置との位置関係に基づき、前記誘導ベクトルの大きさ又は方向の少なくとも１つを決定することを特徴とするプログラム。
【請求項８】
請求項２乃至７のいずれかにおいて、
前記キャラクタオブジェクト制御手段は、
前記キャラクタオブジェクトの関節に作用する仮想力に基づき、前記キャラクタオブジェクトの紐状部分を伸縮させることを特徴とするプログラム。
【請求項９】
請求項２乃至８のいずれかにおいて、
前記キャラクタオブジェクト制御手段は、
前記仮想力による関節の移動位置を演算して、演算結果に基づき隣り合う関節間の連結子の長さを可変に制御し、連結子の長さが所与の閾値を超えると、当該連結子で連結された関節間に新たな関節を追加することを特徴とするプログラム。
【請求項１０】
請求項２乃至９のいずれかにおいて、
前記キャラクタオブジェクト制御手段は、
前記仮想力による関節の移動位置を演算して、演算結果に基づき隣り合う関節間の連結子の長さを可変に制御し、連結子の長さが所与の閾値を下回ると、当該連結子で連結された関節のいずれかを削除して、削除された関節に接続されていた２つの関節を新たに連結させることを特徴とするプログラム。
【請求項１１】
請求項１乃至１０のいずれかにおいて、
前記キャラクタオブジェクト制御手段は、
所定のモードになると、第１のキャラクタオブジェクトと第２のキャラクタオブジェクトを登場させ、
前記１のキャラクタオブジェクトを時計の長針に対応付け、第２のキャラクタオブジェクトを時計の短針に対応付け、前記第１のキャラクタオブジェクトの目標配置状態を時計の文字盤の短針が示すべき時刻に対応して設定し、前記第２のキャラクタオブジェクトの目標配置状態を時計の文字盤の長針が示すべき時刻に対応して設定することを特徴とするプログラム。
【請求項１２】
請求項１乃至１１のいずれかにおいて、
前記キャラクタオブジェクト制御手段は、
前記仮想空間の画像が表示される表示部を含む装置に設けられた加速度センサからの加速度情報を取得し、取得した前記加速度情報に基づき、前記キャラクタオブジェクトに仮想力を作用させることを特徴とするプログラム。
【請求項１３】
請求項１乃至１２のいずれかに記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体。
【請求項１４】
キャラクタオブジェクトが移動動作する仮想空間の画像を生成する画像生成装置であって、
操作入力情報又は所与のイベントに基づきキャラクタオブジェクトに仮想力を作用させて前記キャラクタオブジェクトを動かすキャラクタオブジェクト制御手段と、
前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する目標配置状態情報設定手段と、を含み、
前記キャラクタオブジェクト制御手段は、
設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、生成した誘導ベクトルに基づき前記キャラクタオブジェクトに前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行い、
前記目標配置状態設定手段は、
時間の経過によって、前記目標配置状態を変化させることを特徴とする画像生成装置。
【請求項１５】
キャラクタオブジェクトが移動動作する仮想空間の画像を生成する画像生成装置であって、
関節を直列に連結した関節構造を有する紐状部分を含むキャラクタオブジェクトを設定する設定手段と、
操作入力情報又は所与のイベントに基づきキャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させることで前記キャラクタオブジェクトを動かすキャラクタオブジェクト制御手段と、
前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する目標配置状態情報設定手段と、を含み、
前記キャラクタオブジェクト制御手段は、
設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、生成した誘導ベクトルに基づき前記キャラクタオブジェクトの前記関節に前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行うことを特徴とする画像生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータに、キャラクタオブジェクトの登場する所与のアプリケーション画像やゲーム画像を生成させるためのプログラム、情報記憶媒体及び画像生成装置に関する。
【背景技術】
【０００２】
近年のビデオゲームでは、ゲーム中に登場するキャラクタに、骨格モデルとその外観容姿を表す表示モデルとを予め用意しておき、骨格モデルを所定のモーションデータに従って動作制御し、動作制御された骨格モデルに基づいて表示モデルとしてポリゴンモデルをゲーム空間中に形成することによって動作制御するケースが多々見られる。
【０００３】
しかし、ゲームに登場するキャラクタは、関節が可動するが基本的な大きさが変化しないものだけとは限らない。例えば、粘土やゴム、流体金属のように変形自在で、基本的な大きさが単なる拡大縮小の範疇を超えて変化するものもある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特眼２００８−１８６３２５
【発明の概要】
【発明が解決しようとする課題】
【０００５】
最近では伸縮自在な紐状キャラクタをのばしたり縮めたりして遊ぶビデオゲーム等も存在する。紐状キャラクタをのばしたり縮めたりして遊ぶのは、片手間で楽しめるため、情報機器に付属する様々なツールやゲームやユーティリティ等のアプリケーションに紐状キャラクタを登場させることで、ユーザの遊び心を満たすアプリケーションを提供することができる。
【０００６】
しかし例えば携帯情報機器やゲーム装置等では処理能力の限られたハードウエアでユーザの操作入力に対して高い応答性を要求される。従って、処理負荷の増大を招くことなく、紐状キャラクタのおもしろみを生かしたアプリケーションの提供が望まれるところである。
【０００７】
本発明はこうした事情を鑑みてなされたものである。本発明のいくつかの態様によれば、処理負荷の増大を招くことなく、紐状キャラクタのおもしろみを生かしたアプリケーションを実行するプログラム、情報記憶媒体及び画像生成装置を提供することができる。また紐状キャラクタを用いて時計表示を実現することができるプログラム、情報記憶媒体及び画像生成装置を提供することができる。
【課題を解決するための手段】
【０００８】
（１）本発明は、
コンピュータに、キャラクタオブジェクトが移動動作する仮想空間の画像を生成させるためのプログラムであって、操作入力情報又は所与のイベントに基づきキャラクタオブジェクトに仮想力を作用させて前記キャラクタオブジェクトを動かすキャラクタオブジェクト制御手段と、前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する目標配置状態情報設定手段と、してコンピュータを機能させ、前記キャラクタオブジェクト制御手段は、設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、生成した誘導ベクトルに基づき前記キャラクタオブジェクトに前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行い、前記目標配置状態設定手段は、時間の経過によって、前記目標配置状態を変化させることを特徴とするプログラムに関する。
【０００９】
また本発明は上記各手段を含む画像生成装置に関係する。また本発明はコンピュータ読み取り可能な情報記憶媒体であって、上記各手段としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。
【００１０】
キャラクタオブジェクトが移動動作する仮想空間は、３次元空間でもよいし、２次元平面であってもよい。
【００１１】
目標配置状態情報とは、目標配置状態にあるキャラクタオブジェクトの位置座標データでもよいし、目標配置状態にあるキャラクタオブジェクトの各関節の位置座標データでもよい。
【００１２】
本発明によれば操作入力等によって自由に動かせるキャラクタオブジェクトが、変化する目標配置状態に自動的に誘導される画像を生成することができる。
【００１３】
（２）このプログラム、画像生成装置、情報記憶媒体において、
関節を直列に連結した関節構造を有する紐状部分を含むキャラクタオブジェクトを設定する設定手段と、をさらに含み、前記キャラクタオブジェクト制御手段は、操作入力情報又は所与のイベントに基づきキャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させるように構成され、前記誘導ベクトルに基づき前記キャラクタオブジェクトの前記関節に前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行ってもよい。
【００１４】
キャラクタオブジェクトが移動動作する仮想空間は、３次元空間でもよいし、２次元平面であってもよい。
【００１５】
キャラクタオブジェクト制御手段は、前記関節の連結を維持したままで仮想力に基づき前記関節を移動させるようにしてもよい。ここで前記関節の移動により関節間の距離が変化すると新たな関節を追加したり、関節を削除したりしてもよい。関節の連結を維持できない状態が発生すると、分割させてもよい。
【００１６】
キャラクタオブジェクトは、少なくとも一部が前記関節を直列に連結した関節構造を有する紐状部分である構成でもよいし、全部が前記関節を直列に連結した関節構造を有する紐状のオブジェクトである構成でもよい。
【００１７】
（３）本発明は、
コンピュータに、キャラクタオブジェクトが移動動作する仮想空間の画像を生成させるためのプログラムであって、関節を直列に連結した関節構造を有する紐状部分を含むキャラクタオブジェクトを設定する設定手段と、操作入力情報又は所与のイベントに基づきキャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させることで前記キャラクタオブジェクトを動かすキャラクタオブジェクト制御手段と、前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する目標配置状態情報設定手段と、してコンピュータを機能させ、前記キャラクタオブジェクト制御手段は、設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、生成した誘導ベクトルに基づき前記キャラクタオブジェクトの前記関節に前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行うことを特徴とするプログラムに関する。
【００１８】
また本発明は上記各手段を含む画像生成装置に関係する。また本発明はコンピュータ読み取り可能な情報記憶媒体であって、上記各手段としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。
【００１９】
キャラクタオブジェクトが移動動作する仮想空間は、３次元空間でもよいし、２次元平面であってもよい。
【００２０】
キャラクタオブジェクト制御手段は、前記関節の連結を維持したままで仮想力に基づき前記関節を移動させるようにしてもよい。ここで前記関節の移動により関節間の距離が変化すると新たな関節を追加したり、関節を削除したりしてもよい。関節の連結を維持できない状態が発生すると、分割させてもよい。
【００２１】
キャラクタオブジェクトは、少なくとも一部が前記関節を直列に連結した関節構造を有する紐状部分である構成でもよいし、全部が前記関節を直列に連結した関節構造を有する紐状のオブジェクトである構成でもよい。
【００２２】
目標配置状態情報とは、目標配置状態にあるキャラクタオブジェクトの位置座標データでもよいし、目標配置状態にあるキャラクタオブジェクトの各関節の位置座標データでもよい。
【００２３】
本発明によれば操作入力等によって自由に動かせるキャラクタオブジェクトが、自動的に目標配置状態に誘導される画像を生成することができる。
【００２４】
（４）このプログラム、画像生成装置、情報記憶媒体において、
前記目標配置状態設定手段は、時計の文字盤の短針、長針が示すべき時刻に対応して前記目標配置状態を設定してもよい。
【００２５】
キャラクタオブジェクトが、仮想空間に仮想的に設定された時計の文字盤の短針、長針となって、現在時刻を示すようにしてもよい。このような場合キャラクタオブジェクトが時計の短針、長針として現在時刻を示す状態を目標配置状態として設定してもよい。
【００２６】
この様にすると仮想空間で自由に動かすことができるキャラクタオブジェクトが放っておくと現在時刻を示す位置に戻ってくる、おもしろい時計表示を行うことができる。
【００２７】
システム時刻を受け取り、システム時刻に基づき時計の文字盤の短針、長針が示すべき時刻を把握して、目標配置状態を設定してもよい。
【００２８】
（５）このプログラム、画像生成装置、情報記憶媒体において、
前記仮想空間に前記キャラクタオブジェクトとは異なる他のオブジェクトを配置する処理又は移動させる処理を行う障害物設定手段と、前記キャラクタオブジェクトと前記他のオブジェクトとの接触検出を行う接触検出手段と、してさらにコンピュータを機能させ、前記キャラクタオブジェクト制御手段は、前記キャラクタオブジェクトと前記他のオブジェクトとの接触検出結果に基づき、前記キャラクタオブジェクトに仮想力を作用させてもよい。
【００２９】
この様にすると障害物に移動を制限されながら、キャラクタオブジェクトが目標配置状態に戻っていく画像を生成することができる。
【００３０】
（６）このプログラム、画像生成装置、情報記憶媒体において、
前記キャラクタオブジェクト制御手段は、前記操作入力情報として、前記仮想空間の画像が表示された表示部における接触位置の移動履歴情報を含む操作入力情報を取得し、前記接触位置の移動履歴情報に基づき、作用させる仮想力の方向を決定してもよい。
【００３１】
前記仮想空間の画像を表示する表示部をタッチパネルディスプレイ等で構成することにより、接触位置の移動履歴情報を含む操作入力情報を取得してもよい。
【００３２】
この様にするとタッチ操作でダイレクトにキャラクタオブジェクトを動かす感覚が味わえるアプリケーションを提供することができる。
【００３３】
（７）このプログラム、画像生成装置、情報記憶媒体において、
前記キャラクタオブジェクト制御手段は、前記目標配置状態に対応して設定された第１の位置と前記キャラクタオブジェクトの現在位置に対応して設定された第２の位置との位置関係に基づき、前記誘導ベクトルの大きさ又は方向の少なくとも１つを決定してもよい。
【００３４】
位置関係とは距離や方向を含む。第２の位置はキャラクタオブジェクトの所与の関節位置に対応して設定してもよい。また第１の位置はキャラクタオブジェクトの所与の関節位置の目標配置状態として設定してもよい。
【００３５】
例えば第１の位置と第２の位置を結ぶ方向に基づき、誘導ベクトルの方向を決定し、第１の位置と第２の位置との距離に基づき誘導ベクトルの大きさを決定してもよい。
【００３６】
（８）このプログラム、画像生成装置、情報記憶媒体において、
前記キャラクタオブジェクト制御手段は、前記キャラクタオブジェクトの関節に作用する仮想力に基づき、前記キャラクタオブジェクトの紐状部分を伸縮させてもよい。
【００３７】
紐状部分の関節構造に新たな関節を追加することで伸長させてもよいし、前記関節間の距離を増大させることで伸長させてもよい。
【００３８】
（９）このプログラム、画像生成装置、情報記憶媒体において、
前記キャラクタオブジェクト制御手段は、前記仮想力による関節の移動位置を演算して、演算結果に基づき隣り合う関節間の連結子の長さを可変に制御し、連結子の長さが所与の閾値を超えると、当該連結子で連結された関節間に新たな関節を追加してもよい。
【００３９】
（１０）このプログラム、画像生成装置、情報記憶媒体において、
前記キャラクタオブジェクト制御手段は、前記仮想力による関節の移動位置を演算して、演算結果に基づき隣り合う関節間の連結子の長さを可変に制御し、連結子の長さが所与の閾値を下回ると、当該連結子で連結された関節のいずれかを削除して、削除された関節に接続されていた２つの関節を新たに連結させてもよい。
【００４０】
所与の閾値を下回った連結子で連結された関節のいずれを削除するかは、例えば関節に接続されている他方の連結子が短い方の関節を削除してもよい。また予め関節に割り付けられている所定の優先順に従って優先順位の低い方の関節を削除するようにしてもよい。
【００４１】
（１１）このプログラム、画像生成装置、情報記憶媒体において、
前記キャラクタオブジェクト制御手段は、所定のモードになると、第１のキャラクタオブジェクトと第２のキャラクタオブジェクトを登場させ、前記１のキャラクタオブジェクトを時計の長針に対応付け、第２のキャラクタオブジェクトを時計の短針に対応付け、前記第１のキャラクタオブジェクトの目標配置状態を時計の文字盤の短針が示すべき時刻に対応して設定し、前記第２のキャラクタオブジェクトの目標配置状態を時計の文字盤の長針が示すべき時刻に対応して設定してもよい。
【００４２】
（１２）このプログラム、画像生成装置、情報記憶媒体において、
前記キャラクタオブジェクト制御手段は、前記仮想空間の画像が表示される表示部を含む装置に設けられた加速度センサからの加速度情報を取得し、取得した前記加速度情報に基づき、前記キャラクタオブジェクトに仮想力を作用させてもよい。
【００４３】
加速度センサで装置に働く重力や加速度を検出し、検出された加速度情報に基づき作用ベクトルを生成することで装置に働く重力や加速度を表現することができる。
【図面の簡単な説明】
【００４４】
【図１】本実施形態における携帯情報機器の構成例を説明するための図。
【図２】本実施形態における機能構成の一例を示す機能ブロック図。
【図３】図３（Ａ）（Ｂ）は、本実施形態におけるキャラクタオブジェクトの概要を説明するための図。
【図４】図４（Ａ）（Ｂ）は、本実施形態におけるキャラクタオブジェクトのモデル構成を説明するための図。
【図５】キャラクタ制御データのデータ構成例を示す図。
【図６】作用力データのデータ構成例を示す図。
【図７】図７（Ａ）〜（Ｃ）はタッチ操作に基づく操作力ベクトルの設定例を説明するための図。
【図８】図８（Ａ）（Ｂ）は、キャラクタオブジェクトの各関節に作用する仮想力とキャラクタオブジェクトの動きについて説明するための図。
【図９】図９（Ａ）（Ｂ）は誘導ベクトルについて説明するための図。
【図１０】図１０は、誘導制御によりキャラクタオブジェクトが目標配置状態に誘導される様子を示した図である。
【図１１】通常モードにおけるアプリケーション画像の一例。
【図１２】通常モードにおけるアプリケーション画像の一例。
【図１３】時計モードの表示画像の一例。
【図１４】時計モードの表示画像の一例。
【図１５】図１５（Ａ）〜（Ｃ）は、時計モードにおける誘導制御について説明するための図。
【図１６】図１６（Ａ）〜（Ｃ）は、障害オブジェクトと遭遇した場合のキャラクタオブジェクトの動きについて説明するための図。
【図１７】図１７（Ａ）〜（Ｃ）は、障害オブジェクトと遭遇した場合のキャラクタオブジェクトの動きについて説明するための図。
【図１８】時計モードにおいて障害物オブジェクトが登場した場合の制御例について説明するための図。
【図１９】時計モードにおいて障害物オブジェクトが登場した場合の制御例について説明するための図。
【図２０】図２０（Ａ）（Ｂ）は操作力ベクトルが隣り合う関節間の距離を広げる方向に加わる例を示す図。
【図２１】図２１（Ａ）（Ｂ）は操作力ベクトルが隣り合う関節間の距離を縮める方向に加わる例を示す図。
【図２２】図２２（Ａ）は、関節の追加処理、図２２（Ｂ）は、関節の削除処理について説明するための図である。
【図２３】本実施の形態の処理の流れを示すフローチャート。
【図２４】タッチ操作に基づく操作力ベクトルの設定例を説明するための図。
【発明を実施するための形態】
【００４５】
以下、図面を参照しながら、本発明を適用した実施形態として、伸縮自在なキャラクタが登場するユーティリティが搭載された携帯情報機器を例に挙げて説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４６】
１．  構成
図１は、本実施形態の画像生成装置の一例である携帯情報機器の構成例を説明するための図である。
【００４７】
本実施の形態の携帯情報機器１０は、表示部１２上でのタッチ操作により操作入力を行うことが可能なタッチパネルディスプレイ（タッチパネル、タッチディスプレイ、タッチスクリーンともいう）を備えた携帯電話である。なお表示部１２は複数の指による同時操作が検出可能なマルチタッチパネルディスプレイで構成されていてもよい。また携帯情報機器１０に加速度センサを内蔵していてもよい。また携帯情報機器１０は、携帯型デジタル音楽プレーヤとしての機能やカメラ機能やインターネット閲覧機能やメール機能を有していてもよい。
【００４８】
携帯情報機器１０の本体は、例えばＣＰＵや画像処理用ＬＳＩ、ＩＣメモリ等が実装された制御ユニット１４、通信装置１６を内蔵し、ＵＳＢケーブル用のコネクタ１８を備えていてもよい。
【００４９】
携帯情報機器１０は、内蔵されたメモリからシステムプログラムやアプリケーションプログラム及び各種設定データを読み出して、タッチパネルディスプレイから入力される操作入力に基づいて各種のアプリケーション演算を実行し、所与のアプリケーションを実行する。
【００５０】
携帯情報機器１０の制御ユニット１４で生成されたアプリケーション画像は、表示部（タッチパネルディスプレイ）１２上に出力される。ユーザーは携帯情報機器１０の表示部１２に表示されるアプリケーション画像を見つつ、タッチパネルディスプレイで構成された表示部１２をタッチ操作することで各種操作入力を行いアプリケーション画像を楽しむことができる。
【００５１】
尚、アプリケーション実行に必要なアプリケーションプログラムおよび各種設定データは、通信装置１６を介して通信回線１に接続し、外部装置からダウンロードして取得する構成であっても良い。ここで言う、通信回線とは、データ授受が可能な通信路を意味する。すなわち、通信回線とは、直接接続のための専用線（専用ケーブル）やイーサネット（登録商標）等によるＬＡＮ（Local Area Network）の他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方法については有線／無線を問わない。
【００５２】
図２は、本実施形態における機能構成の一例を示す機能ブロック図である。
【００５３】
なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０を含めばよく）、それ以外の各部（機能ブロック）については任意の構成要素とすることができる。
【００５４】
同図に示すように本実施形態では、操作入力部１６０と、処理部１００と、音出力部１３２と、画像表示部１２２と、通信部１４２と、記憶部１７０を含む。
【００５５】
操作入力部１６０は、プレーヤによってなされた各種の操作入力に応じて操作入力信号を生成し、処理部１００に出力する。操作入力部１６０の機能は、レバー、ボタン、ステアリング、シフトレバー、マイク、センサ、タッチパネル等のハードウエアにより実現できる。図１では、タッチパネルディスプレイ１２が操作入力部１００として機能する。
【００５６】
処理部１００は、操作入力部１６０からの操作入力情報やプログラムなどに基づいて、アプリケーション実行処理、画像生成処理、或いは音生成処理などの各種の処理を行うもので、例えば各種プロセッサ（マイクロプロセッサ、メインプロセッサ、描画プロセッサ、ＤＳＰ等）又はＡＳＩＣ（ゲートアレイ等）などのハードウエアや、プログラム（ゲームプログラム）により実現できる。図１では、ゲーム装置本体１０に内蔵された制御ユニット１４が処理部１００として機能する。
【００５７】
処理部１００は、アプリケーション演算部１１０と、音生成部１３０と、画像生成部１２０と、通信制御部１４０とを含む。
【００５８】
アプリケーション演算部１１０は、アプリケーションの実行処理を行う。例えば、アプリケーション空間を仮想空間中に形成する処理や、仮想空間中に配置されたキャラクタオブジェクトＷＣ以外のキャラクタの動作制御処理、ヒット判定処理、物理演算処理等を実行する。
【００５９】
また本実施形態のアプリケーション演算部１１０は、キャラクタオブジェクト制御部１１２、目標配置状態設定部１１４を含む。
【００６０】
アプリケーション演算部１１０は、関節を直列に連結した関節構造を有する紐状部分を含むキャラクタオブジェクトを設定する設定手段として機能する。キャラクタオブジェクト制御部１１２は、操作入力情報に基づきキャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させることで前記キャラクタオブジェクトを動かす。目標配置状態設定部１１４は、前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する。
【００６１】
キャラクタオブジェクト制御部１１２は、設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、生成した誘導ベクトルに基づき前記キャラクタオブジェクトの前記関節に前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行う。
【００６２】
また目標配置状態設定部１１４は、時間の経過によって、前記目標配置状態を変化させてもよい。
【００６３】
また目標配置状態設定部１１４は、時計の文字盤の短針、長針が示すべき時刻に対応して前記目標配置状態を設定してもよい。
【００６４】
またアプリケーション演算部１１０は、前記仮想空間に前記キャラクタオブジェクトとは異なる他のオブジェクトを配置する処理又は移動させる処理を行う障害物設定手段、前記キャラクタオブジェクトと前記他のオブジェクトとの接触検出を行う接触検出手段と、して機能させてもよい。
【００６５】
またキャラクタオブジェクト制御部１１２は、前記所与のオブジェクトと前記他のオブジェクトとの接触検出結果に基づき、前記キャラクタオブジェクトの関節に仮想力を作用させて、前記関節を移動させることで前記キャラクタオブジェクトを動かしてもよい。
【００６６】
またキャラクタオブジェクト制御部１１２は、前記操作入力情報として、前記仮想空間の画像が表示された表示部における接触位置の移動履歴情報を含む操作入力情報を取得し、前記接触位置の移動履歴情報に基づき、前記関節に作用させる仮想力の方向を決定してもよい。
【００６７】
またキャラクタオブジェクト制御部１１２は、前記目標配置状態に対応して設定された第１の位置と前記キャラクタオブジェクトの現在位置に対応して設定された第２の位置との位置関係（距離、方向）に基づき、前記誘導ベクトルの大きさ又は方向の少なくとも１つを決定してもよい。
【００６８】
またキャラクタオブジェクト制御部１１２は、前記キャラクタオブジェクトの関節に作用する仮想力に基づき、前記キャラクタオブジェクトの紐状部分を伸縮させてもよい。
【００６９】
またキャラクタオブジェクト制御部１１２は、前記仮想力による関節の移動位置を演算して、演算結果に基づき隣り合う関節間の連結子の長さを可変に制御し、連結子の長さが所与の閾値を超えると、当該連結子で連結された関節間に新たな関節を追加してもよい。
【００７０】
またキャラクタオブジェクト制御部１１２は、前記仮想力による関節の移動位置を演算して、演算結果に基づき隣り合う関節間の連結子の長さを可変に制御し、連結子の長さが所与の閾値を下回ると、当該連結子で連結された関節のいずれかを削除して、削除された関節に接続されていた２つの関節を新たに連結させてもよい。
【００７１】
またキャラクタオブジェクト制御部１１２は、所定のモードになると、関節を直列に連結した関節構造を有する紐状部分を含む第２のキャラクタオブジェクトと第２のキャラクタオブジェクトを登場させ、目標配置状態設定部１１４は、第１のキャラクタオブジェクトを時計の長針に対応付け、第２のキャラクタオブジェクトを時計の短針に対応付け、前記第１のキャラクタオブジェクトの目標配置状態を前記仮想空間に仮想的に設定された時計の文字盤の短針が示す時刻に対応して設定し、前記第２のキャラクタオブジェクトの目標配置状態を前記仮想空間に仮想的に設定された時計の文字盤の長針が示す時刻に対応して設定してもよい。
【００７２】
またキャラクタオブジェクト制御部１１２は、前記仮想空間の画像が表示される表示部を含む装置に設けられた加速度センサからの加速度情報を取得し、取得した前記加速度情報に基づき、前記キャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させることでキャラクタオブジェクトを動かしてもよい。
【００７３】
音生成部１３０は、例えばデジタルシグナルプロセッサ（ＤＳＰ）などのプロセッサやその制御プログラムによって実現され、アプリケーション演算部１１０による処理結果に基づいてアプリケーションに係る効果音やＢＧＭ、各種操作音の音信号を生成し、音出力部１３２に出力する。
【００７４】
音出力部１３２は、音生成部１３０から入力される音信号に基づいて効果音やＢＧＭ等を音出力するための装置である。図１では携帯情報機器のスピーカ（図示せず）がこれに該当する。
【００７５】
画像生成部１２０は、例えば、デジタルシグナルプロセッサ（ＤＳＰ）などのプロセッサ、その制御プログラム、フレームバッファ等の描画フレーム用ＩＣメモリ等によって実現される。画像生成部１２０は、アプリケーション演算部１１０による演算結果に基づいて１フレーム時間（１／６０秒）で１枚のアプリケーション画像を生成し、生成したアプリケーション画像の画像信号を画像表示部１２２に出力する。
【００７６】
画像表示部１２２は、画像生成部１２０から入力される画像信号に基づいて各種アプリケーション画像を表示する。例えば、タッチパネルディスプレイ、フラットパネルディスプレイ、ブラウン管（ＣＲＴ）、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図１では携帯情報機器１０の表示部（タッチパネルディスプレイ）１２が該当する。
【００７７】
通信制御部１４０は、データ通信に係るデータ処理を実行し、通信部１４２を介して外部装置とのデータのやりとりを実現する。
【００７８】
通信制御部１４０は、通信回線と物理レベルで接続して通信を実現する。例えば、無線通信機、モデム、ＴＡ（ターミナルアダプタ）、有線用の通信ケーブルのジャックや制御回路等によって実現され、図１では通信装置１６がこれに該当する。
【００７９】
記憶部１７０は、処理部１００に携帯情報機器を統合的に制御させるための諸機能を実現するためのシステムプログラムや、アプリケーションを実行させるために必要なアプリケーションプログラム、各種データ等を記憶する。また、処理部１００の作業領域として用いられ、処理部１００が各種プログラムに従って実行した演算結果や操作入力部１６０から入力される入力データ等を一時的に記憶する。この機能は、例えばＲＡＭやＲＯＭなどのＩＣメモリ、ハードディスク等の磁気ディスク、ＣＤ−ＲＯＭやＤＶＤなどの光学ディスクなどによって実現される。
【００８０】
本実施形態では、記憶部１７０はアプリケーションプログラム１７４を記憶している。処理部１００がアプリケーションプログラムを読み出して実行することによって、処理部１００にアプリケーション演算部１１０としての機能を実現させることができる。
【００８１】
また、記憶部１７０には、予め用意されるデータとしてキャラクタ初期設定データ１７６やゲーム空間設定データ等が記憶されている。また、ゲームの進行に伴って随時書き換えられるデータとして、キャラクタ制御データ（図示せず）、作用力データ（図示せず）、アプリケーション空間設定データ（図示せず）等が記憶される。
【００８２】
アプリケーション空間設定データは、仮想空間にアプリケーション空間を形成するための各種データが格納されている。例えば、キャラクタオブジェクトＷＣが移動する地表や建物を含む配置物に関するモデルデータ、テクスチャデータおよびモーションデータが含まれる。また、アプリケーション実行中にキャラクタオブジェクトＷＣ以外にコンピュータによって自動制御されるノンプレーヤキャラクタ（ＮＰＣ）が登場する場合には、ＮＰＣのモデルデータやテクスチャデータおよびモーションデータなどが含まれる。
【００８３】
キャラクタ初期設定データ１７６は、キャラクタオブジェクトＷＣの初期設定データが格納されている。本実施形態では、ゲームスタート時におけるキャラクタオブジェクトＷＣはある一定の長さの胴ＷＣｂを有するように設定されている（図３（Ａ）参照）。すなわち、所定数のノード２０２が配列された骨格モデルＢＭおよびそのヒット判定モデルＨＭに関するデータが格納されている（図４（Ａ）（Ｂ）参照）。また、キャラクタオブジェクトＷＣの頭ＷＣｈや尾ＷＣｔのモデルデータ、胴ＷＣｂの部分に外皮を形成する際のテクスチャデータなどが格納されていてもよい。
【００８４】
そして、キャラクタオブジェクトＷＣをゲーム実行中に制御するためのデータが、キャラクタ制御データとして格納されている。
【００８５】
２．キャラクタオブジェクトの説明
図３（Ａ）（Ｂ）は、本実施形態におけるキャラクタオブジェクトの概要を説明するための図である。キャラクタオブジェクトＷＣは、一頭一尾の想像上のワーム（worm：細長く足のない動物。）としてデザインされており、紐のように柔軟であるとともに図３（Ａ）に示すように伸縮自在、また図３（Ｂ）に示すように湾曲自在な胴ＷＣｂを有する。キャラクタオブジェクトＷＣは、頭ＷＣｈおよび尾ＷＣｔ方向を前後方向として胴ＷＣｂの太さをそのままに伸縮自在なキャラクタオブジェクトとして設定されている。尚、本実施形態では胴ＷＣｂが伸び縮みする形態として説明するが、頭ＷＣｈおよび尾ＷＣｔを含む全身が自在に伸び縮みする設定としても良いのは勿論である。
【００８６】
この様に本実施の形態ではキャラクタオブジェクトの胴ＷＣｂ部分が関節を直列に連結した関節構造を有する紐状部分として構成されている。
【００８７】
図４（Ａ）（Ｂ）は、本実施形態におけるキャラクタオブジェクトのモデル構成を説明するための図である。
【００８８】
キャラクタオブジェクトＷＣは、基本状態（伸縮する前）においては、図４（Ａ）に示すように、複数のノード２０２が、互いに前後の距離ｌ１、ｌ２、ｌ３を一定にした直列状の関節構造を成す骨格モデルＢＭを有する。別の言い方をするならば、関節に相当するノード２０２（＝制御点）が連結子２０４によって関節構造として連結されており、伸長前の状態の連結子２０４は全て同じ初期値ｋｌ（ｌ１＝ｌ２＝ｌ３＝ｋｌ）を有している。従ってノード２０２を関節と見なすと、骨格モデルＢＭは、複数の関節が直列状に連結されていることになる。
【００８９】
図４（Ｂ）に示すように、基本状態（伸縮する前）においてはキャラクタオブジェクトＷＣにはヒット判定モデルＨＭが設定されている。ここではキャラクタオブジェクトＷＣが移動、動作する仮想空間が２次元平面である場合を例にとり説明する。本実施形態におけるヒット判定モデルＨＭでは、各ノードにヒット判定領域２０６が設定されている。本実施形態におけるヒット判定領域２０６は、対応するノード２０２の位置座標を中心にして、半径Ｒ（＝連結子２０４の長さｌ１、ｌ２、ｌ３）の円状領域として設定されている。
【００９０】
なお連結子２０４が伸縮後のヒット判定モデルＨＭについては、ヒット判定領域２０６の大きさ（例えば、図４の半径Ｒ）を連結子２０４の長さｌ１，ｌ２，ｌ３に連動させずに、骨格モデルＢＭの各連結子２０４の長さｌ１，ｌ２，ｌ３の増減にかかわらず初期値ｋｌを維持してもよい。また連結子２０４の長さｌ１，ｌ２，ｌ３がヒットチェック領域増設判定用の閾値ｈｓｌを上回った箇所を抽出し、当該ノード間の中間位置に新たにヒット判定領域２０６を増設する構成としてもよい。
【００９１】
なお本実施の形態では、後述するように各連結子長が関節増設判定用の閾値ｂｓｌを超えた場合には新たな関節（ノード）を増設するので、ヒットチェック領域増設判定用の閾値ｈｓｌを関節増設の判定用閾値ｂｓｌにあわせるようにすると、関節（ノード）とヒットチェック領域の中心点が常に１対１で対応することになり制御が複雑になるのを防ぐことができる。
【００９２】
３．キャラクタ制御データ
図５は、本実施形態におけるキャラクタ制御データ３００のデータ構成例を示す図である。同図に示すように、キャラクタ制御データ３００は、その時点におけるキャラクタオブジェクトＷＣの関節制御データ３１０と、ヒット判定制御データ３２０とを含む。
【００９３】
関節制御データ３１０は、キャラクタオブジェクトの関節（ノード）の位置座表と関節の連結状態に関するデータである。各関節に対応するノードのノード識別情報３１２に対応づけて、該ノードの仮想空間座標系における位置座標３１４（仮想空間が２次元平面である場合の座標例）と、頭側連結ノード識別情報３１６と、尾側連結ノード識別情報３１８が格納されている。
【００９４】
頭側連結ノード識別情報３１６および尾側連結ノード識別情報３１８は、当該ノードの配列順前後（頭側／尾側）に連結されているノードの識別情報を格納している。すなわち、前者は当該ノードの頭側（前方側）に連結されているノードの識別情報を格納し、後者は当該ノードの尾側（後方側）に連結されているノードの識別情報を格納する。先端のノードである場合には、連結先が無いことになるので、例えば同図に示すように「ＮＵＬＬ」が格納される。
【００９５】
ヒット判定制御データ３２０には、ヒットチェックに使用するデータである。各関節に対応するノードのノード識別情報３２２に対応づけて、ヒット判定領域情報３２４と、ヒットフラグ３２６とが格納されている。
【００９６】
ヒット判定領域情報３２６は、当該ノードに対応付けられるヒット判定領域２０６を定義するデータとして、例えば仮想空間座標系における位置座標と判定領域の半径Ｒの値を格納する。本実施形態では、対応するノードを中心に半径Ｒの円形判定領域が設定されるので、同図のように各領域半径Ｒ（Ｒ１、Ｒ２・・・）が格納されている。また、本実施形態では半径Ｒは一定であるが、例えばゲーム中にキャラクタオブジェクトＷＣが太ったり痩せたりする設定やノード間の距離が可変な設定とするならば適宜半径Ｒを可変することによって、適切なヒット判定を維持することができる。
【００９７】
そして、当該ノードに対応付けられているヒット判定領域で、他のオブジェクトと衝突していると判定された場合には、対応づけられたヒットフラグ３２６を「０（未ヒット）」から「１（ヒット）」に変更して、ヒット状態を記憶する。
【００９８】
本実施の形態では、キャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させることで前記キャラクタオブジェクトを動かす。作用力データ３３０は、各ノードに作用している仮想力に関する情報を格納している。
【００９９】
図６は、本実施形態における作用力データ（仮想力）３３０のデータ構成例を示す図である。同図に示すように、各関節に対応するノードのノード識別情報３３２に対応づけて、操作力ベクトル３３４、外力ベクトル３３６、誘導ベクトル３３８、およびこれらの力の合力に当る作用力ベクトル３４０が格納されている。その他、慣性力ベクトルや重力ベクトルなどゲーム中にキャラクタオブジェクトＷＣの動作制御に影響を与える力を適宜設定することができる。
【０１００】
操作力ベクトル３３４は、各関節（ノード）に作用するベクトルであり、操作入力に応じて設定される仮想力（＝操作力）である。
【０１０１】
外力ベクトル３３６は、各関節（ノード）に作用するベクトルであり、仮想空間自体や、仮想空間に配置されている他のオブジェクトの影響によって作用する仮想力である。例えば、重力、他のオブジェクトとの衝突や接触によって生じる力や、環境風を受けることによって生じる力がこれに含まれる。その他、電磁力や、好物に惹きつけられる様子を表す仮想力など適宜含めることができる。
【０１０２】
誘導ベクトル３３８は、各関節（ノード）に作用するベクトルであり、目標配置状態への誘導制御するための仮想力である。
【０１０３】
キャラクタオブジェクトの動きは、操作力ベクトルや外力ベクトルや誘導ベクトルの合力である作用力ベクトルによって制御されることになる。
【０１０４】
４．操作入力と操作力ベクトル
ユーザーの操作入力（タッチ入力）により発生する操作力ベクトルについて説明する。  例えば本実施の形態では、図１に示すようなタッチパネルディスプレイに表示されたキャラクタオブジェクトにタッチして、タッチしたまま指を所与の方向に動かすことにより、キャラクタオブジェクトを動かすことができる。これはキャラクタオブジェクトにタッチした箇所と関節の位置、及び動かした方向に基づき演算される操作力ベクトル（仮想力）をキャラクタオブジェクトの各関節に作用させることで実現している。
【０１０５】
図７（Ａ）〜（Ｃ）、図２４はタッチ操作に基づく操作力ベクトルの設定例を説明するための図である。
【０１０６】
図７（Ａ）は、図７（Ｂ）に示すような関節Ｋ１〜Ｋ６が直列に接続されたキャラクタオブジェクトＷＣがタッチパネルディスプレイ１２に表示されている様子を示している。ここでユーザーの指３５０がタッチパネルディスプレイ１２上の点Ｐ１をタッチして点Ｐ２まで指を移動させると、タッチパネルディスプレイ１２は点Ｐ１から点Ｐ２までユーザーの指３５０が接触移動したことを検出し操作入力情報（例えば接触移動軌跡、始点と終点、移動時間、移動開始時刻と移動終了時刻、接触圧力等の少なくとも１つの情報）を出力する。
【０１０７】
この様な操作入力が行われた場合、例えば図７（Ｃ）に示すように接触移動の始点Ｐ１と終点Ｐ２に基づき操作力ベクトル３６０の方向を決定してもよい。ここでタッチ操作により各関節に作用する操作力ベクトルの大きさは、タッチ位置と各関節の大きさによっても異なってくる。従って最も近い関節に作用させる操作力ベクトルの大きさ（最大値）をタッチ操作の接触圧力や移動時間に基づき求めて、当該最大値に基づき他の関節に作用させる操作ベクトルの大きさを求めてもよい。
【０１０８】
図２４は、タッチ操作によりキャラクタオブジェクトの各関節に作用力ベクトルが作用している様子を示している。ここでタッチ操作に基づき演算した操作力ベクトル（大きさが最大値をとるもの）ｓｖを接触位置Ｐ１の近傍の関節（例えばＫ３やＫ４）に直接作用させてもよい。すなわち図２４において関節Ｋ３に作用する操作力ベクトルＳＶ３＝ｓｖ、関節Ｋ４に作用する操作力ベクトルＳＶ４＝ｓｖとしてもよい。また近傍以外の関節ＳＶ１，ＳＶ２，ＳＶ５，ＳＶ６には操作力ベクトルｓｖの大きさを減衰させた操作力ベクトルｓｖ’、ｓｖ”を作用させてもよい。すなわち図２４において関節Ｋ２に作用する操作力ベクトルＳＶ２＝ｓｖ’、関節Ｋ５に作用する操作力ベクトルＳＶ５＝ｓｖ’としてもよい。また図２４において関節Ｋ１に作用する操作力ベクトルＳＶ１＝ｓｖ”、関節Ｋ６に作用する操作力ベクトルＳＶ６＝ｓｖ”としてもよい。この様に操作入力情報に基づき各関節（ノード）に作用させる操作力ベクトルを演算する。演算された操作力ベクトルは、作用力データとして各関節（ノード）に対応するノード識別情報３３２に対応づけて記憶される（図６参照）。
【０１０９】
５．キャラクタの移動制御
図８（Ａ）（Ｂ）は、キャラクタオブジェクトの各関節に作用する作用力ベクトルとキャラクタオブジェクトの動きについて説明するための図である。
【０１１０】
図８（Ａ）は、キャラクタオブジェクトの各関節に作用力ベクトルが作用している様子を示しており、図８（Ｂ）は、キャラクタオブジェクトの各関節に作用する作用力ベクトルによってキャラクタオブジェクトが移動する様子を示している。
【０１１１】
各関節に作用する作用力ベクトルは、作用力データのテーブル（図６参照）から読み出して設定してもよい。
【０１１２】
そしてこれらの作用力ベクトルがキャラクタオブジェクトＷＣの各関節Ｋ１からＫ６に作用することにより、各関節Ｋ１〜Ｋ６の位置は、図８（Ｂ）に示すようにＫ１ｐ〜Ｋ６ｐ→Ｋ１ｐ’〜Ｋ６ｐ’に移動する。関節位置の移動により、キャラクタオブオブジェクトＷＣの位置と形状が変化する。
【０１１３】
なお関節位置の移動により各関節間の距離（連結子の長さ）が変化することになる。すなわちキャラクタオブジェクトＷＣが伸縮することになる。各関節間の距離が変化して、連結子の長さが所定の閾値を超えると、後述するように新たな関節が生成されるようにしてもよい。
【０１１４】
６．キャラクタオブジェクトの誘導制御
図９（Ａ）（Ｂ）は誘導ベクトルについて説明するための図である。図９（Ａ）に示すように時刻ｔ０（フレーム０）においてキャラクタオブジェクトＷＣが３８０のような状態にあるとする。ここでキャラクタオブジェクトＷＣを３９０に示すような配置状態に移動させたい場合、配置状態３９０に対応する目標配置状態情報を設定して、誘導制御を行う。
【０１１５】
キャラクタオブジェクトＷＣの各関節Ｋ１〜Ｋ６に対応する目標配置状態情報として、配置状態３９０にあるキャラクタオブジェクトＭＷＣの関節ＭＫ１〜ＭＫ６の位置座標を設定してもよい。そして目標配置状態情報に基づき、キャラクタオブジェクトＷＣの各関節Ｋ１〜Ｋ６を、関節ＭＫ１〜ＭＫ６の位置に移動させるための誘導ベクトルＵＶ１〜ＵＶ６を生成し、各関節Ｋ１〜Ｋ６に作用させる。
【０１１６】
ここで、誘導ベクトルＵＶ１〜ＵＶ６は、各フレームにおけるキャラクタオブジェクトの各関節Ｋ１〜Ｋ６の位置座標と目標配置状態にあるキャラクタオブジェクトＭＷＣの対応する関節ＭＫ１〜ＭＫ６の位置座標（目標配置状態情報）に基づき求めてもよい。
【０１１７】
例えば図９（Ａ）に示すように関節Ｋ１〜Ｋ６と対応する目標配置状態の関節ＭＫ１〜ＭＫ６を結ぶ方向に基づき誘導ベクトルＵＶ１〜ＵＶ６の方向を設定し、関節Ｋ１〜Ｋ６と対応する目標配置状態の関節ＭＫ１〜ＭＫ６との距離に基づき誘導ベクトルＵＶ１〜ＵＶ６の大きさを決定してもよい。
【０１１８】
この様にして時刻ｔ０において関節Ｋ１〜Ｋ６に作用させる誘導ベクトルＵＶ１〜ＵＶ６を求め、時刻ｔ０における関節Ｋ１〜Ｋ６に作用させると、キャラクタオブジェクトＷＣは時刻ｔ１において図９（Ｂ）に示すような配置状態３８２に変化する。
【０１１９】
そして図９（Ｂ）に示すように、時刻ｔ１において関節Ｋ１〜Ｋ６に作用させる誘導ベクトルＵＶ１〜ＵＶ６を求め、時刻ｔ１おける関節Ｋ１〜Ｋ６に作用させる。この様な処理をフレーム毎に行うことで、キャラクタオブジェクトＷＣを目標配置状態３９０に誘導することができる。
【０１２０】
図１０は、誘導制御によりキャラクタオブジェクトが目標配置状態に誘導させる様子を示した図である。図９（Ａ）（Ｂ）で説明したようにキャラクタオブジェクトの関節に誘導ベクトルを作用させることにより、キャラクタオブジェクトＷＣは目標配置状態ＭＷＣに近づいて行く。時刻ｔ０において配置状態３８０にあるキャラクタオブジェクトＷＣは、時刻ｔ１において配置状態３８２になり、時刻ｔ２において配置状態３８４になり、時刻ｔ３において配置状態３８６になり、時刻ｔ４において配置状態３８８になる。
【０１２１】
７．キャラクタオブジェクトの伸縮制御
本実施の形態では、前記キャラクタオブジェクトの関節に作用する仮想力に基づき、前記キャラクタオブジェクトの紐状部分を伸縮させる制御を行う。
【０１２２】
本実施の形態では画面上（表示部）に表示されたキャラクタオブジェクトへのタッチ操作によりキャラクタオブジェクトを伸ばしたり縮めたりすることができる。例えば画面上のキャラクタオブジェクトの１カ所を引っ張るタッチ操作（例えば画面上のキャラクタオブジェクトの１カ所をタッチしてタッチ箇所を移動させる操作）や２カ所を引き延ばす操作（例えば画面上のキャラクタオブジェクトの２カ所をタッチしてタッチ箇所間の距離を広げる操作）を行うと、操作力ベクトルが隣り合う関節間の距離を広げる方向に加わる。
【０１２３】
図２０（Ａ）（Ｂ）は操作力ベクトルが隣り合う関節間の距離を広げる方向に加わる例を示している。
【０１２４】
図２０（Ａ）では、隣り合う関節Ｋ１，Ｋ２に逆向きの作用力ベクトル５３０、５３２（いずれも外向き）が働いている。この様な場合作用ベクトル５３０と５３２により関節Ｋ１とＫ２は離れる方向に引っ張られ、関節Ｋ１の位置はＫ１ｐ→Ｋ１ｐ’に移動し、関節Ｋ２の位置はＫ２ｐ→Ｋ２ｐ’に移動する。これにより関節間の距離はｌ→ｌ’に変化する（離れる）。
【０１２５】
図２０（Ｂ）では、隣り合う関節Ｋ１，Ｋ２に同方向だが大きさの異なる作用力ベクトル５４０、５４２（外向きの作用ベクトル５４０＞内向きの作用ベクトル５４２）が働いている。この様な場合作用ベクトル５４０と５４２により関節Ｋ１Ｋ２は離れる方向に引っ張られ、関節Ｋ１の位置はＫ１ｐ→Ｋ１ｐ”に移動し、関節Ｋ２の位置はＫ２ｐ→Ｋ２ｐ”に移動する。これにより関節間の距離はｌ→ｌ”に変化する。
【０１２６】
また例えば画面上のキャラクタオブジェクトの２カ所を縮める操作（例えば画面上のキャラクタオブジェクトの２カ所をタッチしてタッチ箇所間の距離を縮める操作）を行うと、操作力ベクトルが隣り合う関節間の距離を縮める方向に加わる。
【０１２７】
図２１（Ａ）（Ｂ）は操作力ベクトルが隣り合う関節間の距離を縮める方向に加わる例を示している。
【０１２８】
図２１（Ａ）では、隣り合う関節Ｋ１，Ｋ２に逆向きの作用力ベクトル５５０、５５２（いずれも内向き）が働いている。この様な場合作用ベクトル５５０と５５２により関節Ｋ１、Ｋ２は近づく方向に引っ張られ、関節Ｋ１の位置はＫ１ｐ→Ｋ１ｐ’に移動し、関節Ｋ２の位置はＫ２ｐ→Ｋ２ｐ’に移動する。これにより関節間の距離はｌ→ｌ’に変化する（近づく）。
【０１２９】
図２１（Ｂ）では、隣り合う関節Ｋ１，Ｋ２に同方向だが大きさの異なる作用力ベクトル５６０、５６２（外向きの作用ベクトル５６０＜内向きの作用ベクトル５６２）が働いている。この様な場合作用ベクトル５６０と５６２により関節Ｋ１Ｋ２は近づく方向に引っ張られ、関節Ｋ１の位置はＫ１ｐ→Ｋ１ｐ”に移動し、関節Ｋ２の位置はＫ２ｐ→Ｋ２ｐ”に移動する。これにより関節間の距離はｌ→ｌ”に変化する（近づく）。
【０１３０】
このように本実施の形態では関節の位置の変化により隣り合う関節間の連結子の長さを可変に制御する。そして連結子の長さが所与の閾値を超えると、当該連結子で連結された関節間に新たな関節を追加する処理を行う。また連結子の長さが所与の閾値を下回ると、当該連結子で連結された関節のいずれかを削除して、削除された関節に接続されていた２つの関節を新たに連結させる処理を行う。
【０１３１】
図２２（Ａ）は、関節の追加処理、図２２（Ｂ）は、関節の削除処理について説明するための図である。
【０１３２】
図２２（Ａ）は、関節Ｋ１、Ｋ２、Ｋ３、Ｋ４が直列に連結された連結構造を有するキャラクタオブジェクトの紐状部分が伸長して新たな関節が追加される様子を示している。Ｌ１，Ｌ２、Ｌ３は関節間を接続する連結子である。５１０は関節間の距離（連結子の長さ）が初期状態（Ｌ１＝Ｌ２＝Ｌ３＝ｌ）にある状態を示している。
【０１３３】
ここで関節Ｋ２、Ｋ３を引き離す力が加わり、関節Ｋ１〜Ｋ４の位置が変化し、５１２に示すように関節Ｋ２と関節Ｋ３の距離が増大すると、連結子Ｌ２の長さも増大し、結果としてキャラクタオブジェクトの紐状部分は伸長することになる。
【０１３４】
しかし５１４に示すように関節Ｋ２と関節Ｋ３の距離がさらに増大して連結子Ｌ２の長さが第１の閾値を超えると、５１６に示すように、関節Ｋ２と関節Ｋ３の間に新たな関節Ｋ２．５を追加し、関節Ｋ２と新たな関節Ｋ２．５を連結子Ｌ２で接続し、新たな関節Ｋ２．５と関節Ｋ３とを新たに追加した連結子Ｌ２．５で接続する。
【０１３５】
ここで関節を追加するか否か判定する際の第１の閾値は、例えば初期状態の関節間の距離（連結子の長さ）ｌに基づき設定してもよい。例えば２ｌとしてもよい。この様にすると関節追加時に追加している関節の連結子が初期状態と同じ長さｌに設定することができる。
【０１３６】
図２２（Ｂ）は、関節Ｋ１、Ｋ２、Ｋ３、Ｋ４、Ｋ５が直列に連結された連結構造を有するキャラクタオブジェクトの紐状部分が減縮して関節が削除される様子を示している。Ｌ１，Ｌ２、Ｌ３、Ｌ４は関節間を接続する連結子である。５２０は関節間の距離（連結子の長さ）が初期状態（Ｌ１＝Ｌ２＝Ｌ３＝Ｌ４＝ｌ）にある状態を示している。
【０１３７】
ここで関節Ｋ２、Ｋ３を近づける力が加わり、関節Ｋ１〜Ｋ５の位置が変化し、５２２に示すように関節Ｋ２と関節Ｋ３の距離が減少すると、連結子Ｌ２の長さも減少し、結果としてキャラクタオブジェクトの紐状部分は減縮することになる。
【０１３８】
しかし５２４に示すように関節Ｋ２と関節Ｋ３の距離がさらに減少して連結子Ｌ２の長さが第２の閾値を下回ると、５２６に示すように、関節Ｋ３を削除し、関節Ｋ２と関節Ｋ４を連結子Ｌ４で接続する。
【０１３９】
ここで関節を削除するか否か判定する際の第２の閾値は、例えば初期状態の関節間の距離（連結子の長さ）ｌに基づき設定してもよい。例えば０．５ｌとしてもよい。この様にすると関節削除時に削除された関節に隣り合う関節をつなぐ連結子が初期状態より短くなることはないようにすることができる。
【０１４０】
ここでは第２の閾値を下回った連結子Ｌ２で接続されている関節Ｋ２、Ｋ３関節のいずれを削除するかについては、関節Ｋ２と関節Ｋ３に接続されている他方の連結子が短い方の関節としているが、例えば予め関節に割り付けられている所定の優先順に従って優先順位の低い方の関節を削除するようにしてもよいし、ランダムにいずれかを選択して削除してもよい。
【０１４１】
この様にして関節の追加や削除が行われるとキャラクタ制御データの関節制御データ（図５の３１２）が更新される。そして更新された関節制御データを用いて以降の演算が行われる。
【０１４２】
８．障害物オブジェクト
本実施の形態では、キャラクタオブジェクト以外にもオブジェクトが登場し、キャラクタオブジェクトと接触すると、キャラクタオブジェクトの移動を妨げたり、キャラクタオブジェクトに衝突を与えたりするオブジェクトが登場する。以下この様なオブジェクトを障害物オブジェクトと呼ぶ。
【０１４３】
本実施の形態では、ランダムに又は所与のアルゴリズムに従って仮想空間に障害物オブジェクトを配置したり、仮想空間内で障害物オブジェクトを移動動作（移動のみでもよいし、移動せずに関節を動かす動作でもよいし、移動及び動作を両方行う場合でもよい）させる制御を行う。
【０１４４】
図１６（Ａ）〜（Ｃ）、図１７（Ａ）〜（Ｃ）は、障害オブジェクトと遭遇した場合のキャラクタオブジェクトの動きについて説明するための図である。
【０１４５】
図１６（Ａ）〜（Ｃ）は、移動中のキャラクタオブジェクト（第１のキャラクタオブジェクトや第２のキャラクタオブジェクトでもよい）の移動経路に障害物オブジェクトが存在した場合を示す。
【０１４６】
図１６（Ａ）に示すようにキャラクタオブジェクトＷＣに作用力ベクトル４１０（プレーヤの操作入力により発生した操作力ベクトルでもよいし、誘導ベクトルでもよいし、これらの合力でもよい）が作用し、キャラクタオブジェクトＷＣが移動している場合、移動経路に障害物オブジェクト４００が存在したとする。本システムでは、障害物オブジェクト４００とキャラクタオブジェクトＷＣのヒットチェックをとっているので、図１６（Ｂ）のように障害物オブジェクト４００とキャラクタオブジェクトＷＣが所定距離内に近づくとヒットが検出される。このような場合、障害物オブジェクト４００に設定されている移動開始閾値とキャラクタオブジェクトＷＣが障害物オブジェクト４００に加える力（例えば作用力ベクトルの大きさとキャラクタオブジェクトに設定された仮想的な重さ等により求まる力）を比較して、比較結果に基づき、例えばキャラクタオブジェクトＷＣが障害物オブジェクト４００に加える力が移動開始閾値より小さい場合には、キャラクタオブジェクトＷＣが障害物オブジェクト４００に邪魔されて動けないようにキャラクタオブジェクトＷＣの移動動作に制限を加えてもよい。また図１６（Ｃ）に示すようにキャラクタオブジェクトＷＣが障害物オブジェクト４００にぶつかった反動による生じる力を外力ベクトル４１２として、キャラクタオブジェクトＷＣに加え、キャラクタオブジェクトＷＣが障害物オブジェクト４００にはじき返されるような移動制御を行ってもよい。
【０１４７】
図１７（Ａ）〜（Ｃ）は、移動中の障害物オブジェクトの移動経路にキャラクタオブジェクト（第１のキャラクタオブジェクトや第２のキャラクタオブジェクトでもよい）が存在した場合を示す。
【０１４８】
図１７（Ａ）に示すよう障害物オブジェクト４００が、所与の力４２０により移動している場合、キャラクタオブジェクトＷＣが存在したとする。本システムでは、障害物オブジェクト４００とキャラクタオブジェクトＷＣのヒットチェックをとっているので、図１７（Ｂ）のように障害物オブジェクト４００とキャラクタオブジェクトＷＣが所定距離内に近づくとヒットが検出される。このような場合、図１６（Ｃ）に示すように、キャラクタオブジェクトＷＣが障害物オブジェクトに押されて障害物オブジェクトと共に移動するような移動制御を行ってもよい。
【０１４９】
９．通常モード
図１１、図１２は、通常モードにおけるアプリケーション画像４１０の一例である。通常モードでは、タッチパネルディスプレイにキャラクタオブジェクトＷＣが表示され、ユーザーはタッチパネルディスプレイでのタッチ操作（例えば指等をキャラクタオブジェクトの表示位置にタッチして接触移動させること）によりキャラクタオブジェクトＷＣを自由に動かすことができる。
【０１５０】
またタッチパネルディスプレイはマルチタッチ可能に構成されているので、タッチパネルディスプレイにおいてキャラクタオブジェクトを引き延ばすようなタッチ操作（例えば指２本でキャラクタオブジェクトの２カ所をタッチして、タッチ位置を遠ざける操作等でもよいし、キャラクタオブジェクトの一カ所にタッチして引っ張るように指を移動させる操作でもよい）を行うことにより、図１２に示すようにキャラクタオブジェクトを伸ばすことができる。またキャラクタオブジェクトの二カ所にタッチして縮めるように指を移動させることでキャラクタオブジェクトを短縮させることができる。
【０１５１】
１０．時計モード
本実施の形態では、時計モードが選択されると、キャラクタオブジェクトが、前記仮想空間に仮想的に設定された時計の文字盤の短針、長針として動作する。
【０１５２】
例えば図１１のアプリケーション画像４１０において時計モード選択アイコン４３０をタッチ操作することにより、時計モードに移行させることができる。
【０１５３】
図１３、図１４は、本実施の形態の時計モードの表示画像の一例である。時計モードになると、キャラクタオブジェクト（第１のキャラクタオブジェクトＷＣｂ１）が短針の長さ及び位置に配置されるとともに、第２のキャラクタオブジェクトＷＣｂ２が出現し、第２のキャラクタオブジェクトが長針の長さ及び位置で配置される。
【０１５４】
なお時計モードになると、キャラクタオブジェクトＷＣが第１のキャラクタオブジェクトＷＣｂ１と第２のキャラクタオブジェクトＷＣｂ２に分割され、第１のキャラクタオブジェクトＷＣｂ１と第２のキャラクタオブジェクトＷＣｂ２で仮想空間に仮想的に設定された時計の文字盤の短針と長針を表現するようにしてもよい。図１３に示すように第１のキャラクタオブジェクトＷＣｂ１が時計の短針になって時を刻み、第２のキャラクタオブジェクトＷＣｂ２が時計の長針となって分を刻む。
【０１５５】
時計モードでは、例えば形態情報機器等が有するシステム時刻を受け取り、システム時刻に基づき現在時刻を把握し、目標配置状態を設定してもよい。
【０１５６】
この時計モードにおいても、ユーザーはタッチ操作により第１のキャラクタオブジェクトＷＣｂ１と第２のキャラクタオブジェクトＷＣｂ２を動かしたり、伸縮させたりすることができる。従ってユーザーがこの様なタッチ操作を行うと第１のキャラクタオブジェクトＷＣｂ１と第２のキャラクタオブジェクトＷＣｂ２が動いて時計の短針、長針として現在時刻を示す状態ではなくなる。しかし本実施の形態では、先に説明した誘導制御を行うことにより、しばらくすると（放っておくと）、第１のキャラクタオブジェクトＷＣｂ１と第２のキャラクタオブジェクトＷＣｂ２が自動的に現在時刻を示す位置に戻ってくる。
【０１５７】
本実施の形態では、前記仮想空間に仮想的に設定された時計の文字盤の短針、長針が示す時刻に対応して前記目標配置状態を設定することによりこれを実現している。すなわち、第１のキャラクタオブジェクトの各関節の目標配置状態を時計の短針の対応位置に対応付けて設定し、前記第２のキャラクタオブジェクトの各関節の目標配置状態を時計の長針の対応位置に対応付けて設定し、第１のキャラクタオブジェクトＷＣｂ１と第２のキャラクタオブジェクトＷＣｂ２の各関節に誘導ベクトルを作用させることにより、第１のキャラクタオブジェクトＷＣｂ１と第２のキャラクタオブジェクトＷＣｂ２の各関節を現在時刻に対応した位置（目標配置状態）に移動させる制御を行っている。
【０１５８】
具体的には、キャラクタオブジェクトの尾が時計盤の中心に固定され、キャラクタオブジェクトの頭が時計盤の中心を軸に回転し現在時刻を示す位置に配置される。
【０１５９】
目標配置状態の設定は、現在時刻と各関節の目標配置状態を対応付けたテーブルを参照することによって行われてもよいし、現在時刻から各関節の目標配置状態を導き出す関数を用いることによって行われてもよい。
【０１６０】
例えばタッチ操作により前記第２のキャラクタオブジェクトを動かすと図１４に示すように、第２のキャラクタオブジェクトを時計の長針を示す状態とは異なる配置状態にすることができる。
【０１６１】
しかし、本実施の形態ではフレーム毎に現在時刻の短針と長針の位置にあわせて第１のキャラクタオブジェクトＷＣｂ１と第２のキャラクタオブジェクトＷＣｂ２各関節について現在位置と目標配置状態との比較を行い一致しない場合には、現在位置と目標配置状態に基づいて作用させる誘導ベクトルを演算して、第１のキャラクタオブジェクトＷＣｂ１と第２のキャラクタオブジェクトＷＣｂ２の各関節に演算した誘導ベクトルを作用させる。従って、たとえユーザーのタッチ操作により配置状態が変化しても時間の経過とともに第１のキャラクタオブジェクトＷＣｂ１と第２のキャラクタオブジェクトＷＣｂ２が現在時刻を示す状態に戻ることになる。
【０１６２】
図１５（Ａ）〜（Ｃ）は、時計モードにおける誘導制御について説明するための図である。図１５（Ａ）〜（Ｃ）は、長針に対応した第２のキャラクタオブジェクトＷＣｂ２が目標配置状態に誘導される様子を示している。
【０１６３】
ここでＭＣｂ２は時計の長針を示す状態の各関節に対応した目標配置状態を示している。各フレームにおいて第２のキャラクタオブジェクトＷＣｂ２の各関節Ｋ１〜Ｋ３に作用させる誘導ベクトルＵＶ１〜ＵＶ３は、各フレームのキャラクタオブジェクトの各関節Ｋ１〜Ｋ３の位置と目標配置状態ＭＷＣｂ２の対応する関節ＭＫ１〜ＭＫ３の位置により求めてもよい。例えば各フレームの関節Ｋ１〜Ｋ３と対応する目標配置状態ＭＷＣｂ２の関節ＭＫ１〜ＭＫ３を結ぶ方向に基づき誘導ベクトルＵＶ１〜ＵＶ３の方向を設定し、各フレームの関節Ｋ１〜Ｋ３と対応する目標配置状態ＭＷＣｂ２の関節ＭＫ１〜ＭＫ３との距離に基づき誘導ベクトルＵＶ１〜ＵＶ３の大きさを決定してもよい。
【０１６４】
図１５（Ａ）の誘導ベクトルＵＶ１〜ＵＶ３は時刻ｔ０（フレーム０）における関節Ｋ１〜Ｋ３に働く誘導ベクトルである。この誘導ベクトルにより第２のキャラクタオブジェクトＷＣｂ２は、時刻ｔ１において図１５（Ｂ）に示す配置状態になる。時刻ｔ１においては時刻ｔ１における関節Ｋ１〜Ｋ３の位置と対応する目標配置状態の関節ＭＫ１〜ＭＫ３の位置に基づき時刻ｔ１における誘導ベクトルＵＶ１〜ＵＶ３を決定してもよい。
【０１６５】
図１５（Ｂ）の誘導ベクトルＵＶ１〜ＵＶ３は時刻ｔ１（フレーム１）における関節Ｋ１〜Ｋ３に働く誘導ベクトルである。この誘導ベクトルにより第２のキャラクタオブジェクトＷＣｂ２は、時刻ｔ２において図１５（Ｃ）に示す配置状態になる。時刻ｔ２においては時刻ｔ２における関節Ｋ１〜Ｋ３の位置と対応する目標配置状態の関節ＭＫ１〜ＭＫ３の位置に基づき時刻ｔ２における誘導ベクトルＵＶ１〜ＵＶ３を決定してもよい。
【０１６６】
図１５（Ｃ）の誘導ベクトルＵＶ１〜ＵＶ３は時刻ｔ２（フレーム２）における関節Ｋ１〜Ｋ３に働く誘導ベクトルである。この誘導ベクトルにより第２のキャラクタオブジェクトＷＣｂ２は、時刻ｔ３において目標配置状態ＭＣｂ２に戻ってくる。
【０１６７】
このようにして、ユーザーのタッチ操作により移動させられた第２のキャラクタオブジェクトＷＣｂ２は、数フレーム後又は数秒後には現在時刻を指す長針を示す配置状態に自動的に戻ってくることになる。
【０１６８】
なお現在時刻は刻々と変化するので、時計の長針、短針の位置も時間とともに変化する。従ってフレーム毎に現在時刻に従って目標配置状態を設定し直してもよいし、所定フレーム毎（長針の場合は１分ごとでもよい、短針の場合には６分ごとでもよい）に現在時刻に従って目標配置状態を設定し直してもよい。
【０１６９】
図１８、図１９は、時計モードにおいて障害物オブジェクトが登場した場合の制御例について説明するための図である。
【０１７０】
時計モードにおいても、ランダムに又は所与のアルゴリズムに従って仮想空間に障害物オブジェクト４００を配置したり、仮想空間内で障害物オブジェクト４００を移動動作（移動のみでもよいし、移動せずに関節を動かす動作でもよいし、移動及び動作を両方行う場合でもよい）させる制御を行う。
【０１７１】
クラゲを模した障害物オブジェクト４００は頭部４１４と足部４１６を含み、頭部４１４と足部４１６が一体となって移動するとともに、足部４１６は頭部４１４の周りを回転動作するように構成されている。このように足部４１６を頭部４１４で回転させながら移動する障害物オブジェクトと時計の短針、長針を示す配置状態にある第１のキャラクタオブジェクトＷＣｂ１と第２のキャラクタオブジェクトＷＣｂ２の少なくとも一方がヒットした場合には、図１８に示すように第１のキャラクタオブジェクトＷＣｂ１と第２のキャラクタオブジェクトＷＣｂ２の少なくとも一方はヒットにより移動させられたり、障害物オブジェクト４００によって移動が制限されたりする。この様に障害物オブジェクト４００によって移動させられた第１のキャラクタオブジェクトＷＣｂ１や第２のキャラクタオブジェクトＷＣｂ２には時計の短針、長針を示す配置状態に戻そうとする誘導ベクトルが加わることになる。例えば障害物オブジェクト４００によって配置状態が変化しても、図１９に示すように自由に動ける配置状態にある場合（例えば周囲にヒットする障害物オブジェクトがない場合）には、第１のキャラクタオブジェクトＷＣｂ１や第２のキャラクタオブジェクトＷＣｂ２は誘導ベクトルによって現在時刻を指す短針や長針を示す配置状態位置に戻ろうとする。
【０１７２】
しかし図１８のように、第１のキャラクタオブジェクトＷＣｂ１と第２のキャラクタオブジェクトＷＣｂ２が自由に動けない状態にいる場合には、誘導ベクトルが働いてもなかなか現在時刻を示す配置状態に戻ることができない。この様な場合例えばユーザーがタッチ操作を加えて、第１のキャラクタオブジェクトＷＣｂ１と第２のキャラクタオブジェクトＷＣｂ２が自由に動ける位置まで移動させてやると、第１のキャラクタオブジェクトＷＣｂ１や第２のキャラクタオブジェクトＷＣｂ２を誘導ベクトルによって現在時刻を表す配置状態に戻すことができる。
【０１７３】
キャラクタオブジェクトの位置だけではなく、長さも所定の配置状態に戻ろうとする。例えばプレーヤがキャラクタを伸ばしてキャラクタの関節が増えた場合でも、放っておくと自動的に関節が削除され長針や短針の長さに戻る。
【０１７４】
１１．処理の説明
次に本実施形態における処理の流れについて説明する。ここで説明する処理は、処理部１００が、記憶部１７０に記憶されているシステムプログラム（不図示）やアプリケーションプログラム１７４を読み出して実行することによって実現され、所定サイクルで繰り返し実行される。
【０１７５】
図２３は、本実施の形態の処理の流れを示すフローチャートである。
【０１７６】
先ずアプリケーション演算部１１０は、仮想空間中に背景、ＮＰＣなどを配置してアプリケーション空間を形成し、形成したアプリケーション空間に、キャラクタ初期設定データ１７６を参照して初期状態のキャラクタオブジェクトＷＣを初期位置に配置する（ステップＳ１０）。
【０１７７】
このとき、キャラクタオブジェクトＷＣの配置にともなって、キャラクタ制御データ３００の関節制御データ３１０に初期状態の関節モデルが登録され、登録された関節モデルに従って外皮を形成してキャラクタオブジェクトＷＣの表示オブジェクトをアプリケーション空間に配置する。
【０１７８】
次に、処理部１００は、予め動作が設定されているオブジェクト（例えば、ＮＰＣなどの障害物オブジェクト）の動作を制御する（ステップＳ２０）。例えば、キャラクタオブジェクトWＣの移動を邪魔する障害物オブジェクトなどを設定し、所定のルールに基づいて移動制御する。
【０１７９】
次に、処理部１００は、プレーヤの操作入力に従ってキャラクタオブジェクトＷＣの各関節に作用させる操作力ベクトルを演算する（ステップＳ３０）。
【０１８０】
次に、処理部１００は、ヒット判定制御データに基づきキャラクタオブジェクトＷＣと他のオブジェクトのヒットチェック処理を行い、ヒットチェック結果に従って、キャラクタオブジェクトの関節に作用させる外力ベクトルを演算する（ステップＳ４０）。
【０１８１】
次に、処理部１００は、キャラクタオブジェクトを誘導する目標配置状態を演算し、目標配置状態情報に設定する（ステップＳ５０）。例えば時計制御を行う場合には、仮想空間に設定された時計の文字盤の長針や短針を示す配置状態を演算し、目標配置状態情報に設定する。
【０１８２】
次に、処理部１００は、キャラクタオブジェクトＷＣの現在位置と目標配置状態情報に基づき、キャラクタオブジェクトの関節に作用させる誘導ベクトルを演算する（ステップＳ６０）。
【０１８３】
次に、処理部１００は、キャラクタオブジェクトＷＣの関節に作用する力の合力である作用力ベクトルを求め、作用力ベクトルに基づきキャラクタオブジェクトの関節の移動位置を演算する（ステップＳ７０）。
【０１８４】
次に、処理部１００は、キャラクタオブジェクトＷＣの関節の移動位置に基づき、関節の追加、削減処理を行い、移動後の関節位置を決定する（ステップＳ８０）。
【０１８５】
次に、処理部１００は、移動後の関節位置に基づき関節制御データの更新やヒット判定制御データの更新を行う（ステップＳ９０）。
【０１８６】
次に、処理部１００は更新された関節制御データに基づいてキャラクタオブジェクトの外皮の形成処理を実行して、キャラクタオブジェクトＷＣの表示オブジェクトをアプリケーション空間に配置する（ステップＳ１００）。
【０１８７】
次いで、処理部１００はアプリケーションの終了条件を満たしているか否かを判定する（ステップＳ１１０）。本実施形態では、アプリケーション終了入力が行われたら終了条件を満たしていると判定する。
【０１８８】
アプリケーション終了条件を満たしていなければ（ステップＳ１１０のＮＯ）、ステップＳ２０に戻る。一方、終了条件を満たしていれば（ステップＳ１１０のＹＥＳ）ゲーム終了となる。
【０１８９】
以上、本発明を適用した第１実施形態について説明したが、本発明の適用可能な構成がこれらに限定されるものではなく、適宜構成要素の追加・削除・変更を行うことができる。
【０１９０】
例えば、本実施形態では、キャラクタオブジェクトＷＣの全身を関節構造のモデルとしたが、下半身や上半身といった一部のみを関節構造のモデルとしても良い。例えば、プレーヤキャラクタＷＣをカタツムリとし、殻の部分は形状・大きさが変化せず、体の部分をプレーヤキャラクタＷＣのような関節構造を有した伸縮自在なモデルとして設定する。そして、体の部分の制御については上述の実施形態を適用するならば、殻から出た体部分が自在に伸び縮みするカタツムリらしい様子を表現する事ができる。
【０１９１】
また上記実施の形態では、タッチパネルディスプレイを用いてタッチ操作により操作入力を行う場合を例にとり説明したが、これに限られない。例えばボタンやレバーやキーボード等の操作部から操作入力を行ってもよい。
【０１９２】
また上記実施の形態ではアプリケーション空間（仮想空間）が２次元平面である場合を例にとり説明したが、これに限られない。例えば３次元空間でもよい。
【０１９３】
また上記実施の形態ではキャラクタオブジェクトＷＣの移動可能範囲がゲーム空間全体である場合を例にとり説明したが、これに限られない。例えば、キャラクタオブジェクトＷＣの移動可能範囲が時計盤の内側に限られるようにしてもよい。
【符号の説明】
【０１９４】
２０２  ノード、２０４  連結子、１００  処理部、１１０  アプリケーション演算部、１１２  キャラクタオブジェクト制御部、１１４  目標配置状態設定部、１２０  画像生成部、１２２  画像表示部、１３０  音生成部、１３２  音出力部、１４０  通信制御部、１４２  通信部、１６０  操作入力部、１７０  記憶部、１７２  システムプログラム、１７４  アプリケーションプログラム、１７６  キャラクタ初期設定データ、３００  キャラクタ制御データ、３１０  関節制御データ、３３０  作用力データ、ＢＭ  骨格モデル、ＷＣ  キャラクタオブジェクト、ＷＣｈ  頭、ＷＣｂ  胴、ＷＣｔ  尾、ＵＶ１〜ＵＶ６  誘導ベクトル、Ｋ１〜Ｋ６  関節
【図１】
2011143121.tif 000003
【図２】
2011143121.tif 000004
【図３】
2011143121.tif 000005
【図４】
2011143121.tif 000006
【図５】
2011143121.tif 000007
【図６】
2011143121.tif 000008
【図７】
2011143121.tif 000009
【図８】
2011143121.tif 000010
【図９】
2011143121.tif 000011
【図１０】
2011143121.tif 000012
【図１１】
2011143121.tif 000013
【図１２】
2011143121.tif 000014
【図１３】
2011143121.tif 000015
【図１４】
2011143121.tif 000016
【図１５】
2011143121.tif 000017
【図１６】
2011143121.tif 000018
【図１７】
2011143121.tif 000019
【図１８】
2011143121.tif 000020
【図１９】
2011143121.tif 000021
【図２０】
2011143121.tif 000022
【図２１】
2011143121.tif 000023
【図２２】
2011143121.tif 000024
【図２３】
2011143121.tif 000025
【図２４】
2011143121.tif 000026