(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-10
(45)【発行日】2024-09-19
(54)【発明の名称】オブジェクト姿勢制御プログラムおよびオブジェクト姿勢制御システム
(51)【国際特許分類】
G06T 19/00 20110101AFI20240911BHJP
G06F 3/04815 20220101ALI20240911BHJP
G06F 3/0488 20220101ALI20240911BHJP
【FI】
G06T19/00 A
G06F3/04815
G06F3/0488
(21)【出願番号】P 2023077396
(22)【出願日】2023-05-09
(62)【分割の表示】P 2019057267の分割
【原出願日】2019-03-25
【審査請求日】2023-05-30
(73)【特許権者】
【識別番号】500033117
【氏名又は名称】株式会社MIXI
(72)【発明者】
【氏名】小林 一希
【審査官】渡部 幸和
(56)【参考文献】
【文献】特開2019-040340(JP,A)
【文献】特開2012-069126(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00 - 19/20
G06T 13/40
G06F 3/01
G06F 3/048 - 3/04895
A63F 13/00 - 13/98
(57)【特許請求の範囲】
【請求項1】
情報処理装置に、
仮想空間に配置されたオブジェクトを表示部に表示させる機能と、
前記表示部に表示される
前記オブジェクトに対するタッチ操作に基づい
て前記オブジェクトの
第1対象部位
と第2対象部位をそれぞれ設定する機能と、
前記情報処理装置の動きに関する情報に基づいて
、前記第2対象部位を基準として前記第1対象部位を移動させて表示させる機能と、
を実行させるプログラム。
【請求項2】
情報処理装置が備えるプロセッサが、
仮想空間に配置されたオブジェクトを表示部に表示させ、
前記表示部に表示される
前記オブジェクトに対するタッチ操作に基づい
て前記オブジェクトの
第1対象部位
と第2対象部位をそれぞれ設定し、
前記情報処理装置の動きに関する情報に基づいて
、前記第2対象部位を基準として前記第1対象部位を移動させて表示させる、
情報処理方法。
【請求項3】
プロセッサを備える情報処理装置であって、
前記プロセッサが、
仮想空間に配置されたオブジェクトを表示部に表示させ、
前記表示部に表示される
前記オブジェクトに対するタッチ操作に基づい
て前記オブジェクトの
第1対象部位
と第2対象部位をそれぞれ設定し、
前記情報処理装置の動きに関する情報に基づいて
、前記第2対象部位を基準として前記第1対象部位を移動させて表示させる、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はオブジェクト姿勢制御プログラムおよびオブジェクト姿勢制御システムに関する。
【背景技術】
【0002】
近年、電子機器の発展により、高精細の静止画および動画をスマートフォンやパーソナルコンピュータなどの端末に表示することが可能となった。さらに、情報処理技術の研究開発も進展しており、拡張現実(AR:Augumented Reality)を用いて仮想空間と現実空間を融合させた表示技術も実用可能になりつつある。例えば、特許文献1には情報端末の表示領域に仮想空間に配置されたオブジェクトを表示する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方で、表示領域に表示されたオブジェクトの姿勢の制御は、対象となる部位を指定するうえで、入力処理が複雑となる場合がある。
【0005】
このような課題に鑑み、本発明の目的の一つは、仮想空間に配置されたオブジェクトの姿勢を容易に制御することにある。
【課題を解決するための手段】
【0006】
本発明の一実施形態によれば、情報処理装置に、仮想空間に配置された、複数の連動する部位を有するオブジェクトを表示部に表示し、前記情報処理装置の動きに関する情報に基づいて、複数の連動する部位のうち一部の対象部位を移動するように前記オブジェクトの姿勢を制御することを実行させるためのオブジェクト姿勢制御プログラムが提供される。
【0007】
上記オブジェクト姿勢制御プログラムにおいて、前記情報処理装置は、設定部を有し、前記設定部は、前記表示部に表示されたオブジェクトの一部がタッチ操作されたときに入力された情報に基づいて、前記複数の連動する部位のうち一部の対象部位を設定してもよい。
【0008】
上記オブジェクト姿勢制御プログラムにおいて、前記設定部は、前記複数の連動する部位のうち前記一部であって、前記オブジェクトの移動可能な第1対象部位を設定し、前記複数の連動する部位のうち第2対象部位は、設定された前記第1対象部位に基づいて前記設定部により設定され、前記第1対象部位は、前記第2対象部位を基準として移動してもよい。
【0009】
上記オブジェクト姿勢制御プログラムにおいて、前記第1対象部位が可動領域の限界点に到達したときに、前記第2対象部位に連結し、前記第2対象部位に対して前記第1対象部位の反対側に設けられた第3対象部位を設定し、前記第3対象部位を基準にして前記オブジェクトの前記第2対象部位が移動することを含んでもよい。
【0010】
上記オブジェクト姿勢制御プログラムにおいて、前記表示部に表示された前記オブジェクトにおいて、前記第1対象部位または前記第2対象部位を設定するときに複数の部位が重畳する部分が指定されたとき、前記オブジェクトの表示される方向を変更してもよい。
【0011】
上記オブジェクト姿勢制御プログラムにおいて、前記表示部に表示されたオブジェクトにおいて、前記第1対象部位または前記第2対象部位を設定するときに複数の部位が重畳する部分が指定されたとき、所定の条件を満たす部位を前記第1対象部位または前記第2対象部位として設定してもよい。
【0012】
上記オブジェクト姿勢制御プログラムにおいて、前記表示部に表示された前記オブジェクトにおいて、前記第1対象部位または前記第2対象部位を設定するときに複数の部位が重畳する部分が指定されたとき、前記重畳する部分に対する所定の操作に基づいて、前記第1対象部位または前記第2対象部位を設定してもよい。
【0013】
上記オブジェクト姿勢制御プログラムにおいて、前記第1対象部位および前記第2対象部位とは異なる、前記オブジェクトの移動可能な第4対象部位を設定し、前記第4対象部位に連結された第5対象部位を設定し、前記情報処理装置の動きに関する情報に基づいて、前記第2対象部位を基準として前記オブジェクトの前記第1対象部位が移動し、前記第5対象部位を基準として前記第4対象部位が移動してもよい。
【0014】
上記オブジェクト姿勢制御プログラムにおいて、前記オブジェクトの前記第1対象部位が移動して、前記第1対象部位および前記第2対象部位とは異なる移動可能な部位に接触したときに第4対象部位として設定し、前記第4対象部位に連結された第5対象部位を設定し、前記第1対象部位の移動に基づき、前記第5対象部位を基準として前記第4対象部位が移動してもよい。
【0015】
上記オブジェクト姿勢制御プログラムにおいて、前記第1対象部位または前記第2対象部位がタッチされた状態で、前記情報処理装置が移動したときに、前記表示されたオブジェクトが静止した状態で、前記仮想空間上の前記オブジェクトの前記第2対象部位を基準として前記第1対象部位が移動してもよい。
【0016】
本発明の一実施形態によれば、仮想空間に配置されたオブジェクトの姿勢を制御するオブジェクト姿勢制御システムであって、複数の連動する部位を有する前記オブジェクトを表示部に表示し、情報処理装置の動きに関する情報に基づいて、前記複数の連動する部位のうち一部を移動するように前記オブジェクトの姿勢を制御する、オブジェクト姿勢制御システムが提供される。
【0017】
本発明の一実施形態によれば、仮想空間に配置されたオブジェクトの姿勢を制御する情報処理装置であって、複数の連動する部位を有する前記オブジェクトを表示部に表示し、前記情報処理装置の動きに関する情報に基づいて、前記複数の連動する部位のうち一部の対象部位を移動するように前記オブジェクトの姿勢を制御する、情報処理装置が提供される。
【発明の効果】
【0018】
本発明の一実施形態を用いることにより、オブジェクトの姿勢を容易に制御することができる。
【図面の簡単な説明】
【0019】
【
図1】本発明の第1実施形態に係るオブジェクト姿勢制御システムにおけるハード ウェアの構成を示す図である。
【
図2】本発明の第1実施形態に係るオブジェクト姿勢制御部の機能ブロック図であ る。
【
図3】本発明の第1実施形態に係るオブジェクト姿勢制御処理のフロー図である。
【
図4】本発明の第1実施形態に係る第1オブジェクト姿勢制御処理のフロー図であ る。
【
図5】本発明の第1実施形態に係る第1オブジェクト姿勢制御処理における仮想空 間の座標と情報処理装置に表示される座標との位置合わせの一例である。
【
図6】本発明の第1実施形態に係るオブジェクトの各部位の座標の一例である。
【
図7】本発明の第1実施形態に係る第1オブジェクト姿勢制御処理における情報処 理装置の表示部に表示されたユーザインターフェースの一例である。
【
図8】本発明の第1実施形態に係る第2オブジェクト姿勢制御処理のフロー図であ る。
【
図9】本発明の第1実施形態に係る第2オブジェクト姿勢制御処理における情報処 理装置の表示部に表示されたユーザインターフェースの一例である。
【
図10】本発明の第1実施形態に係る第2オブジェクト姿勢制御処理における情報 処理装置の表示部に表示されたユーザインターフェースの一例である。
【
図11】本発明の第1実施形態に係る第3オブジェクト姿勢制御処理のフロー図で ある。
【
図12】本発明の第1実施形態に係る第3オブジェクト姿勢制御処理における情報 処理装置の位置を変更させたときの一例である。
【
図13】本発明の第1実施形態に係る第3オブジェクト姿勢制御処理における、端 末の移動前、移動後の位置座標およびオブジェクトの位置座標である。
【
図14】本発明の第1実施形態に係る第3オブジェクト姿勢制御処理における情報 処理装置の表示部に表示されたユーザインターフェースの一例である。
【
図15】本発明の第2実施形態に係る情報処理装置の表示部に表示されたユーザイ ンターフェースの一例である。
【
図16】本発明の第2実施形態に係る情報処理装置の表示部に表示されたユーザイ ンターフェースの一例である。
【
図17】本発明の第3実施形態に係るオブジェクト姿勢制御部の機能ブロック図で ある。
【
図18】本発明の第3実施形態に係る第3オブジェクト姿勢制御処理のフロー図で ある。
【
図19】各部位の可動領域を示すデータ構造である。
【
図20】本発明の第3実施形態に係る第3オブジェクト姿勢制御処理における情報 処理装置の表示部に表示されたユーザインターフェースの一例である。
【
図21】本発明の第3実施形態に係る第3オブジェクト姿勢制御処理における情報 処理装置の表示部に表示されたユーザインターフェースの一例である。
【
図22】本発明の第4実施形態に係るオブジェクト姿勢制御部の機能ブロック図で ある。
【
図23】本発明の第4実施形態に係る第2オブジェクト姿勢制御処理のフロー図で ある。
【
図24】本発明の第4実施形態に係る第2オブジェクト姿勢制御処理における情報 処理装置の表示部に表示されたユーザインターフェースの変形例の一例である。
【
図25】本発明の第4実施形態に係る第3オブジェクト姿勢制御処理のフロー図で ある。
【
図26】本発明の第4実施形態に係る第3オブジェクト姿勢制御処理における情報 処理装置の位置を変更させたときの一例である。
【
図27】本発明の第4実施形態に係る情報処理装置の表示部に表示されたユーザイ ンターフェースの一例である。
【
図28】本発明の第5実施形態に係る情報処理装置の表示部に表示されたユーザイ ンターフェースの一例である。
【
図29】本発明の第5実施形態に係る情報処理装置の表示部に表示されたユーザイ ンターフェースの一例である。
【
図30】本発明の第5実施形態に係る情報処理装置の表示部に表示されたユーザイ ンターフェースの一例である。
【
図31】本発明の第6実施形態に係る情報処理装置の表示部に表示されたユーザイ ンターフェースの一例である。
【
図32】本発明の第6実施形態に係る情報処理装置の表示部に表示されたユーザイ ンターフェースの一例である。
【
図33】本発明の第7実施形態に係る端末の移動前後のオブジェクトの第1対象部 位の座標のデータ構造である。
【
図34】本発明の第7実施形態に係る情報処理装置の表示部に表示されたユーザイ ンターフェースの一例である。
【
図35】本発明の第1実施形態に係るオブジェクト姿勢制御システムにおけるハー ドウェアの構成の変形例である。
【発明を実施するための形態】
【0020】
以下、本発明の実施の形態を、図面等を参照しながら説明する。但し、本発明は多くの異なる態様で実施することが可能であり、以下に例示する実施の形態の記載内容に限定して解釈されるものではない。図面は説明をより明確にするため、模式的に表される場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。また、各要素に対する「第1」、「第2」と付記された文字は、各要素を区別するために用いられる便宜的な標識であり、特段の説明がない限りそれ以上の意味を有さない。なお、本実施形態で参照する図面において、同一部分または同様な機能を有する部分には同一の符号または類似の符号(数字xxxにA,Bを付しただけの符号)を付し、その繰り返しの説明は省略する場合がある。また、構成の一部が図面から省略されたりする場合がある。その他、本発明の属する分野における通常に知識を有する者であれば認識できるものである場合、特段の説明を行わないものとする。
【0021】
本発明の一実施形態において記載される「対象部位」とは、オブジェクトが有する移動可能な部位をいい、複数の対象部位を組み合わせることにより連動する部位が構成される。第1対象部位は、連動する部位のうち移動する部位に相当する。第2対象部位は、連動する部位のうち設定された第1対象部位に基づいて第1対象部位の動きの支点となる部位に相当する。
【0022】
<第1実施形態>
本発明の第1実施形態に係るオブジェクト姿勢制御システムについて、図面を参照しながら詳細に説明する。
【0023】
(1-1.オブジェクト姿勢制御システムのハードウェア構成)
図1に、オブジェクト姿勢制御システム1のハードウェア構成および機能ブロック図を示す。
図1に示すように、オブジェクト姿勢制御システム1は、端末10およびサーバ20を含む。端末10およびサーバ20を合わせて情報処理装置という場合がある。
【0024】
端末10は、コンピュータの一つであり、表示部11、制御部12、記憶部13、操作部14、通信部15、センサ部16、カメラ部17、およびマイク部18を有する。この例では、端末10としてスマートフォンが用いられる。なお、スマートフォンに限定されず、携帯電話(フィーチャーフォン)、タブレット型端末、ノートPC(Personal Computer)、IoTデバイス(電源機構、通信機能および情報記憶機構を備えた機器)などでもよく、ネットワークを通じてサーバ20と通信可能なものであれば適用可能である。
【0025】
表示部11は、液晶ディスプレイまたは有機ELディスプレイなどの表示デバイスであって、制御部12から入力される信号により表示内容が制御される。
【0026】
制御部12は、CPU(Central Processing Unit)、RAM
(Random Access Memory)、ASIC(Application Specific Integrated Circuit)、またはFPGA(Flexibe Programable Gate Array)を備えることで実現される。制御部12は、表示部11および操作部14の操作に基づいて、記憶部13に記憶されたオブジェクト姿勢制御プログラムを含むアプリケーションを実行させる。
【0027】
記憶部13は、オブジェクト姿勢制御用プログラム、およびオブジェクト姿勢制御用プログラムで用いられる空間情報を記憶するデータベースとしての機能を有する。記憶部13には、メモリ、SSD、または記憶可能な素子が用いられる。
【0028】
操作部14は、コントローラー、ボタン、またはスイッチを含む。操作部14は、上下左右への移動、押圧、または回転などの動作がなされることにより、その動作に基づく情報が制御部12に送信される。本実施形態では、端末10がタッチセンサを有する表示装置(タッチパネル)であることにより、表示部11と操作部14とが、同じ場所に配置されてもよい。これにより、オブジェクトを表示しながら、オブジェクトの対象部位を指定することができるため、オブジェクトの姿勢制御が容易となる。
【0029】
通信部15は、サーバ20と送受信する機能を有する。通信部15には、LAN送受信機(例えばWi-Fi送受信機)が用いられる。なお、送受信機は、LAN送受信機に限定されない。端末が携帯型の端末の場合には、携帯端末用通信(例えばLTE通信)用の送受信機が設けられてもよいし、近距離無線通信用の送受信機が設けられてもよい。端末10は、ネットワーク50を介してサーバ20と接続される。
【0030】
センサ部16は、端末の位置情報を検出する機能を有する。センサ部16には、GPS
(Global Positional System)、加速度センサ、ジャイロセンサ(角速度センサ)を含む。
【0031】
カメラ部17は、環境画像を撮影する機能を有し、オブジェクトを表示する上でのマーカー部が設けられた物体を撮影する。カメラ部17には、例えばCMOSイメージセンサが用いられる。
【0032】
マイク部18は、ユーザから発せされた口頭の情報を取り込み、制御部12または記憶部13に入力する機能を有する。
【0033】
サーバ20は、通信部21、記憶部22、制御部23および表示部24を有する。サーバ20は、データベースおよびアプリケーションサーバとして機能する。なお、あらかじめ端末10にオブジェクト姿勢制御用プログラムに関連するすべての情報が搭載されている場合にはサーバ20を必ずしも用いなくてもよい。
【0034】
通信部21は、送受信機を有し、ネットワーク50を介して端末10とオブジェクトの制御情報の情報通信を行う。通信部21には、イントラネット用のLAN送受信機が用いられる。なお、送受信機は、イントラネット用のLAN送受信機に限定されず、端末10と同様に通信可能な装置が用いられる。
【0035】
記憶部22は、ハードディスク、およびSSDを用いることで、オブジェクト姿勢制御用プログラムで用いられる情報のデータベースとしての機能を有する。
【0036】
制御部23は、CPU、RAM、ASIC、またはFPGAを用いて、オブジェクト姿勢制御プログラムの処理を制御する。また、制御部23からの命令によって、オブジェクト姿勢制御プログラムを実行するためのユーザインターフェースが表示部24に提供される場合がある。
【0037】
(1-2.オブジェクト姿勢制御部100の構成)
図2は、オブジェクト姿勢制御システム1における端末10の各構成要素およびサーバ20の各構成によって構成され、オブジェクト姿勢制御機能を実現させるプログラム(オブジェクト姿勢制御プログラム)を制御するオブジェクト姿勢制御部100の機能ブロック図を示す。この例では、オブジェクト姿勢制御プログラムが端末に設けられている例を説明する。
【0038】
オブジェクト姿勢制御部100は、撮影画像取得部110、マーカー検出部120、空間定義部130、オブジェクト表示部140、第1対象部位設定部150、第2対象部位設定部160、連動部位判定部170、移動情報取得部180、およびオブジェクト座標変更部190を含む。
【0039】
撮影画像取得部110は、カメラ部17において撮影された実空間の環境画像を取得する機能を有する。
【0040】
マーカー検出部120は、撮影画像取得部110によって取得された画像からマーカーを検出する機能を有する。この例では、マーカーの情報は、あらかじめ記憶部13に記憶されている。なお、マーカーの情報は、必ずしも記憶部13に記憶されていなくてもよく、撮影された画像からマーカーとなりうる特徴点を抽出してもよい。
【0041】
空間定義部130は、仮想空間と表示部11の座標との位置合わせを行う機能を有する。本実施形態では、空間定義部130は、マーカーベース位置合わせ法を用い、検出されたマーカーを基準に仮想空間と表示部11の座標とを位置合わせする。
【0042】
オブジェクト表示部140は、仮想空間上に配置された姿勢を制御する対象となるオブジェクトを表示部11に表示する機能を有する。
【0043】
第1対象部位設定部150は、複数の連動する部位のうち移動可能な第1対象部位を設定する機能を有する。第2対象部位設定部160は、設定された第1対象部位に基づいて第2対象部位を設定する機能を有する。本実施形態では、第1対象部位設定部150および第2対象部位設定部160を合わせて設定部ということができ、設定部は、オブジェクトの複数の連動する部位を設定する機能部の総称とする。第1対象部位設定部150および第2対象部位設定部160を分けて記載する必要がないときは、設定部として説明する。
【0044】
連動部位判定部170は、設定部において設定された複数の部位が連動するかどうかを判定する機能を有する。連動するかどうかの判定は、あらかじめオブジェクト姿勢制御プログラムに組み込まれた情報を用いてもよいし、ユーザからの入力された信号に基づいて行われてもよい。
【0045】
移動情報取得部180は、センサ部16から入力された端末10の移動前後の座標にもとづいた移動情報を取得する機能を有する。
【0046】
オブジェクト座標変更部190は、表示部11に移動後のオブジェクトを表示するために、連動する部位のうち一部の対象部位の座標を変更し記録するとともに、その位置情報をオブジェクト表示部140に送信する機能を有する。移動情報取得部180、オブジェクト座標変更部190およびオブジェクト表示部140は、1秒あたり60回にわたってオブジェクトにおける対象部位の移動情報を取得し、対象部位の空間座標および表示画面上の座標を変更することにより、オブジェクトの動き(姿勢の変化)を静止画または動画として表示することができる。
【0047】
(1-3.オブジェクト姿勢制御処理)
次に、オブジェクト姿勢制御部100におけるオブジェクト姿勢制御プログラムによる命令に基づいたオブジェクト姿勢制御処理について説明する。
図3は、オブジェクト姿勢制御処理のフロー図である。
図3に示すように、オブジェクト姿勢制御処理は、第1オブジェクト姿勢制御処理S100、第2オブジェクト姿勢制御処理S200、および第3オブジェクト姿勢制御処理S300を含む。
【0048】
第1オブジェクト姿勢制御処理S100は、撮影画像の取得・表示処理、マーカー情報検出処理、空間定義処理、および撮影画像・オブジェクト重畳表示処理を含む。第2オブジェクト姿勢制御処理S200は、移動モード判定処理、第1対象部位情報入力処理、第1対象部位設定処理、第2対象部位情報入力処理、第2対象部位設定処理、および連動する部位かどうかの判定処理を含む。第3オブジェクト姿勢制御処理S300は、端末移動量取得処理、オブジェクトの座標変更処理、移動後のオブジェクトの表示処理、および端末の移動が終了したかどうかの判定処理を含む。それぞれのオブジェクト姿勢制御処理を分けて説明する。
【0049】
(1-3-1.第1オブジェクト姿勢制御処理S100)
図4に、第1オブジェクト姿勢制御処理S100を示す。第1オブジェクト姿勢処理S100は、オブジェクト姿勢制御プログラムを含むアプリケーションを起動させることをきっかけとして、開始される。
【0050】
第1オブジェクト姿勢処理S100において、撮影画像取得部110は実空間の環境画像の撮影を行い、その撮影された画像を取得し(S110)、端末10の表示部11に撮影された画像を表示する。
【0051】
図5は、端末10で実空間を撮影するときの一例である。
図5において、実際の空間には、端末10とともに、テーブル60、およびシート70が配置されている。シート70には、4つのマーカー75が含まれている。この例では、端末10により4つのマーカー75を含むように、テーブル60の一部およびシート70が撮影される。
【0052】
図4に戻って説明する。次に、マーカー検出部120は、マーカー検出処理を行う(S120)。この例では、オブジェクト姿勢制御プログラムには、あらかじめ4つのマーカーの情報が登録されている。マーカーの情報は、マーカーの形態および配置に関するものである。4つのマーカーが検出されないとき(S120;No)、撮影画像の取得・表示処理に戻る。
【0053】
次に、4つのマーカーを検出した場合には(S120;Yes)、空間定義部130は、マーカーベース位置合わせ法を用いて、実空間と仮想空間との座標の位置合わせ(空間定義)を行う(S130)。このとき、空間定義部130は、表示部11に表示された実空間上のマーカー75と、オブジェクト姿勢制御プログラムに記憶された仮想空間上のマーカーとを照合し、仮想空間の座標を実空間の座標として表示部11に表示可能となるように調整を行う。例えば、マーカー75-1の位置座標は、実空間の位置座標が(Xr75-1,Yr75-1,Zr75-1)、表示部11における位置座標が(Xd75-1,Yd75-1)、仮想空間の位置座標が(Xv75-1,Yv75-1,Zv75-1)として定義される。
【0054】
次に、空間定義部130は、仮想空間におけるオブジェクト座標の取得処理を行う(S140)。
図6は、オブジェクトの各部位の仮想空間上の座標である。
図6に示すように、オブジェクトの各部位の座標情報は、4つのマーカーの座標に基づいて設定された原点に対して設定される。上記処理により、マーカー75の表示部11における情報が取得されることにより、オブジェクトの各部位の座標が取得される。
【0055】
次に、オブジェクト表示部140は、撮影された画像にオブジェクトの画像を重畳して表示する(S150)。
図7は、端末10の表示部11に表示されたオブジェクトのユーザインターフェースである。
図7において、オブジェクト80は、シート70上に配置されて表示されている。この例では、オブジェクト80は、人型の体形を有し、複数の部位81および複数のボーン82を有する。部位81は、移動可能な部位であり、人間の関節に相当する。部位81(部位81a)は、隣接する部位81(部位81b)と、ボーン82を介して接続されている。つまり、部位81aおよび部位81bは連動する部位であるということができる。なお、オブジェクト80を表示する際に、シート70は表示されなくてもよい。以上により、第1オブジェクト姿勢制御処理S100は終了となる。
【0056】
(1-3-2.第2オブジェクト姿勢制御処理S200)
図8に、第2オブジェクト姿勢制御処理S200のフロー図を示す。第2オブジェクト姿勢制御処理S200は、第1オブジェクト姿勢制御処理S100の終了をきっかけとして行われる。
【0057】
まず、移動モードであるかどうかの判定がなされる(S210)。移動モードであるかどうかは、センサ部16が端末10の動きを検知するかどうかで判定してもよいし、ユーザからの入力に基づいて判定してもよい。移動モードである場合には(S210;Yes)、第2オブジェクト姿勢制御処理は、終了となる。
【0058】
移動モードでない場合(S210;No)、連動する部位の一部の対象部位として、第1対象部位の情報が第1対象部位設定部150に入力される(S220)。
図9は、第1対象部位の情報を入力するときの一例を示すユーザインターフェースである。
図9に示すように、第1対象部位の情報を入力する際に、表示画面上に「第1対象部位をタッチしてください。」と表示してもよい。この例では、第1対象部位の情報を入力する際に、ユーザが表示部11に表示されたオブジェクトうち、部位81aに相当する部分がタッチ操作される。部位81aは、オブジェクト80の手首の関節に相当する。上述した通り、端末10はタッチパネルを有しており、部位81aがタッチ操作されることにより、部位81aの位置情報が第1対象部位設定部150に入力される。
【0059】
なお、部位81aの情報を入力する際に、部位81aに相当する部分を囲むようになぞってもよいし、部位81aに相当する部分を複数の指で囲むようにしてもよい。
【0060】
図8に戻って説明する。次に、入力された情報に基づいて、第1対象部位設定部150は、タッチ操作された部位81aを第1対象部位として設定する(S230)。
【0061】
次に、第2対象部位の情報が第2対象部位設定部160に入力される(S220)。
図10は、第2対象部位の情報を入力するときの一例を示すユーザインターフェースである。
図10に示すように、第2対象部位の情報を入力する際に、第1対象部位の場合と同様に、「第2対象部位をタッチしてください。」と表示され、ユーザが表示部11に表示されたオブジェクトうち、第2対象部位となる部位81bに相当する部分がタッチ操作される。部位81bは、オブジェクト80の肘の関節に相当する。このとき、部位81aと同様に、部位81bがタッチ操作されることにより、部位81bの位置情報が第2対象部位設定部160に入力される。
【0062】
図8に戻って説明する。次に、入力された情報をもとに、第2対象部位設定部160は、タッチ操作された部位81bを第2対象部位として設定する(S250)。
【0063】
次に、連動部位判定部170は、部位81aと、部位81bとが連動して移動するかを判定する。部位81aと、部位81bとが、連動する部位ではないと判定されると(S260;No)、第1対象部位の情報を再度入力する(S220)。この例では、部位81aと、部位81bとが、ボーン82aを介して接続されていることから、連動する部位であると判定される(S260;Yes)。以上により、第2オブジェクト姿勢制御処理S200は終了となる。
【0064】
(1-3-3.第3オブジェクト姿勢制御処理S300)
図11は、第3オブジェクト姿勢制御処理S300のフロー図である。第3オブジェクト姿勢制御処理S300は、第2オブジェクト姿勢制御処理S200の終了をきっかけに開始される。
【0065】
第3オブジェクト姿勢制御処理S300において、はじめに、移動情報取得部180は、端末10の移動量(動きに関する情報ともいう)を取得する(S310)。この例では、端末10の位置情報の変化に伴うオブジェクトの姿勢の追跡は、V-SLAM(Visual Simultaneous Localization and Mapping)法により行われる。
図12は、端末10ユーザ90の動きに合わせて移動したときの一例である。端末10を移動するときに、ユーザは端末10の表示部11に接触していなくてもよい。センサ部16を用いて計測され、移動情報取得部180において取得される。センサ部16には、GPS、加速度センサ、または角速度センサが用いられる。
図13
(A)は、初期値(移動前)、時間t1後(移動後)の端末10の位置座標、および移動前後の座標より求められる端末10の移動量を示すデータ構造である。
【0066】
次に、取得された移動量をもとに、オブジェクト座標変更部190は、オブジェクト80のうち移動対象部位である第1対象部位(部位81a)の座標を変更し、記録する(S320)。
図13(B)は、時間t1後のオブジェクトの第1対象部位(部位81a)の仮想空間上の座標および表示部11における座標のデータ構造である。
図13(B)に示すように、端末10の移動情報に基づいて仮想空間におけるオブジェクト80の第1対象部位(部位81a)の情報、および表示部11におけるオブジェクト80の第1対象部位
(部位81a)の座標の情報が変更され、変更後の座標の情報が記憶される(座標情報の書き換えがなされる)。
【0067】
図11に戻って説明する。次に、オブジェクト表示部140は、移動後(時間t1後)の第1対象部位の情報を用いて表示部11にオブジェクト80を表示する(S330)。
図14は、表示部11に第1対象部位の位置が変化したオブジェクト80を表示したユーザインターフェースである。
図14に示すように、第1対象部位(部位81a)は、
図7で表示された位置から第2対象部位(部位81b)を基準として移動する。つまり、情報処理装置の動きに関する情報に基づいて、複数の連動する部位のうち一部の対象部位を移動することができる。上記処理は、端末10が移動する限り(S340;Yes)繰り返し行われる。この例では、端末の移動量の取得は、1秒あたり60回行われるため、オブジェクトの姿勢の変化が滑らかに表示される。端末10の移動が終了したとき(S340;No)、第3オブジェクト姿勢制御処理S300は、終了となる。
【0068】
上記に示した通り、本実施形態のオブジェクト姿勢制御プログラムを用いることにより、連動する部位の設定および端末の移動を用いて、複雑な制御を行うことなく容易にオブジェクトの姿勢制御を行うことができる。
【0069】
<第2実施形態>
本実施形態では、第1実施形態と異なるオブジェクト姿勢制御部およびオブジェクト姿勢制御方法について説明する。具体的には第1対象部位を移動させる際の支点が異なる例について説明する。なお、第1実施形態と同様の構成および方法については、適宜省略する場合がある。
【0070】
図15は、第2対象部位の情報を入力するときの一例を示すユーザインターフェースである。
図15に示すように、部位81cに相当する部分をタッチ操作し、第2対象部位の情報を入力し、第2対象部位として設定してもよい。この場合、部位81aと、部位81cとは、離隔しているが、ボーン82a、部位81b、およびボーン82bを合わせて一つのボーンとみなすようにあらかじめプログラムに設定することにより、連動する部位として判定することができる。
【0071】
これにより、本実施形態を用いることにより、端末10を移動させたときに、
図16に示すように、部位81cを基準として部位81aを移動させることにより、オブジェクトの姿勢制御を行うことができる。
【0072】
なお、ボーン82a、部位81b、およびボーン82bを合わせて一つのボーンと固定されたものとしてみなさない場合には、部位81aの動きに連動して部位81bを移動させてもよい。この場合、部位81bは、制御されない状態となるため、部位81aが動きに合わせて同時に移動してもよいし、遅れて移動してもよい。
【0073】
<第3実施形態>
本実施形態では、第1実施形態と異なるオブジェクト姿勢制御部およびオブジェクト姿勢制御方法について説明する。具体的には、第3オブジェクト姿勢制御処理S300を行う上で、第1対象部位の移動領域が限界点に到達したときに、第3対象部位を設定する処理について説明する。なお、第1実施形態および第2実施形態と同様の構成および方法については、適宜省略する場合がある。
【0074】
(3-1.オブジェクト姿勢制御部100Aの構成)
図17は、オブジェクト姿勢制御システム1Aにおける、オブジェクト姿勢制御部100Aの機能ブロック図を示す。
図17に示すように、オブジェクト姿勢制御部100Aは、撮影画像取得部110、マーカー検出部120、空間定義部130、オブジェクト表示部140、第1対象部位設定部150、第2対象部位設定部160、連動部位判定部170、移動情報取得部180、およびオブジェクト座標変更部190に加えて、限界点検出部195、第3対象部位設定部200を含む。
【0075】
限界点検出部195は、第1対象部位の移動を検知し、第1対象部位が可動領域の限界点に到達したときに第3対象部位設定部200に情報を入力する機能を有する。第3対象部位設定部200は、限界点検出部195から入力された信号に基づいて、第3対象部位を設定する機能を有する。第3対象部位が設定されると、第2対象部位は支点から移動部位に切り替わるとともに、第3対象部位を基準として第2対象部位が移動する。
【0076】
(3-2.オブジェクト姿勢制御処理)
図18に、オブジェクト姿勢制御部100Aにおけるオブジェクト姿勢制御プログラムによる命令に基づいた第2オブジェクト姿勢制御処理のフロー図(S300A)を示す。
図18に示すように、端末10Aを移動させ、端末10Aの移動量を取得し(S310)、第1対象部位(部位81a)の仮想空間の座標および表示部11における座標を変更する(S320)。
【0077】
図19は、各部位の可動領域を示すデータ構造である。
図19に示すように、第1対象部位の可動領域として、第2対象部位に対する相対的な位置座標が設定される。このとき、限界点検出部195は、第1対象部位(この例では、部位81a)の可動領域の限界点を超えるものではないと判定したとき(S325;No)、第1実施形態と同様にオブジェクトの表示を行う(S330)。一方、
図20に示すように、第1対象部位の可動領域の限界点を超えるものであると判定した場合(S325;Yes)、限界点検出部195は、第3対象部位設定部200にその情報を入力する。第3対象部位設定部200は、入力された情報に基づき、第2対象部位に連結し、第2対象部位に対して第1対象部位の反対側に設けられた部位を第3対象部位として設定する(S350)。この例では、第2対象部位に相当する部位81b(肘関節に相当)に対して、第1対象部位に相当する部位81a(手首関節に相当)の反対側に設けられた部位81c(肩関節に相当)が第3対象部位として設定される。部位81cは、部位81bと、ボーン82bを介して連結されている。本実施形態では、部位81cは自動的に設定される。なお、自動的に設定されない場合には、第1対象部位と同様に、ユーザの操作によって、第3対象部位の情報を入力後、第3対象部位を設定してもよい。この場合、連動する部位であるかを判定してもよい。
【0078】
次に、第3対象部位設定後、端末10の移動量を取得し(S360)、第2対象部位(部位81b)の座標を変更し(S370)、第2対象部位の変更された座標に基づいて、
図21に示すように第3対象部位(部位81c)を基準にして第2対象部位(部位81b)が移動したオブジェクトが表示される(S380)。以上より、本実施形態を用いることにより、移動部位が可動領域の限界に到達したときもオブジェクトの姿勢を容易に制御することができる。
【0079】
なお、上記と同様の処理は、固定部位を基準として移動する移動部位が可動領域の限界点を検出した場合、繰り返し行われてもよい。つまり、固定点となる第n(nは2以上の自然数)対象部位を基準として第(n-1)対象部位が移動したときに、第(n-1)対象部位が可動領域の限界点に到達したとき、第n対象部位に連結し、第(n-1)対象部位の反対側に設けられた第(n+1)対象部位を設定してもよい。これにより、オブジェクトの姿勢をより滑らかに制御することができる。
【0080】
<第4実施形態>
本実施形態では、第1実施形態と異なるオブジェクトの姿勢制御処理について説明する。具体的には、複数の部位が一つの端末の移動に基づいて移動する例について説明する。なお、第1~第3実施形態と同様の構成および方法については、適宜省略する場合がある。
【0081】
(4-1.サーバおよびオブジェクト姿勢制御部100Bの構成)
図22は、オブジェクト姿勢制御システム1Bにおける、オブジェクト姿勢制御部100Bの機能ブロック図を示す。
図22に示すように、オブジェクト姿勢制御部100Bは、撮影画像取得部110、マーカー検出部120、空間定義部130、オブジェクト表示部140、第1対象部位設定部150、第2対象部位設定部160、連動部位判定部170、移動情報取得部180、およびオブジェクト座標変更部190に加えて、連動部位追加部210、第4対象部位設定部220および第5対象部位設定部230を含む。
【0082】
連動部位追加部210は、第1対象部位および第2対象部位を含む連動する部位(第1連動部位という場合ある)とは異なる連動する部位(第2連動部位という場合がある)を追加で設定する機能を有する。第4対象部位設定部220は、第4対象部位を設定する機能を有する。第4対象部位は、第2連動部位のうち移動する部位に相当する。第5対象部位設定部230は、第5対象部位を設定する機能を有する。第5対象部位は、第2連動部位のうち第4対象部位の動きの支点となる部位に相当する。
【0083】
(4-2.オブジェクト姿勢制御処理)
図23に、オブジェクト姿勢制御部100Bにおけるオブジェクト姿勢制御プログラムによる命令に基づいた第2オブジェクト姿勢制御処理S200Bのフロー図を示す。
図23に示すように、第1対象部位および第2対象部位を設定し、連動する部位であると判定された後(S250;Yes)、連動部位追加部210は連動する部位を追加するかどうかを判定する(S255)。上記判定は、ユーザからの入力に基づいてなされてもよい。このとき、表示部11に「連動する部位を追加しますか?」と表示されるとともに、「はい」および「いいえ」のボタンが表示されてもよい。ユーザが「はい」のボタンを押下したとき、連動する部位を追加するための信号が入力され、連動する部位を追加するモードに切り替わる(S255;Yes)。
【0084】
次に、
図24に示すように、部位81dがタッチ操作されることにより、部位81dの位置情報が第4対象部位設定部220に入力される(S260)。入力された情報に基づいて、第4対象部位設定部220は、タッチ操作された部位81dを第4対象部位として設定する(S265)。
【0085】
次に、
図24に示す部位81eがタッチ操作されることにより、部位81eの位置情報が第5対象部位設定部230に入力される(S270)。入力された情報に基づいて、第5対象部位設定部230は、タッチ操作された部位81eを第5対象部位として設定する
(S275)。
【0086】
次に、連動部位判定部170は、第1対象部位および第2対象部位と同様に、第4対象部位および第5対象部位とが連動する部位であるかを判定する(S280)。設定された第4対象部位と第5対象部位とが、連動する部位であると判定された場合(S280;Yes)、第2オブジェクト姿勢制御処理S200Bが終了となる。
【0087】
図25は、第3オブジェクト制御処理S300Bのフロー図である。端末10Bの移動に伴うオブジェクトの移動は第1実施形態と同様の方法で実現されるが、本実施形態の場合、
図26に示すように、端末10Bを寝かせた状態から立たせた状態に位置を変更したときに、この移動量に基づいて、第1対象部位、第4対象部位の座標変更が変更され(S322)、
図27に示すように第2対象部位(部位81b)を基準にして第1対象部位(部位81a)が移動するのと同時に、第5対象部位(部位81e)を基準にして第4対象部位(部位81d)が移動したオブジェクトが表示される(S330)。つまり、一つの端末が移動したときに、複数の連動部位を動かし、オブジェクトの姿勢を制御することができる。
【0088】
<第5実施形態>
本実施形態では、第1実施形態と異なるオブジェクトの姿勢制御処理について説明する。具体的には、複数の部位が重畳して表示されている場合に対象部位を設定する例について説明する。なお、第1~第4実施形態と同様の構成および方法については、適宜省略する場合がある。
【0089】
図28は、複数の部位が重畳して表示されている場合を示すユーザインターフェースである。
図28に示すように、ユーザの部位81a(手首の関節に相当)は、部位81g(腰の関節に相当)と重畳して表示されている。このとき、重畳する部分がタッチ操作されることにより指定されたときに、表示部11におけるオブジェクト80の表示方向を変更してもよい。例えば、重畳する部分がタッチ操作されたとき、
図29に示すように、「オブジェクトの表示方向を変更しますか?」と表示部11に表示し、「はい」および「いいえ」のボタンを表示してもよい。「はい」ボタンが押下されたとき、
図30に示すように、オブジェクト80をシート70に対して時計回りに90度回転して表示してもよい。これにより、重複していた部位81aおよび部位81gが別々に表示され、特定の部位を設定することができる。
【0090】
なお、重畳する部分における特定の部位を設定する方法は、上記方法に限定されない。例えば、所定の条件を満たす部位を特定したい部位(第1対象部位または第2対象部位)として設定してもよい。具体的には、重畳する部分に対してタッチ操作を行うなどして指定した場合、最前面に表示された部位を特定したい部位として設定してもよい。
【0091】
また、別の方法として、重畳する部分に対する所定の操作に基づいて特定したい部位を設定してもよい。具体的には、重畳する部分に対して短い時間(例えば1sec)でタッチ操作する場合には、前面の部位を特定したい部位と設定し、長い時間(例えば5sec)でタッチ操作するときには、後面の部位を特定したい部位として設定してもよい。
【0092】
<第6実施形態>
本実施形態では、第1~第5実施形態と異なるオブジェクトの姿勢制御処理について説明する。具体的には、第1対象部位の移動により、第1対象部位および第2対象部位とは異なる移動可能な部位に接触したときに新たな連結する部位を設定する例について説明する。なお、第1~第5実施形態と同様の構成および方法については、適宜省略する場合がある。
【0093】
図31は、第1対象部位が異なる部位に接触した例を示すユーザインターフェースである。
図31に示すように、ユーザの部位81a(左手首の関節に相当)は、部位81e(右肘の関節に相当)と接触して表示される。このとき、部位81eは、移動可能な部位としてあらかじめ入力されていれば、第4対象部位として設定してもよい。このとき、部位81eと、部位81fとは、ボーン82eを介して連動する部位であるため、部位81fは、第5対象部位として設定されてもよい。
【0094】
上記において、第1対象部位である部位81aが第2対象部位である81bを基準として移動するとき、
図32に示すように、部位81aの移動に基づき第4対象部位である部位81eが第5対象部位である部位81fを基準として移動してもよい。
【0095】
本実施形態を用いることにより、一の連動する部位の動きにより干渉され、他の連動する部位の姿勢を制御することができる。
【0096】
なお、上記制御は、一の連動する部位の姿勢に限定されない。例えば、オブジェクト80とは異なる対象物によって他の連動する部位の姿勢が制御されてもよい。つまり、ユーザによる操作ではなく、受動的に連動する部位を設定することができる。
【0097】
<第7実施形態>
本実施形態では、第1~第5実施形態と異なるオブジェクトの姿勢制御処理について説明する。具体的には、X座標、Y座標、Z座標に加えて角度θを用いてオブジェクトの姿勢を制御する例について説明する。なお、第1~第6実施形態と同様の構成および方法については、適宜省略する場合がある。
【0098】
図33は、端末の移動前後のオブジェクトの第1対象部位(部位81a)の仮想空間上の座標および表示部11における座標のデータ構造である。
図33に示すように、端末10の移動情報において、X座標、Y座標、Z座標だけではなく角度θを用いてもよい。この場合、X座標、Y座標、Z座標のいずれかが用いられなくてもよい。端末10の動きに合わせて仮想空間におけるオブジェクト80の第1対象部位(部位81a)の情報、および表示部11におけるオブジェクト80の第1対象部位(部位81a)の座標の情報が変更され、変更後の座標の情報が記憶される(座標情報の書き換えがなされる)。
【0099】
図34は、表示部11に表示された姿勢が変化した後のオブジェクトのユーザインターフェースの一例である。
図34に示すように、本実施形態を用いることにより、オブジェクトの姿勢において、特にひねりの姿勢を制御することができる。
【0100】
なお、本発明の思想の範疇において、当業者であれば、各種の変更例および修正例に想到し得るものであり、それら変更例および修正例についても本発明の範囲に属するものと了解される。例えば、前述の各実施形態に対して、当業者が適宜、構成要素の追加、削除若しくは設計変更を行ったもの、又は、工程の追加、省略若しくは条件変更を行ったものも、本発明の要旨を備えている限り、本発明の範囲に含まれる。
【0101】
(変形例)
本発明の第1実施形態では、タッチ操作により第1対象部位の情報を入力し、第1対象部位が設定されるとともに、タッチ操作により第2対象部位の情報を入力し、第2対象部位が設定される例を示したが、これに限定されない。例えば、第2対象部位は、第1対象部位が設定される場合に、自動的に設定されてもよい。このとき、第2対象部位は、第1対象部位の上位となる部位が自動で設定されてもよい。
【0102】
本発明の第1実施形態では、ユーザがタッチ操作することにより、第1対象部位および第2対象部位の情報が入力される例を示したが、これに限定さない。例えば、端末10のマイク部18を用いて、対象部位の情報を口頭で入力してもよい。
【0103】
また、本発明の第1実施形態では、端末10を移動させるとき、表示部11に表示されたオブジェクトのうち第1対象部位または第2対象部位がタッチされた状態で端末の移動が行われてもよい。このとき、表示部11に表示されたオブジェクト80が静止された状態で仮想空間上の第1対象部位の座標のみ変更してもよい。仮想空間上では第2対象部位を基準として第1対象部位が移動する。端末10の移動が終了したとき、表示部11には第1対象部位の位置が変更されたオブジェクトが表示されてもよい。
【0104】
本発明の第1実施形態では、撮影された画像と、仮想空間のオブジェクトとをマーカーベース位置合わせ法により位置合わせされ、重畳表示された例を示したが、これに限定されない。オブジェクトを含む仮想空間と、撮影画像との位置合わせの方法として、マーカーベース位置合わせ手法のほかに、特定のマーカーを用いない自然特徴ベース位置合わせ手法、モデルベース位置合わせ手法などのビジョンベース位置合わせ手法、センサを用いたセンサベース位置合わせ手法などを適宜用いてもよい。また、必ずしも撮影画像と仮想空間のオブジェクトとは、位置合わせする必要はなく、仮想空間のオブジェクトの座標が設定できるものであれば、適宜最適な手法を用いればよい。
【0105】
また、本発明の第1実施形態では、拡張現実を用いてオブジェクトを表示する例を示したが、これに限定さない。本発明の一実施形態は、オブジェクトの座標が特定できれば、拡張現実以外にも仮想現実(VR:Virtual Reality)、混合現実(MR:Mixed Reality)などに適用することも可能である。
【0106】
また、本発明の第1実施形態では、一つの端末を用いて、オブジェクトの表示およびオブジェクトの姿勢制御を行う例を示したが、これに限定さない。複数の端末をネットワーク50で連携させて、オブジェクトの姿勢を制御してもよい。例えば、
図35に示すように一つの端末10(端末10-1)でオブジェクトの表示を行い、他の端末10(端末10-2)の位置を変動させることにより、オブジェクトとの姿勢を制御してもよい。これにより、一つの端末10で固定してオブジェクトを表示し続けることができるので、オブジェクトの精細な姿勢制御を行うことができる。また、端末10-1と端末10-2とは、同種の端末でなくてもよい。例えば、表示するための端末としてゴーグル型の端末を用いてもよいし、姿勢制御用の端末として、時計型の端末を用いてもよい。
【符号の説明】
【0107】
1・・・オブジェクト姿勢制御システム,10・・・端末,11・・・表示部,12・・・制御部,13・・・記憶部,14・・・操作部,15・・・通信部,16・・・センサ部,17・・・カメラ部,18・・・マイク部,20・・・サーバ,21・・・通信部,22・・・記憶部,23・・・制御部,24・・・表示部,50・・・ネットワーク,60・・・テーブル,70・・・シート,75・・・マーカー,80・・・オブジェクト,81・・・部位,82・・・ボーン,90・・・ユーザ,100・・・オブジェクト姿勢制御部,110・・・撮影画像取得部,120・・・マーカー検出部,130・・・空間定義部,140・・・オブジェクト表示部,150・・・第1対象部位設定部,160・・・第2対象部位設定部,170・・・連動部位判定部,180・・・移動情報取得部,190・・・オブジェクト座標変更部,195・・・限界点検出部,200・・・第3対象部位設定部,210・・・連動部位追加部,220・・・第4対象部位設定部,230・・・第5対象部位設定部