IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ POPOPO株式会社の特許一覧

特許7513262端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラム
<>
  • 特許-端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラム 図1
  • 特許-端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラム 図2
  • 特許-端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラム 図3
  • 特許-端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラム 図4
  • 特許-端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラム 図5
  • 特許-端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラム 図6
  • 特許-端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラム 図7
  • 特許-端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラム 図8
  • 特許-端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-01
(45)【発行日】2024-07-09
(54)【発明の名称】端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラム
(51)【国際特許分類】
   G06F 3/01 20060101AFI20240702BHJP
   G06F 3/04815 20220101ALI20240702BHJP
   G06T 19/00 20110101ALI20240702BHJP
【FI】
G06F3/01 510
G06F3/04815
G06F3/01 570
G06T19/00 600
【請求項の数】 7
(21)【出願番号】P 2020195161
(22)【出願日】2020-11-25
(62)【分割の表示】P 2020121991の分割
【原出願日】2020-07-16
(65)【公開番号】P2022019501
(43)【公開日】2022-01-27
【審査請求日】2023-07-18
(73)【特許権者】
【識別番号】523361116
【氏名又は名称】POPOPO株式会社
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(72)【発明者】
【氏名】岩城 進之介
【審査官】塚田 肇
(56)【参考文献】
【文献】特開2019-128941(JP,A)
【文献】特開2014-191718(JP,A)
【文献】特開平02-139619(JP,A)
【文献】特開2014-044655(JP,A)
【文献】特表2020-502709(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01,3/048-3/04895
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
仮想オブジェクトをユーザに提示する端末装置であって、
複数の部位を有する仮想オブジェクトを表示する表示部と、
前記仮想オブジェクトの一部の部位を操作対象として決定する決定部と、
前記仮想オブジェクトの動作を制御するオブジェクト制御部と、を備え、
前記オブジェクト制御部は、
前記操作対象が決定された後の前記端末装置の移動方向及び移動量に基づいて前記操作対象を移動させ、
前記表示部に対する操作に基づいて前記操作対象を回転させ、
前記操作対象の移動に連動させて、前記操作対象と接続する部位を移動させる、端末装置。
【請求項2】
前記オブジェクト制御部は、前記端末装置の前記移動量と予め設定されたパラメータとに基づいて、前記操作対象の移動量を決定する、請求項に記載の端末装置。
【請求項3】
前記オブジェクト制御部は、前記端末装置の前記移動量を前記パラメータに基づいて増大させた値を、前記操作対象の移動量として決定する、請求項に記載の端末装置。
【請求項4】
前記オブジェクト制御部は、前記端末装置の前記移動量を前記パラメータに基づいて減少させた値を、前記操作対象の移動量として決定する、請求項に記載の端末装置。
【請求項5】
前記オブジェクト制御部は、前記表示部に対して左右方向の操作が入力された場合は前記操作対象を上下方向の軸周りに回転させ、前記表示部に対して上下方向の操作が入力された場合は左右方向の軸周りに回転させ、前記表示部に対してマルチタッチ回転操作が入力された場合は前記操作対象を奥行方向の軸周りに回転させる、請求項1に記載の端末装置。
【請求項6】
複数の部位を有する仮想オブジェクトを端末装置が備える表示部に表示するステップと、
前記仮想オブジェクトの一部の部位を操作対象として決定するステップと、
前記操作対象が決定された後の前記端末装置の移動方向及び移動量に基づいて前記操作対象を移動させるステップと、
前記表示部に対する操作に基づいて前記操作対象を回転させるステップと、
前記操作対象の移動に連動させて、前記操作対象と接続する部位を移動させるステップと、を含む仮想オブジェクト操作方法。
【請求項7】
複数の部位を有する仮想オブジェクトを端末装置が備える表示部に表示するステップと、
前記仮想オブジェクトの一部の部位を操作対象として決定するステップと、
前記操作対象が決定された後の前記端末装置の移動方向及び移動量に基づいて前記操作対象を移動させるステップと、
前記表示部に対する操作に基づいて前記操作対象を回転させるステップと、
前記操作対象の移動に連動させて、前記操作対象と接続する部位を移動させるステップと、を前記端末装置に実行させる仮想オブジェクト操作プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の一側面は、端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラムに関する。
【背景技術】
【0002】
現実空間に仮想オブジェクトを重畳配置した拡張現実空間をユーザに提供する仕組みが知られている。例えば、特許文献1には、仮想オブジェクト(3Dオブジェクト)の構成要素毎のパラメータを調整するためのインジケータを画面上に表示し、インジケータを介したユーザからの指示を受け付けることにより、対応する構成要素の位置を調整する仕組みが開示されている。特許文献1には、具体例として、仮想オブジェクトの鼻に対応するインジケータを左右に動かすことで、仮想オブジェクトの鼻の位置を上下に調整する仕組みが例示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2020-46863号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示された仕組みによれば、インジケータを介したユーザ操作によって仮想オブジェクトの構成要素の位置を調整することができる。しかし、画面上に表示されるインジケータを用いる仕組みでは、2次元的な操作(例えば、上述したようにインジケータを左右にスライドさせる操作)を行うことしかできないため、3次元空間における上記構成要素の位置調整を直感的に行うことができない。
【0005】
そこで、本開示の一側面は、拡張現実空間における仮想オブジェクトの位置調整を直感的に行うことが可能な端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の一側面に係る端末装置は、仮想オブジェクトをユーザに提示する端末装置であって、複数の部位を有する仮想オブジェクトを表示する表示部と、仮想オブジェクトの一部の部位を操作対象として決定する決定部と、仮想オブジェクトの動作を制御するオブジェクト制御部と、を備え、オブジェクト制御部は、操作対象が決定された後の端末装置の移動方向及び移動量に基づいて操作対象を移動させ表示部に対する操作に基づいて操作対象を回転させ、操作対象の移動に連動させて、操作対象と接続する部位を移動させる。
【発明の効果】
【0007】
本開示の一側面によれば、拡張現実空間における仮想オブジェクトの位置調整を直感的に行うことができる。
【図面の簡単な説明】
【0008】
図1】実施形態に係る端末装置であるユーザ端末のハードウェア構成の一例を示す図である。
図2図1のユーザ端末の機能構成の一例を示す図である。
図3図1のユーザ端末を用いたキャラクタオブジェクトの移動操作の処理手順の一例を示すフローチャートである。
図4】キャラクタオブジェクトの移動操作の一例を説明するための図である。
図5】キャラクタオブジェクトの移動操作の一例を説明するための図である。
図6図1のユーザ端末を用いたキャラクタオブジェクトの回転操作の処理手順の一例を示すフローチャートである。
図7】キャラクタオブジェクトの回転操作の一例を説明するための図である。
図8】キャラクタオブジェクトの回転操作の一例を説明するための図である。
図9】比較例に係る仮想オブジェクトの回転操作を示す図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
【0010】
[ユーザ端末の構成]
図1は、実施形態に係る端末装置であるユーザ端末10のハードウェア構成の一例を示す図である。ユーザ端末10は、ユーザによって用いられるコンピュータである。本実施形態では、ユーザ端末10は、主に、現実空間を撮影する撮影機能と、撮影された現実空間に仮想オブジェクトを重畳配置した拡張現実空間を表す拡張現実空間画像を表示する表示機能と、を有する。
【0011】
仮想オブジェクトは、実際には現実空間には存在しないが、現実空間に重畳して配置されることで、あたかも現実空間上に存在するかのような印象をユーザに与えるオブジェクト全般を指す。仮想オブジェクトの例としては、人や動物等の生物を模したキャラクタオブジェクト(アバター)、花瓶等の無生物を模したオブジェクト、拡張現実空間に対するユーザ操作に供するオブジェクト(例えば、拡張現実空間上の位置を指定するためのカーソル等を模したオブジェクト)等が挙げられる。
【0012】
ユーザ端末10は、上述した撮影機能と表示機能とを兼ね備えた端末装置であればよく、その種類及び構成は限定されない。ユーザ端末10は、例えば、高機能携帯電話機(スマートフォン)、タブレット端末、ウェアラブル端末(例えば、ヘッドマウントディスプレイ(HMD)、スマートグラス等)等である。
【0013】
一例として、ユーザ端末10は、ハードウェア構成要素として、プロセッサ101、主記憶部102、補助記憶部103、通信部104、撮像部105、タッチパネル106(表示部)、及びセンサ107を備える。
【0014】
プロセッサ101は、オペレーティングシステム及びアプリケーションプログラムを実行する演算装置である。プロセッサ101は、例えばCPU又はGPUであり得るが、プロセッサ101の種類はこれらに限定されない。
【0015】
主記憶部102は、ユーザ端末10を実現させるためのプログラム、プロセッサ101から出力された演算結果等を記憶する装置である。主記憶部102は、例えばROM又はRAM等により構成される。
【0016】
補助記憶部103は、一般に主記憶部102よりも大量のデータを記憶することが可能な装置である。補助記憶部103は、例えばハードディスク、フラッシュメモリ等の不揮発性記憶媒体によって構成される。補助記憶部103は、コンピュータをユーザ端末10として機能させるための仮想オブジェクト操作プログラムP1と各種のデータとを記憶する。例えば、補助記憶部103は、仮想オブジェクトに関するデータを記憶してもよい。
【0017】
通信部104は、通信ネットワークを介して他のコンピュータとの間でデータ通信を実行する装置である。通信部104は、例えばネットワークカード又は無線通信モジュールにより構成される。例えば、通信部104は、インターネット等の通信ネットワークを介して、外部のサーバ装置から仮想オブジェクトに関するデータをダウンロードし、ダウンロードしたデータを補助記憶部103に記憶させてもよい。
【0018】
撮像部105は、現実空間を撮像する装置である。撮像部105は、現実世界を写した画像を撮影する機能を有する。撮像部105は、例えばカメラである。撮像部105は、動画像(映像)を撮影してもよいし、静止画(写真)を撮影してもよい。動画像を撮影する場合には、撮像部105は、映像信号を所与のフレームレートに基づいて処理することにより、時系列に並ぶ一連のフレーム画像を動画像として取得する。
【0019】
タッチパネル106は、ユーザの操作を受け付ける入力インタフェースとして機能する。例えば、タッチパネル106は、ユーザのタッチ操作(例えば、タップ操作、スワイプ操作、マルチタッチ操作等)を受け付ける。タッチパネル106は、ユーザ端末10で処理されたデータを出力する出力インタフェースとしても機能する。タッチパネル106は、撮像部105により撮像された現実空間と仮想オブジェクトとを含む拡張現実空間を表す拡張現実空間画像を表示する機能を有する。すなわち、ユーザ端末10は、タッチパネル106に拡張現実空間画像を表示させることで、拡張現実空間をユーザに提示する。
【0020】
センサ107は、ユーザ端末10の移動方向及び移動量(変位量)を検知するためのセンサである。センサ107は、例えば加速度センサである。ただし、センサ107の種類は上記に限定されない。例えば、センサ107は、地磁気センサ、ジャイロセンサ等によって構成されてもよいし、複数の異なる種類のセンサを組み合わせたセンサ群によって構成されてもよい。
【0021】
ユーザ端末10の各機能要素(例えば、後述する表示制御部11、決定部12、及びオブジェクト制御部13)は、プロセッサ101又は主記憶部102に仮想オブジェクト操作プログラムP1を読み込ませ、当該仮想オブジェクト操作プログラムP1を実行させることにより実現される。仮想オブジェクト操作プログラムP1は、ユーザ端末10の各機能要素を実現するためのコードを含む。プロセッサ101は、仮想オブジェクト操作プログラムP1に従って、通信部104、撮像部105、タッチパネル106、又はセンサ107を動作させ、主記憶部102又は補助記憶部103におけるデータの読み出し及び書き込みを行う。この処理により、ユーザ端末10の各機能要素が実現される。
【0022】
仮想オブジェクト操作プログラムP1は、CD-ROM、DVD-ROM、半導体メモリ等の有形の記録媒体に固定的に記録された上で提供されてもよい。或いは、仮想オブジェクト操作プログラムP1は、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【0023】
[ユーザ端末の機能構成]
図2は、ユーザ端末10の機能構成の一例を示す図である。ユーザ端末10は、機能要素として、表示制御部11、決定部12、オブジェクト制御部13、及び仮想オブジェクト情報記憶部14を備える。仮想オブジェクト情報記憶部14は、仮想オブジェクトに関する仮想オブジェクト情報を記憶する。仮想オブジェクト情報記憶部14は、例えば、上述した補助記憶部103によって構成され得る。
【0024】
仮想オブジェクト情報は、現実空間上に仮想オブジェクトを重畳配置するための情報を含んでいる。例えば、仮想オブジェクト情報は、拡張現実空間上における仮想オブジェクトの位置及び姿勢(角度)を特定するための配置情報を含んでいる。仮想オブジェクトが、複数の部位(例えば、後述するジョイント等)を含んでおり、部位毎に位置調整を行うことが可能な場合には、上記配置情報は、部位毎の位置及び姿勢を特定するための情報を含み得る。仮想オブジェクトの各部位の位置を特定する情報は、例えば、撮像部105によって撮像及び認識された現実空間に設定される3次元座標空間の座標によって表され得る。
【0025】
仮想オブジェクト情報は、仮想オブジェクトの仕様を規定する情報を含み得る。仮想オブジェクトの仕様とは、仮想オブジェクトを制御するための取り決め又は方法のことをいう。例えば、仮想オブジェクトの仕様は、仮想オブジェクトの構成(例えば形状及び寸法)、動作、及び音声のうちの少なくとも一つを含む。仮想オブジェクトのモデルデータのデータ構造は限定されず、任意に設計されてよい。例えば、キャラクタオブジェクトのモデルデータは、キャラクタオブジェクトを構成する複数のジョイント及び複数のボーンに関する情報と、キャラクタオブジェクトの外観デザインを示すグラフィックデータと、キャラクタオブジェクトを一意に特定するための識別子であるIDと、を含んでもよい。ジョイント及びボーンに関する情報の例として、個々のジョイントの3次元座標と、隣り合うジョイントの組合せ(すなわちボーン)とが挙げられる。ただし、当該情報の構成は、これらに限定されず、任意に設計されてよい。
【0026】
表示制御部11は、拡張現実空間画像をタッチパネル106に表示させる。例えば、表示制御部11は、撮像部105により撮像された現実空間を表す現実空間画像を継続的に取得すると共に、仮想オブジェクト情報記憶部14に記憶された仮想オブジェクト情報を取得(参照)する。そして、表示制御部11は、仮想オブジェクト情報に含まれる配置情報に基づいて、仮想オブジェクトを現実空間画像上に重畳配置する。これにより、拡張現実空間画像が生成される。表示制御部11は、このようにして生成された拡張現実空間画像をタッチパネル106に表示させる。
【0027】
決定部12は、仮想オブジェクトの少なくとも一部を操作対象として決定する。仮想オブジェクトが複数の部位を有しており、部位毎に操作することが可能に構成されている場合には、各部位が操作対象として決定され得る。決定部12は、例えば、タッチパネル106に表示された仮想オブジェクトの1つの部位をユーザがタッチする操作(例えば、タップ操作、長押し操作等)を受け付け、ユーザによりタッチされた部位を操作対象として決定してもよい。操作対象に対して可能な操作は、後述する移動操作及び回転操作を含んでいる。
【0028】
オブジェクト制御部13は、拡張現実空間における操作対象の動作を制御する。オブジェクト制御部13は、ユーザ端末10の移動に応じて操作対象を移動させる移動操作と、タッチパネル106に対するユーザ操作(スワイプ操作等)に応じて操作対象を回転させる回転操作と、を実行可能に構成されている。仮想オブジェクトの移動操作又は回転操作は、例えば以下のような仕組みによって、タッチパネル106上の拡張現実空間画像に反映される。例えば、オブジェクト制御部13は、仮想オブジェクト情報記憶部14に記憶された操作対象に関する仮想オブジェクト情報を、移動操作又は回転操作が反映された操作対象の状態(位置、姿勢等)を表す値に更新する。その後、表示制御部11が、更新後の仮想オブジェクト情報に基づいて、拡張現実空間画像における操作対象の状態を更新する。これにより、移動操作又は回転操作が反映された拡張現実空間画像が、タッチパネル106に表示される。
【0029】
[キャラクタオブジェクトの移動操作]
図3図5を参照して、拡張現実空間におけるキャラクタオブジェクト(仮想オブジェクト)の移動操作を行う場合のユーザ端末10の動作の一例について説明する。図3は、ユーザ端末10を用いたキャラクタオブジェクトの移動操作の処理手順の一例を示すフローチャートである。図4及び図5は、キャラクタオブジェクトの移動操作の一例を説明するための図である。図4は、キャラクタオブジェクトの移動前の状態を示す図である。図5は、キャラクタオブジェクトの移動後の状態を示す図である。
【0030】
ステップS1において、表示制御部11は、拡張現実空間画像をタッチパネル106に表示させる。具体的には、表示制御部11は、仮想オブジェクト情報記憶部14に記憶された仮想オブジェクト情報に基づいて、キャラクタオブジェクトを撮像部105により取得された現実空間画像上に重畳配置することにより、拡張現実空間画像を生成する。そして、表示制御部11は、当該拡張現実空間画像をタッチパネル106に表示させる。これにより、図4に示されるように、現実空間画像21にキャラクタオブジェクト22を重畳配置した拡張現実空間画像23が、タッチパネル106上に表示される。
【0031】
ステップS2において、決定部12は、キャラクタオブジェクト22の少なくとも一部を操作対象として決定する。図4の例では、キャラクタオブジェクト22の左手の部分(例えば、左手に対応するジョイント)が、ユーザによってタップされることによって、操作対象Tとして決定されている。
【0032】
ステップS3において、オブジェクト制御部13は、操作対象Tが決定された後のユーザ端末10の移動方向及び移動量を検知する。図5は、ユーザがユーザ端末10をユーザから見て左手前側へと移動させる例を示している。図5に示されるv1は、ユーザ端末10の変位ベクトル(すなわち、ユーザ端末10の移動方向及び移動量を示すベクトル)である。変位ベクトルv1は、例えば、センサ107によって検知され、オブジェクト制御部13へと送信される。これにより、オブジェクト制御部13は、変位ベクトルv1を検知することができる。
【0033】
ステップS4において、オブジェクト制御部13は、検知された変位ベクトルv1に基づいて、操作対象Tを移動させる。すなわち、オブジェクト制御部13は、拡張現実空間(すなわち、現実空間と同じスケールの空間)において、変位ベクトルv1に基づいて操作対象Tの位置を調整する。図5に示されるv2は、操作対象Tの変位ベクトル(すなわち、操作対象Tの移動方向及び移動量を示すベクトル)である。オブジェクト制御部13は、変位ベクトルv1と変位ベクトルv2とが平行となるように、操作対象Tを移動させる。つまり、オブジェクト制御部13は、現実空間におけるユーザ端末10の移動方向と同一の方向に操作対象Tを移動させる。これにより、ユーザは、操作対象Tを直感的に移動させることが可能となる。すなわち、ユーザ端末10を現実空間上で移動させることによって、上下左右の2次元の方向だけでなく奥行(深さ)方向も含めた3次元の各方向に、操作対象Tをスムーズに移動させることが可能となる。
【0034】
図5の例では、ユーザがユーザ端末10をユーザから見て左手前方向へと移動させることにより、ユーザ端末10の移動方向(すなわち、ユーザから見た左手前方向)と同じ方向に操作対象Tが移動している。なお、この例では、操作対象T(キャラクタオブジェクト22の左手)の移動と連動して、操作対象Tと接続されたボーン(及び当該ボーンを介して操作対象Tと接続された他のジョイント)も移動している。このような操作対象T以外の部分の移動方向及び移動量は、例えば、隣り合うジョイントの位置関係と、身体運動の合理性及び整合性等に基づいて予め定められた動作ルールと、に基づいて算出され得る。ジョイントの位置関係及び動作ルールは、例えば、キャラクタオブジェクト22に関する仮想オブジェクト情報に含まれている。
【0035】
上述したステップS4では、オブジェクト制御部13は、検知されたユーザ端末10の移動量(すなわち、変位ベクトルv1の大きさ|v1|)と予め設定されたパラメータaとに基づいて、操作対象Tの移動量を決定してもよい。例えば、オブジェクト制御部13は、検知されたユーザ端末10の移動量|v1|をパラメータaに基づいて増大させた値を、操作対象Tの移動量|v2|として決定してもよい。例えば、パラメータaは、ユーザ端末10の移動量|v1|に掛けられる1よりも大きい係数であってもよい。この場合、オブジェクト制御部13は、下記式(1)に基づいて、操作対象Tの移動量|v2|を決定することができる。
|v2|=|v1|×a …(1)
【0036】
例えば、パラメータaが「5」である場合、ユーザ端末10の移動量|v1|が1cmである場合、操作対象Tの移動量|v2|は5cmとなる。このように、ユーザ端末10の実際の移動量よりも操作対象Tの移動量を大きくすることにより、操作性を向上させることができる。このようにユーザ端末10の実際の移動量よりも操作対象Tの移動量を大きくする増幅操作は、例えば、操作対象Tの位置を比較的大きく変化させたい場合に有効である。例えば、操作対象Tを1m移動させたい場合、ユーザは、それよりも短い距離(20cm)だけユーザ端末10を移動させるだけで、操作対象Tの移動操作を行うことが可能となる。
【0037】
或いは、オブジェクト制御部13は、検知されたユーザ端末10の移動量|v1|をパラメータaに基づいて減少させた値を、操作対象Tの移動量|v2|として決定してもよい。例えば、オブジェクト制御部13は、1よりも小さい値に設定されたパラメータaを1と上記式(1)とを用いることにより、ユーザ端末10の実際の移動量よりも操作対象Tの移動量を小さくすることができる。このような処理によれば、操作対象Tの細かい位置調整を行う場合の操作性を向上させることができる。すなわち、ユーザ端末10の移動に応じた操作対象Tの感度(移動量)をあえて小さくすることで、操作対象Tの位置調整を精度良く行うことが可能となる。
【0038】
なお、パラメータaは、上記式(1)のようにユーザ端末10の実際の移動量|v1|に乗算される係数に限られない。また、パラメータaの値は、仮想オブジェクト操作プログラムP1において予め定められた固定値であってもよいし、ユーザ設定等によって変更可能な可変値であってもよい。パラメータaが可変値である場合、ユーザは、利用シーンに応じて、パラメータaを調整することができる。例えば、上述したように操作対象Tを比較的大きく移動させたい場合にはパラメータaを大きく設定し、操作対象Tの位置を細かく調整したい場合にはパラメータaを小さく設定する、といったことが可能となる。
【0039】
ここで、ステップS4においては、操作対象Tの動きをユーザ端末10の動きと完全に連動させることで、ユーザ端末10の回転に応じて操作対象Tを回転させることも考えられる。しかし、操作対象Tの動きをユーザ端末10の動きと完全に連動させることで操作対象Tを回転させる仕組みを採用した場合、ユーザが意図しないユーザ端末10の微妙な姿勢の変化(回転)が操作対象Tの姿勢に反映されてしまう可能性がある。また、操作対象Tをユーザから見て手前側から奥側へと180度回転させたい場合、ユーザは、ユーザ端末10を同様に180度回転させる必要がある。この場合、ユーザ端末10の向きが、タッチパネル106がユーザ側を向いている状態からタッチパネル106がユーザ側とは反対側を向いている状態へと変化してしまう。その結果、上記の回転操作を行った後に、ユーザは、タッチパネル106を確認すること(すなわち、タッチパネル106を介して、拡張現実空間における操作対象Tの状態を直ちに確認すること)ができなくなってしまう。
【0040】
そこで、本実施形態では、オブジェクト制御部13は、ユーザ端末10の姿勢の変化に応じて操作対象Tを回転させることなく、変位ベクトルv1に基づいて操作対象Tを移動させる。すなわち、オブジェクト制御部13は、操作対象Tの回転操作については、操作対象Tの移動操作(ユーザ端末10の移動方向及び移動距離に基づく操作)とは異なる枠組みを用いて実現する。これにより、上述したような問題の発生を防止することができる。
【0041】
[キャラクタオブジェクトの回転操作]
図6図9を参照して、拡張現実空間におけるキャラクタオブジェクト(仮想オブジェクト)の回転操作を行う場合のユーザ端末10の動作の一例について説明する。図6は、ユーザ端末10を用いたキャラクタオブジェクトの回転操作の処理手順の一例を示すフローチャートである。図7及び図8は、キャラクタオブジェクトの回転操作の一例を説明するための図である。図9は、比較例に係る仮想オブジェクトの回転操作を示す図である。
【0042】
ステップS11及びS12は、キャラクタオブジェクト22の移動操作を行う場合の処理(図3のステップS1及びS2)と同様である。すなわち、ステップS11において、表示制御部11は、拡張現実空間画像23をタッチパネル106に表示させる。そして、ステップS12において、決定部12は、キャラクタオブジェクト22の少なくとも一部を操作対象Tとして決定する。図7の例では、キャラクタオブジェクト22の右手の部分(例えば、右手に対応するジョイント)が、ユーザによってタップされることによって、操作対象Tとして決定されている。
【0043】
ステップS13において、オブジェクト制御部13は、回転操作情報を受け付ける。回転操作情報は、操作対象Tの回転操作を指示する情報である。回転操作情報は、操作対象Tの回転方向を示す情報を含んでいる。操作対象Tの回転方向は、撮像部105の撮像方向を基準として設定された直交座標系CS(図7参照)に基づいて指定される。言い換えれば、直交座標系CSは、撮像部105から見た視点(すなわち、タッチパネル106に表示される拡張現実空間画像23のアングル)を基準として設定される。つまり、直交座標系CSは、撮像部105から見た視点の変化に応じて変化する。
【0044】
図7の例では、直交座標系CSは、互いに直交する3つの軸(X軸、Y軸、及びZ軸)からなる。X軸(ピッチ)は、撮像部105の撮像方向を基準とした左右方向(すなわち、タッチパネル106に表示される拡張現実空間画像23の左右方向)に対応している。Y軸(ロール)は、撮像部105の撮像方向を基準とした前後方向(すなわち、タッチパネル106に表示される拡張現実空間画像23の奥行方向)に対応している。Z軸(ヨー)は、撮像部105の撮像方向を基準とした上下方向(すなわち、タッチパネル106に表示される拡張現実空間画像23の上下方向)に対応している。
【0045】
オブジェクト制御部13は、回転操作情報を受け付けると、当該回転操作情報に基づいて、操作対象Tを回転させる(ステップS14~S17)。図7において、状態(A)は操作対象Tを回転させる前の状態を示しており、状態(B)は操作対象Tを回転させた後の状態を示している。図8は、操作対象Tの姿勢を図7の状態(A)から図7の状態(B)へと変更するために行われる回転操作の一例を示している。この例では、操作対象Tの姿勢を図7の状態(A)から図7の状態(B)へと変更するために、操作対象Tの姿勢を図8の状態(A)から図8の状態(B)へと変化させる回転操作(以下「第1回転操作」という。)と、操作対象Tの姿勢を図8の状態(B)から図8の状態(C)へと変化させる回転操作(以下「第2回転操作」という。)と、操作対象Tの姿勢を図8の状態(C)から図8の状態(D)へと変化させる回転操作(以下「第3回転操作」という。)と、が実行されている。
【0046】
第1回転操作(図8の状態(A)→状態(B))は、例えば、タッチパネル106に対する横方向のスワイプ操作によって実行され得る。例えば、オブジェクト制御部13は、タッチパネル106に接触したユーザの指が左右方向(横方向)にスライドするスワイプ操作を検知した場合(ステップS14:スワイプ操作(横方向))、操作対象TをZ軸周りに回転させる(ステップS15)。すなわち、オブジェクト制御部13は、タッチパネル106に対する横方向のスワイプ操作を、操作対象TをZ軸周りに回転させることを示す回転操作情報として受け付ける。一例として、オブジェクト制御部13は、右方向へのスワイプ操作を、操作対象TをZ軸正方向(上方向)を向いた場合の時計回りに回転させることを示す回転操作情報として受け付け、左方向へのスワイプ操作を、操作対象TをZ軸正方向を向いた場合の反時計回りに回転させることを示す回転操作情報として受け付ける。
【0047】
図8の例では、オブジェクト制御部13は、操作対象Tの姿勢が状態(A)であるときに、右方向へのスワイプ操作を受け付け、当該スワイプ操作に基づいて、操作対象Tの姿勢を状態(B)に変化させる。これにより、略直角に内側に曲げられたキャラクタオブジェクト22の右手(操作対象T)の指先が、撮像部105から見て左側を向いた状態(状態(A))から、撮像部105から見て手前側を向いた状態(状態(B))へと変化する。
【0048】
第2回転操作(図8の状態(B)→状態(C))は、例えば、タッチパネル106に対する縦方向のスワイプ操作によって実行され得る。例えば、オブジェクト制御部13は、タッチパネル106に接触したユーザの指が上下方向(縦方向)にスライドするスワイプ操作を検知した場合(ステップS14:スワイプ操作(縦方向))、操作対象TをX軸周りに回転させる(ステップS16)。すなわち、オブジェクト制御部13は、タッチパネル106に対する縦方向のスワイプ操作を、操作対象TをX軸周りに回転させることを示す回転操作情報として受け付ける。一例として、オブジェクト制御部13は、上方向へのスワイプ操作を、操作対象TをX軸正方向(右方向)を向いた場合の反時計回りに回転させることを示す回転操作情報として受け付け、下方向へのスワイプ操作を、操作対象TをX軸正方向を向いた場合の時計回りに回転させることを示す回転操作情報として受け付ける。
【0049】
図8の例では、オブジェクト制御部13は、操作対象Tの姿勢が状態(B)であるときに、上方向へのスワイプ操作を受け付け、当該スワイプ操作に基づいて、操作対象Tの姿勢を状態(C)に変化させる。これにより、略直角に内側に曲げられたキャラクタオブジェクト22の右手(操作対象T)が、まっすぐに伸びた状態(状態(C))へと変化する。
【0050】
第3回転操作(図8の状態(C)→状態(D))は、例えば、タッチパネル106に対するマルチタッチ回転操作によって実行され得る。マルチタッチ回転操作は、タッチパネル106上の異なる2点を2つの指(例えば親指と人差し指)で押さえ、当該2つの指を同一の回転方向に沿ってスライドさせる操作である。例えば、オブジェクト制御部13は、タッチパネル106に対するマルチタッチ回転操作を検知した場合(ステップS14:マルチタッチ回転操作)、操作対象TをY軸周りに回転させる(ステップS17)。すなわち、オブジェクト制御部13は、タッチパネル106に対するマルチタッチ回転操作を、操作対象TをY軸周りに回転させることを示す回転操作情報として受け付ける。一例として、オブジェクト制御部13は、マルチタッチ回転操作の回転方向と同じ回転方向に、操作対象Tを回転させる。すなわち、オブジェクト制御部13は、タッチパネル106に対して反時計回りのマルチタッチ回転操作を、操作対象TをY軸正方向(画面奥側に向かう方向)を向いた場合の反時計回りに回転させることを示す回転操作情報として受け付け、タッチパネル106に対して時計回りのマルチタッチ回転操作を、操作対象TをY軸正方向を向いた場合の時計回りに回転させることを示す回転操作情報として受け付ける。
【0051】
図8の例では、オブジェクト制御部13は、操作対象Tの姿勢が状態(C)であるときに、タッチパネル106に対して反時計回りのマルチタッチ回転操作を受け付け、当該マルチタッチ回転操作に基づいて、操作対象Tの姿勢を状態(D)に変化させる。これにより、鉛直方向にまっすぐに伸びたキャラクタオブジェクト22の右手(操作対象T)が、左側に少し傾いた状態(状態(D))へと変化する。
【0052】
ステップS15~S17における操作対象Tの回転量(角度)は、例えば、タッチパネル106上におけるスライド量(スライドされる区間の距離)、スライド速度等によって決定され得る。また、上述した第1回転操作及び第2回転操作は、同時に実行されてもよい。例えば、ユーザが、タッチパネル106に対して、斜め方向(例えば、左上に向かう方向、左下に向かう方向、右上に向かう方向、右下に向かう方向等)に指をスライドさせるスワイプ操作を行うことも考えられる。このようなスワイプ操作は、ベクトル分解によって、横方向のスワイプ操作の成分と、縦方向のスワイプ操作の成分と、に分解することができる。この場合、オブジェクト制御部13は、横方向のスワイプ操作の成分に基づいて操作対象TをZ軸周りに回転させると共に、縦方向のスワイプ操作の成分に基づいて操作対象TをX軸周りに回転させてもよい。
【0053】
[効果]
以上説明したように、本開示の一側面に係るユーザ端末10は、拡張現実空間をユーザに提示する端末装置であり、現実空間を撮像する撮像部105と、撮像部105により撮像された現実空間と仮想オブジェクトとを含む拡張現実空間を表す拡張現実空間画像23を表示するタッチパネル106(表示部)と、仮想オブジェクトの少なくとも一部を操作対象Tとして決定する決定部12と、拡張現実空間における操作対象Tの動作を制御するオブジェクト制御部13と、を備える。オブジェクト制御部13は、操作対象Tが決定された後のユーザ端末10の移動方向及び移動量(上記実施形態では、変位ベクトルv1)を検知し、検知されたユーザ端末10の移動方向及び移動量に基づいて操作対象Tを移動させる。
【0054】
本開示の一側面に係る仮想オブジェクト操作方法は、撮像部105によって撮像された現実空間と仮想オブジェクトとを含む拡張現実空間を表す拡張現実空間画像23を、タッチパネル106に表示するステップと、仮想オブジェクトの少なくとも一部を操作対象Tとして決定するステップと、操作対象Tが決定された後のユーザ端末10の移動方向及び移動量を検知するステップと、拡張現実空間において、検知されたユーザ端末10の移動方向及び移動量に基づいて操作対象Tを移動させるステップと、を含む。
【0055】
本開示の一側面に係る仮想オブジェクト操作プログラムP1は、撮像部105によって撮像された現実空間と仮想オブジェクトとを含む拡張現実空間を表す拡張現実空間画像23を、タッチパネル106に表示するステップと、仮想オブジェクトの少なくとも一部を操作対象Tとして決定するステップと、操作対象Tが決定された後のユーザ端末10の移動方向及び移動量を検知するステップと、拡張現実空間において、検知されたユーザ端末10の移動方向及び移動量に基づいて操作対象Tを移動させるステップと、をユーザ端末10に実行させる。
【0056】
このような側面においては、現実空間におけるユーザ端末10の移動方向及び移動量に応じて、拡張現実空間における操作対象T(仮想オブジェクトの少なくとも一部)を移動させることができる。すなわち、上記側面によれば、3次元空間である拡張現実空間における操作対象Tの位置調整を直感的に行うことが可能な仕組みを、ユーザに提供することができる。より具体的には、ユーザは、操作対象Tを移動させたい方向にユーザ端末10を移動させることによって、拡張現実空間における操作対象Tの位置調整を直感的に行うことができる。
【0057】
拡張現実空間に表示される仮想オブジェクト(上記実施形態では、キャラクタオブジェクト22)は、複数の部位を有していてもよく、決定部12は、仮想オブジェクトの1つの部位を操作対象Tとして決定してもよい。この場合、仮想オブジェクトの部位毎に細かな位置調整を行うことができる。
【0058】
オブジェクト制御部13は、撮像部105の撮像方向を基準として設定され、それぞれ操作対象Tの回転軸として用いられる3つの軸(X軸、Y軸、及びZ軸)からなる直交座標系CS(図7参照)に基づいて指定された操作対象Tの回転方向を含む回転操作情報を受け付けてもよい。そして、オブジェクト制御部13は、当該回転操作情報に基づいて操作対象Tを回転させてもよい。この場合、操作対象Tの3つの回転軸を規定する直交座標系CSが、撮像部105の撮像方向を基準として定められるため、操作対象Tの回転操作を直感的に行うことが可能となる。すなわち、図8に示されるように、ユーザは、タッチパネル106を介して拡張現実空間を見る方向を基準として、操作対象Tを直感的に分かりやすい方向に回転させることができる。
【0059】
上記について、図9に示される比較例を用いて詳しく説明する。比較例では、仮想オブジェクト30の3つの回転軸(X軸、Y軸、Z軸)を規定する直交座標系CS1は、撮像部105の撮像方向(すなわち、タッチパネル106を介して拡張現実空間を見る方向)ではなく、仮想オブジェクト30の姿勢を基準として定められている。ここでは一例として、直交座標系CS1は、立方体状の仮想オブジェクト30の第1面31に垂直なX軸と、第2面32に垂直なY軸と、第3面33に垂直なZ軸と、からなる。ここで、第1面31、第2面32、及び第3面33は、互いに隣接している。
【0060】
図9の状態(B)は、図9の状態(A)から仮想オブジェクト30をX軸周りに回転させた後の状態を示している。このとき、仮想オブジェクト30がX軸周りに回転することによって、直交座標系CS1を構成するX軸以外の軸(Y軸及びZ軸)の方向が変化する。図9の状態(C)は、図9の状態(B)からさらに仮想オブジェクト30をY軸周りに回転させた後の状態を示している。このとき、直交座標系CS1を構成するY軸以外の軸(X軸及びZ軸)の方向が変化する。このように、仮想オブジェクト30の姿勢を基準として直交座標系CS1が定められる場合には、撮像部105の撮像方向が変化しない場合であっても、仮想オブジェクト30の姿勢の変化に応じて直交座標系CS1の向きが変化する。このため、同じ種類の回転操作(例えば、Z軸周りに仮想オブジェクト30を回転させる操作)を行ったとしても、そのときの仮想オブジェクト30の姿勢によって、ユーザから見た仮想オブジェクト30の回転方向が変化する。例えば、図9の状態(A)のときに仮想オブジェクト30をZ軸周りに回転させた場合のユーザから見た回転方向は、図9の状態(B)又は状態(C)のときに仮想オブジェクト30をZ軸周りに回転させた場合のユーザから見た回転方向とは一致しない。一方、上記実施形態において操作対象Tの回転操作に用いられる直交座標系CS(図8参照)は、撮像部105の撮像方向(すなわち、タッチパネル106を介して拡張現実空間を見る方向)を基準として定められており、操作対象Tの姿勢によって変化しない。このため、上記実施形態によれば、ユーザは、操作対象Tの姿勢によらずに、常に同じ操作感で操作対象Tを回転させることができる。
【0061】
[変形例]
以上、本開示について、実施形態に基づいて詳細に説明した。しかし、本開示は、上記実施形態に限定されない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0062】
例えば、上述したユーザ端末10の機能の一部は、ユーザ端末10と通信可能な他のコンピュータ装置によって実行されてもよい。すなわち、ユーザ端末10が、上述した機能の一部を他のコンピュータ装置に実行させ、その処理結果を当該他のコンピュータ装置から受信することによって、上述した機能が実現されてもよい。
【0063】
また、決定部12により決定された操作対象Tに対して可能な操作は、上述した移動操作及び回転操作に限られない。例えば、操作対象Tに対して可能な操作は、操作対象Tの形状を予め登録された複数の形状のうちから選択する操作を含んでもよい。例えば、キャラクタオブジェクト22の手の部分が操作対象Tである場合、操作対象Tに対して可能な操作は、当該手の部分の形状を、手を開いた状態、手を握りしめた状態、ピースサインをした状態等の予め登録された複数の形状のうちから選択する操作を含んでもよい。
【0064】
また、上記実施形態では、キャラクタオブジェクト22の一部(部位)が操作対象Tとして決定されたが、操作対象Tは、キャラクタオブジェクト22の全体であってもよい。例えば、拡張現実空間においてキャラクタオブジェクト22を配置する位置を決定する場合等には、キャラクタオブジェクト22の全体が操作対象Tとして決定されてもよい。また、キャラクタオブジェクト22以外の仮想オブジェクト(例えば、上述した無生物、カーソル等を模したオブジェクト等)が、操作対象Tとして決定されてもよい。
【0065】
また、拡張現実空間には、2つ以上の仮想オブジェクトが配置されてもよい。例えば、拡張現実空間に、りんごを模した仮想オブジェクト(以下単に「りんご」という。)とキャラクタオブジェクト22とが配置される場合について考える。このような場合、りんごが操作対象Tとして決定され、例えばりんごをキャラクタオブジェクト22の頭の上に載せるような移動操作が実行されてもよい。上述したオブジェクト制御部13による移動操作によれば、ユーザは、ユーザ端末10を移動させることでりんごの位置をスムーズに調整することができるため、上記のような移動操作を直感的且つ容易に行うことができる。
【0066】
また、操作対象Tとして決定される仮想オブジェクト(キャラクタオブジェクト22)の部位は、上記実施形態で例示した手の部分に限られない。例えば足、肘、膝、腰等の手以外の部分(例えばジョイントに対応する部分)が、操作対象Tとして決定されてもよい。また、例えば眼、口、鼻等のジョイント以外のパーツが、操作対象Tとして決定されてもよい。
【0067】
また、拡張現実空間画像23において、仮想オブジェクトのうち操作対象Tとして選択可能な部位には、ガイド(例えば、当該部位を囲む円形状の標示等)が表示されてもよい。なお、ガイドには、操作対象Tの姿勢(例えば、操作対象Tに予め設定された正面方向、横方向、上下方向の向き)を示す情報が含まれていてもよい。また、操作対象Tとして選択されている部位がわかるように、操作対象Tとして選択されている部位のガイドは、操作対象Tとして選択されていない部位のガイドとは異なる表示態様(例えば異なる色)で表示されてもよい。
【0068】
また、ユーザ端末10により実行される方法(仮想オブジェクト操作方法)の処理手順は上記実施形態での例(例えば、図3及び図6のフローチャート)に限定されない。例えば、上述したステップ(処理)の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正又は削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【符号の説明】
【0069】
10…ユーザ端末(端末装置)、11…表示制御部、12…決定部、13…オブジェクト制御部、14…仮想オブジェクト情報記憶部、21…現実空間画像、22…キャラクタオブジェクト(仮想オブジェクト)、23…拡張現実空間画像、101…プロセッサ、105…撮像部、106…タッチパネル(表示部)、107…センサ、CS…直交座標系、T…操作対象。
図1
図2
図3
図4
図5
図6
図7
図8
図9