(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-08-15
(45)【発行日】2023-08-23
(54)【発明の名称】プログラム
(51)【国際特許分類】
G06T 19/00 20110101AFI20230816BHJP
G06F 3/01 20060101ALI20230816BHJP
G06Q 30/0601 20230101ALI20230816BHJP
【FI】
G06T19/00 300A
G06F3/01 510
G06Q30/0601 340
(21)【出願番号】P 2023013041
(22)【出願日】2023-01-31
【審査請求日】2023-02-10
【早期審査対象出願】
(73)【特許権者】
【識別番号】509070463
【氏名又は名称】株式会社コロプラ
(74)【代理人】
【識別番号】110000442
【氏名又は名称】弁理士法人武和国際特許事務所
(72)【発明者】
【氏名】梶山 万悠子
(72)【発明者】
【氏名】山崎 聡士
【審査官】岡本 俊威
(56)【参考文献】
【文献】特開2022-187812(JP,A)
【文献】凸版印刷とb8ta Japan、バーチャル空間上でショッピングを可能にする 「IoA Shopping TM」を開発、「Virtual b8ta」で実証実験を開始,ニュースルーム[online],日本,凸版印刷株式会社,2021年03月22日,https://www.toppan.co.jp/news/2021/03/newsrelease210322_2.html
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06F 3/01
G06Q 30/06 -30/0601
(57)【特許請求の範囲】
【請求項1】
コンピュータを、
現実空間に対応する仮想空間を定義する仮想空間定義手段と、
前記現実空間に設置された検知装置の検知結果に基づく数のオブジェクトを、前記仮想空間内に配置する配置手段と
、
仮想カメラで前記仮想空間内を撮像した仮想空間画像を生成する画像生成手段と、
前記仮想空間画像を第1ユーザ端末に表示させる画像表示手段として機能さ
せ、
前記画像生成手段は、前記第1ユーザ端末に対して実行された前記オブジェクトの選択操作に基づいて、前記検知装置によって検知された属性に対応付けて予め登録されたメッセージを、選択された前記オブジェクトを通じて出力する、プログラム。
【請求項2】
請求項1に記載のプログラムにおいて、
前記配置手段は、前記検知装置によって検知された属性に対応する態様の前記オブジェクトを、前記仮想空間内に配置する、プログラム。
【請求項3】
請求項1に記載のプログラムにおいて、
前記配置手段は、前記検知装置によって検知された人に対応する非ユーザキャラクタを、前記オブジェクトとして前記仮想空間内に配置する、プログラム。
【請求項4】
請求項
3に記載のプログラムにおいて、
前記画像生成手段は、
前記第1ユーザ端末に対して実行された表示操作に基づいて、前記仮想カメラの画角に含まれる前記非ユーザキャラクタを含む前記仮想空間画像を生成し、
前記第1ユーザ端末に対して実行された非表示操作に基づいて、前記仮想カメラの画角に含まれる前記非ユーザキャラクタを含まない前記仮想空間画像を生成する、プログラム。
【請求項5】
コンピュータを、
現実空間に対応する仮想空間を定義する仮想空間定義手段と、
前記現実空間に設置された検知装置の検知結果に基づく数のオブジェクトを、前記仮想空間内に配置する配置手段と、
第1ユーザ端末に対して実行された移動操作に基づいて、前記仮想空間内で仮想カメラを移動させるカメラ移動手段と、
前記仮想カメラで前記仮想空間内を撮像した仮想空間画像を生成する画像生成手段と、
前記仮想空間画像を前記第1ユーザ端末に表示させる画像表示手段として機能さ
せ、
前記配置手段は、
前記検知装置によって検知された人に対応する非ユーザキャラクタを、前記オブジェクトとして前記仮想空間内に配置し、
第2ユーザ端末を通じて操作されるユーザキャラクタを前記仮想空間内に配置し、
前記画像生成手段は、
前記仮想カメラの画角に含まれる前記ユーザキャラクタ及び前記非ユーザキャラクタのうち、前記仮想カメラからの距離が閾値距離未満の前記ユーザキャラクタ及び前記非ユーザキャラクタを、異なる表示態様で前記仮想空間画像に含め、
前記仮想カメラからの距離が前記閾値距離以上の前記ユーザキャラクタ及び前記非ユーザキャラクタを、共通の表示態様で前記仮想空間画像に含める、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラムに関する。
【背景技術】
【0002】
従来より、現実世界における所定の場所(例えば、街、商業施設、商店、イベント会場、テーマパーク、公園など)に対応するコンテンツを、当該場所(以下、「現実空間」と表記する。)にいないユーザに提供する、所謂VR技術が知られている(例えば、特許文献1)。
【0003】
より詳細には、現実空間に対応する仮想空間から切り取った画像をユーザ端末に表示させ、ユーザ端末に対する移動操作に基づいて表示される画像の視点を移動する。これにより、ユーザ端末を操作するユーザは、現実空間に実際に行かなくても、現実空間に行ったかのような体験をすることができる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、仮想空間内での疑似体験をしたユーザに、現実空間に実際に行くモチベーションを与えるのが難しいという課題がある。そして、VR技術の発達に伴って仮想空間への没入感が高まるほど、前述の課題も顕著になる。
【0006】
本発明は、上記の事情に鑑みてなされたものであり、その目的は、仮想空間内での疑似体験をしているユーザに、現実空間に実際に行くモチベーションを与えることができるプログラムを提供することにある。
【課題を解決するための手段】
【0007】
前記課題を解決するため、本発明に係るプログラムは、コンピュータを、現実空間に対応する仮想空間を定義する仮想空間定義手段と、前記現実空間に設置された検知装置の検知結果に基づく数のオブジェクトを、前記仮想空間内に配置する配置手段と、仮想カメラで前記仮想空間内を撮像した仮想空間画像を生成する画像生成手段と、前記仮想空間画像を第1ユーザ端末に表示させる画像表示手段として機能させ、前記画像生成手段は、前記第1ユーザ端末に対して実行された前記オブジェクトの選択操作に基づいて、前記検知装置によって検知された属性に対応付けて予め登録されたメッセージを、選択された前記オブジェクトを通じて出力する。
【発明の効果】
【0008】
本発明によれば、仮想空間内での疑似体験をしているユーザに、現実空間に実際に行くモチベーションを与えることができる。
【図面の簡単な説明】
【0009】
【
図1】本実施形態に係るシステムの概要を示す図である。
【
図3】ユーザ端末の一例であるHMDセットのハードウェア構成図である。
【
図4】ユーザ端末の他の例であるタブレット端末のハードウェア構成図である。
【
図6】仮想空間において視界領域をX方向から見たYZ断面を表す図である。
【
図7】仮想空間において視界領域をY方向から見たXZ断面を表す図である。
【
図8】サーバ及びユーザ端末の機能ブロック図である。
【
図9】実施例1に係るサーバの処理を示すフローチャートである。
【
図10】実施例1に係る第1ユーザ端末の処理を示すフローチャートである。
【
図11】仮想空間画像生成&表示処理のフローチャートである。
【
図12】ステップS21、S22に対応する仮想空間の概念図である。
【
図13】ステップS47に対応する仮想空間の概念図及び仮想空間画像を示す図である。
【
図14】ステップS48に対応する仮想空間の概念図及び仮想空間画像を示す図である。
【
図15】ステップS45に対応する仮想空間の概念図及び仮想空間画像を示す図である。
【
図16】ステップS43でNoの場合に対応する仮想空間の概念図及び仮想空間画像を示す図である。
【
図17】人の属性とメッセージとを対応付けて保持するメッセージテーブルの例である。
【
図18】実施例2に係る第2ユーザ端末の処理を示すフローチャートである。
【
図20】実施例2に係る第1ユーザ端末の処理を示すフローチャートである。
【
図21】操作可能状態の他人アバターを選択した際の仮想空間画像を示す図である。
【
図22】操作不能状態の他人アバター及びモブキャラを選択した際の仮想空間画像を示す図である。
【発明を実施するための形態】
【0010】
以下、実施形態に係るシステム1を図面に基づいて説明する。なお、以下に記載する本発明の実施形態は、本発明を具体化する際の一例を示すものであって、本発明の範囲を実施形態の記載の範囲に限定するものではない。従って、本発明は、実施形態に種々の変更を加えて実施することができる。
【0011】
[システム1の概要]
図1は、本実施形態に係るシステム1の概要を示す図である。
図1に示すように、システム1は、サーバ10と、ユーザ端末20A、20B、20C(以下、これらを総称して、「ユーザ端末20」と表記することがある。)とを主に備える。なお、
図1には3つのユーザ端末20が図示されているが、システム1に含まれるユーザ端末20の例はこれに限定されない。サーバ10及びユーザ端末20は、通信ネットワーク2を介して相互通信可能に接続されている。通信ネットワーク2の具体例は特に限定されないが、例えば、インターネット、移動体通信システム(例えば、4G、5Gなど)、Wi-Fi(登録商標)などの無線ネットワーク、またはこれらの組み合わせで構成される。
【0012】
本実施形態に係るシステム1は、サーバ10が提供する共通の仮想空間を、複数のユーザ端末20A~20Cそれぞれのユーザに体験させるためのシステムである。より詳細には、ユーザ端末20は、ユーザに関連付けられたユーザキャラクタ(以下、「アバター」と表記することがある。)を仮想空間に配置し、予め設定された視点から仮想空間を見た画像をユーザ端末20に表示させる。
【0013】
また、ユーザ端末20は、操作装置に対するユーザの操作に連動して、仮想空間内でアバターを動作させる。アバターの動作とは、例えば、仮想空間内で移動すること、身体の各部を動かすこと、姿勢を変えること、顔の表情を変化させること、発話すること、仮想空間内に配置されたオブジェクトを動かすことなどを含む。
【0014】
さらに、ユーザ端末20は、アバターの動作やステータスの変化を示すアバターデータを、通信ネットワーク2を通じてサーバ10に送信する。サーバ10は、ユーザ端末20から受信したアバターデータを、通信ネットワーク2を通じて他のユーザ端末20に送信する。そして、ユーザ端末20は、サーバ10から受信したアバターデータに基づいて、仮想空間内の対応するアバターの動作やステータスを更新する。
【0015】
また、本実施形態に係るシステム1では、現実空間に対応する仮想空間を提供する。すなわち、本実施形態に係る仮想空間は、現実空間を模した空間である。但し、システム1で提供される仮想空間は、現実空間と完全に一致している必要はなく、適宜デフォルメされていてもよい。現実空間とは、例えば、現実に存在する街、商業施設、商店、テーマパーク、イベント会場、公園、駅などを指す。
【0016】
さらに、本実施形態に係るシステム1(サーバ10)は、現実空間に設置された検知装置3と通信ネットワーク2を通じて通信可能に構成されている。検知装置3は、現実空間内の人を検知する装置である。そして、検知装置3は、検知結果を示す検知データを、通信ネットワーク2を通じてサーバ10に送信する。なお、システム1に接続される検知装置3の種類は1種類に限定されず、複数種類が組み合わせられてもよい。
【0017】
一例として、検知装置3は、現実空間を上方から俯瞰して撮像するカメラ(定点カメラ)でもよい。この場合の検知装置3は、現実空間の俯瞰映像を検知データとしてサーバ10に送信する。他の例として、検知装置3は、商業施設、商店、テーマパーク、イベント会場に入場する人の顔を撮像するカメラ(例えば、表面温度を測定する装置)でもよい。この場合の検知装置3は、人の顔の画像を検知データとしてサーバ10に送信する。さらに他の例として、検知装置3は、テーマパーク、イベント会場、駅に入場する改札機でもよい。この場合の検知装置3は、改札機に挿入されたチケットの購入情報(例えば、大人または子供の区別、チケットの種類、購入金額など)及び改札機に挿入された時刻などを検知データとしてサーバ10に送信する。但し、検知データの具体例は、これらに限定されない。
【0018】
そして、本実施形態に係るサーバ10は、検知装置3から受信した検知データを分析して、現実空間に存在する人の数、位置、及び属性を特定する。人の属性とは、例えば、性別、年齢(大人または子供の区別)、姿勢(例えば、立っている、歩いている、走っている)などを指す。そして、サーバ10は、特定した人に対応する非ユーザキャラクタ(以下、「モブキャラ」と表記する。)を仮想空間に配置する。より詳細には、サーバ10は、モブキャラの形状や配置を示すモブキャラデータを、通信ネットワーク2を通じてユーザ端末20に送信する。そして、ユーザ端末20は、サーバ10から受信したモブキャラデータに基づいて、仮想区間内にモブキャラを配置する。これにより、ユーザ端末20にモブキャラが表示される。
【0019】
前述したように、本実施形態に係る仮想空間には、アバターと、モブキャラとが配置される。アバター及びモブキャラは、人の形をしている点で共通する。アバターは、ユーザ端末20のユーザによって外観(例えば、顔の形、髪型、服装など)が決定される。また、アバターは、ユーザ端末20を通じたユーザの操作に連動して、仮想空間内で動作する。これに対して、モブキャラは、サーバ10によって外観が決定される。一例として、サーバ10は、予め登録されたモブキャラの候補の中から、検知装置3で検知した属性に合致するモブキャラを選択してもよい。他の例として、サーバ10は、過去に仮想空間にいたアバターのログから、検知装置3で検知した属性に合致するモブキャラを選択してもよい。また、モブキャラは、サーバ10によって決定された方法で動作してもよいし、停止していてもよい。
【0020】
[サーバ10の構成]
図2は、サーバ10のハードウェア構成図である。サーバ10は、例えば、ワークステーション、またはパーソナルコンピュータなどの汎用コンピュータで実現される。
図2に示すように、サーバ10は、プロセッサ11と、メモリ12と、ストレージ13と、入出力インタフェース14と、通信インタフェース15とを主に備える。サーバ10の各構成要素は、通信バス19に接続されている。
【0021】
プロセッサ11は、メモリ12またはストレージ13に格納されているサーバプログラム13Pに含まれる一連の命令を実行することによって、後述する処理を実現する。プロセッサ11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、MPU(Micro Processor Unit)、FPGA(Field-Programmable Gate Array)、その他のデバイスとして実現される。
【0022】
メモリ12は、サーバプログラム13P及びデータを一時的に保持する。サーバプログラム13Pは、例えば、ストレージ13からロードされる。データは、サーバ10に入力されたデータと、プロセッサ11によって生成されたデータとを含む。例えば、メモリ12は、RAM(Random Access Memory)、その他の揮発メモリとして実現される。
【0023】
ストレージ13は、サーバプログラム13P及びデータを永続的に保持する。ストレージ13は、例えば、ROM(Read-Only Memory)、ハードディスク装置、フラッシュメモリ、その他の不揮発記憶装置として実現される。また、ストレージ13は、メモリカードのように着脱可能な記憶装置として実現されてもよい。さらに他の例として、ストレージ13は、サーバ10に内蔵されることに代えて、外部記憶装置としてサーバ10に接続されていてもよい。このような構成によれば、例えば、アミューズメント施設のように複数のユーザ端末20が使用される場面において、サーバプログラム13Pやデータの更新を一括して行うことが可能になる。
【0024】
入出力インタフェース14は、モニタ、入力装置(例えば、キーボード、ポインティングデバイス)、外部記憶装置、スピーカ、カメラ、マイク、センサ等の外部装置をサーバ10に接続するためのインタフェースである。プロセッサ11は、入出力インタフェース14を通じて外部装置と通信する。入出力インタフェース14は、例えば、USB(Universal Serial Bus)、DVI(Digital Visual Interface)、HDMI(High-Definition Multimedia Interface、登録商標)、その他の端子で用いて実現される。
【0025】
通信インタフェース15は、通信ネットワーク2に接続されている他の装置(例えば、検知装置3、ユーザ端末20)と通信する。通信インタフェース15は、例えば、LAN(Local Area Network)など有線通信インタフェース、Wi-Fi(Wireless Fidelity)、Bluetooth(登録商標)、NFC(Near Field Communication)などの無線通信インタフェースとして実現される。
【0026】
[ユーザ端末20の構成]
図3は、ユーザ端末20の一例であるHMD(Head Mounted Display)セットのハードウェア構成図である。
図4は、ユーザ端末20の他の例であるタブレット端末のハードウェア構成図である。ユーザ端末20は、例えば、
図3に示すHMDセット、
図4に示すタブレット端末の他、スマートフォン、フィーチャーフォン、ラップトップ型コンピュータ、デスクトップコンピュータなどとして実現される。
【0027】
図3に示すように、HMDセットとして実現されるユーザ端末20は、プロセッサ21と、メモリ22と、ストレージ23と、入出力インタフェース24と、通信インタフェース25とを有するコンピュータ26を備える。コンピュータ26の各構成要素は、通信バス29に接続されている。プロセッサ21、メモリ22、ストレージ23、入出力インタフェース24、通信インタフェース25、通信バス29の基本的な構成は、
図2に示すプロセッサ11、メモリ12、ストレージ13、入出力インタフェース14、通信インタフェース15、通信バス19と共通する。また、ストレージ23は、端末プログラム23Pを保持する。
【0028】
また、HMDセットとして実現されるユーザ端末20は、コンピュータ26の外部装置として、HMD30と、動きセンサ41と、操作装置42とを備える。HMD30、動きセンサ41、及び操作装置42は、入出力インタフェース24を通じてプロセッサ21に接続されている。
【0029】
HMD30は、ユーザの頭部に装着されて、仮想空間をユーザに提供する。より詳細には、HMD30は、モニタを備える所謂ヘッドマウントディスプレイと、スマートフォンその他のモニタを有する端末を装着可能なヘッドマウント機器のいずれをも含み得る。HMD30は、モニタ31(表示装置)と、注視センサ32と、カメラ33、34と、マイク35と、スピーカ36とを主に備える。
【0030】
一例として、モニタ31は、非透過型の表示装置として実現される。モニタ31は、例えば、ユーザの両目の前方に位置するようにHMD30の本体に配置されている。非透過型のモニタ31は、例えば、液晶モニタ、有機EL(Electro Luminescence)モニタとして実現される。
【0031】
他の例として、モニタ31は、透過型の表示装置として実現される。この場合のHMD30は、ユーザの目を覆う密閉型ではなく、メガネ型のような開放型となる。モニタ31は、仮想空間を構成する画像の一部と、現実空間とを同時に表示する構成を含んでいてもよい。一例として、透過型のモニタ31は、HMD30に搭載されたカメラで撮像した現実空間の画像を表示してもよい。他の例として、透過型のモニタ31は、透過率を調整可能に構成されていてもよい。そして、透過型のモニタ31は、表示領域の一部の透過率を高く設定して、現実空間を直接視認できるようにしてもよい。
【0032】
また、モニタ31は、ユーザに3次元画像を視認させるために、以下の構成を採用してもよい。一例として、モニタ31は、右目用の画像を表示するためのサブモニタと、左目用の画像を表示するためのサブモニタとを含んでもよい。他の例として、モニタ31は、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合のモニタ31は、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。
【0033】
注視センサ32は、ユーザの右目及び左目の視線が向けられる方向を検知する。つまり、注視センサ32は、ユーザの視線を検知する。注視センサ32は、例えば、アイトラッキング機能を有するセンサにより実現される。注視センサ32は、右目用のセンサ及び左目用のセンサを含むことが好ましい。注視センサ32は、ユーザの右目及び左目に赤外光を照射するとともに、照射光に対する角膜及び虹彩からの反射光を受けることにより各眼球の回転角を検知する。そして、注視センサ32は、検知した各回転角に基づいて、ユーザの視線を特定する。
【0034】
カメラ33は、HMD30を装着したユーザの顔の上部(より詳細には、ユーザの目、眉など)を撮像する。カメラ34は、HMD30を装着したユーザの顔の下部(より詳細には、ユーザの鼻、口など)を撮像する。例えば、HMD30の筐体のうち、ユーザに対面する側にカメラ33が取り付けられ、ユーザと対面する側と反対側にカメラ34が取り付けられる。なお、HMD30は、2台のカメラ33、34に代えて、ユーザの顔全体を撮像する1台のカメラを備えてもよい。
【0035】
マイク35は、ユーザの発話を音声信号(電気信号)に変換してコンピュータ26に出力する。スピーカ36は、コンピュータ26から出力された音声信号を音声に変換してユーザに出力する。なお、HMD30は、スピーカ36に替えてイヤホンを含み得る。
【0036】
動きセンサ41は、HMD30の動きを検出するためのポジショントラッキング機能を有する。一例として、動きセンサ41は、HMD30が発する複数の赤外線を読み取って、現実空間内におけるHMD30の位置及び傾きを検出してもよい。他の例として、動きセンサ41は、カメラで実現されてもよい。この場合の動きセンサ41は、カメラから出力されるHMD30の画像情報を解析して、HMD30の位置及び傾きを検出する。さらに他の例として、動きセンサ41は、角速度センサ、地磁気センサ、あるいは加速度センサで実現されてもよい。
【0037】
操作装置42は、有線または無線によりコンピュータ26に接続されている。操作装置42は、ユーザによるコンピュータ26に対する命令の入力(操作)を受け付ける。一例として、操作装置42は、ユーザが把持した状態で操作する、所謂コントローラでもよい。他の例として、操作装置42は、ユーザの身体あるいは衣類の一部に装着可能に構成され、モーションセンサによってユーザの動きを検知するものでもよい。但し、操作装置42の具体例はこれらに限定されず、キーボード、ポインティングデバイス、タッチパネルなどでもよい。
【0038】
図4に示すように、タブレット端末として実現されるユーザ端末20は、プロセッサ21と、メモリ22と、ストレージ23と、通信インタフェース25と、モニタ31と、カメラ33、34と、マイク35と、スピーカ36と、動きセンサ41と、操作装置42とを主に備える。タブレット端末の各構成要素は、通信バス29に接続されている。プロセッサ21、メモリ22、ストレージ23、通信インタフェース25、モニタ31、カメラ33、34、マイク35、スピーカ36、動きセンサ41、操作装置42の基本的な構成は、HMDセットの場合と共通するので、以下、タブレット端末に特有の構成を説明する。
【0039】
モニタ31は、平板状の筐体の表面に設けられている。カメラ33は、平板状の筐体の表面に取り付けられて、モニタ31を視認するユーザの顔を撮像する、所謂インカメラである。カメラ34は、平板状の筐体の裏面(モニタ31と反対側の面)に取り付けられて、周囲を撮像する、所謂アウトカメラである。動きセンサ41は、筐体の動き(例えば、互いに直交する3軸周りの回転)を検知する。タブレット端末に好適な操作装置42としては、例えば、モニタ31に重畳されて、ユーザによる各種タッチ操作(例えば、タップ、スライド、フリック、ピンチイン、ピンチアウトなど)を受け付けるタッチパネルである。
【0040】
[仮想空間90の概要]
図5は、仮想空間90の一態様を概念的に表す図である。
図6は、仮想空間90において視界領域94をX方向から見たYZ断面を表す図である。
図7は、仮想空間90において視界領域94をY方向から見たXZ断面を表す図である。
【0041】
図5に示すように、仮想空間90は、中心Cの360度方向の全体を覆う全天球状の構造を有する。
図5では説明を複雑にしないために、仮想空間90の上半分の天球が例示されている。仮想空間90では各メッシュが規定される。各メッシュの位置は、仮想空間90に規定されるグローバル座標系であるXYZ座標系における座標値として予め規定されている。仮想空間90に展開可能なパノラマ画像91(静止画、動画等)を構成する各部分画像は、仮想空間90において対応する各メッシュにそれぞれ対応付けられる。
【0042】
例えば、仮想空間90では、中心Cを原点とするXYZ座標系が規定される。XYZ座標系は、例えば、実座標系に平行である。XYZ座標系における水平方向、鉛直方向(上下方向)、及び前後方向は、それぞれX軸、Y軸、Z軸として規定される。したがって、XYZ座標系のX軸(水平方向)が実座標系のx軸と平行であり、XYZ座標系のY軸(鉛直方向)が実座標系のy軸と平行であり、XYZ座標系のZ軸(前後方向)が実座標系のz軸と平行である。
【0043】
仮想空間90には、ユーザ端末20に対応付けられた仮想カメラ92が配置される。仮想空間90内における仮想カメラ92の位置は、仮想空間90内におけるユーザの視点に相当する。また、仮想カメラ92の向きは、仮想空間90におけるユーザの視線(基準視線93)に相当する。そして、プロセッサ21は、仮想カメラ92の位置と向きとに基づいて、仮想空間90における視界領域94(仮想カメラ92の画角)を規定する。
【0044】
図6に示すように、視界領域94は、YZ断面において領域95を含む。領域95は、仮想空間90内で基準視線93を含む鉛直断面(YZ断面)において、基準視線93を中心とする極角αの範囲である。
図7に示すように、視界領域94は、XZ断面において領域96を含む。領域96は、仮想空間90内で基準視線93を含む水平断面(XZ断面)において、基準視線93を中心とする方位角βの範囲である。
【0045】
プロセッサ21は、仮想空間90に展開されたパノラマ画像91のうち、視界領域94に含まれる部分画像を、仮想カメラ92が撮像した仮想空間画像97として生成(抽出)する。そして、プロセッサ21は、生成した仮想空間画像97をモニタ31に表示させる。すなわち、視界領域94は、仮想空間90内におけるユーザの視界に相当する。さらに、仮想空間90内で仮想カメラ92の位置及び向きの変化に追従して視界領域94が移動し、モニタ31に表示される仮想空間画像97が更新される。すなわち、ユーザの視界が移動する。
【0046】
例えば、プロセッサ21は、操作装置42で受け付けたユーザの操作に連動して、仮想空間90内で仮想カメラ92を移動させる。また、プロセッサ21は、動きセンサ41で検知されたユーザ端末20の動き(例えば、互いに直交する3軸周りの回転)に連動して、仮想カメラ92の向き(すなわち、基準視線93)を変化させる。さらに、プロセッサ21は、位置及び向きが変化した後の仮想カメラ92で撮像した仮想空間画像97をモニタ31に表示させる。
【0047】
[サーバ10及びユーザ端末20の機能ブロック図]
図8は、サーバ10及びユーザ端末20の機能ブロック図である。
図8に示すように、メモリ12にロードされたサーバプログラム13Pは、サーバ10を、アバター同期手段110、人抽出手段120、モブキャラ生成手段130として機能させる。また、メモリ22にロードされた端末プログラム23Pは、ユーザ端末20(コンピュータ26)を、仮想空間定義手段210、配置手段220、カメラ移動手段230、画像生成手段240、画像表示手段250として機能させる。
【0048】
アバター同期手段110は、ユーザ端末20の1つから通信ネットワーク2を通じて受信したアバターデータを、他のユーザ端末20に送信(中継)する。これにより、全てのユーザ端末20A~20Cは、同一のアバターデータを保持する。その結果、全てのユーザ端末20A~20Cそれぞれで定義される仮想空間90において、同一の位置に同一のアバターが配置される。すなわち、全てのユーザ端末20A~20Cにおいて、アバターが同期される。
【0049】
人抽出手段120は、通信ネットワーク2を通じて検知装置3から検知データを受信する。次に、人抽出手段120は、検知装置3から受信した検知データから現実空間にいる人を抽出する。また、人抽出手段120は、検知装置3から受信した検知データから現実空間にいる人の属性を抽出してもよい。一例として、検知装置3がカメラの場合に、人抽出手段120は、周知の人認識技術を用いて、画像データまたは映像データから現実空間内の人の数及び位置、人の性別、年齢、姿勢などを抽出する。他の例として、検知装置3が改札機の場合に、人抽出手段120は、改札機に挿入されたチケットにから現実空間内の人の数及び年齢を抽出する。但し、人抽出手段120が人及び属性を抽出する具体的な方法は、前述の例に限定されず、周知の他の方法を採用することができる。
【0050】
モブキャラ生成手段130は、人抽出手段120で抽出した人に対応するモブキャラを示すモブキャラデータを生成する。モブキャラデータは、モブキャラの外観(例えば、体形、表情、髪型、服装など)、仮想空間90内のモブキャラの位置、モブキャラの姿勢などを示す。但し、現実空間内の人の位置と、仮想空間90内のモブキャラの位置とは、厳密に一致していなくてもよい。そして、モブキャラ生成手段130は、生成したモブキャラデータを全てのユーザ端末20A~20Cに送信する。より詳細には、モブキャラ生成手段130は、人抽出手段120によって抽出された人の数だけモブキャラを生成する。また、モブキャラ生成手段130は、人抽出手段120によって抽出された人の属性に対応する態様のモブキャラを生成する。例えば、抽出した性別が女性の場合に女性のモブキャラが生成され、抽出した年齢が子供の場合に子供のモブキャラが生成され、抽出した姿勢が座っている場合に座った状態のモブキャラが生成される。
【0051】
仮想空間定義手段210は、現実空間に対応する仮想空間90を定義する。より詳細には、仮想空間定義手段210は、仮想空間90を示す仮想空間データをメモリ22に展開する。仮想空間データは、例えば、パノラマ画像91と、仮想空間90内に配置されるオブジェクト(例えば、建物、植物)の形状及び位置とを示す。なお、仮想空間データは、予めサーバ10からダウンロードしてストレージ23に保持されていてもよいし、仮想空間90を定義する際にサーバ10からダウンロードされてもよい。また、仮想空間定義手段210は、複数の仮想空間90のうちから操作装置42を通じて選択された仮想空間90を定義してもよい。仮想空間90を定義する具体的な処理は既に周知なので、詳細な説明は省略する。
【0052】
配置手段220は、仮想空間定義手段210で定義された仮想空間90にキャラクタを配置する。ここでは、ユーザ端末20Aで端末プログラム23Pが実行される場合を説明する。配置手段220が仮想空間90に配置するキャラクタは、ユーザ端末20A(第1ユーザ端末)のユーザのアバター(以下、「本人アバター」と表記する。)と、他のユーザ端末20B、20C(第2ユーザ端末)のユーザのアバター(以下、「他人アバター」と表記する。)と、モブキャラとを含む。
【0053】
まず、配置手段220は、ストレージ23に予め記憶されているアバターデータに基づいて、本人アバターを仮想空間90に配置する。そして、配置手段220は、本人アバターのアバターデータを、通信ネットワーク2を通じてサーバ10に送信する。また、配置手段220は、本人アバターの動作を指示するユーザの操作を操作装置42を通じて受け付けた場合に、当該操作に従って仮想空間90内で本人アバターを動作させる。そして、配置手段220は、本人アバターの動作後の状態を示すようにアバターデータを更新し、更新したアバターデータを通信ネットワーク2を通じてサーバ10に送信する。
【0054】
また、配置手段220は、他人アバターのアバターデータを、通信ネットワーク2を通じてサーバ10から受信する。そして、配置手段220は、サーバ10から受信したアバターデータに基づいて、他人アバターを仮想空間90に配置する。さらに、配置手段220は、アバターデータが更新される度に他人アバターを配置し直すことによって、仮想空間90内で他人アバターが動作する。
【0055】
さらに、配置手段220は、モブキャラ生成手段130が生成したモブキャラデータを、通信ネットワーク2を通じてサーバ10から受信する。そして、配置手段220は、サーバ10から受信したモブキャラデータに基づいて、モブキャラを仮想空間90に配置する。さらに、配置手段220は、モブキャラデータが更新される度にモブキャラを配置し直すことによって、仮想空間90内でモブキャラが動作する。
【0056】
カメラ移動手段230は、動きセンサ41で検知されたユーザ端末20の動きまたは操作装置42を通じたアバターの動作指示に基づいて、仮想空間90内で仮想カメラ92を移動させる。ユーザ端末20を動かすこと及び操作装置42を通じてアバターの動作を指示することは、移動操作の一例である。仮想カメラ92と本人アバターとの相対位置が変化しない設定の場合、カメラ移動手段230は、配置手段220が移動させた本人アバターに追従して、仮想カメラ92を移動させる。また、カメラ移動手段230は、動きセンサ41または操作装置42を通じた指示に従って、本人アバターとは独立して仮想カメラ92を移動させてもよい。
【0057】
画像生成手段240は、仮想カメラ92で仮想空間90内を撮像した仮想空間画像97を生成する。より詳細には、画像生成手段240は、パノラマ画像91のうちの視界領域94に相当する画像を仮想空間画像97として抽出して、仮想空間画像97を示す仮想空間画像データをメモリ22に記憶させる。また、画像生成手段240は、仮想空間画像97に対するキャラクタの含め方を制御する。
【0058】
一例として、画像生成手段240は、視界領域94(すなわち、仮想カメラ92の画角)に含まれるモブキャラの数が閾値以上の場合に、モブキャラの数を削減して(すなわち、間引いて)仮想空間画像97を生成してもよい。他の例として、画像生成手段240は、視界領域94に含まれるアバター及びモブキャラを、異なる表示態様で仮想空間画像に含めてもよい。他の例として、画像生成手段240は、操作装置42に対して実行されたモブキャラの選択操作に基づいて、モブキャラに対応付けて予め登録されたメッセージを出力してもよい。他の例として、画像生成手段240は、操作装置42に対して実行された操作に基づいて、仮想空間画像97にモブキャラを含めるか否かを切り替えてもよい。さらに他の例として、画像生成手段240は、操作装置42に対して実行された操作に基づいて、アバターの表示態様を切り替えてもよい。
【0059】
画像表示手段250は、仮想空間画像97をモニタ31に表示させる。より詳細には、画像表示手段250は、画像生成手段240によって生成された仮想空間画像データを、モニタ31のグラフィックメモリに展開する。そして、仮想空間90内のキャラクタが更新される度に、画像生成手段240が仮想空間画像97を新たに生成し、新たに生成された仮想空間画像97を画像表示手段250がモニタ31に表示させる。これにより、ユーザ端末20のユーザは、仮想空間90内で動作するキャラクタの視界を示す映像を、モニタ31を通じて視聴することができる。
【0060】
[実施例1]
図9~
図16を参照して、実施例1に係るシステム1の動作を説明する。実施例1では、ユーザ端末20Aのユーザのアバターが、現実の街に対応する仮想空間90にいることを想定している。そして、実施例1に係るシステム1は、ユーザ端末20Aのユーザに、仮想空間90での体験を提供すると共に、仮想空間90を通じて対応する現実空間の状況を報知する。
【0061】
図9は、実施例1に係るサーバ10の処理を示すフローチャートである。
図10は、実施例1に係るユーザ端末20Aの処理を示すフローチャートである。
図11は、仮想空間画像生成&表示処理のフローチャートである。
図12は、ステップS21、S22に対応する仮想空間90の概念図である。
図13は、ステップS47に対応する仮想空間90の概念図及び仮想空間画像97を示す図である。
図14は、ステップS48に対応する仮想空間90の概念図及び仮想空間画像97を示す図である。
図15は、ステップS45に対応する仮想空間90の概念図及び仮想空間画像97を示す図である。
図16は、ステップS43でNoの場合に対応する仮想空間90の概念図及び仮想空間画像97を示す図である。サーバ10による
図9の処理と、ユーザ端末20Aによる
図10の処理とは、並行して実行される。
【0062】
サーバ10は、
図9に示す処理を所定の時間間隔毎に繰り返し実行する。まず、サーバ10は、ユーザ端末20A~20Cからアバターデータを受信するか(S11)、検知装置3から検知データを受信するまで(S12)、ステップS13以降の処理の実行を待機する。なお、ユーザ端末20A~20Cそれぞれからは、アバターデータが不定期に送信される。また、検知装置3からは、所定の時間間隔毎に検知データが送信される。すなわち、ステップS13の処理と、ステップS14~S16の処理とは、任意のタイミング及び頻度で実行される。
【0063】
サーバ10(アバター同期手段110)は、ユーザ端末20A~20Cの1つから通信ネットワーク2を通じてアバターデータを受信した場合に(S11:Yes)、他の全てのユーザ端末20A~20Cに通信ネットワーク2を通じて受信したアバターデータを送信(中継)する(S13)。これにより、全てのユーザ端末20A~20Cが同一のアバターデータを保持する。換言すれば、全てのユーザ端末20A~20Cの仮想空間90に同一のアバターが配置される。
【0064】
また、サーバ10(人抽出手段120)は、通信ネットワーク2を通じて検知装置3から検知データを受信した場合に(S12:Yes)、受信した検知データから人及び属性を抽出する(S14)。次に、サーバ10(モブキャラ生成手段130)は、ステップS14で抽出した人及び属性に対応するモブキャラを生成する(S15)。さらに、サーバ10(モブキャラ生成手段130)は、ステップS15で生成したモブキャラを示すモブキャラデータを、通信ネットワーク2を通じて全てのユーザ端末20A~20Cに送信する(S16)。
【0065】
図10に示すように、ユーザ端末20A(仮想空間定義手段210)は、ストレージ23に記憶された仮想空間データをメモリ12に展開することによって、仮想空間90を定義する(S21)。次に、ユーザ端末20A(配置手段220及びカメラ移動手段230)は、
図12(A)に示すように、ステップS21で定義された仮想空間90に本人アバター50及び仮想カメラ92を配置すると共に、通信ネットワーク2を通じてサーバ10にアバターデータを送信する(S22)。本人アバター50の初期位置は、例えば、仮想空間90の中心Cである。また、仮想カメラ92の位置は、例えば、本人アバター50の頭の位置でもよいし、本人アバター50の後方でもよい。
【0066】
次に、ユーザ端末20A(配置手段220)は、通信ネットワーク2を通じてサーバ10からアバターデータを受信した場合に(S23:Yes)、例えば
図12(B)に示すように、受信したアバターデータに従って仮想空間90に他人アバター51B、51Cを配置する(S24)。なお、他人アバター51Bはユーザ端末20Bから送信されたアバターデータに対応し、他人アバター51Cはユーザ端末20Cから送信されたアバターデータに対応する。次に、ユーザ端末20A(画像生成手段240及び画像表示手段250)は、仮想空間90に配置した他人アバター51B、51Cを仮想空間画像97に反映させるために、
図11に示す仮想空間画像生成&表示処理を実行する(S29)。
【0067】
図11に示すように、ユーザ端末20A(画像生成手段240)は、視界領域94を特定する(S41)。次に、ユーザ端末20A(画像生成手段240)は、仮想カメラ92の画角(視界領域94)にモブキャラが含まれるか否かを判定する(S42)。
図12(B)の状態ではモブキャラが含まれないので(S42:No)、ユーザ端末20A(画像生成手段240)は、アバター及びモブキャラのうちのアバターのみを含む仮想空間画像97を生成する(S50)。次に、ユーザ端末20A(画像表示手段250)は、生成した仮想空間画像97をモニタ31に表示させる(S51)。
【0068】
図12(B)の状態では他人アバター51B、51Cのうちの他人アバター51Bのみが仮想カメラ92の画角に含まれるので、
図16(B)に示すような仮想空間画像97がモニタ31に表示される。また、仮想空間画像97を表示するモニタ31には、トグルスイッチ98が表示されてもよい。トグルスイッチ98は、仮想空間画像97にモブキャラを含めるか否かを指示するユーザの操作を受け付ける画面オブジェクトである。トグルスイッチ98をON側に切り替える操作は、仮想カメラ92の画角に含まれるモブキャラを含む仮想空間画像97の生成することを指示する表示操作の一例である。トグルスイッチ98をOFF側に切り替える操作は、仮想カメラ92の画角に含まれるモブキャラを含まない仮想空間画像97の生成することを指示する非表示操作の一例である。
【0069】
また、ユーザ端末20A(配置手段220)は、通信ネットワーク2を通じてサーバ10からモブキャラデータを受信した場合に(S25:Yes)、例えば
図13(A)に示すように、受信したモブキャラデータに従って、仮想空間90にモブキャラ52A、52B、52C、52Dを配置する(S26)。次に、ユーザ端末20A(画像生成手段240及び画像表示手段250)は、仮想空間90に配置したモブキャラ52A~52Dを仮想空間画像97に反映させるために、仮想空間画像生成&表示処理を実行する(S29)。
【0070】
ユーザ端末20A(画像生成手段240)は、仮想カメラ92の画角にモブキャラ52A、52Bが含まれると判定し(S42:Yes)、トグルスイッチ98がON側だと判定した場合に(S43:Yes)、仮想カメラ92の画角に含まれるモブキャラ52A、52Bの数と、予め定められた閾値とを比較する(S44)。そして、ユーザ端末20A(画像生成手段240)は、仮想カメラ92の画角に含まれるモブキャラ52A、52Bの数が閾値未満の場合に(S44:No)、ステップS45の処理をスキップして、ステップS46以降の処理を実行する。すなわち、ユーザ端末20A(画像生成手段240)は、仮想カメラ92の画角に含まれる全てのモブキャラ52A、52Bを仮想空間画像97に含める。
【0071】
次に、ユーザ端末20A(画像生成手段240)は、仮想空間画像97に含める他人アバター51B及びモブキャラ52Aから仮想カメラ92までの距離と、予め定められた閾値距離とを比較する(S46)。そして、ユーザ端末20A(画像生成手段240)は、例えば
図13(A)に示すように、他人アバター51B及びモブキャラ52A、52Bから仮想カメラ92までの距離が一点鎖線で示す閾値距離以上の場合に(S46:Yes)、
図13(B)に示すように、他人アバター51B及びモブキャラ52A、52Bを共通の表示態様で仮想空間画像97に含める(S47)。一方、ユーザ端末20A(画像生成手段240)は、例えば
図14(A)に示すように、他人アバター51B及びモブキャラ52A、52Bから仮想カメラ92までの距離が一点鎖線で示す閾値距離未満の場合に(S46:No)、
図14(B)に示すように、他人アバター51B及びモブキャラ52A、52Bを異なる表示態様で仮想空間画像97に含める(S48)。
【0072】
ここで、他人アバター51B及びモブキャラ52A、52Bは、外観がそれぞれ異なる。そのため、「共通の表示態様」とは、各キャラクタの外観を完全に一致させることを意味しない。「共通の表示態様」とは、例えば、アバターとモブキャラとを区別するための情報(アイコン)を付加しないことを意味してもよい。一方、「異なる表示態様」とは、アバターとモブキャラとを区別するための情報(アイコン)を付加することを意味してもよい。例えば、
図14(B)の例では、他人アバター51Bの頭上にユーザ端末20Bのユーザが設定したユーザ名“USER-B”が付加されているのに対して、モブキャラ52A、52Bの頭上には“MOB”の文字列が付加されている。一方、
図13(B)では、他人アバター51B及びモブキャラ52A、52Bの頭上の文字列が省略されている。但し、共通の表示態様、異なる表示態様の具体例は、前述の例に限定されない。
【0073】
また、ユーザ端末20A(画像生成手段240)は、
図15(A)に示すように、仮想カメラ92の画角に含まれるモブキャラ52A、52B、52E、52F、52G、52H、52I、52Jの数が閾値以上の場合に(S44:Yes)、仮想空間画像97に含めるモブキャラ52A、52B、52E~52Jの数を削減する(S45)。ユーザ端末20A(画像生成手段240)は、例えば、52A、52B、52E~52Jの数が第1閾値(例えば、5)以上で第2閾値(例えば、10)未満の場合に、第1閾値のモブキャラを仮想空間画像97に含めてもよい。また、ユーザ端末20A(画像生成手段240)は、モブキャラの数が第2閾値以上の場合に、第2閾値のモブキャラを仮想空間画像97に含めてもよい。なお、第1閾値<第2閾値である。但し、モブキャラの数を削減する方法は、前述の例に限定されない。また、ユーザ端末20A(画像生成手段240)は、例えば、モブキャラの密度が高い領域から優先してモブキャラの数を削減してもよい。但し、どのモブキャラを削減するかは、前述の例に限定されない。
【0074】
次に、ユーザ端末20A(画像生成手段240)は、他人アバター51B及びステップS45で削減されなかったモブキャラ52A、52E、52G、52H、52Jに対して、ステップS46~S48の処理を実行する。すなわち、ユーザ端末20A(画像生成手段240)は、仮想カメラ92からの距離が閾値未満のモブキャラ52H、52Jの頭上に文字列“MOB”を付加し(S47)、仮想カメラ92からの距離が閾値以上の他人アバター51B及びモブキャラ52A、52E、52Gの頭上に文字列を付加しない(S48)。
【0075】
次に、ユーザ端末20A(画像生成手段240)は、
図13(A)、
図14(A)、または
図14(A)の例において、他人アバター51B及びモブキャラ52を含む仮想空間画像97を生成する(S49)。次に、ユーザ端末20A(画像表示手段250)は、
図13(B)、
図14(B)、または
図15(B)に示すように、生成した仮想空間画像97をモニタ31に表示させる(S51)。
【0076】
一方、ユーザ端末20A(画像生成手段240)は、
図16(A)に示すように、トグルスイッチ98がOFF側だと判定した場合に(S43:No)、ステップS44~S49の処理を実行せずに、ステップS50の処理を実行する。すなわち、ユーザ端末20A(画像生成手段240)は、仮想カメラ92の画角に含まれる他人アバター51Bを含み、仮想カメラ92の画角に含まれるモブキャラ52A、52B、52E~52Jを含まない仮想空間画像97を生成する。次に、ユーザ端末20A(画像表示手段250)は、
図16(B)に示すように、生成した仮想空間画像97をモニタ31に表示させる(S51)。
【0077】
図10に戻って、ユーザ端末20A(配置手段220及びカメラ移動手段230)は、本人アバター50の動作を指示する操作を操作装置42を通じて受け付けた場合に(S27:Yes)、操作装置42に対するユーザの操作に従って本人アバター50を動作させ、本人アバター50に追従して仮想カメラ92を移動させ、動作後の本人アバター50を示すアバターデータを、通信ネットワーク2を通じてサーバ10に送信する(S28)。また、ユーザ端末20A(カメラ移動手段230)は、動きセンサ41で検知されたユーザ端末20Aの動きに追従して、仮想カメラ92を移動させる。そして、ユーザ端末20A(画像生成手段240及び画像表示手段250)は、仮想カメラ92の移動後の画角に対応する仮想空間画像97を生成するために、仮想空間画像生成&表示処理を実行する(S29)。
【0078】
ユーザ端末20Aは、端末プログラム23Pの終了を指示する操作(例えば、ログアウト)を操作装置42を通じて受け付けるまで(S30:No)、ステップS23~S29の処理を繰り返し実行する。なお、ユーザ端末20Aは、アバターデータ及びモブキャラデータを不定期に受信し、ユーザ操作を不定期に受け付ける。すなわち、ステップS24、S26、S28の処理は、任意のタイミング及び頻度で実行される。そして、ユーザ端末20Aは、端末プログラム23Pの終了を指示する操作を操作装置42を通じて受け付けた場合に(S30:Yes)、
図10の処理を終了する。
【0079】
[実施例1の作用効果]
実施例1によれば、現実空間の人に対応するモブキャラ52を仮想空間90に配置することによって、仮想空間90内で本人アバター50を操作するユーザ端末20Aのユーザに、現実空間の状況(例えば、街に出かけている人の混み具合)を報せることができる。その結果、仮想空間90内での疑似体験をしているユーザに、現実空間に実際に行くモチベーションを与えることができる。
【0080】
また、実施例1によれば、現実空間の人の属性を反映したモブキャラ52を仮想空間90に配置することによって、現実空間の状況をより詳細に報せることができる。その結果、仮想空間90内での疑似体験をしているユーザ現実空間に実際に行くモチベーションがさらに高まる。
【0081】
また、実施例1によれば、仮想カメラ92からの距離が閾値未満の他人アバター51B及びモブキャラ52A、52Bの表示態様を異ならせることによって(
図14)、他人アバター51Bとモブキャラ52A、52Bとを、ユーザ端末20Aのユーザが区別できるようになる。これにより、現実空間の状況を知りたいユーザと、仮想空間90内で過ごしたい(換言すれば、他人アバター51Bと交流したい)ユーザとの両方に、適切な仮想空間画像97を提供することができる。
【0082】
また、実施例1によれば、仮想カメラ92からの距離が閾値以上の他人アバター51B及びモブキャラ52A、52Bの表示態様を共通にすることによって(
図13)、仮想空間画像97に含まれる情報が多くなり過ぎるのを防止できる。但し、仮想カメラ92からの距離に拘わらず、視界領域94に含まれる全ての他人アバター及びモブキャラの表示態様を異ならせてもよい。
【0083】
また、実施例1によれば、現実空間にいる人の数が多い場合に、モブキャラ52の数を削減して仮想空間画像97に含めるので、仮想空間画像97内のモブキャラ52が多くなり過ぎるのを防止できる。これにより、仮想空間90内で楽しみたいユーザの視界がモブキャラ52で遮られるのを防止することができる。
【0084】
さらに、実施例1によれば、トグルスイッチ98の操作によってモブキャラ52の表示及び非表示を切り替えることができるので、仮想空間90内で楽しみたいユーザの視界がモブキャラ52で遮られるのを、さらに効果的に防止することができる。
【0085】
[実施例2]
次に、
図17~
図22を参照して、実施例2に係るシステム1の動作を説明する。なお、実施例1との共通点の詳細な説明は省略し、実施例2に特有の処理を中心に説明する。また、実施例1、2は、その一部または全部を組み合わせることが可能である。
【0086】
実施例2では、ユーザ端末20A(第1ユーザ端末)のユーザのアバターが客として、ユーザ端末20C(第2ユーザ端末)のユーザのアバターがスタッフとして、現実の商店に対応する仮想空間90にいることを想定している。そして、実施例2に係るシステム1は、ユーザ端末20Aのユーザに、仮想空間90を通じて対応する現実空間の状況を報知すると共に、仮想空間90を通じて現実の商店にいるスタッフとのコミュニケーションを提供する。
【0087】
図17は、人の属性とメッセージとを対応付けて保持するメッセージテーブルの例である。
図18は、実施例2に係るユーザ端末20Cの処理を示すフローチャートである。
図19は、ステータス設定画面を示す図である。
図20は、実施例2に係るユーザ端末20Aの処理を示すフローチャートである。
図21は、操作可能状態の他人アバター53を選択した際の仮想空間画像97を示す図である。
図22は、操作不能状態の他人アバター53及びモブキャラ54を選択した際の仮想空間画像97を示す図である。
【0088】
実施例2に係るサーバ10のストレージ13は、
図17に示すメッセージテーブルを保持している。メッセージテーブルは、ステップS14で人抽出手段120が抽出し得る人の属性と、メッセージとが対応付けて登録されている。メッセージテーブルは、例えば、商店の管理者またはユーザ端末20Cのユーザによって、予めサーバ10に登録されている。メッセージテーブルに登録されるメッセージは、テキスト形式でもよいし、音声形式でもよい。
【0089】
そして、サーバ10(モブキャラ生成手段130)は、生成したモブキャラの属性に対応するメッセージをメッセージテーブルから抽出し、抽出したメッセージをモブキャラデータに付加する(S15)。さらに、サーバ10(モブキャラ生成手段130)は、メッセージが付加されたモブキャラデータを、通信ネットワーク2を通じて全てのユーザ端末20A~20Cに送信する(S16)。
【0090】
図18に示すように、ユーザ端末20C(配置手段220)は、
図19に示すステータス設定画面をモニタ31に表示させる(S61)。ステータス設定画面は、ユーザ端末20Cのユーザのアバターのステータスを設定するための画面である。より詳細には、ステータス設定画面は、操作可能フラグの値を選択すると共に、操作可能フラグの値に対応するアバターの外観(例えば、表情、しぐさ)及び定型メッセージを設定する操作を受け付ける。操作可能フラグには、アバターの操作が可能な操作可能状態であることを示す第1値“ON”、またはアバターの操作が不能な操作不能状態であることを示す第2値“OFF”を設定することができる。
【0091】
そして、ユーザ端末20C(配置手段220)は、操作可能フラグの値を選択する操作、アバターの外観を設定する操作、及び定型メッセージを入力する操作を、操作装置42を通じて受け付けるまで、以降の処理の実行を待機する。操作可能フラグの値を選択する操作は、操作可能状態及び操作不能状態のいずれかを選択する選択操作の一例である。なお、操作可能フラグの値の選択、アバターの外観の設定、及び定型メッセージの入力を受け付けるインタフェースは、
図18の例に限定されない。
【0092】
ユーザ端末20C(配置手段220)は、操作可能フラグの設定値として第1値“ON”を選択する操作を操作装置42を通じて受け付けた場合に(S62:Yes)、操作可能フラグ“ON”、操作可能フラグ“ON”に対応付けて設定されたアバターの外観、操作可能フラグ“ON”に対応付けて入力された定型メッセージを含むアバターデータを、通信ネットワーク2を通じてサーバ10に送信する(S63)。また、ユーザ端末20C(配置手段220)は、操作可能フラグの設定値として第2値“OFF”を選択する操作を操作装置42を通じて受け付けた場合に(S64:Yes)、操作可能フラグ“OFF”、操作可能フラグ“OFF”に対応付けて設定されたアバターの外観、操作可能フラグ“OFF”に対応付けて入力された定型メッセージを含むアバターデータを、通信ネットワーク2を通じてサーバ10に送信する(S65)。
【0093】
ユーザ端末20Cのユーザは、ステータス設定画面を通じて任意のタイミングで、操作可能フラグの設定値を切り替えることができる。そして、ユーザ端末20C(配置手段220)は、操作可能フラグの設定値(すなわち、アバターの操作可能状態及び操作不能状態)が切り替えられる度に、操作可能フラグを含むアバターデータをサーバ10に送信する。
【0094】
サーバ10(アバター同期手段110)は、ユーザ端末20Cから受信したアバターデータを、通信ネットワーク2を通じて他の全てのユーザ端末20A、20Bに送信する(S13)。また、ユーザ端末20A、20B(配置手段220)は、サーバ10から受信したアバターデータに従って、仮想空間90に他人アバターを配置する(S24)。さらに、ユーザ端末20A、20B(画像生成手段240)は、他人アバターが視界領域94に含まれる場合に(S42:Yes)、当該他人アバターを含む仮想空間画像97を生成する(S49、S50)。
【0095】
以下、
図17に示すメッセージを含むモブキャラデータと、ステップS63、S65でユーザ端末20Cから送信されたアバターデータとをユーザ端末20Aが受信したものとして、
図20の処理を説明する。
【0096】
一例として、ユーザ端末20Cから送信されたアバターデータの操作可能フラグに第1値“ON”が設定されている場合、ユーザ端末20A(画像生成手段240)は、
図21(A)に示す仮想空間画像97を生成する(S49)。他の例として、ユーザ端末20Cから送信されたアバターデータの操作可能フラグに第2値“OFF”が設定されている場合、ユーザ端末20A(画像生成手段240)は、
図22(A)に示す仮想空間画像97(但し、この時点では、定型メッセージを含む吹き出しは表示されない。)を生成する(S49)。そして、ユーザ端末20A(画像表示手段250)は、ステップS49で生成した仮想空間画像97をモニタ31に表示させる(S51)。
【0097】
図21(A)及び
図22(A)に示す仮想空間画像97は、ユーザ端末20Aから送信されたアバターデータに基づく他人アバター53と、サーバ10から送信されたモブキャラデータに基づくモブキャラ54とを含む点で共通する。一方、
図21(A)及び
図22(A)に示す他人アバター53は、その外観(例えば、表情、しぐさ)が異なる。また、
図21(A)及び
図22(A)では、他人アバター53に付加されるユーザ名“USER-C”の表示態様が異なる(
図22(A)ではグレーアウトされている)。
【0098】
すなわち、ユーザ端末20A(画像生成手段240)は、操作可能フラグの設定値(すなわち、他人アバター53の操作可能状態及び操作不能状態)を選択する選択操作がユーザ端末20Cに対して実行される度に、他人アバター53に表示態様を切り替える。操作可能フラグの設定値に応じて切り替えられる他人アバター53の表示態様は、
図21(A)及び
図22(A)の例に限定されず、ユーザ端末20Aのユーザが区別できる態様であれば、どのような態様でもよい。
【0099】
次に、ユーザ端末20A(画像表示手段250)は、
図21(A)または
図22(A)に示す他人アバター53を選択する操作を操作装置42を通じて受け付けた場合に(S71:Yes)、
図21(B)または
図22(A)に示すように、アバターデータに含まれる定型メッセージを出力する(S72)。
図21(B)及び
図22(A)の例では、他人アバター53から出た吹き出しにテキスト形式の定型メッセージを表示している。他の例として、ユーザ端末20Aは、音声形式の定型メッセージをスピーカ36から出力してもよい。また、
図21(A)の例では、ポインタ55を用いて他人アバター53を選択しているが、キャラクタを選択する具体的な方法はこれに限定されない。
【0100】
次に、ユーザ端末20A(画像表示手段250)は、アバターデータに含まれる操作可能フラグの設定値を判定する(S73)。そして、ユーザ端末20A(画像表示手段250)は、操作可能フラグに第1値“ON”が設定されていると判定した場合に(S73:Yes)、
図21(B)に示すように、メッセージの入力を受け付けるテキストボックス56と、[送信]ボタン57とをモニタ31に表示させる。なお、ユーザ端末20Aは、テキストボックス56を通じたテキスト形式のメッセージの入力に限定されず、マイク35を通じた音声形式のメッセージの入力を受け付けてもよい。
【0101】
次に、ユーザ端末20A(配置手段220)は、テキストボックス56にメッセージを入力して、[送信]ボタン57を押下する操作を操作装置42を通じて受け付けるまで(S74:No)、ステップS75の処理の実行を待機する。そして、ユーザ端末20A(配置手段220)は、[送信]ボタン57を押下する操作を受け付けた場合に(S74:Yes)、テキストボックス56に入力されたメッセージ“お薦め商品を教えて下さい。”と、他人アバター53に対応するユーザ端末20Cの端末ID“TERM-C”とを含むアバターデータを、通信ネットワーク2を通じてサーバ10に送信する(S75)。また、サーバ10(アバター同期手段110)は、端末IDを含むアバターデータを受信した場合に、当該端末ID“TERM-C”で識別されるユーザ端末20Cのみに、当該アバターデータを送信(中継)する。
【0102】
一方、ユーザ端末20A(画像表示手段250)は、操作可能フラグに第2値“OFF”が設定されていると判定した場合に(S73:No)、ステップS74-S75の処理をスキップする。すなわち、
図22(A)に示すように、テキストボックス56及び[送信]ボタン57がモニタ31に表示されず、ユーザ端末20Cにメッセージを送信することができない。
【0103】
図18に戻って、ユーザ端末20C(画像表示手段250)は、メッセージを含むアバターデータをサーバ10から受信した場合に(S66:Yes)、ユーザ端末20Aのアバターに対応付けてメッセージを出力する(S67)。そして、ユーザ端末20C(配置手段220)は、返信メッセージを入力する操作を操作装置42を通じて受け付けるまで(S68:No)、ステップS69の処理の実行を待機する。次に、ユーザ端末20C(配置手段220)は、返信メッセージが入力された場合に(S68:Yes)、当該返信メッセージ及びユーザ端末20Aの端末ID“TERM-A”を含むアバターデータを、通信ネットワーク2を通じてサーバ10に送信する(S69)。ステップS67-S69の処理は、ステップS72、S74-S75と共通する。
【0104】
そして、ユーザ端末20Aで実行されるステップS72、S74-S75の処理と、ユーザ端末20Cで実行されるステップS67-S69の処理とが繰り返されることによって、ユーザ端末20Aのユーザと、ユーザ端末20Cのユーザ(すなわち、商店のスタッフ)との間に、仮想空間90を通じたコミュニケーションが成立する。
【0105】
図20に戻って、ユーザ端末20A(画像表示手段250)は、
図21(A)に示すモブキャラ54を選択する操作を操作装置42を通じて受け付けた場合に(S76:Yes)、
図22(B)に示すように、モブキャラデータに含まれるメッセージ“子供連れでも入りやすいお店です。”を出力する(S77)。
図22(B)の例では、モブキャラ54から出た吹き出しにテキスト形式のメッセージを表示している。他の例として、ユーザ端末20Aは、音声形式のメッセージをスピーカ36から出力してもよい。
【0106】
[実施例2の作用効果]
実施例2によれば、他人アバター53が商店のスタッフによって操作可能か否かを、他人アバター53の表示態様によってユーザ端末20Aのユーザに報せることができる。これにより、他人アバター53にメッセージを送っても(他人アバター53に話しかけても)返信がないことによるユーザ端末20Aのユーザのストレスを軽減することができる。換言すれば、商店において、他人アバター53を常に操作可能な状態にするために、ユーザ端末20Cの傍にスタッフを常駐させておく必要がない。
【0107】
また、実施例2によれば、属性に対応付けて予め登録されたメッセージを、モブキャラ54を通じてユーザ端末20Aのユーザに報せることができる。これにより、例えば、商店をアピールするメッセージを登録しておけば、ユーザ端末20Aのユーザに、現実の商店に行くモチベーションを与えることができる。なお、モブキャラ54に対応付けるメッセージは、サーバ10のストレージ13に予め記憶されていることに限定されず、AI機能を用いて自動で作成されてもよいし、インターネット上の口コミサイトの評価の高い口コミを引用してもよい。
【0108】
[その他の実施形態]
なお、本発明では、仮想空間90内に配置するモブキャラの数によって、現実空間にいる人の混み具合をユーザ端末20Aのユーザに推測させることができれば、検知装置3で検知された人と、仮想空間90内に配置するモブキャラとを一対一で対応させる必要はない。より詳細には、検知装置3によって検知された人の数と、仮想空間90内に配置されるモブキャラの数とは、正の相関があれば同一でなくてもよい。すなわち、配置手段220は、検知装置3の検知結果(例えば、人の数、密度など)に基づく数のモブキャラを仮想空間90に配置すればよい。より詳細には、配置手段220は、検知装置3によって検知された人に対応するモブキャラを仮想空間90に配置すればよい。
【0109】
また、配置手段220が仮想空間90に配置するオブジェクトは、現実空間に出入りする人に対応するモブキャラ(非ユーザキャラクタ)に限定されない。オブジェクトの他の例として、乗り物(自動車、船舶、航空機)、動物、植物、商品、展示物など、現実空間に対して出入りする可能性のある物に対応するものでもよい。さらに、仮想空間90に配置されるオブジェクトは、1種類に限定されず、複数種類でもよい。
【0110】
一例として、道路や駐車場を含む仮想空間90に、現実空間の車に対応するオブジェクトを配置することによって、ユーザ端末20Aのユーザは、仮想空間90を通じて渋滞状況や駐車場の空き状況を認識できる。他の例として、動物園や公園を含む仮想空間90に、現実空間の動物に対応するオブジェクト及び入園者に対応するモブキャラを配置することによって、ユーザ端末20Aのユーザは、仮想空間90を通じて動物がよく見える場所を認識できる。
【0111】
また、本発明に係るプログラムは、単一のプログラムに限定されず、複数のプログラムの集合体でもよい。また、本発明に係るプログラムは、単一の装置で実行されるものに限定されず、複数の装置で分担して実行されてもよい。さらに、サーバ10及びユーザ端末20の役割分担は、前述の例に限定されない。すなわち、サーバ10の処理の一部がユーザ端末20によって実行されてもよいし、ユーザ端末20の処理の一部がサーバ10によって実行されてもよい。
【0112】
さらに、プログラムによって実現される各手段の一部または全部は、集積回路などのハードウェアで実現することもできる。さらに、プログラムは、コンピュータによって読み出し可能な非一過性の記録媒体に記録されて提供されてもよい。記録媒体とは、例えば、ハードディスク、SDカード、DVDの他、インターネット上のサーバ等を指す。
【符号の説明】
【0113】
1…システム、2…通信ネットワーク、3…検知装置、10…サーバ、11,21…プロセッサ、12,22…メモリ、13,23…ストレージ、13P…サーバプログラム、14,24…入出力インタフェース、15,25…通信インタフェース、19,29…通信バス、20…ユーザ端末、23P…端末プログラム、26…コンピュータ、30…HMD、31…モニタ、32…注視センサ、33,34…カメラ、35…マイク、36…スピーカ、41…動きセンサ、42…操作装置、50…本人アバター、51,53…他人アバター、52,54…モブキャラ、55…ポインタ、56…テキストボックス、57…[送信]ボタン、90…仮想空間、91…パノラマ画像、92…仮想カメラ、93…基準視線、94…視界領域、95,96…領域、97…仮想空間画像、98…トグルスイッチ、110…アバター同期手段、120…人抽出手段、130…モブキャラ生成手段、210…仮想空間定義手段、220…配置手段、230…カメラ移動手段、240…画像生成手段、250…画像表示手段
【要約】
【課題】仮想空間内での疑似体験をしているユーザに、現実空間に実際に行くモチベーションを与えることができるプログラムを提供する。
【解決手段】プログラムは、コンピュータを、現実空間に対応する仮想空間を定義する仮想空間定義手段と、現実空間に設置された検知装置の検知結果に基づく数のオブジェクトを、仮想空間内に配置する配置手段と、第1ユーザ端末に対して実行された移動操作に基づいて、仮想空間内で仮想カメラを移動させるカメラ移動手段と、仮想カメラで仮想空間内を撮像した仮想空間画像を生成する画像生成手段と、仮想空間画像を第1ユーザ端末に表示させる画像表示手段として機能させる。
【選択図】
図10