(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-31
(45)【発行日】2025-04-08
(54)【発明の名称】端末装置、端末装置の動作方法及びプログラム
(51)【国際特許分類】
G06T 19/00 20110101AFI20250401BHJP
G06T 13/40 20110101ALI20250401BHJP
G06F 3/0488 20220101ALI20250401BHJP
【FI】
G06T19/00 A
G06T13/40
G06F3/0488
(21)【出願番号】P 2022054397
(22)【出願日】2022-03-29
【審査請求日】2023-11-29
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100139491
【氏名又は名称】河合 隆慶
(74)【代理人】
【識別番号】100203264
【氏名又は名称】塩川 未久
(72)【発明者】
【氏名】菊地 大輔
(72)【発明者】
【氏名】加来 航
(72)【発明者】
【氏名】澤渡 愛子
(72)【発明者】
【氏名】舩造 美奈
【審査官】三沢 岳志
(56)【参考文献】
【文献】米国特許出願公開第2019/0026132(US,A1)
【文献】特開2015-230684(JP,A)
【文献】特開2005-191964(JP,A)
【文献】特開2004-355494(JP,A)
【文献】特開2010-193043(JP,A)
【文献】Nicolas ROUSSEL et al.,“MirrorSpace: Using Proximity as an Interface to Video-Mediated Communication”,Lecture Notes in Computer Science,2004年,pp.345-350,DOI: 10.1007/978-3-540-24646-6_25
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06T 13/40
G06F 3/0488
(57)【特許請求の範囲】
【請求項1】
制御部と、通信部と、表示装置とを備える端末装置であって、
前記制御部は、
他の端末装置から、前記他の端末装置の第1ユーザのイラストのデータを前記通信部によって受信し、
仮想空間内において、仮想カメラと前記第1ユーザのアバターとの間に、仮想スクリーンを配置し、
前記仮想カメラの位置、向き及び視野を前記端末装置の第2ユーザの視線に基づいて決定し、
前記仮想スクリーンの前記アバター側の面上に描画された前記第1ユーザのイラストに含まれる文字を前記仮想カメラから見て可読可能に反転させ、
前記イラストに含まれる文字が単語を構成しているが、文章を構成していないと判定した場合、前記イラストに含まれる文字を単語単位で前記仮想カメラから見て可読可能に反転させ、
前記イラストに含まれる文字が文章を構成していると判定した場合、前記イラストに含まれる文字を文章単位で仮想カメラから見て可読可能に反転させ、
前記仮想カメラから見て前記仮想スクリーンに投影された前記仮想空間の2次元画像をレンダリングにより生成し、
前記表示装置に生成した前記2次元画像を表示させる、端末装置。
【請求項2】
入力部をさらに備え、
前記制御部は、前記入力部によって受け付けた前記第2ユーザの操作入力に基づいて、前記イラストに含まれる文字を前記仮想カメラから見て可読可能に反転させる、請求項
1に記載の端末装置。
【請求項3】
前記制御部は、
前記第1ユーザのモーションデータと、前記モーションデータに同期された前記イラストのデータとを前記通信部によって受信し、
受信した前記モーションデータに基づいて、前記第1ユーザのアバターが前記仮想スクリーン上に前記第1ユーザのイラストを描いていくように前記アバターを動かしつつ、前記仮想スクリーン上に前記イラストを描画する、請求項
1又は2に記載の端末装置。
【請求項4】
前記制御部は、前記仮想空間内において、前記アバターの代わりに仮想オブジェクトを配置する、請求項1から
3までの何れか一項に記載の端末装置。
【請求項5】
前記制御部は、
前記第1ユーザの撮像画像のデータを前記通信部によって受信し、
前記アバターの外観を前記第1ユーザの撮像画像のデータから生成する、請求項1から
4までの何れか一項に記載の端末装置。
【請求項6】
前記制御部は、前記アバターの外観をキャラクタの画像のデータから生成する、請求項1から
4までの何れか一項に記載の端末装置。
【請求項7】
前記制御部は、リアルタイムに、前記アバターが前記仮想スクリーン上に前記イラストを描いていくように前記アバターを動かしつつ、前記仮想スクリーン上に前記イラストを描画する、請求項1から
6までの何れか一項に記載の端末装置。
【請求項8】
前記表示装置は、ディスプレイであり、
前記第1ユーザのモーションデータは、前記他の端末装置の測距センサによって取得され、
前記第1ユーザのイラストのデータは、前記他の端末装置のディスプレイのタッチスクリーンに対するタッチ操作に応じて取得される、請求項1から
7までの何れか一項に記載の端末装置。
【請求項9】
端末装置の動作方法であって、
他の端末装置から、前記他の端末装置の第1ユーザのイラストのデータを受信することと、
仮想空間内において、仮想カメラと前記第1ユーザのアバターとの間に、仮想スクリーンを配置することと、
前記仮想カメラの位置、向き及び視野を前記端末装置の第2ユーザの視線に基づいて決定することと、
前記仮想スクリーンの前記アバター側の面上に描画された前記第1ユーザのイラストに含まれる文字を前記仮想カメラから見て可読可能に反転させること
であって、
前記イラストに含まれる文字が単語を構成しているが、文章を構成していないと判定した場合、前記イラストに含まれる文字を単語単位で前記仮想カメラから見て可読可能に反転させ、
前記イラストに含まれる文字が文章を構成していると判定した場合、前記イラストに含まれる文字を文章単位で仮想カメラから見て可読可能に反転させる、ことと、
前記仮想カメラから見て前記仮想スクリーンに投影された前記仮想空間の2次元画像をレンダリングにより生成することと、
表示装置に生成した前記2次元画像を表示させることと、を含む、端末装置の動作方法。
【請求項10】
端末装置に、
他の端末装置から、前記他の端末装置の第1ユーザのイラストのデータを受信することと、
仮想空間内において、仮想カメラと前記第1ユーザのアバターとの間に、仮想スクリーンを配置することと、
前記仮想カメラの位置、向き及び視野を前記端末装置の第2ユーザの視線に基づいて決定することと、
前記仮想スクリーンの前記アバター側の面上に描画された前記第1ユーザのイラストに含まれる文字を前記仮想カメラから見て可読可能に反転させること
であって、
前記イラストに含まれる文字が単語を構成しているが、文章を構成していないと判定した場合、前記イラストに含まれる文字を単語単位で前記仮想カメラから見て可読可能に反転させ、
前記イラストに含まれる文字が文章を構成していると判定した場合、前記イラストに含まれる文字を文章単位で仮想カメラから見て可読可能に反転させる、ことと、
前記仮想カメラから見て前記仮想スクリーンに投影された前記仮想空間の2次元画像をレンダリングにより生成することと、
表示装置に生成した前記2次元画像を表示させることと、
を含む動作を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、端末装置、端末装置の動作方法及びプログラムに関する。
【背景技術】
【0002】
従来、仮想空間を利用して複数のユーザがコミュニケーションをとるための技術が知られている。例えば、特許文献1には、第1ユーザに関連付けられる第1アバターと第2ユーザに関連付けられる第2アバターとを含む、仮想空間を定義することが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
遊び又は創作活動等の場において、ユーザ間のコミュニケーションを向上させるために、描いたイラスト等をユーザ間で共有したい場合がある。イラストに文字が含まれる場合、文字をユーザに適切に表示することが求められる。
【0005】
かかる点に鑑みてなされた本開示の目的は、文字をユーザに適切に表示する技術を提供することにある。
【課題を解決するための手段】
【0006】
本開示の一実施形態に係る端末装置は、
仮想空間内の仮想スクリーン上に描画された第1ユーザのイラストに含まれる文字を仮想カメラから見て可読可能に反転させる制御部を備える。
【0007】
本開示の一実施形態に係る端末装置の動作方法は、
仮想空間内の仮想スクリーン上に描画された第1ユーザのイラストに含まれる文字を仮想カメラから見て可読可能に反転させることを含む。
【0008】
本開示の一実施形態に係るプログラムは、
コンピュータに、
仮想空間内の仮想スクリーン上に描画された第1ユーザのイラストに含まれる文字を仮想カメラから見て可読可能に反転させること
を含む動作を実行させる。
【発明の効果】
【0009】
本開示の一実施形態によれば、文字をユーザに適切に表示する技術を提供することができる。
【図面の簡単な説明】
【0010】
【
図1】本開示の一実施形態に係る提供システムの概略構成を示す図である。
【
図2】
図1に示す提供システムのブロック図である。
【
図3】
図1に示す提供システムの動作手順を示すシーケンス図である。
【
図4】
図2に示す端末装置の動作手順を示すフローチャートである。
【
図5】
図2に示す端末装置の動作手順を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本開示に係る実施形態について、図面を参照して説明する。
【0012】
図1に示すように、提供システム1は、少なくとも1つのサーバ装置10と、端末装置20Aと、端末装置20Bとを含む。
【0013】
以下、端末装置20Aと端末装置20Bとを特に区別しない場合、これらは、「端末装置20」とも記載される。提供システム1は、2つの端末装置20を含む。ただし、提供システム1は、2つ以上の端末装置20を含んでもよい。
【0014】
サーバ装置10と、端末装置20とは、ネットワーク2を介して通信可能である。ネットワーク2は、移動体通信網及びインターネット等を含む任意のネットワークであってよい。
【0015】
提供システム1は、仮想イベントを提供するためのシステムである。仮想イベントは、仮想空間を利用して提供される。仮想イベントに、ユーザは、端末装置20を用いて参加者として参加することができる。本実施形態に係る仮想イベントでは、ユーザは、イラストを共有することができる。本実施形態に係る仮想イベントは、遊び又は創作活動等の場において実施されてよい。
【0016】
サーバ装置10は、例えば、クラウドコンピューティングシステム又はその他のコンピューティングシステムに属し、各種機能を実装するサーバとして機能するサーバコンピュータである。サーバ装置10は、通信可能に接続されて連携動作する2つ以上のサーバコンピュータにより構成されてもよい。
【0017】
サーバ装置10は、仮想イベントの提供に必要な処理を実行する。例えば、サーバ装置10は、ネットワーク2を介して端末装置20に仮想イベントの提供に必要な情報を送信する。また、サーバ装置10は、仮想イベントの実施中、端末装置20Aと端末装置20Bとの間の情報の送受信を仲介する。
【0018】
端末装置20は、例えば、デスクトップPC(Personal Computer)、タブレットPC、ノートPC又はスマートフォン等の端末装置である。
【0019】
端末装置20は、表示装置としてのディスプレイ24を備える。ただし、端末装置20は、ディスプレイ24以外の表示装置を備えてもよい。例えば、端末装置20は、表示装置としてプロジェクタを備えてもよい。
【0020】
ディスプレイ24は、例えば、LCD(Liquid Crystal Display)又は有機EL(Electro Luminescence)ディスプレイ等である。ディスプレイ24は、例えば、後述する入力部22のタッチスクリーンとともに、タッチパネルディスプレイ又はタッチスクリーンディスプレイとして構成される。
【0021】
端末装置20Aは、第1ユーザ3Aによって使用される。第1ユーザ3Aは、端末装置20Aを用いて仮想イベントに参加する。
【0022】
端末装置20Bは、第2ユーザ3Bによって使用される。第2ユーザ3Bは、端末装置20Bを用いて仮想イベントに参加する。
【0023】
第1ユーザ3Aと第2ユーザ3Bとは、仮想イベントにてイラスト等を共有することにより、コミュニケーションをとることができる。
【0024】
例えば、第1ユーザ3Aは、指又はスタイラスペン等でディスプレイ24にタッチすることにより、ディスプレイ24にイラストを描く。端末装置20Aは、第1ユーザ3Aのイラストデータを、ネットワーク2及びサーバ装置10を介して端末装置20Bに送信する。端末装置20Bは、端末装置20Aから第1ユーザ3Aのイラストのデータを受信し、ディスプレイ24に第1ユーザ3Aのイラストを表示させる。第2ユーザ3Bは、端末装置20Bのディスプレイ24に第1ユーザ3Aのイラストが表示されることにより、第1ユーザ3Aのイラストを見ることができる。ここで、第1ユーザ3Aのイラストには、「hellо」との文字が含まれる。端末装置20Bは、第1ユーザ3Aのイラストのデータに含まれる「hellо」との文字を第2ユーザ3Bから見て可読可能に反転する。このような構成により、第2ユーザ3Bに対して文字を適切に表示することができる。
【0025】
(サーバ装置の構成)
図2に示すように、サーバ装置10は、通信部11と、記憶部12と、制御部13とを備える。
【0026】
通信部11は、ネットワーク2に接続可能な少なくとも1つの通信モジュールを含んで構成される。通信モジュールは、例えば、有線LAN(Local Area Network)又は無線LAN等の規格に対応した通信モジュールである。ただし、通信モジュールは、これに限定されない。通信モジュールは、任意の通信規格に対応してよい。通信部11は、通信モジュールによって有線LAN又は無線LANを介して、ネットワーク2に接続される。
【0027】
記憶部12は、少なくとも1つの半導体メモリ、少なくとも1つの磁気メモリ、少なくとも1つの光メモリ又はこれらのうちの少なくとも2種類の組み合わせを含んで構成される。半導体メモリは、例えば、RAM(Random Access Memory)又はROM(Read Only Memory)等である。RAMは、例えば、SRAM(Static Random Access Memory)又はDRAM(Dynamic Random Access Memory)等である。ROMは、例えば、EEPROM(Electrically Erasable Programmable Read Only Memory)等である。記憶部12は、主記憶装置、補助記憶装置又はキャッシュメモリとして機能してよい。記憶部12には、サーバ装置10の動作に用いられるデータと、サーバ装置10の動作によって得られたデータとが記憶される。
【0028】
制御部13は、少なくとも1つのプロセッサ、少なくとも1つの専用回路又はこれらの組み合わせを含んで構成される。プロセッサは、例えば、CPU(Central Processing Unit)若しくはGPU(Graphics Processing Unit)等の汎用プロセッサ又は特定の処理に特化した専用プロセッサである。専用回路は、例えば、FPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit)等である。制御部13は、サーバ装置10の各部を制御しながら、サーバ装置10の動作に関わる処理を実行する。
【0029】
サーバ装置10の機能は、本実施形態に係る処理プログラムを、制御部13に相当するプロセッサで実行することにより実現される。つまり、サーバ装置10の機能は、ソフトウェアにより実現される。処理プログラムは、サーバ装置10の動作をコンピュータに実行させることにより、コンピュータをサーバ装置10として機能させる。つまり、コンピュータは、処理プログラムに従ってサーバ装置10の動作を実行することにより、サーバ装置10として機能する。
【0030】
サーバ装置10の一部又は全ての機能が、制御部13に相当する専用回路により実現されてもよい。つまり、サーバ装置10の一部又は全ての機能が、ハードウェアにより実現されてもよい。
【0031】
(端末装置の構成)
図2に示すように、端末装置20は、通信部21と、入力部22と、出力部23と、カメラ25と、測距センサ26と、記憶部27と、制御部28とを備える。端末装置20は、複数のカメラ25を備えてもよい。
【0032】
通信部21は、ネットワーク2に接続可能な少なくとも1つの通信モジュールを含んで構成される。通信モジュールは、例えば、有線LAN若しくは無線LAN等の規格に対応した通信モジュールであるか、又は、LTE(Long Term Evolution)、4G(4th Generation)若しくは5G(5th Generation)等の移動体通信規格に対応した通信モジュールである。ただし、通信モジュールは、これに限定されない。通信モジュールは、任意の通信規格に対応してよい。
【0033】
入力部22は、ユーザからの入力を受け付け可能である。入力部22は、ユーザからの入力を受け付け可能な少なくとも1つの入力用インタフェースを含んで構成される。入力用インタフェースは、ディスプレイ24と一体的に設けられたタッチスクリーンを含む。さらに、入力用インタフェースは、物理キー、静電容量キー、ポインティングデバイス、又はマイクロフォン等を含んでもよい。ただし、入力用インタフェースは、これに限定されない。
【0034】
出力部23は、データを出力可能である。出力部23は、データを出力可能な少なくとも1つの出力用インタフェースを含んで構成される。出力用インタフェースは、ディスプレイ24及びスピーカ等を含む。出力用インタフェースは、例えばディスプレイ24の周囲に設けられた、複数のスピーカを含んでよい。ただし、出力用インタフェースは、これに限定されない。
【0035】
カメラ25は、被写体を撮像して撮像画像を生成可能である。カメラ25は、例えば、可視光カメラである。カメラ25は、例えば15~30[fps]のフレームレートで被写体を連続的に撮像する。
【0036】
カメラ25は、ディスプレイ24に対向するユーザを被写体として撮像可能な位置に配置される。カメラ25は、ユーザの全身を撮像可能な位置に配置されてよい。
図1に例示として、端末装置20Aが備える複数のカメラ25の位置を示す。例えば、端末装置20が備える複数のカメラ25のうちの一部は、ディスプレイ24の正面に埋め込まれる。ディスプレイ24の正面に埋め込んだカメラ25によって、ユーザの正面画像を撮像することができる。また、端末装置20が備える複数のカメラ25のうちの他の一部は、複数方向からユーザを撮像可能に、ユーザの周囲に配置される。ただし、カメラ25の配置は、これに限定されない。他の例として、カメラ25は、ユーザを斜め上から撮像可能な位置に配置されてもよい。
【0037】
測距センサ26は、被写体までの距離を測定可能である。測距センサ26は、ディスプレイ24から被写体までの距離を測定可能な位置に配置される。測距センサ26は、被写体としてユーザまでの距離を測定可能な位置に配置される。測距センサ26は、距離画像を生成する。距離画像は、各画素の画素値が距離に対応した画像である。測距センサ26は、例えば、ToF(Time Of Flight)カメラ、LiDAR(Light Detection And Ranging)又はステレオカメラを含んで構成される。
【0038】
記憶部27は、少なくとも1つの半導体メモリ、少なくとも1つの磁気メモリ、少なくとも1つの光メモリ又はこれらのうちの少なくとも2種類の組み合わせを含んで構成される。半導体メモリは、例えば、RAM又はROM等である。RAMは、例えば、SRAM又はDRAM等である。ROMは、例えば、EEPROM等である。記憶部27は、主記憶装置、補助記憶装置又はキャッシュメモリとして機能してよい。記憶部27には、端末装置20の動作に用いられるデータと、端末装置20の動作によって得られたデータとが記憶される。
【0039】
制御部28は、少なくとも1つのプロセッサ、少なくとも1つの専用回路又はこれらの組み合わせを含んで構成される。プロセッサは、例えば、CPU若しくはGPU等の汎用プロセッサ又は特定の処理に特化した専用プロセッサである。専用回路は、例えば、FPGA又はASIC等である。制御部28は、端末装置20の各部を制御しながら、端末装置20の動作に関わる処理を実行する。
【0040】
端末装置20の機能は、本実施形態に係る端末プログラムを、制御部28に相当するプロセッサで実行することにより実現される。つまり、端末装置20の機能は、ソフトウェアにより実現される。端末プログラムは、端末装置20の動作をコンピュータに実行させることにより、コンピュータを端末装置20として機能させる。つまり、コンピュータは、端末プログラムに従って端末装置20の動作を実行することにより、端末装置20として機能する。
【0041】
端末装置20の一部又は全ての機能が、制御部28に相当する専用回路により実現されてもよい。つまり、端末装置20の一部又は全ての機能が、ハードウェアにより実現されてもよい。
【0042】
(提供システムの動作)
図3は、
図1に示す提供システム1の動作手順を示すシーケンス図である。以下、第1ユーザ3Aは、仮想イベントの管理者として仮想イベントを設定するものとする。また、第1ユーザ3A及び第2ユーザ3Bは、参加者として仮想イベントに参加するものとする。
【0043】
ステップS1の処理において、端末装置20Aでは、制御部28は、第1ユーザ3Aから設定情報の入力を入力部22によって受け付ける。設定情報は、仮想イベントを設定するための情報である。設定情報は、例えば、仮想イベントのスケジュール及び参加者リスト等を含む。参加者リストは、参加者の名前と、その参加者の電子メールアドレスとを含む。ここでは、参加者リストは、参加者である第2ユーザ3Bの名前と、第2ユーザ3Bの電子メールアドレスとを含む。例えば、制御部28は、通信部21を介して、サーバ装置10が提供する仮想イベントを設定するためのサイトにアクセスし、設定情報を入力するための入力画面のデータを取得する。制御部28は、当該入力画面をディスプレイ24に表示させ、第1ユーザ3Aに提示する。第1ユーザ3Aは、入力画面を見て、設定情報を入力部22から入力する。
【0044】
ステップS2の処理において、端末装置20Aでは、制御部28は、入力部22によって受け付けた設定情報を、ネットワーク2を介してサーバ装置10に通信部21によって送信する。
【0045】
ステップS3の処理において、サーバ装置10では、制御部13は、ネットワーク2を介して端末装置20Aから、設定情報を通信部11によって受信する。
【0046】
ステップS4の処理において、サーバ装置10では、制御部13は、ステップS3の処理で受信した設定情報に基づいて、仮想イベントを設定する。例えば、制御部13は、認証情報を生成する。認証情報は、端末装置20Bを用いて仮想イベントに参加する第2ユーザ3Bを認証するための情報である。認証情報は、参加者ID及びパスコード等を含む。参加者IDは、第2ユーザ3Bが参加者として仮想イベントに参加する際に用いる識別情報である。
【0047】
ステップS5の処理において、サーバ装置10では、制御部13は、生成した認証情報を、ネットワーク2を介して端末装置20Bに通信部11によって送信する。制御部13は、例えば、認証情報を電子メールに添付して端末装置20Bに送信する。
【0048】
ステップS6の処理において、端末装置20Bでは、制御部28は、ネットワーク2を介してサーバ装置10から、認証情報を通信部21によって受信する。制御部28は、電子メールに添付された認証情報を受信する。
【0049】
ステップS7の処理において、端末装置20Bでは、制御部28は、第2ユーザ3Bから認証情報及び参加の申請情報の入力を入力部22によって受け付ける。例えば、制御部28は、通信部21によって、サーバ装置10が提供する仮想イベントを設定するためのサイトにアクセスし、認証情報及び参加の申請情報を入力するための入力画面のデータを取得する。制御部28は、当該入力画面をディスプレイ24に表示させ、第2ユーザ3Bに提示する。第2ユーザ3Bは、入力画面を見て、電子メールに添付された認証情報と、参加の申請情報とを入力部22から入力する。
【0050】
ステップS8の処理において、端末装置20Bでは、制御部28は、ネットワーク2を介してサーバ装置10に、入力部22によって受け付けた認証情報及び参加の申請情報を通信部21によって送信する。
【0051】
ステップS9の処理において、サーバ装置10では、制御部13は、ネットワーク2を介して端末装置20Bから、認証情報及び参加の申請情報を通信部11によって受信する。制御部13は、認証情報及び参加の申請情報を受信することにより、第2ユーザ3Bの参加受付を完了する(ステップS10)。
【0052】
ステップS11の処理において、サーバ装置10では、制御部13は、ネットワーク2を介して端末装置20A,20Bのそれぞれに、イベントの開始通知を通信部11によって送信する。
【0053】
ステップS12の処理において、端末装置20Aでは、制御部28は、ネットワーク2を介してサーバ装置10から、イベントの開始通知を通信部21によって受信する。制御部28は、イベントの開始通知を受信すると、第1ユーザ3Aの撮像を開始したりする。
【0054】
ステップS13の処理において、端末装置20Bでは、制御部28は、ネットワーク2を介してサーバ装置10から、イベントの開始通知を通信部21によって受信する。制御部28は、イベントの開始通知を受信すると、第2ユーザ3Bの撮像を開始したりする。
【0055】
ステップS14の処理において、端末装置20Aと端末装置20Bとは、サーバ装置10を介して仮想イベントを実施する。
【0056】
(端末装置の動作)
図4は、
図2に示す端末装置20の動作手順を示すフローチャートである。
図4に示す動作手順は、端末装置20A,20Bに共通の動作手順である。
図4に示す動作手順は、本実施形態に係る端末装置20の動作方法の一例である。
図4に示す動作手順は、
図3に示すステップS14の処理において実行される。以下、端末装置20Aが
図4に示す動作手順を実行するものとして説明する。
【0057】
ステップS21の処理において、制御部28は、第1ユーザ3Aのモーションデータを取得する。本実施形態では、制御部28は、第1ユーザ3Aの距離画像のデータを第1ユーザ3Aのモーションデータとして、測距センサ26によって取得する。第1ユーザ3Aが動くと、ディスプレイ24から第1ユーザ3Aまでの距離が変化する。そのため、第1ユーザ3Aの距離画像のデータを第1ユーザ3Aのモーションデータとして用いることができる。
【0058】
ステップS21の処理において、制御部28は、第1ユーザ3Aの撮像画像のデータを、カメラ25によって取得する。
【0059】
ステップS21の処理において、制御部28は、第1ユーザ3Aがディスプレイ24に描いたイラストのデータを、入力部22のタッチスクリーンに対するタッチ操作に応じて取得する。
【0060】
ステップS21の処理において、制御部28は、第1ユーザ3Aが発する発話等の音を入力部22のマイクロフォンで集音することにより、音データを取得する。
【0061】
ここで、ステップS21の処理において、制御部28は、同じタイミングで、第1ユーザ3Aのモーションデータと、第1ユーザ3Aの撮像画像のデータと、第1ユーザ3Aのイラストのデータと、第1ユーザ3Aの音データとを取得する。つまり、第1ユーザ3Aのモーションデータに、第1ユーザ3Aの撮像画像のデータ、第1ユーザ3Aのイラストのデータ及び第1ユーザ3Aの音データは、同期される。
【0062】
ステップS22の処理において、制御部28は、ステップS21の処理で取得しデータを符号化することにより、符号化データを生成する。制御部28は、符号化において、撮像画像のデータ等に対して任意の加工処理(例えば解像度変更及びトリミング等)を実行してよい。
【0063】
ステップS23の処理において、制御部28は、符号化データをパケットとして、ネットワーク2を介してサーバ装置10に通信部21によって送信する。この符号化データは、サーバ装置10を介して端末装置20Bに送信される。
【0064】
ステップS24の処理において、制御部28は、撮像等を中断する入力又は仮想イベントから退出する入力を、入力部22によって受け付けたか否かを判定する。制御部28は、撮像等を中断する入力又は仮想イベントから退出する入力を受け付けたと判定した場合(ステップS24:YES)、
図4に示すような動作手順を終了する。制御部28は、撮像等を中断する入力又は仮想イベントから退出する入力を受け付けたと判定しない場合(ステップS24:NO)、ステップS21の処理に戻る。
【0065】
図5は、
図2に示す端末装置20の動作手順を示すフローチャートである。
図5に示す動作手順は、端末装置20A,20Bに共通の動作手順である。
図5に示す動作手順は、本実施形態に係る端末装置20の動作方法の一例である。
図5に示す動作手順は、
図3に示すステップS14の処理において実行される。以下、端末装置20Bが
図5に示す動作手順を実行するものとして説明する。
【0066】
ステップS31の処理において、制御部28は、符号化データを、ネットワーク2及びサーバ装置10を介して端末装置20Aから、通信部21によって受信する。
【0067】
ステップS32の処理において、制御部28は、受信した符号化データを復号する。制御部28は、符号化データを復号することにより、第1ユーザ3Aのモーションデータ、第1ユーザ3Aの撮像画像のデータ、第1ユーザ3Aのイラストのデータ及び第1ユーザ3Aの音データを取得する。第1ユーザ3Aの撮像画像のデータ、第1ユーザ3Aのイラストのデータ及び第1ユーザ3Aの音データは、上述したステップS21の処理により、第1ユーザ3Aのモーションデータに同期されたものである。
【0068】
ステップS33の処理において、制御部28は、ステップS32の処理で取得したデータを用いて、
図6に示すような第1ユーザ3Aのアバター32を生成する。例えば、制御部28は、第1ユーザ3Aのモーションデータすなわち距離画像のデータを用いてポリゴンモデルを生成する。さらに、制御部28は、第1ユーザ3Aの撮像画像のデータを用いたテクスチャマッピングをポリゴンモデルに施すことにより、アバター32の外観を第1ユーザ3Aの撮像画像のデータから生成する。ただし、制御部28は、任意の手法を採用して、第1ユーザ3Aのアバター32を生成してよい。
【0069】
ここで、ステップS33の処理において、制御部28は、アバター32の外観正面を、ステップS32の処理で取得した第1ユーザ3Aの撮像画像のデータに含まれる、第1ユーザ3Aの正面の撮像画像のデータから生成してよい。第1ユーザ3Aの正面の撮像画像は、例えば、端末装置20Aのディスプレイ24の正面に埋め込まれたカメラ25によって撮像される。制御部28は、ステップS32の処理で取得した撮像画像のデータに第1ユーザ3Aの正面の撮像画像のデータが含まれない場合、アバター32の外観正面を、第1ユーザ3Aの他の撮像画像のデータから生成してよい。例えば、制御部28は、アバター32の外観正面を、ステップS32の処理で取得した撮像画像のデータに含まれる、複数方向から第1ユーザ3Aを撮像して生成された撮像画像のデータを補間又は補正等することにより、生成する。又は、制御部28は、アバター32の外観正面を、過去に撮像された第1ユーザ3Aの正面の撮像画像のデータを複製して生成してもよい。
【0070】
ステップS34の処理において、制御部28は、
図6に示すように、仮想空間30内に、仮想カメラ31と、アバター32と、仮想スクリーン33とを配置する。制御部28は、仮想カメラ31とアバター32との間に、仮想スクリーン33を配置する。仮想スクリーン33は、アバター32側の面33Aと、仮想カメラ31側の面33Bとを含む。面33Aは、端末装置20Aのディスプレイ24の画面に対応する。面33Bは、端末装置20Bのディスプレイ24の画面に対応する。
【0071】
ステップS34の処理において、制御部28は、アバター32が仮想スクリーン33上にイラストを描いているように、アバター32を仮想空間30内に配置してよい。例えば、第1ユーザ3Aが指又はスタイラスペンでディスプレイ24にタッチしてイラストを描く場合、アバター32の指又はスタイラスペンが仮想スクリーン33の面33Aにタッチするように、アバター32を仮想空間30内に配置する。
【0072】
ステップS34の処理において、制御部28は、仮想カメラ31の位置、向き及び視野を、
図1に示すような端末装置20Bのディスプレイ24に対向する第2ユーザ3Bの視線に基づいて、決定してもよいし、又は、調整してもよい。例えば、制御部28は、仮想カメラ31の位置を第2ユーザ3Bの視線の高さに基づいて決定する。また、制御部28は、仮想カメラ31の向きを、第2ユーザ3Bの視線の方向に基づいて決定する。制御部28は、端末装置20Bのカメラ25によって撮像した第2ユーザ3Bの撮像画像のデータを解析することにより、第2ユーザ3Bの視線のデータを検出してよい。ただし、制御部28は、仮想カメラ31の位置、向き及び視野を、入力部22から受け付けた第2ユーザ2Bの操作入力に基づいて、決定してもよいし、又は、調整してもよい。
【0073】
ステップS35の処理において、制御部28は、ステップS32の処理で取得した第1ユーザ3Aのイラストのデータに基づいて、
図6に示すように、仮想スクリーン33上に第1ユーザ3Aのイラストを描画する。例えば、制御部28は、仮想スクリーン33の面33A上にイラストを描画する。
【0074】
ステップS36の処理において、制御部28は、例えば機械学習等の任意の方法によって、仮想スクリーン33上に描画されたイラストに文字が含まれるか否かを判定する。制御部28は、仮想スクリーン33上に描画されたイラストに文字が含まれると判定した場合(ステップS36:YES)、ステップS37の処理に進む。
図6に示す構成では、制御部28は、イラストに「hellо」との文字が含まれると判定する。一方、制御部28は、仮想スクリーン33上に描画されたイラストに文字が含まれないと判定した場合(ステップS36:NO)、ステップS38の処理に進む。
【0075】
ステップS37の処理において、制御部28は、仮想スクリーン33上の文字を仮想カメラ31から見て可読可能に反転させる。一例として、制御部28は、機械学習等の任意の方法によって、アバター32から見た仮想スクリーン33上の文字を読む方向を特定してよい。さらに、制御部28は、特定した文字を読む方向で仮想カメラ31から見て仮想スクリーン33上の文字が読めるように、仮想スクリーン33上の文字を反転させてよい。
図6に示す構成では、制御部28は、仮想スクリーン33上の「hellо」との文字を読む方向がアバター32から見て左側から右側に向かう方向であると特定する。制御部28は、仮想カメラ31から見て「hellо」との文字が左側から右側に向かう方向に読めるように、仮想スクリーン33上の「hellо」との文字を反転させる。別の例として、制御部28は、アバター32から見た仮想スクリーン33上の文字を読む方向が上側から下側に向かう方向であると特定し得る。この場合、制御部28は、仮想カメラ31から見て可読可能になるように、仮想スクリーン33上の文字の左右を反転させる。制御部28は、反転させる文字の中心に軸を設定し、設定した軸を中心に文字を反転させてよい。
【0076】
ステップS37の処理において、制御部28は、仮想スクリーン33上に描画されたイラストに含まれる文字を単語単位又は文章単位で、仮想カメラ31から見て可読可能に反転させてよい。例えば、制御部28は、仮想スクリーン33上に描画されたイラストに含まれる文字が単語を構成しているが、文章を構成していないと判定した場合、当該文字を単語単位で仮想カメラ31から見て可読可能に反転させる。また、制御部28は、仮想スクリーン33上に描画されたイラストに含まれる文字が文章を構成していると判定した場合、当該文字を文章単位で仮想カメラ31から見て可読可能に反転させる。なお、制御部28は、仮想スクリーン33上に描画されたイラストに含まれる文字が単語及び文章を構成していないと判定した場合、当該文字を仮想カメラ31から見て可読可能に反転させてよい。制御部28は、機械学習等の任意の方法によって、仮想スクリーン33上の文字が単語を構成しているか又は文章を構成しているか等を判定してよい。仮想スクリーン33上の文字を単語単位又は文章単位で自動的に反転させることにより、第2ユーザ3Bは、文字を読みやすくなる。そのため、第2ユーザ3Bの利便性を向上させることができる。
【0077】
ステップS38の処理において、制御部28は、
図6に示すような仮想カメラ31から見て仮想スクリーン33に投影された仮想空間30の2次元画像をレンダリングにより生成する。
【0078】
ステップS39の処理において、制御部28は、ディスプレイ24に、ステップ38の処理で生成した2次元画像を表示させる。また、制御部28は、出力部23のスピーカに、ステップS32の処理で取得した音を出力させる。制御部28は、出力部23の複数のスピーカのうちから、音を出力させるスピーカを適宜選択してもよい。例えば、ディスプレイ24に表示される2次元画像には、アバター32が描画される。制御部28は、描画されたアバター32付近から音が出力されるように、ディスプレイ24の周囲に設けられた複数のスピーカのうちから、描画されたアバター32付近のスピーカを、音を出力させるスピーカとして選択する。
【0079】
ステップS39の処理を実行した後、制御部28は、ステップS31の処理に戻る。制御部28は、例えば符号化データが端末装置20Aから送信されなくなるか、又は仮想イベントが終了するまで、ステップS31~S39の処理を繰り返し実行する。
【0080】
2回目以降のステップS34,S35の処理では、制御部28は、第1ユーザ3Aのモーションデータと、当該モーションデータに同期された第1ユーザ3Aのイラストのデータとに基づいて、
図6に示すようなアバター32を動かす。制御部28は、アバター32が仮想スクリーン33上に第1ユーザ3Aのイラストを描いていくようにアバター32を動かしつつ、仮想スクリーン33上にイラストを描画する。制御部28は、リアルタイムに、アバター32が仮想スクリーン33上に第1ユーザ3Aのイラストを描いていくようにアバター32を動かしつつ、仮想スクリーン33上にイラストを描画してよい。リアルタイムにアバター32を動かしたりすることにより、第1ユーザ3Aと第2ユーザ3Bとは、リアルタイムにコミュニケーションをとることができる。
【0081】
このようにステップS39の処理によって、
図6に示すような仮想空間30の2次元画像が端末装置20Bのディスプレイ24に表示される。このような構成により、第2ユーザ3Bには、端末装置20Bのディスプレイ24を介して、第1ユーザ3Aが第2ユーザ3Bに向き合った状態で、端末装置20Bのディスプレイ24にイラストを描いているように見える。そのため、第2ユーザ3Bは、第1ユーザ3Aがイラストを描く姿及びそのイラストを、ガラス越しに見ているかのように感じることができる。したがって、第1ユーザ3Aと第2ユーザ3Bとは、イラスト及びイラストを描く姿を共有することができる。
【0082】
また、ステップS33の処理にてアバター32の外観が第1ユーザ3Aの撮像画像のデータから生成されることにより、第2ユーザ3Bは、第1ユーザ3A自身がイラストを描いているように感じることができる。このような構成により、ユーザ間のコミュニケーションを向上させることができる。
【0083】
また、ステップS37の処理によって、仮想スクリーン33上に描画されたイラストに含まれる文字が仮想カメラ31から見て可読可能に反転される。このような構成により、仮想空間30の2次元画像が端末装置20Bのディスプレイ24に表示された際、第2ユーザ3Bから見て文字が可読可能になる。したがって、第2ユーザ3Bの利便性を向上させることができる。よって、文字をユーザに適切に表示する技術を提供することができる。
【0084】
以下、本実施形態の変形例について説明する。
【0085】
上述したステップS33の処理において、制御部28は、アバター32の外観をキャラクタの画像のデータから生成してもよい。この場合、制御部28は、キャラクタの画像のデータを用いたテクスチャマッピングをポリゴンモデルに施すことにより、アバター32の外観をキャラクタの画像のデータから生成する。アバター32の外観をキャラクタの画像のデータから生成することにより、遊戯性を高めることができる。そのため、ユーザ間のコミュニケーションを向上させることができる。
【0086】
上述したステップS34の処理において、制御部28は、アバター32の代わりに、
図6に示すような仮想オブジェクト34を仮想空間に配置してもよい。この場合、制御部28は、仮想カメラ31と仮想オブジェクト34との間に、仮想スクリーン33を配置する。制御部28は、第1ユーザ3Aの撮像画像に写り込んだオブジェクトによって、仮想オブジェクト34を生成してもよい。又は、制御部28は、予め設定されたオブジェクトを仮想オブジェクト34として用いてもよい。アバター32の代わりに仮想オブジェクト34を用いても、第2ユーザ3Bは、端末装置20Bのディスプレイ24に表示された仮想空間30の2次元画像に奥行きを感じることができる。第2ユーザ3Bは、ディスプレイ24に表示された2次元画像に奥行きを感じることにより、ディスプレイ24に表示された第1ユーザ3Aのイラストを、ガラス越しに見ているように感じることができる。
【0087】
上述したステップS37の処理において、制御部28は、入力部22によって受け付けた第2ユーザ3Bの操作入力に基づいて、仮想スクリーン33上に描画されたイラストに含まれ文字を仮想カメラ31から見て可読可能に反転させてもよい。一例として、制御部28は、ディスプレイ24と一体として設けられた入力部22のタッチスクリーンによって、ディスプレイ24の文字部分に対する第2ユーザ3Bのタッチ操作を受け付けてよい。制御部28は、このタッチ操作を受け付けると、仮想スクリーン33上に描画されたイラストに含まれ文字を仮想カメラ31から見て可読可能に反転させてよい。このような構成により、第2ユーザ3Bは、ディスプレイ24に表示される文字を所望のタイミングで反転させることができる。
【0088】
本開示を諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形及び改変を行ってもよいことに注意されたい。したがって、これらの変形及び改変は本開示の範囲に含まれることに留意されたい。例えば、各構成部又は各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部又はステップ等を1つに組み合わせたり、或いは分割したりすることが可能である。
【0089】
例えば、上述した実施形態では、表示装置は、ディスプレイであるものとして説明した。ただし、表示装置は、ディスプレイに限定されない。他の例として、表示装置は、プロジェクタであってもよい。表示装置がプロジェクタである場合、制御部28は、第1ユーザ3Aのモーションデータ及びイラストのデータの両方を測距センサ26によって取得してもよい。第1ユーザ3Aがイラストを描く際に動くことにより、第1ユーザ3Aのモーションデータから、第1ユーザ3Aのイラストのデータを推定して取得することができる。
【0090】
例えば、端末装置20の制御部28は、
図5に示すようなステップS36,S37の処理を実行しなくてもよい。この場合、例えば、繰り返し実行するステップS34,S35の処理において、端末装置20Bの制御部28は、第1ユーザ3Aのモーションデータに基づいて、アバター32を動かしてよい。制御部28は、アバター32が仮想スクリーン33上に第1ユーザ3Aのイラストを描いていくようにアバター32を動かしつつ、仮想スクリーン33上に第1ユーザ3Aのイラストを描画してよい。このような構成によって、上述したように、第2ユーザ3Bは、第1ユーザ3Aがイラストを描く姿及びそのイラストを、ガラス越しに見ているかのように感じることができる。したがって、第1ユーザ3Aと第2ユーザ3Bとは、イラスト及びイラストを描く姿を共有することができる。
【0091】
例えば、上述した実施形態では、端末装置20Aと端末装置20Bとは、サーバ装置10を介して仮想イベントを実施するものとして説明した。ただし、端末装置20Aと端末装置20Bとは、サーバ装置10を介さずに、仮想イベントを実施してもよい。一例として、端末装置20Aと端末装置20Bとは、P2P(Peer to Peer)型のアーキテクチャーで接続された状態で、仮想イベントを実施してもよい。
【0092】
例えば、汎用のコンピュータを、上述した実施形態に係る端末装置20として機能させる実施形態も可能である。具体的には、上述した実施形態に係る端末装置20の各機能を実現する処理内容を記述したプログラムを、汎用のコンピュータのメモリに格納し、プロセッサによって当該プログラムを読み出して実行させる。したがって、本開示は、プロセッサが実行可能なプログラム、又は、当該プログラムを記憶する非一時的なコンピュータ可読媒体としても実現可能である。
【符号の説明】
【0093】
1 提供システム
2 ネットワーク
10 サーバ装置
11 通信部
12 記憶部
13 制御部
20,20A,20B 端末装置
21 通信部
22 入力部
23 出力部
24 ディスプレイ
25 カメラ
26 測距センサ
27 記憶部
28 制御部
30 仮想空間
31 仮想カメラ
32 アバター
33 仮想スクリーン
33A,33B 面
34 仮想オブジェクト
3A 第1ユーザ
3B 第2ユーザ