(57)【要約】 【課題】複数のキャラクターの姿勢の時間変化を共通にしてデータ処理の低減を図る一方で、画面表示の多様性を増してユーザの興味を惹くキャラクター表示装置等を提供する。【解決手段】キャラクター表示装置３０１の配置選択部３０２は、配置選択部３０１に記憶された各キャラクターの基準位置・向きを定める配置情報をユーザの指示入力等に基づいて選択し、姿勢取得部３０３は、所定時刻から現在までの経過時間に対応付けられるキャラクターの姿勢を表す座標群を姿勢記憶部３０４から取得し、移動回転部３０６は、当該座標群を、各キャラクターの基準位置・向きに合わせて移動・回転し、生成表示部３０７は、移動・回転された座標群に基づいて当該姿勢をとった複数のキャラクターが仮想空間内に配置される画像を生成して表示する。【選択図】図３
2008299693.tif 000002
【特許請求の範囲】
【請求項１】
複数のキャラクターのそれぞれの仮想空間内における基準位置・基準向きを定義する配置情報を、複数記憶する配置記憶部、
前記記憶された複数の配置情報から、いずれか１つの配置情報を選択する配置選択部、
基準位置・基準向きに対する相対的なキャラクターの位置・姿勢を表す座標群を、時間の経過に対応付けて記憶する姿勢記憶部、
前記記憶される座標群から、所定の時刻から現在までに経過した時間に対応付けられて記憶される座標群を取得する姿勢取得部、
前記選択された配置情報に定義される当該複数のキャラクターのそれぞれについて、当該配置情報において当該キャラクターについて定義された基準位置・基準向きにより前記取得された座標群を直交変換し、得られる座標群を当該キャラクターの当該仮想空間内における位置・姿勢を表す座標群とする移動回転部、
前記計算された当該複数のキャラクターのそれぞれの位置・姿勢を表す座標群により、当該キャラクターが当該仮想空間内に配置される画像を生成して、当該生成された画像を表示する生成表示部
を備えることを特徴とするキャラクター表示装置。
【請求項２】
請求項１に記載のキャラクター表示装置であって、
前記生成表示部は、前記配置情報が選択されて以降、所定の移行時間が経過するまでは、前記生成される画像を表示するのにかえて、あらかじめ用意された静止画像もしくは動画像を表示する
ことを特徴とするキャラクター表示装置。
【請求項３】
請求項１または２に記載のキャラクター表示装置であって、
前記記憶される複数の配置情報のそれぞれには、仮想空間内に配置されるオブジェクトおよび光源を定義する背景情報がさらに対応付けられ、
前記生成表示部は、当該仮想空間内にて前記選択された配置情報に対応付けられる背景情報に定義されるオブジェクトが当該複数のキャラクターの背景に配置され、これらが当該背景情報に定義される光源により照らされた画像を生成する
ことを特徴とするキャラクター表示装置。
【請求項４】
請求項１から３のいずれか１項に記載のキャラクター表示装置であって、
前記記憶される複数の配置情報のそれぞれには、互いに重複しない時間区間がさらに対応付けられ、
前記配置選択部は、前記記憶される複数の配置情報のうち、対応付けられる時間区間に、当該所定の時刻から現在までに経過した時間が含まれる配置情報を選択する
ことを特徴とするキャラクター表示装置。
【請求項５】
請求項４に記載のキャラクター表示装置であって、
前記記憶される複数の配置情報のそれぞれには、仮想空間内の視点位置・視線方向がさらに対応付けられ、
前記生成表示部は、前記選択された配置情報に対応付けられる視点位置・視線方向により投影を行って、当該複数のキャラクターが当該仮想空間に配置される画像を生成する
ことを特徴とするキャラクター表示装置。
【請求項６】
請求項１から３のいずれか１項に記載のキャラクター表示装置であって、
前記配置選択部は、前記記憶される複数の配置情報から、ユーザからの指示入力により、配置情報を選択する
ことを特徴とするキャラクター表示装置。
【請求項７】
請求項６に記載のキャラクター表示装置であって、
前記記憶される複数の配置情報のそれぞれには、仮想空間内の視点位置・視線方向がさらに対応付けられ、
当該ユーザからの指示入力は、前記記憶される複数の配置情報のそれぞれに対応付けられる視点位置・視線方向のいずれかを指定する指示入力であり、
前記配置選択部は、前記記憶される複数の配置情報から、当該ユーザからの指示入力に指定される視点位置・視線方向に対応付けられる配置情報を選択し、
前記生成表示部は、前記選択された配置情報に対応付けられる視点位置・視線方向により投影を行って、当該複数のキャラクターが当該仮想空間に配置される画像を生成する
ことを特徴とするキャラクター表示装置。
【請求項８】
請求項６または７に記載のキャラクター表示装置であって、
前記記憶される複数の配置情報のそれぞれには、当該配置情報における主キャラクターがさらに対応付けられ、
当該複数のキャラクターから、前記生成された画像において、所定の注目位置に最も近く投影された注目キャラクターを同定する注目同定部、
当該ユーザからの指示入力により、前記記憶された複数の配置情報から、いずれか１つの配置情報が選択されると、その選択の直前に前記同定された注目キャラクターの基準位置・基準向きと、当該選択された配置情報における主キャラクターの基準位置・基準向きと、を、当該選択された配置情報において交換する配置交換部
をさらに備えることを特徴とするキャラクター表示装置。
【請求項９】
請求項８に記載のキャラクター表示装置であって、
前記配置交換部は、前記交換された配置情報において、さらに、当該注目キャラクター以外のキャラクターの基準位置・基準向きを、互いにランダムに交換する
ことを特徴とするキャラクター表示装置。
【請求項１０】
複数のキャラクターのそれぞれの仮想空間内における基準位置・基準向きを定義する配置情報を、複数記憶する配置記憶部、基準位置・基準向きに対する相対的なキャラクターの位置・姿勢を表す座標群を、時間の経過に対応付けて記憶する姿勢記憶部、配置選択部、姿勢取得部、移動回転部、生成表示部を有するキャラクター表示装置にて実行されるキャラクター表示方法であって、
前記配置選択部が、前記記憶された複数の配置情報から、いずれか１つの配置情報を選択する配置選択工程、
前記姿勢取得部が、前記記憶される座標群から、所定の時刻から現在までに経過した時間に対応付けられて記憶される座標群を取得する姿勢取得工程、
前記移動回転部が、前記選択された配置情報に定義される当該複数のキャラクターのそれぞれについて、当該配置情報において当該キャラクターについて定義された基準位置・基準向きにより前記取得された座標群を直交変換し、得られる座標群を当該キャラクターの当該仮想空間内における位置・姿勢を表す座標群とする移動回転工程、
前記生成表示部が、前記計算された当該複数のキャラクターのそれぞれの位置・姿勢を表す座標群により、当該キャラクターが当該仮想空間内に配置される画像を生成して、当該生成された画像を表示する生成表示工程
を備えることを特徴とするキャラクター表示方法。
【請求項１１】
コンピュータを、
複数のキャラクターのそれぞれの仮想空間内における基準位置・基準向きを定義する配置情報を、複数記憶する配置記憶部、
前記記憶された複数の配置情報から、いずれか１つの配置情報を選択する配置選択部、
基準位置・基準向きに対する相対的なキャラクターの位置・姿勢を表す座標群を、時間の経過に対応付けて記憶する姿勢記憶部、
前記記憶される座標群から、所定の時刻から現在までに経過した時間に対応付けられて記憶される座標群を取得する姿勢取得部、
前記選択された配置情報に定義される当該複数のキャラクターのそれぞれについて、当該配置情報において当該キャラクターについて定義された基準位置・基準向きにより前記取得された座標群を直交変換し、得られる座標群を当該キャラクターの当該仮想空間内における位置・姿勢を表す座標群とする移動回転部、
前記計算された当該複数のキャラクターのそれぞれの位置・姿勢を表す座標群により、当該キャラクターが当該仮想空間内に配置される画像を生成して、当該生成された画像を表示する生成表示部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のキャラクターの姿勢の時間変化を共通にしてデータ処理の低減を図る一方で、画面表示の多様性を増してユーザの興味を惹くのに好適なキャラクター表示装置、キャラクター表示方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、仮想空間に配置されるキャラクターが位置や姿勢を変化させる様子を画面に表示するゲーム装置が提案されている。このようなキャラクターの表示技術については、たとえば以下の文献に開示されている。
【特許文献１】特開２００２−０９２６４４号公報
【０００３】
[特許文献１]では、骨に相当するスケルトンの周囲に皮膚に相当するポリゴンを配置したエンベロープモデルにおいて、キャラクターの画像を高速に生成する技術が開示されている。
【０００４】
そして、仮想空間におけるスケルトン全体の位置や向きを変化させれば、キャラクターが移動し、スケルトン同士の相対的な位置や向きを変化させれば、キャラクターが姿勢を変化させることとなる。また、スケルトンの座標を鏡像変換すれば、あるキャラクターの姿勢を他のキャラクターの姿勢と対称にすることができる。
【０００５】
キャラクターのスケルトンの位置や姿勢を所定時刻（典型的には、楽曲の再生開始時刻）からの時間の経過とともに、あらかじめ定めた座標データに基づいて変化させれば、このキャラクターが楽曲に合わせて踊る様子を動画像表示することができる。
【０００６】
また、複数のキャラクターのスケルトンを平行移動によって互いに重なるような位置・姿勢関係におくこととすれば、同じ振りでキャラクターが群舞をするような動画像が表示できる。
【０００７】
また、群舞において左側のキャラクターと右側のキャラクターが対称な振りで踊るような場合にも、スケルトンの座標の鏡像変換を用いることができる。
【０００８】
上記のようなキャラクターの群舞を表現する際には、座標の平行変換や鏡像変換が採用されている。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、複数のキャラクターが同じ振り（もしくは、対称な振り）をするだけでは、ユーザの興味を惹く程度が低い場合がありうる。一方で、キャラクターごとに異なる振付を用意すると、データ量が莫大になるほか、データの計算処理の負担が大きくなるという問題がある。
【００１０】
したがって、複数のキャラクターの姿勢変化のデータ処理は共通させる一方で、ユーザの興味をできるだけ惹き、多様な画面表示を可能とする技術が強く求められている。
【００１１】
本発明は、上記のような課題を解決するもので、複数のキャラクターの姿勢の時間変化を共通にしてデータ処理の低減を図る一方で、画面表示の多様性を増してユーザの興味を惹くのに好適なキャラクター表示装置、キャラクター表示方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１３】
本発明の第１の観点に係るキャラクター表示装置は、配置記憶部、配置選択部、姿勢記憶部、姿勢取得部、移動回転部、生成表示部を備え、以下のように構成する。
【００１４】
すなわち、配置記憶部は、複数のキャラクターのそれぞれの仮想空間内における基準位置・基準向きを定義する配置情報を、複数記憶する。
【００１５】
当該配置情報は、仮想空間内で、各キャラクターがどんな場所でどちらを向くか、を決めるものである。
【００１６】
たとえば、ラインダンスのような状況を表現する配置情報では、キャラクターの基準向きは互いに平行で、キャラクターの基準位置は等間隔である。
【００１７】
盆踊りのような状況を表現する配置情報では、キャラクターの基準位置は円周に等間隔に配置され、キャラクターの基準向きは同じ方向に回転するように円周に接する向きということになる。
【００１８】
アイドルグループの中の一人が歌を歌い、他のメンバーがそれを見守るような状況を表現する配置状況では、あるキャラクターの基準位置が円周の中心に、他のキャラクターの基準位置は円周上を等間隔に、当該基準向きは中心のキャラクターを向くように設定されることになる。
【００１９】
ここでは３種類の配置情報を示しているが、このような配置情報は種々用意することができ、見栄えの良いと想定されるキャラクター配置をあらかじめ複数用意しておく。
【００２０】
一方、配置選択部は、記憶された複数の配置情報から、いずれか１つの配置情報を選択する。
【００２１】
配置選択部が配置情報を選択する契機としては、後述するように、同時に再生されている楽曲の所定の小節の区切りが到来したときや、ユーザが所定のキーやボタンを押圧操作したときなどが考えられる。また、いずれの配置情報が選択されるかは、ランダムに決めても良いし、所定の順序で順に選択されることとしても良いし、ユーザの指示入力にしたがうこととしても良い。
【００２２】
さらに、姿勢記憶部は、基準位置・基準向きに対するキャラクターの姿勢を表す座標群を、時間の経過に対応付けて記憶する。
【００２３】
この座標群は、キャラクターの位置や姿勢を表現するためのスケルトン（「ボーン」と呼ばれることもある。）が、キャラクターの基準位置・基準向きを表すローカル座標系において、どれだけ変位しているか、の、時間経過を表現したものである。
【００２４】
各スケルトンには、皮膚に相当するスキンを構成する制御点が割り当てられており、これをポリゴンの頂点やＮＵＲＢＳ（Non-Uniform Rational B-Spline）曲面の制御点として用いて皮膚形状を定め、当該形状に所定のテクスチャを貼り込むことで、キャラクターの全体画像が構成される。
【００２５】
さらに、姿勢取得部は、記憶される座標群から、所定の時刻から現在までに経過した時間に対応付けられて記憶される座標群を取得する。
【００２６】
姿勢記憶部には、キャラクターの姿勢の時系列が記憶されている。たとえば、楽曲に合わせてキャラクターを踊らせる場合には、当該楽曲の再生を開始した時刻を「所定の時刻」とし、当該楽曲が再生された経過時間に応じて、あらかじめキャラクターの姿勢を記憶しておく。そして、現在の時刻に相当するキャラクターの姿勢を、姿勢取得部が取得するのである。
【００２７】
さらに、移動回転部は、選択された配置情報に定義される当該複数のキャラクターのそれぞれについて、当該配置情報において当該キャラクターについて定義された基準位置・基準向きにより取得された座標群を直交変換し、得られる座標群を、当該仮想空間内における当該キャラクターの位置・姿勢を表す座標群とする。
【００２８】
配置情報には、各キャラクターの基準位置・基準向きが定義されている。そこで、これを一種のローカル座標系として考え、キャラクターの姿勢を表す座標群を、当該ローカル座標系における座標値の集合体として取り扱い、仮想空間に固定されたグローバル座標系における座標値を計算するのである。
【００２９】
ここで、直交変換とは、平行移動、回転移動、反転（鏡像）移動等、変換によって点同士の距離が変化しないような座標変換を意味する。
【００３０】
そして、生成表示部は、計算された当該複数のキャラクターのそれぞれの位置・姿勢を表す座標群により、当該キャラクターが当該仮想空間内に配置される画像を生成して、当該生成された画像を表示する。
【００３１】
上記のように、それぞれのキャラクターの位置・姿勢を表す座標群が得られれば、これを元にして、各キャラクターの様子を表す画像を生成することができる。このようにして、仮想空間の様子を表す画像を生成して、画面に表示する。
【００３２】
姿勢取得部、移動回転部、生成表示部における処理を、適当な周期、たとえば、垂直同期割込周期で繰り返すことによって、複数のキャラクターが時間の経過とともに姿勢を変化させていく様子の動画像が表示される。
【００３３】
このように、本発明によれば、各キャラクターは同じ姿勢をしているため、モーション情報のデータ量を低減することができ、ハードウェア等による計算支援が可能な直交変換によって各キャラクターの姿勢が得られるため、計算負荷は少なく、しかも、様々な配置情報によって位置や向きに変化を持たせることができ、配置情報は、適切なタイミングで切り替えられるため、ユーザの興味を惹くことができるようになる。
【００３４】
また、本発明のキャラクター表示装置において、生成表示部は、配置情報が選択されて以降、所定の移行時間が経過するまでは、生成される画像を表示するのにかえて、あらかじめ用意された静止画像もしくは動画像を表示するように構成することができる。
【００３５】
上記発明では、配置情報が選択されると直ちに、キャラクターの配置を新たにした画像が画面に表示されることとなっていた。ところが、この場合は、各キャラクターの位置や向きが一瞬で更新されるため、各キャラクターが一瞬で仮想空間内を移動したかのように見えてしまうことがあり、用途によっては不自然に感じられることもある。
【００３６】
本発明では、配置情報の切り替え時に、一瞬（極めて短い時間）だけ、あらかじめ用意した静止画像（たとえば、黒色一色で塗り潰された画像）や動画像（たとえば、稲妻が落ちる様子や爆発が起きる様子などを描いた動画像）を表示する。
【００３７】
したがって、本発明では、キャラクターの配置の切り替えの際に短時間だけ移行用の静止画像や動画像を表示するため、キャラクターの位置や向きの変化に対するユーザの違和感をできるだけ低減することができるようになる。
【００３８】
また、本発明のキャラクター表示装置において、記憶される複数の配置情報のそれぞれには、仮想空間内に配置されるオブジェクトおよび光源を定義する背景情報がさらに対応付けられ、生成表示部は、当該仮想空間内にて選択された配置情報に対応付けられる背景情報に定義されるオブジェクトが当該複数のキャラクターの背景に配置され、これらが当該背景情報に定義される光源により照らされた画像を生成するように構成することができる。
【００３９】
配置情報ごとに、キャラクターの背景となるオブジェクト群や光源の位置が定められている。したがって、配置情報が切り替えられると、背景やライティングも切り替わることとなる。
【００４０】
このように、キャラクターの配置や向きのみならず、背景やライティングも、すべてを変化させることとすれば、キャラクターの位置や向きが一瞬のうちに変化したとしても、その変化は目立たない。
【００４１】
したがって、本発明によれば、キャラクターの位置や向きの変化に対するユーザの違和感をできるだけ低減することができるようになる。
【００４２】
また、本発明のキャラクター表示装置であって、記憶される複数の配置情報のそれぞれには、互いに重複しない時間区間がさらに対応付けられ、配置選択部は、記憶される複数の配置情報のうち、対応付けられる時間区間に、当該所定の時刻から現在までに経過した時間が含まれる配置情報を選択するように構成することができる。
【００４３】
すなわち、所定時刻からの経過時間が、各配置情報の時間区間の開始時間に至ると、当該配置情報を選択するようにするものであり、上記のように、楽曲に合わせてキャラクターの群舞をさせる場合に、当該楽曲の数小節ごとの時間区間のそれぞれに、いずれかの配置情報を割り当てておくのである。
【００４４】
すると、楽曲の数小節の区切りで、配置情報が切り替えられるため、キャラクターが群舞するだけでなく、キャラクターの位置や向きも楽曲に合わせて変化させられることになる。
【００４５】
本発明は、上記発明の好適実施形態であり、あらかじめ定めた時間区間に基づいて配置情報を選択するため、たとえば区切りの良いタイミングでキャラクターの配置や向きを自動的に変化させることができ、ユーザの興味を惹くことができるようになる。
【００４６】
また、本発明のキャラクター表示装置において、記憶される複数の配置情報のそれぞれには、仮想空間内の視点位置・視線方向がさらに対応付けられ、生成表示部は、選択された配置情報に対応付けられる視点位置・視線方向により投影を行って、当該複数のキャラクターが当該仮想空間に配置される画像を生成するように構成することができる。
【００４７】
ここで、視点位置・視線方向とは、仮想空間内を３次元グラフィックス表示するためのカメラの位置と方向を意味するもので、カメラから所定の距離（これも適宜設定することが可能である。）だけ離れたところに視線方向を法線とする投影面を設定する。そして、オブジェクトとカメラとを結ぶ線分が投影面と交差する位置を投影の先とする透視投影や、オブジェクトから視線方向に平行に伸びる直線が投影面と交差する位置を投影の先とする平行投影等、種々の投影法により、画像を生成するのである。
【００４８】
本発明によれば、配置情報が切り替えられると、視点位置や視線方法も切り替えられるため、キャラクターの位置や向きが一瞬で変化したとしても、ユーザが受ける違和感を低減させることができるようになる。
【００４９】
また、本発明のキャラクター表示装置において、配置選択部は、記憶される複数の配置情報から、ユーザからの指示入力により、配置情報を選択するように構成することができる。
【００５０】
たとえば、配置情報は循環的に順序が付けられており、ユーザが使用するコントローラの第１のボタンを押圧操作すると、現在の配置情報の「次」の配置情報が選択され、第２のボタンを押圧操作すると、現在の配置情報の「前」の配置情報が選択される、等とするものである。
【００５１】
本発明によれば、ユーザの意思に基づいてキャラクターの位置や向き、配置が変化させられるため、ユーザが自分の好みに合わせた配置で、キャラクターが姿勢を変化させる様子の動画像を見ることができるようになる。
【００５２】
また、本発明のキャラクター表示装置において、記憶される複数の配置情報のそれぞれには、仮想空間内の視点位置・視線方向がさらに対応付けられ、当該ユーザからの指示入力は、記憶される複数の配置情報のそれぞれに対応付けられる視点位置・視線方向のいずれかを指定する指示入力であり、配置選択部は、記憶される複数の配置情報から、当該ユーザからの指示入力に指定される視点位置・視線方向に対応付けられる配置情報を選択し、生成表示部は、選択された配置情報に対応付けられる視点位置・視線方向により投影を行って、当該複数のキャラクターが当該仮想空間に配置される画像を生成するように構成することができる。
【００５３】
上記の例に合わせて説明すると、カメラの位置・向きが複数用意されており、これらについて循環的に順序が付けられており、ユーザが使用するコントローラの第１のボタンを押圧操作すると、現在のカメラの「次」のカメラが選択され、第２のボタンを押圧操作すると、現在のカメラの「前」のカメラが選択される、等とする。
【００５４】
そして、各カメラに対して配置情報が対応付けられており、カメラが切り替えられると、配置情報も切り替えられることとするのである。
【００５５】
本発明によれば、ユーザの意思に基づいてカメラの位置や向きのほか、キャラクターの位置や向き、配置が変化させられるため、ユーザが自分の好みに合わせて、キャラクターが姿勢を変化させる様子の動画像を見ることができるようになる。
【００５６】
また、本発明のキャラクター表示装置は、注目同定部、配置交換部をさらに備え、以下のように構成することができる。
【００５７】
すなわち、記憶される複数の配置情報のそれぞれには、当該配置情報における主キャラクターがさらに対応付けられる。
【００５８】
たとえば群舞においては、最も目立たせたいキャラクターが、中央に配置されるのが典型的である。そこで、このような目立たせたいキャラクターを主キャラクターとして、配置情報に位置・向きが定義されるキャラクターのいずれが主キャラクターであるか、を定義しておくのである。
【００５９】
一方、注目同定部は、当該複数のキャラクターから、生成された画像において、所定の注目位置に最も近く投影された注目キャラクターを同定する。
【００６０】
所定の注目位置としては、画面中央を採用するのが典型的である。この場合、注目キャラクターは、視点位置から視線方向に伸びる線分との距離が最も短いキャラクターということになる。
【００６１】
さらに、配置交換部は、当該ユーザからの指示入力により、記憶された複数の配置情報から、いずれか１つの配置情報が選択されると、その選択の直前に同定された注目キャラクターの基準位置・基準向きと、当該選択された配置情報における主キャラクターの基準位置・基準向きと、を、当該選択された配置情報において交換する。
【００６２】
注目キャラクターは、ユーザが注目していると想定されるキャラクターであるから、用途によっては、キャラクターの配置が変化させられたときにも、注目されるべき位置に配置することが望ましいことがある。
【００６３】
そこで、直前の注目キャラクターを、新たな配置情報における主キャラクターの位置・向きに配置するため、注目キャラクターと主キャラクターの位置・向きを交換するのである。
【００６４】
本発明によれば、配置情報が切り替えられたとしても、ユーザが注目していると想定されるキャラクターはそのまま注目されると想定される位置に配置されるため、ユーザが受ける違和感を低減することができるようになる。
【００６５】
また、本発明のキャラクター表示装置において、配置交換部は、交換された配置情報において、さらに、当該注目キャラクター以外のキャラクターの基準位置・基準向きを、互いにランダムに交換するように構成することができる。
【００６６】
本発明は、上記発明の好適実施形態に係るものであり、ユーザが注目していないと想定されるキャラクターの位置を互いにランダムに交換することで、画面表示の多様性を増し、ユーザの興味を惹くことができるようになる。
【００６７】
本発明のその他の観点に係るキャラクター表示方法は、複数のキャラクターのそれぞれの仮想空間内における基準位置・基準向きを定義する配置情報を、複数記憶する配置記憶部、基準位置・基準向きに対する相対的なキャラクターの位置・姿勢を表す座標群を、時間の経過に対応付けて記憶する姿勢記憶部、配置選択部、姿勢取得部、移動回転部、生成表示部を有するキャラクター表示装置にて実行され、配置選択工程、姿勢取得工程、移動回転工程、生成表示工程を備え、以下のように構成する。
【００６８】
すなわち、配置選択工程では、配置選択部が、記憶された複数の配置情報から、いずれか１つの配置情報を選択する。
【００６９】
一方、姿勢取得工程では、姿勢取得部が、記憶される座標群から、所定の時刻から現在までに経過した時間に対応付けられて記憶される座標群を取得する。
【００７０】
さらに、移動回転工程では、移動回転部が、選択された配置情報に定義される当該複数のキャラクターのそれぞれについて、当該配置情報において当該キャラクターについて定義された基準位置・基準向きにより取得された座標群を直交変換し、得られる座標群を当該仮想空間内の当該キャラクターの位置・姿勢を表す座標群とする。
【００７１】
そして、生成表示工程では、生成表示部が、計算された当該複数のキャラクターのそれぞれの位置・姿勢を表す座標群により、当該キャラクターが当該仮想空間内に配置される画像を生成して、当該生成された画像を表示する。
【００７２】
本発明のその他の観点に係るプログラムは、コンピュータを上記のキャラクター表示装置の各部として機能させるように構成する。
【００７３】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００７４】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００７５】
本発明によれば、複数のキャラクターの姿勢の時間変化を共通にしてデータ処理の低減を図る一方で、画面表示の多様性を増してユーザの興味を惹くのに好適なキャラクター表示装置、キャラクター表示方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００７６】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００７７】
図１は、プログラムを実行することにより、本発明のキャラクター表示装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００７８】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ  １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、マイク１１１と、を備える。
【００７９】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態のキャラクター表示装置が実現される。
【００８０】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００８１】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００８２】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００８３】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【００８４】
図２は、コントローラ１０５の外観を示す説明図である。以下、本図を参照して説明する。
【００８５】
コントローラ１０５の左方には、上下左右を示す操作入力を行うのに利用される↑ボタン２０１、↓ボタン２０２、←ボタン２０３、→ボタン２０４が配置されている。
【００８６】
右方には、決定操作入力を行うのに利用される○ボタン２０５、取消操作入力を行うのに利用される×ボタン２０６、メニュー表示等の指示入力を行うのに利用される△ボタン２０７、その他の指示入力を行うのに利用される□ボタン２０８が配置されている。
【００８７】
中央には、ＳＥＬＥＣＴボタン２０９、ＳＴＡＲＴボタン２１０のほか、アナログ入力の開始・停止を指示するためのＡＮＡＬＯＧボタン２１１、および、アナログ入力が有効か無効かを表示するためのインジケータ２１２が配置されている。
【００８８】
また中央下部には、上下左右に限らない方向に大きさを伴う指示入力を行うためのジョイスティック２１３、２１４が配置されている。
【００８９】
さらに、上方には、各種の指示入力に用いることができるＬ１ボタン２１５、Ｌ２ボタン２１６、Ｒ１ボタン２１７、Ｒ２ボタン２１８が配置されている。
【００９０】
コントローラ１０５の各ボタン２０１〜２０８、２１５〜２１８には、圧力センサが配備され、アナログ入力が有効となっている場合には、いずれのボタンが押圧操作されているかを検知することができるほか、ユーザの押圧操作の圧力の大きさを０〜２５５の２５６段階で得ることができる。
【００９１】
コントローラ１０５のジョイスティック２１３、２１４は、ひずみゲージが配備され、これらがどの方向にどれだけ曲げられているか、を検知することができる。
【００９２】
図１に戻り、インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００９３】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００９４】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００９５】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００９６】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００９７】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００９８】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００９９】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカや、ヘッドホン（図示せず）、イヤフォン（図示せず）から出力させる。
【０１００】
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【０１０１】
さらに、情報処理装置１００には、インターフェイス１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【０１０２】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【０１０３】
以上で説明した情報処理装置１００は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【０１０４】
たとえば、一般的なコンピュータは、上記情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣを備え、情報処理装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ１０５ではなく、キーボードやマウスなどを入力装置として利用する。
【０１０５】
（キャラクター表示装置）
図３は、上記情報処理装置１００にプログラムを実行させることにより実現されるキャラクター表示装置の一実施形態の概要構成を示す説明図である。以下、本図を参照して説明する。
【０１０６】
キャラクター表示装置３０１は、配置記憶部３０２、配置選択部３０３、姿勢記憶部３０４、姿勢取得部３０５、移動回転部３０６、生成表示部３０７を備える。
【０１０７】
また、省略可能な要素として、注目同定部３０８、配置交換部３０９をさらに備えるように構成することもできる。これらについては、後述する実施例で説明する。
【０１０８】
まず、配置記憶部３０２は、複数のキャラクターのそれぞれの仮想空間内における基準位置・基準向きを定義する配置情報を、複数記憶する。
【０１０９】
当該配置情報は、仮想空間内で、各キャラクターがどんな場所でどちらを向くか、を決めるものである。
【０１１０】
図４、図５、図６、図７は、いずれも、ある配置情報に基づいて仮想空間内にキャラクターが配置された様子を表す画像を示す説明図である。図８、図９、図１０、図１１のそれぞれは、図４、図５、図６、図７のそれぞれに対応付けられる配置情報の概要を示す説明図である。以下、これら図を参照して説明する。
【０１１１】
これらの例では、帽子キャラクター４０１、白服白髪キャラクター４０２、白服黒髪キャラクター４０３、黒服白髪キャラクター４０４、黒服黒髪キャラクター４０５の５人のキャラクターが、仮想空間内の床４１１の上に表示されている。
【０１１２】
図４では、５人のキャラクターがＶ字状に配置されており、帽子キャラクター４０１は先頭に、その右側と左側には、それぞれ、黒服黒髪キャラクター４０５と黒服白髪キャラクター４０４が配置され、右端と左端には、白服黒髪キャラクター４０３と白服白髪キャラクター４０２が配置されている。５人のキャラクターはいずれも観者の方向を向いており、桝目状に区切られた平面床４１１の上に立っている。
【０１１３】
図８には、図４に対応する配置情報の概要が示されている。本図は、図８の様子を５人のキャラクターの頭上から見た様子を図示するものである。
【０１１４】
帽子キャラクター４０１、白服白髪キャラクター４０２、白服黒髪キャラクター４０３、黒服白髪キャラクター４０４、黒服黒髪キャラクター４０５のそれぞれに対応するローカル座標系５０１、ローカル座標系５０２、ローカル座標系５０３、ローカル座標系５０４、ローカル座標系５０５が、床４１１に対応するグローバル座標系５１１の中に配置されている。
【０１１５】
ローカル座標系５０１〜５０５の原点は、キャラクター４０１〜４０５の位置に対応している。また、ローカル座標系５０１〜５０５の向きは、キャラクター４０１〜４０５の向きに対応している。すなわち、各ローカル座標系は、対応するキャラクターの基準位置および基準向きを定めることになる。
【０１１６】
これらの図に示す例では、ローカル座標系５０１〜５０５は、キャラクター４０１〜４０５が基本姿勢にあるときの足から頭に向かう向きをx軸、左手から右手に向かう向きをy軸、背中から腹に向かう向きをz軸としている。
【０１１７】
グローバル座標系５１１は、床４１１に沿う方向にy軸とz軸を設け、床４１１から天井に向かう向きにx軸を設けている。
【０１１８】
なお、本例では、キャラクター４０１〜４０５はいずれも、床４１１に対して垂直に同じ方向に立っており、床４１１に向かう向きで俯瞰した図であるから、ローカル座標系５０１〜５０５およびグローバル座標系５１１において、x軸は図示を省略している（以下同様）。また、y軸の矢印は鏃が片方の形（チェックマーク「レ」の縦棒を伸ばしたような形）、z軸の矢印は鏃が両方の形（Ｖ字の中央に縦棒を引いた「↓」のような形）で、それぞれ表記している。
【０１１９】
本図に示すように、ローカル座標系５０１、５０２、５０３、５０４、５０５は、互いに平行（x座標軸同士が平行、y座標軸同士が平行、z軸座標同士が平行）であり、その原点の位置がＶ字状に配置されている。
【０１２０】
一方、グローバル座標系５１１は、床４１１に固定（床４１１に連動）しており、ローカル座標系５０１、５０２、５０３、５０４、５０５との相対的な位置関係は、本図に示す例に限定されるものではなく、任意である（以下同様）。
【０１２１】
ローカル座標系５０１、５０２、５０３、５０４、５０５は、キャラクター４０１、４０２、４０３、４０４、４０５が基本姿勢にあるときの位置と向きを定めるものである。したがって、キャラクター４０１、４０２、４０３、４０４、４０５の姿勢を変化させるときには、ローカル座標系５０１、５０２、５０３、５０４、５０５において、それぞれの制御点を同じ変位だけ移動させれば良い。
【０１２２】
また、図８には、仮想空間を３次元グラフィックス表示する際の視点位置５３１がカメラのような形状の図形で、視線方向５３２が細い矢印で、それぞれ表示されている（以下同様）。視点位置５３１から視線方向５３２に所定距離だけ離れた視線方向５３２を法線とする投影面に、視点位置５３１を焦点とする透視投影を行うことによって、図４のような画像が生成されるのである。
【０１２３】
図５、図６では、白服白髪キャラクター４０２、白服黒髪キャラクター４０３、黒服白髪キャラクター４０４、黒服黒髪キャラクター４０５の４人が正方形の頂点に、帽子キャラクター４０１が正方形の中央に、それぞれ配置されて表示されている。
【０１２４】
図５に対応する図９を見ると、正方形５５１（本図では一点鎖線により示している。）の中心５５２付近に、ローカル座標系５０１が配置されている。また、ローカル座標系５０２、５０３、５０４、５０５が正方形５５１の頂点に配置され、それぞれのz軸は、正方形５５１の中心５５２から離れる方向を向いており、全体として、拡散するような印象を与える配置になっている。
【０１２５】
図６に対応する図１０では、ローカル座標系５０１〜５０５の配置は図９の場合と類似しているが、ローカル座標系５０１〜５０５の向きが互いに平行となっており、全体として、整然とした印象を与える配置となっている。
【０１２６】
図７では、帽子キャラクター４０１、黒服黒髪キャラクター４０５、黒服白髪キャラクター４０４の３人のみが画面に表示されている。図１１を見ると、ローカル座標系５０１〜５０５は、逆Ｖ字型に配置されているが、ローカル座標系５０２、５０３が視点位置５３１の背後に存在するような配置となっているため、白服白髪キャラクター４０２と白服黒髪キャラクター４０３は画面に表示されないのである。
【０１２７】
この他の座標系の配置は、舞台における振り付けのバリエーションに応じて種々考えられるが、たとえば、ラインダンスのような状況を表現する配置情報では、各座標系を互いに平行に、各座標系の原点を一直線上に等間隔に配置すれば良い。
【０１２８】
また、盆踊りのような状況を表現する配置情報では、座標系の原点を円周に等間隔に配置し、座標系の向き（たとえばz軸）を円周に接するように配置することになる。
【０１２９】
このほか、アイドルグループの中の一人が歌を歌い、他のメンバーがそれを見守るような状況を表現する配置状況は、図９とは逆に、周囲に配置された座標系のz軸が中央を向かうように設定する。
【０１３０】
本実施形態では、図８〜図１１に示すように、複数の配置情報を用意しておくのであるが、各配置情報には、具体的には、以下のような情報を格納しておく。
（１）視点位置５３１の座標値、視線方向５３２の方向ベクトル値、投影面と視点位置５３１の距離。
（２）キャラクターのそれぞれに対応付けられるローカル座標系（ローカル座標系５０１〜５０５）の、グローバル座標系（床４１１に固定される座標系）に対する相対的な位置および向き。
（３）その他、仮想空間の様子を定義する種々の情報。たとえば、仮想空間に配置されるオブジェクトの情報や、仮想空間を照らす光源の位置、向き、種類の情報等。これらは、配置情報のそれぞれにおいて互いに異なるものとしても良いし、共通するものとしても良い。
【０１３１】
次に、姿勢記憶部３０４は、キャラクターの基準位置・基準向きを定めるローカル座標系におけるキャラクターの位置・姿勢を表す座標群を、時間の経過に対応付けて記憶する記憶する。
【０１３２】
図１２は、図４〜図７におけるキャラクターの姿勢を表す座標群の概要を説明する説明図である。本図（ａ）、（ｂ）、（ｃ）、（ｄ）は、それぞれ、図４、５、６、７におけるキャラクターの姿勢に対応している。以下、本図を参照して説明する。
【０１３３】
なお、本図では、理解を容易にするため、キャラクター４０１およびローカル座標系５０１を例にあげて説明するが、他のキャラクターおよび座標系の組み合わせについても、同様の議論が適用できる。
【０１３４】
キャラクター４０１の姿勢は、キャラクター４０１の骨（スケルトン）に相当するボーン５７１（本図では、白丸に挟まれた太い線分で表記されている。また、理解を容易にするため、本図（ａ）の一部のボーンのみについて、符号を付している。）のローカル座標系５０１に対するボーン５７１の相対的な位置および向きによって定義される。各ボーン５７１の長さは固定で、隣り合うボーン５７１と端点で連結される、という制約を課すのが一般的である。
【０１３５】
したがって、いずれか１つのボーン５７１を基準ボーンとし、それ以外のボーン５７１は隣りのボーン５７１に対する相対的な向きのみを定めれば、ボーン５７１全体の形状が決まる。
【０１３６】
ボーン５７１の周囲には、キャラクター４０１の外見を定めるための制御点が配置される。この制御点は、いずれかのボーン５７１に対して相対的に固定された位置に配置されており、ボーン５７１が位置や向きを変えると、これに連動して位置が変化する。
【０１３７】
制御点をポリゴンの頂点としたり、ＮＵＲＢＳの制御点とすることで、キャラクター４０１の外形（皮膚）を表すスキンが定められる。このスキンに対して、対応するテクスチャを貼り込むことにより、図４等に示されるキャラクター４０１の画像が得られるのである。
【０１３８】
さて、図４では、キャラクター４０１は、手を腰にあてて、左足を左に少し出した姿勢をとっている。一方、本図（ａ）では、ボーン５７１全体は、このキャラクター４０１と同じような位置関係をなしており、ローカル座標系５０１のz軸とほぼ同じ方向を向くように配置されている。
【０１３９】
一方、図５では、キャラクター４０１は、右手を上に上げている。そこで、本図（ｂ）でも同様に、右手に対応するボーン５７１が上に高く上げられている。
【０１４０】
図６では、キャラクター４０１は、右手と左手を前に出し、左側の足を踏み込むような姿勢をとっている。本図（ｃ）でも同様に、ボーン５７１全体として同じような形状をとっている。
【０１４１】
図７では、キャラクター４０１は、左足を伸ばし右足を曲げて、体重を右脚にかけており、右手は後方に伸ばし、左手を曲げている。本図（ｄ）でも同様に、ボーン５７１全体として同じような形状をとるように、各ボーン５７１の位置や向きが定められている。
【０１４２】
このように、位置や姿勢を表す座標群とは、ボーン５７１の位置や向きをローカル座標系５０１に対して定めたものである。この座標群を時間とともに変化させることで、キャラクター４０１を踊らせたりするモーションを付けることができるのである。
【０１４３】
姿勢記憶部３０４には、１つのキャラクター４０１に対する座標群が、経過時間に対応付けて記憶される。これらをまとめて、キャラクター４０１のモーション情報と呼ぶ。キャラクター４０１の姿勢を滑らかに自然に変化させるためには、モーション情報の精度を高くする必要がある。すなわち、経過時間の刻み幅を小さくするとともに、ボーン５７１の数を増やすのである。
【０１４４】
したがって、モーション情報をキャラクターごとに用意すると、データ量が大きくなってしまう。
【０１４５】
本発明では、キャラクター４０１用のモーション情報を、キャラクター４０２〜４０５についても同じく適用するため、データ量を抑制することができる。
【０１４６】
また、配置情報によって、グローバル座標系に対するローカル座標系５０１〜５０５の位置や向きが定められる。キャラクター４０１用のモーション情報に含まれる座標値を、ローカル座標系５０１における座標値と考え、これをグローバル座標系に直交変換すれば、床４１１に対するキャラクター４０１の位置や姿勢が確定する。
【０１４７】
同様に、床４１１に対するキャラクター４０２、４０３、４０４、４０５のそれぞれの位置や姿勢を得るには、キャラクター４０１用のモーション情報に含まれる座標値を、グローバル座標系に対するローカル座標系５０２、５０３、５０４、５０５の位置や向きと同じだけ移動・回転させるような直交変換を行えば良い。
【０１４８】
ここで、直交変換とは、平行移動、回転移動、反転（鏡像）移動等、変換によって点同士の距離が変化しないような座標変換を意味する。上記の配置情報では、反転（鏡像）移動は含まれていないが、ローカル座標系を右手系から左手系にすれば、２人のキャラクターの姿勢が鏡像のような関係になる。
【０１４９】
なお、本実施例では、理解を容易にするため、各ボーン５７１のサイズが共通するキャラクター４０１〜４０５の姿勢を変化させることを前提としているが、各ボーン５７１のサイズがキャラクターごとに異なる場合に本発明を適用することも可能である。たとえば、キャラクター４０１におけるモーション情報内の座標値を拡大縮小すれば、大きなキャラクターや小さなキャラクターに対応させることができ、アフィン変換すれば、キャラクターの外形を細長くしたり太く短くしたりすることができる。
【０１５０】
また、ボーン５７１の相対的な位置関係のみを利用する、という手法もある。すなわち、キャラクターごとに、対応するボーン５７１が隣接するボーン５７１に対してとる向きを共通にするのである。この場合には、各ボーン５７１の長さをキャラクターごとに変えることで、キャラクターの背の高さや腕、足の長さ等の多様性を持たせることができる。
【０１５１】
図１３は、本実施形態に係るキャラクター表示装置３０１にて実行されるキャラクター表示処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１５２】
本処理が開始されると、ＣＰＵ  １０１は、ＲＡＭ  １０３の初期化を行う（ステップＳ９０１）。配置情報や姿勢情報のほか、仮想空間内の様子を表すのに必要なスキンの制御点情報、テクスチャ情報等は、一般には、ＤＶＤ−ＲＯＭ等に記録されているため、これらの情報をＤＶＤ−ＲＯＭドライブ１０８を介してＲＡＭ  １０３に読み込む処理や、現在の時刻を取得して本処理開始時からの経過時間が計算できるようにする処理、音声処理部１１０にＭＩＤＩデータを読み出して楽曲の再生を開始するよう指示する処理等を初期化の際に行っても良い。
【０１５３】
つぎに、ＣＰＵ  １０１は、ＲＡＭ  １０３内に用意された配置情報の中から、いずれか１つの配置情報を、選択する（ステップＳ９０２）。したがって、ＣＰＵ  １０１は、ＲＡＭ  １０３と共働して配置選択部３０３として機能する。配置情報は、ランダムに選択しても良いし、あらかじめ巡回的な順序が定められている場合には、「先頭」に相当する配置情報を選択することとしても良い。
【０１５４】
また、後述するように、同時に再生されている楽曲の所定の小節の区切りが到来したときや、ユーザが所定のキーやボタンを押圧操作したときなどにも、配置情報の再選択が行われる。
【０１５５】
さらに、ＣＰＵ  １０１は、処理を開始してからの経過時間を測定する（ステップＳ９０３）。ステップＳ９０１で取得した時刻と現在時刻との差を計算することとしても良いし、音声処理部１１０に、ＭＩＤＩデータの再生を開始してからどれだけ時間が経過したかの問い合わせを出して、経過時間を取得することとしても良い。
【０１５６】
ついで、ＣＰＵ  １０１は、ＲＡＭ  １０３内に用意された姿勢情報から、現在の経過時間に対応付けられる座標群を取得する（ステップＳ９０４）。したがって、ＣＰＵ  １０１は、ＲＡＭ  １０３と共働して、姿勢取得部３０５として機能する。
【０１５７】
さらに、ＣＰＵ  １０１は、ステップＳ９０２で得られた配置情報に定義されるキャラクター４０１〜４０５のローカル座標系５０１〜５０５と、グローバル座標系５１１の相対的な位置、向きの関係に基づいて、ステップＳ９０４において得られた座標群を直交変換して、各キャラクター４０１〜４０５のグローバル座標系５１１におけるボーン５７１の位置および向きを表す座標群を得る（ステップＳ９０５）。したがって、ＣＰＵ  １０１は、ＲＡＭ  １０３と共働して、移動回転部３０６として機能する。なお、画像処理部１０７が備える画像演算プロセッサを用いることで、上記の座標変換を高速に行うことも可能である。
【０１５８】
上記のように、配置情報には、キャラクター４０１〜４０５の基準位置・基準向きが、ローカル座標系５０１〜５０５によって定義されている。そこで、キャラクター４０１〜４０５の姿勢を表す座標群を、当該ローカル座標系５０１〜５０５における座標値の集合体として取り扱い、グローバル座標系５１１における座標値を計算するのである。
【０１５９】
これにより、キャラクター４０１〜４０５のボーン５７１の位置や向きが定められるため、ＣＰＵ  １０１は、自身で計算し、あるいは、画像処理部１０７の画像演算プロセッサ等に指示を出して、各キャラクターのスキン制御点のグローバル座標系５１１における位置を計算し、スキン制御点の位置からテクスチャを貼り込む位置を定め、選択された配置情報に定義される視点位置５３１、視線方向５３２（および、透視投影を用いる場合は、投影面との距離）の情報を用いて、仮想空間内に配置されたキャラクター４０１〜４０５の画像を生成する（ステップＳ９０６）。
【０１６０】
当該配置情報ごとに仮想空間内オブジェクトの情報や、照明の情報などが定義されている場合には、現在の配置情報を参照して画像を生成するし、また、全配置情報で共通する場合には、その情報を参照する。これらの情報は、主に、キャラクター４０１〜４０５の背景の画像を生成する場合に利用される。
【０１６１】
ここで生成された画像は、ＲＡＭ  １０３内に保持される。
【０１６２】
さらに、垂直同期割込が発生するまで待機する（ステップＳ９０７）。この待機中には、他の処理をコルーチン的に実行することも可能である。
【０１６３】
そして、垂直同期割込が発生したら、ＲＡＭ  １０３内の画像をフレームメモリに転送して、画像処理部１０７に指示を出し、実際にモニタに画面表示する（ステップＳ９０８）。
【０１６４】
したがって、ＣＰＵ  １０１は、ＲＡＭ  １０３や画像処理部１０７と共働して生成表示部３０７として機能する。
【０１６５】
ついで、ＣＰＵ  １０１は、配置情報の選択をやり直す必要があるか否かを判断し（ステップＳ９０９）、必要があれば（ステップＳ９０９；Ｙｅｓ）、ステップＳ９０２へ、必要がなければ（ステップＳ９０９；Ｎｏ）、ステップＳ９０３へ、それぞれ戻る。具体的には、以下のような手法が考えられる。
【０１６６】
第１の手法は、ユーザによるコントローラ１０５の指示操作があった場合に、配置情報の選択をやり直す、とするものである。３次元表示ができるゲームにおいては、コントローラ１０５のＬ１ボタン２１５やＬ２ボタン２１６は、視点（カメラ）の切り替えに利用されることが多い。
【０１６７】
本実施形態では、配置情報に視点位置５３１、視線方向５３２が含まれているため、視点（カメラ）の切り替えは、そのまま、配置情報の切り替えに相当する。
【０１６８】
この際に、配置情報に巡回的な順序をつけておき、Ｌ１ボタン２１５が押圧操作されたら、ステップＳ９０２では、「次」の配置情報を選択するとし、Ｌ２ボタン２１６が押圧操作されたら、ステップＳ９０２では、「前」の配置情報を選択する、等とすることができる。
【０１６９】
また、ジョイスティック２１３、２１４を視線（カメラ）の位置や方向を微調整するために利用する手法もゲームにおいて利用されている。本実施形態においては、ジョイスティック２１３、２１４の操作に応じて、現在選択されている配置情報の視点位置５３１や視線方向５３２を、当該操作に対応する量だけ変化させて更新することとすれば良い。
【０１７０】
第２の手法は、楽曲の小節の区切に合わせて配置情報の選択をやり直す、というものである。ＭＩＤＩ情報には、再生のテンポが明示され、小節単位で再生音の音色、音高、音長が指定される。また、ＭＩＤＩ情報には、ユーザが自由に拡張できる拡張コマンドを含めることができる。そこで、この拡張コマンドの一つとして、「配置情報再選択」コマンドを用意するのである。
【０１７１】
配置情報再選択コマンドは、たとえば４小節ごと、あるいは、８小節ごとなど、楽曲の区切りにあらかじめ挿入しておく。そして、音声処理部１１０が、配置情報再選択コマンドが配置された小節の区切りに至ったタイミングで、配置情報の再選択をするよう、ＣＰＵ  １０１に指示を出す、というものである。
【０１７２】
たとえば、ＲＡＭ  １０３内のフラグ領域に音声処理部１１０が配置情報再選択フラグを立て、ＣＰＵ  １０１が再選択を行ったら、配置情報再選択フラグをクリアする、などの手法によって、これを実現することができる。
【０１７３】
本手法を採用する場合には、モーション情報のさらなる活用をすることもできる。たとえば、配置情報再選択コマンド同士の最大間隔が８小節であり、これより短い間隔で配置情報再選択コマンドが配置されるＭＩＤＩデータを想定する。
【０１７４】
この場合、キャラクターが同じ配置でダンスをする時間は、最大で８小節時間である。
【０１７５】
そこで、姿勢記憶部３０４に記憶されるモーション情報として最大間隔（上記例では、８小節時間長）のものを複数用意しておく。このモーション情報は、ソシアルダンスでいうフィガー（ステップ）のような、振り付け単位の断片に相当するものである。そして、配置情報が再選択されるときに、ランダムに（あるいは、所定の順序で）モーション情報も再選択し、姿勢取得部３０５は、当該モーション情報内において当該モーション情報が再選択されてからの経過時間に対応付けられた姿勢の座標群を取得することとするのである。すなわち、配置情報が再選択されると、新たな振り付け断片が開始されることとなる。
【０１７６】
配置情報が再選択されると、配置や視点位置等が切り替えられるため、ダンスの振り付けに不連続なところがあっても、観者に不自然な印象を与える程度は少ない一方で、単純な振り付けの単位を連綿と続けることによって、踊りのバリエーションを増やすこともできる。
【０１７７】
第３の手法は、配置情報そのものに、当該配置情報が採用される時間区間を定義しておく、というものである。すなわち、経過時間が○○秒〜○○秒、××秒〜××秒、…の間は、当該配置情報を採用する。
【０１７８】
本手法は、ランダムに踊りの振り付けを生成するのではなく、たとえばビデオクリップのようなある程度固定化された動画像をユーザに見せたい場合に好適である。
【０１７９】
なお、配置情報ごとの時間区間は、互いに重複しないようにし、全時間区間を連結したときに隙間がないようにすることが望ましいが、重複している場合にはその中からランダムに選択し、隙間が生じた場合には、全配置情報からランダムに選択する等の手法を採用することもできる。
【０１８０】
このように、姿勢取得部３０５、移動回転部３０６、生成表示部３０７における処理は、垂直同期割込周期で繰り返されるため、複数のキャラクターが時間の経過とともに姿勢を変化させていく様子の動画像が表示されることになる。
【０１８１】
本実施形態によれば、各キャラクターは同じ姿勢をしているため、モーション情報のデータ量を低減することができ、ハードウェア等による計算支援が可能な直交変換によって各キャラクターの姿勢が得られるため、計算負荷は少なく、しかも、様々な配置情報によって位置や向きに変化を持たせることができ、配置情報は、適切なタイミングで切り替えられるため、ユーザの興味を惹くことができるようになる。
【０１８２】
以下では、上記の実施形態の種々の変形例について順に説明する。
【実施例２】
【０１８３】
上記の配置情報の例では、座標系の原点は、いずれも床４１１に相当する平面の上に乗っていたが、原点の位置関係を変化させることとしても良い。図１４は、このような種々の配置情報の様子を示す説明図である。以下、本図を参照して説明する。なお、本図では、x軸の先端には白丸を描いている。
【０１８４】
本図（ａ）には、キャラクターを階段状の舞台に並べる場合の配置情報の様子が描かれている。床４１１は階段状の形状をしており、ローカル座標系５０１〜５０５は、グローバル座標系５１１における高さが異なる位置に配置されている。
【０１８５】
また、上記の配置情報の例では、各座標系のx軸を平行に配置していた。これは、重力が一定の方向に働くことに対応するものである。しかしながら、水中や無重力空間でのキャラクターの振舞いを考える場合などには、重力の影響は少なくなるから、このような制限はない。
【０１８６】
たとえば、本図（ｂ）に示すように、ローカル座標系５０１〜５０５のx軸が、ある遠方の一点９５１に収束する配置を採用することができる。これは、無重力空間で鉄製の球形の床４１１に磁気靴を用いてキャラクターが立つような状況に相当するものである。
【実施例３】
【０１８７】
上記実施形態では、配置情報が新たに選択されると、直ちにキャラクター４０１の配置が更新された画像が、画面に表示されることとなっていたが、配置情報が切り替えられてから所定の移行時間が経過するまでは、あらかじめ用意した静止画像もしくは動画像を表示することとしても良い。
【０１８８】
たとえば、配置情報の切り替え時に、極めて短い時間だけ、黒色一色で塗り潰された静止画像や、稲妻が落ちる様子や爆発が起きる様子などを描いた動画像等を表示することとするものである。
【０１８９】
視点の切り替えと配置情報の切り替えを連動させる場合に、移行用の動画像として、たとえば、フィルムのコマが縦に移動するかのような動画像、レンズのフィルターを交換するかのような動画像、ピントの調整をしたりするかのような動画像等を表示することとしても良い。
【０１９０】
このようにすると、キャラクターの配置の変化に一定時間の猶予が設けられるため、キャラクターが一瞬で移動するかのような印象をユーザに与える程度を低減させることができる。
【実施例４】
【０１９１】
前述のように、キャラクター表示装置３０１は、注目同定部３０８、配置交換部３０９をさらに備えるように構成することができる。ＣＰＵ  １０１は、ＲＡＭ  １０３や画像処理部１０７と共働して、注目同定部３０８、配置交換部３０９として機能する。
【０１９２】
本実施形態では、各配置情報に、複数のキャラクターのうちのいずれが主キャラクターであるか、の情報を含めるようにする。
【０１９３】
たとえば群舞においては、最も目立たせたいキャラクターが、中央に配置されるのが典型的である。そこで、このような目立たせたいキャラクターを主キャラクターとして、配置情報に位置・向きが定義されるキャラクターのいずれが主キャラクターであるか、を定義しておく。
【０１９４】
図４〜図７に示す表示例では、いずれも帽子キャラクター４０１がキャラクター配置の中央（Ｖ字形の頂点や四角形の中心等。）に位置している。したがって、本実施形態では、対応する配置情報において、主キャラクターが帽子キャラクター４０１である旨が記録されていることになる。
【０１９５】
さて、注目同定部３０８は、当該複数のキャラクターから、生成された画像において、所定の注目位置に最も近く投影された注目キャラクターを同定する。
【０１９６】
所定の注目位置としては、画面中央を採用するのが典型的であるが、それ以外の場所を選定しても良い。
【０１９７】
画面中央を所定の注目位置とする場合、注目キャラクターは、キャラクター４０１〜４０５のうち、視点位置５３１から視線方向５３２に伸びる線分との距離が最も短いキャラクターということになる。画面中央に配置されるキャラクターが複数いる場合には、視点位置５３１に最も近いキャラクターを注目キャラクターとすれば良い。
【０１９８】
たとえば、図４、図５、図７の表示例においては、注目キャラクターは帽子キャラクター４０１であるが、図６の表示例においては、注目キャラクターは黒服白髪キャラクター４０４である。
【０１９９】
ここで、主キャラクターが、いわば、演芸の提供側が客に注目してもらいたいと考える演者に相当するのに対し、注目キャラクターは、客が実際に注目している演者に相当する。
【０２００】
一般に、グループで演じられる演芸においては、当該グループにおける主キャラクターだけが人気をとるのではなく、他のメンバーについてもファンが定着することが多い。したがって、注目キャラクターが主キャラクターでない場合とは、「他のメンバーのファン」が画面を見ている場合に相当する。
【０２０１】
たとえば上記実施形態において、５人のキャラクターのうち、主キャラクターである帽子キャラクター４０１以外に視線方向を向けるような操作を、観者がコントローラ１０５で行うことがある。このとき、観者は、主キャラクター以外のキャラクターに注目をしている、と考えるのである。本実施形態は、このような場合に注目キャラクターを目立つ場所に配置し直すこととして、観者の興味をより一層惹くようにするものである。
【０２０２】
すなわち、配置交換部３０９は、当該ユーザからの指示入力により、記憶された複数の配置情報から、いずれか１つの配置情報が選択されると、その選択の直前に同定された注目キャラクターの基準位置・基準向きと、当該選択された配置情報における主キャラクターの基準位置・基準向きと、を、当該選択された配置情報において交換する。
【０２０３】
この際に、当該注目キャラクター以外のキャラクターの基準位置・基準向きを、互いにランダムに交換するように構成しても良い。
【０２０４】
注目キャラクターは、ユーザが注目していると想定されるキャラクターであるから、用途によっては、キャラクターの配置が変化させられたときにも、注目されるべき位置に配置することが望ましいことがある。
【０２０５】
そこで、直前の注目キャラクターを、新たな配置情報における主キャラクターの位置・向きに配置するため、注目キャラクターと主キャラクターの位置・向きを交換するのである。すなわち、ローカル座標系５０１〜５０５のうち、主キャラクターに対応付けられるものと、注目キャラクターに対応付けられるものと、の情報を、交換すれば良いことになる。
【０２０６】
本発明によれば、配置情報が切り替えられたとしても、ユーザが注目していると想定されるキャラクターはそのまま注目されると想定される位置に配置されるため、ユーザが受ける違和感を低減することができるようになる。
【０２０７】
また、ユーザが注目していないと想定されるキャラクターの位置を互いにランダムに交換すれば、画面表示の多様性を増し、ユーザの興味を惹くことができるようになる。
【産業上の利用可能性】
【０２０８】
以上説明したように、本発明によれば、複数のキャラクターの姿勢の時間変化を共通にしてデータ処理の低減を図る一方で、画面表示の多様性を増してユーザの興味を惹くのに好適なキャラクター表示装置、キャラクター表示方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【０２０９】
【図１】プログラムを実行することにより、本発明のキャラクター表示装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。
【図２】情報処理装置のコントローラの外観を示す説明図である。
【図３】上記情報処理装置にプログラムを実行させることにより実現されるキャラクター表示装置の一実施形態の概要構成を示す説明図である。
【図４】配置情報に基づいて仮想空間内にキャラクターが配置された様子を表す画像を示す説明図である。
【図５】配置情報に基づいて仮想空間内にキャラクターが配置された様子を表す画像を示す説明図である。
【図６】配置情報に基づいて仮想空間内にキャラクターが配置された様子を表す画像を示す説明図である。
【図７】配置情報に基づいて仮想空間内にキャラクターが配置された様子を表す画像を示す説明図である。
【図８】配置情報の概要を示す説明図である。
【図９】配置情報の概要を示す説明図である。
【図１０】配置情報の概要を示す説明図である。
【図１１】配置情報の概要を示す説明図である。
【図１２】キャラクターの姿勢を表す座標群の概要を説明する説明図である。
【図１３】本実施形態に係るキャラクター表示装置にて実行されるキャラクター表示処理の制御の流れを示すフローチャートである。
【図１４】配置情報の概要を示す説明図である。
【符号の説明】
【０２１０】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
１１１  マイク
２０１  ↑ボタン
２０２  ↓ボタン
２０３  ←ボタン
２０４  →ボタン
２０５  ○ボタン
２０６  ×ボタン
２０７  △ボタン
２０８  □ボタン
２０９  ＳＥＬＥＣＴボタン
２１０  ＳＴＡＲＴボタン
２１１  ＡＮＡＬＯＧボタン
２１２  インジケータ
２１３  ジョイスティック
２１４  ジョイスティック
２１５  Ｌ１ボタン
２１６  Ｌ２ボタン
２１７  Ｒ１ボタン
２１８  Ｒ２ボタン
３０１  キャラクター表示装置
３０２  配置記憶部
３０３  配置選択部
３０４  姿勢記憶部
３０５  姿勢取得部
３０６  移動回転部
３０７  生成表示部
３０８  注目同定部
３０９  配置交換部
４０１  帽子キャラクター
４０２  白服白髪キャラクター
４０３  白服黒髪キャラクター
４０４  黒服白髪キャラクター
４０５  黒服黒髪キャラクター
４１１  床
５０１  帽子キャラクター用のローカル座標系
５０２  白服白髪キャラクター用のローカル座標系
５０３  白服黒髪キャラクター用のローカル座標系
５０４  黒服白髪キャラクター用のローカル座標系
５０５  黒服黒髪キャラクター用のローカル座標系
５１１  グローバル座標系
５３１  視点位置
５３２  視線方向
５５１  正方形
５５２  中心
５７１  ボーン
９５１  収束点
【図１】
2008299693.tif 000003
【図２】
2008299693.tif 000004
【図３】
2008299693.tif 000005
【図４】
2008299693.tif 000006
【図５】
2008299693.tif 000007
【図６】
2008299693.tif 000008
【図７】
2008299693.tif 000009
【図８】
2008299693.tif 000010
【図９】
2008299693.tif 000011
【図１０】
2008299693.tif 000012
【図１１】
2008299693.tif 000013
【図１２】
2008299693.tif 000014
【図１３】
2008299693.tif 000015
【図１４】
2008299693.tif 000016