(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-27
(45)【発行日】2024-07-05
(54)【発明の名称】プログラム、画像処理方法及び画像処理システム
(51)【国際特許分類】
G06F 3/04845 20220101AFI20240628BHJP
G06F 3/04815 20220101ALI20240628BHJP
G06T 19/00 20110101ALI20240628BHJP
【FI】
G06F3/04845
G06F3/04815
G06T19/00 600
(21)【出願番号】P 2021126928
(22)【出願日】2021-08-02
(62)【分割の表示】P 2019125973の分割
【原出願日】2019-07-05
【審査請求日】2022-07-05
(73)【特許権者】
【識別番号】308033283
【氏名又は名称】株式会社スクウェア・エニックス
(74)【代理人】
【識別番号】100188662
【氏名又は名称】浅見 浩二
(74)【代理人】
【識別番号】100177895
【氏名又は名称】山田 一範
(72)【発明者】
【氏名】林 雅人
【審査官】石川 亮
(56)【参考文献】
【文献】特開2014-191718(JP,A)
【文献】特開2018-092339(JP,A)
【文献】特開2017-151806(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/048-3/04895
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
少なくとも1つの仮想オブジェクトを含む仮想空間を仮想カメラから撮影した仮想空間画像を生成する生成機能と、
タッチパネルに対するユーザ操作の内容を判定する判定機能と、
前記ユーザ操作が、前記タッチパネルに触れた後に接触位置が移動しない第1操作と判定された場合、第1操作の継続中、前記コンピュータの移動に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の位置を更新し、かつ前記コンピュータの姿勢
変更に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の姿勢を更新する更新機能を実現させ、
前記更新機能では、前記コンピュータの移動と姿勢変更が同時に起こった場合、優先条件に基づいて、
前記仮想カメラと前記仮想オブジェクトの位置および姿勢のうち何れか一方を更新する機能を
実現させるためのプログラム。
【請求項2】
前記更新機能では、前記第1操作と判定された後、前記接触位置がなくなった場合であっても、所定の終了条件が満たされるまでは前記第1操作が継続中であると判定する機能を
実現させるための請求項1記載のプログラム。
【請求項3】
前記コンピュータに、前記ユーザ操作が、前記タッチパネルに触れた位置をスライドさせる第2操作と判定された場合、当該第2操作により定まる方向に前記仮想オブジェクトを回転させる回転機能を実現させ、
前記判定機能では、前記第2操作により前記仮想オブジェクトが回転した後、前記タッチパネルに触れた位置がスライドされた後の位置から移動しない場合、当該操作を前記第1操作と判定する機能を
実現させるための請求項1または請求項2記載のプログラム。
【請求項4】
コンピュータに対するユーザ操作に応じて情報処理の進行を制御する画像処理方法であって、
少なくとも1つの仮想オブジェクトを含む仮想空間を仮想カメラから撮影した仮想空間画像を生成する生成処理と、
タッチパネルに対するユーザ操作の内容を判定する判定処理と、
前記ユーザ操作が、前記タッチパネルに触れた後に接触位置が移動しない第1操作と判定された場合、第1操作の継続中、前記コンピュータの移動に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の位置を更新し、かつ前記コンピュータの姿勢
変更に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の姿勢を更新する更新処理とを含み、
前記更新処理は、前記コンピュータの移動と姿勢変更が同時に起こった場合、優先条件に基づいて、
前記仮想カメラと前記仮想オブジェクトの位置および姿勢のうち何れか一方を更新する
ことを特徴とする画像処理方法。
【請求項5】
通信ネットワークと、サーバと、ユーザ端末とを備え、ユーザ操作に応じて情報処理の進行を制御する画像処理システムであって、
少なくとも1つの仮想オブジェクトを含む仮想空間を仮想カメラから撮影した仮想空間画像を生成する生成手段と、
タッチパネルに対するユーザ操作の内容を判定する判定手段と、
前記ユーザ操作が、前記タッチパネルに触れた後に接触位置が移動しない第1操作と判定された場合、第1操作の継続中、前記ユーザ端末の移動に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の位置を更新し、かつ前記ユーザ端末の姿勢
変更に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の姿勢を更新する更新手段とを含み、
前記更新手段は、前記ユーザ端末の移動と姿勢変更が同時に起こった場合、優先条件に基づいて、
前記仮想カメラと前記仮想オブジェクトの位置および姿勢のうち何れか一方を更新する
ことを特徴とする画像処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態の少なくとも1つは、現実世界において固定的に配置された実在のオブジェクトに対する仮想的処理を拡張現実技術によって複数のユーザで共有するための情報処理プログラム、情報処理方法及び画像処理システムに関する。
【背景技術】
【0002】
近年、拡張現実(AR:Augmented Reality)技術が提供され始めている。拡張現実は、現実空間の画像に対して平面や立体のオブジェクト(以下「ARオブジェクト」という。)を重畳表示することで現実空間に仮想オブジェクトを表示する技術である。
【0003】
また、拡張現実技術によって表示させるオブジェクトを、ユーザに操作させる技術も提案されている。このような技術には、例えば、ユーザ操作が第1の操作である場合にオブジェクトを張現実空間内において移動させるものがある(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、従来の技術では、ARオブジェクトをユーザに直感的に操作させることができない場合があった。
【0006】
本発明の少なくとも1つの実施形態の目的は、上記課題を解決し、ARオブジェクトの操作性を向上させることである。
【課題を解決するための手段】
【0007】
非限定的な観点によると、本発明の一実施形態に係るプログラムは、撮像装置が接続されたコンピュータに、前記撮像装置により撮像された撮像画像に対応する仮想空間を特定する特定機能と、少なくとも1つの仮想オブジェクトを含む前記仮想空間を前記撮像装置に対応する仮想カメラから撮影した仮想空間画像を生成する生成機能と、前記撮像画像と前記仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力する出力機能と、前記タッチパネルに対するユーザ操作の内容を判定する判定機能と、前記ユーザ操作が、前記タッチパネルに触れた後に接触位置が移動しない第1操作と判定された場合、第1操作の継続中、前記撮像装置の移動または姿勢変更に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の位置または姿勢を更新する更新機能と、前記ユーザ操作が、前記タッチパネルに触れた位置をスライドさせる第2操作と判定された場合、当該第2操作により定まる方向に前記仮想オブジェクトを回転させる回転機能とを実現させるためのプログラム。
【0008】
非限定的な観点によると、本発明の一実施形態に係る情報処理方法は、ユーザ操作に応じて情報処理の進行を制御する画像処理方法であって、コンピュータに接続された撮像装置により撮像された撮像画像に対応する仮想空間を特定する特定処理と、少なくとも1つの仮想オブジェクトを含む前記仮想空間を前記撮像装置に対応する仮想カメラから撮影した仮想空間画像を生成する生成処理と、前記撮像画像と前記仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力する出力処理と、前記タッチパネルに対するユーザ操作の内容を判定する判定処理と、前記ユーザ操作が、前記タッチパネルに触れた後に接触位置が移動しない第1操作と判定された場合、第1操作の継続中、前記撮像装置の移動または姿勢変更に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の位置または姿勢を更新する更新処理と、前記ユーザ操作が、前記タッチパネルに触れた位置をスライドさせる第2操作と判定された場合、当該第2操作により定まる方向に前記仮想オブジェクトを回転させる回転処理とを含むことを特徴とする。
【0009】
非限定的な観点によると、本発明の一実施形態に係る画像処理システムは、通信ネットワークと、サーバと、撮像装置が接続されたユーザ端末とを備え、ユーザ操作に応じて情報処理の進行を制御する画像処理システムであって、前記撮像装置により撮像された撮像画像に対応する仮想空間を特定する特定手段と、少なくとも1つの仮想オブジェクトを含む前記仮想空間を前記撮像装置に対応する仮想カメラから撮影した仮想空間画像を生成する生成手段と、前記撮像画像と前記仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力する出力手段と、前記タッチパネルに対するユーザ操作の内容を判定する判定手段と、前記ユーザ操作が、前記タッチパネルに触れた後に接触位置が移動しない第1操作と判定された場合、第1操作の継続中、前記撮像装置の移動または姿勢変更に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の位置または姿勢を更新する更新手段と、前記ユーザ操作が、前記タッチパネルに触れた位置をスライドさせる第2操作と判定された場合、当該第2操作により定まる方向に前記仮想オブジェクトを回転させる回転手段とを含むことを特徴とする。
【発明の効果】
【0010】
本願の各実施形態により1または2以上の不足が解決される。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施形態の少なくとも一つに対応する画像処理システムの構成の例を示すブロック図である。
【
図2】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
【
図3】本発明の実施形態の少なくとも一つに対応する情報処理の例を示すフローチャートである。
【
図4】本発明の実施形態の少なくとも一つに対応する情報処理におけるサーバ側の動作の例を示すフローチャートである。
【
図5】本発明の実施形態の少なくとも一つに対応する情報処理における端末側の動作の例を示すフローチャートである。
【
図6】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
【
図7】本発明の実施形態の少なくとも一つに対応する情報処理の例を示すフローチャートである。
【
図8】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
【
図9】本発明の実施形態の少なくとも一つに対応する情報処理の例を示すフローチャートである。
【
図10】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
【
図11】本発明の実施形態の少なくとも一つに対応する情報処理の例を示すフローチャートである。
【
図12】本発明の実施形態の少なくとも一つに対応するサーバの構成を示すブロック図である。
【
図13】本発明の実施形態の少なくとも一つに対応する情報処理の例を示すフローチャートである。
【
図14】本発明の実施形態の少なくとも一つに対応する端末の構成を示すブロック図である。
【
図15】本発明の実施形態の少なくとも一つに対応する情報の格納状態の例について説明するための説明図である。
【
図16】本発明の実施形態の少なくとも一つに対応する情報処理の例を示すフローチャートである。
【
図17】本発明の実施形態の少なくとも一つに対応する表示画面の例を示す説明図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態の例について図面を参照して説明する。なお、以下で説明する各実施形態の例における各種構成要素は、矛盾等が生じない範囲で適宜組み合わせ可能である。また、ある実施形態の例として説明した内容については、他の実施形態においてその説明を省略している場合がある。また、各実施形態の特徴部分に関係しない動作や処理については、その内容を省略している場合がある。さらに、以下で説明する各種フローを構成する各種処理の順序は、処理内容に矛盾等が生じない範囲で順不同である。
【0013】
[第1の実施形態]
図1は、本発明の一実施の形態における画像処理システム100の構成の例を示すブロック図である。
図1に示すように、画像処理システム100は、画像処理サーバ10と、画像処理システム100のユーザが使用するユーザ端末20~20n(nは任意の整数)とを含む。なお、画像処理システム100の構成はこれに限定されず、単一のユーザ端末を複数のユーザが使用する構成としてもよいし、複数の画像処理サーバを備える構成としてもよい。
【0014】
画像処理サーバ10と複数のユーザ端末20,201~20nは、それぞれインターネットなどの通信ネットワーク30に接続されている。なお、図示しないが、複数のユーザ端末20,201~20nは、例えば、通信業者によって管理される基地局と無線通信回線によるデータ通信を行うことによって、通信ネットワーク30と接続する。
【0015】
画像処理システム100は、画像処理サーバ10と複数のユーザ端末20,201~20nとを備えることにより、ユーザの操作に応じて各種処理を実行するための各種機能を実現する。
【0016】
画像処理サーバ10は、画像処理システム100の管理者によって管理され、複数のユーザ端末20,201~20nに対して各種処理に関する情報を提供するための各種機能を有する。本例において、画像処理サーバ10は、WWWサーバなどの情報処理装置によって構成され、各種情報を格納する記憶媒体を備える。なお、画像処理サーバ10は、制御部や通信部などコンピュータとして各種処理を行うための一般的な構成を備えるが、ここでの説明は省略する。また、画像処理システム100においては、複数のユーザ端末20,201~20nそれぞれにかかる処理負荷を軽減させるといった観点から、各種情報は画像処理サーバ10が管理することが好ましい。ただし、各種情報を記憶する記憶部は、画像処理サーバ10がアクセス可能な状態で記憶領域を備えていればよく、例えば専用の記憶領域を画像処理サーバ10の外部に有する構成とされていてもよい。
【0017】
複数のユーザ端末20,201~20nは、それぞれ、ユーザによって管理され、画像処理サーバ10から受信した情報を利用して各種処理を実行するための各種機能を有する。本例において複数のユーザ端末20,201~20nは、例えば携帯電話端末やPDA(Personal Digital Assistants)などの通信端末であり、ユーザが動画及び/又は静止画の撮影を行うためのカメラ装置を搭載し、かつ、撮影画像データ等を表示するためのディスプレイを備える。また、カメラ装置は、光学式カメラの他、3次元カメラ装置を併用するものであってもよい。また、複数のユーザ端末20,201~20nは、描画情報を入力するためのマウス、タッチパネル、タッチペン等の入力手段を備える。なお、画像処理システム100が含み得るユーザ端末の構成の他の例には、スマートウォッチなどの所謂ウェアラブルデバイスや、ウェアラブルデバイスと通信端末等との組み合わせがある。
【0018】
また、複数のユーザ端末20,201~20nは、それぞれ、通信ネットワーク30に接続し、画像処理サーバ10との通信を行うことにより各種処理を実行するためのハードウェアおよびソフトウェアを備える。なお、複数のユーザ端末20,201~20nそれぞれは、画像処理サーバ10を介さずに互いに直接通信を行うこともできる構成とされていてもよい。
【0019】
情報処理を行う過程においては、画像処理サーバ10は適宜複数のユーザ端末20,201~20nに対して処理過程を送信するものとし、複数のユーザ端末20,201~20n側では、受信した処理過程の内容に基づいた画面内容を表示装置の表示画面に表示させるものとする。画面内容の生成は、画像処理サーバ10側で行ってもよいし、複数のユーザ端末20,201~20n側で行ってもよい。
【0020】
図2は、画像処理サーバ10の構成の例である画像処理サーバ10A(サーバ10A)を示すブロック図である。
図2に示すように、サーバ10Aは、特定部11と、生成部12と、出力部13と、判定部14と、更新部15と、回転部16とを少なくとも備える。
【0021】
特定部11は、撮像装置により撮像された撮像画像に対応する仮想空間を特定する機能を有する。
【0022】
ここで、撮像装置の例には、サーバ10Aと通信可能なユーザ端末20に接続されたカメラがある。また、撮像画像に対応する仮想空間とは、撮像画像に重畳表示するARオブジェクトを撮影するための仮想的空間を意味する。仮想空間を特定するための構成は公知の技術を用いるため詳細な説明は省略するが、撮像画像から特定される実空間と、特定される仮想空間とが、所定規則により関連付けされることが好ましい。このような構成の例には、撮像装置の位置と向きに基づいて配置が決定された仮想オブジェクトを含む仮想空間を特定する構成がある。
【0023】
生成部12は、少なくとも1つの仮想オブジェクトを含む仮想空間を撮像装置に対応する仮想カメラから撮像した仮想空間画像を生成する機能を有する。
【0024】
ここで、仮想オブジェクトとは、仮想空間に配置されたオブジェクトを意味する。仮想オブジェクトの構成は、ユーザ操作に応じて移動可能であれば特に限定されない。仮想オブジェクトの例には、仮想空間において静止している立体や、仮想空間において所定規則に従い動作しているキャラクタがある。
【0025】
また、撮像装置に対応する仮想カメラとは、ユーザが撮像装置を介して操作可能な仮想カメラを意味する。仮想空間画像を生成するための構成は特に限定されないが、特定部11により特定された仮想空間において、ユーザ操作に応じて撮影反映が変更可能な構成であることが好ましい。このような構成の例には、撮像措置の位置または向きの少なくとも一方が変化した場合に、生成される仮想画像も変化させる構成がある。なお、仮想空間画像の構成は特に限定されないが、少なくとも1つの仮想オブジェクトが描画される構成が好ましい。
【0026】
出力部13は、撮像画像と仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力する機能を有する。
【0027】
ここで、合成画像を出力するための構成は特に限定されないが、合成画像における仮想空間画像をユーザが操作し得る構成であることが好ましい。このような構成の例には、タッチパネルにおける仮想オブジェクトの出力位置を制御して出力し、出力位置に対するタッチ操作を受け付けた場合に所定の処理を行うように出力する構成がある。
【0028】
判定部14は、タッチパネルに対するユーザ操作の内容を判定する機能を有する。
【0029】
ここで、ユーザ操作の内容を判定するための構成は特に限定されないが、複数の操作内容のうち1つの操作内容が判定される構成であることが好ましい。このような構成の例には、いわゆる長押し操作とスライド操作との何れかを受け付けたか、タッチ操作の位置に基づいて判定する構成がある。
【0030】
更新部15は、ユーザ操作が第1操作と判定された場合、第1操作の継続中、撮像装置の移動または姿勢変更に応じて、仮想カメラと仮想オブジェクトの関係を固定した状態で両者の位置または姿勢を更新する機能を有する。なお、撮像装置の移動と姿勢変更は、撮像装置が接続されたユーザ端末の移動と姿勢変更と同義であることが好ましいが、撮像装置がユーザ端末と独立して移動および姿勢変更が可能な構成としてもよい。
【0031】
ここで、第1操作とは、所定の第1操作条件を満たす操作を意味する。第1操作の構成は、後述する第2操作と区別可能であれば特に限定されないが、タッチパネルに触れた後に接触位置が移動しない操作であることが好ましい。
【0032】
また、第1操作が継続中か否かを判定するための構成は特に限定されず、第1操作条件を満たさなくなった場合に継続中でないと判定される構成としてもよいし、第1操作と判定された後、タッチパネルに対するユーザの接触位置がなくなった場合であっても、所定の終了条件が満たされるまでは第1操作が継続中と判定される構成としてもよい。
【0033】
また、仮想カメラと仮想オブジェクトの関係を固定した状態とは、仮想空間における両者の関係を変化させないことを意味する。ここで、両者の関係を定義するための構成は特に限定されないが、相対的な距離または姿勢の関係が変化しない構成であることが好ましい。このような構成の例には、仮想空間において、仮想カメラと仮想オブジェクトとに同じ挙動を行わせる構成がある。なお、仮想カメラと仮想オブジェクトについて、位置と姿勢の少なくとも一方の関係を維持させる構成としてもよいし、位置と姿勢の両方の関係を維持させる構成としてもよい。
【0034】
また、撮像装置の移動または姿勢変更に応じて、仮想カメラと仮想オブジェクト(仮想カメラ等)の位置または姿勢を更新するとは、現実空間における撮像装置の位置が変化した場合には仮想カメラ等の位置を更新し、現実空間における撮像装置の姿勢が変化した場合には仮想カメラ等の姿勢を更新させることを意味する。すなわち、撮像装置の撮像方向が変わると、当該変化と同様に仮想カメラの撮影方向が変化し、併せて仮想オブジェクトの位置が仮想カメラの撮影範囲に収まるように移動する。また、撮像装置の姿勢が変わると、当該変化と同様に仮想カメラの姿勢が変化し、併せて仮想オブジェクトの姿勢が仮想カメラの姿勢と同様に変化する。なお、撮像装置の移動と姿勢変更が同時に起こった場合に、仮想カメラ等の位置と姿勢を同時に更新する構成とすることで、撮像装置と仮想オブジェクトが連動する感覚をユーザに提供する構成としてもよいし、仮想オブジェクト等の移動と姿勢変更のうち何れか一方が優先される構成とすることで、操作性に特徴を設ける構成としてもよい。後者の構成の例には、撮像装置の移動と姿勢変更が同時に行われた場合、仮想カメラ等の移動と姿勢変更のうちどちらを優先して行うかの優先条件を定めておく構成がある。なお、撮像装置の移動または姿勢変更を検出するための構成は特に限定されず、各種センサを用いる公知技術を利用すればよいため、ここでの説明は省略する。
【0035】
回転部16は、ユーザ操作が第2操作と判定された場合、当該第2操作により定まる方向に仮想オブジェクトを回転させる機能を有する。
【0036】
ここで、第2操作とは、所定の第2操作条件を満たす操作を意味する。第2操作の構成は、第1操作と区別可能であれば特に限定されないが、タッチパネルに触れた位置をスライドさせる操作(すなわち、タッチパネルに触れた後に接触位置が移動する操作)であることが好ましい。
【0037】
また、第2操作により仮想オブジェクトを回転させるための構成は特に限定されないが、ユーザが予測しやすい構成であることが好ましい。このような構成の例には、タッチパネルとユーザの指との接触位置が画面左側から画面右側に移動する操作を第2操作と判定した場合、仮想オブジェクトを画面左側から画面右側の方向に自転させる構成がある。なお、この場合、仮想オブジェクトを自転させるための点または軸は、予め仮想オブジェクトに設定されている構成としてもよいし、ユーザ操作から定める構成としてもよい。
【0038】
次に、本例の画像処理システム100(システム100)の動作について説明する。
【0039】
図3は、システム100が実行する情報処理の例を示すフローチャートである。以下、画像処理サーバ10Aと、ユーザ端末20とが、情報処理を実行する場合を例にして説明する。
【0040】
情報処理は、例えばユーザ端末20が、AR機能を用いた撮影要求をユーザから受け付けた場合に開始される。以下、ユーザ端末20からの撮影要求をサーバ10Aが受け付けた場合を例にして説明する。
【0041】
サーバ10Aは、情報処理において、先ず、撮像画像に対応する仮想空間を特定する(ステップS11)。本例においてサーバ10Aは、ユーザ端末20のカメラ(実カメラ)により撮像された撮像画像に対応する仮想空間を特定する。
【0042】
サーバ10Aは、仮想空間を特定すると、仮想空間画像を生成する(ステップS12)。本例においてサーバ10Aは、所定の仮想オブジェクト(ARオブジェクトとしての立方体)を含む仮想空間を、ユーザ端末20のカメラを介してユーザが操作可能な仮想カメラから撮影した仮想空間画像を生成する。
【0043】
サーバ10Aは、仮想空間画像を生成すると、合成画像を出力する(ステップS13)。本例においてサーバ10Aは、撮像画像と仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力する。すなわち、実カメラで撮像した実画像に仮想カメラで撮影した仮想オブジェクトを重畳表示することで拡張現実を実現させる。
【0044】
サーバ10Aは、合成画像を出力すると、ユーザ操作の内容を判定する(ステップS14)。本例においてサーバ10Aは、タッチパネルに対するユーザ操作の内容を判定する。
【0045】
サーバ10Aは、ユーザ操作の内容を判定すると、仮想カメラと仮想オブジェクトの位置または姿勢を更新する(ステップS15)。本例においてサーバ10Aは、ユーザ操作が第1操作と判定された場合、第1操作の継続中、ユーザ端末20の移動または姿勢変更に応じて仮想カメラの位置または姿勢を更新し、併せて仮想オブジェクト位置または姿勢を更新することで、ユーザ端末20を介して仮想オブジェクトを現実空間において操作している感覚をユーザに提供する。
【0046】
サーバ10Aは、仮想カメラと仮想オブジェクトの位置または姿勢を更新すると、仮想オブジェクトを回転させる(ステップS16)。本例においてサーバ10Aは、ユーザ操作が第2操作と判定された場合、第2操作により定まる方向に仮想オブジェクトを回転させる。
【0047】
図4は、情報処理におけるサーバ10側の動作の例を示すフローチャートである。ここでは、システム100におけるサーバ10Aの動作について説明する。
【0048】
サーバ10Aは、例えば、撮像画像に関する情報を含むAR機能の実行要求をユーザ端末20から受信することで情報処理を開始し、撮像画像に対応する仮想空間を特定し(ステップS101)、仮想空間画像を生成し(ステップS102)、合成画像を出力し(ステップS103)、ユーザ操作の内容を判定する(ステップS104)。本例においてサーバ10Aは、タッチパネルに対するユーザ操作の内容を判定する。そして、サーバ10Aは、ユーザ操作が第1操作と判定された場合、仮想カメラと仮想オブジェクトの位置または姿勢を更新し(ステップS15)、ユーザ操作が第2操作と判定された場合、仮想オブジェクトを回転させる(ステップS16)。
【0049】
図5は、ユーザ端末20が情報処理を実行する場合の動作の例を示すフローチャートである。以下、ユーザ端末20の構成の例であるユーザ端末20A(端末20A)が、単体で情報処理を実行する場合を例にして説明する。なお、端末20Aの構成については、サーバ10から各種情報を受信することを除きサーバ10Aの構成と同様の機能を備えるものであるため、重複説明を避ける観点から記載を省略する。
【0050】
端末20Aは、例えば、端末20に接続された実カメラが実空間を撮像している場合に、AR機能の実行要求をユーザから受け付けたことで情報処理を開始し、撮像画像に対応する仮想空間を特定し(ステップS201)、仮想空間画像を生成し(ステップS202)、合成画像を出力し(ステップS203)、ユーザ操作の内容を判定する(ステップS204)。本例において端末20Aは、タッチパネルに対するユーザ操作の内容を判定する。そして、端末20Aは、ユーザ操作を第1操作と判定した場合、仮想カメラと仮想オブジェクトの位置または姿勢を更新し(ステップS205)、ユーザ操作を第2操作と判定した場合、仮想オブジェクトを回転させる(ステップS206)。
【0051】
以上のように、第1の実施形態の一側面として、ユーザ端末が備える撮像装置が接続されたサーバ10Aが、特定部11と、生成部12と、出力部13と、判定部14と、更新部15と、回転部16とを備える構成としているので、撮像装置により撮像された撮像画像に対応する仮想空間を特定し、少なくとも1つの仮想オブジェクトを含む仮想空間を撮像装置に対応する仮想カメラから撮像した仮想空間画像を生成し、撮像画像と仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力し、タッチパネルに対するユーザ操作の内容を判定し、ユーザ操作が、タッチパネルに触れた後に接触位置が移動しない第1操作と判定された場合、第1操作の継続中、撮像装置の移動または姿勢変更に応じて、仮想カメラと仮想オブジェクトの関係を固定した状態で両者の位置または姿勢を更新し、ユーザ操作が、タッチパネルに触れた位置をスライドさせる第2操作と判定された場合、当該第2操作により定まる方向に仮想オブジェクトを回転させ、仮想オブジェクトすなわちARオブジェクトの操作性を向上させることができる。
【0052】
すなわち、ARオブジェクトをユーザに操作させるための構成として、タッチおよび撮影装置の操作を受け付ける第1操作と、スライド操作を受け付ける第2操作とを、同じ状況で受付可能な構成としているので、1種類の操作方法を受け付けるような場合と比べ、よりARオブジェクトの操作性を向上させることができる。
【0053】
[第2の実施形態]
図6は、画像処理サーバ10の例である画像処理サーバ10B(サーバ10B)の構成を示すブロック図である。本例において、サーバ10Bは、特定部11と、生成部12と、出力部13と、判定部14と、更新部15Bと、回転部16とを少なくとも備える。
【0054】
更新部15Bは、第1操作のタッチ位置に表示された仮想オブジェクトの仮想空間における位置または姿勢を更新する機能を有する。
【0055】
ここで、タッチ位置に表示された仮想オブジェクトを特定するための構成は特に限定されず、タッチ位置の座標と仮想オブジェクトの座標とを比較することで特定される構成としてもよいし、複数の仮想オブジェクトが同時に特定される構成としてもよい。
【0056】
図7は、システム100が実行する情報処理の例を示すフローチャートである。以下、サーバ10Bと、端末20の動作を例にして説明する。なお、サーバ10Bと端末20それぞれの動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。
【0057】
サーバ10Bは、情報処理において、ユーザ操作の内容を判定すると、仮想カメラと、タッチ位置に表示された仮想オブジェクトの位置または姿勢を更新する(ステップS2-11)。本例においてサーバ10Bは、第1操作のタッチ位置に表示された仮想オブジェクトを操作状態に設定し、ユーザのタッチ操作が継続している間、端末20または端末20が備えるカメラの位置と姿勢の少なくとも一方が変更したことを示す情報を端末20から受信する毎に、仮想空間における仮想オブジェクトが当該変更と同様に変更されるように、仮想オブジェクトに関する情報を更新する。
【0058】
以上に説明したように、第2の実施形態の一側面として、サーバ10Bが、特定部11と、生成部12と、出力部13と、判定部14と、更新部15Bと、回転部16とを備える構成としているので、第1操作のタッチ位置に表示された仮想オブジェクトの仮想空間における位置または姿勢を更新し、操作対象をユーザに直感的に指定させることができる。
【0059】
[第3の実施形態]
図8は、画像処理サーバ10の例である画像処理サーバ10C(サーバ10C)の構成を示すブロック図である。本例において、サーバ10Cは、特定部11と、生成部12と、出力部13と、判定部14と、更新部15と、回転部16Cとを少なくとも備える。
【0060】
回転部16Cは、仮想空間における仮想オブジェクトの位置を固定した状態で仮想オブジェクトを回転させる機能を有する。
【0061】
ここで、仮想オブジェクトの位置を固定した状態で仮想オブジェクトを回転させるための構成は特に限定されないが、仮想オブジェクトの基準位置(例えば、重心の座標)が回転の前後で変化しない構成であることが好ましい。このような構成の例には、第2操作を受け付けた場合、仮想オブジェクトの回転中に端末20または端末20のカメラの位置や姿勢が所定の誤操作範囲内で変化しても、仮想空間における仮想オブジェクトの位置や姿勢に影響させない構成がある。
【0062】
図9は、システム100が実行する情報処理の例を示すフローチャートである。以下、サーバ10Cと、端末20の動作を例にして説明する。なお、サーバ10Cと端末20それぞれの動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。
【0063】
サーバ10Cは、仮想カメラと仮想オブジェクトの位置または姿勢を更新すると、位置を固定した状態で仮想オブジェクトを回転させる(ステップS3-11)。本例においてサーバ10Cは、本例においてサーバ10Aは、ユーザ操作が第2操作と判定された場合、仮想空間における仮想オブジェクトの位置を固定し、当該第2操作により定まる方向に仮想オブジェクトを回転させる。
【0064】
以上に説明したように、第3の実施形態の一側面として、サーバ10Cが、特定部11と、生成部12と、出力部13と、判定部14と、更新部15と、回転部16Cとを備える構成としているので、仮想空間における仮想オブジェクトの位置を固定した状態で仮想オブジェクトを回転させ、ユーザによる誤操作を防止することができ、よりARオブジェクトの操作性を向上させることができる。
【0065】
[第4の実施形態]
図10は、画像処理サーバ10の例である画像処理サーバ10D(サーバ10D)の構成を示すブロック図である。本例において、サーバ10Dは、特定部11と、生成部12と、出力部13と、判定部14と、更新部15Dと、回転部16Dとを少なくとも備える。
【0066】
更新部15Dは、受け付けたユーザ操作が第1操作と判定された場合、かつ端末20の姿勢が撮像装置の撮像方向を軸に回転した場合、仮想カメラの撮影方向を軸に回転するように仮想オブジェクトの姿勢を更新する機能を有する。すなわち、更新部15Dは、実空間における撮像装置の回転と同様に仮想オブジェクトが回転するよう制御する機能を有する。
【0067】
ここで、仮想カメラの撮影方向を軸に回転するように仮想オブジェクトの姿勢を更新するための構成は特に限定されず、第1操作のタッチ位置からタッチパネルの奥方向に軸を設定する構成としてもよいし、予め仮想オブジェクトに軸を設定する位置が定められている構成としてもよい。このような構成の例には、仮想オブジェクトを仮想カメラの撮影方向を軸に回転させる場合に、仮想オブジェクトの所定位置(例えば、重心)を通る軸が設定される構成がある。
【0068】
回転部16Dは、タッチパネルに触れた位置をスライドさせる第2操作と判定された場合、仮想カメラの撮影方向に直行する方向を軸に仮想オブジェクトを回転させる機能を有する。
【0069】
ここで、仮想カメラの撮影方向に直行する方向を軸に仮想オブジェクトを回転させるための構成は特に限定されないが、更新部15Dと回転部16Dとで、仮想オブジェクトを3次元で回転させることができる構成であることが好ましい。このような構成の例には、第2操作としてのスライド方向をタッチパネルの左右方向と判定した場合に、仮想オブジェクトの回転軸を仮想空間の上下方向に設定し、第2操作としてのスライド方向をタッチパネルの上下方向と判定した場合に、仮想オブジェクトの回転軸を仮想空間の左右方向に設定する構成がある。また、第2操作としてのスライド方向が斜め方向と判定した場合に、仮想オブジェクトの回転軸を仮想空間の斜め方向に設定する構成としてもよい。
【0070】
図11は、システム100が実行する情報処理の例を示すフローチャートである。以下、サーバ10Dと、端末20の動作を例にして説明する。なお、サーバ10Dと端末20それぞれの動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。
【0071】
サーバ10Dは、ユーザ操作の内容を判定すると、仮想カメラと仮想オブジェクトに回転軸を設定して姿勢を更新する(ステップS4-11)。本例においてサーバ10Dは、ユーザ操作が第1操作と判定された場合、第1操作の継続中、端末20がカメラの撮像方向を軸に回転した場合、仮想カメラと仮想オブジェクトを仮想カメラの撮影方向を回転軸に設定し、端末20またはカメラの回転に合わせて仮想カメラと仮想オブジェクトが回転するように、これらの姿勢を更新する。
【0072】
サーバ10Dは、仮想カメラと仮想オブジェクトの姿勢を更新すると、回転軸を設定して仮想オブジェクトを回転させる(ステップS4-12)。本例においてサーバ10Dは、ユーザ操作が第2操作と判定された場合、第2操作の継続中、端末20のタッチパネルにおける第2操作(すなわち、スライド操作)の方向を特定し、特定した方向に仮想オブジェクトが回転するように回転軸を設定して仮想オブジェクトを回転させる。
【0073】
以上に説明したように、第4の実施形態の一側面として、サーバ10Dが、、特定部11と、生成部12と、出力部13と、判定部14と、更新部15Dと、回転部16Dとを備える構成としているので、受け付けたユーザ操作が第1操作と判定された場合、かつ端末20の姿勢が撮像装置の撮像方向を軸に回転した場合、仮想カメラの撮影方向を軸に回転するように仮想オブジェクトの姿勢を更新し、受け付けたユーザ操作がタッチパネルに触れた位置をスライドさせる第2操作と判定された場合、仮想カメラの撮影方向に直行する方向を軸に仮想オブジェクトを回転させ、2種類の操作でARオブジェクトの姿勢を3次元で制御でき、よりARオブジェクトの操作性を向上させることができる。
【0074】
[第5の実施形態]
図12は、サーバ10の例であるサーバ10E(サーバ10E)の構成を示すブロック図である。本例において、サーバ10Eは、特定部11と、生成部12と、出力部13と、判定部14と、更新部15Eと、回転部16とを少なくとも備える。
【0075】
更新部15Eは、第1操作の継続中、仮想空間における所定条件が満たされた場合、仮想カメラと当該仮想オブジェクトとの関係を固定した状態から固定しない状態に変更して更新する機能を有する。
【0076】
ここで、所定条件の内容は特に限定されないが、ユーザがその内容を把握し得る内容であることが好ましい。所定条件の例には、第1操作が開始してから所定時間が経過することや、仮想空間において仮想オブジェクトが他のオブジェクトに接触することがある。
【0077】
また、仮想カメラと当該仮想オブジェクトとの関係を固定した状態から固定しない状態に変更するための構成は特に限定されないが、固定状態でなくなったことをユーザが把握し得る構成であることが好ましい。このような構成の例には、仮想空間において、固定状態でなくなった仮想オブジェクトをその場に留まらせる構成や、仮想オブジェクトを所定位置に移動させる構成がある。
【0078】
図13は、システム100が実行する情報処理の例を示すフローチャートである。以下、サーバ10Eと、端末20の動作を例にして説明する。なお、サーバ10Eと端末20それぞれの動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。
【0079】
サーバ10Eは、ユーザ操作の内容を判定すると、第1操作の継続中、仮想カメラと仮想オブジェクトの関係を固定または非固定に設定する(ステップS5-11)。本例においてサーバ10Eは、第1操作により指定された仮想オブジェクトが他の仮想オブジェクトに接触していない場合、仮想カメラと仮想オブジェクトとの関係を固定し、端末20または端末20のカメラの移動または姿勢変更に合わせて仮想カメラが移動または姿勢変更するように制御し、併せて仮想カメラと固定状態に設定された仮想オブジェクトを移動または姿勢変更させる。また、サーバ10Eは、第1操作により指定された仮想オブジェクトが他の仮想オブジェクトに接触している場合、仮想カメラと仮想オブジェクトとの関係を非固定に設定し、端末20または端末20のカメラの移動または姿勢変更に合わせて仮想カメラが移動または姿勢変更するように制御し、仮想カメラと固定ではない状態に設定された仮想オブジェクトは、所定条件を満たした位置で静止させる。
【0080】
以上に説明したように、第5の実施形態の一側面として、サーバ10Eが、特定部11と、生成部12と、出力部13と、判定部14と、更新部15Eと、回転部16とを備える構成としているので、第1操作の継続中、仮想空間における所定条件が満たされた場合、仮想カメラと当該仮想オブジェクトとの関係を固定した状態から固定しない状態に変更して更新し、仮想空間の状況をARオブジェクトの操作に反映させることができるようになり、よりARオブジェクトの操作性を向上させることができる。
【0081】
[第6の実施形態]
図14は、システム100(
図1参照)におけるユーザ端末20の例であるユーザ端末20Z(端末20Z)の構成を示すブロック図である。本例において、端末20Zは、特定部21Zと、生成部22Zと、出力部23Zと、判定部24Zと、更新部25Zと、回転部26Zとを少なくとも備える。
【0082】
端末20Zは、AR空間内のオブジェクトを、手やマジックハンドで掴むような感覚で、移動・回転させる操作を実現させる機能を有する。以下、スマートフォンとしての端末20Z本体を移動・回転、画面をスワイプすることで、AR空間内に存在するオブジェクトを移動・回転させることについて説明する。
【0083】
特定部21Zは、撮像装置により撮像された撮像画像に対応する仮想空間を特定する機能を有する。
【0084】
ここで、撮像装置の例には、端末20Zに接続されたカメラがある。また、撮像画像に対応する仮想空間の例には、撮像画像に重畳表示するARオブジェクトを撮影するために予め定義された仮想的空間がある。すなわち、端末20Zは、現実空間と仮想空間とを対応付けることで、いわゆるAR空間を特定する。
【0085】
生成部22Zは、少なくとも1つの仮想オブジェクトを含む仮想空間を撮像装置に対応する仮想カメラから撮影した仮想空間画像を生成する機能を有する。
【0086】
ここで、仮想オブジェクトの例には、3次元オブジェクトがある。また、仮想空間画像を生成するための構成は特に限定されないが、仮想空間に仮想オブジェクトが配置されていない状態も生じ得る構成であることが好ましい。このような構成の例には、仮想空間内に仮想オブジェクトがまだ配置されていない状態の仮想空間情報を特定し、所定規則に従って仮想空間に仮想オブジェクトを配置し、配置後の仮想空間を仮想カメラで撮影し、仮想空間画像を生成する構成がある。すなわち、生成部22Zは、仮想空間を撮影することで、仮想オブジェクトを含まない仮想空間画像を生成する場合もあれば、仮想オブジェクトを含む仮想空間画像を生成する場合もある。このような構成とすることで、仮想オブジェクトが表示されていない状態から仮想オブジェクトが表示された状態に合成画像(AR画像)が変化する態様も実現させることができ、ARオブジェクトの操作性に幅を持たせることができる。
【0087】
出力部23Zは、撮像画像と仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力する機能を有する。
【0088】
ここで、合成画像の例には、実空間画像と仮想空間画像を合成したいわゆるAR画像がある。実空間に対応する仮想空間を特定していることで、ユーザが仮想オブジェクトを操作できるため、拡張現実を実現させることができる。
【0089】
判定部24Zは、タッチパネルに対するユーザ操作の内容を判定する機能を有する。
【0090】
ここで、ユーザ操作の例には、端末20Zの移動や姿勢変更、端末20Zのタッチパネルに対するタッチ操作がある。
【0091】
更新部25Zは、ユーザ操作が第1操作と判定された場合、第1操作の継続中、撮像装置の移動または姿勢変更に応じて、仮想カメラと仮想オブジェクトの関係を固定した状態で両者の位置または姿勢を更新する機能を有する。
【0092】
ここで、第1操作の例には、タッチパネルに触れた後に接触位置が移動しない操作、いわゆるホールドやロングタッチがある。第1操作の継続中に仮想カメラと仮想オブジェクトの関係を固定することで、端末20Zを手で持っているユーザが端末20Zを移動させる場合に、AR空間内のオブジェクトを、手やマジックハンドで掴むような感覚で、移動・回転させる操作系をユーザに提供できる。
【0093】
また、仮想カメラと仮想オブジェクトの関係を固定した状態の例には、端末20Zの移動や姿勢変更により仮想空間における仮想カメラの位置や姿勢が変更した場合に、同様に仮想オブジェクトの位置や姿勢が変更される状態がある。
【0094】
なお、更新部25Zは、ユーザ操作が、タッチパネルに触れない端末20Zの姿勢変更操作と判定された場合、仮想カメラの位置または姿勢だけ更新する。すなわち、更新部25Zは、カメラの起動後、AR空間を特定した場合に、カメラの移動と併せて仮想カメラを移動させるが、仮想空間において仮想オブジェクトを移動させない場合もある。
【0095】
回転部26Zは、ユーザ操作が第2操作と判定された場合、当該第2操作により定まる方向に仮想オブジェクトを回転させる機能を有する。
【0096】
ここで、第2操作の例には、タッチパネルに触れた位置をスライドさせる操作、いわゆるスワイプがある。
【0097】
図15は、端末20Zが備える記憶部(図示せず)に記憶される情報の格納状態の例について説明するための説明図である。
図15に示すように、記憶部は、操作対象と、座標と、姿勢と、回転軸とを対応付けて記憶する。
【0098】
ここで、操作対象の例には、ユーザ操作により特定された仮想オブジェクトがある。また、座標の例には、3次元空間における操作対象の特徴点の位置がある。また、姿勢の例には、操作対象の姿勢を特定するための1または複数の特徴点の位置がある。さらに、回転軸の例には、操作対象を回転させる際に選択または定義される軸がある。
【0099】
図16は、端末20Zが実行する情報処理の例を示すフローチャートである。本例における情報処理では、実空間画像に重畳表示された仮想オブジェクト(すなわち、ARオブジェクト)をユーザ操作に応じて制御するための処理が行われる。以下、各処理について説明する。なお、各処理の順序は、処理内容に矛盾等が生じない範囲で順不同である。
【0100】
情報処理は、例えば端末20Zが、AR機能を用いた撮影要求をユーザから受け付けた場合に開始される。以下、端末20Zが撮影要求を受け付けた場合を例にして説明する。
【0101】
端末20Zは、情報処理において、先ず、撮像画像に対応する仮想空間を特定する(ステップS301)。本例において端末20Zは、端末20のカメラ(実カメラ)により撮像された撮像画像から基準位置を特定し、特定した基準位置に基づいて、複数の仮想オブジェクトが配置された仮想空間を特定する。
【0102】
端末20Zは、仮想空間を特定すると、仮想空間画像を生成する(ステップS302)。本例において端末20Zは、、端末20のカメラを介して操作可能な仮想カメラから撮影した仮想空間画像を生成する。
【0103】
端末20Zは、仮想空間画像を生成すると、合成画像を出力する(ステップS303)。本例において端末20Zは、実画像と、複数の仮想オブジェクトを撮影した仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力する。
【0104】
端末20Zは、合成画像を出力すると、ユーザ操作の内容を判定する(ステップS304)。本例において端末20Zは、タッチパネルに対するユーザ操作の内容を判定する。
【0105】
ユーザ操作の内容を判定すると、仮想カメラと仮想オブジェクトの位置または姿勢を更新する(ステップS305)。本例において端末20Zは、端末20Zの画面に表示された複数のオブジェクト(すなわち、ARオブジェクト)のうち何れか1つをユーザがホールド(ロングタッチ)し、その状態を維持したまま、端末20Z本体を移動する操作(第1操作の例)を受け付けると、ARオブジェクトが同じ距離を移動するよう制御する。また、上記状態を維持したまま、端末20Zを回転させる操作(第1操作の例)を受け付けると、端末20Zの座標を中心としてARオブジェクトが回転移動するよう制御する。なお、端末20Zは、画面からユーザの指が離れた場合に、操作終了と判定する。
【0106】
端末20Zは、仮想カメラと仮想オブジェクトの位置または姿勢を更新すると、仮想オブジェクトを回転させる(ステップS306)。本例において端末20Zは、画面をスワイプする操作(第2操作の例)を受け付けると、ARオブジェクトがその場で回転するよう制御する。ここで、横スワイプでYaw回転、縦スワイプでPitch回転を行う。なお、Roll回転は端末20Zを回転させる操作に内包される。なお、以上の制御は、同時に行われる構成としてもよいし、単独で行われる構成としてもよい。
【0107】
図17は、合成画像の例について説明するための説明図である。
図17に示すように、合成画像が表示された端末20Zの表示画面には、実空間の天井1701、実空間のディスプレイ1702、複数のARオブジェクト1711,1712,1713、タッチ位置画像1721および指示画像1722が表示される。
【0108】
ここで、実空間の天井1701と実空間のディスプレイ1702とは、端末20が備えるカメラにより撮像された画像である。
【0109】
また、複数のARオブジェクト1711,1712,1713は、仮想空間に配置された仮想オブジェクトが仮想カメラにより撮影された画像である。本例において、操作対象となっているARオブジェクト1711の操作中、操作対象と端末20Zを結ぶ太さを持った指示画像1722が表示される。また、指示画像1722は、操作対象までの距離に応じて線の色が変わる。さらに、ARオブジェクト1711の操作中、操作対象の中心にライトが設置され、近接オブジェクトを照らし、位置関係を視覚的に捉えやすくする。
図17においては、ARオブジェクト1711の後方に位置するARオブジェクト1712や、ARオブジェクト1713の表示範囲の一部または全部が、ARオブジェクト1711の中心に設置されたライトにより照らされている。
【0110】
また、タッチ位置画像1721は、ユーザのタッチを表す画像である。タッチ位置画像の構成は特に限定されず、タッチ位置以外の情報をユーザに報知する構成としてもよい。このような構成の例には、操作対象の有無や操作対象の種類または状態を識別可能に表示する構成がある。
【0111】
なお、表示画面の構成は、ユーザにAR画像を操作させることが可能な構成であれば特に限定されない。すなわち、例えばARオブジェクトに影響し、かつユーザが操作できない仮想オブジェクトが表示される構成としてもよいし、操作時間を示すUIが表示される構成としてもよい。
【0112】
また、ARオブジェクトの操作に関する機能として、画像表示以外の機能を備える構成ととしてもよい。このような構成の例には、操作対象のARオブジェクトが一定距離移動する毎に、端末20Zを振動させる振動部を設ける構成がある。このような構成とすることにより、ARオブジェクトが実際に移動した距離をユーザが認識しやすくなる。すなわち、実空間と仮想空間とを対応付けた後、端末20Zをタッチしたまま移動させると、併せて仮想空間における操作対象も移動するが、このとき、仮想オブジェクトの表示画面上のサイズは仮想カメラとの位置関係で変化する。そのため、ユーザにとっては、同じ操作対象であっても、表示サイズが大きい場合と小さい場合とで、移動距離を正確に認識することに難しさを感じる可能性もある。そこで、仮想空間において操作対象が一定距離移動する毎に、その旨をユーザに報知する機能を設けることで、ARオブジェクトの操作性をより向上させることができる。
【0113】
以上に説明したように、第6の実施形態の一側面として、撮像装置を備えるユーザ端末20Zが、特定部21Zと、生成部22Zと、出力部23Zと、判定部24Zと、更新部25Zと、回転部26Zとを備える構成としているので、撮像装置により撮像された撮像画像に対応する仮想空間を特定し、少なくとも1つの仮想オブジェクトを含む仮想空間を撮像装置に対応する仮想カメラから撮像した仮想空間画像を生成し(例えば、座標情報を含む仮想オブジェクトの画像を生成)、撮像画像と仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力し、タッチパネルに対するユーザ操作の内容を判定し、ユーザ操作が、タッチパネルに触れた後に接触位置が移動しない第1操作と判定された場合(例えば、ホールドされた場合)、第1操作の継続中、撮像装置の移動または姿勢変更に応じて、仮想カメラと仮想オブジェクトの関係を固定した状態で両者の位置または姿勢を更新し、ユーザ操作が、タッチパネルに触れた位置をスライドさせる第2操作と判定された場合(例えば、スワイプされた場合)、当該第2操作により定まる方向に仮想オブジェクトを回転させ、仮想オブジェクトすなわちARオブジェクトの操作性を向上させることができる。
【0114】
すなわち、端末20を片手で持って操作しているユーザの動き(特に、手の動き)とARオブジェクトの動きが一致させることで、ユーザが直感的に操作できるようになる。また、例えばハンドジェスチャーを画像から検出する方法に比べて、追従性が高く安定して動作させることができる。さらに、カメラを備える端末に各種処理を実行させる構成とすることで、他に追加機材を要さない点でも有用である。
【0115】
また、上述した第6の実施形態では、ユーザ端末20Zが、操作対象となっているARオブジェクトに対して所定位置から延びるオブジェクトを表示する構成について説明したが、当該オブジェクト(指定オブジェクト)の構成は、操作対象をユーザに認識させ得る構成であれば特に限定されない。指定オブジェクトの構成の例には、仮想空間における端末の位置から操作オブジェクトまでの距離に応じて形態(色や形状)が所定規則に従って変化する構成がある。
【0116】
また、上述した第6の実施形態では、ユーザ端末20Zが、ユーザがARオブジェクトを操作している場合に、操作対象の中心にライトを設置する構成について説明したが、ライトを設置するための構成は、仮想空間または合成画像における複数のARオブジェクトの位置関係をユーザに認識させやすくするための構成であれば特に限定されない。このような構成の例には、操作対象のオブジェクトに、所定色に発光するライトを設置する構成や、操作対象または所定規則に従って選択されたオブジェクトに、特定規則で変化する発光色となるライトを設置する構成(例えば、操作対象と他のオブジェクトとの位置関係で色が変化するカラーライトを設置する構成)がある。
【0117】
なお、上述した第6の実施形態では特に言及していないが、ユーザ端末20Zが、ビデオゲームの進行を制御する機能の一部として、当該ビデオゲームに登場するキャラクタを仮想オブジェクトとして採用する構成としてもよい。この場合、ビデオゲームの進行に応じて変化する各種パラメータをAR空間に反映させる構成としてもよい。このような構成の例には、ビデオゲームにおけるキャラクタの形態の変化が、AR空間における仮想オブジェクトの形態に反映される構成がある。
【0118】
以上に説明したように、本願の各実施形態により1または2以上の不足が解決される。なお、夫々の実施形態による効果は、非限定的な効果または効果の一例である。
【0119】
なお、上述した各実施形態では、複数のユーザ端末20,201~20Nとサーバ10は、自己が備える記憶装置に記憶されている各種制御プログラム(例えば、画像処理プログラム)に従って、上述した各種の処理を実行する。
【0120】
また、システム100の構成は上述した各実施形態の例として説明した構成に限定されず、例えばユーザ端末20が実行する処理として説明した処理の一部または全部をサーバ10が実行する構成としてもよいし、サーバ10が実行する処理として説明した処理の一部または全部を複数のユーザ端末20,201~20Nの何れか(例えば、ユーザ端末20)が実行する構成としてもよい。また、サーバ10が備える記憶部の一部または全部を複数のユーザ端末20,201~20Nの何れかが備える構成としてもよい。すなわち、システム100におけるユーザ端末20とサーバ10のどちらか一方が備える機能の一部または全部を、他の一方が備える構成とされていてもよい。
【0121】
また、プログラムが、上述した各実施形態の例として説明した機能の一部または全部を、通信ネットワークを含まない装置単体に実現させる構成としてもよい。
【0122】
[付記]
上述した実施形態の説明は、少なくとも下記発明を、当該発明の属する分野における通常の知識を有する者がその実施をすることができるように記載した。
[1]
撮像装置が接続されたコンピュータに、
前記撮像装置により撮像された撮像画像に対応する仮想空間を特定する特定機能と、
少なくとも1つの仮想オブジェクトを含む前記仮想空間を前記撮像装置に対応する仮想カメラから撮影した仮想空間画像を生成する生成機能と、
前記撮像画像と前記仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力する出力機能と、
前記タッチパネルに対するユーザ操作の内容を判定する判定機能と、
前記ユーザ操作が、前記タッチパネルに触れた後に接触位置が移動しない第1操作と判定された場合、第1操作の継続中、前記撮像装置の移動または姿勢変更に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の位置または姿勢を更新する更新機能と、
前記ユーザ操作が、前記タッチパネルに触れた位置をスライドさせる第2操作と判定された場合、当該第2操作により定まる方向に前記仮想オブジェクトを回転させる回転機能とを
実現させるためのプログラム。
[2]
前記更新機能では、前記第1操作のタッチ位置に表示された前記仮想オブジェクトの前記仮想空間における位置または姿勢を更新する機能を
実現させるための[1]記載のプログラム。
[3]
前記回転機能では、前記仮想空間における前記仮想オブジェクトの位置を固定した状態で前記仮想オブジェクトを回転させる機能を
実現させるための[1]または[2]記載のプログラム。
[4]
前記更新機能では、前記第1操作と判定された場合、かつ前記コンピュータの姿勢が前記撮像装置の撮像方向を軸に回転した場合、前記仮想カメラの撮影方向を軸に回転するように前記仮想オブジェクトの姿勢を更新する機能を実現させ、
前記回転機能では、前記タッチパネルに触れた位置をスライドさせる第2操作と判定された場合、前記撮影方向に直行する方向を軸に前記仮想オブジェクトを回転させる機能を
実現させるための[1]から[3]のうち何れかに記載のプログラム。
[5]
前記更新機能では、前記第1操作の継続中、前記仮想空間における所定条件が満たされた場合、前記仮想カメラと当該仮想オブジェクトとの関係を固定した状態から固定しない状態に変更して更新する機能を
実現させるための[1]から[4]のうち何れかに記載のプログラム。
[6]
前記更新機能では、前記ユーザ操作が、前記タッチパネルに触れない前記コンピュータの姿勢変更操作と判定された場合、前記仮想カメラの位置または姿勢だけ更新する機能を
実現させるための[1]から[5]のうち何れかに記載のプログラム。
[7]
[1]から[6]のうち何れかに記載のプログラムが前記コンピュータに実現させる機能のうち少なくとも1つの機能を、当該コンピュータと通信可能なサーバに実現させるためのプログラム。
[8]
[1]から[6]のうち何れかに記載のプログラムがインストールされたコンピュータ。
[9]
通信ネットワークと、サーバと、撮像装置が接続されたユーザ端末とを備え、ユーザ操作に応じて情報処理の進行を制御する画像処理システムであって、
前記撮像装置により撮像された撮像画像に対応する仮想空間を特定する特定手段と、
少なくとも1つの仮想オブジェクトを含む前記仮想空間を前記撮像装置に対応する仮想カメラから撮影した仮想空間画像を生成する生成手段と、
前記撮像画像と前記仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力する出力手段と、
前記タッチパネルに対するユーザ操作の内容を判定する判定手段と、
前記ユーザ操作が、前記タッチパネルに触れた後に接触位置が移動しない第1操作と判定された場合、第1操作の継続中、前記撮像装置の移動または姿勢変更に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の位置または姿勢を更新する更新手段と、
前記ユーザ操作が、前記タッチパネルに触れた位置をスライドさせる第2操作と判定された場合、当該第2操作により定まる方向に前記仮想オブジェクトを回転させる回転手段とを含む
ことを特徴とする画像処理システム。
[10]
前記サーバが、特定手段と、生成手段と、判定手段と、更新手段と、回転手段とを含み、
前記ユーザ端末が、前記出力手段を含む
[9]記載の画像処理システム。
[11]
ユーザ端末に接続された撮像装置により撮像された撮像画像に対応する仮想空間を特定する特定機能と、少なくとも1つの仮想オブジェクトを含む前記仮想空間を前記撮像装置に対応する仮想カメラから撮影した仮想空間画像を生成する生成機能と、前記撮像画像と前記仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力する出力機能と、前記タッチパネルに対するユーザ操作の内容を判定する判定機能と、前記ユーザ操作が、前記タッチパネルに触れた後に接触位置が移動しない第1操作と判定された場合、第1操作の継続中、前記撮像装置の移動または姿勢変更に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の位置または姿勢を更新する更新機能と、前記ユーザ操作が、前記タッチパネルに触れた位置をスライドさせる第2操作と判定された場合、当該第2操作により定まる方向に前記仮想オブジェクトを回転させる回転機能とを有するサーバから、当該サーバが備える機能に関する情報を受信して当該機能に対応する入出力を行う機能を前記ユーザ端末に
実現させるためのプログラム。
[12]
撮像装置が接続されたユーザ端末と通信可能なサーバに、
前記撮像装置により撮像された撮像画像に対応する仮想空間を特定する特定機能と、
少なくとも1つの仮想オブジェクトを含む前記仮想空間を前記撮像装置に対応する仮想カメラから撮影した仮想空間画像を生成する生成機能と、
前記撮像画像と前記仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力する出力機能と、
前記タッチパネルに対するユーザ操作の内容を判定する判定機能と、
前記ユーザ操作が、前記タッチパネルに触れた後に接触位置が移動しない第1操作と判定された場合、第1操作の継続中、前記撮像装置の移動または姿勢変更に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の位置または姿勢を更新する更新機能と、
前記ユーザ操作が、前記タッチパネルに触れた位置をスライドさせる第2操作と判定された場合、当該第2操作により定まる方向に前記仮想オブジェクトを回転させる回転機能とを
実現させるためのプログラム。
[13]
[12]記載のプログラムが前記サーバに実現させる機能のうち少なくとも1つの機能を、当該サーバと通信可能なユーザ端末に実現させるためのプログラム。
[14]
[11]または[12]記載のプログラムがインストールされたサーバ。
[15]
ユーザ操作に応じて情報処理の進行を制御する画像処理方法であって、
コンピュータに接続された撮像装置により撮像された撮像画像に対応する仮想空間を特定する特定処理と、
少なくとも1つの仮想オブジェクトを含む前記仮想空間を前記撮像装置に対応する仮想カメラから撮影した仮想空間画像を生成する生成処理と、
前記撮像画像と前記仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力する出力処理と、
前記タッチパネルに対するユーザ操作の内容を判定する判定処理と、
前記ユーザ操作が、前記タッチパネルに触れた後に接触位置が移動しない第1操作と判定された場合、第1操作の継続中、前記撮像装置の移動または姿勢変更に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の位置または姿勢を更新する更新処理と、
前記ユーザ操作が、前記タッチパネルに触れた位置をスライドさせる第2操作と判定された場合、当該第2操作により定まる方向に前記仮想オブジェクトを回転させる回転処理とを含む
ことを特徴とする画像処理方法。
[16]
通信ネットワークと、サーバと、ユーザ端末とを備える画像処理システムが、 ユーザ操作に応じて情報処理の進行を制御する画像処理処理方法であって、
前記ユーザ端末に接続された撮像装置により撮像された撮像画像に対応する仮想空間を特定する特定機能と、
少なくとも1つの仮想オブジェクトを含む前記仮想空間を前記撮像装置に対応する仮想カメラから撮影した仮想空間画像を生成する生成処理と、
前記撮像画像と前記仮想空間画像とが合成された合成画像を、タッチパネルを備えた表示装置に出力する出力処理と、
前記タッチパネルに対するユーザ操作の内容を判定する判定処理と、
前記ユーザ操作が、前記タッチパネルに触れた後に接触位置が移動しない第1操作と判定された場合、第1操作の継続中、前記撮像装置の移動または姿勢変更に応じて、前記仮想カメラと前記仮想オブジェクトの関係を固定した状態で両者の位置または姿勢を更新する更新処理と、
前記ユーザ操作が、前記タッチパネルに触れた位置をスライドさせる第2操作と判定された場合、当該第2操作により定まる方向に前記仮想オブジェクトを回転させる回転処理とを含む
ことを特徴とする画像処理方法。
【産業上の利用可能性】
【0123】
本発明の実施形態の一つによれば、ARオブジェクトの操作性を向上させるのに有用である。
【符号の説明】
【0124】
10 画像処理サーバ
20,201~20N ユーザ端末
11 特定部11
12 生成部12
13 出力部13
14 判定部14
15 更新部15
16 回転部16
30 通信ネットワーク
100 画像処理システム