以下、この技術的思想の実施の形態について図面を参照しながら詳細に説明する。以下の説明では、同一の要素には同一の符号を付し、重複する説明を適宜省略する。本開示において示される1以上の実施形態において、各実施形態が含む要素を互いに組み合わせることができ、かつ、当該組み合わせられた結果物も本開示が示す実施形態の一部をなすものとする。
(システムの構成)
図1は、本実施の形態に従うシステム1の構成を示す図である。システム1は、例えば、現実世界で実施される所定のレースを、ユーザが使用する情報処理装置上において仮想オブジェクトを用いた仮想レースとして表示することが可能なものである。本明細書において、「所定のレース」とは、現実世界で実施されるレースであれば特に制限はされず、例えば、ボートレース(本番のレースや、展示レース)、競馬、競輪、オートレース、F1等のカーレース、ドローンレース、ドッグレース、マラソン、駅伝などが挙げられる。
図1に示すように、システム1は、各ユーザが使用する情報処理装置(第1コンピュータ)であるユーザ端末10A、ユーザ端末10B及びユーザ端末10C(以下、ユーザ端末10A、10B、10Cなどのユーザ端末を総称して「ユーザ端末10」とも称する)など複数のユーザ端末10と、第1サーバ装置(第2コンピュータ)20と、第2サーバ装置40と、ネットワーク30と、を含む。
ユーザ端末10Aとユーザ端末10Bとは、無線基地局31と通信することにより、ネットワーク30と接続する。ユーザ端末10Cは、家屋などの施設に設置される無線ルータ32と通信することにより、ネットワーク30と接続する。ユーザ端末10は、例えば、タッチスクリーンを備える携帯型端末であり、スマートフォン、ファブレット、タブレットなどでありうる。
ユーザ端末10は、例えば、アプリ等を配信するプラットフォームを介してインストールされたプログラム、又は、予めプリインストールされているウェブサイト閲覧用ソフトウエアなどを含むプログラムを実行する。ユーザ端末10は、上記プログラムの実行により、第1サーバ装置20と通信し、所定のレースに関連するデータやユーザに関連するデータ等を第1サーバ装置20との間で送受信することにより、ユーザ端末10上で仮想レースを表示することを可能とする。
第1サーバ装置20は、所定のレースに関連するデータを、第2サーバ装置40から受信する。第1サーバ装置20は、所定のレースに関連するデータを、適宜、ユーザ端末10へ送信する。第1サーバ装置20は、所定のレースに関連するデータや、各ユーザに関連するデータを記憶して管理する。
第1サーバ装置20は、ハードウェア構成として、通信IF(Interface)22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ(第2プロセッサ)29と、を備え、これらが通信バスを介して互いに接続されている。
通信IF22は、例えばLAN(Local Area Network)規格など各種の通信規格に対応しており、ユーザ端末10や第2サーバ装置40などとの間でデータを送受信するためのインタフェースとして機能する。
入出力IF23は、第1サーバ装置20への情報の入力を受け付けるとともに、第1サーバ装置20の外部へ情報を出力するためのインタフェースとして機能する。入出力IF23は、マウス、キーボード等の情報入力機器の接続を受け付ける入力受付部と、画像等を表示するためのディスプレイ等の情報出力機器の接続を受け付ける出力部とを含みうる。
メモリ25は、処理に使用されるデータ等を記憶するための記憶装置である。メモリ25は、例えば、プロセッサ29が処理を行う際に一時的に使用するための作業領域をプロセッサ29に提供する。メモリ25は、ROM(Read Only Memory)、RAM(Random
Access Memory)等の記憶装置を含んで構成されている。
ストレージ26は、プロセッサ29が読み込んで実行するための各種プログラム及びデータを記憶するための記憶装置である。ストレージ26が記憶する情報には、所定のレースに関連するデータ(移動体の識別情報や色情報を含む)や、各ユーザに関連するデータ等が含まれる。ストレージ26は、HDD(Hard Disk Drive)、フラッシュメモリ等の記憶装置を含んで構成されうる。なお、ストレージは、サーバ装置に含まれる形態に限られず、クラウドサービスを利用することもできる。
プロセッサ29は、ストレージ26に記憶されるプログラム等を読み込んで実行することにより、第1サーバ装置20の動作を制御する。プロセッサ29は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics
Processing Unit)等を含んで構成されうる。
第2サーバ装置40は、所定のレースに関連するデータを記憶して管理している。第2サーバ装置40は、例えば、所定のレースの開催者が管理するサーバ装置や、所定のレースに関する情報を外部へ発信する団体(レース専門誌の発行者、レースの映像配信者又はラジオ配信者など)が管理するサーバ装置である。第2サーバ装置40は、所定のレースに関連するデータを、適宜、第1サーバ装置20へ送信する。ある局面においては、第2サーバ装置40は、所定のレースに関連するデータをユーザ端末10へ送信してもよい。第2サーバ装置40のハードウェア構成は、矛盾の生じない範囲で、第1サーバ装置20と同様であってもよい。第2サーバ装置40は、複数あってもよい。
(ユーザ端末)
図2は、ユーザ端末10の機能的な構成の一例を示すブロック図である。図2に示すように、ユーザ端末10は、アンテナ110と、無線通信IF120と、タッチスクリーン130と、入出力IF140と、記憶部150と、音声処理部160と、マイク161と、スピーカ162と、撮像部170と、制御部(第1プロセッサ)190と、を含む。
アンテナ110は、ユーザ端末10が発する信号を電波として空間へ放射する。また、アンテナ110は、空間から電波を受信して受信信号を無線通信IF120へ与える。
無線通信IF120は、ユーザ端末10が他の通信機器と通信するため、アンテナ110等を介して信号を送受信するための変復調処理などを行う。無線通信IF120は、チューナー、高周波回路などを含む無線通信用の通信モジュールであり、ユーザ端末10が送受信する無線信号の変復調や周波数変換を行い、受信信号を制御部190へ与える。
タッチスクリーン130は、ユーザからの入力を受け付けて、ユーザに対し情報をディスプレイ132に出力する。タッチスクリーン130は、ユーザの操作入力を受け付けるためのタッチパネル131と、ディスプレイ132と、を含む。タッチパネル131は、例えば、静電容量方式のものを用いることによって、ユーザの指などが接近したことを検出する。ディスプレイ132は、例えばLCD(Liquid Crystal Display)、有機EL(electroluminescence)その他の表示装置によって実現される。
入出力IF140は、ユーザ端末10への情報の入力を受け付けるとともに、ユーザ端末10の外部へ情報を出力するためのインタフェースとして機能する。
記憶部150は、フラッシュメモリ、HDD等により構成され、ユーザ端末10が使用するプログラム、及び、ユーザ端末10が第1サーバ装置20等から受信する各種データ等を記憶する。
音声処理部160は、音声信号の変復調を行う。音声処理部160は、マイク161から与えられる信号を変調して、変調後の信号を制御部190へ与える。また、音声処理部160は、音声信号をスピーカ162へ与える。音声処理部160は、例えば、音声処理用のプロセッサによって実現される。マイク161は、音声信号の入力を受け付けて制御部190へ出力するための音声入力部として機能する。スピーカ162は、音声信号を、ユーザ端末10の外部へ出力するための音声出力部として機能する。
撮像部170は、ユーザ端末10の周囲の現実画像を撮像するカメラである。撮像部170によって撮像された画像は、制御部190によって画像処理がなされ、ディスプレイ132へ出力される。
制御部190は、記憶部150に記憶されるプログラムを読み込んで実行することにより、ユーザ端末10の動作を制御する。制御部190は、例えば、アプリケーションプロセッサによって実現される。
制御部190がアプリケーションプログラム151を実行する処理について、より詳細に説明する。記憶部150は、アプリケーションプログラム151と、アプリケーション情報152と、ユーザ情報153と、を記憶する。
ユーザ端末10は、例えば、第1サーバ装置20からアプリケーションプログラム151をダウンロードして記憶部150に記憶させる。また、ユーザ端末10は、第1サーバ装置20と通信することで、アプリケーション情報152及びユーザ情報153等の各種のデータを第1サーバ装置20と送受信する。
アプリケーションプログラム151は、ユーザ端末10において仮想レースを表示するためのプログラムである。アプリケーション情報152は、アプリケーションプログラム151が参照する各種のデータを含む。アプリケーション情報152は、第1情報152Aと、イベント情報152Bと、を含む。
第1情報152Aは、第1サーバ装置20や第2サーバ装置40から送信された所定のレースに関する情報である。第1情報152Aとしては、例えば、所定のレースの出場者又は移動体(以下、「出場者等」とも称する)のレースタイムを示すレースタイム情報、所定のレースの実施中における出場者等の位置情報、当該位置情報に対応する時間情報と、が含まれる。第1情報には、さらに、出場者等の識別情報と、当該識別情報に対応付けられた色情報と、後述の移動オブジェクトにおける色登録の位置を指定するための色位置情報とが含まれる。
本明細書において、「出場者」とは、人間だけでなく、馬や犬などの動物も含む概念である。また、「移動体」とは、所定のレースにおいて移動の主体となるものであり、出場者が乗る動物や機体、出場者が遠隔操縦する機体などである。マラソンやドッグレース等では、「出場者」と「移動体」は同一となる。
第1情報152Aとしては、上記の他にも、例えば、所定のレースの名称、開催日時、レース場データ、出場者データ、移動体データ、オッズ情報、レース予想、レース出走表、レース直前情報、ピットレポート、レース結果、レース動画、レース静止画、過去のレース情報、その他の所定のレースに関する情報誌や情報サイトに掲載されうるような情報などを含んでもよい。
イベント情報152Bは、所定のレースにおいて発生しうる又は発生したイベントに関する情報であり、例えば、そのイベントに対応する演出表示(エフェクト表示)や演出音に関する情報が含まれる。
イベントとしては、特に制限はされないが、例えば、先頭の出場者等のゴール到達、所定のレースの順位確定、出場者等の順位の入れ替わり、所定のタイミングにおいて2以上の出場者等の位置の差が所定の閾値以下になること(2以上の出場者等が接戦をすること)、ルール違反の発生のうちの1以上であってもよい。イベント情報152Bは、本例では、所定のレースにおいてイベントが発生した後に第1サーバ装置20から受信する情報である。
また、イベント情報152Bには、例えば、所定のイベントに対応する二次元画像又は三次元画像に関する情報が含まれる。具体的には、イベント情報152Bには、イベントの内容を報知するテキスト画像や、所定のキャラクタ画像、後述の仮想オブジェクトに付加するエフェクト画像等に関する情報が含まれうる。
ユーザ情報153は、ユーザ端末10のユーザについての情報を含む。ユーザ情報153は、例えば、ユーザを識別する情報、ユーザ端末10の位置情報、ユーザのレース購入履歴や的中率(例えば、ボートレースであれば購入した舟券の履歴と、購入した舟券の的中率)などを含んでもよい。
制御部190は、アプリケーションプログラム151を読み込んで実行することにより、操作入力受付部191と、送受信部192と、レース属性選択部193と、オブジェクト生成部194と、識別番号付与部195と、色情報登録部196と、表示制御部197と、平坦面検出部198Aと、イベント検出部198Bと、選択情報取得部199と、の各機能を発揮する。
操作入力受付部191は、タッチスクリーン130の出力に基づいて、ユーザの操作入力を受け付ける。具体的には、操作入力受付部191は、ユーザの指などがタッチパネル131に接触又は接近したことを、タッチスクリーン130を構成する面の横軸及び縦軸からなる座標系の座標として検出する。
操作入力受付部191は、タッチスクリーン130に対するユーザの操作を判別する。操作入力受付部191は、例えば、「接近操作」、「リリース操作」、「タップ操作」、「ダブルタップ操作」、「長押し操作(ロングタッチ操作)」、「ドラッグ操作(スワイプ操作)」、「ムーブ操作」、「フリック操作」、「ピンチイン操作」、「ピンチアウト操作」などのユーザの操作を判別する。
操作入力受付部191は、ユーザ端末10に搭載された加速度センサ等によって検出されるユーザ端末10の動きを、操作入力として受け付けてもよい。
送受信部192は、無線通信IF120及びネットワーク30を介して、第1サーバ装置20や第2サーバ装置40などの外部の通信機器と各種情報の送信及び受信を行う。送受信部192は、例えば、第1サーバ装置20又は第2サーバ装置40から第1情報152Aを受信する。また、送受信部192は、例えば、操作入力受付部191が受け付けた操作入力に応じた情報や、ユーザ情報153に記憶された情報等を第1サーバ装置20又は第2サーバ装置40へと送信する。
レース属性選択部193は、操作入力受付部191が受け付けた操作入力に応じて、レース属性(具体的には、レースの種類)を選択する。レースの種類としては、上述の通り、例えば、ボートレース(本番のレースや、展示レース)、競馬、競輪、オートレース、F1等のカーレース、ドローンレース、ドッグレース、マラソン、駅伝などが挙げられる。
オブジェクト生成部194は、レース属性選択部193で選択された所定のレースに関する情報をユーザに提示するための仮想オブジェクトを、第1情報に基づいて生成する。オブジェクト生成部194は、仮想オブジェクトとして、レース場を表すレース場オブジェクトと、出場者等を表す移動オブジェクトと、を生成する。オブジェクト生成部194は、第1情報に基づいて生成される第2情報をテキスト表示するための仮想表示板を生成してもよい。オブジェクト生成部194は、上記の各オブジェクトの他にも、第1情報に基づいて生成される第2情報を画像表示するための仮想スクリーン、各種の建物オブジェクト、木などの景観を構成する景観オブジェクト、ユーザのアバターとなるオブジェクト等を生成してもよい。
識別番号付与部195は、オブジェクト生成部194により生成された移動オブジェクトのそれぞれに識別番号を付与する。識別番号付与部195は、レースの属性により異なる移動オブジェクトの台数に応じて、移動オブジェクトの配置順(例えば、枠順)に識別番号を付与する。
色情報登録部196は、レース属性選択部193で選択された所定のレースにおける出場者等の色情報を取得する。色情報登録部196は、さらに取得した色情報を、識別番号付与部195により各移動オブジェクトに付与された識別番号に対応付けて、移動オブジェクトへの色登録を実行する。例えば、色情報登録部196は、第2サーバ装置40から受信した第1情報152Aから識別情報と色情報を取得し、取得した識別情報と色情報とに基づいて、識別番号付与部195により識別番号が付与された各移動オブジェクトの所定部分に所定の色を登録する。
表示制御部197は、撮像部170により撮像されたユーザ端末10の周囲の現実画像に、オブジェクト生成部194により生成された仮想オブジェクトを重畳させた画像(以下、「重畳画像」とも称する)を、ディスプレイ132上に表示させる。表示制御部197は、第1情報152Aに含まれるレースタイム情報に基づいて、色情報登録部196により所定部分が着色された各移動オブジェクトをレース場オブジェクト上において移動させ、所定のレースを仮想的に再現した仮想レースをディスプレイ132上に表示させる。表示制御部197は、レースタイム情報に加えて、第1情報152Aに含まれる出場者等の位置情報、及び当該位置情報に対応する時間情報に基づいて、仮想レースを再現するものであることが好ましい。
表示制御部197は、操作入力受付部191が受け付けた操作入力に応じて、重畳画像における視点を変更可能であることが好ましい。表示制御部197は、操作入力受付部191が受け付けた操作入力に応じて、ディスプレイ132に各種のメニュー画面やGUI(Graphical User Interface)を表示させたり、ディスプレイ132の表示内容を変更したりする。
また、表示制御部197は、イベント検出部198Bがイベントの発生を検出したことに応じて、該イベントに対応する演出表示をする。演出表示の内容としては、特に制限はされないが、例えば、レース場オブジェクト及び移動オブジェクトの少なくとも一方へのエフェクト表示であってもよく、所定のイベントに対応する二次元画像又は三次元画像の表示、所定のキャラクタ画像の表示、これらの画像をレース進行に応じて動作させることのうちの1以上であってもよい。表示制御部197は、異なるイベントに対応する2以上の演出表示を同時に実行してもよい。
平坦面検出部198Aは、撮像部170により撮像された現実画像内における平坦面を検出する。平坦面の検出は、従来公知の画像認識技術によって実現される。例えば、平坦面検出部198Aが検出した平坦面を選択する操作をユーザが行った場合、当該平坦面にレース場オブジェクトが配置された重畳画像がディスプレイ132に表示される。
平坦面は、水平面であることが好ましい。また、平坦面とレース場オブジェクトを構成する底面とのなす角度は0度であってもよいが、鋭角であることが好ましく、例えば、15度~45度の範囲にすることができる。上記角度は、ユーザの操作を受け付けて調節する態様とすることもできる。また、現実世界の平坦面の一部に凸部がある場合や、当該平坦面に載置物がある場合であっても、当該凸部や当該載置物がレース場オブジェクトによって隠れる程度のサイズならば、レース場オブジェクトを配置可能は平坦面として検出してもよい。
イベント検出部198Bは、所定のレースにおける所定のイベントの発生を検出する。イベント検出部198Bは、例えば、現実世界の所定のレースにおいて所定のイベントが発生した場合に第1サーバ装置20から送信されるイベント情報292Bを送受信部192が受信したことに基づいて、所定のイベントの発生を検出する。
また、イベント検出部198Bは、例えば、第1情報152Aやユーザ情報153に基づいて、所定のイベントの発生を検出してもよい。イベント検出部198Bは、具体的には、出場者等の位置情報と当該位置情報に対応する時間情報とに基づいて、出場者等の順位の入れ替わり等のレース中の出場者等の位置から判断可能なイベントを検出しうる。イベント検出部198Bは、例えば、レース結果に関する情報と、ユーザのレース購入履歴に関する情報とに基づいて、ユーザの購入した出場者等がレースの先頭に位置する等のイベントを検出しうる。
選択情報取得部199は、ユーザが選択した1以上の出場者等を示す1以上の選択情報を取得する。「選択情報」とは、例えば、所定のレースの勝者等としてユーザが予想した出場者等を示す情報である。所定のレースがボートレースや競馬である場合、「選択情報」は、ユーザが購入した舟券や馬券を示す情報でありうる。
選択情報取得部199は、例えば、出場者等を選択するための画面上でのユーザの操作入力に基づいて、選択情報を取得する。選択情報取得部199が取得した選択情報は、例えば、第1サーバ装置20又は第2サーバ装置40へ送信される。所定のレースがボートレースや競馬である場合、選択情報が第2サーバ装置40へ送信されたことに応じて、舟券や馬券の購入処理がなされうる。
(第1サーバ装置)
図3は、第1サーバ装置20の機能的な構成を示すブロック図である。図3を参照して、第1サーバ装置20の詳細な構成を説明する。第1サーバ装置20は、プログラムに従って動作することにより、通信部220と、記憶部250と、制御部290としての機能を発揮する。
通信部220は、第1サーバ装置20がユーザ端末10や第2サーバ装置40などの外部の通信機器とネットワーク30を介して通信するためのインタフェースとして機能する。
記憶部250は、システム1を実現するための各種プログラム及びデータを記憶する。ある局面において、記憶部250は、プログラム251と、レース情報252と、ユーザ情報253とを記憶する。
プログラム251は、第1サーバ装置20がユーザ端末10や第2サーバ装置40と通信して、システム1を実現するためのプログラムである。プログラム251は、制御部290に実行されることにより、ユーザ端末10や第2サーバ装置40とデータを送受信する処理、ユーザ端末10のユーザが行った操作内容に応じた処理、レース情報252やユーザ情報253を更新する処理などを第1サーバ装置20に行わせる。
レース情報252は、所定のレースに関連する各種のデータを含む。レース情報252は、例えば、第1情報252Aとイベント情報252Bとを含む。第1情報252Aは、第1情報152Aの元となる情報であり、第1情報152Aは、第1情報252Aの一部でありうる。第1情報252Aは、例えば、第2サーバ装置40から取得された情報である。同様に、イベント情報252Bは、イベント情報152Bの元となる情報であり、イベント情報152Bは、イベント情報252Bの一部でありうる。イベント情報252Bは、例えば、第2サーバ装置40から取得された情報である。
ユーザ情報253は、ユーザ端末10のユーザについての情報である。ユーザ情報253は、ユーザ管理テーブル253Aを含む。ユーザ管理テーブル253Aは、例えば、ユーザを識別する情報、ユーザ端末10の位置情報、ユーザのレース購入履歴や的中率などをユーザ毎に記憶している。
制御部290は、プロセッサ29によって実現され、プログラム251を実行することにより、送受信部291、第1情報取得部292A、イベント情報取得部292B、選択情報取得部293、データ管理部294、計時部295としての機能を発揮する。
送受信部291は、通信部220及びネットワーク30を介して、ユーザ端末10や第2サーバ装置40などの外部の通信機器と各種情報の送信及び受信を行う。送受信部291は、例えば、第1情報252A及びイベント情報252Bの少なくとも一部をユーザ端末10へ送信する。また、送受信部291は、例えば、第1情報252A及びイベント情報252Bを第2サーバ装置40から受信する。
第1情報取得部292Aは、送受信部291を介して、第1情報252Aを第2サーバ装置40から取得する。イベント情報取得部292Bは、送受信部291を介して、イベント情報252Bを第2サーバ装置40から取得する。選択情報取得部293は、送受信部291を介して、ユーザの選択情報をユーザ端末10又は第2サーバ装置40から取得する。データ管理部294は、第1情報取得部292A、イベント情報取得部292B、選択情報取得部293等における処理結果に従って、記憶部250に記憶される各種データを更新する処理を行う。計時部295は、時間を計測する処理を行う。計時部295によって計測される時間に基づいて、ユーザ端末10に表示される各種時間(例えば、レース開始までの時間など)が制御されうる。
(動作例)
次に、図4から図13を参照して、システム1における動作例について説明する。以下では、所定のレースがボートレースである場合を例示して説明をするが、以下の説明は、所定のレースが他のレースであっても適用可能である。また、以下では、ユーザ端末10と第1サーバ装置20の間、及び第1サーバ装置20と第2サーバ装置40の間でデータの送受信を行うものとして説明をするが、ある局面においては、ユーザ端末10と第2サーバ装置40とで直接的にデータの送受信をするように構成してもよい。
図4は、現実世界のボートレース場の一例を示す模式図である。ボートレース場401には、2つのターンマーク403が設置されており、各ボートレーサーが乗るボート402a~402fによるレースが実施されている。レースが終了した場合、ボート402a~402fそれぞれのレースタイムを示すレースタイム情報が、第2サーバ装置40から第1サーバ装置20へと送信され、第1サーバ装置20からユーザ端末10へと送信される。
ボートレース場401には、撮像装置(カメラ)404a~404bが設けられている。撮像装置404aは、ボートレース場401の上方からボート402a~402fを視界に収める。撮像装置404bは、ボートレース場401の側方からボート402a~402fを視界に収める。撮像装置404a~404bによって撮像されたボート402a~402fの画像は、第2サーバ装置40へ送信される。第2サーバ装置40では、例えば、各画像の画像解析を行い、各画像の撮影時間におけるボート402a~402fそれぞれの位置を示す位置情報を算出する。算出された位置情報と、当該位置情報に対応する撮影時間に関する時間情報は、第1サーバ装置20へと送信され、第1サーバ装置20からユーザ端末10へと送信される。なお、位置情報の算出は、第1サーバ装置20において実施してもよい。
また、撮像装置404a~404bに代えて、又は加えて、ボート402a~402fに、GPSセンサ等の位置センサを設置してもよい。位置センサによって取得されたボート402a~402fの位置情報と、当該位置情報が取得された時間を示す時間情報とは、最終的にユーザ端末10へと送信される。
図5は、ユーザ端末10に表示される仮想オブジェクトの一例を示す模式図である。図5の例では、仮想オブジェクトとして、レース場オブジェクト501と、移動オブジェクト502a~502fと、2つのターンマークオブジェクト503と、仮想表示板505と、が示されている。
レース場オブジェクト501は、ボートレース場401を仮想的に表示したオブジェクトである。レース場オブジェクト501やターンマークオブジェクト503は、例えば、ボートレース場401のコース情報等のレース場データに基づいて作製されることが好ましく、ボートレース場401と対応する形状であることが好ましい。
移動オブジェクト502a~502fは、ボート402a~402fをそれぞれ仮想的に表示したオブジェクトであり、ボートを模した形状である。移動オブジェクト502a~502fは、レースタイム情報や、ボート402a~402fの位置情報及び当該位置情報に対応する時間情報に基づいて、レース場オブジェクト501を移動する。すなわち、レース場オブジェクト501及び移動オブジェクト502a~502fによって、現実世界のレースが仮想的なレースとしてユーザ端末10上で表示される。
ボート402a~402fをそれぞれ仮想的に表示したものである移動オブジェクト502a~502fは、色情報登録部196により、所定の位置に現実世界のボート402a~402fと一致した着色がなされた状態でユーザ端末10上に表示される。図4及び図5で示すように、移動オブジェクト502aは現実世界のボート402a(1号艇)と同様に白色で着色され、移動オブジェクト502bは現実世界のボート402b(2号艇)と同様に黒色で着色され、移動オブジェクト502cは現実世界のボート402c(3号艇)と同様に赤色で着色され、移動オブジェクト502dは現実世界のボート402d(4号艇)と同様に青色で着色され、移動オブジェクト502eは現実世界のボート402e(5号艇)と同様に黄色で着色され、移動オブジェクト502fは現実世界のボート402f(6号艇)と同様に緑色で着色される。
なお、ボート402a~402fの位置情報及び時間情報がなくとも、レースタイム情報のみによって仮想レースを表示することも可能である。ただ、この場合、最終的な着順は現実世界のレースと同じものになるが、レース中の順位などのレース経過を再現することが困難である。
仮想表示板505は、テキスト情報を表示するオブジェクトである。仮想表示板505は、例えば、ボートレース場401において対応する存在のないオブジェクトである。仮想表示板505に表示するテキスト情報は、特に制限はされず、例えば、順位情報やオッズ情報等であってもよい。また、仮想表示板505に表示するテキスト情報は、ユーザの操作入力に基づいて変更可能であってもよい。
図6及び図7は、表示制御処理の一例を示すフローチャートである。なお、以下で説明するフローチャートを構成する各処理の順序は、処理内容に矛盾や不整合が生じない範囲で順不同である。また、各装置が実行する処理は、矛盾の生じない範囲で、他の装置によって実行されてもよい。
図6及び図7に示される処理は、制御部190がアプリケーションプログラム151を、制御部290がプログラム251をそれぞれ実行することにより実現される。
まず、ステップS610において、制御部190は、ユーザの操作入力に基づいて、仮想オブジェクトとしてユーザ端末10上に表示すべきレースの種類(レース属性)を選択する。図8は、アプリケーションプログラム151を実行することによりユーザ端末10上に表示されるレース選択画面800を示す図である。図8に示すように、レース選択画面800には、アプリケーションプログラム151により仮想レースをユーザ端末10上に表示可能な複数種のレース(例えば、ボートレース、競馬、競輪、オートレース)に対応する複数の選択ボタン801a~801dが含まれる。ユーザが、レース選択画面800に表示される複数の選択ボタン801a~801dのいずれかに対して操作入力を行っ
たことに基づき、制御部190は、レースの種類を選択する。
ステップS620において、制御部190は、選択されたレースの種類に応じて、仮想オブジェクトとしてレース場オブジェクトを生成する。本例では、例えば、ユーザがボートレースに対応する選択ボタン801aを選択したことに基づいて、ボートレースのレース場オブジェクトが生成される。
ステップS630において、制御部190は、選択されたレースの種類に応じて、仮想オブジェクトとして移動オブジェクトを生成する。本例では、ユーザがボートレースに対応する選択ボタン801aを選択したことに基づいて、ボートレースの複数のボート402a~402fにそれぞれ対応する複数の移動オブジェクト502a~502fが生成される。
ステップS640において、制御部190は、生成された複数の移動オブジェクト502a~502fごとに識別番号を付与する。具体的には、制御部190は、現実世界のボートレースにおける1号艇から6号艇までのボート402a~402fに対応させて、移動オブジェクト502a~502fのそれぞれに識別番号を付与する。
ステップS650において、制御部190は、移動オブジェクト502a~502fに付与された識別番号と色情報とを対応付ける。具体的には、制御部190は、現実世界のボートレースにおける1号艇から6号艇までの指定色と一致する色情報を各移動オブジェクト502a~502fの識別番号と対応付ける。制御部190は、オブジェクト生成部194により生成された複数の移動オブジェクト502a~502fが現実世界のボートレースのボート402a~402fに対応するオブジェクトであることに基づいて、現実世界のボートレースにおける1号艇から6号艇までの指定色と一致する色情報を各移動オブジェクト502a~502fの識別番号と対応付ける。
上述の通り、現実世界のボートレースでは枠番に応じて、1号艇の指定色が白色、2号艇の指定色が黒色、3号艇の指定色が赤色、4号艇の指定色が青色、5号艇の指定色が黄色、6号艇の指定色が緑色と規定されている。そこで、制御部190は、1号艇のボート402aに対応する移動オブジェクト502aの識別番号に白色の色情報を対応付け、2号艇のボート402bに対応する移動オブジェクト502bの識別番号に黒色の色情報を対応付け、3号艇のボート402cに対応する移動オブジェクト502cの識別番号に赤色の色情報を対応付ける。さらに、制御部190は、4号艇のボート402dに対応する移動オブジェクト502dの識別番号に青色の色情報を対応付け、5号艇のボート402eに対応する移動オブジェクト502eの識別番号に黄色の色情報を対応付け、6号艇のボート402fに対応する移動オブジェクト502fの識別番号に緑色の色情報を対応付ける。
ステップS660において、制御部190は、移動オブジェクト502a~502fの識別番号と色情報との対応付けに基づいて、各移動オブジェクト502a~502fの指定箇所に色登録を行う。具体的には、制御部190は、そして、制御部190は、各移動オブジェクト502a~502fの識別番号に対応付けられた色情報及び第1情報に含まれる色位置情報に基づいて、各移動オブジェクト502a~502fの所定の位置に色登録を行う。すなわち、各移動オブジェクト502a~502fに対して、現実世界のボートの枠番に応じた色登録がなされる。
図9(a)は、ボートレースのボート及び選手(ボートレーサー)を模した移動オブジェクト502の一例を示す図であり、図9(b)は、競馬の競走馬及び選手(ジョッキー)を模した移動オブジェクト950の一例を示す図である。図9(a)に示すように、ボートレースの場合、色位置情報には、例えば、移動オブジェクト502のうちボート部分901の側面901A及び選手部分902のヘルメット902Aに色登録がなされることが含まれる。一方で、図9(b)に示すように、競馬の場合、色位置情報には、例えば、移動オブジェクト950のうち選手952の帽子952Aに色登録がなされることが含まれる。また、競走馬951のゼッケン951A及び勝負服952Bを色登録することも可能である。このように、第一情報に含まれる色位置情報は、レースの種類(属性)や移動オブジェクトの形状に応じて変更される。なお、色位置情報はユーザの操作入力により変更可能であってもよい。すなわち、ユーザが所望する移動オブジェクトの所定の位置に色登録がなされるようにユーザが色位置情報を選択・変更することができるようにしてもよい。
ステップS670において、制御部190は、カメラである撮像部170を起動する。撮像部170によって、ユーザ端末10の周囲の現実画像が撮像される。
ステップS680において、制御部190は、撮像部170によって撮像された画像内における平坦面を検出する。ステップS690において、制御部190は、検出した平坦面に仮想オブジェクトを配置する。
ここで、図10から図12を用いて、ステップS670、S680、及びS690の処理について具体的に説明する。図10は、撮像部170により撮像された現実画像の一例を示す模式図である。図10の例では、平坦なデスク1001上に、キーボード1002と、モニタ装置1003と、が置かれている。
ステップS670において撮像部170が起動されると、ディスプレイ132上に、撮像部170によって撮像されている現実画像が表示される。次に、ステップS680において、制御部190は、撮像部170によって撮像された画像内、すなわちディスプレイ132に表示された画像内における平坦面を検出する。
図10では、領域1004が平坦面として検出されている。領域1004内にはキーボード1002があるが、キーボード1002はレース場オブジェクト501によって隠れる程度のサイズなので、制御部190は、領域1004を平坦面として検出する。
図10に示す状態で、撮像部170によって撮像される位置を変更すれば、領域1004の位置も変更されうる。領域1004は、ディスプレイ132上において、例えば、所定の色を付加されて、他の部分とは区別可能に表示される。ユーザが領域1004に対してタップ操作等を実行した場合、ステップS690において、制御部190は、領域1004上にレース場オブジェクト501、移動オブジェクト502a~502f等の仮想オブジェクトを配置する。
図11は、現実画像に仮想オブジェクトを重畳させて表示した画面の一例を示す模式図である。図11において、モニタ装置1003を含むドットパターンを付した領域が現実画像であり、その他の領域は仮想オブジェクトが表示されている領域である。仮想オブジェクトが表示されていない領域には、例えば、広告画像を表示してもよい。
図11では、仮想オブジェクトとして、レース場オブジェクト501と、複数の移動オブジェクト502と、2つのターンマークオブジェクト503と、505と、大型モニタオブジェクト506と、建物オブジェクト507a~507bと、その他の符号を付していない多数のオブジェクト(木オブジェクト、時計オブジェクト等)と、が表示されている。これらのオブジェクトは、例えば、第1サーバ装置20から受信した第1情報152Aに基づいて作製される。
図12は、現実画像に仮想オブジェクトを重畳させて表示した画面の一例を示す模式図であり、図11に示すレース場オブジェクト501の別態様を示したものである。具体的には、図12は、所定のレースが競馬の場合の例である。
図12においても、モニタ装置1003を含むドットパターンを付した領域が現実画像であり、その他の領域は仮想オブジェクトが表示されている領域である。図12では、仮想オブジェクトとして、レース場オブジェクト511と、複数の移動オブジェクト512と、大型モニタオブジェクト513と、池オブジェクト514と、複数の木オブジェクト515と、がディスプレイ132に表示されている。これらのオブジェクトも、例えば、第1サーバ装置20から受信した第1情報152Aに基づいて作製される。
レース場オブジェクト511、大型モニタオブジェクト513、池オブジェクト514、及び複数の木オブジェクト515は、例えば、現実世界における所定の競馬場のコース情報等のレース場データに基づいて作製されることが好ましい。複数の移動オブジェクト512は、例えば、競馬に出走する馬および騎手をそれぞれ仮想的に表示したオブジェクトである。
次に、図7のステップS710において、制御部190は、現実世界のボートレース場401におけるボート402a~402fの位置情報を取得する。すなわち、現実世界においてボート402a~402fによるレースが開始された場合、制御部190は、第1サーバ装置20から、ボート402a~402fの位置情報及び時間情報を取得する。位置情報及び時間情報の取得方法は、図4を用いて説明したとおりである。
ステップS720において、制御部190は、ステップS710において取得した位置情報と移動オブジェクトとが連動するよう制御する。具体的には、時間情報と位置情報とを用いて、レース場オブジェクト501上におけるボート402a~402fそれぞれの動きが、ボートレース場401上における移動オブジェクト502a~502fと同様になるように制御する。
ステップS730において、制御部190は、所定のレースにおける所定のイベントの発生を検出する。現実世界の所定のレースにおいて所定のイベントが発生した場合、例えば、制御部290は、レースの画像解析や第2サーバ装置40から受信した情報と、イベント情報252Bに記憶された情報とに基づいて、イベントの発生を検知し、イベントの発生を検知したことを示すイベント情報をユーザ端末10に送信する。ステップS730において、制御部190は、例えば、レース中に該イベント情報を受信したことに基づいて、イベントの発生を検出する。
また、ステップS730において、制御部190は、レース中における第1サーバ装置20からのイベント情報252Bの送信に依らずに、例えば、第1情報152Aやユーザ情報153に基づいて、所定のイベントの発生を検出してもよい。例えば、制御部190は、出場者等の位置情報及び当該位置情報に対応する時間情報に基づいて、所定のイベントの発生を検出してもよい。
ステップS740において、制御部190は、ステップS650において対応付けられた識別番号と色情報とに基づいて、発生したイベントに対応するエフェクト画像の表示色の登録を実行する。制御部190は、例えば、ボートレースの場合は、移動オブジェクト502a~502fのそれぞれの識別番号に対応する色登録に基づいて、エフェクト画像の表示色を登録する。
ステップS750において、制御部190は、表示色の登録が完了したエフェクト画像の表示を実行する。ステップS730において第1サーバ装置20からイベント情報を受信しており、該イベント情報にエフェクト表示に関する情報が含まれている場合、ステップS750では、例えば、該エフェクト表示に関する情報に基づいて、エフェクト画像の表示が実行される。なお、第1サーバ装置20からはイベントID等のイベントを識別する情報のみを受信し、例えば、取得したイベントID等に対応するエフェクト画像に関する情報をイベント情報152Bから取得し、該情報に基づいてエフェクト画像が表示されてもよい。
以下、図13及び図14を用いて、ステップS750のエフェクト表示処理を具体的に説明する。図13及び図14は、ステップS750における表示画面の一例を示す模式図である。
エフェクト画像1201は、ステップS730で検出されたイベントの種類に応じて異なる表示がなされる。図13の例では、ディスプレイ132には、レース場オブジェクト501や移動オブジェクト502a~502f等の仮想オブジェクトに加えて、エフェクト表示の対象である移動オブジェクト502cの周囲に、オーラのようなエフェクト画像1201が表示されている。このエフェクト画像1201は、例えば、最終直線イベントの発生に伴って、ユーザが購入している投票権の対象である出場者に付加されたものである。移動オブジェクト502cの周囲に表示されるエフェクト画像1201は、ステップS740において移動オブジェクト502cの表示色と同色の赤色の色登録がなされ、ステップS750において赤色に着色された状態で表示されている。
エフェクト画像1201の付加は、上記の例に限定されず、例えば、最終直線イベントではない他のイベントの発生の検出(例えば、加速が増大したことや、他の出場者よりも速度が速いこと等を検出した場合など)に応じて付加してもよい。また、エフェクト表示は、移動オブジェクト502ではなく、レース場オブジェクト501等の他の仮想オブジェクトに対して付加してもよい。例えば、図14に示すように、移動オブジェクト502a~502fのうちイベント対象の移動オブジェクト502cが通った移動軌跡画像1301をエフェクト表示としてレース場オブジェクト501に対して付加してもよい。移動軌跡画像1301は、上述のエフェクト画像1201と同様に、ステップS740において表示対象である移動オブジェクト502cの表示色と同色の赤色の色登録がなされ、ステップS750において赤色に着色された状態で表示されることが好ましい。なお、図14の例では、図示の簡略化のため、移動オブジェクト502a~502fのうち移動オブジェクト502d,502e,502fの図示を省略している。
図13及び図14の例では、イベントの発生時にのみエフェクト画像1201や移動軌跡画像1301が表示されるが、例えば、ユーザが購入している投票権の対象である出場者の移動オブジェクトの近傍にエフェクト画像が常時表示されてもよい。すなわち、ステップS730において、ユーザが所定の出場者の投票権を購入したことに基づいてイベントの発生が検出されてもよい。常時表示されるエフェクト画像としては、例えば、ユーザが購入している投票権の対象である移動オブジェクト502の上部に表示される冠型の二次元画像などが挙げられる。エフェクト画像は、対応する移動オブジェクトの近傍に配置されるものであればその位置や形状は図示の例に制限されるものではなく、三次元画像であってもよい。
移動オブジェクト502とエフェクト画像との対応付けは、上記の例に限定されず、例えば、ユーザが購入している投票権の対象外である出場者に付加してもよい。この場合、移動オブジェクト502とエフェクト画像との対応付けは、第1サーバ装置20の管理者等が予め設定してもよいし、ユーザ端末10のユーザが設定してもよい。例えば、ユーザ端末10のユーザが、「お気に入り」と設定した移動オブジェクトに対応してエフェクト画像を表示させるようにしてもよい。
また、移動オブジェクト502に対応させて表示されるエフェクト画像を、選択候補として設定された複数のオブジェクトの中からユーザが選択可能なように構成してもよい。また、選択候補となるオブジェクトの種類は、ユーザの課金等に応じて増加してもよい。
ステップS710~S750の処理は、少なくとも現実世界におけるレースの開始時点から終了時点まで繰り返されるが、現実世界におけるレースの開始前及び終了後においても繰り返されてもよい。
なお、仮想レースとして表示するレースが過去のレースである場合、仮想レースの開始前に、レースの開始から終了までのボート402a~402fの位置情報等をまとめて取得してもよい。また、位置情報等は取得せずに、レースタイム情報のみを取得して、仮想レースを表示してもよい。仮想レースとして表示するレースは、展示レースであってもよい。
現実世界におけるレースの終了後、ステップS760において、制御部190は、結果表示処理を実行し、アプリケーションプログラム151を終了する操作入力を受け付けたこと等に応じて、一連の表示制御処理を終了する。
上記の実施形態は、本発明の理解を容易にするための例示に過ぎず、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその均等物が含まれることは言うまでもない。
[付記事項]
本開示の内容を列記すると以下の通りである。
(項目1)
プロセッサ及び撮像部を備えた第1コンピュータにおいて実行されるプログラムであって、
前記プログラムは、前記プロセッサに、
現実世界における所定のレースに関する第1情報を第2コンピュータから受信するステップと、
前記第1情報に基づいて、レース場を表すレース場オブジェクトと、前記所定のレースの出場者又は移動体を表す移動オブジェクトと、を含む仮想オブジェクトを生成するステップと、
前記撮像部により撮像された前記第1コンピュータの周囲の現実画像に、前記仮想オブジェクトを重畳させて表示するステップと、を実行させ、
前記第1情報には、前記出場者又は前記移動体の識別情報と、前記識別情報に対応付けられた色情報とが含まれ、
前記生成するステップは、前記色情報に基づいて、少なくとも一部が所定の色で着色された前記移動オブジェクトを生成することを含む、
プログラム。
これにより、現実世界のレースに連動した仮想オブジェクトを用いて、現実世界のレースを仮想的なレースとして表示する際に、レースの出場者や移動体に対応する移動オブジェクトを判別し易くなり、仮想レースの視認性を向上させることができる。結果として、ユーザ、特に、観戦初心者のユーザの満足度や利便性を向上させることができる。
(項目2)
前記識別情報と前記色情報との対応関係は、前記所定のレースの枠番に対応する指定色に基づいて、変更される、
項目1に記載のプログラム。
これにより、現実世界のレースでの色分けが仮想レース上で再現可能になるため、ユーザの満足度をさらに向上させることができる。
(項目3)
前記指定色は、前記所定のレースの属性によって変更される、
項目2に記載のプログラム。
現実世界のレースの種類ごとに枠番に設定される色が異なるため、レースの種類に応じて仮想レース上の移動オブジェクトの色登録を変更することで、仮想レースの視認性を向上させることができる。
(項目4)
前記第1情報には、前記移動オブジェクトへの色登録の位置を指定するための色位置情報がさらに含まれ、
前記色位置情報は、前記移動オブジェクトの形状及び前記所定のレースの属性の少なくとも一つに応じて、変更される、
項目1から項目3のいずれかに記載のプログラム。
これにより、現実世界のレースの種類に応じて移動オブジェクトの形状も変化するため、レースに応じた移動オブジェクトの色登録を行うことで、仮想レースの視認性や興趣性をさらに向上させることができる。
(項目5)
前記表示するステップでは、前記第1情報に基づいて、前記レース場オブジェクト上において前記移動オブジェクトを移動させ、前記所定のレースを仮想的に表示するとともに、前記レース場オブジェクト及び前記移動オブジェクトの少なくとも一方にエフェクト表示を行い、
前記色情報に基づいて、前記エフェクト表示の少なくとも一部が前記所定の色で着色される、
項目1から項目4のいずれかに記載のプログラム。
これにより、ユーザは、仮想レース中に対象の移動オブジェクトをより目立たせることができ、ユーザがレースの進行状況を容易に把握することが可能になる。結果として、ユーザの利便性を向上させることができる。
(項目6)
前記エフェクト表示は、前記レース場オブジェクト上における前記移動オブジェクトの移動軌跡を表す表示である、項目5に記載のプログラム。
これにより、仮想レースの視認性をさらに向上させることができる。
(項目7)
プロセッサ及び撮像部を備えた第1コンピュータにおいて実行される情報処理方法であって、
前記情報処理方法は、前記プロセッサに、
現実世界における所定のレースに関する第1情報を第2コンピュータから受信するステップと、
前記第1情報に基づいて、レース場を表すレース場オブジェクトと、前記所定のレースの出場者又は移動体を表す移動オブジェクトと、を含む仮想オブジェクトを生成するステップと、
前記撮像部により撮像された前記第1コンピュータの周囲の現実画像に、前記仮想オブジェクトを重畳させて表示するステップと、を実行させることを含み、
前記第1情報には、前記移動オブジェクトの識別情報と、前記識別情報に対応付けられた色情報とが含まれ、
前記生成するステップは、前記色情報に基づいて、少なくとも一部が所定の色で着色された前記移動オブジェクトを生成することを含む、
情報処理方法。
これにより、現実世界のレースに連動した仮想オブジェクトを用いて、現実世界のレースを仮想的なレースとして表示する際に、レースの出場者や移動体に対応する移動オブジェクトを判別し易くなり、仮想レースの視認性を向上させることができる。結果として、ユーザ、特に、観戦初心者のユーザの満足度や利便性を向上させることができる。
(項目8)
プロセッサ及び撮像部を備えた情報処理装置であって、
前記プロセッサは、
現実世界における所定のレースに関する第1情報を第2コンピュータから受信し、
前記第1情報に基づいて、レース場を表すレース場オブジェクトと、前記所定のレースの出場者又は移動体を表す移動オブジェクトと、を含む仮想オブジェクトを生成し、
前記撮像部により撮像された前記情報処理装置の周囲の現実画像に、前記仮想オブジェクトを重畳させて表示するものであり、
前記第1情報には、前記移動オブジェクトの識別情報と、前記識別情報に対応付けられた色情報とが含まれ、
前記仮想オブジェクトを生成することは、前記色情報に基づいて、少なくとも一部が所定の色で着色された前記移動オブジェクトを生成することを含む、
情報処理装置。
これにより、現実世界のレースに連動した仮想オブジェクトを用いて、現実世界のレースを仮想的なレースとして表示する際に、レースの出場者や移動体に対応する移動オブジェクトを判別し易くなり、仮想レースの視認性を向上させることができる。結果として、ユーザ、特に、観戦初心者のユーザの満足度や利便性を向上させることができる。
(項目9)
第1プロセッサ及び撮像装置を備える第1コンピュータと、第2プロセッサを備え、前記第1コンピュータと通信接続可能な第2コンピュータと、を含むシステムあって、
前記第2プロセッサは、
現実世界における所定のレースに関する第1情報を取得し、
前記第1情報を前記第1コンピュータへ送信するものであり、
前記第1プロセッサは、
前記第1情報を第2コンピュータから受信し、
前記第1情報に基づいて、レース場を表すレース場オブジェクトと、前記所定のレースの出場者又は移動体を表す移動オブジェクトと、を含む仮想オブジェクトを生成し、
前記撮像装置により撮像された前記第1コンピュータの周囲の現実画像に、前記仮想オブジェクトを重畳させて表示するものであり、
前記第1情報には、前記移動オブジェクトの識別情報と、前記識別情報に対応付けられた色情報とが含まれ、
前記仮想オブジェクトを生成することは、前記色情報に基づいて、少なくとも一部が所定の色で着色された前記移動オブジェクトを生成することを含む、
システム。
これにより、現実世界のレースに連動した仮想オブジェクトを用いて、現実世界のレースを仮想的なレースとして表示する際に、レースの出場者や移動体に対応する移動オブジェクトを判別し易くなり、仮想レースの視認性を向上させることができる。結果として、ユーザ、特に、観戦初心者のユーザの満足度や利便性を向上させることができる。