IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社コロプラの特許一覧

<>
  • 特開-プログラム、及び情報処理システム 図1
  • 特開-プログラム、及び情報処理システム 図2
  • 特開-プログラム、及び情報処理システム 図3
  • 特開-プログラム、及び情報処理システム 図4
  • 特開-プログラム、及び情報処理システム 図5
  • 特開-プログラム、及び情報処理システム 図6
  • 特開-プログラム、及び情報処理システム 図7
  • 特開-プログラム、及び情報処理システム 図8
  • 特開-プログラム、及び情報処理システム 図9
  • 特開-プログラム、及び情報処理システム 図10
  • 特開-プログラム、及び情報処理システム 図11
  • 特開-プログラム、及び情報処理システム 図12
  • 特開-プログラム、及び情報処理システム 図13
  • 特開-プログラム、及び情報処理システム 図14
  • 特開-プログラム、及び情報処理システム 図15
  • 特開-プログラム、及び情報処理システム 図16
  • 特開-プログラム、及び情報処理システム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024049397
(43)【公開日】2024-04-09
(54)【発明の名称】プログラム、及び情報処理システム
(51)【国際特許分類】
   G06T 19/00 20110101AFI20240402BHJP
   A63F 13/52 20140101ALI20240402BHJP
   A63F 13/55 20140101ALI20240402BHJP
   A63F 13/60 20140101ALI20240402BHJP
