説明

キャラクター表示装置、キャラクター表示方法、ならびに、プログラム

【課題】複数のキャラクターの姿勢の時間変化を共通にしてデータ処理の低減を図る一方で、画面表示の多様性を増してユーザの興味を惹くキャラクター表示装置等を提供する。
【解決手段】キャラクター表示装置301の配置選択部302は、配置選択部301に記憶された各キャラクターの基準位置・向きを定める配置情報をユーザの指示入力等に基づいて選択し、姿勢取得部303は、所定時刻から現在までの経過時間に対応付けられるキャラクターの姿勢を表す座標群を姿勢記憶部304から取得し、移動回転部306は、当該座標群を、各キャラクターの基準位置・向きに合わせて移動・回転し、生成表示部307は、移動・回転された座標群に基づいて当該姿勢をとった複数のキャラクターが仮想空間内に配置される画像を生成して表示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のキャラクターの姿勢の時間変化を共通にしてデータ処理の低減を図る一方で、画面表示の多様性を増してユーザの興味を惹くのに好適なキャラクター表示装置、キャラクター表示方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、仮想空間に配置されるキャラクターが位置や姿勢を変化させる様子を画面に表示するゲーム装置が提案されている。このようなキャラクターの表示技術については、たとえば以下の文献に開示されている。
【特許文献1】特開2002−092644号公報
【0003】
[特許文献1]では、骨に相当するスケルトンの周囲に皮膚に相当するポリゴンを配置したエンベロープモデルにおいて、キャラクターの画像を高速に生成する技術が開示されている。
【0004】
そして、仮想空間におけるスケルトン全体の位置や向きを変化させれば、キャラクターが移動し、スケルトン同士の相対的な位置や向きを変化させれば、キャラクターが姿勢を変化させることとなる。また、スケルトンの座標を鏡像変換すれば、あるキャラクターの姿勢を他のキャラクターの姿勢と対称にすることができる。
【0005】
キャラクターのスケルトンの位置や姿勢を所定時刻(典型的には、楽曲の再生開始時刻)からの時間の経過とともに、あらかじめ定めた座標データに基づいて変化させれば、このキャラクターが楽曲に合わせて踊る様子を動画像表示することができる。
【0006】
また、複数のキャラクターのスケルトンを平行移動によって互いに重なるような位置・姿勢関係におくこととすれば、同じ振りでキャラクターが群舞をするような動画像が表示できる。
【0007】
また、群舞において左側のキャラクターと右側のキャラクターが対称な振りで踊るような場合にも、スケルトンの座標の鏡像変換を用いることができる。
【0008】
上記のようなキャラクターの群舞を表現する際には、座標の平行変換や鏡像変換が採用されている。
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、複数のキャラクターが同じ振り(もしくは、対称な振り)をするだけでは、ユーザの興味を惹く程度が低い場合がありうる。一方で、キャラクターごとに異なる振付を用意すると、データ量が莫大になるほか、データの計算処理の負担が大きくなるという問題がある。
【0010】
したがって、複数のキャラクターの姿勢変化のデータ処理は共通させる一方で、ユーザの興味をできるだけ惹き、多様な画面表示を可能とする技術が強く求められている。
【0011】
本発明は、上記のような課題を解決するもので、複数のキャラクターの姿勢の時間変化を共通にしてデータ処理の低減を図る一方で、画面表示の多様性を増してユーザの興味を惹くのに好適なキャラクター表示装置、キャラクター表示方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0013】
本発明の第1の観点に係るキャラクター表示装置は、配置記憶部、配置選択部、姿勢記憶部、姿勢取得部、移動回転部、生成表示部を備え、以下のように構成する。
【0014】
すなわち、配置記憶部は、複数のキャラクターのそれぞれの仮想空間内における基準位置・基準向きを定義する配置情報を、複数記憶する。
【0015】
当該配置情報は、仮想空間内で、各キャラクターがどんな場所でどちらを向くか、を決めるものである。
【0016】
たとえば、ラインダンスのような状況を表現する配置情報では、キャラクターの基準向きは互いに平行で、キャラクターの基準位置は等間隔である。
【0017】
盆踊りのような状況を表現する配置情報では、キャラクターの基準位置は円周に等間隔に配置され、キャラクターの基準向きは同じ方向に回転するように円周に接する向きということになる。
【0018】
アイドルグループの中の一人が歌を歌い、他のメンバーがそれを見守るような状況を表現する配置状況では、あるキャラクターの基準位置が円周の中心に、他のキャラクターの基準位置は円周上を等間隔に、当該基準向きは中心のキャラクターを向くように設定されることになる。
【0019】
ここでは3種類の配置情報を示しているが、このような配置情報は種々用意することができ、見栄えの良いと想定されるキャラクター配置をあらかじめ複数用意しておく。
【0020】
一方、配置選択部は、記憶された複数の配置情報から、いずれか1つの配置情報を選択する。
【0021】
配置選択部が配置情報を選択する契機としては、後述するように、同時に再生されている楽曲の所定の小節の区切りが到来したときや、ユーザが所定のキーやボタンを押圧操作したときなどが考えられる。また、いずれの配置情報が選択されるかは、ランダムに決めても良いし、所定の順序で順に選択されることとしても良いし、ユーザの指示入力にしたがうこととしても良い。
【0022】
さらに、姿勢記憶部は、基準位置・基準向きに対するキャラクターの姿勢を表す座標群を、時間の経過に対応付けて記憶する。
【0023】
この座標群は、キャラクターの位置や姿勢を表現するためのスケルトン(「ボーン」と呼ばれることもある。)が、キャラクターの基準位置・基準向きを表すローカル座標系において、どれだけ変位しているか、の、時間経過を表現したものである。
【0024】
各スケルトンには、皮膚に相当するスキンを構成する制御点が割り当てられており、これをポリゴンの頂点やNURBS(Non-Uniform Rational B-Spline)曲面の制御点として用いて皮膚形状を定め、当該形状に所定のテクスチャを貼り込むことで、キャラクターの全体画像が構成される。
【0025】
さらに、姿勢取得部は、記憶される座標群から、所定の時刻から現在までに経過した時間に対応付けられて記憶される座標群を取得する。
【0026】
姿勢記憶部には、キャラクターの姿勢の時系列が記憶されている。たとえば、楽曲に合わせてキャラクターを踊らせる場合には、当該楽曲の再生を開始した時刻を「所定の時刻」とし、当該楽曲が再生された経過時間に応じて、あらかじめキャラクターの姿勢を記憶しておく。そして、現在の時刻に相当するキャラクターの姿勢を、姿勢取得部が取得するのである。
【0027】
さらに、移動回転部は、選択された配置情報に定義される当該複数のキャラクターのそれぞれについて、当該配置情報において当該キャラクターについて定義された基準位置・基準向きにより取得された座標群を直交変換し、得られる座標群を、当該仮想空間内における当該キャラクターの位置・姿勢を表す座標群とする。
【0028】
配置情報には、各キャラクターの基準位置・基準向きが定義されている。そこで、これを一種のローカル座標系として考え、キャラクターの姿勢を表す座標群を、当該ローカル座標系における座標値の集合体として取り扱い、仮想空間に固定されたグローバル座標系における座標値を計算するのである。
【0029】
ここで、直交変換とは、平行移動、回転移動、反転(鏡像)移動等、変換によって点同士の距離が変化しないような座標変換を意味する。
【0030】
そして、生成表示部は、計算された当該複数のキャラクターのそれぞれの位置・姿勢を表す座標群により、当該キャラクターが当該仮想空間内に配置される画像を生成して、当該生成された画像を表示する。
【0031】
上記のように、それぞれのキャラクターの位置・姿勢を表す座標群が得られれば、これを元にして、各キャラクターの様子を表す画像を生成することができる。このようにして、仮想空間の様子を表す画像を生成して、画面に表示する。
【0032】
姿勢取得部、移動回転部、生成表示部における処理を、適当な周期、たとえば、垂直同期割込周期で繰り返すことによって、複数のキャラクターが時間の経過とともに姿勢を変化させていく様子の動画像が表示される。
【0033】
このように、本発明によれば、各キャラクターは同じ姿勢をしているため、モーション情報のデータ量を低減することができ、ハードウェア等による計算支援が可能な直交変換によって各キャラクターの姿勢が得られるため、計算負荷は少なく、しかも、様々な配置情報によって位置や向きに変化を持たせることができ、配置情報は、適切なタイミングで切り替えられるため、ユーザの興味を惹くことができるようになる。
【0034】
また、本発明のキャラクター表示装置において、生成表示部は、配置情報が選択されて以降、所定の移行時間が経過するまでは、生成される画像を表示するのにかえて、あらかじめ用意された静止画像もしくは動画像を表示するように構成することができる。
【0035】
上記発明では、配置情報が選択されると直ちに、キャラクターの配置を新たにした画像が画面に表示されることとなっていた。ところが、この場合は、各キャラクターの位置や向きが一瞬で更新されるため、各キャラクターが一瞬で仮想空間内を移動したかのように見えてしまうことがあり、用途によっては不自然に感じられることもある。
【0036】
本発明では、配置情報の切り替え時に、一瞬(極めて短い時間)だけ、あらかじめ用意した静止画像(たとえば、黒色一色で塗り潰された画像)や動画像(たとえば、稲妻が落ちる様子や爆発が起きる様子などを描いた動画像)を表示する。
【0037】
したがって、本発明では、キャラクターの配置の切り替えの際に短時間だけ移行用の静止画像や動画像を表示するため、キャラクターの位置や向きの変化に対するユーザの違和感をできるだけ低減することができるようになる。
【0038】
また、本発明のキャラクター表示装置において、記憶される複数の配置情報のそれぞれには、仮想空間内に配置されるオブジェクトおよび光源を定義する背景情報がさらに対応付けられ、生成表示部は、当該仮想空間内にて選択された配置情報に対応付けられる背景情報に定義されるオブジェクトが当該複数のキャラクターの背景に配置され、これらが当該背景情報に定義される光源により照らされた画像を生成するように構成することができる。
【0039】
配置情報ごとに、キャラクターの背景となるオブジェクト群や光源の位置が定められている。したがって、配置情報が切り替えられると、背景やライティングも切り替わることとなる。
【0040】
このように、キャラクターの配置や向きのみならず、背景やライティングも、すべてを変化させることとすれば、キャラクターの位置や向きが一瞬のうちに変化したとしても、その変化は目立たない。
【0041】
したがって、本発明によれば、キャラクターの位置や向きの変化に対するユーザの違和感をできるだけ低減することができるようになる。
【0042】
また、本発明のキャラクター表示装置であって、記憶される複数の配置情報のそれぞれには、互いに重複しない時間区間がさらに対応付けられ、配置選択部は、記憶される複数の配置情報のうち、対応付けられる時間区間に、当該所定の時刻から現在までに経過した時間が含まれる配置情報を選択するように構成することができる。
【0043】
すなわち、所定時刻からの経過時間が、各配置情報の時間区間の開始時間に至ると、当該配置情報を選択するようにするものであり、上記のように、楽曲に合わせてキャラクターの群舞をさせる場合に、当該楽曲の数小節ごとの時間区間のそれぞれに、いずれかの配置情報を割り当てておくのである。
【0044】
すると、楽曲の数小節の区切りで、配置情報が切り替えられるため、キャラクターが群舞するだけでなく、キャラクターの位置や向きも楽曲に合わせて変化させられることになる。
【0045】
本発明は、上記発明の好適実施形態であり、あらかじめ定めた時間区間に基づいて配置情報を選択するため、たとえば区切りの良いタイミングでキャラクターの配置や向きを自動的に変化させることができ、ユーザの興味を惹くことができるようになる。
【0046】
また、本発明のキャラクター表示装置において、記憶される複数の配置情報のそれぞれには、仮想空間内の視点位置・視線方向がさらに対応付けられ、生成表示部は、選択された配置情報に対応付けられる視点位置・視線方向により投影を行って、当該複数のキャラクターが当該仮想空間に配置される画像を生成するように構成することができる。
【0047】
ここで、視点位置・視線方向とは、仮想空間内を3次元グラフィックス表示するためのカメラの位置と方向を意味するもので、カメラから所定の距離(これも適宜設定することが可能である。)だけ離れたところに視線方向を法線とする投影面を設定する。そして、オブジェクトとカメラとを結ぶ線分が投影面と交差する位置を投影の先とする透視投影や、オブジェクトから視線方向に平行に伸びる直線が投影面と交差する位置を投影の先とする平行投影等、種々の投影法により、画像を生成するのである。
【0048】
本発明によれば、配置情報が切り替えられると、視点位置や視線方法も切り替えられるため、キャラクターの位置や向きが一瞬で変化したとしても、ユーザが受ける違和感を低減させることができるようになる。
【0049】
また、本発明のキャラクター表示装置において、配置選択部は、記憶される複数の配置情報から、ユーザからの指示入力により、配置情報を選択するように構成することができる。
【0050】
たとえば、配置情報は循環的に順序が付けられており、ユーザが使用するコントローラの第1のボタンを押圧操作すると、現在の配置情報の「次」の配置情報が選択され、第2のボタンを押圧操作すると、現在の配置情報の「前」の配置情報が選択される、等とするものである。
【0051】
本発明によれば、ユーザの意思に基づいてキャラクターの位置や向き、配置が変化させられるため、ユーザが自分の好みに合わせた配置で、キャラクターが姿勢を変化させる様子の動画像を見ることができるようになる。
【0052】
また、本発明のキャラクター表示装置において、記憶される複数の配置情報のそれぞれには、仮想空間内の視点位置・視線方向がさらに対応付けられ、当該ユーザからの指示入力は、記憶される複数の配置情報のそれぞれに対応付けられる視点位置・視線方向のいずれかを指定する指示入力であり、配置選択部は、記憶される複数の配置情報から、当該ユーザからの指示入力に指定される視点位置・視線方向に対応付けられる配置情報を選択し、生成表示部は、選択された配置情報に対応付けられる視点位置・視線方向により投影を行って、当該複数のキャラクターが当該仮想空間に配置される画像を生成するように構成することができる。
【0053】
上記の例に合わせて説明すると、カメラの位置・向きが複数用意されており、これらについて循環的に順序が付けられており、ユーザが使用するコントローラの第1のボタンを押圧操作すると、現在のカメラの「次」のカメラが選択され、第2のボタンを押圧操作すると、現在のカメラの「前」のカメラが選択される、等とする。
【0054】
そして、各カメラに対して配置情報が対応付けられており、カメラが切り替えられると、配置情報も切り替えられることとするのである。
【0055】
本発明によれば、ユーザの意思に基づいてカメラの位置や向きのほか、キャラクターの位置や向き、配置が変化させられるため、ユーザが自分の好みに合わせて、キャラクターが姿勢を変化させる様子の動画像を見ることができるようになる。
【0056】
また、本発明のキャラクター表示装置は、注目同定部、配置交換部をさらに備え、以下のように構成することができる。
【0057】
すなわち、記憶される複数の配置情報のそれぞれには、当該配置情報における主キャラクターがさらに対応付けられる。
【0058】
たとえば群舞においては、最も目立たせたいキャラクターが、中央に配置されるのが典型的である。そこで、このような目立たせたいキャラクターを主キャラクターとして、配置情報に位置・向きが定義されるキャラクターのいずれが主キャラクターであるか、を定義しておくのである。
【0059】
一方、注目同定部は、当該複数のキャラクターから、生成された画像において、所定の注目位置に最も近く投影された注目キャラクターを同定する。
【0060】
所定の注目位置としては、画面中央を採用するのが典型的である。この場合、注目キャラクターは、視点位置から視線方向に伸びる線分との距離が最も短いキャラクターということになる。
【0061】
さらに、配置交換部は、当該ユーザからの指示入力により、記憶された複数の配置情報から、いずれか1つの配置情報が選択されると、その選択の直前に同定された注目キャラクターの基準位置・基準向きと、当該選択された配置情報における主キャラクターの基準位置・基準向きと、を、当該選択された配置情報において交換する。
【0062】
注目キャラクターは、ユーザが注目していると想定されるキャラクターであるから、用途によっては、キャラクターの配置が変化させられたときにも、注目されるべき位置に配置することが望ましいことがある。
【0063】
そこで、直前の注目キャラクターを、新たな配置情報における主キャラクターの位置・向きに配置するため、注目キャラクターと主キャラクターの位置・向きを交換するのである。
【0064】
本発明によれば、配置情報が切り替えられたとしても、ユーザが注目していると想定されるキャラクターはそのまま注目されると想定される位置に配置されるため、ユーザが受ける違和感を低減することができるようになる。
【0065】
また、本発明のキャラクター表示装置において、配置交換部は、交換された配置情報において、さらに、当該注目キャラクター以外のキャラクターの基準位置・基準向きを、互いにランダムに交換するように構成することができる。
【0066】
本発明は、上記発明の好適実施形態に係るものであり、ユーザが注目していないと想定されるキャラクターの位置を互いにランダムに交換することで、画面表示の多様性を増し、ユーザの興味を惹くことができるようになる。
【0067】
本発明のその他の観点に係るキャラクター表示方法は、複数のキャラクターのそれぞれの仮想空間内における基準位置・基準向きを定義する配置情報を、複数記憶する配置記憶部、基準位置・基準向きに対する相対的なキャラクターの位置・姿勢を表す座標群を、時間の経過に対応付けて記憶する姿勢記憶部、配置選択部、姿勢取得部、移動回転部、生成表示部を有するキャラクター表示装置にて実行され、配置選択工程、姿勢取得工程、移動回転工程、生成表示工程を備え、以下のように構成する。
【0068】
すなわち、配置選択工程では、配置選択部が、記憶された複数の配置情報から、いずれか1つの配置情報を選択する。
【0069】
一方、姿勢取得工程では、姿勢取得部が、記憶される座標群から、所定の時刻から現在までに経過した時間に対応付けられて記憶される座標群を取得する。
【0070】
さらに、移動回転工程では、移動回転部が、選択された配置情報に定義される当該複数のキャラクターのそれぞれについて、当該配置情報において当該キャラクターについて定義された基準位置・基準向きにより取得された座標群を直交変換し、得られる座標群を当該仮想空間内の当該キャラクターの位置・姿勢を表す座標群とする。
【0071】
そして、生成表示工程では、生成表示部が、計算された当該複数のキャラクターのそれぞれの位置・姿勢を表す座標群により、当該キャラクターが当該仮想空間内に配置される画像を生成して、当該生成された画像を表示する。
【0072】
本発明のその他の観点に係るプログラムは、コンピュータを上記のキャラクター表示装置の各部として機能させるように構成する。
【0073】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0074】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0075】
本発明によれば、複数のキャラクターの姿勢の時間変化を共通にしてデータ処理の低減を図る一方で、画面表示の多様性を増してユーザの興味を惹くのに好適なキャラクター表示装置、キャラクター表示方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【0076】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0077】
図1は、プログラムを実行することにより、本発明のキャラクター表示装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0078】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM 102と、RAM(Random Access Memory)103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、マイク111と、を備える。
【0079】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態のキャラクター表示装置が実現される。
【0080】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0081】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0082】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0083】
インターフェイス104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【0084】
図2は、コントローラ105の外観を示す説明図である。以下、本図を参照して説明する。
【0085】
コントローラ105の左方には、上下左右を示す操作入力を行うのに利用される↑ボタン201、↓ボタン202、←ボタン203、→ボタン204が配置されている。
【0086】
右方には、決定操作入力を行うのに利用される○ボタン205、取消操作入力を行うのに利用される×ボタン206、メニュー表示等の指示入力を行うのに利用される△ボタン207、その他の指示入力を行うのに利用される□ボタン208が配置されている。
【0087】
中央には、SELECTボタン209、STARTボタン210のほか、アナログ入力の開始・停止を指示するためのANALOGボタン211、および、アナログ入力が有効か無効かを表示するためのインジケータ212が配置されている。
【0088】
また中央下部には、上下左右に限らない方向に大きさを伴う指示入力を行うためのジョイスティック213、214が配置されている。
【0089】
さらに、上方には、各種の指示入力に用いることができるL1ボタン215、L2ボタン216、R1ボタン217、R2ボタン218が配置されている。
【0090】
コントローラ105の各ボタン201〜208、215〜218には、圧力センサが配備され、アナログ入力が有効となっている場合には、いずれのボタンが押圧操作されているかを検知することができるほか、ユーザの押圧操作の圧力の大きさを0〜255の256段階で得ることができる。
【0091】
コントローラ105のジョイスティック213、214は、ひずみゲージが配備され、これらがどの方向にどれだけ曲げられているか、を検知することができる。
【0092】
図1に戻り、インターフェイス104を介して着脱自在に接続された外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0093】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0094】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0095】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0096】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0097】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0098】
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0099】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカや、ヘッドホン(図示せず)、イヤフォン(図示せず)から出力させる。
【0100】
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0101】
さらに、情報処理装置100には、インターフェイス104を介してマイク111を接続することができる。この場合、マイク111からのアナログ信号に対しては、適当なサンプリング周波数でA/D変換を行い、PCM形式のディジタル信号として、音声処理部110でのミキシング等の処理ができるようにする。
【0102】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0103】
以上で説明した情報処理装置100は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【0104】
たとえば、一般的なコンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、情報処理装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ105ではなく、キーボードやマウスなどを入力装置として利用する。
【0105】
(キャラクター表示装置)
図3は、上記情報処理装置100にプログラムを実行させることにより実現されるキャラクター表示装置の一実施形態の概要構成を示す説明図である。以下、本図を参照して説明する。
【0106】
キャラクター表示装置301は、配置記憶部302、配置選択部303、姿勢記憶部304、姿勢取得部305、移動回転部306、生成表示部307を備える。
【0107】
また、省略可能な要素として、注目同定部308、配置交換部309をさらに備えるように構成することもできる。これらについては、後述する実施例で説明する。
【0108】
まず、配置記憶部302は、複数のキャラクターのそれぞれの仮想空間内における基準位置・基準向きを定義する配置情報を、複数記憶する。
【0109】
当該配置情報は、仮想空間内で、各キャラクターがどんな場所でどちらを向くか、を決めるものである。
【0110】
図4、図5、図6、図7は、いずれも、ある配置情報に基づいて仮想空間内にキャラクターが配置された様子を表す画像を示す説明図である。図8、図9、図10、図11のそれぞれは、図4、図5、図6、図7のそれぞれに対応付けられる配置情報の概要を示す説明図である。以下、これら図を参照して説明する。
【0111】
これらの例では、帽子キャラクター401、白服白髪キャラクター402、白服黒髪キャラクター403、黒服白髪キャラクター404、黒服黒髪キャラクター405の5人のキャラクターが、仮想空間内の床411の上に表示されている。
【0112】
図4では、5人のキャラクターがV字状に配置されており、帽子キャラクター401は先頭に、その右側と左側には、それぞれ、黒服黒髪キャラクター405と黒服白髪キャラクター404が配置され、右端と左端には、白服黒髪キャラクター403と白服白髪キャラクター402が配置されている。5人のキャラクターはいずれも観者の方向を向いており、桝目状に区切られた平面床411の上に立っている。
【0113】
図8には、図4に対応する配置情報の概要が示されている。本図は、図8の様子を5人のキャラクターの頭上から見た様子を図示するものである。
【0114】
帽子キャラクター401、白服白髪キャラクター402、白服黒髪キャラクター403、黒服白髪キャラクター404、黒服黒髪キャラクター405のそれぞれに対応するローカル座標系501、ローカル座標系502、ローカル座標系503、ローカル座標系504、ローカル座標系505が、床411に対応するグローバル座標系511の中に配置されている。
【0115】
ローカル座標系501〜505の原点は、キャラクター401〜405の位置に対応している。また、ローカル座標系501〜505の向きは、キャラクター401〜405の向きに対応している。すなわち、各ローカル座標系は、対応するキャラクターの基準位置および基準向きを定めることになる。
【0116】
これらの図に示す例では、ローカル座標系501〜505は、キャラクター401〜405が基本姿勢にあるときの足から頭に向かう向きをx軸、左手から右手に向かう向きをy軸、背中から腹に向かう向きをz軸としている。
【0117】
グローバル座標系511は、床411に沿う方向にy軸とz軸を設け、床411から天井に向かう向きにx軸を設けている。
【0118】
なお、本例では、キャラクター401〜405はいずれも、床411に対して垂直に同じ方向に立っており、床411に向かう向きで俯瞰した図であるから、ローカル座標系501〜505およびグローバル座標系511において、x軸は図示を省略している(以下同様)。また、y軸の矢印は鏃が片方の形(チェックマーク「レ」の縦棒を伸ばしたような形)、z軸の矢印は鏃が両方の形(V字の中央に縦棒を引いた「↓」のような形)で、それぞれ表記している。
【0119】
本図に示すように、ローカル座標系501、502、503、504、505は、互いに平行(x座標軸同士が平行、y座標軸同士が平行、z軸座標同士が平行)であり、その原点の位置がV字状に配置されている。
【0120】
一方、グローバル座標系511は、床411に固定(床411に連動)しており、ローカル座標系501、502、503、504、505との相対的な位置関係は、本図に示す例に限定されるものではなく、任意である(以下同様)。
【0121】
ローカル座標系501、502、503、504、505は、キャラクター401、402、403、404、405が基本姿勢にあるときの位置と向きを定めるものである。したがって、キャラクター401、402、403、404、405の姿勢を変化させるときには、ローカル座標系501、502、503、504、505において、それぞれの制御点を同じ変位だけ移動させれば良い。
【0122】
また、図8には、仮想空間を3次元グラフィックス表示する際の視点位置531がカメラのような形状の図形で、視線方向532が細い矢印で、それぞれ表示されている(以下同様)。視点位置531から視線方向532に所定距離だけ離れた視線方向532を法線とする投影面に、視点位置531を焦点とする透視投影を行うことによって、図4のような画像が生成されるのである。
【0123】
図5、図6では、白服白髪キャラクター402、白服黒髪キャラクター403、黒服白髪キャラクター404、黒服黒髪キャラクター405の4人が正方形の頂点に、帽子キャラクター401が正方形の中央に、それぞれ配置されて表示されている。
【0124】
図5に対応する図9を見ると、正方形551(本図では一点鎖線により示している。)の中心552付近に、ローカル座標系501が配置されている。また、ローカル座標系502、503、504、505が正方形551の頂点に配置され、それぞれのz軸は、正方形551の中心552から離れる方向を向いており、全体として、拡散するような印象を与える配置になっている。
【0125】
図6に対応する図10では、ローカル座標系501〜505の配置は図9の場合と類似しているが、ローカル座標系501〜505の向きが互いに平行となっており、全体として、整然とした印象を与える配置となっている。
【0126】
図7では、帽子キャラクター401、黒服黒髪キャラクター405、黒服白髪キャラクター404の3人のみが画面に表示されている。図11を見ると、ローカル座標系501〜505は、逆V字型に配置されているが、ローカル座標系502、503が視点位置531の背後に存在するような配置となっているため、白服白髪キャラクター402と白服黒髪キャラクター403は画面に表示されないのである。
【0127】
この他の座標系の配置は、舞台における振り付けのバリエーションに応じて種々考えられるが、たとえば、ラインダンスのような状況を表現する配置情報では、各座標系を互いに平行に、各座標系の原点を一直線上に等間隔に配置すれば良い。
【0128】
また、盆踊りのような状況を表現する配置情報では、座標系の原点を円周に等間隔に配置し、座標系の向き(たとえばz軸)を円周に接するように配置することになる。
【0129】
このほか、アイドルグループの中の一人が歌を歌い、他のメンバーがそれを見守るような状況を表現する配置状況は、図9とは逆に、周囲に配置された座標系のz軸が中央を向かうように設定する。
【0130】
本実施形態では、図8〜図11に示すように、複数の配置情報を用意しておくのであるが、各配置情報には、具体的には、以下のような情報を格納しておく。
(1)視点位置531の座標値、視線方向532の方向ベクトル値、投影面と視点位置531の距離。
(2)キャラクターのそれぞれに対応付けられるローカル座標系(ローカル座標系501〜505)の、グローバル座標系(床411に固定される座標系)に対する相対的な位置および向き。
(3)その他、仮想空間の様子を定義する種々の情報。たとえば、仮想空間に配置されるオブジェクトの情報や、仮想空間を照らす光源の位置、向き、種類の情報等。これらは、配置情報のそれぞれにおいて互いに異なるものとしても良いし、共通するものとしても良い。
【0131】
次に、姿勢記憶部304は、キャラクターの基準位置・基準向きを定めるローカル座標系におけるキャラクターの位置・姿勢を表す座標群を、時間の経過に対応付けて記憶する記憶する。
【0132】
図12は、図4〜図7におけるキャラクターの姿勢を表す座標群の概要を説明する説明図である。本図(a)、(b)、(c)、(d)は、それぞれ、図4、5、6、7におけるキャラクターの姿勢に対応している。以下、本図を参照して説明する。
【0133】
なお、本図では、理解を容易にするため、キャラクター401およびローカル座標系501を例にあげて説明するが、他のキャラクターおよび座標系の組み合わせについても、同様の議論が適用できる。
【0134】
キャラクター401の姿勢は、キャラクター401の骨(スケルトン)に相当するボーン571(本図では、白丸に挟まれた太い線分で表記されている。また、理解を容易にするため、本図(a)の一部のボーンのみについて、符号を付している。)のローカル座標系501に対するボーン571の相対的な位置および向きによって定義される。各ボーン571の長さは固定で、隣り合うボーン571と端点で連結される、という制約を課すのが一般的である。
【0135】
したがって、いずれか1つのボーン571を基準ボーンとし、それ以外のボーン571は隣りのボーン571に対する相対的な向きのみを定めれば、ボーン571全体の形状が決まる。
【0136】
ボーン571の周囲には、キャラクター401の外見を定めるための制御点が配置される。この制御点は、いずれかのボーン571に対して相対的に固定された位置に配置されており、ボーン571が位置や向きを変えると、これに連動して位置が変化する。
【0137】
制御点をポリゴンの頂点としたり、NURBSの制御点とすることで、キャラクター401の外形(皮膚)を表すスキンが定められる。このスキンに対して、対応するテクスチャを貼り込むことにより、図4等に示されるキャラクター401の画像が得られるのである。
【0138】
さて、図4では、キャラクター401は、手を腰にあてて、左足を左に少し出した姿勢をとっている。一方、本図(a)では、ボーン571全体は、このキャラクター401と同じような位置関係をなしており、ローカル座標系501のz軸とほぼ同じ方向を向くように配置されている。
【0139】
一方、図5では、キャラクター401は、右手を上に上げている。そこで、本図(b)でも同様に、右手に対応するボーン571が上に高く上げられている。
【0140】
図6では、キャラクター401は、右手と左手を前に出し、左側の足を踏み込むような姿勢をとっている。本図(c)でも同様に、ボーン571全体として同じような形状をとっている。
【0141】
図7では、キャラクター401は、左足を伸ばし右足を曲げて、体重を右脚にかけており、右手は後方に伸ばし、左手を曲げている。本図(d)でも同様に、ボーン571全体として同じような形状をとるように、各ボーン571の位置や向きが定められている。
【0142】
このように、位置や姿勢を表す座標群とは、ボーン571の位置や向きをローカル座標系501に対して定めたものである。この座標群を時間とともに変化させることで、キャラクター401を踊らせたりするモーションを付けることができるのである。
【0143】
姿勢記憶部304には、1つのキャラクター401に対する座標群が、経過時間に対応付けて記憶される。これらをまとめて、キャラクター401のモーション情報と呼ぶ。キャラクター401の姿勢を滑らかに自然に変化させるためには、モーション情報の精度を高くする必要がある。すなわち、経過時間の刻み幅を小さくするとともに、ボーン571の数を増やすのである。
【0144】
したがって、モーション情報をキャラクターごとに用意すると、データ量が大きくなってしまう。
【0145】
本発明では、キャラクター401用のモーション情報を、キャラクター402〜405についても同じく適用するため、データ量を抑制することができる。
【0146】
また、配置情報によって、グローバル座標系に対するローカル座標系501〜505の位置や向きが定められる。キャラクター401用のモーション情報に含まれる座標値を、ローカル座標系501における座標値と考え、これをグローバル座標系に直交変換すれば、床411に対するキャラクター401の位置や姿勢が確定する。
【0147】
同様に、床411に対するキャラクター402、403、404、405のそれぞれの位置や姿勢を得るには、キャラクター401用のモーション情報に含まれる座標値を、グローバル座標系に対するローカル座標系502、503、504、505の位置や向きと同じだけ移動・回転させるような直交変換を行えば良い。
【0148】
ここで、直交変換とは、平行移動、回転移動、反転(鏡像)移動等、変換によって点同士の距離が変化しないような座標変換を意味する。上記の配置情報では、反転(鏡像)移動は含まれていないが、ローカル座標系を右手系から左手系にすれば、2人のキャラクターの姿勢が鏡像のような関係になる。
【0149】
なお、本実施例では、理解を容易にするため、各ボーン571のサイズが共通するキャラクター401〜405の姿勢を変化させることを前提としているが、各ボーン571のサイズがキャラクターごとに異なる場合に本発明を適用することも可能である。たとえば、キャラクター401におけるモーション情報内の座標値を拡大縮小すれば、大きなキャラクターや小さなキャラクターに対応させることができ、アフィン変換すれば、キャラクターの外形を細長くしたり太く短くしたりすることができる。
【0150】
また、ボーン571の相対的な位置関係のみを利用する、という手法もある。すなわち、キャラクターごとに、対応するボーン571が隣接するボーン571に対してとる向きを共通にするのである。この場合には、各ボーン571の長さをキャラクターごとに変えることで、キャラクターの背の高さや腕、足の長さ等の多様性を持たせることができる。
【0151】
図13は、本実施形態に係るキャラクター表示装置301にて実行されるキャラクター表示処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0152】
本処理が開始されると、CPU 101は、RAM 103の初期化を行う(ステップS901)。配置情報や姿勢情報のほか、仮想空間内の様子を表すのに必要なスキンの制御点情報、テクスチャ情報等は、一般には、DVD−ROM等に記録されているため、これらの情報をDVD−ROMドライブ108を介してRAM 103に読み込む処理や、現在の時刻を取得して本処理開始時からの経過時間が計算できるようにする処理、音声処理部110にMIDIデータを読み出して楽曲の再生を開始するよう指示する処理等を初期化の際に行っても良い。
【0153】
つぎに、CPU 101は、RAM 103内に用意された配置情報の中から、いずれか1つの配置情報を、選択する(ステップS902)。したがって、CPU 101は、RAM 103と共働して配置選択部303として機能する。配置情報は、ランダムに選択しても良いし、あらかじめ巡回的な順序が定められている場合には、「先頭」に相当する配置情報を選択することとしても良い。
【0154】
また、後述するように、同時に再生されている楽曲の所定の小節の区切りが到来したときや、ユーザが所定のキーやボタンを押圧操作したときなどにも、配置情報の再選択が行われる。
【0155】
さらに、CPU 101は、処理を開始してからの経過時間を測定する(ステップS903)。ステップS901で取得した時刻と現在時刻との差を計算することとしても良いし、音声処理部110に、MIDIデータの再生を開始してからどれだけ時間が経過したかの問い合わせを出して、経過時間を取得することとしても良い。
【0156】
ついで、CPU 101は、RAM 103内に用意された姿勢情報から、現在の経過時間に対応付けられる座標群を取得する(ステップS904)。したがって、CPU 101は、RAM 103と共働して、姿勢取得部305として機能する。
【0157】
さらに、CPU 101は、ステップS902で得られた配置情報に定義されるキャラクター401〜405のローカル座標系501〜505と、グローバル座標系511の相対的な位置、向きの関係に基づいて、ステップS904において得られた座標群を直交変換して、各キャラクター401〜405のグローバル座標系511におけるボーン571の位置および向きを表す座標群を得る(ステップS905)。したがって、CPU 101は、RAM 103と共働して、移動回転部306として機能する。なお、画像処理部107が備える画像演算プロセッサを用いることで、上記の座標変換を高速に行うことも可能である。
【0158】
上記のように、配置情報には、キャラクター401〜405の基準位置・基準向きが、ローカル座標系501〜505によって定義されている。そこで、キャラクター401〜405の姿勢を表す座標群を、当該ローカル座標系501〜505における座標値の集合体として取り扱い、グローバル座標系511における座標値を計算するのである。
【0159】
これにより、キャラクター401〜405のボーン571の位置や向きが定められるため、CPU 101は、自身で計算し、あるいは、画像処理部107の画像演算プロセッサ等に指示を出して、各キャラクターのスキン制御点のグローバル座標系511における位置を計算し、スキン制御点の位置からテクスチャを貼り込む位置を定め、選択された配置情報に定義される視点位置531、視線方向532(および、透視投影を用いる場合は、投影面との距離)の情報を用いて、仮想空間内に配置されたキャラクター401〜405の画像を生成する(ステップS906)。
【0160】
当該配置情報ごとに仮想空間内オブジェクトの情報や、照明の情報などが定義されている場合には、現在の配置情報を参照して画像を生成するし、また、全配置情報で共通する場合には、その情報を参照する。これらの情報は、主に、キャラクター401〜405の背景の画像を生成する場合に利用される。
【0161】
ここで生成された画像は、RAM 103内に保持される。
【0162】
さらに、垂直同期割込が発生するまで待機する(ステップS907)。この待機中には、他の処理をコルーチン的に実行することも可能である。
【0163】
そして、垂直同期割込が発生したら、RAM 103内の画像をフレームメモリに転送して、画像処理部107に指示を出し、実際にモニタに画面表示する(ステップS908)。
【0164】
したがって、CPU 101は、RAM 103や画像処理部107と共働して生成表示部307として機能する。
【0165】
ついで、CPU 101は、配置情報の選択をやり直す必要があるか否かを判断し(ステップS909)、必要があれば(ステップS909;Yes)、ステップS902へ、必要がなければ(ステップS909;No)、ステップS903へ、それぞれ戻る。具体的には、以下のような手法が考えられる。
【0166】
第1の手法は、ユーザによるコントローラ105の指示操作があった場合に、配置情報の選択をやり直す、とするものである。3次元表示ができるゲームにおいては、コントローラ105のL1ボタン215やL2ボタン216は、視点(カメラ)の切り替えに利用されることが多い。
【0167】
本実施形態では、配置情報に視点位置531、視線方向532が含まれているため、視点(カメラ)の切り替えは、そのまま、配置情報の切り替えに相当する。
【0168】
この際に、配置情報に巡回的な順序をつけておき、L1ボタン215が押圧操作されたら、ステップS902では、「次」の配置情報を選択するとし、L2ボタン216が押圧操作されたら、ステップS902では、「前」の配置情報を選択する、等とすることができる。
【0169】
また、ジョイスティック213、214を視線(カメラ)の位置や方向を微調整するために利用する手法もゲームにおいて利用されている。本実施形態においては、ジョイスティック213、214の操作に応じて、現在選択されている配置情報の視点位置531や視線方向532を、当該操作に対応する量だけ変化させて更新することとすれば良い。
【0170】
第2の手法は、楽曲の小節の区切に合わせて配置情報の選択をやり直す、というものである。MIDI情報には、再生のテンポが明示され、小節単位で再生音の音色、音高、音長が指定される。また、MIDI情報には、ユーザが自由に拡張できる拡張コマンドを含めることができる。そこで、この拡張コマンドの一つとして、「配置情報再選択」コマンドを用意するのである。
【0171】
配置情報再選択コマンドは、たとえば4小節ごと、あるいは、8小節ごとなど、楽曲の区切りにあらかじめ挿入しておく。そして、音声処理部110が、配置情報再選択コマンドが配置された小節の区切りに至ったタイミングで、配置情報の再選択をするよう、CPU 101に指示を出す、というものである。
【0172】
たとえば、RAM 103内のフラグ領域に音声処理部110が配置情報再選択フラグを立て、CPU 101が再選択を行ったら、配置情報再選択フラグをクリアする、などの手法によって、これを実現することができる。
【0173】
本手法を採用する場合には、モーション情報のさらなる活用をすることもできる。たとえば、配置情報再選択コマンド同士の最大間隔が8小節であり、これより短い間隔で配置情報再選択コマンドが配置されるMIDIデータを想定する。
【0174】
この場合、キャラクターが同じ配置でダンスをする時間は、最大で8小節時間である。
【0175】
そこで、姿勢記憶部304に記憶されるモーション情報として最大間隔(上記例では、8小節時間長)のものを複数用意しておく。このモーション情報は、ソシアルダンスでいうフィガー(ステップ)のような、振り付け単位の断片に相当するものである。そして、配置情報が再選択されるときに、ランダムに(あるいは、所定の順序で)モーション情報も再選択し、姿勢取得部305は、当該モーション情報内において当該モーション情報が再選択されてからの経過時間に対応付けられた姿勢の座標群を取得することとするのである。すなわち、配置情報が再選択されると、新たな振り付け断片が開始されることとなる。
【0176】
配置情報が再選択されると、配置や視点位置等が切り替えられるため、ダンスの振り付けに不連続なところがあっても、観者に不自然な印象を与える程度は少ない一方で、単純な振り付けの単位を連綿と続けることによって、踊りのバリエーションを増やすこともできる。
【0177】
第3の手法は、配置情報そのものに、当該配置情報が採用される時間区間を定義しておく、というものである。すなわち、経過時間が○○秒〜○○秒、××秒〜××秒、…の間は、当該配置情報を採用する。
【0178】
本手法は、ランダムに踊りの振り付けを生成するのではなく、たとえばビデオクリップのようなある程度固定化された動画像をユーザに見せたい場合に好適である。
【0179】
なお、配置情報ごとの時間区間は、互いに重複しないようにし、全時間区間を連結したときに隙間がないようにすることが望ましいが、重複している場合にはその中からランダムに選択し、隙間が生じた場合には、全配置情報からランダムに選択する等の手法を採用することもできる。
【0180】
このように、姿勢取得部305、移動回転部306、生成表示部307における処理は、垂直同期割込周期で繰り返されるため、複数のキャラクターが時間の経過とともに姿勢を変化させていく様子の動画像が表示されることになる。
【0181】
本実施形態によれば、各キャラクターは同じ姿勢をしているため、モーション情報のデータ量を低減することができ、ハードウェア等による計算支援が可能な直交変換によって各キャラクターの姿勢が得られるため、計算負荷は少なく、しかも、様々な配置情報によって位置や向きに変化を持たせることができ、配置情報は、適切なタイミングで切り替えられるため、ユーザの興味を惹くことができるようになる。
【0182】
以下では、上記の実施形態の種々の変形例について順に説明する。
【実施例2】
【0183】
上記の配置情報の例では、座標系の原点は、いずれも床411に相当する平面の上に乗っていたが、原点の位置関係を変化させることとしても良い。図14は、このような種々の配置情報の様子を示す説明図である。以下、本図を参照して説明する。なお、本図では、x軸の先端には白丸を描いている。
【0184】
本図(a)には、キャラクターを階段状の舞台に並べる場合の配置情報の様子が描かれている。床411は階段状の形状をしており、ローカル座標系501〜505は、グローバル座標系511における高さが異なる位置に配置されている。
【0185】
また、上記の配置情報の例では、各座標系のx軸を平行に配置していた。これは、重力が一定の方向に働くことに対応するものである。しかしながら、水中や無重力空間でのキャラクターの振舞いを考える場合などには、重力の影響は少なくなるから、このような制限はない。
【0186】
たとえば、本図(b)に示すように、ローカル座標系501〜505のx軸が、ある遠方の一点951に収束する配置を採用することができる。これは、無重力空間で鉄製の球形の床411に磁気靴を用いてキャラクターが立つような状況に相当するものである。
【実施例3】
【0187】
上記実施形態では、配置情報が新たに選択されると、直ちにキャラクター401の配置が更新された画像が、画面に表示されることとなっていたが、配置情報が切り替えられてから所定の移行時間が経過するまでは、あらかじめ用意した静止画像もしくは動画像を表示することとしても良い。
【0188】
たとえば、配置情報の切り替え時に、極めて短い時間だけ、黒色一色で塗り潰された静止画像や、稲妻が落ちる様子や爆発が起きる様子などを描いた動画像等を表示することとするものである。
【0189】
視点の切り替えと配置情報の切り替えを連動させる場合に、移行用の動画像として、たとえば、フィルムのコマが縦に移動するかのような動画像、レンズのフィルターを交換するかのような動画像、ピントの調整をしたりするかのような動画像等を表示することとしても良い。
【0190】
このようにすると、キャラクターの配置の変化に一定時間の猶予が設けられるため、キャラクターが一瞬で移動するかのような印象をユーザに与える程度を低減させることができる。
【実施例4】
【0191】
前述のように、キャラクター表示装置301は、注目同定部308、配置交換部309をさらに備えるように構成することができる。CPU 101は、RAM 103や画像処理部107と共働して、注目同定部308、配置交換部309として機能する。
【0192】
本実施形態では、各配置情報に、複数のキャラクターのうちのいずれが主キャラクターであるか、の情報を含めるようにする。
【0193】
たとえば群舞においては、最も目立たせたいキャラクターが、中央に配置されるのが典型的である。そこで、このような目立たせたいキャラクターを主キャラクターとして、配置情報に位置・向きが定義されるキャラクターのいずれが主キャラクターであるか、を定義しておく。
【0194】
図4〜図7に示す表示例では、いずれも帽子キャラクター401がキャラクター配置の中央(V字形の頂点や四角形の中心等。)に位置している。したがって、本実施形態では、対応する配置情報において、主キャラクターが帽子キャラクター401である旨が記録されていることになる。
【0195】
さて、注目同定部308は、当該複数のキャラクターから、生成された画像において、所定の注目位置に最も近く投影された注目キャラクターを同定する。
【0196】
所定の注目位置としては、画面中央を採用するのが典型的であるが、それ以外の場所を選定しても良い。
【0197】
画面中央を所定の注目位置とする場合、注目キャラクターは、キャラクター401〜405のうち、視点位置531から視線方向532に伸びる線分との距離が最も短いキャラクターということになる。画面中央に配置されるキャラクターが複数いる場合には、視点位置531に最も近いキャラクターを注目キャラクターとすれば良い。
【0198】
たとえば、図4、図5、図7の表示例においては、注目キャラクターは帽子キャラクター401であるが、図6の表示例においては、注目キャラクターは黒服白髪キャラクター404である。
【0199】
ここで、主キャラクターが、いわば、演芸の提供側が客に注目してもらいたいと考える演者に相当するのに対し、注目キャラクターは、客が実際に注目している演者に相当する。
【0200】
一般に、グループで演じられる演芸においては、当該グループにおける主キャラクターだけが人気をとるのではなく、他のメンバーについてもファンが定着することが多い。したがって、注目キャラクターが主キャラクターでない場合とは、「他のメンバーのファン」が画面を見ている場合に相当する。
【0201】
たとえば上記実施形態において、5人のキャラクターのうち、主キャラクターである帽子キャラクター401以外に視線方向を向けるような操作を、観者がコントローラ105で行うことがある。このとき、観者は、主キャラクター以外のキャラクターに注目をしている、と考えるのである。本実施形態は、このような場合に注目キャラクターを目立つ場所に配置し直すこととして、観者の興味をより一層惹くようにするものである。
【0202】
すなわち、配置交換部309は、当該ユーザからの指示入力により、記憶された複数の配置情報から、いずれか1つの配置情報が選択されると、その選択の直前に同定された注目キャラクターの基準位置・基準向きと、当該選択された配置情報における主キャラクターの基準位置・基準向きと、を、当該選択された配置情報において交換する。
【0203】
この際に、当該注目キャラクター以外のキャラクターの基準位置・基準向きを、互いにランダムに交換するように構成しても良い。
【0204】
注目キャラクターは、ユーザが注目していると想定されるキャラクターであるから、用途によっては、キャラクターの配置が変化させられたときにも、注目されるべき位置に配置することが望ましいことがある。
【0205】
そこで、直前の注目キャラクターを、新たな配置情報における主キャラクターの位置・向きに配置するため、注目キャラクターと主キャラクターの位置・向きを交換するのである。すなわち、ローカル座標系501〜505のうち、主キャラクターに対応付けられるものと、注目キャラクターに対応付けられるものと、の情報を、交換すれば良いことになる。
【0206】
本発明によれば、配置情報が切り替えられたとしても、ユーザが注目していると想定されるキャラクターはそのまま注目されると想定される位置に配置されるため、ユーザが受ける違和感を低減することができるようになる。
【0207】
また、ユーザが注目していないと想定されるキャラクターの位置を互いにランダムに交換すれば、画面表示の多様性を増し、ユーザの興味を惹くことができるようになる。
【産業上の利用可能性】
【0208】
以上説明したように、本発明によれば、複数のキャラクターの姿勢の時間変化を共通にしてデータ処理の低減を図る一方で、画面表示の多様性を増してユーザの興味を惹くのに好適なキャラクター表示装置、キャラクター表示方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【0209】
【図1】プログラムを実行することにより、本発明のキャラクター表示装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。
【図2】情報処理装置のコントローラの外観を示す説明図である。
【図3】上記情報処理装置にプログラムを実行させることにより実現されるキャラクター表示装置の一実施形態の概要構成を示す説明図である。
【図4】配置情報に基づいて仮想空間内にキャラクターが配置された様子を表す画像を示す説明図である。
【図5】配置情報に基づいて仮想空間内にキャラクターが配置された様子を表す画像を示す説明図である。
【図6】配置情報に基づいて仮想空間内にキャラクターが配置された様子を表す画像を示す説明図である。
【図7】配置情報に基づいて仮想空間内にキャラクターが配置された様子を表す画像を示す説明図である。
【図8】配置情報の概要を示す説明図である。
【図9】配置情報の概要を示す説明図である。
【図10】配置情報の概要を示す説明図である。
【図11】配置情報の概要を示す説明図である。
【図12】キャラクターの姿勢を表す座標群の概要を説明する説明図である。
【図13】本実施形態に係るキャラクター表示装置にて実行されるキャラクター表示処理の制御の流れを示すフローチャートである。
【図14】配置情報の概要を示す説明図である。
【符号の説明】
【0210】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
201 ↑ボタン
202 ↓ボタン
203 ←ボタン
204 →ボタン
205 ○ボタン
206 ×ボタン
207 △ボタン
208 □ボタン
209 SELECTボタン
210 STARTボタン
211 ANALOGボタン
212 インジケータ
213 ジョイスティック
214 ジョイスティック
215 L1ボタン
216 L2ボタン
217 R1ボタン
218 R2ボタン
301 キャラクター表示装置
302 配置記憶部
303 配置選択部
304 姿勢記憶部
305 姿勢取得部
306 移動回転部
307 生成表示部
308 注目同定部
309 配置交換部
401 帽子キャラクター
402 白服白髪キャラクター
403 白服黒髪キャラクター
404 黒服白髪キャラクター
405 黒服黒髪キャラクター
411 床
501 帽子キャラクター用のローカル座標系
502 白服白髪キャラクター用のローカル座標系
503 白服黒髪キャラクター用のローカル座標系
504 黒服白髪キャラクター用のローカル座標系
505 黒服黒髪キャラクター用のローカル座標系
511 グローバル座標系
531 視点位置
532 視線方向
551 正方形
552 中心
571 ボーン
951 収束点

