(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-01
(45)【発行日】2024-10-09
(54)【発明の名称】プログラム、方法及び情報処理装置
(51)【国際特許分類】
G06T 19/00 20110101AFI20241002BHJP
A63F 13/55 20140101ALI20241002BHJP
A63F 13/525 20140101ALI20241002BHJP
【FI】
G06T19/00 300A
G06T19/00 300B
A63F13/55
A63F13/525
(21)【出願番号】P 2023117497
(22)【出願日】2023-07-19
(62)【分割の表示】P 2021087226の分割
【原出願日】2021-05-24
【審査請求日】2023-07-19
(73)【特許権者】
【識別番号】509070463
【氏名又は名称】株式会社コロプラ
(74)【代理人】
【識別番号】110001416
【氏名又は名称】弁理士法人信栄事務所
(72)【発明者】
【氏名】澤木 一晃
【審査官】岡本 俊威
(56)【参考文献】
【文献】特開2019-191690(JP,A)
【文献】特開2005-111007(JP,A)
【文献】特開平11-272841(JP,A)
【文献】特開平11-122638(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
A63F 13/50-13/58
(57)【特許請求の範囲】
【請求項1】
プロセッサを、
仮想空間に仮想カメラ及びユーザオブジェクトを配置する配置手段と、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成する生成手段と、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させる移動手段と、として機能させ、
前記生成手段による前記仮想空間画像の生成において、
前記移動操作がされていない場合、前記仮想カメラは、前記仮想空間画像が前記ユーザオブジェクトの一人称視点の画像となるように位置を制御され、
前記移動操作がされている場合、前記仮想カメラは、前記仮想空間画像が前記ユーザオブジェクトの少なくとも一部を含む三人称視点の画像となるように位置を制御され、
前記ユーザオブジェクトを前記仮想カメラが向く方向へ移動させる移動操作が開始された場合、前記生成手段による前記仮想空間画像の生成において、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第1距離に達するまでは、前記ユーザオブジェクトが移動され、かつ、前記仮想カメラが移動されずに前記仮想空間画像が生成され、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第1距離に達した後は、前記ユーザオブジェクトの移動に連動するように前記仮想カメラが移動されて前記仮想空間画像が生成される、
プログラム。
【請求項2】
プロセッサを、
仮想空間に仮想カメラ及びユーザオブジェクトを配置する配置手段と、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成する生成手段と、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させる移動手段と、として機能させ、
前記生成手段による前記仮想空間画像の生成において、
前記移動操作がされていない場合、前記仮想カメラは、前記仮想空間画像が前記ユーザオブジェクトの一人称視点の画像となるように位置を制御され、
前記移動操作がされている場合、前記仮想カメラは、前記仮想空間画像が前記ユーザオブジェクトの少なくとも一部を含む三人称視点の画像となるように位置を制御され、
前記ユーザオブジェクトを前記仮想カメラが向く方向とは反対の方向へ移動させる移動操作が開始された場合、前記生成手段による前記仮想空間画像の生成において、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第2距離に達するまでは、前記ユーザオブジェクトが移動され、かつ、前記仮想カメラが前記ユーザオブジェクトの移動速度よりも早い移動速度で前記反対の方向側へと移動されて前記仮想空間画像が生成され、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第2距離に達した後は、前記移動操作に基づいて前記ユーザオブジェクトが移動され、かつ、前記ユーザオブジェクトの移動に連動するように前記ユーザオブジェクトの移動速度と同じ移動速度で前記仮想カメラが移動されて前記仮想空間画像が生成される、
プログラム。
【請求項3】
プロセッサを、
仮想空間に仮想カメラ及びユーザオブジェクトを配置する配置手段と、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成する生成手段と、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させる移動手段と、として機能させ、
前記生成手段による前記仮想空間画像の生成において、
前記移動操作がされていない場合、前記仮想カメラは、前記仮想空間画像が前記ユーザオブジェクトの一人称視点の画像となるように位置を制御され、
前記移動操作がされている場合、前記仮想カメラは、前記仮想空間画像が前記ユーザオブジェクトの少なくとも一部を含む三人称視点の画像となるように位置を制御され、
前記ユーザオブジェクトを前記仮想カメラが向く方向へ移動させる移動操作が開始された場合、前記生成手段による前記仮想空間画像の生成において、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第2距離に達するまでは、前記ユーザオブジェクトが移動され、かつ、前記仮想カメラが前記ユーザオブジェクトの移動速度よりも遅い移動速度で前記仮想カメラが向く方向側へと移動されて前記仮想空間画像が生成され、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第2距離に達した後は、前記ユーザオブジェクトの移動に連動するように前記仮想カメラが移動されて前記仮想空間画像が生成される、
プログラム。
【請求項4】
プロセッサ及びメモリを備える情報処理装置であって、
前記プロセッサは、
仮想空間を生成し、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置し、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成し、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるものであり、
前記仮想空間画像の生成は、
前記移動操作がされていない場合、前記仮想カメラを、前記仮想空間画像が前記ユーザオブジェクトの一人称視点の画像となるように位置を制御してなされ、
前記移動操作がされている場合、前記仮想カメラの位置を、前記仮想空間画像が前記ユーザオブジェクトの少なくとも一部を含む三人称視点の画像となるように制御してなされ、
前記ユーザオブジェクトを前記仮想カメラが向く方向へ移動させる移動操作が開始された場合、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第1距離に達するまでは、前記ユーザオブジェクトを移動させ、かつ、前記仮想カメラを移動させずに前記仮想空間画像を生成し、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第1距離に達した後は、前記ユーザオブジェクトの移動に連動するように前記仮想カメラを移動させて前記仮想空間画像を生成する、
情報処理装置。
【請求項5】
プロセッサ及びメモリを備える情報処理装置であって、
前記プロセッサは、
仮想空間を生成し、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置し、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成し、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるものであり、
前記仮想空間画像の生成は、
前記移動操作がされていない場合、前記仮想カメラを、前記仮想空間画像が前記ユーザオブジェクトの一人称視点の画像となるように位置を制御してなされ、
前記移動操作がされている場合、前記仮想カメラの位置を、前記仮想空間画像が前記ユーザオブジェクトの少なくとも一部を含む三人称視点の画像となるように制御してなされ、
前記ユーザオブジェクトを前記仮想カメラが向く方向とは反対の方向へ移動させる移動操作が開始された場合、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第2距離に達するまでは、前記ユーザオブジェクトを移動させ、かつ、前記仮想カメラを前記ユーザオブジェクトの移動速度よりも早い移動速度で前記反対の方向側へと移動させて前記仮想空間画像を生成し、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第2距離に達した後は、前記移動操作に基づいて前記ユーザオブジェクトを移動させ、かつ、前記ユーザオブジェクトの移動に連動するように前記ユーザオブジェクトの移動速度と同じ移動速度で前記仮想カメラを移動させて前記仮想空間画像を生成する、
情報処理装置。
【請求項6】
プロセッサ及びメモリを備える情報処理装置であって、
前記プロセッサは、
仮想空間を生成し、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置し、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成し、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるものであり、
前記仮想空間画像の生成は、
前記移動操作がされていない場合、前記仮想カメラを、前記仮想空間画像が前記ユーザオブジェクトの一人称視点の画像となるように位置を制御してなされ、
前記移動操作がされている場合、前記仮想カメラの位置を、前記仮想空間画像が前記ユーザオブジェクトの少なくとも一部を含む三人称視点の画像となるように制御してなされ、
前記ユーザオブジェクトを前記仮想カメラが向く方向へ移動させる移動操作が開始された場合、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第2距離に達するまでは、前記ユーザオブジェクトを移動させ、かつ、前記仮想カメラを前記ユーザオブジェクトの移動速度よりも遅い移動速度で前記仮想カメラが向く方向側へと移動させて前記仮想空間画像を生成し、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第2距離に達した後は、前記ユーザオブジェクトの移動に連動するように前記仮想カメラを移動させて前記仮想空間画像を生成する、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、方法及び情報処理装置に関する。
【背景技術】
【0002】
ユーザの操作入力に基づいてユーザオブジェクトを仮想空間内で移動させ、ユーザオブジェクトの移動に応じて移動する仮想カメラに基づいて、仮想空間画像を生成する技術が知られている。非特許文献1には、このような仮想空間画像をユーザオブジェクトの視点である一人称視点で生成するゲームが開示されている。また、非特許文献2には、ユーザオブジェクトを含む三人称視点で仮想空間画像を生成するゲームが開示されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】“『Apex Legends』をこれから始める人に向けて知っておきたいポイントを解説。いまからでも遅くないチャンピオンへの道!”,[online],[令和3年5月19日検索],インターネット<https://www.famitsu.com/news/202101/09212564.html>
【文献】“フォートナイト チャプター2 - シーズン6 バトルパストレーラー”,[online],[令和3年5月19日検索],インターネットhttps://www.epicgames.com/fortnite/ja/battle-pass/zero-point
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1のような一人称視点を採用する場合、仮想空間への没入感を向上できるが、ユーザが映像酔いを起こしやすくなる傾向にある。一方で、非特許文献2のような三人称視点を採用する場合、映像酔いは生じにくくなるが、仮想空間への没入感が低下したり、ユーザオブジェクトによって他のオブジェクトが隠れてしまって、仮想空間内の視認性が低下したりする事態が生じうる。
【0005】
本開示は、映像酔いを生じにくくするとともに、仮想空間への没入感や仮想空間内の視認性の低下を抑制することを目的とする。
【課題を解決するための手段】
【0006】
本開示に示す一実施形態によれば、
プロセッサ及びメモリを備える第1コンピュータにより実行されるプログラムであって、
前記プログラムは、前記プロセッサに、
仮想空間を生成するステップと、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置するステップと、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成するステップと、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるステップと、を実行させ、
前記仮想空間画像を生成するステップにおいて、
前記移動操作がされていない場合、前記仮想カメラは、前記仮想空間画像が前記ユーザオブジェクトの一人称視点の画像となるように位置を制御され、
前記移動操作がされている場合、前記仮想カメラは、前記仮想空間画像が前記ユーザオブジェクトの少なくとも一部を含む三人称視点の画像となるように位置を制御される、
プログラム、が提供される。
【発明の効果】
【0007】
本開示に示す一実施形態よれば、映像酔いを生じにくくするとともに、仮想空間への没入感や仮想空間内の視認性の低下を抑制することができる。
【図面の簡単な説明】
【0008】
【
図1】ある実施の形態に従うシステムの構成例を示す図である。
【
図2】ある実施の形態に従うユーザ端末の機能的な構成を示すブロック図である。
【
図3】ある実施の形態に従うサーバの機能的な構成を示すブロック図である。
【
図4】ある実施の形態に従う仮想空間の提供に係る処理の一例を示すフローチャートである。
【
図5】ある実施の形態に従う仮想空間の一例を示す模式図である。
【
図6】ある実施の形態に従う表示画面の一例を示す模式図である。
【
図7】ある実施の形態に従う三人称視点への変更処理の一例を示すフローチャートである。
【
図8】ある実施の形態に従うユーザオブジェクトと仮想カメラの位置関係を示す模式図である。
【
図9】ある実施の形態に従うユーザオブジェクトと仮想カメラの位置関係を示す模式図である。
【
図10】ある実施の形態に従う一人称視点への変更処理の一例を示すフローチャートである。
【
図11】ある実施の形態に従う表示画面の一例を示す模式図である。
【
図12】ある実施の形態に従う動画再生に係る処理の一例を示すフローチャートである。
【
図13】ある実施の形態に従う仮想空間の一例を示す模式図である。
【
図14】ある実施の形態に従う表示画面の一例を示す模式図である。
【
図15】ある実施の形態に従う動画を全画面表示した場合の表示画面の一例を示す模式図である。
【発明を実施するための形態】
【0009】
以下、この技術的思想の実施の形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品等には同一の符号を付してある。それらの名称及び機能も同じである。したがって、それらについての詳細な説明は繰り返さない。本開示において示される1以上の実施形態において、各実施形態が含む要素を互いに組み合わせることができ、かつ、当該組み合わせられた結果物も本開示が示す実施形態の一部をなすものとする。
【0010】
(システムの構成)
以下、本開示に係る一実施形態として、ユーザの操作入力に基づいてユーザオブジェクトを仮想空間内で移動させ、ユーザオブジェクトの移動に応じて移動する仮想カメラに基づいて生成される仮想空間画像をユーザに提供するシステムを例示して説明をする。
【0011】
仮想空間は、複数のユーザに共通のものであってもよいし、複数のユーザ毎に異なるものでもよい。すなわち、1つの仮想空間に複数のユーザオブジェクトが存在するようにしてもよいし、1つの仮想空間に1のユーザオブジェクトが存在するようにしてもよい。また、仮想空間は、VR(Virtual Reality)等のXR技術を用いて生成されるものであってもよい。
【0012】
図1は、ある実施の形態に従うシステム1の構成例を示す図である。
図1に示すように、システム1は、複数のユーザがそれぞれ使用するユーザ端末10A,10B,10Cと、サーバ20と、を含み、これらの装置がネットワーク30によって互いに通信可能に接続されている。
【0013】
ユーザ端末10Aとユーザ端末10Bとは、無線基地局31と通信することにより、ネットワーク30と接続する。ユーザ端末10Cは、家屋などの施設に設置される無線ルータ32と通信することにより、ネットワーク30と接続する。以下、ユーザ端末10A、10B、10Cなどのユーザ端末を総称して「ユーザ端末10」とも称する。
【0014】
ユーザ端末10は、ユーザが使用するコンピュータ(情報処理装置)である。ユーザ端末10は、携帯型の情報端末であってもよいし、設置型の情報端末であってもよい。ユーザ端末10は、タッチスクリーンを備えていてもよいし、備えていなくてもよい。また、ユーザ端末10は、HMD(Head-Mounted Device)であってもよい。以下では、ユーザ端末10がタッチスクリーンを備える携帯型端末であり、具体的には、スマートフォン、ファブレット、タブレットなどであるものとして、説明をする。
【0015】
ユーザ端末10は、例えば、アプリ等を配信するプラットフォームを介してインストールされたアプリケーションプログラム、又は、予めプリインストールされているウェブサイト閲覧用ソフトウェアなどを含むプログラムを実行する。ユーザ端末10は、上記プログラムの実行により、仮想空間画像を生成し、該仮想空間画像を表示部へ出力することを可能とする。仮想空間画像の生成にあたって、ユーザ端末10は、必要に応じて、サーバ20との間で各種データを送受信しうる。
【0016】
サーバ20は、仮想空間画像の生成に必要なデータを、適宜、ユーザ端末10へ送信する。サーバ20は、ユーザに関する各種データを管理する。サーバ20は、例えば、ユーザの操作入力に関する情報をユーザ端末10から受信し、受信した情報に応じた処理を実行する。
【0017】
サーバ20は、ハードウェア構成として、通信IF(Interface)22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29と、を備え、これらが通信バスを介して互いに接続されている。
【0018】
通信IF22は、例えばLAN(Local Area Network)規格など各種の通信規格に対応しており、ユーザ端末10など外部の通信機器との間でデータを送受信するためのインタフェースとして機能する。
【0019】
入出力IF23は、サーバ20への情報の入力を受け付けるとともに、サーバ20の外部へ情報を出力するためのインタフェースとして機能する。入出力IF23は、マウス、キーボード等の情報入力機器の接続を受け付ける入力受付部と、画像等を表示するためのディスプレイ等の情報出力機器の接続を受け付ける出力部と、を含む。
【0020】
メモリ25は、サーバ20における処理に使用されるデータ等を記憶するための記憶装置である。メモリ25は、例えば、プロセッサ29が処理を行う際に一時的に使用するための作業領域をプロセッサ29に提供する。メモリ25は、ROM(Read Only Memory)、RAM(Random Access Memory)等の記憶装置を含んで構成されている。
【0021】
ストレージ26は、プロセッサ29が読み込んで実行するための各種プログラム及びデータを記憶するための記憶装置である。ストレージ26は、HDD(Hard Disk Drive)、フラッシュメモリ等の記憶装置を含んで構成されている。
【0022】
プロセッサ29は、ストレージ26に記憶されるプログラムを読み込んで実行することにより、サーバ20の動作を制御する。プロセッサ29は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等を含んで構成される。
【0023】
(ユーザ端末の構成)
図2は、ユーザ端末10の機能的な構成を示すブロック図である。
図2に示すように、ユーザ端末10は、アンテナ110と、無線通信IF120と、タッチスクリーン130と、入出力IF140と、記憶部150と、音声処理部160と、マイク170と、スピーカ180と、制御部190と、を含む。
【0024】
アンテナ110は、ユーザ端末10が発する信号を電波として空間へ放射する。また、アンテナ110は、空間から電波を受信して受信信号を無線通信IF120へ与える。
【0025】
無線通信IF120は、ユーザ端末10が他の通信機器と通信するため、アンテナ110等を介して信号を送受信するための変復調処理などを行う。無線通信IF120は、チューナー、高周波回路などを含む無線通信用の通信モジュールであり、ユーザ端末10が送受信する無線信号の変復調や周波数変換を行い、受信信号を制御部190へ与える。
【0026】
タッチスクリーン130は、ユーザからの入力を受け付けて、ユーザに対し情報をディスプレイ132に出力する。タッチスクリーン130は、ユーザの入力操作を受け付けるためのタッチパネル131と、メニュー画面や仮想空間画像等を画面に表示するためのディスプレイ132と、を含む。タッチパネル131は、例えば、静電容量方式のものを用いることによって、ユーザの指などが接近したことを検出しうる。ディスプレイ132は、例えば、LCD(Liquid Crystal Display)、有機EL(Electroluminescence)その他の表示装置によって実現される。
【0027】
入出力IF140は、ユーザ端末10への情報の入力を受け付けるとともに、ユーザ端末10の外部へ情報を出力するためのインタフェースとして機能する。
【0028】
記憶部150は、フラッシュメモリ、RAM等により構成される。記憶部150は、ユーザ端末10がサーバ20から受信する各種データを記憶しうる。記憶部150は、仮想空間画像をユーザに提供しうるプログラム151と、仮想空間情報152と、ユーザ情報153と、を記憶する。
【0029】
仮想空間情報152は、例えば、仮想空間を生成するための情報を含む。また、仮想空間情報152は、例えば、仮想空間に配置される仮想カメラやユーザオブジェクト等の各種の仮想オブジェクトを生成するための情報を含む。また、仮想空間情報152は、例えば、各種の仮想オブジェクトを仮想空間に配置するための配置情報を含む。ユーザ情報153は、例えば、ユーザ端末10を識別する端末ID(Identification)や、ユーザを識別するユーザID情報等を含む。
【0030】
音声処理部160は、音声信号の変復調を行う。音声処理部160は、マイク170から与えられる信号を変調して、変調後の信号を制御部190へ与える。また、音声処理部160は、音声信号をスピーカ180へ与える。音声処理部160は、例えば、音声処理用のプロセッサによって実現される。マイク170は、音声信号の入力を受け付けて制御部190へ出力するための音声入力部として機能する。スピーカ180は、音声信号を、ユーザ端末10の外部へ出力するための音声出力部として機能する。
【0031】
制御部190は、記憶部150に記憶されるプログラムを読み込んで実行することにより、ユーザ端末10の動作を制御する。制御部190は、例えば、アプリケーションプロセッサによって実現される。
【0032】
制御部190は、プログラム151を読み込んで実行することにより、入力操作受付部191と、送受信部192と、空間生成部193と、配置部194と、移動制御部195と、画像生成部196と、再生部197と、の各機能を発揮する。ある局面において、制御部190は、サーバ20との間で各種情報の送受信を行いながら、仮想空間画像を生成する。
【0033】
入力操作受付部191は、タッチスクリーン130の出力に基づいて、ユーザの入力操作を受け付ける。具体的には、入力操作受付部191は、ユーザの指などがタッチパネル131に接近したことを、タッチスクリーン130を構成する面の横軸及び縦軸からなる座標系の座標として検出する。
【0034】
入力操作受付部191は、タッチスクリーン130に対するユーザの操作を判別する。具体的には、入力操作受付部191は、いわゆる「接近操作」、「リリース操作」、「タップ操作」、「ダブルタップ操作」、「長押し操作(ロングタッチ操作)」、「ドラッグ操作(スワイプ操作)」、「ムーブ操作」、及び「フリック操作」などのユーザの操作を判別する。入力操作受付部191が判別するユーザの操作は、上記に限られない。例えば、タッチパネル131が、ユーザがタッチパネル131に対して押下する圧力の大きさを検出可能な機構を有する場合、入力操作受付部191は、ユーザが押下した圧力の大きさを判別する。
【0035】
送受信部192は、サーバ20から各種情報を受信し、また、サーバ20に対し各種情報を送信する。送受信部192は、例えば、サーバ20から仮想空間情報252の少なくとも一部を受信する。一例として、送受信部192は、他のユーザが操作する他ユーザオブジェクトに関する他ユーザオブジェクト情報をサーバ20から受信する。送受信部192は、例えば、ユーザオブジェクトの移動やその他の行動に関する情報をサーバ20へ送信する。
【0036】
空間生成部193は、仮想空間情報152を参照し、仮想空間を生成する。また、空間生成部193は、仮想空間に配置される仮想カメラ及びユーザオブジェクト等の仮想オブジェクトを生成する。空間生成部193によって生成される仮想オブジェクトには、他のユーザによって操作される他ユーザオブジェクトや、動画を表示するための動画再生領域としてのスクリーンオブジェクトが含まれうる。
【0037】
配置部194は、仮想空間情報152に含まれる配置情報を参照し、仮想空間に仮想カメラやユーザオブジェクト等の各種の仮想オブジェクトを配置する。配置部194は、例えば、他ユーザオブジェクト情報に基づいて、仮想空間に他ユーザオブジェクトを配置する。また、配置部194が仮想空間内にスクリーンオブジェクトを配置する場合、仮想空間には、スクリーンオブジェクト上で動画の再生を開始するためのトリガ領域が設定されうる。また、配置部194は、サーバ20から送信される情報等に基づいて、他ユーザオブジェクトやその他の仮想オブジェクトを移動させうる。
【0038】
移動制御部195は、ユーザオブジェクトを移動させるための移動操作(以下、単に「移動操作」とも称する)がされたことに基づいて、仮想空間内においてユーザオブジェクトを移動させる。移動制御部195は、例えば、入力操作受付部191が受け付けた入力操作の入力位置の座標や操作の種類に基づいてユーザの指示内容を解釈し、当該解釈に基づいて、ユーザオブジェクトを移動させる。
【0039】
画像生成部196は、仮想カメラに基づいて、仮想カメラから仮想空間内を撮像した画像である仮想空間画像を生成する。画像生成部196が生成した仮想空間画像は、タッチスクリーン130に出力され、ディスプレイ132上に表示される。
【0040】
移動操作がされていない場合、仮想カメラは、仮想空間画像がユーザオブジェクトの一人称視点の画像となるように位置を制御される。よって、移動操作がされていない場合、画像生成部196によって生成される仮想空間画像は、ユーザオブジェクトの一人称視点の画像である。ここで、「一人称視点」とは、ユーザがユーザオブジェクトの立場となるための視点であって、例えば、ユーザオブジェクトの視点の位置や該位置の近傍からの視点である。一人称視点の画像には、例えば、ユーザオブジェクトの頭部を除く身体の一部(例えば、腕や足など)やユーザオブジェクトの所有物等が含まれていてもよい。
【0041】
一方で、移動操作がされている場合、仮想カメラは、仮想空間画像がユーザオブジェクトの少なくとも一部を含む三人称視点の画像となるように位置を制御される。よって、移動操作がされている場合、画像生成部196によって生成される仮想空間画像は、ユーザオブジェクトの三人称視点の画像である。ここで、「三人称視点」とは、ユーザオブジェクトから離れた位置を視点とするものである。三人称視点は、少なくともユーザオブジェクトの頭部を視界に含む位置を視点とすることが好ましい。ユーザオブジェクトが車等の他の仮想オブジェクトに乗っている場合等、三人称視点の画像にユーザオブジェクトの頭部が含まれないこともありうる。
【0042】
画像生成部196は、移動操作がされていない場合に、ユーザオブジェクトの少なくとも一部を非表示にした状態で仮想空間画像を生成することが好ましい。すなわち、移動操作がされていない場合、ユーザオブジェクトの一部又は全部を透明又は半透明にする透明処理をしたうえで仮想空間画像を生成することが好ましい。ユーザオブジェクトの一部を透明又は半透明にする場合、残りの部分は不透明でもよい。また、ユーザオブジェクトの部位によって透明度が異なっていてもよい。なお、透明処理をしない場合のユーザオブジェクトは不透明でありうる。
【0043】
画像生成部196によって生成される仮想空間画像は、上述のように、移動操作が開始された場合に一人称視点の画像から三人称視点の画像へと変更され、移動操作が終了した場合に三人称視点の画像から一人称視点の画像へと変更される。このような視点変更の際にユーザに違和感が生じにくくなるように、画像生成部196は、違和感を低減させるための処理することが好ましい。
【0044】
違和感を低減させるための処理として、画像生成部196は、例えば、ユーザオブジェクトを仮想カメラが向く方向へ移動させる移動操作が開始された場合において、ユーザオブジェクトと仮想カメラとの距離が所定の第1距離に達するまでは、ユーザオブジェクトを移動させ、かつ、仮想カメラを移動させずに仮想空間画像を生成し、ユーザオブジェクトと仮想カメラとの距離が上記第1距離に達した後は、ユーザオブジェクトの移動に連動するように仮想カメラを移動させて仮想空間画像を生成する処理をしてもよい。
【0045】
ここで、「仮想カメラが向く方向」とは、例えば、ディスプレイ132に表示されている仮想空間画像を基準として仮想空間の奥側へと向かう奥側方向である。また、「第1距離」は、特に制限はされないが、例えば、一人称視点の場合の仮想カメラの位置と三人称視点の場合の仮想カメラの位置との間の距離であることが好ましい。
【0046】
また、違和感を低減させるための処理として、画像生成部196は、例えば、ユーザオブジェクトを仮想カメラが向く方向とは反対の方向へ移動させる移動操作が開始された場合において、ユーザオブジェクトと仮想カメラとの距離が所定の第2距離に達するまでは、ユーザオブジェクトを移動させ、かつ、仮想カメラをユーザオブジェクトの移動速度よりも早い移動速度で上記反対の方向側へと移動させて仮想空間画像を生成し、ユーザオブジェクトと仮想カメラとの距離が上記第2距離に達した後は、移動操作に基づいてユーザオブジェクトを移動させ、かつ、ユーザオブジェクトの移動に連動するようにユーザオブジェクトの移動速度と同じ移動速度で仮想カメラを移動させて仮想空間画像を生成する処理をしてもよい。
【0047】
ここで、「仮想カメラが向く方向とは反対の方向」とは、例えば、ディスプレイ132に表示されている仮想空間画像を基準として仮想空間の手前側へと向かう手前側方向である。また、「第2距離」は、特に制限はされないが、例えば、一人称視点の場合の仮想カメラの位置と三人称視点の場合の仮想カメラの位置との間の距離であることが好ましい。第2距離は、第1距離と同じであってもよいし、異なっていてもよい。
【0048】
なお、ユーザオブジェクトを真横方向へ移動させる移動操作が開始された場合は、基本的に、移動操作が手前側方向である場合と同様の処理をしてもよい。具体的には、仮想カメラが手前側方向に移動しながら、ユーザオブジェクトの横方向の動きに追従し、仮想カメラとユーザオブジェクトの距離が所定の第2距離に達した後は、移動操作に基づいてユーザオブジェクトを移動させ、かつ、ユーザオブジェクトの移動に連動するようにユーザオブジェクトの移動方向と同じ方向に、ユーザオブジェクトの移動速度と同じ移動速度で仮想カメラを移動させて仮想空間画像を生成する処理をしてもよい。
【0049】
また、違和感を低減させるための処理として、画像生成部196は、ユーザオブジェクトの移動開始から所定の時間(例えば、1秒程度)が経過するまで、ユーザオブジェクトを透明から不透明の状態へとフェードイン処理して仮想空間画像を生成してもよい。すなわち、一人称視点から三人称視点への変更の際に、透明な状態から透明度を下げながらユーザオブジェクトが徐々に出現するような処理をしてもよい。なお、フェードイン処理は、透明から半透明、又は半透明から不透明な状態へ変更する処理でもよい。
【0050】
また、違和感を低減させるための処理として、画像生成部196は、ユーザオブジェクトの移動終了から所定の時間(例えば、1秒程度)が経過するまで、ユーザオブジェクトを不透明から透明の状態へとフェードアウト処理して仮想空間画像を生成してもよい。すなわち、三人称視点から一人称視点への変更の際に、不透明な状態から透明度を連続的に上げながらユーザオブジェクトが徐々に見えなくなるような処理をしてもよい。なお、フェードアウト処理は、不透明から半透明、又は半透明から透明な状態へ変更する処理でもよい。
【0051】
また、違和感を低減させるための処理として、画像生成部196は、移動操作の開始から所定の時間が経過するまで、前記仮想空間画像の視認性を低下させる処理を実行してもよい。視認性を低下させる処理は、特に制限はされないが、例えば、暗転処理やブラー処理等が挙げられる。画像生成部196は、移動操作の終了から所定の時間が経過するまでも上記と同様の処理をしてもよい。
【0052】
再生部197は、例えば、ユーザオブジェクトが仮想空間に配置されたトリガ領域に位置する場合に、動画再生領域において動画を再生する。また、再生部197は、例えば、動画再生領域を選択する操作がされた場合に、動画を全画面表示で再生する。なお、トリガ領域によらず、動画を再生するための入力操作に応じて動画を再生可能なように再生部197を構成してもよい。
【0053】
(サーバの構成)
図3は、サーバ20の機能的な構成を示すブロック図である。
図3を参照して、サーバ20の詳細な構成を説明する。サーバ20は、プログラム251に従って動作することにより、通信部220と、記憶部250と、制御部290と、としての機能を発揮する。
【0054】
通信部220は、サーバ20がユーザ端末10などの外部の通信機器とネットワーク30を介して通信するためのインタフェースとして機能する。
【0055】
記憶部250は、サーバ20を動作させるための各種プログラム及びデータを記憶する。ある局面において、記憶部250は、プログラム251と、仮想空間情報252と、ユーザ情報253と、を記憶する。
【0056】
プログラム251は、ユーザ端末10を介して仮想空間画像をユーザに提供するためのプログラムである。プログラム251は、例えば、仮想空間情報252及びユーザ情報253等を参照して、仮想空間画像をユーザに提供するためのサーバ20側における各種処理を実行する。
【0057】
仮想空間情報252は、例えば、仮想空間を生成するための情報や、仮想空間に配置される各種の仮想オブジェクトを生成するための情報を含む。仮想空間情報252の少なくとも一部は、仮想空間情報152の元となる情報でありうる。仮想空間情報252には、各ユーザオブジェクトの仮想空間における位置や行動に関する情報が含まれうる。また、仮想空間情報252には、動画に関する情報が含まれうる。
【0058】
ユーザ情報253は、各ユーザ端末10の各ユーザに関する情報である。ユーザ情報253は、例えば、ユーザ端末10又はユーザ端末10のユーザを識別する情報やその他の情報を含む。
【0059】
制御部290は、記憶部250に記憶されるプログラム251を実行することにより、送受信部291、サーバ処理部292、データ管理部293、計時部294としての機能を発揮する。
【0060】
送受信部291は、ユーザ端末10から各種情報を受信し、また、ユーザ端末10に対し各種情報を送信する。ユーザ端末10とサーバ20とは、例えば、仮想空間や仮想オブジェクトの生成に関する情報、ユーザオブジェクトの移動やその他の行動に関する情報、動画の再生に関する情報などを送受信する。
【0061】
サーバ処理部292は、ユーザ端末10を介してユーザに仮想空間を提供するためにサーバ20において必要となる各種の処理をおこなう。サーバ処理部292は、送受信部291が受信したユーザ端末10からの各種要求に応じて、送受信部291に対して各種データの送信を指示する。また、サーバ処理部292は、サーバ処理部292による各種の演算結果に基づいて、データ管理部293に対して各種データの更新を指示する。
【0062】
データ管理部293は、サーバ処理部292からの指示に基づいて、記憶部250に記憶される各種データを追加/削除/更新する処理をおこなう。計時部294は、時間を計測する処理を行う。また、計時部294は、例えば、複数のユーザ端末10において各種の時間に関する情報を同期させる処理を実行する。
【0063】
(プログラムの動作例)
次に、
図4から
図15を参照して、本開示の一実施形態に係るプログラムにおける動作例について説明する。以降で説明する各処理は、制御部190がプログラム151を、制御部290がプログラム251をそれぞれ実行することにより実現される。なお、本明細書で説明する各フローチャートを構成する各処理の順序は、処理内容に矛盾や不整合が生じない範囲で順不同であり、並列的に実行されてもよい。また、本明細書で説明する各フローチャートを構成する処理の一部は、省略してもよい。
【0064】
図4は、一実施形態に従う仮想空間の提供に係る処理の一例を示すフローチャートである。まず、ステップS410において、制御部190は、仮想空間情報152を参照し、仮想空間を生成する。同様に、制御部190は、仮想カメラ及びユーザオブジェクト等を含む仮想オブジェクトを生成する。仮想空間及び仮想オブジェクトの生成において、制御部190は、必要に応じてサーバ20から仮想空間情報252等の各種情報を受信してもよい。
【0065】
ステップS420において、制御部190は、仮想空間情報152に含まれる配置情報を参照し、仮想空間に仮想オブジェクトを配置する。仮想カメラの初期位置は、例えば、ユーザオブジェクトの視点位置である。
【0066】
ステップS430において、制御部190は、ユーザオブジェクトの少なくとも一部を非表示にする処理をする。ステップS430では、例えば、ユーザオブジェクトの一部又は全部の透明度を上げて透明にする透明処理が実行される。
【0067】
ステップS440において、制御部190は、一人称視点で仮想空間画像を生成する。制御部190は、例えば、仮想空間画像をディスプレイ132に表示する。仮想空間画像は、仮想カメラに基づく画像であり、仮想カメラから仮想空間内を撮像した画像である。仮想カメラの向きは、ユーザによって仮想カメラの向きを変更するための入力操作がされたことに基づいて変更されうる。また、仮想カメラの位置は、ユーザオブジェクトの移動に応じて変更されうる。
【0068】
制御部190がユーザによる移動操作を検出しない場合(ステップS440においてNo)、一人称視点が維持され、プログラム151を終了するための入力操作を受け付けたこと等に応じて、一連の処理を終了する。
【0069】
一方で、制御部190がユーザによる移動操作を検出した場合(ステップS450においてYes)、ステップS460において、制御部190は、三人称視点への変更処理をする。ステップS460の処理については、後の段落で詳述する。なお、制御部190がユーザによる移動操作を検出した場合、必要に応じて、移動後のユーザオブジェクトの位置を特定するための情報がサーバ20へと送信されうる。
【0070】
ステップS470において、制御部190は、ユーザオブジェクトを移動させる。また、ステップS470において、制御部190は、ユーザオブジェクトの移動と連動するように、ユーザオブジェクトと同じ移動速度で仮想カメラを移動させる。すなわち、ステップS470では、ユーザオブジェクトと仮想カメラとが、相対的な位置関係を維持したままで移動することになる。
【0071】
制御部190が移動操作の終了を検出しない場合(ステップS480においてNo)、ステップS470に戻り、ユーザオブジェクト及び仮想カメラを移動させる処理が継続される。
【0072】
一方で、制御部190がユーザによる移動操作の終了を検出した場合(ステップS480においてYes)、ステップS490において、制御部190は、一人称視点への変更処理をし、プログラム151を終了するための入力操作を受け付けたこと等に応じて、一連の処理を終了する。ステップS490の処理については、後の段落で詳述する。
【0073】
以下、
図5及び
図6を用いて、
図4に示した一連の処理において生成される仮想空間と仮想空間画像について説明する。
図5は、一実施形態に従う仮想空間501の一例を示す模式図である。
図5の(a)及び(b)において、仮想空間501には、ユーザオブジェクト502と、仮想カメラ503と、柱オブジェクト504と、リンク領域505a~505cと、が設けられている。
【0074】
ユーザオブジェクト502は、ユーザが操作可能なオブジェクトであり、例えば、ユーザのアバターである。仮想カメラ503は、仮想空間501を撮像する仮想オブジェクトである。柱オブジェクト504は、仮想空間501に固定配置される仮想オブジェクトである。リンク領域505a~505cは、他の仮想空間とリンクした領域である。ユーザは、ユーザオブジェクトをリンク領域505a~505cに移動させることで、ユーザオブジェクトを他の仮想空間へと移動させることができる。
【0075】
図5の(a)は、仮想空間画像が一人称視点で生成される場合を示している。すなわち、
図5の(a)は、移動操作がされていない場合の例である。
図5の(a)では、仮想カメラ503がユーザオブジェクト502の視点位置にある。また、ユーザオブジェクト502は破線で示されているが、これはユーザオブジェクト502が透明であることを表している。
【0076】
図5の(b)は、仮想空間画像が三人称視点で生成される場合を示している。すなわち、
図5の(b)は、移動操作がされている場合の例である。
図5の(b)では、仮想カメラ503がユーザオブジェクト502から離れた位置にある。また、ユーザオブジェクト502は実線で示されているが、これはユーザオブジェクト502が不透明であることを表している。
【0077】
図6は、一実施形態に従う表示画面の一例を示す模式図である。具体的には、
図6の(a)は、仮想空間501が
図5の(a)の状態にある場合の表示画面を示している。
図6の(b)は、仮想空間501が
図5の(b)の状態にある場合の表示画面を示している。
【0078】
図6の(a)では、ディスプレイ132上に、仮想空間501を一人称視点で見た場合の仮想空間画像が表示されている。
図6の(a)では、ユーザオブジェクト502は透明であるため、表示されていない。
【0079】
また、
図6の(a)では、操作子601が破線で示されている。操作子601は、ユーザオブジェクト502を移動させる移動操作の入力を受け付けるために表示される仮想的なコントローラである。ユーザは、例えば、操作子601の中央にある円状部をドラッグすることで、ドラッグした方向にユーザオブジェクト502を移動させることができる。操作子601は一例であり、他の形状や入力態様を採用してもよい。仮想空間501の視認性を高めるという観点から、操作子601は、ユーザの移動操作を受け付けるまでは、完全に透明な状態又は視認可能ではあるが透明度の高い状態であることが好ましい。
【0080】
なお、以降の説明において、「仮想カメラが向く方向」又は「奥側方向」という場合、
図5の(a)において矢印Aで示される方向をいう。また、「仮想カメラが向く方向」又は「奥側方向」への移動操作とは、操作子601を上下に2分割する線分lよりも上方(矢印A方向側)に位置する領域へ円状部がドラッグされることをいう。また、「仮想カメラが向く方向とは反対の方向」又は「手前側方向」という場合、
図5の(a)において矢印Bで示される方向をいう。また、「仮想カメラが向く方向とは反対の方向」又は「手前側方向」への移動操作とは、操作子601を上下に2分割する線分lよりも下方(矢印B方向側)に位置する領域へ円状部がドラッグされることをいう。
【0081】
図6の(b)では、ディスプレイ132上に、仮想空間501を三人称視点で見た場合の仮想空間画像が表示されている。
図6の(b)では、ユーザオブジェクト502の略全身が不透透明な状態で表示されている。ある局面において、ユーザオブジェクト502は、半透明な状態で表示してもよいし、少なくとも一部を透明な状態で表示してもよい。
【0082】
図6の(b)では、奥側方向への移動操作がされているため、ユーザオブジェクト502は奥側方向へと移動している。また、奥側方向への移動操作がされていることを示すため、操作子601の円状部分は奥側方向に位置している。また、移動操作がされていることに応じて、操作子601は、
図6の(a)の場合よりも透明度の低い状態にされている。移動操作中において、操作子601は不透明であってもよいが、仮想空間501の視認性を高めるという観点から、半透明又は透明であることが好ましい。
【0083】
以下、
図7を用いて、
図4のステップS460における三人称視点への変更処理について詳述する。ステップS461において、制御部190は、ユーザオブジェクト502のフェードイン処理を開始する。フェードイン処理によって、ユーザオブジェクト502の透明度は連続的又は段階的に下げられる。フェードイン処理は、移動操作が開始されてから、例えば、1秒程度の時間内で完了する。フェードイン処理は、例えば、後述のステップS463~S465又はステップS466~S468の一連の処理と並列的に実行され、これらの一連の処理と同じタイミングで開始及び終了されることが好ましい。なお、フェードイン処理を省略し、瞬間的に一人称視点から三人称視点への視点切替をしてもよい。
【0084】
図4のステップS450で検出された移動操作が奥側方向への移動操作である場合(ステップS462においてYes)、ステップS463へ進む。ステップS463において、制御部190は、仮想カメラ503を移動させずに、ユーザオブジェクト502を移動させる。ユーザオブジェクト502が移動する方向は、移動操作によって特定される奥側方向である。
【0085】
ユーザオブジェクト502と仮想カメラ503の距離が所定の第1距離未満の場合(ステップS464においてNo)、ステップS463の処理が継続される。
【0086】
そして、ユーザオブジェクト502と仮想カメラ503の距離が所定の第1距離以上になった場合(ステップS464においてYes)、ステップS465において、制御部190は、ユーザオブジェクト502とともに仮想カメラ503を移動させる。ステップS465では、例えば、ユーザオブジェクト502の移動に連動(追従)するように仮想カメラ503を移動させる。
【0087】
ここで、
図8を用いて、ステップS463~S465の処理について詳述する。
図8は、一実施形態に従うユーザオブジェクト502と仮想カメラ503の位置関係を示す模式図である。具体的には、
図8は、奥側方向への移動操作がされた場合におけるユーザオブジェクト502と仮想カメラ503の位置関係の変化を示している。
【0088】
図8の(a)は、移動操作がされる直前の状態を示している。
図8の(a)において、ユーザオブジェクト502及び仮想カメラ503は、地点P1に存在する。また、ユーザオブジェクト502は、透明な状態にあるため、点線で示されている。なお、
図6と同様に、
図8の(a)の矢印Aの方向が奥側方向であり、
図8の(a)の矢印Bの方向が手前側方向である。
【0089】
図8の(b)は、ステップS463の処理後であって、ユーザオブジェクト502と仮想カメラ503の距離d1が第1距離未満である状態を示している。
図8の(b)において、ユーザオブジェクト502は、移動操作に基づいて奥側方向へと移動している。一方で、仮想カメラ503は移動せず、依然として地点P1にいる。
【0090】
なお、フェードイン処理が開始され、ユーザオブジェクト502は、
図8の(a)の状態よりも透明度が下がった状態にある。そのため、
図8の(b)では、ユーザオブジェクト502が実線で示されている。
【0091】
図8の(c)は、ユーザオブジェクト502と仮想カメラ503の距離d2が第1距離に達した状態を示している。
図8の(c)において、ユーザオブジェクト502は地点P2に到達している。一方で、仮想カメラ503は移動せず、依然として地点P1にいる。なお、この時点において、フェードイン処理が完了していることが好ましい。
【0092】
図8の(d)は、ユーザオブジェクト502と仮想カメラ503の距離d2が第1距離に達し、ステップS465の処理がされた状態を示している。
図8の(d)において、ユーザオブジェクト502は、地点P2の奥側方向へと移動している。また、仮想カメラ503は、地点P1の奥側方向へと移動している。移動操作が継続される限り、仮想カメラ503は、距離d2を維持しながら、ユーザオブジェクト502の移動と連動するように移動する。
【0093】
なお、
図8を用いて説明した内容は、移動操作が奥側方向ではない場合に適用してもよい。すなわち、移動操作の方向によらず、ステップS463~465の処理を実行してもよい。このように構成する場合、移動操作が奥側方向ではないときは、ステップS463において、仮想カメラ503を移動させて、ユーザオブジェクト502を移動させないことが好ましい。
【0094】
図7の説明に戻る。
図4のステップS450で検出された移動操作が奥側方向への移動操作でない場合(ステップS462においてNo)、ステップS466へ進む。ステップS462においてNoとなる場合とは、手前側方向への移動操作がなされた場合であり、完全な左右方向(
図6に示す線分l上の方向)への移動操作がされた場合を含んでもよい。
【0095】
ステップS466において、制御部190は、ユーザオブジェクト502と仮想カメラ503の両方を移動させる。ステップS466において、ユーザオブジェクト502の移動速度よりも、仮想カメラ503の移動速度の方が大きい。また、ユーザオブジェクト502が移動する方向は、移動操作によって特定される方向である。仮想カメラ503が移動する方向は、例えば、移動操作によって特定される方向に、真下方向(
図6に示す線分lに直交する方向)を合成した方向である。
【0096】
ユーザオブジェクト502と仮想カメラ503の距離が所定の第2距離未満の場合(ステップS467においてNo)、ステップS466の処理が継続される。
【0097】
そして、ユーザオブジェクト502と仮想カメラ503の距離が所定の第2距離以上になった場合(ステップS467においてYes)、ステップS468において、制御部190は、ユーザオブジェクト502と仮想カメラ503を、同じ移動速度で同じ移動方向へと移動させる。ステップS468では、例えば、ユーザオブジェクト502の移動に連動(追従)するように仮想カメラ503を移動させる。ステップS465又はステップS468の処理をもって、三人称視点への変更処理は終了し、
図4のステップS470へと進む。
【0098】
ここで、
図9を用いて、ステップS466~S468の処理について詳述する。
図9は、一実施形態に従うユーザオブジェクト502と仮想カメラ503の位置関係を示す模式図である。具体的には、
図9は、奥側方向ではない方向への移動操作がされた場合におけるユーザオブジェクト502と仮想カメラ503の位置関係の変化を示している。
【0099】
図9の(a)は、移動操作がされる直前の状態を示している。
図9の(a)において、ユーザオブジェクト502及び仮想カメラ503は、地点P3に存在する。なお、
図6と同様に、
図9の(a)の矢印Aの方向が奥側方向であり、
図9の(a)の矢印Bの方向が手前側方向である。また、フェードイン処理については、
図8で説明した内容を援用できるため省略する。
【0100】
図9の(b)は、ステップS466の処理後であって、ユーザオブジェクト502と仮想カメラ503の距離d4が第2距離未満である状態を示している。
図9の(b)において、ユーザオブジェクト502及び仮想カメラ503は、移動操作に基づいて手前側方向へと移動している。なお、
図9の例では、移動操作の方向は真下方向である。
【0101】
図9の(b)の状態では、ユーザオブジェクト502の移動速度よりも、仮想カメラ503の移動速度の方が大きい。よって、仮想カメラ503の移動距離d5は、ユーザオブジェクト502の移動距離d3よりも大きい。
【0102】
図9の(c)は、ユーザオブジェクト502と仮想カメラ503の距離d8が第2距離に達した状態を示している。
図9の(c)において、仮想カメラ503は地点P4に到達しており、ユーザオブジェクト502は地点P4に到達していない。すなわち、この段階においても、仮想カメラ503の移動距離d7は、ユーザオブジェクト502の移動距離d6よりも大きい。
【0103】
図9の(d)は、ユーザオブジェクト502と仮想カメラ503の距離d8が第2距離に達し、ステップS468処理がされた状態を示している。
図9の(d)では、移動操作の方向が右方向に変更されたため、ユーザオブジェクト502と仮想カメラ503は、地点P4の右方向へと移動している。
【0104】
このように、移動操作の方向が変わっても、移動操作が継続される限り、仮想カメラ503は、距離d8を維持しながら、ユーザオブジェクト502の移動と連動するように同じ移動速度で移動する。これは、ステップS465においても同様である。
【0105】
なお、
図9を用いて説明した内容は、移動操作が奥側方向である場合に適用してもよい。すなわち、移動操作の方向によらず、ステップS466~468の処理を実行してもよい。このように構成する場合、移動操作が奥側方向であるときは、ステップS466において、仮想カメラ503の移動速度をユーザオブジェクト502の移動速度よりも小さくすることが好ましい。
【0106】
以下、
図10を用いて、
図4のステップS490における一人称視点への変更処理について詳述する。ステップS491において、制御部190は、ユーザオブジェクト502の移動を終了させる。また、ステップS492において、制御部190は、ユーザオブジェクト502のフェードアウト処理を開始する。
【0107】
フェードアウト処理によって、ユーザオブジェクト502の透明度は連続的又は段階的に上げられる。フェードアウト処理は、移動操作が終了されてから、例えば、1秒程度の時間内で完了する。フェードアウト処理は、例えば、後述のステップS491、S493、及びS494の処理と並列的に実行され、これらの処理の少なくとも一部と同じタイミングで開始及び終了されることが好ましい。なお、フェードアウト処理を省略し、瞬間的に三人称視点から一人称視点への視点切替をしてもよい。
【0108】
ステップS493において、制御部190は、ユーザの視認性を低下させる処理として、例えば、暗転処理又はブラー処理を実行する。なお、ステップS493と同様の処理を、ステップS460の三人称視点への変更処理において実行してもよい。
【0109】
ステップS494において、制御部190は、仮想カメラ503をユーザオブジェクト502の視点位置へと移動させる。ユーザに生じる違和感を低減させるという観点から、仮想カメラ503の移動は、移動操作が終了する直前のユーザオブジェクト502の移動速度と同程度の移動速度でなされることが好ましい。
【0110】
ここで、
図11を用いて、仮想空間に他のユーザが操作する他ユーザオブジェクトが存在する場合について説明する。
図11は、一実施形態に従う表示画面の一例を示す模式図である。
図11の例において、仮想空間501は、コンサート会場を模した空間である。
図11は、例えば、コンサート会場のステージ方向から客席側を見た場合の仮想空間画像である。
【0111】
ディスプレイ132上に表示される仮想空間画像には、アリーナ領域1101と、客席オブジェクト1102と、他ユーザオブジェクト1103及び1104と、が含まれている。アリーナ領域1101は、複数のユーザオブジェクト同士で交流が可能な領域である。客席オブジェクト1102は、仮想空間501に固定配置された仮想オブジェクトである。
【0112】
他のユーザによって操作される他ユーザオブジェクト1103及び1104は、他のユーザによる移動操作の有無に関わらず、ユーザオブジェクト502を操作するユーザのディスプレイ132上に表示される。例えば、他ユーザオブジェクト1103は立ち止まっており移動をしていないが、ディスプレイ132上に表示されている。なお、他ユーザオブジェクト1103を操作するユーザのディスプレイ上では、他ユーザオブジェクト1103は表示されていない状態である。
【0113】
ここで、
図11では、一人称視点で生成された仮想空間画像が表示されている。すなわち、ディスプレイ132上に表示された操作子601には移動操作が入力されておらず、ユーザオブジェクト502は透明な状態にある。しかし、他のユーザのディスプレイ上では、ユーザオブジェクト502は透明ではなく、表示された状態になる。
【0114】
他ユーザオブジェクト1104は、移動中のオブジェクトである。他ユーザオブジェクト1104のユーザによって、他ユーザオブジェクト1104に対して移動又はその他の行動をさせるための操作がなされた場合、移動後の他ユーザオブジェクト1104の位置やその他行動を特定するための情報が、サーバ20を介して、ユーザオブジェクト502のユーザのユーザ端末10に送信される。その情報に基づいて、制御部190は、仮想空間501における他ユーザオブジェクト1104の移動や行動を制御する。
【0115】
以下、仮想空間501に動画を再生するための動画再生領域を設けた場合の動画再生に係る処理について説明する。
図12は、一実施形態に従う動画再生に係る処理の一例を示すフローチャートである。
【0116】
まず、ステップS1210において、制御部190は、仮想空間501に動画再生領域(例えば、スクリーンオブジェクト)を配置する。また、ステップS1220において、制御部190は、仮想空間501にトリガ領域を設定する。トリガ領域は、動画再生領域の近傍に設定されることが好ましい。
【0117】
ユーザオブジェクト502がトリガ領域内に侵入しない場合(ステップS1230においてNo)、プログラム151を終了するための入力操作を受け付けたこと等に応じて、一連の処理を終了する。
【0118】
移動操作がされることによってユーザオブジェクト502がトリガ領域内に侵入した場合(ステップS1230においてYes)、ステップS1240において、制御部190は、動画再生領域において動画の再生を開始する。動画の再生形式は、サーバ20から動画情報を都度取得するストリーミング形式でもよいし、記憶部150に動画情報を予めダウンロードしておくダウンロード形式であってもよい。動画の再生は、音声の出力を伴ってなされることが好ましい。
【0119】
トリガ領域が設定された動画再生領域における動画の再生は、他のユーザとは同期しないことが好ましい。すなわち、ユーザオブジェクト502がトリガ領域に侵入していない場合、他のユーザの他ユーザオブジェクトがトリガ領域に侵入したとしても、該トリガ領域に対応する動画再生領域において動画の再生を開始しないことが好ましい。なお、この場合、他のユーザのディスプレイ132上では、動画が再生されることになる。
【0120】
なお、一部の動画については、他のユーザとは同期させて動画の再生を行ってもよい。一部の動画は、特に制限されないが、例えば、リアルタイムで実施、放送、又は配信されているコンテンツ(例えば、スポーツの試合等)などである。このような構成によって、他のユーザとの一体感をもって動画を楽しむことができる。
【0121】
動画再生領域を選択するための選択操作(例えば、タップ操作やダブルタップ操作)がされた場合(ステップS1250においてYes)、ステップS1260において、制御部190は、選択された動画再生領域において再生されていた動画を全画面表示する。ステップS1250における処理は、全画面表示を終了するための操作がされる等の終了条件が満たされるまで継続される。終了条件が満たされた場合は、動画再生領域における再生に戻る。
【0122】
動画再生領域を選択するための選択操作がされない場合(ステップS1250においてNo)、動画再生領域における再生が継続される。また、ユーザオブジェクト502がトリガ領域外へと移動していない状態において(ステップS1270においてNo)、動画再生領域における再生が継続される。
【0123】
ユーザオブジェクト502がトリガ領域外に移動した場合(ステップS1270においてYes)、ステップS1280において、制御部190は、動画再生領域における動画の再生を停止する。また、ステップS1290において、制御部190は、動画における再生が停止された停止位置を記憶する。ユーザオブジェクト502が再びトリガ領域に侵入した場合は、記憶された停止位置を参照し、前回の続きから動画の再生が開始されうる。
【0124】
以下、
図13から
図15を用いて、動画再生に係る処理について詳述する。
図13は、一実施形態に従う仮想空間501の一例を示す模式図である。
図13の例では、仮想空間501に、ユーザオブジェクト502と、スクリーンオブジェクト1301a及び1301bとが配置され、トリガ領域1302a及び1302bが設定されている。
【0125】
スクリーンオブジェクト1301a及び1301bは、動画再生領域の一例であり、例えば、スクリーンの形状を模した仮想オブジェクトである。スクリーンオブジェクト1301a及び1301bにおいて再生される動画は、互いに異なる。
【0126】
トリガ領域1302aは、スクリーンオブジェクト1301aに対応する領域であり、トリガ領域1302bは、スクリーンオブジェクト1301bに対応する領域である。例えば、ユーザオブジェクト502がトリガ領域1302a内に侵入した場合、スクリーンオブジェクト1301aにおいて動画の再生が開始される。
【0127】
図14は、一実施形態に従う表示画面の一例を示す模式図である。
図14の(a)は、ユーザオブジェクト502がトリガ領域1302a内を移動している状態を示す図である。ユーザオブジェクト502がトリガ領域1302a内に位置することに基づいて、スクリーンオブジェクト1301aでは、動画の再生が行われている。なお、
図14の(a)では、移動操作がされている状態であるため、ディスプレイ132に表示されている仮想空間画像は、三人称視点に基づくものである。
【0128】
図14の(b)は、ユーザオブジェクト502がトリガ領域1302a内で停止した状態を示す図である。ユーザオブジェクト502がトリガ領域1302a内に位置することに基づいて、スクリーンオブジェクト1301aでは、動画の再生が継続されている。また、
図14の(b)では、移動操作がされていない状態であるため、ディスプレイ132に表示されている仮想空間画像は、一人称視点に基づくものに変更され、ユーザオブジェクト502は非表示になっている。
【0129】
図14の(a)の状態では、スクリーンオブジェクト1301aの一部が、ユーザオブジェクト502に隠れてしまって視認できないが、
図14の(b)のように一人称視点に変更することで、ユーザは、スクリーンオブジェクト1301aの全てを視認することが可能になる。
【0130】
図15は、一実施形態に従う動画を全画面表示した場合の表示画面の一例を示す模式図である。
図15は、例えば、
図14の(b)に示す状態でスクリーンオブジェクト1301aに対するタップ操作がされた場合の例である。
【0131】
図15の例では、ディスプレイ132上に、
図14の(b)の状態においてスクリーンオブジェクト1301aで再生されていた動画が全画面表示されている。また、ディスプレイ132の下部には、一時停止ボタン1501、早送りボタン1502、巻き戻しボタン1503、及びシークバー1504が表示されている。これらのボタンは、動画の操作UI(User Interface)の一例である。これらの操作UIは、一定時間の経過によって透明になることが好ましい。
図15の例では、全画面表示をするにあたって、ディスプレイ132の向きが縦向きから横向きへと変更されているが、縦向きのままで全画面表示をしてもよい。
図15の状態で全画面表示の終了条件が満たされた場合、例えば、
図14の(b)に示す状態に戻る。
【0132】
以上、本開示に係る各実施形態について詳細に説明したが、プログラムの動作に支障が生じない限り、各実施形態の説明において制御部190が実行していた処理の一部を制御部290が担当してもよく、制御部290が実行していた処理の少なくとも一部を制御部190が担当してもよい。
【0133】
例えば、仮想空間や仮想オブジェクトの生成、仮想空間画像の生成を制御部290が実行する、いわゆるクラウド型のシステムを実現するプログラムとしてもよい。また、サーバ20を備えずに、いわゆるスタンドアローン型のプログラムとしてもよい。また、サーバ20を備えずに、ユーザ端末同士でP2P通信をすることで、同一の仮想空間内に複数のユーザオブジェクトが存在可能なように構成してもよい。
【0134】
また、上記の各実施形態は、本発明の理解を容易にするための例示に過ぎず、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその均等物が含まれることは言うまでもない。
【0135】
[付記事項]
本開示の内容を列記すると以下の通りである。
【0136】
(項目1)
プロセッサ及びメモリを備える第1コンピュータにより実行されるプログラムであって、
前記プログラムは、前記プロセッサに、
仮想空間を生成するステップと、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置するステップと、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成するステップと、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるステップと、を実行させ、
前記仮想空間画像を生成するステップにおいて、
前記移動操作がされていない場合、前記仮想カメラは、前記仮想空間画像が前記ユーザオブジェクトの一人称視点の画像となるように位置を制御され、
前記移動操作がされている場合、前記仮想カメラは、前記仮想空間画像が前記ユーザオブジェクトの少なくとも一部を含む三人称視点の画像となるように位置を制御される、
プログラム。
これにより、映像酔いを生じにくくするとともに、仮想空間への没入感や仮想空間内の視認性の低下を抑制することができる。具体的には、ユーザオブジェクトの移動時にはユーザオブジェクトが表示される三人称視点になるので、一人称視点の場合よりも映像酔いが生じにくくなる。また、ユーザオブジェクトが移動していない時は一人称視点になるので、三人称視点の場合よりも仮想空間への没入感が向上し、仮想空間内の視認性が向上する。また、一人称視点と三人称視点の切り替えが移動操作の有無に基づいて自動でなされることにより、ユーザの利便性が向上する。
【0137】
(項目2)
前記移動操作がされていない場合、前記仮想空間画像を生成するステップでは、前記ユーザオブジェクトの少なくとも一部を非表示にした状態で前記仮想空間画像を生成する、
項目1に記載のプログラム。
これにより、一人称視点におけるユーザの視認性を向上させることができる。また、ユーザオブジェクトの全部を透明にすることで、仮想カメラによってユーザオブジェクトの内部が表示されるという現実では有りえないような表示がなされることを抑制できる。
【0138】
(項目3)
前記ユーザオブジェクトを前記仮想カメラが向く方向へ移動させる移動操作が開始された場合、前記仮想空間画像を生成するステップでは、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第1距離に達するまでは、前記ユーザオブジェクトを移動させ、かつ、前記仮想カメラを移動させずに前記仮想空間画像を生成し、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第1距離に達した後は、前記ユーザオブジェクトの移動に連動するように前記仮想カメラを移動させて前記仮想空間画像を生成する、
項目1または項目2に記載のプログラム。
これにより、一人称視点から三人称視点へと変更する場合において、ユーザの違和感を生じにくくすることができる。
【0139】
(項目4)
前記ユーザオブジェクトを前記仮想カメラが向く方向とは反対の方向へ移動させる移動操作が開始された場合、前記仮想空間画像を生成するステップにおいて、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第2距離に達するまでは、前記ユーザオブジェクトを移動させ、かつ、前記仮想カメラを前記ユーザオブジェクトの移動速度よりも早い移動速度で前記反対の方向側へと移動させて前記仮想空間画像を生成し、
前記ユーザオブジェクトと前記仮想カメラとの距離が所定の第2距離に達した後は、前記移動操作に基づいて前記ユーザオブジェクトを移動させ、かつ、前記ユーザオブジェクトの移動に連動するように前記ユーザオブジェクトの移動速度と同じ移動速度で前記仮想カメラを移動させて前記仮想空間画像を生成する、
項目1から項目3のいずれか一項に記載のプログラム。
これにより、一人称視点から三人称視点へと変更する場合において、ユーザの違和感を生じにくくすることができる。
【0140】
(項目5)
前記仮想空間画像を生成するステップにおいて、
前記ユーザオブジェクトの移動開始から所定の時間が経過するまで、前記ユーザオブジェクトを透明から不透明の状態へとフェードイン処理して前記仮想空間画像を生成し、
前記ユーザオブジェクトの移動終了から所定の時間が経過するまで、前記ユーザオブジェクトを不透明から透明の状態へとフェードアウト処理して前記仮想空間画像を生成する、
項目1から項目4のいずれか一項に記載のプログラム。
これにより、視点変更の前後において、ユーザの違和感を生じにくくすることができる。
【0141】
(項目6)
前記仮想空間画像を生成するステップにおいて、前記移動操作の開始及び終了のうちの少なくとも一方から所定の時間が経過するまで、前記仮想空間画像の視認性を低下させる処理を実行する、
項目1から項目5のいずれか一項に記載のプログラム。
これにより、視点変更の前後において、ユーザの違和感を生じにくくすることができる。また、映像酔いを更に抑制することが可能になる。
【0142】
(項目7)
前記配置するステップは、さらに、前記仮想空間に動画再生領域を配置することを含み、
前記仮想空間には、前記動画再生領域において動画の再生を開始するためのトリガ領域が設定されており、
前記プログラムは、前記プロセッサに、さらに、
前記ユーザオブジェクトが前記トリガ領域に位置する場合に、前記動画再生領域において前記動画を再生するステップを実行させる、
項目1から項目6のいずれか一項に記載のプログラム。
これにより、ユーザオブジェクトがトリガ領域内に位置する場合に自動で動画を再生し、ユーザオブジェクトがトリガ領域外に出た場合に自動で動画を停止することができるので、結果として、ユーザの利便性を向上させることができる。また、仮想空間内で動画が見られることを認識させるとともに、興味のある動画か否かの判断をし易くさせる。例えば、360度空間が展開されるケースでは、進行方向の視点に動画再生領域がない場合、動画に気づくことが難しい。そのため、動画の自動再生、特に音声が伴うことでより動画視聴ができることを認識させることが可能であるまた、項目7のプログラムは、前提として、移動操作がされていない場合に一人称視点とするものなので、動画の視認性を向上させることができる。
【0143】
(項目8)
前記動画再生領域を選択する操作がされた場合、前記再生するステップにおいて、前記動画を全画面表示で再生する、
項目7に記載のプログラム。
これにより、動画の視認性を更に向上させることができる。また、動画視聴時の操作性を向上することができる。仮に、動画再生領域内に操作UIを配置しても、仮想カメラが向いている角度や、動画再生領域との距離次第で操作UIを選択することが困難になるが、全画面表示にすることでこれらの問題を解消し、動画視聴時の操作性を向上させることができる。
【0144】
(項目9)
前記第1コンピュータは、第2コンピュータと通信接続が可能であり、
前記プログラムは、前記プロセッサに、さらに、
前記第1コンピュータのユーザとは異なる他のユーザが操作する他ユーザオブジェクトに関する他ユーザオブジェクト情報を、前記第2コンピュータから受信するステップを実行させ、
前記配置するステップは、さらに、前記他ユーザオブジェクト情報に基づいて、前記仮想空間に前記他ユーザオブジェクトを配置することを含む、
項目1から項目8のいずれか一項に記載のプログラム。
これにより、他のユーザとの交流を実現することができる。また、項目9のプログラムは、前提として、移動操作がされていない場合に一人称視点とするものなので、他ユーザとの交流時の没入感や他ユーザオブジェクトの視認性を向上することができる。また、項目9のプログラムは、前提として、移動操作がされている場合に三人称視点とするものなので、自分のユーザオブジェクトと他ユーザオブジェクトとの位置関係が把握しやすく、結果として、自分のユーザオブジェクトを望んだ位置へと移動させやすくなる。
【0145】
(項目10)
プロセッサ及びメモリを備えるコンピュータにより実行される方法であって、
前記方法は、前記プロセッサに、
仮想空間を生成するステップと、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置するステップと、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成するステップと、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるステップと、を実行させることを含み、
前記仮想空間画像を生成するステップにおいて、
前記移動操作がされていない場合、前記仮想カメラは、前記仮想空間画像が前記ユーザオブジェクトの一人称視点の画像となるように位置を制御され、
前記移動操作がされている場合、前記仮想カメラは、前記仮想空間画像が前記ユーザオブジェクトの少なくとも一部を含む三人称視点の画像となるように位置を制御される、
方法。
これにより、映像酔いを生じにくくするとともに、仮想空間への没入感や仮想空間内の視認性の低下を抑制することができる。
【0146】
(項目11)
プロセッサ及びメモリを備える情報処理装置であって、
前記プロセッサは、
仮想空間を生成し、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置し、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成し、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるものであり、
前記仮想空間画像の生成は、
前記移動操作がされていない場合、前記仮想カメラを、前記仮想空間画像が前記ユーザオブジェクトの一人称視点の画像となるように位置を制御してなされ、
前記移動操作がされている場合、前記仮想カメラの位置を、前記仮想空間画像が前記ユーザオブジェクトの少なくとも一部を含む三人称視点の画像となるように制御してなされる、
情報処理装置。
これにより、映像酔いを生じにくくするとともに、仮想空間への没入感や仮想空間内の視認性の低下を抑制することができる。
【符号の説明】
【0147】
1:ゲーム配信システム、10:ユーザ端末、20:サーバ、30:ネットワーク、130:タッチスクリーン、150:(ユーザ端末の)記憶部、190:(ユーザ端末の)制御部、250:(サーバの)記憶部、290:(サーバの)制御部