JP2022112769A - プログラム、方法、および情報端末装置 - Google Patents
プログラム、方法、および情報端末装置 Download PDFInfo
- Publication number
- JP2022112769A JP2022112769A JP2021008697A JP2021008697A JP2022112769A JP 2022112769 A JP2022112769 A JP 2022112769A JP 2021008697 A JP2021008697 A JP 2021008697A JP 2021008697 A JP2021008697 A JP 2021008697A JP 2022112769 A JP2022112769 A JP 2022112769A
- Authority
- JP
- Japan
- Prior art keywords
- user
- mode
- image
- viewpoint
- game
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000033001 locomotion Effects 0.000 claims abstract description 212
- 238000003860 storage Methods 0.000 claims description 48
- 230000003190 augmentative effect Effects 0.000 claims description 39
- 230000015654 memory Effects 0.000 claims description 29
- 230000010365 information processing Effects 0.000 claims description 6
- 238000003384 imaging method Methods 0.000 claims description 5
- 230000009471 action Effects 0.000 description 103
- 238000009826 distribution Methods 0.000 description 95
- 238000012545 processing Methods 0.000 description 60
- 238000010586 diagram Methods 0.000 description 53
- 238000004891 communication Methods 0.000 description 45
- 230000008569 process Effects 0.000 description 31
- 230000006870 function Effects 0.000 description 29
- 230000007704 transition Effects 0.000 description 22
- 210000001508 eye Anatomy 0.000 description 21
- 230000008859 change Effects 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 17
- 230000000694 effects Effects 0.000 description 16
- 210000003128 head Anatomy 0.000 description 13
- 238000010079 rubber tapping Methods 0.000 description 12
- 230000036544 posture Effects 0.000 description 9
- 238000003780 insertion Methods 0.000 description 8
- 230000037431 insertion Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000005034 decoration Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 230000002250 progressing effect Effects 0.000 description 6
- 238000005401 electroluminescence Methods 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 4
- 230000014759 maintenance of location Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 210000000887 face Anatomy 0.000 description 2
- 230000008921 facial expression Effects 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 238000010191 image analysis Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 210000005155 neural progenitor cell Anatomy 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000002834 transmittance Methods 0.000 description 2
- 241000196324 Embryophyta Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 210000005252 bulbus oculi Anatomy 0.000 description 1
- 210000004087 cornea Anatomy 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 210000004709 eyebrow Anatomy 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000007562 laser obscuration time method Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
【課題】好趣を向上させることができる、プログラム、方法、および情報端末装置を提供することである。【解決手段】キャラクタが配置されている仮想空間を表示するための表示用データを受信し、仮想空間内において視点を移動させるための態様が異なる複数種類の視聴モードのうちのいずれかを特定し、表示用データに基づく仮想空間内の画像のうち、特定するステップにより特定されている視聴モードに応じた態様で移動する視点からの画像を前記表示部に表示する。複数種類の視聴モードは、ユーザからの入力部に対する入力態様に応じて視点を移動可能となる視聴モードとして、キャラクタが配置され得る所定の範囲内への視点の移動を規制し得る第1視聴モードと、キャラクタが配置され得る所定の範囲内への視点の移動を許容するが所定の範囲内に視点を移動させたときにはキャラクタを非表示とし得る第2視聴モードとを含む。【選択図】図30
Description
本発明は、プログラム、方法、および情報端末装置に関する。
特許文献1には、ライブ動画を視聴端末において表示するための動画データを当該視聴端末に配信する情報処理システムが記載されている。当該情報処理システムにおいては、コンテンツサーバから配信された動画データにより特定される動画が、視聴端末に表示される。
しかし、特許文献1のシステムでは、動画の表示モードや視点の制御方法などを変更することができない。このため、当該システムでは好趣に欠けるという問題があった。
本発明は、かかる実情に鑑み考え出されたものであり、その目的は、好趣を向上させることができる、プログラム、方法、および情報端末装置を提供することである。
本開示に示す一実施形態のある局面によれば、プロセッサ、メモリ、入力部、および表示部を備える情報端末装置において実行されるプログラムが提供される。プログラムは、プロセッサに、キャラクタが配置されている仮想空間を表示するための表示用データを受信するステップと、仮想空間内において視点を移動させるための態様が異なる複数種類の視聴モードのうちのいずれかを特定するステップと、表示用データに基づく仮想空間内の画像のうち、特定するステップにより特定されている視聴モードに応じた態様で移動する視点からの画像を前記表示部に表示するステップとを実行させ、複数種類の視聴モードは、ユーザからの入力部に対する入力態様に応じて視点を移動可能となる視聴モードとして、キャラクタが配置され得る所定の範囲内への視点の移動を規制し得る第1視聴モードと、キャラクタが配置され得る所定の範囲内への視点の移動を許容するが所定の範囲内に視点を移動させたときにはキャラクタを非表示とし得る第2視聴モードとを含む。
本発明によれば、好趣を向上させることができる。
本開示に係るシステムは、複数のユーザにゲームを提供するためのシステムである。以下、該システムについて図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
<システム1の動作概要>
図1は、本実施形態に係るシステム1の概要を示す図である。システム1は、複数のユーザ端末100(コンピュータ)と、サーバ200と、ゲームプレイ端末300(外部装置、第2外部装置)と、配信端末400(外部、第1外部装置)とを含む。なお、図1では、複数のユーザ端末100の一例として、ユーザ端末100A~100C、換言すれば、3台のユーザ端末100を記載しているが、ユーザ端末100の台数は図示の例に限定されない。また、本実施形態では、ユーザ端末100A~Cを区別する必要が無い場合、「ユーザ端末100」と記載する。ユーザ端末100、ゲームプレイ端末300、および配信端末400は、サーバ200とネットワーク2を介して接続する。ネットワーク2は、インターネットおよび図示しない無線基地局によって構築される各種移動通信システム等で構成される。この移動通信システムとしては、例えば、所謂3G、4G移動通信システム、LTE(Long Term Evolution)、および所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えばWi-Fi(登録商標))等が挙げられる。
図1は、本実施形態に係るシステム1の概要を示す図である。システム1は、複数のユーザ端末100(コンピュータ)と、サーバ200と、ゲームプレイ端末300(外部装置、第2外部装置)と、配信端末400(外部、第1外部装置)とを含む。なお、図1では、複数のユーザ端末100の一例として、ユーザ端末100A~100C、換言すれば、3台のユーザ端末100を記載しているが、ユーザ端末100の台数は図示の例に限定されない。また、本実施形態では、ユーザ端末100A~Cを区別する必要が無い場合、「ユーザ端末100」と記載する。ユーザ端末100、ゲームプレイ端末300、および配信端末400は、サーバ200とネットワーク2を介して接続する。ネットワーク2は、インターネットおよび図示しない無線基地局によって構築される各種移動通信システム等で構成される。この移動通信システムとしては、例えば、所謂3G、4G移動通信システム、LTE(Long Term Evolution)、および所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えばWi-Fi(登録商標))等が挙げられる。
(ゲームの概要)
本実施形態では、システム1によって提供されるゲーム(以下、本ゲーム)の一例として、ゲームプレイ端末300のユーザが主としてプレイするゲームを説明する。以下、ゲームプレイ端末300のユーザを、「プレイヤ」と称する。プレイヤ(演者)は、一例として、本ゲームに登場するキャラクタを操作することにより、ゲームを進行させる。また、本ゲームにおいて、ユーザ端末100のユーザは、プレイヤによるゲームの進行を支援する役割を担う。本ゲームの詳細については後述する。なお、システム1によって提供されるゲームは、複数のユーザが参加するゲームであればよく、この例に限定されない。
本実施形態では、システム1によって提供されるゲーム(以下、本ゲーム)の一例として、ゲームプレイ端末300のユーザが主としてプレイするゲームを説明する。以下、ゲームプレイ端末300のユーザを、「プレイヤ」と称する。プレイヤ(演者)は、一例として、本ゲームに登場するキャラクタを操作することにより、ゲームを進行させる。また、本ゲームにおいて、ユーザ端末100のユーザは、プレイヤによるゲームの進行を支援する役割を担う。本ゲームの詳細については後述する。なお、システム1によって提供されるゲームは、複数のユーザが参加するゲームであればよく、この例に限定されない。
(ゲームプレイ端末300)
ゲームプレイ端末300は、プレイヤによる入力操作に応じてゲームを進行させる。また、ゲームプレイ端末300は、プレイヤのゲームプレイにより生成された情報(以下、ゲーム進行情報)を、順次、サーバ200にリアルタイムで配信する。
ゲームプレイ端末300は、プレイヤによる入力操作に応じてゲームを進行させる。また、ゲームプレイ端末300は、プレイヤのゲームプレイにより生成された情報(以下、ゲーム進行情報)を、順次、サーバ200にリアルタイムで配信する。
(サーバ200)
サーバ200は、ゲームプレイ端末300からリアルタイムに受信したゲーム進行情報(第2データ)を、ユーザ端末100に送信する。また、サーバ200は、ユーザ端末100、ゲームプレイ端末300、および配信端末400の間の各種情報の送受信を仲介する。
サーバ200は、ゲームプレイ端末300からリアルタイムに受信したゲーム進行情報(第2データ)を、ユーザ端末100に送信する。また、サーバ200は、ユーザ端末100、ゲームプレイ端末300、および配信端末400の間の各種情報の送受信を仲介する。
(配信端末400)
配信端末400は、配信端末400のユーザによる入力操作に応じて、動作指図データ(第1データ)を生成し、サーバ200を介してユーザ端末100へ動作指図データを配信する。動作指図データとは、ユーザ端末100において動画を再生するためのデータであり、具体的には、動画に登場するキャラクタを動作させるためのデータである。
配信端末400は、配信端末400のユーザによる入力操作に応じて、動作指図データ(第1データ)を生成し、サーバ200を介してユーザ端末100へ動作指図データを配信する。動作指図データとは、ユーザ端末100において動画を再生するためのデータであり、具体的には、動画に登場するキャラクタを動作させるためのデータである。
本実施形態では、一例として、配信端末400のユーザは、本ゲームのプレイヤである。また、一例として、ユーザ端末100にて動作指図データに基づいて再生される動画は、プレイヤがゲームで操作したキャラクタが動作する動画である。「動作」とは、キャラクタの身体の少なくとも一部を動かすことであり、発話も含む。このため、本実施形態に係る動作指図データは、例えば、キャラクタに発話させるための音声データと、キャラクタの身体を動かすためのモーションデータとを含む。
動作指図データは、一例として、本ゲームの終了後にユーザ端末100へ送信される。動作指図データ、および、該動作指図データに基づいて再生される動画の詳細については後述する。
(ユーザ端末100)
ユーザ端末100は、ゲーム進行情報をリアルタイムに受信し、該情報を用いてゲーム画面を生成して表示する。換言すれば、ユーザ端末100は、リアルタイムレンダリングにより、プレイヤがプレイしているゲームのゲーム画面を再生する。これにより、ユーザ端末100のユーザは、プレイヤがゲームをプレイしながら視認しているゲーム画面と同一のゲーム画面を、プレイヤとほぼ同じタイミングで視認することができる。
ユーザ端末100は、ゲーム進行情報をリアルタイムに受信し、該情報を用いてゲーム画面を生成して表示する。換言すれば、ユーザ端末100は、リアルタイムレンダリングにより、プレイヤがプレイしているゲームのゲーム画面を再生する。これにより、ユーザ端末100のユーザは、プレイヤがゲームをプレイしながら視認しているゲーム画面と同一のゲーム画面を、プレイヤとほぼ同じタイミングで視認することができる。
また、ユーザ端末100は、ユーザによる入力操作に応じて、プレイヤによるゲームの進行を支援するための情報を生成し、該情報を、サーバ200を介してゲームプレイ端末300へ送信する。該情報の詳細については後述する。
また、ユーザ端末100は、配信端末400から動作指図データを受信し、該動作指図データを用いて動画(映像)を生成して再生する。換言すれば、ユーザ端末100は、動作指図データをレンダリングして再生する。
<システム1のハードウェア構成>
図2は、ユーザ端末100のハードウェア構成を示す図である。図3は、サーバ200のハードウェア構成を示す図である。図4は、ゲームプレイ端末300のハードウェア構成を示す図である。図5は、配信端末400のハードウェア構成を示す図である。
図2は、ユーザ端末100のハードウェア構成を示す図である。図3は、サーバ200のハードウェア構成を示す図である。図4は、ゲームプレイ端末300のハードウェア構成を示す図である。図5は、配信端末400のハードウェア構成を示す図である。
(ユーザ端末100)
本実施形態では、一例として、ユーザ端末100がスマートフォンとして実現される例を説明するが、ユーザ端末100はスマートフォンに限定されない。例えば、ユーザ端末100はフィーチャーフォン、タブレット型コンピュータ、ラップトップ型コンピュータ(いわゆる、ノートパソコン)、または、デスクトップ型コンピュータなどとして実現されてもよい。また、ユーザ端末100は、ゲームプレイに適したゲーム装置であってもよい。
本実施形態では、一例として、ユーザ端末100がスマートフォンとして実現される例を説明するが、ユーザ端末100はスマートフォンに限定されない。例えば、ユーザ端末100はフィーチャーフォン、タブレット型コンピュータ、ラップトップ型コンピュータ(いわゆる、ノートパソコン)、または、デスクトップ型コンピュータなどとして実現されてもよい。また、ユーザ端末100は、ゲームプレイに適したゲーム装置であってもよい。
ユーザ端末100は図2に示すように、プロセッサ10と、メモリ11と、ストレージ12と、通信インターフェース(IF)13と、入出力IF14と、タッチスクリーン15(表示部)と、カメラ17と、測距センサ18とを備える。ユーザ端末100が備えるこれらの構成は、通信バスによって互いに電気的に接続される。なお、ユーザ端末100は、タッチスクリーン15に代えて、または、加えて、ユーザ端末100本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF14を備えていてもよい。
また、図2に示すように、ユーザ端末100は、1つ以上のコントローラ1020と通信可能に構成されることとしてもよい。コントローラ1020は、例えば、Bluetooth(登録商標)等の通信規格に従って、ユーザ端末100と通信を確立する。コントローラ1020は、1つ以上のボタン等を有していてもよく、該ボタン等に対するユーザの入力操作に基づく出力値をユーザ端末100へ送信する。また、コントローラ1020は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値をユーザ端末100へ送信する。
なお、ユーザ端末100がカメラ17および測距センサ18を備えることに代えて、または、加えて、コントローラ1020がカメラ17および測距センサ18を有していてもよい。
ユーザ端末100は、例えばゲーム開始時に、コントローラ1020を使用するユーザに、該ユーザの名前またはログインID等のユーザ識別情報を、該コントローラ1020を介して入力させることが望ましい。これにより、ユーザ端末100は、コントローラ1020とユーザとを紐付けることが可能となり、受信した出力値の送信元(コントローラ1020)に基づいて、該出力値がどのユーザのものであるかを特定することができる。
ユーザ端末100が複数のコントローラ1020と通信する場合、各コントローラ1020を各ユーザが把持することで、ネットワーク2を介してサーバ200などの他の装置と通信せずに、該1台のユーザ端末100でマルチプレイを実現することができる。また、各ユーザ端末100が無線LAN(Local Area Network)規格等の無線規格により互いに通信接続する(サーバ200を介さずに通信接続する)ことで、複数台のユーザ端末100によりローカルでマルチプレイを実現することもできる。1台のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、ユーザ端末100は、さらに、サーバ200が備える後述する種々の機能の少なくとも一部を備えていてもよい。また、複数のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、複数のユーザ端末100は、サーバ200が備える後述する種々の機能を分散して備えていてもよい。
なお、ローカルで上述のマルチプレイを実現する場合であっても、ユーザ端末100はサーバ200と通信を行ってもよい。例えば、あるゲームにおける成績または勝敗等のプレイ結果を示す情報と、ユーザ識別情報とを対応付けてサーバ200に送信してもよい。
また、コントローラ1020は、ユーザ端末100に着脱可能な構成であるとしてもよい。この場合、ユーザ端末100の筐体における少なくともいずれかの面に、コントローラ1020との結合部が設けられていてもよい。該結合部を介して有線によりユーザ端末100とコントローラ1020とが結合している場合は、ユーザ端末100とコントローラ1020とは、有線を介して信号を送受信する。
図2に示すように、ユーザ端末100は、外部のメモリカード等の記憶媒体1030の装着を、入出力IF14を介して受け付けてもよい。これにより、ユーザ端末100は、記憶媒体1030に記録されるプログラム及びデータを読み込むことができる。記憶媒体1030に記録されるプログラムは、例えばゲームプログラムである。
ユーザ端末100は、サーバ200等の外部の装置と通信することにより取得したゲームプログラムをユーザ端末100のメモリ11に記憶してもよいし、記憶媒体1030から読み込むことにより取得したゲームプログラムをメモリ11に記憶してもよい。
以上で説明したとおり、ユーザ端末100は、該ユーザ端末100に対して情報を入力する機構の一例として、通信IF13、入出力IF14、タッチスクリーン15、カメラ17、および、測距センサ18を備える。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
例えば、操作部が、カメラ17および測距センサ18の少なくともいずれか一方で構成される場合、該操作部が、ユーザ端末100の近傍の物体1010を検出し、当該物体の検出結果から入力操作を特定する。一例として、物体1010としてのユーザの手、予め定められた形状のマーカーなどが検出され、検出結果として得られた物体1010の色、形状、動き、または、種類などに基づいて入力操作が特定される。より具体的には、ユーザ端末100は、カメラ17の撮影画像からユーザの手が検出された場合、該撮影画像に基づき検出されるジェスチャ(ユーザの手の一連の動き)を、ユーザの入力操作として特定し、受け付ける。なお、撮影画像は静止画であっても動画であってもよい。
あるいは、操作部がタッチスクリーン15で構成される場合、ユーザ端末100は、タッチスクリーン15の入力部151に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF13で構成される場合、ユーザ端末100は、コントローラ1020から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF14で構成される場合、該入出力IF14と接続されるコントローラ1020とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
(サーバ200)
サーバ200は、一例として、ワークステーションまたはパーソナルコンピュータなどの汎用コンピュータであってよい。サーバ200は、プロセッサ20と、メモリ21と、ストレージ22と、通信IF23と、入出力IF24とを備える。サーバ200が備えるこれらの構成は、通信バスによって互いに電気的に接続される。
サーバ200は、一例として、ワークステーションまたはパーソナルコンピュータなどの汎用コンピュータであってよい。サーバ200は、プロセッサ20と、メモリ21と、ストレージ22と、通信IF23と、入出力IF24とを備える。サーバ200が備えるこれらの構成は、通信バスによって互いに電気的に接続される。
(ゲームプレイ端末300)
ゲームプレイ端末300は、一例として、パーソナルコンピュータなどの汎用コンピュータであってよい。ゲームプレイ端末300は、プロセッサ30と、メモリ31と、ストレージ32と、通信IF33と、入出力IF34とを備える。ゲームプレイ端末300が備えるこれらの構成は、通信バスによって互いに電気的に接続される。
ゲームプレイ端末300は、一例として、パーソナルコンピュータなどの汎用コンピュータであってよい。ゲームプレイ端末300は、プロセッサ30と、メモリ31と、ストレージ32と、通信IF33と、入出力IF34とを備える。ゲームプレイ端末300が備えるこれらの構成は、通信バスによって互いに電気的に接続される。
図4に示すように、本実施形態に係るゲームプレイ端末300は、一例として、HMD(Head Mounted Display)セット1000に含まれる。つまり、HMDセット1000が、システム1に含まれていると表現することができ、また、プレイヤは、HMDセット1000を用いてゲームをプレイすると表現することもできる。なお、プレイヤがゲームをプレイするための装置は、HMDセット1000に限定されない。一例として、該装置は、プレイヤにゲームを仮想体験させることが可能な装置であればよい。また、該装置は、スマートフォン、フィーチャーフォン、タブレット型コンピュータ、ラップトップ型コンピュータ(いわゆる、ノートパソコン)、または、デスクトップ型コンピュータなどとして実現されてもよい。また、該装置は、ゲームプレイに適したゲーム装置であってもよい。
HMDセット1000は、ゲームプレイ端末300の他、HMD500、HMDセンサ510、モーションセンサ520、ディスプレイ530、コントローラ540を備える。HMD500は、モニタ51と、注視センサ52と、第1カメラ53と、第2カメラ54と、マイク55と、スピーカ56とを含む。コントローラ540は、モーションセンサ520を含み得る。
HMD500は、プレイヤの頭部に装着され、動作中に仮想空間をプレイヤに提供し得る。より具体的には、HMD500は、右目用の画像および左目用の画像をモニタ51にそれぞれ表示する。プレイヤの各目がそれぞれの画像を視認すると、プレイヤは、両目の視差に基づき当該画像を3次元画像として認識し得る。HMD500は、モニタを備える所謂ヘッドマウントディスプレイと、スマートフォンその他のモニタを有する端末を装着可能なヘッドマウント機器のいずれをも含み得る。
モニタ51は、例えば、非透過型の表示装置として実現される。ある局面において、モニタ51は、プレイヤの両目の前方に位置するようにHMD500の本体に配置されている。したがって、プレイヤは、モニタ51に表示される3次元画像を視認すると、仮想空間に没入することができる。ある局面において、仮想空間は、例えば、背景、プレイヤが操作可能なオブジェクト、プレイヤが選択可能なメニューの画像を含む。ある局面において、モニタ51は、所謂スマートフォンその他の情報表示端末が備える液晶モニタまたは有機EL(Electro Luminescence)モニタとして実現され得る。
別の局面において、モニタ51は、透過型の表示装置として実現され得る。この場合、HMD500は、図1に示されるようにプレイヤの目を覆う密閉型ではなく、メガネ型のような開放型であり得る。透過型のモニタ51は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。モニタ51は、仮想空間を構成する画像の一部と、現実空間とを同時に表示する構成を含んでいてもよい。例えば、モニタ51は、HMD500に搭載されたカメラで撮影した現実空間の画像を表示してもよいし、一部の透過率を高く設定することにより現実空間を視認可能にしてもよい。
ある局面において、モニタ51は、右目用の画像を表示するためのサブモニタと、左目用の画像を表示するためのサブモニタとを含み得る。別の局面において、モニタ51は、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合、モニタ51は、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。
ある局面において、HMD500は、図示せぬ複数の光源を含む。各光源は例えば、赤外線を発するLED(Light Emitting Diode)により実現される。HMDセンサ510は、HMD500の動きを検出するためのポジショントラッキング機能を有する。より具体的には、HMDセンサ510は、HMD500が発する複数の赤外線を読み取り、現実空間内におけるHMD500の位置および傾きを検出する。
別の局面において、HMDセンサ510は、カメラにより実現されてもよい。この場合、HMDセンサ510は、カメラから出力されるHMD500の画像情報を用いて、画像解析処理を実行することにより、HMD500の位置および傾きを検出することができる。
別の局面において、HMD500は、位置検出器として、HMDセンサ510の代わりに、あるいはHMDセンサ510に加えてセンサ(不図示)を備えてもよい。HMD500は、該センサを用いて、HMD500自身の位置および傾きを検出し得る。例えば、該センサが角速度センサ、地磁気センサ、あるいは加速度センサである場合、HMD500は、HMDセンサ510の代わりに、これらの各センサのいずれかを用いて、自身の位置および傾きを検出し得る。一例として、HMD500に備えられたセンサが角速度センサである場合、角速度センサは、現実空間におけるHMD500の3軸周りの角速度を経時的に検出する。HMD500は、各角速度に基づいて、HMD500の3軸周りの角度の時間的変化を算出し、さらに、角度の時間的変化に基づいて、HMD500の傾きを算出する。
注視センサ52は、プレイヤの右目および左目の視線が向けられる方向を検出する。つまり、注視センサ52は、プレイヤの視線を検出する。視線の方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ52は、当該アイトラッキング機能を有するセンサにより実現される。ある局面において、注視センサ52は、右目用のセンサおよび左目用のセンサを含むことが好ましい。注視センサ52は、例えば、プレイヤの右目および左目に赤外光を照射するとともに、照射光に対する角膜および虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。注視センサ52は、検出した各回転角に基づいて、プレイヤの視線を検知することができる。
第1カメラ53は、プレイヤの顔の下部を撮影する。より具体的には、第1カメラ53は、プレイヤの鼻および口などを撮影する。第2カメラ54は、プレイヤの目および眉などを撮影する。HMD500のプレイヤ側の筐体をHMD500の内側、HMD500のプレイヤとは逆側の筐体をHMD500の外側と定義する。ある局面において、第1カメラ53は、HMD500の外側に配置され、第2カメラ54は、HMD500の内側に配置され得る。第1カメラ53および第2カメラ54が生成した画像は、ゲームプレイ端末300に入力される。別の局面において、第1カメラ53と第2カメラ54とを1台のカメラとして実現し、この1台のカメラでプレイヤの顔を撮影するようにしてもよい。
マイク55は、プレイヤの発話を音声信号(電気信号)に変換してゲームプレイ端末300に出力する。スピーカ56は、音声信号を音声に変換してプレイヤに出力する。別の局面において、HMD500は、スピーカ56に替えてイヤホンを含み得る。
コントローラ540は、有線または無線によりゲームプレイ端末300に接続されている。コントローラ540は、プレイヤからゲームプレイ端末300への命令の入力を受け付ける。ある局面において、コントローラ540は、プレイヤによって把持可能に構成される。別の局面において、コントローラ540は、プレイヤの身体あるいは衣類の一部に装着可能に構成される。さらに別の局面において、コントローラ540は、ゲームプレイ端末300から送信される信号に基づいて、振動、音、光のうちの少なくともいずれかを出力するように構成されてもよい。さらに別の局面において、コントローラ540は、プレイヤから、仮想空間に配置されるオブジェクトの位置や動きを制御するための操作を受け付ける。
ある局面において、コントローラ540は、複数の光源を含む。各光源は例えば、赤外線を発するLEDにより実現される。HMDセンサ510は、ポジショントラッキング機能を有する。この場合、HMDセンサ510は、コントローラ540が発する複数の赤外線を読み取り、現実空間内におけるコントローラ540の位置および傾きを検出する。別の局面において、HMDセンサ510は、カメラにより実現されてもよい。この場合、HMDセンサ510は、カメラから出力されるコントローラ540の画像情報を用いて、画像解析処理を実行することにより、コントローラ540の位置および傾きを検出することができる。
モーションセンサ520は、ある局面において、プレイヤの手に取り付けられて、プレイヤの手の動きを検出する。例えば、モーションセンサ520は、手の回転速度、回転数等を検出する。検出された信号は、ゲームプレイ端末300に送られる。モーションセンサ520は、例えば、コントローラ540に設けられている。ある局面において、モーションセンサ520は、例えば、プレイヤに把持可能に構成されたコントローラ540に設けられている。別の局面において、現実空間における安全のため、コントローラ540は、手袋型のようにプレイヤの手に装着されることにより容易に飛んで行かないものに装着される。さらに別の局面において、プレイヤに装着されないセンサがプレイヤの手の動きを検出してもよい。例えば、プレイヤを撮影するカメラの信号が、プレイヤの動作を表わす信号として、ゲームプレイ端末300に入力されてもよい。モーションセンサ520とゲームプレイ端末300とは、一例として、無線により互いに接続される。無線の場合、通信形態は特に限られず、例えば、Bluetoothその他の公知の通信手法が用いられる。
ディスプレイ530は、モニタ51に表示されている画像と同様の画像を表示する。これにより、HMD500を装着しているプレイヤ以外のユーザにもプレイヤと同様の画像を視聴させることができる。ディスプレイ530に表示される画像は、3次元画像である必要はなく、右目用の画像や左目用の画像であってもよい。ディスプレイ530としては、例えば、液晶ディスプレイや有機ELモニタなどが挙げられる。
ゲームプレイ端末300は、HMD500の各部、コントローラ540、およびモーションセンサ520から取得した各種情報に基づいて、プレイヤの操作対象となるキャラクタを動作させ、ゲームを進行させる。ここでの「動作」には、身体の各部を動かすこと、姿勢を変えること、顔の表情を変えること、移動、発話、仮想空間に配置されたオブジェクトに触れたり、動かしたりすること、キャラクタが把持する武器、道具などを使用することなどが含まれる。すなわち、本ゲームでは、プレイヤが身体の各部を動かすことにより、キャラクタもプレイヤと同様に身体の各部を動かす。また、本ゲームでは、プレイヤが発話した内容をキャラクタが発話する。換言すれば、本ゲームにおいて、キャラクタは、プレイヤの分身としてふるまうアバターオブジェクトである。一例として、キャラクタの動作の少なくとも一部が、プレイヤによるコントローラ540に対する入力により実行されてもよい。
本実施形態では、モーションセンサ520は、一例として、プレイヤの両手、プレイヤの両足、プレイヤの腰部、および、プレイヤの頭部に取り付けられる。プレイヤの両手に取り付けられるモーションセンサ520は、上述したとおり、コントローラ540に設けられていてもよい。また、プレイヤの頭部に取り付けられるモーションセンサ520は、HMD500に設けられていてもよい。モーションセンサ520は、さらに、ユーザの両肘や両膝に取り付けられてもよい。プレイヤに取り付けるモーションセンサ520の数を増やすことにより、プレイヤの動きをより正確にキャラクタに反映させることができる。
また、プレイヤは、モーションセンサ520を身体の各部に取り付けることに代えて、1以上のモーションセンサ520が取り付けられたスーツを着用してもよい。つまり、モーションキャプチャの方法は、モーションセンサ520を用いる例に限定されない。
また、プレイヤは、モーションセンサ520を身体の各部に取り付けることに代えて、1以上のモーションセンサ520が取り付けられたスーツを着用してもよい。つまり、モーションキャプチャの方法は、モーションセンサ520を用いる例に限定されない。
(配信端末400)
配信端末400は、スマートフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であってよい。また、配信端末400は、デスクトップパソコン等の、いわゆる据え置き型の端末であってもよい。
配信端末400は、スマートフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であってよい。また、配信端末400は、デスクトップパソコン等の、いわゆる据え置き型の端末であってもよい。
配信端末400は、図5に示すように、プロセッサ40と、メモリ41と、ストレージ42と、通信IF43と、入出力IF44と、タッチスクリーン45とを備える。なお、配信端末400は、タッチスクリーン45に代えて、または、加えて、配信端末400本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF44を備えていてもよい。
コントローラ1021は、1つ以上のボタン、レバー、スティック、ホイール等の物理的な入力機構を有していてもよい。コントローラ1021は、配信端末400の操作者(本実施形態ではプレイヤ)が、該入力機構に対して入力した入力操作に基づく出力値を配信端末400へ送信する。また、コントローラ1021は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値を配信端末400へ送信してもよい。上述の出力値は、通信IF43を介して配信端末400に受け付けられる。
配信端末400は、カメラと、測距センサ(ともに不図示)とを備えていてもよい。配信端末400が備えることに代えて、または、加えて、コントローラ1021がカメラと、測距センサとを有してしてもよい。
以上で説明したとおり、配信端末400は、該配信端末400に対して情報を入力する機構の一例として、通信IF43、入出力IF44、タッチスクリーン45を備える。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
操作部がタッチスクリーン45で構成されている場合、配信端末400は、タッチスクリーン45の入力部451に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF43で構成される場合、配信端末400は、コントローラ1021から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF44で構成される場合、配信端末400は、該入出力IF44と接続される入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
<各装置のハードウェア構成要素>
プロセッサ10、20、30、40はそれぞれ、ユーザ端末100、サーバ200、ゲームプレイ端末300、配信端末400の全体の動作を制御する。プロセッサ10、20、30、40は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。プロセッサ10、20、30、40は、それぞれ、後述するストレージ12、22、32、42からプログラムを読み出す。そして、プロセッサ10、20、30、40は、それぞれ、読み出したプログラムを、後述するメモリ11、21、31、41に展開する。プロセッサ10、20、30は、展開したプログラムを実行する。
プロセッサ10、20、30、40はそれぞれ、ユーザ端末100、サーバ200、ゲームプレイ端末300、配信端末400の全体の動作を制御する。プロセッサ10、20、30、40は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。プロセッサ10、20、30、40は、それぞれ、後述するストレージ12、22、32、42からプログラムを読み出す。そして、プロセッサ10、20、30、40は、それぞれ、読み出したプログラムを、後述するメモリ11、21、31、41に展開する。プロセッサ10、20、30は、展開したプログラムを実行する。
メモリ11、21、31、41は主記憶装置である。メモリ11、21、31、41は、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置で構成される。メモリ11は、プロセッサ10が後述するストレージ12から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ10に作業領域を提供する。メモリ11は、プロセッサ10がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ21は、プロセッサ20が後述するストレージ22から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ20に作業領域を提供する。メモリ21は、プロセッサ20がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ31は、プロセッサ30が後述するストレージ32から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ30に作業領域を提供する。メモリ31は、プロセッサ30がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ41は、プロセッサ40が後述するストレージ42から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ40に作業領域を提供する。メモリ41は、プロセッサ40がプログラムに従って動作している間に生成した各種データも一時的に記憶する。
本実施形態において、プロセッサ10および30が実行するプログラムは、本ゲームのゲームプログラムであってもよい。本実施形態において、プロセッサ40が実行するプログラムは、動作指図データの配信を実現するための配信プログラムであってもよい。また、プロセッサ10は、さらに、動画の再生を実現するための視聴プログラムを実行してもよい。
本実施形態において、プロセッサ20が実行するプログラムは、上述のゲームプログラム、配信プログラム、視聴プログラムの少なくとも何れかであってもよい。プロセッサ20は、ユーザ端末100、ゲームプレイ端末300、および配信端末400の少なくとも何れかからの要求等に応じて、ゲームプログラム、配信プログラム、視聴プログラムの少なくとも何れかを実行する。なお、配信プログラムと視聴プログラムは、並行して実行されてもよい。
すなわち、ゲームプログラムは、ゲームをユーザ端末100、サーバ200、およびゲームプレイ端末300の協働により実現するプログラムであってもよい。配信プログラムは、動作指図データの配信を、サーバ200と配信端末400との協働により実現するプログラムであってもよい。視聴プログラムは、動画の再生を、ユーザ端末100とサーバ200との協働により実現するプログラムであってもよい。
ストレージ12、22、32、42は補助記憶装置である。ストレージ12、22、32、42は、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置で構成される。ストレージ12、32には、例えば、ゲームに関する各種データが格納される。ストレージ42には、動作指図データの配信に関する各種データが格納される。また、ストレージ12には、動画の再生に関する各種データが格納される。ストレージ22には、ゲーム、動作指図データの配信、および動画の再生それぞれに関する各種データのうち、少なくとも一部が格納されてもよい。
通信IF13、23、33、43は、それぞれ、ユーザ端末100、サーバ200、ゲームプレイ端末300、配信端末400における各種データの送受信を制御する。通信IF13、23、33、43は例えば、無線LAN(Local Area Network)を介する通信、有線LAN、無線LAN、または携帯電話回線網を介したインターネット通信、ならびに近距離無線通信等を用いた通信を制御する。
入出力IF14、24、34、44は、それぞれ、ユーザ端末100、サーバ200、ゲームプレイ端末300、配信端末400がデータの入力を受け付けるため、また、データを出力するためのインターフェースである。入出力IF14、24、34、44は、USB(Universal Serial Bus)等を介してデータの入出力を行ってもよい。入出力IF14、24、34、44は、物理ボタン、カメラ、マイク、スピーカ、マウス、キーボード、ディスプレイ、スティック、レバーなどを含み得る。また、入出力IF14、24、34、44は、周辺機器との間でデータを送受信するための接続部を含み得る。
タッチスクリーン15は、入力部151と表示部152(ディスプレイ)とを組み合わせた電子部品である。タッチスクリーン45は、入力部451と表示部452とを組み合わせた電子部品である。入力部151および451は、一例として、タッチセンシティブなデバイスであり、例えばタッチパッドによって構成される。表示部152および452は、例えば液晶ディスプレイ、または有機EL(Electro-Luminescence)ディスプレイ等によって構成される。
入力部151および451は、入力面に対しユーザの操作(主にタッチ操作、スライド操作、スワイプ操作、ピンチイン/ピンチアウト操作、およびタップ操作等の物理的接触操作)が入力された位置を検知して、位置を示す情報を入力信号として送信する機能を備える。入力部151および451は、図示しないタッチセンシング部を備えていればよい。タッチセンシング部は、静電容量方式または抵抗膜方式等のどのような方式を採用したものであってもよい。
図示していないが、ユーザ端末100および配信端末400は、それぞれ、ユーザ端末100および配信端末400の保持姿勢を特定するための1以上のセンサを備えていてもよい。このセンサは、例えば、加速度センサ、または、角速度センサ等であってもよい。
ユーザ端末100および配信端末400がセンサを備えている場合、プロセッサ10および40は、それぞれ、センサの出力からユーザ端末100および配信端末400の保持姿勢を特定して、保持姿勢に応じた処理を行うことも可能になる。例えば、プロセッサ10および40は、それぞれ、ユーザ端末100および配信端末400が縦向きに保持されているときには、縦長の画像を表示部152および452に表示させる縦画面表示としてもよい。一方、ユーザ端末100および配信端末400が横向きに保持されているときには、横長の画像を表示部に表示させる横画面表示としてもよい。このように、プロセッサ10および40は、それぞれ、ユーザ端末100および配信端末400の保持姿勢に応じて縦画面表示と横画面表示とを切り替え可能であってもよい。
<システム1の機能的構成>
図6は、システム1に含まれるユーザ端末100、サーバ200、およびHMDセット1000の機能的構成を示すブロック図である。図7は、図6に示す配信端末400の機能的構成を示すブロック図である。
図6は、システム1に含まれるユーザ端末100、サーバ200、およびHMDセット1000の機能的構成を示すブロック図である。図7は、図6に示す配信端末400の機能的構成を示すブロック図である。
ユーザ端末100は、ユーザの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、入出力IF14、およびタッチスクリーン15等の協働によって、制御部110および記憶部120として機能する。
サーバ200は、ユーザ端末100、HMDセット1000、および配信端末400の間の各種情報の送受信を仲介する機能を有する。サーバ200は、プロセッサ20、メモリ21、ストレージ22、通信IF23、および入出力IF24等の協働によって、制御部210および記憶部220として機能する。
HMDセット1000(ゲームプレイ端末300)は、プレイヤの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能と、ゲーム進行情報を、サーバ200を介してユーザ端末100へリアルタイムに送信する機能を有する。HMDセット1000は、ゲームプレイ端末300のプロセッサ30、メモリ31、ストレージ32、通信IF33、入出力IF34、並びに、HMD500、HMDセンサ510、モーションセンサ520、およびコントローラ540等の協働によって、制御部310および記憶部320として機能する。
配信端末400は、動作指図データを生成して、該動作指図データを、サーバ200を介してユーザ端末100へ送信する機能を有する。配信端末400は、プロセッサ40、メモリ41、ストレージ42、通信IF43、入出力IF44、およびタッチスクリーン45等の協働によって、制御部410および記憶部420として機能する。
(各装置の記憶部が格納するデータ)
記憶部120は、ゲームプログラム131(プログラム)、ゲーム情報132、および、ユーザ情報133を格納する。記憶部220は、ゲームプログラム231、ゲーム情報232、ユーザ情報233、および、ユーザリスト234を格納する。記憶部320は、ゲームプログラム331、ゲーム情報332、および、ユーザ情報333を格納する。記憶部420は、ユーザリスト421、モーションリスト422、配信プログラム423(プログラム、第2プログラム)を格納する。
記憶部120は、ゲームプログラム131(プログラム)、ゲーム情報132、および、ユーザ情報133を格納する。記憶部220は、ゲームプログラム231、ゲーム情報232、ユーザ情報233、および、ユーザリスト234を格納する。記憶部320は、ゲームプログラム331、ゲーム情報332、および、ユーザ情報333を格納する。記憶部420は、ユーザリスト421、モーションリスト422、配信プログラム423(プログラム、第2プログラム)を格納する。
ゲームプログラム131、231、331は、それぞれ、ユーザ端末100、サーバ200、HMDセット1000が実行するゲームプログラムである。ゲームプログラム131、231、331に基づいて各装置が協働して動作することにより、本ゲームが実現される。なお、ゲームプログラム131および331は、記憶部220に格納され、ユーザ端末100およびHMDセット1000にそれぞれダウンロードされる構成でもよい。なお、本実施形態では、ユーザ端末100は、ゲームプログラム131に基づいて、配信端末400から受信したデータをレンダリングし、動画を再生するものとする。換言すれば、ゲームプログラム131は、配信端末400から配信された動画指図データを用いて、動画を再生するためのプログラムでもある。該動画を再生するためのプログラムは、ゲームプログラム131と異なってもよい。この場合、記憶部120は、ゲームプログラム131とは別に、該動画を再生するためのプログラムを格納する。
ゲーム情報132、232、332は、それぞれ、ユーザ端末100、サーバ200、HMDセット1000がゲームプログラムを実行する際に参照するデータである。ユーザ情報133、233、333は、ユーザ端末100のユーザのアカウントに関するデータである。ゲーム情報232は、各ユーザ端末100のゲーム情報132、および、HMDセット1000のゲーム情報332である。ユーザ情報233は、各ユーザ端末100のユーザ情報133、および、ユーザ情報333に含まれる、プレイヤのユーザ情報である。ユーザ情報333は、各ユーザ端末100のユーザ情報133、および、プレイヤのユーザ情報である。
ユーザリスト234およびユーザリスト421は、ゲームに参加したユーザのリストである。ユーザリスト234およびユーザリスト421は、プレイヤによる直近のゲームプレイにおいて参加したユーザのリストの他、該ゲームプレイ以前の各ゲームプレイにおいて参加したユーザのリストを含んでいてもよい。モーションリスト422は、予め作成されている複数のモーションデータのリストである。モーションリスト422は、例えば、各モーションを識別する情報(例えば、モーション名)のそれぞれに、モーションデータが対応付けられたリストである。配信プログラム423は、ユーザ端末100にて動画を再生するための動作指図データの、ユーザ端末100への配信を実現するためのプログラムである。
(サーバ200の機能的構成)
制御部210は、記憶部220に格納されたゲームプログラム231を実行することにより、サーバ200を統括的に制御する。例えば制御部210は、ユーザ端末100、HMDセット1000、および配信端末400の間の各種情報の送受信を仲介する。
制御部210は、記憶部220に格納されたゲームプログラム231を実行することにより、サーバ200を統括的に制御する。例えば制御部210は、ユーザ端末100、HMDセット1000、および配信端末400の間の各種情報の送受信を仲介する。
制御部210は、ゲームプログラム231の記述に応じて、通信仲介部211、ログ生成部212、リスト生成部213として機能する。制御部210は、ゲームプレイおよび動作指図データの配信に係る各種情報の送受信の仲介、並びに、ゲームの進行の支援のために、図示しないその他の機能ブロックとしても機能することができる。
通信仲介部211は、ユーザ端末100、HMDセット1000、および配信端末400の間の各種情報の送受信を仲介する。例えば、通信仲介部211は、HMDセット1000から受信したゲーム進行情報をユーザ端末100へ送信する。ゲーム進行情報は、プレイヤによって操作されるキャラクタの動き、該キャラクタのパラメータ、該キャラクタが所持しているアイテムや武器、敵キャラクタなどの情報などを示すデータが含まれる。サーバ200は、ゲーム進行情報を、ゲームに参加している全てのユーザのユーザ端末100へ送信する。換言すれば、サーバ200は、共通のゲーム進行情報をゲームに参加している全てのユーザのユーザ端末100へ送信する。これにより、ゲームに参加している全てのユーザのユーザ端末100それぞれにおいて、HMDセット1000と同様にゲームが進行する。
また、例えば、通信仲介部211は、ユーザ端末100のいずれかから受信した、プレイヤによるゲームの進行を支援するための情報を、その他のユーザ端末100、および、HMDセット1000へ送信する。該情報は、一例として、プレイヤがゲームを有利に進行するためのアイテムであって、プレイヤ(キャラクタ)に提供されるアイテムを示すアイテム情報であってもよい。アイテム情報は、アイテムを提供したユーザを示す情報(ユーザ名、ユーザIDなど)を含む。また、通信仲介部211は、配信端末400からユーザ端末100への動作指図データの配信を仲介してもよい。
ログ生成部212は、HMDセット1000から受信するゲーム進行情報に基づいて、ゲーム進行のログを生成する。リスト生成部213は、ゲームプレイの終了後にユーザリスト234を生成する。詳細については後述するが、ユーザリスト234における各ユーザには、そのユーザが行ったプレイヤへの支援の内容を示すタグが関連付けられている。リスト生成部213は、ログ生成部212が生成したゲーム進行のログに基づいて、タグを生成し、該当するユーザに関連付ける。なお、リスト生成部213は、ゲームの運営者などがパーソナルコンピュータなどの端末装置を用いて入力した、各ユーザが行ったプレイヤへの支援の内容を、タグとして、該当するユーザに関連付けてもよい。これにより、各ユーザが行った支援の内容がより詳細なものとなる。なお、ユーザ端末100は、ユーザがゲームに参加する際、ユーザの操作に基づいて、ユーザを示す情報をサーバ200へ送信する。例えば、ユーザ端末100は、ユーザが入力したユーザIDをサーバ200へ送信する。つまり、サーバ200は、ゲームに参加している全てのユーザについて、各ユーザを示す情報を保持している。リスト生成部213は、該情報を用いて、ユーザリスト234を生成すればよい。
(HMDセット1000の機能的構成)
制御部310は、記憶部320に格納されたゲームプログラム331を実行することにより、HMDセット1000を統括的に制御する。例えば、制御部310は、ゲームプログラム331、および、プレイヤの操作に従って、ゲームを進行させる。また、制御部310は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。制御部310は、情報の送受信を、サーバ200を介さずにユーザ端末100と直接行ってもよい。
制御部310は、記憶部320に格納されたゲームプログラム331を実行することにより、HMDセット1000を統括的に制御する。例えば、制御部310は、ゲームプログラム331、および、プレイヤの操作に従って、ゲームを進行させる。また、制御部310は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。制御部310は、情報の送受信を、サーバ200を介さずにユーザ端末100と直接行ってもよい。
制御部310は、ゲームプログラム331の記述に応じて、操作受付部311、表示制御部312、UI制御部313、アニメーション生成部314、ゲーム進行部315、仮想空間制御部316、および反応処理部317として機能する。制御部310は、実行されるゲームの性質に応じて、該ゲームに登場するキャラクタの制御などのために、図示しないその他の機能ブロックとしても機能することができる。
操作受付部311は、プレイヤの入力操作を検知し、受け付ける。操作受付部311は、HMD500、モーションセンサ520、コントローラ540などから入力された信号を受け付け、いかなる入力操作がなされたかを判別し、その結果を制御部310の各要素に出力する。
UI制御部313は、モニタ51、ディスプレイ530などに表示させるユーザインターフェース(以下、UI)画像を制御する。UI画像は、プレイヤが、ゲームの進行上必要な入力をHMDセット1000に対して行うためのツール、または、ゲームの進行中に出力される情報をHMDセット1000から得るためのツールである。UI画像は、これには限定されないが、例えば、アイコン、ボタン、リスト、メニュー画面などである。
アニメーション生成部314は、各種オブジェクトの制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。例えば、アニメーション生成部314は、オブジェクト(例えば、プレイヤのアバターオブジェクト)がまるでそこにいるかのように動いたり、口を動かしたり、表情を変えたりする様子を表現したアニメーション等を生成してもよい。
ゲーム進行部315は、ゲームプログラム331、プレイヤによる入力操作、および、該入力操作に応じたアバターオブジェクトの動作などに基づいて、ゲームを進行する。例えば、ゲーム進行部315は、アバターオブジェクトが所定の動作を行った場合に、所定のゲーム処理を行う。また、例えば、ゲーム進行部315は、ユーザ端末100におけるユーザの操作を表す情報を受信し、当該ユーザの操作に基づいてゲーム処理を行ってもよい。また、ゲーム進行部315は、ゲームの進行に従ってゲーム進行情報を生成し、サーバ200へ送信する。該ゲーム進行情報は、サーバ200を介してユーザ端末100へ送信される。これにより、HMDセット1000におけるゲームの進行が、ユーザ端末100において共有される。換言すれば、HMDセット1000におけるゲームの進行と、ユーザ端末100におけるゲームの進行とが同期する。
仮想空間制御部316は、ゲームの進行に応じて、プレイヤに提供される仮想空間に関する各種の制御を行う。一例として、仮想空間制御部316は、各種オブジェクトを生成し、仮想空間に配置する。また、仮想空間制御部316は、仮想カメラを仮想空間に配置する。また、仮想空間制御部316は、ゲームの進行に応じて、仮想空間に配置した各種オブジェクトを動作させる。また、仮想空間制御部316は、ゲームの進行に応じて、仮想空間に配置した仮想カメラの位置、傾きを制御する。
表示制御部312は、モニタ51、ディスプレイ530に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部312は、仮想空間に配置された仮想カメラからの視界に基づく画像を、ゲーム画面として、モニタ51、ディスプレイ530に表示してもよい。また、表示制御部312は、アニメーション生成部314によって生成されたアニメーションを該ゲーム画面に含めてもよい。また、表示制御部312は、UI制御部313によって制御される上述のUI画像を、該ゲーム画面に重畳して描画してもよい。
反応処理部317は、ユーザ端末100のユーザによる、プレイヤのゲームプレイに対する反応についてフィードバックを受け付けて、これを、プレイヤに対して出力する。本実施形態では、例えば、ユーザ端末100は、ユーザの入力操作に基づいて、アバターオブジェクトに宛てたコメント(メッセージ)を作成することができる。反応処理部317は、該コメントのコメントデータを受け付けて、これを出力する。反応処理部317は、ユーザのコメントに対応するテキストデータを、モニタ51、ディスプレイ530に表示してもよいし、ユーザのコメントに対応する音声データを、図示しないスピーカから出力してもよい。前者の場合、反応処理部317は、上記テキストデータに対応する画像(すなわち、コメントの内容を含む画像)を、ゲーム画面に重畳して描画してもよい。
(ユーザ端末100の機能的構成)
制御部110は、記憶部120に格納されたゲームプログラム131を実行することにより、ユーザ端末100を統括的に制御する。例えば、制御部110は、ゲームプログラム131、および、ユーザの操作に従って、ゲームを進行させる。また、制御部110は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。制御部110は、情報の送受信を、サーバ200を介さずにHMDセット1000と直接行ってもよい。
制御部110は、記憶部120に格納されたゲームプログラム131を実行することにより、ユーザ端末100を統括的に制御する。例えば、制御部110は、ゲームプログラム131、および、ユーザの操作に従って、ゲームを進行させる。また、制御部110は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。制御部110は、情報の送受信を、サーバ200を介さずにHMDセット1000と直接行ってもよい。
制御部110は、ゲームプログラム131の記述に応じて、操作受付部111、表示制御部112、UI制御部113、アニメーション生成部114、ゲーム進行部115、仮想空間制御部116、および動画再生部117として機能する。制御部110は、実行されるゲームの性質に応じて、ゲームの進行のために、図示しないその他の機能ブロックとしても機能することができる。
操作受付部111は、入力部151に対するユーザの入力操作を検知し受け付ける。操作受付部111は、タッチスクリーン15およびその他の入出力IF14を介したコンソールに対してユーザが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部110の各要素に出力する。
例えば、操作受付部111は、入力部151に対する入力操作を受け付け、該入力操作の入力位置の座標を検出し、該入力操作の種類を特定する。操作受付部111は、入力操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、ピンチイン/ピンチアウト操作、およびタップ操作等を特定する。また、操作受付部111は、連続して検知されていた入力が途切れると、タッチスクリーン15から接触入力が解除されたことを検知する。
UI制御部113は、ユーザの入力操作、および、受信したゲーム進行情報の少なくとも何れかに応じて、UIを構築するために表示部152に表示させるUI画像を制御する。UI画像は、ユーザが、ゲームの進行上必要な入力をユーザ端末100に対して行うためのツール、または、ゲームの進行中に出力される情報をユーザ端末100から得るためのツールである。UI画像は、これには限定されないが、例えば、アイコン、ボタン、リスト、メニュー画面などである。
アニメーション生成部114は、各種オブジェクトの制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。
ゲーム進行部115は、ゲームプログラム131、受信したゲーム進行情報、および、ユーザによる入力操作などに基づいて、ゲームを進行する。ゲーム進行部115は、ユーザによる入力操作により、所定のゲーム処理を行った場合、該ゲーム処理に関する情報を、サーバ200を介してHMDセット1000へ送信する。これにより、該所定のゲーム処理が、HMDセット1000において共有される。換言すれば、HMDセット1000におけるゲームの進行と、ユーザ端末100におけるゲームの進行とが同期する。所定のゲーム処理とは、例えば、アバターオブジェクトにアイテムを提供する処理であり、この例の場合、ゲーム処理に関する情報は、上述したアイテム情報である。
仮想空間制御部116は、ゲームの進行に応じて、ユーザに提供される仮想空間に関する各種の制御を行う。一例として、仮想空間制御部116は、各種オブジェクトを生成し、仮想空間に配置する。また、仮想空間制御部116は、仮想カメラを仮想空間に配置する。また、仮想空間制御部116は、ゲームの進行、具体的には、受信したゲーム進行情報に応じて、仮想空間に配置した各種オブジェクトを動作させる。また、仮想空間制御部316は、ゲームの進行、具体的には、受信したゲーム進行情報に応じて、仮想空間に配置した仮想カメラの位置、傾きを制御する。
表示制御部112は、表示部152に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部112は、ユーザに提供される仮想空間に配置された仮想カメラからの視界に基づく画像を、ゲーム画面として、表示部152に表示してもよい。また、表示制御部112は、アニメーション生成部114によって生成されたアニメーションを該ゲーム画面に含めてもよい。また、表示制御部112は、UI制御部113によって制御される上述のUI画像を、該ゲーム画面に重畳して描画してもよい。いずれにしても、表示部152に表示されるゲーム画面は、他のユーザ端末100、および、HMDセット1000にて表示されるゲーム画面と同様のゲーム画面である。
動画再生部117は、配信端末400から受信した動作指図データを解析(レンダリング)し、動画を再生する。
(配信端末400の機能的構成)
制御部410は、記憶部420に格納されたプログラム(不図示)を実行することにより、配信端末400を統括的に制御する。例えば、制御部410は、該プログラム、および、配信端末400のユーザ(本実施形態ではプレイヤ)の操作に従って、動作指図データを生成し、ユーザ端末100に配信する。また、制御部410は、必要に応じて、サーバ200と通信して、情報の送受信を行う。制御部410は、情報の送受信を、サーバ200を介さずにユーザ端末100と直接行ってもよい。
制御部410は、記憶部420に格納されたプログラム(不図示)を実行することにより、配信端末400を統括的に制御する。例えば、制御部410は、該プログラム、および、配信端末400のユーザ(本実施形態ではプレイヤ)の操作に従って、動作指図データを生成し、ユーザ端末100に配信する。また、制御部410は、必要に応じて、サーバ200と通信して、情報の送受信を行う。制御部410は、情報の送受信を、サーバ200を介さずにユーザ端末100と直接行ってもよい。
制御部410は、プログラムの記述に応じて、通信制御部411、表示制御部412、操作受付部413、音声受付部414、モーション特定部415、および動作指図データ生成部416として機能する。制御部410は、動作指図データの生成および配信のために、図示しないその他の機能ブロックとしても機能することができる。
通信制御部411は、サーバ200、または、サーバ200を介したユーザ端末100との情報の送受信を制御する。通信制御部411は、一例として、サーバ200からユーザリスト421を受信する。また、通信制御部411は、一例として、動作指図データをユーザ端末100へ送信する。
表示制御部412は、表示部452に対して、各要素によって実行された処理結果が反映された各種画面を出力する。表示制御部412は、一例として、受信したユーザリスト234を含む画面を表示する。また、表示制御部412は、一例として、配信する動作指図データに含まれる、アバターオブジェクトを動作させるためのモーションデータを、プレイヤに選択させるためのモーションリスト422を含む画面を表示する。
操作受付部413は、入力部151に対するプレイヤの入力操作を検知し受け付ける。操作受付部111は、タッチスクリーン45およびその他の入出力IF44を介したコンソールに対してプレイヤが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部410の各要素に出力する。
例えば、操作受付部413は、入力部451に対する入力操作を受け付け、該入力操作の入力位置の座標を検出し、該入力操作の種類を特定する。操作受付部413は、入力操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、ピンチイン/ピンチアウト操作、およびタップ操作等を特定する。また、操作受付部413は、連続して検知されていた入力が途切れると、タッチスクリーン45から接触入力が解除されたことを検知する。
音声受付部414は、配信端末400の周囲で発生した音声を受け付け、該音声の音声データを生成する。音声受付部414は、一例として、プレイヤが発話した音声を受け付け、該音声の音声データを生成する。
モーション特定部415は、プレイヤの入力操作に応じて、モーションリスト422から、プレイヤが選択したモーションデータを特定する。
動作指図データ生成部416は、動作指図データを生成する。一例として、動作指図データ生成部416は、生成された音声データと、特定されたモーションデータとを含む動作指図データを生成する。
なお、図6に示すHMDセット1000、サーバ200、およびユーザ端末100の機能、並びに、図7に示す配信端末400の機能は一例にすぎない。HMDセット1000、サーバ200、ユーザ端末100、および配信端末400の各装置は、他の装置が備える機能の少なくとも一部を備えていてもよい。さらに、HMDセット1000、サーバ200、ユーザ端末100、および配信端末400以外のさらに別の装置をシステム1の構成要素とし、該別の装置にシステム1における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、HMDセット1000、サーバ200、ユーザ端末100、および配信端末400、並びに、それ以外の別の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
<仮想空間の制御処理>
図8は、プレイヤに提供される仮想空間、および、ユーザ端末100のユーザに提供される仮想空間の制御処理の流れの一例を示すフローチャートである。図9は、ある実施の形態に従う、プレイヤに提供される仮想空間600A、および、プレイヤが視認する視界画像を示す図である。図10は、ある実施の形態に従う、ユーザ端末100のユーザに提供される仮想空間600B、および、ユーザが視認する視界画像を示す図である。なお以降、仮想空間600Aおよび600Bを区別する必要が無い場合、「仮想空間600」と記載する。
図8は、プレイヤに提供される仮想空間、および、ユーザ端末100のユーザに提供される仮想空間の制御処理の流れの一例を示すフローチャートである。図9は、ある実施の形態に従う、プレイヤに提供される仮想空間600A、および、プレイヤが視認する視界画像を示す図である。図10は、ある実施の形態に従う、ユーザ端末100のユーザに提供される仮想空間600B、および、ユーザが視認する視界画像を示す図である。なお以降、仮想空間600Aおよび600Bを区別する必要が無い場合、「仮想空間600」と記載する。
ステップS1において、プロセッサ30は、仮想空間制御部316として、図9に示す仮想空間600Aを規定する。プロセッサ30は、仮想空間データ(不図示)を用いて、仮想空間600Aを規定する。仮想空間データは、ゲームプレイ端末300に記憶されていてもよいし、プロセッサ30が、ゲームプログラム331に基づいて生成してもよいし、プロセッサ30が、サーバ200などの外部の装置から取得してもよい。
仮想空間600は、一例として、中心として定義された点の360度方向の全体を覆う全天球状の構造を有する。図9および図10では、説明を複雑にしないために、仮想空間600のうちの上半分の天球が例示されている。
ステップS2において、プロセッサ30は、仮想空間制御部316として、仮想空間600Aに、アバターオブジェクト610(キャラクタ)を配置する。アバターオブジェクト610は、プレイヤに関連付けられたアバターオブジェクトであり、プレイヤの入力操作に従って動作する。
ステップS3において、プロセッサ30は、仮想空間制御部316として、仮想空間600Aに、その他のオブジェクトを配置する。図9の例では、プロセッサ30は、オブジェクト631~634を配置する。その他のオブジェクトは、例えば、ゲームプログラム331に従って動作するキャラクタオブジェクト(いわゆるノンプレイヤキャラクタ、NPC)、仮想手などの操作オブジェクト、ゲームの進行に従って配置される動物、植物、人工物、自然物などを模したオブジェクトなどを含み得る。
ステップS4において、プロセッサ30は、仮想空間制御部316として、仮想空間600Aに仮想カメラ620Aを配置する。プロセッサ30は、一例として、仮想カメラ620Aを、アバターオブジェクト610の頭部の位置に配置する。
ステップS5において、プロセッサ30は、視界画像650をモニタ51およびディスプレイ530に表示する。プロセッサ30は、仮想カメラ620Aの初期の位置と傾きとに応じて、仮想空間600Aにおける仮想カメラ620Aからの視界である視界領域640Aを定義する。そして、プロセッサ30は、視界領域640Aに対応する視界画像650を定義する。プロセッサ30は、視界画像650をモニタ51およびディスプレイ530に出力することによって、視界画像650をHMD500およびディスプレイ530に表示させる。
図9の例において、図9(A)に示すように、オブジェクト634の一部が視界領域640Aに含まれているため、視界画像650は、図9(B)に示すようにオブジェクト634の一部を含む。
ステップS6において、プロセッサ30は、初期配置情報を、サーバ200を介してユーザ端末100へ送信する。初期配置情報とは、仮想空間600Aにおける各種オブジェクトの初期の配置位置を示す情報である。図9の例において、初期配置情報は、アバターオブジェクト610、および、オブジェクト631~634の初期の配置位置の情報を含む。初期配置情報は、ゲーム進行情報の1つであると表現することもできる。
ステップS7において、プロセッサ30は、仮想空間制御部316として、HMD500の動きに応じて仮想カメラ620Aを制御する。具体的には、プロセッサ30は、HMD500の動き、すなわち、プレイヤの頭部の姿勢に応じて、仮想カメラ620Aの向きおよび傾きを制御する。後述のように、プロセッサ30は、プレイヤが頭部を動かす(頭部の姿勢を変更する)と、この動きに合わせて、アバターオブジェクト610の頭部を動かす。プロセッサ30は、例えば、アバターオブジェクト610の視線の方向と、仮想カメラ620Aの視線の方向とが一致するように、仮想カメラ620Aの向きおよび傾きを制御する。ステップS8において、プロセッサ30は、仮想カメラ620Aの向きおよび傾きが変更されたことに応じて、視界画像650を更新する。
ステップS9において、プロセッサ30は、仮想空間制御部316として、プレイヤの動きに応じて、アバターオブジェクト610を動かす。一例として、プロセッサ30は、プレイヤが現実空間で移動したことに応じて、仮想空間600Aでアバターオブジェクト610を移動させる。また、プロセッサ30は、プレイヤが現実空間で頭部を動かしたことに応じて、仮想空間600Aでアバターオブジェクト610の頭部を動かす。
ステップS10において、プロセッサ30は、仮想空間制御部316として、仮想カメラ620Aを、アバターオブジェクト610に追随するように移動させる。つまり、仮想カメラ620Aは、アバターオブジェクト610が移動しても、常にアバターオブジェクト610の頭部の位置にある。
プロセッサ30は、仮想カメラ620Aの移動に応じて、視界画像650を更新する。つまり、プロセッサ30は、プレイヤの頭部の姿勢と、仮想空間600Aにおける仮想カメラ620Aの位置とに応じて、視界領域640Aを更新する。その結果、視界画像650が更新される。
ステップS11において、プロセッサ30は、アバターオブジェクト610の動作指図データを、サーバ200を介してユーザ端末100へ送信する。ここでの動作指図データは、仮想体験中(例えば、ゲームプレイ中)において、プレイヤの動作を取り込んだモーションデータ、プレイヤが発話した音声の音声データ、コントローラ540に対する入力操作の内容を示す操作データの少なくとも何れかを含む。プレイヤがゲームをプレイしている場合、動作指図データは、例えば、ゲーム進行情報としてユーザ端末100へ送信される。
ステップS7~S11の処理は、プレイヤがゲームをプレイしている間、継続して繰り返し実行される。
ステップS21において、ユーザ3のユーザ端末100のプロセッサ10は、仮想空間制御部116として、図10に示す仮想空間600Bを規定する。プロセッサ10は、仮想空間データ(不図示)を用いて、仮想空間600Bを規定する。仮想空間データは、ユーザ端末100に記憶されていてもよいし、プロセッサ10が、ゲームプログラム131に基づいて生成してもよいし、プロセッサ10が、サーバ200などの外部の装置から取得してもよい。
ステップS22において、プロセッサ10は、初期配置情報を受信する。ステップS23において、プロセッサ10は、仮想空間制御部116として、初期配置情報に応じて各種オブジェクトを仮想空間600Bに配置する。図10の例の場合、各種オブジェクトは、アバターオブジェクト610、および、オブジェクト631~634である。
ステップS24において、プロセッサ10は、仮想空間制御部116として、仮想空間600Bに仮想カメラ620Bを配置する。プロセッサ10は、一例として、仮想カメラ620Bを、図10(A)に示す位置に配置する。
ステップS25において、プロセッサ10は、視界画像660を表示部152に表示する。プロセッサ10は、仮想カメラ620Bの初期の位置と傾きとに応じて、仮想空間600Bにおける仮想カメラ620Bからの視界である視界領域640Bを定義する。そして、プロセッサ10は、視界領域640Bに対応する視界画像660を定義する。プロセッサ10は、視界画像660を表示部152に出力することによって、視界画像660を表示部152に表示させる。
図10の例において、図10(A)に示すように、アバターオブジェクト610およびオブジェクト631が視界領域640Bに含まれているため、視界画像660は、図10(B)に示すようにアバターオブジェクト610およびオブジェクト631を含む。
ステップS26において、プロセッサ10は、動作指図データを受信する。ステップS27において、プロセッサ10は、仮想空間制御部116として、動作指図データに応じて、仮想空間600Bでアバターオブジェクト610を動かす。換言すれば、プロセッサ10は、リアルタイムレンダリングにより、アバターオブジェクト610が動作している映像を再生する。
ステップS28において、プロセッサ10は、仮想空間制御部116として、操作受付部111として受け付けたユーザの操作に応じて仮想カメラ620Bを制御する。ステップS29において、プロセッサ10は、仮想カメラ620Bの仮想空間600Bにおける位置、仮想カメラ620Bの向きおよび傾きが変更されたことに応じて、視界画像660を更新する。なお、ステップS28において、プロセッサ10は、アバターオブジェクト610の動き、例えば、アバターオブジェクト610の移動や、向きの変更に応じて仮想カメラ620Bを自動的に制御してもよい。例えば、プロセッサ10は、常にアバターオブジェクト610を正面から撮影するように自動的に仮想カメラ620Bを移動させたり、向きおよび傾きを変更したりしてもよい。また、一例として、プロセッサ10は、アバターオブジェクト610の動きに応じて、常にアバターオブジェクト610を後方から撮影するように自動的に仮想カメラ620Bを移動させたり、向きおよび傾きを変更したりしてもよい。
このように、仮想空間600Aにおいて、アバターオブジェクト610は、プレイヤの動きに応じて動作する。この動作を示す動作指図データは、ユーザ端末100に送信される。仮想空間600Bにおいて、アバターオブジェクト610は、受信した動作指図データに応じて動作する。これにより、仮想空間600Aと仮想空間600Bとにおいて、アバターオブジェクト610は同様の動作を行う。換言すれば、ユーザ3は、ユーザ端末100を用いて、プレイヤの動作に応じたアバターオブジェクト610の動作を視認することができる。
<ゲーム概要>
図11は、ユーザ端末100において表示される視界画像の他の例を示す図である。具体的には、プレイヤがプレイしている、システム1が実行するゲーム(本ゲーム)のゲーム画面の一例を示す図である。
図11は、ユーザ端末100において表示される視界画像の他の例を示す図である。具体的には、プレイヤがプレイしている、システム1が実行するゲーム(本ゲーム)のゲーム画面の一例を示す図である。
本ゲームは、一例として、銃、ナイフなどの武器を操作するアバターオブジェクト610と、NPCである複数の敵オブジェクト671とを仮想空間600に登場させ、アバターオブジェクト610に敵オブジェクト671との対戦を行わせるゲームである。アバターオブジェクト610の体力、使用可能なマガジンの数、銃の残弾数、敵オブジェクト671の残数等の各種ゲームパラメータは、ゲームの進行に応じて更新される。
本ゲームには、複数のステージが用意されており、プレイヤは、各ステージに関連付けられている所定の達成条件を成立させることにより、当該ステージをクリアすることができる。所定の達成条件としては、例えば、出現する敵オブジェクト671をすべて倒すことや、出現する敵オブジェクト671のうちボスオブジェクトを倒すこと、所定のアイテムを獲得すること、所定位置に到達することなどにより成立する条件を含むものであってもよい。該達成条件は、ゲームプログラム131内で定義されている。なお、本ゲームでは、ゲームの内容に即し、達成条件が成立された場合にプレイヤはステージをクリア、換言すれば、アバターオブジェクト610の敵オブジェクト671への勝利(アバターオブジェクト610と敵オブジェクト671との間の勝敗)が決定される。これに対し、例えば、システム1で実行されるゲームがレースゲーム等である場合、ゴールに到達するという条件が成立した場合に、アバターオブジェクト610の順位が決定される。
本ゲームでは、HMDセット1000及び複数のユーザ端末100の間で仮想空間を共有するために、ゲーム進行情報が、所定時間毎に複数のユーザ端末100にライブ配信される。この結果、ゲームを視聴中のユーザ端末100のタッチスクリーン15には、ユーザ端末100に対応する仮想カメラ620Bによって規定される視界領域の視界画像が表示される。また、視界画像の右上段および左上段には、アバターオブジェクト610の体力、使用可能なマガジンの数、銃の残弾数、敵オブジェクト671の残数等を表すパラメータ画像が重畳的に表示される。この視界画像は、ゲーム画面と表現することもできる。
ゲーム進行情報は、上述したとおり、プレイヤの動作を取り込んだモーションデータ、プレイヤが発話した音声の音声データ、コントローラ540に対する入力操作の内容を示す操作データを含む。これらのデータはすなわち、アバターオブジェクト610の位置、姿勢、向きなどを特定するための情報、敵オブジェクト671の位置、姿勢、向きなどを特定する情報、その他オブジェクト(例えば、障害物オブジェクト672、673)の位置などを特定する情報である。プロセッサ10は、ゲーム進行情報を解析(レンダリング)することにより、各オブジェクトの位置、姿勢、向きなどを特定する。
ゲーム情報132は、アバターオブジェクト610、敵オブジェクト671、障害物オブジェクト672、673等の各種オブジェクトのデータを含む。プロセッサ10は、該データと、ゲーム進行情報の解析結果とを用いて、各オブジェクトの位置、姿勢、向きなどを更新する。これにより、ゲームが進行し、仮想空間600Bにおける各オブジェクトは、仮想空間600Aにおける各オブジェクトと同様に動く。具体的には、仮想空間600Bにおいて、アバターオブジェクト610を含む各オブジェクトは、ユーザ端末100に対するユーザからの操作の有無に関わらず、ゲーム進行情報に基づいて動作する。
ユーザ端末100のタッチスクリーン15においては、一例として、UI画像701および702が、視界画像に重畳して表示される。UI画像701は、アバターオブジェクト610を支援するためのアイテム投入操作をユーザ3から受け付けるUI画像711を、タッチスクリーン15に表示するための操作を受け付けるUI画像である。UI画像702は、アバターオブジェクト610(換言すれば、プレイヤ4)に対するコメントを入力し、送信するための操作をユーザ3から受け付けるUI画像(後述)を、タッチスクリーン15に表示するための操作を受け付けるUI画像である。UI画像701および702が受け付ける操作は、例えば、UI画像701および702をタップする操作であってもよい。
UI画像701がタップされると、UI画像711が、視界画像に重畳して表示される。UI画像711は、例えば、マガジンのアイコンが描かれたUI画像711A、救急箱のアイコンが描かれたUI画像711B、三角コーンのアイコンが描かれたUI画像711C、バリケードのアイコンが描かれたUI画像711Dを含む。アイテム投入操作は、例えば、いずれかのUI画像をタップする操作に相当する。
一例として、UI画像711Aがタップされると、アバターオブジェクト610が使用する銃の残弾数が増加する。UI画像711Bがタップされると、アバターオブジェクト610の体力が回復する。UI画像711Cおよび711Dがタップされると、敵オブジェクト671の移動を妨害する障害物オブジェクト672、673が仮想空間に配置される。障害物オブジェクト672、673は、一方が他方に比べて、敵オブジェクト671の移動をより妨害するものであってもよい。
プロセッサ10は、アイテム投入操作が行われたことを示すアイテム投入情報を、サーバ200へ送信する。アイテム投入情報には、アイテム投入操作により指定されたアイテムの種別を特定するための情報が少なくとも含まれる。アイテム投入情報には、アイテムが配置される位置を示す情報など、アイテムに関するその他の情報が含まれていてもよい。アイテム投入情報は、サーバ200を介して、他のユーザ端末100、および、HMDセット1000へ送信される。
図12は、ユーザ端末100において表示される視界画像の他の例を示す図である。具体的には、本ゲームのゲーム画面の一例を示す図であり、ゲームプレイ中のプレイヤとユーザ端末100とのコミュニケーションについて説明するための図である。
図12(A)の例において、ユーザ端末100は、アバターオブジェクト610に発話691を実行させている。具体的には、ユーザ端末100は、ゲーム進行情報に含まれる音声データに従って、アバターオブジェクト610に発話691を実行させている。発話691の内容は、プレイヤ4が発話した「弾が無いよー!」というものである。すなわち、発話691の内容は、マガジンが0、銃に装填した銃弾が1となったことにより、敵オブジェクト671を攻撃する手段を失いそうであることを各ユーザに伝えるものである。
なお、図12(A)では、アバターオブジェクト610の発話を視覚的に示すため吹き出しを用いているが、実際は、ユーザ端末100のスピーカから音声が出力される。なお、音声出力とともに、図12(A)に示す吹き出し(すなわち、音声の内容のテキストを含む吹き出し)が視界画像中に表示されてもよい。これは、後述する発話692でも同様である。
UI画像702に対するタップ操作を受け付けると、ユーザ端末100は、図12(B)に示すように、UI画像705および706(メッセージUI)を視界画像に重畳して表示する。UI画像705は、アバターオブジェクト610(換言すれば、プレイヤ)に対するコメントを表示するUI画像である。UI画像706は、入力されたコメントを送信するためコメント送信操作をユーザ3から受け付けるUI画像である。
ユーザ端末100は、一例として、UI画像705へのタップ操作を受け付けると、キーボードを模したUI画像(不図示、以下、単に「キーボード」と記載)をタッチスクリーン15に表示させる。ユーザ端末100は、キーボードに対するユーザの入力操作に応じたテキストを、UI画像705に表示させる。図12(B)の例では、「マガジン送るね」というテキストがUI画像705に表示されている。
ユーザ端末100は、テキスト入力後に、一例として、UI画像706へのタップ操作を受け付けると、入力した内容(テキストの内容)を示す情報と、ユーザを示す情報とを含むコメント情報をサーバ200へ送信する。コメント情報は、サーバ200を介して、他のユーザ端末100、および、HMDセット1000へ送信される。
UI画像703Aは、コメントを送信したユーザのユーザ名を示すUI画像であり、UI画像704Aは、該ユーザが送信したコメントの内容を示すUI画像である。図12(B)の例では、ユーザ名が「BBBBB」であるユーザが、自身のユーザ端末100を用い、「危ない!」という内容のコメント情報を送信したことにより、UI画像703AおよびUI画像704Aが表示されている。UI画像703AおよびUI画像704Aは、本ゲームに参加しているすべてのユーザ端末100のタッチスクリーン15、および、HMD500のモニタ51に表示される。なお、UI画像703Aおよび704Aは、1つのUI画像であってもよい。すなわち、1つのUI画像にユーザ名とコメントの内容とが含まれていてもよい。
図12(C)の例では、図12に示すユーザ端末100のユーザである、「AAAAA」というユーザ名のユーザが、上述したとおりコメントを入力し、送信したことにより、タッチスクリーン15にUI画像703Bおよび704Bが表示されている。UI画像703Bにはユーザ名「AAAAA」が含まれており、UI画像704Bには、図12(B)の例において入力された「マガジン送るね!」とのコメントが含まれている。
また、図12(C)の例は、ユーザ「AAAAA」がさらに、UI画像701へのタップ操作を入力し、UI画像711をタッチスクリーン15に表示させ、UI画像711Aへのタップ操作を入力した後の視界画像611である。つまり、ユーザ「AAAAA」のユーザ端末100から、他のユーザ端末100およびHMDセット1000に、マガジンを示すアイテム投入情報が送信された結果、ユーザ端末100およびHMDセット1000は、演出オブジェクト674(後述)を仮想空間600に配置している。一例として、ユーザ端末100およびHMDセット1000は、アイテム投入情報にて示された経過時間が経過した後に、演出オブジェクト674に関する演出を実行し、アイテムオブジェクトの効果を発動させる処理を実行する。
図12(D)の例では、アイテムオブジェクトの効果を発動させる処理の実行により、マガジンの数が0から1に増加している。この結果、プレイヤは、ユーザ「AAAAA」に対して、「ありがとう!」と発話し、該発話の音声データが、各ユーザ端末100に送信される。これにより、各ユーザ端末100は、アバターオブジェクト610の発話692として、「ありがとう!」という音声を出力する。
以上のように、本ゲームにおいては、プレイヤの発話に基づくアバターオブジェクト610の発話音声の出力と、各ユーザによるコメントの入力とにより、ユーザとアバターオブジェクト610とのコミュニケーションが実現される。
(ゲームプレイ端末300におけるゲーム進行処理)
図13は、ゲームプレイ端末300で実行されるゲーム進行処理の流れの一例を示すフローチャートである。
図13は、ゲームプレイ端末300で実行されるゲーム進行処理の流れの一例を示すフローチャートである。
ステップS31において、プロセッサ30は、ゲーム進行部315として、ゲームプログラム331とプレイヤの動きとに基づいてゲームを進行させる。ステップS32において、プロセッサ30は、ゲーム進行情報を生成し、ユーザ端末100へ配信する。具体的には、プロセッサ30は、生成したゲーム進行情報を、サーバ200を介して、各ユーザ端末100へ送信する。
ステップS33において、プロセッサ30は、アイテム投入情報を受信すると(S33でYES)、ステップS34において、アイテム投入情報に基づいて、アイテムオブジェクトを仮想空間600Aに配置する。一例として、プロセッサ30は、アイテムオブジェクトの配置の前に、演出オブジェクト674を仮想空間600Aに配置する(図11(C)参照)。演出オブジェクト674は、例えば、プレゼント箱を模したオブジェクトであってもよい。プロセッサ30は、一例として、アイテム投入情報にて示された経過時間が経過した後に、演出オブジェクト674に関する演出を実行してもよい。該演出は、例えば、プレゼント箱の蓋が開くアニメーションであってもよい。プロセッサ30は、該アニメーションの実行の後、アイテムオブジェクトの効果を発動させる処理を実行する。例えば、図11(D)の例では、障害物オブジェクト673を配置する。
プロセッサ30は、アニメーションの実行の後、タップ操作されたUI画像に対応するアイテムオブジェクトを仮想空間600Aに配置してもよい。例えば、UI画像711Aに対してタップ操作が行われた場合、プロセッサ30は、アニメーションの実行の後、マガジンを示すマガジンオブジェクトを仮想空間600Aに配置する。また、UI画像711Bに対してタップ操作が行われた場合、プロセッサ30は、アニメーションの実行の後、救急箱を示す救急箱オブジェクトを仮想空間600Aに配置する。プロセッサ30は、例えば、マガジンオブジェクトまたは救急箱オブジェクトの位置に、アバターオブジェクト610が移動した場合に、マガジンオブジェクトまたは救急箱オブジェクトの効果を発動させる処理を実行してもよい。
プロセッサ30は、ゲームが終了するまで、ステップS31~S34の処理を継続し、繰り返す。ゲームが終了した場合、例えば、プレイヤがゲームを終了するための所定の入力操作を入力した場合(ステップS35でYES)、図13に示す処理は終了する。
(ユーザ端末100におけるゲーム進行処理)
図14は、ユーザ端末100で実行されるゲーム進行処理の流れの一例を示すフローチャートである。
図14は、ユーザ端末100で実行されるゲーム進行処理の流れの一例を示すフローチャートである。
ステップS41において、プロセッサ10は、ゲーム進行情報を受信する。ステップS42において、プロセッサ10は、ゲーム進行部115として、ゲーム進行情報に基づいてゲームを進行させる。
ステップS43において、プロセッサ10が、ユーザ3によるアイテム投入操作を受け付けると(ステップS43にてYES)、ステップS44において、プロセッサ10は、仮想通貨を消費し、演出オブジェクト674を仮想空間600Bに配置する。ここで、仮想通貨は、ゲームへの参加の前、あるいは、ゲームへの参加中に、ユーザ3がプロセッサ10に対し所定の操作を行うことにより購入(本ゲームに対して課金)されるものであってもよいし、所定の条件を満たした場合にユーザ3に付与されるものであってもよい。所定の条件とは、本ゲームにおけるクエストのクリア等、本ゲームへの参加が必要なものであってもよいし、アンケートに答える等、本ゲームへの参加が不要なものであってもよい。仮想通貨の金額(仮想通貨の所有量)は、一例として、ゲーム情報132としてユーザ端末100に記憶される。
ステップS45において、プロセッサ10は、アイテム投入情報をサーバ200へ送信する。アイテム投入情報は、サーバ200を介してゲームプレイ端末300へ送信される。
プロセッサ10は、演出オブジェクト674の配置後、所定時間が経過すると、アイテムオブジェクトを仮想空間600Aに配置する。図11の例では、障害物オブジェクト673を配置する。つまり、ユーザ3が、UI画像711Cへのタップ操作を入力することにより、所定量の仮想通貨が消費され、障害物オブジェクト673が配置される。
プロセッサ10は、ゲームが終了するまで、ステップS41~S45の処理を継続し、繰り返す。ゲームが終了した場合、例えば、プレイヤがゲームを終了するための所定の入力操作を行った場合や、ユーザ3が、ゲームから途中退席するための所定の入力操作を行った場合(ステップS46でYES)、図14に示す処理は終了する。
(サーバ200におけるゲーム進行処理)
図15は、サーバ200で実行されるゲーム進行処理の流れの一例を示すフローチャートである。
図15は、サーバ200で実行されるゲーム進行処理の流れの一例を示すフローチャートである。
ステップS51において、プロセッサ20は、ゲーム進行情報をゲームプレイ端末300から受信する。ステップS52において、プロセッサ20は、ログ生成部212として、ゲーム進行のログ(以下、プレイログ)を更新する。なお、プレイログは、一例として、ゲームプレイ端末300から初期配置情報を受信したとき、プロセッサ20が生成する。
ステップS53において、プロセッサ20は、受信したゲーム進行情報を、各ユーザ端末100へ送信する。
ステップS54において、アイテム投入情報をいずれかのユーザ端末100から受信した場合(ステップS54にてYES)、ステップS55において、プロセッサ20は、ログ生成部212としてプレイログを更新する。ステップS56において、プロセッサ20は、受信したアイテム投入情報をゲームプレイ端末300へ送信する。
プロセッサ20は、ゲームが終了するまで、ステップS51~S56の処理を継続し、繰り返す。ゲームが終了した場合、例えば、ゲームプレイ端末300から、ゲームが終了したことを示す情報を受信した場合(ステップS57でYES)、ステップS58において、プロセッサ20は、リスト生成部213として、プレイログからゲームに参加したユーザのリスト(ユーザリスト234)を生成する。プロセッサ20は、生成したユーザリスト234を、サーバ200に記憶する。
図16は、ユーザリスト234の一具体例を示す図である。「ユーザ」のカラムには、ゲームに参加した各ユーザを示す情報(例えば、ユーザ名)が格納されている。「タグ」のカラムには、各ユーザがプレイヤに対して行った支援に基づいて生成された情報(タグ)が格納されている。図16の例において、「タグ」のカラムに格納されたタグのうち、鍵括弧を有さないものは、プロセッサ20が自動生成した情報であり、鍵括弧を有するものは、ゲームの運営者が手動で入力した情報である。
図16の例において、ユーザ「AAAAA」には、マガジン、10F、ボス、「マガジンのプレゼントによりボスに勝利」という情報が対応付けられている。これは、例えば、10Fというステージでのボス戦において、ユーザ「AAAAA」がマガジンを投入し、その投入されたマガジンの銃弾でアバターオブジェクト610がボスに勝利したことを示している。
また、ユーザ「BBBBB」には、救急箱、3F、ザコ、「ゲームオーバー寸前で回復」という情報が対応付けられている、これは、例えば、3Fというステージのザコ敵との戦闘において、ユーザ「BBBBB」が救急箱を投入し、その結果、アバターオブジェクト610の体力が0になる(ゲームオーバーになる)寸前で体力が回復したことを示している。
また、ユーザ「CCCCC」には、バリケード、5F、ザコ、「バリケードでゾンビを二人足止め」という情報が対応付けられている。これは、例えば、5Fというステージのザコ敵との戦闘において、ユーザ「CCCCC」がバリケード(図11における障害物オブジェクト672)を投入し、その結果、二人のザコ敵の足止めに成功したことを示している。
図16の例では、各ユーザ3のユーザ名に対し、行った支援が1つ対応付けられているが、支援を複数回行なったユーザ3のユーザ名には、複数回の支援それぞれのタグが対応付けられる。ユーザリスト234において、該それぞれのタグは区別されていることが好ましい。これにより、ゲーム終了後に、配信端末400を用いてユーザリスト421を参照するプレイヤが、各支援の内容を正確に把握できる。
<動作指図データの配信>
(配信端末400における配信処理)
図17は、配信端末400で実行される配信処理の流れの一例を示すフローチャートである。図18は、配信端末400に表示される画面の一具体例を示す図である。図19は、配信端末に表示される画面の他の具体例を示す図である。
(配信端末400における配信処理)
図17は、配信端末400で実行される配信処理の流れの一例を示すフローチャートである。図18は、配信端末400に表示される画面の一具体例を示す図である。図19は、配信端末に表示される画面の他の具体例を示す図である。
ステップS61において、プロセッサ40は、操作受付部413として、ゲームに参加したユーザのリスト(ユーザリスト234)を表示するための第1操作を受け付ける。図18(A)に示すダウンロード画面721は、ユーザリスト234をサーバ200からダウンロードし、表示部452に表示させるための画面である。ダウンロード画面721は、一例として、図17に示す配信処理を実行するアプリケーションの起動操作を、配信端末400に入力した直後に表示される画面である。
ダウンロード画面721は、一例として、UI画像722および723を含む。UI画像722は、ユーザリスト234をダウンロードするための操作、すなわち、上記第1操作を受け付ける。第1操作は、例えば、UI画像722をタップする操作であってもよい。UI画像723は、アプリケーションを終了するための操作を受け付ける。該操作は、例えば、UI画像723をタップする操作であってもよい。
UI画像722に対するタップ操作を受け付けると、ステップS62において、プロセッサ40は、通信制御部411として、ユーザリスト234をサーバ200から取得(受信)する。ステップS63において、プロセッサ40は、表示制御部412として、ユーザリスト234を表示部452に表示させる。具体的には、プロセッサ40は、ユーザリスト234に基づいて生成されたユーザリスト画面を、表示部452に表示させる。ユーザリスト画面は、一例として、図18(B)に示すユーザリスト画面731であってもよい。ユーザリスト画面731は、ユーザリスト234における各レコードに対応するレコード画像からなる。図18(B)の例では、レコード画像として、レコード画像732A~732Cを記載しているが、レコード画像の数は3つに限定されない。図18(B)の例において、ユーザリスト234におけるレコードの数が3より多い(すなわち、ゲームに参加したユーザの人数が3人より多い)場合、プレイヤは、例えば画面をスクロールする操作(例えば、ドラッグ操作やフリック操作)をタッチスクリーン45に入力することにより、他のレコード画像を表示部452に表示させることができる。
一例として、レコード画像732A~732Cは、それぞれ、ユーザ名733A~733C、タグ情報734A~734C、および、アイコン735A~735Cを含む。以降、レコード画像732A~732C、ユーザ名733A~733C、タグ情報734A~734C、および、アイコン735A~735Cについて、区別する必要が無い場合、それぞれ、「レコード画像732」、「ユーザ名733」、「タグ情報734」、「アイコン735」と記載する。
ユーザ名733は、ユーザリスト234において、「ユーザ」のカラムに格納されている、ゲームに参加した各ユーザを示す情報である。タグ情報734は、ユーザリスト234において、ゲームに参加した各ユーザを示す情報のそれぞれに対応付けられているタグを示す情報である。例えば、レコード画像732Aは、ユーザ名733Aとして、「AAAAA」を含む。このため、レコード画像732Aは、タグ情報734Aとして、ユーザリスト234において「AAAAA」に対応付けられている、『マガジン、10F、ボス、「マガジンのプレゼントによりボスに勝利」』を含む。アイコン735は、例えば、ユーザが事前に設定した画像である。
なお、プロセッサ40は、受信したユーザリストを配信端末400に記憶してもよい(図7のユーザリスト421)。ダウンロード画面721は、ユーザリスト421を表示部452に表示するためのUI画像(不図示)を含んでいてもよい。この例において、該UI画像がタップされた場合、プロセッサ40は、ユーザリスト234のダウンロードを行わず、ユーザリスト421を読み出し、該ユーザリスト421からユーザリスト画面を生成し、表示部452に表示させる。
ステップS64において、プロセッサ40は、操作受付部413として、ユーザリスト画面731に含まれるユーザの何れかを選択するための第2操作を受け付ける。第2操作は、一例として、ユーザリスト画面731におけるレコード画像732の何れかをタップする操作であってもよい。図18(B)の例では、プレイヤは、レコード画像732Aへのタップ操作を入力している。すなわち、プレイヤは、動作指図データを配信するユーザとしてユーザ「AAAAA」を選択している。
レコード画像732に対するタップ操作を受け付けると、ステップS65において、プロセッサ40は、表示制御部412として、モーションリスト422を表示部452に表示させる。具体的には、プロセッサ40は、モーションリスト422に基づいて生成されたモーションリスト画面を、表示部452に表示させる。モーションリスト画面は、一例として、図19に示すモーションリスト画面741であってもよい。モーションリスト画面741は、モーションリスト422における各レコードに対応するレコード画像からなる。図19の例では、レコード画像として、レコード画像742A~742Cを記載しているが、レコード画像の数は3つに限定されない。図19の例において、モーションリスト422におけるレコードの数が4より多い場合、プレイヤは、例えば画面をスクロールする操作(例えば、ドラッグ操作やフリック操作)をタッチスクリーン45に入力することにより、他のレコード画像を表示部452に表示させることができる。
一例として、レコード画像742A~742Cは、それぞれ、モーション名743A~743C、モーション画像744A~744C、および、UI画像745A~745Cを含む。以降、レコード画像742A~742C、モーション名743A~743C、モーション画像744A~744C、および、UI画像745A~745Cについて、区別する必要が無い場合、それぞれ、「レコード画像7432」、「モーション名743」、「モーション画像744」、「UI画像745」と記載する。
モーション名743は、モーションリスト422に格納されているモーションを識別する情報である。モーション画像744は、モーションリスト422において、各モーション名に対応付けられているモーションデータから生成される画像である。プロセッサ40は、一例として、各モーションデータにおける最初の姿勢をとるアバターオブジェクト610の画像を、モーション画像744とてレコード画像742に含める。モーション画像744は、プレイヤによる所定の操作(例えば、モーション画像744に対するタップ操作)を受け付けるUI画像であってもよい。プロセッサ40は、該所定の操作を受け付けた場合、モーションデータに基づいてアバターオブジェクト610が動作するモーション動画を再生してもよい。プロセッサ40は、モーション動画が終了すると、自動的にモーションリスト画面741を再表示してもよい。
なお、レコード画像742は、モーション画像744に代えて、例えば、「モーション再生」とのテキストを含むUI画像を含んでもよい。
ステップS66において、プロセッサ40は、操作受付部413として、モーションを選択する第3操作を受け付ける。第3操作は、一例として、UI画像745へのタップ操作であってもよい。つまり、UI画像745は、各レコード画像742に対応するモーションデータを選択する操作を受け付ける。第3操作を受け付けたことにより、プロセッサ40は、モーション特定部415として、プレイヤが選択したモーションデータを特定する。
ステップS67において、プロセッサ40は、表示制御部412および音声受付部414として、アバターオブジェクト610が、選択されたモーションデータに基づき動作するモーション動画を再生しながら、プレイヤの音声入力を受け付ける。
図20は、プレイヤ4による音声入力の一具体例を示す図である。図20に示すように、プレイヤ4は、モーション動画810Aを再生しながら、発話音声820Aを入力している。この発話音声820Aは、ユーザ名が「AAAAA」であるユーザ3(以下、ユーザ3A)宛の発話音声である。つまり、図20の例において、プレイヤ4は、ステップS64にて、ユーザ3A(第1ユーザ)を選択し、該ユーザ3A宛の動作指図データを作成している。なお、ユーザ3Aが使用するユーザ端末100は、ユーザ端末100Aであるとする。
発話音声820Aは、ユーザ3A宛の発話音声であるため、該ユーザ3Aがアバターオブジェクト610(換言すれば、プレイヤ4)に対して行った支援の内容に基づく発話音声となっている。具体的には、ユーザ3Aは、10Fというステージでのボス戦において、マガジンを投入し、その投入されたマガジンの銃弾でアバターオブジェクト610がボスに勝利している。このため、発話音声820Aは、「ボス戦でマガジンをプレゼントしてくれてありがとう!タイミングも完璧だったね!AAAAAさんのおかげでクリアできたよ!」という内容である。このように、発話音声は、ユーザ3がゲームにおいて行った支援の内容と、ユーザ3への感謝とを含むものであることが好ましい。
ある局面において、プレイヤ4は、音声入力を開始する前、すなわち、第3操作を配信端末400へ入力する前に、ユーザ3宛の発話内容を作成する。別の局面において、ユーザ3宛の発話内容は、プロセッサ40が自動生成してもよい。また、プロセッサ40は、第2操作によって選択されたユーザ3に対応付けられたタグを、モーション動画810Aに重畳して表示させてもよい。
プロセッサ40は、受け付けた音声を音声データに変換する。ステップS68において、プロセッサ40は、動作指図データ生成部416として、該音声データと、選択されたモーションのモーションデータとを含む動作指図データを生成する。
ステップS69において、プロセッサ40は、通信制御部411として、生成した動作指図データを選択されたユーザ3(図20の例ではユーザ3A)のユーザ端末100(第1コンピュータ)に配信する。図21は、配信端末400に表示される画面のさらなる別の具体例を示す図である。プロセッサ40は、ステップS68の実行後、表示制御部412として、配信画面を表示部452に表示させる。配信画面は、一例として、図21(A)に示す配信画面751であってもよい。配信画面751は、UI画像752、および、モーション画像753Aを含む。また、配信画面751は、図21(A)に示すように、動作指図データの配信先のユーザを示す情報を含むものであってもよい。
UI画像752は、動作指図データを選択されたユーザ3へ配信するための操作を受け付ける。該操作は、例えば、UI画像752へのタップ操作であってもよい。モーション画像753Aは、生成した動作指図データに基づく動画、すなわち、ユーザ3A用に生成した動作指図データに基づく動画を再生するための操作を受け付けるUI画像である。該操作は、例えば、モーション画像753Aへのタップ操作であってもよい。なお、生成した動画を再生するための操作を受け付けるUI画像は、モーション画像753Aに限定されない。例えば、「動画再生」とのテキストを含むUI画像であってもよい。プロセッサ40は、動画が終了すると、自動的に配信画面751を再表示してもよい。
配信画面751は、音声入力の受け付けに戻るための操作を受け付けるUI画像をさらに含むことが好ましい。該操作は、例えば、該UI画像へのタップ操作であってもよい。配信画面751が該UI画像を含むことにより、プレイヤ4は、例えば、発話する内容を間違えた場合など、音声入力に失敗した場合に、再度音声入力を行うことができる。なお、該UI画像は、モーションデータの選択に戻るための操作を受け付けるUI画像であってもよい。
UI画像752に対するタップ操作を受け付けると、プロセッサ40は、ユーザ3Aを示す情報とともに、動作指図データをサーバ200へ送信する。サーバ200は、ユーザ3Aを示す情報に基づいて、動作指図データの送信先のユーザ端末100を特定し、該動作指図データを特定したユーザ端末100(すなわち、ユーザ端末100A)へ送信する。
プロセッサ40は、動作指図データの送信が終了した場合、一例として、図21(B)に示す配信完了画面761を表示部452に表示させてもよい。配信完了画面761は、一例として、UI画像762および763を含む。また、配信完了画面761は、図21(B)に示すように、動作指図データの送信が完了したことを示すテキストを含むものであってもよい。
UI画像762は、別のユーザ3宛の動作指図データの作成を開始するための操作を受け付ける。該操作は、例えば、UI画像762をタップする操作であってもよい。プロセッサ40は、該タップ操作を受け付けると、ユーザリスト画面を、表示部452に再度表示させる。すなわち、該タップ操作を受け付けた場合、配信処理は、ステップS63に戻る。このとき、プロセッサ40は、配信端末400に記憶したユーザリスト421に基づいて、ユーザリスト画面を生成し、表示部452に表示させてもよい。UI画像763は、アプリケーションを終了するための操作を受け付ける。該操作は、例えば、UI画像763をタップする操作であってもよい。該操作を受け付けると、配信処理は終了する。
図20、図21を参照して説明した例では、図21(C)に示すように、配信端末400は、ユーザ3A(ユーザ名が「AAAAA」のユーザ3)宛の動画の動作指図データを、ユーザ端末100Aのみに送信する。
図22は、プレイヤ4による音声入力の他の具体例を示す図である。図22に示すように、プレイヤ4は、モーション動画810Bを再生しながら、発話音声820Bを入力している。この発話音声820Bは、ユーザ名が「BBBBB」であるユーザ3(以下、ユーザ3B)宛の発話音声である。つまり、図22の例において、プレイヤ4は、ステップS64にて、ユーザ3Bに対応するレコード画像732Bへのタップ操作を入力し、ユーザ3B宛の動作指図データを作成している。なお、ユーザ3Bが使用するユーザ端末100は、ユーザ端末100Bであるとする。
発話音声820Bは、ユーザ3B宛の発話音声であるため、該ユーザ3Bがアバターオブジェクト610(換言すれば、プレイヤ4)に対して行った支援の内容に基づく発話音声となっている。具体的には、ユーザ3Bは、3Fというステージのザコ敵との戦闘において、ユーザ「BBBBB」が救急箱を投入し、その結果、アバターオブジェクト610の体力が0になる(ゲームオーバーになる)寸前で体力が回復している。このため、発話音声820Bは、「BBBBBさんがプレゼントしてくれた救急箱のおかげで、3Fでゲームオーバーにならずにすんだよ。本当にありがとう!」という内容である。
図23は、配信端末400に表示される画面のさらなる別の具体例を示す図である。図23(A)に示す配信画面751は、UI画像752、および、モーション画像753Bを含む。モーション画像753Bは、タップ操作を受け付けると、ユーザ3B用に生成した動作指図データに基づく動画を再生する。
UI画像752に対するタップ操作を受け付けると、プロセッサ40は、ユーザ3Bを示す情報とともに、動作指図データをサーバ200へ送信する。サーバ200は、ユーザ3Bを示す情報に基づいて、動作指図データの送信先のユーザ端末100を特定し、該動作指図データを特定したユーザ端末100(すなわち、ユーザ端末100B)へ送信する。
図22、図23を参照して説明した例では、図23(C)に示すように、配信端末400は、ユーザ3B(ユーザ名が「BBBBB」のユーザ3)宛の動画の動作指図データを、ユーザ端末100Bのみに送信する。
以上のように、動作指図データに含まれる音声データに基づく音声の内容は、ユーザ3が直近のゲームへの参加において、プレイヤ4に対して行った支援の内容に基づくものとなる。該支援の内容はユーザ3ごとに異なるため、音声の内容は、ユーザ3ごとに異なる内容となる。つまり、ゲームの終了後、ゲームに参加したユーザ3の少なくとも一部のユーザ端末100には、それぞれ異なる内容の音声を含む動作指図データが送信される。
また、図22の例におけるアバターオブジェクト610のモーションは、図20の例におけるモーションと異なる。つまり、プレイヤ4は、ユーザ3B宛の動作指図データ生成において、ユーザ3A宛の動作指図データ生成時と異なるモーションデータを選択している。具体的には、プレイヤ4は、ステップS66において、レコード画像742Bに対応するモーションデータを選択する、UI画像745Bへのタップ操作を入力している。このように、プレイヤ4は、動作指図データに含まれるモーションデータを、ユーザ3毎に異ならせることができる。
そして、ユーザ3毎に異なる内容の音声データと、ユーザ3毎に選択されたモーションデータとを含む、ユーザ3毎の動作指図データは、各ユーザ3のユーザ端末100のみに送信される。換言すれば、ユーザ端末100毎にユニーク(一意)の動作指図データが、選択されたユーザ3のユーザ端末100の各々に送信される。
図24は、ゲームプレイ端末300からユーザ端末100へのゲーム進行情報の送信の概要を示す図である。ユーザ端末100における動画再生のための動作指図データが、ユーザ端末100毎にユニークである一方、図24に示すように、ゲーム実行中に、ゲームに参加している全てのユーザ3のユーザ端末100に送信されるゲーム進行情報は、各ユーザ端末100の間で共通である。すなわち、ゲーム進行情報に含まれる動作指図データもまた、各ユーザ端末100の間で共通である。このように、動画再生のための動作指図データと、ゲームを進行させるための動作指図データとは、ユーザ端末100間での同異、および、送信先といった観点で異なるデータであると言える。
(ユーザ端末100における動画再生処理)
図25は、ユーザ端末100で実行される動画再生処理の流れの一例を示すフローチャートである。
図25は、ユーザ端末100で実行される動画再生処理の流れの一例を示すフローチャートである。
ステップS71において、プロセッサ10は、動画再生部117として、動作指図データを受信する。ステップS72において、プロセッサ10は、動画再生部117として、動作指図データの受信をユーザ3へ通知する。プロセッサ10は、一例として、通知画像の表示部152への表示、スピーカ(不図示)からの通知音声の再生、LED(light-emitting diode)などで構成される点灯部(不図示)の点灯または点滅の少なくともいずれかにより、動作指図データの受信をユーザ3へ通知する。
ステップS73において、プロセッサ10は、操作受付部111として、動画を再生するための第1再生操作を受け付ける。第1再生操作は、一例として、通知画像をタップする操作であってもよい。ステップS74において、プロセッサ10は、動画再生部117として、動作指図データをレンダリングし、動画を再生する。プロセッサ10は、一例として、本ゲームをプレイするためのアプリケーションを起動し、動画を再生してもよいし、該アプリケーションとは別の、動画再生用のアプリケーションを起動し、動画を再生してもよい。以降、該動画を、「ありがとう動画」と記載する。
図26は、ありがとう動画の再生の一具体例を示す図である。具体的には、ユーザ3Aのユーザ端末100における、ありがとう動画の再生の一例を示す図である。該ユーザ端末100において再生されたありがとう動画910Aにおいて、アバターオブジェクト610は、或るモーションを実行しながら、音声920Aを発話している。換言すれば、プロセッサ10は、或るモーションを実行するアバターオブジェクト610を含むありがとう動画910Aを再生しながら、音声920Aをスピーカ(不図示)から出力させている。
ありがとう動画910Aにおけるモーションは、ユーザ3A宛の動作指図データの生成において、プレイヤ4が選択したモーションデータに基づくものであり、音声920Aは、該動作指図データの生成において、プレイヤ4が入力した発話音声820Aから生成された音声データに基づくものである。つまり、音声920Aは、ユーザ3Aがゲームにおいて行った支援の内容と、該支援に対する感謝とを含む音声である。このように、ユーザ3Aは、第1再生操作の入力により、自身がゲームにおいて行った支援の内容と、該支援に対する感謝とを、アバターオブジェクト610が発話するありがとう動画を視聴することができる。
ユーザ端末100は、一例として、ありがとう動画910Aの再生が終了した後、少なくとも1つのUI画像をタッチスクリーン15に表示させてもよい。該UI画像は、例えば、ありがとう動画910Aをもう一度再生するための操作を受け付けるUI画像であってもよいし、別の画面に遷移するための操作を受け付けるUI画像であってもよいし、アプリケーションを終了するための操作を受け付けるUI画像であってもよい。
また、ユーザ端末100は、一例として、ありがとう動画910Aの再生中に、少なくとも1つのUI画像をタッチスクリーン15に表示させてもよい。該UI画像は、例えば、再生中のありがとう動画910Aを一時的に停止させたり、終了させたり、再生する場面を変更させたりする操作をそれぞれ受け付ける、複数のUI画像であってもよい。
なお、ありがとう動画910Aの再生中、および、ありがとう動画910Aの再生が狩猟した後に表示されるこれらのUI画像には、アバターオブジェクト610に対する返答を行うためのUI画像は含まれない。すなわち、本実施形態に係るありがとう動画910Aにおいては、アバターオブジェクト610に対する返答を行うための手段が備えられていない。
図27は、ありがとう動画の再生の他の具体例を示す図である。具体的には、ユーザ3Bのユーザ端末100における、ありがとう動画の再生の例を示す図である。該ユーザ端末100において再生されたありがとう動画910Bにおいて、アバターオブジェクト610は、或るモーションを実行しながら、音声920Bを発話している。換言すれば、プロセッサ10は、或るモーションを実行するアバターオブジェクト610を含むありがとう動画910Bを再生しながら、音声920Bをスピーカ(不図示)から出力させている。
ありがとう動画910Bにおけるモーションは、ユーザ3B宛の動作指図データの生成において、プレイヤ4が選択したモーションデータに基づくものであり、音声920Bは、該動作指図データの生成において、プレイヤ4が入力した発話音声820Bから生成された音声データに基づくものである。このため、図27の例において、アバターオブジェクト610が行っているモーションは、図26の例のモーションとは異なる。また、音声920Bは、ユーザ3Bがゲームにおいて行った支援の内容と、該支援に対する感謝とを含む音声である。このため、図27の例において、音声920Bの内容は、図26の例に
おける音声920Aの内容とは異なる。
おける音声920Aの内容とは異なる。
このように、ゲームの終了後に、ゲームに参加したユーザ3の少なくとも一部のユーザ端末100が受信するありがとう動画は、ユーザ3毎にアバターオブジェクト610の発話内容が異なる動画である。
なお、プロセッサ10は、次回のゲームへの参加を促す内容を含むUI画像930を、動画910に重畳させて表示させてもよい。UI画像930は、動作指図データとともに配信されてもよいし、ゲーム情報132として、ユーザ端末100が記憶していてもよい。
上記実施形態においては、演者の動きに応じてリアルタイムに動作するアバターオブジェクト610をゲームプレイ端末300により規定される仮想空間600Aと同じ仮想空間600B内において動作させ、仮想空間600Bに配置されている仮想カメラ620Bの位置、向き、および傾きに応じた視界領域640Bの視界画像660をユーザ端末100のタッチスクリーン15に表示する例について説明した。このとき、仮想カメラ620Bの位置、向き等は、ユーザ端末100のタッチスクリーン15に対するスワイプ操作やピンチイン操作/ピンチアウト操作などに応じて変更する。しかし、仮想カメラ620Bの位置、向き等の変更は、これに限るものではない。
例えば、システム1の運営者または演者による図示しないスイッチャの操作に応じて位置、向き、および傾きを変化させるカメラオブジェクト630を仮想空間600Aに配置し(図28(A)参照)、当該カメラオブジェクト630の位置、向き等の変化に応じて仮想空間600Bに配置されている仮想カメラ620Bの位置、向き等を変更するようにしてもよい。なお、カメラオブジェクト630は、演者が確認できるように、ゲームプレイ端末300に接続されたHMD500のモニタ51にのみ表示される。この結果、演者は、カメラオブジェクト目線で発話等を行うことができる。
また、アバターオブジェクト610等を動作させる空間は、仮想空間に限らず、現実空間であってもよい。現実空間としては、例えば、カメラ(撮像部)17により撮影されて取得した取得画像により特定される空間であってもよい。この場合、カメラ17からの取得画像に対してアバターオブジェクト610等を配置してなる空間(以下、拡張現実空間ともいう)を生成するとともに、当該拡張現実空間に仮想カメラ620Bを配置し、例えばカメラ17の位置、向きの変更等に応じて当該仮想カメラ620Bの位置、向き等を変更するようにしてもよい。
さらに、仮想カメラ620Bの位置、向き等の変更方法は、ユーザが選択可能となるようにしてもよい。例えば、ユーザ端末100が選択可能な視聴モードとして複数種類の視聴モードを設け、ユーザ端末100においてTVモード(第3視聴モード)が選択されているときは、運営者または演者によるスイッチャの操作に応じて位置、向き等が変化するカメラオブジェクト630に連動させて仮想カメラ620Bの位置、向き等を変更し、ユーザ端末100において通常モード(第1視聴モード)が選択されているときは、ユーザによるスワイプ操作等に応じて仮想カメラ620Bの位置、向き等を変更し、ARモード(第2視聴モード)が選択されているときは、カメラ17からの取得画像に対してアバターオブジェクト610等を配置してなる空間(以下、拡張現実空間ともいう)を生成するとともに、当該拡張現実空間に仮想カメラ620Bを配置し、カメラ17の位置、向き等の変更に応じて当該仮想カメラ620Bの位置、向き等を変更するようにしてもよい。これにより、タッチスクリーン15に表示される画像の視点をユーザの好みに合わせて変更することができる。
以下においては、アバターオブジェクト610等が仮想空間600Bまたは拡張現実空間内において動作し、仮想カメラ620Bの位置、向き等が変更される例について、視聴モード毎に説明する。具体的には、図28~図35を参照して、ユーザが、仮想空間600Bまたは拡張現実空間内においてライブで動作するアバターオブジェクト610とジャンケンにより対決するゲーム(以下、ジャンケンゲームともいう)を行う例について説明する。
(通常モードおよびTVモード)
図28(A)は、ジャンケンゲームの進行に際して、ゲームプレイ端末300側において規定される仮想空間600Aを模式的に説明するための図である。図28(A)では、仮想空間600A内においてアバターオブジェクト610と、選択肢オブジェクト281~283と、花輪を想起させる花輪オブジェクト284とが配置されている。アバターオブジェクト610は、ライブで演じているプレイヤ(演者)のモーションに応じて動き、当該演者による音声を発話する。アバターオブジェクト610の頭部の位置には、仮想カメラ620Aが配置されている。また、仮想空間600Aには、図示していないが、その他のオブジェクトとして、アバターオブジェクト610の周囲を飾るオブジェクトや、視聴者に対応する視聴者オブジェクト、背景オブジェクト、床オブジェクトなどが配置されている。
図28(A)は、ジャンケンゲームの進行に際して、ゲームプレイ端末300側において規定される仮想空間600Aを模式的に説明するための図である。図28(A)では、仮想空間600A内においてアバターオブジェクト610と、選択肢オブジェクト281~283と、花輪を想起させる花輪オブジェクト284とが配置されている。アバターオブジェクト610は、ライブで演じているプレイヤ(演者)のモーションに応じて動き、当該演者による音声を発話する。アバターオブジェクト610の頭部の位置には、仮想カメラ620Aが配置されている。また、仮想空間600Aには、図示していないが、その他のオブジェクトとして、アバターオブジェクト610の周囲を飾るオブジェクトや、視聴者に対応する視聴者オブジェクト、背景オブジェクト、床オブジェクトなどが配置されている。
また、選択肢オブジェクト281~283は、各々、棒部と、先端の円板部とから構成されている。円板部の面には、グー・チョキ・パーを表すイラストが描かれている。選択肢オブジェクト281~283は、各々、プレイヤによる掴むモーションに応じて、棒部を掴むことができる。プレイヤにより選択肢オブジェクト281~283等を掴む操作(モーション)は、プレイヤの手に取り付けられて当該手の動き(手の動作(例えば、各指の位置、握りの形状・向き等)を検出するモーションセンサ520が設けられるコントローラ540により検知される。プレイヤは、選択肢オブジェクト281~283のうち、最終的に出す手(グー・チョキ・パー)に対応する選択肢オブジェクトを掴んで上方に掲げることにより、アバターオブジェクト610が出す手が確定されることになる。
ゲームプレイ端末300は、仮想空間600A内に配置されているオブジェクトのうち、少なくともアバターオブジェクト610および選択肢オブジェクト281~283の位置、姿勢、向きなどを特定するための情報(表示用データ)や音声データ(これらをまとめて動作指図データともいう)などを含むゲーム進行情報を、所定時間毎に複数のユーザ端末100に向けてライブ配信する。複数のユーザ端末100に向けて配信されるゲーム進行情報は、複数のユーザ端末100間において共通の情報である。これにより、ゲームプレイ端末300及び複数のユーザ端末100各々の間で、少なくともアバターオブジェクト610および選択肢オブジェクト281~283の動作等を共有(同期)できる。ゲームプレイ端末300及び複数のユーザ端末100の間において共有するオブジェクトは、仮想空間600A内に配置されているオブジェクトのうち、少なくとも演者によりライブで演じられるアバターオブジェクト610を含むものであれば、アバターオブジェクト610のみでもよく、また、アバターオブジェクト610や選択肢オブジェクト281~283以外の他のオブジェクトを含むものであってもよい。また、ゲームプレイ端末300から複数のユーザ端末100に向けて配信されるデータには、ゲーム進行情報のみならず、初期配置情報や、ゲーム情報132、アバターオブジェクト610の出す手として確定した選択肢オブジェクトの種類(グー、チョキ、パー)を特定するための情報などが含まれる。また、当該データには、カメラオブジェクト630の位置、向き、傾き、即ち視点を特定可能な視点情報が含まれる。
ユーザ端末100において規定された仮想空間600Bには、仮想カメラ620Bが配置される。カメラオブジェクト630の視点は、運営者等によるスイッチャの操作に応じて変化し、TVモードが選択されているユーザ端末100においては、当該カメラオブジェクト630の視点情報に基づいて仮想カメラ620Bの位置、向き、傾きが変更される。
カメラオブジェクト630はHDM500のモニタ51に表示されるため、演者は、カメラオブジェクト630に目線を合わせることが可能となる。TVモードが選択されているとき、仮想カメラ620Bは、アバターオブジェクト610を正面から視認し易い位置に自動で配置可能となり、表示部152に表示される映像は、アバターオブジェクト610を正面から見た映像になりやすくなる。
通常モードが選択されているユーザ端末100においては、仮想カメラ620Bの位置、向き等は、当該視点情報ではなく、ユーザによる例えばスワイプ操作やピンチイン操作/ピンチアウト操作などに応じて変化する。例えば、左右方向へのスワイプ操作により仮想カメラ620Bの位置を左右に移動させ、上下方向へのスワイプ操作により仮想カメラ620Bの上下方向の向きを上下方向に変更させ、ピンチイン操作により仮想カメラ620Bの位置を仮想空間600Bの外側に向けて移動(つまり縮小表示)させ、ピンチアウト操作により仮想カメラ620Bの位置を仮想空間600Bの内側(あるいは、中心、アバターオブジェクト610)に向けて移動(つまり拡大表示)させる。また、これにより、仮想空間600Bに配置されているオブジェクトをユーザが望む視点で視認することが可能となる。
(ARモード)
図28(B)は、ARモードが選択されているユーザ端末100側において規定され、取得画像に重畳させる拡張現実用の仮想空間600C(以下、AR用仮想空間600Cともいう)を模式的に説明するための図である。図28(B)の例では、仮想空間600Aに配置されているオブジェクトのうち、アバターオブジェクト610および選択肢オブジェクト281~283のみが配置されている。AR用仮想空間600Cには、少なくとも背景オブジェクトが配置されないものであればよく、例えば、アバターオブジェクト610および選択肢オブジェクト281~283に加えて、花輪オブジェクト284も配置されるものであってもよい。
図28(B)は、ARモードが選択されているユーザ端末100側において規定され、取得画像に重畳させる拡張現実用の仮想空間600C(以下、AR用仮想空間600Cともいう)を模式的に説明するための図である。図28(B)の例では、仮想空間600Aに配置されているオブジェクトのうち、アバターオブジェクト610および選択肢オブジェクト281~283のみが配置されている。AR用仮想空間600Cには、少なくとも背景オブジェクトが配置されないものであればよく、例えば、アバターオブジェクト610および選択肢オブジェクト281~283に加えて、花輪オブジェクト284も配置されるものであってもよい。
当該ユーザ端末100においては、カメラ17により撮影されて取得した取得画像を解析することにより、床面等の平面部が特定される。AR用仮想空間600C内の視界画像は、当該平面部の所定位置(例えば平面部の中心位置)に配置される。仮想カメラ620Bは、取得画像を撮影したときのカメラ17の撮影方向と同じ方向からAR用仮想空間600Cを見る位置に配置される。この結果、カメラ17からの取得画像に対して仮想カメラ620Bからの視界画像640Cを重畳させてなる拡張現実空間内の画像が表示部152に表示される。仮想カメラ620Bの位置、向き等は、カメラ17の位置、向き等の変更に応じて変更される。取得画像は、カメラ17の位置、向き等の変更に応じて変化し、視界画像640Cは、カメラ17の位置、向き等と連動する仮想カメラ620Bの位置、向き等の変化に応じて変化する。
ARモードが選択されているユーザ端末100においては、カメラ17から取得した取得画像に対してアバターオブジェクト610を含むオブジェクトを配置させてなる拡張現実空間内において、アバターオブジェクト610等が動作する。これにより、ユーザの目の前の現実空間においてアバターオブジェクト610等が実際に動作しているかのような印象(臨場感)をユーザに抱かせることができる。
(フローチャート)
図29は、タッチスクリーン15に対する入力操作等に基づいて視聴モードが切り替えられたときのユーザ端末100の処理の流れの一例を示すフローチャートである。なお、視聴モードの切替えには、ARモードのリセット(再起動)も含まれる。
図29は、タッチスクリーン15に対する入力操作等に基づいて視聴モードが切り替えられたときのユーザ端末100の処理の流れの一例を示すフローチャートである。なお、視聴モードの切替えには、ARモードのリセット(再起動)も含まれる。
ステップS81において、ユーザ端末100のプロセッサ10は、視聴モードがTVモードまたは通常モードに切り替えられたか否かをタッチスクリーン15に対する入力操作に基づいて判定する。TVモードまたは通常モードに切り替えられたと判定されたときはステップS82に進み、TVモードまたは通常モードに切り替えられたと判定されなかったとき、つまりARモードに切り替えられた、またはARモードがリセットされたと判定されたときは、ステップS88に進む。
ステップS82において、プロセッサ10は、図28(A)に示す仮想空間600Aと同じ仮想空間600Bを規定する。ステップS83において、プロセッサ10は、仮想空間600Aに配置されている各種オブジェクトと同じオブジェクトを仮想空間600Bに配置する。このとき、当該オブジェクトは、仮想空間600Aに配置されている各種オブジェクトと同じ位置関係となるように配置する。
ステップS84において、プロセッサ10は、視聴モードがTVモードに切り替えられたか否かを判定する。TVモードに切り替えられたと判定されたときは、ステップS85に進み、システム1の運営者等によるスイッチャの操作に応じてサーバ200から送信される視点情報に基づいて、仮想カメラ620Bを仮想空間600Bに配置する。この結果、仮想カメラ620Bの位置、向き等は、カメラオブジェクト630の位置、向き等と一致する。
ステップS84においてTVモードに切り替えられたと判定されなかったときは、プロセッサ10は、通常モードに切り替えられたとみなし、ステップS86に進む。ステップS86において、プロセッサ10は、視聴モードが切り替えられる前に仮想カメラ620Bが配置されていた位置に対応する位置に、仮想カメラ620Bを配置する。具体的には、切替え前の視聴モードがTVモードであれば、仮想空間600Bにおける仮想カメラ620Bの配置を維持する。一方、切替え前の視聴モードがARモードであれば、AR用仮想空間600Cにおいて仮想カメラ620Bが配置されていた位置を特定し、仮想空間600Bのうち当該特定した位置と同じ位置に仮想カメラ620Bを配置する。これにより、通常モードに切り替えたときには、切り替え前の視点が維持可能となる。
ステップS87において、プロセッサ10は、視界画像660を表示部152に表示する。プロセッサ10は、仮想カメラ620Bの位置と傾きとに応じて、仮想空間600Bにおける仮想カメラ620Bからの視界である視界領域640Bを定義する。そして、プロセッサ10は、視界領域640Bに対応する視界画像660を定義する。プロセッサ10は、視界画像660を表示部152に出力することによって、視界画像660を表示部152に表示させる。ステップS87の処理が完了すると、リターンする。
これに対してARモードに切り替えられた場合、ステップS88において、プロセッサ10は、画像認識や空間認識に関する技術を用いて、カメラ17により撮影されて取得した取得画像を解析する。これにより、例えば、取得画像から3次元空間が特定されるとともに、平面部(例えば水平部、具体的には床面)および当該平面部の大きさ(広さ)などが特定される。
次に、ステップS89において、プロセッサ10は、特定した平面部に基づいて、AR用仮想空間600C内の視界画像を取得画像上に配置(重畳)する配置位置を設定する。プロセッサ10は、平面部の所定位置(例えば平面部の中心位置)を、AR用仮想空間600C内の視界画像を配置する位置として設定する。これにより、視界画像の配置位置が平面部の所定位置に紐付けられる。
ステップS90において、プロセッサ10は、図28(B)に示すAR用仮想空間600Cを規定する。ステップS91において、プロセッサ10は、仮想空間600Aに配置されている各種オブジェクトのうちの一部のオブジェクトをAR用仮想空間600Cに配置する。図28(B)の場合、当該一部のオブジェクトは、アバターオブジェクト610および選択肢オブジェクト281~283である。図28(B)においては、アバターオブジェクト610および選択肢オブジェクト281~283が図28(A)と同じ位置関係となるように配置されている。なお、その他のオブジェクトとして花輪オブジェクト284が配置される場合においても、当該花輪オブジェクト284が図28(A)と同じ位置関係となるように配置される。
ステップS92において、プロセッサ10は、例えば、取得画像を撮影したときのカメラ17の撮影方向(向き、傾き等)を特定し、当該撮影方向と同じ方向からAR用仮想空間600Cを見る位置に仮想カメラ620Bを配置する。具体的に、撮影方向が略水平方向であった場合にはAR用仮想空間600Cを水平方向から見る位置(例えば図35(A))に仮想カメラ620Bを配置し、撮影方向が斜め上方から見下ろす方向であった場合にはAR用仮想空間600Cを斜め上方から見下ろす位置に仮想カメラ620Bを配置する。
このように、ARモードに切り替えられたときは、仮想カメラ620Bの位置は、モード切換え前の位置と異なり得る。この結果、ARモードにおける視界画像も、TVモードまたは通常モードにおける視界画像と異なり得る。この結果、ARモードにおける視界画像を、TVモードまたは通常モードに対して際立たせることが可能となる。
ステップS93において、プロセッサ10は、カメラ17からの取得画像に対して仮想カメラ620Bからの視界画像640Cを重畳させてなる拡張現実空間内の画像を表示部152に表示させる。この際、プロセッサ10は、視界画像640Cを、ステップS89において設定された取得画像上の所定位置において、ステップS88により特定した平面部の大きさに応じた表示サイズで重畳させて拡張現実空間内の画像を生成して表示する。ステップS93の処理が完了すると、リターンする。
図30は、視聴モードが切り替えられた後のユーザ端末100の処理の流れの一例を示すフローチャートである。当該処理は、動作指図データを受信する毎や、所定時間毎等に実行される。
ステップS101において、プロセッサ10は、動作指図データを受信する。ステップS102において、プロセッサ10は、当該動作指図データに応じて、仮想空間600Bまたは拡張現実空間でアバターオブジェクト610等を動かす。換言すれば、プロセッサ10は、リアルタイムレンダリングにより、アバターオブジェクト610等が当該仮想空間600Bまたは拡張現実空間内において動作している映像を再生する。
ステップS103において、プロセッサ10は、ステップS81の処理結果に基づいてTVモードが選択されているか否かを判定する。当該TVモードが選択されていると判定されたときは、ステップS104に進み、システム1の運営者等によるスイッチャの操作に応じてサーバ200から送信される視点情報に基づいて、仮想カメラ620Bを制御する。ステップS103においてTVモードが選択されていると判定されなかった場合、プロセッサ10は、ステップS106に進み、ステップS81の処理結果に基づいて通常モードが選択されているか否かを判定する。
当該通常モードが選択されていると判定されたときは、ステップS107に進み、ユーザからのスワイプ操作やピンチイン操作/ピンチアウト操作などの仮想カメラ620B(視点)を移動させるための移動操作を受け付けたか否かを判定する。ステップS107において移動操作を受け付けたと判定されていないときには、仮想カメラ620Bを移動させることなく、ステップS105に進む。
一方、ステップS107において移動操作を受け付けたと判定されたときには、ステップS108において、当該移動操作の態様に応じて仮想カメラ620B(視点)の移動先を特定する。具体的には、左右方向へのスワイプ操作の場合には、当該スワイプ操作の操作方向(左右、アバターオブジェクト610との距離はほぼ一定)への移動先を特定する。また、ピンチイン操作の場合には、当該ピンチイン操作の対象となる2点について縮められた距離に応じて仮想空間600Bの外側(アバターオブジェクト610との距離が遠ざかる方向)への移動先を特定する。また、ピンチアウト操作の場合には、当該ピンチアウト操作の対象となる2点について広げられた距離に応じて仮想空間600Bの内側(アバターオブジェクト610との距離が近づく方向)への移動先を特定する。仮想カメラ620B(視点)の移動距離は、例えば、スワイプ操作された距離や、ピンチイン操作により縮められた距離、ピンチアウト操作により広げられた距離などに比例する距離となる。なお、上下方向へのスワイプ操作の場合には、仮想カメラ620Bの向きを上下方向に変更させることができる。
ステップS109においては、特定された仮想カメラ620Bの移動先が予め定められている所定範囲内となるか否かを判定する。アバターオブジェクト610を演じる演者が実際に移動あるいは動作できる範囲は、例えば、演者が実際に存在する床面(あるいは、舞台、ステージ等)における所定位置から予め定められた範囲(例えば、半径2m以内の範囲)内となるように予め定められている。所定位置は、床面等における略中央位置となる予め定められている位置などであってもよい。ステップS109における所定範囲は、演者が実際に移動あるいは動作できる範囲として予め定められている範囲に対応する仮想空間600A~600Cにおける範囲である。換言すると、所定範囲は、演者が演じるアバターオブジェクト610が移動あるいは動作し得る範囲であって、アバターオブジェクト610が当該所定範囲外に出てしまうことが基本的に生じ得ない範囲ともいえる。ここで、図31(A)を参照して、仮想空間600B内における所定範囲の具体例を説明する。
図31(A)は、通常モードにおける仮想空間600Bを真上(天井、上方)から見下ろしたときの所定範囲670の一例を示している。図31(A)では、仮想空間600Bの外縁を点線で示し、所定範囲670をグレーで示し、アバターオブジェクト610の位置を黒丸で示している。通常モード中における所定範囲670は、図31(A)に例示されるように、仮想空間600B内の略中央において天井まで延びる円筒状(円柱状)の範囲であり、基本的に当該所定範囲670内においてアバターオブジェクト610が移動あるいは動作し得ることとなる。
ステップS109に戻り、特定された仮想カメラ620Bの移動先が所定範囲670内となると判定されなかったときには、ステップS110において、移動操作の態様に応じてステップS108にて特定されている移動先に仮想カメラ620Bを移動させる制御を行う。なお、本実施形態における仮想カメラ620Bの向きは、移動させる制御が行われたときにアバターオブジェクト610が配置されている方向に制御されるが、これに限らず、所定範囲内の予め定められた位置(例えば所定位置)の方向に制御されるものであってもよい。
図31(B)は、通常モードにおける移動操作に応じて特定された仮想カメラ620Bの移動先が所定範囲670外となる場合の移動例を示している。図31(B)では、仮想カメラ620Bの視点(図においては点で示す)が、位置aにある状態においてピンチアウト操作が行われることにより、当該ピンチアウト操作に応じて位置bまで移動させる制御が行われる様子が示されている。このように、移動操作に応じて特定された仮想カメラ620Bの移動先が所定範囲670外となる場合には、当該特定された移動先に仮想カメラ620Bの視点を移動させることができる。
一方、ステップS109において特定された仮想カメラ620Bの移動先が所定範囲670内となると判定されたときには、当該所定範囲670内において移動あるいは動作し得るアバターオブジェクト610の内部に仮想カメラ620Bの視点が移動してしまう可能性があり、この場合、本来であればユーザに視聴させたくないアバターオブジェクト610の内部を表示してしまうなどといった不具合を生じさせてしまう虞がある。そこで、本実施形態の通常モード中において、ステップS109にて特定された仮想カメラ620Bの移動先が所定範囲内となると判定されたときには、所定範囲670内への移動を規制する制御が行われる。具体的には、ステップS111において、ステップS108にて特定されている移動先までの経路と所定範囲670の外縁(外周面)との交点に仮想カメラ620Bを移動させる制御を行う。
図31(C)および図31(D)は、通常モードにおける移動操作に応じて特定された仮想カメラ620Bの移動先が所定範囲670内となる場合の移動例を示している。図31(C)では、仮想カメラ620Bの視点が位置aにある状態においてピンチアウト操作が行われたことにより、当該ピンチアウト操作に応じてステップS109にて所定範囲670内となる位置cが移動先として特定された場合を例示している。この場合には、図31(D)に示すように、ステップS108にて特定されている移動先である位置cまでの点線矢印で示される経路と、所定範囲670の外縁(外周面)との交点に仮想カメラ620Bを移動させる制御を行う。これにより、通常モードにおいては、仮想カメラ620Bを移動操作により比較的自由に移動させることを可能としつつも、移動操作に応じて特定された仮想カメラ620Bの移動先が所定範囲670内となる場合には、当該所定範囲670内への移動を規制して上記不具合を回避しつつも、所定範囲670外となる位置であって当該特定された移動先に最も近い位置まで仮想カメラ620Bを移動させることができる。
ステップS104、ステップS110、あるいはステップS111の処理が完了すると、ステップS105に進む。ステップS105において、プロセッサ10は、仮想カメラ620Bの位置、向き等が変更されたことに応じて、視界画像660を更新する。これにより、ゲームプレイ端末300側における仮想空間600A内におけるアバターオブジェクト610および選択肢オブジェクト281~283各々の動作と、ユーザ端末100側における仮想空間600B内におけるアバターオブジェクト610および選択肢オブジェクト281~283各々の動作とを同期させることができる。ステップS105の処理が完了すると、リターンする。
ステップS106において、通常モードが選択されていると判定されなかった場合、プロセッサ10は、ARモードが選択されているとみなして、ステップS112に進む。ステップS112において、プロセッサ10は、ジャイロセンサやGPS信号等に基づいてカメラ17の位置、向き、および傾き等を特定し、当該カメラ17の位置、向き、および傾き等の変化に同期させて仮想カメラ620Bを制御する。
ステップS113においては、ステップS112において移動等された仮想カメラ620Bの位置がAR用仮想空間600C内に予め定められている所定範囲内となるか否かを判定する。ステップS113における所定範囲は、演者が実際に移動あるいは動作できるとして予め定められている範囲に対応するAR用仮想空間600Cにおける範囲であって、本実施形態では通常モード中のステップS109における所定範囲と同じ範囲に定められているものとする。ここで、図32(A)を参照して、AR用仮想空間600C内における所定範囲の具体例を説明する。
図32(A)は、ARモードにおけるAR用仮想空間600Cを真上(天井、上方)から見下ろしたときの所定範囲680の一例を示している。図32(A)では、仮想空間600Cの外縁を点線で示し、所定範囲680をグレーで示し、アバターオブジェクト610の位置を黒丸で示している。ARモード中における所定範囲680は、図32(A)に例示されるように、AR用仮想空間600C内の略中央において天井まで延びる円筒状(円柱状)の範囲であり、基本的に当該所定範囲680内においてアバターオブジェクト610が移動あるいは動作し得ることとなる。
ステップS113に戻り、仮想カメラ620Bの位置が所定範囲680内となると判定されなかったときには、ステップS114において、プロセッサ10は、取得画像および視界画像を更新する。これにより、カメラ17の位置等の変化に応じて取得画像が変化するとともに、仮想カメラ620Bの位置等の変化に応じて視界画像が変化する。この結果、例えば、アバターオブジェクト610の左側面を撮影するかのようにカメラ17を左側に旋回させたときには、カメラ17により撮影されて取得される取得画像に対して、アバターオブジェクト610等を左側面から見た視界画像に更新される。
一方、ステップS113において仮想カメラ620Bの視点の位置が所定範囲680内となると判定されたときには、通常モード中と同様に、本来であればユーザに視聴させたくないアバターオブジェクト610の内部を表示してしまうなどといった不具合を生じさせてしまう虞がある。しかし、ARモード中においては、カメラ17の位置等の変化に応じて仮想カメラ620Bを移動させるモードであるため、通常モード中のように当該移動を規制した場合にはユーザに対して違和感を抱かせてしまう虞がある。そこで、本実施形態のARモード中において、仮想カメラ620Bの位置が所定範囲680内であると判定されたときには、ステップS115においてAR用仮想空間600C内に配置されているアバターオブジェクト610を非表示とする設定を行い、ステップS114に移行する。この結果、アバターオブジェクト610にカメラ17を近づけることにより所定範囲680内の視点からの画像を表示・視認可能となるが、アバターオブジェクト610が非表示となる。
図32(B)および図32(C)は、ARモードにおける仮想カメラ620Bの位置が所定範囲680内となる場合の例を示している。図32(B)では、仮想カメラ620Bの視点が位置aにある状態において、ユーザ端末100を所有するユーザが所定範囲680内に対応する位置まで移動することにより、仮想カメラ620Bの視点が所定範囲680内となる位置cまで移動した場合を例示している。この場合には、図32(C)に示すように、仮想カメラ620Bの視点が位置cまで移動するものの、当該仮想カメラ620Bの視点位置が所定範囲680内に入ったときにアバターオブジェクト610が非表示となる。図32(C)では、丸点線によりアバターオブジェクト610が非表示となっていることを示している。これにより、ARモード中においては、カメラ17の位置等の変化に応じて取得画像を変化させるとともに、仮想カメラ620Bの位置等の変化に応じて視界画像を変化可能としつつも、仮想カメラ620Bの位置が所定範囲680内となる場合にはアバターオブジェクト610を非表示とすることにより上記不具合を回避できる。
なお、仮想カメラ620Bの視点位置が所定範囲680内である間は、アバターオブジェクト610が非表示となるが、演者からの音声は継続して出力される。また、仮想カメラ620Bの視点位置が所定範囲680内から所定範囲680外となることにより、ステップS115の処理が行われず非表示が解除されるため、アバターオブジェクト610が表示可能な状態となる。
(表示例)
図33~図35は、ジャンケンゲーム進行中におけるユーザ端末100の表示部152の表示例を示す図である。図33~図35は、同じ動作指図データを受信しているときの表示例を示している。具体的には、図33は通常モードが設定されているときの表示例を示し、図34はTVモードが設定されているときの表示例を示し、図35はARモードが設定されているときの表示例を示している。
図33~図35は、ジャンケンゲーム進行中におけるユーザ端末100の表示部152の表示例を示す図である。図33~図35は、同じ動作指図データを受信しているときの表示例を示している。具体的には、図33は通常モードが設定されているときの表示例を示し、図34はTVモードが設定されているときの表示例を示し、図35はARモードが設定されているときの表示例を示している。
(通常モードにおける表示例)
通常モードにおいて、プロセッサ10は、ゲームプレイ端末300における仮想空間600Aと同期する仮想空間600Bを規定し、アバターオブジェクト610、選択肢オブジェクト281~283、花輪オブジェクト284、視聴者オブジェクト、背景オブジェクトなどのオブジェクトを当該仮想空間600B内に配置する。また、プロセッサ10は、当該仮想空間600B内においてゲーム進行情報に基づいてアバターオブジェクト610等を動作させて、仮想カメラ620Bからの視界画像を表示部152に表示する。このため、表示部152には、アバターオブジェクト610の背後において花輪オブジェクト284が表示されるとともに、床オブジェクトや背景オブジェクトが表示される。
通常モードにおいて、プロセッサ10は、ゲームプレイ端末300における仮想空間600Aと同期する仮想空間600Bを規定し、アバターオブジェクト610、選択肢オブジェクト281~283、花輪オブジェクト284、視聴者オブジェクト、背景オブジェクトなどのオブジェクトを当該仮想空間600B内に配置する。また、プロセッサ10は、当該仮想空間600B内においてゲーム進行情報に基づいてアバターオブジェクト610等を動作させて、仮想カメラ620Bからの視界画像を表示部152に表示する。このため、表示部152には、アバターオブジェクト610の背後において花輪オブジェクト284が表示されるとともに、床オブジェクトや背景オブジェクトが表示される。
図33(A)におけるアバターオブジェクト610は、例えば「何を出そうかなー、どれにしようかなー」などと思案している様子(モーション)とともに音声が出力されているような場面を示している。また、ジャンケンゲーム進行中においては、各種のUIやゲーム情報等が表示部152に表示される。図33(A)においては、例えば、選択用UI180、ルール説明表示181、アイテム投入用アイコン185、コメント入力用アイコン186などが仮想空間600B内の画像に重畳させて表示される。また、表示部152の左下には、アバターオブジェクト610に宛てて入力されたコメント内容を表示するためのコメント表示部184が設けられている。
ルール説明表示181は、ジャンケンゲームについてのルールを説明するための画像である。図33(A)では、例えば、「・全部で3回戦!」「・制限時間内にボタンを押そう!」「勝ち50P」「あいこ10P」「負け0P」といったメッセージ等が表示されている。
選択用UI180は、ユーザが出す手を選択するためのボタンアイコンを含み、当該ボタンアイコンへの入力操作(タップ操作)を受け付けるためのUIである。このため、図33(A)に示されるように、選択用UI180は、アバターオブジェクト610や、コメント表示部184、アイテム投入用アイコン185、コメント入力用アイコン186などよりも優先して表示される。図33(A)では、「出す手を選ぼう!」といったメッセージが表示されるとともに、その下方において左側からグーに対応するボタンアイコン、チョキに対応するボタンアイコン、パーに対応するボタンアイコンが表示されている。これにより、ユーザは、直感的にボタンアイコンに対するタッチ操作により出す手を選択できることを認識可能となる。また、「出す手を選ぼう!」のメッセージの左側には、出す手を選択できる制限時間(ここでは「10」)が表示され、当該メッセージの右側には、当該選択用UI180自体の表示を消去するための「×」ボタンが表示されている。
ユーザは、出す手の選択を終えていなくても、「×」ボタンを選択することで選択用UI180を消去することができる。これは、選択用UI180が表示されていると、選択用UI180でアバターオブジェクト610(キャラクタ)や、コメント表示部184、アイテム投入用アイコン185などが隠れてしまい、ユーザからアバターオブジェクト610等の画像が見えにくくなってしまうためである。なお、選択用UI180を消去した結果、ユーザが制限時間内に出す手を選択しなかった場合、ユーザの出し手は自動的に決定されればよい。また、選択用UI180を消去している状態においては、再度選択用UI180を表示するためのアイコン(「ゲームに戻る」といったメッセージアイコン等)を表示し、当該アイコンへの入力操作により選択用UI180が再度表示されるようにしてもよいし、演者の指示により選択用UI180が再度表示されるようにしてもよいし、何らかの条件の成立(例えば、制限時間が特定の値になること)により、選択用UI180が再度表示されるようにしてもよい。
アイテム投入用アイコン185は、アイテムを投入してアバターオブジェクト610に付与する契機となるアイコンである。アイテム投入用アイコン185への入力操作が受け付けられたときには、複数種類のアイテムから選択して投入するためのウィンドウが表示される。前述したように選択用UI180は、アイテム投入用アイコン185よりも優先して表示される。このため、選択用UI180がアイテム投入用アイコン185に重畳して表示されているときには、当該選択用UI180の表示を消さなければ、アイテム投入用アイコン185への入力操作を有効に受け付けないようにしてもよい。
コメント入力用アイコン186は、アバターオブジェクト610に宛てにコメントを入力する契機となるアイコンである。コメント入力用アイコン186への入力操作が受け付けられたときには、コメントを入力して送信するためのウィンドウが表示される。なお、コメント入力用アイコン186については、選択用UI180が重畳して表示されることがない位置に表示されているが、アイテム投入用アイコン185と同様に、選択用UI180の表示を消さなければ、コメント入力用アイコン186への入力操作を有効に受け付けないようにしてもよい。コメント表示部184においては、アバターオブジェクト610宛てに入力されたコメントのうち新しいものから順に所定個数分のコメントがユーザ名とともに表示される。
図33(B)は、ユーザが出す手を選択したときの表示例である。図33(B)では、「グー」が選択された例を示す。「グー」が選択されると、図33(B)に示されるように、選択用UI180内の「グー」のボタンアイコンが選択された状態(2重丸で囲われた状態)に更新される。なお、図33(B)では、制限時間が「7」となっているため、ユーザは残り7秒を残して出す手を決定したことになる。これに対し、図33(B)におけるアバターオブジェクト610については、選択肢オブジェクト281~283を掴んで、「どれにしようかなー、チョキかパーにしようかなー」などと思案している様子(モーション)とともに音声が出力されている場面が示されている。アバターオブジェクト610は、制限時間が経過した後に、演者のタイミングで「ジャンケンホイ」といった掛け声とともに、選択肢オブジェクト281~283のいずれか一つを上方に掲げる。
図33(C)は、制限時間経過後においてアバターオブジェクト610の手を出したときの表示例である。図33(C)では、アバターオブジェクト610により「チョキ」の選択肢オブジェクト282が掲げられている。これにより、アバターオブジェクト610が「チョキ」を出したことが報知される。アバターオブジェクト610が手を出したときには、アバターオブジェクト610の出す手として確定した選択肢オブジェクトの種類(グー、チョキ、パー)を特定するための情報を受信する。プロセッサ10は、当該情報に基づいて、ユーザが出した手と比較してユーザの勝敗を判定する。図33では、ユーザAが「グー」を選択していたため、ユーザAの勝ちと判定される。その結果、アバターオブジェクト610の上方において「勝ち」といったメッセージが表示される。
通常モードにおいて、仮想カメラ620Bの位置、向き等は、ユーザによるスワイプ操作やピンチイン操作/ピンチアウト操作などに応じて制御される。このため、左方向へのスワイプ操作が行われたときは、プロセッサ10は、アバターオブジェクト610を中心として仮想カメラ620Bの位置を左方向に移動させる。また、右方向へのスワイプ操作が行われたときは、プロセッサ10は、アバターオブジェクト610を中心として仮想カメラ620Bの位置を右方向に移動させる。また、上方向へのスワイプ操作が行われたときは、プロセッサ10は、仮想カメラ620Bの向きを上方向に変化させる。また、下方向へのスワイプ操作が行われたときは、プロセッサ10は、仮想カメラ620Bの向きを下方向に変化させる。
さらに、ピンチイン操作が行われたときは、プロセッサ10は、仮想カメラ620Bの位置を仮想空間600Bの外側に向けて移動させる。また、ピンチアウト操作が行われたときは、プロセッサ10は、仮想カメラ620Bの位置を仮想空間600Bの内側(あるいは、中心、アバターオブジェクト610)に向けて移動させる。これにより、ユーザの好みの視点で視界画像660を表示することが可能となる。
なお、図33(B)のタイミングでは、図33(A)の状態と比較して、演者の動きに応じてアバターオブジェクト610が左側に向きを変化させている状態が示されており、図33(C)のタイミングでは、図33(A)の状態と比較して、演者の動きに応じてアバターオブジェクト610が右側に向きを変化させている状態が示されている。このとき、ユーザは、アバターオブジェクト610を好みの視点から捉えるためにスワイプ操作を行い得る。図33(B)のタイミングでは、左から右方向へのスワイプ操作により仮想カメラ620Bを左側に移動させたことにより、アバターオブジェクト610の右前部を捉えた表示例を示している。また、図33(C)のタイミングでは、右から左方向へのスワイプ操作により仮想カメラ620Bを右側に移動させたことにより、アバターオブジェクト610の左前部を捉えた表示例を示している。
図33(D)は、図33(A)の表示状態においてアバターオブジェクト610の胸元を原点としてピンチアウト操作が行われたときの表示例である。図33(D)に示すように、ピンチアウト操作の原点となったアバターオブジェクト610の胸元を中心として、アバターオブジェクト610および花輪オブジェクト284などのオブジェクトが、当該ピンチアウト操作の動きに合わせて拡大表示される。逆に、図33(D)の表示状態においてピンチイン操作が行われたときには、アバターオブジェクト610および花輪オブジェクト284などのオブジェクトが当該ピンチイン操作の動きに合わせて縮小表示される。なお、拡大表示や縮小表示された場合であっても、スワイプ操作に応じてその大きさを維持したまま(アバターオブジェクト610までの距離を維持したまま)仮想カメラ620Bを左右に移動させ上下に向きを変化させることができる。また、拡大表示や縮小表示された場合であっても、選択用UI180などのアイコン類については、図33(D)に例示されるように、拡大/縮小されず、図33(A)と同じ状態で表示されるため、ユーザは、アイコンへの操作やコメントの確認を行うことができる。
図33(E)は、図33(D)の表示状態において、さらにピンチアウト操作が行われてステップS108で特定される仮想カメラ620Bの移動先が所定範囲670内となったときの表示例である。移動先が所定範囲670内となる場合には、前述したように、ステップS108にて特定されている移動先までの経路と、所定範囲670の外縁(外周面)との交点に仮想カメラ620Bを移動させる制御が行われる。これにより、本来であればユーザに視聴させたくないアバターオブジェクト610の内部を表示してしまうなどといった不具合を回避しつつも、図33(E)に示されるように、アバターオブジェクト610を間近から視聴可能となる。
(TVモードにおける表示例)
図34は、TVモードが設定されているときの表示例であり、図34(A)~図34(C)は、各々、図33(A)~図33(C)と同じタイミングの表示例を示している。図34(B)および図34(C)から分かるように、アバターオブジェクト610は、図33と同様に、図34(A)の状態と比較して、図34(B)のタイミングで左側に向きを変えており、図34(C)のタイミングで右側に向きを変えている。
図34は、TVモードが設定されているときの表示例であり、図34(A)~図34(C)は、各々、図33(A)~図33(C)と同じタイミングの表示例を示している。図34(B)および図34(C)から分かるように、アバターオブジェクト610は、図33と同様に、図34(A)の状態と比較して、図34(B)のタイミングで左側に向きを変えており、図34(C)のタイミングで右側に向きを変えている。
サーバ200は、システム1の運営者等によるスイッチャの操作に応じたカメラオブジェクト630の視点情報を複数のユーザ端末100に配信する。TVモードにおいて、仮想カメラ620Bの位置、向き等は、カメラオブジェクト630の位置、向き等と一致するように、当該視点情報に基づいて制御される。図34(B)は、カメラオブジェクト630の配置が仮想空間600Aの正面よりも右側の位置に切り替えられ、これに伴ってアバターオブジェクト610がカメラオブジェクト630側に向きを変えたときの表示例である。また、図34(C)は、カメラオブジェクト630の配置が仮想空間600Aの正面よりも左側の位置に切り替えられ、これに伴ってアバターオブジェクト610がカメラオブジェクト630側に向きを変えたときの表示例である。即ち、アバターオブジェクト610がカメラオブジェクト630の目線と一致するようにアバターオブジェクト610の向きが変更されると、タッチスクリーン15には、アバターオブジェクト610を正面から見る視点で視界画像660が表示される。このため、TVモードを選択すると、ユーザは、運営者等がベストと考える視点から見た画像を視認することが可能となる。また、本来であればユーザに視聴させたくないアバターオブジェクト610の内部を表示してしまうような位置に運営者等が視点を設定することもないため、TVモード中においては所定範囲670等に基づく視点の移動規制や非表示制御などを行う必要がない。
(ARモードにおける表示例)
図35は、ARモードが設定されているときの表示例であり、図35(A)~図35(C)は、各々、図33(A)~図33(C)や図34(A)~図34(C)と同じタイミングの表示例を示している。図35(B)は、図33(B)を表示しているタイミングにおいてカメラ17の位置(即ち、ユーザ端末100の位置)をAR用仮想空間600Cの正面の位置からアバターオブジェクト610を中心に40°程度右側に移動させたときの表示例である。図35(C)は、図33(C)を表示しているタイミングにおいてカメラ17の位置をAR用仮想空間600Cの正面の位置からアバターオブジェクト610を中心にさらに50°程度右側に移動させたときの表示例である。図35(A)~図35(C)では、カメラ17により撮影されて取得された取得画像(壁に絵が飾られるとともに机が置かれている部屋の画像)に対してアバターオブジェクト610、選択肢オブジェクト281~283、および花輪オブジェクト284等が配置されている拡張現実空間の画像が、タッチスクリーン15に表示される。
図35は、ARモードが設定されているときの表示例であり、図35(A)~図35(C)は、各々、図33(A)~図33(C)や図34(A)~図34(C)と同じタイミングの表示例を示している。図35(B)は、図33(B)を表示しているタイミングにおいてカメラ17の位置(即ち、ユーザ端末100の位置)をAR用仮想空間600Cの正面の位置からアバターオブジェクト610を中心に40°程度右側に移動させたときの表示例である。図35(C)は、図33(C)を表示しているタイミングにおいてカメラ17の位置をAR用仮想空間600Cの正面の位置からアバターオブジェクト610を中心にさらに50°程度右側に移動させたときの表示例である。図35(A)~図35(C)では、カメラ17により撮影されて取得された取得画像(壁に絵が飾られるとともに机が置かれている部屋の画像)に対してアバターオブジェクト610、選択肢オブジェクト281~283、および花輪オブジェクト284等が配置されている拡張現実空間の画像が、タッチスクリーン15に表示される。
具体的には、図35(A)は、例えば、仮想空間600A内のアバターオブジェクト610等が図28(A)において示す状態であるときの表示例を示している。取得画像は、水平方向から撮影された画像である。このため、仮想カメラ620Bは、水平方向からAR用仮想空間600Cを見る位置に配置される。その結果、図35(A)では、アバターオブジェクト610を正面視することとなる。図35(A)に示されるように、アバターオブジェクト610は、取得画像のうちの平面部である床の略中央位置において起立している状態で表示され、当該アバターオブジェクト610を基準として、当該アバターオブジェクト610の右前方(図28(A)と同じ位置関係)に選択肢オブジェクト281~283が配置され、アバターオブジェクト610の背後(図28(A)と同じ位置関係)に花輪オブジェクト284が配置されている。
ARモードにおいて、仮想カメラ620Bの位置、向き等は、カメラ17の位置・向き等の変更に応じて制御される。このため、カメラ17の位置(即ち、ユーザ端末100の位置)をAR用仮想空間600Cの正面の位置から40°程度右側に変更したときは、プロセッサ10は、仮想カメラ620Bの位置を40°程度右側に変更する。また、カメラ17の位置をAR用仮想空間600Cの正面の位置からさらに50°程度右側に変更したときは、プロセッサ10は、仮想カメラ620Bの位置をさらに50°程度右側に変更する。この結果、仮想カメラ620Bの位置が40°程度右側に変更されたときは、図35(B)に示す表示例に切り替わり、仮想カメラ620Bの位置がさらに50°(合計90°)程度右側に変更されたときは、図35(C)に示す表示例に切り替わる。
図35(D)は、図35(A)の表示状態において所定範囲680の外縁間近となる位置(所定範囲680外となる位置)までカメラ17を移動させたときの表示例である。アバターオブジェクト610および花輪オブジェクト284などのオブジェクトがカメラ17の位置(移動)に合わせて拡大表示される。逆に、図35(D)の表示状態においてカメラ17をアバターオブジェクト610から遠ざかる方向に移動させたときには、アバターオブジェクト610および花輪オブジェクト284などのオブジェクトがカメラ17の位置(移動)に合わせて縮小表示される。なお、拡大表示や縮小表示された場合であっても、選択用UI180などのアイコン類については、図35(D)に例示されるように、拡大/縮小されず、図35(A)と同じ状態で表示されるため、ユーザは、アイコンへの操作やコメントの確認を行うことができる。
図35(E)は、図35(D)の表示状態において、カメラ17をさらにアバターオブジェクト610に近づく方向に移動させて当該カメラ17に対応する仮想カメラ620Bが所定範囲680内となったときの表示例である。仮想カメラ620Bが所定範囲680内となる場合には、前述したように、ステップS115にてAR用仮想空間600C内に配置されているアバターオブジェクト610を非表示とする制御が行われる。このため、図35(E)で示すように、アバターオブジェクト610が非表示となり、その背後に配置されている花輪オブジェクト284のみが表示される。このように、ARモードにおいては所定範囲680内であるか否かにかかわらずカメラ17の位置に対応させて仮想カメラ620Bを移動させつつも、仮想カメラ620Bの位置が所定範囲680内となる場合にはアバターオブジェクト610を非表示とすることにより上記不具合を回避できる。
(モード切り替え)
ARモード移行用アイコン182aは、ARモードに移行させるためのアイコンである。TVモード移行用アイコン182bは、TVモードに移行させるためのアイコンである。通常モードにおいては、ARモード移行用アイコン182aとTVモード移行用アイコン182bとが、視界画像660の右上に重畳させて通常態様で表示される(図33参照)。このため、TVモード移行用アイコン182bに対するタッチ操作等が検出されることにより、視聴モードを通常モードからTVモードに切り替えることができる。また、ARモード移行用アイコン182aに対するタッチ操作等が検出されることにより、視聴モードを通常モードからARモードに切り替えることができる。
ARモード移行用アイコン182aは、ARモードに移行させるためのアイコンである。TVモード移行用アイコン182bは、TVモードに移行させるためのアイコンである。通常モードにおいては、ARモード移行用アイコン182aとTVモード移行用アイコン182bとが、視界画像660の右上に重畳させて通常態様で表示される(図33参照)。このため、TVモード移行用アイコン182bに対するタッチ操作等が検出されることにより、視聴モードを通常モードからTVモードに切り替えることができる。また、ARモード移行用アイコン182aに対するタッチ操作等が検出されることにより、視聴モードを通常モードからARモードに切り替えることができる。
TVモードにおいては、ARモード移行用アイコン182aが通常モードと同じ位置に通常態様で表示され、TVモード移行用アイコン182bが通常モードと同じ位置において強調態様で表示(例えば、白黒反転表示)される(図34参照)。当該強調態様での表示により、TVモード中である旨が報知される。ARモード移行用アイコン182aをタップすれば、視聴モードは、TVモードからARモードに切り替えられる。一方、強調態様で表示されているTVモード移行用アイコン182bをタップすれば、視聴モードは、TVモードから通常モードに切り替えられる。また、TVモードにおいては、ARモード移行用アイコン182aやTVモード移行用アイコン182bが表示されている領域以外の領域に対して、例えばスライド操作、スワイプ操作、ピンチイン/ピンチアウト操作等を行うことによっても、視聴モードがTVモードから通常モードに切り替えられる。
ARモードにおいては、ARモード移行用アイコン182aが、拡張現実空間の画像の右上位置(通常モードと同じ位置)に強調態様で表示(例えば、白黒反転表示)され、ARモード移行用アイコン182aの下側におけるTVモード移行用アイコン182bに替えてARモードリセット用アイコン182cが通常態様で表示される(図35参照)。ARモード移行用アイコン182aの強調態様での表示により、ARモード中である旨が報知され、ARモードリセット用アイコン182cの通常態様での表示により、ARモードをリセットできることが報知される。強調態様で表示されているARモード移行用アイコン182aをタップすれば、視聴モードは、ARモードから通常モードに切り替えられる。一方、ARモードリセット用アイコン182cをタップすれば、床面等の平面部が再度特定され、当該平面部の所定位置にAR用仮想空間600C内の視界画像が配置される。
即ち、本実形態においては、通常モードでは、当該通常モードと異なる視聴モードに対応するアイコンが表示される。アイコンがタッチされると、当該アイコンに対応する視聴モードに移行するとともに、当該アイコンが強調態様で表示される。移行先の視聴モードにおいて強調態様で表示されているアイコンがタッチされると、通常モードに戻る。また、移行先の視聴モードにおいて通常態様で表示されているアイコンがタッチされると、当該アイコンに対応するモードに移行する。これにより、ユーザは、選択中の視聴モードがどのモードであるかを認識しつつ、視聴モードを切り替えることが可能となる。
TVモードに切り替えられると、サーバ200から送信される視点情報に基づいて、仮想カメラ620Bが仮想空間600Bに配置される。この結果、仮想カメラ620Bの位置、向き等は、カメラオブジェクト630の位置、向き等と一致する。
ARモードに切り替えられると、取得画像を撮影したときのカメラ17の撮影方向(向き、傾き等)が特定され、当該撮影方向と同じ方向からAR用仮想空間600Cを見る位置に仮想カメラ620Bが配置される。具体的に、撮影方向が略水平方向であった場合には、AR用仮想空間600Cを水平方向から見る位置に仮想カメラ620Bが配置される。一方、撮影方向が斜め上方から見下ろす方向であった場合には、AR用仮想空間600Cを斜め上方から見下ろす位置に仮想カメラ620Bが配置される。
通常モードに切り替えられると、モード切替え前に仮想カメラ620Bが配置されていた位置に対応する位置に、仮想カメラ620Bが配置される。具体的には、切替え前の視聴モードがTVモードであれば、仮想空間600Bにおける仮想カメラ620Bの配置が維持される。一方、切替え前の視聴モードがARモードであれば、AR用仮想空間600Cにおいて仮想カメラ620Bが配置されていた位置が特定され、仮想空間600Bのうち当該特定した位置と同じ位置に仮想カメラ620Bが配置される。切替え前の視聴モードがARモードであって、AR用仮想空間600Cにおいて仮想カメラ620Bが配置されていた位置が所定範囲670内となる位置であった場合には、仮想カメラ620Bが配置されていた位置から所定範囲670外となる最も近い位置に仮想カメラ620Bが配置される。なお、これに限らず、切替え前の視聴モードがARモードであって、AR用仮想空間600Cにおいて仮想カメラ620Bが配置されていた位置が所定範囲670内となる位置であった場合には、例えば、AR用仮想空間600Cにおいて仮想カメラ620Bが配置されていた位置と同じ位置に仮想カメラ620Bを配置する一方で、通常モードへの切り替え後から当該仮想カメラ620Bが所定範囲670外に移動するまでの間においては通常モード中であってもアバターオブジェクト610を非表示とし(その他のオブジェクトについては表示)、移動操作に応じて仮想カメラ620Bを所定範囲670外に移動させた後にアバターオブジェクト610を表示するようにしてもよい。
<本実施形態の効果>
本実施形態によれば、アバターオブジェクト610は、演者の動きに応じてリアルタイムに動作するキャラクタであり、サーバ200から送信される動作指図データは、当該アバターオブジェクト610が配置されている仮想空間を表示するためのデータである。ユーザ端末100においては、仮想カメラ620B(視点)を移動させるための態様が異なる複数種類の視聴モードのうちのいずれかが特定され、当該特定された視聴モードに応じた画像が表示部152に表示される。また、タッチスクリーン15への移動操作に応じて視点を移動させる通常モードと、ユーザ端末100(カメラ17)自体を移動させる操作に応じて視点を移動させるARモードとを設け、通常モードにおいてはアバターオブジェクト610が配置され得る所定範囲670内への視点の移動を規制し、ARモードにおいては所定範囲680内への視点の移動を許容するが当該所定範囲680内に視点を移動させたときにはアバターオブジェクト610を非表示とする。これにより、視聴モードに応じて視点を移動させることが可能となり、興趣が向上する。また、本来であればユーザに視聴させたくないアバターオブジェクト610の内部を表示してしまうなどといった不具合を回避できる。
本実施形態によれば、アバターオブジェクト610は、演者の動きに応じてリアルタイムに動作するキャラクタであり、サーバ200から送信される動作指図データは、当該アバターオブジェクト610が配置されている仮想空間を表示するためのデータである。ユーザ端末100においては、仮想カメラ620B(視点)を移動させるための態様が異なる複数種類の視聴モードのうちのいずれかが特定され、当該特定された視聴モードに応じた画像が表示部152に表示される。また、タッチスクリーン15への移動操作に応じて視点を移動させる通常モードと、ユーザ端末100(カメラ17)自体を移動させる操作に応じて視点を移動させるARモードとを設け、通常モードにおいてはアバターオブジェクト610が配置され得る所定範囲670内への視点の移動を規制し、ARモードにおいては所定範囲680内への視点の移動を許容するが当該所定範囲680内に視点を移動させたときにはアバターオブジェクト610を非表示とする。これにより、視聴モードに応じて視点を移動させることが可能となり、興趣が向上する。また、本来であればユーザに視聴させたくないアバターオブジェクト610の内部を表示してしまうなどといった不具合を回避できる。
また、ARモードは、ユーザ端末100(カメラ17)の位置の変化に応じて仮想カメラ620Bを移動させるモードであるため、通常モードと同様に移動を規制した場合にはユーザに対して違和感を抱かせてしまうところ、所定範囲680内への移動を可能としつつ所定範囲680内に視点を移動させたときにはアバターオブジェクト610を非表示とする。これにより、ARモード中においても違和感を低減させつつ、上記不具合を回避できる。
また、ARモードでは、カメラ17により取得された取得画像に対してアバターオブジェクト610等が配置されている拡張現実空間内の画像を表示する。これにより、ユーザの目の前の現実空間においてアバターオブジェクト610等が実際に動作しているかのような印象(臨場感)をユーザに抱かせることができる。
また、仮想空間600Aに配置されているカメラオブジェクト630の視点と同じ視点から仮想空間600B内の画像を表示するTVモードにも切替可能である。これにより、配信側のスイッチャがベストと考える視点から見た画像をユーザが視認可能となる。
また、所定範囲670、680は、演者が実際に存在する床面における所定位置から予め定められた範囲(例えば、半径2m以内の範囲)に対応する仮想空間600A~600Cにおける予め定められている範囲である。これにより、例えば所定範囲670等がアバターオブジェクト610の位置に応じて変動するものなどと比較して、処理負担を軽減できる。また、通常モードにおける所定範囲670と、ARモードにおける所定範囲680とは同一の範囲に定められている。これにより、例えばモードに応じて範囲を異ならせるものなどと比較して、処理負担を軽減できるとともに演者を混乱させてしまうことを防止できる。
また、通常モードおよびARモードは、いずれも、アバターオブジェクト610を含む配信画像を視聴する同一のユーザからの操作・動作等に応じて移動される視点からの画像を表示する。このため、仮想空間に配置されているオブジェクトをユーザが望む視点で視認することを可能としつつも、視聴モードに応じて異なる画像を表示することが可能となり、興趣が向上する。
さらに、本実施形態におけるTVモードでは、カメラオブジェクト630の視点と同じ視点が、サーバ200から送信される視点情報に基づいて特定される。これにより、データ量が増大してしまうことを防止できる。
また、本実施形態によれば、動作指図データは、アバターオブジェクト610を演じる演者の入力したモーションデータを含む。通常モードにおいては、アバターオブジェクト610が配置されている仮想空間600B内の画像が、ユーザの操作に応じた視点で表示される。ARモードにおいては、カメラ17により取得された取得画像に対してアバターオブジェクト610が配置されている拡張現実空間内の画像が表示される。TVモードにおいては、アバターオブジェクト610が配置されている仮想空間600B内の画像が、仮想空間600Aに配置されているカメラオブジェクト630の視点と同じ視点で表示される。これにより、同じモーションデータ(動作指図データ)を受信しているにもかかわらず、視聴モードに応じて異なる画像を表示することが可能となる。
さらに、本実施形態によれば、視聴モードを切り替えるためのアイコンがタッチスクリーン15に表示される。このため、アイコンタップといった簡単な操作により、視聴モードを切り替えることが可能となる。
<変形例>
以上説明した実施形態の変形例などを以下に列挙する。
以上説明した実施形態の変形例などを以下に列挙する。
(1) 上記実施形態においては、通常モードにおける所定範囲670およびARモードにおける所定範囲680のいずれもが、所定位置から演者が移動可能な範囲として予め定められている範囲である例について説明した。しかし、通常モードにおける所定範囲670およびARモードにおける所定範囲680は、予め定められている範囲に限らず、演者(アバターオブジェクト610でもある)の現在位置を基準とする範囲(例えば、現在位置から半径1m以内の範囲)であってもよい。この場合、通常モードにおける所定範囲670およびARモードにおける所定範囲680の位置は、演者の現在位置に応じて移動し得ることとなる。これにより、所定範囲を極力狭い範囲に抑えることができる。
また、上記実施形態においては、通常モードにおける所定範囲670と、ARモードにおける所定範囲680とが、同一の範囲である例について説明した。しかし、これに限らず、通常モードにおける所定範囲670と、ARモードにおける所定範囲680とが、異なる範囲に定められているものであってもよい。例えば、通常モードにおける所定範囲670は、ARモードにおける所定範囲680よりも広い範囲に定められているものであってもよい。これにより、ARモード中においては、より近い位置からアバターオブジェクト610を視認可能となり、興趣を向上させることができる。また、例えば、通常モードにおける所定範囲670を、所定位置から演者が移動可能な範囲として予め定められている範囲とし、ARモードにおける所定範囲680を、演者の現在位置を基準とする範囲としてもよい。これにより、ARモード中における所定範囲を極力狭くでき、より近い位置からアバターオブジェクト610を視認可能となる。ARモードで視聴しようとする動機を高めることができる。
(2) 上記実施形態においてアバターオブジェクト610が登場するコンテンツは、毎日あるいは所定曜日の所定時間において定期的に配信されるものであってもよい。また、アバターオブジェクト610には、衣服やアクセサリー等の装飾オブジェクト(テクスチャ画像)が関連付けられており、例えば、アバターオブジェクト610となるキャラクタの上半身や、下半身、手、足、首元、耳たぶ、目元等の各部位には、衣服やアクセサリー(ネックレス、イヤリング、眼鏡等)に相当する装飾オブジェクトが予め関連付けられている。このような前提において、配信者は、例えば、アバターオブジェクト610に関連付けられる特定のオブジェクト(例えば、イヤリング)の表示態様を配信毎に変更してもよい。これにより、視聴者であるユーザは、当該ユーザからの要求の有無にかかわらず特定のオブジェクトの表示態様が配信毎に異なるものに変化していることを体感でき、その結果、アバターオブジェクト610の実在感をユーザに抱かせることができる。また、ARモードである場合には、アバターオブジェクト610に関連付けられる特定のオブジェクトを表示可能となる位置に視点を移動可能である一方、通常モードである場合には、アバターオブジェクト610に関連付けられる特定のオブジェクトを表示可能となる位置に視点を移動不可能となるようにしてもよい。図36を用いてその一例を説明する。
図36は、アバターオブジェクト610として帽子を着用した女性を模したキャラクタが仮想空間600Bに登場する例を示す。アバターオブジェクト610には、キャラクタが全身に羽織るワンピース、頭部に被る帽子、耳に付けるピアスなどの装飾オブジェクトが関連付けられている。図36では、アバターオブジェクト610に関連付けられている装飾オブジェクトのうちのピアスが、特定のオブジェクトに相当する。このため、当該ピアスの表示態様は、配信毎に異なる表示態様に設定される。
まず、図36(A)を参照して、通常モードについて説明する。図36(A-1)は、アバターオブジェクト610が正面を向いて右手の人差し指を前に掲げているときの表示例である。図36(A-2)は、キャラクタが右斜め前を向いて右手の人差し指で前方を指しているときの表示例である。当該通常モードでは、スワイプ操作・ピンチイン操作・ピンチアウト操作等に応じて仮想カメラ620Bの位置、向き、および傾きが変更される。ただし、ピアスは、他のオブジェクトに相当する帽子により覆われており、通常モード中においてどのようにスワイプ操作等を行ったとしても、ピアスが見える位置(例えば、後述する図36(B-3)や図36(B-4)などを表示可能とする位置)に仮想カメラ620B(視点)を移動させることはできない。例えば、通常モードにおける所定範囲670は、ピアス(特定部位)が見える位置をすべて含むように定められているものであってよい。
一方、ARモードにおける所定範囲680は、ピアス(特定部位)が見える位置の少なくとも一部を含まないように定められているものであってよい。図36(B)を参照して、ARモードについて説明する。図36(B-1)および図36(B-2)は、各々、図36(A-1)および図36(A-2)と同じタイミングにおけるARモード中の表示例を示している。当該ARモードでは、カメラ17により撮影されて取得された取得画像に対してアバターオブジェクト610が配置されている拡張現実空間の画像のうち、仮想カメラ620Bからの画像が、表示部152に表示される。また、仮想カメラ620Bの位置、向き、傾き等は、カメラ17の実際の位置、向き、傾き等に応じて変更される。
このため、アバターオブジェクト610の左方の斜め下あたりから左耳を見上げるようにカメラ17の位置・向き等を調整すれば、ピアスが見える位置に仮想カメラ620Bが移動し、ピアスの画像が表示部152に表示される(図36(B)の(B-3)参照)。即ち、ピアスの表示態様は、ARモードを選択し、カメラ17の位置・向き等を調整することにより、確認することができる。これにより、ARモードで視聴することに対するモチベーションをユーザに持たせることができ、ひいては好趣を向上させることができる。なお、キャラクタの足元から当該キャラクタの左半身を見上げるようにカメラ17の位置・向き等を調整すれば、図36(B)の(B-4)に示すように、足を含む左半身の画像が表示部152に表示される。アバターオブジェクト610に近づき過ぎて、仮想カメラ620B(視点)が所定範囲680内に入ったときには、アバターオブジェクト610が非表示となる。このため、所定範囲680内に入らないようにしつつ、どの位置・角度からであればピアスを捉えることができるのかといった面白味をユーザに提供できる。
このようにARモードにおいては、カメラ17の位置・向き等を調整することにより、アバターオブジェクト610に関連付けられるピアスを表示可能な位置(例えば、キャラクタの首元から見上げるような位置、キャラクタの足元から見上げるような位置など)に仮想カメラ620Bを移動させることができる。その結果、ピアスを表示させることができ、ユーザは当該ピアスの表示態様を確認できる。一方、通常モードにおいては、前述したように、どのように操作を行ったとしても、キャラクタに関連付けられるピアスを表示可能な位置(例えば、キャラクタの足元から見上げるような位置など)に仮想カメラ620Bを移動させることができない。その結果、特定のオブジェクトであるピアスを表示させることができず、ユーザは当該ピアスの表示態様を確認できない。
図36では、アバターオブジェクト610に関連付けられている装飾オブジェクトのうちの特定のオブジェクトとしてピアスを例示し、当該ピアスの表示態様を変更する例について説明した。しかし、特定のオブジェクトは、アバターオブジェクト610に関連付けられているオブジェクトであれば、シャツやピアスに限らず、靴下、ズボン、髪留め、手袋、帽子、下着などのオブジェクトであってもよい。また、特定のオブジェクトは、装飾オブジェクトに限らず、例えば、キャラクタ自身にかかわるオブジェクト(例えば、髪型、ネイル等)であってもよい。
なお、通常モードおよびARモード各々の所定範囲にかかわらず、ARモードである場合には、アバターオブジェクト610に関連付けられる特定のオブジェクトを表示可能となる位置に視点を移動可能であり、通常モードである場合には、アバターオブジェクト610に関連付けられる特定のオブジェクトを表示可能となる位置に視点を移動不可能となるように、仮想カメラ620B(視点)の移動可能範囲を制御するようにしてもよい。また、この場合における特定のオブジェクトは、配信毎に表示態様が変更されるオブジェクトに限らず、表示態様が変更されず一律となるオブジェクトであってもよい。
また、ARモード中において特定のオブジェクトが見える位置のうちの一部に該当する特定位置に仮想カメラ620B(視点)が移動した場合には、アバターオブジェクト610を非表示とするようにしてもよい。例えば、ARモード中における所定範囲680に、特定位置を含めるようにしてもよい。
また、アバターオブジェクト610には、視聴モードにかかわらず仮想カメラ620Bの視点から捉えることができない部位が定められているものであってもよい。例えば、図36に示すアバターオブジェクト610では、例えば、ピアスが付けられている左耳とは逆の右耳に対応する部位が帽子の鍔で隠れており、いずれの視聴モードであっても、仮想カメラ620Bの視点から捉えることができないように定められているものであってもよい。
(3) 上記実施形態では、通常モードおよびARモードにおける所定範囲として、円筒状となる範囲を例示したが、アバターオブジェクト610を含む形状の範囲であればこれに限らず、上方よりも下方の方が広くなるような形状(例えば、テーパー状)となる範囲であってもよく、アバターオブジェクト610そのものの形状となる範囲であってもよい。
(4) 上記実施形態におけるTVモードでは、本来であればユーザに視聴させたくないアバターオブジェクト610の内部を表示してしまうような位置に運営者等が視点を設定することもないため、所定範囲670等に基づく視点の移動規制や非表示制御などを行わない例について説明したが、例えば、配信側の端末(例えば、配信端末400、ゲームプレイ端末300等)において、運営者が所定範囲670等に対応する範囲内に視点を誤って設定してしまった場合にその旨を運営者に対して報知する処理を行うようにしてもよく、また、運営者が所定範囲670等に対応する範囲内に視点が設定できないように規制するための処理を行うものであってもよい。
また、配信側の端末(例えば、配信端末400、ゲームプレイ端末300等)においては、演者が所定範囲670等に対応する予め定められた範囲から外に出たときや、当該予め定められた範囲までの距離が所定距離(例えば30cm)以内となったときなどに、その旨を演者や運営者に対して報知する処理を行うようにしてもよい。
また、ユーザ端末100側においては、アバターオブジェクト610が所定範囲外に出たときには、当該アバターオブジェクト610の位置を所定範囲内の所定位置となるように変更設定するための処理を行い、強制的に所定範囲内となる位置にアバターオブジェクト610を移動(横滑り表示)させるようにしてもよい。
(5) 上記実施形態において通常モードにおいては、アバターオブジェクト610が配置され得る所定範囲670内への視点の移動を規制し、ARモードにおいては、所定範囲680内への視点の移動を許容するが当該所定範囲680内に視点を移動させたときにはアバターオブジェクト610を非表示とする例について説明した。しかし、ARモードにおいては、アバターオブジェクト610が配置され得る所定範囲670内への視点の移動を規制し、通常モードにおいては、所定範囲680内への視点の移動を許容するが当該所定範囲680内に視点を移動させたときにはアバターオブジェクト610を非表示とするものであってもよい。
(6) 上記実施形態においては、アバターオブジェクト610に対応して所定範囲を設け、通常モードにおいては所定範囲内への仮想カメラ620B(視点)の移動を規制し、ARモードにおいては所定範囲内への移動を許容する一方でアバターオブジェクト610を非表示とする例について説明した。しかし、このような制御が行われるオブジェクトは、演者が演じるアバターオブジェクト610に限らず、他のオブジェクトに適用するものであってもよい。また、演者が演じるアバターオブジェクト610以外のオブジェクト(例えば、花輪オブジェクト284等)については、当該オブジェクト各々に対応して所定範囲が設けられており、視聴モードにかかわらず、当該所定範囲内への仮想カメラ620B(視点)の移動が許容される一方で、仮想カメラ620B(視点)が入った所定範囲に対応するオブジェクトを非表示とするようにしてもよい。あるいは、演者が演じるアバターオブジェクト610以外のオブジェクト(例えば、花輪オブジェクト284等)については、視聴モードにかかわらず、所定範囲内への仮想カメラ620B(視点)の移動を規制するようにしてもよい。
(7) 上記実施形態においては、ARモードにおいて、アバターオブジェクト610や選択肢オブジェクト281~283をカメラ17から取得された取得画像に配置する例について説明した。しかし、ARモードにおいては、取得画像に対して配置するアバターオブジェクト610や選択肢オブジェクト281~283のサイズをユーザ操作に応じて調整可能とするようにしてもよい。
アバターオブジェクト610や選択肢オブジェクト281~283を含む視界画像が配置される際の表示サイズは、取得画像を解析することにより特定された平面部の大きさに応じて決定されるため、解析結果によっては、取得画像に対してアバターオブジェクト610等が極端に大きく表示されてしまう場合や逆に小さく表示されてしまう場合が生じ得る。このような場合に、ユーザ操作を受け付けることにより、アバターオブジェクト610等の表示サイズを取得画像に対して適正な表示サイズあるいはユーザの好みの表示サイズに調整することで、アバターオブジェクト610等の表示に対して違和感を抱かせてしまうという不都合を回避できる。
(8) 上記実施形態においては、拡張現実空間が、カメラ17からの取得画像に対して仮想空間600Aにおける一部のオブジェクトのみを配置させた空間である例について説明した。しかし、カメラ17からの取得画像に対して配置するオブジェクトは、プレイヤが演じるアバターオブジェクト610を含むものであればこれに限らず、仮想空間600Aに配置されているすべてのオブジェクトとしてもよい。つまり、拡張現実空間は、カメラ17からの取得画像に対して仮想空間600Aと同じ仮想空間全体を配置させてなる空間であってもよい。具体的には、カメラ17からの取得画像に対して、前述の仮想空間600A全体をミニチュア化して配置させてなる拡張現実空間を生成し、当該拡張現実空間内においてアバターオブジェクト610等を動作させるようにしてもよい。
(9) 上記実施形態においては、ユーザの操作に応じて視聴モードを切り替えるようにしている。しかし、コンテンツの種類や時間帯に応じて運営者側において視聴モードが特定されて、当該視聴モードを特定可能なモード情報を、ゲームプレイ端末300から複数のユーザ端末100に向けて配信されるデータに含め、ユーザ端末100は、当該モード情報に基づく視聴モードで配信コンテンツを視聴できるようにしてもよい。また、運営者がTVモードへの切替えを要求する情報を配信できるようにし、当該情報が配信されている期間は視聴モードをTVモードに設定するようにしてもよい。これにより、例えばアバターオブジェクト610が着替え等を行う期間に、カメラオブジェクト630の向きをアバターオブジェクト610を撮影できない方向に変更し、当該着替えのシーンがユーザ端末100に表示される不都合を回避することができる。なお、当該情報が配信されている期間においても、プレミアムユーザなどの特定のユーザについては、視聴モードの切替えを許可するようにしてもよい。
(10) 上記実施形態において拡張現実空間を構成する取得画像は、カメラ17によりリアルタイムで撮影された画像である例について説明した。しかし、拡張現実空間を構成する取得画像は、リアルタイムで撮影された画像に限らず、過去に撮影した画像であってもよい。また、拡張現実空間を構成する取得画像は、現実空間の様々な場所で撮影された画像(パノラマ画像等を含む)を提供するサービス提供装置(サーバ)から提供される画像であってもよい。この場合において提供される画像は、例えば、ユーザ端末100が存在する位置の画像であってもよく、また、マップ上を移動するいわゆる位置ゲームを行っているときには当該マップに対してユーザが指定した位置の画像であってもよい。
また、拡張現実空間の生成においては、取得した取得画像をそのまま用いて、その上にキャラクタ等を重畳させてタッチスクリーン15に表示する例について説明した。しかし、拡張現実空間の生成に用いる取得画像については、所定の加工・編集処理を行い、当該加工・編集処理が施された画像にキャラクタ等を重畳させてタッチスクリーン15に表示するようにしてもよい。所定の加工・編集処理は、例えば、入力操作に応じて拡大・縮小等を行うものであってもよく、また、現在の状況(例えば、時期、日付、時間等)に応じて、グラデーション、シャープネス、色補正、特殊効果等を行うようにしてもよい。
上記実施形態においては、仮想空間600Aの一部のオブジェクトを取得画像上に配置させてなる拡張現実空間内の画像を表示する手法として、図28(B)および図35を参照して一例を示した。しかし、このような拡張現実空間内の画像を表示する手法としては、カメラ17により取得した取得画像に対してアバターオブジェクト610等を配置させて動作させるものであればよく、その他の手法を用いるものであってもよい。例えば、AR用仮想空間600C内において仮想空間600Aと同じようにすべてのオブジェクト(視聴者オブジェクトや、床オブジェクト、背景オブジェクト等)を配置させた上で、アバターオブジェクト610および選択肢オブジェクト281~283以外のその他のオブジェクト(視聴者オブジェクトや装飾オブジェクト)の表示設定を非表示設定とし、仮想カメラ620Bからの視界画像としてアバターオブジェクト610および選択肢オブジェクト281~283のみが含まれ、その他のオブジェクトが含まれないようにし、当該視界画像をカメラ17からの取得画像に対して重畳させることにより拡張現実空間内の画像を生成するようにしてもよい。この場合において強調表示されているARモード移行用アイコン182aへの入力操作が受け付けられたときには、AR用仮想空間600C内において配置されているが非表示設定となっているオブジェクト(視聴者オブジェクトや、床オブジェクト、背景オブジェクト等)について、表示される設定に切り替えることにより、拡張現実空間ではなく仮想空間600Aと同じ仮想空間内においてアバターオブジェクト610等を動作させるようにしてもよい。これにより、通常モード移行時等における処理を簡易化できるとともに処理負担を軽減できる。
(11) 上記実施形態におけるアバターオブジェクト610の表示態様は、例えば、拡張現実空間の生成に用いる取得画像の種類(例えば、部屋の画像、ショッピングモールの画像、風景画像)に応じてユーザ毎に異なり得るようにしてもよい。例えば、ゲームプレイ端末300側から送信されるゲーム進行情報が同じであっても、取得画像が部屋の画像であるユーザ端末については、アバターオブジェクト610の衣装をパジャマとしてもよく、取得画像が山の画像であるユーザ端末については、アバターオブジェクト610の衣装を登山服としてもよい。この場合、アバターオブジェクト610の衣装データは、各ユーザ端末100側において予め複数種類記憶されているようにしてもよい。なお、アバターオブジェクト610の表示態様を異ならせる対象は、衣装に限らず、髪型、肌の色、化粧の程度等であってもよい。これにより、ゲーム進行情報を出力するゲームプレイ端末300側の処理負担を増大させることなく、拡張現実空間のバリエーションを増やすことができる(取得画像次第で実質無限となる)ため、ユーザを惹きつけることが可能となる。
これに替えてあるいは加えて、アバターオブジェクト610の表示態様は、ゲーム中においてユーザによる課金に応じて、他のユーザのユーザ端末において表示される表示態様と異ならせることができるようにしてもよい。また、アバターオブジェクト610の表示態様は、ライブゲーム等の結果に応じて更新されるユーザのランキングに応じて異なるようにしてもよい。
(12) 上記実施形態において図29のステップS92においては、取得画像を撮影したときのカメラ17の撮影方向(向き、傾き等)に基づき、当該撮影方向と同じ方向となるように仮想カメラ620Bを配置する例について説明した。しかし、仮想カメラ620Bを初期配置する位置・向き等については、これに限らず、コンテンツの種類に応じて設定されるものや、ステップS88における解析結果に基づいて設定されるもの、予め定められている位置・向き等に設定されるものなどであってもよい。
また、ステップS92において仮想カメラ620Bが初期配置された後においては、図30のステップS112において示したように、カメラ17の位置、向き、および傾き等の変化に同期させて仮想カメラ620Bを制御する例について説明した。しかし、初期配置後の仮想カメラ620Bは、ユーザからの入力操作(例えば、スワイプ操作、タッチ操作等)に応じて、位置、向き、および傾き等を制御するようにしてもよい。これにより、ユーザからの入力操作に応じて、仮想カメラ620Bの視界領域を変更でき、その結果、取得画像上に配置される視界画像を変更できる。具体的には、スワイプ操作により、取得画像上に配置されるアバターオブジェクト等(例えば、アバターオブジェクト610のみ、アバターオブジェクト610およびその他のオブジェクト、仮想空間全体)を回転させたり、移動させたりできるようにしてもよい。これにより、例えば、ユーザ端末100の位置や向き等を十分に調整できないような狭いスペースにおいて拡張現実空間を生成してアバターオブジェクト610等を動作させているときであっても、タッチスクリーン15に対する入力操作により当該アバターオブジェクト610等を回転・移動させることが可能となる。
(13) 上記実施形態においては、仮想空間600Bまたは拡張現実空間内において進行するコンテンツとして、図33~図35に示すジャンケンゲームなどのプレイヤとユーザとが対戦するライブゲームを例示した。しかし、仮想空間600Bまたは拡張現実空間内において進行するライブゲームは、これに限らず、プレイヤとユーザとが交替でパチンコを操作し、前方に配置されているトレーを模したオブジェクト上に、当該パチンコで飛ばした果物を模したオブジェクトをどれだけ載せられるか(どちらが失敗せずに載せられるか)を競うパズルゲームであってもよく、プレイヤにより操作されるアバターオブジェクトと、複数のユーザ各々により操作される兵士オブジェクトと、ゲームプログラムにより動作する敵オブジェクトとが登場し、ユーザがアバターオブジェクト610を守りながら敵オブジェクトを倒すような参加型ゲームであってもよい。また、仮想空間600Bまたは拡張現実空間内において進行するコンテンツは、ライブゲームに限らず、例えば、アバターオブジェクト610がライブで歌っている様子や、ライブでおしゃべりをしている様子をユーザが視聴するための視聴型のコンテンツであってもよい。
(14) 上記実施形態においては、ユーザ端末100のカメラ17が、表示部152が設けられている面と反対側の面に設けられており、カメラ17で撮影しているときに表示部152に表示される取得画像が、ユーザが直接視認している現実の風景内に含まれている(合致している)ことを想定している。しかし、ユーザ端末100のカメラ17は、表示部152が設けられている面と反対側の面に設けられているものに限らず、表示部152が設けられている面に設けられているもの(ユーザ自身が含まれる取得画像上にアバターオブジェクト610等を配置させて動作させるようなもの)であってもよく、ユーザ端末100と通信可能となるように当該ユーザ端末100とは別個に設けられているものであってもよい。
(15) 上記実施形態においては、アバターオブジェクト610が動作している映像は、リアルタイムレンダリングにより配信される動作指図データに基づいて表示部152に表示される。しかし、当該映像は、動画配信方式により配信される例えば360°動画データ等に基づいて表示するようにしてもよい。また、360°動画データの場合には、視聴モードに応じて制御される視点からの画像を表示するようにしてもよい。
<付記>
以上の各実施形態で説明した事項を、以下に付記する。
以上の各実施形態で説明した事項を、以下に付記する。
(付記1):
本開示に示す一実施形態のある局面によれば、プロセッサ、メモリ、入力部、および表示部を備える情報端末装置(ユーザ端末100)において実行されるプログラムであって、前記プロセッサに、キャラクタが配置されている仮想空間を表示するための表示用データ(動作指図データ)を受信するステップ(S26)と、前記仮想空間内において視点を移動させるための態様が異なる複数種類の視聴モードのうちのいずれかを特定するステップ(S81、S84、S103、S106)と、前記表示用データに基づく仮想空間内の画像のうち、前記特定するステップにより特定されている視聴モードに応じた態様で移動する視点からの画像を前記表示部に表示するステップ(S85~S87、S92、S93、S104、S105、S110、S111、S114)とを実行させ、前記複数種類の視聴モードは、ユーザからの前記入力部に対する入力態様に応じて視点を移動可能となる視聴モードとして、前記キャラクタが配置され得る所定の範囲内への視点の移動を規制し得る第1視聴モード(通常モード)と、前記キャラクタが配置され得る所定の範囲内への視点の移動を許容するが当該所定の範囲内に視点を移動させたときには前記キャラクタを非表示とし得る第2視聴モード(ARモード)とを含む。
本開示に示す一実施形態のある局面によれば、プロセッサ、メモリ、入力部、および表示部を備える情報端末装置(ユーザ端末100)において実行されるプログラムであって、前記プロセッサに、キャラクタが配置されている仮想空間を表示するための表示用データ(動作指図データ)を受信するステップ(S26)と、前記仮想空間内において視点を移動させるための態様が異なる複数種類の視聴モードのうちのいずれかを特定するステップ(S81、S84、S103、S106)と、前記表示用データに基づく仮想空間内の画像のうち、前記特定するステップにより特定されている視聴モードに応じた態様で移動する視点からの画像を前記表示部に表示するステップ(S85~S87、S92、S93、S104、S105、S110、S111、S114)とを実行させ、前記複数種類の視聴モードは、ユーザからの前記入力部に対する入力態様に応じて視点を移動可能となる視聴モードとして、前記キャラクタが配置され得る所定の範囲内への視点の移動を規制し得る第1視聴モード(通常モード)と、前記キャラクタが配置され得る所定の範囲内への視点の移動を許容するが当該所定の範囲内に視点を移動させたときには前記キャラクタを非表示とし得る第2視聴モード(ARモード)とを含む。
(付記2):
(付記1)において、前記入力部は、前記表示部に対する入力操作を特定する第1入力部(タッチスクリーン15)と、前記情報端末装置の位置を特定する第2入力部(ジャイロセンサ、GPSなど)とを含み、前記第1視聴モードは、前記第1入力部により特定される操作態様に応じて視点を移動可能となる視聴モードであり、前記第2視聴モードは、前記第2入力部により特定される位置に応じて視点を移動可能となる視聴モードである。
(付記1)において、前記入力部は、前記表示部に対する入力操作を特定する第1入力部(タッチスクリーン15)と、前記情報端末装置の位置を特定する第2入力部(ジャイロセンサ、GPSなど)とを含み、前記第1視聴モードは、前記第1入力部により特定される操作態様に応じて視点を移動可能となる視聴モードであり、前記第2視聴モードは、前記第2入力部により特定される位置に応じて視点を移動可能となる視聴モードである。
(付記3):
(付記2)において、前記情報端末装置は撮像部(カメラ17)を備え、前記第2視聴モードは、前記撮像部により取得された取得画像に対して前記表示用データに基づく前記キャラクタが配置されている拡張現実空間内の画像のうち、前記第2入力部により特定される位置に応じた視点からの画像を表示する視聴モード(ARモード)である。
(付記2)において、前記情報端末装置は撮像部(カメラ17)を備え、前記第2視聴モードは、前記撮像部により取得された取得画像に対して前記表示用データに基づく前記キャラクタが配置されている拡張現実空間内の画像のうち、前記第2入力部により特定される位置に応じた視点からの画像を表示する視聴モード(ARモード)である。
(付記4):
(付記1)から(付記3)のいずれかにおいて、前記表示用データは、ユーザの動作態様にかかわらない所定の視点(カメラオブジェクト630の視点と同じ視点)を特定するための視点情報を含み、前記複数種類の視聴モードは、前記表示用データに基づく仮想空間内の画像のうち前記視点情報に基づいて特定される所定の視点からの画像を表示する視聴モード(TVモード)を含む。
(付記1)から(付記3)のいずれかにおいて、前記表示用データは、ユーザの動作態様にかかわらない所定の視点(カメラオブジェクト630の視点と同じ視点)を特定するための視点情報を含み、前記複数種類の視聴モードは、前記表示用データに基づく仮想空間内の画像のうち前記視点情報に基づいて特定される所定の視点からの画像を表示する視聴モード(TVモード)を含む。
(付記5):
(付記1)から(付記4)のいずれかにおいて、前記キャラクタは、演者の動きに応じてリアルタイムに動作するキャラクタであり、前記所定の範囲は、所定位置から演者が移動可能な範囲として予め定められている範囲である。
(付記1)から(付記4)のいずれかにおいて、前記キャラクタは、演者の動きに応じてリアルタイムに動作するキャラクタであり、前記所定の範囲は、所定位置から演者が移動可能な範囲として予め定められている範囲である。
(付記6):
(付記1)から(付記4)のいずれかにおいて、前記キャラクタは、演者の動きに応じてリアルタイムに動作するキャラクタであり、前記所定の範囲は、演者の現在位置を基準とする予め定められた範囲である。
(付記1)から(付記4)のいずれかにおいて、前記キャラクタは、演者の動きに応じてリアルタイムに動作するキャラクタであり、前記所定の範囲は、演者の現在位置を基準とする予め定められた範囲である。
(付記7):
(付記1)から(付記6)のいずれかにおいて、前記所定の範囲は、前記視点が移動した場合に前記キャラクタの特定部位を表示可能となる位置を含む。
(付記1)から(付記6)のいずれかにおいて、前記所定の範囲は、前記視点が移動した場合に前記キャラクタの特定部位を表示可能となる位置を含む。
(付記8):
(付記1)から(付記7)のいずれかにおいて、前記第1視聴モードにおける所定の範囲と、前記第2視聴モードにおける所定の範囲とは、同一の範囲である。
(付記1)から(付記7)のいずれかにおいて、前記第1視聴モードにおける所定の範囲と、前記第2視聴モードにおける所定の範囲とは、同一の範囲である。
(付記9):
(付記1)から(付記7)のいずれかにおいて、前記第1視聴モードにおける所定の範囲は、前記第2視聴モードにおける所定の範囲よりも広い範囲に定められている。
(付記1)から(付記7)のいずれかにおいて、前記第1視聴モードにおける所定の範囲は、前記第2視聴モードにおける所定の範囲よりも広い範囲に定められている。
(付記10):
(付記1)から(付記9)のいずれかにおいて、前記第1視聴モードおよび前記第2視聴モードは、いずれも、前記表示部に表示される画像を視聴する同一のユーザからの前記入力部に対する入力態様に応じて移動される視点からの画像を表示する視聴モードである。
(付記1)から(付記9)のいずれかにおいて、前記第1視聴モードおよび前記第2視聴モードは、いずれも、前記表示部に表示される画像を視聴する同一のユーザからの前記入力部に対する入力態様に応じて移動される視点からの画像を表示する視聴モードである。
(付記11):
(付記1)から(付記10)のいずれかにおいて、前記キャラクタには、予め定められた特定のオブジェクトが関連付けられており、前記特定のオブジェクトの表示態様は、前記情報端末装置を所有するユーザからの要求の有無にかかわらず変更され、前記第2視聴モードである場合には、前記キャラクタに関連付けられている前記特定のオブジェクトを表示可能となる位置に視点を移動可能であり、前記第1視聴モードである場合には、前記キャラクタに関連付けられている前記特定のオブジェクトを表示可能となる位置に視点を移動不可能である。
(付記1)から(付記10)のいずれかにおいて、前記キャラクタには、予め定められた特定のオブジェクトが関連付けられており、前記特定のオブジェクトの表示態様は、前記情報端末装置を所有するユーザからの要求の有無にかかわらず変更され、前記第2視聴モードである場合には、前記キャラクタに関連付けられている前記特定のオブジェクトを表示可能となる位置に視点を移動可能であり、前記第1視聴モードである場合には、前記キャラクタに関連付けられている前記特定のオブジェクトを表示可能となる位置に視点を移動不可能である。
(付記12):
本開示に示す一実施形態のある局面によれば、プロセッサ、メモリ、入力部、および表示部を備える情報端末装置(ユーザ端末100)において実行される方法であって、前記情報端末装置が、キャラクタが配置されている仮想空間を表示するための表示用データ(動作指図データ)を受信するステップ(S26)と、前記仮想空間内において視点を移動させるための態様が異なる複数種類の視聴モードのうちのいずれかを特定するステップ(S81、S84、S103、S106)と、前記表示用データに基づく仮想空間内の画像のうち、前記特定するステップにより特定されている視聴モードに応じた態様で移動する視点からの画像を前記表示部に表示するステップ(S85~S87、S92、S93、S104、S105、S110、S111、S114)とを備え、前記複数種類の視聴モードは、ユーザからの前記入力部に対する入力態様に応じて視点を移動可能となる視聴モードとして、前記キャラクタが配置され得る所定の範囲内への視点の移動を規制し得る第1視聴モード(通常モード)と、前記キャラクタが配置され得る所定の範囲内への視点の移動を許容するが当該所定の範囲内に視点を移動させたときには前記キャラクタを非表示とし得る第2視聴モード(ARモード)とを含む。
本開示に示す一実施形態のある局面によれば、プロセッサ、メモリ、入力部、および表示部を備える情報端末装置(ユーザ端末100)において実行される方法であって、前記情報端末装置が、キャラクタが配置されている仮想空間を表示するための表示用データ(動作指図データ)を受信するステップ(S26)と、前記仮想空間内において視点を移動させるための態様が異なる複数種類の視聴モードのうちのいずれかを特定するステップ(S81、S84、S103、S106)と、前記表示用データに基づく仮想空間内の画像のうち、前記特定するステップにより特定されている視聴モードに応じた態様で移動する視点からの画像を前記表示部に表示するステップ(S85~S87、S92、S93、S104、S105、S110、S111、S114)とを備え、前記複数種類の視聴モードは、ユーザからの前記入力部に対する入力態様に応じて視点を移動可能となる視聴モードとして、前記キャラクタが配置され得る所定の範囲内への視点の移動を規制し得る第1視聴モード(通常モード)と、前記キャラクタが配置され得る所定の範囲内への視点の移動を許容するが当該所定の範囲内に視点を移動させたときには前記キャラクタを非表示とし得る第2視聴モード(ARモード)とを含む。
(付記13):
本開示に示す一実施形態のある局面によれば、情報端末装置(ユーザ端末100)であって、プログラムを記憶する記憶部と、前記プログラムを実行することにより、前記情報処理装置の動作を制御する制御部を備え、前記制御部は、キャラクタが配置されている仮想空間を表示するための表示用データ(動作指図データ)を受信するステップ(S26)と、前記仮想空間内において視点を移動させるための態様が異なる複数種類の視聴モードのうちのいずれかを特定するステップ(S81、S84、S103、S106)と、前記表示用データに基づく仮想空間内の画像のうち、前記特定するステップにより特定されている視聴モードに応じた態様で移動する視点からの画像を前記表示部に表示するステップ(S85~S87、S92、S93、S104、S105、S110、S111、S114)とを実行し、前記複数種類の視聴モードは、ユーザからの前記入力部に対する入力態様に応じて視点を移動可能となる視聴モードとして、前記キャラクタが配置され得る所定の範囲内への視点の移動を規制し得る第1視聴モード(通常モード)と、前記キャラクタが配置され得る所定の範囲内への視点の移動を許容するが当該所定の範囲内に視点を移動させたときには前記キャラクタを非表示とし得る第2視聴モード(ARモード)とを含む。
本開示に示す一実施形態のある局面によれば、情報端末装置(ユーザ端末100)であって、プログラムを記憶する記憶部と、前記プログラムを実行することにより、前記情報処理装置の動作を制御する制御部を備え、前記制御部は、キャラクタが配置されている仮想空間を表示するための表示用データ(動作指図データ)を受信するステップ(S26)と、前記仮想空間内において視点を移動させるための態様が異なる複数種類の視聴モードのうちのいずれかを特定するステップ(S81、S84、S103、S106)と、前記表示用データに基づく仮想空間内の画像のうち、前記特定するステップにより特定されている視聴モードに応じた態様で移動する視点からの画像を前記表示部に表示するステップ(S85~S87、S92、S93、S104、S105、S110、S111、S114)とを実行し、前記複数種類の視聴モードは、ユーザからの前記入力部に対する入力態様に応じて視点を移動可能となる視聴モードとして、前記キャラクタが配置され得る所定の範囲内への視点の移動を規制し得る第1視聴モード(通常モード)と、前記キャラクタが配置され得る所定の範囲内への視点の移動を許容するが当該所定の範囲内に視点を移動させたときには前記キャラクタを非表示とし得る第2視聴モード(ARモード)とを含む。
〔ソフトウェアによる実現例〕
ユーザ端末100、サーバ200、ゲームプレイ端末300(HMDセット1000)、および配信端末400の制御ブロック(特に制御部110、210、310、410)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
ユーザ端末100、サーバ200、ゲームプレイ端末300(HMDセット1000)、および配信端末400の制御ブロック(特に制御部110、210、310、410)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
後者の場合、ユーザ端末100、サーバ200、ゲームプレイ端末300(HMDセット1000)、および配信端末400は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
1 システム、2 ネットワーク、3、3A、3B ユーザ(第1ユーザ)、4 プレイヤ(演者)、10,20,30,40 プロセッサ、11,21,31,41 メモリ、12,22,32,42 ストレージ、13,23,33,43 通信IF、14,24,34,44 入出力IF、15,45 タッチスクリーン、17 カメラ、18 測距センサ、51 モニタ、52 注視センサ、53 第1カメラ、54 第2カメラ、55 マイク、56 スピーカ、100,100A,100B,100C ユーザ端末(コンピュータ、第1コンピュータ、第1情報処理装置)、110,210,310,410 制御部(第1制御部、第2制御部)、111,311,413 操作受付部、112,312,412 表示制御部、113,313 UI制御部、114,314 アニメーション生成部、115,315 ゲーム進行部、116,316 仮想空間制御部、117 動画再生部、120,220,320,420 記憶部(第1記憶部、第2記憶部)、131,231,331 ゲームプログラム(プログラム、第1プログラム)、132,232,332 ゲーム情報、133,233,333 ユーザ情報、151,451 入力部、152,452 表示部(ディスプレイ)、200 サーバ、211 通信仲介部、212 ログ生成部、213 リスト生成部、234,421 ユーザリスト、300 ゲームプレイ端末(外部装置、第2外部装置)、317 反応処理部、400 配信端末(外部、第1外部装置、コンピュータ、第2情報処理装置)、411 通信制御部、414 音声受付部、415 モーション特定部、416 動作指図データ生成部、422 モーションリスト、423 配信プログラム(プログラム、第2プログラム)、540,1020,1021 コントローラ、500 HMD、510 HMDセンサ、520 モーションセンサ、530 ディスプレイ、600A、600B 仮想空間、610 アバターオブジェクト(キャラクタ)、620A,620B 仮想カメラ、631,632,633,634 オブジェクト、640A,640B 視界領域、650,660 視界画像、671 敵オブジェクト、672,673 障害物オブジェクト、674 演出オブジェクト、691,692 発話、701,702,703A,70B,704A,704B,705,706,711,711A,711B,711C,711D,722,723,745,745A,745B,745C,752,762,763,930,2011、2022、2031、2032、2033、2034、2037、2038、2051、2063、2072、2073、2075 UI画像(メッセージUI、UI)、721 ダウンロード画面、731 ユーザリスト画面(リスト)、732,732A,732B,732C,742,742A,742B,742C レコード画像、733,733A,733B,733C ユーザ名、734,734A,734B,734C タグ情報、735,735A,735B,735C アイコン、741 モーションリスト画面(選択肢)、743,743A,743B,743C モーション名、744,744A,744B,744C,753 モーション画像、751 配信画面、761 配信完了画面、810A,810B モーション動画、820A,820B 発話音声、910A,910B 動画、920A,920B 音声、1000 HMDセット、1010 物体、1030 記憶媒体、2010 ホーム画面、2020 ランキング画面、2021 タイトル画像、2026,2026A,2026B 順位、2027,2027A,2027B 課金額、2028,2028A,2028B 送信回数、2029 送信済通知、2030 前回送信日、2035 詳細表示領域、2036 スクロールバー、2040 詳細画面、2050,2060 準備画面、2052 テキスト、2053、2061 選択画像、2054A、2054B、2054C、2062A,2062B,2062C,2062D,2062E,2062F 選択肢、2070 音声入力画面、2074 タグ画像
Claims (13)
- プロセッサ、メモリ、入力部、および表示部を備える情報端末装置において実行されるプログラムであって、
前記プロセッサに、
キャラクタが配置されている仮想空間を表示するための表示用データを受信するステップと、
前記仮想空間内において視点を移動させるための態様が異なる複数種類の視聴モードのうちのいずれかを特定するステップと、
前記表示用データに基づく仮想空間内の画像のうち、前記特定するステップにより特定されている視聴モードに応じた態様で移動する視点からの画像を前記表示部に表示するステップとを実行させ、
前記複数種類の視聴モードは、ユーザからの前記入力部に対する入力態様に応じて視点を移動可能となる視聴モードとして、前記キャラクタが配置され得る所定の範囲内への視点の移動を規制し得る第1視聴モードと、前記キャラクタが配置され得る所定の範囲内への視点の移動を許容するが当該所定の範囲内に視点を移動させたときには前記キャラクタを非表示とし得る第2視聴モードとを含む、プログラム。 - 前記入力部は、前記表示部に対する入力操作を特定する第1入力部と、前記情報端末装置の位置を特定する第2入力部とを含み、
前記第1視聴モードは、前記第1入力部により特定される操作態様に応じて視点を移動可能となる視聴モードであり、
前記第2視聴モードは、前記第2入力部により特定される位置に応じて視点を移動可能となる視聴モードである、請求項1に記載のプログラム。 - 前記情報端末装置は撮像部を備え、
前記第2視聴モードは、前記撮像部により取得された取得画像に対して前記表示用データに基づく前記キャラクタが配置されている拡張現実空間内の画像のうち、前記第2入力部により特定される位置に応じた視点からの画像を表示する視聴モードである、請求項2に記載のプログラム。 - 前記表示用データは、ユーザの動作態様にかかわらない所定の視点を特定するための視点情報を含み、
前記複数種類の視聴モードは、前記表示用データに基づく仮想空間内の画像のうち前記視点情報に基づいて特定される所定の視点からの画像を表示する視聴モードを含む、請求項1~請求項3のいずれかに記載のプログラム。 - 前記キャラクタは、演者の動きに応じてリアルタイムに動作するキャラクタであり、
前記所定の範囲は、所定位置から演者が移動可能な範囲として予め定められている範囲である、請求項1~請求項4のいずれかに記載のプログラム。 - 前記キャラクタは、演者の動きに応じてリアルタイムに動作するキャラクタであり、
前記所定の範囲は、演者の現在位置を基準とする予め定められた範囲である、請求項1~請求項4のいずれかに記載のプログラム。 - 前記所定の範囲は、前記視点が移動した場合に前記キャラクタの特定部位を表示可能となる位置を含む、請求項1~請求項6のいずれかに記載のプログラム。
- 前記第1視聴モードにおける所定の範囲と、前記第2視聴モードにおける所定の範囲とは、同一の範囲である、請求項1~請求項7のいずれかに記載のプログラム。
- 前記第1視聴モードにおける所定の範囲は、前記第2視聴モードにおける所定の範囲よりも広い範囲に定められている、請求項1~請求項7のいずれかに記載のプログラム。
- 前記第1視聴モードおよび前記第2視聴モードは、いずれも、前記表示部に表示される画像を視聴する同一のユーザからの前記入力部に対する入力態様に応じて移動される視点からの画像を表示する視聴モードである、請求項1~請求項9のいずれかに記載のプログラム。
- 前記キャラクタには、予め定められた特定のオブジェクトが関連付けられており、
前記特定のオブジェクトの表示態様は、前記情報端末装置を所有するユーザからの要求の有無にかかわらず変更され、
前記第2視聴モードである場合には、前記キャラクタに関連付けられている前記特定のオブジェクトを表示可能となる位置に視点を移動可能であり、
前記第1視聴モードである場合には、前記キャラクタに関連付けられている前記特定のオブジェクトを表示可能となる位置に視点を移動不可能である、請求項1~請求項10のいずれかに記載のプログラム。 - プロセッサ、メモリ、入力部、および表示部を備える情報端末装置において実行される方法であって、
前記情報端末装置が、
キャラクタが配置されている仮想空間を表示するための表示用データを受信するステップと、
前記仮想空間内において視点を移動させるための態様が異なる複数種類の視聴モードのうちのいずれかを特定するステップと、
前記表示用データに基づく仮想空間内の画像のうち、前記特定するステップにより特定されている視聴モードに応じた態様で移動する視点からの画像を前記表示部に表示するステップとを備え、
前記複数種類の視聴モードは、ユーザからの前記入力部に対する入力態様に応じて視点を移動可能となる視聴モードとして、前記キャラクタが配置され得る所定の範囲内への視点の移動を規制し得る第1視聴モードと、前記キャラクタが配置され得る所定の範囲内への視点の移動を許容するが当該所定の範囲内に視点を移動させたときには前記キャラクタを非表示とし得る第2視聴モードとを含む、方法。 - 情報端末装置であって、
プログラムを記憶する記憶部と、前記プログラムを実行することにより、前記情報処理装置の動作を制御する制御部を備え、
前記制御部は、
キャラクタが配置されている仮想空間を表示するための表示用データを受信するステップと、
前記仮想空間内において視点を移動させるための態様が異なる複数種類の視聴モードのうちのいずれかを特定するステップと、
前記表示用データに基づく仮想空間内の画像のうち、前記特定するステップにより特定されている視聴モードに応じた態様で移動する視点からの画像を前記表示部に表示するステップとを実行し、
前記複数種類の視聴モードは、ユーザからの前記入力部に対する入力態様に応じて視点を移動可能となる視聴モードとして、前記キャラクタが配置され得る所定の範囲内への視点の移動を規制し得る第1視聴モードと、前記キャラクタが配置され得る所定の範囲内への視点の移動を許容するが当該所定の範囲内に視点を移動させたときには前記キャラクタを非表示とし得る第2視聴モードとを含む、情報端末装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021008697A JP2022112769A (ja) | 2021-01-22 | 2021-01-22 | プログラム、方法、および情報端末装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021008697A JP2022112769A (ja) | 2021-01-22 | 2021-01-22 | プログラム、方法、および情報端末装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022112769A true JP2022112769A (ja) | 2022-08-03 |
JP2022112769A5 JP2022112769A5 (ja) | 2024-01-29 |
Family
ID=82656958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021008697A Pending JP2022112769A (ja) | 2021-01-22 | 2021-01-22 | プログラム、方法、および情報端末装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022112769A (ja) |
-
2021
- 2021-01-22 JP JP2021008697A patent/JP2022112769A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022202126A1 (ja) | プログラム、方法、および情報処理装置 | |
JP6776400B1 (ja) | プログラム、方法、および情報端末装置 | |
JP7286588B2 (ja) | ゲームプログラム | |
JP7344189B2 (ja) | 視聴プログラム、視聴方法、および情報端末装置 | |
JP6776393B2 (ja) | 視聴プログラム、視聴方法、および情報端末装置 | |
WO2021039346A1 (ja) | プログラム、方法、および情報処理端末 | |
JP7479219B2 (ja) | プログラム、方法、および端末装置 | |
WO2021039347A1 (ja) | プログラム、方法、および端末装置 | |
KR20220024630A (ko) | 게임 프로그램, 게임 방법, 및 단말 장치 | |
JP2020156739A (ja) | ゲームプログラム、ゲーム方法、および情報端末装置 | |
WO2020262332A1 (ja) | ゲームプログラム、ゲーム方法、および情報端末装置 | |
JP6813618B2 (ja) | 視聴プログラム、視聴方法、視聴端末、配信プログラム、配信方法、および情報端末装置 | |
JP7332562B2 (ja) | プログラム、方法、および情報端末装置 | |
JP2023016813A (ja) | プログラム、方法、およびコンピュータ | |
JP7135058B2 (ja) | プログラム、方法、および端末装置 | |
JP6776425B1 (ja) | プログラム、方法、および配信端末 | |
JP6818106B1 (ja) | プログラム、方法、および視聴端末 | |
JP6776409B1 (ja) | プログラム、方法、および端末装置 | |
JP7191181B2 (ja) | プログラム、方法、および情報端末装置 | |
JP2022112769A (ja) | プログラム、方法、および情報端末装置 | |
JP7377790B2 (ja) | ゲームプログラム、ゲーム方法、および情報端末装置 | |
JP7336429B2 (ja) | ゲームプログラム | |
JP7315613B2 (ja) | プログラム、および情報処理システム | |
JP2021053401A (ja) | プログラム、方法、および配信端末 | |
JP2021053455A (ja) | プログラム、方法、および視聴端末 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240119 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240119 |