【特許請求の範囲】
【請求項1】
複数のキャラクターのそれぞれの仮想空間内における基準位置・基準向きを定義する配置情報を、複数記憶する配置記憶部、
前記記憶された複数の配置情報から、いずれか1つの配置情報を選択する配置選択部、
基準位置・基準向きに対する相対的なキャラクターの位置・姿勢を表す座標群を、時間の経過に対応付けて記憶する姿勢記憶部、
前記記憶される座標群から、所定の時刻から現在までに経過した時間に対応付けられて記憶される座標群を取得する姿勢取得部、
前記選択された配置情報に定義される当該複数のキャラクターのそれぞれについて、当該配置情報において当該キャラクターについて定義された基準位置・基準向きにより前記取得された座標群を直交変換し、得られる座標群を当該キャラクターの当該仮想空間内における位置・姿勢を表す座標群とする移動回転部、
前記計算された当該複数のキャラクターのそれぞれの位置・姿勢を表す座標群により、当該キャラクターが当該仮想空間内に配置される画像を生成して、当該生成された画像を表示する生成表示部
を備えることを特徴とするキャラクター表示装置。
【請求項2】
請求項1に記載のキャラクター表示装置であって、
前記生成表示部は、前記配置情報が選択されて以降、所定の移行時間が経過するまでは、前記生成される画像を表示するのにかえて、あらかじめ用意された静止画像もしくは動画像を表示する
ことを特徴とするキャラクター表示装置。
【請求項3】
請求項1または2に記載のキャラクター表示装置であって、
前記記憶される複数の配置情報のそれぞれには、仮想空間内に配置されるオブジェクトおよび光源を定義する背景情報がさらに対応付けられ、
前記生成表示部は、当該仮想空間内にて前記選択された配置情報に対応付けられる背景情報に定義されるオブジェクトが当該複数のキャラクターの背景に配置され、これらが当該背景情報に定義される光源により照らされた画像を生成する
ことを特徴とするキャラクター表示装置。
【請求項4】
請求項1から3のいずれか1項に記載のキャラクター表示装置であって、
前記記憶される複数の配置情報のそれぞれには、互いに重複しない時間区間がさらに対応付けられ、
前記配置選択部は、前記記憶される複数の配置情報のうち、対応付けられる時間区間に、当該所定の時刻から現在までに経過した時間が含まれる配置情報を選択する
ことを特徴とするキャラクター表示装置。
【請求項5】
請求項4に記載のキャラクター表示装置であって、
前記記憶される複数の配置情報のそれぞれには、仮想空間内の視点位置・視線方向がさらに対応付けられ、
前記生成表示部は、前記選択された配置情報に対応付けられる視点位置・視線方向により投影を行って、当該複数のキャラクターが当該仮想空間に配置される画像を生成する
ことを特徴とするキャラクター表示装置。
【請求項6】
請求項1から3のいずれか1項に記載のキャラクター表示装置であって、
前記配置選択部は、前記記憶される複数の配置情報から、ユーザからの指示入力により、配置情報を選択する
ことを特徴とするキャラクター表示装置。
【請求項7】
請求項6に記載のキャラクター表示装置であって、
前記記憶される複数の配置情報のそれぞれには、仮想空間内の視点位置・視線方向がさらに対応付けられ、
当該ユーザからの指示入力は、前記記憶される複数の配置情報のそれぞれに対応付けられる視点位置・視線方向のいずれかを指定する指示入力であり、
前記配置選択部は、前記記憶される複数の配置情報から、当該ユーザからの指示入力に指定される視点位置・視線方向に対応付けられる配置情報を選択し、
前記生成表示部は、前記選択された配置情報に対応付けられる視点位置・視線方向により投影を行って、当該複数のキャラクターが当該仮想空間に配置される画像を生成する
ことを特徴とするキャラクター表示装置。
【請求項8】
請求項6または7に記載のキャラクター表示装置であって、
前記記憶される複数の配置情報のそれぞれには、当該配置情報における主キャラクターがさらに対応付けられ、
当該複数のキャラクターから、前記生成された画像において、所定の注目位置に最も近く投影された注目キャラクターを同定する注目同定部、
当該ユーザからの指示入力により、前記記憶された複数の配置情報から、いずれか1つの配置情報が選択されると、その選択の直前に前記同定された注目キャラクターの基準位置・基準向きと、当該選択された配置情報における主キャラクターの基準位置・基準向きと、を、当該選択された配置情報において交換する配置交換部
をさらに備えることを特徴とするキャラクター表示装置。
【請求項9】
請求項8に記載のキャラクター表示装置であって、
前記配置交換部は、前記交換された配置情報において、さらに、当該注目キャラクター以外のキャラクターの基準位置・基準向きを、互いにランダムに交換する
ことを特徴とするキャラクター表示装置。
【請求項10】
複数のキャラクターのそれぞれの仮想空間内における基準位置・基準向きを定義する配置情報を、複数記憶する配置記憶部、基準位置・基準向きに対する相対的なキャラクターの位置・姿勢を表す座標群を、時間の経過に対応付けて記憶する姿勢記憶部、配置選択部、姿勢取得部、移動回転部、生成表示部を有するキャラクター表示装置にて実行されるキャラクター表示方法であって、
前記配置選択部が、前記記憶された複数の配置情報から、いずれか1つの配置情報を選択する配置選択工程、
前記姿勢取得部が、前記記憶される座標群から、所定の時刻から現在までに経過した時間に対応付けられて記憶される座標群を取得する姿勢取得工程、
前記移動回転部が、前記選択された配置情報に定義される当該複数のキャラクターのそれぞれについて、当該配置情報において当該キャラクターについて定義された基準位置・基準向きにより前記取得された座標群を直交変換し、得られる座標群を当該キャラクターの当該仮想空間内における位置・姿勢を表す座標群とする移動回転工程、
前記生成表示部が、前記計算された当該複数のキャラクターのそれぞれの位置・姿勢を表す座標群により、当該キャラクターが当該仮想空間内に配置される画像を生成して、当該生成された画像を表示する生成表示工程
を備えることを特徴とするキャラクター表示方法。
【請求項11】
コンピュータを、
複数のキャラクターのそれぞれの仮想空間内における基準位置・基準向きを定義する配置情報を、複数記憶する配置記憶部、
前記記憶された複数の配置情報から、いずれか1つの配置情報を選択する配置選択部、
基準位置・基準向きに対する相対的なキャラクターの位置・姿勢を表す座標群を、時間の経過に対応付けて記憶する姿勢記憶部、
前記記憶される座標群から、所定の時刻から現在までに経過した時間に対応付けられて記憶される座標群を取得する姿勢取得部、
前記選択された配置情報に定義される当該複数のキャラクターのそれぞれについて、当該配置情報において当該キャラクターについて定義された基準位置・基準向きにより前記取得された座標群を直交変換し、得られる座標群を当該キャラクターの当該仮想空間内における位置・姿勢を表す座標群とする移動回転部、
前記計算された当該複数のキャラクターのそれぞれの位置・姿勢を表す座標群により、当該キャラクターが当該仮想空間内に配置される画像を生成して、当該生成された画像を表示する生成表示部
として機能させることを特徴とするプログラム。

【図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


【公開番号】特開2008−299693(P2008−299693A)
【公開日】平成20年12月11日(2008.12.11)
【国際特許分類】
【出願番号】特願2007−146500(P2007−146500)
【出願日】平成19年6月1日(2007.6.1)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】