以下、図面を参照しつつ、本開示の一実施形態について説明する。以下の説明では、同一の部品又は構成要素には同一の符号が付される。それらの名称及び機能は同一である。したがって、それらについての詳細な説明は繰り返さない。
[技術思想]
ゲームの一例として、ユーザによる入力操作に応じて、キャラクタがゲームの仮想空間を移動したり、ゲームの仮想空間に配置された敵キャラクタと交戦したりするゲームがある。ユーザには、ゲームの仮想空間に配置された仮想カメラにより撮像された画像がゲーム画面として提供される。ゲームの世界観を効果的に演出したり、ユーザのゲームへの没入感又はキャラクタとの一体感を高めたりするためには、この仮想カメラのカメラワークが重要になる。カメラワークとは、仮想カメラの撮影手法である。カメラワークの一例としては、固定撮影、パン、ティルト、ズームイン、ズームアウト、フォーカスイン、フォーカスアウト、又はトラック(追跡)などがある。
例えば、キャラクタが移動する場合には、移動の躍動感、迫力などを演出するために、キャラクタを追跡するカメラワークをすることがある。また、例えば、キャラクタが交戦する場合には、交戦時の臨場感、迫力、キャラクタとの一体感などを演出するために、キャラクタの背後から追跡するカメラワークをすることがある。このように、ゲーム性を高めるためには、シーンに応じたカメラワークが重要となる。
さらに、スマートフォンなどのタッチスクリーンを備える情報処理装置がゲームプログラムを実行する場合、タッチスクリーンにはゲームの画面が表示される。情報処理装置は、ゲームの画面上でユーザによる入力操作を受け付ける。ユーザによる入力操作には、タッチスクリーン上で指をドラッグさせる操作など、操作方向に意味を持たせた操作が含まれることがある。このような方向性のある入力操作は、キャラクタの移動方向、攻撃方向、攻撃パターンなどを指定する際に用いられる。ユーザは、ゲームの仮想空間におけるキャラクタの向きを意識して方向性のある入力操作を行う。したがって、カメラワークは、ゲームの演出だけでなく、ユーザによる入力操作の操作性を考慮する必要がある。本実施形態は、上述した課題の少なくとも1つを解決する。
[ゲーム提供システム]
本実施形態において、ユーザは、例えばスマートフォンなどの、タッチスクリーンを搭載した情報処理装置を操作する。ユーザは、ゲームサーバとスマートフォンとの間でゲームに関するデータを送受信させながらゲームを進行させる。
図1は、一実施形態のゲーム提供システムの構成を示す図である。図1に示されるよう
に、ゲーム提供システム1は、ユーザにより使用される情報処理装置と、サーバ20とを
含み、これらの装置がネットワーク80によって互いに通信可能に接続されている。
図1の例では、ユーザにより使用される情報処理装置として、携帯端末10A、携帯端末10B及び携帯端末10Cなど複数の携帯端末を示している。以下、携帯端末10A、10B、10Cなどの携帯端末を「携帯端末10」と総称することもある。携帯端末10A及び携帯端末10Bは、無線基地局81と通信することにより、ネットワーク80と接続する。携帯端末10Cは、家屋などの施設に設置される無線ルータ82と通信することにより、ネットワーク80と接続する。携帯端末10は、例えばタッチスクリーンを備える端末であり、一例として、スマートフォン、ファブレット、タブレットなどのコンピュータである。
携帯端末10は、ゲームプログラムを実行することにより、ゲームプログラムに応じたゲームをプレイする環境をユーザに対して提供する。携帯端末10には、例えば、アプリなどを配信するプラットフォームを介してゲームプログラムがインストールされる。携帯端末10は、携帯端末10にインストールされたゲームプログラム、又は、予めプリインストールされているゲームプログラムを実行することで、ユーザによるゲームのプレイを可能とする。携帯端末10は、ゲームプログラムを読み込んで実行することにより、サーバ20と通信接続し、ゲームの進行に応じてゲームに関連するデータをサーバ20と送受信する。
サーバ20は、ゲームのプレイに必要なデータを、適宜のタイミングで携帯端末10へ送信することで、携帯端末10でのゲームのプレイを進行させる。サーバ20は、ゲームをプレイする各ユーザの、ゲームに関連する各種データを管理する。サーバ20は、携帯端末10と通信し、各ユーザのゲームの進行に応じて、画像、音声、テキストデータ、その他のデータなどを携帯端末10へ送信する。
例えば、サーバ20は、各ユーザがゲームのストーリーを進行させた進行状況、ゲーム内に登場するキャラクタ(以下、「ゲームキャラクタ」ともいう。)のうち各ユーザが使用可能なゲームキャラクタの情報、ゲームキャラクタの能力を示すパラメータ、ゲームキャラクタが使用する道具の性能を示すパラメータ、その他の各種データなどを管理する。また、サーバ20は、ゲームの運営者によりユーザに対して行われるキャンペーン、ゲームの進行における不具合の発生、不具合の解消、その他のゲームの運営に関連する情報などをユーザに通知する処理を行う。
ゲームプログラムは、ユーザがゲームをプレイするモードとして、一人のユーザがプレイするシングルプレイと、複数人のユーザが協同してプレイするマルチプレイとに対応している。例えば、ゲーム提供システム1において、サーバ20は、マルチプレイに参加するユーザを特定して各ユーザの各携帯端末10と通信することなどにより、マルチプレイでゲームをプレイする環境を各ユーザに提供する。
ゲーム提供システム1は、マルチプレイに対応することにより、例えば、アクションゲームであれば、各ユーザでチームを結成して、クエストモードなど比較的強力なキャラクタと対戦するゲームモードを複数のユーザがプレイすることを可能とする。また、ゲーム提供システム1は、サッカーゲームであれば、各ユーザが同一のサッカーチームのメンバーとなって試合を行うことを可能とする。また、ゲーム提供システム1は、テニスゲームであれば、各ユーザでチームを結成してダブルスの試合を行うことを可能とする。
[構成]
サーバ20のハードウェアの構成を説明する。サーバ20は、通信IF(Interface)22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29とを備え、これらが通信バスを介して互いに接続する。
通信IF22は、通信機器であり、例えばLAN(Local Area Network)規格など各種の通信規格に対応しており、携帯端末10などの外部の通信機器との間でデータを送受信するためのインタフェースとして機能する。
入出力IF23は、インタフェース機器であり、サーバ20への情報の入力を受け付けるとともに、サーバ20の外部へ情報を出力するためのインタフェースとして機能する。入出力IF23は、マウス、キーボードなどの情報入力機器の接続を受け付ける入力受付部と、画像などを表示するためのディスプレイなどの情報出力機器の接続を受け付ける出力部とを含む。
メモリ25は、記憶装置であり、例えば、処理に使用されるデータなどを記憶するために用いられる。メモリ25は、例えば、プロセッサ29が処理を行う際に一時的に使用するための作業領域をプロセッサ29に提供する。メモリ25は、ROM(Read Only Memory)、RAM(Random Access Memory)などを含んで構成される。
ストレージ26は、記憶装置であり、例えば、プロセッサ29が読み込んで実行するための各種プログラム及びデータを記憶するために用いられる。ストレージ26が記憶する情報は、ゲームプログラム、ゲームプログラムに関連する情報、ゲームプログラムをプレイするユーザの情報、その他の情報を含む。ストレージ26は、例えば、HDD(Hard Disk Drive)、フラッシュメモリなどを含んで構成される。
プロセッサ29は、演算装置であり、ストレージ26に記憶されるプログラムなどを読み込んで実行することにより、サーバ20の動作を制御する。プロセッサ29は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などを含んで構成される。
図2は、携帯端末10の構成を示すブロック図である。図2に示されるように、携帯端末10は、アンテナ110と、無線通信IF120と、タッチスクリーン130と、入出力IF140と、記憶部150と、音声処理部160と、マイク170と、スピーカ180と、制御部190とを含む。
アンテナ110は、携帯端末10が発する信号を電波として空間へ放射する。また、アンテナ110は、空間から電波を受信して受信信号を無線通信IF120へ与える。
無線通信IF120は、携帯端末10が他の通信機器と通信するため、アンテナ110などを介して信号を送受信するための変復調処理などを行う。無線通信IF120は、チューナー、高周波回路などを含む無線通信用の通信モジュールであり、携帯端末10が送受信する無線信号の変復調や周波数変換を行い、受信信号を制御部190へ与える。
タッチスクリーン130は、ユーザからの入力操作を受け付けて、ユーザに対し情報をディスプレイ132に出力する。タッチスクリーン130は、ユーザの入力操作を受け付けるための部材であるタッチパネル131を含む。また、タッチスクリーン130は、メニュー画面や、ゲームの進行を画面に表示するための部材であるディスプレイ132を含む。タッチパネル131は、例えば、静電容量方式のものを用いることによって、ユーザの指などが接近したことを検出する。ディスプレイ132は、例えば、LCD(Liquid Crystal Display)、有機EL(electroluminescence)、その他の表示装置によって実現される。
入出力IF140は、インタフェース機器であり、携帯端末10への情報の入力を受け付けるとともに、携帯端末10の外部へ情報を出力するためのインタフェースとして機能する。
記憶部150は、記憶装置であり、フラッシュメモリ、RAM(Random Access Memory)などにより構成され、携帯端末10が使用するプログラム、携帯端末10がサーバ20から受信する各種データ、その他の各種データを記憶する。
音声処理部160は、演算装置であり、音声信号の変復調を行う。音声処理部160は、マイク170から与えられる信号を変調して、変調後の信号を制御部190へ与える。また、音声処理部160は、音声信号をスピーカ180へ与える。音声処理部160は、例えば、音声処理用のプロセッサによって実現される。マイク170は、音声信号の入力を受け付けて制御部190へ出力するための音声入力部として機能する。スピーカ180は、音声信号を、携帯端末10の外部へ出力するための音声出力部として機能する。
制御部190は、演算装置であり、記憶部150に記憶されるプログラムを読み込んで実行することにより、携帯端末10の動作を制御する。制御部190は、例えば、アプリケーションプロセッサによって実現される。
携帯端末10がゲームプログラム151を実行する処理について、より詳細に説明する。ある局面において、記憶部150は、ゲームプログラム151と、ゲーム情報152と、ユーザ情報153とを記憶する。携帯端末10は、例えば、サーバ20からゲームプログラムをダウンロードして記憶部150に記憶させる。また、携帯端末10は、ゲームの進行に伴いサーバ20と通信することで、ゲーム情報152及びユーザ情報153などの各種のデータをサーバ20と送受信する。
ゲームプログラム151は、携帯端末10においてゲームを進行させるためのプログラムである。ゲーム情報152は、ゲームプログラム151が参照する各種のデータを含む。ゲーム情報152は、例えば、ゲームにおいて仮想空間に配置されるオブジェクトの情報、オブジェクトに対応付けられた効果の情報(ゲームキャラクタに設定されるスキルの情報などを含む)基準モーションデータ、コンボデータなどを含む。基準モーションデータは、各ゲームキャラクタの動作を定義する。動作は、入力操作に対応付けて定義されてもよい。コンボデータは、所定の条件で発生するコンボによってゲームキャラクタに実行させる動作の内容(例えば、攻撃動作の種類、攻撃力、動きなど)を定義する。ユーザ情報153は、ゲームをプレイするユーザについての情報を含む。ユーザ情報153は、例えば、ゲームをプレイする携帯端末10のユーザを識別する情報、マルチプレイ時に協働してゲームをプレイする他のユーザを識別する情報、その他の情報を含む。その他の情報は、例えば、タッチパネル131の履歴データなどを含む。履歴データは、タッチパネル131の操作履歴である。
制御部190は、ゲームプログラム151を読み込んで実行することにより、入力操作受付部191と、ゲーム進行処理部192と、移動方向検出部193と、カメラ配置制御部194と、オブジェクト制御部195と、表示制御部196と、の各機能を発揮する。
入力操作受付部191は、タッチスクリーン130の出力に基づいて、ユーザの入力操作を受け付ける。具体的には、入力操作受付部191は、ユーザの指などがタッチパネル131に接近したことを、タッチスクリーン130を構成する面の横軸及び縦軸からなる座標系の座標として検出する。
入力操作受付部191は、タッチスクリーン130に対するユーザの操作を判別する。入力操作受付部191は、例えば、(1)「接近操作」、(2)「リリース操作」、(3)「タップ操作」、(4)「ダブルタップ操作」、(5)「長押し操作(ロングタッチ操作)」、(6)「ドラッグ操作(スワイプ操作)」、(7)「ムーブ操作」、(8)「フリック操作」、その他のユーザの操作を判別する。入力操作受付部191が判別するユーザの操作は、上記に限られない。例えば、タッチパネル131が、ユーザがタッチパネル131に対して押下する圧力の大きさを検出可能な機構を有する場合、入力操作受付部191は、ユーザにより押下された圧力の大きさを判別する。
(1)「接近操作」とは、ユーザが指などをタッチスクリーン130に接近させる操作である。タッチスクリーン130は、ユーザの指などが接近したこと(ユーザの指などがタッチスクリーン130に接触したことを含む)をタッチパネル131により検出し、検出したタッチスクリーン130の座標に応じた信号を制御部190へ出力する。制御部190は、タッチスクリーン130へのユーザの指などの接近を検出しない状態から、接近を検出したときに、状態が「タッチオン状態」になったと判別する。
(2)「リリース操作」とは、ユーザがタッチスクリーン130を接近操作している状態を止める操作である。入力操作受付部191は、例えば、ユーザが指などをタッチスクリーン130に接触させている状態から、指を離す操作をしたときに、ユーザの操作を「リリース操作」と判別する。制御部190は、タッチスクリーン130へのユーザの指などの接近を検出している状態から、接近を検出しない状態になったときに、状態が「タッチオン状態」から「タッチオフ状態」になったと判別する。
(3)「タップ操作」とは、ユーザがタッチスクリーン130に対して指などを接近させる接近操作をした後に、接近操作をした位置でリリース操作を行うことである。入力操作受付部191は、接近操作が検出されない状態(ユーザの指などがタッチパネル131から離れており、タッチパネル131がユーザの指などの接近を検出していない状態)から、タッチスクリーン130の出力に基づいて、ユーザの指などが接近したことを検出した場合に、その検出した座標を「初期タッチ位置」として保持する。入力操作受付部191は、初期タッチ位置の座標と、リリース操作をした座標とがほぼ同一である場合(接近操作が検出された座標から一定範囲内の座標においてリリース操作の座標が検出された場合)に、ユーザの操作を「タップ操作」と判別する。
(4)「ダブルタップ操作」とは、ユーザがタップ操作を一定時間内に2回行う操作である。入力操作受付部191は、例えば、ユーザの操作をタップ操作と判別してから一定時間内に、タップ操作にかかる座標で再びタップ操作を判別した場合に、ユーザの操作を「ダブルタップ操作」と判別する。
(5)「長押し操作」とは、ユーザがタッチスクリーン130を押し続ける操作である。タッチスクリーン130は、ユーザの操作を検出して接近操作を判別してから、接近操作が検出された座標において接近操作が継続している時間が一定時間を超えた場合に、ユーザの操作を「長押し操作」(「長押し操作」を、「ロングタッチ操作」と称することもある)と判別する。
(6)「ドラッグ操作」とは、ユーザがタッチスクリーン130に指などを接近させた接近状態を維持したまま、指をスライドさせる操作である。
(7)「ムーブ操作」とは、ユーザがタッチスクリーン130において、接近操作を維持しつつ、タッチスクリーン130に指などを接近させている位置を移動させてリリース操作を行う一連の操作をいう。
(8)「フリック操作」は、ユーザがムーブ操作を予め定められた時間よりも短い時間で行う操作をいう。フリック操作は、ユーザがタッチスクリーン130で指を弾くような操作である。
入力操作受付部191は、所定期間のユーザの入力操作の判別結果を記憶部150に操作履歴として記憶する。入力操作受付部191により行われる入力操作の種類を検知する詳細な処理は、後述する。
ゲーム進行処理部192は、ユーザの操作に応じて、各種のプログラムを呼び出すなどによりゲームを進行させる処理を行う。例えば、ゲーム進行処理部192は、サーバ20と通信し、ゲームの進行に応じてサーバ20へデータを送信する処理、サーバ20からゲームに関連するデータを受信する処理、ゲームの進行に応じてユーザに報酬を付与する処理、時間の経過を計測する処理、その他の処理を行う。
移動方向検出部193は、タッチスクリーン130に対するユーザの入力操作が移動操作である場合、ゲームに登場するキャラクタであるゲームキャラクタを移動させる入力操作の操作内容を検出する。移動操作とは、ゲームキャラクタの移動方向を指示する入力操作であり、方向性のある操作である。移動操作の一例としては、所定条件下のドラッグ操作又はフリック操作である。例えばゲームプログラム151がアクションゲームである場合、移動方向検出部193は、ユーザのドラッグ操作又はフリック操作に基づいて、ゲームキャラクタを移動させる方向を検出する。
具体的には、移動方向検出部193は、タッチスクリーン130からユーザの指が離れた状態から、ユーザが指をタッチスクリーン130に接近させて、入力操作受付部191がタッチパネル131にユーザの指が接近したことを検出した座標を初期タッチ位置として、ユーザがドラッグ操作を行った場合に、初期タッチ位置の座標とタッチスクリーン130の検出結果とに基づいて、ゲームキャラクタの移動方向を検出する。移動方向検出部193の詳細な処理は、後述する。
カメラ配置制御部194は、仮想空間に配置される各オブジェクトを、どのようにユーザに見せるかを決定する。具体的には、カメラ配置制御部194は、制御部190がゲームプログラム151を読み込んで実行することで生成される仮想空間において、仮想カメラの配置及び撮影方向(カメラワーク)を制御する。仮想カメラの配置及び撮影方向は、仮想空間の座標及び方向によって定義される。制御部190は、仮想空間における仮想カメラの撮影画像をディスプレイ132に表示することで、ユーザに対しゲームのプレイ環境を提供する。
オブジェクト制御部195は、携帯端末10がゲームプログラム151を実行することにより進行されるゲームに登場する各種オブジェクト、及び、入力操作受付部191が受け付けたユーザの操作内容に基づいて生成される各種オブジェクト(例えば、GUI(Graphical User Interface)画面など)の生成、変形、移動などの処理を制御する。オブジェクト制御部195は、例えば、タッチスクリーン130に対する入力操作に基づいて、ユーザの操作を示す操作オブジェクトを生成する。操作オブジェクトの詳細については後述する。
表示制御部196は、仮想カメラのカメラワークに従った画像をディスプレイ132に出力する。表示制御部196は、仮想空間内における仮想カメラの配置及び撮影方向に応じて、ディスプレイ132の表示内容を決定し、決定した表示内容に従う画像、テキストなどの各種の情報をディスプレイ132に出力する。
図3は、サーバ20の機能的な構成を示すブロック図である。図3を参照して、サーバ20の詳細な構成を説明する。サーバ20は、一般的なコンピュータとして構成され、プログラムに従って動作することにより、通信部220と、記憶部250と、制御部290としての機能を発揮する。
通信部220は、通信機器であり、サーバ20が携帯端末10などの外部の通信機器と通信するためのインタフェースとして機能する。
記憶部250は、記憶装置であり、携帯端末10においてユーザがゲームを進行させるための各種プログラム及びデータを記憶する。ある局面において、記憶部250は、ゲームプログラム251と、ゲーム情報252と、ユーザ情報253とを記憶する。
ゲームプログラム251は、サーバ20が携帯端末10と通信して、携帯端末10においてゲームを進行させるためのプログラムである。ゲームプログラム251は、ゲームを進行させるための各種データであるゲーム情報252及びユーザ情報253などを参照して、ユーザの入力操作に応じてゲームを進行させる。ゲームプログラム251は、制御部290に実行されることにより、携帯端末10とデータを送受信する処理、携帯端末10のユーザが行った操作内容に応じてゲームを進行させる処理、ゲームをプレイするユーザの情報を更新する処理、その他の処理をサーバ20に行わせる。
ゲーム情報252は、ゲームプログラム251が参照する各種のデータを含む。ゲーム情報252は、オブジェクト管理テーブル252Aと、パッシブスキル管理テーブル252Bと、アクティブスキル管理テーブル252Cとを含む。
オブジェクト管理テーブル252Aは、ゲームの仮想空間内に配置されるオブジェクトの設定を示す。携帯端末10は、ゲームプログラム151を実行することにより、仮想空間内に配置されるオブジェクトを、仮想空間内に配置される仮想カメラによって撮影された画像をディスプレイ132に表示させることでゲームを進行させる。
ここで、オブジェクトとしては、例えば、ユーザが操作するゲームキャラクタを示すオブジェクト、ゲームキャラクタが装着する対象物を示すオブジェクトなど様々なものがある。これらオブジェクトは、ユーザがタッチスクリーン130に対して予め定められた入力操作を行うこと、ゲームの進行に伴い一定の条件を満たすこと、その他の様々な事象の発生を契機として、オブジェクトに対応付けられた処理が行われる。
例えば、あるオブジェクトに対してユーザがタッチスクリーン130に対して接近操作を行うことで、オブジェクトがユーザに選択された状態となる。また、例えば、ユーザがタップ操作を行うことで、ユーザに選択されているオブジェクトがユーザの入力操作に応じて攻撃するなどの処理が行われる。また、例えば、ユーザがドラッグ操作を行うことで、ユーザに選択されているオブジェクトがユーザの入力操作に応じて移動するなどの処理が行われる。また、例えば、ユーザがオブジェクトに対してロングタッチ操作をすることで、ユーザに対し、ゲームを有利に進めるための報酬が付与されるなどの処理が行われる。
パッシブスキル管理テーブル252Bは、オブジェクトを識別する情報と、オブジェクトに対応付けられたパッシブスキルの情報とが対応付けられている。ここで、パッシブスキルとは、例えば、ゲームにおいて予め定められた条件が満たされたときに発動され、ユーザがゲームを有利に進行させることができるものである。例えば、パッシブスキルが発動した場合に、ゲームキャラクタの移動速度が向上するなどの、ゲームを有利に進行させられる効果を発揮させる。
アクティブスキル管理テーブル252Cは、オブジェクトを識別する情報と、オブジェクトに対応付けられたアクティブスキルの情報とが対応付けられている。ここで、アクティブスキルとは、例えば、ゲームにおいて予め定められた条件が満たされたときに発動可能な状態となり、ユーザから、スキルを発動させるための入力操作を受け付けることにより、ユーザがゲームを有利に進行させることができるものである。
ユーザ情報253は、ゲームをプレイするユーザについての情報である。ユーザ情報253は、ユーザ管理テーブル253Aを含む。ユーザ管理テーブル253Aは、各ユーザを識別する情報と、ユーザがゲームを進行させた度合いを示す情報と、ユーザがゲーム内で保有するアイテム、ゲームキャラクタ、ゲームキャラクタが使用する装着物などの情報その他の情報を含む。
制御部290は、記憶部250に記憶されるゲームプログラム251を実行することにより、送受信部291、サーバ処理部292、データ管理部293、マッチング部294、計測部295としての機能を発揮する。
送受信部291は、ゲームプログラム151を実行する携帯端末10から、各種情報を受信し、携帯端末10に対し、各種情報を送信する。携帯端末10とサーバ20とは、ユーザに関連付けられるオブジェクトを仮想空間に配置する要求、オブジェクトを削除する要求、オブジェクトを移動させる要求、ユーザが獲得する報酬に応じて各種パラメータを更新する要求、ゲームを進行させるための画像、音声その他のデータ、サーバ20から携帯端末10へ送信される通知などの情報を送受信する。
サーバ処理部292は、サーバ20全体の動作を制御し、各種のプログラムを呼び出すなどによりゲームの進行に必要な処理を行う。サーバ処理部292は、例えば、携帯端末10から受信した情報に基づいて、ゲーム情報252、ユーザ情報253などのデータを更新し、携帯端末10に各種データを送信することでゲームを進行させる。
データ管理部293は、サーバ処理部292の処理結果に従って、記憶部250に記憶される各種データを更新する処理、データベースにレコードを追加/更新/削除する処理などを行う。
マッチング部294は、複数のユーザを関連付けるための一連の処理を行う。マッチング部294は、例えば、ユーザがマルチプレイを行うための入力操作を行った場合に、ゲームを協同してプレイさせるユーザを関連付ける処理などを行う。
計測部295は、時間を計測する処理を行う。計測部295は、例えば、仮想空間に配置される各オブジェクトについて時間の経過を計測する。また、計測部295は、ゲームが進行している時間を計測する。サーバ20は、携帯端末10から、携帯端末10においてゲームプログラム151を実行して計測される各種の計測結果の情報を受信し、受信した情報と、計測部295の計測結果とを照合することで、携帯端末10とサーバ20とで、各種の時間に関する情報を同期させる。
[実施形態の構成のまとめ]
以上のように、実施形態のゲーム提供システム1の構成を説明してきた。本実施形態において、ゲームプログラム151は、例えばアクションゲームであり、仮想空間内の仮想カメラの配置及び撮影方向に応じた画像をタッチスクリーン130に表示させることでゲームを進行させる。
例えば、ゲームプログラム151がアクションゲームである場合、ゲーム進行処理部192は、ユーザの操作に応じてストーリーを進行させ、画像、テキストなどディスプレイ132に表示するデータを決定する処理、交戦相手又は仲間の選択をユーザから受け付ける処理、ユーザの操作に応じてアクションゲームを進める処理などの基本的な処理を行う。
例えば、ゲームプログラム151がアクションゲームである場合、カメラ配置制御部194は、アクションゲームを行うための仮想空間における仮想カメラの配置位置及び撮影方向を、アクションゲームの進展に応じて、逐次、決定する。カメラ配置制御部194は、仮想カメラのカメラワークを制御する。カメラ配置制御部194の詳細な処理は、後述する。
例えば、表示制御部196は、ゲームキャラクタを一定領域に表示させるよう仮想カメラを配置した状態で、ゲームキャラクタに第1の動作(例えば、移動動作)を行わせるための入力操作を受け付けて、受け付けた入力操作に応じてゲームキャラクタに第1の動作を行わせる画面表示をする。
[動作]
図面を参照して、実施形態のゲーム提供システム1を構成する各装置の動作を説明する。
(入力操作の検知)
図4は、入力操作受付部191が入力操作の種類を検知する処理を説明する図である。図4の例では、ユーザ情報153を記憶する記憶部150の配列fp[0]〜配列fp[10]までの11個の配列のそれぞれに、タッチパネル131により検知されたタッチスクリーン130上の位置を示す履歴情報が格納されている。履歴情報は、所定の期間毎(例えば、フレームレート毎)に履歴情報テーブルに格納される。履歴情報が格納される配列の個数は限定されず、任意の個数であってよい。また、履歴情報テーブルでは、タッチオフからタッチオンになった場合に検知された履歴情報を、初期位置座標として記憶部150に記憶してもよい。
図4に示されるように、例えば、配列fp[0]〜配列fp[9]に、履歴情報(x0、y0)が格納されており、配列fp[10]にnull値が格納された場合、入力操作受付部191は、入力操作はタップ操作であると判別する。また、例えば、タッチナウ状態において履歴情報が変化した後に、null値が格納された場合、入力操作受付部191はnull値が格納された配列fp[5]の直前の配列fp[3]および配列fp[4]に格納されている履歴情報を参照する。そして、入力操作受付部191は、配列fp[3]および配列fp[4]の履歴情報がそれぞれ示す位置の間の距離が予め設定された閾値以上である場合、入力操作はフリック操作であると判別する。また、入力操作受付部191は、タッチナウ状態において履歴情報が変化した後に、例えば配列fp[4]〜fp[10]に履歴情報(x15、y15)が格納された場合、入力操作はドラッグ操作であると判別する。
(移動方向の検知)
図5は、移動方向検出部193がユーザの入力操作に応じてゲームキャラクタを移動させる方向を検出する処理を説明する図である。移動方向検出部193は、ユーザがタッチスクリーン130を押していない状態から、指などをタッチパネル131に接近させてタッチスクリーン130を押した位置(初期タッチ位置)を起点と設定する。入力操作受付部191は、ユーザの操作をドラッグ操作と判別している場合に、起点となる座標と、タッチスクリーン130がユーザの指などの接近を検出している座標とに基づいて、ゲームキャラクタを移動させる方向を検出する。
図5の状態(A)は、タッチスクリーン130からユーザの指が離れた状態から、ユーザが指をタッチスクリーン130に接近させた状態を示す。入力操作受付部191は、ユーザの指がタッチパネル131に接近したことを検出し、検出した座標を初期タッチ位置として記憶部150にユーザ情報153として保持する。
図5の例では、記憶部150が保持する初期タッチ位置の座標を、初期タッチ位置座標155として示す。入力操作受付部191は、タッチスクリーン130の検出結果(ユーザの指がタッチスクリーン130に接近している座標、及び、ユーザの指がタッチスクリーン130に接近していることを検出していないこと(検出結果「null」))を、一定フレーム分、ユーザ情報153としてバッファメモリに格納する。バッファメモリは、タッチスクリーン130における検出結果を、各フレームについて一定フレーム分(図5の例では、配列fp〔0〕〜配列fp〔10〕までの11フレーム分)、格納することができる。バッファメモリは、例えばリングバッファとして実現することができる。
状態(A)の例では、ユーザがタッチスクリーン130を押した位置を、押下位置30A(タッチスクリーン130の座標(x0,y0))として示す。
図5の状態(B)は、ユーザがタッチスクリーン130に対してドラッグ操作を行って、タッチスクリーン130に対する押下位置を、押下位置30Aから押下位置30B(タッチスクリーン130の座標(x9,y9))まで10フレーム(配列fp〔0〕〜配列fp〔9〕までの10フレーム分)で移動させたことを示す。入力操作受付部191は、タッチスクリーン130の検出結果をユーザ情報153としてバッファメモリに格納し、バッファメモリに保持される値を参照して、タッチスクリーン130に対するユーザの操作をドラッグ操作と判別する。
図5の状態(C)は、ユーザがタッチスクリーン130を押している位置を、押下位置30Bから押下位置30C(タッチスクリーン130の座標(x14,y14))まで、5フレーム(配列fp〔10〕、fp〔0〕、fp〔1〕、fp〔2〕、fp〔3〕の5フレーム分)で移動させたことを示す。
図5の状態(D)は、移動方向検出部193が、状態(B)及び状態(C)のそれぞれにおいて、ユーザがゲームキャラクタを移動させる方向を指定する入力操作の検出結果を示す。移動方向検出部193は、バッファメモリにおいて、タッチスクリーン130が検出する押下位置の座標を書き込む対象となるメモリ領域がいずれであるかを示す情報(バッファメモリの書き込み位置)を管理している。
状態(B)において、移動方向検出部193は、入力操作受付部191の判別結果に基づいて、初期タッチ位置を示す座標31A(座標(x0,y0))から座標31B(座標(x9,y9))までユーザがドラッグ操作を行ったことを検出する。移動方向検出部193は、初期タッチ位置の座標31Aを起点として、座標31Aと座標31Bとによって規定されるベクトル32B((y9−y0)/(x9−x0))を、ゲームキャラクタを移動させる方向として検出する。
状態(C)において、移動方向検出部193は、入力操作受付部191の判別結果に基づいて、座標31B(座標(x9,y9))から座標31C(座標(x14,y14))までユーザがドラッグ操作を行ったことを検出する。移動方向検出部193は、初期タッチ位置の座標31Aを起点として、座標31Aと座標31Cとによって規定されるベクトル32C((y14−y0)/(x14−x0))を、ゲームキャラクタを移動させる方向として検出する。
このように、移動方向検出部193は、ユーザの指が接近していない状態からタッチスクリーン130に接近したことを検出した第1のタッチ位置から、接近していることを検出したまま第2のタッチ位置へ検出位置が移動した場合に、接近していることを検出している間、第1のタッチ位置を起点とし第2のタッチ位置へ向かう方向である操作方向を、ゲームキャラクタCA1の仮想空間における移動方向として決定する。
(仮想カメラの制御)
図6は、カメラ配置制御部194が仮想カメラVCを制御する処理を説明する図である。図6では、仮想カメラVCがゲームキャラクタCA1を背後から追尾するカメラワークを説明する。図6の状態(A)では、ゲームキャラクタCA1が方向D1(移動方向)に向かって移動する様子が示されている。例えば、入力操作受付部191がユーザによる入力操作をドラッグ操作と判定し、移動方向検出部193がゲームキャラクタCA1の移動方向を方向D1と検出したとき、オブジェクト制御部195は、ゲームキャラクタCA1の正面を方向D1に向け、ゲームキャラクタCA1を方向D1へ移動させる。カメラ配置制御部194は、ゲームキャラクタCA1の背後から追尾するように、仮想カメラVCの配置位置及び撮影方向を制御する。ゲームキャラクタCA1の背後から追尾する場合、カメラ配置制御部194は、撮影方向DVとゲームキャラクタCA1の向き(方向D1)とがなす角度θ1(対応関係)は0°となる。カメラ配置制御部194は、カメラ視界の中央付近にゲームキャラクタCA1が表示されるように、仮想カメラVCを配置する。
図6の状態(B)では、ユーザによるドラッグ操作により移動方向が方向D1から方向D2へ変更された様子を示す。この場合、オブジェクト制御部195は、ゲームキャラクタCA1の正面を方向D2に向け、ゲームキャラクタCA1を方向D2へ移動させる。このとき、カメラ配置制御部194は、撮影方向DVとゲームキャラクタCA1の向き(方向D1)とがなす角度θ1(対応関係)が0°となるように、仮想カメラVCの配置位置及び撮影方向DVを変更する。なお、カメラ配置制御部194は、変化前後の移動方向の変化角度θ2を検出し、検出された変化角度θ2を仮想カメラVCの変化角度θ3としてもよい。
このように、カメラ配置制御部194は、ユーザによる入力操作に応じて移動方向が変化するゲームキャラクタCA1を背後から追尾するようなカメラワークを提供する。
(移動操作時の画面例)
図7は、ユーザによる入力操作に応じて変化するカメラワーク及び操作オブジェクトを説明する図である。画面例(A)〜画面例(D)は、タッチスクリーン130に表示された画像である。画面例(A)〜画面例(D)では、表示制御部196が、カメラ配置制御部194によりゲームキャラクタCA1の背後から撮影された画像を、タッチスクリーン130に表示させている。入力操作受付部191によりユーザによる入力操作が受け付けられたとき、オブジェクト制御部195は、ユーザの入力操作に応じて操作オブジェクトを生成する。表示制御部196は、仮想カメラVCにより撮影された画像上に操作オブジェクトを重畳させて、タッチスクリーン130に表示させる。
画面例(A)は、ユーザがタッチスクリーン130に指などを接近させた操作をしたときの画面の一例である。入力操作受付部191によりユーザがタッチスクリーン130の第1位置300Aに指などを接近させた操作をしたと判定されたとき、オブジェクト制御部195は、入力操作に応答して円形の操作オブジェクト300を生成する。表示制御部196は、生成された円形の操作オブジェクト300をタッチ位置である第1位置300Aに表示させる。画面例(A)では、撮影方向を方向VD1、ゲームキャラクタCA1の向きを方向CD1で示している。撮影方向である方向VD1とゲームキャラクタCA1の向きである方向CD1の対応関係(なす角度)は0°である。
画面例(B)は、画面例(A)の第1位置300Aを起点としてユーザがドラッグ操作をしたときの画面の一例である。入力操作受付部191は、起点である第1位置300Aから終点である第2位置300Bまでのドラッグ操作を受け付ける。入力操作受付部191によりドラッグ操作が受け付けられた場合、オブジェクト制御部195は、ドラッグ操作の操作結果を示す操作オブジェクト300を生成する。ドラッグ操作の操作結果を示す操作オブジェクト300は、ドラッグ操作の起点となる位置と終点となる位置とを関連付けることで、操作結果(例えば操作方向)を表現する。画面例(B)の例では、オブジェクト制御部195は、起点及び終点に対応する位置に操作オブジェクト300の端部がそれぞれ位置するように、第1位置300Aから第2位置300Bに至るまで引き延ばされた操作オブジェクト300を生成している。表示制御部196は、引き延ばされた操作オブジェクト300をタッチスクリーン130に表示させる。この状態における操作方向及び撮影方向が図示されている。操作方向は方向SD1(図中右上方向)であり、撮影方向は方向VD1(図中上方向)である。方向SD1と方向VD1とのなす角はθ4である。
さらに、移動方向検出部193は、ドラッグ操作が受け付けられた場合、ゲームキャラクタCA1の移動方向を、操作方向である方向SD1と同一の方向に決定する。オブジェクト制御部195は、ゲームキャラクタCA1を移動方向に向け、移動を開始させる。
画面例(B)においてゲームキャラクタCA1の向きが変更されると、カメラ配置制御部194は、ゲームキャラクタCA1の背後を追尾するように仮想カメラVCの配置位置及び撮影方向を制御する。具体的には、方向SD1と方向VD1とのなす角であるθ4分だけ、撮影方向が注視点(ゲームキャラクタCA1)を中心として右回転する。さらに、仮想カメラVCの配置位置は、ゲームキャラクタCA1又は移動目的地が画面の中央にくるように制御される。これにより、タッチスクリーン130に表示される画像は、画面例(B)から画面例(C)へ遷移する。
画面例(C)は、画面例(B)における仮想カメラの撮影方向を変更したときの画面の一例である。画面例(C)に示されるように、仮想カメラVCの撮影方向が方向VD1から方向VD2へ変更されたとき、画面例(B)におけるユーザによる操作方向である方向SD1、つまり、操作オブジェクト300の延在方向(伸び方向)は、ゲームの仮想空間内において変更されることになる。画面例(C)において、操作方向は、方向SD1と方向VD1とのなす角であるθ4分だけ右回転された方向SD2となる。このため、移動方向検出部193は、操作方向と移動方向との対応関係が仮想カメラVCの撮影方向の変更前後で維持されるように、操作方向の起点の位置を変更する。さらに、オブジェクト制御部195は、操作方向と移動方向との対応関係が仮想カメラVCの撮影方向の変更前後で維持されるように、操作オブジェクト300の起点の位置を変更する。
画面例(D)は、操作方向の起点の位置、及び、操作オブジェクト300の起点の位置を変更したときの画面の一例である。移動方向検出部193は、3つの手法の何れかを用いて、操作方向の起点の位置を変更する。
第1の手法は、相対量を用いる手法である。移動方向検出部193は、撮影方向の変更前(画面例(A))における撮影方向(方向VD1)とゲームキャラクタCA1の向きとがなす角度を相対量とする。カメラ配置制御部194は、ゲームキャラクタCA1の背後から追尾する場合、撮影方向DVとゲームキャラクタCA1の向きとがなす角度θ1(相対量)を0°に設定している。このため、移動方向検出部193は、操作方向と撮影方向(方向VD2)とのなす角度が0°となるように、操作方向の起点の位置を変更する。これにより、操作方向の起点の位置が第1位置300Aから第2位置300Cへ変更される。同様に、オブジェクト制御部195は、操作オブジェクト300の伸び方向と撮影方向(方向VD2)とのなす角度が0°となるように、操作オブジェクト300の端部の位置を変更する。これにより、操作オブジェクト300の端部の位置は、第1位置300Aから第2位置300Cへ変更される。第1の手法により、画面例(D)において、ゲームキャラクタCA1の移動方向と操作方向とが一致する。
第2の手法は、変化量を用いる手法である。移動方向検出部193は、撮影方向の変更前(画面例(A))における撮影方向(方向VD1)と撮影方向の変更後(画面例(C))における撮影方向(方向VD2)とのなす角度θ4(例えば右回転を正とする変化量)に基づいて、操作方向の起点の位置を変更する。移動方向検出部193は、操作方向である方向SD2を角度θ4だけ逆方向(左方向)に回転させるように操作方向の起点の位置を変更する。これにより、操作方向の起点の位置が第1位置300Aから第2位置300Cへ変更される。同様に、オブジェクト制御部195は、操作オブジェクト300の伸び方向を角度θ4だけ逆方向(左方向)に回転させるように操作オブジェクト300の端部の位置を変更する。これにより、操作オブジェクト300の端部の位置は、第1位置300Aから第2位置300Cへ変更される。第2の手法により、画面例(D)において、ゲームキャラクタCA1の移動方向と操作方向とが一致する。
第3の手法は、第1の手法の変形例であり、予め定められた固定値を用いる例である。第1の手法では、移動方向検出部193は、操作方向と撮影方向(方向VD2)とのなす角度が、撮影方向DVとゲームキャラクタCA1の向きとのなす角度θ1(相対量)と同一となるように制御している。ここで、相対量である角度θ1が0°の場合、つまり、仮想カメラVCがゲームキャラクタCA1の背後からゲームキャラクタCA1を撮影するように制御されている場合には、撮影方向DV及びゲームキャラクタCA1の向きは、タッチスクリーン130上において下から上へと向かう方向と必ず一致する。よって、移動方向検出部193は、操作方向の起点の位置を、操作方向がタッチスクリーン130上において下から上へと向かう方向と一致するように変更する。これにより、操作方向の起点の位置が第1位置300Aから第2位置300Cへ変更される。同様に、オブジェクト制御部195は、操作オブジェクト300の端部の位置を、操作オブジェクト300がタッチスクリーン130上において下から上へと向かう方向と一致するように変更する。これにより、操作オブジェクト300の端部の位置は、第1位置300Aから第2位置300Cへ変更される。第3の手法により、画面例(D)において、ゲームキャラクタCA1の移動方向と操作方向とが一致する。
(移動操作時のフローチャート)
図8は、移動操作時の処理を説明するフローチャートである。図8のフローチャートは、制御部190がゲームプログラム151を実行することによりアクションゲームを進行させる処理を示すフローチャートである。
ステップS10において、制御部190は、入力操作が受け付けられたか否かを判定する。
入力操作が受け付けられたと判定されると(ステップS10:Yes)、ステップS12において、制御部190は、初期タッチ位置に操作オブジェクトを表示させる(図7の画面例(A)に対応する)。オブジェクト制御部195は、入力操作に応答して円形の操作オブジェクト300を生成する。表示制御部196は、生成された円形の操作オブジェクト300をタッチ位置である第1位置300Aに表示させる。初期タッチ位置は、操作方向を決定する起点(操作オブジェクトの端部位置)の初期値となる。
ステップS14において、制御部190は、入力操作がドラッグ操作であるか否かを判定する。制御部190は、タッチスクリーン130の履歴情報を用いて、ドラッグ操作であるか否かを判定する(図4参照)。
入力操作がドラッグ操作であると判定されると(ステップS14:Yes)、ステップS16において、制御部190は、起点(第1位置300A)からドラッグ方向(方向SD1)へ伸びる操作オブジェクト300を表示させる(図7の画面例(B)に対応する)。制御部190は、タッチスクリーン130の履歴情報を用いて、操作オブジェクト300を生成して、タッチスクリーン130に表示させる。
ステップS18において、制御部190は、タッチスクリーン130の履歴情報を用いて、ドラッグ操作のドラッグ方向(方向SD1)を検出する(図5参照)。そして、制御部190は、ドラッグ方向(方向SD1)に基づいてゲームキャラクタCA1の移動方向及びゲームキャラクタCA1の向きを決定する。そして、制御部190は、移動方向に従ってゲームキャラクタCA1をドラッグ方向(方向SD1)へ移動させる(図7の画面例(B)に対応する)。
ステップS20において、制御部190は、仮想カメラVCの撮影方向をゲームキャラクタCA1の向きと一致させる(図6及び図7の画面例(C)に対応する)。
ステップS22において、制御部190は、操作方向の起点の位置及び操作オブジェクト300の端部位置を変更する(図7の画面例(D)に対応する)。制御部190は、相対量、変化量、又は、予め定められた方向を用いて操作方向の起点の位置及び操作オブジェクト300の起点の位置を第1位置300Aから第2位置300Cへ変更する。
ステップS24において、制御部190は、ドラッグ操作が完了したか否かを判定する。ドラッグ操作が完了していないと判定されると(ステップS24:No)、制御部190は、上述したステップS16からステップS24まで処理を再実行する。これにより、ユーザの指が接近していることをタッチスクリーン130が検出している間、つまり、ドラグ操作が継続されている間、操作オブジェクトが表示され、操作方向の起点の位置及び操作オブジェクト300の起点の位置が適宜変更されることになる。
ドラッグ操作が完了したと判定されると(ステップS24:Yes)、ステップS26として、制御部190は、ゲームキャラクタCA1の移動を終了する。そして、ステップS28として、制御部190は、操作オブジェクト300の表示を終了する。
一方、入力操作がドラッグ操作でないと判定されると(ステップS14:No)、ステップS24において、制御部190は、入力操作に応じた動作をゲームキャラクタCA1に実行させる。例えば、タップ操作であれば、攻撃対象を決定し、ゲームキャラクタCA1に攻撃動作を実行させる。そして、ステップS28として、制御部190は、操作オブジェクト300の表示を終了する。
入力操作が受け付けられていないと判定された場合(ステップS10:No)、又は、操作オブジェクト300の表示を終了すると、図8に示されるフローチャートは終了する。そして、制御部190は、所定の条件が満たされるまで図8に示されるフローチャートを最初から実行する。以上で、移動操作時の一連の処理が終了する。
(移動操作時の他の画面例)
上述の説明では、移動方向検出部193による操作方向の起点の位置の変更タイミング、及び、オブジェクト制御部195よる操作オブジェクト300の端部の位置の変更タイミングは、ゲームキャラクタCA1の向きに応じて仮想カメラVCの撮影方向が変化したときである。しかし、仮想カメラVCの撮影方向は、ゲームキャラクタCA1の向きに応じて変更される例に限定されない。
図9は、仮想カメラVCの撮影方向がゲームのイベントによって変更される場合の画面例である。図9の画面例(A)〜画面例(D)は、タッチスクリーン130に表示された画像である。画面例(A),(B)では、表示制御部196が、カメラ配置制御部194により、移動するゲームキャラクタCA1の背後から撮影された画像を、タッチスクリーン130に表示させている。つまり、操作方向である方向SD1と撮影方向である方向VD1は一致している。
画面例(B)は、ゲームのイベントとして画面右上の火山M1が爆発したときの画面の一例である。カメラ配置制御部194は、爆発中の火山M1にユーザの注目を集めるカメラワークを行い、ユーザのゲームへの関心を高める工夫を行う。例えば、注目対象となる火山M1とゲームキャラクタCA1とが視界に入る方向に撮影方向を変更する。これにより、タッチスクリーン130に表示される画像は、画面例(B)は画面例(C)へ遷移する。
画面例(C)は、仮想カメラVCの撮影方向が90°右回転されたときの画面の一例である。画面例(C)では、ゲームキャラクタCA1を横から捉えるように仮想カメラVCの撮影方向が方向VD1から方向VD2へ変更される。図7の例と同様に、画面例(B)におけるユーザによる操作方向である方向SD1、つまり、操作オブジェクト300の延在方向(伸び方向)は、ゲームの仮想空間内において変更されることになる。よって、図7の例と同様に、移動方向検出部193は、操作方向と移動方向との対応関係が仮想カメラVCの撮影方向の変更前後で維持されるように、操作方向の起点の位置を変更する。さらに、オブジェクト制御部195は、操作方向と移動方向との対応関係が仮想カメラVCの撮影方向の変更前後で維持されるように、操作オブジェクト300の起点の位置を変更する。これにより、画面例(D)において、ゲームキャラクタCA1の移動方向と操作方向とが一致する。
(起点位置を変更する処理のまとめ)
制御部190は、仮想カメラVCの撮影方向が変更された場合、タッチスクリーン130上で操作された操作方向をキャラクタの移動方向と一致させる。このため、仮想カメラVCの撮影方向が変更された場合であっても、ユーザは操作方向を修正することなく撮影方向の変更前にドラッグ操作した方向へキャラクタを移動させることができる。さらに、制御部190は、カメラワークと操作方向とを連動させることで、カメラワークを自在に変更することができるので、種々のユーザ体験を提供することができる。
(交戦時のカメラワークの概要)
一般的なアクションゲームにおいては、ゲームキャラクタCA1が仮想空間のフィールドを移動するシーンだけでなく、仮想空間に配置された敵キャラクタ(対象キャラクタの一例)と交戦するシーンが存在する。
ユーザは、シーンに応じて、仮想空間においてキャラクタを移動させる移動操作だけでなく、ゲームキャラクタCA1に攻撃動作を行わせる攻撃動作を入力する。移動操作は、上述のとおり、ゲームキャラクタの移動方向を指示する入力操作であり、方向性のある操作である。移動操作の一例としては、所定条件下のドラッグ操作又はフリック操作である。一方、攻撃操作は、ゲームキャラクタCA1に攻撃動作を行わせる入力操作である。基本的な攻撃操作の一例としては、タップ操作である。なお、攻撃操作には、タップ操作と組み合わされたフリック操作を含む。詳細については後述する。
カメラ配置制御部194は、ユーザによる入力操作に応じて移動方向が変化するゲームキャラクタCA1を背後から追尾するようなカメラワークを提供する。つまり、カメラ配置制御部194が仮想カメラVCの撮影方向を変更する契機(トリガ)は、ユーザによる移動操作である。ここで、カメラ配置制御部194は、仮想カメラVCの撮影方向を変更する契機(トリガ)として攻撃操作をさらに含む。これにより、敵キャラクタとの交戦時において、臨場感、迫力、キャラクタとの一体感などを演出するためのカメラワークを瞬時に提供することができる。
(交戦時の画面例)
図10は、交戦時における仮想カメラVCの撮影方向を説明するための画面例である。図10の画面例(A)〜画面例(D)は、タッチスクリーン130に表示された画像である。画面例(A)〜画面例(D)では、表示制御部196が、カメラ配置制御部194により、ゲームキャラクタCA1を撮影した画像を、タッチスクリーン130に表示させている。入力操作受付部191によりユーザによる入力操作が受け付けられたとき、オブジェクト制御部195は、ユーザの入力操作に応じて操作オブジェクトを生成する。表示制御部196は、仮想カメラVCにより撮影された画像上に操作オブジェクトを重畳させて、タッチスクリーン130に表示させる。
画面例(A)は、移動操作時において敵キャラクタCA2が視界に入ったときの画面の一例である。画面例(A)では、撮影方向を方向VD1、ゲームキャラクタCA1の向きを方向D3で示している。
画面例(B)は、画面例(A)の状況において、攻撃操作であるタップ操作が行われたときの画面の一例である。オブジェクト制御部195は、タップ操作に応答して円形の操作オブジェクト300を生成する。表示制御部196は、生成された円形の操作オブジェクト300をタッチ位置に表示させる。このとき、敵キャラクタCA2とゲームキャラクタCA1との距離が予め定められた距離内にある場合、敵キャラクタCA2を攻撃対象として決定する(ロックオン)。ゲームキャラクタCA1は、ロックオンされた敵キャラクタCA2の方向D4へ向けられる。カメラ配置制御部194は、仮想カメラVCがゲームキャラクタCA1を背後から撮影するように、仮想カメラVCを制御する。仮想カメラVCの撮影方向は、ゲームキャラクタCA1の向きである方向D4と同一方向である方向VD2へ変更される。これにより、タッチスクリーン130に表示される画像は、画面例(B)は画面例(C)へ遷移する。
画面例(C)は、攻撃操作に応じて仮想カメラVCの撮影方向が変更されたときの画面の一例である。そして、画面例(D)は、敵キャラクタに対して攻撃操作を実行しているときの画面の一例である。このように、タップ操作という方向性の無い操作がなされた場合であっても、仮想カメラVCの撮影方向が変更され、臨場感のある交戦画面が提供される。
(攻撃操作時のフローチャート)
図11は、攻撃操作時の処理を説明するフローチャートである。図11のフローチャートは、制御部190がゲームプログラム151を実行することによりアクションゲームを進行させる処理を示すフローチャートである。
ステップS30において、制御部190は、入力操作が受け付けられたか否かを判定する。制御部190は、入力操作として、仮想空間においてゲームキャラクタCA1を移動させる移動操作及びゲームキャラクタCA1に攻撃動作を行わせる攻撃操作を受け付けることができる。
入力操作が受け付けられたと判定されると(ステップS30:Yes)、ステップS32において、制御部190は、初期タッチ位置に操作オブジェクトを表示させる(図10の画面例(B)に対応する)。オブジェクト制御部195は、入力操作に応答して円形の操作オブジェクト300を生成する。表示制御部196は、生成された円形の操作オブジェクト300をタッチ位置に表示させる。
ステップS34において、制御部190は、入力操作がタップ操作であるか否かを判定する。制御部190は、タッチスクリーン130の履歴情報を用いて、タップ操作であるか否かを判定する(図4参照)。
入力操作がタップ操作であると判定されると(ステップS34:Yes)、ステップS36において、制御部190は、攻撃範囲内に敵キャラクタが存在するか否かを判定する。攻撃範囲は、ゲームキャラクタCA1を基準として予め設定される。
攻撃範囲内に敵キャラクタが存在すると判定されると(ステップS36:Yes)、ステップS38において、制御部190は、攻撃対象となる敵キャラクタを特定する。制御部190は、攻撃範囲内に複数の敵キャラクタが存在する場合には、例えばゲームキャラクタCA1に最も近接した敵キャラクタを攻撃対象にする。
ステップS40として、制御部190は、ゲームキャラクタCA1を攻撃動作の対象となる敵キャラクタCA2の位置と、ゲームキャラクタCA1の位置とに基づいて、ゲームキャラクタCA1を敵キャラクタCA2に向けさせる(図10の画面例(B)に対応する)。
ステップS42として、制御部190は、仮想カメラVCの撮影方向をゲームキャラクタCA1の向きに基づいて決定する。制御部190は、ゲームキャラクタCA1の向きに対して予め定められた方向からキャラクタを撮影するように制御する。ゲームキャラクタCA1の向きに対して予め定められた方向とは、例えば、ゲームキャラクタCA1の背後から撮影する方向、ゲームキャラクタCA1の横から撮影する方向、ゲームキャラクタCA1の上から撮影する方向などである。具体的な一例として、制御部190は、仮想カメラVCの撮影方向をゲームキャラクタCA1の向きと一致させ、ゲームキャラクタCA1の背後から撮影するように、仮想カメラVCを制御する(図10の画面例(C)に対応する)。
ステップS44として、制御部190は、ゲームキャラクタCA1に攻撃動作を実行させる(図10の画面例(D)に対応する)。ステップS46として、制御部190は、操作オブジェクト300の表示を終了する。
一方、入力操作がタップ操作でないと判定されると(ステップS34:No)、ステップS48において、制御部190は、入力操作に応じた動作をゲームキャラクタCA1に実行させる。このとき、入力操作がドラッグ操作などの移動操作であれば、制御部190は、図8で説明したとおり、ゲームキャラクタCA1を移動させるとともに、仮想空間を移動するゲームキャラクタCA1を追尾するように仮想カメラVCを制御する。そして、ステップS46として、制御部190は、操作オブジェクト300の表示を終了する。
また、攻撃範囲内に敵キャラクタが存在しないと判定されると(ステップS36:No)、ステップS46として、制御部190は、操作オブジェクト300の表示を終了する。
入力操作が受け付けられていないと判定された場合(ステップS30:No)、又は、操作オブジェクト300の表示を終了すると、図11に示されるフローチャートは終了する。そして、制御部190は、所定の条件が満たされるまで図11に示されるフローチャートを最初から実行する。以上で、攻撃操作時の一連の処理が終了する。
(交戦時における連撃攻撃)
アクションゲームにおいては、予め定められた期間内に攻撃操作を連続して受け付けた場合、連撃攻撃(いわゆるコンボ攻撃)を発生させることがある。このようなコンボ攻撃の内容は、ゲーム情報152にコンボデータとして定義されている。コンボ攻撃に多様性を持たせるために、コンボ攻撃中の攻撃操作に方向性のある入力操作を採用することがある。例えば、タップ操作、タップ操作、フリック操作という一連の入力操作に基づくコンボ攻撃である。
図12は、オブジェクト制御部195がコンボデータに基づいてゲームキャラクタCA1に攻撃動作を実行させたときのアクションの一例を示す図である。図12の状態(A)は、アクションa1を示す。図12の状態(B)は、アクションa2を示す。図12の状態(C)は、アクションa3を示す。入力操作受付部191がタップ操作を受け付けると、オブジェクト制御部195は、図12の状態(A)に示されるように、ゲームキャラクタCA1にアクションa1を実行させる。続いて、入力操作受付部191が予め定められた期間内に再びタップ操作を受け付けると、オブジェクト制御部195は、図12の状態(B)に示すアクションa2をゲームキャラクタCA1に実行させる。続いて、入力操作受付部191が予め定められた期間内にフリック操作を受け付けると、オブジェクト制御部195は、図12の状態(C)に示すアクションa3をゲームキャラクタCA1に実行させる。アクションa3は、アクションa1、a2より演出を派手にしたり、攻撃力を大きくしたりするように設定してもよい。また、アクションa3のためのフリック操作の代わりに、タップ操作が3回続けられることによって、オブジェクト制御部195は、他の演出が派手であったり攻撃力が大きかったりするアクションをゲームキャラクタCA1に実行させてもよい。一実施形態によれば、タッチスクリーン130によるタッチ操作でコンボ攻撃をゲームキャラクタCA1に実行させるゲームであっても、コンボの流れを分岐させることができる。このように、コンボ攻撃中の攻撃操作に方向性のある入力操作を採用することで、ユーザは多様な操作によって次々と流れるようにゲームキャラクタCA1に攻撃させることができる。よって、ゲームの趣向性が向上する。
(連撃攻撃時のカメラワーク)
連撃攻撃時においても、制御部190は、図11に示された攻撃操作時のフローチャートに沿って処理を実行する。入力操作が連撃攻撃の最初の攻撃操作であるか否かは、2回目の攻撃操作が入力されることによって初めて確定する。したがって、タップ操作が通常のタップ操作であるか連撃操作となるかに関わらず、制御部190は、図11に示された攻撃操作時のフローチャートに沿って処理を実行する。つまり、制御部190は、事後的に連撃操作となる最初のタップ操作に応じて、図11に示された攻撃操作時のフローチャートに沿って処理を実行する。
このため、ステップS40として、制御部190は、所定期間内に連続する攻撃操作が受け付けられた場合、所定期間内に連続する攻撃操作のうち最初の攻撃動作の対象となる敵キャラクタCA2にゲームキャラクタCA1を向かせることになる。そして、ステップS42として、制御部190は、予め定められた方向からゲームキャラクタCA1を撮影するように仮想カメラVCを制御する。
そして、制御部190は、2回目以降のタップ操作が行われた場合、所定期間前にタップ操作が行われていたか否かを判定する。制御部190は、所定期間前にタップ操作が行われていない場合、2回目のタップ操作については、図11に示された攻撃操作時のフローチャートに沿って処理を実行する。この場合、制御部190は、2回目のタップ操作によって攻撃対象となる敵キャラクタCA2にゲームキャラクタCA1を向かせることになる。そして、ステップS42として、制御部190は、予め定められた方向からゲームキャラクタCA1を撮影するように仮想カメラVCを制御する。
一方、制御部190は、所定期間前にタップ操作が行われていた場合、当該タップ操作については、図11に示された攻撃操作時のフローチャートのうち、ステップS42については実行しない。つまり、制御部190は、予め定められた期間内に2回目以降の攻撃操作が行われた場合には、最初の攻撃操作に基づいて決定された仮想カメラVCの撮影方向を、所定期間内に連続する攻撃操作を受け付けている間は変更しない。これにより、ゲームキャラクタCA1の攻撃によって敵キャラクタCA2の位置が変化し、それに伴ってゲームキャラクタCA1の向きが変更された場合であっても、仮想カメラVCの撮影方向は変更されないことになる。制御部190は、ユーザにキャラクタの向きを一度理解させた後は、固定されたアングルで連撃の様子を提供することにより、ユーザがキャラクタの向きを見失うことが無い状態で、連撃中のキャラクタや対象キャラクタを種々の角度から確認させることができる。
同様に、制御部190は、コンボ攻撃中の攻撃操作に方向性のある入力操作が含まれていた場合であっても、最初の攻撃操作に基づいて決定された仮想カメラVCの撮影方向を、所定期間内に連続する攻撃操作を受け付けている間は変更しない。以下では、フリック操作がコンボ攻撃中の攻撃操作に含まれる場合の例を詳細に説明する。
図13は、フリック操作時の処理を説明するフローチャートである。図13のフローチャートは、制御部190がゲームプログラム151を実行することによりアクションゲームを進行させる処理を示すフローチャートである。
ステップS50において、制御部190は、入力操作が受け付けられたか否かを判定する。制御部190は、入力操作として、仮想空間においてゲームキャラクタCA1を移動させる移動操作及びゲームキャラクタCA1に攻撃動作を行わせる攻撃操作を受け付けることができる。
入力操作が受け付けられたと判定されると(ステップS50:Yes)、ステップS32において、制御部190は、初期タッチ位置に操作オブジェクトを表示させる(図10の画面例(B)に対応する)。オブジェクト制御部195は、入力操作に応答して円形の操作オブジェクト300を生成する。表示制御部196は、生成された円形の操作オブジェクト300をタッチ位置に表示させる。
ステップS54において、制御部190は、入力操作がフリック操作であるか否かを判定する。制御部190は、タッチスクリーン130の履歴情報を用いて、フリック操作であるか否かを判定する(図4参照)。
入力操作がフリック操作であると判定されると(ステップS54:Yes)、ステップS56において、制御部190は、初期タッチ位置からフリック方向へ延びる操作オブジェクトを表示させる。
ステップS58において、制御部190は、ゲームキャラクタCA1が向いている方向を特定する。例えば記憶部150には、ゲームキャラクタCA1の顔が向いている方向または直前の移動操作の進行方向等を示す情報が記憶されている。制御部190は、ゲームキャラクタCA1に実行させたアクション、他のオブジェクトからの作用などに基づいて、記憶部150に記憶された情報が示す方向の中からゲームキャラクタCA1が向いている方向を選択する。次に、制御部190は、選択した結果に基づき、記憶部150を参照してゲームキャラクタCA1の向いている方向を特定する。
ステップS60において、制御部190は、フリック操作の方向とタッチスクリーン130に表示される画面においてゲームキャラクタCA1が向いている方向とを比較する。
ステップS62において、制御部190は、ステップS60における比較結果に応じたアクションを、ゲームキャラクタCA1に実行させる。この処理の詳細は、図14に示されたフローチャートを用いて後述する。
ステップS46として、制御部190は、操作オブジェクト300の表示を終了する。
一方、入力操作がフリック操作でないと判定されると(ステップS54:No)、ステップS66において、制御部190は、入力操作に応じた動作をゲームキャラクタCA1に実行させる。そして、ステップS46として、制御部190は、操作オブジェクト300の表示を終了する。
入力操作が受け付けられていないと判定された場合(ステップS50:No)、又は、操作オブジェクト300の表示を終了すると、図13に示されるフローチャートは終了する。そして、制御部190は、所定の条件が満たされるまで図13に示されるフローチャートを最初から実行する。以上で、攻撃操作時の一連の処理が終了する。
図14は、図13に示されたフリック操作に基づく動作処理を説明するフローチャートである。制御部190は、図14に示されるフローチャートに従い、比較結果に応じたアクションをゲームキャラクタCA1に実行させる。
ステップS70において、制御部190は、図14に示されたステップS50においてフリック操作を受け付ける前の所定期間内に、攻撃動作を行なうためのタップ操作を受け付けたか否かを判定する。
フリック操作の所定期間前に攻撃動作を行なうためのタップ操作を受け付けたと判定されると(ステップS70:Yes)、ステップS72において、制御部190は、フリック操作の方向はゲームキャラクタCA1が向いている方向と所定関係にあるか否かを判定する。所定関係は、例えばゲームキャラクタCA1が向いている方向を軸として、フリック操作の方向が当該軸から左右一定の範囲(例えば、左右それぞれに30度以内、45度以内等)となることとしてもよい。
フリック操作の方向はゲームキャラクタCA1が向いている方向により定まる一定範囲の方向に含まれていると判定されると(ステップS72:Yes)、ステップS74として、制御部190は、前回の攻撃動作に対応する操作がタップ操作であり、且つ、今回の操作がフリック操作であることに基づく攻撃動作を、ゲームキャラクタCA1に実行させる。このように、連続してゲームキャラクタCA1に攻撃動作を実行させる場合、毎回同じ攻撃動作をゲームキャラクタCA1に実行させるのではなく、異なる攻撃動作をゲームキャラクタCA1に実行させることができる。従って、攻撃動作が多様になる。ステップS72が終了すると、図14に示されるフローチャートが終了する。
一方、フリック操作の方向はゲームキャラクタCA1が向いている方向と所定関係にないと判定されると(ステップS72:No)、ステップS76として、制御部190は、ゲームキャラクタCA1に、攻撃動作を実行することなくフリック操作の方向に移動するための回避動作を実行させる。それに続けて、ステップS78として、制御部190は、ゲームキャラクタCA1に攻撃動作を実行させる。ステップS78において制御部190がゲームキャラクタCA1に実行させる攻撃動作は、タップ操作に基づく攻撃動作とは異なってもよい。この場合、ゲームキャラクタCA1による攻撃動作がより多様となり、ゲームの趣向性が向上する。ステップS78が終了すると、図14に示されるフローチャートが終了する。
一方、フリック操作の所定期間前に攻撃動作を行なうためのタップ操作を受け付けていないと判定されると(ステップS70:No)、ステップS80において、制御部190は、ゲームキャラクタCA1に回避動作を実行させ、攻撃動作を実行させない。そして、ステップS82において、制御部190は、仮想カメラVCの向きをゲームキャラクタCA1の向きに基づいて決定する。ステップS82が終了すると、図14に示されるフローチャートが終了する。
このように、制御部190は、ゲームキャラクタCA1が向いている方向とフリック操作の方向とに応じて、ゲームキャラクタCA1に攻撃動作を実行させたり回避動作を実行させたりするなど、アクションを分けることができるので、ゲームの趣向性が向上する。特に、攻撃対象に対する入力操作に多様性を持たせることができる。
また、制御部190は、コンボ攻撃の最初の攻撃操作に基づいて仮想カメラVCの撮影方向を決定し、コンボ攻撃中においては撮影方向を変更しない。このため、ユーザにゲームキャラクタCA1の向きを一度理解させた後は、固定されたアングルで連撃の様子を提供することにより、フリック操作が入力し易くなる。
また、フリック操作は、ゲーム中の素早い操作が必要とされる場面において、ユーザが直感的に素早く入力する操作である。本実施形態では、フリック操作の方向に応じて攻撃動作または回避動作を選択できるため、直感的に攻撃と回避とを選択することができる。よって、ゲームの趣向性が向上する。
(変形例1)
カメラ配置制御部194は、移動操作を受け付けたときに、ゲームキャラクタCA1をその背後から追尾するように仮想カメラVCを制御するだけなく、ゲームキャラクタCA1を他の角度から追尾するように仮想カメラVCを制御してもよい。例えば、カメラ配置制御部194は、ゲームキャラクタCA1を斜め後から追尾してもよい。あるいは、カメラ配置制御部194は、固定アングルでゲームキャラクタCA1を追尾してもよい。固定アングルの場合、図6の状態(A)から状態(B)へゲームキャラクタCA1が変更されたときであっても、仮想カメラVCの視野内におけるゲームキャラクタCA1の位置が維持される。この場合、移動操作に基づいてゲームキャラクタCA1が移動すると、カメラ配置制御部194は、ゲームキャラクタCA1を仮想カメラVCにおける視野の所定位置に捉えるように、かつ、仮想カメラVCの移動量と向きの変動量がいずれも最小となるように、仮想カメラVCの位置および向きを調整する。
また、カメラ配置制御部194は、攻撃操作を受け付けたときに、ゲームキャラクタCA1をその背後から撮影するように仮想カメラVCを制御するだけなく、ゲームキャラクタCA1を他の角度から撮影するように仮想カメラVCを制御してもよい。
さらに、実施形態では、カメラ配置制御部194は、コンボ攻撃中においてはコンボ攻撃の最初の攻撃操作に基づいて仮想カメラVCの撮影方向を決定し、以降のコンボ攻撃中の撮影方向を固定する例を説明したが、これに限定されない。例えば、カメラ配置制御部194は、攻撃操作(コンボ攻撃操作を含む)を受け付けた場合には、常にゲームキャラクタCA1をその背後から撮影するように仮想カメラVCを制御してもよい。つまり、コンボ攻撃中においては、最初の攻撃操作に基づいて決定された仮想カメラVCの撮影方向(ゲームキャラクタCA1をその背後から撮影する方向)を維持するように、仮想カメラの撮影方向を変更し続ける。この場合、制御部190は、図14のステップS74、ステップS78の攻撃時において、攻撃対象となる敵キャラクタCA2にゲームキャラクタCA1を向かせ、ゲームキャラクタCA1の向きに応じて仮想カメラVCの撮影方向を制御する(図11のステップS40及びS42に相当する処理が行われる)。これにより、戦闘シーンにおいては、ゲームキャラクタCA1は常に敵キャラクタCA2に正面から対峙し、常にゲームキャラクタCA1の背後から観察するゲーム画面が提供される。このようなカメラワークとすることにより、ユーザがキャラクタの向きを見失うことが無いため、攻撃操作に方向性のある入力操作が含まれる場合であっても、操作性を向上させることができる。
(変形例2)
ドラッグ操作の操作結果を示す操作オブジェクト300は、図7の状態(B)に示された例に限定されるものではなく、複数のオブジェクトを用いて操作結果が表現されもよい。
(変形例3)
状態(A)〜(D)において、操作オブジェクト300は表示されなくてもよい。つまり、操作オブジェクト300の端部は変更されず、操作方向の起点だけ変更される場合であってもよい。
(変形例4)
連撃操作中に含まれている操作は、フリック操作である例を説明したが、ドラッグ操作であってもよい。
(変形例5)
上述したゲーム処理の全てを携帯端末10又はサーバ20が単体で実行してもよい。
以上、本開示の実施形態について説明したが、本開示の技術的範囲は、本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲の記載事項に基づいて、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本開示の技術的範囲は、特許請求の範囲の記載事項及びその均等の範囲に基づいて定められるべきである。
本開示の主題は、例えば以下のような項目として示される。
(項目1)
ゲームにおける仮想空間に配置された仮想カメラ(例えば仮想カメラVC)によって撮影された画像を表示するためにコンピュータ(例えば携帯端末10又はサーバ20)によって実行される情報処理方法であって、
前記仮想空間においてキャラクタ(例えばゲームキャラクタCA1)を移動させる移動操作(例えばドラッグ操作)及び前記キャラクタに攻撃動作を行わせる攻撃操作(例えばタップ操作)を受け付けるステップ(例えばステップS10及びステップS30)と、
前記移動操作が受け付けられた場合、前記仮想空間を移動するキャラクタを追尾するように前記仮想カメラを制御するステップ(例えばステップS20)と、
前記攻撃操作が受け付けられた場合、前記キャラクタを前記攻撃動作の対象となる対象キャラクタ(例えば敵キャラクタCA2)に向かせるステップ(例えばステップS40)と、
前記攻撃操作が受け付けられたことによって前記キャラクタが前記対象キャラクタに向けられた場合、予め定められた方向(例えばゲームキャラクタCA1の背後)から前記キャラクタを撮影するように前記仮想カメラを制御するステップ(例えばステップS42)と、
を有する情報処理方法。
この開示では、移動操作時においては仮想カメラがキャラクタを追尾するように制御され、攻撃操作時においては移動操作をトリガとせずにキャラクタを予め定められた方向から撮影するように仮想カメラが制御される。このように、この開示は、移動操作時においてはキャラクタの移動の流動感と臨場感とを増加させるカメラワークを提供でき、かつ、攻撃操作時においては移動操作が入力されなくても交戦時に適したカメラワークを提供できる。よって、この開示によればゲーム性を高めることができる。
(項目2)
前記キャラクタを前記対象キャラクタに向かせるステップでは、所定期間内に連続する前記攻撃操作が受け付けられた場合、前記所定期間内に連続する前記攻撃操作のうち最初の攻撃動作の対象となる前記対象キャラクタに前記キャラクタを向かせ、
前記予め定められた方向から前記キャラクタを撮影するように前記仮想カメラを制御するステップでは、前記最初の攻撃操作が受け付けられたことによって前記キャラクタが前記対象キャラクタに向けられた場合、予め定められた方向から前記キャラクタを撮影するように前記仮想カメラを制御する、項目1に記載の情報処理方法。
この開示では、いわゆる連撃操作が行われた場合、最初の攻撃操作に基づいて予め定められた方向からキャラクタを撮影するように仮想カメラが制御される。よって、この開示によれば、連撃操作の開始時においてユーザにキャラクタの向きを理解させ、連撃操作に方向性のある入力操作が含まれていた場合であっても連撃操作を入力し易くすることができる。
(項目3)
前記予め定められた方向から前記キャラクタを撮影するように前記仮想カメラを制御するステップでは、前記最初の攻撃操作に基づいて決定された前記仮想カメラの撮影方向を、前記所定期間内に連続する前記攻撃操作を受け付けている間は変更しない、項目2に記載の情報処理方法。
この開示では、連撃中にキャラクタの向きが変更された場合であっても、最初の攻撃操作に基づいて設定された仮想カメラの撮影方向が固定される。このように、この開示は、ユーザにキャラクタの向きを一度理解させた後は、固定されたアングルで連撃の様子を提供することにより、ユーザがキャラクタの向きを見失うことが無い状態で、連撃中のキャラクタや対象キャラクタを種々の角度から確認させることができる。
(項目4)
前記予め定められた方向から前記キャラクタを撮影するように前記仮想カメラを制御するステップでは、前記所定期間内に連続する前記攻撃操作を受け付けている間、前記最初の攻撃操作に基づいて決定された前記仮想カメラの撮影方向を維持するように、前記仮想カメラの撮影方向を変更し続ける、項目2に記載の情報処理方法。
この開示では、連撃中は、最初の攻撃操作に基づいて決定された仮想カメラの撮影方向を維持するように、仮想カメラの撮影方向が変更され続ける。このように、この開示は、連撃中のキャラクタの向きと撮影方向とを一定に保つことにより、ユーザがキャラクタの向きを見失うことが無い状態で、連撃中のキャラクタや対象キャラクタを確認させることができる。
(項目5)
前記所定期間内に連続する前記攻撃操作は、フリック操作を含み、
前記攻撃動作は、前記キャラクタの向きと前記フリック操作の方向に基づいて決定される、項目2〜4のいずれか一項に記載の情報処理方法。
この開示によれば、連撃操作に方向性のあるフリック操作が含まれていた場合であっても連撃操作を入力し易くすることができる。
(項目6)
前記予め定められた方向から前記キャラクタを撮影するように前記仮想カメラを制御するステップでは、前記キャラクタの背後から前記キャラクタを撮影するように前記仮想カメラを制御する項目1〜5のいずれか一項に記載の情報処理方法。
この開示によれば、交戦時の臨場感やキャラクタとの一体感を高めることができる。
(項目7)
前記仮想空間を移動する前記キャラクタを追尾するように前記仮想カメラを制御するステップでは、前記キャラクタの背後から前記キャラクタを撮影するように前記仮想カメラを制御する、項目6に記載の情報処理方法。
この開示によれば、移動操作中から攻撃操作中に遷移するときに、カメラの動きが横方向(パン)になるので、急激な画面変化(視点変化)を抑えることができる。
(項目8)
前記仮想空間を移動する前記キャラクタを追尾するように前記仮想カメラを制御するステップでは、前記キャラクタを前記仮想カメラにおける視野の所定位置に捉えるように、かつ、前記仮想カメラの移動量および向きの変化量が最小となるように、前記仮想カメラを制御する、項目6に記載の情報処理方法。
この開示によれば、移動シーンと攻撃シーンとで視点変化が大きくなるため、移動と交戦とのシーンの切り替わりをユーザに容易に理解させることができるとともに、交戦時のユーザの緊張感を高めることができる。
(項目9)
項目1〜8のいずれか一項に記載の方法をコンピュータに実行させる、プログラム。
(項目10)
項目9に記載のプログラムを格納したメモリと、
前記メモリに結合され、前記プログラムを実行するためのプロセッサとを備える、装置。