本開示に係るゲームシステムは、少なくとも1名のユーザにコンピュータゲームを提供する。以下、ゲームシステムについて図面を参照しつつ説明する。本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均などの意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
(ゲームシステム1のハードウェア構成)
図1は、ゲームシステム1のハードウェア構成を示す図である。図1に示すように、ゲームシステム1は、複数のユーザ端末100と、少なくとも1つのサーバ200とを含む。各ユーザ端末100は、ネットワーク2を介してサーバ200と接続する。ユーザ端末100は、ユーザの入力操作を受け付ける機能と、ゲームの画像および音声を出力する機能を有する。サーバ200は、ゲームを実現するために必要な各種のデータおよびプログラムを、各ユーザ端末100に提供する機能を有する。サーバ200は、さらに、各ユーザ端末100からゲームに関するデータを収集しかつ管理する機能を有する。サーバ200は、さらに、複数のユーザ端末100を同期させる機能を有する。
ネットワーク2は、たとえば、インターネット、移動通信システム、および無線ネットワークを含む。移動通信システムは、図示しない無線基地局によって構築され、たとえば、いわゆる3Gまたは4G移動通信システムおよびLTE(Long Term Evolution)を含む。無線ネットワークは、所定のアクセスポイントによってインターネットに接続可能であり、たとえばWi-Fi(登録商標)を含む。ユーザ端末100は、たとえば、スマートフォン、フィーチャーフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータなどの携帯端末である。サーバ200は、たとえば、ワークステーションまたはパーソナルコンピュータなどの汎用コンピュータである。
ゲームシステム1は、ユーザの入力操作に基づいてゲーム空間においてキャラクタに移動体を移動させることによって進行されるゲームを、ユーザ端末100を操作するユーザにプレイさせる。本開示の一局面において、ゲームは、スポーツゲームである。本実施形態では、ゲームシステム1は、仮想的なゴルフコース上でユーザにゴルフを疑似体験させるゴルフゲームをプレイする環境を、ユーザに提供する。
ゲームシステム1によって提供されるゲームは、シングルプレイおよびマルチプレイに対応する。シングルプレイは、ユーザが一人でゲームをプレイする態様である。ユーザが少なくとも1名の他のユーザと一緒に共通のゲーム空間においてゲームをプレイする態様である。サーバ200は、たとえば、マルチプレイに参加する複数のユーザを特定し、各ユーザの各ユーザ端末100と通信することによって、複数のユーザがゲームを一緒にプレイを環境を各ユーザに提供する。
図1に示すように、ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信インタフェース(IF)13、入出力IF14、およびタッチスクリーン15を備えている。タッチスクリーン15は、入力部151および表示部152を備えている。これらの部品は、ユーザ端末100において、図示しない通信バスによって互いに電気的に接続されている。
プロセッサ10は、ユーザ端末100全体の動作を制御する。プロセッサ10は、たとえば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。プロセッサ10は、ストレージ12からプログラムを読み出し、メモリ11に展開する。プロセッサ10は、メモリ11に展開したプログラムを実行する。
メモリ11は、主記憶装置である。メモリ11は、たとえば、ROM(Read Only Memory)およびRAM(Random Access Memory)などの記憶装置によって構成される。メモリ11は、プロセッサ10がストレージ12から読み出したプログラムおよび各種の情報などを一時的に記憶することによって、プロセッサ10に作業領域を提供する。メモリ11は、プロセッサ10がプログラムに従って動作している間に生成した各種データも、一時的に記憶する。
ストレージ12は、補助記憶装置である。ストレージ12は、たとえば、フラッシュメモリまたはHDD(Hard Disk Drive)などの記憶装置によって構成される。ストレージ12は、プロセッサ10によって実行されるゲームプログラムと、ゲームプログラムの実行時にプロセッサ10によって参照される各種の情報とが格納されている。各種の情報は、ゲームに関するゲーム情報と、ゲームをプレイするユーザに関するユーザ情報とを少なくとも含む。
通信IF13は、ユーザ端末100における各種データの送受信を制御する。通信IF13は、たとえば、無線LAN(Local Area Network)を介する通信、有線LAN、無線LAN、または携帯電話回線網を介するインターネット通信、ならびに近距離無線通信を制御する。
入出力IF14は、ユーザ端末100への情報の入力を受け付けるとともに、ユーザ端末100の外部に情報を出力するためのインタフェースとして機能する。入出力IF14は、たとえば、ユーザ端末100を構成する図示しない物理ボタン、カメラ、マイク、およびスピーカなどを含む。入出力IF14は、USB(Universal Serial Bus)ケーブルなどの、データを入出力するための物理ケーブルを含み得る。
タッチスクリーン15は、入力部151と表示部152とを組み合わせた電子部品である。入力部151は、その入力面に対するユーザのタッチ入力(タッチ操作)を検出することができるタッチセンシティブなデバイスであり、たとえばタッチパッドなどによって構成される。入力部151は、たとえば、図示しないタッチセンシング部を備えている。タッチセンシング部は、静電容量方式または抵抗膜方式などの任意の検知方式を採用した部品である。入力部151は、入力面に対してユーザの操作が入力された位置を検知して、位置を示す情報を入力信号として送信する機能を有する。ユーザの操作は、たとえば、タッチ操作、スライド操作、スワイプ操作、およびタップ操作などの物理的接触操作を含む。
表示部152は、ディスプレイの一種であり、テキストおよび画像などの各種の情報をその表示面に表示するデバイスである。表示部152は、たとえば液晶ディスプレイまたは有機EL(Electro-Luminescence)ディスプレイなどによって構成される。
カメラ17は、イメージセンサなどを含み、レンズから入射する入射光を電気信号に変換することで撮影画像を生成する。
測距センサ18は、測定対象物までの距離を測定するセンサである。測距センサ18は、たとえば、パルス変換した光を発光する光源と、光を受光する受光素子とを含む。測距センサ18は、光源からの発光タイミングと、発光された光が測定対象物にあたって反射される反射光の受光タイミングとにより、測定対象物までの距離を測定する。測距センサ18は、光源として、指向性を有する光を発光するものを有することとしてもよい。
ここで、ユーザ端末100が、カメラ17と測距センサ18とを用いて、ユーザ端末100の近傍の物体1010を検出した検出結果を、ユーザの入力操作として受け付ける例をさらに説明する。カメラ17および測距センサ18は、たとえば、ユーザ端末100の筐体の側面に設けられてもよい。カメラ17の近傍に測距センサ18が設けられてもよい。カメラ17としては、たとえば赤外線カメラを用いることができる。この場合、赤外線を照射する照明装置および可視光を遮断するフィルタなどが、カメラ17に設けられてもよい。これにより、屋外か屋内かにかかわらず、カメラ17の撮影画像に基づく物体1010の検出精度をいっそう向上させることができる。
プロセッサ10は、カメラ17の撮影画像に対して、たとえば以下の(1)〜(5)に示す処理のうち1つ以上の処理を行ってもよい。
(1)プロセッサ10は、カメラ17の撮影画像に対し画像認識処理を行うことで、当該撮影画像にユーザの手が含まれているか否かを特定する。プロセッサ10は、上述の画像認識処理において採用する解析技術として、たとえばパターンマッチングなどの技術を用いてよい。
(2)プロセッサ10は、ユーザの手の形状から、ユーザのジェスチャを検出する。プロセッサ10は、たとえば、撮影画像から検出されるユーザの手の形状から、ユーザの指の本数(伸びている指の本数)を特定する。プロセッサ10はさらに、特定した指の本数から、ユーザの行ったジェスチャを特定する。たとえば指の本数が5本である場合、ユーザが「パー」のジェスチャを行ったと判定し、指の本数が0本である(指が検出されなかった)場合、ユーザが「グー」のジェスチャを行ったと判定し、指の本数が2本である場合、ユーザが「チョキ」のジェスチャを行ったと判定する。
(3)プロセッサ10は、カメラ17の撮影画像に対し、画像認識処理を行うことにより、ユーザの指が人差し指のみ立てた状態であるか、ユーザの指がはじくような動きをしたかを検出する。
(4)プロセッサ10は、カメラ17の撮影画像の画像認識結果、および、測距センサ18の出力値などの少なくともいずれか1つに基づいて、ユーザ端末100の近傍の物体1010(ユーザの手など)とユーザ端末100との距離を検出する。たとえば、プロセッサ10は、カメラ17の撮影画像から特定されるユーザの手の形状の大小により、ユーザの手がユーザ端末100の近傍(たとえば所定値未満の距離)にあるか、遠く(たとえば所定値以上の距離)にあるかを検出する。なお、撮影画像が動画の場合、プロセッサ10は、ユーザの手がユーザ端末100に接近しているか遠ざかっているかを検出してもよい。
(5)プロセッサ10は、カメラ17の撮影画像の画像認識結果などにより、ユーザの手が検出されている状態で、ユーザ端末100とユーザの手との距離が変化している場合、ユーザが手をカメラ17の撮影方向において振っていると認識する。プロセッサ10は、カメラ17の撮影範囲よりも指向性が強い測距センサ18において、物体を検出したりしなかったりする場合に、ユーザが手をカメラの撮影方向に直交する方向に振っていると認識する。
これらのように、プロセッサ10は、カメラ17の撮影画像に対する画像認識により、ユーザが手を握りこんでいるか否か(「グー」のジェスチャであるか、それ以外のジェスチャ(たとえば「パー」)であるか)を検出する。また、プロセッサ10は、ユーザの手の形状と共に、この手をどのように移動させているか、また、ユーザ端末100に対して接近させているか遠ざけているかを検出する。このような操作は、たとえば、マウスまたはタッチパネルなどのポインティングデバイスを用いた操作に対応させることができる。ユーザ端末100は、たとえば、ユーザの手の移動に応じて、タッチスクリーン15においてポインタを移動させ、ユーザのジェスチャ「グー」を検出する。この場合、ユーザ端末100は、ユーザが選択している状態(マウスのクリック継続、タッチパネルへのタッチダウンおよびタッチの継続)と判別する。また、ユーザ端末100は、ユーザのジェスチャ「グー」が検出されている状態で、さらにユーザが手を移動させると、当該移動をスワイプ操作(またはドラッグ操作)と判別することもできる。また、ユーザ端末100は、たとえば、カメラ17の撮影画像によるユーザの手の検出結果において、ユーザが指をはじくようなジェスチャを検出した場合に、マウスのクリック、または、タッチパネルへのタップ操作に対応する処理をすることとしてもよい。
図1に示すように、ユーザ端末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または他のユーザ端末100と通信せずに、1台のユーザ端末100によりローカルでマルチプレイを実現することができる。また、各ユーザ端末100が無線LAN(Local Area Network)規格などの無線規格により互いに通信接続する(サーバ200を介さずに通信接続する)ことで、複数台のユーザ端末100によりローカルでマルチプレイを実現することもできる。1台のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、ユーザ端末100は、さらに、サーバ200が備える後述する種々の機能の少なくとも一部を備えていてもよい。また、複数のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、複数のユーザ端末100は、サーバ200が備える後述する種々の機能を分散して備えていてもよい。
なお、ローカルで上述のマルチプレイを実現する場合であっても、ユーザ端末100はサーバ200と通信してもよい。ユーザ端末100は、たとえば、あるゲームにおける勝敗などの結果を示す情報と、ユーザ識別情報とを対応付けてサーバ200に送信してもよい。
また、コントローラ1020は、ユーザ端末100に着脱可能な構成であるとしてもよい。この場合、ユーザ端末100の筐体における少なくともいずれかの面に、コントローラ1020との結合部が設けられていてもよい。当該結合部を介して有線によりユーザ端末100とコントローラ1020とが結合している場合は、ユーザ端末100とコントローラ1020とは、信号を有線を介して送受信する。
図1に示すように、ユーザ端末100は、外部のメモリカードなどの記憶媒体1030の装着を、入出力IF14を介して受け付けてもよい。これにより、ユーザ端末100は、記憶媒体1030に記録されるプログラムおよびデータを読み込むことができる。記憶媒体1030に記録されるプログラムは、たとえばゲームプログラムである。
ユーザ端末100は、サーバ200などの外部の装置と通信することにより取得したゲームプログラムをユーザ端末100のメモリ11に記憶してもよいし、記憶媒体1030から読み込むことにより取得したゲームプログラムをメモリ11に記憶してもよい。
以上で説明した通り、ユーザ端末100は、当該ユーザ端末100に対して情報を入力する機構の一例として、通信IF13、入出力IF14、タッチスクリーン15、カメラ17、および、測距センサ18を備える。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
たとえば、操作部が、カメラ17および測距センサ18のいずれか一方または両方で構成される場合、当該操作部が、ユーザ端末100の近傍の物体1010(たとえば、ユーザの手、予め定められた形状のマーカーなど)を検出し、当当該物体の検出結果(検出した物体の色、形状、動き、種類など)から入力操作を特定する。より具体的には、ユーザ端末100は、カメラ17の撮影画像からユーザの手が検出された場合、当該撮影画像に基づき検出されるジェスチャ(ユーザの手の一連の動き)を、ユーザの入力操作として特定し、受け付ける。なお、撮影画像は静止画であっても動画であってもよい。
あるいは、操作部がタッチスクリーン15で構成される場合、ユーザ端末100は、タッチスクリーン15の入力部151に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF13で構成される場合、ユーザ端末100は、コントローラ1020から送信される信号(たとえば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF14で構成される場合、当該入出力IF14と接続されるコントローラ1020とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
ユーザ端末100は、ユーザによるユーザ端末100の保持姿勢を特定するための1以上のセンサ(不図示)を備えていてもよい。このセンサは、たとえば、加速度センサ、または、角速度センサなどであってもよい。ユーザ端末100が、このセンサを備えている場合、プロセッサ10は、センサの出力からユーザ端末100の保持姿勢を特定して、保持姿勢に応じた処理を行うことも可能になる。たとえば、プロセッサ10は、ユーザ端末100が縦向きに保持されているときには、縦長の画像を表示部152に表示させる縦画面表示としてもよい。一方、ユーザ端末100が横向きに保持されているときには、横長の画像を表示部に表示させる横画面表示としてもよい。このように、プロセッサ10は、ユーザ端末100の保持姿勢に応じて縦画面表示と横画面表示とを切り替え可能であってもよい。
図1に示すように、サーバ200は、プロセッサ20、メモリ21、ストレージ22、通信IF23、および入出力IF24を備えている。これらの部材は、サーバ200において、図示しない通信バスによって互いに電気的に接続されている。プロセッサ20、メモリ21、ストレージ22、通信IF23、および入出力IF24の機能は、基本的に、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14とそれぞれ同一である。そのため、これらの詳細については説明を繰り返さない。
(ユーザ端末100の機能的構成c)
図2は、ユーザ端末100の機能的構成を示すブロック図である。この図に示すように、ユーザ端末100は、制御部110および記憶部120を備えている。言い換えると、ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14などの協働によって、制御部110および記憶部120として機能する。
記憶部120は、ゲームをユーザに提供するためにユーザ端末100によって用いられる各種の情報を記憶する。図2に示すように、記憶部120は、ゲームプログラム121、ゲーム情報122、およびユーザ情報123を記憶する。ゲームプログラム121は、ユーザ端末100によって実行される、特定のゲームをユーザに提供するためのプログラムである。一局面において、ゲームプログラム121は、プロセッサ10およびメモリ11を備えるユーザ端末100に対し、コンピュータゲームを進行させる制御部110および記憶部120としてユーザ端末100を機能させるプログラムである。記憶部120は、ユーザ端末100がサーバ200から受信する各種の情報も記憶する。
ゲーム情報122は、ゲームプログラム121の実行時に制御部110によって参照される、ゲームに関する情報である。ゲーム情報122は、たとえば、ゲーム空間に関する情報と、ゲーム空間に配置されるオブジェクトに関する情報を少なくとも含む。オブジェクトは、たとえば、操作体、移動体、および固定体を含む。操作体は、たとえば、ユーザによって操作されることが可能であり、かつ、ユーザの操作に基づいてゲーム空間内を移動することができるキャラクタ(プレイヤキャラクタ)である。移動体は、たとえば、ユーザによって操作されず、かつ、キャラクタから与えられた作用に基づいてゲーム空間内を移動することができるオブジェクトである。固定体は、たとえば、ユーザによって操作されず、かつ、ゲーム空間における規定の位置に固定的に配置されるオブジェクトである。
ゲームがゴルフゲームの場合、ゲーム空間は仮想的なゴルフコースであり、キャラクタは仮想的なゴルファーであり、移動体は仮想的なゴルフボールであり、かつ、固定体はゴルフコースを構成する仮想的なフェアウェイ、バンカー、およびグリーンなどである。
オブジェクト情報は、オブジェクトの属性を表す情報を含む。オブジェクトの属性は、たとえば、ゲーム空間が構築されるときにオブジェクトがゲーム空間に初期的に配置される位置を含む。オブジェクトの属性は、さらに、オブジェクトの外観に関する属性(形状、大きさ、および色など)を含む。
ユーザ情報123は、ゲームプログラム121の実行時に制御部110によって参照される、ゲームをプレイするユーザに関するデータである。ユーザ情報123は、たとえば、ユーザID、資産情報、性能情報、用具情報、および進行情報を含む。ユーザIDは、ユーザを識別するための識別子である。ユーザがゲームをマルチプレイ中の場合、ユーザ情報123は、マルチプレイ時に一緒にゲームをプレイする他のユーザのユーザIDをさらに含む。資産情報は、ゲームのプレイ中にユーザが用いることができる仮想的な資産に関する情報である。資産は、たとえば、ゲーム内通貨およびアイテムを含む。性能情報は、ユーザによって操作されるキャラクタの性能を示すパラメータである。用具情報は、キャラクタによって用いられる用具の種類およびその性能を示すパラメータである。進行情報は、ゲームにおけるプレイの進行度合いを表す情報である。
記憶部120には、たとえば、ユーザ端末100を所持するユーザに関するユーザ情報123が記憶され、他のユーザ端末100を所持するユーザに関するユーザ情報123は記憶されない。
制御部110は、ユーザ端末100の動作を統括的に制御する。制御部110は、ゲームプログラム121の記述に基づいて、送受信部111、操作受付部112、端末処理部113、データ管理部114、オブジェクト制御部115、仮想カメラ制御部116、および表示制御部117として機能する。言い換えると、制御部110は、送受信部111〜表示制御部117を備えている。
送受信部111は、ゲームの進行に必要な情報をサーバ200から受信したり、サーバ200に送信したりする。送受信部111は、たとえば、ゲームの進行に伴ってユーザ端末100によって生成された各種の情報を、サーバ200に送信する。送受信部111は、ゲームの進行に伴ってサーバ200によって生成された情報を、サーバ200から受信する。送受信部111は、ゲームの進行に伴ってサーバ200が他のユーザ端末100から受信しかつユーザ端末100に転送した情報を、受信することもできる。
操作受付部112は、入力部151に対するユーザの入力操作を検知する。操作受付部112は、入力部151およびその他の入出力IF14を介したコンソールによる操作指示などから、いかなる入力がなされたかを判別し、その結果を制御部100の各要素に出力する。操作受付部112は、入力部151における入力操作の位置を表す座標情報と、入力操作の種類とを検知する。操作受付部112は、連続して検知されていた入力が途切れることを検知することによって、入力部151から接触入力が解除されたことを検知する。操作受付部112は、入力部151に対するユーザの操作を判別することができる。操作受付部112は、たとえば、タッチオン操作、タッチオフ操作、タップ操作、スワイプ操作、スライド操作、フリック操作、およびその他の操作を判別する。
タッチオン操作は、入力部151に対する物体の接触または近接による入力操作を開始させる操作である。タッチオフ操作は、入力部151に対する物体の接触または近接を解除することによって、入力部151への入力操作を解除する操作である。タップ操作は、ユーザがタッチオン操作の直後にタッチオフ操作を行う操作である。スワイプ操作は、タッチオン操作に引き続いて入力され、入力部151に対する物体の接触または近接を維持した状態で、当当該物体を入力部151上で移動させる操作である。スライド操作は、ユーザがスワイプ操作を予め定められた時間よりも短い時間で行う操作である。フリック操作は、ユーザがスライド操作後にタッチオフ操作を行う操作であり、たとえば、ユーザが入力部151を指で弾く操作である。
端末処理部113は、ゲームの進行に必要な各種の処理を実行する。端末処理部113は、たとえば、ゲームの進行に基づいて生成される各種のパラメータを、オブジェクトに設定する。端末処理部113は、たとえば、ゲームの進行に必要な各種の判定処理を実行する。
データ管理部114は、記憶部120に記憶される少なくともユーザ情報123を管理する。データ管理部114は、たとえば、ゲームの進行結果に基づいて、ユーザ情報123を最新の状態に更新する。
オブジェクト制御部115は、ゲーム空間に配置されるオブジェクトを制御する。オブジェクト制御部115は、たとえば、キャラクタに対するユーザの入力操作に基づいてキャラクタを動作させる。オブジェクト制御部115は、さらに、移動体に対するキャラクタの作用に基づいて、ゲーム空間内において移動体を移動させる。
仮想カメラ制御部116は、ゲーム空間における仮想カメラの挙動(カメラワーク)を制御する。仮想カメラは、ゲーム空間のうちユーザに提示される領域を指定する仮想的なカメラである。仮想カメラは、ゲーム空間のうち仮想カメラの撮影範囲(視野領域)に含まれる箇所を撮影することによって、撮影範囲に対応する撮影画像を生成する。仮想カメラ制御部116は、ゲーム空間における仮想カメラの位置および向きを設定することによって、仮想カメラを制御する。
表示制御部117は、ゲームの一場面に対応するゲーム画面を生成し、かつ表示部152に表示させることによって、ゲームのプレイ環境をユーザに提供する。ゲーム画面は、仮想カメラによるゲーム空間の撮影画像を少なくとも含む。ゲーム画面は、撮影画像に重畳して表示される、ゲームに関するユーザインタフェース、画像、およびテキストなどの表示情報をさらに含む。表示制御部117は、ゲーム画面にアイコン、ボタン、または、各種パラメータを示すメニューなどの、キャラクタを操作するためのユーザインタフェースを表示させることもできる。
(サーバ200の機能的構成)
図3は、サーバ200の機能的構成を示すブロック図である。この図に示すように、サーバ200は、制御部210および記憶部220を備えている。言い換えると、サーバ200は、プロセッサ20、メモリ21、ストレージ22、通信IF23、および入出力IF24などの協働によって、制御部210および記憶部220として機能する。
記憶部220は、ゲームをユーザに提供するためにサーバ200によって用いられる各種の情報を記憶する。図3に示すように、記憶部120は、ゲームプログラム221、ゲーム情報222、およびユーザ情報223を記憶する。ゲームプログラム221は、サーバ200によって実行される、特定のゲームをユーザに提供するためのプログラムである。ゲームプログラム221は、ユーザ端末100おいて実行されるゲームプログラム121と必要に応じて協働することによって、ユーザ端末100においてゲームを進行させる。一局面において、ゲームプログラム221は、プロセッサ20およびメモリ21を備えるサーバ200に対し、コンピュータゲームを進行させる制御部210および記憶部220としてサーバ200を機能させるプログラムである。記憶部220は、サーバ200がユーザ端末100から受信する各種の情報も記憶する。
ゲーム情報222は、ゲームプログラム221の実行時に制御部210によって参照される、ゲームに関する情報である。ゲーム情報222は、たとえば、ユーザ端末100の記憶部120に記憶されるゲーム情報122と同一の情報である。
ユーザ情報123は、ゲームプログラム221の実行時に制御部210によって参照される、ゲームをプレイするユーザに関するデータである。記憶部220には、たとえば、複数のユーザのそれぞれを表す複数のユーザ情報123が、記憶される。個々のユーザ情報123は、複数のユーザ端末100のうちいずれかのユーザ端末100の記憶部120に記憶されるユーザ情報123と、同一である。
制御部210は、サーバ200の動作を統括的に制御する。制御部210は、ゲームプログラム221の記述に基づいて、送受信部211、サーバ処理部212、データ管理部213、および同期制御部215として機能する。言い換えると、制御部210は、送受信部211〜同期制御部215を備えている。
送受信部211は、ゲームの進行に必要な情報をユーザ端末100から受信したり、ユーザ端末100に送信したりする。送受信部211は、たとえば、ゲームの進行に伴ってユーザ端末100によって生成された各種の情報を、ユーザ端末100から受信する。送受信部111は、ゲームの進行に伴ってサーバ200によって生成された情報を、ユーザ端末100に送信することによって、ユーザ端末100におけるゲームのプレイを進行させる。
サーバ処理部212は、サーバ200におけるゲームの進行に必要な各種の処理を実行する。
データ管理部213は、記憶部220に記憶される少なくともユーザ情報222を管理する。データ管理部114は、たとえば、ユーザ端末100から受信したユーザ情報123の更新情報に基づいてユーザ情報222を更新することによって、ユーザ端末100のユーザ情報123と、サーバ200に記憶される対応するユーザ情報222とを一致させる。
マッチング部214は、ゲームのマルチプレイに参加する複数のユーザをマッチングする。マッチング部214は、たとえば、複数のユーザ端末100のそれぞれから受信した特定のマルチプレイに対する参加を要求するための各情報に基づいて、複数のユーザ端末100のそれぞれに対応する複数のユーザのそれぞれを、互いにマッチングする。
同期制御部215は、ゲームのマルチプレイに参加する各ユーザによって用いられる各ユーザ端末100におけるゲームの各進行を、同期させる。同期制御部215は、たとえば、同期に必要な情報を各ユーザ端末100に送信するように、送受信部211を制御する。送受信部211は、たとえば、サーバ200によって生成された情報を、複数のユーザによって用いられる複数のユーザ端末100に一斉に送信する。送受信部211は、たとえば、複数のユーザのうちいずれかのユーザによって用いられるユーザ端末100から送受信部211が受信した情報を、複数のユーザのうち当該いずれかのユーザ以外の各他のユーザによって用いられる各ユーザ端末100に、転送する。
ゲームシステム1は、たとえば、ユーザ端末100が備える機能の少なくとも一部をサーバ200が備えるように構成されていてもよい。ゲームシステム1は、逆に、サーバ200が備える機能の少なくとも一部をユーザ端末100が備えるように構成されていてもよい。ゲームシステム1は、ユーザ端末100およびサーバ200以外の他の装置をさらに備えており、かつ、ゲームシステム1における処理の一部を他の装置に実行させてもよい。このように、ゲームシステム1においてゲームプログラム121および221を実行するコンピュータは、ユーザ端末100、サーバ200、および他の装置のいずれでもあり得る。
(シングルプレイに対応するゲーム空間3)
本開示の一局面において、ゲームシステム1は、ゴルフゲームのシングルプレイをプレイする機会を、ユーザ端末100を所持する一人のユーザに提供する。操作受付部112は、たとえばゴルフゲームのメニュー画面(不図示)を通じて、ゴルフゲームのシングルプレイを開始するためのユーザの入力操作を受け付ける。制御部100は、この入力操作に基づいて、記憶部120に保存されているゲーム情報122およびユーザ情報123を参照することによって、たとえば図4に示すように、シングルプレイに対応するゲーム空間3を構築する。
図4は、ゴルフゲームのシングルプレイに対応するゲーム空間3の一例を示す図である。ゲーム空間3は、架空のゴルフコースを表す仮想的な空間である。ゲーム空間3は、三次元的な広がり(大きさ)を有する。図4に示すように、ゲーム空間3は、ティーインググラウンド31(第1領域)、フェアウェイ32(第1領域)、ラフ33(第1領域)、池34(第2領域)、林35(第2領域)、バンカー36(第1領域、第2領域)、グリーン37(第1領域)、およびカップ38などの各種のオブジェクトを有する。
オブジェクト制御部115は、ゲーム空間3の構築時に、ゲーム情報122に基づいて、ティーインググラウンド31などの各種の地形オブジェクトを、ゲーム空間3における規定の位置に配置する。ティーインググラウンド31、フェアウェイ32、ラフ33、池34、林35、バンカー36、グリーン37、およびカップ38は、いずれも、仮想的な三次元の形状を有する。ティーインググラウンド31、フェアウェイ32、ラフ33、バンカー36、およびグリーン37は、互いに異なる属性を有し、かつ、仮想的な地形を表す地形オブジェクトである。各地形オブジェクトは、その属性に基づいて、地形オブジェクトにおいてショットされたボール42の飛翔のし易さを表すパラメータが設定されている。たとえば、フェアウェイ32に設定される飛翔パラメータは、バンカー36に設定される飛翔パラメータよりも大きい。カップ38は、ゴルフゲーム中にキャラクタ41がボール42を最終的に到達させる目標地点である。
オブジェクト制御部115は、さらに、キャラクタ41、ボール42(移動体)、およびクラブ43(用具)を、ティーインググラウンド31に配置する。キャラクタ41、ボール42、およびクラブ43は、いずれもオブジェクトの一種である。キャラクタ41は、ユーザによって操作される操作キャラクタの一種であり、かつ、たとえば架空のゴルファーを表す外観を有する。ボール42は、オブジェクトの一種であり、キャラクタ41によって作用を付与されるとゲーム空間3内を移動する移動体である。ボール42は、たとえば仮想的なゴルフボールを表す外観を有する。
クラブ43は、キャラクタ41に関連付けられるオブジェクトの一種であり、かつ、キャラクタ41がボール42をショットするために用いる仮想的な用具である。クラブ43は、たとえば架空のゴルフクラブを表す外観を有する。オブジェクト制御部115は、ゲーム空間3の構築時に、キャラクタ41に初期のクラブ43を関連付けて、ゲーム空間3に配置する。仮想カメラ制御部116は、図4に示すように、ゲーム空間3においてキャラクタ41、ボール42、およびクラブ43を仮想カメラ44の撮影範囲に含め、かつ、仮想カメラ44の方向がカップ38を向く位置に、仮想カメラ44を配置する。
ゴルフゲームのプレイ中に、キャラクタ41は、ユーザの入力操作に基づいてクラブ43によってボール42に作用を付与することによって、ゲーム空間3内でボール42を移動させる。本開示において、キャラクタ41がクラブ43を用いてボール42に作用を付与することを、必要に応じて「ボール42をショットする」と表現する。ゲーム空間3は、配置されるボール42をキャラクタ41がショットすることが許可される許可領域(第1領域)と、配置されるボール42をキャラクタ41がショットすることが禁止される禁止領域(第2領域)とを有する。ティーインググラウンド31、フェアウェイ32、ラフ33、バンカー36、およびグリーン37は、いずれも、許可領域の一種である。池34および林35は、いずれも禁止領域の一種である。
ゲームプログラム121に基づくゴルフゲームは、キャラクタ41にショットされたボール42がゲーム空間3内を移動することによって、進行する。ゴルフゲームに適用されるルールは、たとえば、現実のゴルフに適用されるルールに対応する。ユーザは、仮想カメラ44の撮影範囲に対応するゲーム画面を視認しながら、ゴルフゲームをプレイする。ゴルフゲームが開始されると、ユーザは、まず、ティーインググラウンド31に配置されるキャラクタ41を操作することによって、キャラクタ41にボール42をティーショットさせる。ショットの結果、ボール42は、ゲーム空間3内を移動する。ボール42は、たとえば、ゲーム空間3を飛翔したり、飛翔後に着地したフェアウェイ32などの地形オブジェクトにおいてバウンドしたり、地形オブジェクトの上を転がったりする。
ユーザは、移動先のボール42の位置までキャラクタ41を移動させ、それからキャラクタ41にボール42をさらにショットさせる。キャラクタ41がボール42をショットするたびに、ゲーム空間3においてボール42がショットされた回数(以下、ショット数)が一つ増加する。ボール42が池34または林35などの禁止領域に到達した場合、ペナルティとしてショット数が一つ増加する。ユーザは、より少ないショット数でボール42をカップ38に入れることを目指して、ゴルフゲームをプレイする。本開示の一局面において、ゲームシステム1は、キャラクタ41によってショットされたボール42がカップ38に入ったことに基づいて、ゲーム空間3におけるゴルフゲームのシングルプレイを終了させる。
(ティーショット)
図5は、ティーインググラウンド31に立ったキャラクタ41が表示されるゲーム画面4の一例を示す図である。表示制御部117は、図4のゲーム空間3に配置された仮想カメラ44によって生成された撮影画像に基づいて、たとえば図5に示すように、ゲーム画面4を表示部152に表示させる。図5のゲーム画面4は、キャラクタ41がボール42をティーショットする直前の場面に対応する。
表示制御部117は、ティーインググラウンド31、ラフ33、キャラクタ41、およびボール42が含まれる撮影画像を表示部152に少なくとも表示させる。ゲーム画面4において、キャラクタ41は、クラブ43を手に持ってティーインググラウンド31に立っている。初期のクラブ43は、たとえば、ティーショットに適したドライバーである。キャラクタ41は、ゲーム画面4の下部中央に配置される。ボール42は、ティーインググラウンド31に配置される。
表示制御部117は、さらに、ボタン51および52を、ゲーム画面4において撮影画像に重畳させて、表示部152に表示させる。ボタン51は、キャラクタ41によって用いられるクラブ43の種類をユーザに選択させるためのユーザインタフェースである。ボタン52は、ボール42をショットするための態勢(アドレス)にキャラクタ41を入らせるためのユーザインタフェースである。キャラクタ41がアドレスに入ることは、キャラクタ41がボール42をショットするためにクラブ43の先端をボール42に近づけて構えることを、意味する。ボタン51および52は、ゲーム画面4における規定の位置に配置される。図5のゲーム画面4において、ボタン51および52が配置される位置は、ゲーム画面4内の左側である。
(クラブ43の選択)
キャラクタ41は、ユーザの操作に基づいて、複数の異なるクラブ43のうちいずれかを用いて、ボール42をショットする。複数のクラブ43は、たとえば、ドライバー、アイアン、サンドウェッジ、およびパターを含む。各クラブ43には、クラブ43の性能を表すパラメータが設定される。クラブ43がドライバーの場合、クラブ43にはドライバーの性能を表すパラメータが設定される。一局面において、クラブ43の性能は、ボール42がショットされた場合のボール42の最大飛距離を含む。
図5の状態では、キャラクタ41はまだアドレスに入っておらず、クラブ43を用いてボール42をティーショットすることができない。ユーザは、キャラクタ41にボール42をショットさせるために、まず、キャラクタ41が用いるクラブ43を選択する。操作受付部112は、ボタン51に対するユーザの入力操作(たとえばタップ入力操作)を受け付ける。オブジェクト制御部115は、この入力操作に基づいて、キャラクタ41が用いるクラブ43をキャラクタ41に設定する。オブジェクト制御部115は、たとえば、ボタン51に対するユーザの入力操作が受け付けられるたびに、キャラクタ41に設定されるクラブ43の種類を切り替える。
表示制御部117は、たとえば、複数の異なるクラブ43のそれぞれに対応する複数の異なるボタン51を表示部152に表示させる。複数のボタン51は、ゲーム画面4における規定の領域に並んで配置される。オブジェクト制御部115は、いずれかのボタン51に対するユーザのタップ操作が受け付けられた場合、選択されたボタン51に対応するクラブ43をキャラクタ41に設定する。表示制御部117は、好ましくは、複数のボタン51のそれぞれを、対応するクラブ43の種類に応じた態様で表示部152に表示させる。クラブ43の種類に応じた態様は、たとえば、クラブ43の種類を表す画像がボタン51に含まれることである。ユーザは、各ボタン51を視認することによって、いずれのボタン51を選択すればいずれのクラブ43を選択することができるのかを、知ることができる。
オブジェクト制御部115は、キャラクタ41に設定されたクラブ43を、キャラクタ41に関連付けてゲーム空間3に配置する。図5のゲーム画面4において、キャラクタ41は、設定されたクラブ43をキャラクタ41の手に持っている。表示制御部117は、好ましくは、キャラクタ41に設定されるクラブ43が切り替えられるたびに、キャラクタ41に関連付けて表示されるクラブ43を切り替える。ユーザは、ゲーム画面4においてキャラクタ41が所持するクラブ43を視認することによって、ユーザが選択したクラブ43の種類を確認することができる。
(ショット方向の指定)
ユーザは、さらに、キャラクタ41にボール42をショットさせる方向を、指定する。操作受付部112は、ショット方向を指定するためのユーザの入力操作(たとえばスワイプ操作)を受け付ける。オブジェクト制御部115は、ショット方向を指定するためのユーザの入力操作に基づいて、キャラクタ41に設定されるショット方向を変更する。仮想カメラ制御部116は、たとえば、ショット方向を指定するためのユーザの入力操作に基づいて、仮想カメラ44の方向を変更する。
オブジェクト制御部115は、たとえば、ゲーム画面4における右方向へのスワイプ操作に基づいて、キャラクタ41に設定されるショット方向を、現在の方向よりも右側に変更する。仮想カメラ制御部116は、たとえば、ゲーム画面4における右方向へのスワイプ操作に基づいて、仮想カメラ44の方向を、現在の方向よりも右側に変更する。仮想カメラ制御部116は、たとえば、仮想カメラ44の向きを、キャラクタ41に新たに設定されたショット方向に平行な方向に変更する。これにより、ゲーム空間3におけるより右側の部分がゲーム画面4に含まれるように、ゲーム画面4が更新される。
オブジェクト制御部115は、たとえば、ゲーム画面4における左方向へのスワイプ操作に基づいて、キャラクタ41に設定されるショット方向を、現在の方向よりも左側に変更する。仮想カメラ制御部116は、たとえば、ゲーム画面4における左方向へのスワイプ操作に基づいて、仮想カメラ44の方向を、現在の方向よりも左側に変更する。仮想カメラ制御部116は、たとえば、仮想カメラ44の向きを、キャラクタ41に新たに設定されたショット方向に平行な方向に変更する。これにより、ゲーム空間3におけるより左側の部分がゲーム画面4に含まれるように、ゲーム画面4が更新される。
(アドレスへの移行)
ユーザは、クラブ43の選択後、キャラクタ41をアドレスに入らせる。操作受付部112は、ボタン52に対するユーザの入力操作(たとえばタップ入力操作)を受け付ける。オブジェクト制御部115は、この入力操作に基づいて、キャラクタ41をゲーム空間3においてアドレスに入らせる。表示制御部117は、オブジェクト制御部115によるキャラクタ41の制御に基づいて、キャラクタ41がアドレスに入る様子を、たとえば図6に示すように表示部152に表示させる。
図6は、ボール42をティーショットするためのアドレスに入ったキャラクタ41が表示されるゲーム画面4の一例を示す図である。図6のゲーム画面4において、キャラクタ41は、クラブ43の先端をボール42に近づけた状態でアドレスに入っている。表示制御部117は、ボタン52がタップされたことに基づいて、表示部152にボタン51およびボタン52をゲーム画面4から消去させる。図6のゲーム画面4には、ボタン51および52が配置されない。ユーザは、たとえば図6に示すようにキャラクタ41がアドレスに入った後、クラブ43を選択し直すことはできない。
(ティーショット用の操作オブジェクト61)
表示制御部117は、ボタン52がタップされたことに基づいて、ボール42が配置されるティーインググラウンド31に対応した操作オブジェクト61を、図6に示すように表示部152に表示させる。操作オブジェクト61は、ユーザによって操作されるユーザインタフェースの一種である。操作オブジェクト61は、詳細には、キャラクタ41にボール42をティーショットさせるための操作をユーザが入力するユーザインタフェースである。
操作オブジェクト61は、弾性領域62およびガイド63を有する。図6のゲーム画面4において、操作オブジェクト61は、全体として、ゲーム画面4内の右側に配置される。弾性領域62は、規定の形状およびサイズを有し、かつ、ゲーム画面4における規定の位置に配置される。図6では、弾性領域62は円形であり、かつ、ゲーム画面4内の右上に配置される。
ガイド63は、規定の形状およびサイズを有し、かつ、ゲーム画面4における規定の位置に配置される。図6では、ガイド63は、ゲーム画面4における規定の方向に延伸する細長い形状を有する。ガイド63は、さらに、その一端が弾性領域62に中心にあり、かつ、その他端がキャラクタ41の頭部に近い位置にあるように、ゲーム画面4に配置される。図6では、ガイド63は、ゲーム画面4の縦方向に対して規定の角度で傾斜するように、ゲーム画面4おいて斜めに配置される。ガイド63の全長は、キャラクタ41がクラブ43をバックスイングする際の最大のバックスイング量に対応する。
ユーザは、操作オブジェクト61を操作することによって、キャラクタ41にボール42をティーショットさせる。操作受付部112は、図6のゲーム画面4に配置される弾性領域62に対するユーザのタッチオン操作を受け付ける。操作受付部112は、さらに、タッチオン操作に続く、ユーザのドラッグ操作を受け付ける。表示制御部117は、ドラッグ操作に基づいて、図6に示すように弾性領域62を表示部152に表示させる。
(弾性領域62の変形)
図7は、弾性変形された弾性領域62が表示されるゲーム画面4の一例を示す図である。操作受付部112は、たとえば図7に示すように、ガイド63の延伸方向に沿った方向にユーザの指が移動するドラッグ操作を受け付ける。表示制御部117は、ドラッグ操作の方向に基づいて、弾性領域62が仮想的な弾性を有する仮想的なオブジェクトとして挙動するように、弾性領域62の表示を制御する。表示制御部117は、ゲーム画面4におけるユーザの指がタッチオンした第1位置から、ゲーム画面4におけるドラッグ操作によってユーザの指が移動した第2位置に向けて、弾性領域62の一部を引き延ばす。
表示制御部117は、さらに、ユーザのドラッグ操作に基づいて、ガイド63の表示態様を制御する。表示制御部117は、たとえば、ガイド63における弾性領域62側の端部から、ガイド63におけるユーザの指が接触する位置までの範囲(以下、指定範囲)を、ガイド63における指定範囲以外の範囲(以下、未指定範囲)と識別される態様で、表示部152に表示させる。図7のゲーム画面4において、指定範囲は未指定範囲よりも太く表示される。
(バックスイング量の設定)
端末処理部113は、ガイド63における指定範囲の長さに基づいたバックスイング量を、キャラクタ41に設定する。バックスイング量は、キャラクタ41によってショットされたボール42の飛距離に影響する。オブジェクト制御部115は、設定されたバックスイング量に基づいて、キャラクタ41にクラブ43をバックスイングさせる。オブジェクト制御部115は、バックスイング量がより大きいほど、キャラクタ41にクラブ43をより深く(より後方に)バックスイングさせる。表示制御部117は、キャラクタ41がクラブ43をバックスイングするアニメーションを、表示部152に表示させる。図7のゲーム画面4は、キャラクタ41が、設定されたバックスイング量に応じた位置までクラブ43をバックスイングさせた後の場面に対応する。
表示制御部117は、操作オブジェクト61に対するドラッグ操作時のドラッグ量が規定量を超えた場合、弾性領域62における弾性変形された一部分が引きちぎられるアニメーションを、表示部152に表示させる。表示制御部117は、さらに、弾性領域62の表示状態を弾性変形前の表示状態に戻す。表示制御部117は、さらに、引きちぎられた一部分を、アイコン64として表示部152に表示させる。
(アイコン64の表示)
図8は、ドラッグ操作に基づいてゲーム画面4内を移動するアイコン64が表示されるゲーム画面4の一例を示す図である。アイコン64は、操作オブジェクト61の一部を構成する。図8のゲーム画面4において、アイコン64は円形状を有する。アイコン64は、ゲーム画面4におけるユーザの指による現在の接触位置に配置される。ユーザは、所望のバックスイング量をキャラクタ41に指定するために、操作オブジェクト61に対するドラッグ操作を継続する。アイコン64は、ユーザのドラッグ操作に基づいて、ゲーム画面4内を移動する。表示制御部117は、たとえば図9に示すように、ガイド63の延伸方向に沿ったドラッグ操作における指の接触位置の変化に追随して、ゲーム画面4におけるアイコン64の表示位置をガイド63の延伸方向に沿って変更させる。
図9は、弾性領域62からより遠くに離れた位置にアイコン64が表示されるゲーム画面4の一例を示す図である。図9のゲーム画面4におけるドラッグ量は、図8のゲーム画面4におけるドラッグ量よりも大きい。したがって、図9のゲーム画面4に含まれるガイド63における指定範囲の長さは、図8のゲーム画面4に含まれるガイド63における指定範囲の長さよりも大きい。表示制御部117は、キャラクタ41がクラブ43をより深くバックスイングするアニメーションを、表示部152に表示させる。図9のゲーム画面4におけるクラブ43のバックスイング位置は、図8よりも深い。
表示制御部117は、好ましくは、ゲーム画面4においてガイド63に重畳する図示しない目盛りを、表示部152に表示させる。表示制御部117は、さらに、選択されたクラブ43に規定される最大飛距離を、表示部152に表示させる。ユーザは、最大飛距離および目盛りをそれぞれ参考にすることによって、ガイド63における所望のバックスイング量に対応する位置を、より容易に特定することができる。したがってユーザは、アイコン64を狙いの位置までより確実にドラッグすることができる。
(アイコン64のフリック)
操作受付部112は、所望のバックスイング量に対応する位置までアイコン64をドラッグするためのユーザのドラッグ操作を受け付ける。操作受付部112は、次に、ゲーム画面4においてアイコン64を弾性領域62に向けて移動させるためのユーザの入力操作(たとえばフリック操作)を受け付ける。操作受付部112は、たとえば、ユーザがアイコン64をドラッグした状態(指を入力部151に接触させた状態)で、ゲーム画面4におけるドラッグ操作の方向と逆の方向にアイコン64をフリックする入力操作を受け付ける。
表示制御部117は、フリック操作の方向および速度に基づいて、ゲーム画面4におけるアイコン64の移動方向および移動量をそれぞれ決定する。表示制御部117は、決定した移動方向および移動量でアイコン64が移動するアニメーションを、たとえば図10および図11に示すように、表示部152に表示させる。これによりゲーム画面4は、まず図9の状態から図10の状態に更新される。
図10は、ユーザのフリック操作に基づいてゲーム画面4内を移動する途中のアイコン64が表示されるゲーム画面4の一例を示す図である。図10のゲーム画面4において、アイコン64は、ユーザがアイコン64をフリックした位置から離れた位置に配置される。アイコン64は、弾性領域62に向かって移動する途中である。キャラクタ41は、クラブ43のバックスイングを維持した状態のままである。
(目標領域65の表示)
表示制御部117は、アイコン64に対するフリック操作に基づいて、図10に示すように目標領域65を表示部152に表示させる。目標領域65は、操作オブジェクト61の一部を構成する。目標領域65は、その中央に弾性領域62を有する状態で、ゲーム画面4に配置される。目標領域65は、弾性領域62に加えて、領域66、領域67、領域68、および領域69をさらに有する。領域66〜69は、目標領域65内において、それぞれ弾性領域62の上側、下側、左側、および右側に配置される。
目標領域65は、キャラクタ41によるショットに関する評価(以下、ショット評価)を特定するための領域である。ショット評価は、好ましくは、クラブ43からボール42に作用が付与された場合にボール42がゲーム空間3内を移動する際の軌道の種類(性質)を含む。ショット評価は、好ましくは、クラブ43からボール42に作用が付与されなかった場合のボール42の状態の性質を含む。ショット評価は、たとえば、ストレート、ダフ、テンプラ、フック、およびスライス、および空振りを含む。
ストレートは、ショット方向に沿って真っ直ぐに飛翔するボール42の軌道の種類である。ダフは、キャラクタ41の手前で少し転がるボール42の軌道である。テンプラは、飛翔時に高く上がり過ぎるボール42の軌道の種類である。スライスは、ショット方向よりもキャラクタ41の利き手方向に曲がって飛翔するボール42Aの軌道の種類である。フックは、ショット方向よりもキャラクタ41の利き手方向と反対の方向に曲がって飛翔するボール42Aの軌道の種類である。空振りは、空振りは、静止し続ける(移動しない)ボール42Aの状態の性質である。
目標領域65に含まれる各領域には、複数の異なるショット評価のうちいずれかが予め規定される。図10のゲーム画面4において、弾性領域62、領域66、領域67、領域68、および領域69に、ショット評価としてそれぞれストレート、ダフ、テンプラ、フック、およびスライスが規定される。ゲーム空間3における目標領域65の外部には、ショット評価として空振りが規定される。
(ショット評価の特定)
端末処理部113は、たとえば、ゲーム画面4におけるアイコン64の到達位置と目標領域65との位置関係に基づいて、ショット評価を特定する。ショット評価を特定することは、ショット結果の良否を判定することと同義である。端末処理部113は、目標領域65に含まれる複数の領域のうちいずれかにアイコン64が到達した場合、到達した領域に規定されるショット評価を、ボール42のティーショットに関するショット評価として特定する。端末処理部113は、たとえば、アイコン64が弾性領域62に到達した場合、弾性領域62に規定されるストレートを、ボール42のティーショットに関するショット評価として特定する。端末処理部113は、たとえば、目標領域65の外部にアイコン64が到達した場合、領域の外部に規定される空振りを、ボール42のティーショットに関するショット評価として特定する。
アイコン64は、図10に示すようにゲーム画面4内を移動した後、たとえば図11に示すように、決定された移動方向および移動量に基づくゲーム画面4内の位置に到達する。
(ショット評価に基づく表示制御)
図11は、移動を停止したアイコン64が表示されるゲーム画面4の一例を示す図である。アイコン64は、図11のゲーム画面4において、弾性領域62に到達しかつ弾性領域62内で停止する。端末処理部113は、アイコン64が弾性領域62に到達したことに基づいて、弾性領域62に対応するストレートを、ショット評価として特定する。オブジェクト制御部115は、特定されたショット評価に基づいた態様で、ゲーム空間3においてキャラクタ41にクラブ43をスイングさせる。表示制御部117は、キャラクタ41がクラブ43をスイングする様子を示すアニメーションを、たとえば図11に示すように表示部152に表示させる。図11のゲーム画面4において、キャラクタ41は、クラブ43をフルスイングしている。
端末処理部113は、クラブ43の最大飛距離、バックスイング量、およびショット評価に基づいて、ゲーム空間3におけるゲーム空間3の移動に関する移動条件を決定する。移動条件は、たとえば、ゲーム空間3におけるボール42の飛翔方向(移動方向)および飛距離(移動量)を含む。オブジェクト制御部115は、決定された移動条件に基づいて、ゲーム空間3内でボール42を移動させる。表示制御部117は、ボール42が移動する様子を示すアニメーションを、たとえば図11に示すように、表示部152に表示させる。図11のゲーム画面4において、ボール42は、指定されたショット方向に沿って真っ直ぐ飛翔している。
(ショット評価の通知)
表示制御部117は、さらに、判定されたショット評価をユーザに通知するための通知情報70を、表示部152に表示させる。図11のゲーム画面4において、通知情報70は、目標領域65の下部に配置される。通知情報70は、ショット評価を表す画像またはテキストを少なくとも含む。図11のゲーム画面4において、通知情報70は、ショット評価を表す「ストレート」というテキストを含む。ユーザは、ゲーム画面4に配置された通知情報70を視認することによって、キャラクタ41にボール42をティーショットさせるために操作オブジェクト61をうまく操作できたか否かを、より正確に知ることができる。
(ボール42の移動)
図12は、ゲーム空間3におけるボール42の移動の一例を示す図である。図12の状態(A)は、ボール42がショットされた直後のゲーム空間3を示す。図12の状態(B)は、ショットされたボール42が移動中のゲーム空間3を示す。図12の状態(C)は、ショットされたボール42の移動が停止したゲーム空間3を示す。
図12の状態(A)では、ユーザは、キャラクタ41にボール42をティーショットさせるための一連の入力操作を完了した直後である。仮想カメラ44は、ゲーム空間3におけるキャラクタ41およびボール42を、仮想カメラ44の撮影範囲に含める位置に配置される。表示制御部117は、図12の状態(A)に示すゲーム空間3に対応するゲーム画面4として、たとえば図11に示すゲーム画面4を表示部152に表示させる。
キャラクタ41がボール42をティーショットした後、ボール42は、たとえば図12の状態(B)に示すようにゲーム空間3内を飛翔する。仮想カメラ制御部116は、ボール42が規定の距離を超えて飛翔した時点で、図12の状態(B)に示すように、ボール42の後方に仮想カメラ44を移動させる。仮想カメラ制御部116は、さらに、ゲーム空間3におけるボール42の移動に追随させて、仮想カメラ44をゲーム空間3において移動させる。表示制御部117は、ボール42がゲーム空間3内を飛翔する様子を、図13に示すように、表示部152に表示させる。
図13は、飛翔中のボール42が表示されるゲーム画面4の一例を示す図である。図13のゲーム画面4において、ボール42は、ゲーム画面4内の中央よりやや上の位置に配置される。表示制御部117は、たとえば、ゲーム画面4におけるボール42の位置を固定したまま、ゲーム空間3のうち仮想カメラ44の撮影範囲に含まれる部分がゲーム画面4における奥から手前に流れるアニメーションを、表示部152に表示させる。
オブジェクト制御部115は、ショットされたボール42を、ゲーム空間3における飛翔条件に対応する位置に到達させ、その位置にボール42を停止させる。仮想カメラ制御部116は、たとえば、ボール42がゲーム空間3内で停止するまで、ボール42に追随するように仮想カメラ44を移動させる。仮想カメラ制御部116は、ボール42の停止後、図12の状態(C)に示すように、仮想カメラ44をゲーム空間3における元の位置に戻す。図12の状態(C)に示すゲーム空間3における仮想カメラ44の位置は、図12の状態(A)と同一である。表示制御部117は、図12の状態(C)に示す仮想カメラ44によって生成された撮影画像に基づくゲーム画面4を、図14に示すように表示部152に表示させる。
図14は、ゲーム空間3における元の位置に配置された仮想カメラ44の撮影範囲に対応するゲーム画面4の一例を示す図である。図14のゲーム画面4において、キャラクタ41は、図5と同様に、クラブ43を手に持って立っている。ボール42は、ティーショットされた結果、ティーインググラウンド31から離れた位置に移動したので、ティーインググラウンド31上に配置されない。表示制御部117は、ゲーム空間3におけるボール42の現在の位置を示すアイコン53を、表示部152に表示させる。ユーザは、ゲーム画面4に配置されるアイコン53を視認することによって、ゲーム空間3におけるボール42の位置を知ることができる。
(弾性領域62のサイズ調整)
表示制御部117は、好ましくは、ボール42が配置される地形オブジェクトの種類と、キャラクタ41に設定されるクラブ43の種類とに基づいて、弾性領域62のサイズを異ならせる。表示制御部117は、たとえば、ボール42がラフ33に配置され、かつ、ラフ33に適した3番アイアンがキャラクタ41に設定される場合、弾性領域62を第1サイズで表示部152に表示させる。表示制御部117は、たとえば、ボール42がラフ33に配置され、かつ、ラフ33に不適なドライバーがキャラクタ41に設定される場合、弾性領域62のサイズを、第1サイズよりも小さい第2サイズで表示部152に表示させる。
後者の場合、ユーザにとって、アイコン64が弾性領域62に到達するようにゲーム画面4をうまくフリック操作することが、より難しくなる。これによりユーザ端末100は、ゴルファーにとってラフの上のボールをドライバーで的確にショットすることが難しいという現実のゴルフにおける一般的な事象を、ゲームプログラム121に基づくゴルフゲームに反映させることができる。
(アイコン64の他の移動態様)
図15は、弾性領域62からより遠くに離れた位置にアイコン64が表示されるゲーム画面4の他の例を示す図である。操作受付部112は、ガイド63の延伸方向から外れた方向にアイコン64を移動させるためのドラッグ操作を受け付けることもできる。操作受付部112は、たとえば、アイコン64をゲーム画面4の縦方向に沿ってゲーム画面4の下側に移動させるためのドラッグ操作を受け付ける。表示制御部117は、このドラッグ操作に基づいて、たとえば図15に示すように、アイコン64をゲージ82に延伸方向ではなくゲーム画面4内の下方向に沿って移動するように、アイコン64を表示部152に表示させる。
表示制御部117は、ガイド63における弾性領域62側の端部から、ゲーム画面4におけるユーザの指の接触位置(アイコン64の表示位置)に対応するガイド63における位置までの範囲を、指定範囲に決定する。図15のゲーム画面4において、ガイド63内の指定範囲は、ガイド63における弾性領域62側の端部から、ゲーム画面4の横方向においてユーザの指の接触位置に並ぶガイド63における位置までの範囲である。
(キャラクタ41の移動)
図16は、ゲーム空間3におけるキャラクタ41の移動の一例を示す図である。オブジェクト制御部115は、キャラクタ41を移動させるためのユーザの入力操作(以下、移動操作)に基づいて、図16に示すようにキャラクタ41をゲーム空間3内で移動させる。図16では、キャラクタ41は、第2打をショットするために、ボール42の位置に向かってラフ33の上を移動している。オブジェクト制御部115は、好ましくは、キャラクタ41がゲーム空間3内を移動するとき、キャラクタ41に対するクラブ43の関連付けを解除する。仮想カメラ制御部116は、ゲーム空間3においてキャラクタ41から一定距離離れた位置に、仮想カメラ44を配置する。仮想カメラ制御部116は、ゲーム空間3におけるキャラクタ41の移動に追随させて、仮想カメラ44をゲーム空間3において移動させる。表示制御部117は、キャラクタ41がゲーム空間3内を移動する様子を、たとえば図17に示すように、表示部152に表示させる。
図17は、移動中のキャラクタ41が表示されるゲーム画面4の一例を示す図である。操作受付部112は、キャラクタ41を移動させるための第1ユーザの移動操作を受け付ける。移動操作は、たとえば、ゲーム画面4の任意の位置におけるユーザのスライド操作である。表示制御部117は、受け付けられたスライド操作に基づいて、弾性体オブジェクト71を表示部152に表示させる。弾性体オブジェクト71は、ゲーム画面4におけるユーザの指の接触位置に配置される。操作受付部112は、ゲーム画面4におけるスライド操作の開始位置および終了位置をそれぞれ特定する。表示制御部117は、開始位置から終了位置まで引き伸ばすように変形される弾性体オブジェクト71を表示部152に表示させる。ユーザは、弾性体オブジェクト71を視認することによって、スライド方向を知ることができる。
オブジェクト制御部115は、ゲーム画面4におけるスライド方向に基づいて、ゲーム空間3におけるキャラクタ41の移動方向を特定する。オブジェクト制御部115は、たとえば、スライド方向がゲーム画面4内の下から上に真っ直ぐに向かう場合、キャラクタ41の移動方向を、ゲーム空間3における仮想カメラ44の撮影方向(ロール方向)に平行な方向に決定する。
オブジェクト制御部115は、ゲーム空間3における決定された移動方向にキャラクタ41を移動させる。仮想カメラ制御部116は、キャラクタ41がゲーム空間3内を移動する間、キャラクタ41を撮影範囲に含めるように仮想カメラ44をゲーム空間3内で移動させる。
(移動するキャラクタ41の表示)
図17では、表示制御部117は、ゲーム画面4においてキャラクタ41が歩いてラフ33の上を移動するように、キャラクタ41を表示部152に表示させる。表示制御部117は、たとえば、ゲーム画面4におけるキャラクタ41の位置を固定したまま、ゲーム空間3のうち仮想カメラ44の撮影範囲に含まれる部分がゲーム画面4におけるスライド方向の前方から後方に流れるアニメーションを、表示部152に表示させる。キャラクタ41の移動につれて、ゲーム画面4に含まれるゲーム空間3内の表示範囲が変化する。したがってユーザは、キャラクタ41をゲーム空間3内で移動させることによって、ゲーム空間3における所望の範囲をゲーム画面4を通じて視認することができる。
ユーザは、キャラクタ41がゲーム空間3内を移動する間、ゲーム空間3(ゴルフコース)内の様々な場所の様子を確認しながら、ゴルフゲームの攻略を検討することができる。ユーザ端末100は、ゴルファーが現実のゴルフコースを実際にラウンドする感覚に近い疑似的な感覚を、ゴルフゲームをプレイするユーザに与えることができる。
オブジェクト制御部115は、たとえば、ユーザのスライド操作に基づいてキャラクタ41を継続的に移動させることによって、キャラクタ41をゲーム空間3における移動後のボール42の位置に到達させる。オブジェクト制御部115は、あるいは、キャラクタ41をボール42の位置までワープさせるためのユーザの入力操作に基づいて、キャラクタ41をボール42の位置にワープさせる。ワープさせるための入力操作は、たとえば、ゲーム画面4に配置されるアイコン53に対するユーザのタップ操作である。表示制御部117は、キャラクタ41がボール42の位置まで到達した場合、たとえば図18に示すゲーム画面4を表示部152に表示させる。
(アプローチショット)
図18は、フェアウェイ32に立ったキャラクタ41が表示されるゲーム画面4の一例を示す図である。図18のゲーム画面4は、キャラクタ41がボール42をアプローチショットする直前の場面に対応する。表示制御部117は、フェアウェイ32、グリーン37、キャラクタ41、およびボール42が含まれる撮影画像を表示部152に少なくとも表示させる。ゲーム画面4において、キャラクタ41は、クラブ43を手に持ってフェアウェイ32に立っている。クラブ43は、たとえば、アプローチショットに適したアプローチウェッジなどのクラブである。キャラクタ41は、ゲーム画面4の下部中央に配置される。ボール42は、フェアウェイ32に配置される。
ゲーム空間3には、キャラクタ41にボール42をアプローチショットさせるための閾値が予め規定される。図18のゲーム画面4において、ゲーム空間3におけるボール42の位置とカップ38との距離は、アプローチショットに関する規定の閾値よりも小さい。この場合、キャラクタ41は、ユーザの一連のショット操作に基づいて、ボール42をアプローチショットする。
オブジェクト制御部115は、ボタン51に対するタップ操作に基づいて、キャラクタ41によってアプローチショットに用いられるクラブ43を、キャラクタ41に設定する。オブジェクト制御部115は、ゲーム画面4の任意の位置に対するユーザのスライド操作に基づいて、アプローチショットのショット方向を決定する。表示制御部117は、ボタン52に対するタップ操作に基づいて、図19に示すように、キャラクタ41をアプローチショットするためのアドレスに入らせる。表示制御部117は、さらに、図19に示すように、アプローチショット用の操作オブジェクト91を表示部152に表示させる。
(アプローチショット用の操作オブジェクト61)
図19は、ボール42をアプローチショットするためのアドレスに入ったキャラクタ41が表示されるゲーム画面4の一例を示す図である。図19のゲーム画面4において、キャラクタ41は、クラブ43の先端をボール42の上に近づけた状態でアドレスに入っている。表示制御部117は、ティーショット用の時と同様に、表示部152にボタン51およびボタン52をゲーム画面4から消去させる。
操作オブジェクト61は、ユーザによって操作されるユーザインタフェースの一種である。操作オブジェクト61は、詳細には、キャラクタ41にボール42をアプローチショットさせるための操作をユーザが入力するユーザインタフェースである。表示制御部117は、ボール42からカップ38までの距離が閾値よりも小さいことに基づいて、アプローチショット用の操作オブジェクト81を表示制御部117に表示させる。
操作オブジェクト81は、ゲージ82およびカーソル83を有する。図19のゲーム画面4において、操作オブジェクト81は、全体として、ゲーム画面4における右側に配置される。ゲージ82は、縦長の長方形状を有する。ゲージ82は、長軸方向の一端部がゲーム画面4の上部付近にあり、かつ、長軸方向の一端部がゲーム画面4の縦方向における中央付近にあるように、ゲーム画面4に配置される。カーソル83は、ゲージ82における長軸方向の一端部(上端部)に重畳して配置される。ゲージ82の全長は、選択されたクラブ43に規定される最大飛距離に対応する。
(カーソル83のドラッグ)
オブジェクト制御部115は、操作オブジェクト81に対するユーザの一連のショット操作に基づいて、キャラクタ41にボール42をアプローチショットさせる。操作受付部112は、まず、図19のゲーム画面4に配置されるカーソル83に対するユーザのドラッグ操作を受け付ける。表示制御部117は、ドラッグ操作の方向(以下、ドラッグ方向)に基づいて、たとえば図20に示すように、カーソル83がゲージ82の下方に向かって移動するようにカーソル83を表示部152に表示させる。
図20は、ゲージ82に沿って移動するカーソル83が表示されるゲーム画面4の一例を示す図である。オブジェクト制御部115は、ゲージ82内のカーソル83の位置に基づいて、キャラクタ41にクラブ43をバックスイングさせる。表示制御部117は、キャラクタ41がクラブ43をバックスイングするアニメーションを、表示部152に表示させる。図20のゲーム画面4において、キャラクタ41は、カーソル83がゲージ82の中央付近に位置することに対応した深さでクラブ43をバックスイングする。オブジェクト制御部115は、カーソル83がゲージ82の上端部からより離れるほど、キャラクタ41にクラブ43をより深く(より後方に)バックスイングさせる。表示制御部117は、キャラクタ41がクラブ43をバックスイングするアニメーションを、表示部152に表示させる。
ゲージ82内のカーソル83の位置は、さらに、キャラクタ41がボール42をアプローチショットした場合のボール42の飛距離に対応する。ユーザは、所望の飛距離に対応する位置まで、カーソル83をドラッグする。ユーザは、所望の飛距離をキャラクタ41に指定するために、操作オブジェクト81に対するドラッグ操作を継続する。カーソル83は、ユーザのドラッグ操作に基づいて、ゲーム画面4内をさらに移動する。表示制御部117は、ドラッグ操作時の指の接触位置の変化に追随して、たとえば図21に示すように、ゲーム画面4におけるカーソル83の表示位置を変更させる。
図21は、カーソル83がゲージ82の上端部からより遠くに離れた位置に表示されるゲーム画面4の一例を示す図である。図21のゲーム画面4におけるドラッグ量は、図20のゲーム画面4におけるドラッグ量よりも大きい。したがって、図21のゲーム画面4に含まれるカーソル83の位置に対応する飛距離は、図20のゲーム画面4に含まれるカーソル83の位置に対応する飛距離よりも大きい。表示制御部117は、キャラクタ41がクラブ43をより深くバックスイングするアニメーションを、表示部152に表示させる。図21のゲーム画面4におけるクラブ43のバックスイング位置は、図20よりも深い。
(アイコン84の落下)
ユーザは、ゲージ82における所望の飛距離に対応する位置までカーソル83をドラッグした後、その位置から指を離す。操作受付部112は、ユーザのカーソル83のドラッグ操作に続くタッチオフ操作を受け付ける。表示制御部117は、タッチオフ操作が受け付けられた場合、たとえば図22に示すように、アイコン84を表示部152に表示させる。
図22は、アイコン84がゲージ82の上端部に表示されるゲーム画面4の一例を示す図である。アイコン84は、操作オブジェクト81の一部を構成する。表示制御部117は、カーソル83から指を離すタッチオフ操作が受け付けられた場合、ゲーム画面4におけるタッチオフ位置にカーソル83が固定表示されるように、カーソル83を表示部152に表示させる。表示制御部117は、さらに、アイコン84がゲージ82の上端部から下端部に向かって自動的に落下するように、アイコン84を表示部152に表示させる。
端末処理部113は、静止したカーソル83の位置に対応する飛距離を、キャラクタ41に設定する。カーソル83は、この後、アプローチショットに関する評価を特定するための目標領域として機能する。ユーザは、アイコン84がカーソル83に重畳するタイミングを狙って、アイコン84を停止させるための操作(たとえばタップ操作)を入力する。表示制御部117は、アイコン84の移動中にゲーム画面4に対するユーザのタップ操作が受け付けられた場合、たとえば図23に示すように、ゲーム画面4におけるアイコン84の落下を表示部152に停止させる。
(タップ操作によるアイコン84の停止)
図23は、移動を停止したアイコン84が表示されるゲーム画面4の一例を示す図である。端末処理部113は、ゲーム画面4における固定されたアイコン84と固定されたカーソル83との位置関係に基づいて、キャラクタ41によるボール42に対するアプローチショットに関する評価(以下、ショット評価)を特定する。端末処理部113は、たとえば、アイコン84がカーソル83に少なくとも部分的に重畳する場合、ショット評価として「ストレート」を特定する。ストレートは、キャラクタ41がアプローチショットに成功し、かつ、ショットされたボール42が、指定されたショット方向に沿って真っ直ぐ飛翔することを、意味する。端末処理部113は、たとえば、アイコン84がカーソル83に重畳しない場合、ショット評価として「失敗」を判定する。
(アプローチショットの結果の表示)
操作受付部112は、アイコン84がカーソル83に重畳するタイミングで、図23のゲーム画面4に入力されるユーザのタップ操作を受け付ける。端末処理部113は、アイコン84がカーソル83に重畳することに基づいて、ショット評価を「ストレート」に決定する。オブジェクト制御部115は、決定されたショット評価に基づいた態様で、キャラクタ41にクラブ43をスイングさせる。表示制御部117は、キャラクタ41がクラブ43をスイングするアニメーションを、図23に示すように表示部152に表示させる。図23のゲーム画面4において、キャラクタ41は、クラブ43をフルスイングしている。
端末処理部113は、キャラクタ41に設定される飛距離と、ショット評価とに基づいて、ボール42の飛翔条件を決定する。飛翔条件は、たとえば、ゲーム空間3におけるボール42の飛翔方向(移動方向)および飛距離(移動量)を含む。オブジェクト制御部115は、決定された飛翔条件に基づいて、ゲーム空間3内でボール42を移動させる。表示制御部117は、たとえば図23に示すように、ボール42が移動するアニメーションを表示部152に表示させる。図23のゲーム画面4において、ボール42は、指定されたショット方向に沿って真っ直ぐ飛翔している。
表示制御部117は、さらに、図23に示すように、特定された評価をユーザに通知するための通知情報70を、表示部152に表示させる。図23のゲーム画面4において、通知情報70は、特定されたショット評価に対応する「ストレート」というテキストを含む。ユーザは、ゲーム画面4に配置された通知情報70を視認することによって、キャラクタ41にボール42をアプローチショットさせるために操作オブジェクト91をうまく操作できたか否かを、より正確に知ることができる。
(アイコン84の移動速度の制御)
表示制御部117は、好ましくは、アイコン84と、ゲージ82の上端部との位置関係に基づいて、アイコン84の移動速度を制御する。表示制御部117は、たとえば、ゲージ82の上端部からアイコン84がより離れるほどより速く移動するように、アイコン84を表示部152に表示させる。これにより、カーソル83の固定位置がゲージ82の下端部により近いほど、アイコン84がカーソル83に重畳するタイミングをうまく狙ってゲーム画面4をタップすることがユーザにとってより難しくなる。したがってユーザ端末100は、より短い距離のアプローチの方がゴルファーにとってより容易であるという現実のゴルフにおける一般的な事象を、ゲームプログラム121に基づくゴルフゲームに反映させることができる。
表示制御部117は、好ましくは、アイコン84がゲージ82の下端部まで落下した後、ゲーム画面4の上側に向かって跳ねるように移動し、それから再び下端部に向かって落下するように、アイコン84を表示部152に表示させる。
以上のように、ユーザ端末100は、ゴルフゲームにおけるアプローチショットの場面において、アプローチショット用の操作オブジェクト81を、ユーザに操作させる。操作オブジェクト81の外観および操作性は、ティーショット用の操作オブジェクト61の外観および操作性と異なる。操作オブジェクト81を通じて入力されるアプローチショットのための一連の入力操作の内容および手順は、操作オブジェクト61を通じて入力されるティーショットのための一連の入力操作の内容および手順と、異なる。操作オブジェクト81は、たとえば、ティーショット用の操作オブジェクト61とは異なり、アイコン84がカーソル83に重畳するタイミングをうまく狙ったタップ操作を必要とする。このようにユーザ端末100は、ゲーム空間3におけるゴルフのグリーン37以外の異なる領域における異なるショットの場面に応じて、外観および操作性の異なる操作オブジェクト61または81をユーザに操作させることによって、ゴルフゲームの興趣性をより高めることができる。
(バンカーショット)
キャラクタ41は、ボール42がバンカー36に配置される場合、ユーザの一連のショット操作に基づいてボール42をバンカーショットする。バンカーショットのためのクラブ43の選択およびショット方向の指定方法は、ティーショットまたはアプローチショットの場合と同様であるため、説明を繰り返さない。表示制御部117は、ボタン51に対するタップ操作に基づいて、たとえば図24に示すように、キャラクタ41がバンカーショットするためのアドレスに入るように、キャラクタ41を表示部152に表示させる。表示制御部117は、さらに、たとえば図24に示すように、バンカーショット用の操作オブジェクト91を表示部152に表示させる。
図24は、ボール42をバンカーショットするためのアドレスに入ったキャラクタ41が表示されるゲーム画面4の一例を示す図である。図24のゲーム画面4において、キャラクタ41およびボール42は、いずれもバンカー36の上に配置される。キャラクタ41は、クラブ43の先端をボール42の上に近づけた状態でアドレスに入っている。
(バンカーショット用の操作オブジェクト91)
表示制御部117は、ボタン52がタップされたことに基づいて、ボール42が配置されるバンカー36に対応する操作オブジェクト91を、図24に示すように表示部152に表示させる。操作オブジェクト91は、ユーザによって操作されるユーザインタフェースの一種である。操作オブジェクト91は、詳細には、キャラクタ41にボール42をバンカーショットさせるための一連の操作をユーザが入力するユーザインタフェースである。
操作オブジェクト91は、弾性領域92およびガイド93を有する。図24のゲーム画面4において、操作オブジェクト91は、全体として、ゲーム画面4における右側に配置される。弾性領域92は、規定の形状およびサイズを有し、かつ、ゲーム画面4における規定の位置に配置される。図24において、弾性領域92は円形であり、かつ、ゲーム画面4内の右上に配置される。
ガイド93は、規定の形状およびサイズを有し、かつ、ゲーム画面4における規定の位置に配置される。図24において、ガイド93は、ゲーム画面4における規定の方向に延伸する細長い形状を有する。ガイド93は、さらに、その一端が弾性領域92に中心にあり、かつ、その他端がキャラクタ41の頭部に近い位置にあるように、ゲーム画面4に配置される。図24において、ガイド93は、ゲーム画面4の縦方向に対して規定の角度で傾斜するように、ゲーム画面4おいて斜めに配置される。ガイド93の全長は、キャラクタ41にクラブ43をバックスイングすることができる最大量に対応する。
ユーザは、操作オブジェクト91を操作することによって、キャラクタ41にボール42をバンカーショットさせる。操作受付部112は、図24のゲーム画面4に配置される弾性領域92に対するユーザのタッチオン操作を受け付ける。操作受付部112は、さらに、タッチオン操作に続く、ユーザのドラッグ操作を受け付ける。表示制御部117は、ドラッグ操作に基づいて、たとえば図25に示すように、弾性領域92が変形するように弾性領域92を表示部152に表示させる。
図25は、弾性変形された弾性領域92が表示されるゲーム画面4の一例を示す図である。操作受付部112は、たとえば、ガイド93の延伸方向に沿った方向にユーザの指が移動するドラッグ操作を受け付ける。表示制御部117は、ドラッグ操作の方向に基づいて、弾性領域92が仮想的な弾性を有する仮想的なオブジェクトとして挙動するように、弾性領域92の表示を制御する。表示制御部117は、ゲーム画面4におけるユーザの指がタッチオンした第1位置から、ゲーム画面4におけるドラッグ操作によってユーザの指が移動した第2位置に向けて、弾性領域92の一部を引き延ばす。
表示制御部117は、さらに、ユーザのドラッグ操作に基づいて、ガイド93の表示態様を制御する。表示制御部117は、たとえば、ガイド93における弾性領域92側の端部から、ガイド93におけるユーザの指が接触する位置までの範囲(以下、指定範囲)を、ガイド93における指定範囲以外の範囲(以下、未指定範囲)と識別される態様で、表示部152に表示させる。図25のゲーム画面4において、指定範囲は未指定範囲よりも太く表示される。
端末処理部113は、ガイド93における指定範囲の長さに基づいたバックスイング量を、キャラクタ41に設定する。バックスイング量は、キャラクタ41によってショットされたボール42の飛距離に影響する。オブジェクト制御部115は、設定されたバックスイング量に基づいて、キャラクタ41にクラブ43をバックスイングさせる。オブジェクト制御部115は、バックスイング量がより大きいほど、キャラクタ41にクラブ43をより深く(より後方に)バックスイングさせる。表示制御部117は、キャラクタ41がクラブ43をバックスイングするアニメーションを、表示部152に表示させる。図25のゲーム画面4は、キャラクタ41が、設定されたバックスイング量に応じた位置までクラブ43をバックスイングさせた後の場面に対応する。
表示制御部117は、操作オブジェクト91に対するドラッグ操作時のドラッグ量が規定量を超えた場合、弾性領域92における弾性変形された一部分が引きちぎられるアニメーションを、表示部152に表示させる。表示制御部117は、さらに、弾性領域92の表示状態を弾性変形前の表示状態に戻す。表示制御部117は、さらに、たとえば図26に示すように、引きちぎられた一部分をアイコン94として表示部152に表示させる。
(アイコン94の表示)
図26は、ドラッグ操作に基づいてゲーム画面4内を移動するアイコン94が表示されたゲーム画面4の一例を示す図である。アイコン94は、操作オブジェクト91の一部を構成する。図24のゲーム画面4において、アイコン94は円形の形状を有する。アイコン94は、ゲーム画面4におけるユーザの指の現在の接触位置に配置される。ユーザは、所望のバックスイング量をキャラクタ41に指定するために、操作オブジェクト91に対するドラッグ操作を継続する。アイコン94は、ユーザのドラッグ操作に基づいて、ゲーム画面4内を移動する。表示制御部117は、ドラッグ操作時の指の接触位置の変化に追随して、たとえば図27に示すように、ゲーム画面4におけるアイコン94の表示位置を表示部152に変更させる。
図27は、アイコン94が弾性領域92からより遠くに離れた位置に配置されるゲーム画面4の一例を示す図である。図27のゲーム画面4におけるドラッグ量は、図24のゲーム画面4におけるドラッグ量よりも大きい。したがって、図9のゲーム画面4に含まれるガイド93における指定範囲の長さは、図26のゲーム画面4に含まれるガイド93における指定範囲の長さよりも大きい。表示制御部117は、キャラクタ41がクラブ43をより深くバックスイングするアニメーションを、表示部152に表示させる。図27のゲーム画面4におけるクラブ43のバックスイング位置は、図26よりも深い。
(目標領域95の表示)
表示制御部117は、アイコン94が弾性領域92から規定の距離を超えて離れた場合、図27に示すように、弾性領域92の表示を表示部152に消去させる。表示制御部117は、さらに、図27に示すように、目標領域95を表示部152に表示させる。目標領域95は、操作オブジェクト91の一部を構成する。目標領域95は、領域96、領域97、および領域98を有する。図27のゲーム画面4において、目標領域95は、全体として細長い長方形状を有する。目標領域95において、領域96の両隣に領域97および領域98がそれぞれ配置される。
目標領域95は、キャラクタ41によるバンカーショットに関する評価(以下、ショット評価)を決定するための領域である。ショット評価は、ショットされたボール42の軌道の種類である。ショット評価は、たとえば、ストレート、フック、スライス、および空振りを含む。領域97〜99には、複数の異なるショット評価のうちいずれかが予め規定される。詳細には、領域96〜98には、ショット評価として、ストレート、フック、およびスライスがそれぞれ規定される。ゲーム画面4における目標領域95の外部には、空振りが規定される。
表示制御部117は、目標領域95がゲーム画面4内で規定の方向に移動するように、目標領域95を表示部152に表示させる。図27のゲーム画面4において、規定の方向はガイド93の延伸方向に直交しかつガイド93から見て右側の方向である。ガイド93が移動することによって領域96とガイド93との位置関係が相対的に変化する。
(アイコン94のフリック)
操作受付部112は、次に、ゲーム画面4においてアイコン94を目標領域95に向けて移動させるためのユーザの入力操作(たとえばフリック操作)を受け付ける。操作受付部112は、たとえば、ユーザがアイコン94をドラッグした状態(指を入力部151に接触させた状態)で、ゲーム画面4におけるドラッグ操作の方向と逆の方向にアイコン94をフリックするフリック操作を受け付ける。ユーザは、領域96がガイド93の一端部に重畳するタイミングを狙って、アイコン94をフリックする。
表示制御部117は、フリック操作の方向および速度に基づいて、ゲーム画面4におけるアイコン94の移動量を決定する。表示制御部117は、決定した移動量でアイコン94がガイド93上を移動する様子を、たとえば図28および図29に示すように表示部152に表示させる。
図28は、ユーザのフリック操作に基づいて移動する途中のアイコン94が表示されるゲーム画面4の一例を示す図である。図28のゲーム画面4において、目標領域95は、ガイド93から見て左方向に移動している。アイコン94は、ユーザがアイコン94をフリックした位置から離れた位置に配置される。アイコン94は、目標領域95に向かって移動する途中である。キャラクタ41は、クラブ43をバックスイングした姿勢を維持している。
(ショット結果の特定)
端末処理部113は、ゲーム画面4におけるアイコン94の到達位置と目標領域95との位置関係に基づいて、ショット評価を特定する。端末処理部113は、目標領域95を構成する領域96〜98のうちいずれかにアイコン94が衝突した場合、衝突した領域に規定される情報を、ショット評価として特定する。端末処理部113は、たとえば、アイコン94が領域96に衝突した場合、領域96に規定されるストレートをショット評価として特定する。端末処理部113は、たとえば、アイコン94が目標領域95に衝突しなかった場合、目標領域95の外部に規定される空振りをショット評価として特定する。
図29は、目標領域95に衝突したアイコン94が表示されるゲーム画面4の一例を示す図である。アイコン94は、図28に示すようにゲーム画面4内を移動した後、たとえば図29に示すように、決定された移動量に基づくゲーム画面4内の位置に到達する。図29のゲーム画面4において、アイコン94は、領域96に衝突している。オブジェクト制御部115は、アイコン94が領域96に衝突したことに基づいて、ショット評価を、領域96に対応するストレートに決定する。オブジェクト制御部115は、特定されたショット評価に基づいた態様で、キャラクタ41にクラブ43をスイングさせる。表示制御部117は、キャラクタ41がクラブ43をスイングするアニメーションを、たとえば図29に示すように、表示部152に表示させる。図29のゲーム画面4において、キャラクタ41は、クラブ43をフルスイングしている。
端末処理部113は、クラブ43の最大飛距離、バックスイング量、およびショット評価に基づいて、ボール42の飛翔条件を決定する。飛翔条件は、たとえば、ゲーム空間3におけるボール42の飛翔方向(移動方向)および飛距離(移動量)を含む。オブジェクト制御部115は、決定された飛翔条件に基づいて、ゲーム空間3内でボール42を移動させる。表示制御部117は、ボール42が移動するアニメーションを、たとえば図29に示すように、表示部152に表示させる。図29のゲーム画面4において、ボール42は、指定されたショット方向に沿って真っ直ぐ飛翔している。
(ショット評価の通知)
表示制御部117は、さらに、特定されたショット評価をユーザに通知するための通知情報70を、表示部152に表示させる。図29のゲーム画面4において、通知情報70は、目標領域95の下部に配置される。通知情報70は、ショット評価を表す画像またはテキストを少なくとも含む。図29のゲーム画面4において、通知情報70は、ショット評価を表す「ストレート」というテキストを含む。ユーザは、ゲーム画面4に配置された通知情報70を視認することによって、キャラクタ41にボール42をバンカーショットさせるために操作オブジェクト91をうまく操作できたか否かを、より正確に知ることができる。
以上のように、ユーザ端末100は、ゴルフゲームにおけるバンカーショットの場面において、バンカーショット用の操作オブジェクト91を、ユーザに操作させる。操作オブジェクト91の外観および操作性は、ティーショット用の操作オブジェクト61の外観および操作性と異なる。操作オブジェクト61は、アイコン64を、ストレートに対応する弾性領域62にうまく停止させるために、フリックの速度(強度)をアイコン94の位置に基づいて加減するフリック操作を、ユーザに求める。操作オブジェクト91は、アイコン94を、ストレートに対応する領域96にうまく衝突させるために、ガイド93の一端部と領域96とが重畳するタイミングを狙い、かつ、アイコン94を領域96に向けて素早くフリックするフリック操作を、ユーザに求める。言い換えると、ユーザは、操作オブジェクト91を操作する際、アイコン94をフリックする際の速度を、アイコン94のドラッグ量に応じて加減する必要はない。このように、ユーザ端末100は、ゲーム空間3におけるグリーン37以外の異なる場所における異なるショットの場面に応じて、異なる操作オブジェクト61または91をユーザに操作させることによって、ゴルフゲームの興趣性をより高めることができる。
(パッティング)
キャラクタ41は、グリーン37にボール42が配置される場合、ユーザの入力操作に基づいて、クラブ43を用いてボール42をパッティングする。操作受付部112は、キャラクタ41にボール42をパッティングさせるためのユーザの入力操作は、特に限定されない。表示制御部117は、たとえば、図示しないパッティング用の操作オブジェクトを、表示部152に表示させる。オブジェクト制御部115は、パッティング用の操作オブジェクトに対するユーザの一連の入力操作に基づいて、キャラクタ41にボール42をパッティングさせる。パッティング用の操作オブジェクトは、好ましくは、操作オブジェクト61、81、および91とは異なる。
(操作オブジェクトの表示方法)
図30は、地形オブジェクトの属性に基づく操作オブジェクトの表示に関する一連の処理の流れを示すフローチャートである。図30に関する以下の説明では、ボール42がゲーム空間3におけるグリーン37以外のいずれかの地形オブジェクトに配置されることを、前提とする。
ステップS1において、操作受付部112は、ゲーム画面4に配置される、キャラクタ41をアドレスに入らせるためのボタン52に対するユーザのタップ操作を受け付ける。ステップS2において、オブジェクト制御部115は、ボール42がティーインググラウンド31に配置されているか否かを判定する。ステップS2においてYESの場合、ステップS3において、表示制御部117は、ティーインググラウンド31に対応するティーショット用の操作オブジェクト61を、表示部152に表示させる。
ステップS2においてNOの場合、ステップS4において、端末処理部113は、ボール42がバンカー36に配置されているか否かを判定する。ステップS4においてYESの場合、ステップS5において、表示制御部117は、バンカー36に対応するバンカーショット用の操作オブジェクト91を表示部152に表示させる。ステップS4においてNOの場合、ステップS6において、端末処理部113は、ボール42からグリーン37までの距離が、アプローチショットに関する規定の閾値以下である否かを判定する。
ステップS6においてYESの場合、ステップS7において、表示制御部117は、アプローチショット用の操作オブジェクト91を表示部152に表示させる。ステップS7においてYESの場合、表示制御部117は、ステップS8においてティーショット用と同一の操作オブジェクト61を表示部152に表示させる。表示制御部117は、たとえば、ボール42がフェアウェイ32に配置されており、かつ、ボール42からグリーン37までの距離が閾値以下の場合、操作オブジェクト61を表示部152に表示させる。この場合、ユーザは、フェアウェイ32に配置されるボール42をキャラクタ41にショットさせるための一連の操作を、操作オブジェクト61を通じて入力する。
ユーザ端末100は、図30に示す一連の処理を実行することによって、ゲーム空間3においてボール42が配置されるグリーン37以外の地形オブジェクトの属性に応じた操作オブジェクトを、表示部152に表示させる。これによりユーザ端末100は、ゴルフゲームの興趣性をより高めることができる。
(キャラクタ41の移動に関する表示態様)
ユーザ端末100は、好ましくは、キャラクタ41がゲーム空間3内を移動する際のゲーム画面4におけるキャラクタ41の表示態様を、ゲーム空間3においてキャラクタ41が配置される地形オブジェクトの種類に応じて異ならせる。
図31は、ゲーム空間3内を移動するキャラクタ41の表示に関する一連の処理を説明するフローチャートである。表示制御部117は、図31に示す一連の処理が実行される前に、たとえば図32に示すゲーム画面4を表示部152に表示させる。
図32は、ラフ33の上に立ったキャラクタ41が表示されるゲーム画面4を示す図である。図32のゲーム画面4において、キャラクタ41は、ボール42から離れた位置にあるラフ33の上に立っている。ボール42の位置を示すアイコン53が、ゲーム画面4内に配置される。図32のゲーム画面4において、表示制御部117は、ゲーム画面4内の左側に配置されるボタン73を、表示部152に表示させる。ボタン73は、フェアウェイ32などの許可領域の上を移動する際にキャラクタ41が乗る専用の乗り物を、ユーザに選択させるためのユーザインタフェースである。端末処理部113は、ボタン73に対するユーザの入力操作(たとえばタップ操作)が受け付けられた場合、ゴルフカート73(第2乗り物)をキャラクタ41に設定する。ゴルフカート73は、フェアウェイ32などの許可領域の上を移動するためにキャラクタ41が乗ることできる乗り物の一種である。
ステップS11において、操作受付部112は、キャラクタ41を移動させるユーザの移動操作(たとえばスライド操作)を受け付ける。表示制御部117は、受け付けられたスライド操作に基づいて、弾性体オブジェクト71を表示部152に表示させる。ステップS12において、表示制御部117は、スライド操作の方向に基づいて、弾性体オブジェクト71を表示部152に変形させる。
ステップS13において、端末処理部113は、キャラクタ41が、配置されたボール42をキャラクタ41がショットすることが禁止される池34(第2領域)に配置されるか否かを判定する。ステップS13においてNOの場合、ステップS14において、端末処理部113は、ゴルフカート73がキャラクタ41に設定されているか否かを判定する。ステップS14においてNOの場合、ステップS15において、表示制御部117は、たとえば図33に示すように、キャラクタ41が歩いてラフ33の上を移動するように、キャラクタ41を表示部152に表示させる。
(徒歩による移動)
図33は、歩いて移動するキャラクタ41が表示されるゲーム画面4の一例を示す図である。表示制御部117は、図33のゲーム画面4において、キャラクタ41が歩いてラフ33の上を移動するアニメーションを、表示部152に表示させる。
ステップS14においてYESの場合、ステップS16において、表示制御部117は、たとえば図34に示すように、キャラクタ41がゴルフカート73に乗った状態でラフ33の上を移動するように、キャラクタ41を表示部152に表示させる。
(ゴルフカート73による移動)
図34は、ゴルフカート73に乗った状態で移動するキャラクタ41が表示されるゲーム画面4の一例を示す図である。表示制御部117は、図34のゲーム画面4において、キャラクタ41がゴルフカート73に乗った状態でラフ33の上を移動するアニメーションを、表示部152に表示させる。ゴルフカート73は、キャラクタ41がフェアウェイ32フェアウェイ32などの許可領域の上を移動するために用いることができることを示す外観を有する。したがってユーザは、キャラクタ41がゴルフカート73に乗った状態でラフ33の上を移動するゲーム画面4を視認しても、キャラクタ41に対して違和感を抱くことがない。
表示制御部117は、好ましくは、キャラクタ41がゴルフカート73に乗って移動する場合の移動速度を、キャラクタ41が歩いて移動する場合の移動速度よりも大きくする。これによりユーザは、ゴルフカート73を選択することによって、ゲーム空間3における所望の位置(たとえばボール42の位置)まで、キャラクタ41をより早く移動させることができる。
ステップS13においてYESの場合、ステップS17において、表示制御部117は、たとえば図35に示すように、池34に対応する水上ボード74に乗った状態でキャラクタ41が池34の上(水面)を移動するように、キャラクタ41を表示部152に表示させる。
(水上ボード74による移動)
図35は、水上ボード74に乗った状態で移動するキャラクタ41が表示されるゲーム画面4の一例を示す図である。表示制御部117は、図35のゲーム画面4において、キャラクタ41が水上ボード74に乗った状態で池34の上を移動するアニメーションを、表示部152に表示させる。水上ボード74は、池34の上を移動するキャラクタ41が乗る専用の乗り物の一種である。水上ボード74は、キャラクタ41が池34の上を移動するために用いることができることを示す外観を有する。したがってユーザは、図35のゲーム画面4を視認した場合、池34の上を移動するキャラクタ41に対して違和感を抱くことがない。ユーザは、キャラクタ41が水上ボード74に乗った状態で池34の上を移動する場面を、キャラクタ41が池34の上を移動する際の自然な場面として認識する。したがってユーザは、ゴルフゲームをより楽しむことができる。
図35のゲーム画面4において、キャラクタ41は、池34の上に配置され、かつ、池34の上を移動することができる。表示制御部117は、キャラクタ41が池34の上を移動する場合、たとえば図35に示すように、池34の上に配置されるキャラクタ41の背後から仮想カメラ44によって撮影されたゲーム空間3内の一部領域を、背景画像としてゲーム画面4に含ませる。したがってユーザは、キャラクタ41が池34の上に配置されたり池34の上を移動したりすることができない場合に比べて、ゲーム画面4を通じて、ゲーム空間3内をより多様な方向から視認することができる。
オブジェクト制御部115は、キャラクタ41が池34の上を移動することができる場合、キャラクタ41に池34を迂回させることなく、ゲーム空間3における所望の位置までキャラクタ41を移動させることができる。したがってユーザは、キャラクタ41が池34の上を移動することができない場合に比べて、キャラクタ41を所望の位置までより早く移動させることができる。
表示制御部117は、ゴルフカート73に乗った状態でラフ33の上を移動中のキャラクタ41が、池34の上まで移動した場合、キャラクタ41が乗る乗り物がゴルフカート73から水上ボード74に自動的に切り替わるように、キャラクタ41を表示部152に表示させる。これによりユーザは、池34はキャラクタ41がボール42をショットすることができない領域であることを、水上ボード74への表示切り替えを通じて確認することができる。
表示制御部117は、好ましくは、配置されたボール42をキャラクタ41がショットすることが禁止される禁止領域の種類に基づいて、ゲーム画面4においてキャラクタ41が乗る乗り物の種類を異ならせる。表示制御部117は、たとえば、林35に対応する乗り物に乗った状態でキャラクタ41が林35の上を移動するように、キャラクタ41を表示部152に表示させる。林35に対応する乗り物は、池34に対応する水上ボード74とは異なる外観を有し、たとえばパラグライダーである。パラグライダーは、キャラクタ41が林35の上を移動するために用いることができることを示す外観を有する。したがってユーザは、キャラクタ41がパラグライダーに乗った状態で林35の上を移動するゲーム画面4を視認しても、キャラクタ41に対して違和感を抱くことがない。
ゲームシステム1は、キャラクタ41を池34に加えて林35の上も移動させることによって、ゲーム空間3においてユーザの入力操作に基づいてキャラクタ41が移動することができる範囲を、より広げることができる。したがってユーザは、ゴルフゲームをより快適にプレイすることができる。
(マルチプレイに対応するゲーム空間3の一例)
本開示の一局面において、ゲームシステム1は、マルチプレイに対応するゴルフゲームをプレイする機会を、複数のユーザに提供する。以下では、対応するユーザ端末100をそれぞれ操作する4名の第1〜第4ユーザが、ゴルフゲームの一緒にマルチプレイする例を、説明する。本実施形態において、第1〜第4ユーザのそれぞれによって操作される各ユーザ端末100は、必要に応じてユーザ端末100A〜100Dとして記載される。
ゲームシステム1は、ゴルフゲームのマルチプレイを、たとえば以下の手順によって開始する。ユーザ端末100Aにおいて、操作受付部112は、たとえばゴルフゲームのメニュー画面(不図示)に対する、ゴルフゲームのマルチプレイに参加するための第1ユーザの入力操作を受け付ける。送受信部111は、この入力操作に基づいて、マルチプレイに対する参加を要求するための情報(以下、要求情報)を生成し、サーバ200に送信する。ユーザ端末100B〜100Dのそれぞれも、ユーザ端末100における要求情報の送信と同様の手順によって、マルチプレイに対する参加を要求するための各要求情報を生成し、サーバ200に送信する。
サーバ200の送受信部211は、ユーザ端末100A〜100Dから送信された各要求情報を受信する。マッチング部214は、各要求情報に基づいて、各要求情報に対応する各ユーザ端末100を操作する第1〜第4ユーザをマッチングする。マッチング部214は、たとえば、マッチングされた第1〜第4ユーザに対応する各ユーザ情報123を、記憶部220において互いに関連付ける。送受信部211は、マッチング結果に基づいて、第1ユーザに関連付けられる第2〜第4ユーザに対応する各ユーザ情報123を記憶部220から読み出す。送受信部211は、マルチプレイの開始を許可するための情報(以下、許可情報)を生成し、第2〜第4ユーザに対応する各ユーザ情報123と共に、ユーザ端末100Aに送信する。
ユーザ端末100Aのサーバ処理部212は、サーバ200から送信された、許可情報と、第2〜第4ユーザに対応する各ユーザ情報123とを受信する。データ管理部114は、受信された各ユーザ情報123を、記憶部120に保存する。制御部110は、許可情報の受信に基づいて、記憶部120に保存されているゲーム情報122および第1〜第4ユーザの各ユーザ情報123を参照することによって、たとえば図36に示すように、マルチプレイに対応するゲーム空間3を構築する。
図36は、ゴルフゲームのマルチプレイに対応するゲーム空間3の一例を示す図である。図36のゴルフゲームは、図3に示すシングルプレイに対応するゲーム空間3と同様に、ティーインググラウンド31、フェアウェイ32、ラフ33、池34、林35、バンカー36、グリーン37、およびカップ38などの各種のオブジェクトを有する。これらのオブジェクトの詳細は、図3のゲーム空間3と同一であるため、説明を繰り返さない。
オブジェクト制御部115は、キャラクタ41A(第1キャラクタ)、キャラクタ41B(第2キャラクタ)、キャラクタ41C(第3キャラクタ)、キャラクタ41D(第4キャラクタ)、ボール42A(第1ボール)、およびクラブ43A(第1用具)を、ゲーム空間3に配置する。キャラクタ41A〜41D、ボール42A、およびクラブ43Aは、いずれもオブジェクトの一種である。キャラクタ41Aは、第1ユーザによって操作され、かつ第1ユーザに対応する操作オブジェクトである。ボール42Aは、キャラクタ41Aに対応する移動体である。クラブ43Aは、キャラクタ41Aに対応し、かつキャラクタ41Aがボール42Aをショットするために用いる仮想的な用具である。キャラクタ41A、ボール42A、およびクラブ43Aは、シングルプレイに対応するキャラクタ41、ボール42、およびクラブ43と同一であるため、説明を繰り返さない。
ユーザ端末100は、ゲーム空間3の構築後、ゲーム空間3におけるゴルフゲームのマルチプレイを第1〜第4ユーザに開始させる。ゲームプログラム121に基づくゴルフゲームのマルチプレイは、第1〜第4ユーザのそれぞれに対応するキャラクタ41A〜41Dのそれぞれによって順次ショットされたボール42A〜42Dのそれぞれが、ゲーム空間3内を順次移動することによって、進行する。ゴルフゲームのマルチプレイにおけるルールは、たとえば現実のゴルフのルールに対応する。
端末処理部113は、規定の方法に基づいて、キャラクタ41A〜41Dが対応するボール42A〜42Dをショットする順番(以下、ショット順)を、決定する。端末処理部113は、たとえば、キャラクタ41A〜41Dによるティーショットの順番を、抽選などの任意の方法によって決定する。端末処理部113は、図36の例において、キャラクタ41Aが最初にボール42Aをティーショットすることを決定する。オブジェクト制御部115は、この決定に基づいて、ボール42Aを最初にティーショットするキャラクタ41Aに、初期のクラブ43Aを関連付けて、ゲーム空間3に配置する。オブジェクト制御部115は、ティーショットの順番を待つキャラクタ41B〜41Dを、対応するクラブ43B〜43Dに関連付けずにゲーム空間3に配置する。オブジェクト制御部115は、キャラクタ41B〜41Cに対応するボール42B(第2移動体)、ボール42C、およびボール42Dを、ゲーム空間3にまだ配置しない。仮想カメラ制御部116は、図36に示すように、ゲーム空間3においてキャラクタ41A、ボール42A、およびクラブ43Aを仮想カメラ44の撮影範囲に含め、かつ、仮想カメラ44の撮影方向がカップ38に向かう位置に、仮想カメラ44を配置する。
端末処理部113は、決定されたショット順に基づいて、キャラクタ41A〜41Dによるショットの許可または禁止を制御する。端末処理部113は、たとえば、キャラクタ41Aにショットの順番が回った場合、キャラクタ41Aがボール42Aをショットすることが許可される第1期間(以下、許可期間)を、キャラクタ41Aに割り当てる。キャラクタ41Aのショット期間において、キャラクタ41Aはボール42Aをショットすることができる。キャラクタ41Aのショット期間において、キャラクタ41B〜41Cのそれぞれは、ボール42B〜42Dのそれぞれをショットすることができない。キャラクタ41Aの許可期間は、ショット順がキャラクタ41B〜41Dのそれぞれに回ってくるまでキャラクタ41B〜41Dのそれぞれが待機する期間であるとも言える。キャラクタ41Aの許可期間は、一連のショット操作を第2〜第4ユーザのそれぞれが入力する順番が第2〜第4ユーザのそれぞれに順次回ってくるまで第2〜第4ユーザのそれぞれが待機する期間であるとも言える。
端末処理部113は、キャラクタ41A以外のキャラクタ41B〜41Dのいずれかにショット順が回った場合、キャラクタ41Aがボール42Aをショットすることが禁止される第2期間(以下、禁止期間)を、キャラクタ41Aに割り当てる。キャラクタ41Aは、キャラクタ41Aの禁止期間において、ボール42Aをショットすることができない。キャラクタ41Aは、キャラクタ41Aの禁止期間において、第1ユーザの入力操作に基づいてゲーム空間3内を自由に移動することができる。キャラクタ41Aの禁止期間は、ショット順がキャラクタ41Aに回ってくるまでキャラクタ41Aが待機する期間であるとも言える。キャラクタ41Aの禁止期間は、キャラクタ41Aにボール42Aをショットさせるための一連の操作を第1ユーザが入力する順番が第1ユーザに回ってくるまで第1ユーザが待機する期間であるとも言える。
端末処理部113は、キャラクタ41A〜41Dのうちいずれかに許可期間を割り当てた場合、キャラクタ41A〜41Dのうち他のすべてに禁止期間を割り当てる。この割り当てによれば、たとえばキャラクタ41Aがボール42Aをショットする期間において、キャラクタ41B〜41Dのそれぞれはボール42B〜42Dのそれぞれをショットすることができない。これによりユーザ端末100は、複数のゴルファーが一緒に同じホールをラウンドする場合に特定のゴルファーのみがゴルフボールをショットすることができるという一般的なゴルフのルールを、ゲームプログラム121に基づくゴルフゲームに反映させることができる。
端末処理部113は、キャラクタ41A〜41Dのそれぞれによるティーショットが終了した後、ゲーム空間3におけるグリーン37とボール42A〜42Dのそれぞれとの各位置関係に基づいて、第2打をショットさせるキャラクタ41の順番を決定する。端末処理部113は、たとえば、ボール42A〜42Dのうちグリーン37から最も遠い位置に配置されるボール42に対応するキャラクタ41Aに、第2打を最初にショットさせることを決定する。端末処理部113は、第3打以降も、同様の手順によって、キャラクタ41A〜41Dの各ショット順を決定する。
本開示の一局面において、ゲーム空間3におけるゴルフゲームのマルチプレイは、キャラクタ41A〜41Dによってそれぞれショットされたボール42A〜41Dがいずれもカップ38に入ったことに基づいて終了する。
(マルチプレイに対応するゲーム画面4の一例)
図37は、ティーインググラウンド31に立ったキャラクタ41Aが表示されるゲーム画面4の一例を示す図である。表示制御部117は、図36に示すようにゲーム空間3に配置された仮想カメラ44によって生成された撮影画像に基づいて、たとえば図37に示すゲーム画面4を表示部152に表示させる。図37のゲーム画面4は、キャラクタ41Aがボール42Aをティーショットする直前の場面に対応する。図36のゲーム空間3では、仮想カメラ44の撮影範囲に、ティーインググラウンド31、ラフ33、キャラクタ41A〜41C、およびボール42Aが含まれる。表示制御部117は、ティーインググラウンド31、ラフ33、キャラクタ41A〜41C、およびボール42Aが含まれる撮影画像を、図36に示すように表示部152に少なくとも表示させる。ゲーム画面4におけるキャラクタ41A、ボール42A、クラブ43Aの配置は、図5に示すゲーム画面4と同一であるため、説明を繰り返さない。
図37のゲーム画面4において、仮想カメラ44の撮影範囲に含まれるキャラクタ41Bおよびキャラクタ41Cは、ゲーム空間3におけるキャラクタ41Bおよびキャラクタ41Bの挙動に対応する表示態様で配置される。表示制御部117は、たとえば、キャラクタ41Bがゲーム画面4においてラフ33の上を移動するように、キャラクタ41Bを表示部152に表示させる。表示制御部117は、たとえば、キャラクタ41Cがゲーム画面4内においてラフに上に立つ(静止する)ように、キャラクタ41Cを表示部152に表示させる。第1ユーザは、図37のゲーム画面4を視認することによって、ゲーム空間3におけるキャラクタ41Bおよびキャラクタ41Cの様子を知ることができる。
表示制御部117は、さらに、ボタン51および52を、マルチプレイに対応するゲーム画面4において撮影画像に重畳させて、表示部152に表示させる。ボタン51および52の配置および機能は、図5のゲーム画面4と同一であるため、説明を繰り返さない。マルチプレイにおけるティーショットの手順は、基本的にシングルプレイと同一であるため、説明を繰り返さない。ティーショットのためのクラブ43の選択およびショット方向の指定方法は、シングルプレイの場合と同一であるため、説明を繰り返さない。マルチプレイにおいて、キャラクタ41Aにボール42Aをティーショットさせるための第1ユーザの一連の入力操作は、シングルプレイと同一である。そのため、説明を繰り返さない。
表示制御部117は、アイコン54A〜54Dおよびマーク55を、マルチプレイに対応するゲーム画面4において撮影画像に重畳させて、表示部152に表示させる。図37では、アイコン54A〜54Dは、ゲーム画面4内の下部に配置される。アイコン54A〜54Dは、マルチプレイ時にゲーム空間3に配置されるキャラクタ41A〜41Dのそれぞれを示す情報である。アイコン54A〜54Dのそれぞれは、マルチプレイに参加する第1〜第4ユーザのそれぞれに対応する情報であるとも言える。第1ユーザは、ユーザ端末100Aのゲーム画面4に配置されるアイコン54A〜54Dを視認することによって、自身を含む4人の第1〜第4ユーザがマルチプレイに参加していることを、容易に確認することができる。
マーク55は、現在、キャラクタ41A〜41Dのうちいずれに許可期間が割り当てられているのかを示す情報である。ゲーム画面4において、マーク55は、許可期間が割り当てられたキャラクタ41に対応するアイコン54の上に配置される。図37では、キャラクタ41Aに許可期間が割り当てられているので、マーク55は、キャラクタ41Aに対応するアイコン54Aの上部に配置される。第1ユーザは、ゲーム画面4におけるマーク55の位置を視認することによって、現在、キャラクタ41Aにボール42Aをショットさせることができるのか否かを確認することができる。
表示制御部117は、マーク55の代わりに、許可期間が割り当てられるキャラクタ41に対応するユーザを第1ユーザに通知するためのテキストを、表示部152に表示させることもできる。表示制御部117は、たとえば、キャラクタ41Bに許可期間が割り当てられる場合、キャラクタ41Bに対応する第2ユーザの名称を含むテキストとして、「第2ユーザの番です」というテキストを表示部152に表示させる。第1ユーザは、表示されたテキストを視認することによって、ショット順がいずれのユーザに回っているのかを確認することができる。
(キャラクタ41Aの移動)
図38は、ゲーム空間3におけるキャラクタ41Aの移動の一例を示す図である。オブジェクト制御部115は、キャラクタ41を移動させるためのユーザの入力操作に基づいて、図38に示すようにキャラクタ41Aをゲーム空間3内で移動させる。図38では、キャラクタ41Aは、ティーショットされたボール42Aの位置に向かってラフ33の上を移動している。許可期間は、キャラクタ41Bに割り当てられている。キャラクタ41Bは、ティーインググラウンド31においてボール42Bをティーショットしようとしている。キャラクタ41Aおよびキャラクタ41Dは、仮想カメラ44の撮影範囲に含まれる。表示制御部117は、キャラクタ41Aがゲーム空間3内を移動する様子を、たとえば図39に示すように表示部152に表示させる。
図39は、マルチプレイ中にゲーム空間3内を移動するキャラクタ41Aが表示されるゲーム画面4の一例を示す図である。表示制御部117は、たとえば図39に示すように、ゲーム画面4においてキャラクタ41Aが歩いてラフ33の上を移動するように、キャラクタ41Aを表示部152に表示させる。ゲーム画面4において、弾性体オブジェクト71が第1ユーザの指の接触位置に配置される。弾性体オブジェクト71の機能および挙動変形は、シングルプレイの場合と同一であるため、説明を繰り返さない。
表示制御部117は、たとえば図39に示すように、キャラクタ41Aに禁止期間が割り当てられる場合、アイコン54A〜54Dおよびマーク55の表示を表示部152に表示させる。図39のゲーム画面4において、マーク55は、許可期間が割り当てられるキャラクタ41Bに対応するアイコン54Bの上部に配置される。第1ユーザは、キャラクタ41Aの移動中において、現在、キャラクタ41Bにショット順が回っていることを、ゲーム画面4を通じて容易に確認することができる。
図39では、表示制御部117は、ゲーム画面4においてキャラクタ41Dがキャラクタ41Aの前方において移動するように、キャラクタ41Dを表示部152に表示させる。第1ユーザは、図39のゲーム画面4を視認することによって、キャラクタ41Aの移動中において、ゲーム空間3におけるキャラクタ41Dが移動する様子を確認することができる。
(ショットの観察)
図40は、ゲーム空間3における仮想カメラ44の撮影範囲内に含まれる位置でアドレスに入ったキャラクタ41Bが表示されるゲーム画面4の一例を示す図である。表示制御部117は、仮想カメラ44の撮影範囲に、アドレスに入っているキャラクタ41Bが含まれる場合、たとえば図40に示すように、ゲーム画面4を表示部152に表示させる。図40のゲーム画面4において、キャラクタ41Aのラフ33の上に立っている。キャラクタ41Bおよびボール42Bは、バンカー36の上に配置される。キャラクタ41Bは、クラブ43Bを手に持って、バンカーショットのためのアドレスに入っている。表示制御部117は、ゲーム画面4においてキャラクタ41Bがキャラクタ41Aの前方においてアドレスに入るように、キャラクタ41Bを表示部152に表示させる。キャラクタ41Bに許可期間が割り当てられているため、マーク55がアイコン54Bの上部に配置される。第1ユーザは、図40のゲーム画面4を視認することによって、キャラクタ41Bがアドレスに入っている様子を確認することができる。
図41は、ゲーム空間3における仮想カメラ44の撮影範囲内に含まれる位置でボール42Bをショットしたキャラクタ41Bが表示されるゲーム画面4の一例を示す図である。図41のゲーム画面4において、キャラクタ41Bはクラブ43Bをフルスイングし、ボール42Bのバンカーショットに成功している。ボール42Bは、バンカーショットの結果、ボール42は、指定されたショット方向に沿って真っ直ぐ飛翔している。第1ユーザは、図41のゲーム画面4を視認することによって、キャラクタ41Bがボール42Bをバンカーショットする様子を確認することができる。
(チャット機能)
本開示の一局面において、ゲームシステム1は、マルチプレイ時にユーザ間でメッセージを交換させるための機能を、第1〜第4ユーザに提供する。表示制御部117は、チャット機能に対応するゲーム画面4を、たとえば図42に示すように表示部152に表示させる。
図42は、第1ユーザによって操作されるユーザ端末100Aに表示されるゲーム画面4の一例を示す図である。図42のゲーム画面4において、キャラクタ41Aは、ラフ33の上に立っている。キャラクタ41Cに許可期間が割り当てられているため、マーク55がアイコン54Cの上部に配置される。表示制御部117は、チャット機能に対応するアイコン131を、ゲーム画面4において撮影画像に重畳させて、表示部152に表示させる。
図43は、第2ユーザによって操作されるユーザ端末100Bに表示されるゲーム画面4の一例を示す図である。ユーザ端末100Bにおいて、仮想カメラ44は、ゲーム空間3におけるキャラクタ41Aおよび41Bを撮影範囲に含む位置に配置される。図43のゲーム画面4において、キャラクタ41Bは、ラフ33の上を歩いて移動している。キャラクタ41Aは、ゲーム画面4においてキャラクタ41Bの前方に配置される。ユーザ端末100Bの表示制御部117は、チャット機能に対応するアイコン131を、図43に示すように、ユーザ端末100Bのゲーム画面4において撮影画像に重畳させて、表示部152に表示させる。
図42のゲーム画面4において、ユーザ端末100Aの操作受付部112は、アイコン131を選択するための第1ユーザの入力操作(たとえばタップ操作)を受け付ける。表示制御部117は、この入力操作に基づいて、たとえば図44に示すように、チャット機能に対応するウインドウ132および複数のメッセージ133を、表示部152に表示させる。
(ウインドウ132の表示)
図44は、複数のメッセージ133が表示されるゲーム画面4の一例を示す図である。表示制御部117は、ゲーム画面4においてアイコン131に関連付けて配置されるウインドウ132を、表示部152に表示させる。表示制御部117は、さらに、ウインドウ132内に並んで配置される複数のメッセージ133を、表示部152に表示させる。各メッセージ133は、第1ユーザから第2〜第4ユーザに対して伝達される事項を表す表示情報(画像およびテキストなど)を有する。各メッセージ133には、好ましくは、第2〜第4ユーザに伝達される事項に対応する音声を表す音声情報が関連付けられる。
図44のゲーム画面4において、ユーザ端末100Aの操作受付部112は、複数のメッセージ133のうちいずれかを選択するための第1ユーザの入力操作(たとえばタップ操作)を受け付ける。表示制御部117は、この入力操作に基づいて、たとえば図45に示すように、選択されたメッセージ133をキャラクタ41Aに関連付けて、表示部152に表示させる。
図45は、第1ユーザによって選択されたメッセージ133がキャラクタ41Aに関連付けられて表示されるユーザ端末100Aのゲーム画面4の一例を示す図である。表示制御部117は、たとえば、第1ユーザによって選択されたメッセージ133がキャラクタ41Aの近くに配置されるように、メッセージ133を表示部152に表示させる。第1ユーザは、キャラクタ41Aに関連付けて表示されるメッセージ133を視認することによって、第1ユーザによって選択されたメッセージ133の種類を、確認することができる。端末処理部113は、好ましくは、選択されたメッセージ133に音声情報が含まれる場合、この音声情報によって表される音声を、ユーザ端末100Bが備えるスピーカ(不図示)に出力させる。表示制御部117は、選択されたメッセージ133が表示時される際、ウインドウ132およびその内部に配置される複数のメッセージ133の表示を、表示部152に消去させる。第1ユーザは、ウインドウ132の消去を視認することによって、チャットのための入力操作が正常に完了したと認識する。
ユーザ端末100Aにおいて、送受信部111は、第1ユーザによって選択されたメッセージ133に関する情報(以下、メッセージ情報)を、サーバ200を通じてユーザ端末100B〜100Dに送信する。メッセージ情報は、たとえば、メッセージ133を構成するテキスト、画像、または音声などを表す各種の情報を含む。メッセージ情報は、たとえば、メッセージ133を他のメッセージ133と識別するための識別子である。
ユーザ端末100Bの送受信部111は、ユーザ端末100Aから送信されたメッセージ情報を、サーバ200を通じて受信する。表示制御部117は、受信されたメッセージ情報に基づいて、ユーザ端末100Aにおいて第1ユーザによって選択されたメッセージ133を、たとえば図46に示すように、キャラクタ41Aに関連付けて表示部152に表示させる。
図46は、受信されたメッセージ情報に対応するメッセージ133がキャラクタ41Aに関連付けられて表示されるユーザ端末100Bのゲーム画面4の一例を示す図である。表示制御部117は、たとえば、受信されたメッセージ情報に対応するメッセージ133がキャラクタ41Aの近くに配置されるように、メッセージ133を表示部152に表示させる。第2ユーザは、キャラクタ41Aに関連付けて表示されるメッセージ133を視認することによって、第1ユーザから通知された事項を確認することができる。端末処理部113は、好ましくは、メッセージ情報に音声情報が含まれる場合、この音声情報によって表される音声を、ユーザ端末100Bが備えるスピーカ(不図示)に出力させる。
(ショット評価に対応するチャット機能)
図47は、キャラクタ41Bによるボール42Bのショットに関する評価に対応するメッセージの表示に関する一連の処理の流れを説明するフローチャートである。図47の処理が実行させる前に、ユーザ端末100Aの表示部152にはたとえば図48に示すゲーム画面4が表示され、ユーザ端末100Bの表示部152にはたとえば図49に示すゲーム画面4が表示される。
図48は、第1ユーザによって操作されるユーザ端末100Aに表示されるゲーム画面4の一例を示す図である。図48のゲーム画面4において、キャラクタ41Aは、ラフ33の上に立っている。キャラクタ41Bに許可期間が割り当てられているため、マーク55がアイコン54Bの上部に配置される。表示制御部117は、チャット用のアイコン131を、ゲーム画面4において撮影画像に重畳させて、表示部152に表示させる。
図49は、第2ユーザによって操作されるユーザ端末100Bに表示されるゲーム画面4の一例を示す図である。ユーザ端末100Bにおいて、仮想カメラ44は、ゲーム空間3におけるキャラクタ41Aおよび41Bを撮影範囲に含む位置に配置される。図49のゲーム画面4において、キャラクタ41Bは、フェアウェイ32に配置されるボール42Bをショットするためのアドレスに入っている。キャラクタ41Aは、ユーザ端末100Bのゲーム画面4においてキャラクタ41Bの前方に配置される。
ボール42Bからグリーン37までの距離は、アプローチショットに関する閾値よりも大きい。ユーザ端末100Bの表示制御部117は、フェアウェイ32においてキャラクタ41Bにボール42Bをショットさせるための操作オブジェクト61を、表示部152に表示させる。表示制御部117は、さらに、チャット用のアイコン131を、ユーザ端末100Bのゲーム画面4において撮影画像に重畳させて、表示部152に表示させる。
図49のゲーム画面4において、ユーザ端末100Bの操作受付部112は、キャラクタ41Bにボール42Bをショットさせるための第2ユーザの一連の入力操作を受け付ける。ユーザ端末100Bの送受信部111は、受け付けられた入力操作に関する情報(以下、操作情報)を、サーバ200を通じてユーザ端末100A、100C、および100Dに送信する。操作情報は、たとえば、ショットのための各入力操作に関するパラメータ(ドラッグ量、フリック速度、およびフリック方向など)を含む。操作情報は、たとえば、ユーザ端末100Bの端末処理部113によって特定された、ボール42Bのショットに関するショット評価を表す情報である。
(キャラクタ41Bのショット評価の特定)
ステップS21において、ユーザ端末100Aの操作受付部112は、ユーザ端末100Bから送信されたキャラクタ41Bに対応する操作情報を、サーバ200を介して受信する。ステップS22において、端末処理部113は、受信された操作情報に基づいて、キャラクタ41Bのショット評価を特定する。端末処理部113は、たとえば、ショット情報が第2ユーザの各入力操作のパラメータを含む場合、これらのパラメータに基づいて、キャラクタ41Bのショット評価を評価する。端末処理部113は、たとえば、ショット情報が、ユーザ端末100Bによって特定されたショット評価を表す情報である場合、ショット情報によって表されるショット評価を、キャラクタ41Bのショット評価として特定する。
ステップS23において、端末処理部113は、特定したショット評価が「ストレート」に一致するか否かを判定する。ステップS23においてYESの場合、ステップS24において、表示制御部117は、たとえば図50に示すように、特定されたショット評価であるストレートに対応するチャット用の複数のメッセージ134を、表示部152に自動的に表示させる。
(メッセージ134の表示)
図50は、ストレートに対応する複数のメッセージ133が配置されるゲーム画面4の一例を示す図である。表示制御部117は、ウインドウ132内に並んで配置される複数のメッセージ134を、表示部152に自動的に表示させる。これにより表示制御部117は、いずれかのメッセージ134に対する選択を、第1ユーザに促す。
各メッセージ134は、いずれも、第1ユーザが第2ユーザを賞賛する感情を第2〜第4ユーザに対して通知するためのメッセージである。各メッセージ134は、第2〜第4ユーザに対して伝達される好意的な感情を表す表示情報(画像およびテキストなど)を少なくとも有する。各メッセージ134には、好ましくは、第1ユーザの好意的な感情を表す音声情報が関連付けられる。第1ユーザは、第2ユーザに割り当てられた許可期間に自動的に表示される複数のメッセージ134を視認することによって、キャラクタ41Bによるボール42Bのショットに関する評価が「ストレート」であると認識する。
(メッセージ134の選択)
ステップS25において、ユーザ端末100Aの操作受付部112は、複数のメッセージ134のうちいずれかを選択するための第1ユーザの入力操作を、図50のゲーム画面4を通じて受け付ける。この操作は、たとえば、複数のメッセージ134のいずれかに対するタップ操作である。ステップS26において、表示制御部117は、この入力操作に基づいて、たとえば図51に示すように、選択されたメッセージ134をキャラクタ41Aに関連付けて、表示部152に表示させる。
図51は、第1ユーザによって選択されたメッセージ134がキャラクタ41Aに関連付けられて配置されるユーザ端末100Aのゲーム画面4の一例を示す図である。図51のゲーム画面4におけるメッセージ134の配置態様は、図45におけるメッセージ133の配置態様と同一であるため、説明を繰り返さない。
(メッセージ情報の送信)
ステップS27において、ユーザ端末100Aの送受信部111は、第1ユーザによって選択されたメッセージ134に関するメッセージ情報を、サーバ200を通じてユーザ端末100B〜100Dに送信する。ユーザ端末100Bの送受信部111は、ユーザ端末100Aから送信されたメッセージ情報を、サーバ200を通じて受信する。表示制御部117は、受信されたメッセージ情報に基づいて、ユーザ端末100Aにおいて第1ユーザによって選択されたメッセージ134を、たとえば図52に示すようにキャラクタ41Aに関連付けて表示部152に表示させる。
図52は、受信されたメッセージ情報に対応するメッセージ134がキャラクタ41Aに関連付けられて配置されるユーザ端末100Bのゲーム画面4の一例を示す図である。図52のゲーム画面4は、キャラクタ41Bがボール42Bのショットに成功した場面に対応する。アイコン64は、弾性領域62の上で停止している。キャラクタ41Bは、ボール42Bをフルスイングしている。ボール42Bは、指定されたショット方向に沿って真っ直ぐ飛翔している。ショット評価として「ストレート」を第2ユーザに通知するための通知情報70が、操作オブジェクト61の下部に配置されている。第2ユーザは、ゲーム画面4を視認することによって、ショット操作の入力に成功したと認識する。
(第1ユーザからのメッセージ134の表示)
図52のゲーム画面4におけるメッセージ134の配置態様は、図46と同様であるため、説明を繰り返さない。メッセージ134は、第2ユーザを賞賛するものであり、かつ、第2ユーザがショット操作の入力に成功したことに合致する。第2ユーザは、メッセージ134を視認することによって、第2ユーザがショット操作の入力に成功したことを第1ユーザから賞賛されたと認識する。したがって第2ユーザは、第1ユーザから通知されたメッセージ134を、第2ユーザに対する自然なメッセージとして受け入れることができる。言い換えると、第1ユーザは、第2ユーザに違和感を与えるメッセージを第2ユーザに通知せずに済む。これらの結果、第1および第2ユーザは、いずれも、ゴルフゲームを快適にプレイすることができる。
(失敗に対応するメッセージ135の表示)
ステップS23においてNOの場合、ステップS28において、表示制御部117は、たとえば図53に示すように、特定されたショット評価である「失敗」に対応するチャット用の複数のメッセージ135を、表示部152に自動的に表示させる。
図53は、失敗に対応する複数のメッセージ135が配置されるゲーム画面4の一例を示す図である。表示制御部117は、ウインドウ132内に並んで配置される複数のメッセージ135を、表示部152に自動的に表示させる。これにより表示制御部117は、いずれかのメッセージ135に対する選択を第1ユーザに積極的に促す。
各メッセージ135は、たとえば、第1ユーザが第2ユーザを非難したり慰めたりする感情を第2〜第4ユーザに対して通知するためのメッセージである。各メッセージ135は、第2〜第4ユーザに対して伝達される感情を表す表示情報(画像およびテキストなど)を少なくとも有する。各メッセージ134には、好ましくは、第2〜第4ユーザに伝達される感情を表す音声情報が関連付けられる。第1ユーザは、第2ユーザに割り当てられた許可期間に自動的に表示される複数のメッセージ135を視認することによって、キャラクタ41Bによるボール42Bのショットに関する評価が「失敗」であると認識する。
(メッセージ135の選択)
ステップS25において、ユーザ端末100Aの操作受付部112は、複数のメッセージ135のうちいずれかを選択するための第1ユーザの入力操作(たとえばタップ操作)を、図53のゲーム画面4を通じて受け付ける。ステップS26において、表示制御部117は、この入力操作に基づいて、たとえば図54に示すように、選択されたメッセージ135をキャラクタ41Aに関連付けて、表示部152に表示させる。
図54は、第1ユーザによって選択されたメッセージ135がキャラクタ41Aに関連付けられて配置されるユーザ端末100Aのゲーム画面4の一例を示す図である。ユーザ端末100Aのゲーム画面4におけるメッセージ135の配置は、図51におけるメッセージ134の配置と同一であるため、説明を繰り返さない。
(メッセージ情報の送信)
ステップS27において、ユーザ端末100Aの送受信部111は、第1ユーザによって選択されたメッセージ135に関するメッセージ情報を、サーバ200を通じてユーザ端末100B〜100Dに送信する。ユーザ端末100Bの送受信部111は、ユーザ端末100Aから送信されたメッセージ情報を、サーバ200を通じて受信する。表示制御部117は、受信されたメッセージ情報に基づいて、ユーザ端末100Aにおいて第1ユーザによって選択されたメッセージ135を、たとえば図55に示すようにキャラクタ41Aに関連付けて表示部152に表示させる。
図55は、受信されたメッセージ情報に対応するメッセージ134がキャラクタ41Aに関連付けられて配置されるユーザ端末100Bのゲーム画面4の一例を示す図である。図55のゲーム画面4は、キャラクタ41Bがボール42Bのショットに失敗した場面に対応する。アイコン64は、操作オブジェクト61の外部で停止している。キャラクタ41Bは、クラブ43Bを空振りしている。ボール42Bは、ゲーム画面4におけるスイング前の位置に静止したままである。ショット評価として「空振り」を第2ユーザに通知するための通知情報70が、操作オブジェクト61の下部に配置されている。第2ユーザは、ゲーム画面4を視認することによって、ショット操作の入力に失敗したと認識する。
図55のゲーム画面4におけるメッセージ134の配置態様は、図52と同様であるため、説明を繰り返さない。メッセージ135は、第2ユーザを慰めるものであり、かつ、第2ユーザがショット操作の入力に失敗したことに合致する。第2ユーザは、メッセージ135を視認することによって、ショット操作の入力に失敗したことを第1ユーザから慰められたと認識する。したがって第2ユーザは、第1ユーザからのメッセージ134を、第2ユーザに対する自然なメッセージとして受け入れることができる。言い換えると、第1ユーザは、第2ユーザに違和感を与えるメッセージを第2ユーザに通知せずに済む。これらの結果、第1および第2ユーザは、いずれも、ゴルフゲームを快適にプレイすることができる。
図50に示すウインドウ132に配置されるメッセージ134の数は、あくまでも一例に過ぎない。表示制御部117は、キャラクタ41Bによるボール42Bのショットに関する肯定的な評価に対応する少なくとも1つのメッセージ134を、表示部152に表示させることができる。図54に示すウインドウ132に配置されるメッセージ135の数は、あくまでも一例に過ぎない。表示制御部117は、キャラクタ41Bによるボール42Bのショットに関する否定的な評価に対応する少なくとも1つのメッセージ135を、表示部152に表示させることができる。
ユーザ端末100Bは、キャラクタ41Aの許可期間において、第2ユーザによって選択される所望のメッセージ133に対応するメッセージ情報を、ユーザ端末100Aに送信することができる。ユーザ端末100Aの表示制御部117は、好ましくは、キャラクタ41の許可期間に受信されたメッセージ情報に対応するメッセージ133を、表示部152に表示させない。これによりユーザ端末100は、ショット操作に入力中に表示されるメッセージ133に第1ユーザにとって目障りとなることを、防止することができる。
ユーザ端末100Aの端末処理部113は、好ましくは、受信されたメッセージ情報に音声情報が含まれる場合、この音声情報によって表される音声を、ユーザ端末100Aが備えるスピーカに出力させる。これによりユーザ端末100Aは、たとえば、ショット操作を入力中の第1ユーザを第2ユーザに応援させることができる。
(他のキャラクタの表示制御)
図56は、キャラクタ41Bがゲーム空間3内を移動する際のユーザ端末100Aのゲーム画面4におけるキャラクタ41Bの表示の制御に関する一連の処理の流れを説明するフローチャートである。
図56に示す一連の処理が開始される前に、ユーザ端末100Bの操作受付部112は、キャラクタ41Bを移動させるための第2ユーザの入力操作(たとえばスライド操作)を受け付ける。操作受付部112は、受け付けた入力操作に関する情報(以下、操作情報)を生成する。操作情報は、たとえば、スライド操作の方向を表す情報を少なくとも含む。送受信部111は、生成された操作情報を、サーバ200を通じてユーザ端末100A、100B、および100Dに送信する。
ステップS31において、ユーザ端末100Aの送受信部111は、ユーザ端末100Bから送信された第2ユーザの操作情報を、サーバ200を通じて受信する。ステップS32において、端末処理部113は、操作情報がキャラクタ41Aの許可期間に受信されたか否かを判定する。ステップS32においてNOの場合、ステップS33において、オブジェクト制御部115は、受信された操作情報に基づいて、たとえば図57に示すようにゲーム空間3内でキャラクタ41Bを移動させる。
図57は、第1ユーザの禁止期間における、ゲーム空間3内のキャラクタ41Bの移動を示す図である。図57の状態(A)は、移動前のキャラクタ41Bがゲーム空間3内の位置141に配置されるゲーム空間3を示す。図57の状態(B)は、移動後のキャラクタ41Bがゲーム空間3内の位置142に配置されるゲーム空間3を示す。図57の状態(B)に示すゲーム空間3において、位置142は、位置141から離れている。図57の状態(A)に示すゲーム空間3において、キャラクタ41Aおよび41Bは、いずれも仮想カメラ44の撮影範囲に含まれる位置に配置される。したがって表示制御部117は、キャラクタ41Bが移動する前に、キャラクタ41Aおよび41Bが配置されるゲーム画面4を、たとえば図58に示すように表示部152に表示させる。
図58は、第1ユーザの禁止期間中にキャラクタ41Bが移動する前のゲーム画面4を示す図である。図58のゲーム画面4において、キャラクタ41Dにショット順が回っている。したがってキャラクタ41Dに許可期間が割り当てられ、キャラクタ41A〜41Cに禁止期間が割り当てられる。マーク55は、許可期間が割り当てられるキャラクタ41Dに対応するアイコン54Dの上部に配置される。キャラクタ41Aは、フェアウェイ32の上に立っている。キャラクタ41Bは、ゲーム空間3内の位置141に対応するゲーム画面4内の位置に配置される。
端末処理部113は、図57の状態(B)に示すように、第1ユーザの禁止期間において受信されたキャラクタ41Bの移動に関する操作情報に基づいて、キャラクタ41Bをゲーム空間3内の位置141から位置142まで移動させる。キャラクタ41Bの移動後、キャラクタ41Aおよび41Bは仮想カメラ44の撮影範囲に含まれる。ステップS34において、表示制御部117は、表示制御部117は、図59に示すように、キャラクタ41Bがゲーム画面4内を移動するように、キャラクタ41Bを表示部152に表示させる。
(キャラクタ41Bの移動を表示)
図59は、第1ユーザの禁止期間中にキャラクタ41Bが移動した後のゲーム画面4を示す図である。図59のゲーム画面4において、キャラクタ41Bは、ゲーム空間3における位置142に対応するゲーム画面4内の箇所に配置される。図58および図59において、ゲーム画面4内のキャラクタ41Bが配置される位置は、互いに異なる。第1ユーザは、図58のゲーム画面4を視認した後には図59のゲーム画面4を視認することによって、キャラクタ41Bが第2ユーザの入力操作に基づいてゲーム画面4内を移動したと認識する。図58および図59のゲーム画面4において、第1ユーザに許可期間が割り当てられないので、第1ユーザは、キャラクタ41Aにボール42Aをショットさせるための一連のショット操作を入力する必要がない。この状況では、ゲーム画面4におけるキャラクタ41Bの移動は、第1ユーザのゴルフゲームのプレイを妨げる恐れは少ない。第1ユーザは、キャラクタ41Bが移動する様子をゲーム画面4を通じて視認したとしても、煩わしさを覚えることがない。
ステップS32においてYESの場合、ステップS35において、オブジェクト制御部115は、受信された操作情報に基づいて、たとえば図60に示すように、ゲーム空間3内でキャラクタ41Bを移動させる。
図60は、キャラクタ41Aの許可期間におけるゲーム空間3内のキャラクタ41Bの移動を示す図である。図60の状態(A)は、移動前のキャラクタ41Bが位置141に配置されるゲーム空間3を示す。図60の状態(B)は、移動後のキャラクタ41Bが位置141と異なる位置142に配置されるゲーム空間3を示す。図60の状態(B)に示すゲーム空間3において、位置142は、位置141から離れている。図60の状態(A)に示すゲーム空間3において、キャラクタ41Aおよび41Bは、いずれも仮想カメラ44の撮影範囲に含まれる位置に配置される。表示制御部117は、図60の状態(A)に示すゲーム空間3に対応するゲーム画面4を、たとえば図61に示すように、表示部152に表示させる。
図61は、キャラクタ41Aの許可期間においてゲーム空間3内を移動する前のキャラクタ41Bが表示されるゲーム画面4を示す図である。図61のゲーム画面4において、キャラクタ41Aにショット順が回っている。したがってキャラクタ41Aに許可期間が割り当てられ、キャラクタ41B〜41Dに禁止期間が割り当てられる。マーク55は、許可期間が割り当てられるキャラクタ41Aに対応するアイコン54Aの上部に配置される。
図61のゲーム画面4は、フェアウェイ32においてキャラクタ41Aがショットのためのアドレスに入った場面に対応する。ボール42Aは、フェアウェイ32に配置される。キャラクタ41Aは、フェアウェイ32の上において、ボール42Aをショットするためのアドレスに入っている。グリーン37からボール42Aまでの距離は、アプローチショットのための閾値を超えている。キャラクタ41Aにボール42Aをショットさせるための操作オブジェクト61が、ゲーム画面4内の右上の領域に配置される。キャラクタ41Bは、図60の状態(A)に示すゲーム空間3における位置141に対応するゲーム画面4内の位置に、配置される。操作オブジェクト61に対する第1ユーザの一連のショット操作は、まだ入力されない。
端末処理部113は、図60の状態(B)に示すように、第1ユーザの許可期間において受信されたキャラクタ41Bに関する操作情報に基づいて、キャラクタ41Bをゲーム空間3内の位置141から位置141とは異なる位置142まで移動させる。キャラクタ41Bの移動後、キャラクタ41Aおよび41Bは仮想カメラ44の撮影範囲に含まれる。ステップS36において、表示制御部117は、たとえば図62に示すように、ゲーム空間3内のキャラクタ41Bの移動に関わらずキャラクタ41Bがゲーム画面4内を静止するように、キャラクタ41Bを表示部152に表示させる。
(キャラクタ41Bの静止を表示)
図62は、キャラクタ41Aの許可期間中にゲーム空間3内を移動したキャラクタ41Bが静止した状態で表示されるゲーム画面4の一例を示す図である。図62のゲーム画面4は、第1ユーザがアイコン64をフリックした場面に対応する。キャラクタ41Bは、図62のゲーム画面4において、ゲーム空間3における移動前の位置141に対応するゲーム空間3内の位置に静止する。言い換えると、キャラクタ41Bは、図62のゲーム画面4において、図60の状態(B)に示す移動後の位置142に対応する位置には配置されない。図61および図62において、ゲーム画面4におけるキャラクタ41Bが配置される位置は、互いに同一である。第1ユーザは、図62のゲーム画面4を視認したとき、ゲーム空間3におけるキャラクタ41Bの現在の正確な位置を認識することができない。
表示制御部117は、ゲーム画面4が図61の状態から図62の状態に遷移するまでの間、キャラクタ41Bがゲーム画面4における同一の位置に静止し続けるように、キャラクタ41Bを表示部152に表示させる。第1ユーザは、図61のゲーム画面4を視認した後に図62のゲーム画面4を視認することによって、操作オブジェクト61に対する一連のショット操作の入力中に、キャラクタ41Bがゲーム画面4内を移動しないと認識する。これによりユーザ端末100は、一連のショット操作の入力中にキャラクタ41Bの移動が第1ユーザにとって目障りになることを、防止することができる。したがって、ユーザ端末100は、第1ユーザのショット操作の入力を、より容易にすることができる。ユーザ端末100は、さらに、一連のショット操作を操作オブジェクト61に入力する際の第1ユーザの集中力を、より高めることができる。これらの結果、第1ユーザは、ゴルフゲームをより快適に楽しむことができる。
ステップS37において、端末処理部113は、キャラクタ41Aの許可期間が終了した否かを判定する。ステップS37においてNOの場合、図56の処理はステップS31に戻る。これによりユーザ端末100は、キャラクタ41Aの許可期間が終了するまで、ステップS31〜S36の各処理を繰り返し実行する。表示制御部117は、たとえば、図62に示すようにアイコン64がフリックされた後、図62に示すゲーム画面4を、たとえば図63に示す状態に更新する。
(キャラクタ41Bの静止表示を継続)
図63は、キャラクタ41Aの許可期間にゲーム空間3内をさらに移動したキャラクタ41Bがさらに静止し続けた状態で表示されるゲーム画面4の一例を示す図である。図63のゲーム画面4は、キャラクタ41Aがボール42Aのショットに成功した場面に対応する。オブジェクト制御部115は、図62の状態から図63の状態に遷移するまでの間に受信された操作情報に基づいて、キャラクタ41Bをゲーム空間3内をさらに移動させる。キャラクタ41Bは、キャラクタ41Bがゲーム空間3内をさらに移動したことに関わらず、ゲーム画面4における同一の位置に静止し続ける。
ステップS37においてNOの場合、仮想カメラ制御部116は、キャラクタ41Aによってショットされたボール42Aの移動に追随するように、ゲーム空間3内で仮想カメラ44を移動させる。ステップS38において、表示制御部117は、たとえば図64に示すように、ボール42Aが飛翔する場面に対応するゲーム画面4を表示部152に表示させる。
図64は、ゲーム空間3内を飛翔するボール42Aが表示されるゲーム画面4の一例を示す図である。図63のゲーム画面4におけるボール42Aの表示は、たとえば図13のゲーム画面4におけるボール42の表示と同一であるため、説明を繰り返さない。仮想カメラ44がボール42Aの移動に追随して移動することによって、キャラクタ41Aおよび41Bは、仮想カメラ44の撮影範囲からいったん外れる。したがって図63のゲーム画面4には、キャラクタ41Aおよび41Bが表示されない。
(キャラクタ41Aおよび41Bの再表示)
ボール42Aは、ゲーム空間3内を移動した後、ゲーム空間3における移動先の位置で停止する。仮想カメラ制御部116は、ボール42Aの停止後、仮想カメラ44をゲーム空間3における元の位置に戻す。このとき、キャラクタ41Aおよび41Bは、仮想カメラ44の撮影範囲に含まれる。ステップS39において、表示制御部117は、たとえば図65に示すように、ゲーム空間3内のキャラクタ41Bが配置される現在の位置に対応するゲーム画面4内の位置にキャラクタ41Bが表示されるように、キャラクタ41Bを表示部152に表示させる。
図65は、ゲーム空間3における元の位置に配置された仮想カメラ44の撮影範囲に対応するゲーム画面4の一例を示す図である。図65のゲーム画面4において、キャラクタ41Aは、クラブ43を手に持って立っている。キャラクタ41Aの許可期間が終了し、次の許可期間がキャラクタ41Cに割り当てられる。図65のゲーム画面4におけるキャラクタ41Bの位置は、ゲーム空間3におけるキャラクタ41Bが配置される現在の位置に対応する。第1ユーザは、図65のゲーム画面4を視認することによって、キャラクタ41Aによるボール42Aに対するショットが終了した後、ゲーム空間3におけるキャラクタ41Bの現在の正確な位置を認識することができる。
第1ユーザは、図63のゲーム画面4を通じて、キャラクタ41Aがボール42Aをショットする場面を視認する。第1ユーザは、次に、図64のゲーム画面4を通じて、ボール42Aが飛翔する場面を視認する。第1ユーザは、図64のゲーム画面4を通じて、キャラクタ41Aおよび41Bの挙動を視認しない。第1ユーザは、次に、図65のゲーム画面4を通じて、移動後のキャラクタ41Bを視認する。
図65のゲーム画面4内のキャラクタ41Bの位置は、図63のゲーム画面4におけるキャラクタ41Bの位置から大きく離れている。第1ユーザは、図65のゲーム画面4を視認する前に図64のゲーム画面4を視認することによって、ゲーム画面4におけるキャラクタ41Bの位置の乖離が、図64のゲーム画面4の表示中にキャラクタ41Bがゲーム空間3内を移動したために生じたと理解する。したがって第1ユーザは、ショット操作の入力後に生じたキャラクタ41Bの位置の乖離に違和感を覚えることがない。
言い換えると、表示制御部117は、図63〜図65に示すように、キャラクタ41Aによるショットの終了後に、ゲーム画面4においてキャラクタ41Bが突然ワープするように、キャラクタ41Bを表示部152に表示させることがない。これにより第1ユーザは、キャラクタ41Bがゲーム画面4内でより自然に挙動したと認識することができる。
(禁止期間における素振り機能)
本開示の一局面において、ゲームシステム1は、キャラクタ41Aがボール42Aをショットすることが禁止される禁止期間に、第1ユーザの一連のショット操作に基づいてキャラクタ41Aにクラブ43Aを素振りさせる機会を、第1ユーザに提供する。ユーザ端末100Aは、たとえば、キャラクタ41Aがティーショットまたはそれよりも後のショットによってゲーム空間3内を移動した後のボール42Aをさらにショットする前に、ゲーム空間3におけるボール42Aの位置の近くでキャラクタ41Aにクラブ43Aを素振りさせる機会を、第1ユーザに提供する。
図66は、キャラクタ41Aによるクラブ43Aの素振りに関する一連の処理の流れを示すフローチャートである。図66に示す一連の処理が実行される前に、表示制御部117は、クラブ43Aの素振りに対応するゲーム画面4を、たとえば図67に示すように表示部152に表示させる。
図67は、フェアウェイ32に立ったキャラクタ41Aが表示されるゲーム画面4の一例を示す図である。図67のゲーム画面4は、キャラクタ41Aがクラブ43Aを素振りする直前の場面に対応する。表示制御部117は、フェアウェイ32、グリーン37、キャラクタ41、およびボール42が含まれる撮影画像を表示部152に少なくとも表示させる。図67のゲーム画面4におけるキャラクタ41A、ボール42A、クラブ43Aの配置は、図18のゲーム画面4におけるキャラクタ41、ボール42、およびクラブ43の配置と同一であるため、説明を繰り返さない。表示制御部117は、さらに、ボタン51および52を、ゲーム画面4において撮影画像に重畳させて、表示部152に表示させる。ボタン51および52の配置および機能は、たとえば図5のゲーム画面4と同一であるため、説明を繰り返さない。
図67のゲーム画面4において、キャラクタ41Bにショット順が回っている。したがってキャラクタ41Bに許可期間が割り当てられ、キャラクタ41A、41C、および41Dに禁止期間が割り当てられる。マーク55は、許可期間が割り当てられるキャラクタ41Bに対応するアイコン54Bの上部に配置される。第1ユーザは、アイコン54Bの上部に配置されるマーク55を視認することによって、現在はキャラクタ41Aにボール42Aをショットさせることができないと認識する。第1ユーザは、ショット順がキャラクタ41Aに回るまで、待機する。
(素振り中であることの通知)
表示制御部117は、キャラクタ41Aの禁止期間にキャラクタ41Aからボール42Aまでの距離が規定の閾値以内になった場合、図67に示すように、さらに、キャラクタ41Aがクラブ43Aを素振りすることを第1ユーザに通知するための通知情報161(第1情報)を、図67に示すように表示部152に表示させる。図67のゲーム画面4において、通知情報161は、ゲーム画面4内の右上付近に配置される。通知情報161は、キャラクタ41Aがクラブ43Aを素振りすることを表す画像またはテキストを少なくとも有する。図67のゲーム画面4において、通知情報161は、「素振り中」というテキストを有する。ユーザは、ゲーム画面4に配置された通知情報161を視認することによって、キャラクタ41Aがクラブ43Aを素振りする状況にあると認識する。
図67のゲーム画面4において、ゲーム空間3におけるボール42Aの位置とカップ38との距離は、距離の閾値よりも小さい。したがってキャラクタ41Aは、キャラクタ41Aの許可期間において、ユーザの一連のショット操作に基づいて、ボール42Aをアプローチショットすることができる。キャラクタ41Aは、キャラクタ41Aの禁止期間において、ユーザの一連のショット操作に基づいて、アプローチショットに対応する態様でクラブ43Aを素振りすることができる。これにより第1ユーザは、ショットの順番を待機する期間に、キャラクタ41Aにボール42Aをショットさせるための一連のショット操作の入力を練習することができる。
図67のゲーム画面4における素振りのためのクラブ43の選択およびショット方向の指定方法は、通常のアプローチショットの場合と同様であるため、説明を繰り返さない。ステップS41において、操作受付部112は、図67のゲーム画面4に配置される、キャラクタ41をアドレスに入らせるためのボタン52に対するユーザのタップ操作を受け付ける。ステップS42において、オブジェクト制御部115は、このタップ操作に基づいて、たとえば図68に示すように、キャラクタ41をアプローチショットするためのアドレスに入らせる。ステップS43において、表示制御部117は、たとえば図68に示すように、アプローチショット用の操作オブジェクト91を表示部152に表示させる。
(素振り用のアドレスへの移行)
図68は、クラブ43Aをアプローチショットに対応する態様で素振りするためのアドレスに入ったキャラクタ41Aが表示されるゲーム画面4の一例を示す図である。図68のゲーム画面4において、キャラクタ41Aは、クラブ43Aの先端をゲーム画面4における横方向においてボール42Aから規定距離だけ離した状態で、アドレスに入っている。表示制御部117は、操作オブジェクト81の表示後、通知情報161の表示を表示部152に継続させる。
素振り用の操作オブジェクト81の構成および操作方法は、通常のアプローチショット時と同一である。言い換えると、素振りの用の操作オブジェクト81に対する一連のショット操作は、通常のアプローチショットのための操作オブジェクト81に対する一連のショット操作と同一である。ステップS44において、操作受付部112は、操作オブジェクト81に対する第1ユーザのショット操作を受け付ける。ユーザは、アプローチショット用の所望の飛距離をキャラクタ41Aに設定するために、カーソル83をゲーム画面4の下方向にドラッグする。表示制御部117は、ドラッグ操作時の指の接触位置の変化に追随して、たとえば図69に示すように、ゲーム画面4におけるカーソル83の表示位置を変更させる。
図69は、ゲージ82に沿ってドラッグされたカーソル83が表示されるゲーム画面4の一例を示す図である。表示制御部117は、キャラクタ41Aによる素振り中においても、ゲージ82におけるカーソル83の位置に対応する深さでキャラクタ41がクラブ43をバックスイングするように、キャラクタ41Aを表示部152に表示させる。表示制御部117は、操作オブジェクト81の操作中に、通知情報161の表示を表示部152に継続させる。
操作オブジェクト81におけるアイコン84の表示、移動、および停止は、通常のアプローチショット時と同一であるため、説明を繰り返さない。表示制御部117は、素振りに対応するゲーム画面4の表示中に、アイコン84の落下を停止させるための第1ユーザのタップ操作が受け付けられた場合、たとえば図70に示すように、ゲーム画面4におけるアイコン84の落下を表示部152に停止させる。
(クラブ43Aの素振り)
図70は、クラブ43Aを素振りするキャラクタ41Aが表示されるゲーム画面4の一例を示す図である。ステップS45において、端末処理部113は、アプローチショットに対応する素振りに関する評価(以下、ショット評価)を特定する。この場合の素振りに関するショット評価の特定方法は、通常のアプローチショット時と同一であるため、説明を繰り返さない。端末処理部113は、図70のゲーム画面4においてアイコン84がカーソル83に重畳することに基づいて、ショット評価を「ストレート」に決定する。オブジェクト制御部115は、決定されたショット評価に基づいた態様で、キャラクタ41にクラブ43を素振りさせる。オブジェクト制御部115は、特定されたショット評価に関わらず、ゲーム空間3内でボール42Aを移動させない。
ステップS46において、表示制御部117は、たとえば図70に示すように、キャラクタ41がクラブ43を素振りするように、キャラクタ41を表示部152に表示させる。ステップS47において、表示制御部117は、さらに、たとえば図70に示すように、ボール42Aがゲーム画面4におけるクラブ43Aが素振りされる前の位置に静止し続けるように、ボール42Aを表示部152に表示させる。図70のゲーム画面4において、キャラクタ41は、クラブ43をフルスイングしている。第1ユーザは、キャラクタ41Aがクラブ43Aを用いてボール42Aをショットすることなくクラブ43Aをフルスイングする場面を視認することによって、キャラクタ41Aがクラブ43Aを素振りしたと認識する。
表示制御部117は、たとえば、キャラクタ41Aがクラブ43Aの先端をゲーム画面4の横方向におけるボール42Aから離れた位置を通過させてクラブ43Aをフルスイングするように、キャラクタ41Aを表示部152に表示させる。キャラクタ41Aは、クラブ43Aをフルスイングしてもクラブ43Aの先端をボール42Aに当てない。これにより第1ユーザは、キャラクタ41Aによる素振りの動作を、より自然な動作として認識する。ユーザ端末100は、ゴルファーがクラブの先端を地面と水平な方向においてボールから少し離した姿勢で素振りするという現実のゴルフにおける一般的な事象を、ゲームプログラム121に基づくゴルフゲームに反映させることができる。
(素振り評価の通知)
表示制御部117は、さらに、たとえば図70に示すように、特定された評価をユーザに通知するための通知情報70(第2情報)を、表示部152に表示させる。素振り時のゲーム画面4における通知情報70の配置は、通常のアプローチショット時のゲーム画面4における通知情報70の配置と同一であるため、説明を繰り返さない。図70のゲーム画面4において、通知情報70は、アプローチショットに対応する素振りに関する評価に対応する「ストレート」というテキストを含む。ユーザは、図70の通知情報70を視認することによって、アプローチショットに対応する素振りをキャラクタ41Aに成功させるために操作オブジェクト81をうまく操作できたことを、認識する。第1ユーザは、さらに、素振り時と同様に操作オブジェクト81を操作すれば、キャラクタ41Aにボール42Aをうまくアプローチショットさせることができるとも認識する。
以上のように、ユーザ端末100は、キャラクタ41Aの禁止期間において、キャラクタ41Aにボール42Aをショットさせるための一連のショット操作の入力を、第1ユーザに練習させることができる。ボール42Aは素振りの結果に基づいてゲーム空間3内を移動しないため、第1ユーザは、躊躇せずにキャラクタ41Aに繰り返しクラブ43Aを素振りさせることができる。これによりユーザ端末100は、操作オブジェクト81を操作するための第1ユーザの操作能力を、より効率的に向上させることができる。
ユーザ端末100は、さらに、キャラクタ41Aのショット番を第1ユーザが待機する際の待機時間を、第1ユーザにより短く感じさせることができる。ユーザ端末100は、さらに、第2ユーザのショット操作が完了するのを待機する期間に第1ユーザにショット操作の入力を練習させることによって、第2ユーザと一緒にゴルフゲームをプレイしている感覚を、第1ユーザにより強く生じさせることができる。ユーザ端末100は、さらに、キャラクタ41Aにショット順が回った場合の、やり直しができない一度のショットに対する第1ユーザの集中力を、より高めさせることができる。これらの結果、第1ユーザは、ゲームプログラム121に基づくゴルフゲームを、より快適にプレイすることができる。
ゲームシステム1によって第1ユーザに提供される素振りの機会は、アプローチショットに限られない。ゲームシステム1は、たとえば、ボール42Aがバンカー36に配置される場合、バンカーショットに対応する態様でキャラクタ41Aにクラブ43Aを素振りさせるための機会を、第1ユーザに提供する。この場合、ユーザ端末100は、バンカーショット用の操作オブジェクト91に対する一連のショット操作を入力することを、第1ユーザに練習させることができる。ゲームシステム1は、たとえば、ボール42Aがフェアウェイ32またはラフ33に配置され、かつ、グリーン37からボール42Aまでの距離が距離の閾値を超える場合、ティーショットに一致するショットに対応する態様でキャラクタ41Aにクラブ43Aを素振りさせるための機会を、第1ユーザに提供する。この場合、ユーザ端末100は、ティーショット用の操作オブジェクト61に対する一連のショット操作を入力することを第1ユーザに練習させることができる。
ゲームシステム1は、第2〜第4ユーザのそれぞれに対しても、キャラクタ41B〜41Dのそれぞれにクラブ43B〜43Dのそれぞれを素振りさせる機会を、提供する。ユーザ端末100B〜100Dのそれぞれによる第2〜第4ユーザのそれぞれに対する素振り機会の提供方法は、上述したユーザ端末100Aによる第1ユーザに対する素振り機会の提供方法と同一であるため、説明を繰り返さない。
(他のキャラクタによるショット結果のサブ画面表示)
本開示の一局面において、ゲームシステム1は、第2ユーザの一連のショット操作に基づいてキャラクタ41Bがボール42Bをショットした結果を、ゲーム画面4内に配置されるサブ画面を通じて第1ユーザに視認させる。
図71は、キャラクタ41Bによるボール42Bのショットに対応するサブ画面の生成および表示に関する一連の処理の流れを説明するフローチャートである。図71に示す一連の処理がユーザ端末100によって実行される前に、仮想カメラ制御部116は、たとえば図72に示すように、2つの異なる仮想カメラ171および172をゲーム空間3に配置する。
図72は、異なる仮想カメラ171および172が配置されるゲーム空間3の一例を示す図である。図72の状態(A)は、キャラクタ41Bがボール42Bをショットするためのアドレスに入っているゲーム空間3を示す。図72の状態(B)は、キャラクタ41Bがボール42Bをショットした後にボール42Bが移動するゲーム空間3を示す。
キャラクタ41Aおよび41Bは、図72の状態(A)に示すゲーム空間3内の異なる位置に配置される。ボール42Aはキャラクタ41Aの近くに配置され、ボール42Bはキャラクタ41Bの近くに配置される。キャラクタ41Aはボール42Aをショットした後、次のショット順を待機している。許可期間はキャラクタ41Aに割り当てられ、キャラクタ41Bは、ボール42Bをショットするためのアドレスに入っている。
図72の状態(A)において、仮想カメラ制御部116は、ゲーム空間3における仮想カメラ171の撮影範囲にキャラクタ41Aを含める位置に、仮想カメラ171を配置する。仮想カメラ制御部116は、さらに、ゲーム空間3における仮想カメラ172の撮影範囲にキャラクタ41Bを含める位置に、仮想カメラ171とは異なる仮想カメラ172を配置する。仮想カメラ制御部116は、仮想カメラ171および172をそれぞれ独立に制御する。仮想カメラ171および172は、仮想カメラ44と同様に、ゲーム空間3のうち第1ユーザに提示される領域を指定する仮想的なカメラである。仮想カメラ171は、ゲーム空間3のうち仮想カメラ171の撮影範囲(視野領域)に含まれる箇所を撮影することによって、撮影範囲に対応する第1撮影画像を生成する。仮想カメラ172は、ゲーム空間3のうち仮想カメラ172の撮影範囲(視野領域)に含まれる箇所を撮影することによって、撮影範囲に対応する第2撮影画像を生成する。
ステップS51において、表示制御部117は、図72の状態(A)に示すようにゲーム空間3に配置された仮想カメラ171によって生成された第1撮影画像に基づいて、たとえば図73に示すように、仮想カメラ171の撮影範囲に対応するゲーム画面4を表示部152に表示させる。
(ゲーム画面4の一例)
図73は、第1ユーザによって操作されるユーザ端末100Aに表示されるゲーム画面4の一例を示す図である。図73のゲーム画面4は、キャラクタ41がフェアウェイ32に立っている場面に対応する。表示制御部117は、フェアウェイ32およびキャラクタ41Aが含まれる第1撮影画像を表示部152に少なくとも表示させる。ゲーム画面4において、キャラクタ41Aは、フェアウェイ32に立っている。キャラクタ41Bに許可期間が割り当てられているため、マーク55がアイコン54Bの上部に配置される。表示制御部117は、さらに、ショットの順番が現在回っているキャラクタに対応するユーザを第1ユーザに通知するための通知情報181を、ゲーム画面4において第1撮影画像に重畳させて、表示部152に表示させる。
図73のゲーム画面4において、通知情報181は、ゲーム画面4内の左上近辺に配置される。通知情報181は、ショットの順番が回っているキャラクタに対応するユーザを表すテキストを少なくとも含む。図73のゲーム画面4において、通知情報181は、第2ユーザの名称を含む「ライブ:第2ユーザ」というテキストを含む。第1ユーザは、ゲーム画面4に配置された通知情報181を視認することによって、キャラクタ41Bにボール42Bをショットさせるための順番が第2ユーザに現在回っていることを、容易に確認することができる。キャラクタ41Bは、図72の状態(A)に示すゲーム空間3において、仮想カメラ171の撮影範囲に含まれない。したがって、図73のゲーム画面4には、キャラクタ41Bが配置されない。第1ユーザは、図73のゲーム画面4を視認しても、キャラクタ41Bの様子を確認することができない。
ユーザ端末100Bのゲーム画面4(不図示)において、ユーザ端末100Bの操作受付部112は、キャラクタ41Bにボール42Bをショットさせるための第2ユーザの一連の入力操作を受け付ける。ユーザ端末100Bの送受信部111は、受け付けられた入力操作に関する情報(以下、ショット情報)を、サーバ200を通じてユーザ端末100A、100C、および100Dに送信する。ショット情報は、たとえば、ショットのための各入力操作に関するパラメータ(ドラッグ量、フリック速度、およびフリック方向など)を含む。
ステップS52において、ユーザ端末100Aの操作受付部112は、ユーザ端末100Bから送信されたキャラクタ41Bに対応するショット情報を、サーバ200を介して受信する。ステップS53において、オブジェクト制御部115は、受信されたショット情報に基づいて、ゲーム空間3内でキャラクタ41Bにボール42Bにショットさせる。仮想カメラ制御部116は、ゲーム空間3内でキャラクタ41Bがボール42Bをショットする場面を表す第2撮影画像を、仮想カメラ172に生成させる。ステップS54において、表示制御部117は、仮想カメラ172によって生成された撮影画像に基づいて、キャラクタ41Bがボール42Bをショットする場面に対応するサブ画面182を生成する。ステップS55において、表示制御部117は、たとえば図74に示すように、生成されたサブ画面182がゲーム画面4の一部領域に含まれるようにサブ画面182を表示部152に表示させる。
(ショットの場面に対応するサブ画面182の表示)
図74は、ボール42Bがショットされる場面に対応するサブ画面182が表示されるゲーム画面4の一例を示す図である。図72のゲーム画面4において、サブ画面182は、通知情報181の下部に配置される。サブ画面182は、ゲーム画面4よりも小さく、かつ、ゲーム画面4内の左上近辺に配置される一部領域に含まれる。キャラクタ41Bは、サブ画面182内でボール42Bをショットしている。ショットされたボール42Bは、サブ画面182内を飛翔している。第1ユーザは、サブ画面182を視認することによって、仮想カメラ171の撮影範囲にキャラクタ41Bが含まれない場合であっても、キャラクタ41Bがボール42Bをショットする様子を容易に確認することができる。
キャラクタ41Bによってショットされたボール42Bは、たとえば図72の状態(B)に示すように、ゲーム空間3内を移動する。図72の状態(B)に示すゲーム空間3において、ボール42Bは、キャラクタ41Bから離れた位置を飛翔している。ステップS56において、仮想カメラ制御部116は、ゲーム空間3におけるボール42Bの移動に追随させて、仮想カメラ172をゲーム空間3において移動させる。図72の状態(B)に示すゲーム空間3において、キャラクタ41Aは、ゲーム空間3内で静止している。したがって仮想カメラ制御部116は、仮想カメラ171を、図72の状態(A)に示すゲーム空間3における仮想カメラ171の位置から変更しない。
仮想カメラ制御部116は、図72の状態(B)に示すようにゲーム空間3に配置される仮想カメラ172に、ゲーム空間3をボール42Bが飛翔する場面に対応する第2撮影画像を生成させる。ステップS57において、表示制御部117は、生成された第2撮影画像に基づいて、キャラクタ41Bのボール42Bが飛翔する場面に対応するサブ画面182を生成する。ステップS58において、表示制御部117は、たとえば図75に示すように、飛翔の場面に対応するサブ画面182がゲーム画面4の一部領域に含まれるように、サブ画面182を表示部152に表示させる。
(飛翔場面に対応するサブ画面182の表示)
図75は、ボール42Bが飛翔する場面に対応するサブ画面182が表示されるゲーム画面4の一例を示す図である。図75のゲーム画面4において、サブ画面182が配置される位置は、図74のゲーム画面4と同一である。表示制御部117は、たとえば図75に示すように、ゲーム空間3をボール42Bが飛翔する場面に対応する第2撮影画像がサブ画面182の全体に新たに配置されるように、サブ画面182の表示を表示部152に更新させる。
ボール42Bは、図75のサブ画面182内を飛翔している。表示制御部117は、たとえば、サブ画面182におけるボール42Bの表示位置を固定したまま、ゲーム空間3のうち仮想カメラ172の撮影範囲に含まれる部分がサブ画面182における奥から手前に流れるアニメーションを、表示部152に表示させる。第1ユーザは、サブ画面182を視認することによって、移動中のボール42Bが仮想カメラ171の撮影範囲に含まれない場合であっても、ショットされたボール42Bがゲーム空間3内を飛翔する様子を、詳細に確認することができる。
オブジェクト制御部115は、ショットされたボール42Bを、ゲーム空間3における飛翔条件に対応する位置に到達させ、その位置にボール42を停止させる。仮想カメラ制御部116は、たとえば、ボール42Bがゲーム空間3内で停止するまで、ボール42Bに追随するように仮想カメラ172を移動させる。端末処理部113は、ボール42Bの移動後、ショットの順番をたとえばキャラクタ41Cに回す。仮想カメラ制御部116は、たとえば、許可期間が割り当てられたキャラクタ41Cを仮想カメラ172の撮影範囲に含むゲーム空間3における位置に、仮想カメラ44を移動させる。表示制御部117は、ボール42Bの停止後、たとえば図76に示すように、ゲーム画面4におけるサブ画面182の表示を表示部152に消去させる。
(サブ画面182の表示を消去)
図76は、ボール42Bの移動が停止した後にサブ画面182の表示が消去されたゲーム画面4の一例を示す図である。表示制御部117は、ショットの順番が新たに回ったキャラクタ41Cに対応する第3ユーザの名称が通知情報181に含まれるように、通知情報181の表示内容を表示部152に更新させる。図76のゲーム画面4において、通知情報181は、第3ユーザの名称が含まれる「ライブ:第3ユーザ」というテキストを含む。表示制御部117は、さらに、キャラクタ41Cに対応するアイコン54Cの上部にマーク55が配置されるように、マーク55の表示位置を表示部152に更新させる。第1ユーザは、更新後のマーク55または通知情報181を視認することによって、キャラクタ41Bによるボール42Bのショットが終了した後、ショットの順番がキャラクタ41C(および対応する第3ユーザ)に回ったことを、認識することができる。
ユーザ端末100Aは、キャラクタ41Cまたは41Dのそれぞれによるショットの場面を、キャラクタ41Bの場合と同様に、サブ画面182を通じて第1ユーザに視認させることができる。仮想カメラ制御部116は、たとえば、キャラクタ41Cに対応する第3仮想カメラ(不図示)と、キャラクタ41Dに対応する第4仮想カメラ(不図示)とを、ゲーム空間3にさらに配置する。表示制御部117は、キャラクタ41Cがボール42Cをショットした場合、第3仮想カメラによって生成された撮影画像に基づいて、キャラクタ41Cがボール42Cをショットする場面に対応するサブ画面182を生成し、表示部152に表示させる。表示制御部117は、キャラクタ41Dがボール42Dをショットした場合、第4仮想カメラによって生成された撮影画像に基づいて、キャラクタ41Dがボール42Dをショットする場面に対応するサブ画面182を生成し、表示部152に表示させる。
(選択された他のキャラクタの表示機能)
本開示の一局面において、ゲームシステム1は、キャラクタ41A以外のキャラクタ41B〜41Dのそれぞれにおけるゲーム空間3における様子を、ゲーム画面4を通じて第1ユーザに確認させる。
図77は、第1ユーザによって選択されたキャラクタ41Bまたは41Cの表示に関する一連の処理の流れを示すフローチャートである。図77に示す一連の処理がユーザ端末100によって実行される前に、ゲーム空間3は、たとえば図78の状態(A)に示すように構成されている。
図78は、キャラクタ41Bまたは41Cを選択するための第1ユーザの選択操作に基づくゲーム空間3における仮想カメラ44の移動を示す図である。図78の状態(A)は、仮想カメラ44が移動される前のゲーム空間3の一例を示す。図78の状態(B)は、キャラクタ41Aおよび41Bを撮影範囲に含める位置に仮想カメラ44が移動された後のゲーム空間3を示す。図78の状態(C)は、キャラクタ41Aおよび41Cを撮影範囲に含める位置に仮想カメラ44が移動された後のゲーム空間3を示す。
図78の状態(A)に示すゲーム空間3において、キャラクタ41Aは位置191に配置される。キャラクタ41Bは、ゲーム空間3における位置191とは異なる位置192に配置され、キャラクタ41Cは、ゲーム空間3における位置191および192とは異なる位置193に配置される。キャラクタ41Aおよび41Cは、次のショットの順番を待機している。許可期間がキャラクタ41Bに割り当てられ、キャラクタ41Bは、ボール42Bをショットするためのアドレスに入っている。図78の状態(A)において、仮想カメラ制御部116は、ゲーム空間3における仮想カメラ44の撮影範囲にキャラクタ41Aを含める位置に、仮想カメラ44を配置する。表示制御部117は、図78の状態(A)に示すようにゲーム空間3に配置された仮想カメラ44によって生成された撮影画像に基づいて、たとえば図79に示すゲーム画面4を表示部152に表示させる。
(ゲーム画面4の一例)
図79は、第1ユーザによって操作されるユーザ端末100Aに表示されるゲーム画面4の一例を示す図である。図79のゲーム画面4は、キャラクタ41がフェアウェイ32に立っている場面に対応する。表示制御部117は、フェアウェイ32およびキャラクタ41Aが含まれる撮影画像を表示部152に少なくとも表示させる。ゲーム画面4において、キャラクタ41Aは、フェアウェイ32に立っている。キャラクタ41Bに許可期間が割り当てられているため、マーク55がアイコン54Bの上部に配置される。
表示制御部117は、さらに、ショットの順番が現在回っているキャラクタに対応するユーザを第1ユーザに通知するための通知情報181を、ゲーム画面4において第1撮影画像に重畳させて、表示部152に表示させる。図78のゲーム画面4において、通知情報181は、ゲーム画面4内の左上近辺に配置される。図78のゲーム画面4において、通知情報181は、キャラクタ41Bに対応する第2ユーザの名称を含む「ライブ:第2ユーザ」というテキストを含む。言い換えると、通知情報181は、キャラクタ41Bおよび第2ユーザに対応する。
キャラクタ41Bおよび41Cは、図78の状態(A)に示すゲーム空間3において、仮想カメラ171の撮影範囲に含まれない。したがって、図79のゲーム画面4には、キャラクタ41Bおよび41Cが配置されない。第1ユーザは、図79のゲーム画面4を視認しても、ゲーム空間3におけるキャラクタ41Bおよび41Cの様子を確認することができない。
ステップS61において、操作受付部112は、キャラクタ41Bを選択するための第1ユーザの入力操作(以下、選択操作)を、図79のゲーム画面4を通じて受け付ける。操作受付部112は、たとえば、キャラクタ41Bに対応する通知情報181に対する第1ユーザの入力操作(たとえばタップ操作)を、キャラクタ41Bを選択するための選択操作として受け付ける。操作受付部112は、あるいは、キャラクタ41Bに対応するアイコン54Bに対する第1ユーザの入力操作(たとえばタップ操作)を、キャラクタ41Bを選択するための選択操作として受け付けることもできる。これにより第1ユーザは、ゲーム画面4に表示されないキャラクタ41Bを容易に選択することができる。
(仮想カメラ44の移動)
ステップS62において、端末処理部113は、受け付けられた選択操作に基づいて、たとえば図78の状態(B)に示すように、ゲーム空間3においてキャラクタ41Aとキャラクタ41Bとを結ぶ直線194(第1直線)をゲーム空間3に規定する。直線194は、たとえば位置191と位置192とを結ぶ直線である。
ステップS63において、仮想カメラ制御部116は、たとえば図78の状態(B)に示すように、キャラクタ41Aおよび41Bが仮想カメラ44の撮影範囲に含まれるように、仮想カメラ44を直線194上の位置195に移動させる。言い換えると、仮想カメラ制御部116は、ゲーム空間3においてキャラクタ41Aおよび41Bが仮想カメラ44の撮影範囲に含まれるように、ゲーム空間3におけるキャラクタ41Aの後方の位置195に仮想カメラ44を移動させる。これにより仮想カメラ制御部116は、キャラクタ41Aおよび41Bを仮想カメラ44の撮影範囲に容易に含めることができる。
図78の状態(B)に示すゲーム空間3において、位置195は、直線194のうち位置191からキャラクタ41Bと逆の方向に向かう線分上にあるいずれかの位置である。仮想カメラ制御部116は、仮想カメラ44がキャラクタ41Aおよび41Bを向くように、仮想カメラ44の向きを制御する。仮想カメラ制御部116は、たとえば、仮想カメラ44の撮影方向を直線194に平行にさせる。
仮想カメラ制御部116は、さらに、キャラクタ41Aおよび41Bが含まれる撮影画像を、位置195に配置される仮想カメラ44に生成させる。ステップS64において、表示制御部117は、生成された撮影画像に基づいて、移動後の位置195に配置される仮想カメラ44の撮影範囲に対応するゲーム画面4を、たとえば図80に示すように、表示部152に表示させる。
(キャラクタ41Aおよび41Bの表示)
図80は、第1ユーザによって選択されたキャラクタ41Bが表示されるゲーム画面4の一例を示す図である。表示制御部117は、図80のゲーム画面4においてキャラクタ41Bがキャラクタ41Aの前方に配置されるように、キャラクタ41Bを表示部152に表示させる。図80のゲーム画面4において、キャラクタ41Bおよびボール42Bはフェアウェイ32の上に配置される。キャラクタ41Bは、クラブ43Bを持ってショットのためのアドレスに入っている。
第1ユーザは、図80のゲーム画面4を視認することによって、ゲーム空間3におけるキャラクタ41Bの現在の様子を確認する。第1ユーザは、キャラクタ41Bを選択するための簡単な操作を入力するだけでキャラクタ41Bの様子を確認することができるので、ゴルフゲームを快適にプレイすることができる。第1ユーザは、さらに、キャラクタ41Aとキャラクタ41Bとの位置関係を確認することもできる。第1ユーザは、この後、キャラクタ41Bがボール42Bをショットする様子を確認することもできる。
仮想カメラ制御部116は、必ずしも、キャラクタ41Aおよび41Bの双方を撮影範囲に含める位置に仮想カメラ44を移動させる必要はない。仮想カメラ制御部116は、キャラクタ41Bが選択された場合、少なくともキャラクタ41Bが撮影範囲に含まれるように仮想カメラ44を移動させればよい。これにより、第1ユーザは少なくともキャラクタ41Bの様子を確認することができる。
図78の状態(B)に示すゲーム空間3において、キャラクタ41Cは、仮想カメラ44の撮影範囲に含まれない。したがって、キャラクタ41Cは図80のゲーム画面4に配置されない。第1ユーザは、図80のゲーム画面4を視認しても、ゲーム空間3におけるキャラクタ41Cの様子を確認することができない。
ステップS65において、操作受付部112は、キャラクタ41Cを選択するための第1ユーザの入力操作(以下、選択操作)を、図80のゲーム画面4を通じて受け付ける。操作受付部112は、たとえば、キャラクタ41Cに対応するアイコン54Cに対する第1ユーザの入力操作(たとえばタップ操作)を、キャラクタ41Cを選択するための選択操作として受け付ける。これにより第1ユーザは、ゲーム画面4に表示されないキャラクタ41Cを容易に選択することができる。
ステップS66において、端末処理部113は、受け付けられた選択操作に基づいて、たとえば図78の状態(C)に示すように、ゲーム空間3においてキャラクタ41Aとキャラクタ41Cとを結ぶ直線196(第2直線)をゲーム空間3に規定する。直線196は、たとえば、位置191と位置193とを結ぶ直線である。
(仮想カメラ44の移動)
ステップS67において、仮想カメラ制御部116は、たとえば図78の状態(C)に示すように、キャラクタ41Aおよび41Cが仮想カメラ44の撮影範囲に含まれるように、仮想カメラ44を直線196上の位置197に移動する。言い換えると、仮想カメラ制御部116は、ゲーム空間3においてキャラクタ41Aおよび41Cが仮想カメラ44の撮影範囲に含まれるように、ゲーム空間3におけるキャラクタ41Aの後方の位置197に仮想カメラ44を移動させる。これにより仮想カメラ制御部116は、キャラクタ41Aおよび41Cを仮想カメラ44の撮影範囲に容易に含めることができる。
図78の状態(C)に示すゲーム空間3において、位置197は、直線196のうち位置191からキャラクタ41Cと逆の方向に向かう線分上にあるいずれかの位置である。仮想カメラ制御部116は、仮想カメラ44の撮影方向がキャラクタ41Aおよび41Cの方向を向くように、仮想カメラ44の向きを制御する。仮想カメラ制御部116は、たとえば、仮想カメラ44の撮影方向を直線196に平行にする。
仮想カメラ制御部116は、さらに、キャラクタ41Aおよび41Cが含まれる撮影画像を、位置197に移動した仮想カメラ44に生成させる。ステップS68において、表示制御部117は、たとえば図81に示すように、生成された撮影画像に基づいて、位置197に配置される仮想カメラ44の撮影範囲に対応するゲーム画面4を表示部152に表示させる。
(キャラクタ41Aおよび41Cの表示)
図81は、第1ユーザによって選択されたキャラクタ41Cが表示されるゲーム画面4の一例を示す図である。表示制御部117は、図80のゲーム画面4においてキャラクタ41Aが表示される位置が、図79のゲーム画面4と同一になるように、キャラクタ41Aを表示部152に表示させる。表示制御部117は、さらに、図81のゲーム画面4においてキャラクタ41Cがキャラクタ41Aの前方に立つように、キャラクタ41Cを表示部152に表示させる。図81のゲーム画面4において、キャラクタ41Aおよび41Cはフェアウェイ32の上に表示される。
第1ユーザは、図81のゲーム画面4を視認することによって、ゲーム空間3におけるキャラクタ41Cの現在の様子を確認する。第1ユーザは、キャラクタ41Cを選択するための簡単な操作を入力するだけでキャラクタ41Cの様子を確認することができるので、ゴルフゲームを快適にプレイすることができる。
仮想カメラ制御部116は、必ずしも、キャラクタ41Aおよび41Cの双方を撮影範囲に含める位置に仮想カメラ44を移動させる必要はない。仮想カメラ制御部116は、キャラクタ41Cが選択された場合、少なくともキャラクタ41Cが撮影範囲に含まれるように仮想カメラ44を移動させればよい。これにより、第1ユーザは少なくともキャラクタ41Cの様子を確認することができる。
(付記事項)
本発明の一側面に係る内容を列記すると以下のとおりである。
(項目1) 本実施形態において、プロセッサ(10)、メモリ(11)、表示部(152)、およびユーザの入力操作を受け付けるように構成される操作部(151)を備えるコンピュータであるユーザ端末(100)において実行されるゲームプログラム(121)について説明した。ゲームプログラム(121)に基づくゴルフゲームは、キャラクタ(41)によって作用を付与された移動体(42)がゲーム空間(3)内を移動することによって進行する。ゲーム空間(3)は、ゴルフのグリーン(38)と、グリーン(38)とは異なる第1領域(31)と、第1領域(31)とは異なる属性を有しかつグリーン(38)とは異なる第2領域(32,36)とを少なくとも有する。本実施形態のある局面によると、ゲームプログラム(121)は、プロセッサ(10)に、キャラクタ(41)および移動体(42)を表示部(152)に表示させるステップと、移動体(42)が第1領域(31)に配置される場合、移動体(42)に対する作用を付与させるための一連の入力操作をユーザから受け付けるための第1操作オブジェクト(61)を、表示部(152)に表示させるステップ(S3)と、移動体(42)が第2領域(32,36)に配置される場合、移動体(42)に対する作用をキャラクタ(41)に付与させるための一連の入力操作をユーザから受け付けるための、第1操作オブジェクト(61)とは異なる第2操作オブジェクト(81,91)を、表示部(152)に表示させるステップ(S5,S7)とを実行させる。これにより、ゲームの興趣性を向上させることができる。
(項目2) (項目1)において、第2領域(32,36)は、第1領域(31)と異なる種類の領域である。これにより、領域の種類に応じて、異なる操作オブジェクトをユーザに操作させることができる。
(項目3) (項目1)または(項目2)において、第1領域(31)に配置される移動体(42)からグリーン(38)までの距離は、規定の閾値を超えており、第2領域(32,36)に配置される移動体(42)からグリーン(38)までの距離は、規定の閾値以下である。これにより、移動体(42)からグリーン(38)までの距離に応じて、異なる操作オブジェクトをユーザに操作させることができる。
(項目4) (項目1)〜(項目3)のいずれかにおいて、第2操作オブジェクト(81,91)を表示部(152)に表示させるステップでは、第1操作オブジェクト(61)と外観が異なる第2操作オブジェクト(81,91)を表示部(152)に表示させる。これにより、第2操作オブジェクト(81,91)の操作性が第1操作オブジェクト(61)と異なることを、ユーザに知らせることができる。
(項目5) (項目1)〜(項目4)のいずれかにおいて、第2操作オブジェクト(81,91)を表示部(152)に表示させるステップでは、第2操作オブジェクト(91)が受け付ける少なくとも1つの入力操作の種類が第1操作オブジェクト(61)と異なる第2操作オブジェクト(91)を、表示部(152)に表示させる。これにより、移動体(42)が配置される領域の属性に応じて、操作性の異なる第1操作オブジェクト(61)または第2操作オブジェクト(91)をユーザに操作させることができる。
(項目6) 本実施形態において、プロセッサ(10)、メモリ(11)、表示部(152)、およびユーザの入力操作を受け付けるように構成される操作部(151)を備えるコンピュータがゲームプログラム(121)を実行する方法について説明した。ゲームプログラム(121)に基づくゴルフゲームは、キャラクタ(41)によって作用を付与された移動体(42)がゲーム空間(3)内を移動することによって進行する。ゲーム空間(3)は、ゴルフのグリーン(38)と、グリーン(38)とは異なる第1領域(31)と、第1領域(31)とは異なる属性を有しかつグリーン(38)とは異なる第2領域(32,36)とを少なくとも有する。本実施形態のある局面によると、方法は、プロセッサ(10)が、キャラクタ(41)および移動体(42)を表示部(152)に表示させるステップと、移動体(42)が第1領域(31)に配置される場合、移動体(42)に対する作用を付与させるための一連の入力操作をユーザから受け付けるための第1操作オブジェクト(61)を、表示部(152)に表示させるステップ(S3)と、移動体(42)が第2領域(32,36)に配置される場合、移動体(42)に対する作用をキャラクタ(41)に付与させるための一連の入力操作をユーザから受け付けるための、第1操作オブジェクト(61)とは異なる第2操作オブジェクト(81,91)を、表示部(152)に表示させるステップ(S5,S7)と、を有する。これにより、ゲームの興趣性を向上させることができる。
(項目7) 本実施形態において、ゲームプログラム(121)を記憶する記憶部(120)と、情報処理装置の動作を制御する制御部(110)と、表示部(152)と、ユーザの入力操作を受け付けるように構成される操作部(151)とを備えた情報処理装置であるユーザ端末(100)について説明した。ゲームプログラム(121)に基づくゴルフゲームは、キャラクタ(41)によって作用を付与された移動体(42)がゲーム空間(3)内を移動することによって進行する。ゲーム空間(3)は、ゴルフのグリーン(38)と、グリーン(38)とは異なる第1領域(31)と、第1領域(31)とは異なる属性を有しかつグリーン(38)とは異なる第2領域(32,36)とを少なくとも有する。本実施形態のある局面によると、制御部(110)は、キャラクタ(41)および移動体(42)を表示部(152)に表示させ、移動体(42)が第1領域(31)に配置される場合、移動体(42)に対する作用を付与させるための一連の入力操作をユーザから受け付けるための第1操作オブジェクト(61)を、表示部(152)に表示させ、移動体(42)が第2領域(32,36)に配置される場合、移動体(42)に対する作用をキャラクタ(41)に付与させるための一連の入力操作をユーザから受け付けるための、第1操作オブジェクト(61)とは異なる第2操作オブジェクト(81,91)を、表示部(152)に表示させる。これにより、ゲームの興趣性を向上させることができる。
(ソフトウェアによる実現例)
ユーザ端末100の制御ブロック(制御部110)およびサーバ200の制御ブロック(制御部210)は、集積回路(ICチップ)などに形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、制御部110、制御部210は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、前記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、前記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が前記プログラムを前記記録媒体から読み取って実行することによって、本発明の目的が達成される。前記記録媒体としては、「一時的でない有形の媒体」、たとえば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、前記プログラムは、当該プログラムを伝送可能な任意の伝送媒体(通信ネットワークまたは放送波など)を介して前記コンピュータに供給されてもよい。なお、本発明は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
上述した実施形態は、本発明の理解を容易にするための例示に過ぎず、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその均など物が含まれることは言うまでもない。
また、本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、実施形態中にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。