【FI】
G06T19/00 A
A63F13/52
A63F13/55
A63F13/60
【審査請求】有
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2024017045
(22)【出願日】2024-02-07
(62)【分割の表示】P 2023056414の分割
【原出願日】2022-09-28
(71)【出願人】
【識別番号】509070463
【氏名又は名称】株式会社コロプラ
(74)【代理人】
【識別番号】110001416
【氏名又は名称】弁理士法人信栄事務所
(72)【発明者】
【氏名】梶山 万悠子
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050BA12
5B050BA13
5B050CA07
5B050CA08
5B050DA10
5B050EA07
5B050EA12
5B050EA18
5B050EA19
5B050EA27
5B050FA02
5B050FA09
5B050GA08
(57)【要約】
【課題】仮想空間画像におけるユーザオブジェクトの表示を、より適切に行う。
【解決手段】コンピュータにより実行されるプログラム151であって、プログラム151は、コンピュータを、仮想空間501を生成する手段と、仮想空間501に仮想カメラ503及びユーザオブジェクト502を配置する手段と、仮想カメラ503に基づいて、仮想空間501の画像である仮想空間画像を生成する手段、として機能させる。また、プログラム151は、コンピュータを、仮想空間画像を生成する手段として、仮想カメラ503の向きに応じて、ユーザオブジェクト502を透明にすることと、ユーザオブジェクト503を不透明にすることとを切り替えさせる。
【選択図】図9
【特許請求の範囲】
【請求項1】
コンピュータにより実行されるプログラムであって、
前記プログラムは、前記コンピュータを、
仮想空間に配置される仮想カメラに基づいて、前記仮想空間の画像である仮想空間画像を生成する手段と、
前記仮想空間に配置されるユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させる手段、として機能させ、
前記仮想空間画像を生成する手段として、
前記ユーザオブジェクトが、前記ユーザオブジェクト以外の他のオブジェクトの付近に位置し、移動状態から停止状態へ移行する場合、前記ユーザオブジェクトを透明にさせる、プログラム。
【請求項2】
前記仮想空間画像を生成する手段として、
前記ユーザオブジェクトを不透明から透明にさせる場合、前記ユーザオブジェクトの透明度を徐々に上げさせ、
前記ユーザオブジェクトを透明から不透明にさせる場合、前記ユーザオブジェクトの透明度を徐々に下げさせる、
請求項1に記載のプログラム。
【請求項3】
前記仮想空間画像を生成する手段として、
前記ユーザオブジェクトが、前記ユーザオブジェクト以外の他のオブジェクトの付近に位置し、移動状態から停止状態へ移行する場合であっても、前記他のオブジェクトが前記ユーザオブジェクトの上に重なる場合は、前記ユーザオブジェクトを不透明にさせる、請求項1または2に記載のプログラム。
【請求項4】
1または複数の情報処理装置を備える情報処理システムであって、
仮想空間に配置される仮想カメラに基づいて、前記仮想空間の画像である仮想空間画像を生成する処理と、
前記仮想空間に配置されるユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させる処理と、を行い、
前記仮想空間画像を生成する処理において、
前記ユーザオブジェクトが、前記ユーザオブジェクト以外の他のオブジェクトの付近に位置し、移動状態から停止状態へ移行する場合、前記ユーザオブジェクトを透明にする、情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、及び情報処理システムに関する。
【背景技術】
【0002】
ユーザの操作入力に基づいてユーザオブジェクトを仮想空間内で移動させ、ユーザオブジェクトの移動に応じて移動する仮想カメラに基づいて、仮想空間画像を生成する技術が知られている。
【0003】
特許文献1には、仮想空間において、ユーザオブジェクトが障害物に隠れて見えなくなることを避けるため、仮想カメラと障害物との距離が所定距離以内である場合、当該障害物の透明度が徐々に増すように当該障害物の透明度を更新するゲームプログラムが開示されている。また、特許文献2には、仮想空間において、ユーザオブジェクトとバトルを行う敵キャラクタがフェードインして登場し、当該敵キャラクタがバトルにおいて残りダメージ値がゼロになって行動不能となった場合にフェードアウトして退場する画像描画装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008-43589号公報
【特許文献2】特開2005-149315号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、仮想空間画像において、ユーザオブジェクトを透明から不透明へ、または不透明から透明へ切り替え可能である場合、当該ユーザオブジェクトの表示の切り替えが、ユーザにおいて違和感の少ないタイミングで行われることが望まれている。
【0006】
本開示は、仮想空間画像におけるユーザオブジェクトの表示が、より適切に行われることを目的とする。
【課題を解決するための手段】
【0007】
本開示に示す一実施形態によれば、
コンピュータにより実行されるプログラムであって、
前記プログラムは、前記コンピュータを、
仮想空間を生成する手段と、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置する手段と、
前記仮想カメラに基づいて、前記仮想空間の画像である仮想空間画像を生成する手段、として機能させ、
前記仮想空間画像を生成する手段として、
前記仮想カメラの向きに応じて、前記ユーザオブジェクトを透明にすることと、前記ユーザオブジェクトを不透明にすることとを切り替えさせる、プログラム、が提供される。
【0008】
本開示に示す他の一実施形態によれば、
コンピュータにより実行されるプログラムであって、
前記プログラムは、前記コンピュータを、
仮想空間を生成する手段と、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置する手段と、
前記仮想カメラに基づいて、前記仮想空間の画像である仮想空間画像を生成する手段と、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させる手段、として機能させ、
前記仮想空間画像を生成する手段として、
前記ユーザオブジェクトの位置に応じて、前記ユーザオブジェクトを透明にすることと、前記ユーザオブジェクトを不透明にすることとを切り替えさせる、プログラム、が提供される。
【0009】
本開示に示す他の一実施形態によれば、
1または複数の情報処理装置を備える情報処理システムであって、
仮想空間を生成する処理と、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置する処理と、
前記仮想カメラに基づいて、前記仮想空間の画像である仮想空間画像を生成する処理と、を行い、
前記仮想空間画像を生成する処理において、
前記仮想カメラの向きに応じて、前記ユーザオブジェクトを透明にすることと、前記ユーザオブジェクトを不透明にすることとを切り替える、
情報処理システム、が提供される。
【0010】
本開示に示す他の一実施形態によれば、
1または複数の情報処理装置を備える情報処理システムであって、
仮想空間を生成する処理と、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置する処理と、
前記仮想カメラに基づいて、前記仮想空間の画像である仮想空間画像を生成する処理と、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させる処理と、を行い、
前記仮想空間画像を生成する処理において、
前記ユーザオブジェクトの位置に応じて、前記ユーザオブジェクトを透明にすることと、前記ユーザオブジェクトを不透明にすることとを切り替える、
情報処理システム、が提供される。
【発明の効果】
【0011】
本開示に示す一実施形態によれば、仮想空間画像におけるユーザオブジェクトの表示を、より適切に行うことができる。
【図面の簡単な説明】
【0012】
図1図1は、本開示の第1の実施の形態に従うシステムの構成例を示す図である。
図2図2は、図1に示すユーザ端末の機能的な構成を示すブロック図である。
図3図3は、図1に示すサーバの機能的な構成を示すブロック図である。
図4図4は、比較例に係るプログラムが実行されることにより、図1に示すユーザ端末に表示される仮想空間画像の一例を示している。
図5図5は、本開示の第1の実施の形態に従う仮想空間の提供に係る処理の一例を示すフローチャートである。
図6図6は、本開示の第1の実施の形態に従う仮想空間の一例を示す模式図である。
図7図7は、本開示の第1の実施の形態に従う表示画面の一例を示す模式図である。
図8図8は、本開示の第1の実施の形態の変形例1に従う表示画面の一例を示す模式図である。
図9図9は、本開示の第2の実施の形態に従う表示画面の一例を示す模式図である。
図10図10は、本開示の第2の実施の形態に従うプログラムの動作の流れの一例を示すフローチャートである。
図11図11は、本開示の第3の実施の形態に従う表示画面の一例を示す模式図である。
図12図12は、本開示の第3の実施の形態に従う表示画面の一例を示す模式図である。
図13図13は、本開示の第3の実施の形態に従うプログラムの動作の流れの一例を示すフローチャートである。
図14図14は、本開示の第3の実施の形態に従う表示画面の一例を示す模式図である。
図15図15は、本開示の第3の実施の形態に従うプログラムの動作の流れの一例を示すフローチャートである。
図16】。図16は、本開示の第3の実施の形態に従う表示画面の一例を示す模式図である。
図17図17は、本開示の第3の実施の形態に従うプログラムの動作の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、この技術的思想の実施の形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品等には同一の符号を付してある。それらの名称及び機能も同じである。したがって、それらについての詳細な説明は繰り返さない。本開示において示される1以上の実施形態において、各実施形態が含む要素を互いに組み合わせることができ、かつ、当該組み合わせられた結果物も本開示が示す実施形態の一部をなすものとする。
【0014】
[第1の実施の形態]
(システムの構成)
以下、本開示に係る第1の実施の形態として、ユーザの操作入力に基づいてユーザオブジェクトを仮想空間内で移動させ、ユーザオブジェクトの移動に応じて移動する仮想カメラに基づいて生成される仮想空間画像をユーザに提供するシステムを例示して説明をする。
【0015】
仮想空間は、複数のユーザに共通のものであってもよいし、複数のユーザ毎に異なるものでもよい。すなわち、1つの仮想空間に複数のユーザオブジェクトが存在するようにしてもよいし、1つの仮想空間に1つのユーザオブジェクトが存在するようにしてもよい。また、仮想空間は、VR(Virtual Reality)、AR(Augmented Reality)、MR(Mixed Reality)及びSR(Substitutional Reality)等のXR技術を用いて生成されるものであってもよい。
【0016】
図1は、本開示の第1の実施の形態に従うシステム(情報処理システム)1の構成例を示す図である。図1に示すように、システム1は、複数のユーザがそれぞれ使用するユーザ端末10A,10B,10Cと、サーバ20と、を含み、これらの装置がネットワーク30によって互いに通信可能に接続されている。
【0017】
ユーザ端末10Aとユーザ端末10Bとは、無線基地局31と通信することにより、ネットワーク30と接続する。ユーザ端末10Cは、家屋などの施設に設置される無線ルータ32と通信することにより、ネットワーク30と接続する。以下、ユーザ端末10A,10B,10Cなどのユーザ端末を総称して「ユーザ端末10」とも称する。なお、ユーザ端末10は、有線通信によりネットワーク30と接続する構成であってもよい。
【0018】
ユーザ端末10は、ユーザが使用するコンピュータ(情報処理装置)である。ユーザ端末10は、携帯型の情報端末であってもよいし、PC(Personal Computer)又はゲーム機等の設置型の情報端末であってもよい。ユーザ端末10は、タッチスクリーンを備えていてもよいし、備えていなくてもよい。また、ユーザ端末10は、ARゴーグル及びARグラスを含むHMD(Head-Mounted Device)であってもよいし、コンタクトレンズのように目に装着可能なコンタクト型のデバイスであってもよい。以下では、ユーザ端末10がタッチスクリーンを備える携帯型端末であり、具体的には、スマートフォン、ファブレット又はタブレットなどであるものとして、説明をする。
【0019】
ユーザ端末10は、例えば、アプリ等を配信するプラットフォームを介してインストールされたアプリケーションプログラムを実行する。なお、ユーザ端末10は、アプリケーションプログラムを実行する代わりに、ウェブサイト閲覧用ソフトウェア、すなわちウェブブラウザを介して取得されるプログラムを実行してもよい。
【0020】
ユーザ端末10は、アプリケーションプログラム等のプログラムの実行により、仮想空間画像を生成し、当該仮想空間画像を表示部へ出力することを可能とする。ユーザ端末10は、仮想空間画像の生成にあたって、必要に応じてサーバ20との間で各種データを送受信しうる。
【0021】
サーバ20は、仮想空間画像の生成に必要なデータを、適宜、ユーザ端末10へ送信する。サーバ20は、ユーザに関する各種データを管理する。サーバ20は、例えば、ユーザの操作入力に関する情報をユーザ端末10から受信し、受信した情報に応じた処理を実行する。
【0022】
サーバ20は、ハードウェア構成として、通信IF(Interface)22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29と、を備え、これらが通信バスを介して互いに接続されている。
【0023】
通信IF22は、例えばLAN(Local Area Network)規格など各種の通信規格に対応しており、ユーザ端末10など外部の通信機器との間でデータを送受信するためのインタフェースとして機能する。
【0024】
入出力IF23は、サーバ20への情報の入力を受け付けるとともに、サーバ20の外部へ情報を出力するためのインタフェースとして機能する。入出力IF23は、マウス及びキーボード等の情報入力機器の接続を受け付ける入力受付部と、画像等を表示するためのディスプレイ等の情報出力機器の接続を受け付ける出力部と、を含む。
【0025】
メモリ25は、サーバ20における処理に使用されるデータ等を記憶するための記憶装置である。メモリ25は、例えば、プロセッサ29が処理を行う際に一時的に使用するための作業領域をプロセッサ29に提供する。メモリ25は、ROM(Read Only Memory)又はRAM(Random Access Memory)等の記憶装置を含んで構成されている。
【0026】
ストレージ26は、プロセッサ29が読み込んで実行するための各種プログラム及びデータを記憶するための記憶装置である。ストレージ26は、HDD(Hard Disk Drive)又はフラッシュメモリ等の記憶装置を含んで構成されている。
【0027】
プロセッサ29は、ストレージ26に記憶されるプログラムを読み込んで実行することにより、サーバ20の動作を制御する。プロセッサ29は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)又はGPU(Graphics Processing Unit)等を含んで構成されている。
【0028】
(ユーザ端末の構成)
図2は、図1に示すユーザ端末10の機能的な構成を示すブロック図である。図2に示すように、ユーザ端末10は、アンテナ110と、無線通信IF120と、タッチスクリーン130と、入出力IF140と、記憶部150と、音声処理部160と、マイク170と、スピーカ180と、制御部190と、を含む。
【0029】
アンテナ110は、ユーザ端末10が発する信号を電波として空間へ放射する。また、アンテナ110は、空間から電波を受信して受信信号を無線通信IF120へ与える。
【0030】
無線通信IF120は、ユーザ端末10が他の通信機器と通信するため、アンテナ110等を介して信号を送受信するための変復調処理などを行う。無線通信IF120は、チューナー及び高周波回路などを含む無線通信用の通信モジュールであり、ユーザ端末10が送受信する無線信号の変復調及び周波数変換を行い、受信信号を制御部190へ与える。
【0031】
タッチスクリーン130は、ユーザからの入力を受け付けて、ユーザに対する情報をディスプレイ132に出力する。タッチスクリーン130は、ユーザの入力操作を受け付けるためのタッチパネル131と、メニュー画面及び仮想空間画像等を画面に表示するためのディスプレイ132と、を含む。タッチパネル131は、例えば、静電容量方式のものを用いることによって、ユーザの指などが接近したことを検出しうる。ディスプレイ132は、例えば、LCD(Liquid Crystal Display)、有機EL(Electroluminescence)又はその他の表示装置によって実現される。
【0032】
入出力IF140は、ユーザ端末10への情報の入力を受け付けるとともに、ユーザ端末10の外部へ情報を出力するためのインタフェースとして機能する。
【0033】
記憶部150は、フラッシュメモリ又はRAM等により構成される。記憶部150は、ユーザ端末10がサーバ20から受信する各種データを記憶しうる。記憶部150は、仮想空間画像をユーザに提供しうるプログラム151と、仮想空間情報152と、ユーザ情報153と、を記憶する。
【0034】
仮想空間情報152は、例えば、仮想空間を生成するための情報を含む。また、仮想空間情報152は、例えば、仮想空間に配置される仮想カメラ及びユーザオブジェクト等の各種の仮想オブジェクトを生成するための情報を含む。また、仮想空間情報152は、例えば、各種の仮想オブジェクトを仮想空間に配置するための配置情報を含む。ユーザ情報153は、例えば、ユーザ端末10を識別する端末ID(Identification)、及びユーザを識別するユーザID情報等を含む。
【0035】
音声処理部160は、音声信号の変復調を行う。音声処理部160は、マイク170から与えられる信号を変調して、変調後の信号を制御部190へ与える。また、音声処理部160は、音声信号をスピーカ180へ与える。音声処理部160は、例えば、音声処理用のプロセッサによって実現される。マイク170は、音声信号の入力を受け付けて制御部190へ出力するための音声入力部として機能する。スピーカ180は、音声信号を、ユーザ端末10の外部へ出力するための音声出力部として機能する。
【0036】
制御部190は、記憶部150に記憶されるプログラムを読み込んで実行することにより、ユーザ端末10の動作を制御する。制御部190は、例えば、アプリケーションプロセッサなどのプロセッサによって実現される。
【0037】
制御部190は、プログラム151を読み込んで実行することにより、入力操作受付部191と、送受信部192と、空間生成部193と、配置部194と、移動制御部195と、画像生成部196と、の各機能を発揮する。ある局面において、制御部190は、サーバ20との間で各種情報の送受信を行いながら、仮想空間画像を生成する。
【0038】
入力操作受付部191は、タッチスクリーン130からの出力に基づいて、ユーザの入力操作を受け付ける。具体的には、入力操作受付部191は、ユーザの指などがタッチパネル131に接近したことを、タッチスクリーン130を構成する面の横軸及び縦軸からなる座標系の座標として検出する。
【0039】
入力操作受付部191は、タッチスクリーン130に対するユーザの操作を判別する。具体的には、入力操作受付部191は、いわゆる「接近操作」、「リリース操作」、「タップ操作」、「ダブルタップ操作」、「長押し操作(ロングタッチ操作)」、「ドラッグ操作(スワイプ操作)」、「ムーブ操作」、及び「フリック操作」などのユーザの操作を判別する。入力操作受付部191が判別するユーザの操作は、上記に限られない。例えば、タッチパネル131が、ユーザがタッチパネル131に対して押下する圧力の大きさを検出可能な機構を有する場合、入力操作受付部191は、ユーザが押下した圧力の大きさを判別する。
【0040】
送受信部192は、サーバ20から各種情報を受信し、また、サーバ20に対して各種情報を送信する。送受信部192は、例えば、サーバ20から仮想空間情報252の少なくとも一部を受信する。一例として、送受信部192は、他のユーザが操作する他ユーザオブジェクトに関する他ユーザオブジェクト情報をサーバ20から受信する。送受信部192は、例えば、ユーザオブジェクトの移動やその他の行動に関する情報をサーバ20へ送信する。
【0041】
空間生成部193は、仮想空間情報152を参照し、仮想空間を生成する。また、空間生成部193は、仮想空間に配置される仮想カメラ及びユーザオブジェクト等の仮想オブジェクトを生成する。空間生成部193によって生成される仮想オブジェクトには、他のユーザによって操作される他ユーザオブジェクト、及び動画を表示するためのスクリーンオブジェクト等が含まれうる。
【0042】
配置部194は、仮想空間情報152に含まれる配置情報を参照し、仮想空間に仮想カメラ及びユーザオブジェクト等の各種の仮想オブジェクトを配置する。例えば、配置部194は、他ユーザオブジェクト情報に基づいて、仮想空間に他ユーザオブジェクトを配置する。また、配置部194は、サーバ20から送信される情報等に基づいて、他ユーザオブジェクト及びその他の仮想オブジェクトを移動させる。
【0043】
移動制御部195は、ユーザオブジェクトを移動させるための移動操作(以下、単に「移動操作」とも称する)が行われたことに基づいて、仮想空間内においてユーザオブジェクトを移動させる。例えば、移動制御部195は、入力操作受付部191が受け付けた入力操作の入力位置の座標及び操作の種類に基づいてユーザの指示内容を解釈し、当該解釈に基づいて、ユーザオブジェクトを移動させる。
【0044】
画像生成部196は、仮想カメラに基づいて、仮想カメラから仮想空間内を撮像した画像である仮想空間画像を生成する。画像生成部196が生成した仮想空間画像は、タッチスクリーン130に出力され、ディスプレイ132上に表示される。
【0045】
画像生成部196は、移動操作がされていない場合、すなわちユーザオブジェクトが停止状態である場合、仮想空間画像の生成において当該ユーザオブジェクトを透明にする。一方、画像生成部196は、移動操作がされている場合、すなわちユーザオブジェクトが移動状態である場合、仮想空間画像の生成において当該ユーザオブジェクトを不透明にする。
【0046】
また、画像生成部196は、仮想空間画像におけるユーザオブジェクトを不透明から透明にする場合、当該ユーザオブジェクトの透明度を徐々に上げることが好ましい。すなわち、画像生成部196は、ユーザオブジェクトが移動状態から停止状態へ移行する場合、当該ユーザオブジェクトが不透明から透明に徐々に変化するようにフェードアウト処理をしてもよい。フェードアウト処理が行われる期間は、例えば0.1秒~2秒程度である。
【0047】
また、画像生成部196は、仮想空間画像におけるユーザオブジェクトを透明から不透明にする場合、当該ユーザオブジェクトの透明度を徐々に下げることが好ましい。すなわち、画像生成部196は、ユーザオブジェクトが停止状態から移動状態へ移行する場合、当該ユーザオブジェクトが透明から不透明に徐々に変化するようにフェードイン処理をしてもよい。フェードイン処理が行われる期間は、例えば0.1秒~2秒程度である。
【0048】
また、画像生成部196は、移動操作の開始後の第一期間において、ユーザオブジェクトが移動に伴う動作である付随動作を行うように仮想空間画像を生成することが好ましい。また、画像生成部196は、移動操作の終了後の第二期間において、ユーザオブジェクトが停止に伴う動作である付随動作を行うように仮想空間画像を生成することが好ましい。第一期間と第二期間とは、同じ長さであってもよいし、互い異なる長さであってもよい。また、画像生成部196は、ユーザオブジェクトに行わせる付随動作の種類に応じて、第一期間及び第二期間の少なくとも一方の長さを変化させてもよい。
【0049】
付随動作には、ユーザオブジェクトの姿勢の変更が含まれる。例えば、ユーザオブジェクトの移動に伴う付随動作である準備動作には、ユーザオブジェクトの上半身を傾ける動作、腕を曲げる動作、及びジャンプの前に膝を曲げる動作など、人間が動き出す際に通常行う動作が含まれる。また、例えば、ユーザオブジェクトの停止に伴う付随動作である余韻動作には、傾いている上半身を起こす動作、腕を伸ばす動作、及び膝を伸ばす動作など、人間が動きを止める際に通常行う動作が含まれる。
【0050】
なお、ユーザオブジェクトが、準備動作として上半身を傾ける動作を行い、余韻動作として上半身を起こす動作を行う場合、当該ユーザオブジェクトの動きの変化が分かりやすく、停止状態と移動状態との間における動作の差をより効果的に補完することができる。このため、準備動作として上半身を傾ける動作が行われ、余韻動作として上半身を起こす動作が実行されることが好ましい。
【0051】
また、画像生成部196は、移動操作の開始前後及び移動操作の終了前後において、仮想カメラとユーザオブジェクトとの距離を一定に保つことが好ましい。なお、一定には、若干の誤差が含まれる。
【0052】
(サーバの構成)
図3は、図1に示すサーバ20の機能的な構成を示すブロック図である。図3を参照して、サーバ20の詳細な構成を説明する。サーバ20は、プログラム251に従って動作することにより、通信部220と、記憶部250と、制御部290と、としての機能を発揮する。
【0053】
通信部220は、サーバ20がユーザ端末10などの外部の通信機器とネットワーク30を介して通信するためのインタフェースとして機能する。
【0054】
記憶部250は、サーバ20を動作させるための各種プログラム及びデータを記憶する。ある局面において、記憶部250は、プログラム251と、仮想空間情報252と、ユーザ情報253と、を記憶する。
【0055】
プログラム251は、ユーザ端末10を介して仮想空間画像をユーザに提供するためのプログラムである。例えば、プログラム251は、仮想空間情報252及びユーザ情報253等を参照して、仮想空間画像をユーザに提供するためのサーバ20側における各種処理を実行する。
【0056】
仮想空間情報252は、例えば、仮想空間を生成するための情報、及び仮想空間に配置される各種の仮想オブジェクトを生成するための情報を含む。仮想空間情報252の少なくとも一部は、仮想空間情報152の元となる情報である。仮想空間情報252には、各ユーザオブジェクトの仮想空間における位置及び行動に関する情報が含まれうる。また、仮想空間情報252には、動画に関する情報が含まれうる。
【0057】
ユーザ情報253は、各ユーザ端末10のユーザに関する情報である。例えば、ユーザ情報253は、ユーザ端末10又はユーザ端末10のユーザを識別する情報、及びその他の情報を含む。
【0058】
制御部290は、記憶部250に記憶されるプログラム251を実行することにより、送受信部291、サーバ処理部292、データ管理部293、及び計時部294としての機能を発揮する。
【0059】
送受信部291は、ユーザ端末10から各種情報を受信し、また、ユーザ端末10に対して各種情報を送信する。ユーザ端末10とサーバ20とは、例えば、仮想空間及び仮想オブジェクトの生成に関する情報、ユーザオブジェクトの移動及びその他の行動に関する情報、並びに動画の再生に関する情報などを送受信する。
【0060】
サーバ処理部292は、ユーザ端末10を介してユーザに仮想空間を提供するためにサーバ20において必要となる各種の処理を行う。サーバ処理部292は、送受信部291が受信したユーザ端末10からの各種要求に応じて、送受信部291に対して各種データの送信を指示する。また、サーバ処理部292は、サーバ処理部292による各種の演算結果に基づいて、データ管理部293に対して各種データの更新を指示する。
【0061】
データ管理部293は、サーバ処理部292からの指示に基づいて、記憶部250に記憶される各種データを追加、削除又は更新する処理を行う。計時部294は、時間を計測する処理を行う。また、計時部294は、例えば、複数のユーザ端末10において各種の時間に関する情報を同期させる処理を実行する。
【0062】
(比較例)
次に、図4を参照して、比較例に係るプログラムが実行されることにより生成される仮想空間画像について説明する。図4は、比較例に係るプログラムが実行されることにより、ユーザ端末10のディスプレイ132に表示される仮想空間画像の一例を示している。
【0063】
ユーザ端末10における制御部190は、比較例に係るプログラムを実行することにより、仮想空間画像を生成すると仮定する。このとき、制御部190は、ユーザによる移動操作の有無に関わらず、ユーザオブジェクト802を不透明にする。すなわち、制御部190は、ユーザオブジェクト802が移動状態である場合だけでなく、停止状態である場合においても、仮想空間画像においてユーザオブジェクト802を不透明にする。
【0064】
ここで、仮想空間には、仮想オブジェクトの一例であるスクリーンオブジェクト807が配置されているとする。制御部190は、ユーザオブジェクト802がスクリーンオブジェクト807の近傍に設定されたトリガ領域内に侵入した場合、スクリーンオブジェクト807において動画の再生を開始する。そして、ユーザオブジェクト802がトリガ領域内で停止状態であることにより、スクリーンオブジェクト807において動画の再生が継続される。
【0065】
動画の再生形式は、サーバ20から動画情報を都度取得するストリーミング形式でもよいし、記憶部150に動画情報を予めダウンロードしておくダウンロード形式であってもよい。動画の再生は、音声の出力を伴ってなされることが好ましい。
【0066】
このように、スクリーンオブジェクト807において動画の再生が行われる場合において、上述のとおりユーザオブジェクト802が不透明である場合、スクリーンオブジェクト807の一部がユーザオブジェクト802に隠れることにより、ユーザにおいて動画の一部を見ることができない事態が生じうる。そこで、本開示に係るプログラムでは、以下のような動作により、このような課題を解決する。
【0067】
(プログラムの動作例)
(a)動作の流れ
次に、図5から図7を参照して、本開示の第1の実施の形態に係るプログラムにおける動作例について説明する。以降で説明する各処理は、ユーザ端末10における制御部190がプログラム151を、サーバ20における制御部290がプログラム251をそれぞれ実行することにより実現される。
【0068】
なお、本明細書で説明する各フローチャートを構成する各処理の順序は、処理内容に矛盾や不整合が生じない範囲で順不同であり、並列的に実行されてもよい。また、本明細書で説明する各フローチャートを構成する処理の一部は、省略してもよい。
【0069】
図5は、本開示の第1の実施の形態に従う仮想空間の提供に係る処理の一例を示すフローチャートである。まず、ステップS110において、制御部190は、仮想空間情報152を参照し、仮想空間を生成する。同様に、制御部190は、仮想カメラ及びユーザオブジェクトを含む仮想オブジェクトを生成する。制御部190は、仮想空間及び仮想オブジェクトの生成において、必要に応じてサーバ20から仮想空間情報252等の各種情報を受信してもよい。
【0070】
ステップS120において、制御部190は、仮想空間情報152に含まれる配置情報を参照し、仮想空間に仮想オブジェクトを配置する。このとき、制御部190は、ユーザオブジェクトから所定距離の位置に仮想カメラを配置する。
【0071】
ステップS130において、制御部190は、仮想空間画像を生成する。このとき、制御部190は、ユーザオブジェクトを透明にする。そして、制御部190は、生成した仮想空間画像をディスプレイ132に表示する。
【0072】
仮想空間画像は、仮想カメラに基づく画像であり、仮想カメラから仮想空間内を撮像した画像である。また、仮想カメラの視線方向は、ユーザによって仮想カメラの向きを変更するための入力操作がされたことに基づいて変更されうる。例えば、仮想カメラは、ユーザオブジェクトとの距離を維持しながら、ユーザによる入力操作に応じた位置に移動する。
【0073】
制御部190は、ユーザオブジェクトの移動操作を検出しない場合(ステップS140において「NO」)、ユーザオブジェクトを透明で表示することを継続する。そして、制御部190は、プログラム151を終了するための入力操作を受け付けたこと等に応じて、一連の処理を終了する。
【0074】
一方、制御部190は、ユーザオブジェクトの移動操作を検出した場合(ステップS140において「YES」)、ステップS150において、ユーザオブジェクトを徐々に不透明にするフェードイン処理を開始する。なお、制御部190は、ユーザによる移動操作を検出した場合、必要に応じて、移動後のユーザオブジェクトの位置を特定するための情報をサーバ20へ送信する。
【0075】
ステップS160において、制御部190は、ユーザオブジェクトに対して移動に伴う準備動作を実行させる。
【0076】
ステップS170において、制御部190は、ユーザオブジェクトを移動させる処理を行う。また、制御部190は、ユーザオブジェクトの移動と連動するように、ユーザオブジェクトと同じ移動速度で仮想カメラを移動させる処理を行う。これにより、ユーザオブジェクトと仮想カメラとは、相対的な位置関係を維持したままで移動する。
【0077】
制御部190は、ユーザオブジェクトの移動操作の終了を検出しない場合(ステップS180において「NO」)、ステップS170に戻り、ユーザオブジェクト及び仮想カメラを移動させる処理を継続する。
【0078】
一方、制御部190は、ユーザオブジェクトの移動操作の終了を検出した場合(ステップS180において「YES」)、ステップS190において、ユーザオブジェクト及び仮想カメラの移動を停止させる処理を行う。
【0079】
ステップS200において、制御部190は、ユーザオブジェクトを徐々に透明にするフェードアウト処理を開始する。
【0080】
ステップS210において、制御部190は、ユーザオブジェクトに対して停止に伴う余韻動作を実行させる。そして、制御部190は、プログラム151を終了するための入力操作を受け付けたこと等に応じて、一連の処理を終了する。
【0081】
(b)仮想空間及び仮想空間画像の説明
以下、図6及び図7を用いて、図5に示した一連の処理において生成される仮想空間及び仮想空間画像について説明する。図6は、本開示の第1の実施の形態に従う仮想空間501の一例を示す模式図である。図6において、仮想空間501には、ユーザオブジェクト502と、仮想カメラ503と、柱オブジェクト504と、他ユーザオブジェクト506と、が配置されている。
【0082】
ユーザオブジェクト502は、ユーザが操作可能なオブジェクトであり、例えばユーザのアバターである。他ユーザオブジェクト506は、他のユーザが操作可能なオブジェクトであり、例えば他のユーザのアバターである。仮想カメラ503は、仮想空間501を撮像する仮想オブジェクトである。柱オブジェクト504は、仮想空間501に固定配置される仮想オブジェクトである。
【0083】
(b-1)停止状態から移動状態へ移行する場合の仮想空間画像
図7は、本開示の第1の実施の形態に従う表示画面の一例を示す模式図である。具体的には、図7の(a)は、ユーザオブジェクト502が停止状態であるときの表示画面を示している。図7の(b)は、ユーザオブジェクト502が付随動作を実行しているときの表示画面を示している。図7の(c)は、ユーザオブジェクト502が移動状態であるときの表示画面を示している。
【0084】
図7の(a)は、ユーザオブジェクト502の移動操作が行われる前の状態(図5に示すステップS130)において表示される仮想空間画像を示す。当該仮想空間画像において、停止状態であるユーザオブジェクト502は透明であり、表示されていない。なお、ユーザオブジェクト502の所有物がある場合には、当該所有物も表示されない。
【0085】
他ユーザオブジェクト506は、移動状態であるか否かに関わらず、ユーザオブジェクト502を操作するユーザのディスプレイ132上に表示される。例えば、図7の(a)では他ユーザオブジェクト506は立ち止まっており移動をしていないが、ディスプレイ132上に表示されている。
【0086】
なお、他ユーザオブジェクト506を操作する他のユーザのディスプレイ上では、他ユーザオブジェクト506は透明であり、表示されていない。一方、ユーザオブジェクト502は、当該他のユーザのディスプレイ上では不透明であり、表示されている。
【0087】
また、当該他のユーザによって、他ユーザオブジェクト506に対する移動又はその他の行動をさせるための操作が行われたとする。この場合、移動後の他ユーザオブジェクト506の位置、又はその他の行動を特定するための情報が、サーバ20を介してユーザオブジェクト502のユーザのユーザ端末10に送信される。制御部190は、その情報に基づいて、仮想空間501における他ユーザオブジェクト506の位置及び行動を制御する。
【0088】
また、図7の(a)では、操作子601が破線で示されている。操作子601は、ユーザオブジェクト502を移動させる移動操作の入力を受け付けるために表示される仮想的なコントローラである。ユーザは、例えば、操作子601の中央にある円状部をドラッグすることで、ドラッグした方向にユーザオブジェクト502を移動させることができる。
【0089】
操作子601は一例であり、他の形状や入力態様を採用してもよい。仮想空間501の視認性を高めるという観点から、操作子601は、ユーザの移動操作を受け付けるまでは、完全に透明な状態又は視認可能ではあるが透明度の高い状態であることが好ましい。
【0090】
図7の(b)は、ユーザオブジェクト502の移動操作が開始され、当該ユーザオブジェクト502のフェードイン処理(図5に示すステップS150)及び準備動作(図5に示すステップS160)が行われている状態における仮想空間画像を示す。当該仮想空間画像において、ユーザオブジェクト502が半透明で表示されている。図7の(b)では、ユーザオブジェクト502が半透明で表示されていることを示すために、当該ユーザオブジェクト502を破線で示している。例えば、操作子601を左右に2分割する線分lよりも右側(矢印A方向側)に位置する領域へ円状部がドラッグされた場合、ドラッグ操作の開始後の第一期間において、ユーザオブジェクト502は右方向への移動の準備動作を実行する。
【0091】
具体的には、ユーザオブジェクト502は、体の向きを右側へ向けて、上半身を傾ける。また、ユーザオブジェクト502は、さらに、膝及び腕を曲げるなどの準備動作を行ってもよい。
【0092】
また、図7の(b)では、右方向への移動操作がされていることを示すため、操作子601の円状部分は右側に位置している。また、移動操作がされていることに応じて、操作子601は、図7の(a)の場合よりも透明度の低い状態にされている。
【0093】
図7の(c)は、ユーザオブジェクト502のフェードイン処理及び準備動作の完了後であり、かつ当該ユーザオブジェクト502の移動操作が継続中である状態(図5に示すステップS170)における仮想空間画像を示している。当該仮想空間画像において、ユーザオブジェクト502が不透明で表示されている。図7の(c)では、ユーザオブジェクト502が不透明で表示されていることを示すために、当該ユーザオブジェクト502を実線で示している。図7の(c)では、右方向への移動操作がされているため、ユーザオブジェクト502は右方向へ移動している。
【0094】
また、図7の(c)では、図7の(b)と同様に、右方向への移動操作がされていることを示すため、操作子601の円状部分は右側に位置している。また、図7の(c)では、図7の(b)と同様に、移動操作がされていることに応じて、操作子601は、図7の(a)の場合よりも透明度の低い状態にされている。移動操作中において、ユーザの移動操作を容易にするという観点から、操作子601は不透明であってもよいし、仮想空間501の視認性を高めるという観点から、半透明又は透明であってもよい。
【0095】
ユーザオブジェクト502の停止状態から移動状態への移行期間において、図7の(a)に示す仮想空間画像から図7の(b)に示す仮想空間画像を経由して、図7の(c)に示す仮想空間画像が表示される。図7では、ユーザオブジェクト502が付随動作を実行しているときの表示画面として図7の(b)の1つのみを示しているが、制御部190は、ユーザオブジェクト502の付随動作としての動きが連続的又は段階的に変化するように仮想空間画像を生成する。
【0096】
また、この移行期間において、ユーザオブジェクト502のフェードイン処理により、ユーザオブジェクト502の透明度は連続的又は段階的に下げられる。すなわち、ユーザオブジェクト502のフェードイン処理と、ユーザオブジェクト502の移動のための準備動作とは並列的に実行される。
【0097】
ユーザオブジェクト502が準備動作を行う第一期間の長さは、当該移行期間と同じであってもよいし、当該移行期間よりも短くてもよい。例えば、第一期間が移行期間よりも短い場合、フェードイン処理の開始とともにユーザオブジェクト502の準備動作及び移動が開始し、フェードイン処理の継続中に準備動作が完了する。また、例えば、第一期間が移行期間よりも長い場合、フェードイン処理の開始とともにユーザオブジェクト502の準備動作及び移動が開始し、フェードイン処理が完了した後においても準備動作が継続する。
【0098】
(b-2)移動状態から停止状態へ移行する場合の仮想空間画像
ユーザオブジェクト502の移動状態から停止状態への移行期間において、図7の(c)に示す仮想空間画像から図7の(b)に示す仮想空間画像を経由して、図7の(a)に示す仮想空間画像が表示される。
【0099】
図7の(b)に示すように、ユーザオブジェクト502は、移動操作の終了後、すなわちユーザによる円状部のドラッグ操作の終了後の第二期間において、停止までの余韻動作を実行する。例えば、ユーザオブジェクト502は、傾いている上半身を起こして、足踏みを行う。
【0100】
また、この移行期間において、ユーザオブジェクト502のフェードアウト処理により、ユーザオブジェクト502の透明度は連続的又は段階的に上げられる。すなわち、ユーザオブジェクト502のフェードアウト処理と、ユーザオブジェクト502の停止のための余韻動作とは並列的に実行される。
【0101】
なお、ユーザオブジェクト502が余韻動作を行う第二期間の長さは、当該移行期間と同じであってもよいし、当該移行期間よりも短くてもよい。例えば、第二期間が移行期間よりも短い場合、フェードアウト処理の開始とともにユーザオブジェクト502の余韻動作が開始し、フェードアウト処理の継続中に余韻動作が完了する。
【0102】
(b-3)停止状態におけるユーザオブジェクトのジェスチャーの実行
ユーザオブジェクト502は、ユーザが表示画面に含まれるアイコンを押下する等の操作を行った場合、当該操作の内容に応じたジェスチャーを実行してもよい。ジェスチャーには、拍手をする動作、及び手を振る動作などが含まれる。
【0103】
制御部190は、ユーザオブジェクト502が停止状態、すなわち非表示である状態においてジェスチャーを実行する場合、当該ユーザオブジェクト502を表示する。そして、制御部190は、ユーザオブジェクト502のジェスチャーが終了すると、当該ユーザオブジェクト502を再び非表示にする。
【0104】
このような構成により、ユーザオブジェクト502が実行することのできる動作の種類を増やし、さらに、ユーザオブジェクト502の停止中における動作を、当該ユーザオブジェクト502を操作するユーザが確認することができる。
【0105】
(b-4)移動速度に応じた動作の制御
ユーザオブジェクト502は、操作子601の円状部がドラッグされる長さに応じて、移動速度が変化してもよい。具体的には、移動操作が行われていない場合における操作子601の円状部の中心位置を初期位置とすると、ドラッグされた円状部の中心位置と初期位置との距離がゼロより大きく、かつ所定値未満である場合にはユーザオブジェクト502が歩いて移動する。また、ドラッグされた円状部の中心位置と初期位置との距離が所定値以上である場合にはユーザオブジェクト502が走って移動する。以下、ユーザオブジェクト502が歩いている状態を歩行状態と称し、ユーザオブジェクト502が走っている状態を走行状態と称する。
【0106】
制御部190は、ユーザオブジェクト502が歩行状態から走行状態へ移行する場合、当該ユーザオブジェクト502の上半身の傾きを大きくする等の付随動作を実行させてもよい。また、制御部190は、ユーザオブジェクト502が走行状態から歩行状態へ移行する場合、当該ユーザオブジェクト502の上半身の傾きを小さくする等の付随動作を実行させてもよい。
【0107】
このような場合において、後述するように、ユーザオブジェクト502の向きと仮想カメラ503の視線方向とが合っていると、ユーザオブジェクト502の移動速度が大きくなるほど当該ユーザオブジェクト502の上半身の傾きが大きくなり、当該ユーザオブジェクト502の頭が仮想カメラ503から離れる。このため、仮想カメラ503による撮像画像を見るユーザにおいては、ユーザオブジェクト502の移動速度が大きくなるほど、ユーザオブジェクト502との距離が遠くなるように感じる。
【0108】
一方、ユーザオブジェクト502の移動速度が小さくなるほど当該ユーザオブジェクト502の上半身の傾きが小さくなり、当該ユーザオブジェクト502の頭が仮想カメラ503に近づく。このため、仮想カメラ503による撮像画像を見るユーザにおいては、ユーザオブジェクト502の移動速度が小さくなるほど、ユーザオブジェクト502との距離が近くなるように感じる。
【0109】
なお、本実施形態では、ユーザオブジェクト502の移動速度が大きくなるほど当該ユーザオブジェクト502の上半身の傾きが大きくなる構成を採用しているが、このような構成に限定されない。例えば、ユーザオブジェクト502が走行を開始したタイミングから所定時間、当該ユーザオブジェクト502の上半身の傾きを大きくし、当該所定時間が経過した後、上半身の傾きを徐々に小さくする構成を採用してもよい。このような場合であっても、上記所定時間が経過した後の走行状態における上半身の傾きは、歩行状態における上半身の傾きよりも大きいことが望ましい。
【0110】
(変形例1)
図8は、本開示の第1の実施の形態の変形例1に係る表示画面の一例を示す模式図である。具体的には、図8の(a)は、ユーザオブジェクト502が移動状態である場合の表示画面を示している。図8の(b)は、ユーザオブジェクト502の移動停止時におけるユーザオブジェクト502の向きを説明するための表示画面を示している。
【0111】
画像生成部196は、仮想空間画像の生成において、ユーザオブジェクト502が移動状態から停止状態へ移行する場合、当該ユーザオブジェクト502の向きと仮想カメラ503の視線方向とが合うように当該ユーザオブジェクト502を制御してもよい。
【0112】
具体的には、図8の(a)に示すように、ユーザオブジェクト502が右方向へ移動しているとする。このような移動状態において移動操作が終了すると、画像生成部196は、図8の(b)に示すように、ユーザオブジェクト502の背中側に仮想カメラ503が位置するように当該ユーザオブジェクト502の向きを変更する。
【0113】
画像生成部196は、ユーザオブジェクト502の右方向への移動操作が終了した場合だけでなく、仮想カメラ503が位置する方向等の他の方向への移動操作が終了した場合においても同様に、ユーザオブジェクト502の背中側に仮想カメラ503が位置するように当該ユーザオブジェクト502の向きを変更する。
【0114】
そして、画像生成部196は、ユーザオブジェクト502の向きと仮想カメラ503の視線方向とを合わせた後、例えば、上述したフェードアウト処理を行い、当該ユーザオブジェクト502を透明にする。なお、画像生成部196は、ユーザオブジェクト502の向きの変更と、当該ユーザオブジェクト502のフェードアウト処理とを並列的に行ってもよい。
【0115】
また、画像生成部196は、ユーザオブジェクト502の移動状態から停止状態への移行期間において、図5に示すステップS210に示す余韻動作を実行させる場合、例えば、当該ユーザオブジェクト502の向きの変更と、余韻動作を実行させる処理とを並列的に行う。
【0116】
上記のように、ユーザオブジェクト502が移動状態から停止状態へ移行する場合、当該ユーザオブジェクト502の向きと仮想カメラ503の視線方向とを合わせることにより、ユーザオブジェクト502が、見えていないはずの他のユーザオブジェクトとコミュニケーションをとるなどの違和感を防ぐことができる。
【0117】
しかしながら、ユーザオブジェクト502を操作するユーザは、当該ユーザオブジェクト502の表情を確認することができない。このため、ユーザオブジェクト502が移動状態から停止状態へ移行する場合において、当該ユーザオブジェクト502の向きと仮想カメラ503の視線方向とを合わせない構成を採用してもよい。
【0118】
また、例えば、ユーザオブジェクト502が移動状態から停止状態へ移行する場合、当該ユーザオブジェクト502の向きと仮想カメラ503の視線方向とを合わせ、さらに、当該ユーザオブジェクト502の顔を含む一部又は全部の画像であって、当該ユーザオブジェクト502を正面から見た画像を表示画面に表示する構成を採用してもよい。
【0119】
(変形例2)
画像生成部196は、移動操作の開始前後及び移動操作の終了前後において、仮想カメラ503とユーザオブジェクト502との距離を変更してもよい。例えば、画像生成部196は、図5のステップS170に示すユーザオブジェクト502の移動開始時において、当該ユーザオブジェクト502を仮想カメラ503から遠ざけるように、当該ユーザオブジェクト502を制御する。
【0120】
具体的には、ユーザオブジェクト502の停止時におけるユーザオブジェクト502と仮想カメラ503との距離を第一距離とする。画像生成部196は、ユーザオブジェクト502の移動操作が開始すると、ユーザオブジェクト502と仮想カメラ503との距離が、第一距離よりも長い第二距離になるように、ユーザオブジェクト502を移動させる。そして、画像生成部196は、当該距離が第二距離のまま維持されるように、ユーザオブジェクト502及び仮想カメラ503を同じ移動速度で移動させる。
【0121】
また、画像生成部196は、例えば、図5のステップS190に示すユーザオブジェクト502の移動停止時において、当該ユーザオブジェクト502を仮想カメラ503に近づけるように、当該ユーザオブジェクト502を制御する。具体的には、画像生成部196は、ユーザオブジェクト502の移動操作が終了すると、ユーザオブジェクト502と仮想カメラ503との距離が第二距離から第一距離に変更されるように、ユーザオブジェクト502を移動させる。
【0122】
このような構成により、ユーザオブジェクト502が移動状態から停止状態へ移行する場合、ユーザにとって、ユーザオブジェクト502が自分に近づいた後に表示画面から消えるため、ユーザオブジェクト502が自分の中に取り込まれたような感覚をより得やすくなる。また、ユーザオブジェクト502が停止状態から移動状態へ移行する場合、ユーザにとって、ユーザオブジェクト502が自分から離れていくため、ユーザオブジェクト502が自分の中から出てくるような感覚をより得やすくなる。
【0123】
なお、画像生成部196は、仮想カメラ503とユーザオブジェクト502との距離を変更する際に、ユーザオブジェクト502を移動させる代わりに、仮想カメラ503を移動させてもよい。
【0124】
また、移動操作の開始前後及び移動操作の終了前後において、仮想カメラ503とユーザオブジェクト502との距離を変更する代わりに、又は当該距離を変更することに加えて、ユーザオブジェクト502の大きさを変更する構成を採用してもよい。
【0125】
例えば、画像生成部196は、ユーザオブジェクト502が移動状態から停止状態へ移行する場合、当該ユーザオブジェクト502のフェードアウト処理を行いながら、当該ユーザオブジェクト502の大きさを、移動状態における当該ユーザオブジェクト502の大きさ(以下、単に「移動時の大きさ」とも称する)から徐々に大きくしてもよい。また、画像生成部196は、例えば、ユーザオブジェクト502が停止状態から移動状態へ移行する場合、当該ユーザオブジェクト502のフェードイン処理を行いながら、当該ユーザオブジェクト502の大きさを、移動時の大きさよりも大きい状態から移動時の大きさになるまで、徐々に小さくしてもよい。
【0126】
本開示の第1の実施の形態に係る内容を列記すると以下の通りである。
【0127】
(項目1-1)
プロセッサ及びメモリを備えるコンピュータにより実行されるプログラムであって、
前記プログラムは、前記プロセッサに、
仮想空間を生成するステップと、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置するステップと、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成するステップと、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるステップと、を実行させ、
前記仮想空間画像を生成するステップにおいて、
前記移動操作がされていない場合、前記ユーザオブジェクトを透明にし、
前記移動操作がされている場合、前記ユーザオブジェクトを不透明にする、
プログラム。
これにより、ユーザオブジェクトの停止時においては当該ユーザオブジェクトが表示されないことにより、スクリーンオブジェクトなど、ユーザが見ようとする他の仮想オブジェクトがユーザオブジェクトによって隠れてしまうことを防ぐことができる。また、ユーザオブジェクトの移動時においては、ユーザオブジェクトが表示されることにより、ユーザオブジェクトの移動に伴う映像酔いを防ぎ、かつ仮想空間におけるユーザオブジェクトの移動方向を容易に把握することができる。したがって、仮想空間における移動操作性を維持しながら、視認性の低下を抑制することができる。
【0128】
(項目1-2)
前記仮想空間画像を生成するステップにおいて、
前記ユーザオブジェクトを不透明から透明にする場合、前記ユーザオブジェクトの透明度を徐々に上げて、
前記ユーザオブジェクトを透明から不透明にする場合、前記ユーザオブジェクトの透明度を徐々に下げる、
項目1-1に記載のプログラム。
これにより、ユーザオブジェクトの表示および非表示が切り替わることによる違和感を防ぐことができる。また、移動停止時においてはユーザオブジェクトが徐々に透明になることにより、ユーザにとって、ユーザオブジェクトが自分の中に取り込まれたような感覚になる一方で、移動開始時においてはユーザオブジェクトが徐々に不透明になることにより、ユーザにとって、ユーザオブジェクトが自分の中から出てくるような感覚になるため、仮想空間への没入感を高めることができる。
【0129】
(項目1-3)
前記プログラムは、前記プロセッサに、さらに、
前記移動操作の開始後の第一期間及び前記移動操作の終了後の第二期間のうちの少なくとも一方において、前記ユーザオブジェクトに、前記ユーザオブジェクトの移動又は停止に伴う動作である付随動作をさせるステップを実行させ、
前記付随動作は、前記ユーザオブジェクトが停止状態から移動状態へ移行するまでの準備動作、及び前記ユーザオブジェクトが移動状態から停止状態へ移行するまでの余韻動作のうちの少なくとも一方を含む、
項目1-1又は項目1-2に記載のプログラム。
これにより、ユーザオブジェクトに対してより自然な動作を実行させることができる。
【0130】
(項目1-4)
前記付随動作は、前記ユーザオブジェクトの姿勢の変更を含む、
項目1-3に記載のプログラム。
このように、変化が大きく分かりやすい動きを付随動作としてユーザオブジェクトに実行させることにより、停止状態と移動状態との間における動作の差をより効果的に補完することができる。
【0131】
(項目1-5)
前記移動操作の開始前後及び前記移動操作の終了前後において、前記仮想カメラと前記ユーザオブジェクトとの距離を一定に保つ、
項目1-1から項目1-4のいずれか一項に記載のプログラム。
これにより、映像酔いをより一層防ぐことができる。
【0132】
(項目1-6)
前記ユーザオブジェクトが停止状態から移動状態へ移行する場合、前記ユーザオブジェクトを前記仮想カメラから遠ざけるように前記ユーザオブジェクトを制御し、
前記ユーザオブジェクトが移動状態から停止状態へ移行する場合、前記ユーザオブジェクトを前記仮想カメラに近づけるように前記ユーザオブジェクトを制御する、
項目1-1から項目1-4のいずれか一項に記載のプログラム。
これにより、ユーザオブジェクトが移動状態から停止状態へ移行する場合、ユーザにとって、ユーザオブジェクトが自分に近づいた後に表示画面から消えるため、ユーザオブジェクトが自分の中に取り込まれたような感覚をより得やすくなる。また、ユーザオブジェクトが停止状態から移動状態へ移行する場合、ユーザにとって、ユーザオブジェクトが自分から離れていくため、ユーザオブジェクトが自分の中から出てくるような感覚をより得やすくなる。
【0133】
(項目1-7)
前記ユーザオブジェクトが移動状態から停止状態へ移行する場合、前記ユーザオブジェクトの向きと前記仮想カメラの視線方向とを合わせるように前記ユーザオブジェクトを制御する、
項目1-1から項目1-6のいずれか一項に記載のプログラム。
これにより、仮想カメラによって撮像される領域、すなわちユーザに対して表示される領域と、ユーザオブジェクトが見ることのできる領域との間にズレが生じること防ぐことができるため、ユーザにおいて、ユーザオブジェクトと同じ感覚であるように感じることができる。また、これにより、ユーザオブジェクトが、当該ユーザオブジェクトからは見えていないはずの他のユーザオブジェクトとコミュニケーションをとるなどの違和感を防ぐことができる。さらに、他のユーザにおいて、ユーザオブジェクトの向く方向を確認することにより、当該ユーザオブジェクトのユーザの見えている方向を把握することができる。
【0134】
(項目1-8)
プロセッサ及びメモリを備えるコンピュータにより実行される方法であって、
前記方法は、前記プロセッサに、
仮想空間を生成するステップと、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置するステップと、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成するステップと、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるステップと、を実行させることを含み、
前記仮想空間画像を生成するステップにおいて、
前記移動操作がされていない場合、前記ユーザオブジェクトを透明にし、
前記移動操作がされている場合、前記ユーザオブジェクトを不透明にする、
方法。
これにより、ユーザオブジェクトの停止時においては当該ユーザオブジェクトが表示されないことにより、スクリーンオブジェクトなど、ユーザが見ようとする他の仮想オブジェクトがユーザオブジェクトによって隠れてしまうことを防ぐことができる。また、ユーザオブジェクトの移動時においては、ユーザオブジェクトが表示されることにより、ユーザオブジェクトの移動に伴う映像酔いを防ぎ、かつ仮想空間におけるユーザオブジェクトの移動方向を容易に把握することができる。したがって、仮想空間における移動操作性を維持しながら、視認性の低下を抑制することができる。
【0135】
(項目1-9)
プロセッサ及びメモリを備える情報処理装置であって、
前記プロセッサは、
仮想空間を生成し、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置し、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成し、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるものであり、
前記仮想空間画像の生成において、
前記移動操作がされていない場合、前記ユーザオブジェクトを透明にし、
前記移動操作がされている場合、前記ユーザオブジェクトを不透明にする、
情報処理装置。
これにより、ユーザオブジェクトの停止時においては当該ユーザオブジェクトが表示されないことにより、スクリーンオブジェクトなど、ユーザが見ようとする他の仮想オブジェクトがユーザオブジェクトによって隠れてしまうことを防ぐことができる。また、ユーザオブジェクトの移動時においては、ユーザオブジェクトが表示されることにより、ユーザオブジェクトの移動に伴う映像酔いを防ぎ、かつ仮想空間におけるユーザオブジェクトの移動方向を容易に把握することができる。したがって、仮想空間における移動操作性を維持しながら、視認性の低下を抑制することができる。
【0136】
[第2の実施の形態]
再び図2を参照して、第1の実施の形態では、上記のように、ユーザオブジェクト502の移動操作の有無に応じて、ユーザオブジェクト502を透明にすることと、ユーザオブジェクト502を不透明にすることとの切り替えが行われる。すなわち、第1の実施の形態では、ユーザオブジェクト502の移動が終了するたびに、ユーザオブジェクト502が仮想空間画像から消える。このように、高い頻度でユーザオブジェクト502が仮想空間画像から消えるため、ユーザに対して違和感を与える可能性がある。
【0137】
そこで、第2の実施の形態では、仮想空間画像において、ユーザオブジェクト502を透明にすることと、ユーザオブジェクト502を不透明にすることとの間で切り替える必要性がより高い状況において、当該切り替えが行われる構成について説明する。
【0138】
(ユーザ端末の構成)
第2の実施の形態に係るユーザ端末10において、制御部190は、仮想カメラ503の向きに応じて、ユーザオブジェクト502を透明にすることと、ユーザオブジェクト502を不透明にすることとを切り替える。
【0139】
より詳細には、ユーザは、例えば、図2に示すユーザ端末10のタッチスクリーン130を押下することにより、仮想カメラ503の向きを操作することができる。タッチスクリーン130は、ユーザによって仮想カメラ503の向きに対する操作が行われた場合、操作内容を制御部190へ出力する。例えば、ユーザが2本の指でドラッグ操作を行った場合に、仮想カメラ503の向きが変更される構成であるとする。この場合、タッチスクリーン130は、ユーザの操作内容として、ユーザの指が移動した方向などを制御部190へ出力する。
【0140】
制御部190における入力操作受付部191は、タッチスクリーン130から出力された操作内容を受けると、当該操作内容を配置部194へ出力する。配置部194は、入力操作受付部191から出力された当該操作内容を受けると、当該操作内容に基づいて、仮想カメラ503の向き、すなわち仮想カメラ503の視線方向を変更する。
【0141】
なお、配置部194は、仮想カメラ503の向きに対する操作が行われていない状態では、例えば、ユーザオブジェクト502が仮想空間画像の中央に位置し、かつ仮想カメラ503の視線方向が水平方向に沿うように仮想カメラ503の向きを調整する。
【0142】
画像生成部196は、仮想カメラ503の向きに対する操作が行われ、当該仮想カメラ503の仰角または俯角が所定値以上になった場合、仮想空間画像におけるユーザオブジェクト502を透明から不透明に切り替える。
【0143】
具体例について、図9を用いて説明する。図9は、本開示の第2の実施の形態に従う表示画面の一例を示す模式図である。図9の(a)は、仮想カメラ503の仰角または俯角が所定値未満である場合に生成される仮想空間画像を示している。図9の(b)は、仮想カメラ503の仰角が所定値以上である場合に生成される仮想空間画像を示している。
【0144】
図9の(a)に示すように、仮想カメラ503の向きに対するユーザの操作が行われていない場合、または当該操作が行われたものの、仮想カメラ503の仰角または俯角が所定値未満である場合、画像生成部196は、仮想空間画像におけるユーザオブジェクト502を不透明にする。
【0145】
図9の(a)に示す表示画面がディスプレイ132に表示されている状況において、ユーザが、ユーザオブジェクト502よりも上方の景色を見るために、仮想カメラ503を上向きに変更する操作を行い、当該仮想カメラ503の仰角が所定値以上となったとする。この場合、画像生成部196は、図9の(b)に示すように、仮想空間画像におけるユーザオブジェクト502を不透明から透明に切り替える。
【0146】
図9の(b)に示す表示画面がディスプレイ132に表示されている状況において、仮想カメラ503の向きに対するユーザの操作が再び行われ、仮想カメラ503の仰角が所定値未満となったとする。この場合、画像生成部196は、図9の(a)のように、仮想空間画像におけるユーザオブジェクト502を透明から不透明に切り替える。
【0147】
また、ユーザが、ユーザオブジェクト502の足元を見るために、仮想カメラ503を下向きに変更する操作を行い、当該仮想カメラ503の俯角が所定値以上となったとする。この場合も同様に、画像生成部196は、仮想空間画像におけるユーザオブジェクト502を不透明から透明に切り替える。
【0148】
(プログラムの動作例)
次に、第2の実施の形態に従うプログラムの動作の流れを説明する。図10は、本開示の第2の実施の形態に従うプログラムの動作の流れの一例を示すフローチャートである。図10に示すように、まず、制御部190は、仮想空間情報152を参照し、仮想空間501、仮想カメラ503及び仮想オブジェクトを生成する(ステップS510)。
【0149】
次に、制御部190は、仮想空間情報152に含まれる配置情報を参照し、仮想空間501に仮想オブジェクト及び仮想カメラ503を配置する(ステップS520)。仮想カメラ503の初期位置は、例えば、ユーザオブジェクト502の視点位置からユーザオブジェクト502の後方側へ所定距離だけ離れた位置である。
【0150】
次に、制御部190は、ユーザオブジェクト502を不透明にした仮想空間画像を生成し、生成した仮想空間画像をディスプレイ132に表示する(ステップS530)。
【0151】
次に、制御部190は、ユーザによって仮想カメラ503の向きを変更する操作が行われ、操作内容を受けたとする(ステップS540において「YES」)。この場合、制御部190は、仮想空間501に配置された仮想カメラ503の向きを、当該操作内容に基づいて変更する(ステップS550)。
【0152】
次に、制御部190は、仮想カメラ503の仰角または俯角が所定値以上であるか否かを確認する(ステップS560)。そして、制御部190は、仮想カメラ503の仰角または俯角が所定値以上である場合(ステップS560において「YES」)、仮想空間画像におけるユーザオブジェクト502を不透明から透明に切り替え、切り替え後の仮想空間画像をディスプレイ132に表示する(ステップS570)。
【0153】
一方、ステップS540において、制御部190は、仮想カメラ503の向きを変更する操作内容を受けていない場合(ステップS540において「NO」)、ユーザオブジェクト502を透明にせず、ユーザオブジェクト502が不透明である仮想空間画像の表示を継続する。
【0154】
また、仮想カメラ503の向きを変更する操作が行われた場合であって(ステップS540において「YES」)、向きを変更された後の仮想カメラ503の仰角及び俯角がいずれも所定値未満であるとする(ステップS560において「NO」)。この場合においても、制御部190は、ユーザオブジェクト502を透明にせず、ユーザオブジェクト502が不透明である仮想空間画像の表示を継続する。
【0155】
なお、画像生成部196は、仮想カメラ503の仰角または俯角に応じて、ユーザオブジェクト502を透明にすることと、ユーザオブジェクト502を不透明にすることとの切り替えを行う構成に限らない。例えば、画像生成部196は、仮想カメラ503の水平方向における向きに応じて上記切り替えを行う構成であってもよい。
【0156】
また、画像生成部196は、仮想カメラ503の向きを変更する操作が行われた場合に、仮想空間画像におけるユーザオブジェクト502を、透明から不透明に切り替える構成であってもよい。
【0157】
本開示の第2の実施の形態に係る内容を列記すると以下の通りである。
(項目2-1)
コンピュータにより実行されるプログラムであって、
前記プログラムは、前記コンピュータを、
仮想空間を生成する手段と、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置する手段と、
前記仮想カメラに基づいて、前記仮想空間の画像である仮想空間画像を生成する手段、として機能させ、
前記仮想空間画像を生成する手段として、
前記仮想カメラの向きに応じて、前記ユーザオブジェクトを透明にすることと、前記ユーザオブジェクトを不透明にすることとを切り替えさせる、プログラム。
このようなプログラムでは、例えば、ユーザが仮想空間における看板や商品などの対象物を見るために仮想カメラの向きを変更した場合、仮想空間画像におけるユーザオブジェクトを不透明から透明に切り替えることができる。これにより、当該対象物がユーザオブジェクトによって隠れてしまうことを防ぐことができる。
また、上記プログラムでは、例えば、ユーザがユーザオブジェクトの移動方向を確認するために仮想カメラの向きを変更した場合、仮想空間画像におけるユーザオブジェクトを透明から不透明に切り替えることができる。これにより、ユーザにおいて、ユーザオブジェクトの移動方向を確認しやすい。
このように、本開示の第2の実施の形態に係るプログラムでは、仮想空間画像におけるユーザオブジェクトの表示をより適切に行うことができる。
【0158】
(項目2-2)
前記仮想空間画像を生成する手段として、
前記仮想カメラの仰角または俯角が所定値以上である際に、前記ユーザオブジェクトを透明にさせ、
前記仮想カメラの仰角または俯角が前記所定値未満である際に、前記ユーザオブジェクトを不透明にさせる、項目2-1に記載のプログラム。
このような構成により、ユーザが、ユーザオブジェクトよりも上方の景色を見るために仮想カメラを上向きに操作した場合や、ユーザオブジェクトの足元を見るために仮想カメラを下向きに操作した場合に、仮想空間画像におけるユーザオブジェクトが透明になる。このため、ユーザオブジェクトよりも上方の景色や、ユーザオブジェクトの足元などが、ユーザオブジェクトによって隠れしまうことを防ぐことができる。
【0159】
(項目2-3)
1または複数の情報処理装置を備える情報処理システムであって、
仮想空間を生成する処理と、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置する処理と、
前記仮想カメラに基づいて、前記仮想空間の画像である仮想空間画像を生成する処理と、を行い、
前記仮想空間画像を生成する処理において、
前記仮想カメラの向きに応じて、前記ユーザオブジェクトを透明にすることと、前記ユーザオブジェクトを不透明にすることとを切り替える、
情報処理システム。
このような情報処理システムでは、例えば、ユーザが仮想空間における看板や商品などの対象物を見るために仮想カメラの向きを変更した場合、仮想空間画像におけるユーザオブジェクトを不透明から透明に切り替えることができる。これにより、当該対象物がユーザオブジェクトによって隠れてしまうことを防ぐことができる。
また、上記情報処理システムでは、例えば、ユーザがユーザオブジェクトの移動方向を確認するために仮想カメラの向きを変更した場合、仮想空間画像におけるユーザオブジェクトを透明から不透明に切り替えることができる。これにより、ユーザにおいて、ユーザオブジェクトの移動方向を確認しやすい。
このように、本開示の第2の実施の形態に係る情報処理システムでは、仮想空間画像におけるユーザオブジェクトの表示をより適切に行うことができる。
【0160】
[第3の実施の形態]
第3の実施の形態では、第2の実施の形態と同様に、仮想空間画像において、ユーザオブジェクト502を透明にすることと、ユーザオブジェクト502を不透明にすることとの間で切り替える必要性がより高い状況において、当該切り替えが行われる構成について説明する。
【0161】
再び図2を参照して、第3の実施の形態に係るユーザ端末10において、制御部190は、ユーザオブジェクト502の位置に応じて、ユーザオブジェクト502を透明にすることと、ユーザオブジェクト502を不透明にすることとを切り替える。以下、ユーザオブジェクト502の位置に応じた切り替えの具体例について、説明する。
【0162】
(a)ユーザオブジェクトが他のオブジェクトを注視している場合
(a-1)ユーザ端末の構成
制御部190は、ユーザオブジェクト502が他のオブジェクトを注視している場合、仮想空間画像におけるユーザオブジェクト502を不透明から透明に切り替える。より詳細には、制御部190における画像生成部196は、ユーザオブジェクト502が、他のオブジェクトの付近に位置し、仮想空間画像において当該他のオブジェクトが所定の領域内に所定時間以上継続して位置する際に、仮想空間画像におけるユーザオブジェクト502を透明にする。所定の領域は、例えば、仮想空間画像の中央を含む領域である。
【0163】
(i)例1
図11は、本開示の第3の実施の形態に従う表示画面の一例を示す模式図である。図11の(a)は、ユーザオブジェクト502が他のオブジェクトであるスクリーンオブジェクト1302の前に来た際の仮想空間画像を示している。図11の(b)は、ユーザオブジェクト502がスクリーンオブジェクト1302を注視している際の仮想空間画像を示している。
【0164】
図11の(a)に示すように、ユーザオブジェクト502が、スクリーンオブジェクト1302の前へ移動してきたとする。このとき、制御部190は、ユーザオブジェクト502が不透明である仮想空間画像をディスプレイ132に表示する。また、このとき、スクリーンオブジェクト1302が仮想空間画像の所定領域に含まれる。
【0165】
図11の(a)に示す表示画面がディスプレイ132に表示されている状況において、ユーザが、スクリーンオブジェクト1302において再生される動画を見るため、ユーザオブジェクト502の移動操作を終了させたとする。この場合、仮想空間画像の所定領域にスクリーンオブジェクト1302が含まれる状態が継続する。
【0166】
画像生成部196は、例えば、画像解析処理を行い、仮想空間画像の所定領域にスクリーンオブジェクト1302が含まれる状態が所定時間以上継続しているか否かを判断する。そして、画像生成部196は、当該状態が所定時間以上継続していると判断した場合、図11の(b)に示すように、仮想空間画像におけるユーザオブジェクト502を透明にする。
【0167】
(ii)例2
図12は、本開示の第3の実施の形態に従う表示画面の一例を示す模式図である。図12の(a)は、ユーザオブジェクト502が他のオブジェクトである商品オブジェクト1303の前に来た際の仮想空間画像を示している。図12の(b)は、ユーザオブジェクト502が商品オブジェクト1303を注視している際の仮想空間画像を示している。
【0168】
図12の(a)に示すように、ユーザオブジェクト502が、仮想空間501における店内へ入り、商品オブジェクト1303の前へ移動してきたとする。このとき、制御部190は、ユーザオブジェクト502が不透明である仮想空間画像をディスプレイ132に表示する。また、このとき、1または複数の商品オブジェクト1303が仮想空間画像における所定領域に含まれる。
【0169】
図12の(a)に示す表示画面がディスプレイ132に表示されている状況において、ユーザが、商品オブジェクト1303を見るため、ユーザオブジェクト502の移動操作を終了させたとする。この場合、仮想空間画像の所定領域に商品オブジェクト1303が含まれる状態が継続する。
【0170】
画像生成部196は、例えば、画像解析処理を行い、仮想空間画像の所定領域に商品オブジェクト1303が含まれる状態が所定時間以上継続しているか否かを判断する。そして、画像生成部196は、当該状態が所定時間以上継続していると判断した場合、図12の(b)に示すように、仮想空間画像におけるユーザオブジェクト502を透明にする。
【0171】
(a-2)プログラムの動作例
図13は、本開示の第3の実施の形態に従うプログラムの動作の流れの一例を示すフローチャートである。図13に示すステップS610からステップS630までの動作は、図10に示すステップS510からステップS530までの動作と同様であるため、ここでは詳細な説明は繰り返さない。
【0172】
次に、制御部190は、例えば、図2に示す仮想空間情報152、及びユーザオブジェクト502の位置情報に基づいて、ユーザオブジェクト502が他のオブジェクトの付近に位置するか否かを判断する(ステップS640)。
【0173】
次に、制御部190は、ユーザオブジェクト502が他のオブジェクトの付近に位置すると判断した場合(ステップS640において「YES」)、当該他のオブジェクトが仮想空間画像の所定の領域内に所定時間以上継続して位置するか否か、を判断する(ステップS650)。
【0174】
次に、制御部190は、当該他のオブジェクトが上記所定の領域内に所定時間以上継続して位置する、と判断したとする(ステップS650において「YES」)。この場合、制御部190は、仮想空間画像におけるユーザオブジェクト502を不透明から透明に切り替え、切り替え後の仮想空間画像をディスプレイ132に表示する(ステップS660)。
【0175】
一方、ステップS640において、制御部190は、ユーザオブジェクト502が他のオブジェクトの付近に位置しないと判断した場合(ステップS640において「NO」)、ユーザオブジェクト502を透明にせず、ユーザオブジェクト502が不透明である仮想空間画像の表示を継続する。
【0176】
また、ユーザオブジェクト502が他のオブジェクトの付近に位置する場合であって(ステップS640において「YES」)、当該他のオブジェクトが上記所定の領域内に位置していない、または上記所定の領域内に位置する状態が所定時間以上継続しないとする(ステップS650において「NO」)。この場合においても、制御部190は、ユーザオブジェクト502を透明にせず、ユーザオブジェクト502が不透明である仮想空間画像の表示を継続する。
【0177】
(b)ユーザオブジェクトが他のオブジェクトに重なる場合
(b-1)ユーザ端末の構成
制御部190は、ユーザオブジェクト502が他のオブジェクトの付近に位置し、仮想空間画像においてユーザオブジェクト502が当該他のオブジェクトに重なる場合、仮想空間画像におけるユーザオブジェクト502を不透明から透明に切り替えてもよい。
【0178】
より詳細には、画像生成部196は、例えば、画像解析処理を行い、仮想空間画像においてユーザオブジェクト502が他のオブジェクトに重なっていることを検出した場合、仮想空間画像におけるユーザオブジェクト502を透明にする。
【0179】
図14を用いて、具体的に本例について説明する。図14は、本開示の第3の実施の形態に従う表示画面の一例を示す模式図である。図14の(a)は、ユーザオブジェクト502が他のオブジェクトである他ユーザオブジェクト1105の前に来た際の仮想空間画像を示している。図14の(b)は、ユーザオブジェクト502が他ユーザオブジェクト1105と会話をしている際の仮想空間画像を示している。
【0180】
図14の(a)に示すように、ユーザオブジェクト502が、他ユーザオブジェクト1105の前へ移動してきたことにより、仮想空間画像において、ユーザオブジェクト502が他ユーザオブジェクト1105に重なったとする。
【0181】
この場合、画像生成部196は、仮想空間画像を、図14の(a)に示すような、ユーザオブジェクト502が不透明である画像から、図14の(b)に示すような、ユーザオブジェクト502が透明である画像へ切り替える。
【0182】
なお、ユーザオブジェクト502が他のオブジェクトの付近に位置する場合であって、仮想空間画像において当該他のオブジェクトがユーザオブジェクト502の上に重なる場合には、ユーザオブジェクト502が表示画面から消えると違和感が生じる可能性がある。このため、このような場合には、画像生成部196は、ユーザオブジェクト502が不透明である画像を継続して生成する。
【0183】
(b-2)プログラムの動作例
図15は、本開示の第3の実施の形態に従うプログラムの動作の流れの一例を示すフローチャートである。図15に示すステップS710からステップS740までの動作は、図13に示すステップS610からステップS640までの動作と同様であるため、ここでは詳細な説明は繰り返さない。
【0184】
次に、制御部190は、ユーザオブジェクト502が他のオブジェクトの付近に位置すると判断した場合(ステップS740において「YES」)、仮想空間画像においてユーザオブジェクト502が当該他のオブジェクトに重なっているか否かを判断する(ステップS750)。
【0185】
次に、制御部190は、仮想空間画像においてユーザオブジェクト502が当該他のオブジェクトに重なっていると判断したとする(ステップS750において「YES」)。この場合、制御部190は、仮想空間画像におけるユーザオブジェクト502を不透明から透明に切り替え、切り替え後の仮想空間画像をディスプレイ132に表示する(ステップS760)。
【0186】
一方、ステップS740において、制御部190は、ユーザオブジェクト502が他のオブジェクトの付近に位置しないと判断した場合(ステップS740において「NO」)、ユーザオブジェクト502を透明にせず、ユーザオブジェクト502が不透明である仮想空間画像の表示を継続する。
【0187】
また、ユーザオブジェクト502が他のオブジェクトの付近に位置する場合であって(ステップS740において「YES」)、仮想空間画像においてユーザオブジェクト502が当該他のオブジェクトに重なっていないとする(ステップS750において「NO」)。この場合においても、制御部190は、ユーザオブジェクト502を透明にせず、ユーザオブジェクト502が不透明である仮想空間画像の表示を継続する。
【0188】
なお、制御部190は、仮想空間画像においてユーザオブジェクト502が他のオブジェクトに重なり、かつ所定の条件が満たされた場合に、仮想空間画像を三人称視点の画像と一人称視点の画像との間で切り替える構成であってもよい。例えば、制御部190は、ユーザオブジェクト502が他のオブジェクトに重なり、かつ重畳面積が所定値以上である場合、仮想空間画像を一人称視点の画像へ切り替えもよい。
【0189】
また、例えば、制御部190は、ユーザオブジェクト502が他のオブジェクトに重なり、かつ重畳箇所が当該他のオブジェクトの顔などの特定の箇所である場合、仮想空間画像を一人称視点の画像へ切り替えもよい。また、例えば、制御部190は、ユーザオブジェクト502が他のオブジェクトに重なり、このような状態が所定時間以上継続する場合、仮想空間画像を一人称視点の画像へ切り替えもよい。
【0190】
(c)ユーザオブジェクトが仮想空間における特定のエリアに位置する場合
(c-1)ユーザ端末の構成
制御部190は、ユーザオブジェクト502が仮想空間501における特定のエリアに位置する際に、ユーザオブジェクト502を透明にする処理と、ユーザオブジェクト502を不透明にする処理とのうち、当該特定のエリアに対応する処理を行ってもよい。
【0191】
より詳細には、例えば、図2に示す仮想空間情報152には、特定のエリアとして複数のエリアが予め登録されている。また、仮想空間情報152には、特定のエリアごとに、ユーザオブジェクト502を透明にすること、またはユーザオブジェクト502を不透明にすることが対応づけられている。
【0192】
具体的には、特定のエリアが、アスレチックゲームのゲームエリアであるとする。ユーザオブジェクト502が当該ゲームエリアにおいてアスレチックゲームを行う場合、ユーザにおいては、ユーザオブジェクト502の動作を確認する方がゲームを行いやすい。このため、アスレチックゲームのゲームエリアには、ユーザオブジェクト502を不透明にすることが対応づけられている。
【0193】
また、特定のエリアが、シューティングゲームのゲームエリアであるとする。ユーザオブジェクト502が当該ゲームエリアにおいてシューティングゲームを行う場合、ユーザにおいては、ゲームエリアがユーザオブジェクト502によって隠れてしまうとゲームを行いにくい。このため、シューティングゲームのゲームエリアには、ユーザオブジェクト502を透明にすることが対応づけられている。
【0194】
なお、特定のエリアは、ゲームエリアに限定されず、店内やコンサート会場など、他のエリアであってもよい。
【0195】
画像生成部196は、例えば、図2に示す仮想空間情報152、及びユーザオブジェクト502の位置情報に基づいて、ユーザオブジェクト502が特定のエリアに位置するか否かを判断する。そして、画像生成部196は、ユーザオブジェクト502が特定のエリアに位置すると判断した場合、ユーザオブジェクト502を透明にすることと、ユーザオブジェクト502を不透明にすることとのうち、当該特定のエリアに対応づけられた方に従い仮想空間画像を生成する。
【0196】
図16を用いて、具体的に本例について説明する。図16は、本開示の第3の実施の形態に従う表示画面の一例を示す模式図である。図16の(a)は、特定のエリアの一例であるアスレチックゲームのゲームエリアの前にユーザオブジェクト502が来た際の仮想空間画像を示している。図16の(b)は、ユーザオブジェクト502が当該ゲームエリアへ入った際の仮想空間画像を示している。
【0197】
図16の(a)に示すように、ユーザオブジェクト502が、ゲームエリアの前まで移動して立ち止まった際、仮想空間画像におけるユーザオブジェクト502は透明であるとする。このような状態において、図16の(b)に示すように、ユーザオブジェクト502が当該ゲームエリアへ入ると、画像生成部196は、仮想空間画像におけるユーザオブジェクト502を透明から不透明に切り替える。
【0198】
(c-2)プログラムの動作例
図17は、本開示の第3の実施の形態に従うプログラムの動作の流れの一例を示すフローチャートである。図17に示すステップS810からステップS830までの動作は、図13に示すステップS610からステップS630までの動作と同様であるため、ここでは詳細な説明は繰り返さない。
【0199】
次に、制御部190は、例えば、図2に示す仮想空間情報152、及びユーザオブジェクト502の位置情報に基づいて、ユーザオブジェクト502が特定のエリアに位置しているか否かを判断する(ステップS840)。
【0200】
次に、制御部190は、ユーザオブジェクト502が特定のエリアに位置していると判断した場合(ステップS840において「YES」)、仮想空間情報152を参照して、当該特定のエリアに、ユーザオブジェクト502を透明にすることが対応づけられているか否かを確認する(ステップS850)。
【0201】
次に、当該特定のエリアに、ユーザオブジェクト502を透明にすることが対応づけられているとする(ステップS850において「YES」)。この場合、制御部190は、仮想空間画像におけるユーザオブジェクト502を不透明から透明に切り替え、切り替え後の仮想空間画像をディスプレイ132に表示する(ステップS860)。
【0202】
一方、制御部190は、ユーザオブジェクト502が特定のエリアに位置していない、と判断した場合(ステップS840において「NO」)、ユーザオブジェクト502を透明にせず、ユーザオブジェクト502が不透明である仮想空間画像の表示を継続する。
【0203】
また、制御部190は、ユーザオブジェクト502が特定のエリアに位置している場合であって(ステップS840において「YES」)、当該特定のエリアに不透明にすることが対応づけられている場合(ステップS850において「NO」)、ユーザオブジェクト502を透明にせず、ユーザオブジェクト502が不透明である仮想空間画像の表示を継続する。
【0204】
なお、制御部190は、上述した(a)から(c)の動作のうちの2つ以上を行う構成であってもよい。
【0205】
以上、本開示に係る第1から第3の実施の形態について詳細に説明したが、プログラムの動作に支障が生じない限り、各実施の形態の説明において制御部190が実行していた処理の一部を制御部290が担当してもよく、制御部290が実行していた処理の少なくとも一部を制御部190が担当してもよい。
【0206】
例えば、仮想空間501や仮想オブジェクトの生成、仮想空間画像の生成を制御部290が実行する、いわゆるクラウド型のシステムを実現するプログラムとしてもよい。また、サーバ20を備えずに、いわゆるスタンドアローン型のプログラムとしてもよい。また、サーバ20を備えずに、ユーザ端末同士でP2P通信をすることで、同一の仮想空間501内に複数のユーザオブジェクトが存在可能なように構成してもよい。
【0207】
また、本開示の第1から第3の実施の形態の2つ以上が組み合わされてもよい。例えば、第1の実施の形態と第2の実施の形態とを組み合わせることにより、制御部190は、ユーザオブジェクト502の移動操作の有無、及び仮想カメラ503の向きの両方に基づいて、仮想空間画像において、ユーザオブジェクト502と透明にすることと、ユーザオブジェクト502を不透明にすることとを切り替えてもよい。
【0208】
また、第1の実施の形態と第3の実施の形態とを組み合わせることにより、制御部190は、ユーザオブジェクト502の移動操作の有無、及びユーザオブジェクト502の位置の両方に基づいて仮想空間画像において、ユーザオブジェクト502と透明にすることと、ユーザオブジェクト502を不透明にすることとを切り替えてもよい。
【0209】
さらに、第1の実施の形態、第2の実施の形態及び第3の実施の形態を組み合わせることにより、制御部190は、ユーザオブジェクト502の移動操作の有無、仮想カメラ503の向き、及びユーザオブジェクト502の位置の全てに基づいて、仮想空間画像において、ユーザオブジェクト502と透明にすることと、ユーザオブジェクト502を不透明にすることとを切り替えてもよい。
【0210】
また、上記の各実施形態は、本発明の理解を容易にするための例示に過ぎず、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその均等物が含まれることは言うまでもない。
【0211】
本開示の第3の実施の形態に係る内容を列記すると以下の通りである。
(項目3-1)
コンピュータにより実行されるプログラムであって、
前記プログラムは、前記コンピュータを、
仮想空間を生成する手段と、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置する手段と、
前記仮想カメラに基づいて、前記仮想空間の画像である仮想空間画像を生成する手段と、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させる手段、として機能させ、
前記仮想空間画像を生成する手段として、
前記ユーザオブジェクトの位置に応じて、前記ユーザオブジェクトを透明にすることと、前記ユーザオブジェクトを不透明にすることとを切り替えさせる、プログラム。
このようなプログラムでは、例えば、ユーザオブジェクトが、仮想空間における看板の前や店内の商品の前などの対象物の前に移動してきた場合、仮想空間画像におけるユーザオブジェクトを不透明から透明に切り替えることができる。これにより、当該対象物がユーザオブジェクトによって隠れてしまうことを防ぐことができる。
また、上記プログラムでは、例えば、ユーザオブジェクトが仮想空間における交差点に移動してきた場合、仮想空間画像におけるユーザオブジェクトを透明から不透明に切り替えることができる。これにより、ユーザにおいて、ユーザオブジェクトが向いている方向を把握しやすい。
このように、本開示の第3の実施の形態に係るプログラムでは、仮想空間画像におけるユーザオブジェクトの表示をより適切に行うことができる。
【0212】
(項目3-2)
前記仮想空間画像を生成する手段として、
前記ユーザオブジェクトが、前記ユーザオブジェクト以外の他のオブジェクトの付近に位置し、前記仮想空間画像において前記ユーザオブジェクトが前記他のオブジェクトに重なる際に、前記ユーザオブジェクトを透明にさせる、項目3-1に記載のプログラム。
これにより他のオブジェクトがユーザオブジェクトによって隠れてしまうことを防ぐことができる。
【0213】
(項目3-3)
前記仮想空間画像を生成する手段として、
前記ユーザオブジェクトが、前記ユーザオブジェクト以外の他のオブジェクトの付近に位置し、前記仮想空間画像において前記他のオブジェクトが所定の領域内に所定時間以上継続して位置する際に、前記ユーザオブジェクトを透明にさせる、項目3-1または項目3-2に記載のプログラム。
これにより、例えば、ユーザオブジェクトが看板や商品などの他のオブジェクトを注視している場合、当該他のオブジェクトがユーザオブジェクトによって隠れてしまうことを防ぐことができる。
【0214】
(項目3-4)
前記仮想空間画像を生成する手段として、
前記ユーザオブジェクトが、前記仮想空間における特定のエリアに位置する際に、前記ユーザオブジェクトを透明にする処理と、前記ユーザオブジェクトを不透明にする処理とのうち、前記特定のエリアに対応する処理を行わせる、項目3-1から項目3-3のいずれか一項に記載のプログラム。
これにより、ユーザオブジェクトを透明にする処理と、ユーザオブジェクトを不透明にする処理とのうち、当該ユーザオブジェクトが位置する特定のエリアに応じたより適切な処理が行われた画像を生成することができる。
【0215】
(項目3-5)
前記特定のエリアは、ゲームが行われるゲームエリアである、項目3-4に記載のプログラム。
このようなプログラムでは、例えば、ユーザオブジェクトがアスレチックゲームのゲームエリアに位置する場合、ユーザオブジェクトの動作が分かりやすいように当該ユーザオブジェクトが不透明である画像を生成することができる。また、上記プログラムでは、例えば、ユーザオブジェクトがシューティングゲームのゲームエリアに位置する場合、ゲームエリアの一部がユーザオブジェクトによって隠れてしまうことを防ぐため、ユーザオブジェクトが透明である画像を生成することができる。
従って、仮想空間画像として、ユーザオブジェクトが透明である画像、及びユーザオブジェクトが不透明である画像のうち、ゲームを行いやすいより適切な画像を生成することができる。
【0216】
(項目3-6)
1または複数の情報処理装置を備える情報処理システムであって、
仮想空間を生成する処理と、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置する処理と、
前記仮想カメラに基づいて、前記仮想空間の画像である仮想空間画像を生成する処理と、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させる処理と、を行い、
前記仮想空間画像を生成する処理において、
前記ユーザオブジェクトの位置に応じて、前記ユーザオブジェクトを透明にすることと、前記ユーザオブジェクトを不透明にすることとを切り替える、
情報処理システム。
このような情報処理システムでは、例えば、ユーザオブジェクトが、仮想空間における看板の前や店内の商品の前などの対象物の前に移動してきた場合、仮想空間画像におけるユーザオブジェクトを不透明から透明に切り替えることができる。これにより、当該対象物がユーザオブジェクトによって隠れてしまうことを防ぐことができる。
また、上記情報処理システムでは、例えば、ユーザオブジェクトが仮想空間における交差点に移動してきた場合、仮想空間画像におけるユーザオブジェクトを透明から不透明に切り替えることができる。これにより、ユーザにおいて、ユーザオブジェクトが向いている方向を把握しやすい。
このように、本開示の第3の実施の形態に係る情報処理システムでは、仮想空間画像におけるユーザオブジェクトの表示をより適切に行うことができる。
【符号の説明】
【0217】
1:システム、10:ユーザ端末、20:サーバ、30:ネットワーク、130:タッチスクリーン、150:(ユーザ端末の)記憶部、190:(ユーザ端末の)制御部、250:(サーバの)記憶部、290:(サーバの)制御部、501:仮想空間、502:ユーザオブジェクト、503:仮想カメラ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17