(57)【特許請求の範囲】
【請求項１】
拡張現実空間をユーザに提示する端末装置であって、
現実空間を撮像する撮像部と、
前記撮像部により撮像された前記現実空間と仮想オブジェクトとを含む前記拡張現実空間を表す拡張現実空間画像を表示する表示部と、
前記仮想オブジェクトの少なくとも一部を操作対象として決定する決定部と、
前記拡張現実空間における前記操作対象の動作を制御するオブジェクト制御部と、を備え、
前記オブジェクト制御部は、
前記撮像部の撮像方向を基準として設定され、それぞれ前記操作対象の回転軸として用いられる３つの軸からなる直交座標系に基づいて指定された前記操作対象の回転方向を含む回転操作情報を受け付け、
前記回転操作情報に基づいて前記操作対象を回転させる、端末装置。
【請求項２】
前記オブジェクト制御部は、
前記操作対象が決定された後の前記端末装置の移動方向及び移動量を検知し、
検知された前記端末装置の前記移動方向及び前記移動量に基づいて前記操作対象を移動させる、請求項１に記載の端末装置。
【請求項３】
前記オブジェクト制御部は、検知された前記端末装置の前記移動量と予め設定されたパラメータとに基づいて、前記操作対象の移動量を決定する、請求項２に記載の端末装置。
【請求項４】
前記オブジェクト制御部は、検知された前記端末装置の前記移動量を前記パラメータに基づいて増大させた値を、前記操作対象の移動量として決定する、請求項３に記載の端末装置。
【請求項５】
前記オブジェクト制御部は、検知された前記端末装置の前記移動量を前記パラメータに基づいて減少させた値を、前記操作対象の移動量として決定する、請求項３に記載の端末装置。
【請求項６】
前記オブジェクト制御部は、前記端末装置の姿勢の変化に応じて前記操作対象を回転させることなく、検知された前記端末装置の前記移動方向及び前記移動量に基づいて前記操作対象を移動させる、請求項２〜５のいずれか一項に記載の端末装置。
【請求項７】
前記仮想オブジェクトは、複数の部位を有しており、
前記決定部は、前記仮想オブジェクトの１つの前記部位を前記操作対象として決定する、請求項１〜６のいずれか一項に記載の端末装置。
【請求項８】
端末装置が備える撮像部によって撮像された現実空間と仮想オブジェクトとを含む拡張現実空間を表す拡張現実空間画像を、前記端末装置が備える表示部に表示するステップと、
前記仮想オブジェクトの少なくとも一部を操作対象として決定するステップと、
前記撮像部の撮像方向を基準として設定され、それぞれ前記操作対象の回転軸として用いられる３つの軸からなる直交座標系に基づいて指定された前記操作対象の回転方向を含む回転操作情報を受け付けるステップと、
前記回転操作情報に基づいて前記操作対象を回転させるステップと、を含む仮想オブジェクト操作方法。
【請求項９】
端末装置が備える撮像部によって撮像された現実空間と仮想オブジェクトとを含む拡張現実空間を表す拡張現実空間画像を、前記端末装置が備える表示部に表示するステップと、
前記仮想オブジェクトの少なくとも一部を操作対象として決定するステップと、
前記撮像部の撮像方向を基準として設定され、それぞれ前記操作対象の回転軸として用いられる３つの軸からなる直交座標系に基づいて指定された前記操作対象の回転方向を含む回転操作情報を受け付けるステップと、
前記回転操作情報に基づいて前記操作対象を回転させるステップと、を前記端末装置に実行させる仮想オブジェクト操作プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の一側面は、端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラムに関する。
【背景技術】
【０００２】
現実空間に仮想オブジェクトを重畳配置した拡張現実空間をユーザに提供する仕組みが知られている。例えば、特許文献１には、仮想オブジェクト（３Ｄオブジェクト）の構成要素毎のパラメータを調整するためのインジケータを画面上に表示し、インジケータを介したユーザからの指示を受け付けることにより、対応する構成要素の位置を調整する仕組みが開示されている。特許文献１には、具体例として、仮想オブジェクトの鼻に対応するインジケータを左右に動かすことで、仮想オブジェクトの鼻の位置を上下に調整する仕組みが例示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０２０−４６８６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示された仕組みによれば、インジケータを介したユーザ操作によって仮想オブジェクトの構成要素の位置を調整することができる。しかし、画面上に表示されるインジケータを用いる仕組みでは、２次元的な操作（例えば、上述したようにインジケータを左右にスライドさせる操作）を行うことしかできないため、３次元空間における上記構成要素の位置調整を直感的に行うことができない。
【０００５】
そこで、本開示の一側面は、拡張現実空間における仮想オブジェクトの位置調整を直感的に行うことが可能な端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本開示の一側面に係る端末装置は、拡張現実空間をユーザに提示する端末装置であって、現実空間を撮像する撮像部と、撮像部により撮像された現実空間と仮想オブジェクトとを含む拡張現実空間を表す拡張現実空間画像を表示する表示部と、仮想オブジェクトの少なくとも一部を操作対象として決定する決定部と、拡張現実空間における操作対象の動作を制御するオブジェクト制御部と、を備え、オブジェクト制御部は、操作対象が決定された後の端末装置の移動方向及び移動量を検知し、検知された端末装置の移動方向及び移動量に基づいて操作対象を移動させる。
【発明の効果】
【０００７】
本開示の一側面によれば、拡張現実空間における仮想オブジェクトの位置調整を直感的に行うことができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る端末装置であるユーザ端末のハードウェア構成の一例を示す図である。
【図２】図１のユーザ端末の機能構成の一例を示す図である。
【図３】図１のユーザ端末を用いたキャラクタオブジェクトの移動操作の処理手順の一例を示すフローチャートである。
【図４】キャラクタオブジェクトの移動操作の一例を説明するための図である。
【図５】キャラクタオブジェクトの移動操作の一例を説明するための図である。
【図６】図１のユーザ端末を用いたキャラクタオブジェクトの回転操作の処理手順の一例を示すフローチャートである。
【図７】キャラクタオブジェクトの回転操作の一例を説明するための図である。
【図８】キャラクタオブジェクトの回転操作の一例を説明するための図である。
【図９】比較例に係る仮想オブジェクトの回転操作を示す図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
【００１０】
［ユーザ端末の構成］
図１は、実施形態に係る端末装置であるユーザ端末１０のハードウェア構成の一例を示す図である。ユーザ端末１０は、ユーザによって用いられるコンピュータである。本実施形態では、ユーザ端末１０は、主に、現実空間を撮影する撮影機能と、撮影された現実空間に仮想オブジェクトを重畳配置した拡張現実空間を表す拡張現実空間画像を表示する表示機能と、を有する。
【００１１】
仮想オブジェクトは、実際には現実空間には存在しないが、現実空間に重畳して配置されることで、あたかも現実空間上に存在するかのような印象をユーザに与えるオブジェクト全般を指す。仮想オブジェクトの例としては、人や動物等の生物を模したキャラクタオブジェクト（アバター）、花瓶等の無生物を模したオブジェクト、拡張現実空間に対するユーザ操作に供するオブジェクト（例えば、拡張現実空間上の位置を指定するためのカーソル等を模したオブジェクト）等が挙げられる。
【００１２】
ユーザ端末１０は、上述した撮影機能と表示機能とを兼ね備えた端末装置であればよく、その種類及び構成は限定されない。ユーザ端末１０は、例えば、高機能携帯電話機（スマートフォン）、タブレット端末、ウェアラブル端末（例えば、ヘッドマウントディスプレイ（ＨＭＤ）、スマートグラス等）等である。
【００１３】
一例として、ユーザ端末１０は、ハードウェア構成要素として、プロセッサ１０１、主記憶部１０２、補助記憶部１０３、通信部１０４、撮像部１０５、タッチパネル１０６（表示部）、及びセンサ１０７を備える。
【００１４】
プロセッサ１０１は、オペレーティングシステム及びアプリケーションプログラムを実行する演算装置である。プロセッサ１０１は、例えばＣＰＵ又はＧＰＵであり得るが、プロセッサ１０１の種類はこれらに限定されない。
【００１５】
主記憶部１０２は、ユーザ端末１０を実現させるためのプログラム、プロセッサ１０１から出力された演算結果等を記憶する装置である。主記憶部１０２は、例えばＲＯＭ又はＲＡＭ等により構成される。
【００１６】
補助記憶部１０３は、一般に主記憶部１０２よりも大量のデータを記憶することが可能な装置である。補助記憶部１０３は、例えばハードディスク、フラッシュメモリ等の不揮発性記憶媒体によって構成される。補助記憶部１０３は、コンピュータをユーザ端末１０として機能させるための仮想オブジェクト操作プログラムＰ１と各種のデータとを記憶する。例えば、補助記憶部１０３は、仮想オブジェクトに関するデータを記憶してもよい。
【００１７】
通信部１０４は、通信ネットワークを介して他のコンピュータとの間でデータ通信を実行する装置である。通信部１０４は、例えばネットワークカード又は無線通信モジュールにより構成される。例えば、通信部１０４は、インターネット等の通信ネットワークを介して、外部のサーバ装置から仮想オブジェクトに関するデータをダウンロードし、ダウンロードしたデータを補助記憶部１０３に記憶させてもよい。
【００１８】
撮像部１０５は、現実空間を撮像する装置である。撮像部１０５は、現実世界を写した画像を撮影する機能を有する。撮像部１０５は、例えばカメラである。撮像部１０５は、動画像（映像）を撮影してもよいし、静止画（写真）を撮影してもよい。動画像を撮影する場合には、撮像部１０５は、映像信号を所与のフレームレートに基づいて処理することにより、時系列に並ぶ一連のフレーム画像を動画像として取得する。
【００１９】
タッチパネル１０６は、ユーザの操作を受け付ける入力インタフェースとして機能する。例えば、タッチパネル１０６は、ユーザのタッチ操作（例えば、タップ操作、スワイプ操作、マルチタッチ操作等）を受け付ける。タッチパネル１０６は、ユーザ端末１０で処理されたデータを出力する出力インタフェースとしても機能する。タッチパネル１０６は、撮像部１０５により撮像された現実空間と仮想オブジェクトとを含む拡張現実空間を表す拡張現実空間画像を表示する機能を有する。すなわち、ユーザ端末１０は、タッチパネル１０６に拡張現実空間画像を表示させることで、拡張現実空間をユーザに提示する。
【００２０】
センサ１０７は、ユーザ端末１０の移動方向及び移動量（変位量）を検知するためのセンサである。センサ１０７は、例えば加速度センサである。ただし、センサ１０７の種類は上記に限定されない。例えば、センサ１０７は、地磁気センサ、ジャイロセンサ等によって構成されてもよいし、複数の異なる種類のセンサを組み合わせたセンサ群によって構成されてもよい。
【００２１】
ユーザ端末１０の各機能要素（例えば、後述する表示制御部１１、決定部１２、及びオブジェクト制御部１３）は、プロセッサ１０１又は主記憶部１０２に仮想オブジェクト操作プログラムＰ１を読み込ませ、当該仮想オブジェクト操作プログラムＰ１を実行させることにより実現される。仮想オブジェクト操作プログラムＰ１は、ユーザ端末１０の各機能要素を実現するためのコードを含む。プロセッサ１０１は、仮想オブジェクト操作プログラムＰ１に従って、通信部１０４、撮像部１０５、タッチパネル１０６、又はセンサ１０７を動作させ、主記憶部１０２又は補助記憶部１０３におけるデータの読み出し及び書き込みを行う。この処理により、ユーザ端末１０の各機能要素が実現される。
【００２２】
仮想オブジェクト操作プログラムＰ１は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等の有形の記録媒体に固定的に記録された上で提供されてもよい。或いは、仮想オブジェクト操作プログラムＰ１は、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【００２３】
［ユーザ端末の機能構成］
図２は、ユーザ端末１０の機能構成の一例を示す図である。ユーザ端末１０は、機能要素として、表示制御部１１、決定部１２、オブジェクト制御部１３、及び仮想オブジェクト情報記憶部１４を備える。仮想オブジェクト情報記憶部１４は、仮想オブジェクトに関する仮想オブジェクト情報を記憶する。仮想オブジェクト情報記憶部１４は、例えば、上述した補助記憶部１０３によって構成され得る。
【００２４】
仮想オブジェクト情報は、現実空間上に仮想オブジェクトを重畳配置するための情報を含んでいる。例えば、仮想オブジェクト情報は、拡張現実空間上における仮想オブジェクトの位置及び姿勢（角度）を特定するための配置情報を含んでいる。仮想オブジェクトが、複数の部位（例えば、後述するジョイント等）を含んでおり、部位毎に位置調整を行うことが可能な場合には、上記配置情報は、部位毎の位置及び姿勢を特定するための情報を含み得る。仮想オブジェクトの各部位の位置を特定する情報は、例えば、撮像部１０５によって撮像及び認識された現実空間に設定される３次元座標空間の座標によって表され得る。
【００２５】
仮想オブジェクト情報は、仮想オブジェクトの仕様を規定する情報を含み得る。仮想オブジェクトの仕様とは、仮想オブジェクトを制御するための取り決め又は方法のことをいう。例えば、仮想オブジェクトの仕様は、仮想オブジェクトの構成（例えば形状及び寸法）、動作、及び音声のうちの少なくとも一つを含む。仮想オブジェクトのモデルデータのデータ構造は限定されず、任意に設計されてよい。例えば、キャラクタオブジェクトのモデルデータは、キャラクタオブジェクトを構成する複数のジョイント及び複数のボーンに関する情報と、キャラクタオブジェクトの外観デザインを示すグラフィックデータと、キャラクタオブジェクトを一意に特定するための識別子であるＩＤと、を含んでもよい。ジョイント及びボーンに関する情報の例として、個々のジョイントの３次元座標と、隣り合うジョイントの組合せ（すなわちボーン）とが挙げられる。ただし、当該情報の構成は、これらに限定されず、任意に設計されてよい。
【００２６】
表示制御部１１は、拡張現実空間画像をタッチパネル１０６に表示させる。例えば、表示制御部１１は、撮像部１０５により撮像された現実空間を表す現実空間画像を継続的に取得すると共に、仮想オブジェクト情報記憶部１４に記憶された仮想オブジェクト情報を取得（参照）する。そして、表示制御部１１は、仮想オブジェクト情報に含まれる配置情報に基づいて、仮想オブジェクトを現実空間画像上に重畳配置する。これにより、拡張現実空間画像が生成される。表示制御部１１は、このようにして生成された拡張現実空間画像をタッチパネル１０６に表示させる。
【００２７】
決定部１２は、仮想オブジェクトの少なくとも一部を操作対象として決定する。仮想オブジェクトが複数の部位を有しており、部位毎に操作することが可能に構成されている場合には、各部位が操作対象として決定され得る。決定部１２は、例えば、タッチパネル１０６に表示された仮想オブジェクトの１つの部位をユーザがタッチする操作（例えば、タップ操作、長押し操作等）を受け付け、ユーザによりタッチされた部位を操作対象として決定してもよい。操作対象に対して可能な操作は、後述する移動操作及び回転操作を含んでいる。
【００２８】
オブジェクト制御部１３は、拡張現実空間における操作対象の動作を制御する。オブジェクト制御部１３は、ユーザ端末１０の移動に応じて操作対象を移動させる移動操作と、タッチパネル１０６に対するユーザ操作（スワイプ操作等）に応じて操作対象を回転させる回転操作と、を実行可能に構成されている。仮想オブジェクトの移動操作又は回転操作は、例えば以下のような仕組みによって、タッチパネル１０６上の拡張現実空間画像に反映される。例えば、オブジェクト制御部１３は、仮想オブジェクト情報記憶部１４に記憶された操作対象に関する仮想オブジェクト情報を、移動操作又は回転操作が反映された操作対象の状態（位置、姿勢等）を表す値に更新する。その後、表示制御部１１が、更新後の仮想オブジェクト情報に基づいて、拡張現実空間画像における操作対象の状態を更新する。これにより、移動操作又は回転操作が反映された拡張現実空間画像が、タッチパネル１０６に表示される。
【００２９】
［キャラクタオブジェクトの移動操作］
図３〜図５を参照して、拡張現実空間におけるキャラクタオブジェクト（仮想オブジェクト）の移動操作を行う場合のユーザ端末１０の動作の一例について説明する。図３は、ユーザ端末１０を用いたキャラクタオブジェクトの移動操作の処理手順の一例を示すフローチャートである。図４及び図５は、キャラクタオブジェクトの移動操作の一例を説明するための図である。図４は、キャラクタオブジェクトの移動前の状態を示す図である。図５は、キャラクタオブジェクトの移動後の状態を示す図である。
【００３０】
ステップＳ１において、表示制御部１１は、拡張現実空間画像をタッチパネル１０６に表示させる。具体的には、表示制御部１１は、仮想オブジェクト情報記憶部１４に記憶された仮想オブジェクト情報に基づいて、キャラクタオブジェクトを撮像部１０５により取得された現実空間画像上に重畳配置することにより、拡張現実空間画像を生成する。そして、表示制御部１１は、当該拡張現実空間画像をタッチパネル１０６に表示させる。これにより、図４に示されるように、現実空間画像２１にキャラクタオブジェクト２２を重畳配置した拡張現実空間画像２３が、タッチパネル１０６上に表示される。
【００３１】
ステップＳ２において、決定部１２は、キャラクタオブジェクト２２の少なくとも一部を操作対象として決定する。図４の例では、キャラクタオブジェクト２２の左手の部分（例えば、左手に対応するジョイント）が、ユーザによってタップされることによって、操作対象Ｔとして決定されている。
【００３２】
ステップＳ３において、オブジェクト制御部１３は、操作対象Ｔが決定された後のユーザ端末１０の移動方向及び移動量を検知する。図５は、ユーザがユーザ端末１０をユーザから見て左手前側へと移動させる例を示している。図５に示されるｖ１は、ユーザ端末１０の変位ベクトル（すなわち、ユーザ端末１０の移動方向及び移動量を示すベクトル）である。変位ベクトルｖ１は、例えば、センサ１０７によって検知され、オブジェクト制御部１３へと送信される。これにより、オブジェクト制御部１３は、変位ベクトルｖ１を検知することができる。
【００３３】
ステップＳ４において、オブジェクト制御部１３は、検知された変位ベクトルｖ１に基づいて、操作対象Ｔを移動させる。すなわち、オブジェクト制御部１３は、拡張現実空間（すなわち、現実空間と同じスケールの空間）において、変位ベクトルｖ１に基づいて操作対象Ｔの位置を調整する。図５に示されるｖ２は、操作対象Ｔの変位ベクトル（すなわち、操作対象Ｔの移動方向及び移動量を示すベクトル）である。オブジェクト制御部１３は、変位ベクトルｖ１と変位ベクトルｖ２とが平行となるように、操作対象Ｔを移動させる。つまり、オブジェクト制御部１３は、現実空間におけるユーザ端末１０の移動方向と同一の方向に操作対象Ｔを移動させる。これにより、ユーザは、操作対象Ｔを直感的に移動させることが可能となる。すなわち、ユーザ端末１０を現実空間上で移動させることによって、上下左右の２次元の方向だけでなく奥行（深さ）方向も含めた３次元の各方向に、操作対象Ｔをスムーズに移動させることが可能となる。
【００３４】
図５の例では、ユーザがユーザ端末１０をユーザから見て左手前方向へと移動させることにより、ユーザ端末１０の移動方向（すなわち、ユーザから見た左手前方向）と同じ方向に操作対象Ｔが移動している。なお、この例では、操作対象Ｔ（キャラクタオブジェクト２２の左手）の移動と連動して、操作対象Ｔと接続されたボーン（及び当該ボーンを介して操作対象Ｔと接続された他のジョイント）も移動している。このような操作対象Ｔ以外の部分の移動方向及び移動量は、例えば、隣り合うジョイントの位置関係と、身体運動の合理性及び整合性等に基づいて予め定められた動作ルールと、に基づいて算出され得る。ジョイントの位置関係及び動作ルールは、例えば、キャラクタオブジェクト２２に関する仮想オブジェクト情報に含まれている。
【００３５】
上述したステップＳ４では、オブジェクト制御部１３は、検知されたユーザ端末１０の移動量（すなわち、変位ベクトルｖ１の大きさ｜ｖ１｜）と予め設定されたパラメータａとに基づいて、操作対象Ｔの移動量を決定してもよい。例えば、オブジェクト制御部１３は、検知されたユーザ端末１０の移動量｜ｖ１｜をパラメータａに基づいて増大させた値を、操作対象Ｔの移動量｜ｖ２｜として決定してもよい。例えば、パラメータａは、ユーザ端末１０の移動量｜ｖ１｜に掛けられる１よりも大きい係数であってもよい。この場合、オブジェクト制御部１３は、下記式（１）に基づいて、操作対象Ｔの移動量｜ｖ２｜を決定することができる。
｜ｖ２｜＝｜ｖ１｜×ａ  …（１）
【００３６】
例えば、パラメータａが「５」である場合、ユーザ端末１０の移動量｜ｖ１｜が１ｃｍである場合、操作対象Ｔの移動量｜ｖ２｜は５ｃｍとなる。このように、ユーザ端末１０の実際の移動量よりも操作対象Ｔの移動量を大きくすることにより、操作性を向上させることができる。このようにユーザ端末１０の実際の移動量よりも操作対象Ｔの移動量を大きくする増幅操作は、例えば、操作対象Ｔの位置を比較的大きく変化させたい場合に有効である。例えば、操作対象Ｔを１ｍ移動させたい場合、ユーザは、それよりも短い距離（２０ｃｍ）だけユーザ端末１０を移動させるだけで、操作対象Ｔの移動操作を行うことが可能となる。
【００３７】
或いは、オブジェクト制御部１３は、検知されたユーザ端末１０の移動量｜ｖ１｜をパラメータａに基づいて減少させた値を、操作対象Ｔの移動量｜ｖ２｜として決定してもよい。例えば、オブジェクト制御部１３は、１よりも小さい値に設定されたパラメータａを１と上記式（１）とを用いることにより、ユーザ端末１０の実際の移動量よりも操作対象Ｔの移動量を小さくすることができる。このような処理によれば、操作対象Ｔの細かい位置調整を行う場合の操作性を向上させることができる。すなわち、ユーザ端末１０の移動に応じた操作対象Ｔの感度（移動量）をあえて小さくすることで、操作対象Ｔの位置調整を精度良く行うことが可能となる。
【００３８】
なお、パラメータａは、上記式（１）のようにユーザ端末１０の実際の移動量｜ｖ１｜に乗算される係数に限られない。また、パラメータａの値は、仮想オブジェクト操作プログラムＰ１において予め定められた固定値であってもよいし、ユーザ設定等によって変更可能な可変値であってもよい。パラメータａが可変値である場合、ユーザは、利用シーンに応じて、パラメータａを調整することができる。例えば、上述したように操作対象Ｔを比較的大きく移動させたい場合にはパラメータａを大きく設定し、操作対象Ｔの位置を細かく調整したい場合にはパラメータａを小さく設定する、といったことが可能となる。
【００３９】
ここで、ステップＳ４においては、操作対象Ｔの動きをユーザ端末１０の動きと完全に連動させることで、ユーザ端末１０の回転に応じて操作対象Ｔを回転させることも考えられる。しかし、操作対象Ｔの動きをユーザ端末１０の動きと完全に連動させることで操作対象Ｔを回転させる仕組みを採用した場合、ユーザが意図しないユーザ端末１０の微妙な姿勢の変化（回転）が操作対象Ｔの姿勢に反映されてしまう可能性がある。また、操作対象Ｔをユーザから見て手前側から奥側へと１８０度回転させたい場合、ユーザは、ユーザ端末１０を同様に１８０度回転させる必要がある。この場合、ユーザ端末１０の向きが、タッチパネル１０６がユーザ側を向いている状態からタッチパネル１０６がユーザ側とは反対側を向いている状態へと変化してしまう。その結果、上記の回転操作を行った後に、ユーザは、タッチパネル１０６を確認すること（すなわち、タッチパネル１０６を介して、拡張現実空間における操作対象Ｔの状態を直ちに確認すること）ができなくなってしまう。
【００４０】
そこで、本実施形態では、オブジェクト制御部１３は、ユーザ端末１０の姿勢の変化に応じて操作対象Ｔを回転させることなく、変位ベクトルｖ１に基づいて操作対象Ｔを移動させる。すなわち、オブジェクト制御部１３は、操作対象Ｔの回転操作については、操作対象Ｔの移動操作（ユーザ端末１０の移動方向及び移動距離に基づく操作）とは異なる枠組みを用いて実現する。これにより、上述したような問題の発生を防止することができる。
【００４１】
［キャラクタオブジェクトの回転操作］
図６〜図９を参照して、拡張現実空間におけるキャラクタオブジェクト（仮想オブジェクト）の回転操作を行う場合のユーザ端末１０の動作の一例について説明する。図６は、ユーザ端末１０を用いたキャラクタオブジェクトの回転操作の処理手順の一例を示すフローチャートである。図７及び図８は、キャラクタオブジェクトの回転操作の一例を説明するための図である。図９は、比較例に係る仮想オブジェクトの回転操作を示す図である。
【００４２】
ステップＳ１１及びＳ１２は、キャラクタオブジェクト２２の移動操作を行う場合の処理（図３のステップＳ１及びＳ２）と同様である。すなわち、ステップＳ１１において、表示制御部１１は、拡張現実空間画像２３をタッチパネル１０６に表示させる。そして、ステップＳ１２において、決定部１２は、キャラクタオブジェクト２２の少なくとも一部を操作対象Ｔとして決定する。図７の例では、キャラクタオブジェクト２２の右手の部分（例えば、右手に対応するジョイント）が、ユーザによってタップされることによって、操作対象Ｔとして決定されている。
【００４３】
ステップＳ１３において、オブジェクト制御部１３は、回転操作情報を受け付ける。回転操作情報は、操作対象Ｔの回転操作を指示する情報である。回転操作情報は、操作対象Ｔの回転方向を示す情報を含んでいる。操作対象Ｔの回転方向は、撮像部１０５の撮像方向を基準として設定された直交座標系ＣＳ（図７参照）に基づいて指定される。言い換えれば、直交座標系ＣＳは、撮像部１０５から見た視点（すなわち、タッチパネル１０６に表示される拡張現実空間画像２３のアングル）を基準として設定される。つまり、直交座標系ＣＳは、撮像部１０５から見た視点の変化に応じて変化する。
【００４４】
図７の例では、直交座標系ＣＳは、互いに直交する３つの軸（Ｘ軸、Ｙ軸、及びＺ軸）からなる。Ｘ軸（ピッチ）は、撮像部１０５の撮像方向を基準とした左右方向（すなわち、タッチパネル１０６に表示される拡張現実空間画像２３の左右方向）に対応している。Ｙ軸（ロール）は、撮像部１０５の撮像方向を基準とした前後方向（すなわち、タッチパネル１０６に表示される拡張現実空間画像２３の奥行方向）に対応している。Ｚ軸（ヨー）は、撮像部１０５の撮像方向を基準とした上下方向（すなわち、タッチパネル１０６に表示される拡張現実空間画像２３の上下方向）に対応している。
【００４５】
オブジェクト制御部１３は、回転操作情報を受け付けると、当該回転操作情報に基づいて、操作対象Ｔを回転させる（ステップＳ１４〜Ｓ１７）。図７において、状態（Ａ）は操作対象Ｔを回転させる前の状態を示しており、状態（Ｂ）は操作対象Ｔを回転させた後の状態を示している。図８は、操作対象Ｔの姿勢を図７の状態（Ａ）から図７の状態（Ｂ）へと変更するために行われる回転操作の一例を示している。この例では、操作対象Ｔの姿勢を図７の状態（Ａ）から図７の状態（Ｂ）へと変更するために、操作対象Ｔの姿勢を図８の状態（Ａ）から図８の状態（Ｂ）へと変化させる回転操作（以下「第１回転操作」という。）と、操作対象Ｔの姿勢を図８の状態（Ｂ）から図８の状態（Ｃ）へと変化させる回転操作（以下「第２回転操作」という。）と、操作対象Ｔの姿勢を図８の状態（Ｃ）から図８の状態（Ｄ）へと変化させる回転操作（以下「第３回転操作」という。）と、が実行されている。
【００４６】
第１回転操作（図８の状態（Ａ）→状態（Ｂ））は、例えば、タッチパネル１０６に対する横方向のスワイプ操作によって実行され得る。例えば、オブジェクト制御部１３は、タッチパネル１０６に接触したユーザの指が左右方向（横方向）にスライドするスワイプ操作を検知した場合（ステップＳ１４：スワイプ操作（横方向））、操作対象ＴをＺ軸周りに回転させる（ステップＳ１５）。すなわち、オブジェクト制御部１３は、タッチパネル１０６に対する横方向のスワイプ操作を、操作対象ＴをＺ軸周りに回転させることを示す回転操作情報として受け付ける。一例として、オブジェクト制御部１３は、右方向へのスワイプ操作を、操作対象ＴをＺ軸正方向（上方向）を向いた場合の時計回りに回転させることを示す回転操作情報として受け付け、左方向へのスワイプ操作を、操作対象ＴをＺ軸正方向を向いた場合の反時計回りに回転させることを示す回転操作情報として受け付ける。
【００４７】
図８の例では、オブジェクト制御部１３は、操作対象Ｔの姿勢が状態（Ａ）であるときに、右方向へのスワイプ操作を受け付け、当該スワイプ操作に基づいて、操作対象Ｔの姿勢を状態（Ｂ）に変化させる。これにより、略直角に内側に曲げられたキャラクタオブジェクト２２の右手（操作対象Ｔ）の指先が、撮像部１０５から見て左側を向いた状態（状態（Ａ））から、撮像部１０５から見て手前側を向いた状態（状態（Ｂ））へと変化する。
【００４８】
第２回転操作（図８の状態（Ｂ）→状態（Ｃ））は、例えば、タッチパネル１０６に対する縦方向のスワイプ操作によって実行され得る。例えば、オブジェクト制御部１３は、タッチパネル１０６に接触したユーザの指が上下方向（縦方向）にスライドするスワイプ操作を検知した場合（ステップＳ１４：スワイプ操作（縦方向））、操作対象ＴをＸ軸周りに回転させる（ステップＳ１６）。すなわち、オブジェクト制御部１３は、タッチパネル１０６に対する縦方向のスワイプ操作を、操作対象ＴをＸ軸周りに回転させることを示す回転操作情報として受け付ける。一例として、オブジェクト制御部１３は、上方向へのスワイプ操作を、操作対象ＴをＸ軸正方向（右方向）を向いた場合の反時計回りに回転させることを示す回転操作情報として受け付け、下方向へのスワイプ操作を、操作対象ＴをＸ軸正方向を向いた場合の時計回りに回転させることを示す回転操作情報として受け付ける。
【００４９】
図８の例では、オブジェクト制御部１３は、操作対象Ｔの姿勢が状態（Ｂ）であるときに、上方向へのスワイプ操作を受け付け、当該スワイプ操作に基づいて、操作対象Ｔの姿勢を状態（Ｃ）に変化させる。これにより、略直角に内側に曲げられたキャラクタオブジェクト２２の右手（操作対象Ｔ）が、まっすぐに伸びた状態（状態（Ｃ））へと変化する。
【００５０】
第３回転操作（図８の状態（Ｃ）→状態（Ｄ））は、例えば、タッチパネル１０６に対するマルチタッチ回転操作によって実行され得る。マルチタッチ回転操作は、タッチパネル１０６上の異なる２点を２つの指（例えば親指と人差し指）で押さえ、当該２つの指を同一の回転方向に沿ってスライドさせる操作である。例えば、オブジェクト制御部１３は、タッチパネル１０６に対するマルチタッチ回転操作を検知した場合（ステップＳ１４：マルチタッチ回転操作）、操作対象ＴをＹ軸周りに回転させる（ステップＳ１７）。すなわち、オブジェクト制御部１３は、タッチパネル１０６に対するマルチタッチ回転操作を、操作対象ＴをＹ軸周りに回転させることを示す回転操作情報として受け付ける。一例として、オブジェクト制御部１３は、マルチタッチ回転操作の回転方向と同じ回転方向に、操作対象Ｔを回転させる。すなわち、オブジェクト制御部１３は、タッチパネル１０６に対して反時計回りのマルチタッチ回転操作を、操作対象ＴをＹ軸正方向（画面奥側に向かう方向）を向いた場合の反時計回りに回転させることを示す回転操作情報として受け付け、タッチパネル１０６に対して時計回りのマルチタッチ回転操作を、操作対象ＴをＹ軸正方向を向いた場合の時計回りに回転させることを示す回転操作情報として受け付ける。
【００５１】
図８の例では、オブジェクト制御部１３は、操作対象Ｔの姿勢が状態（Ｃ）であるときに、タッチパネル１０６に対して反時計回りのマルチタッチ回転操作を受け付け、当該マルチタッチ回転操作に基づいて、操作対象Ｔの姿勢を状態（Ｄ）に変化させる。これにより、鉛直方向にまっすぐに伸びたキャラクタオブジェクト２２の右手（操作対象Ｔ）が、左側に少し傾いた状態（状態（Ｄ））へと変化する。
【００５２】
ステップＳ１５〜Ｓ１７における操作対象Ｔの回転量（角度）は、例えば、タッチパネル１０６上におけるスライド量（スライドされる区間の距離）、スライド速度等によって決定され得る。また、上述した第１回転操作及び第２回転操作は、同時に実行されてもよい。例えば、ユーザが、タッチパネル１０６に対して、斜め方向（例えば、左上に向かう方向、左下に向かう方向、右上に向かう方向、右下に向かう方向等）に指をスライドさせるスワイプ操作を行うことも考えられる。このようなスワイプ操作は、ベクトル分解によって、横方向のスワイプ操作の成分と、縦方向のスワイプ操作の成分と、に分解することができる。この場合、オブジェクト制御部１３は、横方向のスワイプ操作の成分に基づいて操作対象ＴをＺ軸周りに回転させると共に、縦方向のスワイプ操作の成分に基づいて操作対象ＴをＸ軸周りに回転させてもよい。
【００５３】
［効果］
以上説明したように、本開示の一側面に係るユーザ端末１０は、拡張現実空間をユーザに提示する端末装置であり、現実空間を撮像する撮像部１０５と、撮像部１０５により撮像された現実空間と仮想オブジェクトとを含む拡張現実空間を表す拡張現実空間画像２３を表示するタッチパネル１０６（表示部）と、仮想オブジェクトの少なくとも一部を操作対象Ｔとして決定する決定部１２と、拡張現実空間における操作対象Ｔの動作を制御するオブジェクト制御部１３と、を備える。オブジェクト制御部１３は、操作対象Ｔが決定された後のユーザ端末１０の移動方向及び移動量（上記実施形態では、変位ベクトルｖ１）を検知し、検知されたユーザ端末１０の移動方向及び移動量に基づいて操作対象Ｔを移動させる。
【００５４】
本開示の一側面に係る仮想オブジェクト操作方法は、撮像部１０５によって撮像された現実空間と仮想オブジェクトとを含む拡張現実空間を表す拡張現実空間画像２３を、タッチパネル１０６に表示するステップと、仮想オブジェクトの少なくとも一部を操作対象Ｔとして決定するステップと、操作対象Ｔが決定された後のユーザ端末１０の移動方向及び移動量を検知するステップと、拡張現実空間において、検知されたユーザ端末１０の移動方向及び移動量に基づいて操作対象Ｔを移動させるステップと、を含む。
【００５５】
本開示の一側面に係る仮想オブジェクト操作プログラムＰ１は、撮像部１０５によって撮像された現実空間と仮想オブジェクトとを含む拡張現実空間を表す拡張現実空間画像２３を、タッチパネル１０６に表示するステップと、仮想オブジェクトの少なくとも一部を操作対象Ｔとして決定するステップと、操作対象Ｔが決定された後のユーザ端末１０の移動方向及び移動量を検知するステップと、拡張現実空間において、検知されたユーザ端末１０の移動方向及び移動量に基づいて操作対象Ｔを移動させるステップと、をユーザ端末１０に実行させる。
【００５６】
このような側面においては、現実空間におけるユーザ端末１０の移動方向及び移動量に応じて、拡張現実空間における操作対象Ｔ（仮想オブジェクトの少なくとも一部）を移動させることができる。すなわち、上記側面によれば、３次元空間である拡張現実空間における操作対象Ｔの位置調整を直感的に行うことが可能な仕組みを、ユーザに提供することができる。より具体的には、ユーザは、操作対象Ｔを移動させたい方向にユーザ端末１０を移動させることによって、拡張現実空間における操作対象Ｔの位置調整を直感的に行うことができる。
【００５７】
拡張現実空間に表示される仮想オブジェクト（上記実施形態では、キャラクタオブジェクト２２）は、複数の部位を有していてもよく、決定部１２は、仮想オブジェクトの１つの部位を操作対象Ｔとして決定してもよい。この場合、仮想オブジェクトの部位毎に細かな位置調整を行うことができる。
【００５８】
オブジェクト制御部１３は、撮像部１０５の撮像方向を基準として設定され、それぞれ操作対象Ｔの回転軸として用いられる３つの軸（Ｘ軸、Ｙ軸、及びＺ軸）からなる直交座標系ＣＳ（図７参照）に基づいて指定された操作対象Ｔの回転方向を含む回転操作情報を受け付けてもよい。そして、オブジェクト制御部１３は、当該回転操作情報に基づいて操作対象Ｔを回転させてもよい。この場合、操作対象Ｔの３つの回転軸を規定する直交座標系ＣＳが、撮像部１０５の撮像方向を基準として定められるため、操作対象Ｔの回転操作を直感的に行うことが可能となる。すなわち、図８に示されるように、ユーザは、タッチパネル１０６を介して拡張現実空間を見る方向を基準として、操作対象Ｔを直感的に分かりやすい方向に回転させることができる。
【００５９】
上記について、図９に示される比較例を用いて詳しく説明する。比較例では、仮想オブジェクト３０の３つの回転軸（Ｘ軸、Ｙ軸、Ｚ軸）を規定する直交座標系ＣＳ１は、撮像部１０５の撮像方向（すなわち、タッチパネル１０６を介して拡張現実空間を見る方向）ではなく、仮想オブジェクト３０の姿勢を基準として定められている。ここでは一例として、直交座標系ＣＳ１は、立方体状の仮想オブジェクト３０の第１面３１に垂直なＸ軸と、第２面３２に垂直なＹ軸と、第３面３３に垂直なＺ軸と、からなる。ここで、第１面３１、第２面３２、及び第３面３３は、互いに隣接している。
【００６０】
図９の状態（Ｂ）は、図９の状態（Ａ）から仮想オブジェクト３０をＸ軸周りに回転させた後の状態を示している。このとき、仮想オブジェクト３０がＸ軸周りに回転することによって、直交座標系ＣＳ１を構成するＸ軸以外の軸（Ｙ軸及びＺ軸）の方向が変化する。図９の状態（Ｃ）は、図９の状態（Ｂ）からさらに仮想オブジェクト３０をＹ軸周りに回転させた後の状態を示している。このとき、直交座標系ＣＳ１を構成するＹ軸以外の軸（Ｘ軸及びＺ軸）の方向が変化する。このように、仮想オブジェクト３０の姿勢を基準として直交座標系ＣＳ１が定められる場合には、撮像部１０５の撮像方向が変化しない場合であっても、仮想オブジェクト３０の姿勢の変化に応じて直交座標系ＣＳ１の向きが変化する。このため、同じ種類の回転操作（例えば、Ｚ軸周りに仮想オブジェクト３０を回転させる操作）を行ったとしても、そのときの仮想オブジェクト３０の姿勢によって、ユーザから見た仮想オブジェクト３０の回転方向が変化する。例えば、図９の状態（Ａ）のときに仮想オブジェクト３０をＺ軸周りに回転させた場合のユーザから見た回転方向は、図９の状態（Ｂ）又は状態（Ｃ）のときに仮想オブジェクト３０をＺ軸周りに回転させた場合のユーザから見た回転方向とは一致しない。一方、上記実施形態において操作対象Ｔの回転操作に用いられる直交座標系ＣＳ（図８参照）は、撮像部１０５の撮像方向（すなわち、タッチパネル１０６を介して拡張現実空間を見る方向）を基準として定められており、操作対象Ｔの姿勢によって変化しない。このため、上記実施形態によれば、ユーザは、操作対象Ｔの姿勢によらずに、常に同じ操作感で操作対象Ｔを回転させることができる。
【００６１】
［変形例］
以上、本開示について、実施形態に基づいて詳細に説明した。しかし、本開示は、上記実施形態に限定されない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
【００６２】
例えば、上述したユーザ端末１０の機能の一部は、ユーザ端末１０と通信可能な他のコンピュータ装置によって実行されてもよい。すなわち、ユーザ端末１０が、上述した機能の一部を他のコンピュータ装置に実行させ、その処理結果を当該他のコンピュータ装置から受信することによって、上述した機能が実現されてもよい。
【００６３】
また、決定部１２により決定された操作対象Ｔに対して可能な操作は、上述した移動操作及び回転操作に限られない。例えば、操作対象Ｔに対して可能な操作は、操作対象Ｔの形状を予め登録された複数の形状のうちから選択する操作を含んでもよい。例えば、キャラクタオブジェクト２２の手の部分が操作対象Ｔである場合、操作対象Ｔに対して可能な操作は、当該手の部分の形状を、手を開いた状態、手を握りしめた状態、ピースサインをした状態等の予め登録された複数の形状のうちから選択する操作を含んでもよい。
【００６４】
また、上記実施形態では、キャラクタオブジェクト２２の一部（部位）が操作対象Ｔとして決定されたが、操作対象Ｔは、キャラクタオブジェクト２２の全体であってもよい。例えば、拡張現実空間においてキャラクタオブジェクト２２を配置する位置を決定する場合等には、キャラクタオブジェクト２２の全体が操作対象Ｔとして決定されてもよい。また、キャラクタオブジェクト２２以外の仮想オブジェクト（例えば、上述した無生物、カーソル等を模したオブジェクト等）が、操作対象Ｔとして決定されてもよい。
【００６５】
また、拡張現実空間には、２つ以上の仮想オブジェクトが配置されてもよい。例えば、拡張現実空間に、りんごを模した仮想オブジェクト（以下単に「りんご」という。）とキャラクタオブジェクト２２とが配置される場合について考える。このような場合、りんごが操作対象Ｔとして決定され、例えばりんごをキャラクタオブジェクト２２の頭の上に載せるような移動操作が実行されてもよい。上述したオブジェクト制御部１３による移動操作によれば、ユーザは、ユーザ端末１０を移動させることでりんごの位置をスムーズに調整することができるため、上記のような移動操作を直感的且つ容易に行うことができる。
【００６６】
また、操作対象Ｔとして決定される仮想オブジェクト（キャラクタオブジェクト２２）の部位は、上記実施形態で例示した手の部分に限られない。例えば足、肘、膝、腰等の手以外の部分（例えばジョイントに対応する部分）が、操作対象Ｔとして決定されてもよい。また、例えば眼、口、鼻等のジョイント以外のパーツが、操作対象Ｔとして決定されてもよい。
【００６７】
また、拡張現実空間画像２３において、仮想オブジェクトのうち操作対象Ｔとして選択可能な部位には、ガイド（例えば、当該部位を囲む円形状の標示等）が表示されてもよい。なお、ガイドには、操作対象Ｔの姿勢（例えば、操作対象Ｔに予め設定された正面方向、横方向、上下方向の向き）を示す情報が含まれていてもよい。また、操作対象Ｔとして選択されている部位がわかるように、操作対象Ｔとして選択されている部位のガイドは、操作対象Ｔとして選択されていない部位のガイドとは異なる表示態様（例えば異なる色）で表示されてもよい。
【００６８】
また、ユーザ端末１０により実行される方法（仮想オブジェクト操作方法）の処理手順は上記実施形態での例（例えば、図３及び図６のフローチャート）に限定されない。例えば、上述したステップ（処理）の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の２以上のステップが組み合わされてもよいし、ステップの一部が修正又は削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【符号の説明】
【００６９】
１０…ユーザ端末（端末装置）、１１…表示制御部、１２…決定部、１３…オブジェクト制御部、１４…仮想オブジェクト情報記憶部、２１…現実空間画像、２２…キャラクタオブジェクト（仮想オブジェクト）、２３…拡張現実空間画像、１０１…プロセッサ、１０５…撮像部、１０６…タッチパネル（表示部）、１０７…センサ、ＣＳ…直交座標系、Ｔ…操作対象。
【要約】
【課題】拡張現実空間における仮想オブジェクトの位置調整を直感的に行うことができる。
【解決手段】一実施形態に係る端末装置は、拡張現実空間をユーザに提示する端末装置であって、現実空間を撮像する撮像部と、撮像部により撮像された現実空間と仮想オブジェクトとを含む拡張現実空間を表す拡張現実空間画像を表示する表示部と、仮想オブジェクトの少なくとも一部を操作対象として決定する決定部と、拡張現実空間における操作対象の動作を制御するオブジェクト制御部と、を備え、オブジェクト制御部は、操作対象が決定された後の端末装置の移動方向及び移動量を検知し、検知された端末装置の移動方向及び移動量に基づいて操作対象を移動させる。
【選択図】図２【図１】
0006801138.tif 000002
【図２】
0006801138.tif 000003
【図３】
0006801138.tif 000004
【図４】
0006801138.tif 000005
【図５】
0006801138.tif 000006
【図６】
0006801138.tif 000007
【図７】
0006801138.tif 000008
【図８】
0006801138.tif 000009
【図９】
0006801138.tif 000010