(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】アバターを利用したカンファレンス処理方法およびシステム
(51)【国際特許分類】
G06T 13/40 20110101AFI20241203BHJP
G06T 19/00 20110101ALI20241203BHJP
H04N 21/6437 20110101ALI20241203BHJP
【FI】
G06T13/40
G06T19/00 300A
H04N21/6437
(21)【出願番号】P 2022552270
(86)(22)【出願日】2020-03-20
(86)【国際出願番号】 KR2020003874
(87)【国際公開番号】W WO2021187646
(87)【国際公開日】2021-09-23
【審査請求日】2023-02-24
(73)【特許権者】
【識別番号】516014409
【氏名又は名称】ライン プラス コーポレーション
【氏名又は名称原語表記】LINE Plus Corporation
(74)【代理人】
【識別番号】110003199
【氏名又は名称】弁理士法人高田・高橋国際特許事務所
(72)【発明者】
【氏名】グォック ジョンナム
(72)【発明者】
【氏名】ユ グム ヨン
(72)【発明者】
【氏名】クォン スノー
(72)【発明者】
【氏名】クォン オヒョク
【審査官】岡本 俊威
(56)【参考文献】
【文献】特開平11-328124(JP,A)
【文献】特開2001-094963(JP,A)
【文献】特開2014-225801(JP,A)
【文献】特開2017-188020(JP,A)
【文献】特表2018-538593(JP,A)
【文献】特開2019-160295(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/00-19/20
H04N 21/6437
(57)【特許請求の範囲】
【請求項1】
コンピュータ装置と結合してカンファレンス処理方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムであって、
前記カンファレンス処理方法は、
サーバを通じて複数のユーザが参加するカンファレンスのための通信セッションを設定する段階、
前記カンファレンスのための仮想空間上に表現されるアバターの識別子および前記アバターの前記仮想空間での座標情報をサーバに送信する段階、
前記座標情報に基づいて選定された周辺アバターのリソースを前記サーバから受信する段階、
前記コンピュータ装置に含まれるカメラで撮影されたイメージを分析して、前記アバターが対応するユーザの動作データを取得する段階、
前記イメージを分析して取得した前記ユーザの動作データを前記アバターの動作データとして、前記通信セッションを介して前記サーバに送信する段階、
前記通信セッションを介して前記周辺アバターの動作データを前記サーバから受信する段階
、
前記周辺アバターのリソースおよび前記周辺アバターの動作データに基づいて前記仮想空間上に前記周辺アバターを表現する段階
、および
前記通信セッションとは別に設定される他の通信セッションを介して、前記サーバを通じて前記複数のユーザの音声を共有する段階
を含み、
前記アバターのポーズは、複数のボーンを含んで構成され、
前記動作データは、前記複数のボーンそれぞれのインデックス、前記複数のボーンそれぞれの3次元空間での回転情報、前記複数のボーンそれぞれの前記仮想空間での位置情報、および前記複数のボーンそれぞれの現在のトラッキング状態のうちの少なくとも1つの情報を、対応する前記アバターのポーズのデータとして含
み、
前記動作データを通信する前記通信セッションの通信プロトコルはRTSP(Real-Time Streaming Protocol)であり、
音声を通信する前記他の通信セッションの通信プロトコルはRTP(Real time Transport Protocol)である、
コンピュータプログラム。
【請求項2】
前記カンファレンス処理方法は、
前記アバターおよび前記周辺アバターが表現された前記仮想空間を画面に表示する段階
をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
【請求項3】
前記動作データを受信する段階は、
リアルタイム送信プロトコルを利用して、前記周辺アバターに対して生成される前記動作データをリアルタイムで受信すること
を特徴とする、請求項1に記載のコンピュータプログラム。
【請求項4】
前記カンファレンス処理方法は、
新たな周辺アバターの動作データを受信する場合、前記新たな周辺アバターのリソースを前記サーバに要請する段階、および
前記新たな周辺アバターのリソースを前記サーバから受信する段階
をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
【請求項5】
前記動作データは、顔のブレンドシェイプ技法に基づいて、人間の顔に対して予め定義された複数のポイントに対して算出される係数値を含むこと
を特徴とする、請求項1に記載のコンピュータプログラム。
【請求項6】
少なくとも1つのプロセッサを含むコンピュータ装置のカンファレンス処理方法であって、
前記少なくとも1つのプロセッサにより、サーバを通じて複数のユーザが参加するカンファレンスのための通信セッションを設定する段階、
前記少なくとも1つのプロセッサにより、前記カンファレンスのための仮想空間上に表現されるアバターの識別子および前記アバターの前記仮想空間での座標情報をサーバに送信する段階、
前記少なくとも1つのプロセッサにより、前記座標情報に基づいて選定された周辺アバターのリソースを前記サーバから受信する段階、
前記少なくとも1つのプロセッサにより、前記コンピュータ装置に含まれるカメラで撮影されたイメージを分析して、前記アバターが対応するユーザの動作データを取得する段階、
前記少なくとも1つのプロセッサにより、前記イメージを分析して取得した前記ユーザの動作データを前記アバターの動作データとして、前記通信セッションを介して前記サーバに送信する段階、
前記少なくとも1つのプロセッサにより、前記通信セッションを介して前記周辺アバターの動作データを前記サーバから受信する段階
、
前記少なくとも1つのプロセッサにより、前記周辺アバターのリソースおよび前記周辺アバターの動作データに基づいて前記仮想空間上に前記周辺アバターを表現する段階
、および
前記少なくとも1つのプロセッサにより、前記通信セッションとは別に設定される他の通信セッションを介して、前記サーバを通じて前記複数のユーザの音声を共有する段階
を含み、
前記アバターのポーズは、複数のボーンを含んで構成され、
前記動作データは、前記複数のボーンそれぞれのインデックス、前記複数のボーンそれぞれの3次元空間での回転情報、前記複数のボーンそれぞれの前記仮想空間での位置情報、および前記複数のボーンそれぞれの現在のトラッキング状態のうちの少なくとも1つの情報を、対応する前記アバターのポーズのデータとして含
み、
前記動作データを通信する前記通信セッションの通信プロトコルはRTSP(Real-Time Streaming Protocol)であり、
音声を通信する前記他の通信セッションの通信プロトコルはRTP(Real time Transport Protocol)である、
カンファレンス処理方法。
【請求項7】
少なくとも1つのプロセッサを含むコンピュータ装置のカンファレンス処理方法であって、
前記少なくとも1つのプロセッサにより、複数のユーザが参加するカンファレンスのための通信セッションを設定する段階、
前記少なくとも1つのプロセッサにより、前記複数のユーザの端末それぞれから、前記カンファレンスのための仮想空間上に表現されるアバターの識別子および前記アバターの前記仮想空間での座標情報を受信する段階、
前記少なくとも1つのプロセッサにより、前記座標情報に基づいて特定のアバターの周辺アバターを選定する段階、
前記少なくとも1つのプロセッサにより、前記選定された周辺アバターのリソースを前記特定のアバターに対応するユーザの端末に送信する段階、
前記少なくとも1つのプロセッサにより、前記複数のユーザの端末それぞれから、前記通信セッションを介してアバターの動作データを受信する段階
、
前記少なくとも1つのプロセッサにより、前記特定のアバターに対応するユーザの端末に、前記通信セッションを介して前記選定された周辺アバターの動作データを送信する段階
、および
前記少なくとも1つのプロセッサにより、前記通信セッションとは別に設定される他の通信セッションを介して前記複数のユーザから受信される音声をミキシングして、前記複数のユーザに提供する段階
を含み、
前記アバターのポーズは、複数のボーンを含んで構成され、
前記動作データは、前記複数のユーザの端末それぞれに含まれるカメラで撮影されたイメージを分析して取得され、前記複数のボーンそれぞれのインデックス、前記複数のボーンそれぞれの3次元空間での回転情報、前記複数のボーンそれぞれの前記仮想空間での位置情報、および前記複数のボーンそれぞれの現在のトラッキング状態のうちの少なくとも1つの情報を、対応する前記アバターのポーズのデータとして含
み、
前記動作データを通信する前記通信セッションの通信プロトコルはRTSP(Real-Time Streaming Protocol)であり、
音声を通信する前記他の通信セッションの通信プロトコルはRTP(Real time Transport Protocol)である、
カンファレンス処理方法。
【請求項8】
前記通信セッションを介して前記アバターの動作データを受信する段階は、
リアルタイム送信プロトコルを利用して、前記複数のユーザの端末それぞれから生成される動作データをリアルタイムで受信し、
前記選定された周辺アバターの動作データを送信する段階は、
前記リアルタイム送信プロトコルを利用して、前記選定された周辺アバターの動作データを前記ユーザの端末に送信すること
を特徴とする、
請求項7に記載のカンファレンス処理方法。
【請求項9】
前記少なくとも1つのプロセッサにより、前記ユーザの端末が新たな周辺アバターの動作データを受信することにより、前記ユーザの端末から前記新たな周辺アバターの識別子を含むリソース要請を受信する段階、
前記少なくとも1つのプロセッサにより、前記新たな周辺アバターの識別子に基づいて前記新たな周辺アバターのリソースを取得する段階、および
前記少なくとも1つのプロセッサにより、前記取得したリソースを前記ユーザの端末に送信する段階
をさらに含む、
請求項7に記載のカンファレンス処理方法。
【請求項10】
前記ユーザの端末において前記選定された周辺アバターのリソースおよび前記選定された周辺アバターの動作データに基づいて前記選定された周辺アバターを前記仮想空間上に表現し、前記ユーザのアバターおよび前記選定された周辺アバターが表現された前記仮想空間を前記端末の画面に表示すること
を特徴とする、
請求項7に記載のカンファレンス処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、アバターを利用したカンファレンス処理方法およびシステムに関する。
【背景技術】
【0002】
アバター(avatar)とは、オンライン上で自分自身の分身を表すキャラクタを意味するものであって、現実世界と同じように他人と作用し合うことでリアルな仮想環境を提供することができることから、ユーザの表現ツールとして注目を集めている。このようなアバターは、広告、映画製作、ゲームデザイン、遠隔会議(teleconference)などの多様な分野で広く利用されている。
【0003】
しかし、従来技術では、多くの参加者が存在するサービス上で、予め設定された動作(アバターの動きおよび/または表情)のうちからユーザが選択した動作を遂行するだけのアバターしか提供されず、参加者の動作を模倣するアバターをリアルタイムでサービス上に表現することができなかった。
【先行技術文献】
【特許文献】
【0004】
【文献】韓国公開特許第10-2009-0058760号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
仮想空間上で参加者の動作を模倣する参加者のアバターを参加者が共有する仮想空間上に表現し、このような仮想空間を利用してカンファレンスを進めることができる、カンファレンス処理方法およびシステムを提供する。
【課題を解決するための手段】
【0006】
少なくとも1つのプロセッサを含むコンピュータ装置のカンファレンス処理方法であって、前記少なくとも1つのプロセッサにより、サーバを通じて複数のユーザが参加するカンファレンスのための通信セッションを設定する段階、前記少なくとも1つのプロセッサにより、前記カンファレンスのための仮想空間上に表現されるアバターの識別子および前記アバターの前記仮想空間での座標情報をサーバに送信する段階、前記少なくとも1つのプロセッサにより、前記座標情報に基づいて選定された周辺アバターのリソースを前記サーバから受信する段階、前記少なくとも1つのプロセッサにより、前記通信セッションを介して前記アバターの動作データを前記サーバに送信する段階、前記少なくとも1つのプロセッサにより、前記通信セッションを介して前記周辺アバターの動作データを前記サーバから受信する段階、および前記少なくとも1つのプロセッサにより、前記周辺アバターのリソースおよび前記周辺アバターの動作データに基づいて前記仮想空間上に前記周辺アバターを表現する段階を含む、カンファレンス処理方法を提供する。
【0007】
一側面によると、前記カンファレンス処理方法は、前記アバターおよび前記周辺アバターが表現された前記仮想空間を画面に表示する段階をさらに含んでよい。
【0008】
他の側面によると、前記動作データを受信する段階は、リアルタイム送信プロトコルを利用して、前記周辺アバターに対して生成される前記動作データをリアルタイムで受信することを特徴としてよい。
【0009】
また他の側面によると、前記カンファレンス処理方法は、新たな周辺アバターの動作データを受信する場合、前記新たな周辺アバターのリソースを前記サーバに要請する段階、および前記新たな周辺アバターのリソースを前記サーバから受信する段階をさらに含んでよい。
【0010】
また他の側面によると、前記カンファレンス処理方法は、前記通信セッションまたは前記通信セッションとは別に設定される他の通信セッションを介して、前記サーバを通じて前記複数のユーザの音声を共有する段階をさらに含んでよい。
【0011】
また他の側面によると、前記動作データは、前記複数のユーザのポーズおよび表情のうちの少なくとも1つに対するデータを含むことを特徴としてよい。
【0012】
また他の側面によると、前記アバターのポーズは、複数のボーンを含んで構成され、前記動作データは、前記複数のボーンそれぞれのインデックス、前記複数のボーンそれぞれの3次元空間での回転情報、前記複数のボーンそれぞれの前記仮想空間での位置情報、および前記複数のボーンそれぞれの現在のトラッキング状態(tracking state)のうちの少なくとも1つの情報を含むことを特徴としてよい。
【0013】
また他の側面によると、前記動作データは、顔のブレンドシェイプ(face blendshape)技法に基づいて、人間の顔に対して予め定義された複数のポイントに対して算出される係数値を含むことを特徴としてよい。
【0014】
少なくとも1つのプロセッサを含むコンピュータ装置のカンファレンス処理方法であって、前記少なくとも1つのプロセッサにより、複数のユーザが参加するカンファレンスのための通信セッションを設定する段階、前記少なくとも1つのプロセッサにより、前記複数のユーザの端末それぞれから、前記カンファレンスのための仮想空間上に表現されるアバターの識別子および前記アバターの前記仮想空間での座標情報を受信する段階、前記少なくとも1つのプロセッサにより、前記座標情報に基づいて特定のアバターの周辺アバターを選定する段階、前記少なくとも1つのプロセッサにより、前記選定された周辺アバターのリソースを前記特定のアバターに対応するユーザの端末に送信する段階、前記少なくとも1つのプロセッサにより、前記複数のユーザの端末それぞれから、前記通信セッションを介してアバターの動作データを受信する段階、および前記少なくとも1つのプロセッサにより、前記特定のアバターに対応するユーザの端末に、前記通信セッションを介して前記選定された周辺アバターの動作データを送信する段階を含む、カンファレンス処理方法を提供する。
【0015】
コンピュータ装置と結合して前記方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録される、コンピュータプログラムを提供する。
【0016】
前記方法をコンピュータ装置に実行させるためのプログラムが記録されている、コンピュータ読み取り可能な記録媒体を提供する。
【0017】
コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、サーバを通じて複数のユーザが参加するカンファレンスのための通信セッションを設定し、前記カンファレンスのための仮想空間上に表現されるアバターの識別子および前記アバターの前記仮想空間での座標情報をサーバに送信し、前記座標情報に基づいて選定された周辺アバターのリソースを前記サーバから受信し、前記アバターの動作データを前記サーバに送信し、前記周辺アバターの動作データを前記サーバから受信し、前記周辺アバターのリソースおよび前記周辺アバターの動作データに基づいて前記仮想空間上に前記周辺アバターを表現することを特徴とする、コンピュータ装置を提供する。
【0018】
コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、複数のユーザが参加するカンファレンスのための通信セッションを設定し、前記複数のユーザの端末それぞれから前記カンファレンスのための仮想空間上に表現されるアバターの識別子および前記アバターの前記仮想空間での座標情報を受信し、前記座標情報に基づいて特定のアバターの周辺アバターを選定し、前記選定された周辺アバターのリソースを前記特定のアバターに対応するユーザの端末に送信し、前記複数のユーザの端末それぞれからアバターの動作データを受信し、前記特定のアバターに対応するユーザの端末に前記選定された周辺アバターの動作データを送信することを特徴とする、コンピュータ装置を提供する。
【発明の効果】
【0019】
仮想空間上で参加者の動作を模倣する参加者のアバターを参加者が共有する仮想空間上に表現し、このような仮想空間を利用してカンファレンスを進めることができる。
【図面の簡単な説明】
【0020】
【
図1】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【
図2】本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。
【
図3】本発明の一実施形態における、クライアントのアバター表現方法の例を示した図である。
【
図4】本発明の一実施形態における、サーバのアバター表現方法の例を示した図である。
【
図5】本発明の一実施形態における、アバター表現過程の例を示したフロー図である。
【
図6】本発明の一実施形態における、アバター表現過程の例を示したフロー図である。
【
図7】本発明の一実施形態における、アバター表現過程の例を示したフロー図である。
【
図8】本発明の一実施形態における、アバター表現過程の例を示したフロー図である。
【
図9】本発明の一実施形態における、アバターのボーン構造の例を示した図である。
【
図10】本発明の一実施形態における、アバターを利用したカンファレンスの実施例を示した図である。
【発明を実施するための形態】
【0021】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【0022】
本発明の実施形態に係るカンファレンス処理システムは、少なくとも1つのクライアントを実現するコンピュータ装置と少なくとも1つのサーバを実現するコンピュータ装置を含んでよく、本発明の実施形態に係るカンファレンス処理方法は、カンファレンス処理システムに含まれる少なくとも1つのコンピュータ装置によって実行されてよい。このとき、コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されたコンピュータプログラムの制御にしたがって本発明の実施形態に係るカンファレンス処理方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合してカンファレンス処理方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されてよい。
【0023】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような
図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が
図1のように限定されてはならない。また、
図1のネットワーク環境は、本実施形態に適用可能な環境のうちの一例を説明したものに過ぎず、本実施形態に適用可能な環境が
図1のネットワーク環境に限定されてはならない。
【0024】
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、コンピュータ、ノート型PC(Personal Computer)、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットPCなどがある。一例として、
図1では、電子機器110の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器110は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータ装置のうちの1つを意味してよい。
【0025】
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(Personal Area Network)、LAN(Local Area Network)、CAN(Campus Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)、BBN(BroadBand Network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0026】
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140にサービス(一例として、インスタントメッセージングサービス、ゲームサービス、グループ通話サービス(または、音声会議サービス)、メッセージングサービス、メールサービス、ソーシャルネットワークサービス、地図サービス、翻訳サービス、金融サービス、決済サービス、検索サービス、コンテンツ提供サービスなど)を提供するシステムであってよい。
【0027】
図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、
図2に示したコンピュータ装置200によって実現されてよい。
【0028】
このようなコンピュータ装置200は、
図2に示すように、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(Random Access Memory)、ROM(Read Only Memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピードライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではなく通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク170を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。
【0029】
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【0030】
通信インタフェース230は、ネットワーク170を介してコンピュータ装置200が他の装置(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク170を経てコンピュータ装置200の通信インタフェース230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
【0031】
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマウスなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250のうちの少なくとも1つは、コンピュータ装置200と1つの装置で構成されてもよい。例えば、スマートフォンのように、タッチスクリーン、マイク、スピーカなどがコンピュータ装置200に含まれた形態で実現されてよい。
【0032】
また、他の実施形態において、コンピュータ装置200は、
図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、データベースなどのような他の構成要素をさらに含んでもよい。
【0033】
図3は、本発明の一実施形態における、クライアントのカンファレンス処理方法の例を示した図である。本実施形態に係るカンファレンス処理方法は、クライアント装置を実現するコンピュータ装置200によって実行されてよい。ここで、クライアント装置は、クライアント装置にインストールされたクライアントプログラムの制御にしたがってサーバからカンファレンスサービスの提供を受ける主体であってよい。ここで、クライアントプログラムは、カンファレンスサービスを提供するためのアプリケーションに対応してよい。このとき、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのコンピュータプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が
図3の方法に含まれる段階310~380を実行するようにコンピュータ装置200を制御してよい。
【0034】
段階310で、コンピュータ装置200は、サーバを通じて複数のユーザが参加するカンファレンスのための通信セッションを設定してよい。一例として、カンファレンスサービスで提供されるユーザインタフェースを利用して任意のユーザがカンファレンスを開設した後、このカンファレンスに他のユーザを招待する方式により、カンファレンスに参加する複数のユーザの端末のための通信セッションが設定されてよい。
【0035】
段階320で、コンピュータ装置200は、通信セッションまたは前記通信セッションとは別に設定される他の通信セッションを介して、サーバを通じて複数のユーザの音声を共有してよい。例えば、サーバが複数のユーザそれぞれの音声を受信し、受信した音声をミキシングして複数のユーザに送信することにより、音声が共有されてよい。このとき、特定のユーザに送信されるミキシングされた音声は、該当の特定のユーザの音声を除いた残りの音声をミキシングしたオーディオデータであってよい。実施形態によっては、音声の送受信のための通信プロトコルと以下で説明するデータの送受信のための通信プロトコルは相異してよい。例えば、音声の送受信にはRTP(Real time Transport Protocol)が利用されてよく、以下で説明するデータの送受信にはRTSP(Real-Time Streaming Protocol)が利用されてよい。このような段階320は段階310の後に実行されてよく、以下で説明する段階330~段階380と並列して実行されてよい。実施形態によっては、段階320は省略されることもある。
【0036】
段階330で、コンピュータ装置200は、カンファレンスのための仮想空間上に表現されるアバターの識別子およびアバターの仮想空間での座標情報をサーバに送信してよい。このとき、カンファレンスに参加する参加者それぞれが自身のアバターの識別子と座標情報をサーバに送信することにより、カンファレンスのためのアバターそれぞれに対する位置をサーバが把握することができる。
【0037】
段階340で、コンピュータ装置200は、座標情報に基づいて選定された周辺アバターのリソースをサーバから受信してよい。例えば、サーバは、特定のアバターに対して、特定のアバターから予め設定された距離以内に存在するアバターを周辺アバターとして選定してよく、選定された周辺アバターのリソースをコンピュータ装置200に送信してよい。これは、コンピュータ装置200がカンファレンスの参加者全員のアバターを表現する必要がなく、画面に表示される可能性のあるアバターだけを表現すれば良いためである。ここで、アバターのリソースは、該当のアバターを画面に表現するためのデータを含んでよい。
【0038】
段階350で、コンピュータ装置200は、通信セッションを介してアバターの動作データをサーバに送信してよい。一例として、コンピュータ装置200は、コンピュータ装置200が含むカメラで撮影されたイメージを分析してユーザの動作データを取得してよく、このようなユーザの動作データを対応するアバターの動作データとしてサーバに送信してよい。このような動作データは、該当のユーザのポーズおよび表情のうちの少なくとも1つに対するデータを含んでよい。他の実施形態として、動作データは、予め設定された多数の動作のうちから該当のユーザがコンピュータ装置200で選択した動作のデータを含んでもよい。また他の実施形態として、動作データは、コンピュータ装置200やウェブ上に保存済みのイメージや動画から抽出されてもよい。
【0039】
一方、アバターのポーズは、複数のボーンを含んで構成されてよい。この場合、動作データは、複数のボーンそれぞれのインデックス、複数のボーンそれぞれの3次元空間での回転情報、複数のボーンそれぞれの仮想空間での位置情報、および複数のボーンそれぞれの現在のトラッキング状態(tracking state)のうちの少なくとも1つの情報を含んでよい。コンピュータ装置200は、このような動作データを利用して、ユーザのポーズやユーザが希望するポーズをアバターのポーズに反映してよい。1つのフレームでのポーズや表情は静的であるが、多数のフレームでのポーズや表情の変化はアバターの動きに繋がる。さらに、動作データは、顔のブレンドシェイプ(face blendshape)技法に基づいて、人間の顔に対して予め定義された複数のポイントに対して算出される係数値を含んでよい。この場合、コンピュータ装置200は、このような動作データを利用して、ユーザの表情やユーザが希望する表情をアバターの表情に反映してよい。
【0040】
段階360で、コンピュータ装置200は、通信セッションを介して周辺アバターの動作データを受信してよい。一例として、コンピュータ装置200は、リアルタイム送信プロトコルを利用して、周辺アバターに対して生成される動作データをリアルタイムで受信してよい。カンファレンスのためのビデオ画面を生成するために、動作データはビデオのフレームごとに生成されてよい。例えば、10fps(frame per second)でカンファレンスのためのビデオを提供しようとする場合、1秒あたり10回の動作データが受信されてよい。
【0041】
段階370で、コンピュータ装置200は、周辺アバターのリソースおよび周辺アバターの動作データに基づいて周辺アバターを仮想空間上に表現してよい。アバターのリソースを利用して仮想空間上にアバターを表現するようになるが、リアルタイムで受信する動作データを利用してアバターの動作を制御することにより、参加者の動作がリアルタイムで反映されたアバターを仮想空間上に表現することが可能となる。
【0042】
一方、新たなアバターの登場やアバターの移動にともない、コンピュータ装置200の観点では、新たな周辺アバターの動作データを受信するようにもなる。この場合、コンピュータ装置200は、新たな周辺アバターのリソースをサーバに要請し、新たな周辺アバターのリソースをサーバから受信することにより、新たな周辺アバターを仮想空間上に表現することが可能となる。
【0043】
段階380で、コンピュータ装置200は、アバターおよび周辺アバターが表現された仮想空間を画面に表示してよい。したがって、カンファレンスの参加者は、自身のアバターが表現された仮想空間を利用しながらカンファレンスを進めることが可能となる。このとき、参加者のポーズや表情を含む動作、あるいは参加者が希望する動作をリアルタイムでアバターに適用することが可能となる。
【0044】
図4は、本発明の一実施形態における、サーバのカンファレンス処理方法の例を示した図である。本実施形態に係るカンファレンス処理方法は、サーバを実現するコンピュータ装置200によって実行されてよい。ここで、サーバは、クライアントプログラムがインストールされた多数のクライアント装置にカンファレンスサービスを提供する主体であってよい。また、クライアントプログラムは、上述したサービスのためのアプリケーションに対応してよい。このとき、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのコンピュータプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が
図4の方法に含まれる段階410~470を実行するようにコンピュータ装置200を制御してよい。
【0045】
段階410で、コンピュータ装置200は、複数のユーザが参加するカンファレンスのための通信セッションを設定してよい。一例として、カンファレンスサービスで提供されるユーザインタフェースを利用して任意のユーザがカンファレンスを開設した後、このカンファレンスに他のユーザを招待してよく、コンピュータ装置200は、該当の任意のユーザと招待された他のユーザを含む参加者に対してカンファレンスのための通信セッションを設定してよい。
【0046】
段階420で、コンピュータ装置200は、通信セッションまたは前記通信セッションとは別に設定される他の通信セッションを介して複数のユーザから受信される音声をミキシングして、複数のユーザに提供してよい。このとき、コンピュータ装置200は、特定のユーザに提供する音声をミキシングするときに、該当の特定のユーザの音声を除いた残りの音声をミキシングして、該当の特定ユーザに提供するミキシングされた音声を生成してよい。
【0047】
段階430で、コンピュータ装置200は、複数のユーザの端末それぞれから、カンファレンスのための仮想空間上に表現されるアバターの識別子およびアバターの仮想空間での座標情報を受信してよい。これにより、コンピュータ装置200は、該当のカンファレンスの参加者全員のアバターの位置を把握することが可能となる。
【0048】
段階440で、コンピュータ装置200は、座標情報に基づいて特定のアバターの周辺アバターを選定してよい。上述したように、コンピュータ装置200は、特定のアバターに対して、特定のアバターから予め設定された距離以内に存在するアバターを周辺アバターとして選定してよく、選定された周辺アバターのリソースを該当の特定のアバターに対応するユーザの端末に送信してよい。これは、1つのユーザの端末の観点では、カンファレンスの参加者全員のアバターを表現する必要がなく、画面に表示される可能性のあるアバターだけを表現すれば良いためである。
【0049】
段階450で、コンピュータ装置200は、選定された周辺アバターのリソースを特定のアバターに対応するユーザの端末に送信してよい。ここで、アバターのリソースは、該当のアバターを画面に表現するためのデータを含んでよい。したがって、該当のユーザの端末は、このようなリソースを利用して、選定された周辺アバターを仮想空間上に表現することが可能となる。
【0050】
段階460で、コンピュータ装置200は、複数のユーザの端末それぞれから、通信セッションを介してアバターの動作データを受信してよい。上述したように、ユーザの端末それぞれは、該当の端末が含むカメラで撮影されたイメージを分析してユーザの動作データを取得してよく、このようなユーザの動作データを対応するアバターの動作データとしてサーバに送信してよい。このような動作データは、該当のユーザのポーズおよび表情のうちの少なくとも1つに対するデータを含んでよい。他の実施形態として、動作データは、予め設定された多数の動作のうちから該当のユーザがコンピュータ装置200で選択する動作のデータを含んでもよい。また他の実施形態として、動作データは、コンピュータ装置200やウェブ上に保存済みのイメージや動画から抽出されてもよい。
【0051】
一方、アバターのポーズは、複数のボーンを含んで構成されてよい。この場合、動作データは、複数のボーンそれぞれのインデックス、複数のボーンそれぞれの3次元空間での回転情報、複数のボーンそれぞれの仮想空間での位置情報、および複数のボーンそれぞれの現在のトラッキング状態(tracking state)のうちの少なくとも1つの情報を含んでよい。また、動作データは、顔のブレンドシェイプ(faceblend shape)技法に基づいて、人間の顔に対して予め定義された複数のポイントに対して算出される係数値を含んでよい。
【0052】
段階470で、コンピュータ装置200は、特定のアバターに対応するユーザの端末に、通信セッションを介して選定された周辺アバターの動作データを送信してよい。この場合、ユーザの端末それぞれは、送信された動作データを利用して、該当のユーザのポーズおよび/または表情、または該当のユーザが希望するポーズおよび/または表情を周辺アバターに反映してよい。1つのフレームでのポーズや表情は静的であるが、多数のフレームでのポーズの変化はアバターの動きに繋がるようになる。このために、コンピュータ装置200は、段階460で、リアルタイム送信プロトコルを利用して、複数のユーザの端末それぞれから生成される動作データをリアルタイムで受信してよく、段階470で、リアルタイム送信プロトコルを利用して、選定された周辺アバターの動作データをユーザの端末に送信してよい。このような動作データのリアルタイム伝達により、アバターが参加する単なるカンファレンスサービスではなく、ユーザの動作がリアルタイムで反映されたアバターが参加するカンファレンスサービスを提供することが可能となる。
【0053】
一方、上述したように、新たなアバターの登場やアバターの移動にともない、ユーザの端末の観点では、新たな周辺アバターの動作データを受信するようにもなる。この場合、ユーザの端末は、新たな周辺アバターのリソースをサーバに要請してよい。例えば、コンピュータ装置200は、ユーザの端末が新たな周辺アバターの動作データを受信することにより、新たな周辺アバターの識別子を含むリソース要請をユーザの端末から受信してよい。この場合、コンピュータ装置200は、新たな周辺アバターの識別子に基づいて新たな周辺アバターのリソースを取得してよく、取得したリソースをユーザの端末に送信してよい。したがって、ユーザの端末は、新たな周辺アバターのリソースをサーバから受信することにより、新たな周辺アバターを仮想空間上に表現することが可能となる。
【0054】
図5~8は、本発明の一実施形態における、アバター表現過程の例を示したフロー図である。
図5~8は、ユーザ1(510)、ユーザ2(520)、AS(Application Server)530、VMX(Voice Mixer)540、MMX(Motion Mixer)550、およびCM(Character Manager)560を示している。
【0055】
ここで、ユーザ1(510)およびユーザ2(520)それぞれは、実質的には、ユーザがサービスの利用のために使用する物理的な装置である端末であってよく、このような端末は、
図2を参照しながら説明したコンピュータ装置200の形態で実現されてよい。例えば、ユーザ1(510)は、
図2を参照しながら説明したコンピュータ装置200の形態で実現されてよく、カンファレンスサービスの提供を受けるためにコンピュータ装置200においてインストールされて実行されたアプリケーションの制御にしたがって、コンピュータ装置200が含むプロセッサ220によってカンファレンス処理方法のための動作を実行してよい。このようなアプリケーションを通じてカンファレンスサービスの提供を受けるユーザ1(510)およびユーザ2(520)は、カンファレンスサービスのクライアントであってよい。
【0056】
また、AS530、VMX540、MMX550、およびCM560はそれぞれ、個別の物理的な装置に実現されるか1つの物理的な装置に実現されるソフトウェアモジュールであってよい。AS530、VMX540、MMX550、および/またはCM560が実現される物理的な装置も、
図2を参照しながら説明したコンピュータ装置200の形態で実現されてよい。このようなAS530、VMX540、MMX550、およびCM560は、カンファレンスサービスを提供するためのサーバシステムの少なくとも一部であってよい。
【0057】
図5を参照すると、準備過程570は、アバター情報送信過程571、リソース要請過程572、およびリソース伝達過程573、574を含んでよい。アバター情報送信過程571で、ユーザ1(510)は、アバターの識別子およびアバターの仮想空間上での座標情報をAS530に伝達してよい。
【0058】
リソース要請過程572で、AS530は、CM560にアバターの識別子と座標情報を伝達して周辺アバターのリソースを要請してよい。CM560は、カンファレンスに参加するユーザ(本実施形態では、ユーザ1(510)およびユーザ2(520))それぞれから伝達されたアバターの識別子とアバターの座標情報を記録することにより、仮想空間内に表現する全体アバターの座標情報を取得してよい。このとき、CM560は、ユーザ1(510)のアバターの座標情報を基準として予め設定された距離以内に位置するアバターを周辺アバターとして選定してよく、選定された周辺アバターのリソースを確認してよい。
【0059】
リソース伝達過程573、574で、CM560は、AS530を経て周辺アバターのリソースをユーザ1(510)に伝達してよい。したがって、ユーザ1(510)は、自身のアバターの周辺に位置する周辺アバターを表現することが可能となる。
【0060】
図5では、ユーザ1(510)に対して準備過程570が実行される例を示しているが、このような準備過程570は、カンファレンスの参加者それぞれに対して実行されてよい。
【0061】
図6を参照すると、音声通信過程600は、音声送信過程610、620および音声受信過程630、640を含んでよい。このような音声通信過程400は、参加者同士が音声対話を行うために選択的に活用されてよい。言い換えれば、参加者同士の音声対話を提供しない場合には省略されてよい。
【0062】
音声送信過程610、620で、ユーザ1(610)およびユーザ2(620)は、VMX540に各自の音声を送信してよい。音声の送信は、カンファレンスの参加者から音声が認識された場合を前提とすることはもちろんである。一例として、ユーザ2(620)から音声が認識されなければ、ユーザ2(620)からVMX540への音声送信過程620は省略されてよい。
【0063】
音声受信過程630、640で、ユーザ1(610)およびユーザ2(620)は、ミキシングされた音声をVMX540から受信してよい。ここで、ミキシングされた音声とは、自身の音声を除いた残りの音声がミキシングされたオーディオを意味してよい。例えば、ユーザA、B、C、D、Eが同時にVMX540に音声を送信した場合、VMX540は、ユーザAには、ユーザAを除いたユーザB、C、D、Eの音声がミキシングされたオーディオを送信してよい。
【0064】
上述したように、このような音声通信過程600は、参加者同士が音声対話を行うために選択的に活用されてよい。また、以下で説明する
図7のビデオ通信過程700と
図8の新規アバター処理過程800は、このような音声通信過程600と並列して実行されてよい。
【0065】
図7を参照すると、ビデオ通信過程800は、動作データ送信過程810、820および動作データ受信過程830、840を含んでよい。
【0066】
動作データ送信過程810、820で、ユーザ1(510)およびユーザ2(520)は、自身の動作データをMMX550に送信してよい。このような動作データは、ユーザ1(510)およびユーザ2(520)それぞれのカメラで撮影されたイメージから取得されてよい。このような動作データは、該当のユーザのポーズおよび表情のうちの少なくとも1つに対するデータを含んでよい。他の実施形態として、動作データは、予め設定された多数の動作のうちから該当のユーザが選択した動作のデータを含んでもよい。また他の実施形態として、動作データは、該当のユーザの端末やウェブ上に保存済みのイメージや動画から抽出されてもよい。
【0067】
動作データ受信過程830、840で、ユーザ1(510)およびユーザ2(520)は、周辺アバターの動作データをMMX550から受信してよい。例えば、ユーザ1(510)のアバターの識別子がCID1であり、ユーザ2(520)のアバターの識別子がCID2である場合、ユーザ1(510)はCID1に対して選定された周辺アバターの動作データを受信してよく、ユーザ2(520)はCID2に対して選定された周辺アバターの動作データを受信してよい。
【0068】
このとき、ユーザ1(510)およびユーザ2(520)それぞれは、周辺アバターのリソースと動作データに基づいて、自身のアバターはもちろん、周辺アバターまでカンファレンスのための仮想空間に表現することが可能となる。これだけでなく、動的データを利用して、カンファレンスの参加者の動作(ポーズおよび/または表情)を対応するアバターにリアルタイムで適用することが可能となる。このために、上述したように、動作データの送信および受信過程はRTSP(Real-Time Streaming Protocol)を利用して実行されてよく、動作データはRTSPのためにフレーム化されてよい。
【0069】
図8を参照すると、新規アバター処理過程800は、新規アバター探知過程810、リソース要請過程820、830、およびリソース伝達過程840、850を含んでよい。
【0070】
新規アバター探知過程810で、ユーザ1(510)は、周辺アバターの動作データを受信するにあたり、ユーザ1(510)が保有しているアバターの識別子に基づいて新たな周辺アバターの登場を探知してよい。
【0071】
リソース要請過程820、830で、ユーザ1(510)は、新たな周辺アバターのリソースをAS530に要請してよい。このようなリソースの要請は、AS530からCM560に伝達されてよい。
【0072】
リソース伝達過程840、850で、CM560は、要請された新たな周辺アバターのリソースをAS530からユーザ1(510)に伝達してよい。
【0073】
このような新規アバター処理過程800により、ユーザ1(510)は、周辺アバターとして新たに登場するアバターを表現することが可能となる。なお、
図8では、ユーザ1(510)に対して新規アバター処理過程800が実行される例を説明しているが、このような新規アバター処理過程800は、新たな周辺アバターを探知するカンファレンスのすべてのユーザに対して実行されてよい。
【0074】
以下の表1は、動作データとしてポーズを表現するためのデータ構造の例を示しており、
図9は、本発明の一実施形態における、アバターのボーン構造の例を示した図である。アバターが表現されるビデオの1つのフレームの観点では、該当のフレームでのアバターのポーズが表現されさえすれば、このようなフレームの連結によって繋がるアバターのポーズによってアバターの動作を実現することができる。
【0075】
【0076】
このように、アバターのポーズは、複数のボーンを含んで構成されてよく、動作データは、複数のボーンそれぞれのインデックス、複数のボーンそれぞれの3次元空間での回転情報、複数のボーンそれぞれの仮想空間での位置情報、および複数のボーンそれぞれの現在のトラッキング状態(tracking state)のうちの少なくとも1つの情報を含んでよい。
【0077】
例えば、10fps(frame per second)で動作データを送る場合、1秒あたり10回の動作データが送信されるようになるが、このとき、それぞれの動作データごとに、ボーンインデックス、ボーンそれぞれの回転情報、ボーンそれぞれの位置情報、およびボーンそれぞれのトラッキング状態に関する情報が含まれてよい。
図8に示した実施形態のように、11本のボーンで構成されたアバターの場合、一度に送信される動作データには、11個のボーンインデックス、11個の回転情報、11個の位置情報、および11個のトラッキング状態が含まれてよい。
【0078】
一方、上述したように、動作データは、ユーザのポーズだけでなく、アバターの表情に対するデータをさらに含んでよい。このために、動作データは、顔のブレンドシェイプ(face blendshape)技法に基づいて、人間の顔に対して予め定義された複数のポイントに対して算出される係数値を含んでよい。例えば、複数のポイントとして52個の顔ポイントが定義されてよく、係数値は0.0から1.0までの値を有するように算出されてよい。例えば、「目(eye)」というポイントに対して、0.0の値は目を閉じた様子、0.1の値は目を大きく開いた様子にそれぞれ対応してよい。このような表情に対する動作データも、設定されたfpsに応じて送信回数が決定されてよい。
【0079】
図10は、本発明の一実施形態における、アバターを利用して実施されるカンファレンスの例を示した図である。
図10は、カンファレンス画面1000の例を示している。カンファレンスに参加する参加者全員のアバターがカンファレンス画面1000に表示される必要はなく、該当のカンファレンス画面1000を表示するようになる参加者のアバター1010の位置に基づいて設定された周辺アバター1020、1030、1040に対応する仮想空間の少なくとも一部分がカンファレンス画面1000に表示されてよい。このとき、アバター1010、1020、1030、1040には、リアルタイムでサーバに伝達されるアバター1010、1020、1030、1040それぞれの動作データに基づいて、参加者のポーズや表情を含む動作または参加者が希望する動作がリアルタイムで適用されてよい。言い換えれば、カンファレンスのための仮想空間上に単にアバターが表示されるのではなく、ユーザの動作がリアルタイムで適用されたカンファレンスを実現することが可能となる。
【0080】
このように、本発明の実施形態によると、仮想空間上で参加者の動作を模倣する参加者のアバターを参加者が共有する仮想空間上に表現することができ、このような仮想空間を利用してカンファレンスを進めることができる。
【0081】
上述したシステムまたは装置は、ハードウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(Arithmetic Logic Unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(Field Programmable Gate Array)、PLU(Programmable Logic Unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者であれば、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0082】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、望む動作をするように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置(virtual equipment)コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【0083】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。前記コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピーディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体も挙げられる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
【0084】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0085】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。