(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、上記特許文献1に記載のゲーム装置にあっては、スライド操作の操作エリア上に重要なコンテンツが表示されてしまうと、当該コンテンツの表示を妨げるだけでなく、当該コンテンツの表示を考慮して操作することもできず、的確な操作を行うことができない場合も多い。
【0010】
本発明は、上記課題を解決するためになされたものであり、その目的は、スライド操作
におけるタッチパネル上の操作エリアを考慮して仮想カメラの位置、向き及び画角の少なくともいずれか一方を制御し、表示内容を的確に把握しつつ、適切な操作を行うことが可能なプログラム及び入力処理装置などを提供することにある。
【課題を解決するための手段】
【0011】
(1)上記課題を解決するため、本発明のプログラムは、
オブジェクト空間を所与の視点からみた画像が所与の画面上に表示されるタッチパネルへのタッチ操作入力を受け付けるプログラムであって、
前記画面へのタッチ操作入力した位置に関連付けられた所定位置を指示位置として検出する検出処理とを実行するタッチ操作入力検出処理手段、
前記オブジェクト空間に前記タッチ操作入力によって操作対象となる操作対象オブジェクト及び所与のオブジェクトを配置するオブジェクト制御手段、
前記オブジェクト空間内に配置される仮想カメラを制御する仮想カメラ制御手段、
前記オブジェクト空間における前記仮想カメラから見える画像であって、前記画面上に表示する画像を生成する画像生成手段、
前記画面上に表示されている操作対象オブジェクト又は所与のオブジェクトの当該画面上の表示エリアと、前記検出された指示位置に基づいて定められる操作エリアと、の干渉状況を判定する干渉状況判定処理を行う干渉状況判定処理手段、
としてコンピュータを機能させ、
前記仮想カメラ制御手段が、
前記干渉状況が発生する場合には、前記仮想カメラの位置、向き、及び、画角の少なくともいずれか一方を制御し、前記操作対象オブジェクト又は前記所与のオブジェクトの視認性を確保するカメラ制御を実行する、構成を有している。
【0012】
また、本発明は、上記各手段を有する入力処理装置に関する。また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関する。
【0013】
この構成により、本発明のプログラムは、表示することが重要な操作対象オブジェクトや所与のオブジェクト上でスライド操作などのタッチ操作入力を行った場合であっても、各種のオブジェクトの視認性を確保することができるので、ゲームの進行などの表示内容を的確に把握すること、及び、それによって適切な操作を行うことができる。
【0014】
なお、「タッチ操作入力」には、
(1)ユーザの指によるタッチパネル上への直接的なタッチ操作又は当該タッチ操作入力の継続中に指示位置が変化するスライド操作、
(2)ポインティングデバイスなどのデバイスを介して間接的なタッチパネル上へのタッチ操作又はスライド操作、及び、
(3)タッチパネルに直接的及び間接的にタッチ操作又はスライド操作することによって操作入力を検出せずに、タッチパネル上への擬似的な操作(接触及び非接触を含む)を検出することによって認識するタッチ操作又はスライド操作、
も含まれる。
【0015】
特に、擬似的なタッチ操作又はスライド操作とは、例えば、
(3A)赤外線などの光ビームをタッチパネル面と平行に当該タッチパネル面に近接した位置で照射し、当該タッチパネルの一端部に縦横方向に一定間隔に形成される複数の照射部と、各照射部と対を構成し、当該各照射部に対向するタッチパネルの他端部に設けられ、各照射された光ビームをそれぞれ受信する複数のセンサとによって、タッチパネルに接触又は近接した際に光ビームが遮断された縦横の座標を検出し、当該検出した座標に基づいて認識するタッチ操作又はスライド操作、及び、
(3B)タッチパネルの表示面を撮像するカメラを設け、当該カメラによってユーザがタッチパネルに接触又は近接した位置座標を検出し、当該検出した位置座標に基づいて認識するタッチ操作又はスライド操作、
などタッチパネルとは別形状を有する検出手段を用いて実際にタッチパネルに接触することによって又は近接させることを検出することによって認識するタッチ操作又はスライド操作を含む。
【0016】
また、「操作対象オブジェクト」には、ゲームなどにおけるプレーヤキャラクタや敵キャラクタなどの重要なキャラクタやオブジェクト空間内でユーザ操作の対象となる各種のオブジェクトが含まれるとともに、所定の画像や動画における重要な表示又はキーワードなどの重要なコンテンツ及び画像を形成するための各種のオブジェクトが含まれる。
【0017】
特に、この「操作対象オブジェクト」には、直接的にユーザによって操作されるオブジェクトの他に、例えば、プレーヤキャラクタに装備されるアイテムなど、直接的に操作されるオブジェクトの動作に基づいて制御される間接的に操作されるオブジェクトも含まれる。
【0018】
さらに、「所与のオブジェクト」には、上記の操作対象オブジェクト以外のオブジェクト空間に配置されるオブジェクトを含み、例えば、移動経路、建物、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクトが含まれる。
【0019】
またさらに、「操作対象オブジェクトの視認性を確保するカメラ制御」とは、例えば、仮想カメラの位置(オブジェクト空間の平面(パン)方向及び高さ(チルト)方向の双方を含む)、向き、画角及びズームを制御することによって、表示エリアと操作エリアの干渉を防止し、操作対象オブジェクトの視認性を確保するためのカメラ制御処理である。
【0020】
(2)また、本発明のプログラムは、
前記タッチ操作入力検出処理手段が、
前記タッチ操作入力の継続中に前記指示位置が変化する場合に、当該変化する指示位置をスライド操作入力に伴って変化する指示位置として検出し、
前記オブジェクト制御手段が、
前記オブジェクト空間に前記スライド操作入力によって前記操作対象オブジェクト及び前記所与のオブジェクトを配置し、
前記干渉状況判定処理手段が、
前記表示エリアと、前記スライド操作入力における操作エリアと、の干渉状況を判定する干渉状況判定処理を行う、構成を有している。
【0021】
この構成により、本発明のプログラムは、表示することが重要な操作対象オブジェクトや所与のオブジェクト上でスライド操作を行った場合であっても、各種のオブジェクトの視認性を確保することができるので、ゲームの進行などの表示内容を的確に把握すること、及び、それによって適切な操作を行うことができる。
【0022】
(3)また、本発明のプログラムは、前記タッチ操作入力検出処理手段が、前記画面へのタッチ操作入力されていない状態からタッチ操作入力された状態への状態変化を検出するとともに、当該状態変化の検出後であって当該状態変化を検出した際のタッチ操作入力の継続中に変化する指示位置を、前記スライド操作入力に伴って変化する指示位置として検出する、構成を有している。
【0023】
この構成により、本発明のプログラムは、タッチ操作入力されていない状態からタッチ操作入力された状態への状態変化及びスライド操作入力に伴って変化する指示位置を検出
することができるので、スライド操作入力の起点から現在位置までを的確に検出することができる。
【0024】
(4)また、本発明のプログラムは、
前記検出処理によって検出されたタッチ操作入力の指示位置に伴って、前記タッチ操作入力に対応するタッチ操作入力オブジェクトマーカを前記画面上に配置して表示する表示制御処理を実行する操作入力オブジェクト表示制御手段として前記コンピュータを更に機能させ、
前記干渉状況判定処理手段が、
前記干渉状況判定処理として、前記タッチ操作入力オブジェクトマーカが前記画面上に表示されている表示エリアを前記操作エリアとして、前記画面上に表示されている操作対象オブジェクト又は前記オブジェクト空間に配置された所与のオブジェクトの当該画面上の表示エリアとの干渉状況を判定する、構成を有している。
【0025】
この構成により、本発明のプログラムは、可視化されたスライド操作入力などのタッチ操作入力によって操作性を向上させることができるとともに、操作対象オブジェクトの表示エリアと可視化されたタッチ操作入力が表示される操作エリアの干渉を防止し、操作対象オブジェクトや所与のオブジェクトの視認性を確保することができる。
【0026】
(5)また、本発明のプログラムは、
前記タッチ操作入力の継続中に前記指示位置が変化する際に指示位置の現在位置を示す現指示位置と、当該現指示位置の前に検出された当該継続中のタッチ操作入力における前記タッチ操作入力の位置と、に基づいて、前記操作対象オブジェクトの前記オブジェクト空間上の移動方向を検出する移動方向検出手段としてさらにコンピュータを機能させ、
前記仮想カメラ制御手段が、
前記干渉状況が発生する場合には、前記検出された移動方向に基づいて前記操作対象オブジェクトの視認性を確保する前記カメラ制御を実行する、構成を有している。
【0027】
この構成により、本発明のプログラムは、例えば、オブジェクト空間内を移動中の操作対象オブジェクトを、全体像を把握しつつ的確に視認可能なカメラ位置である移動方向に対して操作対象オブジェクトを後方から撮像する位置に仮想カメラを配置することによって、操作対象オブジェクトの視認性を確保することができるとともにオブジェクト空間において操作対象オブジェクトの実行状況を認識することができる。
【0028】
(6)また、本発明のプログラムは、
所与の指示に基づいて、複数のオブジェクトの中から一の前記操作対象オブジェクトを選択する選択手段として前記コンピュータを機能させ、
前記干渉状況判定処理手段が、
操作中の前記操作対象オブジェクトが他の操作対象オブジェクトに切り替わった場合には、当該切り替わった操作対象オブジェクトの前記画面上の表示エリアと、前記スライド操作入力における操作エリアと、の干渉状況を判定する構成を有している。
【0029】
この構成により、本発明のプログラムは、複数の操作対象オブジェクトが存在する場合であっても、ユーザにおける操作対象オブジェクトの視認性を確保することができるので、スライド操作入力を行っている場合であっても、ゲームの進行などの表示内容を的確に把握すること、及び、それによって適切な操作を行うことができる。
【0030】
(7)また、本発明のプログラムは、
前記干渉状況判定処理手段が、
所与のイベントの発生が検出された場合に、前記操作対象オブジェクト又は前記所与の
オブジェクトの画面上の表示エリアと、前記スライド操作入力における操作エリアと、の干渉状況を判定する、構成を有している。
【0031】
この構成により、本発明のプログラムは、ゲームにおいて敵キャラクタと接触した場合や特定の動作を行う場合など詳細な動きを画像化する場合に、ユーザにおける操作対象オブジェクトの視認性を確保することができるので、ゲームの進行などの表示内容を的確に把握すること、及び、それによって適切な操作を行うことができる。
【0032】
(8)また、本発明のプログラムは、
前記カメラ制御手段が、
前記スライド操作入力の実行中に前記仮想カメラを前記操作対象オブジェクトに追従する制御を行う、構成を有している。
【0033】
この構成により、本発明のプログラムは、操作対象オブジェクトの視認性を確保しつつ、臨場感のある表示を行うことができる。
【0034】
(9)また、本発明のプログラムは、
前記タッチ入力検出処理手段によって検出された継続中のタッチ操作入力の操作の変位が所与の条件を具備した場合には、
前記干渉状況判定処理手段が、
前記操作対象オブジェクトの画面上の表示エリアと、前記タッチ操作入力における操作エリアと、の干渉状況判定処理の実行を停止する、構成を有している。
【0035】
この構成により、本発明のプログラムは、急な速度によってスライド操作などのタッチ操作入力が実行された場合では、それに伴って操作対象オブジェクトの状況やタッチ操作入力オブジェクトマーカの非表示化などによって干渉状況判定処理に基づくカメラ制御を停止するので、このような状況における画像化されるタッチ操作入力の可視化よりも、当該可視化による処理負担の軽減を実行することができる。
【0036】
(10)また、本発明のプログラムは、
前記タッチ入力検出処理手段が、
前記状態変化が実行された検出位置を基準位置として検出し、
前記基準位置の検出後であって当該基準位置を検出した際のタッチ操作入力が継続されてスライド操作入力されている場合に、前記指示位置を検出し、
前記オブジェクト制御手段が、
前記検出された基準位置及び指示位置に基づいて、前記オブジェクト空間に前記操作対象オブジェクトを配置し、
前記干渉状況判定処理手段が、
前記表示エリアと、前記検出された基準位置及び指示位置に基づいて定められる操作エリアと、の干渉状況を判定する、構成を有している。
【0037】
この構成により、本発明のプログラムは、状態変化が実行された検出位置を示す基準位置に基づいて、操作対象オブジェクトと配置し、干渉状況判定処理を実行することができるので、基準位置から指示位置までのタッチ操作入力と操作対象オブジェクトなどの各種のオブジェクトの視認性を確保することができるので、ゲームの進行などの表示内容を的確に把握すること、及び、それによって適切な操作を行うことができる。
【0038】
(11)上記課題を解決するため、本発明の入力処理装置は、
オブジェクト空間を所与の視点からみた画像が所与の画面上に表示されるタッチパネルへのタッチ操作入力を受け付ける入力処理装置であって、
前記画面へのタッチ操作入力した位置に関連付けられた所定位置を指示位置として検出する検出処理とを実行するタッチ操作入力検出処理手段と、
前記オブジェクト空間に前記タッチ操作入力によって操作対象となる操作対象オブジェクト及び所与のオブジェクトを配置するオブジェクト制御手段と、
前記オブジェクト空間内に配置される仮想カメラを制御する仮想カメラ制御手段と、
前記オブジェクト空間における前記仮想カメラから見える画像であって、前記画面上に表示する画像を生成する画像生成手段と、
前記画面上に表示されている操作対象オブジェクト又は所与のオブジェクトの当該画面上の表示エリアと、前記検出された指示位置に基づいて定められるスライド操作入力における操作エリアと、の干渉状況を判定する干渉状況判定処理を行う干渉状況判定処理手段と、
を備え、
前記仮想カメラ制御手段が、
前記干渉状況が発生する場合には、前記仮想カメラの位置、向き、及び、画角の少なくともいずれか一方を制御し、前記操作対象オブジェクト又は前記所与のオブジェクトの視認性を確保するカメラ制御を実行する、構成を有している。
【0039】
この構成により、本発明の入力処理装置は、表示することが重要な操作対象オブジェクトや所与のオブジェクト上でスライド操作などのタッチ操作入力を行った場合であっても、各種のオブジェクトの視認性を確保することができるので、ゲームの進行などの表示内容を的確に把握すること、及び、それによって適切な操作を行うことができる。
【発明を実施するための形態】
【0041】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0042】
[1]ゲームシステム
まず、
図1を用いて本実施形態のゲームシステム1の概要及び概要構成について説明する。なお、
図1は、本実施形態のゲームシステム1の構成を示すシステム構成の一例を示す図である。
【0043】
本実施形態のゲームシステム1は、
図1に示すように、ゲームサービスを提供するサーバ装置10と、端末装置20(例えば、端末装置20A、20B、20C)とが、インターネット(ネットワークの一例)に接続可能に構成されている。
【0044】
ユーザは、端末装置20からサーバ装置10にアクセスすることにより、インターネットを介してサーバ装置10から送信されてくるゲームをプレーすることができる。さらに、ユーザは端末装置20からサーバ装置10にアクセスすることにより、他のユーザとの間でコミュニケーションを図ることができるようになっている。
【0045】
サーバ装置10は、インターネットを介して通信接続された端末装置20を用いて、ユーザにゲームをプレーさせるサービスを提供することが可能な情報処理装置である。また、サーバ装置10は、コミュニケーション型のサービスを提供するSNSサーバとして機能してもよい。ここで、SNSサーバとは、複数のユーザ間でコミュニケーションを提供することが可能なサービスを提供する情報処理装置であってもよい。
【0046】
また、サーバ装置10は、例えば、SNSサーバとして機能する場合には、提供するSNSの動作環境(API(アプリケーションプログラミングインタフェース)、プラットフォーム等)を利用して実行されるソーシャルゲーム(Social Game)をと呼ばれるゲームを提供することができるようになっている。
【0047】
特に、サーバ装置10は、端末装置20のWebブラウザ上で提供されるゲーム、例えばHTML、FLASH、CGI、PHP、shockwave、Java(登録商標)アプレット、JavaScript(登録商標)など様々な言語で作られたブラウザゲーム(Webブラウザで設置サイトを開くだけで起動するゲーム)を提供することができるようになっている。
【0048】
なお、ソーシャルゲームとは、既存のオンラインゲームとは違い、専用のクライアントソフトウェアを必要とせず、WebブラウザとSNSのアカウントのみで利用可能なゲームが含まれる。また、サーバ装置10は、ネットワークを介して他のユーザの端末(スマートフォン、パソコン、ゲーム機など)と接続し、オンラインで同時に同じゲーム進行を共有することができるオンラインゲームを提供することが可能な構成を有している。
一方、サーバ装置10は、1つの(装置、プロセッサ)で構成されていてもよいし、複数の(装置、プロセッサ)で構成されていてもよい。
【0049】
そして、サーバ装置10の記憶領域(後述する記憶部140)に記憶される課金情報、ゲーム情報等の情報を、ネットワーク(イントラネット又はインターネット)を介して接続されたデータベース(広義には記憶装置、メモリ)に記憶するようにしてもよいし、SNSサーバとして機能する場合には、記憶領域に記憶されるユーザ情報146等の情報を、ネットワーク(イントラネット又はインターネット)を介して接続されたデータベース(広義には記憶装置、メモリ)に記憶するようにしてもよい。
【0050】
具体的には、本実施形態のサーバ装置10は、端末装置20のユーザ(すなわち、ゲームを実行するプレーヤ)の操作に基づく入力情報を受信し、受信した入力情報に基づいてゲーム処理を行うようになっている。そして、サーバ装置10は、ゲーム処理結果を端末装置20に送信し、端末装置20は、サーバ装置10から受信したゲーム処理結果を端末
装置20にユーザに閲覧可能に提供する各種の処理を行うようになっている。
【0051】
端末装置20は、スマートフォン、携帯電話、PHS、コンピュータ、ゲーム装置、PDA、携帯型ゲーム機等、画像生成装置などの情報処理装置であり、インターネット(WAN)、LANなどのネットワークを介してサーバ装置10に接続可能な装置である。なお、端末装置20とサーバ装置10との通信回線は、有線でもよいし無線でもよい。
【0052】
また、端末装置20は、Webページ(HTML形式のデータ)を閲覧可能なWebブラウザを備えている。すなわち、端末装置20は、サーバ装置10との通信を行うための通信制御機能、及びサーバ装置10から受信したデータ(Webデータ、HTML形式で作成されたデータなど)を用いて表示制御を行うとともに、ユーザ操作のデータをサーバ装置10に送信するWebブラウザ機能などを備え、ゲーム画面をユーザに提供する各種の処理を実行し、ユーザによってゲームを実行させるようになっている。ただし、端末装置20は、サーバ装置10から提供されたゲーム制御情報を取得して所定のゲーム処理を実行し、ゲーム処理に基づくゲームを実行してもよい。
【0053】
具体的には、端末装置20は、所定ゲームを行う旨の要求をサーバ装置10に対して行うと、サーバ装置10のゲームサイトに接続され、ゲームが開始される。特に、端末装置20は、必要に応じてAPIを用いることにより、SNSサーバとして機能するサーバ装置10に所定の処理を行わせ、又は、SNSサーバとして機能するサーバ装置10が管理するSNSユーザ情報146を取得させてゲームを実行する構成を有している。
【0054】
[2]サーバ装置
次に、
図2を用いて本実施形態のサーバ装置10について説明する。なお、
図2は、本実施形態のサーバ装置10の機能ブロックを示す図である。また、本実施形態のサーバ装置10は
図2の構成要素(各部)の一部を省略した構成としてもよい。
【0055】
サーバ装置10は、管理者やその他の入力に用いるための入力部120、所定の表示を行う表示部130、所定の情報が記憶された情報記憶媒体180、端末装置20やその他と通信を行う通信部196、主に提供するゲームに関する処理を実行する処理部100、及び、主にゲームに用いる各種のデータを記憶する記憶部140を含む。
【0056】
入力部120は、システム管理者等がゲームに関する設定やその他の必要な設定、データの入力に用いるものである。例えば、本実施形態の入力部120は、マウスやキーボード等によって構成される。
【0057】
表示部130は、システム管理者用の操作画面を表示するものである。例えば、本実施形態の表示部130は、液晶ディスプレイ等によって構成される。
【0058】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などによって構成される。
【0059】
通信部196は外部(例えば、端末、他のサーバや他のネットワークシステム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどによって構成される。
【0060】
記憶部140は、処理部100や通信部196などのワーク領域となるもので、その機能は、RAM(VRAM)などによって構成される。なお、記憶部140に記憶される情
報は、データベースで管理してもよい。
【0061】
また、本実施形態においては、記憶部140には、提供するゲームに関する情報を示すゲーム情報144、提供するゲームに関しプレーヤとしてのユーザに関する情報を示すユーザ情報146、及び、その他ゲーム演算に必要な各種の情報が記憶される。
【0062】
処理部100は、記憶部140内の主記憶部142をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0063】
処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0064】
例えば、処理部100(プロセッサ)は、情報記憶媒体に記憶されているプログラムに基づいて、サーバ装置10全体の制御を行うとともに、各部間におけるデータ等の受け渡しの制御などの各種の処理を行う。さらに、端末装置20からの要求に応じた各種サービスを提供する処理を行う。
【0065】
具体的には、本実施形態の処理部100は、通信制御部101、Web処理部102及びゲーム管理部104を少なくとも有している。
【0066】
通信制御部101は、端末装置20とネットワークを介してデータを送受信する処理を行う。すなわち、サーバ装置10は、通信制御部101によって端末装置20等から受信した情報に基づいて各種処理を行う。
【0067】
特に、本実施形態の通信制御部101は、ユーザの端末装置20からの要求に基づいて、ゲーム画面を、当該ユーザの端末装置20に送信する処理を行う。
【0068】
Web処理部102は、Webサーバとして機能する。例えば、Web処理部102は、HTTP(Hypertext Transfer Protocol)等の通信プロトコルを通じて、端末装置20にインストールされているWebブラウザの要求に応じてデータを送信する処理、及び、端末装置20のWebブラウザによって送信されるデータを受信する処理を行う。
【0069】
なお、本実施形態では、サーバ装置10がSNSサーバとしての機能も備えていている場合を例にとり説明するが、サーバ装置10を、ゲーム用のサーバと、SNS用のサーバと別々に形成してもよい。また、本実施形態のゲームの処理は、サーバ装置10が一部又は全部を行ってもよいし、端末装置20が一部を行ってもよい。
【0070】
ゲーム管理部104は、端末装置20と連動し、当該端末装置20を介して入力されたプレーヤの操作に基づいて、各プレーヤにおいてロールプレーイングゲーム(RPG)や対戦ゲームに関するゲーム処理を実行するとともに、各ユーザのゲームの進行状況やアイテム管理などの各ユーザにおいて使用するキャラクタ及び各種のアイテムを含むユーザ情報を管理する。
【0071】
なお、ゲーム管理部104は、ユーザの操作に基づかず、ユーザが設定した各種のデータに基づいて自動的にゲームを実行するための自動演算処理を実行し、端末装置20で再生するためのデータを生成し、生成したデータを端末装置20に提供してもよい。
【0072】
[3]端末装置
次に、
図3及び
図4を用いて本実施形態の端末装置20について説明する。なお、
図3は、本実施形態における端末装置の構成を示す機能ブロック図の一例であり、
図4は、本実施形態における端末装置の外観構成を示す図の一例である。また、本実施形態の端末装置20は
図3の構成要素(各部)の一部を省略した構成としてもよい。
【0073】
入力部260は、プレーヤが操作データを入力するためのものであり、その機能は、タッチパネル又はタッチパネルディスプレイなどにより実現できる。すなわち、入力部260は、画像が表示される画面上における2次元の指示位置座標(x,y)を検出可能な検出部262を備えている。例えば、入力部260は、接触検出領域(タッチパネル)における、2次元の接触位置座標(x,y)を検出可能な検出部262を備えている。
【0074】
本実施形態において、接触位置(基準位置及び指示位置の一例)は、プレーヤの接触操作(直接的な接触及びポインティングデバイスによる間接的な接触も含む)により、接触検出領域から得られる位置情報である。
【0075】
なお、本実施形態のプレーヤの接触操作には、ユーザの指によるタッチパネル12上への直接的なタッチ操作又はスライド操作、及び、ポインティングデバイスなどのデバイスを介して実行される間接的なタッチパネル12上へのタッチ操作又はスライド操作の他に、タッチパネル12に直接的及び間接的にタッチ操作又はスライド操作をせずに、タッチパネル12上への擬似的なタッチ操作又はスライド操作も含まれる。
【0076】
例えば、擬似的なタッチ操作又はスライド操作とは、
(1)赤外線などの光ビームをタッチパネル面と平行に当該タッチパネル面に近接した位置で照射し、当該タッチパネル12の一端部に縦横方向に一定間隔に形成される複数の照射部と、各照射部と対を構成し、当該各照射部に対向するタッチパネルの他端部に設けられ、各照射された光ビームをそれぞれ受信する複数のセンサとによって、タッチパネル12に接触又は近接した際に光ビームが遮断された縦横の座標を検出し、当該検出した座標に基づいて認識するタッチ操作又はスライド操作、及び、
(2)タッチパネル12の表示面を撮像するカメラを設け、当該カメラによってユーザがタッチパネル12に接触又は近接した位置座標を検出し、当該検出した位置座標に基づいて認識するタッチ操作又はスライド操作、
などタッチパネル12に実際に接触することによって又は近接させて検出することによって認識するタッチ操作又はスライド操作を含む。
【0077】
また、接触検出領域に同時に複数の接触位置が検出される場合には、いずれか1つの接触位置(先に検出された接触位置)を用いるようにしてもよいし、複数の接触位置を同時に処理してもよい。
【0078】
なお、接触検出領域に複数の判定領域が存在する場合には、各判定領域において、1つの接触位置(先に検出された接触位置)を用いるようにしてもよい。また、判定領域とは、取得した接触位置のうち、移動制御など処理部200で処理するための接触位置を予め特定する接触検出領域上の範囲である。
【0079】
特に、本実施形態では、
図4(A)及び(B)に示す表示画面(ディスプレイ)12が、液晶ディスプレイと、プレーヤ(操作者、ユーザ)の接触位置を検出するためのタッチパネルとが積層されたタッチパネルディスプレイとなっている。すなわち、本実施形態では、表示画面12が入力部260として機能するとともに表示部290としても機能する(以下、「タッチパネル」ともいう。)。
【0080】
なお、表示画面12への接触操作は、指先を用いて行うようにしてもよいし、タッチペンなどの入力機器を用いて行うようにしてもよい。
【0081】
また、入力部260は、指示位置以外の操作情報(操作信号)を入力可能なボタンやレバー、キーボード、ステアリング、マイク、加速度センサなどを備えていてもよい。
【0082】
記憶部270は、処理部200や通信部296などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。そして、本実施形態の記憶部270は、ワーク領域として使用される主記憶部271と、最終的な表示画像等が記憶される画像バッファ272とを含む。なお、これらの一部を省略する構成としてもよい。
【0083】
特に、本実施形態の記憶部270には、タッチ検出処理部211において取得された基準位置及び指示位置、及び、各種のマーカの画像及び各種の判定処理において用いる条件を示す条件情報などを主記憶部271に記憶することができる。
【0084】
情報記憶媒体280(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。
【0085】
また、情報記憶媒体280には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。なお、処理部200は、後述するように、情報記憶媒体280に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。
【0086】
表示部290は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネルディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。
【0087】
特に、本実施形態では表示部290は、タッチパネルディスプレイを用いることによりプレーヤがゲーム操作を行う入力部260としても機能する。ここでタッチパネルとして、例えば抵抗膜方式(4線式、5線式)、静電容量方式、電磁誘導方式、超音波表面弾性波方式、赤外線走査方式などのタッチパネルを用いることができる。
【0088】
音出力部292は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0089】
通信部296は、外部(例えばホスト装置や他の端末装置)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0090】
なお、端末装置20は、サーバ装置10が有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体280や記憶部270に記憶してもよい。このようにプログラムやデータを受信して端末装置20を機能させる場合も本発明の範囲内に含めることができる。
【0091】
処理部200(プロセッサ)は、入力部260からの入力データやプログラムなどに基づいて、サーバ装置10と連動して、ゲーム処理、画像生成処理、或いは音生成処理など
の処理を行う。
【0092】
特に、本実施形態においては、ゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、プレーヤオブジェクト、敵オブジェクトなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などが含まれる。
【0093】
また、処理部200は、記憶部270をワーク領域として各種処理を行う。処理部200の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0094】
特に、本実施形態の処理部200は、オブジェクト空間設定部210と、タッチ検出処理部211と、仮想コントローラ制御部212と、操作制御部213と、移動処理部214と、ゲーム演算部215と、仮想カメラ制御部216と、描画部220と、音処理部230とを含む。また、これらの一部を省略する構成としてもよい。
【0095】
なお、例えば、本実施形態のオブジェクト空間設定部210は、本発明のオブジェクト制御手段を構成し、本実施形態のタッチ検出処理部211は、本発明のタッチ操作入力検出処理手段を構成する。また、本実施形態の仮想コントローラ制御部212は、操作入力オブジェクト表示制御手段を構成する。また、例えば、本実施形態の操作制御部213は、本発明の移動方向検出手段及び選択手段を構成し、仮想カメラ制御部216は、本発明の仮想カメラ制御手段及び干渉状況判定処理手段を構成する。
【0096】
オブジェクト空間設定部210は、オブジェクト(プレーヤオブジェクト、移動体、敵オブジェクト)、移動経路、建物、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(スプライト、ビルボード、ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。具体的にはオブジェクト空間設定部210は、オブジェクト(モデルオブジェクト)の位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y)或いは(X、Y、Z)にその回転角度(X、Y軸回りでの回転角度)或いは(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0097】
ここで、オブジェクト空間とは、いわゆる仮想2次元空間、仮想3次元空間の両方を含む。2次元空間とは、例えば2次元座標(X,Y)においてオブジェクトが配置される空間であり、3次元空間とは、例えば3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0098】
そしてオブジェクト空間を2次元空間とした場合には、複数のオブジェクトそれぞれについて設定された優先順位に基づいてオブジェクトを配置する。例えば、奥側にあるように見せたいオブジェクト(スプライト)から順にオブジェクトを配置し、手前側にあるように見せたいオブジェクトを重ねて配置する処理を行うことができる。
【0099】
また、描画サイズが大きなオブジェクトを画像の下方に配置し、描画サイズが小さなオブジェクトを画像の上方に配置すれば、画面の上方に対応するオブジェクト空間が奥側にあるように見せることができ、画面の下方に対応するオブジェクト空間が手前側にあるように見せることができる。
【0100】
また、オブジェクト空間を3次元空間とした場合には、ワールド座標系にオブジェクトを配置する。
【0101】
タッチ検出処理部211は、プレーヤが入力部260から入力した入力情報の認識処理を行う。具体的には、本実施形態のタッチ検出処理部211は、入力部260によって入力された指示位置を取得する。
【0102】
例えば、タッチ検出処理部211は、プレーヤの接触操作(以下、「タッチ操作」ともいう。)を検出する接触検出領域(タッチパネル)における接触位置(2次元の接触位置座標)を指示位置として取得する。すなわち、タッチ検出処理部211は、プレーヤが指でタッチパネル12にタッチ(以下、「タッチ操作入力」という。)し、そのまま指を移動して最後にタッチパネル12から離す操作(以下、「スライド操作」という。)を行う期間に相当する接触操作期間中(スライド操作期間中)における接触位置(指示位置)を取得する。
【0103】
特に、タッチ検出処理部211は、
(1)画面へのタッチ操作入力されていない状態(以下、「無接触状態」という。)からタッチ操作入力された状態(以下、「接触状態」という。)への第1の変化(以下、「状態変化」という。)を検出するとともに、当該状態変化が実行された検出位置(以下、「基準位置」ともいう。)を検出する第1の検出処理、及び、
(2)第1の変化の検出後であって当該第1の変化を検出した際(すなわち、無接触状態から接触状態に状態変化した際)のタッチ操作入力が継続されて(すなわち、接触状態が継続されて)スライド操作による入力(以下、「スライド操作入力」という。)が実行されている場合に、当該スライド操作入力の変化(すなわち、指示位置及び当該指示位置の変化)を第2の変化として検出する第2の検出処理、
(3)スライド操作入力中に、画面へのタッチ操作入力がされていない状態(すなわち、スライド操作入力が終了して無接触状態となった場合)を検出する第3の検出処理、
を実行する。
【0104】
また、タッチ検出処理部211は、所定の周期毎に入力された指示位置を取得する。具体的には、所定の周期とはフレーム毎、例えば、1/60秒〜1/120秒程度とすることができる。
【0105】
なお、本実施形態においては、「基準位置」及び「指示位置」としては、上述のようにタッチ操作入力やスライド操作入力によって検出されたタッチパネル12上の位置だけなく、検出位置から所定の距離離れた位置又はタッチパネル12の隅などの所定のエリアに形成されたエリアなどの特定のタッチパネル12上の位置に関連した所定位置も含む。
【0106】
仮想コントローラ制御部212は、タッチパネル(表示画面)上に、タッチ操作入力及びスライド操作入力をした際に、最上位層(すなわち、ゲームやその他の画像に重畳させてその最上位)に仮想的な操作コントローラを表示し、タッチ操作入力及びスライド操作入力のユーザへのサポートを行うとともに、当該表示された操作コントローラへの操作を検出し、検出した結果を操作制御部213などの他の部材に出力する。
【0107】
特に、仮想コントローラ制御部212は、
(1)スライド操作入力の起点となる基準位置に起点操作入力オブジェクトマーカ(以下、「起点マーカ」という。)を表示させる表示制御、
(2)基準位置を基準に指示位置の変化に応じてスライド操作入力中のスライド操作方向を視認させるためのスライド操作入力オブジェクトマーカ(以下、「スライド操作マーカ」という。)を表示させる表示制御、
(3)スライド操作入力中の指示位置に、スライド操作マーカとは異なる第2の操作入力オブジェクトマーカ(以下、「指示位置マーカ」という。)を表示させる表示制御、
(4)ユーザの指示(タッチ操作入力及びスライド操作入力)に基づいて表示画面内に配置された所定の操作コマンドを表示する表示制御、及び、
(5)スライド操作入力中に表示された起点マーカをスライド操作に従って追従させ、当該追従している起点マーカを表示する追従表示制御、
を実行する。
【0108】
また、仮想コントローラ制御部212は、起点マーカ、スライド操作マーカ及び指示位置マーカが表示されるタッチパネル12上の表示エリアと、操作対象オブジェクトやその他のゲームを実行する際に表示されるコンテンツ(以下、「表示コンテンツ」ともいう、)が表示される表示エリアとの干渉状況を判定する干渉状況判定処理を実行し、当該干渉状況が発生する場合には、各マーカの表示を制御して表示コンテンツの視認性を確保する非干渉処理を実行する。
【0109】
操作制御部213は、タッチ操作入力及びスライド操作入力に基づいて、オブジェクト空間に配置されたプレーヤキャラクタなどの操作対象オブジェクトを制御する。特に、操作制御部213は、仮想コントローラに従って入力された操作指示に基づいて操作対象オブジェクトを制御する。
【0110】
具体的には、操作制御部213は、
(1)起点マーカが表示されている基準位置を基準に、スライド操作入力によって変化する指示位置に伴って所与の画面内に表示されている操作対象オブジェクト(すなわち、オブジェクト空間に配置されている操作対象オブジェクト)の操作制御、
(2)タッチ操作入力された操作コマンドに基づいて、操作対象オブジェクトその他のオブジェクトやゲームの進行に係わる操作制御、及び、
(3)スライド操作入力における移動量や移動速度など、スライド操作入力における起点位置から指示位置までの長さを示す操作量及び指示位置に基づく入力速度又は入力ベクトルを示すスライド操作入力における単位時間当たりの変化(すなわち、スライド操作入力における操作量(以下、「スライド操作量」ともいう。))を補正する補正処理、
を実行する。
【0111】
なお、「操作対象オブジェクト」には、ゲームなどにおけるプレーヤキャラクタや敵キャラクタなどの重要なキャラクタやオブジェクト空間内でユーザ操作の対象となる各種のオブジェクトが含まれるとともに、所定の画像や動画における重要な表示又はキーワードなどの重要なコンテンツ及び画像を形成するための各種のオブジェクトが含まれる。
【0112】
また、この「操作対象オブジェクト」には、直接的に操作するオブジェクトの他に、例えば、プレーヤキャラクタに装備されるアイテムなど、直接的に操作されるオブジェクトの動作に基づいて制御される間接的に操作されるオブジェクトも含まれる。
【0113】
さらに、上記の操作対象オブジェクト以外のオブジェクト空間に配置されるオブジェクトとしては、例えば、移動経路、建物、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクトが含まれる。
【0114】
移動処理部214は、オブジェクト空間内におけるオブジェクト(特に、キャラクタオブジェクト、移動体オブジェクト等の操作対象オブジェクト)の移動演算を行う。すなわち、移動処理部214は、操作制御部213の制御の下、仮想コントローラを含み、入力部260によりプレーヤが入力した入力データ又はプログラム(移動アルゴリズム)や各種データ(モーションデータ)などに基づいて、移動体オブジェクトをオブジェクト空間内で移動させ、又は、移動体オブジェクトの動作(モーション、アニメーション)を制御するための処理を行う。
【0115】
具体的には、本実施形態の移動処理部214は、オブジェクトの移動情報(移動方向、移動量、移動速度、位置、回転角度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム毎に順次求めるシミュレーション処理を行う。ここでフレームとは、オブジェクトの移動処理、動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。そして、本実施形態では、フレームレートは、固定としてもよいし、処理負荷に応じて可変としてもよい。
【0116】
特に、本実施形態の移動処理部214は、操作制御部213の制御の下、仮想コントローラによって入力されたスライド操作量(補正量も含む)、スライド操作入力によって定まるスライド操作の方向及び操作コマンドに基づいて、オブジェクトを移動させる処理を行う。
【0117】
具体的には、移動処理部214は、
(1)スライド操作入力における操作方向に操作対象オブジェクトを移動させる処理、
(2)スライド操作入力におけるスライド操作量に応じて操作対象オブジェクトを移動させる処理、及び、
(3)操作コマンドに応じて操作対象オブジェクトを移動させる処理、
を実行する。
【0118】
なお、移動処理部214は、3次元のオブジェクト空間において入力方向に基づいてオブジェクトを移動させる処理を行ってもよい。例えば、予め、入力方向毎に移動方向を対応づけ、入力方向に対応する移動方向にオブジェクトを移動させる。
【0119】
ゲーム演算部215は、種々のゲーム演算処理を行う。例えば、ゲーム演算部215は、マップに基づくオブジェクト空間の形成、RPGの場合には、ユーザの操作に応じて予め設定されたシナリオに基づくゲームの進行、プレーヤオブジェクト(操作対象オブジェクト)と敵オブジェクトやその他のオブジェクト(操作非対象オブジェクト)との対戦、及び、当該対戦時のパラメータ管理などのゲームを実行する上で必要な演算処理を行う。
【0120】
なお、ゲーム演算部215は、サーバ装置10と連動して実行されるが、その一部又は全部がサーバ装置10に形成されていてもよい。
【0121】
仮想カメラ制御部216は、所与の視点から見える画像であって、奥行きがあるように見える画像を生成する。この場合に、仮想カメラ制御部が、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
【0122】
例えば、仮想カメラによりオブジェクト(例えば、キャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。
【0123】
この場合には、移動処理部214で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。また、この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【0124】
なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上
記の制御処理が行われる。
【0125】
一方、仮想カメラ制御部は、上述のように、起点マーカ、スライド操作マーカ及び指示位置マーカが表示されるタッチパネル12上の表示エリアや操作エリアと、操作対象オブジェクトやその他のゲームを実行する際に表示される表示コンテンツが表示される表示エリアとの干渉が発生する場合には、仮想カメラの位置、向き、及び、画角の少なくともいずれか一方を制御し、操作対象オブジェクトの視認性を確保するカメラ制御を実行する。
【0126】
描画部220は、処理部200で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部(ディスプレイ)290に出力する。描画部220が生成する画像は、いわゆる2次元画像であってもよいし、いわゆる3次元画像であってもよい。特に、描画部220は、オブジェクト空間における仮想カメラから見える画像であって、画面上に表示する画像を生成する。
【0127】
ここで2次元画像を生成する場合には、描画部220は、設定された優先度が低いオブジェクトから順に描画して、オブジェクト同士が重なる場合には、優先度の高いオブジェクトを上書きして描画する。
【0128】
また、3次元画像を生成する場合には、本実施形態の描画部220は、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理が行われる。なお、頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0129】
また、頂点処理では、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(フラグメント処理)が行われる。
【0130】
ピクセル処理では、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ272(フレームバッファ、ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。
【0131】
これにより、オブジェクト空間内に設定された仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0132】
なお、描画部220が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウ
ェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0133】
そして、描画部220は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0134】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理を行う。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)を記憶部270に記憶する。
【0135】
テクスチャマッピングでは、記憶部270のテクスチャ記憶部に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングする処理を行う。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部270のテクスチャ記憶部からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出し、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0136】
なお、本実施形態では、オブジェクトを描画する際に、所与のテクスチャをマッピングする処理を行うようにしてもよい。この場合には、マッピングされるテクスチャの色分布(テクセルパターン)を動的に変化させることができる。
【0137】
また、この場合において、色分布(ピクセルパターン)が異なるテクスチャを動的に生成してもよいし、複数の色分布が異なるテクスチャを予め用意しておき、使用するテクスチャを動的に切り替えるようにしてもよい。またオブジェクト単位でテクスチャの色分布を変化させてもよい。
【0138】
隠面消去処理では、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行う。すなわち、オブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照するとともに、当該参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0139】
αブレンディング(α合成)では、描画部220は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)を行う。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0140】
特に、本実施形態での描画部220は、接触検出領域に対応する表示領域に表示させる画像を生成してもよい。表示領域に表示させる画像とは、例えばオブジェクトを含む画像でもよい。
【0141】
音処理部230は、処理部200で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部292に出力する。
【0142】
なお、本実施形態の端末装置は、1人のプレーヤのみがプレーできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレーできるマルチプレーヤモードも備えるシステムにしてもよい。
【0143】
また、複数のプレーヤがプレーする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末装置20を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末装置20又はサーバ装置10を用いて分散処理により生成してもよい。
【0144】
[4]本実施形態の手法
[4.1]仮想コントローラの表示制御
はじめに、本実施形態の手法においては、その基準となる仮想コントローラの表示制御について説明する。
【0145】
[4.1.1]概要
まず、
図5を用いて本実施形態の手法(仮想コントローラの表示制御)の概要について説明する。なお、
図5は、本実施形態の仮想コントローラの表示制御について説明するための図である。
【0146】
本実施形態の端末装置20は、所与の画面が表示されるタッチパネル12へのスライド操作入力を受け付け、受け付けたスライド操作入力を視覚的にユーザに伝達し、操作を的確に行う際に必要な操作コマンド用のマーカやスライド操作マーカを含む仮想コントローラ(すなわち、操作入力オブジェクト)を、画面(タッチパネル12)上に表示し、ユーザの操作性を向上させることができるようになっている。
【0147】
特に、端末装置20は、プレーヤキャラクタ、プレーヤキャラクタに味方する味方キャラクタ、及び、プレーヤキャラクタと戦闘相手となる敵キャラクタなど、ゲームを実行する上(すなわち、コンテンツを表示する上)で重要な表示コンテンツの表示エリア(以下、「コンテンツ表示エリア」という。)DCAと、仮想コントローラが表示されている表示エリア(以下、「コントローラ表示エリア」という。)CRAと、がタッチパネル12の表示上、干渉する場合には、表示コンテンツの視認性を確保するため、仮想コントローラを透明化する透明化処理、当該仮想コントローラを非表示化する非表示処理、又は、当該仮想コントローラを変形する変形処理などの非干渉処理を実行し、仮想コントローラの表示制御を行うようになっている。
【0148】
このようにタッチパネル上に仮想コントローラを表示する場合には、通常、タッチ操作入力やスライド操作入力が実行されたタッチパネル12上の位置に表示されることになる。したがって、
図5(A)に示すように、当該仮想コントローラが表示されたエリアCRAに、プレーヤキャラクタPC、及び、プレーヤキャラクタと戦闘相手となる敵キャラクタECなど、ゲームを実行する上で重要な表示コンテンツ上に表示されることになると、プレーヤキャラクタPCなどの動きを視認すること、又は、操作しているプレーヤキャラクタPCの周辺の状況を視認することなどができなくなり、操作性を向上させる仮想コントローラの表示がゲームの進行を妨げ、又は、ユーザに不利益を享受させることになる場合もある。なお、
図5(A)は、敵キャラクタECが仮想コントローラと干渉していることを例示している。
【0149】
そこで、本実施形態の端末装置20は、
図5(B)に示すように、コントローラ表示エリアCRAと、コンテンツ表示エリアDCAとの干渉状況を判定する干渉状況判定処理を実行し、当該干渉状況が発生する場合には、スライド操作マーカの表示を制御して表示コンテンツの視認性を確保する非干渉処理(
図5(B)は透明化処理)を行うようになっている。
【0150】
特に、端末装置20は、
(1)無接触状態から接触状態への第1の変化を検出する第1の検出処理を行うとともに、当該第1の変化の検出後であって当該第1の変化を検出した際のタッチ操作入力が継続されてスライド操作入力されている場合に、当該スライド操作入力の変化を第2の変化として検出し、
(2)第1の変化が検出された場合には、検出された基準位置(又はそれに関連付けられた所定位置)に仮想コントローラの一部を構成する起点マーカを表示する処理を実行し、第2の変化の検出に伴って、起点マーカの表示位置と、スライド操作入力によって変化するタッチ操作入力の現在の指示位置(以下、「現指示位置(又は、それに関連付けられた所定位置)という。)と、の間にスライド操作方向を視認させるための仮想コントローラの一部を構成するスライド操作マーカを表示制御する処理を実行し、
(3)スライド操作マーカの表示エリアと、表示コンテンツの表示エリアと、の干渉状況を判定し、
(4)干渉状況が発生する場合には、仮想コントローラ(具体的には、スライド操作マーカ)の表示を制御して表示コンテンツの視認性を確保する非干渉処理を行う、
構成を有している。
【0151】
また、この構成により、端末装置20は、表示コンテンツの視認性を確保する制御を行うことができるので、スライド操作の表示が制限されたとしても、ゲームの進行などの表示内容を的確に把握すること、及び、それによって適切な操作を行うことができるようになっている。
【0152】
なお、「非干渉処理」には、スライド操作入力オブジェクトマーカの一部又は全部を透明化し、又は、半透明化する透明化処理、一部又は全体を非表示化する非表示処理及び一部又は全部の形状を変形する変形処理などが含まれる。
【0153】
また、本実施形態においては、起点マーカやスライド操作マーカを表示する際に、無接触状態を検出した際の位置である基準位置を用いているが、当該基準位置に代えて当該基準位置に関連付けられた所定位置、例えば、検出位置から所定の距離離れた位置又はタッチパネルの隅などの所定のエリアに形成されたエリアなど特定の表示位置を基準位置として用いてもよい。
【0154】
[4.1.2]仮想コントローラ
次に、
図6〜
図8を用いて本実施形態に用いる仮想コントローラについて説明する。なお、
図6は、本実施形態に用いる起点マーカ、スライド操作マーカを含む仮想コントローラの一例であり、
図7は、本実施形態における仮想コントローラのリセットを説明するための図である。また、
図8は、本実施形態における仮想コントローラの起点マーカの追従について説明するための図である。
【0155】
(仮想コントローラの表示処理)
仮想コントローラ制御部212は、
図6(A)に示すように、第1の変化(すなわち、無接触状態から接触状態への状態変化)が検出された場合には、検出位置(基準位置)にスライド操作入力の起点となる起点マーカを表示する処理を実行する。
【0156】
また、仮想コントローラ制御部212は、
図6(B)に示すように、第2の変化(すなわち、スライド操作入力の指示位置の変化)の検出に伴って、起点マーカの表示位置と、スライド操作入力によって変化するタッチ操作入力の現在の指示位置と、の間にスライド操作方向を視認させるためのスライド操作マーカを表示制御する処理を実行する。
【0157】
そして、仮想コントローラ制御部212は、スライド操作入力中においては、当該スライド操作入力に応じて(具体的には、変化する指示位置に応じて)スライド操作マーカを
表示制御する。すなわち、仮想コントローラ制御部212は、スライド操作入力中においては、スライド操作入力によってなぞったタッチパネル12上の軌跡にスライド操作マーカを表示制御する。
【0158】
なお、本実施形態においては、長時間にスライド操作入力が継続していると、タッチパネル12上がスライド操作マーカで埋まってしまうため、スライド操作中であっても、表示から所定の時間経過後のスライド操作マーカの部分を画面から順次削除してもよいし、後述するように、起点マーカをスライド操作入力の現指示位置に追従させてもよい。
【0159】
一方、仮想コントローラ制御部212は、
図7(A)及び(B)に示すように、スライド操作入力が終了して無接触状態が検出された場合には、起点マーカ及びスライド操作マーカを含む仮想コントローラの表示を中止して画面から削除する(リセットする)。このとき、仮想コントローラ制御部212は、主記憶部271に記憶されている基準位置をクリアする。
【0160】
(起点マーカの追従処理)
仮想コントローラ制御部212は、所与の条件に基づき、操作入力マーカがスライド操作入力によって変化するタッチ操作入力の現在位置に向けて、起点マーカを追従移動させてもよい。
【0161】
すなわち、この場合には、仮想コントローラ制御部212は、
図8(A)及び(B)に示すように、スライド操作入力中に、基準位置と現指示位置との位置的変位が所与の条件を具備した場合に、起点マーカ(すなわち、タッチ操作入力が検出されたときの基準位置)の移動を開始させるとともに、当該所与の条件を具備した後に検出される現指示位置に応じて当該起点マーカ(すなわち、基準位置)を移動させる。
【0162】
例えば、仮想コントローラ制御部212は、基準位置と検出されたスライド操作の位置とが予め定められた距離以上、又は、スライド操作入力の操作入力する際の速度若しくは加速度が予め定められた値以上になった場合に、起点マーカ(すなわち、タッチ操作入力が検出されたときの基準位置)の移動を開始させる。
【0163】
特に、タッチ検出処理部211によってスライド操作入力の起点としての基準位置と現指示位置に基づいて、スライド操作入力のスライド操作方向が検出されるので、又は、当該タッチ検出処理部211によって追従している起点マーカの位置(以下、「基準位置」ともいう。)と現指示位置と、に基づいて、スライド操作入力方向が検出されるので、仮想コントローラ制御部212は、当該検出されたスライド操作入力方向に沿って起点マーカ(すなわち、起点マーカのタッチパネル12上の位置)を移動させる。
【0164】
また、仮想コントローラ制御部212は、基準位置と現指示位置との位置関係(離隔距離)、及び、移動速度の少なくともいずれか一方を維持しつつ、起点マーカを移動させる。そして、仮想コントローラ制御部212は、仮想コントローラの表示を中止する場合には、当然、起点マーカの追従も中止する。
【0165】
なお、例えば、スライド操作入力の基準位置(無接触状態から接触状態を検出した際のタッチ操作入力を検出した位置)とスライド操作入力を行っている現指示位置とが表示画面上遠い場合であって、そのスライド操作の操作方向を切り換えた場合に、当該操作制御の起点との関係においてスライド方向が検出されるので、スライド操作入力に基づく操作制御の起点とスライド操作を切り換えた位置が遠い場合には、当該切り換えた操作方向を判断するまでのスライド操作を行う距離が長くなり、かつ、当該判断するまでの時間も長くなる。
【0166】
したがって、上述のように、起点マーカを追従移動させる処理を実行することによって、スライド操作入力中にスライド操作する方向を切り換えた場合には、当該切り換えた際の操作方向を判断するまでの操作距離及び当該判断時間を短くすることができるので、リアルタイムに操作を行うこと、又は、瞬時の判断の下に操作を行うことが重要な処理に対するスライド操作であっても的確な入力を行うことができるようになっている。
【0167】
[4.1.3]干渉状況判定処理
次に、本実施形態において実行される干渉状況判定処理について説明する。
【0168】
仮想コントローラ制御部212は、起点マーカ、スライド操作マーカ及び指示位置マーカが表示されるタッチパネル12上のコントローラ表示エリアと、操作対象オブジェクトなどの表示コンテンツとが表示されるコンテンツ表示エリアとの干渉状況を判定する干渉状況判定処理を実行する。
【0169】
特に、本実施形態においては、表示コンテンツとしては、プレーヤキャラクタ、味方キャラクタ及び敵キャラクタなどのキャラクタオブジェクト、操作コマンドを表示するための表示用オブジェクト、自動車、船又は武器などのアイテム用オブジェクトが含まれる。
【0170】
また、コンテンツ表示エリアは、対象となるオブジェクトが表示される領域だけなく、当該オブジェクトが仮想コントローラの操作によって移動することが予測される範囲も含む。
【0171】
そして、仮想コントローラ制御部212は、
図5(A)及び(B)に示すように、コントローラ表示エリアの一部又は全部がコンテンツ表示エリアの一部又は全部に重畳してタッチパネル12上に表示されるか否かを判定することによって干渉状況を判定する。
【0172】
具体的には、仮想コントローラ制御部212は、仮想カメラ制御部216から、操作オブジェクトのタッチパネル12の画面上の表示座標を示すコンテンツ表示エリアの情報を取得し、スライド操作入力に基づいて、起点マーカ、スライド操作マーカ及び指示位置マーカが表示されるタッチパネル12上の座標を示すコントローラ表示エリアと比較することによって干渉状況を判定する。
【0173】
特に、仮想コントローラ制御部212は、仮想カメラから見える3次元のオブジェクト空間の画像を生成する際に、仮想カメラ制御部216から出力された情報であって、操作オブジェクト(当該操作オブジェクトの移動が予測される範囲を含む)におけるオブジェクト空間の座標(例えば、3次元空間座標)からタッチパネル12上の座標(すなわち、2次元座標)に座標変換された際の座標領域の情報を、コンテンツ表示エリアの情報として、取得する。
【0174】
そして、仮想コントローラ制御部212は、取得したコンテンツ表示エリアの情報と、起点マーカ、スライド操作マーカ及び指示位置マーカが表示されるタッチパネル12上の座標を示すコントローラ表示エリアと、を比較し、コントローラ表示エリアとの一部又は全部の座標領域がコンテンツ表示エリアの情報の一部又は全部の座標領域に重なっている場合には、干渉状況が発生していると判定する。
【0175】
なお、
図5(A)及び(B)には、仮想コントローラ制御部212は干渉状況が発生していると判定した場合であって、表示される仮想コントローラの表示エリア(CRA)がプレーヤキャラクタのコンテンツ表示エリア(DCA)に重畳していることが示されている。
【0176】
また、仮想コントローラ制御部212は、コントローラ表示エリアの一部又は全部がコンテンツ表示エリアの一部又は全部に重畳した場合には、非干渉処理に用いるために、重畳している領域も検出してもよい。
【0177】
さらに、本実施形態においては、仮想コントローラ制御部212は、コントローラ表示エリアとの一部又は全部の座標がコンテンツ表示エリアの情報の一部又は全部に重なっている場合には、干渉状況が発生していると判定しているが、干渉状況の判定に、コントローラ表示エリアの一部の座標領域とするか全部の座標領域とするか、又は、コンテンツ表示エリア一部の座標領域とするか全部の座標領域とするかは、ゲームの状況やその他の設定において定められる。
【0178】
一方、仮想コントローラ制御部212は、表示コンテンツの属性に基づいて干渉状況の判定の対象である表示コンテンツか否かを判定し、当該干渉状況の対象である表示コンテンツの表示エリアと、スライド操作入力オブジェクトマーカの表示エリアとの干渉状況を判定してもよい。
【0179】
具体的には、仮想コントローラ制御部212は、オブジェクト空間に配置される各オブジェクトであって画面表示されているエリアに存在するオブジェクトの属性を示す属性情報を取得し、干渉状況判定処理を実行すべき属性情報を有するオブジェクトが当該エリアに存在する場合には、仮想コントローラの表示エリアとの干渉状況判定処理を実行する。
【0180】
例えば、干渉状況判定処理を実行する属性としては、プレーヤキャラクタ、味方キャラクタ及び敵キャラクタであり、干渉状況判定処理を実行しない属性としては、アイテム、背景や景色を構成するオブジェクトである。
【0181】
また、仮想コントローラ制御部212は、表示コンテンツの種類に応じて、干渉状況判定処理を実行するか否かを判断し、当該干渉状況判定処理を実行すると判断した場合に、スライド操作マーカの表示エリア(コントローラ表示エリア)とコンテンツ表示エリアとの干渉状況を判定してもよい。
【0182】
例えば、ゲーム空間(オブジェクト空間)に単に配置される背景を構成するオブジェクト、又は、静止画像や動画像における単なる背景部分などのコンテンツの種別については干渉状況判定処理を実行せずに、ゲームの中心になるプレーヤキャラクタや敵キャラクタなどの重要なキャラクタ、又は、所定の画像や動画における重要な表示又はキーワードなどの重要なコンテンツなどのコンテンツの種別については干渉状況判定処理を実行する。
【0183】
したがって、本実施形態においては、重要な表示コンテンツについてはスライド操作マーカを透明化又は非表示化してまでも表示する一方、重要でない表示コンテンツについてはスライド操作マーカを優先的に表示させることによって表示コンテンツの視認性の確保とスライド操作におけるユーザへのサポートの双方を両立させることができるようになっている。
【0184】
さらに、仮想コントローラ制御部212は、干渉状況判定処理を実行して干渉状況が発生する場合には、表示コンテンツの種類に応じてスライド操作マーカの表示態様を変化させる非干渉処理を実行してもよい。
【0185】
例えば、非干渉処理として、ゲーム空間(オブジェクト空間)に単に配置される背景を構成するオブジェクト、又は、静止画像や動画像における単なる背景部分などのコンテンツの種別についてはスライド操作入力オブジェクトマーカを半透明化し、その一部を非表
示にし、又は、簡易な形状に変形し、ゲームの中心になるプレーヤキャラクタや敵キャラクタなどの重要なキャラクタ、又は、所定の画像や動画における重要な表示又はキーワードなどの重要なコンテンツなどのコンテンツの種別については、スライド操作マーカを完全に透明化し、その全体を非表示にし、又は、確実に表示コンテンツの視認性を確保するための形状に変形する。
【0186】
すなわち、本実施形態においては、重要な表示コンテンツについてはスライド操作入力オブジェクトマーカの表示よりも優先し、重要でない表示コンテンツについてはスライド操作入力オブジェクトマーカの表示も可能にすることによって表示コンテンツの視認性の確保とスライド操作におけるユーザへのサポートの双方を両立させることができるようになっている。
【0187】
他方、仮想コントローラ制御部212は、コントローラ表示エリアとコンテンツ表示エリアとが干渉していないと判定した場合には、非干渉処理を実行せずに、起点マーカ及びスライド操作マーカをタッチ操作入力及びスライド操作入力にしたがってタッチパネル12上に表示する。
【0188】
また、仮想コントローラ制御部212は、スライド操作マーカが表示される画面上の領域に応じて、干渉状況判定処理の基準を変化させてもよい。
【0189】
例えば、右利きのユーザによってスライド操作を行う場合に、画面中央から右下の領域内での操作が主になるため、仮想コントローラ制御部212は、当該画面中央から右下の領域内でのスライド操作においては干渉状況判定処理を実行し、それ以外の領域、すなわち、画面中央から右上、左上及び左下の領域内では干渉状況判定処理を実行しないとして干渉状況判定処理の基準を変化させてもよい。
【0190】
特に、本実施形態においては、干渉状況判定処理を実行する画面上の領域、又は、当該干渉状況判定処理を実行しない画面上の領域については、ユーザによって予め設定されてもよいし、仮想コントローラ制御部212が、過去のスライド操作入力に基づいて(例えば、過去100回程度のスライド操作入力に基づいて)所定の割合以上(例えば、90%以上)使用している画面上の領域について干渉状況判定処理を実行する領域と設定し、又は、所定の割合以下(例えば、5%以下)の使用しかしていない画面上の領域については干渉状況判定処理を実行しない領域と設定してもよい。
【0191】
さらに、仮想コントローラ制御部212は、上記に加えて、又は、上記に代えて、表示コンテンツの重要性に応じて、干渉状況判定処理の基準を変化させてもよい。
【0192】
例えば、プレーヤキャラクタや敵キャラクタなどの重要なオブジェクト以外の建物や道路を構成するオブジェクトについては、干渉状況判定処理を行っても却って表示処理が煩雑になる場合も多いので、仮想コントローラ制御部212は、プレーヤキャラクタや敵キャラクタなどの重要な特定のオブジェクトの属性又は種類については干渉状況判定処理を実行し、それ以外の属性又は種類のオブジェクトについては、干渉状況判定処理を実行しないとして干渉状況判定処理の基準を変化させてもよい。
【0193】
特に、本実施形態においては、干渉状況判定処理を実行する属性又は種類については、ユーザによって予め設定されてもよいし、仮想コントローラ制御部212が、ゲーム種別などやゲーム状況(ステージやレベルなど)に応じて、干渉状況判定処理を実行する属性又は種類、当該干渉状況判定処理を実行しない属性又は種類、又は、その双方を自動的に設定してもよい。
【0194】
なお、仮想コントローラ制御部212は、スライド操作入力によって変化するタッチ操作入力の現在位置に向けて、起点マーカを追従移動させる場合に、コントローラ表示エリアとして追従している起点マーカの表示エリアとコンテンツ表示エリアとの干渉状況を判定する干渉状況判定処理を実行してもよい。
【0195】
この場合においては、スライド操作における起点が当該スライド操作に従って追従した場合であっても、ゲームの進行などの表示内容を的確に把握すること、及び、それによって適切な操作を行うことができるようになっている。
【0196】
なお、ゲーム演算部215は、仮想コントローラ制御部212と連動し、干渉状況が発生する場合には、プレーヤキャラクタなどの操作入力マーカの操作の対象となる操作対象オブジェクトについて、敵キャラクタや障害物のオブジェクトなどのオブジェクト空間の他のオブジェクトとの当たり判定を行う際に用いる当たり判定エリアの大きさ、及び、パラメータの少なくともいずれか一方の値を変更してもよい。
【0197】
すなわち、本実施形態においては、ゲームにおけるプレーヤキャラクタなどの操作対象オブジェクトと、敵キャラクタなどのオブジェクト空間に存在する他のオブジェクトと、の攻撃範囲やその他を決定するための当たり判定を行う際に用いられる当たり判定エリアの大きさ、又は、当該当たり判定によって実行される攻撃値や防御値などの当たり判定時に用いられる各種のパラメータを変更することができるようになっている。
【0198】
特に、ゲーム演算部215は、仮想コントローラ制御部212によってスライド操作入力オブジェクトマーカと操作対象オブジェクトである表示コンテンツの表示エリアが干渉していると判定された場合に、
(1)判定エリアを大きくし(具体的には、スライド操作入力オブジェクトマーカの表示エリアを越えた部分まで大きくし)、他のキャラクタとの攻撃が開始されること明確にすること、
(2)判定エリアを小さくし、干渉しない状態よりは視認性や操作性が劣る状況において他のキャラクタとの攻撃の機会を減少させて難しい操作を実行しなければならない状況を回避すること、及び、
(3)難しい操作を実行しなければならない状況での敵キャラクタの攻撃値や防御値の減少又はプレーヤキャラクタにおける攻撃値や防御値の増加など操作オブジェクトに対して有利に機能させること、
などを実行する。
【0199】
[4.1.4]非干渉処理
次に、
図9〜
図12を用いて本実施形態における非干渉処理について説明する。なお、
図10は、本実施形態における非干渉処理として仮想コントローラを透明化する透明化処理について説明する図であり、
図11は、本実施形態における非干渉処理として仮想コントローラを非表示化する非表示化処理について説明する図である。また、
図12は、本実施形態における非干渉処理として仮想コントローラの形状を変形する変形処理について説明する図であり、
図13は、本実施形態における指示位置マーカを有する仮想コントローラの一例である。
【0200】
仮想コントローラ制御部212は、上述の干渉状況判定処理において干渉状況が発生すると判定した場合には、各マーカの表示を制御して表示コンテンツの視認性を確保する非干渉処理を実行する。
【0201】
具体的には、非干渉処理には、
(A)操作入力マーカの一部又は全部を透明化する透明化処理、
(B)当該操作入力マーカの一部又は全体を非表示にする非表示処理、及び、
(C)当該操作入力マーカの一部又は全部の形状を変形する変形処理、
が含まれる。
【0202】
(透明化処理)
仮想コントローラ制御部212は、
図9(A)に示すように、スライド操作マーカの全体を透明化して仮想コントローラを表示し、又は、
図9(B)に示すように、スライド操作マーカにおいてコンテンツ表示エリアと干渉(重畳)している一部のエリアのみ透明化して仮想コントローラを表示する。
【0203】
すなわち、仮想コントローラ制御部212は、全体又は一部の該当する部分を透明化したスライド操作マーカと、透明化されず通常の形態を有する起点マーカと、によって形成される仮想コントローラを表示する。
【0204】
なお、例えば、透明化処理としては、
(1)スライド操作マーカの外縁のみ表示してその他を透明(例えば、仮想コントローラに重畳している表示コンテンツの透過率が100%)又は半透明にすること、
(2)スライド操作マーカの全体又は一部の該当箇所を半透明にすること、
(3)スライド操作マーカの一部の該当箇所を透明(例えば、仮想コントローラに重畳している表示コンテンツの透過率が100%)にすること、
を含む。
【0205】
また、半透明とは、仮想コントローラに重畳している表示コンテンツが視認可能な透過率であれば特に数値には限定されない。
【0206】
(非表示化処理)
仮想コントローラ制御部212は、
図10(A)に示すように、スライド操作マーカの全体を非表示にして仮想コントローラを表示し、又は、
図10(B)に示すように、スライド操作マーカにおいてコンテンツ表示エリアと干渉(重畳)している一部のエリアのみ非表示化して仮想コントローラを表示する。
【0207】
すなわち、仮想コントローラ制御部212は、全体又は一部の該当する部分を非表示化したスライド操作マーカと、非表示されず通常の形態を有する起点マーカと、によって形成される仮想コントローラを表示する。
【0208】
なお、例えば、非表示化処理としては、
(1)スライド操作マーカの全体を非表示にすること
(2)スライド操作マーカの一部の該当箇所を非表示にすること、
を含む。
【0209】
また、
図10(A)に示すように、スライド操作マーカの全体が非表示にされた場合であっても、スライド操作入力しているので、現指示位置と起点マーカによっておおよそのスライド操作入力のイメージをユーザに想起させることができる。
【0210】
(変形処理)
仮想コントローラ制御部212は、
図11(A)に示すように、スライド操作マーカの全体を変形にして仮想コントローラを表示し、又は、
図11(B)に示すように、スライド操作マーカにおいてコンテンツ表示エリアと干渉(重畳)している一部のエリアのみ変形して仮想コントローラを表示する。
【0211】
すなわち、仮想コントローラ制御部212は、全体又は一部の該当する部分の形状を変形したスライド操作マーカと、変形されず通常の形態を有する起点マーカと、によって形成される仮想コントローラを表示する。
【0212】
なお、例えば、変形処理としては、
(1)スライド操作マーカの全体を細く又は小さくするなどその形状を変形すること、
(2)スライド操作マーカの一部の該当箇所の形状を細く又は小さくするなどその形状を変形すること、
(3)スライド操作マーカの一部又は全体を変形せずに、例えば、指示位置が頂点となる三角形状のマーカなど、そもそも、異なるスライド操作マーカなどの別オブジェクトに差し替えること、
が含まれる。
【0213】
また、本実施形態の変形処理は、上記に限らず、起点マーカから指示位置までコンテンツ表示エリアを表示可能に蛇行する形状やその他の表示コンテンツの視認性を確保することが可能な形状であればよい。
【0214】
(その他)
なお、スライド操作マーカを透明化、非表示化又は変形した場合に現指示位置に対する表示が無くなり、接触している位置によってのみ確認することになる場合がある。そこで、その場合であって、現指示位置の表示が必要な場合には、仮想コントローラ制御部212は、当該現指示位置を可視化するため、
図12に示すように、スライド操作入力における現指示位置に、指示位置マーカを表示させてもよい。
【0215】
この場合には、スライド操作マーカの透明化、非表示化又は変形などの表示制御を実行した場合であっても、起点マーカとともに指示位置マーカを表示し、スライド操作入力を可視化することができるので、スライド操作を実行した状況をユーザに視認させることができるようになっている。
【0216】
[4.1.5]その他の処理
次に、本実施形態における仮想コントローラのその他の処理について説明する。
【0217】
仮想コントローラ制御部212は、スライド操作入力によって変化するタッチ操作入力の移動速度、すなわち、スライド操作における操作速度が所与の条件を上回った場合には、スライド操作マーカを非表示としてもよい。
【0218】
すなわち、このような場合には、スライド操作マーカを非表示にして表示コンテンツの視認性を確保する方がユーザサポートの観点からは有益性が高い。また、スライド操作入力によって制御される操作対象オブジェクトの状態を視認すれば移動方向や移動速度について認識可能となり、かつ、このような操作については極短期間であるので、その不利益も生じない。
【0219】
したがって、本実施形態においては、スライド操作の表示が制限されたとしても、ゲームの進行などの表示内容を的確に把握すること、及び、それによって適切な操作を行うことができるようになっており、結果的にユーザにおいて適切な操作を行うことができる。
【0220】
また、仮想コントローラ制御部212は、プレーヤキャラクタなどの操作対象オブジェクトがスライド操作入力にしたがって移動している場合であって、敵キャラクタや障害物などに接触する可能性があると判定した場合(例えば、操作対象オブジェクトの位置から移動方向において一定の範囲内にある場合)には、仮想コントローラの色や形状を変化さ
せてもよい。
【0221】
また、仮想コントローラ制御部212は、プレーヤキャラクタなどの操作対象オブジェクトが表示している仮想コントローラの指示位置に近づいた場合(指示位置と操作対象オブジェクトとの位置が所定の距離になった場合)には、表示している仮想コントローラの形状を小さくしてもよい。
【0222】
[4.2]操作エリアに基づく仮想カメラ制御
次に、
図13を用いて本実施形態の手法における操作エリアに基づく仮想カメラ制御について説明する。なお、
図13は、本実施形態の操作エリアに基づく仮想カメラ制御について説明するための図である。
【0223】
[4.2.1]概要
まず、
図13を用いて本実施形態の手法(操作エリアに基づく仮想カメラ制御)の概要について説明する。なお、
図13は、本実施形態における干渉状況判定処理を含む仮想カメラ制御について説明するための図である。
【0224】
本実施形態の端末装置20は、タッチパネル12の画面上に表示されている操作対象オブジェクトの当該画面上の表示コンテンツエリアと、検出された基準位置及び指示位置に基づいて定められるスライド操作入力における操作エリアと、の干渉状況を判定し、干渉状況が発生する場合には、仮想カメラの位置、向き、及び、画角の少なくともいずれか一方を制御して、操作対象オブジェクトの視認性を確保するカメラ制御を実行するようになっている。
【0225】
特に、本実施形態においては、上記のように、表示コンテンツエリアとの干渉状況を判定して仮想コントローラの一部(すなわち、スライド操作マーカ)の表示を制御して表示コンテンツの視認性を確保する点に代えて、又は、その技術とともに、仮想コントローラの表示に基づいて操作エリアを検出し、検出した操作エリアに基づいて仮想カメラを制御するようになっている。
【0226】
具体的には、
図13(A)に示すように、プレーヤキャラクタ、プレーヤキャラクタに味方する味方キャラクタ、及び、プレーヤキャラクタPCと戦闘相手となる敵キャラクタECなどのゲームを実行する上(すなわち、コンテンツを表示する上)で重要な表示コンテンツの表示エリア(以下、「コンテンツ表示エリア」という。)DCAと、タッチパネル12上のタッチ操作入力及びスライド操作入力を行う際の操作エリアUWAと、がタッチパネル12の表示上で干渉する場合には、
図13(B)に示すように、表示コンテンツの視認性を確保するため(コンテンツ表示エリアと操作エリアとが重畳しないようにするため)、オブジェクト空間に配置されている仮想カメラの位置、向き、及び、画角の少なくともいずれか一方を実行するようになっている。
【0227】
なお、
図13(B)は、仮想カメラの画角(ズーム)及び向きを制御し、
図13(A)よりもオブジェクト空間を撮像する際の倍率を低くし、かつ、角度を紙面むかって左に向けた場合の図である。
【0228】
このような構成により、本実施形態においては、上述と同様に、表示することが重要な操作対象オブジェクト上でスライド操作入力を行った場合であっても、当該操作対象オブジェクトの視認性を確保することができるので、ゲームの進行などの表示内容を的確に把握すること、及び、それによって適切な操作を行うことができるようになっている。
【0229】
特に、本実施形態の端末装置20は、
(1)検出した基準位置及び指示位置に基づいて、オブジェクト空間にスライド操作入力によって操作対象となる操作対象オブジェクトを配置し、
(2)オブジェクト空間内に配置される仮想カメラを制御し、
(3)オブジェクト空間における仮想カメラから見える画像であって、前記画面上に表示する画像を生成し、
(4)画面上に表示されている操作対象オブジェクトの当該画面上の表示エリアと、検出された基準位置及び指示位置に基づいて定められるスライド操作入力における操作エリアと、の干渉状況を判定する干渉状況判定処理を実行し、
(5)干渉状況が発生する場合には、仮想カメラの位置、向き、及び、画角の少なくともいずれか一方を制御し、操作対象オブジェクトの視認性を確保するカメラ制御を実行する、
構成を有している。
【0230】
なお、本実施形態においては、起点マーカ、スライド操作マーカ及び指示位置マーカを含む仮想コントローラが表示されるエリアを操作エリアとして適用しているが、スライド操作マーカのみ、又は、指示位置マーカのみを操作エリアとして適用してもよく、スライド操作方向及びスライド操作量に基づいて、スライド操作入力が予測される領域も操作エリアとして用いてもよい。例えば、指示位置マーカのエリア、又は、当該指示位置マーカのエリアとこれから指示位置マーカが表示される予測エリアを含むエリアを操作エリアとして用いてもよい。
【0231】
[4.2.2]仮想カメラの制御
次に、本実施形態における仮想カメラの制御について説明する。
【0232】
(基本的な制御)
仮想カメラ制御部216は、上述のように、タッチパネル12上のタッチ操作入力又はスライド操作入力が実行されている操作エリアを検出し、当該操作エリアと、操作対象オブジェクトやその他のゲームを実行する際にタッチパネル12の画面(2次元画面)上で表示される表示コンテンツが表示されるコンテンツ表示エリアと、の干渉が発生する場合には、3次元空間のオブジェクト空間に配置されている仮想カメラの位置、向き(視点方向)、及び、画角(ズーム)の少なくともいずれか一方を制御し、操作対象オブジェクトの視認性を確保するカメラ制御を実行する。
【0233】
具体的には、仮想カメラ制御部216は、当該操作対象オブジェクトの右斜め上の後方や左斜め上の後方から操作対象オブジェクトと、敵オブジェクトや味方オブジェクトなどの重要なキャラクタ、アイテムやその他のオブジェクトを画角に入れつつ、ゲーム進行に応じて仮想カメラを制御する。
【0234】
また、仮想カメラ制御部216は、タッチ検出処理部211によって検出された基準位置及び指示位置と、操作制御部213によって当該基準位置及び指示位置、スライド操作入力におけるにスライド操作量又は操作コマンドの発動などに基づいて検出された操作対象オブジェクトの移動方向、移動量や移動速度の情報を取得すると、これらの情報に応じて仮想カメラのオブジェクト空間上の位置、向き及び画角を制御する。
【0235】
特に、仮想カメラ制御部216は、操作対象オブジェクトが移動する際には、当該操作対象オブジェクトに対して移動方向側と相対する側に移動方向に向いて仮想カメラを配置し、操作対象オブジェクトの行動に応じて当該操作対象オブジェクトと仮想カメラとの距離や仮想カメラの向き及び画角を調整する。
【0236】
また、仮想カメラ制御部216は、操作対象オブジェクトが移動する際に仮想カメラを
追従させて移動させる。
【0237】
また、仮想カメラ制御部216は、仮想コントローラ制御部212から仮想コントローラをタッチパネル12上に配置する際に配置エリアの情報(具体的には、タッチパネル12上の座標情報)取得し、仮想コントローラとタッチパネル12上において一定の距離となる位置に操作対象オブジェクトが表示されるように、オブジェクト空間に仮想カメラを配置する。
【0238】
(操作エリアとの干渉時の制御)
仮想カメラ制御部216は、後述するように、仮想コントローラ制御部212によって当該操作エリア(具体的には仮想コントローラの表示位置)と、タッチパネル12の画面(2次元画面)上で表示される表示コンテンツが表示されるコンテンツ表示エリアと、が干渉すると判定された場合には、操作エリアとコンテンツ表示エリアとが干渉しないように、仮想カメラのオブジェクト空間上の位置、向き又は画角を調整する。
【0239】
例えば、仮想カメラ制御部216は、仮想カメラを操作対象オブジェクトからさらに後方に、上方や下方又は前方に配置し、当該仮想カメラの向きを上下左右に振り、又は、仮想カメラの画角をワイドやズームに変更する。すなわち、仮想カメラ制御部216は、操作制御部213から取得した操作対象オブジェクトの移動方向を検出し、検出した移動方向に基づいて操作対象オブジェクトの視認性を確保するように仮想カメラを制御する。
【0240】
特に、タッチ検出処理部211及び操作制御部213によって、プレーヤキャラクタPCの操作を行うために入力されたスライド操作入力(基準位置及び指示位置に基づいて検出されるスライド操作入力)におけるタッチパネル12上の操作エリアUWAが検出されると、仮想カメラ制御部216は、
図13(A)及び(B)に示すように、当該検出した操作エリアUCAが、敵キャラクタECを表示するためのコンテンツ表示エリアDCAとの一部又は全部に重畳したか否かを判定する干渉状況判定処理を実行する。
【0241】
具体的には、仮想コントローラ制御部212は、上述のように、仮想カメラ制御部216によって座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理を含む頂点処理の実行、当該頂点処理後の頂点データに基づいてラスタライズ(走査変換)の実行、及び、ポリゴン(プリミティブ)の面とピクセルとが対応づけられ、かつ、画像を構成するピクセル(表示画面を構成するフラグメント)の描画が実行された際に得られた、表示画面(具体的にはタッチパネル12)に表示される各操作オブジェクト(上記の例では敵キャラクタEC)の座標(すなわち、タッチパネル12上の画面表示座標)をそれぞれコンテンツ表示エリアとして取得する。
【0242】
また、仮想コントローラ制御部212は、上述のように、起点マーカ、スライド操作マーカ及び指示位置マーカが表示されるタッチパネル12上の座標を操作エリアとして決定し、当該決定した起点マーカ、スライド操作マーカ及び指示位置マーカを含む操作エリアのタッチパネル12上の画面表示座標を算出する。ただし、上述のように、操作エリアが、スライド操作マーカのみ若しくは指示位置マーカのみのエリアの場合、それらの組み合わせエリアの場合、又は、スライド操作マーカ若しくは指示位置マーカの予測エリアを含む場合には、仮想コントローラ制御部212は、該当するエリアのタッチパネル12上の画面表示座標を算出する。
【0243】
そして、仮想コントローラ制御部212は、取得した各操作オブジェクトのタッチパネル12上の座標(すなわち、画面表示座標)と、操作エリアのタッチパネル12上の画面表示座標と、を比較し、当該検出した操作エリア(上述の例では操作エリアUCA)が、
コンテンツ表示エリア(上述の例では、コンテンツ表示エリアDCA)との一部又は全部に重畳している場合には、仮想カメラのオブジェクト空間上の位置、向き又は画角を調整する。
【0244】
また、仮想カメラ制御部216は、タッチ検出処理部211によって検出された基準位置及び指示位置に基づいて定められるスライド操作入力に代えて、仮想コントローラ制御部212から仮想コントローラを配置したタッチパネル12上の表示エリアを取得し、当該取得した仮想コントローラの表示エリアとコンテンツ表示エリアと干渉したか否かを判定してもよい。
【0245】
この場合には、仮想カメラ制御部216は、仮想コントローラを配置したタッチパネル12上の表示エリアに対して所定の緩衝エリアを設け、緩衝エリアも含めて当該取得した仮想コントローラの表示エリアとコンテンツ表示エリアと干渉したか否かを判定してもよい。
【0246】
なお、仮想カメラ制御部216は、スライド操作入力が継続中の場合には、検出したスライド操作方向に応じて、又は、仮想カメラが操作対象オブジェクトの移動に追従している場合には、操作対象オブジェクトの移動方向に応じて干渉状況判定処理を実行する。
【0247】
また、コンテンツ表示エリアは、上述のように、対象となるオブジェクトが表示される領域だけなく、当該オブジェクトが仮想コントローラの操作によって移動することが予測される範囲も含む。
【0248】
(その他の処理)
仮想カメラ制御部216は、複数の操作対象オブジェクトの中から一の操作対象オブジェクトを選択した場合には、又は、一の操作対象オブジェクトから他の操作対象オブジェクトに切り換えた場合には、視点の対象となる操作対象オブジェクトに切り換えて干渉状況判定処理も含めて仮想カメラの制御を行う。
【0249】
また、仮想カメラ制御部216は、アイテムの取得、ボスキャラクタの打倒、マップやクエスト(命令や課題)の成功など所与のイベントが発生した場合に、干渉状況判定処理を実行する。そして、仮想カメラ制御部216は、表示コンテンツエリアと操作エリアとが干渉(一部又は全部が重畳)している場合には、上述のように仮想カメラのオブジェクト空間上の位置、向き及び画角を制御する。したがって、仮想カメラ制御部216は、ゲームにおいて敵キャラクタと接触した場合や特定の動作を行う場合など詳細な動きを画像化する場合には、ゲームの進行などの表示内容を的確に把握すること、及び、それによって適切な操作を行うことができるようになっている。
【0250】
[5]本実施形態における動作
次に、
図14を用いて本実施形態の端末装置20によって実行される干渉状況判定処理に基づく仮想カメラ制御処理の動作について説明する。なお、
図14は、本実施形態の端末装置20によって実行される干渉状況判定処理に基づく仮想カメラ制御処理の動作を示すフローチャートである。
【0251】
本動作は、サーバ装置10と連動してRPGなどのゲームが実行されており、順次ユーザのタッチ操作入力及びスライド操作入力が行われているものとし、所定のプログラムによって仮想カメラが制御されて、仮想カメラから見える画像をタッチパネル12に表示しているものとする。
【0252】
まず、タッチ検出処理部211は、入力部260を介してタッチ操作入力を検出すると
(ステップS101)、当該タッチ操作入力が検出されたタッチパネル12上の位置座標(基準位置の位置座標)を検出して主記憶部271に記憶する(ステップS102)。
【0253】
なお、このとき、仮想コントローラ制御部212は、主記憶部271に記憶された基準位置に起点マーカを表示する。
【0254】
次いで、タッチ検出処理部211は、スライド操作入力が終了して無接触状態となったか否かを判定し(ステップS105)、無接触状態となった判定した場合には、本動作を終了させる。なお、このとき、仮想コントローラ制御部212は、仮想コントローラの表示及び主記憶部172に記憶されている値をリセットする。
【0255】
一方、タッチ検出処理部211は、スライド操作入力が終了しておらず無接触状態となっていないと判定した場合には、タッチ操作入力による位置座標を検出し、スライド操作入力の変化の有無を判定する(ステップS106)。
【0256】
すなわち、タッチ検出処理部211は、直前に主記憶部172に記憶された位置座標と、ステップS106の処理において検出した位置座標の同一性を判定し、同一の位置座標でないと判定した場合に、スライド操作入力が変化した、すなわち、スライド操作入力が実行されたと判定する。
【0257】
また、このとき、タッチ検出処理部211は、スライド操作入力が実行されていないと判定した場合には、ステップS105の処理に移行し、スライド操作入力が実行されたと判定した場合にはステップS107の処理に移行する。
【0258】
なお、ステップS106の処理においては、タッチ検出処理部211は、検出した位置座標を主記憶部172に記憶する。
【0259】
次いで、操作制御部213は、主記憶部172に記憶されている基準位置と直前に記憶された現指示位置に基づいて操作対象オブジェクトの移動を制御しつつ、タッチパネル12上の操作エリアを決定する(ステップS107)。このとき、仮想コントローラ制御部212は、基準位置と直前に記憶された現指示位置に基づいて仮想コントローラ(すなわち、スライド操作マーカ)を表示する。
【0260】
次いで、仮想カメラ制御部216は、決定された操作エリアとタッチパネル12に画像化している操作対象オブジェクトの表示コンテンツエリアとが干渉するか否かを判定する干渉状況判定処理を実行する(ステップS107)。
【0261】
このとき、仮想カメラ制御部216は、操作エリアが表示コンテンツエリアと干渉しないと判定した場合には、所定のプログラムに基づく仮想カメラの制御を継続するとしてステップS105の処理に移行し、操作エリアが表示コンテンツエリアと干渉すると判定した場合には、操作オ対象オブジェクトの視認性を確保するように、仮想カメラのオブジェクト空間上の位置、向き及び画角を制御し(ステップS108)、ステップS105の処理に移行する。
【0262】
[6]その他
本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0263】
本実施形態では、RPGのゲームの操作入力として説明しているが、対戦型ゲーム又はシミュレーションゲームなどの他のゲームにおいても用いることがきる。
【0264】
また、ゲームに限らず、ユーザインタフェースとしてタッチ操作入力及びスライド操作入力を用いるものであれば適用可能である。
【0265】
また、本実施形態は、一のサーバ装置10によって各ゲームを端末装置20に提供してもよいし、複数のサーバ装置10を連動させてサーバシステムを構築し、各ゲームを端末装置に提供してもよい。
【0266】
本発明は、実施形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施形態で説明した構成に公知技術を付加した構成を含む。
【0267】
上記のように、本発明の実施形態について詳細に説明したが、本発明の新規事項及び効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。したがって、このような変形例はすべて本発明の範囲に含まれるものとする。