説明

プログラム、情報記憶媒体及び画像生成装置

【課題】処理負荷の増大を招くことなく紐状キャラクタのおもしろみを生かしたアプリケーションを提供する。
【解決手段】関節を直列に連結した関節構造を有する紐状部分を含むキャラクタオブジェクトを設定する設定手段と、操作入力情報又は所与のイベントに基づきキャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させることで前記キャラクタオブジェクトを動かすキャラクタオブジェクト制御手段と、前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する目標配置状態情報設定手段と、してコンピュータを機能させ、前記キャラクタオブジェクト制御手段は、設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、前記キャラクタオブジェクトの前記関節に前記仮想力を作用させて前記目標配置状態に誘導する処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータに、キャラクタオブジェクトの登場する所与のアプリケーション画像やゲーム画像を生成させるためのプログラム、情報記憶媒体及び画像生成装置に関する。
【背景技術】
【0002】
近年のビデオゲームでは、ゲーム中に登場するキャラクタに、骨格モデルとその外観容姿を表す表示モデルとを予め用意しておき、骨格モデルを所定のモーションデータに従って動作制御し、動作制御された骨格モデルに基づいて表示モデルとしてポリゴンモデルをゲーム空間中に形成することによって動作制御するケースが多々見られる。
【0003】
しかし、ゲームに登場するキャラクタは、関節が可動するが基本的な大きさが変化しないものだけとは限らない。例えば、粘土やゴム、流体金属のように変形自在で、基本的な大きさが単なる拡大縮小の範疇を超えて変化するものもある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特眼2008−186325
【発明の概要】
【発明が解決しようとする課題】
【0005】
最近では伸縮自在な紐状キャラクタをのばしたり縮めたりして遊ぶビデオゲーム等も存在する。紐状キャラクタをのばしたり縮めたりして遊ぶのは、片手間で楽しめるため、情報機器に付属する様々なツールやゲームやユーティリティ等のアプリケーションに紐状キャラクタを登場させることで、ユーザの遊び心を満たすアプリケーションを提供することができる。
【0006】
しかし例えば携帯情報機器やゲーム装置等では処理能力の限られたハードウエアでユーザの操作入力に対して高い応答性を要求される。従って、処理負荷の増大を招くことなく、紐状キャラクタのおもしろみを生かしたアプリケーションの提供が望まれるところである。
【0007】
本発明はこうした事情を鑑みてなされたものである。本発明のいくつかの態様によれば、処理負荷の増大を招くことなく、紐状キャラクタのおもしろみを生かしたアプリケーションを実行するプログラム、情報記憶媒体及び画像生成装置を提供することができる。また紐状キャラクタを用いて時計表示を実現することができるプログラム、情報記憶媒体及び画像生成装置を提供することができる。
【課題を解決するための手段】
【0008】
(1)本発明は、
コンピュータに、キャラクタオブジェクトが移動動作する仮想空間の画像を生成させるためのプログラムであって、操作入力情報又は所与のイベントに基づきキャラクタオブジェクトに仮想力を作用させて前記キャラクタオブジェクトを動かすキャラクタオブジェクト制御手段と、前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する目標配置状態情報設定手段と、してコンピュータを機能させ、前記キャラクタオブジェクト制御手段は、設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、生成した誘導ベクトルに基づき前記キャラクタオブジェクトに前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行い、前記目標配置状態設定手段は、時間の経過によって、前記目標配置状態を変化させることを特徴とするプログラムに関する。
【0009】
また本発明は上記各手段を含む画像生成装置に関係する。また本発明はコンピュータ読み取り可能な情報記憶媒体であって、上記各手段としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。
【0010】
キャラクタオブジェクトが移動動作する仮想空間は、3次元空間でもよいし、2次元平面であってもよい。
【0011】
目標配置状態情報とは、目標配置状態にあるキャラクタオブジェクトの位置座標データでもよいし、目標配置状態にあるキャラクタオブジェクトの各関節の位置座標データでもよい。
【0012】
本発明によれば操作入力等によって自由に動かせるキャラクタオブジェクトが、変化する目標配置状態に自動的に誘導される画像を生成することができる。
【0013】
(2)このプログラム、画像生成装置、情報記憶媒体において、
関節を直列に連結した関節構造を有する紐状部分を含むキャラクタオブジェクトを設定する設定手段と、をさらに含み、前記キャラクタオブジェクト制御手段は、操作入力情報又は所与のイベントに基づきキャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させるように構成され、前記誘導ベクトルに基づき前記キャラクタオブジェクトの前記関節に前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行ってもよい。
【0014】
キャラクタオブジェクトが移動動作する仮想空間は、3次元空間でもよいし、2次元平面であってもよい。
【0015】
キャラクタオブジェクト制御手段は、前記関節の連結を維持したままで仮想力に基づき前記関節を移動させるようにしてもよい。ここで前記関節の移動により関節間の距離が変化すると新たな関節を追加したり、関節を削除したりしてもよい。関節の連結を維持できない状態が発生すると、分割させてもよい。
【0016】
キャラクタオブジェクトは、少なくとも一部が前記関節を直列に連結した関節構造を有する紐状部分である構成でもよいし、全部が前記関節を直列に連結した関節構造を有する紐状のオブジェクトである構成でもよい。
【0017】
(3)本発明は、
コンピュータに、キャラクタオブジェクトが移動動作する仮想空間の画像を生成させるためのプログラムであって、関節を直列に連結した関節構造を有する紐状部分を含むキャラクタオブジェクトを設定する設定手段と、操作入力情報又は所与のイベントに基づきキャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させることで前記キャラクタオブジェクトを動かすキャラクタオブジェクト制御手段と、前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する目標配置状態情報設定手段と、してコンピュータを機能させ、前記キャラクタオブジェクト制御手段は、設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、生成した誘導ベクトルに基づき前記キャラクタオブジェクトの前記関節に前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行うことを特徴とするプログラムに関する。
【0018】
また本発明は上記各手段を含む画像生成装置に関係する。また本発明はコンピュータ読み取り可能な情報記憶媒体であって、上記各手段としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。
【0019】
キャラクタオブジェクトが移動動作する仮想空間は、3次元空間でもよいし、2次元平面であってもよい。
【0020】
キャラクタオブジェクト制御手段は、前記関節の連結を維持したままで仮想力に基づき前記関節を移動させるようにしてもよい。ここで前記関節の移動により関節間の距離が変化すると新たな関節を追加したり、関節を削除したりしてもよい。関節の連結を維持できない状態が発生すると、分割させてもよい。
【0021】
キャラクタオブジェクトは、少なくとも一部が前記関節を直列に連結した関節構造を有する紐状部分である構成でもよいし、全部が前記関節を直列に連結した関節構造を有する紐状のオブジェクトである構成でもよい。
【0022】
目標配置状態情報とは、目標配置状態にあるキャラクタオブジェクトの位置座標データでもよいし、目標配置状態にあるキャラクタオブジェクトの各関節の位置座標データでもよい。
【0023】
本発明によれば操作入力等によって自由に動かせるキャラクタオブジェクトが、自動的に目標配置状態に誘導される画像を生成することができる。
【0024】
(4)このプログラム、画像生成装置、情報記憶媒体において、
前記目標配置状態設定手段は、時計の文字盤の短針、長針が示すべき時刻に対応して前記目標配置状態を設定してもよい。
【0025】
キャラクタオブジェクトが、仮想空間に仮想的に設定された時計の文字盤の短針、長針となって、現在時刻を示すようにしてもよい。このような場合キャラクタオブジェクトが時計の短針、長針として現在時刻を示す状態を目標配置状態として設定してもよい。
【0026】
この様にすると仮想空間で自由に動かすことができるキャラクタオブジェクトが放っておくと現在時刻を示す位置に戻ってくる、おもしろい時計表示を行うことができる。
【0027】
システム時刻を受け取り、システム時刻に基づき時計の文字盤の短針、長針が示すべき時刻を把握して、目標配置状態を設定してもよい。
【0028】
(5)このプログラム、画像生成装置、情報記憶媒体において、
前記仮想空間に前記キャラクタオブジェクトとは異なる他のオブジェクトを配置する処理又は移動させる処理を行う障害物設定手段と、前記キャラクタオブジェクトと前記他のオブジェクトとの接触検出を行う接触検出手段と、してさらにコンピュータを機能させ、前記キャラクタオブジェクト制御手段は、前記キャラクタオブジェクトと前記他のオブジェクトとの接触検出結果に基づき、前記キャラクタオブジェクトに仮想力を作用させてもよい。
【0029】
この様にすると障害物に移動を制限されながら、キャラクタオブジェクトが目標配置状態に戻っていく画像を生成することができる。
【0030】
(6)このプログラム、画像生成装置、情報記憶媒体において、
前記キャラクタオブジェクト制御手段は、前記操作入力情報として、前記仮想空間の画像が表示された表示部における接触位置の移動履歴情報を含む操作入力情報を取得し、前記接触位置の移動履歴情報に基づき、作用させる仮想力の方向を決定してもよい。
【0031】
前記仮想空間の画像を表示する表示部をタッチパネルディスプレイ等で構成することにより、接触位置の移動履歴情報を含む操作入力情報を取得してもよい。
【0032】
この様にするとタッチ操作でダイレクトにキャラクタオブジェクトを動かす感覚が味わえるアプリケーションを提供することができる。
【0033】
(7)このプログラム、画像生成装置、情報記憶媒体において、
前記キャラクタオブジェクト制御手段は、前記目標配置状態に対応して設定された第1の位置と前記キャラクタオブジェクトの現在位置に対応して設定された第2の位置との位置関係に基づき、前記誘導ベクトルの大きさ又は方向の少なくとも1つを決定してもよい。
【0034】
位置関係とは距離や方向を含む。第2の位置はキャラクタオブジェクトの所与の関節位置に対応して設定してもよい。また第1の位置はキャラクタオブジェクトの所与の関節位置の目標配置状態として設定してもよい。
【0035】
例えば第1の位置と第2の位置を結ぶ方向に基づき、誘導ベクトルの方向を決定し、第1の位置と第2の位置との距離に基づき誘導ベクトルの大きさを決定してもよい。
【0036】
(8)このプログラム、画像生成装置、情報記憶媒体において、
前記キャラクタオブジェクト制御手段は、前記キャラクタオブジェクトの関節に作用する仮想力に基づき、前記キャラクタオブジェクトの紐状部分を伸縮させてもよい。
【0037】
紐状部分の関節構造に新たな関節を追加することで伸長させてもよいし、前記関節間の距離を増大させることで伸長させてもよい。
【0038】
(9)このプログラム、画像生成装置、情報記憶媒体において、
前記キャラクタオブジェクト制御手段は、前記仮想力による関節の移動位置を演算して、演算結果に基づき隣り合う関節間の連結子の長さを可変に制御し、連結子の長さが所与の閾値を超えると、当該連結子で連結された関節間に新たな関節を追加してもよい。
【0039】
(10)このプログラム、画像生成装置、情報記憶媒体において、
前記キャラクタオブジェクト制御手段は、前記仮想力による関節の移動位置を演算して、演算結果に基づき隣り合う関節間の連結子の長さを可変に制御し、連結子の長さが所与の閾値を下回ると、当該連結子で連結された関節のいずれかを削除して、削除された関節に接続されていた2つの関節を新たに連結させてもよい。
【0040】
所与の閾値を下回った連結子で連結された関節のいずれを削除するかは、例えば関節に接続されている他方の連結子が短い方の関節を削除してもよい。また予め関節に割り付けられている所定の優先順に従って優先順位の低い方の関節を削除するようにしてもよい。
【0041】
(11)このプログラム、画像生成装置、情報記憶媒体において、
前記キャラクタオブジェクト制御手段は、所定のモードになると、第1のキャラクタオブジェクトと第2のキャラクタオブジェクトを登場させ、前記1のキャラクタオブジェクトを時計の長針に対応付け、第2のキャラクタオブジェクトを時計の短針に対応付け、前記第1のキャラクタオブジェクトの目標配置状態を時計の文字盤の短針が示すべき時刻に対応して設定し、前記第2のキャラクタオブジェクトの目標配置状態を時計の文字盤の長針が示すべき時刻に対応して設定してもよい。
【0042】
(12)このプログラム、画像生成装置、情報記憶媒体において、
前記キャラクタオブジェクト制御手段は、前記仮想空間の画像が表示される表示部を含む装置に設けられた加速度センサからの加速度情報を取得し、取得した前記加速度情報に基づき、前記キャラクタオブジェクトに仮想力を作用させてもよい。
【0043】
加速度センサで装置に働く重力や加速度を検出し、検出された加速度情報に基づき作用ベクトルを生成することで装置に働く重力や加速度を表現することができる。
【図面の簡単な説明】
【0044】
【図1】本実施形態における携帯情報機器の構成例を説明するための図。
【図2】本実施形態における機能構成の一例を示す機能ブロック図。
【図3】図3(A)(B)は、本実施形態におけるキャラクタオブジェクトの概要を説明するための図。
【図4】図4(A)(B)は、本実施形態におけるキャラクタオブジェクトのモデル構成を説明するための図。
【図5】キャラクタ制御データのデータ構成例を示す図。
【図6】作用力データのデータ構成例を示す図。
【図7】図7(A)〜(C)はタッチ操作に基づく操作力ベクトルの設定例を説明するための図。
【図8】図8(A)(B)は、キャラクタオブジェクトの各関節に作用する仮想力とキャラクタオブジェクトの動きについて説明するための図。
【図9】図9(A)(B)は誘導ベクトルについて説明するための図。
【図10】図10は、誘導制御によりキャラクタオブジェクトが目標配置状態に誘導される様子を示した図である。
【図11】通常モードにおけるアプリケーション画像の一例。
【図12】通常モードにおけるアプリケーション画像の一例。
【図13】時計モードの表示画像の一例。
【図14】時計モードの表示画像の一例。
【図15】図15(A)〜(C)は、時計モードにおける誘導制御について説明するための図。
【図16】図16(A)〜(C)は、障害オブジェクトと遭遇した場合のキャラクタオブジェクトの動きについて説明するための図。
【図17】図17(A)〜(C)は、障害オブジェクトと遭遇した場合のキャラクタオブジェクトの動きについて説明するための図。
【図18】時計モードにおいて障害物オブジェクトが登場した場合の制御例について説明するための図。
【図19】時計モードにおいて障害物オブジェクトが登場した場合の制御例について説明するための図。
【図20】図20(A)(B)は操作力ベクトルが隣り合う関節間の距離を広げる方向に加わる例を示す図。
【図21】図21(A)(B)は操作力ベクトルが隣り合う関節間の距離を縮める方向に加わる例を示す図。
【図22】図22(A)は、関節の追加処理、図22(B)は、関節の削除処理について説明するための図である。
【図23】本実施の形態の処理の流れを示すフローチャート。
【図24】タッチ操作に基づく操作力ベクトルの設定例を説明するための図。
【発明を実施するための形態】
【0045】
以下、図面を参照しながら、本発明を適用した実施形態として、伸縮自在なキャラクタが登場するユーティリティが搭載された携帯情報機器を例に挙げて説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0046】
1. 構成
図1は、本実施形態の画像生成装置の一例である携帯情報機器の構成例を説明するための図である。
【0047】
本実施の形態の携帯情報機器10は、表示部12上でのタッチ操作により操作入力を行うことが可能なタッチパネルディスプレイ(タッチパネル、タッチディスプレイ、タッチスクリーンともいう)を備えた携帯電話である。なお表示部12は複数の指による同時操作が検出可能なマルチタッチパネルディスプレイで構成されていてもよい。また携帯情報機器10に加速度センサを内蔵していてもよい。また携帯情報機器10は、携帯型デジタル音楽プレーヤとしての機能やカメラ機能やインターネット閲覧機能やメール機能を有していてもよい。
【0048】
携帯情報機器10の本体は、例えばCPUや画像処理用LSI、ICメモリ等が実装された制御ユニット14、通信装置16を内蔵し、USBケーブル用のコネクタ18を備えていてもよい。
【0049】
携帯情報機器10は、内蔵されたメモリからシステムプログラムやアプリケーションプログラム及び各種設定データを読み出して、タッチパネルディスプレイから入力される操作入力に基づいて各種のアプリケーション演算を実行し、所与のアプリケーションを実行する。
【0050】
携帯情報機器10の制御ユニット14で生成されたアプリケーション画像は、表示部(タッチパネルディスプレイ)12上に出力される。ユーザーは携帯情報機器10の表示部12に表示されるアプリケーション画像を見つつ、タッチパネルディスプレイで構成された表示部12をタッチ操作することで各種操作入力を行いアプリケーション画像を楽しむことができる。
【0051】
尚、アプリケーション実行に必要なアプリケーションプログラムおよび各種設定データは、通信装置16を介して通信回線1に接続し、外部装置からダウンロードして取得する構成であっても良い。ここで言う、通信回線とは、データ授受が可能な通信路を意味する。すなわち、通信回線とは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLAN(Local Area Network)の他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方法については有線/無線を問わない。
【0052】
図2は、本実施形態における機能構成の一例を示す機能ブロック図である。
【0053】
なお同図において本実施形態は、少なくとも処理部100を含めばよく(或いは処理部100と記憶部170を含めばよく)、それ以外の各部(機能ブロック)については任意の構成要素とすることができる。
【0054】
同図に示すように本実施形態では、操作入力部160と、処理部100と、音出力部132と、画像表示部122と、通信部142と、記憶部170を含む。
【0055】
操作入力部160は、プレーヤによってなされた各種の操作入力に応じて操作入力信号を生成し、処理部100に出力する。操作入力部160の機能は、レバー、ボタン、ステアリング、シフトレバー、マイク、センサ、タッチパネル等のハードウエアにより実現できる。図1では、タッチパネルディスプレイ12が操作入力部100として機能する。
【0056】
処理部100は、操作入力部160からの操作入力情報やプログラムなどに基づいて、アプリケーション実行処理、画像生成処理、或いは音生成処理などの各種の処理を行うもので、例えば各種プロセッサ(マイクロプロセッサ、メインプロセッサ、描画プロセッサ、DSP等)又はASIC(ゲートアレイ等)などのハードウエアや、プログラム(ゲームプログラム)により実現できる。図1では、ゲーム装置本体10に内蔵された制御ユニット14が処理部100として機能する。
【0057】
処理部100は、アプリケーション演算部110と、音生成部130と、画像生成部120と、通信制御部140とを含む。
【0058】
アプリケーション演算部110は、アプリケーションの実行処理を行う。例えば、アプリケーション空間を仮想空間中に形成する処理や、仮想空間中に配置されたキャラクタオブジェクトWC以外のキャラクタの動作制御処理、ヒット判定処理、物理演算処理等を実行する。
【0059】
また本実施形態のアプリケーション演算部110は、キャラクタオブジェクト制御部112、目標配置状態設定部114を含む。
【0060】
アプリケーション演算部110は、関節を直列に連結した関節構造を有する紐状部分を含むキャラクタオブジェクトを設定する設定手段として機能する。キャラクタオブジェクト制御部112は、操作入力情報に基づきキャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させることで前記キャラクタオブジェクトを動かす。目標配置状態設定部114は、前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する。
【0061】
キャラクタオブジェクト制御部112は、設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、生成した誘導ベクトルに基づき前記キャラクタオブジェクトの前記関節に前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行う。
【0062】
また目標配置状態設定部114は、時間の経過によって、前記目標配置状態を変化させてもよい。
【0063】
また目標配置状態設定部114は、時計の文字盤の短針、長針が示すべき時刻に対応して前記目標配置状態を設定してもよい。
【0064】
またアプリケーション演算部110は、前記仮想空間に前記キャラクタオブジェクトとは異なる他のオブジェクトを配置する処理又は移動させる処理を行う障害物設定手段、前記キャラクタオブジェクトと前記他のオブジェクトとの接触検出を行う接触検出手段と、して機能させてもよい。
【0065】
またキャラクタオブジェクト制御部112は、前記所与のオブジェクトと前記他のオブジェクトとの接触検出結果に基づき、前記キャラクタオブジェクトの関節に仮想力を作用させて、前記関節を移動させることで前記キャラクタオブジェクトを動かしてもよい。
【0066】
またキャラクタオブジェクト制御部112は、前記操作入力情報として、前記仮想空間の画像が表示された表示部における接触位置の移動履歴情報を含む操作入力情報を取得し、前記接触位置の移動履歴情報に基づき、前記関節に作用させる仮想力の方向を決定してもよい。
【0067】
またキャラクタオブジェクト制御部112は、前記目標配置状態に対応して設定された第1の位置と前記キャラクタオブジェクトの現在位置に対応して設定された第2の位置との位置関係(距離、方向)に基づき、前記誘導ベクトルの大きさ又は方向の少なくとも1つを決定してもよい。
【0068】
またキャラクタオブジェクト制御部112は、前記キャラクタオブジェクトの関節に作用する仮想力に基づき、前記キャラクタオブジェクトの紐状部分を伸縮させてもよい。
【0069】
またキャラクタオブジェクト制御部112は、前記仮想力による関節の移動位置を演算して、演算結果に基づき隣り合う関節間の連結子の長さを可変に制御し、連結子の長さが所与の閾値を超えると、当該連結子で連結された関節間に新たな関節を追加してもよい。
【0070】
またキャラクタオブジェクト制御部112は、前記仮想力による関節の移動位置を演算して、演算結果に基づき隣り合う関節間の連結子の長さを可変に制御し、連結子の長さが所与の閾値を下回ると、当該連結子で連結された関節のいずれかを削除して、削除された関節に接続されていた2つの関節を新たに連結させてもよい。
【0071】
またキャラクタオブジェクト制御部112は、所定のモードになると、関節を直列に連結した関節構造を有する紐状部分を含む第2のキャラクタオブジェクトと第2のキャラクタオブジェクトを登場させ、目標配置状態設定部114は、第1のキャラクタオブジェクトを時計の長針に対応付け、第2のキャラクタオブジェクトを時計の短針に対応付け、前記第1のキャラクタオブジェクトの目標配置状態を前記仮想空間に仮想的に設定された時計の文字盤の短針が示す時刻に対応して設定し、前記第2のキャラクタオブジェクトの目標配置状態を前記仮想空間に仮想的に設定された時計の文字盤の長針が示す時刻に対応して設定してもよい。
【0072】
またキャラクタオブジェクト制御部112は、前記仮想空間の画像が表示される表示部を含む装置に設けられた加速度センサからの加速度情報を取得し、取得した前記加速度情報に基づき、前記キャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させることでキャラクタオブジェクトを動かしてもよい。
【0073】
音生成部130は、例えばデジタルシグナルプロセッサ(DSP)などのプロセッサやその制御プログラムによって実現され、アプリケーション演算部110による処理結果に基づいてアプリケーションに係る効果音やBGM、各種操作音の音信号を生成し、音出力部132に出力する。
【0074】
音出力部132は、音生成部130から入力される音信号に基づいて効果音やBGM等を音出力するための装置である。図1では携帯情報機器のスピーカ(図示せず)がこれに該当する。
【0075】
画像生成部120は、例えば、デジタルシグナルプロセッサ(DSP)などのプロセッサ、その制御プログラム、フレームバッファ等の描画フレーム用ICメモリ等によって実現される。画像生成部120は、アプリケーション演算部110による演算結果に基づいて1フレーム時間(1/60秒)で1枚のアプリケーション画像を生成し、生成したアプリケーション画像の画像信号を画像表示部122に出力する。
【0076】
画像表示部122は、画像生成部120から入力される画像信号に基づいて各種アプリケーション画像を表示する。例えば、タッチパネルディスプレイ、フラットパネルディスプレイ、ブラウン管(CRT)、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図1では携帯情報機器10の表示部(タッチパネルディスプレイ)12が該当する。
【0077】
通信制御部140は、データ通信に係るデータ処理を実行し、通信部142を介して外部装置とのデータのやりとりを実現する。
【0078】
通信制御部140は、通信回線と物理レベルで接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現され、図1では通信装置16がこれに該当する。
【0079】
記憶部170は、処理部100に携帯情報機器を統合的に制御させるための諸機能を実現するためのシステムプログラムや、アプリケーションを実行させるために必要なアプリケーションプログラム、各種データ等を記憶する。また、処理部100の作業領域として用いられ、処理部100が各種プログラムに従って実行した演算結果や操作入力部160から入力される入力データ等を一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD−ROMやDVDなどの光学ディスクなどによって実現される。
【0080】
本実施形態では、記憶部170はアプリケーションプログラム174を記憶している。処理部100がアプリケーションプログラムを読み出して実行することによって、処理部100にアプリケーション演算部110としての機能を実現させることができる。
【0081】
また、記憶部170には、予め用意されるデータとしてキャラクタ初期設定データ176やゲーム空間設定データ等が記憶されている。また、ゲームの進行に伴って随時書き換えられるデータとして、キャラクタ制御データ(図示せず)、作用力データ(図示せず)、アプリケーション空間設定データ(図示せず)等が記憶される。
【0082】
アプリケーション空間設定データは、仮想空間にアプリケーション空間を形成するための各種データが格納されている。例えば、キャラクタオブジェクトWCが移動する地表や建物を含む配置物に関するモデルデータ、テクスチャデータおよびモーションデータが含まれる。また、アプリケーション実行中にキャラクタオブジェクトWC以外にコンピュータによって自動制御されるノンプレーヤキャラクタ(NPC)が登場する場合には、NPCのモデルデータやテクスチャデータおよびモーションデータなどが含まれる。
【0083】
キャラクタ初期設定データ176は、キャラクタオブジェクトWCの初期設定データが格納されている。本実施形態では、ゲームスタート時におけるキャラクタオブジェクトWCはある一定の長さの胴WCbを有するように設定されている(図3(A)参照)。すなわち、所定数のノード202が配列された骨格モデルBMおよびそのヒット判定モデルHMに関するデータが格納されている(図4(A)(B)参照)。また、キャラクタオブジェクトWCの頭WChや尾WCtのモデルデータ、胴WCbの部分に外皮を形成する際のテクスチャデータなどが格納されていてもよい。
【0084】
そして、キャラクタオブジェクトWCをゲーム実行中に制御するためのデータが、キャラクタ制御データとして格納されている。
【0085】
2.キャラクタオブジェクトの説明
図3(A)(B)は、本実施形態におけるキャラクタオブジェクトの概要を説明するための図である。キャラクタオブジェクトWCは、一頭一尾の想像上のワーム(worm:細長く足のない動物。)としてデザインされており、紐のように柔軟であるとともに図3(A)に示すように伸縮自在、また図3(B)に示すように湾曲自在な胴WCbを有する。キャラクタオブジェクトWCは、頭WChおよび尾WCt方向を前後方向として胴WCbの太さをそのままに伸縮自在なキャラクタオブジェクトとして設定されている。尚、本実施形態では胴WCbが伸び縮みする形態として説明するが、頭WChおよび尾WCtを含む全身が自在に伸び縮みする設定としても良いのは勿論である。
【0086】
この様に本実施の形態ではキャラクタオブジェクトの胴WCb部分が関節を直列に連結した関節構造を有する紐状部分として構成されている。
【0087】
図4(A)(B)は、本実施形態におけるキャラクタオブジェクトのモデル構成を説明するための図である。
【0088】
キャラクタオブジェクトWCは、基本状態(伸縮する前)においては、図4(A)に示すように、複数のノード202が、互いに前後の距離l1、l2、l3を一定にした直列状の関節構造を成す骨格モデルBMを有する。別の言い方をするならば、関節に相当するノード202(=制御点)が連結子204によって関節構造として連結されており、伸長前の状態の連結子204は全て同じ初期値kl(l1=l2=l3=kl)を有している。従ってノード202を関節と見なすと、骨格モデルBMは、複数の関節が直列状に連結されていることになる。
【0089】
図4(B)に示すように、基本状態(伸縮する前)においてはキャラクタオブジェクトWCにはヒット判定モデルHMが設定されている。ここではキャラクタオブジェクトWCが移動、動作する仮想空間が2次元平面である場合を例にとり説明する。本実施形態におけるヒット判定モデルHMでは、各ノードにヒット判定領域206が設定されている。本実施形態におけるヒット判定領域206は、対応するノード202の位置座標を中心にして、半径R(=連結子204の長さl1、l2、l3)の円状領域として設定されている。
【0090】
なお連結子204が伸縮後のヒット判定モデルHMについては、ヒット判定領域206の大きさ(例えば、図4の半径R)を連結子204の長さl1,l2,l3に連動させずに、骨格モデルBMの各連結子204の長さl1,l2,l3の増減にかかわらず初期値klを維持してもよい。また連結子204の長さl1,l2,l3がヒットチェック領域増設判定用の閾値hslを上回った箇所を抽出し、当該ノード間の中間位置に新たにヒット判定領域206を増設する構成としてもよい。
【0091】
なお本実施の形態では、後述するように各連結子長が関節増設判定用の閾値bslを超えた場合には新たな関節(ノード)を増設するので、ヒットチェック領域増設判定用の閾値hslを関節増設の判定用閾値bslにあわせるようにすると、関節(ノード)とヒットチェック領域の中心点が常に1対1で対応することになり制御が複雑になるのを防ぐことができる。
【0092】
3.キャラクタ制御データ
図5は、本実施形態におけるキャラクタ制御データ300のデータ構成例を示す図である。同図に示すように、キャラクタ制御データ300は、その時点におけるキャラクタオブジェクトWCの関節制御データ310と、ヒット判定制御データ320とを含む。
【0093】
関節制御データ310、キャラクタオブジェクトの関節(ノード)の位置座表と関節の連結状態に関するデータである。各関節に対応するノードのノード識別情報312に対応づけて、該ノードの仮想空間座標系における位置座標314(仮想空間が2次元平面である場合の座標例)と、頭側連結ノード識別情報316と、尾側連結ノード識別情報318が格納されている。
【0094】
頭側連結ノード識別情報316および尾側連結ノード識別情報318は、当該ノードの配列順前後(頭側/尾側)に連結されているノードの識別情報を格納している。すなわち、前者は当該ノードの頭側(前方側)に連結されているノードの識別情報を格納し、後者は当該ノードの尾側(後方側)に連結されているノードの識別情報を格納する。先端のノードである場合には、連結先が無いことになるので、例えば同図に示すように「NULL」が格納される。
【0095】
ヒット判定制御データ320には、ヒットチェックに使用するデータである。各関節に対応するノードのノード識別情報322に対応づけて、ヒット判定領域情報324と、ヒットフラグ326とが格納されている。
【0096】
ヒット判定領域情報326は、当該ノードに対応付けられるヒット判定領域206を定義するデータとして、例えば仮想空間座標系における位置座標と判定領域の半径Rの値を格納する。本実施形態では、対応するノードを中心に半径Rの円形判定領域が設定されるので、同図のように各領域半径R(R1、R2・・・)が格納されている。また、本実施形態では半径Rは一定であるが、例えばゲーム中にキャラクタオブジェクトWCが太ったり痩せたりする設定やノード間の距離が可変な設定とするならば適宜半径Rを可変することによって、適切なヒット判定を維持することができる。
【0097】
そして、当該ノードに対応付けられているヒット判定領域で、他のオブジェクトと衝突していると判定された場合には、対応づけられたヒットフラグ326を「0(未ヒット)」から「1(ヒット)」に変更して、ヒット状態を記憶する。
【0098】
本実施の形態では、キャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させることで前記キャラクタオブジェクトを動かす。作用力データ330は、各ノードに作用している仮想力に関する情報を格納している。
【0099】
図6は、本実施形態における作用力データ(仮想力)330のデータ構成例を示す図である。同図に示すように、各関節に対応するノードのノード識別情報332に対応づけて、操作力ベクトル334、外力ベクトル336、誘導ベクトル338、およびこれらの力の合力に当る作用力ベクトル340が格納されている。その他、慣性力ベクトルや重力ベクトルなどゲーム中にキャラクタオブジェクトWCの動作制御に影響を与える力を適宜設定することができる。
【0100】
操作力ベクトル334は、各関節(ノード)に作用するベクトルであり、操作入力に応じて設定される仮想力(=操作力)である。
【0101】
外力ベクトル336は、各関節(ノード)に作用するベクトルであり、仮想空間自体や、仮想空間に配置されている他のオブジェクトの影響によって作用する仮想力である。例えば、重力、他のオブジェクトとの衝突や接触によって生じる力や、環境風を受けることによって生じる力がこれに含まれる。その他、電磁力や、好物に惹きつけられる様子を表す仮想力など適宜含めることができる。
【0102】
誘導ベクトル338は、各関節(ノード)に作用するベクトルであり、目標配置状態への誘導制御するための仮想力である。
【0103】
キャラクタオブジェクトの動きは、操作力ベクトルや外力ベクトルや誘導ベクトルの合力である作用力ベクトルによって制御されることになる。
【0104】
4.操作入力と操作力ベクトル
ユーザーの操作入力(タッチ入力)により発生する操作力ベクトルについて説明する。 例えば本実施の形態では、図1に示すようなタッチパネルディスプレイに表示されたキャラクタオブジェクトにタッチして、タッチしたまま指を所与の方向に動かすことにより、キャラクタオブジェクトを動かすことができる。これはキャラクタオブジェクトにタッチした箇所と関節の位置、及び動かした方向に基づき演算される操作力ベクトル(仮想力)をキャラクタオブジェクトの各関節に作用させることで実現している。
【0105】
図7(A)〜(C)、図24はタッチ操作に基づく操作力ベクトルの設定例を説明するための図である。
【0106】
図7(A)は、図7(B)に示すような関節K1〜K6が直列に接続されたキャラクタオブジェクトWCがタッチパネルディスプレイ12に表示されている様子を示している。ここでユーザーの指350がタッチパネルディスプレイ12上の点P1をタッチして点P2まで指を移動させると、タッチパネルディスプレイ12は点P1から点P2までユーザーの指350が接触移動したことを検出し操作入力情報(例えば接触移動軌跡、始点と終点、移動時間、移動開始時刻と移動終了時刻、接触圧力等の少なくとも1つの情報)を出力する。
【0107】
この様な操作入力が行われた場合、例えば図7(C)に示すように接触移動の始点P1と終点P2に基づき操作力ベクトル360の方向を決定してもよい。ここでタッチ操作により各関節に作用する操作力ベクトルの大きさは、タッチ位置と各関節の大きさによっても異なってくる。従って最も近い関節に作用させる操作力ベクトルの大きさ(最大値)をタッチ操作の接触圧力や移動時間に基づき求めて、当該最大値に基づき他の関節に作用させる操作ベクトルの大きさを求めてもよい。
【0108】
図24は、タッチ操作によりキャラクタオブジェクトの各関節に作用力ベクトルが作用している様子を示している。ここでタッチ操作に基づき演算した操作力ベクトル(大きさが最大値をとるもの)svを接触位置P1の近傍の関節(例えばK3やK4)に直接作用させてもよい。すなわち図24において関節K3に作用する操作力ベクトルSV3=sv、関節K4に作用する操作力ベクトルSV4=svとしてもよい。また近傍以外の関節SV1,SV2,SV5,SV6には操作力ベクトルsvの大きさを減衰させた操作力ベクトルsv’、sv”を作用させてもよい。すなわち図24において関節K2に作用する操作力ベクトルSV2=sv’、関節K5に作用する操作力ベクトルSV5=sv’としてもよい。また図24において関節K1に作用する操作力ベクトルSV1=sv”、関節K6に作用する操作力ベクトルSV6=sv”としてもよい。この様に操作入力情報に基づき各関節(ノード)に作用させる操作力ベクトルを演算する。演算された操作力ベクトルは、作用力データとして各関節(ノード)に対応するノード識別情報332に対応づけて記憶される(図6参照)。
【0109】
5.キャラクタの移動制御
図8(A)(B)は、キャラクタオブジェクトの各関節に作用する作用力ベクトルとキャラクタオブジェクトの動きについて説明するための図である。
【0110】
図8(A)は、キャラクタオブジェクトの各関節に作用力ベクトルが作用している様子を示しており、図8(B)は、キャラクタオブジェクトの各関節に作用する作用力ベクトルによってキャラクタオブジェクトが移動する様子を示している。
【0111】
各関節に作用する作用力ベクトルは、作用力データのテーブル(図6参照)から読み出して設定してもよい。
【0112】
そしてこれらの作用力ベクトルがキャラクタオブジェクトWCの各関節K1からK6に作用することにより、各関節K1〜K6の位置は、図8(B)に示すようにK1p〜K6p→K1p’〜K6p’に移動する。関節位置の移動により、キャラクタオブオブジェクトWCの位置と形状が変化する。
【0113】
なお関節位置の移動により各関節間の距離(連結子の長さ)が変化することになる。すなわちキャラクタオブジェクトWCが伸縮することになる。各関節間の距離が変化して、連結子の長さが所定の閾値を超えると、後述するように新たな関節が生成されるようにしてもよい。
【0114】
6.キャラクタオブジェクトの誘導制御
図9(A)(B)は誘導ベクトルについて説明するための図である。図9(A)に示すように時刻t0(フレーム0)においてキャラクタオブジェクトWCが380のような状態にあるとする。ここでキャラクタオブジェクトWCを390に示すような配置状態に移動させたい場合、配置状態390に対応する目標配置状態情報を設定して、誘導制御を行う。
【0115】
キャラクタオブジェクトWCの各関節K1〜K6に対応する目標配置状態情報として、配置状態390にあるキャラクタオブジェクトMWCの関節MK1〜MK6の位置座標を設定してもよい。そして目標配置状態情報に基づき、キャラクタオブジェクトWCの各関節K1〜K6を、関節MK1〜MK6の位置に移動させるための誘導ベクトルUV1〜UV6を生成し、各関節K1〜K6に作用させる。
【0116】
ここで、誘導ベクトルUV1〜UV6は、各フレームにおけるキャラクタオブジェクトの各関節K1〜K6の位置座標と目標配置状態にあるキャラクタオブジェクトMWCの対応する関節MK1〜MK6の位置座標(目標配置状態情報)に基づき求めてもよい。
【0117】
例えば図9(A)に示すように関節K1〜K6と対応する目標配置状態の関節MK1〜MK6を結ぶ方向に基づき誘導ベクトルUV1〜UV6の方向を設定し、関節K1〜K6と対応する目標配置状態の関節MK1〜MK6との距離に基づき誘導ベクトルUV1〜UV6の大きさを決定してもよい。
【0118】
この様にして時刻t0において関節K1〜K6に作用させる誘導ベクトルUV1〜UV6を求め、時刻t0における関節K1〜K6に作用させると、キャラクタオブジェクトWCは時刻t1において図9(B)に示すような配置状態382に変化する。
【0119】
そして図9(B)に示すように、時刻t1において関節K1〜K6に作用させる誘導ベクトルUV1〜UV6を求め、時刻t1おける関節K1〜K6に作用させる。この様な処理をフレーム毎に行うことで、キャラクタオブジェクトWCを目標配置状態390に誘導することができる。
【0120】
図10は、誘導制御によりキャラクタオブジェクトが目標配置状態に誘導させる様子を示した図である。図9(A)(B)で説明したようにキャラクタオブジェクトの関節に誘導ベクトルを作用させることにより、キャラクタオブジェクトWCは目標配置状態MWCに近づいて行く。時刻t0において配置状態380にあるキャラクタオブジェクトWCは、時刻t1において配置状態382になり、時刻t2において配置状態384になり、時刻t3において配置状態386になり、時刻t4において配置状態388になる。
【0121】
7.キャラクタオブジェクトの伸縮制御
本実施の形態では、前記キャラクタオブジェクトの関節に作用する仮想力に基づき、前記キャラクタオブジェクトの紐状部分を伸縮させる制御を行う。
【0122】
本実施の形態では画面上(表示部)に表示されたキャラクタオブジェクトへのタッチ操作によりキャラクタオブジェクトを伸ばしたり縮めたりすることができる。例えば画面上のキャラクタオブジェクトの1カ所を引っ張るタッチ操作(例えば画面上のキャラクタオブジェクトの1カ所をタッチしてタッチ箇所を移動させる操作)や2カ所を引き延ばす操作(例えば画面上のキャラクタオブジェクトの2カ所をタッチしてタッチ箇所間の距離を広げる操作)を行うと、操作力ベクトルが隣り合う関節間の距離を広げる方向に加わる。
【0123】
図20(A)(B)は操作力ベクトルが隣り合う関節間の距離を広げる方向に加わる例を示している。
【0124】
図20(A)では、隣り合う関節K1,K2に逆向きの作用力ベクトル530、532(いずれも外向き)が働いている。この様な場合作用ベクトル530と532により関節K1とK2は離れる方向に引っ張られ、関節K1の位置はK1p→K1p’に移動し、関節K2の位置はK2p→K2p’に移動する。これにより関節間の距離はl→l’に変化する(離れる)。
【0125】
図20(B)では、隣り合う関節K1,K2に同方向だが大きさの異なる作用力ベクトル540、542(外向きの作用ベクトル540>内向きの作用ベクトル542)が働いている。この様な場合作用ベクトル540と542により関節K1K2は離れる方向に引っ張られ、関節K1の位置はK1p→K1p”に移動し、関節K2の位置はK2p→K2p”に移動する。これにより関節間の距離はl→l”に変化する。
【0126】
また例えば画面上のキャラクタオブジェクトの2カ所を縮める操作(例えば画面上のキャラクタオブジェクトの2カ所をタッチしてタッチ箇所間の距離を縮める操作)を行うと、操作力ベクトルが隣り合う関節間の距離を縮める方向に加わる。
【0127】
図21(A)(B)は操作力ベクトルが隣り合う関節間の距離を縮める方向に加わる例を示している。
【0128】
図21(A)では、隣り合う関節K1,K2に逆向きの作用力ベクトル550、552(いずれも内向き)が働いている。この様な場合作用ベクトル550と552により関節K1、K2は近づく方向に引っ張られ、関節K1の位置はK1p→K1p’に移動し、関節K2の位置はK2p→K2p’に移動する。これにより関節間の距離はl→l’に変化する(近づく)。
【0129】
図21(B)では、隣り合う関節K1,K2に同方向だが大きさの異なる作用力ベクトル560、562(外向きの作用ベクトル560<内向きの作用ベクトル562)が働いている。この様な場合作用ベクトル560と562により関節K1K2は近づく方向に引っ張られ、関節K1の位置はK1p→K1p”に移動し、関節K2の位置はK2p→K2p”に移動する。これにより関節間の距離はl→l”に変化する(近づく)。
【0130】
このように本実施の形態では関節の位置の変化により隣り合う関節間の連結子の長さを可変に制御する。そして連結子の長さが所与の閾値を超えると、当該連結子で連結された関節間に新たな関節を追加する処理を行う。また連結子の長さが所与の閾値を下回ると、当該連結子で連結された関節のいずれかを削除して、削除された関節に接続されていた2つの関節を新たに連結させる処理を行う。
【0131】
図22(A)は、関節の追加処理、図22(B)は、関節の削除処理について説明するための図である。
【0132】
図22(A)は、関節K1、K2、K3、K4が直列に連結された連結構造を有するキャラクタオブジェクトの紐状部分が伸長して新たな関節が追加される様子を示している。L1,L2、L3は関節間を接続する連結子である。510は関節間の距離(連結子の長さ)が初期状態(L1=L2=L3=l)にある状態を示している。
【0133】
ここで関節K2、K3を引き離す力が加わり、関節K1〜K4の位置が変化し、512に示すように関節K2と関節K3の距離が増大すると、連結子L2の長さも増大し、結果としてキャラクタオブジェクトの紐状部分は伸長することになる。
【0134】
しかし514に示すように関節K2と関節K3の距離がさらに増大して連結子L2の長さが第1の閾値を超えると、516に示すように、関節K2と関節K3の間に新たな関節K2.5を追加し、関節K2と新たな関節K2.5を連結子L2で接続し、新たな関節K2.5と関節K3とを新たに追加した連結子L2.5で接続する。
【0135】
ここで関節を追加するか否か判定する際の第1の閾値は、例えば初期状態の関節間の距離(連結子の長さ)lに基づき設定してもよい。例えば2lとしてもよい。この様にすると関節追加時に追加している関節の連結子が初期状態と同じ長さlに設定することができる。
【0136】
図22(B)は、関節K1、K2、K3、K4、K5が直列に連結された連結構造を有するキャラクタオブジェクトの紐状部分が減縮して関節が削除される様子を示している。L1,L2、L3、L4は関節間を接続する連結子である。520は関節間の距離(連結子の長さ)が初期状態(L1=L2=L3=L4=l)にある状態を示している。
【0137】
ここで関節K2、K3を近づける力が加わり、関節K1〜K5の位置が変化し、522に示すように関節K2と関節K3の距離が減少すると、連結子L2の長さも減少し、結果としてキャラクタオブジェクトの紐状部分は減縮することになる。
【0138】
しかし524に示すように関節K2と関節K3の距離がさらに減少して連結子L2の長さが第2の閾値を下回ると、526に示すように、関節K3を削除し、関節K2と関節K4を連結子L4で接続する。
【0139】
ここで関節を削除するか否か判定する際の第2の閾値は、例えば初期状態の関節間の距離(連結子の長さ)lに基づき設定してもよい。例えば0.5lとしてもよい。この様にすると関節削除時に削除された関節に隣り合う関節をつなぐ連結子が初期状態より短くなることはないようにすることができる。
【0140】
ここでは第2の閾値を下回った連結子L2で接続されている関節K2、K3関節のいずれを削除するかについては、関節K2と関節K3に接続されている他方の連結子が短い方の関節としているが、例えば予め関節に割り付けられている所定の優先順に従って優先順位の低い方の関節を削除するようにしてもよいし、ランダムにいずれかを選択して削除してもよい。
【0141】
この様にして関節の追加や削除が行われるとキャラクタ制御データの関節制御データ(図5の312)が更新される。そして更新された関節制御データを用いて以降の演算が行われる。
【0142】
8.障害物オブジェクト
本実施の形態では、キャラクタオブジェクト以外にもオブジェクトが登場し、キャラクタオブジェクトと接触すると、キャラクタオブジェクトの移動を妨げたり、キャラクタオブジェクトに衝突を与えたりするオブジェクトが登場する。以下この様なオブジェクトを障害物オブジェクトと呼ぶ。
【0143】
本実施の形態では、ランダムに又は所与のアルゴリズムに従って仮想空間に障害物オブジェクトを配置したり、仮想空間内で障害物オブジェクトを移動動作(移動のみでもよいし、移動せずに関節を動かす動作でもよいし、移動及び動作を両方行う場合でもよい)させる制御を行う。
【0144】
図16(A)〜(C)、図17(A)〜(C)は、障害オブジェクトと遭遇した場合のキャラクタオブジェクトの動きについて説明するための図である。
【0145】
図16(A)〜(C)は、移動中のキャラクタオブジェクト(第1のキャラクタオブジェクトや第2のキャラクタオブジェクトでもよい)の移動経路に障害物オブジェクトが存在した場合を示す。
【0146】
図16(A)に示すようにキャラクタオブジェクトWCに作用力ベクトル410(プレーヤの操作入力により発生した操作力ベクトルでもよいし、誘導ベクトルでもよいし、これらの合力でもよい)が作用し、キャラクタオブジェクトWCが移動している場合、移動経路に障害物オブジェクト400が存在したとする。本システムでは、障害物オブジェクト400とキャラクタオブジェクトWCのヒットチェックをとっているので、図16(B)のように障害物オブジェクト400とキャラクタオブジェクトWCが所定距離内に近づくとヒットが検出される。このような場合、障害物オブジェクト400に設定されている移動開始閾値とキャラクタオブジェクトWCが障害物オブジェクト400に加える力(例えば作用力ベクトルの大きさとキャラクタオブジェクトに設定された仮想的な重さ等により求まる力)を比較して、比較結果に基づき、例えばキャラクタオブジェクトWCが障害物オブジェクト400に加える力が移動開始閾値より小さい場合には、キャラクタオブジェクトWCが障害物オブジェクト400に邪魔されて動けないようにキャラクタオブジェクトWCの移動動作に制限を加えてもよい。また図16(C)に示すようにキャラクタオブジェクトWCが障害物オブジェクト400にぶつかった反動による生じる力を外力ベクトル412として、キャラクタオブジェクトWCに加え、キャラクタオブジェクトWCが障害物オブジェクト400にはじき返されるような移動制御を行ってもよい。
【0147】
図17(A)〜(C)は、移動中の障害物オブジェクトの移動経路にキャラクタオブジェクト(第1のキャラクタオブジェクトや第2のキャラクタオブジェクトでもよい)が存在した場合を示す。
【0148】
図17(A)に示すよう障害物オブジェクト400が、所与の力420により移動している場合、キャラクタオブジェクトWCが存在したとする。本システムでは、障害物オブジェクト400とキャラクタオブジェクトWCのヒットチェックをとっているので、図17(B)のように障害物オブジェクト400とキャラクタオブジェクトWCが所定距離内に近づくとヒットが検出される。このような場合、図16(C)に示すように、キャラクタオブジェクトWCが障害物オブジェクトに押されて障害物オブジェクトと共に移動するような移動制御を行ってもよい。
【0149】
9.通常モード
図11、図12は、通常モードにおけるアプリケーション画像410の一例である。通常モードでは、タッチパネルディスプレイにキャラクタオブジェクトWCが表示され、ユーザーはタッチパネルディスプレイでのタッチ操作(例えば指等をキャラクタオブジェクトの表示位置にタッチして接触移動させること)によりキャラクタオブジェクトWCを自由に動かすことができる。
【0150】
またタッチパネルディスプレイはマルチタッチ可能に構成されているので、タッチパネルディスプレイにおいてキャラクタオブジェクトを引き延ばすようなタッチ操作(例えば指2本でキャラクタオブジェクトの2カ所をタッチして、タッチ位置を遠ざける操作等でもよいし、キャラクタオブジェクトの一カ所にタッチして引っ張るように指を移動させる操作でもよい)を行うことにより、図12に示すようにキャラクタオブジェクトを伸ばすことができる。またキャラクタオブジェクトの二カ所にタッチして縮めるように指を移動させることでキャラクタオブジェクトを短縮させることができる。
【0151】
10.時計モード
本実施の形態では、時計モードが選択されると、キャラクタオブジェクトが、前記仮想空間に仮想的に設定された時計の文字盤の短針、長針として動作する。
【0152】
例えば図11のアプリケーション画像410において時計モード選択アイコン430をタッチ操作することにより、時計モードに移行させることができる。
【0153】
図13、図14は、本実施の形態の時計モードの表示画像の一例である。時計モードになると、キャラクタオブジェクト(第1のキャラクタオブジェクトWCb1)が短針の長さ及び位置に配置されるとともに、第2のキャラクタオブジェクトWCb2が出現し、第2のキャラクタオブジェクトが長針の長さ及び位置で配置される。
【0154】
なお時計モードになると、キャラクタオブジェクトWCが第1のキャラクタオブジェクトWCb1と第2のキャラクタオブジェクトWCb2に分割され、第1のキャラクタオブジェクトWCb1と第2のキャラクタオブジェクトWCb2で仮想空間に仮想的に設定された時計の文字盤の短針と長針を表現するようにしてもよい。図13に示すように第1のキャラクタオブジェクトWCb1が時計の短針になって時を刻み、第2のキャラクタオブジェクトWCb2が時計の長針となって分を刻む。
【0155】
時計モードでは、例えば形態情報機器等が有するシステム時刻を受け取り、システム時刻に基づき現在時刻を把握し、目標配置状態を設定してもよい。
【0156】
この時計モードにおいても、ユーザーはタッチ操作により第1のキャラクタオブジェクトWCb1と第2のキャラクタオブジェクトWCb2を動かしたり、伸縮させたりすることができる。従ってユーザーがこの様なタッチ操作を行うと第1のキャラクタオブジェクトWCb1と第2のキャラクタオブジェクトWCb2が動いて時計の短針、長針として現在時刻を示す状態ではなくなる。しかし本実施の形態では、先に説明した誘導制御を行うことにより、しばらくすると(放っておくと)、第1のキャラクタオブジェクトWCb1と第2のキャラクタオブジェクトWCb2が自動的に現在時刻を示す位置に戻ってくる。
【0157】
本実施の形態では、前記仮想空間に仮想的に設定された時計の文字盤の短針、長針が示す時刻に対応して前記目標配置状態を設定することによりこれを実現している。すなわち、第1のキャラクタオブジェクトの各関節の目標配置状態を時計の短針の対応位置に対応付けて設定し、前記第2のキャラクタオブジェクトの各関節の目標配置状態を時計の長針の対応位置に対応付けて設定し、第1のキャラクタオブジェクトWCb1と第2のキャラクタオブジェクトWCb2の各関節に誘導ベクトルを作用させることにより、第1のキャラクタオブジェクトWCb1と第2のキャラクタオブジェクトWCb2の各関節を現在時刻に対応した位置(目標配置状態)に移動させる制御を行っている。
【0158】
具体的には、キャラクタオブジェクトの尾が時計盤の中心に固定され、キャラクタオブジェクトの頭が時計盤の中心を軸に回転し現在時刻を示す位置に配置される。
【0159】
目標配置状態の設定は、現在時刻と各関節の目標配置状態を対応付けたテーブルを参照することによって行われてもよいし、現在時刻から各関節の目標配置状態を導き出す関数を用いることによって行われてもよい。
【0160】
例えばタッチ操作により前記第2のキャラクタオブジェクトを動かすと図14に示すように、第2のキャラクタオブジェクトを時計の長針を示す状態とは異なる配置状態することができる。
【0161】
しかし、本実施の形態ではフレーム毎に現在時刻の短針と長針の位置にあわせて第1のキャラクタオブジェクトWCb1と第2のキャラクタオブジェクトWCb2各関節について現在位置と目標配置状態との比較を行い一致しない場合には、現在位置と目標配置状態に基づいて作用させる誘導ベクトルを演算して、第1のキャラクタオブジェクトWCb1と第2のキャラクタオブジェクトWCb2の各関節に演算した誘導ベクトルを作用させる。従って、たとえユーザーのタッチ操作により配置状態が変化しても時間の経過とともに第1のキャラクタオブジェクトWCb1と第2のキャラクタオブジェクトWCb2が現在時刻を示す状態に戻ることになる。
【0162】
図15(A)〜(C)は、時計モードにおける誘導制御について説明するための図である。図15(A)〜(C)は、長針に対応した第2のキャラクタオブジェクトWCb2が目標配置状態に誘導される様子を示している。
【0163】
ここでMCb2は時計の長針を示す状態の各関節に対応した目標配置状態を示している。各フレームにおいて第2のキャラクタオブジェクトWCb2の各関節K1〜K3に作用させる誘導ベクトルUV1〜UV3は、各フレームのキャラクタオブジェクトの各関節K1〜K3の位置と目標配置状態MWCb2の対応する関節MK1〜MK3の位置により求めてもよい。例えば各フレームの関節K1〜K3と対応する目標配置状態MWCb2の関節MK1〜MK3を結ぶ方向に基づき誘導ベクトルUV1〜UV3の方向を設定し、各フレームの関節K1〜K3と対応する目標配置状態MWCb2の関節MK1〜MK3との距離に基づき誘導ベクトルUV1〜UV3の大きさを決定してもよい。
【0164】
図15(A)の誘導ベクトルUV1〜UV3は時刻t0(フレーム0)における関節K1〜K3に働く誘導ベクトルである。この誘導ベクトルにより第2のキャラクタオブジェクトWCb2は、時刻t1において図15(B)に示す配置状態になる。時刻t1においては時刻t1における関節K1〜K3の位置と対応する目標配置状態の関節MK1〜MK3の位置に基づき時刻t1における誘導ベクトルUV1〜UV3を決定してもよい。
【0165】
図15(B)の誘導ベクトルUV1〜UV3は時刻t1(フレーム1)における関節K1〜K3に働く誘導ベクトルである。この誘導ベクトルにより第2のキャラクタオブジェクトWCb2は、時刻t2において図15(C)に示す配置状態になる。時刻t2においては時刻t2における関節K1〜K3の位置と対応する目標配置状態の関節MK1〜MK3の位置に基づき時刻t2における誘導ベクトルUV1〜UV3を決定してもよい。
【0166】
図15(C)の誘導ベクトルUV1〜UV3は時刻t2(フレーム2)における関節K1〜K3に働く誘導ベクトルである。この誘導ベクトルにより第2のキャラクタオブジェクトWCb2は、時刻t3において目標配置状態MCb2に戻ってくる。
【0167】
このようにして、ユーザーのタッチ操作により移動させられた第2のキャラクタオブジェクトWCb2は、数フレーム後又は数秒後には現在時刻を指す長針を示す配置状態に自動的に戻ってくることになる。
【0168】
なお現在時刻は刻々と変化するので、時計の長針、短針の位置も時間とともに変化する。従ってフレーム毎に現在時刻に従って目標配置状態を設定し直してもよいし、所定フレーム毎(長針の場合は1分ごとでもよい、短針の場合には6分ごとでもよい)に現在時刻に従って目標配置状態を設定し直してもよい。
【0169】
図18、図19は、時計モードにおいて障害物オブジェクトが登場した場合の制御例について説明するための図である。
【0170】
時計モードにおいても、ランダムに又は所与のアルゴリズムに従って仮想空間に障害物オブジェクト400を配置したり、仮想空間内で障害物オブジェクト400を移動動作(移動のみでもよいし、移動せずに関節を動かす動作でもよいし、移動及び動作を両方行う場合でもよい)させる制御を行う。
【0171】
クラゲを模した障害物オブジェクト400は頭部414と足部416を含み、頭部414と足部416が一体となって移動するとともに、足部416は頭部414の周りを回転動作するように構成されている。このように足部416を頭部414で回転させながら移動する障害物オブジェクトと時計の短針、長針を示す配置状態にある第1のキャラクタオブジェクトWCb1と第2のキャラクタオブジェクトWCb2の少なくとも一方がヒットした場合には、図18に示すように第1のキャラクタオブジェクトWCb1と第2のキャラクタオブジェクトWCb2の少なくとも一方はヒットにより移動させられたり、障害物オブジェクト400によって移動が制限されたりする。この様に障害物オブジェクト400によって移動させられた第1のキャラクタオブジェクトWCb1や第2のキャラクタオブジェクトWCb2には時計の短針、長針を示す配置状態に戻そうとする誘導ベクトルが加わることになる。例えば障害物オブジェクト400によって配置状態が変化しても、図19に示すように自由に動ける配置状態にある場合(例えば周囲にヒットする障害物オブジェクトがない場合)には、第1のキャラクタオブジェクトWCb1や第2のキャラクタオブジェクトWCb2は誘導ベクトルによって現在時刻を指す短針や長針を示す配置状態位置に戻ろうとする。
【0172】
しかし図18のように、第1のキャラクタオブジェクトWCb1と第2のキャラクタオブジェクトWCb2が自由に動けない状態にいる場合には、誘導ベクトルが働いてもなかなか現在時刻を示す配置状態に戻ることができない。この様な場合例えばユーザーがタッチ操作を加えて、第1のキャラクタオブジェクトWCb1と第2のキャラクタオブジェクトWCb2が自由に動ける位置まで移動させてやると、第1のキャラクタオブジェクトWCb1や第2のキャラクタオブジェクトWCb2を誘導ベクトルによって現在時刻を表す配置状態に戻すことができる。
【0173】
キャラクタオブジェクトの位置だけではなく、長さも所定の配置状態に戻ろうとする。例えばプレーヤがキャラクタを伸ばしてキャラクタの関節が増えた場合でも、放っておくと自動的に関節が削除され長針や短針の長さに戻る。
【0174】
11.処理の説明
次に本実施形態における処理の流れについて説明する。ここで説明する処理は、処理部100が、記憶部170に記憶されているシステムプログラム(不図示)やアプリケーションプログラム174を読み出して実行することによって実現され、所定サイクルで繰り返し実行される。
【0175】
図23は、本実施の形態の処理の流れを示すフローチャートである。
【0176】
先ずアプリケーション演算部110は、仮想空間中に背景、NPCなどを配置してアプリケーション空間を形成し、形成したアプリケーション空間に、キャラクタ初期設定データ176を参照して初期状態のキャラクタオブジェクトWCを初期位置に配置する(ステップS10)。
【0177】
このとき、キャラクタオブジェクトWCの配置にともなって、キャラクタ制御データ300の関節制御データ310に初期状態の関節モデルが登録され、登録された関節モデルに従って外皮を形成してキャラクタオブジェクトWCの表示オブジェクトをアプリケーション空間に配置する。
【0178】
次に、処理部100は、予め動作が設定されているオブジェクト(例えば、NPCなどの障害物オブジェクト)の動作を制御する(ステップS20)。例えば、キャラクタオブジェクトWCの移動を邪魔する障害物オブジェクトなどを設定し、所定のルールに基づいて移動制御する。
【0179】
次に、処理部100は、プレーヤの操作入力に従ってキャラクタオブジェクトWCの各関節に作用させる操作力ベクトルを演算する(ステップS30)。
【0180】
次に、処理部100は、ヒット判定制御データに基づきキャラクタオブジェクトWCと他のオブジェクトのヒットチェック処理を行い、ヒットチェック結果に従って、キャラクタオブジェクトの関節に作用させる外力ベクトルを演算する(ステップS40)。
【0181】
次に、処理部100は、キャラクタオブジェクトを誘導する目標配置状態を演算し、目標配置状態情報に設定する(ステップS50)。例えば時計制御を行う場合には、仮想空間に設定された時計の文字盤の長針や短針を示す配置状態を演算し、目標配置状態情報に設定する。
【0182】
次に、処理部100は、キャラクタオブジェクトWCの現在位置と目標配置状態情報に基づき、キャラクタオブジェクトの関節に作用させる誘導ベクトルを演算する(ステップS60)。
【0183】
次に、処理部100は、キャラクタオブジェクトWCの関節に作用する力の合力である作用力ベクトルを求め、作用力ベクトルに基づきキャラクタオブジェクトの関節の移動位置を演算する(ステップS70)。
【0184】
次に、処理部100は、キャラクタオブジェクトWCの関節の移動位置に基づき、関節の追加、削減処理を行い、移動後の関節位置を決定する(ステップS80)。
【0185】
次に、処理部100は、移動後の関節位置に基づき関節制御データの更新やヒット判定制御データの更新を行う(ステップS90)。
【0186】
次に、処理部100は更新された関節制御データに基づいてキャラクタオブジェクトの外皮の形成処理を実行して、キャラクタオブジェクトWCの表示オブジェクトをアプリケーション空間に配置する(ステップS100)。
【0187】
次いで、処理部100はアプリケーションの終了条件を満たしているか否かを判定する(ステップS110)。本実施形態では、アプリケーション終了入力が行われたら終了条件を満たしていると判定する。
【0188】
アプリケーション終了条件を満たしていなければ(ステップS110のNO)、ステップS20に戻る。一方、終了条件を満たしていれば(ステップS110のYES)ゲーム終了となる。
【0189】
以上、本発明を適用した第1実施形態について説明したが、本発明の適用可能な構成がこれらに限定されるものではなく、適宜構成要素の追加・削除・変更を行うことができる。
【0190】
例えば、本実施形態では、キャラクタオブジェクトWCの全身を関節構造のモデルとしたが、下半身や上半身といった一部のみを関節構造のモデルとしても良い。例えば、プレーヤキャラクタWCをカタツムリとし、殻の部分は形状・大きさが変化せず、体の部分をプレーヤキャラクタWCのような関節構造を有した伸縮自在なモデルとして設定する。そして、体の部分の制御については上述の実施形態を適用するならば、殻から出た体部分が自在に伸び縮みするカタツムリらしい様子を表現する事ができる。
【0191】
また上記実施の形態では、タッチパネルディスプレイを用いてタッチ操作により操作入力を行う場合を例にとり説明したが、これに限られない。例えばボタンやレバーやキーボード等の操作部から操作入力を行ってもよい。
【0192】
また上記実施の形態ではアプリケーション空間(仮想空間)が2次元平面である場合を例にとり説明したが、これに限られない。例えば3次元空間でもよい。
【0193】
また上記実施の形態ではキャラクタオブジェクトWCの移動可能範囲がゲーム空間全体である場合を例にとり説明したが、これに限られない。例えば、キャラクタオブジェクトWCの移動可能範囲が時計盤の内側に限られるようにしてもよい。
【符号の説明】
【0194】
202 ノード、204 連結子、100 処理部、110 アプリケーション演算部、112 キャラクタオブジェクト制御部、114 目標配置状態設定部、120 画像生成部、122 画像表示部、130 音生成部、132 音出力部、140 通信制御部、142 通信部、160 操作入力部、170 記憶部、172 システムプログラム、174 アプリケーションプログラム、176 キャラクタ初期設定データ、300 キャラクタ制御データ、310 関節制御データ、330 作用力データ、BM 骨格モデル、WC キャラクタオブジェクト、WCh 頭、WCb 胴、WCt 尾、UV1〜UV6 誘導ベクトル、K1〜K6 関節

