〔実施形態1〕
(ゲームシステム1の構成)
図1は、本実施形態に係るゲームシステム1の構成の一例を示すブロック図である。ゲームシステム1は、ユーザ端末10-1(コンピュータ、端末装置)、ユーザ端末10-2、・・・ユーザ端末10-N、およびゲームサーバ30(サーバ)を備えている。これらの装置は、インターネットを含むネットワークNWを介して接続されている。ユーザ端末10-1、ユーザ端末10-2、・・・ユーザ端末10-Nは、同様の構成であるため、特に区別しない場合には、「-1」、「-2」等の記載を省略してユーザ端末10として説明する。
ユーザ端末10は、ユーザが利用するコンピュータである。ユーザ端末10の例として、PC(Personal Computer)、タブレットPC、スマートフォンおよびフィーチャーフォン等の携帯電話機、携帯情報端末(PDA:Personal Digital Assistant)、据え置き型ゲーム機、および携帯ゲーム機等が挙げられる。
ゲームサーバ30は、ユーザ端末10にゲームを提供するための、サーバ機能を有するコンピュータ(装置)である。ゲームサーバ30は、ユーザ端末10に、ゲームサーバ30と通信しながら進行するゲームを提供する。ゲームは、ユーザ端末10に予めインストールされたゲームであればよい。あるいは、ゲームは、ゲームを実行するための専用のゲームプログラムをユーザ端末10にインストールすることが不要なブラウザゲームであってもよい。ブラウザゲームは、ユーザ端末10においてウェブブラウザを実行することによって、ウェブブラウザ上に表示されるゲーム画像でプレイすることが可能なゲームのことである。ゲームサーバ30は、ユーザ端末10に対するユーザの操作入力に基づいてゲームの各種の処理を実行し、ゲームの進行に応じてゲーム画像をユーザ端末10に表示させる。
(ユーザ端末10のハードウェア構成)
図2は、本実施形態に係るユーザ端末10のハードウェア構成の一例を示す図である。ユーザ端末10は、例えば、CPU(Central Processing Unit)11、通信部12、入力部13、表示部14、記憶部15、および撮影部16を備え、ネットワークNWを介して接続されたゲームサーバ30および他の装置等と通信部12を介して通信する。これらの構成要素は、バス17を介して相互に通信可能に接続されている。CPU11は、記憶部15に記憶された各種プログラムを実行し、ユーザ端末10の各部を制御する。
通信部12は、例えば、イーサネット(登録商標)ポートおよびUSB等のデジタル入出力ポート、ならびにWiFi(登録商標)等の無線通信等を含んで構成される。入力部13は、例えば、タッチパネルとしてディスプレイと一体に構成されている。入力部13には、ユーザの操作により各種の指示が入力される。また、入力部13は、キーボード、マウス、タッチパッド、およびマイクロホンなどのその他の入力装置であってもよい。
表示部14は、画像およびテキスト等の各種の情報を表示するディスプレイである。入力部13は、例えば、液晶ディスプレイパネルまたは有機EL(Electro Luminescence)ディスプレイパネルなどを含んで構成される。
記憶部15は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、ROM(Read Only Memory)、およびRAM(Random Access Memory)などを含み、ユーザ端末10が処理する各種情報および画像、ならびにプログラム(ゲームプログラムを含む)等を記憶する。記憶部15は、ユーザ端末10に内蔵されるものに限らず、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置でもよい。
撮影部16は、カメラなどの撮影装置である。なお、ユーザ端末10は、上述した各ハードウェア構成に加えて、不図示のスピーカ、音声出力端子、カメラ、ジャイロセンサ、およびGPS(Global Positioning System)受信モジュールなどのハードウェア構成を含んで構成されてもよい。
(ゲームサーバ30のハードウェア構成 )
図3は、本実施形態に係るゲームサーバ30のハードウェア構成の一例を示す図である。ゲームサーバ30は、例えば、CPU31、通信部32、入力部33、および記憶部34を備え、ネットワークNWを介して接続された複数のユーザ端末10および他の装置等と通信部32を介して通信する。これらの構成要素は、バス35を介して相互に通信可能に接続されている。CPU31は、記憶部34に記憶されたゲームプログラムを実行し、ユーザ端末10でプレイ可能なゲームを提供する。
通信部32は、例えば、イーサネット(登録商標)ポートおよびUSB等のデジタル入出力ポート、WiFi(登録商標)等の無線通信等を含んで構成され、CPU31による制御に基づいて、ネットワークNWを介して複数のユーザ端末10および他の装置と通信する。
入力部33は、例えば、キーボード、マウス、タッチパッド、およびマイクロホンなどの入力装置である。
記憶部34は、例えば、HDD、EEPROM、RAMなどを含み、ゲームプログラム、アプリケーションプログラム、ゲームに必要な各種設定情報および履歴情報などを記憶する。なお、記憶部34は、ゲームサーバ30に内蔵されるものに限らず、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置でもよい。また、記憶部34は、ゲームサーバ30とは物理的に離れた外部の記憶装置であってもよく、ゲームサーバ30とインターネットなどの通信網を介して接続されてもよい。また、ゲームサーバ30は、不図示の表示部、スピーカ、音声出力端子などのハードウェア構成を含んで構成されてもよい。
(ユーザ端末10の機能構成)
図4は、本実施形態に係るユーザ端末10の機能構成の一例を示すブロック図である。図4に示すように、ユーザ端末10は、記憶部15に記憶されているゲームプログラムをCPU11が実行することにより実現される機能構成として、端末制御部110およびデータ記憶部120を備えている。端末制御部110は、入力受付部111、撮影制御部112、位置情報取得部113(状況情報取得部)、キャラクタ制御部114、表示制御部115、および通信制御部116を備えている。
端末制御部110は、ゲームのプレイ中にユーザ端末10が実行する各種の動作を制御する。データ記憶部120には、ゲームに必要な各種のデータ(情報)が記憶されている。このようなデータとして、画像、テキストデータ、音声データ、識別子、データベース、およびデータテーブルなどが挙げられる。ゲームに必要な画像として、例えば、ゲームの背景を表すゲーム画像、および、ゲームのキャラクタを表すキャラクタ画像などが挙げられる。データ記憶部120には、さらに、キャラクタの制御内容を表す各種の制御情報が記憶されている。このような制御情報として、例えば、キャラクタの動作を表す動作情報、キャラクタに着衣させる衣服を表す衣服情報、およびキャラクタに発話させる音声を表す音声情報などが挙げられる。詳しくは後述するが、データ記憶部120には、さらに、ユーザ端末10の位置情報が記憶されているデータテーブルが記憶されている。
入力受付部111は、入力部13に対するユーザの操作を受け付ける。例えば、入力受付部111は、表示部14に表示されるゲーム画像に対してプレイするユーザの操作を、入力部13を介して受け付ける。ユーザの操作は、例えば、タッチパネルに対するタッチ操作およびスライド操作などの各種の操作である。ユーザの操作は、マイクロフォンに対する所定の音声入力であってもよい。
撮影制御部112は、撮影部16に現実世界を撮影させることによって、撮影部16に現実世界の撮影画像を生成させる。これにより、撮影制御部112は、撮影部16によって生成された現実世界の撮影画像を、撮影部16から取得する。
位置情報取得部113は、ユーザ端末10の現在位置を表す位置情報を取得する。位置情報取得部113は、例えば、ユーザ端末10に備えられる図示しないGPS受信モジュールを通じてGPS衛星から受信した無線信号に基づいて、ユーザ端末10の現在位置を表す位置情報を生成する。
キャラクタ制御部114は、ゲームのプレイ中に、ゲームに登場するキャラクタを制御する。その際、キャラクタ制御部114は、キャラクタに対して所定の作用を及ぼす処理を実行することによって、キャラクタを制御する。キャラクタ制御部114は、例えば、表示部14に表示されるキャラクタの表示状態(外観)を制御する。具体的には、キャラクタ制御部114は、キャラクタが着衣する衣服を変更したり、キャラクタの表示位置を変更したり、キャラクタが実行する動作を変更したりする。キャラクタ制御部114は、他にも、キャラクタに関する出力内容を制御することもできる。具体的には、キャラクタ制御部114は、キャラクタに所定の音声を発話させる。
キャラクタ制御部114は、キャラクタの制御内容に関する情報をキャラクタに関連付けることによって、キャラクタを制御することもできる。このような情報として、例えば、キャラクタに着衣させる衣装の識別子、キャラクタに実行させる動作の識別子、またはキャラクタに発話させる音声の識別子などが挙げられる。キャラクタ制御部114は、キャラクタに実行させる動作をキャラクタに設定することによって、キャラクタを制御することもできる。
表示制御部115は、ゲームの実行に必要な各種の情報を表示部14に表示させる。このような情報として、例えば、データ記憶部120に記憶されている各種の画像(ゲーム画像、キャラクタ画像など)、および、ゲームの実行中にユーザ端末10が動的に生成した各種の画像が、挙げられる。詳しくは後述するが、表示制御部115は、現実世界の撮影画像を表示部14に表示させることもできる。
通信制御部116は、ユーザ端末10とゲームサーバ30との間の通信を制御する。通信制御部116は、例えば、入力受付部111が受け付けた操作に基づく操作情報を、通信部12を介してゲームサーバ30へ送信する。通信制御部116は、他にも、ゲームをプレイするユーザのユーザ情報、および、ゲーム処理の実行結果を示す情報なども、通信部12を介してゲームサーバ30へ送信する。ユーザ情報として、ユーザを識別するための識別情報(例えば、ユーザID)、パスワード、およびユーザ名(ゲーム内でのユーザの名称)等が挙げられる。また、通信制御部116は、ユーザ端末10でプレイされるゲームに関する情報を、通信部12を介してゲームサーバ30から取得する。
(ゲームサーバ30の機能構成)
図5は、本実施形態に係るゲームサーバ30の機能構成の一例を示すブロック図である。図5に示すように、ゲームサーバ30は、記憶部34に記憶されているゲームプログラムをCPU31が実行することにより実現される機能構成として、サーバ制御部310およびデータ記憶部320を備えている。サーバ制御部310は、通信制御部311を備えている。
サーバ制御部310は、ゲームのプレイ中にゲームサーバ30が実行する各種の動作を制御する。データ記憶部320には、ゲームに必要な各種のデータ(情報)が記憶されている。データ記憶部320は、例えば、データ記憶部120に記憶されているゲーム画像などの各種のデータと同一のデータが記憶されている。データ記憶部320には、さらに、ゲームのアカウントごとに、ユーザ端末10においてゲームをプレイするユーザのアカウント情報も記憶されている。データ記憶部320には、例えば、アカウント情報として、ユーザID、パスワード、およびユーザ名、ならびにユーザのゲームの進行度合いに基づくゲームデータなどが記憶されている。通信制御部311は、ゲームサーバ30とユーザ端末10との間の通信を制御する。
(ゲームの概要)
図6は、本実施形態に係るゲームのキャラクタC11を含むゲーム画像G11を示す図である。本実施形態では、ゲームシステム1は、ユーザがユーザ端末10を用いてゲームのキャラクタと交流するゲームを、ユーザにプレイさせる。表示制御部115は、ゲームのプレイ中に、例えば図5に示すゲーム画像G11を表示部14に表示させる。ゲーム画像G11は、ゲームのキャラクタC11(の画像)を含んでいる。キャラクタC11は、典型的には、人物を模したキャラクタであり、図5では女の子を模したキャラクタである。ユーザは、ゲームのプレイ中に、表示部14に表示されるキャラクタC11と、様々な手段を用いて交流する。例えば、キャラクタC11からユーザに出力されたメッセージへの返信を入力部13に入力したり、キャラクタC11にゲームアイテムをプレゼントする操作を入力部13に入力したりする。ユーザは、このような交流の積み重ねによって、ゲームにおけるユーザとキャラクタC11との関係を深めてゆく。
ユーザ端末10は、図6に示すように、規定のゲーム画像G11を背景とした態様でキャラクタC11と交流するゲームを、ユーザにプレイさせることができる。詳しくは後述するが、これに加えて、ユーザ端末10は、拡張現実機能(以下、AR機能)に対応した態様で、ユーザにゲームをプレイさせることもできる。ユーザ端末10は、AR機能の実行時に、現実世界の撮影画像と、撮影画像の内部に配置されているキャラクタC11とを、表示部14に表示させる。ユーザ端末10は、現実世界の撮影画像に内部に配置されている態様で表示されるキャラクタC11と交流するゲームをユーザにプレイさせることによって、キャラクタC11が現実世界に実際に存在するかのような実在感を、ゲームのプレイ中にユーザに与えることができる。
(AR機能の詳細)
図7は、本実施形態に係るユーザ端末10が実行する各処理の流れを示すフローチャートである。図8は、本実施形態に係るユーザ端末10が公園に居る様子を示す図である。
図8の例では、ユーザは、2019年10月6日に、ユーザ端末10を所持して公園を訪れている。ユーザは、公園内で、キャラクタC11と交流するゲームをプレイする。ユーザは、ゲームのプレイ中に、公園内の樹木に撮影部16のレンズを向けた状態で、ゲームのAR機能を開始するための操作を入力部13に入力する。ユーザ端末10は、入力受付部111がこの入力操作を受け付けると、AR機能の実行を開始する。これにより、撮影制御部112は、現実世界の撮影画像を取得する(S100)。ここでは、撮影制御部112は、公園内の樹木の画像を含む撮影画像Z11を、撮影部16から取得する。本実施形態では、撮影画像Z11は動画である。しかし、これに限らず、撮影画像Z11は静止画であってもよい。
図9は、本実施形態に係る撮影画像Z11およびキャラクタC11の表示例を示す図である。表示制御部115は、取得された撮影画像Z11と、撮影画像Z11の内部に配置されているキャラクタC11とを、表示部14に表示させる(S102)。ここでいう撮影画像Z11の内部は、動画としての撮影画像Z11を構成する個々のフレーム(静止画像)の内部に相当する。本実施形態では、表示制御部115は、撮影画像Z11とキャラクタC11とを、表示部14に同時に表示させる。また、本実施形態では、表示制御部115は、キャラクタC11を撮影画像Z11に重畳させることによって、撮影画像Z11の内部に配置されているキャラクタC11を表示部14に表示させる。表示制御部115は、例えば、撮影画像Z11にキャラクタC11が重畳する重畳画像を生成し、この重畳画像を表示部14に表示させる。あるいは、表示制御部115は、まず撮影画像Z11を表示部14に表示させ、つぎに、キャラクタC11を撮影画像Z11に重畳させて表示部14に表示させてもよい。いずれの場合も、ユーザ端末10は、表示部14において一体的に表示される撮影画像Z11およびキャラクタC11を、ユーザに視認させる。これにより、ユーザ端末10は、AR機能が現在有効になっていることを、ユーザに認識させると共に、現実世界にキャラクタC11が存在するかのような実在感を、ユーザに覚えさせる。
表示制御部115は、撮影画像Z11に含まれる任意のオブジェクトを検出し、当該オブジェクトに関連付けて撮影画像Z11に重畳されているキャラクタC11を、表示部14に表示させることができる。図9の例では、表示制御部115は、撮影画像Z11に含まれる樹木の画像を検出する。これにより、表示制御部115は、樹木の画像の隣に配置された状態で撮影画像Z11に重畳されているキャラクタC11を、表示部14に表示させる。
表示部14が表示するキャラクタC11の画像は、データ記憶部120に予め記憶されている画像であればよい。あるいは、表示部14が表示するキャラクタC11の画像は、ゲームの実行中に動的に生成される画像であってもよい。後者の場合、端末制御部110は、オブジェクトとしてのキャラクタC11をゲームの仮想空間に配置させ、さらに、仮想カメラにキャラクタC11を撮影させることによって、キャラクタC11の画像を仮想カメラに動的に生成させる。表示制御部115は、動的に生成されたキャラクタC11の画像を仮想カメラから取得し、表示部14に表示させる。
次に、位置情報取得部113は、ユーザ端末10の位置情報を取得する(S104)。ここでは、位置情報取得部113は、公園を訪れているユーザが所持しているユーザ端末10の位置情報を、取得する。位置情報としては、例えば、ユーザ端末10の緯度および経度が取得される。位置情報取得部113は、取得した位置情報に基づいて、ユーザ端末10の現在位置(すなわちユーザの現在位置)が公園Aであることを判定する。この判定は、例えば、位置情報と現在位置との関係を予め規定したデータテーブル(不図示)を参照することによって実現される。このデータテーブルは、データ記憶部120に記憶されている。以下、位置情報に基づくユーザの現在位置の判定結果についても、位置情報と表現する。また、ユーザの現在位置を判定することは、位置情報を取得することと同義であるとする。
図10は、本実施形態に係る位置情報が記憶されているデータテーブルTBL1を示す図である。ユーザ端末10において、ユーザに対応するデータテーブルTBL1が、データ記憶部120に記憶されている。データテーブルTBL1は、AR機能の実行中に取得された位置情報と、位置情報の取得時間とが対応付けて記憶されているデータテーブルである。図10の例では、データテーブルTBL1には、異なる時点で取得された3つの位置情報(公園A、店舗B、および自宅)が、記憶されている。これは、ユーザが過去に、公園A、店舗B、および自宅のそれぞれにおいて、AR機能を実行してキャラクタC11と交流したことを表している。位置情報取得部113は、新たに取得した位置情報を、データテーブルTBL1に記憶させる。位置情報取得部113は、具体的には、新たに取得した位置情報「公園A」を、位置情報の取得時間「2019-10-06」に関連付けて、データテーブルTBL1に記憶させる。
図11は、本実施形態に係るキャラクタC11の制御の一例を示す図である。キャラクタ制御部114は、位置情報の履歴に基づいて、表示部14に表示されるキャラクタC11を制御する(S106)。ここでは、位置情報の履歴は、異なる時点で取得した複数の位置情報に相当する。すなわち、キャラクタ制御部114は、異なる時点で取得した複数の位置情報に基づいて、キャラクタC11を制御する。その際、キャラクタ制御部114は、まず、直近で取得した位置情報「公園A」を、データテーブルTBL1から取得する。この位置情報には、取得時間「2019-10-06」が関連付けられている。次に、キャラクタ制御部114は、直近の位置情報「公園A」と同一の過去の位置情報を、データテーブルTBL1から検索する。データテーブルTBL1には、過去の位置情報「公園A」が1つ記憶されている。位置情報取得部113は、この位置情報を検索し、データテーブルTBL1から取得する。この位置情報には、取得時間「2019-07-05」が関連付けられている。
キャラクタ制御部114は、取得した2つの位置情報「公園A」に基づいて、キャラクタC11を制御する。ここでは、2つの位置情報「公園A」の取得時間の差分をまず算出する。直近で取得した位置情報の取得時間は2019年10月6日であり、過去に取得した位置情報の取得時間は2019年7月5日である。したがって、キャラクタ制御部114は、取得時間の差分として3ヶ月1日を算出する。キャラクタ制御部114は、算出した差分が所定の閾値を超えているか否かを判定する。ここでは、閾値は20日であるとする。したがって、キャラクタ制御部114は、差分が閾値を超えていることを判定する。さらに、キャラクタ制御部114は、判定結果に応じた態様で、キャラクタC11を制御する。
位置情報の取得時間の差分が閾値を超えることは、ユーザがキャラクタC11と一緒に公園Aを今回訪問した日と、ユーザがキャラクタC11と一緒に公園Aを前回訪問した日との間に、20日を超える期間が空いていることに相当する。すなわち、位置情報の取得時間の差分が閾値を超えることは、ユーザがキャラクタC11と一緒に公園Aを久しぶりに訪問したことに相当する。そこで、キャラクタ制御部114は、位置情報の取得時間の差分が閾値を超えると判定した場合、図11に示すように、キャラクタC11が公園Aを久しぶりに訪問したことの喜びを表現した動作を、キャラクタC11に実行させる。さらに、キャラクタ制御部114は、キャラクタC11が公園Aを久しぶりに訪れたことに言及する音声を、キャラクタC11に発話させる。これにより、ユーザ端末10は、図11に示すキャラクタC11の動作をユーザに視認させると共に、キャラクタC11の発話音声をユーザに聴取させる。その結果、ユーザ端末10は、キャラクタC11がユーザと共に公園Aを久しぶりに訪問したことを喜んでいることを、ユーザに認識させることができる。
(主要な作用効果)
本実施形態によれば、ユーザ端末10は、異なる時点で取得した位置情報に基づいてキャラクタC11を制御するため、ユーザがキャラクタC11と共に体験した現実世界の位置の変遷に応じた適切な態様で、キャラクタC11を制御することができる。例えば、ユーザがキャラクタC11と共に特定の場所を久しぶりに訪れた際、その事実に言及する音声をキャラクタC11に発話させる、といった制御が実現される。本実施形態では、ユーザがAR機能を直近で用いた時点でのユーザの現在位置は、公園Aである。さらに、ユーザが公園AにおいてAR機能を用いてキャラクタC11を表示させたことは、久しぶりのことである。したがって、図11に示すように制御された際のキャラクタC11の動作内容および発話内容は、ユーザがAR機能を用いてキャラクタC11と共に訪問した現実世界の位置の変遷に良く一致する。このように、ユーザ端末10は、AR機能の実行中におけるキャラクタC11の振る舞いを自然なものとしてユーザに認識させることができるので、現実世界におけるキャラクタC11の実在感をより向上させることができる。
(変形例)
本実施形態では、表示制御部115が、撮影画像に重畳されているキャラクタC11を表示部14に表示させる例を、説明した。しかし、これに限らず、本実施形態では、表示制御部115が、撮影画像にキャラクタC11を重畳させることによって、撮影画像の内部に配置されているキャラクタC11を表示部14に表示させる例について、説明した。しかし、これに限らず、表示制御部115は、撮影画像にキャラクタC11を重畳させることなく、撮影画像の内部に配置されているキャラクタC11を表示部14に表示させることもできる。表示制御部115は、例えば、撮影画像の内部においてキャラクタC11が配置される範囲を撮影画像から削除し、それから、当該範囲が削除されている撮像画像と、撮影画像における削除箇所に配置されているキャラクタC11とを、表示部14に表示させる。本例では、キャラクタC11は撮影画像に重畳していないが、撮影画像の内部に配置されている。本例においても、現実世界の撮影画像とキャラクタC11とが一体的に表示部14に表示されるため、キャラクタC11が現実世界に存在するかのような実在感をユーザに知覚させることができる。
本実施形態では、キャラクタ制御部114が、異なる時点で取得した複数の位置情報に基づきキャラクタC11を制御する例を、説明した。しかし、これに限らず、キャラクタ制御部114は、現実世界の状況に関する任意の状況情報を取得し、かつ、異なる時点で取得した複数の状況情報に基づいてキャラクタC11を制御してもよい。上述したユーザ端末10の位置は、現実世界の状況の一例であり、上述した位置情報は、状況情報の一例であり、上述した位置情報の履歴は、状況情報の履歴の一例である。現実世界の状況として、位置の他にも、現実世界の明るさ、音(音量)、気象など、現実世界に関する様々な属性または事象が挙げられる。また、状況情報として、位置情報の他にも、例えば、現実世界の明るさを表す明るさ情報、現実世界の音を表す音情報、現実世界の気象を表す気象情報などが挙げられる。状況情報の履歴に基づいてキャラクタC11を制御する場合、キャラクタC11の制御内容は、ユーザがAR機能を用いてキャラクタC11と共に体験した現実世界の状況の変遷に良く一致する。したがって、現実世界におけるキャラクタC11の実在感をより向上できることに変わりない。
本実施形態では、キャラクタ制御部114が、異なる時点で取得した同一の複数の位置情報の取得時間の差分に基づく態様でキャラクタC11を制御する例を説明した。しかし、これに限らず、キャラクタ制御部114は、異なる時点で取得した同一の複数の位置情報の数に応じた態様で、キャラクタC11を制御してもよい。キャラクタ制御部114が、具体的には、異なる時点で取得した同一の複数の位置情報の数に言及する音声を、C11に発話させる。例えば、キャラクタ制御部114は、異なる時点で取得した位置情報「公園A」の数が2つであることに基づいて、公園Aの訪問が2回であることに言及する音声を、キャラクタC11に発話させることができる。
本実施形態では、位置情報の履歴が、異なる時点で取得された複数の位置情報に相当する例を、説明した。しかし、これに限らず、位置情報の履歴は、直近で取得した位置情報の他に、これと同一の位置情報が過去に取得されていないことに相当してもよい。すなわち、キャラクタ制御部114は、直近で取得した位置情報の他に、これと同一の位置情報が過去に取得されていない場合、この位置情報の取得が初めてであるという意味での位置情報の履歴に基づいて、キャラクタC11を制御する。例えば、キャラクタ制御部114は、直近で取得した位置情報「公園A」の他に、位置情報「公園A」がデータテーブルTBL1に記憶されていないと判定した場合、公園Aの訪問が初めてであることに言及する音声をキャラクタC11に発話させることができる。本例においても、キャラクタC11の制御内容は、ユーザがAR機能をキャラクタC11と共に体験した「公園A」への移動履歴(訪問履歴)に良く一致する。したがって、現実世界におけるキャラクタC11の実在感をより向上できることに変わりない。
本実施形態では、AR機能の実行時に行われるゲーム処理の全てをユーザ端末10が実行する例を説明した。しかし、これに限らず、ゲームシステム1では、AR機能の実行時にユーザ端末10が実行可能な一部の処理を、ユーザ端末10の代わりにゲームサーバ30が実行してもよい。例えば、キャラクタC11の制御処理と、撮影画像Z11およびキャラクタC11の重畳処理とを、ゲームサーバ30が実行してもよい。この場合、ユーザ端末10の通信制御部116は、AR機能の実行時に取得した撮影画像および位置情報を、ゲームサーバ30に送信する。ゲームサーバ30は、通信制御部311が受信した撮影画像および位置情報を、ユーザ端末10のユーザに関連付けて管理する。ゲームサーバ30は、さらに、異なる時点でユーザ端末10が取得した複数の位置情報に基づいて制御されたキャラクタC11が撮影画像Z11に重畳されている重畳画像を生成し、ユーザ端末10に送信する。表示制御部115は、通信制御部116が受信した重畳画像を、表示部14に表示させる。本例においても、ユーザ端末10は、異なる時点で取得した複数の位置情報に基づいてキャラクタC11が制御される様子を、ユーザに知覚させることができる。
本実施形態では、位置情報取得部113が、取得した位置情報に基づいてユーザの現在位置を判定し、判定結果を位置情報としてデータテーブルTBL1に記憶させる例を、説明した。しかし、これに限らず、位置情報取得部113は、取得した位置情報からユーザの現在位置を判定することなく、取得した位置情報そのものをデータテーブルTBL1に記憶させてもよい。本例では、位置情報取得部113は、位置情報として例えばユーザ端末10の緯度および経度を取得した場合、取得した緯度および経度を、データテーブルTBL1にそのまま記憶させる。また、キャラクタ制御部114は、異なる時点で取得した複数の位置情報(緯度および経度)が所定の条件を満たす場合、これらの位置情報を、同一の位置を示す位置情報であると判定する。所定の条件は、例えば、ある位置情報と他の位置情報との差分が所定の閾値を下回ることである。
キャラクタ制御部114は、同一の位置を示すと判定された複数の位置情報に基づいて、キャラクタC11を制御する。キャラクタ制御部114は、例えば、同一の位置を示すと判定された2つの位置情報の取得時間の差分が、所定の閾値を超えているか否かを判定し、判定結果に応じた態様でキャラクタC11を制御する。キャラクタ制御部114は、取得時間の差分が所定の閾値を超えていると判定した場合、キャラクタC11がユーザと一緒に「この場所」を久しぶりに訪れたことに言及する音声を、キャラクタC11に発話させる。本例においても、キャラクタC11の制御内容は、ユーザがAR機能を用いてキャラクタC11と共に体験した現実世界の位置の変遷に良く一致する。したがって、現実世界におけるキャラクタC11の実在感をより向上できることに変わりない。
本実施形態では、キャラクタ制御部114が、AR機能の実行中における異なる時点で取得された複数の位置情報に基づいてキャラクタC11を制御する例を、説明した。しかし、これに限らず、キャラクタ制御部114は、AR機能の非実行中における異なる時点で取得された位置情報に基づいて、キャラクタC11を制御することもできる。あるいは、AR機能の実行中に取得した位置情報と、AR機能の非実行中に取得された位置情報とに基づいて、キャラクタC11を制御することもできる。
これらの本例では、位置情報取得部113は、AR機能の実行中以外の所定のタイミングで位置情報を取得する。位置情報取得部113は、例えば、AR機能の停止中に所定の条件が成立したことをトリガとして、位置情報の取得処理を実行する。位置情報取得部113は、具体的には、毎日、現在の時刻が特定の時刻になった際に、位置情報を取得する。位置情報取得部113は、あるいは、ゲームプログラムが実行された際に、ユーザ端末10の位置情報を取得してもよい。本例では、位置情報取得部113は、取得した位置情報ごとに、位置情報取得のトリガを示すトリガ情報を位置情報に関連付けることによって、位置情報を管理することが好ましい。位置情報取得部113は、例えば、ある日の特定の時刻(12時)に位置情報を取得した場合、取得した位置情報にタイミング情報「12時における取得」を関連付けてデータテーブルTBL1に記憶させることによって、位置情報を管理する。
キャラクタ制御部114は、データテーブルTBL1に記憶されている、AR機能の非実行中に取得された位置情報を少なくとも用いて、キャラクタC11を制御する。キャラクタ制御部114は、例えば、データテーブルTBL1に記憶されている、AR機能の非実行中における異なる時点で取得された複数の位置情報に基づいて、キャラクタC11を制御する。キャラクタ制御部114は、あるいは、データテーブルTBL1に記憶されている、AR機能の実行中に取得された位置情報と、AR機能の非実行中に取得された位置情報とに基づいて、キャラクタC11を制御する。これらの態様におけるキャラクタC11の制御内容は、AR機能の実行中における異なる時点で取得された複数の位置情報に基づく制御内容と同一であればよい。
〔実施形態2〕
上述した実施形態1では、ユーザ端末10が、ユーザがキャラクタC11のみと交流するゲームをユーザにプレイさせる例を、説明した。しかし、これに限らず、ユーザ端末10は、ユーザが複数のキャラクタのうちのいずれかと交流可能なゲームをユーザにプレイさせてもよい。本実施形態では、このような態様のゲームをユーザにプレイさせる場合のキャラクタ制御の例について、説明する。
図12は、本実施形態に係るゲームのキャラクタC11またはC12を選択するためのゲーム画像G12を示す図である。本実施形態では、ユーザ端末10は、キャラクタC11およびC12のいずれかとユーザが交流するゲームを、ユーザにプレイさせる。表示制御部115は、ゲームの開始後、キャラクタC11またはC12を選択するためのゲーム画像G12を、例えば図12に示すように表示部14に表示させる。ゲーム画像G12は、並んで配置される2つのキャラクタC11およびC12を含む。キャラクタC12は、典型的には、キャラクタC11と同様に人物を模したキャラクタである。本実施形態では、キャラクタC12は、キャラクタC11とは外観の異なるキャラクタであり、より具体的には女の子を模したキャラクタである。ユーザは、ゲーム画像G12が表示された後、キャラクタC11またはC12の中から交流相手のキャラクタを選択するための操作を、入力部13に入力する。ここでは、キャラクタC12を選択するための操作が入力されたものとする。
図13は、本実施形態に係るゲームのキャラクタC12を含むゲーム画像G11を示す図である。入力受付部111は、キャラクタC12を選択するための操作を受け付けたことを、表示制御部115に通知する。表示制御部115は、この通知に基づいて、キャラクタC11およびC12の中から、キャラクタC12を選択する。表示制御部115は、キャラクタC12の選択後、キャラクタC12を含むゲーム画像G11を、図13に示すように表示部14に表示させる。これにより、ユーザ端末10は、キャラクタC12と交流するゲームを、ユーザにプレイさせることができる。詳しくは後述するが、ここで選択されたキャラクタC12は、AR機能の実行時に位置情報に基づいて制御されるキャラクタである。その意味では、表示制御部115は、キャラクタC11およびC12のうち、制御対象のキャラクタC12を選択していると言える。
なお、表示制御部115は、キャラクタC11を選択するための操作が受け付けられた場合、制御対象のキャラクタとして、キャラクタC11を選択する。この場合、ユーザ端末10は、実施形態1と同様に、キャラクタC11と交流するためのゲームを、ユーザにプレイさせる。このように、本実施形態では、表示制御部115は、キャラクタC11およびC12のうち、交流相手のキャラクタをユーザの操作に基づいて選択することができる。表示制御部115は、ユーザの操作に基づかずに、制御対象のキャラクタC11またはC12を、所定のアルゴリズムに基づいて選択することもできる。表示制御部115は、例えば、制御対象のキャラクタC11またはC12を、ランダムに選択してもよい。
図14は、本実施形態に係る位置情報が記憶されているデータテーブルTBL1およびTBL2を示す図である。データテーブルTBL1およびTBL2は、いずれも、データ記憶部120に記憶されている。データテーブルTBL1は、キャラクタC11に関連付けられたテーブルである。詳細には、データテーブルTBL1は、キャラクタC11を制御対象としたAR機能の実行中に取得された位置情報と、位置情報の取得時間とが対応付けて記憶されているデータテーブルである。データテーブルTBL2は、キャラクタC12に関連付けられたテーブルである。詳細には、キャラクタC12を制御対象としたAR機能の実行中に取得された位置情報と、位置情報の取得時間とが対応付けて記憶されているデータテーブルである。
図14の例では、異なる時点で取得された3つの位置情報(公園A、店舗B、および自宅)が、データテーブルTBL1に記憶されている。これらの位置情報は、キャラクタC11に対応する位置情報である。換言すれば、これらの位置情報は、キャラクタC11を制御対象としたAR機能の実行時に取得された位置情報である。これは、ユーザが過去に、公園A、店舗B、および自宅のそれぞれにおいて、AR機能を実行してキャラクタC11と交流したことを表している。
図14の例では、異なる時点で取得された4つの位置情報(公園A、店舗B、および遊園地C)が、データテーブルTBL2に記憶されている。これらの位置情報は、キャラクタC12に対応する位置情報である。換言すれば、これらの位置情報は、キャラクタC12を制御対象としたAR機能の実行時に取得された位置情報である。これは、ユーザが過去に、公園Aにおいて1回、店舗Bにおいて2回、遊園地Cにおいて1回、それぞれAR機能を実行してキャラクタC12と交流したことを表している。
位置情報取得部113は、キャラクタC11が選択された場合、AR機能の実行中に取得した位置情報を、位置情報が取得された時点で選択されているキャラクタC11に関連付けることによって、位置情報の履歴として管理する。すなわち、取得された位置情報を、キャラクタC11に関連付けられたデータテーブルTBL1に記憶させる。一方、位置情報取得部113は、キャラクタC12が選択された場合、AR機能の実行中に取得した位置情報を、位置情報が取得された時点で選択されているキャラクタC12に関連付けることによって管理する。すなわち、取得された位置情報を、キャラクタC12に関連付けられたデータテーブルTBL2に記憶させる。
本実施形態では、ユーザは、2019年10月6日に公園Aを訪れ、キャラクタC12と交流するゲームをプレイする。ユーザは、実施形態1と同様に、公園内の樹木に撮影部16のレンズを向けた状態で、AR機能を開始させるための操作を入力部13に入力する。これにより、ユーザ端末10は、撮影画像Z11の取得、撮影画像Z11の表示、およびキャラクタC12の重畳表示の各処理を実行する。これらの処理の内容は、表示対象のキャラクタがキャラクタC12である点を除き、基本的に実施形態1と同一であるため、詳細な説明を省略する。
次に、位置情報取得部113は、ユーザ端末10の位置情報を取得する。ここでは、位置情報取得部113は、実施形態1と同様に、位置情報「公園A」を取得する。位置情報取得部113は、位置情報の取得時点で選択されているキャラクタC12に、取得した位置情報「公園A」を関連付けて管理する。位置情報取得部113は、具体的には、取得した位置情報「公園A」に、位置情報の取得時間「2019-10-6」を関連付けて、キャラクタC12に関連付けられたデータテーブルTBL2に記憶させる。
図15は、本実施形態に係るキャラクタC12の制御の一例を示す図である。キャラクタ制御部114は、異なる時点で取得した、キャラクタC12に対応する複数の位置情報に基づいて、表示部14に表示されるキャラクタC12を、図15に示すように制御する。キャラクタ制御部114は、まず、直近で取得した位置情報「公園A」を、キャラクタC12に対応するデータテーブルTBL2から取得する。この位置情報には、取得時間「2019-10-06」が関連付けられている。次に、キャラクタ制御部114は、直近の位置情報「公園A」と同一の過去に取得した位置情報を、データテーブルTBL2から検索する。データテーブルTBL2には、過去の位置情報「公園A」が1つ記憶されているので、位置情報取得部113はこの位置情報を検索し、データテーブルTBL2から取得する。この位置情報には、取得時間「2019-10-05」が関連付けられている。
キャラクタ制御部114は、取得した2つの位置情報「公園A」に基づいて、キャラクタC12の制御内容を決定する。ここでは、2つの位置情報「公園A」の取得時間の差分をまず算出する。直近で取得した位置情報の取得時間は2019年10月6日であり、過去に取得した位置情報の取得時間は2019年10月5日である。したがって、キャラクタ制御部114は、取得時間の差分として1日を算出する。キャラクタ制御部114は、算出した差分が所定の閾値未満である否かを判定する。ここでは、閾値は2日であるとする。したがって、キャラクタ制御部114は、差分が閾値未満であると判定する。これにより、キャラクタ制御部114は、判定結果に応じた態様でキャラクタC12を制御する。
位置情報の取得時間の差分が閾値を超えることは、ユーザがキャラクタC12と一緒に公園Aを今回訪問した日と、ユーザがキャラクタC12と一緒に公園Aを訪問した日との間に、2日未満の期間しか空いていないことに相当する。すなわち、位置情報の取得時間の差分が閾値未満であることは、ユーザがキャラクタC12と共に短期間に続けて公園Aを訪問していることに相当する。そこで、キャラクタ制御部114は、図15に示すように、短期間に続けて公園Aを訪問しているのでキャラクタC12がつまらない思いをしていることを表現した動作を、キャラクタ制御部114に実行させる。これにより、ユーザ端末10は、図15に示すキャラクタC12の動作をユーザに視認させる。さらに、キャラクタ制御部114は、短期間に続けて公園Aを訪問しているのでキャラクタC12がつまらない思いをしていることに言及する音声を、キャラクタC12に発話させる。これにより、ユーザ端末10は、キャラクタC12の発話音声をユーザに聴取させる。これらの結果、ユーザ端末10は、キャラクタC12がユーザと公園Aを訪問していることをつまらなく思っていることを、ユーザに認識させる。
(主要な作用効果)
本実施形態では、ユーザがAR機能を直近で用いた時点でのユーザの現在位置は、公園Aである。さらに、ユーザは、短期間に続けて公園AにおいてAR機能を用いてキャラクタC12を表示させている。したがって、図15に示すように制御された際のキャラクタC12の動作内容および発話内容は、ユーザがAR機能を用いてキャラクタC12と共に訪問した現実世界の位置の変遷に良く一致する。このように、ユーザ端末10は、AR機能の実行中におけるキャラクタC12の振る舞いを自然なものとしてユーザに認識させることができるので、現実世界におけるキャラクタC12の実在感をより向上させることができる。
また、本実施形態では、制御対象のキャラクタC12に対応する複数の位置情報を用いてキャラクタC12を制御するため、キャラクタC12と無関係な、キャラクタC11に対応する位置情報に基づいてキャラクタC12を不自然に制御することが、回避される。これにより、キャラクタC12をより自然に制御することができるので、キャラクタC12の実在感をさらに向上することができる。
〔各種変形例〕
(1つの位置情報に基づく制御)
上述した各実施形態では、キャラクタ制御部114が、複数の位置情報に基づいてキャラクタC11を制御する例を説明した。しかし、これに限らず、キャラクタ制御部114は、特定の時点で取得した1つの位置情報に基づいてキャラクタC11を制御してもよい。キャラクタ制御部114は、例えば、AR機能の実行時に取得した1つの位置情報に応じた態様で、キャラクタC11を制御する。キャラクタ制御部114は、具体的には、取得した位置情報に基づいてユーザの現在位置を判定し、判定結果に応じた態様でキャラクタC11を制御する。
キャラクタ制御部114は、例えば、キャラクタC11の表示状態を、ユーザの現在位置の判定結果に応じた表示状態に変更する。キャラクタ制御部114は、具体的には、ユーザの現在位置が海辺であると判定した場合、海辺に対応した水着をキャラクタC11に着衣させる。これにより、表示制御部115は、水着姿のキャラクタC11を、海辺の撮影画像に重畳させて表示部14に表示させる。この結果、ユーザ端末10は、水着姿のキャラクタC11が海辺に居る様子をユーザに視認させるので、現実世界の海辺におけるキャラクタC11の実在感を向上させることができる。
キャラクタ制御部114は、ユーザの現在位置の判定結果に応じた音声を、キャラクタC11に発話させてもよい。キャラクタ制御部114は、具体的には、ユーザの現在位置が自宅であると判定した場合、自宅に言及した音声をキャラクタC11に発話させる。キャラクタ制御部114は、あるいは、ユーザの現在位置が店舗Bであると判定した場合、店舗Bの利用に言及した音声をキャラクタC11に発話させる。これらにより、ユーザ端末10は、ユーザがキャラクタC11と一緒に居る場所に合致した、キャラクタC11から発話される音声を、ユーザに聴取させることができるので、現実世界におけるキャラクタC11の実在感を向上させることができる。
上述した変形例では、キャラクタ制御部114が位置情報に基づいてキャラクタC11を制御する例について、説明した。しかし、これに限らず、ユーザ端末10は、位置情報に基づいて、キャラクタC11の制御とは異なる他の処理を実行してもよい。例えば、端末制御部110は、AR機能の実行中に取得した位置情報が所定の条件を満たした場合、キャラクタC11と交流するゲームのプレイ時に利用可能な所定のゲームアイテムを、ユーザに付与してもよい。
上述した各実施形態では、キャラクタ制御部114が、AR機能の実行中に取得した位置情報に基づいて、キャラクタC11を制御する例を説明した。しかし、これに限らず、キャラクタC11は、過去に取得した撮影画像に関連付けられた位置情報に基づいて、キャラクタC11を制御してもよい。図16は、ある変形例に係るにユーザ端末10が実行する各処理の流れを示すフローチャートである。本変形例では、表示制御部115は、AR機能の停止中に、位置情報が関連付けられた撮影画像を選択する(S1100)。ここで選択される画像は、任意の位置において過去に取得され、かつ、撮影位置を示す位置情報が関連づけられた、現実世界の撮影画像である。表示制御部115は、例えば、過去に取得した撮影画像がデータ記憶部120に記憶されている場合、位置情報が関連付けられたいずれかの撮影画像を、データ記憶部120から選択する。撮影制御部112は、ユーザ端末10の外部装置(ゲームサーバ30など)を通じて、位置情報が関連付けられた撮影画像を選択することもできる。
表示制御部115は、選択された撮影画像と、撮影画像の内部に配置されているゲームのキャラクタC11とを、表示部14に表示させる(S1102)。これにより、ユーザ端末10は、表示部14において一体的に表示される撮影画像Z11およびキャラクタC11を、ユーザに視認させる。次に、キャラクタ制御部114は、表示された撮影画像に関連付けられた位置情報に基づいて、キャラクタC11を制御する(S1104)。制御の内容は、上述した各例と同様であるため、詳細な説明を省略する。
図16の例では、キャラクタ制御部114は、AR機能の実行中にリアルタイムに取得される位置情報の代わりに、過去に取得した撮影画像に関連付けられた位置情報に基づいて、キャラクタC11を制御する。これにより、ユーザ端末10は、ユーザの現在位置とは異なる所望の場所で取得された撮影画像に重畳表示されるキャラクタC11が、撮影場所に相応しい自然な振る舞いを示す様子を、ユーザに知覚させることができる。したがって、ゲームの趣向性をより向上させることができる。
(音情報に基づく制御)
上述した各実施形態では、キャラクタC11が、位置情報に基づいてキャラクタC11を制御する例を説明した。しかし、これに限らず、キャラクタ制御部114は、現実世界の音を表す音情報に基づいて、キャラクタC11を制御してもよい。以下では、このような制御の一例について、図17を参照して説明する。
図17は、ある変形例に係るユーザ端末10が実行する各処理の流れを示すフローチャートである。図17のS2100~S2102までの各処理は、図6のS100~S102までの各処理と同一であるため、詳細な説明を省略する。S2102の後、入力受付部111は、図示しないマイクロホンによって、現実世界の音(ユーザ端末10の外部の音)を表す音情報を取得する(S2104)。キャラクタ制御部114は、音情報の音量が、所定の閾値を超えるか否かを判定する(S2106)。音情報の音量とは、音情報に規定される、現実世界の音の音量のことである。キャラクタ制御部114は、判定結果に応じた態様で、キャラクタC11を制御する(S2108)。キャラクタ制御部114は、具体的には、判定結果が真である場合、キャラクタC11を第1態様で制御し、判定結果が偽である場合、キャラクタC11を、第1態様とは異なる第2態様で制御する。
キャラクタ制御部114は、例えば、音量が閾値を超えると判定した場合、現実世界の賑やかさに言及した音声を、キャラクタC11に発話させる。さらに、賑やかさを表現した動作(耳を塞ぐなど)を、キャラクタC11に実行させる。一方、キャラクタ制御部114は、音情報の音量が閾値を超えないと判定した場合、現実世界の静かさに言及した音声をキャラクタC11に発話させる。さらに、静かさを表現した動作を、キャラクタC11に実行させる。
本例では、ユーザ端末10は、撮影画像に重畳して表示されるキャラクタC11が、現実世界に流れる音の音量に応じた自然な振る舞いを見せる様子を、ユーザに知覚させることができる。これにより、キャラクタC11が現実世界に存在するかのような実在感を、より向上させることできる。
上述した例では、キャラクタ制御部114が、音情報の音量が閾値を超えるか否かの判定結果に基づいてキャラクタC11を制御する例を、説明した。しかし、これに限らず、キャラクタ制御部114は、音情報の内容に基づいてキャラクタC11を制御してもよい。キャラクタ制御部114は、例えば、ユーザの方を向くようにユーザがキャラクタC11に呼びかける音声が、取得した音情報に含まれると判定した場合、キャラクタC11の正面がユーザの方を向くように、キャラクタC11を動作させる。キャラクタ制御部114は、あるいは、取得した音情報に基づいて一定のリズムを検出した場合、楽曲に言及した音声をキャラクタC11に発話させる。
(撮影画像の特徴に基づく制御)
上述した例では、キャラクタ制御部114が、現実世界の撮影画像の特徴を判定することなくキャラクタC11を制御する例を、説明した。しかし、これに限らず、キャラクタ制御部114は、現実世界の撮影画像の特徴を判定し、かつ、判定結果に応じた態様でキャラクタC11を制御してもよい。キャラクタ制御部114は、例えば、撮影画像に所定の色が多く含まれると判定した場合、その色に言及した音声を、キャラクタC11に発話させる。キャラクタ制御部114は、例えば、撮影画像に人物のシルエットが含まれないと判定した場合、人物が近くに居ないことに言及した音声を、キャラクタC11に発話させる。キャラクタ制御部114は、例えば、撮影画像に所定の形状の物体が含まれると判定した場合、その物体に言及した音声を、キャラクタC11に発話させる。キャラクタ制御部114は、例えば、撮影画像に空の稜線の形状が含まれると判定した場合、景色が良いことに言及した音声を、キャラクタC11に発話させる。キャラクタ制御部114は、他に、撮影画像に基づいて現実世界が暗い(または明るい)と判定した場合、現実世界の暗さ(または明るさ)に言及した音声を、キャラクタC11に発話させる。なお、キャラクタ制御部114は、現実世界の明るさまたは暗さを、撮影画像以外の情報(気象情報など)に基づいて判定することもできる。
(現在時刻に基づく制御)
上述した例では、キャラクタ制御部114が、位置情報に基づいてキャラクタC11を制御する例を説明した。しかし、これに限らず、キャラクタ制御部114は、AR機能の実行中の現在時刻に基づいて、キャラクタC11を制御してもよい。キャラクタ制御部114は、例えば、AR機能の実行中の現在時刻がいずれの時間帯に含まれるのかを判定し、判定結果に応じた態様でキャラクタC11を制御する。キャラクタ制御部114は、具体的には、AR機能の実行中の現在時刻が昼の時間帯に含まれると判定した場合、昼の時間帯に応じた態様でキャラクタC11を制御する。キャラクタ制御部114は、より具体的には、現在時刻が昼の時間帯に含まれると判定した場合、キャラクタC11に、昼の時間帯に相応しい服装(制服など)を着衣させる。キャラクタ制御部114は、具体的には、AR機能の実行中の現在時刻が夜の時間帯に含まれると判定した場合、夜の時間帯に応じた対応でキャラクタC11を制御する。キャラクタ制御部114は、より具体的には、現在時刻が夜の時間帯に含まれると判定した場合、キャラクタC11に、夜の時間帯に相応しい服装(寝間着など)を着衣させる。
(交流シーン再現)
上述した各実施形態では、キャラクタ制御部114が、AR機能の実行中にキャラクタC11をリアルタイムに制御する例を説明した。しかし、これに限らず、キャラクタ制御部114は、AR機能の実行中におけるキャラクタC11の制御を、後日、再現してもよい。本例では、端末制御部110は、AR機能の実行中に取得した撮影画像、位置情報、および音情報、ならびにキャラクタC11の制御内容を示す制御情報(動作情報、音声情報、服装情報など)を、互いに関連付けて、データ記憶部120に記憶させる。端末制御部110は、後日、記憶された各情報を用いることによって、AR機能の実行中におけるキャラクタC11の制御を再現する。これにより、端末制御部110は、ユーザが過去にキャラクタC11と一緒に行った場所での交流シーンを、後日、任意の場所で再現することによって、ユーザに再度楽しませることができる。
キャラクタ制御部114は、その際、AR機能の実行中には選択しなかった通りの態様で、キャラクタC11を制御すればよい。これにより、端末制御部110は、過去の交流シーンをキャラクタC11が回想する態様で、交流シーンを再現することができる。キャラクタ制御部114は、あるいは、AR機能の実行中には選択しなかった別の態様で、キャラクタC11を制御してもよい。例えば、AR機能の実行時に、音情報の音量が閾値を超えていたが、賑やかさに言及した音声をキャラクタC11に発話させなかったとする。この際、端末制御部110は、賑やかさに言及したキャラクタの音声を表す音声情報を、撮影画像などに関連付けて、データ記憶部120に記憶させる。キャラクタ制御部114は、過去の交流シーンの再現時に、再現対象の撮影画像に関連付けて記憶されている音情報に基づいて、賑やかさに言及した音声をキャラクタC11に発話させる。
以上のように、本変形例に係る端末制御部110は、過去にAR機能を実行した際に再生した通りの交流シーンを再現することができる。しかし、これに限らず、端末制御部110は、過去にAR機能を実行した際に取得した状況情報(位置情報、音情報など)を用いて、過去に再生した交流シーンとは異なるパターンの交流シーンを再生することも出来る。これらにより、交流シーンを再現する際のキャラクタC11の振る舞いに多様性を生じさせることができるため、ゲームの興趣性を向上させることができる。
(交流シーン共有)
上述した各実施形態では、ユーザ端末10が、AR機能の実行中におけるユーザとキャラクタC11との交流シーンを他のユーザに共有させない例を、説明した。しかし、これに限らず、ユーザ端末10は、AR機能の実行中におけるユーザとキャラクタC11との交流シーンを、他のユーザに共有させてもよい。本変形例では、ユーザ端末10は、ユーザがAR機能を用いてキャラクタC11と交流した位置(場所)を、ゲームサーバ30に登録する。例えば、あるユーザが所持するユーザ端末10-1が、AR機能の実行時に取得した撮影画像、位置情報、制御対象のキャラクタを表すキャラクタ情報、および制御内容(動作、音声、衣装など)を表す制御情報を、ゲームサーバ30に送信する。ゲームサーバ30は、受信した各情報を、互いに関連付けてデータ記憶部320に記憶させる。これにより、交流位置がゲームサーバ30に登録される。
この後、他のユーザが、登録された位置の近くの場所を訪問したとする。このとき、他のユーザが所持するユーザ端末10-2が、ユーザ端末10-2の位置情報を取得し、ゲームサーバ30に送信する。ゲームサーバ30は、ユーザ端末10-2から受信した位置情報に近い位置情報に関連付けられてデータ記憶部320に記憶されている撮影画像および制御情報を、ユーザ端末10-2に送信する。ユーザ端末10-2は、取得した撮影画像および制御情報と、ユーザ端末10-2において選択されているキャラクタC12を表すキャラクタ情報とを用いることによって、ユーザ端末10-1におけるキャラクタC11との交流シーンを再現する。
具体的には、ユーザ端末10-2は、受信した撮影画像と、撮影画像の内部に配置されているキャラクタC12とを表示部14に表示させると共に、受信した制御情報に基づいてキャラクタC12を制御する。これにより、ユーザ端末10-2は、あるユーザがキャラクタC11と交流したシーンを、ユーザ端末10-2において選択されているキャラクタC12を制御対象として、ユーザ端末10-2において再現する。このように、ユーザ端末10-2は、あるユーザがお勧めする位置がゲームサーバ30に登録されると、お勧めの位置および撮影画像での交流シーンを、お勧めの位置の近くに来た他のユーザに体験させることができる。言い換えれば、ゲームシステム1は、お勧めの位置での交流シーンを、異なるユーザ間で共有させることができる。
ユーザ端末10-2は、ゲームサーバ30からキャラクタ情報をさらに取得してもよい。この場合、ユーザ端末10-2は、ユーザ端末10-2において選択されているキャラクタC12ではなく、取得したキャラクタ情報が表すキャラクタC11を、制御対象のキャラクタとして選択する。したがって、あるユーザがキャラクタC11と交流したシーンを、ユーザ端末10-2においてそのまま再現することができる。
(カメラの種別に基づく制御)
上述した各実施形態では、ユーザ端末10が1つのカメラを備えている例を説明した。しかし、これに限らず、ユーザ端末10は、2つ以上の異なるカメラを備えていてもよい。本変形例では、ユーザ端末10は、撮影画像の取得に用いるカメラの種類に応じて異なる態様で、キャラクタC11を制御する。例えば、ユーザ端末10が、図示しないインカメラ(第1撮影部)およびアウトカメラ(第2撮影部)を備えているものとする。インカメラはユーザ端末10の表面に設けられ、アウトカメラはユーザ端末10の裏面に設けられている。ユーザ端末10の表面は、ユーザ端末10における表示部14の表示面と同一の面であり、裏面は、ユーザ端末10における表面と対向する面である。インカメラは、ユーザが、表示部14に表示されるユーザの画像を視認しながら、ユーザ自身の姿を撮影するために主に用いられる。アウトカメラは、ユーザが、ユーザの周囲の現実世界を視認しながら、周囲の現実世界を撮影するために主に用いられる。
撮影制御部112は、AR機能の実行中に、インカメラおよびアウトカメラのうちいずれかを用いて、現実世界の撮影画像を取得する。表示制御部115は、AR機能の実行中に、インカメラおよびアウトカメラのうちいずれかを用いて撮影した現実世界の撮影画像と、撮影画像の内部に配置されているキャラクタC11とを、表示部14に表示させる。インカメラの使用時には、例えば、撮影画像に含まれるユーザの画像と並ぶ位置に配置されているキャラクタC11を、表示部14に表示させる。アウトカメラの使用時には、現実世界の撮影画像との間に違和感を生じさせない位置に重畳されているキャラクタC11を、表示部14に表示させる。
キャラクタ制御部114は、撮影画像Z11の取得に、インカメラおよびアウトカメラのうちいずれが用いられたのかを判定し、かつ、判定結果に応じた態様でキャラクタC11を制御する。例えば、撮影画像Z11の取得にインカメラが用いられたと判定した場合、キャラクタC11が実行可能な複数の動作のうち、特定の動作の実行を禁止する。さらに、禁止した動作の変わりに、代替動作としてキャラクタC11に予め設定されている他の動作を、キャラクタC11に実行させる。禁止される動作は、例えば、他の動作に比べてキャラクタC11の動く範囲が大きい動作である。また、代替の動作は、例えば、禁止される動作に比べて、キャラクタC11の動きの範囲が小さい動作である。このように、インカメラの使用時に、動きの範囲が大きい動作の実行を禁止することによって、キャラクタC11の全身が表示部14の表示範囲内に収まらなくなることを防止することができる。
上述した変形例では、キャラクタ制御部114が、撮影画像Z11の取得にインカメラおよびアウトカメラのうちいずれを用いたかの判定に基づいて、キャラクタの制御内容を変更する例を、説明した。しかし、これに限らず、キャラクタ制御部114は、インカメラおよびアウトカメラのうちいずれを用いたかの判定に代えて、インカメラまたはアウトカメラを用いて取得した撮影画像Z11の特徴を判定した結果に基づいて、キャラクタC11を制御してもよい。キャラクタ制御部114は、例えば、取得した撮影画像Z11に人物が大きく写っていることを判定した場合、キャラクタC11が実行可能な複数の動作のうち、特定の動作の実行を禁止する。
〔まとめ〕
以上に例示した形態から、例えば以下の構成が把握される。なお、各態様の理解を容易にするために、以下では、図面の参照符号を便宜的に括弧書で付記するが、本発明を図示の態様に限定する趣旨ではない。
本発明の一態様に係るゲームプログラムは、表示部(14)を備えているコンピュータ(ユーザ端末10)に、現実世界の撮影画像(Z11)と、撮影画像(Z11)の内部に配置されているゲームのキャラクタ(C11)とを、表示部(14)に表示させるステップ(S102)と、前記現実世界の状況に関する状況情報を取得するステップ(S104)と、異なる時点で取得した複数の前記状況情報に基づいて、前記キャラクタ(C11)を制御するステップ(S106)とを実行させる。
前記の構成によれば、異なる時点で取得された現実世界の複数の状況情報に基づいてキャラタクを制御するため、ユーザがキャラクタと共に体験した現実世界の状況の変遷に応じた適切な態様で、キャラクタを制御することができる。例えば、ユーザがキャラクタと共に特定の場所を久しぶりに訪れた際、その事実に言及する音声をキャラクタに発話させる、といった制御が実現される。このように制御されたキャラクタの振る舞いは、ユーザが体験した現実世界の状況の変遷に良く一致するため、現実世界におけるキャラクタの実在感を向上することができる。
上述したゲームプログラムにおいて、前記ゲームプログラムは、制御対象の前記キャラクタ(C12)を、複数のキャラクタ(C11,C12)の中から選択するステップを、コンピュータ(ユーザ端末10)に実行させ、前記表示部(14)に表示させるステップ(S102)では、選択した前記キャラクタ(C12)を前記表示部(14)に表示させ、前記ゲームプログラムは、取得した前記状況情報を、前記状況情報が取得された時点で選択されている前記キャラクタ(C12)に関連付けることによって管理するステップを、前記コンピュータ(ユーザ端末10)に実行させ、前記キャラクタ(C12)を制御するステップ(S106)では、前記キャラクタ(C12)に対応する複数の前記状況情報に基づいて、前記キャラクタ(C12)を制御することが好ましい。
前記の構成によれば、制御対象のキャラクタと無関係な状況情報に基づいてキャラクタを不自然に制御することが回避されるので、キャラクタをより自然に制御することができる。これにより、キャラクタの実在感をさらに向上することができる。
上述したゲームプログラムにおいて、前記状況情報を取得するステップ(S104)では、前記コンピュータ(ユーザ端末10)の位置情報を取得し、前記キャラクタ(C11)を制御するステップ(S106)では、前記キャラクタ(C11)に対応する複数の前記位置情報に基づいて、前記キャラクタ(C11)を制御することが好ましい。
前記の構成によれば、現実世界におけるユーザの位置の変遷に応じた適切な態様で、キャラクタを制御することができる。
上述したゲームプログラムにおいて、前記キャラクタ(C11)を制御するステップ(S106)では、異なる時点で取得した複数の前記状況情報に基づいて、前記キャラクタを制御することが好ましい。
本発明の一態様に係る端末装置(ユーザ端末10)は、表示部(14)と、現実世界の撮影画像(Z11)と、撮影画像(Z11)の内部に配置されているキャラクタ(C11)とを、前記表示部(14)に表示させる表示制御部(114)と、前記現実世界の状況に関する状況情報を取得する状況情報取得部(位置情報取得部113)と、異なる時点で取得した複数の前記状況情報に基づいて、前記キャラクタ(C11)を制御するキャラクタ制御部(115)とを備えている。
前記の構成によれば、上述したゲームプログラムと同様の作用効果を奏する。
本発明の一態様に係る方法は、表示部(14)を備えているコンピュータ(ユーザ端末10)が実行する方法であって、現実世界の撮影画像(Z11)と、前記撮影画像(Z11)の内部に配置されているゲームのキャラクタ(C11)とを、前記表示部(14)に表示させるステップ(S102)と、前記現実世界の状況に関する状況情報を取得するステップ(S104)と、異なる時点で取得した複数の前記状況情報に基づいて、前記キャラクタ(C11)を制御するステップ(S106)とを含む。
前記の構成によれば、上述したゲームプログラムと同様の作用効果を奏する。
本発明の一態様に係るゲームシステム(1)は、サーバ(ゲームサーバ30)と、表示部(14)を備えている端末装置(ユーザ端末10)とを備えているゲームシステム(1)であって、現実世界の撮影画像(Z11)と、撮影画像(Z11)の内部に配置されているキャラクタ(C11)とを、表示部(14)に表示させる表示制御部(114)と、前記現実世界の状況に関する状況情報を取得する状況情報取得部(位置情報取得部113)と、異なる時点で取得した複数の前記状況情報に基づいて、前記キャラクタ(C11)を制御するキャラクタ制御部(115)と備えている。
前記の構成によれば、上述したゲームプログラムと同様の作用効果を奏する。
〔ソフトウェアまたはハードウェアによる実現例〕
上述した実施形態および各変形例では、ユーザ端末10の機能構成が、ソフトウェアにより実現される例について説明した。すなわち、本発明の目的を達成するためにユーザ端末10によって実行されるゲームプログラムが、図2に示したユーザ端末10の記憶部15に記憶され、ユーザ端末10のCPU11が当該プログラムを読み取って実行することにより、ユーザ端末10の機能構成が実現される。
なお、この場合、ゲームプログラムを記憶する記憶部15としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。
また、ゲームプログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークまたは放送波等)を介して前記コンピュータに供給されてもよい。また、本発明の一態様は、プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
なお、ユーザ端末10の機能構成は、ソフトウェアによる実現に限らず、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現されてもよい。
本開示は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本開示の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成できる。