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

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

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

<>
  • 特許-プログラム及び情報処理装置 図1
  • 特許-プログラム及び情報処理装置 図2
  • 特許-プログラム及び情報処理装置 図3
  • 特許-プログラム及び情報処理装置 図4
  • 特許-プログラム及び情報処理装置 図5
  • 特許-プログラム及び情報処理装置 図6
  • 特許-プログラム及び情報処理装置 図7
  • 特許-プログラム及び情報処理装置 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-25
(45)【発行日】2024-11-05
(54)【発明の名称】プログラム及び情報処理装置
(51)【国際特許分類】
   G06T 19/00 20110101AFI20241028BHJP
   A63F 13/525 20140101ALI20241028BHJP
【FI】
G06T19/00 300A
A63F13/525
【請求項の数】 5
(21)【出願番号】P 2023064869
(22)【出願日】2023-04-12
(62)【分割の表示】P 2022013366の分割
【原出願日】2022-01-31
(65)【公開番号】P2023111908
(43)【公開日】2023-08-10
【審査請求日】2023-04-12
(73)【特許権者】
【識別番号】509070463
【氏名又は名称】株式会社コロプラ
(74)【代理人】
【識別番号】110001416
【氏名又は名称】弁理士法人信栄事務所
(72)【発明者】
【氏名】澤木 一晃
【審査官】岡本 俊威
(56)【参考文献】
【文献】特開2005-111007(JP,A)
【文献】特開2020-018575(JP,A)
【文献】特許第7263576(JP,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/00-19/20
A63F 13/00-13/98
(57)【特許請求の範囲】
【請求項1】
コンピュータを、
仮想空間を生成する空間生成手段と、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置する配置手段と、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成する画像生成手段と、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させる移動手段、として機能させ、
前記画像生成手段は、
前記移動操作がされていない場合、前記ユーザオブジェクトを透明にし、
前記移動操作がされている場合、前記ユーザオブジェクトを不透明にし、
前記ユーザオブジェクトが停止状態から移動状態へ移行する場合、前記ユーザオブジェクトの透明度を徐々に下げながら、前記ユーザオブジェクトを前記仮想カメラから遠ざけるように前記ユーザオブジェクトを制御し、
前記ユーザオブジェクトが移動状態から停止状態へ移行する場合、前記ユーザオブジェクトの透明度を徐々に上げながら、前記ユーザオブジェクトを前記仮想カメラに近づけるように前記ユーザオブジェクトを制御する、
プログラム。
【請求項2】
前記プログラムは、前記コンピュータを、さらに、
前記移動操作の開始後の第一期間及び前記移動操作の終了後の第二期間のうちの少なくとも一方において、前記ユーザオブジェクトに、前記ユーザオブジェクトの移動又は停止に伴う動作である付随動作をさせる付随動作手段として機能させ、
前記付随動作は、前記ユーザオブジェクトが停止状態から移動状態へ移行するまでの準備動作、及び前記ユーザオブジェクトが移動状態から停止状態へ移行するまでの余韻動作のうちの少なくとも一方を含む、
請求項1に記載のプログラム。
【請求項3】
前記付随動作は、前記ユーザオブジェクトの姿勢の変更を含む、
請求項2に記載のプログラム。
【請求項4】
前記配置手段は、前記移動操作の開始前後及び前記移動操作の終了前後において、前記仮想カメラと前記ユーザオブジェクトとの距離を一定に保つ、
請求項1から請求項3のいずれか一項に記載のプログラム。
【請求項5】
プロセッサ及びメモリを備える情報処理装置であって、
前記プロセッサは、
仮想空間を生成し、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置し、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成し、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるものであり、
前記仮想空間画像の生成において、
前記移動操作がされていない場合、前記ユーザオブジェクトを透明にし、
前記移動操作がされている場合、前記ユーザオブジェクトを不透明にし、
前記ユーザオブジェクトが停止状態から移動状態へ移行する場合、前記ユーザオブジェクトの透明度を徐々に下げながら、前記ユーザオブジェクトを前記仮想カメラから遠ざけるように前記ユーザオブジェクトを制御し、
前記ユーザオブジェクトが移動状態から停止状態へ移行する場合、前記ユーザオブジェクトの透明度を徐々に上げながら、前記ユーザオブジェクトを前記仮想カメラに近づけるように前記ユーザオブジェクトを制御する、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム及び情報処理装置に関する。
【背景技術】
【0002】
ユーザの操作入力に基づいてユーザオブジェクトを仮想空間内で移動させ、ユーザオブジェクトの移動に応じて移動する仮想カメラに基づいて、仮想空間画像を生成する技術が知られている。
【0003】
特許文献1には、仮想空間において、ユーザオブジェクトが障害物に隠れて見えなくなることを避けるため、仮想カメラと障害物との距離が所定距離以内である場合、当該障害物の透明度が徐々に増すように当該障害物の透明度を更新するゲームプログラムが開示されている。また、特許文献2には、仮想空間において、ユーザオブジェクトとバトルを行う敵キャラクタがフェードインして登場し、当該敵キャラクタがバトルにおいて残りダメージ値がゼロになって行動不能となった場合にフェードアウトして退場する画像描画装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2008-43589号公報
【文献】特開2005-149315号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、ユーザが、仮想カメラから見てユーザオブジェクトよりも離れた位置のスクリーンに映る動画を見る場合などがある。このような場合、当該スクリーン等の他のオブジェクトがユーザオブジェクトによって隠れてしまうことにより、視認性が低下する事態が生じうる。一方、ユーザオブジェクトを非表示にした場合、ユーザオブジェクトの移動時における移動方向等の把握が容易ではなく、移動操作性が低下するという問題がある。
【0006】
本開示は、仮想空間における移動操作性を維持しながら、視認性の低下を抑制することを目的とする。
【課題を解決するための手段】
【0007】
本開示に示す一実施形態によれば、
プロセッサ及びメモリを備えるコンピュータにより実行されるプログラムであって、
前記プログラムは、前記プロセッサに、
仮想空間を生成するステップと、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置するステップと、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成するステップと、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるステップと、を実行させ、
前記仮想空間画像を生成するステップにおいて、
前記移動操作がされていない場合、前記ユーザオブジェクトを透明にし、
前記移動操作がされている場合、前記ユーザオブジェクトを不透明にする、
プログラム、が提供される。
【発明の効果】
【0008】
本開示に示す一実施形態によれば、仮想空間における移動操作性を維持しながら、視認性の低下を抑制することができる。
【図面の簡単な説明】
【0009】
図1】ある実施の形態に従うシステムの構成例を示す図である。
図2】ある実施の形態に従うユーザ端末の機能的な構成を示すブロック図である。
図3】ある実施の形態に従うサーバの機能的な構成を示すブロック図である。
図4】比較例に係るプログラムが実行されることにより、ユーザ端末に表示される仮想空間画像の一例を示している。
図5】ある実施の形態に従う仮想空間の提供に係る処理の一例を示すフローチャートである。
図6】ある実施の形態に従う仮想空間の一例を示す模式図である。
図7】ある実施の形態に従う表示画面の一例を示す模式図である。
図8】ある実施の形態の変形例1に従う表示画面の一例を示す模式図である。
【発明を実施するための形態】
【0010】
以下、この技術的思想の実施の形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品等には同一の符号を付してある。それらの名称及び機能も同じである。したがって、それらについての詳細な説明は繰り返さない。本開示において示される1以上の実施形態において、各実施形態が含む要素を互いに組み合わせることができ、かつ、当該組み合わせられた結果物も本開示が示す実施形態の一部をなすものとする。
【0011】
(システムの構成)
以下、本開示に係る一実施形態として、ユーザの操作入力に基づいてユーザオブジェクトを仮想空間内で移動させ、ユーザオブジェクトの移動に応じて移動する仮想カメラに基づいて生成される仮想空間画像をユーザに提供するシステムを例示して説明をする。
【0012】
仮想空間は、複数のユーザに共通のものであってもよいし、複数のユーザ毎に異なるものでもよい。すなわち、1つの仮想空間に複数のユーザオブジェクトが存在するようにしてもよいし、1つの仮想空間に1つのユーザオブジェクトが存在するようにしてもよい。また、仮想空間は、VR(Virtual Reality)、AR(Augmented Reality)、MR(Mixed Reality)及びSR(Substitutional Reality)等のXR技術を用いて生成されるものであってもよい。
【0013】
図1は、ある実施の形態に従うシステム1の構成例を示す図である。図1に示すように、システム1は、複数のユーザがそれぞれ使用するユーザ端末10A,10B,10Cと、サーバ20と、を含み、これらの装置がネットワーク30によって互いに通信可能に接続されている。
【0014】
ユーザ端末10Aとユーザ端末10Bとは、無線基地局31と通信することにより、ネットワーク30と接続する。ユーザ端末10Cは、家屋などの施設に設置される無線ルータ32と通信することにより、ネットワーク30と接続する。以下、ユーザ端末10A,10B,10Cなどのユーザ端末を総称して「ユーザ端末10」とも称する。なお、ユーザ端末10は、有線通信によりネットワーク30と接続する構成であってもよい。
【0015】
ユーザ端末10は、ユーザが使用するコンピュータ(情報処理装置)である。ユーザ端末10は、携帯型の情報端末であってもよいし、PC(Personal Computer)又はゲーム機等の設置型の情報端末であってもよい。ユーザ端末10は、タッチスクリーンを備えていてもよいし、備えていなくてもよい。また、ユーザ端末10は、ARゴーグル及びARグラスを含むHMD(Head-Mounted Device)であってもよい。以下では、ユーザ端末10がタッチスクリーンを備える携帯型端末であり、具体的には、スマートフォン、ファブレット又はタブレットなどであるものとして、説明をする。
【0016】
ユーザ端末10は、例えば、アプリ等を配信するプラットフォームを介してインストールされたアプリケーションプログラムを実行する。なお、ユーザ端末10は、アプリケーションプログラムを実行する代わりに、ウェブサイト閲覧用ソフトウェア、すなわちウェブブラウザを介して取得されるプログラムを実行してもよい。
【0017】
ユーザ端末10は、アプリケーションプログラム等のプログラムの実行により、仮想空間画像を生成し、当該仮想空間画像を表示部へ出力することを可能とする。ユーザ端末10は、仮想空間画像の生成にあたって、必要に応じてサーバ20との間で各種データを送受信しうる。
【0018】
サーバ20は、仮想空間画像の生成に必要なデータを、適宜、ユーザ端末10へ送信する。サーバ20は、ユーザに関する各種データを管理する。サーバ20は、例えば、ユーザの操作入力に関する情報をユーザ端末10から受信し、受信した情報に応じた処理を実行する。
【0019】
サーバ20は、ハードウェア構成として、通信IF(Interface)22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29と、を備え、これらが通信バスを介して互いに接続されている。
【0020】
通信IF22は、例えばLAN(Local Area Network)規格など各種の通信規格に対応しており、ユーザ端末10など外部の通信機器との間でデータを送受信するためのインタフェースとして機能する。
【0021】
入出力IF23は、サーバ20への情報の入力を受け付けるとともに、サーバ20の外部へ情報を出力するためのインタフェースとして機能する。入出力IF23は、マウス及びキーボード等の情報入力機器の接続を受け付ける入力受付部と、画像等を表示するためのディスプレイ等の情報出力機器の接続を受け付ける出力部と、を含む。
【0022】
メモリ25は、サーバ20における処理に使用されるデータ等を記憶するための記憶装置である。メモリ25は、例えば、プロセッサ29が処理を行う際に一時的に使用するための作業領域をプロセッサ29に提供する。メモリ25は、ROM(Read Only Memory)又はRAM(Random Access Memory)等の記憶装置を含んで構成されている。
【0023】
ストレージ26は、プロセッサ29が読み込んで実行するための各種プログラム及びデータを記憶するための記憶装置である。ストレージ26は、HDD(Hard Disk Drive)又はフラッシュメモリ等の記憶装置を含んで構成されている。
【0024】
プロセッサ29は、ストレージ26に記憶されるプログラムを読み込んで実行することにより、サーバ20の動作を制御する。プロセッサ29は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)又はGPU(Graphics Processing Unit)等を含んで構成されている。
【0025】
(ユーザ端末の構成)
図2は、ユーザ端末10の機能的な構成を示すブロック図である。図2に示すように、ユーザ端末10は、アンテナ110と、無線通信IF120と、タッチスクリーン130と、入出力IF140と、記憶部150と、音声処理部160と、マイク170と、スピーカ180と、制御部190と、を含む。
【0026】
アンテナ110は、ユーザ端末10が発する信号を電波として空間へ放射する。また、アンテナ110は、空間から電波を受信して受信信号を無線通信IF120へ与える。
【0027】
無線通信IF120は、ユーザ端末10が他の通信機器と通信するため、アンテナ110等を介して信号を送受信するための変復調処理などを行う。無線通信IF120は、チューナー及び高周波回路などを含む無線通信用の通信モジュールであり、ユーザ端末10が送受信する無線信号の変復調及び周波数変換を行い、受信信号を制御部190へ与える。
【0028】
タッチスクリーン130は、ユーザからの入力を受け付けて、ユーザに対する情報をディスプレイ132に出力する。タッチスクリーン130は、ユーザの入力操作を受け付けるためのタッチパネル131と、メニュー画面及び仮想空間画像等を画面に表示するためのディスプレイ132と、を含む。タッチパネル131は、例えば、静電容量方式のものを用いることによって、ユーザの指などが接近したことを検出しうる。ディスプレイ132は、例えば、LCD(Liquid Crystal Display)、有機EL(Electroluminescence)又はその他の表示装置によって実現される。
【0029】
入出力IF140は、ユーザ端末10への情報の入力を受け付けるとともに、ユーザ端末10の外部へ情報を出力するためのインタフェースとして機能する。
【0030】
記憶部150は、フラッシュメモリ又はRAM等により構成される。記憶部150は、ユーザ端末10がサーバ20から受信する各種データを記憶しうる。記憶部150は、仮想空間画像をユーザに提供しうるプログラム151と、仮想空間情報152と、ユーザ情報153と、を記憶する。
【0031】
仮想空間情報152は、例えば、仮想空間を生成するための情報を含む。また、仮想空間情報152は、例えば、仮想空間に配置される仮想カメラ及びユーザオブジェクト等の各種の仮想オブジェクトを生成するための情報を含む。また、仮想空間情報152は、例えば、各種の仮想オブジェクトを仮想空間に配置するための配置情報を含む。ユーザ情報153は、例えば、ユーザ端末10を識別する端末ID(Identification)、及びユーザを識別するユーザID情報等を含む。
【0032】
音声処理部160は、音声信号の変復調を行う。音声処理部160は、マイク170から与えられる信号を変調して、変調後の信号を制御部190へ与える。また、音声処理部160は、音声信号をスピーカ180へ与える。音声処理部160は、例えば、音声処理用のプロセッサによって実現される。マイク170は、音声信号の入力を受け付けて制御部190へ出力するための音声入力部として機能する。スピーカ180は、音声信号を、ユーザ端末10の外部へ出力するための音声出力部として機能する。
【0033】
制御部190は、記憶部150に記憶されるプログラムを読み込んで実行することにより、ユーザ端末10の動作を制御する。制御部190は、例えば、アプリケーションプロセッサによって実現される。
【0034】
制御部190は、プログラム151を読み込んで実行することにより、入力操作受付部191と、送受信部192と、空間生成部193と、配置部194と、移動制御部195と、画像生成部196と、の各機能を発揮する。ある局面において、制御部190は、サーバ20との間で各種情報の送受信を行いながら、仮想空間画像を生成する。
【0035】
入力操作受付部191は、タッチスクリーン130からの出力に基づいて、ユーザの入力操作を受け付ける。具体的には、入力操作受付部191は、ユーザの指などがタッチパネル131に接近したことを、タッチスクリーン130を構成する面の横軸及び縦軸からなる座標系の座標として検出する。
【0036】
入力操作受付部191は、タッチスクリーン130に対するユーザの操作を判別する。具体的には、入力操作受付部191は、いわゆる「接近操作」、「リリース操作」、「タップ操作」、「ダブルタップ操作」、「長押し操作(ロングタッチ操作)」、「ドラッグ操作(スワイプ操作)」、「ムーブ操作」、及び「フリック操作」などのユーザの操作を判別する。入力操作受付部191が判別するユーザの操作は、上記に限られない。例えば、タッチパネル131が、ユーザがタッチパネル131に対して押下する圧力の大きさを検出可能な機構を有する場合、入力操作受付部191は、ユーザが押下した圧力の大きさを判別する。
【0037】
送受信部192は、サーバ20から各種情報を受信し、また、サーバ20に対して各種情報を送信する。送受信部192は、例えば、サーバ20から仮想空間情報252の少なくとも一部を受信する。一例として、送受信部192は、他のユーザが操作する他ユーザオブジェクトに関する他ユーザオブジェクト情報をサーバ20から受信する。送受信部192は、例えば、ユーザオブジェクトの移動やその他の行動に関する情報をサーバ20へ送信する。
【0038】
空間生成部193は、仮想空間情報152を参照し、仮想空間を生成する。また、空間生成部193は、仮想空間に配置される仮想カメラ及びユーザオブジェクト等の仮想オブジェクトを生成する。空間生成部193によって生成される仮想オブジェクトには、他のユーザによって操作される他ユーザオブジェクト、及び動画を表示するためのスクリーンオブジェクト等が含まれうる。
【0039】
配置部194は、仮想空間情報152に含まれる配置情報を参照し、仮想空間に仮想カメラ及びユーザオブジェクト等の各種の仮想オブジェクトを配置する。例えば、配置部194は、他ユーザオブジェクト情報に基づいて、仮想空間に他ユーザオブジェクトを配置する。また、配置部194は、サーバ20から送信される情報等に基づいて、他ユーザオブジェクト及びその他の仮想オブジェクトを移動させうる。
【0040】
移動制御部195は、ユーザオブジェクトを移動させるための移動操作(以下、単に「移動操作」とも称する)がされたことに基づいて、仮想空間内においてユーザオブジェクトを移動させる。例えば、移動制御部195は、入力操作受付部191が受け付けた入力操作の入力位置の座標及び操作の種類に基づいてユーザの指示内容を解釈し、当該解釈に基づいて、ユーザオブジェクトを移動させる。
【0041】
画像生成部196は、仮想カメラに基づいて、仮想カメラから仮想空間内を撮像した画像である仮想空間画像を生成する。画像生成部196が生成した仮想空間画像は、タッチスクリーン130に出力され、ディスプレイ132上に表示される。
【0042】
画像生成部196は、移動操作がされていない場合、すなわちユーザオブジェクトが停止状態である場合、仮想空間画像の生成において当該ユーザオブジェクトを透明にする。一方、画像生成部196は、移動操作がされている場合、すなわちユーザオブジェクトが移動状態である場合、仮想空間画像の生成において当該ユーザオブジェクトを不透明にする。
【0043】
また、画像生成部196は、仮想空間画像におけるユーザオブジェクトを不透明から透明にする場合、当該ユーザオブジェクトの透明度を徐々に上げることが好ましい。すなわち、画像生成部196は、ユーザオブジェクトが移動状態から停止状態へ移行する場合、当該ユーザオブジェクトが不透明から透明に徐々に変化するようにフェードアウト処理をしてもよい。フェードアウト処理が行われる期間は、例えば0.1秒~2秒程度である。
【0044】
また、画像生成部196は、仮想空間画像におけるユーザオブジェクトを透明から不透明にする場合、当該ユーザオブジェクトの透明度を徐々に下げることが好ましい。すなわち、画像生成部196は、ユーザオブジェクトが停止状態から移動状態へ移行する場合、当該ユーザオブジェクトが透明から不透明に徐々に変化するようにフェードイン処理をしてもよい。フェードイン処理が行われる期間は、例えば0.1秒~2秒程度である。
【0045】
また、画像生成部196は、移動操作の開始後の第一期間において、ユーザオブジェクトが移動に伴う動作である付随動作を行うように仮想空間画像を生成することが好ましい。また、画像生成部196は、移動操作の終了後の第二期間において、ユーザオブジェクトが停止に伴う動作である付随動作を行うように仮想空間画像を生成することが好ましい。第一期間と第二期間とは、同じ長さであってもよいし、互い異なる長さであってもよい。また、画像生成部196は、ユーザオブジェクトに行わせる付随動作の種類に応じて、第一期間及び第二期間の少なくとも一方の長さを変化させてもよい。
【0046】
付随動作には、ユーザオブジェクトの姿勢の変更が含まれる。例えば、ユーザオブジェクトの移動に伴う付随動作である準備動作には、ユーザオブジェクトの上半身を傾ける動作、腕を曲げる動作、及びジャンプの前に膝を曲げる動作など、人間が動き出す際に通常行う動作が含まれる。また、例えば、ユーザオブジェクトの停止に伴う付随動作である余韻動作には、傾いている上半身を起こす動作、腕を伸ばす動作、及び膝を伸ばす動作など、人間が動きを止める際に通常行う動作が含まれる。
【0047】
なお、ユーザオブジェクトが、準備動作として上半身を傾ける動作を行い、余韻動作として上半身を起こす動作を行う場合、当該ユーザオブジェクトの動きの変化が分かりやすく、停止状態と移動状態との間における動作の差をより効果的に補完することができる。このため、準備動作として上半身を傾ける動作が行われ、余韻動作として上半身を起こす動作が実行されることが好ましい。
【0048】
また、画像生成部196は、移動操作の開始前後及び移動操作の終了前後において、仮想カメラとユーザオブジェクトとの距離を一定に保つことが好ましい。なお、一定には、若干の誤差が含まれる。
【0049】
(サーバの構成)
図3は、サーバ20の機能的な構成を示すブロック図である。図3を参照して、サーバ20の詳細な構成を説明する。サーバ20は、プログラム251に従って動作することにより、通信部220と、記憶部250と、制御部290と、としての機能を発揮する。
【0050】
通信部220は、サーバ20がユーザ端末10などの外部の通信機器とネットワーク30を介して通信するためのインタフェースとして機能する。
【0051】
記憶部250は、サーバ20を動作させるための各種プログラム及びデータを記憶する。ある局面において、記憶部250は、プログラム251と、仮想空間情報252と、ユーザ情報253と、を記憶する。
【0052】
プログラム251は、ユーザ端末10を介して仮想空間画像をユーザに提供するためのプログラムである。例えば、プログラム251は、仮想空間情報252及びユーザ情報253等を参照して、仮想空間画像をユーザに提供するためのサーバ20側における各種処理を実行する。
【0053】
仮想空間情報252は、例えば、仮想空間を生成するための情報、及び仮想空間に配置される各種の仮想オブジェクトを生成するための情報を含む。仮想空間情報252の少なくとも一部は、仮想空間情報152の元となる情報である。仮想空間情報252には、各ユーザオブジェクトの仮想空間における位置及び行動に関する情報が含まれうる。また、仮想空間情報252には、動画に関する情報が含まれうる。
【0054】
ユーザ情報253は、各ユーザ端末10のユーザに関する情報である。例えば、ユーザ情報253は、ユーザ端末10又はユーザ端末10のユーザを識別する情報、及びその他の情報を含む。
【0055】
制御部290は、記憶部250に記憶されるプログラム251を実行することにより、送受信部291、サーバ処理部292、データ管理部293、及び計時部294としての機能を発揮する。
【0056】
送受信部291は、ユーザ端末10から各種情報を受信し、また、ユーザ端末10に対し各種情報を送信する。ユーザ端末10とサーバ20とは、例えば、仮想空間及び仮想オブジェクトの生成に関する情報、ユーザオブジェクトの移動及びその他の行動に関する情報、並びに動画の再生に関する情報などを送受信する。
【0057】
サーバ処理部292は、ユーザ端末10を介してユーザに仮想空間を提供するためにサーバ20において必要となる各種の処理を行う。サーバ処理部292は、送受信部291が受信したユーザ端末10からの各種要求に応じて、送受信部291に対して各種データの送信を指示する。また、サーバ処理部292は、サーバ処理部292による各種の演算結果に基づいて、データ管理部293に対して各種データの更新を指示する。
【0058】
データ管理部293は、サーバ処理部292からの指示に基づいて、記憶部250に記憶される各種データを追加、削除又は更新する処理を行う。計時部294は、時間を計測する処理を行う。また、計時部294は、例えば、複数のユーザ端末10において各種の時間に関する情報を同期させる処理を実行する。
【0059】
(比較例)
次に、図4を参照して、比較例に係るプログラムが実行されることにより生成される仮想空間画像について説明する。図4は、比較例に係るプログラムが実行されることにより、ユーザ端末10のディスプレイ132に表示される仮想空間画像の一例を示している。
【0060】
ユーザ端末10における制御部190は、比較例に係るプログラムを実行することにより、仮想空間画像を生成すると仮定する。このとき、制御部190は、ユーザによる移動操作の有無に関わらず、ユーザオブジェクト802を不透明にする。すなわち、制御部190は、ユーザオブジェクト802が移動状態である場合だけでなく、停止状態である場合においても、仮想空間画像においてユーザオブジェクト802を不透明にする。
【0061】
ここで、仮想空間には、仮想オブジェクトの一例であるスクリーンオブジェクト807が配置されているとする。制御部190は、ユーザオブジェクト802がスクリーンオブジェクト807の近傍に設定されたトリガ領域内に侵入した場合、スクリーンオブジェクト807において動画の再生を開始する。そして、ユーザオブジェクト802がトリガ領域内で停止状態であることにより、スクリーンオブジェクト807において動画の再生が継続される。
【0062】
動画の再生形式は、サーバ20から動画情報を都度取得するストリーミング形式でもよいし、記憶部150に動画情報を予めダウンロードしておくダウンロード形式であってもよい。動画の再生は、音声の出力を伴ってなされることが好ましい。
【0063】
このように、スクリーンオブジェクト807において動画の再生が行われる場合において、上述のとおりユーザオブジェクト802が不透明である場合、スクリーンオブジェクト807の一部がユーザオブジェクト802に隠れることにより、ユーザにおいて動画の一部を見ることができない事態が生じうる。そこで、本開示に係るプログラムでは、以下のような動作により、このような課題を解決する。
【0064】
(プログラムの動作例)
(a)動作の流れ
次に、図5から図7を参照して、本開示の一実施形態に係るプログラムにおける動作例について説明する。以降で説明する各処理は、ユーザ端末10における制御部190がプログラム151を、サーバ20における制御部290がプログラム251をそれぞれ実行することにより実現される。
【0065】
なお、本明細書で説明する各フローチャートを構成する各処理の順序は、処理内容に矛盾や不整合が生じない範囲で順不同であり、並列的に実行されてもよい。また、本明細書で説明する各フローチャートを構成する処理の一部は、省略してもよい。
【0066】
図5は、一実施形態に従う仮想空間の提供に係る処理の一例を示すフローチャートである。まず、ステップS110において、制御部190は、仮想空間情報152を参照し、仮想空間を生成する。同様に、制御部190は、仮想カメラ及びユーザオブジェクトを含む仮想オブジェクトを生成する。制御部190は、仮想空間及び仮想オブジェクトの生成において、必要に応じてサーバ20から仮想空間情報252等の各種情報を受信してもよい。
【0067】
ステップS120において、制御部190は、仮想空間情報152に含まれる配置情報を参照し、仮想空間に仮想オブジェクトを配置する。このとき、制御部190は、ユーザオブジェクトから所定距離の位置に仮想カメラを配置する。
【0068】
ステップS130において、制御部190は、仮想空間画像を生成する。このとき、制御部190は、ユーザオブジェクトを透明にする。そして、制御部190は、生成した仮想空間画像をディスプレイ132に表示する。
【0069】
仮想空間画像は、仮想カメラに基づく画像であり、仮想カメラから仮想空間内を撮像した画像である。また、仮想カメラの視線方向は、ユーザによって仮想カメラの向きを変更するための入力操作がされたことに基づいて変更されうる。例えば、仮想カメラは、ユーザオブジェクトとの距離を維持しながら、ユーザによる入力操作に応じた位置に移動しうる。
【0070】
制御部190は、ユーザオブジェクトの移動操作を検出しない場合(ステップS140においてNO)、ユーザオブジェクトを透明で表示することを継続する。そして、制御部190は、プログラム151を終了するための入力操作を受け付けたこと等に応じて、一連の処理を終了する。
【0071】
一方、制御部190は、ユーザオブジェクトの移動操作を検出した場合(ステップS140においてYES)、ステップS150において、ユーザオブジェクトを徐々に不透明にするフェードイン処理を開始する。なお、制御部190は、ユーザによる移動操作を検出した場合、必要に応じて、移動後のユーザオブジェクトの位置を特定するための情報をサーバ20へ送信する。
【0072】
ステップS160において、制御部190は、ユーザオブジェクトに対して移動に伴う準備動作を実行させる。
【0073】
ステップS170において、制御部190は、ユーザオブジェクトを移動させる処理を行う。また、制御部190は、ユーザオブジェクトの移動と連動するように、ユーザオブジェクトと同じ移動速度で仮想カメラを移動させる処理を行う。これにより、ユーザオブジェクトと仮想カメラとは、相対的な位置関係を維持したままで移動する。
【0074】
制御部190は、ユーザオブジェクトの移動操作の終了を検出しない場合(ステップS180においてNO)、ステップS170に戻り、ユーザオブジェクト及び仮想カメラを移動させる処理を継続する。
【0075】
一方、制御部190は、ユーザオブジェクトの移動操作の終了を検出した場合(ステップS180においてYES)、ステップS190において、ユーザオブジェクト及び仮想カメラの移動を停止させる処理を行う。
【0076】
ステップS200において、制御部190は、ユーザオブジェクトを徐々に透明にするフェードアウト処理を開始する。
【0077】
ステップS210において、制御部190は、ユーザオブジェクトに対して停止に伴う余韻動作を実行させる。そして、制御部190は、プログラム151を終了するための入力操作を受け付けたこと等に応じて、一連の処理を終了する。
【0078】
(b)仮想空間及び仮想空間画像の説明
以下、図6及び図7を用いて、図5に示した一連の処理において生成される仮想空間及び仮想空間画像について説明する。図6は、一実施形態に従う仮想空間501の一例を示す模式図である。図6において、仮想空間501には、ユーザオブジェクト502と、仮想カメラ503と、柱オブジェクト504と、他ユーザオブジェクト506と、が配置されている。
【0079】
ユーザオブジェクト502は、ユーザが操作可能なオブジェクトであり、例えばユーザのアバターである。他ユーザオブジェクト506は、他のユーザが操作可能なオブジェクトであり、例えば他のユーザのアバターである。仮想カメラ503は、仮想空間501を撮像する仮想オブジェクトである。柱オブジェクト504は、仮想空間501に固定配置される仮想オブジェクトである。
【0080】
(b-1)停止状態から移動状態へ移行する場合の仮想空間画像
図7は、一実施形態に従う表示画面の一例を示す模式図である。具体的には、図7の(a)は、ユーザオブジェクト502が停止状態であるときの表示画面を示している。図7の(b)は、ユーザオブジェクト502が付随動作を実行しているときの表示画面を示している。図7(c)は、ユーザオブジェクト502が移動状態であるときの表示画面を示している。
【0081】
図7の(a)は、ユーザオブジェクト502の移動操作が行われる前の状態(図5に示すステップS130)において表示される仮想空間画像を示す。当該仮想空間画像において、停止状態であるユーザオブジェクト502は透明であり、表示されていない。なお、ユーザオブジェクト502の所有物がある場合には、当該所有物も表示されない。
【0082】
他ユーザオブジェクト506は、移動状態であるか否かに関わらず、ユーザオブジェクト502を操作するユーザのディスプレイ132上に表示される。例えば、図7の(a)では他ユーザオブジェクト506は立ち止まっており移動をしていないが、ディスプレイ132上に表示されている。
【0083】
なお、他ユーザオブジェクト506を操作する他のユーザのディスプレイ上では、他ユーザオブジェクト506は透明であり、表示されていない。一方、ユーザオブジェクト502は、当該他のユーザのディスプレイ上では不透明であり、表示されている。
【0084】
また、当該他のユーザによって、他ユーザオブジェクト506に対する移動又はその他の行動をさせるための操作がなされた場合、移動後の他ユーザオブジェクト506の位置、又はその他の行動を特定するための情報が、サーバ20を介してユーザオブジェクト502のユーザのユーザ端末10に送信される。制御部190は、その情報に基づいて、仮想空間501における他ユーザオブジェクト506の位置及び行動を制御する。
【0085】
また、図7の(a)では、操作子601が破線で示されている。操作子601は、ユーザオブジェクト502を移動させる移動操作の入力を受け付けるために表示される仮想的なコントローラである。ユーザは、例えば、操作子601の中央にある円状部をドラッグすることで、ドラッグした方向にユーザオブジェクト502を移動させることができる。
【0086】
操作子601は一例であり、他の形状や入力態様を採用してもよい。仮想空間501の視認性を高めるという観点から、操作子601は、ユーザの移動操作を受け付けるまでは、完全に透明な状態又は視認可能ではあるが透明度の高い状態であることが好ましい。
【0087】
図7の(b)は、ユーザオブジェクト502の移動操作が開始され、当該ユーザオブジェクト502のフェードイン処理(図5に示すステップS150)及び準備動作(図5に示すステップS160)が行われている状態における仮想空間画像を示す。当該仮想空間画像において、ユーザオブジェクト502が半透明で表示されている。図7の(b)では、ユーザオブジェクト502が半透明で表示されていることを示すために、当該ユーザオブジェクト502を破線で示している。例えば、操作子601を左右に2分割する線分lよりも右側(矢印A方向側)に位置する領域へ円状部がドラッグされた場合、ドラッグ操作の開始後の第一期間において、ユーザオブジェクト502は右方向への移動の準備動作を実行する。
【0088】
具体的には、ユーザオブジェクト502は、体の向きを右側へ向けて、上半身を傾ける。また、ユーザオブジェクト502は、さらに、膝及び腕を曲げるなどの準備動作を行ってもよい。
【0089】
また、図7の(b)では、右方向への移動操作がされていることを示すため、操作子601の円状部分は右側に位置している。また、移動操作がされていることに応じて、操作子601は、図7の(a)の場合よりも透明度の低い状態にされている。
【0090】
図7の(c)は、ユーザオブジェクト502のフェードイン処理及び準備動作の完了後であり、かつ当該ユーザオブジェクト502の移動操作が継続中である状態(図5に示すステップS170)における仮想空間画像を示している。当該仮想空間画像において、ユーザオブジェクト502が不透明で表示されている。図7の(c)では、ユーザオブジェクト502が不透明で表示されていることを示すために、当該ユーザオブジェクト502を実線で示している。図7の(c)では、右方向への移動操作がされているため、ユーザオブジェクト502は右方向へ移動している。
【0091】
また、図7の(c)では、図7の(b)と同様に、右方向への移動操作がされていることを示すため、操作子601の円状部分は右側に位置している。また、図7の(c)では、図7の(b)と同様に、移動操作がされていることに応じて、操作子601は、図7の(a)の場合よりも透明度の低い状態にされている。移動操作中において、ユーザの移動操作を容易にするという観点から、操作子601は不透明であってもよいし、仮想空間501の視認性を高めるという観点から、半透明又は透明であってもよい。
【0092】
ユーザオブジェクト502の停止状態から移動状態への移行期間において、図7の(a)に示す仮想空間画像から図7の(b)に示す仮想空間画像を経由して、図7の(c)に示す仮想空間画像が表示される。図7では、ユーザオブジェクト502が付随動作を実行しているときの表示画面として図7の(b)の1つのみを示しているが、制御部190は、ユーザオブジェクト502の付随動作としての動きが連続的又は段階的に変化するように仮想空間画像を生成する。
【0093】
また、この移行期間において、ユーザオブジェクト502のフェードイン処理により、ユーザオブジェクト502の透明度は連続的又は段階的に下げられる。すなわち、ユーザオブジェクト502のフェードイン処理と、ユーザオブジェクト502の移動のための準備動作とは並列的に実される。
【0094】
ユーザオブジェクト502が準備動作を行う第一期間の長さは、当該移行期間と同じであってもよいし、当該移行期間よりも短くてもよい。例えば、第一期間が移行期間よりも短い場合、フェードイン処理の開始とともにユーザオブジェクト502の準備動作及び移動が開始し、フェードイン処理の継続中に準備動作が完了する。また、例えば、第一期間が移行期間よりも長い場合、フェードイン処理の開始とともにユーザオブジェクト502の準備動作及び移動が開始し、フェードイン処理が完了した後においても準備動作が継続する。
【0095】
(b-2)移動状態から停止状態へ移行する場合の仮想空間画像
ユーザオブジェクト502の移動状態から停止状態への移行期間において、図7の(c)に示す仮想空間画像から図7の(b)に示す仮想空間画像を経由して、図7の(a)に示す仮想空間画像が表示される。
【0096】
図7の(b)に示すように、ユーザオブジェクト502は、移動操作の終了後、すなわちユーザによる円状部のドラッグ操作の終了後の第二期間において、停止までの余韻動作を実行する。例えば、ユーザオブジェクト502は、傾いている上半身を起こして、足踏みを行う。
【0097】
また、この移行期間において、ユーザオブジェクト502のフェードアウト処理により、ユーザオブジェクト502の透明度は連続的又は段階的に上げられる。すなわち、ユーザオブジェクト502のフェードアウト処理と、ユーザオブジェクト502の停止のための余韻動作とは並列的に実行される。
【0098】
なお、ユーザオブジェクト502が余韻動作を行う第二期間の長さは、当該移行期間と同じであってもよいし、当該移行期間よりも短くてもよい。例えば、第二期間が移行期間よりも短い場合、フェードアウト処理の開始とともにユーザオブジェクト502の余韻動作が開始し、フェードアウト処理の継続中に余韻動作が完了する。
【0099】
(b-3)停止状態におけるユーザオブジェクトのジェスチャーの実行
ユーザオブジェクト502は、ユーザが表示画面に含まれるアイコンを押下する等の操作を行った場合、当該操作の内容に応じたジェスチャーを実行してもよい。ジェスチャーには、拍手をする動作、及び手を振る動作などが含まれる。
【0100】
制御部190は、ユーザオブジェクト502が停止状態、すなわち非表示である状態においてジェスチャーを実行する場合、当該ユーザオブジェクト502を表示する。そして、制御部190は、ユーザオブジェクト502のジェスチャーが終了すると、当該ユーザオブジェクト502を再び非表示にする。
【0101】
このような構成により、ユーザオブジェクト502が実行することのできる動作の種類を増やし、さらに、ユーザオブジェクト502の停止中における動作を、当該ユーザオブジェクト502を操作するユーザが確認することができる。
【0102】
(b-4)移動速度に応じた動作の制御
ユーザオブジェクト502は、操作子601の円状部がドラッグされる長さに応じて、移動速度が変化してもよい。具体的には、移動操作が行われていない場合における操作子601の円状部の中心位置を初期位置とすると、ドラッグされた円状部の中心位置と初期位置との距離がゼロより大きく、かつ所定値未満である場合にはユーザオブジェクト502が歩いて移動する。また、ドラッグされた円状部の中心位置と初期位置との距離が所定値以上である場合にはユーザオブジェクト502が走って移動する。以下、ユーザオブジェクト502が歩いている状態を歩行状態と称し、ユーザオブジェクト502が走っている状態を走行状態と称する。
【0103】
制御部190は、ユーザオブジェクト502が歩行状態から走行状態へ移行する場合、当該ユーザオブジェクト502の上半身の傾きを大きくする等の付随動作を実行させてもよい。また、制御部190は、ユーザオブジェクト502が走行状態から歩行状態へ移行する場合、当該ユーザオブジェクト502の上半身の傾きを小さくする等の付随動作を実行させてもよい。
【0104】
このような場合において、後述するように、ユーザオブジェクト502の向きと仮想カメラ503の視線方向とが合っていると、ユーザオブジェクト502の移動速度が大きくなるほど当該ユーザオブジェクト502の上半身の傾きが大きくなり、当該ユーザオブジェクト502の頭が仮想カメラ503から離れる。このため、仮想カメラ503による撮像画像を見るユーザにおいては、ユーザオブジェクト502の移動速度が大きくなるほど、ユーザオブジェクト502との距離が遠くなるように感じる。
【0105】
一方、ユーザオブジェクト502の移動速度が小さくなるほど当該ユーザオブジェクト502の上半身の傾きが小さくなり、当該ユーザオブジェクト502の頭が仮想カメラ503に近づく。このため、仮想カメラ503による撮像画像を見るユーザにおいては、ユーザオブジェクト502の移動速度が小さくなるほど、ユーザオブジェクト502との距離が近くなるように感じる。
【0106】
なお、本実施形態では、ユーザオブジェクト502の移動速度が大きくなるほど当該ユーザオブジェクト502の上半身の傾きが大きくなる構成を採用しているが、このような構成に限定されない。例えば、ユーザオブジェクト502が走行を開始したタイミングから所定時間、当該ユーザオブジェクト502の上半身の傾きを大きくし、当該所定時間が経過した後、上半身の傾きを徐々に小さくする構成を採用してもよい。このような場合であっても、上記所定時間が経過した後の走行状態における上半身の傾きは、歩行状態における上半身の傾きよりも大きいことが望ましい。
【0107】
(変形例1)
図8は、一実施形態の変形例1に係る表示画面の一例を示す模式図である。具体的には、図8の(a)は、ユーザオブジェクト502が移動状態である場合の表示画面を示している。図8の(b)は、ユーザオブジェクト502の移動停止時におけるユーザオブジェクト502の向きを説明するための表示画面を示している。
【0108】
画像生成部196は、仮想空間画像の生成において、ユーザオブジェクト502が移動状態から停止状態へ移行する場合、当該ユーザオブジェクト502の向きと仮想カメラ503の視線方向とが合うように当該ユーザオブジェクト502を制御してもよい。
【0109】
具体的には、図8の(a)に示すように、ユーザオブジェクト502が右方向へ移動しているとする。このような移動状態において移動操作が終了すると、画像生成部196は、図8の(b)に示すように、ユーザオブジェクト502の背中側に仮想カメラ503が位置するように当該ユーザオブジェクト502の向きを変更する。
【0110】
画像生成部196は、ユーザオブジェクト502の右方向への移動操作が終了した場合だけでなく、仮想カメラ503が位置する方向等の他の方向への移動操作が終了した場合においても同様に、ユーザオブジェクト502の背中側に仮想カメラ503が位置するように当該ユーザオブジェクト502の向きを変更する。
【0111】
そして、画像生成部196は、ユーザオブジェクト502の向きと仮想カメラ503の視線方向とを合わせた後、例えば、上述したフェードアウト処理を行い、当該ユーザオブジェクト502を透明にする。なお、画像生成部196は、ユーザオブジェクト502の向きの変更と、当該ユーザオブジェクト502のフェードアウト処理とを並列的に行ってもよい。
【0112】
また、画像生成部196は、ユーザオブジェクト502の移動状態から停止状態への移行期間において、図5に示すステップS210に示す余韻動作を実行させる場合、例えば、当該ユーザオブジェクト502の向きの変更と、余韻動作を実行させる処理とを並列的に行う。
【0113】
上記のように、ユーザオブジェクト502が移動状態から停止状態へ移行する場合、当該ユーザオブジェクト502の向きと仮想カメラ503の視線方向とを合わせることにより、ユーザオブジェクト502が、見えていないはずの他のユーザオブジェクトとコミュニケーションをとるなどの違和感を防ぐことができる。
【0114】
しかしながら、ユーザオブジェクト502を操作するユーザは、当該ユーザオブジェクト502の表情を確認することができない。このため、ユーザオブジェクト502が移動状態から停止状態へ移行する場合において、当該ユーザオブジェクト502の向きと仮想カメラ503の視線方向とを合わせない構成を採用してもよい。
【0115】
また、例えば、ユーザオブジェクト502が移動状態から停止状態へ移行する場合、当該ユーザオブジェクト502の向きと仮想カメラ503の視線方向とを合わせ、さらに、当該ユーザオブジェクト502の顔を含む一部又は全部の画像であって、当該ユーザオブジェクト502を正面から見た画像を表示画面に表示する構成を採用してもよい。
【0116】
(変形例2)
画像生成部196は、移動操作の開始前後及び移動操作の終了前後において、仮想カメラ503とユーザオブジェクト502との距離を変更してもよい。例えば、画像生成部196は、図5のステップS170に示すユーザオブジェクト502の移動開始時において、当該ユーザオブジェクト502を仮想カメラ503から遠ざけるように、当該ユーザオブジェクト502を制御する。
【0117】
具体的には、ユーザオブジェクト502の停止時におけるユーザオブジェクト502と仮想カメラ503との距離を第一距離とする。画像生成部196は、ユーザオブジェクト502の移動操作が開始すると、ユーザオブジェクト502と仮想カメラ503との距離が、第一距離よりも長い第二距離になるように、ユーザオブジェクト502を移動させる。そして、画像生成部196は、当該距離が第二距離のまま維持されるように、ユーザオブジェクト502及び仮想カメラ503を同じ移動速度で移動させる。
【0118】
また、画像生成部196は、例えば、図5のステップS190に示すユーザオブジェクト502の移動停止時において、当該ユーザオブジェクト502を仮想カメラ503に近づけるように、当該ユーザオブジェクト502を制御する。具体的には、画像生成部196は、ユーザオブジェクト502の移動操作が終了すると、ユーザオブジェクト502と仮想カメラ503との距離が第二距離から第一距離に変更されるように、ユーザオブジェクト502を移動させる。
【0119】
このような構成により、ユーザオブジェクト502が移動状態から停止状態へ移行する場合、ユーザにとって、ユーザオブジェクト502が自分に近づいた後に表示画面から消えるため、ユーザオブジェクト502が自分の中に取り込まれたような感覚をより得やすくなる。また、ユーザオブジェクト502が停止状態から移動状態へ移行する場合、ユーザにとって、ユーザオブジェクト502が自分から離れていくため、ユーザオブジェクト502が自分の中から出てくるような感覚をより得やすくなる。
【0120】
なお、画像生成部196は、仮想カメラ503とユーザオブジェクト502との距離を変更する際に、ユーザオブジェクト502を移動させる代わりに、仮想カメラ503を移動させてもよい。
【0121】
また、移動操作の開始前後及び移動操作の終了前後において、仮想カメラ503とユーザオブジェクト502との距離を変更する代わりに、又は当該距離を変更することに加えて、ユーザオブジェクト502の大きさを変更する構成を採用してもよい。
【0122】
例えば、画像生成部196は、ユーザオブジェクト502が移動状態から停止状態へ移行する場合、当該ユーザオブジェト502のフェードアウト処理を行いながら、当該ユーザオブジェクト502の大きさを、移動状態における当該ユーザオブジェクト502の大きさ(以下、単に「移動時の大きさ」とも称する)から徐々に大きくしてもよい。また、画像生成部196は、例えば、ユーザオブジェクト502が停止状態から移動状態へ移行する場合、当該ユーザオブジェト502のフェードイン処理を行いながら、当該ユーザオブジェクト502の大きさを、移動時の大きさよりも大きい状態から移動時の大きさになるまで、徐々に小さくしてもよい。
【0123】
以上、本開示に係る各実施形態について詳細に説明したが、プログラムの動作に支障が生じない限り、各実施形態の説明において制御部190が実行していた処理の一部を制御部290が担当してもよく、制御部290が実行していた処理の少なくとも一部を制御部190が担当してもよい。
【0124】
例えば、仮想空間及び仮想オブジェクトの生成、並びに仮想空間画像の生成を制御部290が実行する、いわゆるクラウド型のシステムを実現するプログラムとしてもよい。また、サーバ20を備えずに、いわゆるスタンドアローン型のプログラムとしてもよい。また、サーバ20を備えずに、ユーザ端末同士でP2P通信をすることで、同一の仮想空間内に複数のユーザオブジェクトが存在可能なように構成してもよい。
【0125】
また、上記の各実施形態は、本発明の理解を容易にするための例示に過ぎず、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその均等物が含まれることは言うまでもない。
【0126】
[付記事項]
本開示の内容を列記すると以下の通りである。
【0127】
(項目1)
プロセッサ及びメモリを備えるコンピュータにより実行されるプログラムであって、
前記プログラムは、前記プロセッサに、
仮想空間を生成するステップと、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置するステップと、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成するステップと、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるステップと、を実行させ、
前記仮想空間画像を生成するステップにおいて、
前記移動操作がされていない場合、前記ユーザオブジェクトを透明にし、
前記移動操作がされている場合、前記ユーザオブジェクトを不透明にする、
プログラム。
これにより、ユーザオブジェクトの停止時においては当該ユーザオブジェクトが表示されないことにより、スクリーンオブジェクトなど、ユーザが見ようとする他の仮想オブジェクトがユーザオブジェクトによって隠れてしまうことを防ぐことができる。また、ユーザオブジェクトの移動時においては、ユーザオブジェクトが表示されることにより、ユーザオブジェクトの移動に伴う映像酔いを防ぎ、かつ仮想空間におけるユーザオブジェクトの移動方向を容易に把握することができる。したがって、仮想空間における移動操作性を維持しながら、視認性の低下を抑制することができる。
【0128】
(項目2)
前記仮想空間画像を生成するステップにおいて、
前記ユーザオブジェクトを不透明から透明にする場合、前記ユーザオブジェクトの透明度を徐々に上げて、
前記ユーザオブジェクトを透明から不透明にする場合、前記ユーザオブジェクトの透明度を徐々に下げる、
請求項1に記載のプログラム。
これにより、ユーザオブジェクトの表示および非表示が切り替わることによる違和感を防ぐことができる。また、移動停止時においてはユーザオブジェクトが徐々に透明になることにより、ユーザにとって、ユーザオブジェクトが自分の中に取り込まれたような感覚になる一方で、移動開始時においてはユーザオブジェクトが徐々に不透明になることにより、ユーザにとって、ユーザオブジェクトが自分の中から出てくるような感覚になるため、仮想空間への没入感を高めることができる。
【0129】
(項目3)
前記プログラムは、前記プロセッサに、さらに、
前記移動操作の開始後の第一期間及び前記移動操作の終了後の第二期間のうちの少なくとも一方において、前記ユーザオブジェクトに、前記ユーザオブジェクトの移動又は停止に伴う動作である付随動作をさせるステップを実行させ、
前記付随動作は、前記ユーザオブジェクトが停止状態から移動状態へ移行するまでの準備動作、及び前記ユーザオブジェクトが移動状態から停止状態へ移行するまでの余韻動作のうちの少なくとも一方を含む、
請求項1又は請求項2に記載のプログラム。
これにより、ユーザオブジェクトに対してより自然な動作を実行させることができる。
【0130】
(項目4)
前記付随動作は、前記ユーザオブジェクトの姿勢の変更を含む、
請求項3に記載のプログラム。
このように、変化が大きく分かりやすい動きを付随動作としてユーザオブジェクトに実行させることにより、停止状態と移動状態との間における動作の差をより効果的に補完することができる。
【0131】
(項目5)
前記移動操作の開始前後及び前記移動操作の終了前後において、前記仮想カメラと前記ユーザオブジェクトとの距離を一定に保つ、
請求項1から請求項4のいずれか一項に記載のプログラム。
これにより、映像酔いをより一層防ぐことができる。
【0132】
(項目6)
前記ユーザオブジェクトが停止状態から移動状態へ移行する場合、前記ユーザオブジェクトを前記仮想カメラから遠ざけるように前記ユーザオブジェクトを制御し、
前記ユーザオブジェクトが移動状態から停止状態へ移行する場合、前記ユーザオブジェクトを前記仮想カメラに近づけるように前記ユーザオブジェクトを制御する、
請求項1から請求項4のいずれか一項に記載のプログラム。
これにより、ユーザオブジェクトが移動状態から停止状態へ移行する場合、ユーザにとって、ユーザオブジェクトが自分に近づいた後に表示画面から消えるため、ユーザオブジェクトが自分の中に取り込まれたような感覚をより得やすくなる。また、ユーザオブジェクトが停止状態から移動状態へ移行する場合、ユーザにとって、ユーザオブジェクトが自分から離れていくため、ユーザオブジェクトが自分の中から出てくるような感覚をより得やすくなる。
【0133】
(項目7)
前記ユーザオブジェクトが移動状態から停止状態へ移行する場合、前記ユーザオブジェクトの向きと前記仮想カメラの視線方向とを合わせるように前記ユーザオブジェクトを制御する、
請求項1から請求項6のいずれか一項に記載のプログラム。
これにより、仮想カメラによって撮像される領域、すなわちユーザに対して表示される領域と、ユーザオブジェクトが見ることのできる領域との間にズレが生じること防ぐことができるため、ユーザにおいて、ユーザオブジェクトと同じ感覚であるように感じることができる。また、これにより、ユーザオブジェクトが、当該ユーザオブジェクトからは見えていないはずの他のユーザオブジェクトとコミュニケーションをとるなどの違和感を防ぐことができる。さらに、他のユーザにおいて、ユーザオブジェクトの向く方向を確認することにより、当該ユーザオブジェクトのユーザの見えている方向を把握することができる。
【0134】
(項目8)
プロセッサ及びメモリを備えるコンピュータにより実行される方法であって、
前記方法は、前記プロセッサに、
仮想空間を生成するステップと、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置するステップと、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成するステップと、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるステップと、を実行させることを含み、
前記仮想空間画像を生成するステップにおいて、
前記移動操作がされていない場合、前記ユーザオブジェクトを透明にし、
前記移動操作がされている場合、前記ユーザオブジェクトを不透明にする、
方法。
これにより、ユーザオブジェクトの停止時においては当該ユーザオブジェクトが表示されないことにより、スクリーンオブジェクトなど、ユーザが見ようとする他の仮想オブジェクトがユーザオブジェクトによって隠れてしまうことを防ぐことができる。また、ユーザオブジェクトの移動時においては、ユーザオブジェクトが表示されることにより、ユーザオブジェクトの移動に伴う映像酔いを防ぎ、かつ仮想空間におけるユーザオブジェクトの移動方向を容易に把握することができる。したがって、仮想空間における移動操作性を維持しながら、視認性の低下を抑制することができる。
【0135】
(項目9)
プロセッサ及びメモリを備える情報処理装置であって、
前記プロセッサは、
仮想空間を生成し、
前記仮想空間に仮想カメラ及びユーザオブジェクトを配置し、
前記仮想カメラに基づいて、前記仮想カメラから前記仮想空間内を撮像した画像である仮想空間画像を生成し、
前記ユーザオブジェクトを移動させるための移動操作がされたことに基づいて、前記仮想空間内において前記ユーザオブジェクトを移動させるものであり、
前記仮想空間画像の生成において、
前記移動操作がされていない場合、前記ユーザオブジェクトを透明にし、
前記移動操作がされている場合、前記ユーザオブジェクトを不透明にする、
情報処理装置。
これにより、ユーザオブジェクトの停止時においては当該ユーザオブジェクトが表示されないことにより、スクリーンオブジェクトなど、ユーザが見ようとする他の仮想オブジェクトがユーザオブジェクトによって隠れてしまうことを防ぐことができる。また、ユーザオブジェクトの移動時においては、ユーザオブジェクトが表示されることにより、ユーザオブジェクトの移動に伴う映像酔いを防ぎ、かつ仮想空間におけるユーザオブジェクトの移動方向を容易に把握することができる。したがって、仮想空間における移動操作性を維持しながら、視認性の低下を抑制することができる。
【符号の説明】
【0136】
1:システム、10:ユーザ端末、20:サーバ、30:ネットワーク、130:タッチスクリーン、150:(ユーザ端末の)記憶部、190:(ユーザ端末の)制御部、250:(サーバの)記憶部、290:(サーバの)制御部
図1
図2
図3
図4
図5
図6
図7
図8