【特許請求の範囲】
【請求項1】
コンピュータに、キャラクタオブジェクトが移動動作する仮想空間の画像を生成させるためのプログラムであって、
操作入力情報又は所与のイベントに基づきキャラクタオブジェクトに仮想力を作用させて前記キャラクタオブジェクトを動かすキャラクタオブジェクト制御手段と、
前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する目標配置状態情報設定手段と、してコンピュータを機能させ、
前記キャラクタオブジェクト制御手段は、
設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、生成した誘導ベクトルに基づき前記キャラクタオブジェクトに前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行い、
前記目標配置状態設定手段は、
時間の経過によって、前記目標配置状態を変化させることを特徴とするプログラム。
【請求項2】
請求項1において、
関節を直列に連結した関節構造を有する紐状部分を含むキャラクタオブジェクトを設定する設定手段と、をさらに含み、
前記キャラクタオブジェクト制御手段は、
操作入力情報又は所与のイベントに基づきキャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させるように構成され、前記誘導ベクトルに基づき前記キャラクタオブジェクトの前記関節に前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行うことを特徴とするプログラム。
【請求項3】
コンピュータに、キャラクタオブジェクトが移動動作する仮想空間の画像を生成させるためのプログラムであって、
関節を直列に連結した関節構造を有する紐状部分を含むキャラクタオブジェクトを設定する設定手段と、
操作入力情報又は所与のイベントに基づきキャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させることで前記キャラクタオブジェクトを動かすキャラクタオブジェクト制御手段と、
前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する目標配置状態情報設定手段と、してコンピュータを機能させ、
前記キャラクタオブジェクト制御手段は、
設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、生成した誘導ベクトルに基づき前記キャラクタオブジェクトの前記関節に前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行うことを特徴とするプログラム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記目標配置状態設定手段は、
時計の文字盤の短針、長針が示すべき時刻に対応して前記目標配置状態を設定することを特徴とするプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記仮想空間に前記キャラクタオブジェクトとは異なる他のオブジェクトを配置する処理又は移動させる処理を行う障害物設定手段と、
前記キャラクタオブジェクトと前記他のオブジェクトとの接触検出を行う接触検出手段と、してさらにコンピュータを機能させ、
前記キャラクタオブジェクト制御手段は、
前記キャラクタオブジェクトと前記他のオブジェクトとの接触検出結果に基づき、前記キャラクタオブジェクトに仮想力を作用させることを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記キャラクタオブジェクト制御手段は、
前記操作入力情報として、前記仮想空間の画像が表示された表示部における接触位置の移動履歴情報を含む操作入力情報を取得し、前記接触位置の移動履歴情報に基づき、作用させる仮想力の方向を決定することを特徴とするプログラム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記キャラクタオブジェクト制御手段は、
前記目標配置状態に対応して設定された第1の位置と前記キャラクタオブジェクトの現在位置に対応して設定された第2の位置との位置関係に基づき、前記誘導ベクトルの大きさ又は方向の少なくとも1つを決定することを特徴とするプログラム。
【請求項8】
請求項2乃至7のいずれかにおいて、
前記キャラクタオブジェクト制御手段は、
前記キャラクタオブジェクトの関節に作用する仮想力に基づき、前記キャラクタオブジェクトの紐状部分を伸縮させることを特徴とするプログラム。
【請求項9】
請求項2乃至8のいずれかにおいて、
前記キャラクタオブジェクト制御手段は、
前記仮想力による関節の移動位置を演算して、演算結果に基づき隣り合う関節間の連結子の長さを可変に制御し、連結子の長さが所与の閾値を超えると、当該連結子で連結された関節間に新たな関節を追加することを特徴とするプログラム。
【請求項10】
請求項2乃至9のいずれかにおいて、
前記キャラクタオブジェクト制御手段は、
前記仮想力による関節の移動位置を演算して、演算結果に基づき隣り合う関節間の連結子の長さを可変に制御し、連結子の長さが所与の閾値を下回ると、当該連結子で連結された関節のいずれかを削除して、削除された関節に接続されていた2つの関節を新たに連結させることを特徴とするプログラム。
【請求項11】
請求項1乃至10のいずれかにおいて、
前記キャラクタオブジェクト制御手段は、
所定のモードになると、第1のキャラクタオブジェクトと第2のキャラクタオブジェクトを登場させ、
前記1のキャラクタオブジェクトを時計の長針に対応付け、第2のキャラクタオブジェクトを時計の短針に対応付け、前記第1のキャラクタオブジェクトの目標配置状態を時計の文字盤の短針が示すべき時刻に対応して設定し、前記第2のキャラクタオブジェクトの目標配置状態を時計の文字盤の長針が示すべき時刻に対応して設定することを特徴とするプログラム。
【請求項12】
請求項1乃至11のいずれかにおいて、
前記キャラクタオブジェクト制御手段は、
前記仮想空間の画像が表示される表示部を含む装置に設けられた加速度センサからの加速度情報を取得し、取得した前記加速度情報に基づき、前記キャラクタオブジェクトに仮想力を作用させることを特徴とするプログラム。
【請求項13】
請求項1乃至12のいずれかに記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体。
【請求項14】
キャラクタオブジェクトが移動動作する仮想空間の画像を生成する画像生成装置であって、
操作入力情報又は所与のイベントに基づきキャラクタオブジェクトに仮想力を作用させて前記キャラクタオブジェクトを動かすキャラクタオブジェクト制御手段と、
前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する目標配置状態情報設定手段と、を含み、
前記キャラクタオブジェクト制御手段は、
設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、生成した誘導ベクトルに基づき前記キャラクタオブジェクトに前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行い、
前記目標配置状態設定手段は、
時間の経過によって、前記目標配置状態を変化させることを特徴とする画像生成装置。
【請求項15】
キャラクタオブジェクトが移動動作する仮想空間の画像を生成する画像生成装置であって、
関節を直列に連結した関節構造を有する紐状部分を含むキャラクタオブジェクトを設定する設定手段と、
操作入力情報又は所与のイベントに基づきキャラクタオブジェクトの前記関節に仮想力を作用させて前記関節を移動させることで前記キャラクタオブジェクトを動かすキャラクタオブジェクト制御手段と、
前記キャラクタオブジェクトの目標配置状態に関する目標配置状態情報を設定する目標配置状態情報設定手段と、を含み、
前記キャラクタオブジェクト制御手段は、
設定された目標配置状態情報に基づき前記キャラクタオブジェクトを前記目標配置状態に誘導するための誘導ベクトルを生成し、生成した誘導ベクトルに基づき前記キャラクタオブジェクトの前記関節に前記仮想力を作用させて、前記キャラクタオブジェクトを前記目標配置状態に誘導する処理を行うことを特徴とする画像生成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2011−143121(P2011−143121A)
【公開日】平成23年7月28日(2011.7.28)
【国際特許分類】
【出願番号】特願2010−7513(P2010−7513)
【出願日】平成22年1月15日(2010.1.15)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】