(57)【要約】【課題】仮想空間内のオブジェクトに、その対応する現実空間内の対象体と同一または類似の印象を与える姿勢を取らせる。【解決手段】本発明の一態様に係る位置データ処理装置は、第１の決定部と、判定部と、第２の決定部とを含む。第１の決定部は、第１の部位を有する対象体を含む１以上の物体の表面の現実空間における複数の位置データに基づいて、第１の部位の位置と、現実空間に設定された１以上のアンカーの位置とを決定する。判定部は、第１の部位がアンカーの各々と所定の関係にあるか否かを第１の部位の位置およびアンカーの位置に基づいて判定する。第２の決定部は、第１の部位がアンカーのいずれかと所定の関係にあると判定された場合に、対象体に対応する仮想空間上の対象オブジェクトの有する第１の部位に対応する第２の部位の位置をアンカーの位置に対応する仮想空間内の位置に基づいて決定する。【選択図】      図１
2020135428.tif 000002
【特許請求の範囲】
【請求項１】
第１の部位を有する対象体を含む１以上の物体の表面の現実空間における複数の位置データを取得するデータ取得部と、
前記複数の位置データに基づいて、前記第１の部位の位置と、前記現実空間に設定された１以上のアンカーの位置とを決定する第１の位置決定部と、
前記第１の部位が前記アンカーの各々と所定の関係にあるか否かを当該第１の部位の位置および当該アンカーの位置に基づいて判定する関係判定部と、
前記第１の部位が前記アンカーのいずれかと前記所定の関係にあると判定された場合に、前記対象体に対応する仮想空間上の対象オブジェクトの有する前記第１の部位に対応する第２の部位の位置を当該アンカーの位置に対応する仮想空間内の位置に基づいて決定する第２の位置決定部と
を具備する、位置データ処理装置。
【請求項２】
前記関係判定部は、前記第１の部位から第１のアンカーまでの距離が閾値未満である場合に、前記第１の部位が前記第１のアンカーと所定の関係にあると判定する、請求項１に記載の位置データ処理装置。
【請求項３】
前記関係判定部は、前記第１の部位から第１のアンカーまでの距離が閾値未満であって、かつ、前記第１の部位から前記第１のアンカーを除くいずれのアンカーまでの距離よりも大きくない場合に、前記第１の部位が前記第１のアンカーと所定の関係にあると判定する、請求項１に記載の位置データ処理装置。
【請求項４】
前記第２の位置決定部は、前記第１の部位が第１のアンカーと前記所定の関係にあると判定された場合に、前記第２の部位の位置を前記第１の部位の位置に対応する仮想空間内の位置よりも前記第１のアンカーの位置に対応する仮想空間内の位置に近い位置に決定する、請求項１に記載の位置データ処理装置。
【請求項５】
前記第２の位置決定部は、前記第１の部位が第１のアンカーと前記所定の関係にあると判定された場合に、前記第２の部位の位置を前記第１のアンカーの位置に対応する仮想空間内の位置に一致するように決定する、請求項１に記載の位置データ処理装置。
【請求項６】
前記第２の位置決定部は、前記第１の部位が第１のアンカー、第２のアンカーおよび第３のアンカーと前記所定の関係にあると判定された場合に、前記第２の部位の位置を、前記第１のアンカーから前記第１の部位までの距離、前記第２のアンカーから前記第１の部位までの距離および前記第３のアンカーから前記第１の部位までの距離の比と、前記第１のアンカーの位置に対応する仮想空間内の位置と、前記第２のアンカーの位置に対応する仮想空間内の位置と、前記第３のアンカーの位置に対応する仮想空間内の位置とに基づいて決定する、請求項１に記載の位置データ処理装置。
【請求項７】
前記アンカーの少なくとも１つは、前記対象体の表面に設定される、請求項１乃至請求項６のいずれか１項に記載の位置データ処理装置。
【請求項８】
前記アンカーの少なくとも１つは、前記仮想空間上で前記対象オブジェクトとは異なるオブジェクトとして表現される、前記対象体と異なる物体の表面に設定される、請求項１乃至請求項７のいずれか１項に記載の位置データ処理装置。
【請求項９】
前記第１の部位は、手である、請求項１乃至請求項８のいずれか１項に記載の位置データ処理装置。
【請求項１０】
前記第２の部位の位置を基準にＩＫ（Ｉｎｖｅｒｓｅ  Ｋｉｎｅｍａｔｉｃｓ）処理を行って前記対象オブジェクトの姿勢を制御する姿勢制御部をさらに具備する、請求項１乃至請求項９のいずれか１項に記載の位置データ処理装置。
【請求項１１】
コンピュータを
第１の部位を有する対象体を含む１以上の物体の表面の現実空間における複数の位置データを取得する手段、
前記複数の位置データに基づいて、前記第１の部位の位置と、前記現実空間に設定された１以上のアンカーの位置とを決定する手段、
前記第１の部位が前記アンカーの各々と所定の関係にあるか否かを当該第１の部位の位置および当該アンカーの位置に基づいて判定する手段、
前記第１の部位が前記アンカーのいずれかと前記所定の関係にあると判定された場合に、前記対象体に対応する仮想空間上の対象オブジェクトの有する前記第１の部位に対応する第２の部位の位置を当該アンカーの位置に対応する仮想空間内の位置に基づいて決定する手段
として機能させる、位置データ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実空間における位置データを仮想空間における位置データに変換する技術に関する。
【背景技術】
【０００２】
近年、例えばＨＭＤ（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）を装着した演者の身体の動きから生成したＭＣ（Ｍｏｔｉｏｎ  Ｃａｐｔｕｒｅ）データを利用して、演者に追従して動くオブジェクト、いわゆるアバターのアニメーションを生成し、観客の端末へインターネット経由で生配信することが知られている。このＭＣデータは、例えば、演者の身体に取り付けられたマーカーを複数のカメラにより撮影することで得られた複数の画像からマーカーの位置を検出することで生成されたり（光学式）、演者が装着するＨＭＤなどに搭載されたジャイロセンサおよび／または加速度センサなどの慣性センサの計測結果に基づいて、それぞれのセンサの位置姿勢を算出することで生成されたりする（慣性センサ式）。
【０００３】
しかしながら、演者の体格（特に、身体のプロポーション）と、そのアバターの体格とは必ずしも一致しない。例えば、アバターは、演者に比べて腕や脚が長かったり短かったり、頭部や胴部が大きかったり小さかったりすることがあり得る。このような場合に、ＭＣデータに忠実にアバターの姿勢を決定すると、例えば演者が手で顔を触る姿勢を取っている時に、アバターの手や前腕が頭部に埋没する、または逆に届いていない、というようにアバターの姿勢が演者の意図と異なるものとなることがある。故に、演者は従来、意図した姿勢をアバターに取らせるために、アバターをこまめに確認しながら、または感覚に頼って、自らの姿勢を調整する必要があった。
【０００４】
特許文献１には、「モーションキャプチャー装置によってアバターを動作させ、且つ、所定条件に該当する場合には生成動作でアバターを動作させ、より現実世界に合致した自然な動作を実現する」（要約書）と記載されている。具体例として、［００２９］には、「入力姿勢から、利用者が行っているしぐさが所定条件（例えば、歩きの身ぶり、走るの身ぶり、早歩きの身ぶり、泳ぐ、登る、飛ぶ、よける、しゃがむ、振り返る等の能動的動作）に該当することを判別したとき、適切な動作を生成し、生成動作に追従制御する」および「このとき、生成動作にアバターを完全に追従させるのではなく、入力姿勢への追従制御の比率を適切に制御することで、例えば、歩きながら手を振ったり等の、生成動作と利用者の動作を同時に実行させることができる」と記載されている。
【０００５】
また、特許文献２には、「操作者のスケルトン情報を利用した多様な画像を生成する」（［０００６］）ための技法が提供されている。具体的には、［０００８］によれば、体格等が異なる多様な操作者に対応するために、操作者のスケルトン情報で表されるスケルトンの骨の位置情報について補正処理を行い、補正処理の結果に応じた画像を生成することが看取できる。例えば、大人のスケルトンが第１の状態（例えば、右手を上げるなどの姿勢状態）である時のオブジェクト（例えば右手オブジェクト）の表示位置と、子供が同じ姿勢状態である時のオブジェクトの表示位置とが同じ位置になるように補正処理が行われる（［００７４］）。さらに、操作者の位置（例えば肩）と所定部位（例えば手）に対応する関節との間の角度を用いて、オブジェクトの表示位置の補正処理を行うことも看取できる（［０１１８］）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−３３４４４３号公報
【特許文献２】特開２０１１−２５８１５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の技法によれば、生成動作による追従制御を行うべき条件を逐一定義する必要があるが、演者の取り得るあらゆる姿勢について網羅的に条件を定義することは容易でない。加えて、生成動作と入力姿勢への追従制御との比率を適切に制御することは記載されているものの、入力姿勢への追従制御において演者およびアバターの体格のミスマッチは考慮されていないので、例えば歩きながら手を振る、という動作を実行させた場合に手が顔に埋没する／届かないなどの問題は依然として起こり得る。
【０００８】
また、特許文献２に記載の技法は、例えば手などのオブジェクトの表示位置を補正することで、操作者間の体格差によるゲームプレイの有利／不利が生まれるのを防止する（［０１０７］）という効果を奏する可能性はある。しかしながら、特許文献２においてその表示位置が補正されるのは、例えば図４（Ｂ）および図５（Ｂ）における左手オブジェクトＨＬおよび右手オブジェクトＨＲなどであって、アバターとなるキャラクタＣＨ１、ＣＨ２とは独立している。そして、特許文献２において、これらのキャラクタＣＨ１、ＣＨ２の姿勢の制御についての言及はない。
【０００９】
本発明は、仮想空間内のオブジェクトに、その対応する現実空間内の対象体と同一または類似の印象を与える姿勢を取らせることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様に係る位置データ処理装置は、データ取得部と、第１の位置決定部と、関係判定部と、第２の位置決定部とを含む。データ取得部は、第１の部位を有する対象体を含む１以上の物体の表面の現実空間における複数の位置データを取得する。第１の位置決定部は、複数の位置データに基づいて、第１の部位の位置と、現実空間に設定された１以上のアンカーの位置とを決定する。関係判定部は、第１の部位がアンカーの各々と所定の関係にあるか否かを第１の部位の位置およびアンカーの位置に基づいて判定する。第２の位置決定部は、第１の部位がアンカーのいずれかと所定の関係にあると判定された場合に、対象体に対応する仮想空間上の対象オブジェクトの有する第１の部位に対応する第２の部位の位置をアンカーの位置に対応する仮想空間内の位置に基づいて決定する。
【発明の効果】
【００１１】
本発明によれば、仮想空間内のオブジェクトに、その対応する現実空間内の対象体と同一または類似の印象を与える姿勢を取らせることができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係る位置データ処理装置を例示するブロック図。
【図２】図１の位置データ処理装置を適用可能なコンテンツ共有システムを例示するブロック図。
【図３】図２のクライアントによって生成されるＭＣデータの説明図。
【図４】現実空間における対象体を例示する図。
【図５】図４の対象体の姿勢に基づいて、アンカーを利用せずに生成される対象オブジェクトを例示する図。
【図６】図４の対象体の姿勢に基づいて、アンカーを利用して生成される対象オブジェクトを例示する図。
【図７】現実空間における対象体を例示する図。
【図８】図７の対象体の姿勢に基づいて、アンカーを利用せずに生成される対象オブジェクトを例示する図。
【図９】図７の対象体の姿勢に基づいて、アンカーを利用して生成される対象オブジェクトを例示する図。
【図１０】図１の位置データ処理装置の動作を例示するフローチャート。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら実施形態の説明を述べる。なお、以降、説明済みの要素と同一または類似の要素には同一または類似の符号を付し、重複する説明については基本的に省略する。例えば、複数の同一または類似の要素が存在する場合に、各要素を区別せずに説明するために共通の符号を用いることがあるし、各要素を区別して説明するために当該共通の符号に加えて枝番号を用いることもある。
【００１４】
（実施形態）  
実施形態に係る位置データ処理装置は、現実空間における複数の位置データを含む第１の位置データセットを取得し、これに対してマッピング（変換）を行うことでアバター画像のレンダリングに必要とされる仮想空間における複数の位置データを含む第２の位置データセットを生成する。なお、位置データ処理装置は、姿勢制御装置、または姿勢制御支援装置、などと呼ぶこともできる。
【００１５】
具体的には、この位置データ処理装置は、例えば物体の表面の複数の部位（光学ＭＣデータの場合には、動体の複数の部位に取り付けられたマーカー）の現実空間内の位置を示す３次元位置データを有する第１の位置データセットを、仮想空間における第２の位置データセットへ変換する。ここで、物体の数は、１つであってもよいし複数であってもよい。また、物体は、演者などの動体に限らず非動体を含み得る。この位置データ処理装置は、種々の位置データセットを処理可能であるが、以降の説明では便宜的にＭＣデータを入力することを前提とする。また、この位置データ処理装置は、２次元などの３次元以外の位置データを要素とする位置データセットにも適用可能である。
【００１６】
ＭＣデータは、例えば、ＭＣスタジオにおいて本格的に生成されてもよいし（第１の例）、例えばコンテンツ共有システムによって共有されることになるコンテンツ、例えば動画、またはＶＲ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ）、ＡＲ（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）、ＭＲ（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）などの仮想的コンテンツの演者（配信者）の自宅などで簡易に生成されてもよい（第２の例）。
【００１７】
第１の例では、演者はマーカー付きの全身タイツなどを装着することで、その身体の複数の部位の動きをマーカーを介して補足できるようにする。そして、スタジオ内に設置された複数のカメラが、異なるアングルから演者を撮影する。クライアント（例えば、スタジオ内に設置されたコンピュータ、または複数の画像データを収集可能にネットワーク、例えばインターネットに接続された遠隔コンピュータ）が、複数の画像からマーカーの３次元位置を検出することにより、ＭＣデータを生成する。
【００１８】
第２の例では、演者は、例えば慣性センサなどのセンサを内蔵したＨＭＤを頭部に装着し、および／またはセンサを内蔵したコントローラ（操作スティックとも呼ぶ）を把持する。そして、クライアントは、これらのセンサの計測結果であるセンシングデータを収集し、これらのセンシングデータに基づいて、演者の身体の複数の部位、例えば頭部および／または手の動きを計算することで、ＭＣデータを生成する。第２の例において、クライアントは、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、スマートフォンであってもよいし、または複数のセンシングデータを収集可能にネットワーク、例えばインターネットに接続された遠隔コンピュータであってもよい。
【００１９】
ＭＣデータを仮想空間における位置データに変換し、これに基づいてアバター画像を生成（レンダリング）することで、演者の挙動に合わせて身体を動かすアバターが登場する動画または仮想的コンテンツを作成することが可能となる。この場合に、ＭＣデータは、動画または仮想的コンテンツの１フレーム毎に生成され得る。かかる動画または仮想的コンテンツの共有を可能とするコンテンツ共有システムが図２に例示される。
【００２０】
図２のシステムは、クライアント２００と、サーバ３００と、観客端末４００−１，４００−２，・・・とを含む。
【００２１】
クライアント２００は、例えば演者の居るＭＣスタジオ、家庭内などにあるコンピュータであってもよいし、演者から得られた画像データ、センシングデータなどをネットワーク、例えばインターネット経由で収集する遠隔コンピュータであってもよい。クライアント２００は、演者から得られた画像データ、センシングデータなどに基づいて、ＭＣデータを生成する。ＭＣデータは、図３に例示されるように、演者の身体の複数の部位に取り付けられたマーカー（白丸）それぞれの３次元位置データを含み得る。クライアント２００は、典型的には、生の、または何らかの補正済みのＭＣデータをサーバ３００へ送信する。なお、クライアント２００および配信者端末が異なる場合には、ＭＣデータは、配信者端末経由でサーバ３００へ送信されてもよい。
【００２２】
なお、クライアント２００は、ＭＣデータそのものではなく、当該ＭＣデータを変換することで生成した仮想空間における位置データセット、これに基づくアバター画像、またはこれを含む動画もしくは仮想的コンテンツを生成し、サーバ３００へ送信してもよい。この場合には、実施形態に係る位置データ処理装置はクライアント２００に含まれることになる。
【００２３】
サーバ３００は、ネットワーク、例えばインターネットに接続されたコンピュータである。サーバ３００は、典型的には、クライアント２００からネットワーク経由でＭＣデータなどの現実空間における第１の位置データセットを受信する。サーバ３００は、受信した第１の位置データセットを仮想空間における第２の位置データセットへと変換し得る。すなわち、実施形態に係る位置データ処理装置は、サーバ３００に含まれることもあり得る。さらに、サーバ３００は、自ら生成した、またはクライアント２００から受信した仮想空間における位置データセットに基づいて、アバター画像、またはこれを含む動画もしくは仮想的コンテンツを生成し、観客端末４００（および）配信者端末に配信し得る。
【００２４】
なお、サーバ３００は、アバター画像、またはこれを含む動画もしくは仮想的コンテンツの代わりに、クライアント２００から受信した現実空間における第１の位置データセットを観客端末４００（および）配信者端末に配信してもよい。この場合には、かかるデータセットを受信した観客端末４００（および配信者端末）がマッピングを行う。すなわち、実施形態に係る位置データ処理装置は観客端末４００（および配信者端末）に含まれることもあり得る。或いは、サーバ３００は、自ら生成した、またはクライアント２００から受信した仮想空間における第２の位置データセットを観客端末４００（および配信者端末）に配信してもよい。
【００２５】
ここでは、１つのサーバ３００が位置データセットのマッピング（変換）、マッピング後のデータセットに基づくアバター画像、および／またはこれを含む動画または仮想的コンテンツの生成、ならびにアバター画像、動画または仮想的コンテンツの配信を行うこととしているが、これらは別個のサーバによって分担されてもよい。
【００２６】
前述のように、位置データセットのマッピングおよび／またはアバター画像の生成は、クライアント２００（または配信者端末）によってなされてもよいし、サーバ３００によってなされてもよいし、観客端末４００（および配信者端末）によってなされてもよい。
【００２７】
位置データセットのマッピングおよびこれに基づくアバター画像の生成をサーバ３００によって行えば、観客端末４００（および配信者端末）がこれらの処理をするための十分なマシンパワーを有していなかったとしても、観客（および配信者）が同一の動画または仮想的コンテンツを楽しむことができるという利点がある。他方、アバター画像を観客端末４００（およびクライアント２００または配信者端末）によって生成すれば、画像データに比べてサイズの小さな位置データセットが伝送されるので通信量を抑制することができる、サーバ３００の処理負荷を軽減できる、さらに観客（および配信者）が個別に好みの外観（キャラクタ、ファッション、など）のアバターを設定可能とすることで観客（および配信者）が挙動は同じだがアバターの外観は異なる動画または仮想的コンテンツを楽しむことができる、などの利点がある。
【００２８】
なお、配信者端末は仮想空間における位置データセットまたはこれに基づくアバター画像の宛先から除外されてもよい。また、配信者端末およびクライアント２００は互いに別の装置であってもよいし、両者が同一の装置であってもよい。ここで、配信者端末は、例えば、ＰＣ、モバイル端末（例えば、タブレット、ファブレット、スマートフォン、ラップトップ、ウェアラブルデバイス、ポータブルゲーム機、など）、据え置き型ゲーム機、などのネットワーク、例えばインターネットに接続可能な電子デバイスであってよく、配信者がＨＭＤにより動画または仮想的コンテンツを体験する場合には配信者端末はこのＨＭＤの制御装置として機能し得る。
【００２９】
観客端末４００は、図２のシステムによって共有されるコンテンツの受け手である観客にこのコンテンツを体験させる。観客端末４００は、配信者端末と同様にネットワーク、例えばインターネットに接続可能な電子デバイスであってよい。観客端末４００は、観客がＨＭＤにより動画または仮想的コンテンツを体験する場合には観客端末４００はこのＨＭＤの制御装置として機能し得る。観客端末４００は、サーバ３００からネットワーク経由で、位置データセット、これに基づくアバター画像、またはこれを含む動画もしくは仮想的コンテンツを受信する。観客端末４００は、受信した位置データセットに基づいてアバター画像を含む動画または仮想的コンテンツを生成、出力したり、受信したアバター画像に基づいて当該アバター画像を含む動画または仮想的コンテンツを生成、出力したり、受信した動画または仮想的コンテンツを出力したりする。動画または仮想的コンテンツは、観客端末４００に内蔵、外付けまたは無線接続された表示デバイス、例えば液晶ディスプレイ、有機ＥＬ（ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ、ＨＭＤなどによって出力（表示）され得る。
【００３０】
なお、図２のシステムでは、Ｃ／Ｓ（Ｃｌｉｅｎｔ  ／  Ｓｅｒｖｅｒ）型のネットワーク経由でＭＣデータなどが伝送されているが、かかるデータはＰ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）型のネットワーク経由で、すなわちクライアント２００（または配信者端末）から観客端末４００へ直接伝送されてもよい。
【００３１】
次に、実施形態に係る位置データ処理装置を説明する。この位置データ処理装置は、位置データセットのマッピングなどの処理を行うプロセッサを含む。ここで、プロセッサは、典型的にはＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）および／またはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であるが、マイコン、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、またはその他の汎用または専用のプロセッサなどであってもよい。
【００３２】
また、位置データ処理装置は、かかる処理を実現するためにプロセッサによって実行されるプログラムおよび当該プロセッサによって使用されるデータ、例えば、現実空間における第１の位置データセット（例えば、ＭＣデータ）、仮想空間における第２の位置データセット、部位／アンカー定義データ、などを一時的に格納し得るメモリを含んでいる。メモリは、かかるプログラム／データが展開されるワークエリアを有するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含み得る。
【００３３】
なお、位置データ処理装置は、全てのデータをオンメモリの状態で扱ってもよいし、一部のデータが補助記憶装置に退避されていてもよい。補助記憶装置は、例えば、位置データ処理装置に内蔵または外付けされたＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、フラッシュメモリなどであってもよいし、位置データ処理装置からアクセス可能なデータベースサーバであってもよい。
【００３４】
図１は、実施形態に係る位置データ処理装置を例示する。この位置データ処理装置は、データ取得部１０１と、現実空間位置決定部１０２と、部位／アンカー定義記憶部１０３と、位置関係判定部１０４と、仮想空間位置決定部１０５と、姿勢制御部１０６とを含む。
【００３５】
データ取得部１０１は、例えば前述のプロセッサであり得る。データ取得部１０１は、現実空間における第１の位置データセット、例えばＭＣデータを取得する。ここで、前述のように、第１の位置データセットは、クライアント２００によって生成される。位置データ処理装置１００がクライアント２００に含まれる場合には、データ取得部１０１は当該クライアント２００において生成された第１の位置データセットを取得し得る。他方、位置データ処理装置１００がサーバ３００または観客端末４００に含まれる場合には、データ取得部１０１は当該サーバ３００または観客端末４００によってクライアント２００からネットワーク経由で受信された第１の位置データセットを取得し得る。
【００３６】
現実空間における第１の位置データセットは、典型的には光学ＭＣデータであって、演者の身体の部位、または演者の周囲にある物体、すなわち動体または非動体の表面に取り付けられた複数のマーカーの現実空間における位置データを含み得る。動体は、演者などの人間であってもよいし、動物、または移動可能な機械であってもよい。他方、非動体は、例えば、家具（例えば、椅子、またはテーブルを含み得る）、道具（例えば、マイク、楽器、ラケット、またはボールを含み得る）、などであってもよい。データ取得部１０１は、取得した第１の位置データセットを現実空間位置決定部１０２へ送る。
【００３７】
現実空間位置決定部１０２は、例えば前述のプロセッサであり得る。現実空間位置決定部１０２は、データ取得部１０１から第１の位置データセットを受け取る。現実空間位置決定部１０２は、この第１の位置データセットに含まれる複数の位置データに基づいて、現実空間に存在する対象体の有する基準部位（第１の部位）の位置と、現実空間に設定された１以上のアンカーの位置とを決定する。現実空間位置決定部１０２は、基準部位の位置を示す基準部位データと、アンカーの位置を示すアンカーデータとを、第１の位置データセットとともに、位置関係判定部１０４へ送る。
【００３８】
対象体は、現実空間に存在する１つの物体であってもよいし、複数の物体であってもよい。対象体は、典型的には、演者などの動体であり得る。なお、現実空間に複数の演者が存在する場合には、その一部または全員が対象体として取り扱われ得る。さらに、対象体は、動体に限られず非動体も含み得る。
【００３９】
基準部位は、対象体に対応する仮想空間上のアバターなどのオブジェクト（以降、対象オブジェクトと呼ぶ）の姿勢を制御するための基準となり得る部位である。基準部位は、典型的には手であるが、これに限らず足、頭部、などの末梢部位であってよい。なお、各対象体が有する基準部位の数は、１つに限らず複数であってもよい。例えば、各対象体の基準部位として左手および右手が定められてもよい。
【００４０】
アンカーは、例えば、対象体の表面、または仮想空間上で対象オブジェクトとは異なるオブジェクト（アバターを含み得る）として表現される他の物体、すなわち動体または非動体の表面に設定され得る。アンカーは、例えば人間の頭、顔、目、鼻、口、肩、腰、などの部位、ドアノブ、ラケットやマイクのグリップ、などの基準部位が触れることが想定される部位に、演者または他の人間によって事前に手動で設定されてもよいし、画像解析の結果に基づいて自動的に設定されてもよい。
【００４１】
具体的には、現実空間位置決定部１０２は、部位／アンカー定義記憶部１０３に保存されている部位／アンカー定義データに基づいて、基準部位およびアンカーの現実空間内の位置を決定し得る。この部位／アンカー定義データは、基準部位およびアンカーの位置が、第１の位置データセットにおいてその位置が記述される複数のポイント、典型的にはマーカー、の位置データを用いてどのように定義されるかを示し得る。
【００４２】
基準部位またはアンカーの位置がいずれかのポイント（例えば、マーカー）の位置と一致するように定義されている場合には、現実空間位置決定部１０２は、当該ポイントの位置に基づいて当該基準部位またはアンカーの位置を決定できる。例えば、現実空間位置決定部１０２は、第１の位置データセットの示すポイントの位置をそのまま当該ポイントに一致するように定義された基準部位またはアンカーの位置として決定してもよい。他方、基準部位またはアンカーがいずれのポイントの位置とも一致しないように定義されている場合には、現実空間位置決定部１０２は、第１の位置データセットに含まれる少なくとも一部のポイントの位置データに基づいて演算を行うことで、基準部位またはアンカーの位置を決定（推定）してもよい。
【００４３】
部位／アンカー定義記憶部１０３は、例えば前述のメモリであり得る。部位／アンカー定義記憶部１０３は、部位／アンカー定義データを保存する。部位／アンカー定義データは、現実空間位置決定部１０２によって部位／アンカー定義記憶部１０３から読み出される。
【００４４】
部位／アンカー定義データは、前述のように、基準部位およびアンカーの位置が、第１の位置データセットにおいてその位置が記述される複数のポイント、典型的にはマーカー、の位置データを用いてどのように定義されるかを示し得る。例えば、基準部位およびアンカーは、第１のポイント、第２のポイントおよび第３のポイントそれぞれからの距離の比が所定値となる位置として定義されたり、第４のポイントと同じ位置にあるとして定義されたり、第５のポイントおよび第６のポイントを結ぶ線分を所定の比率で外分する位置にあるとして定義されたりし得る。なお、部位／アンカー定義データは、基準部位の定義を示す部位定義データと、アンカーの定義を示すアンカー定義データとに分離されてもよい。
【００４５】
位置関係判定部１０４は、例えば前述のプロセッサであり得る。位置関係判定部１０４は、現実空間位置決定部１０２から基準部位データおよびアンカーデータを受け取る。位置関係判定部１０４は、対象体の基準部位がアンカーの各々と所定の関係にあるか否かを、基準部位データおよびアンカーデータのそれぞれ示す基準部位およびアンカーの現実空間内の位置に基づいて判定する。そして、位置関係判定部１０４は、基準部位毎に、当該基準部位と所定の関係にあると判定されたアンカーを示すデータ（例えばアンカーＩＤ）を抽出する。位置関係判定部１０４は、この基準部位と所定の関係にあるアンカーを示すデータを、第１の位置データセット、基準部位データおよびアンカーデータとともに仮想空間位置決定部１０５へ送る。
【００４６】
所定の関係は、例えば、対象体の基準部位がアンカーと近接していること、であり得る。対象体の基準部位がアンカーと近接していることは、例えば、対象体の基準部位とアンカーとの距離が閾値未満であること、と定義され得る。ここで、閾値は、隣接アンカー間の間隔や、第１の位置データセットの測定誤差にも依存するが、例えば数ｃｍ程度に定められ得る。
【００４７】
なお、複数のアンカーが対象体の基準部位と近接している場合には、位置関係判定部１０４は、対象体の基準部位からの距離が小さい順に１つまたは複数のアンカーを示すデータを抽出してもよいし、またはこれら複数のアンカーのうち優先度に基づいて１つまたは複数のアンカーを示すデータを抽出してもよい。優先度は、事前に定義されていてもよいし、例えば何らかのルールにより第１の位置データセットに基づいて評価されてもよい。後者の例として、周囲の位置データからみてアンカーの位置データが大きな誤差を含んでいるおそれがある、などの理由で信頼性が低いと判定できる場合には、当該アンカーには低い優先度が割り当てられてもよい。
【００４８】
仮想空間位置決定部１０５は、例えば前述のプロセッサであり得る。仮想空間位置決定部１０５は、位置関係判定部１０４から、基準部位と所定の関係にあるアンカーを示すデータと、第１の位置データセットと、基準部位データと、アンカーデータとを受け取る。仮想空間位置決定部１０５は、現実空間内の位置（座標）を仮想空間内の位置（座標）にマッピング（変換）するための関数、ＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）、などを利用可能である。すなわち、仮想空間位置決定部１０５は、基準部位データ、アンカーデータおよび第１の位置データセットの示す現実空間内の位置から、その対応する仮想空間内の位置を導出できる。
【００４９】
仮想空間位置決定部１０５は、対象体の基準部位がアンカーのいずれかと所定の関係にあると判定された場合に、対象オブジェクトの有する部位のうち対象体の基準部位（第１の部位）に対応する基準部位（第２の部位）の位置を当該アンカーの位置に対応する仮想空間内の位置、すなわちアンカーの位置のマッピング結果である仮想空間内の位置、に基づいて決定する。
【００５０】
具体的には、仮想空間位置決定部１０５は、第２の部位の位置を、第１の部位の位置に対応する仮想空間内の位置よりも、現実空間における（１つの）アンカーの位置に対応する仮想空間内の位置に近い位置に決定し得る。一例として、仮想空間位置決定部１０５は、仮想空間における第２の部位の位置を、現実空間におけるアンカーの位置に対応する仮想空間内の位置に一致するように決定し得る。これにより、例えば対象オブジェクトの基準部位は、当該対象オブジェクトの他の部位の表面、または他のオブジェクトの表面に接触することになる。
【００５１】
他方、仮想空間位置決定部１０５は、第１の部位がアンカーのいずれとも所定の関係にないと判定された場合には、第２の部位の位置を第１の部位の位置に基づいて決定し得る。換言すれば、仮想空間位置決定部１０５は、対象体の基準部位の現実空間内の位置をマッピングし、その結果を対象オブジェクトの基準部位の仮想空間内の位置として決定し得る。
【００５２】
或いは、仮想空間位置決定部１０５は、第１の部位が複数のアンカーと所定の関係にあると判定された場合には、これらのアンカーの各々から当該第１の部位までの距離の比と、これら複数のアンカーに対応する仮想空間内の位置とに基づいて、第２の部位の位置を決定してもよい。例えば、仮想空間位置決定部１０５は、第１の部位が第１のアンカー、第２のアンカーおよび第３のアンカーと所定の関係にあると判定された場合に、第１のアンカー、第２のアンカーおよび第３のアンカーにそれぞれ対応する仮想空間内の位置から第２の部位までの距離ｄ１、距離ｄ２および距離ｄ３の比ｄ１：ｄ２：ｄ３が、第１のアンカー、第２のアンカーおよび第３のアンカーから第１の部位までの距離ｄ１’、距離ｄ２’および距離ｄ３’の比ｄ１’：ｄ２’：ｄ３’に一致または近似するように、第２の部位の位置を決定し得る。
【００５３】
仮想空間位置決定部１０５は、決定した対象オブジェクトの基準部位の仮想空間内の位置と、第１の位置データセットにおいてその位置が記述される複数のポイントに対応する仮想空間内の複数のポイントの位置とを示す第２の位置データセットを生成する。仮想空間位置決定部１０５は、第２の位置データセットを姿勢制御部１０６へ送る。
【００５４】
姿勢制御部１０６は、例えば前述のプロセッサであり得る。姿勢制御部１０６は、仮想空間位置決定部１０５から、第２の位置データセットを受け取る。姿勢制御部１０６は、第２の位置データセットによって示される、対象オブジェクトの基準部位の仮想空間内の位置を基準に、例えばＩＫ（Ｉｎｖｅｒｓｅ  Ｋｉｎｅｍａｔｉｃｓ）処理を行って当該対象オブジェクトの姿勢を決定する。例えば、姿勢制御部１０６は、この対象オブジェクトの基準部位の仮想空間内の位置を、当該基準部位の目標位置としてＩＫ処理を行うことができる。これにより、決定された対象オブジェクトの基準部位の位置を維持したまま、当該対象オブジェクトの基準部位を含む各部位の姿勢を物理的に不自然に見えないように、例えば関節の角度が対象オブジェクトにとって正常な範囲に収まるように、制御することができる。
【００５５】
なお、かかる姿勢制御は、位置データ処理装置１００によって実行されてもよいし、されなくてもよい。後者の場合には、位置データ処理装置１００は、姿勢制御部１０６を含まなくてもよい。そして、位置データ処理装置１００を含んでいる装置、例えば、クライアント２００またはサーバ３００、が姿勢制御を実行してもよいし、この装置から仮想空間における位置データを受信したサーバ３００または観客端末４００が姿勢制御を実行してもよい。
【００５６】
例えば図４に示されるように、現実空間において、対象体（演者）が、基準部位としての右手を右の額に当て、基準部位としての左手を左腰に当てる姿勢を取っていたとする。なお、図４において、アンカーＡ１，Ａ２，・・・，Ａ１４がそれぞれ三角形のシンボルとして描かれている。この対象体を、仮想空間において、より頭部が小さく、胴が短く、腕および脚が長い体型を有する対象オブジェクト（アバター）として表現するとする。
【００５７】
図５は、図４の対象体の姿勢に基づいて、アンカーを利用せずに生成した対象オブジェクトを例示する。図５の例では、対象体の左手および右手の位置にそれぞれ対応する仮想空間内の位置に、対象オブジェクトの左手および右手の位置がそれぞれ決定されている。対象オブジェクトは前述の体型を有しているので、対象オブジェクトの右手はその頭部よりも上に位置しており、その左手は腰よりも下に位置しており、対象体の現実の姿勢とは異なる印象を与える。故に、かかる姿勢制御の下で、対象オブジェクトに、図４における対象体の姿勢と同一または類似の印象を与える姿勢を取らせるためには、対象体は右手を下げて、左手を上げることが求められる。
【００５８】
次に、図６は、図４の対象体の姿勢に基づいて、アンカーを利用して生成した対象オブジェクトを例示する。図６において、図４のアンカーＡ１，Ａ２，・・・，Ａ１４の位置に対応する仮想空間内の位置がそれぞれ符号Ｂ１，Ｂ２，・・・，Ｂ１４付きの三角形のシンボルとして描かれている。図４において、対象体の右手はアンカーＡ１の近くに位置し、対象体の左手はアンカーＡ１０の近くに位置しているので、位置関係判定部１０４は、当該右手および左手はそれぞれアンカーＡ１およびアンカーＡ１０と所定の関係にあると判定し得る。そして、仮想空間位置決定部１０５は、対象オブジェクトの右手の位置をアンカーＡ１に対応する仮想空間内の位置（Ｂ１）に一致するように決定し、対象オブジェクトの左手の位置をアンカーＡ１０に対応する仮想空間内の位置（Ｂ１０）に一致するように決定し得る。これにより、対象オブジェクトに対象体の姿勢と同一または類似の印象を与える姿勢、すなわち右手を右の額に当て、左手を左腰に当てる姿勢を取らせることができる。
【００５９】
また、例えば図７に示されるように、現実空間において、１人目の対象体（演者）が、基準部位としての右手を挙げ、基準部位としての左手を２人目の対象体（演者）の右肩に添える姿勢を取っていて、２人目の対象体が基準部位としての両手を共に挙げる姿勢を取っていたとする。なお、図７において、アンカーＡ２１，Ａ２２，・・・，Ａ３４，Ａ４１，Ａ４２，・・・，Ａ５４がそれぞれ三角形のシンボルとして描かれている。これらの対象体を、仮想空間において、より頭部が小さく、胴が短く、腕および脚が長い体型を有する対象オブジェクト（アバター）として表現するとする。なお、２人目の対象体のアバターは、１人目の対象体のアバターに比べて身長が低いこととする。
【００６０】
図８は、図７の２人の対象体の姿勢に基づいて、アンカーを利用せずに生成した２人の対象オブジェクトを例示する。図８の例では、１人目および２人目の対象体の左手および右手の位置にそれぞれ対応する仮想空間内の位置に、１人目および２人目の対象オブジェクトの左手および右手の位置がそれぞれ決定されている。対象オブジェクトは前述の体型を有しているので、１人目の対象オブジェクトの左手は２人目の対象オブジェクトの右肩よりも上、右上腕のあたりに位置しており、２人の対象体の現実の姿勢とは異なる印象を与える。故に、かかる姿勢制御の下で、２人の対象オブジェクトに、図７における２人の対象体の姿勢と同一または類似の印象を与える姿勢を取らせるためには、当該１人目の対象体は左手を下げることが求められる。
【００６１】
次に、図９は、図７の２人の対象体の姿勢に基づいて、アンカーを利用して生成した２人の対象オブジェクトを例示する。図９において、図７のアンカーＡ２１，Ａ２２，・・・，Ａ３４，Ａ４１，Ａ４２，・・・，Ａ５４の位置に対応する仮想空間内の位置がそれぞれ符号Ｂ２１，Ｂ２２，・・・，Ｂ３４，Ｂ４１，Ｂ４２，・・・，Ｂ５４付きの三角形のシンボルとして描かれている。図７において、１人目の対象体の右手、ならびに２人目の対象体の左手および右手はいずれのアンカーからも離れており、１人目の対象体の左手はアンカーＡ４５の近くに位置しているので、位置関係判定部１０４は、１人目の対象体の右手、ならびに２人目の対象体の左手および右手はいずれのアンカーとも所定の関係にないと判定し、１人目の対象体の左手はアンカーＡ４５と所定の関係にあると判定し得る。そして、仮想空間位置決定部１０５は、１人目の対象オブジェクトの右手、ならびに２人目の対象オブジェクトの左手および右手の位置を図８の例と同様に決定し、１人目の対象オブジェクトの左手の位置をアンカーＡ４５に対応する仮想空間内の位置（Ｂ４５）に一致するように決定し得る。これにより、２人の対象オブジェクトに２人の対象体の姿勢と同一または類似の印象を与える姿勢、すなわちその１人目の対象オブジェクトに右手を挙げて左手を２人目の対象オブジェクトの右肩に添える姿勢、２人目の対象オブジェクトに両手を挙げる姿勢を取らせることができる。
【００６２】
以下、図１０を用いて、位置データ処理装置１００の動作を説明する。図１０の動作は、アバター画像、またはこれを含む動画もしくは仮想的コンテンツの１フレーム毎に行われ得る。
【００６３】
まず、データ取得部１０１は、クライアント２００、サーバ３００、または観客端末４００などから、現実空間における複数の位置データを含む第１の位置データセットを取得する（ステップＳ５０１）。
【００６４】
次に、現実空間位置決定部１０２は、ステップＳ５０１において取得された第１の位置データセットに基づいて、現実空間における少なくとも１つの対象体の少なくとも１つの基準部位の各々の位置と、現実空間に設定された１以上のアンカーの各々の位置とを決定する（ステップＳ５０２）。
【００６５】
次に、位置関係判定部１０４は、ステップＳ５０２において決定された基準部位およびアンカーの位置に基づいて、各基準部位がいずれかのアンカーと所定の関係にあるか否かを判定する。そして、位置関係判定部１０４は、基準部位毎に、当該基準部位と所定の関係にあると判定されたアンカーを示すデータ（例えばアンカーＩＤ）を抽出する（ステップＳ５０３）。ステップＳ５０３の終了後に、処理はステップＳ５０４へ進む。
【００６６】
ステップＳ５０４において、仮想空間位置決定部１０５は、少なくとも１つの対象体の少なくとも１つの基準部位のうち未選択の１つを選択する。そして、仮想空間位置決定部１０５は、ステップＳ５０３において抽出されたデータを参照し、ステップＳ５０４において選択された基準部位と所定の関係にあると判定されたアンカーが存在するか否かを確認する（ステップＳ５０５）。ステップＳ５０４において選択された基準部位と所定の関係にあると判定されたアンカーが存在しなければ処理はステップＳ５０６へ進み、当該基準部位と所定の関係にあると判定されたアンカーが存在すれば処理はステップＳ５０７へ進む。
【００６７】
ステップＳ５０６において、仮想空間位置決定部１０５は、ステップＳ５０４において選択された対象体の基準部位（第１の部位）の位置に対応する仮想空間内の位置（これは、ステップＳ５０２において決定済みである）を、仮想空間において当該対象体に対応する対象オブジェクトの当該基準部位に対応する基準部位（第２の部位）の位置として決定する。ステップＳ５０６の後に、処理はステップＳ５０８へ進む。
【００６８】
ステップＳ５０７において、仮想空間位置決定部１０５は、ステップＳ５０４において選択された対象体の基準部位（第１の部位）と所定の関係にあると判定されたアンカー（これは、ステップＳ５０３において抽出されたデータによって示される）の位置に対応する仮想空間内の位置（これは、ステップＳ５０２において決定済みである）に基づいて、仮想空間において当該対象体に対応する対象オブジェクトの当該基準部位に対応する基準部位（第２の部位）の位置を決定する。ステップＳ５０７の後に、処理はステップＳ５０８へ進む。
【００６９】
ステップＳ５０８において、仮想空間位置決定部１０５は、未選択の基準部位が残存するか否かを判定する。未選択の基準部位が残存すると判定されれば処理はステップＳ５０４に戻り、未選択の基準部位が残存しないと判定されれば処理はステップ５０９へ進む。
【００７０】
ステップＳ５０９において、姿勢制御部１０６は、ステップＳ５０４乃至ステップＳ５０８のループを通じて決定された、各対象オブジェクトの各基準部位の仮想空間内の位置を基準に例えばＩＫ処理を行って、当該対象オブジェクトの姿勢を制御する。
【００７１】
以上説明したように、実施形態に係る位置データ処理装置は、現実空間に存在する対象体の基準部位（例えば演者の手）に対応する仮想空間上の対象オブジェクト（例えばアバター）の基準部位の位置を、現実空間における当該基準部位の位置と現実空間（例えば、演者自身または他の物体の表面）に設定されたアンカーの位置との関係に基づいて決定する。具体的には、この位置データ処理装置は、現実空間において対象体の基準部位の位置がアンカーの位置と近接していると判定した場合には、現実空間におけるアンカーの位置に対応する仮想空間内の位置に基づいて対象オブジェクトの基準部位の仮想空間内の位置を決定する。このように決定された対象オブジェクトの基準部位の位置は、対象オブジェクトの姿勢制御に利用することができる。例えば対象オブジェクトの基準部位の位置を基準に例えばＩＫ処理を行って、対象オブジェクト全体の姿勢を決定することができる。これにより、例えば、演者の手が演者自身の頭部に設定されたアンカーに近接している場合にこの演者とそのアバターとの体格のミスマッチがあったとしても当該アバターに手で頭部を触る姿勢を取らせること、第１の演者の手が第２の演者の肩に設定されたアンカーに近接している場合にこれらの演者とそのアバターとの体格のミスマッチがあったとしても第１の演者のアバターに第２の演者のアバターの肩に手を添える姿勢を取らせること、などが可能となる。
【００７２】
上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。
【００７３】
上述の実施形態では、いくつかの機能部を説明したが、これらは各機能部の実装の一例に過ぎない。例えば、１つの装置に実装されると説明された複数の機能部が複数の別々の装置に亘って実装されることもあり得るし、逆に複数の別々の装置に亘って実装されると説明された機能部が１つの装置に実装されることもあり得る。
【００７４】
上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
【００７５】
上記各実施形態の処理の少なくとも一部は、例えば汎用のコンピュータに搭載されたプロセッサを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリなどである。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ（サーバ）上に格納し、ネットワーク経由でコンピュータ（クライアント）にダウンロードさせてもよい。
【符号の説明】
【００７６】
１００・・・位置データ処理装置
１０１・・・データ取得部
１０２・・・現実空間位置決定部
１０３・・・部位／アンカー定義記憶部
１０４・・・位置関係判定部
１０５・・・仮想空間位置決定部
１０６・・・姿勢制御部
２００・・・クライアント
３００・・・サーバ
４００・・・観客端末
【図１】
2020135428.tif 000003
【図２】
2020135428.tif 000004
【図３】
2020135428.tif 000005
【図４】
2020135428.tif 000006
【図５】
2020135428.tif 000007
【図６】
2020135428.tif 000008
【図７】
2020135428.tif 000009
【図８】
2020135428.tif 000010
【図９】
2020135428.tif 000011
【図１０】
2020135428.tif 000012