以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.ゲームシステム
まず、図1を用いて本実施形態のゲームシステム1の概要及び概要構成について説明する。なお、図1は、本実施形態のゲームシステム1の構成を示すシステム構成の一例を示す図である。
本実施形態のゲームシステム1は、図1に示すように、ゲームサービスを提供するサーバ装置10と、端末装置20(例えば、端末装置20A、20B、20C)とが、インターネット(ネットワークの一例)に接続可能に構成されている。
プレーヤは、端末装置20からインターネットを介してサーバ装置10にアクセスし、インターネットを介してサーバ装置10から送信されてくるゲームをプレーすることができる。さらに、プレーヤは、端末装置20からサーバ装置10にアクセスし、他のプレーヤとの間でコミュニケーションを図ることができる。
サーバ装置10は、インターネットを介して通信接続された端末装置20を用いて、プレーヤにゲームをプレーさせるサービスを提供することが可能な情報処理装置である。また、サーバ装置10は、コミュニケーション型のサービスを提供するSNSサーバとして機能してもよい。ここで、SNSサーバとは、複数のプレーヤ間でコミュニケーションを提供することが可能なサービスを提供する情報処理装置であってもよい。
また、サーバ装置10は、例えば、SNSサーバとして機能する場合には、提供するSNSの動作環境(API(アプリケーションプログラミングインタフェース)、プラットフォーム等)を利用して実行されるソーシャルゲーム(Social Game)をと呼ばれるゲームを提供することができるようになっている。
特に、サーバ装置10は、端末装置20のWebブラウザ上で提供されるゲーム、例えばHTML、FLASH、CGI、PHP、shockwave、Java(登録商標)アプレット、JavaScript(登録商標)など様々な言語で作られたブラウザゲーム(Webブラウザで設置サイトを開くだけで起動するゲーム)を提供することができるようになっている。
なお、ソーシャルゲームとは、既存のオンラインゲームとは違い、専用のクライアントソフトウェアを必要とせず、WebブラウザとSNSのアカウントのみで利用可能なゲームが含まれる。また、サーバ装置10は、ネットワークを介して他のプレーヤの端末(スマートフォン、パソコン、ゲーム機など)と接続し、オンラインで同時に同じゲーム進行
を共有することができるオンラインゲームを提供することが可能な構成を有している。
一方、サーバ装置10は、1つの(装置、プロセッサ)で構成されていてもよいし、複数の(装置、プロセッサ)で構成されていてもよい。
そして、サーバ装置10の記憶領域(後述する記憶部140)に記憶される課金情報、ゲーム情報等の情報を、ネットワーク(イントラネット又はインターネット)を介して接続されたデータベース(広義には記憶装置、メモリ)に記憶するようにしてもよいし、SNSサーバとして機能する場合には、記憶領域に記憶されるプレーヤ情報146等の情報を、ネットワーク(イントラネット又はインターネット)を介して接続されたデータベース(広義には記憶装置、メモリ)に記憶するようにしてもよい。
具体的には、本実施形態のサーバ装置10は、端末装置20のプレーヤ(すなわち、ゲームを実行するプレーヤ)の操作に基づく入力情報を受信し、受信した入力情報に基づいてゲーム処理を行うようになっている。そして、サーバ装置10は、ゲーム処理結果を端末装置20に送信し、端末装置20は、サーバ装置10から受信したゲーム処理結果を端末装置20にプレーヤに閲覧可能に提供する各種の処理を行うようになっている。
端末装置20は、スマートフォン、携帯電話、PHS、コンピュータ、ゲーム装置、PDA、携帯型ゲーム機等、画像生成装置などの情報処理装置であり、インターネット(WAN)、LANなどのネットワークを介してサーバ装置10に接続可能な装置である。なお、端末装置20とサーバ装置10との通信回線は、有線でもよいし無線でもよい。
また、端末装置20は、Webページ(HTML形式のデータ)を閲覧可能なWebブラウザを備えている。すなわち、端末装置20は、サーバ装置10との通信を行うための通信制御機能、及びサーバ装置10から受信したデータ(Webデータ、HTML形式で作成されたデータなど)を用いて表示制御を行うとともに、プレーヤ操作のデータをサーバ装置10に送信するWebブラウザ機能などを備え、ゲーム画面をプレーヤに提供する各種の処理を実行し、プレーヤによってゲームを実行させるようになっている。ただし、端末装置20は、サーバ装置10から提供されたゲーム制御情報を取得して所定のゲーム処理を実行し、ゲーム処理に基づくゲームを実行してもよい。
具体的には、端末装置20は、所定ゲームを行う旨の要求をサーバ装置10に対して行うと、サーバ装置10のゲームサイトに接続され、ゲームが開始される。特に、端末装置20は、必要に応じてAPIを用いることにより、SNSサーバとして機能するサーバ装置10に所定の処理を行わせ、又は、SNSサーバとして機能するサーバ装置10が管理するプレーヤ情報146を取得させてゲームを実行する構成を有している。
2.サーバ装置
次に、図2を用いて本実施形態のサーバ装置10について説明する。なお、図2は、本実施形態のサーバ装置10の機能ブロックを示す図である。また、本実施形態のサーバ装置10は図2の構成要素(各部)の一部を省略した構成としてもよい。
サーバ装置10は、管理者やその他の入力に用いるための入力部120、所定の表示を行う表示部130、所定の情報が記憶された情報記憶媒体180、端末装置20やその他と通信を行う通信部196、主に提供するゲームに関する処理を実行する処理部100、及び、主にゲームに用いる各種のデータを記憶する記憶部140を含む。
入力部120は、システム管理者等がゲームに関する設定やその他の必要な設定、データの入力に用いるものである。例えば、本実施形態の入力部120は、マウスやキーボー
ド等によって構成される。
表示部130は、システム管理者用の操作画面を表示するものである。例えば、本実施形態の表示部130は、液晶ディスプレイ等によって構成される。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などによって構成される。
通信部196は、外部(例えば、端末、他のサーバや他のネットワークシステム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどによって構成される。
記憶部140は、処理部100や通信部196などのワーク領域となるもので、その機能は、RAM(VRAM)などによって構成される。なお、記憶部140に記憶される情報は、データベースで管理してもよい。
また、本実施形態においては、記憶部140には、提供するゲームに関する情報を示すゲーム情報144、提供するゲームに関しプレーヤとしてのプレーヤに関する情報を示すプレーヤ情報146、及び、その他ゲーム演算に必要な各種の情報が記憶される。
処理部100は、記憶部140内の主記憶部142をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
例えば、処理部100(プロセッサ)は、情報記憶媒体に記憶されているプログラムに基づいて、サーバ装置10全体の制御を行うとともに、各部間におけるデータ等の受け渡しの制御などの各種の処理を行う。さらに、端末装置20からの要求に応じた各種サービスを提供する処理を行う。
具体的には、本実施形態の処理部100は、通信制御部101、Web処理部102及びゲーム管理部104を少なくとも有している。
通信制御部101は、端末装置20とネットワークを介してデータを送受信する処理を行う。すなわち、サーバ装置10は、通信制御部101によって端末装置20等から受信した情報に基づいて各種処理を行う。
特に、本実施形態の通信制御部101は、プレーヤの端末装置20からの要求に基づいて、当該プレーヤの端末装置20にゲーム画面を送信する処理を行う。
Web処理部102は、Webサーバとして機能する。例えば、Web処理部102は、HTTP(Hypertext Transfer Protocol)等の通信プロトコルを通じて、端末装置20にインストールされているWebブラウザの要求に応じてデータを送信する処理、及び、端末装置20のWebブラウザによって送信されるデータ
を受信する処理を行う。
なお、本実施形態では、サーバ装置10がSNSサーバとしての機能も備えていている場合を例にとり説明するが、サーバ装置10を、ゲーム用のサーバと、SNS用のサーバと別々に形成してもよい。また、本実施形態のゲームの処理は、サーバ装置10が一部又は全部を行ってもよいし、端末装置20が一部を行ってもよい。
ゲーム管理部104は、端末装置20と連動し、当該端末装置20を介して入力されたプレーヤの操作に基づいて、各プレーヤにおいてパズルゲーム等に関するゲーム処理を実行するとともに、各プレーヤのゲームの進行状況やアイテム管理などの各プレーヤにおいて使用するキャラクタ及び各種のアイテムを含むプレーヤ情報146を管理する。
なお、ゲーム管理部104は、プレーヤの操作に基づかず、プレーヤが設定した各種のデータに基づいて自動的にゲームを実行するための自動演算処理を実行し、端末装置20で再生するためのデータを生成し、生成したデータを端末装置20に提供してもよい。
3.端末装置
次に、図3及び図4を用いて本実施形態の端末装置20について説明する。なお、図3は、本実施形態における端末装置の構成を示す機能ブロック図の一例であり、図4は、本実施形態における端末装置の外観構成を示す図の一例である。また、本実施形態の端末装置20は図3の構成要素(各部)の一部を省略した構成としてもよい。
入力部260は、プレーヤが操作データを入力するためのものである。入力部260には、表示画面に設けられたタッチパネル(図4の符号12)などの検出部262も含まれ、タッチパネル12は、表示画面におけるタッチ位置(指示位置)の2次元座標(x,y)を検出する。
なお、表示画面におけるタッチ操作には、手指又はタッチペン等の道具による直接的なタッチ操作と、ポインティングデバイスによる間接的なタッチ操作と、擬似的なタッチ操作とが含まれる。また、表示画面におけるスライド操作には、手指又はタッチペン等の道具による直接的なスライド操作と、ポインティングデバイスによる間接的なスライド操作と、擬似的なスライド操作とが含まれる。
例えば、擬似的なタッチ操作又はスライド操作とは、
(1)赤外線などの光ビームをタッチパネル面と平行に当該タッチパネル面に近接した位置で照射し、当該タッチパネルの一端部に縦横方向に一定間隔に形成される複数の照射部と、各照射部と対を構成し、当該各照射部に対向するタッチパネルの他端部に設けられ、各照射された光ビームをそれぞれ受信する複数のセンサとによって、タッチパネル12に接触又は近接した際に光ビームが遮断された縦横の座標を検出し、当該検出した座標に基づいて認識するタッチ操作又はスライド操作、及び、
(2)タッチパネル12の表示面を撮像するカメラを設け、当該カメラによってプレーヤがタッチパネル12に接触又は近接した位置座標を検出し、当該検出した位置座標に基づいて認識するタッチ操作又はスライド操作、
などタッチパネル12に実際に接触することによって又は近接させて検出することによって認識するタッチ操作又はスライド操作を含む。
また、タッチパネルに同時に複数のタッチ位置が検出される場合には、いずれか1つのタッチ位置(先に検出されたタッチ位置)を用いるようにしてもよいし、複数のタッチ位置を同時に処理してもよい。
なお、タッチパネルに複数の判定領域が存在する場合には、各判定領域において、1つのタッチ位置(先に検出されたタッチ位置)を用いるようにしてもよい。また、判定領域とは、取得したタッチ位置のうち、移動制御など処理部200で処理するためのタッチ位置を予め特定するタッチパネル上の範囲である。
図4(A)及び(B)に示すとおり、端末装置20の表示画面は、例えば液晶ディスプレイとタッチパネル12とを積層したタッチパネル型ディスプレイである。このうち液晶ディスプレイは、表示部290として機能し、タッチパネル12は、検出部262として機能する。以下、端末装置20の表示画面を、適宜、「タッチパネル」と称す。
また、入力部260は、タッチパネル12の他、各種の操作情報(操作信号)を入力可能なボタンやレバー、キーボード、ステアリング、マイク、加速度センサなどを備えていてもよい。
記憶部270は、処理部200や通信部296などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。そして、本実施形態の記憶部270は、ワーク領域として使用される主記憶部271と、最終的な表示画像等が記憶される画像バッファ272と、提供するゲームに関しプレーヤとしてのプレーヤに関する情報を示すプレーヤ情報273と、テーブルデータなどのゲームを実行する上で必要な各種のデータを記憶するゲームデータ記憶部274と、を含む。なお、これらの一部を省略する構成としてもよいし、サーバ装置10の記憶部140がその一部を構成してもよい。
特に、本実施形態の主記憶部271は、タッチ検出処理部211において取得された基準位置及び指示位置、及び、各種のマーカの画像及び各種の判定処理において用いる条件を示す条件情報などを記憶することができる。
情報記憶媒体280(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。
また、情報記憶媒体280には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。なお、処理部200は、後述するように、情報記憶媒体280に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。
表示部290は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネルディスプレイ(タッチパネル12が設けられたディスプレイ)、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。
特に、本実施形態では表示部290は、タッチパネルディスプレイを用いることによりプレーヤがゲーム操作を行う入力部260としても機能する。ここでタッチパネルとして、例えば抵抗膜方式(4線式、5線式)、静電容量方式、電磁誘導方式、超音波表面弾性波方式、赤外線走査方式などのタッチパネルを用いることができる。
音出力部292は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
通信部296は、外部(例えばホスト装置や他の端末装置)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハー
ドウェアや、プログラムなどにより実現できる。
なお、端末装置20は、サーバ装置10が有する情報記憶媒体や記憶部270に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体280や記憶部270に記憶してもよい。このようにプログラムやデータを受信して端末装置20を機能させる場合も本発明の範囲内に含めることができる。
処理部200(プロセッサ)は、入力部260からの入力データやプログラムなどに基づいて、サーバ装置10と連動して、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
特に、本実施形態においては、ゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、各種のオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などが含まれる。
また、処理部200は、記憶部270をワーク領域として各種処理を行う。処理部200の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
特に、本実施形態の処理部200は、オブジェクト空間設定部210と、タッチ検出処理部211と、表示制御部212と、入力受付処理部213と、ゲーム制御部214と、ゲーム演算部215と、仮想カメラ制御部216と、ゲーム管理部217と、描画部220と、音処理部230とを含む。また、これらの一部を省略する構成としてもよい。
オブジェクト空間設定部210は、オブジェクト(キャラクタ含む)、移動経路、建物、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(スプライト、ビルボード、ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。
具体的にはオブジェクト空間設定部210は、オブジェクト(モデルオブジェクト)の位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y)或いは(X、Y、Z)にその回転角度(X、Y軸回りでの回転角度)或いは(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
ここで、オブジェクト空間とは、いわゆる仮想2次元空間、仮想3次元空間の両方を含む。2次元空間とは、例えば2次元座標(X,Y)においてオブジェクトが配置される空間であり、3次元空間とは、例えば3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
そしてオブジェクト空間を2次元空間とした場合には、複数のオブジェクトそれぞれについて設定された優先順位に基づいてオブジェクトを配置する。例えば、奥側にあるように見せたいオブジェクト(スプライト)から順にオブジェクトを配置し、手前側にあるように見せたいオブジェクトを重ねて配置する処理を行うことができる。
また、描画サイズが大きなオブジェクトを画像の下方に配置し、描画サイズが小さなオブジェクトを画像の上方に配置すれば、画面の上方に対応するオブジェクト空間が奥側にあるように見せることができ、画面の下方に対応するオブジェクト空間が手前側にあるように見せることができる。
また、オブジェクト空間を3次元空間とした場合には、ワールド座標系にオブジェクトを配置する。
タッチ検出処理部211は、プレーヤが入力部260から入力した入力情報の認識処理を行う。具体的には、本実施形態のタッチ検出処理部211は、入力部260によって入力された指示位置を取得する。
例えば、タッチ検出処理部211は、タッチパネル12におけるタッチ位置(2次元の位置座標)を指示位置として取得する。また、タッチ検出処理部211は、スライド操作中(タッチ操作の開始からタッチ操作の解除までの期間)における各時点のタッチ位置(指示位置)を取得する。例えば、タッチ検出処理部211は、タッチ位置の取得を行う周期を、表示画面のフレーム周期と同じ(1/60秒〜1/120秒程度)とすることができる。
表示制御部212は、後述する仮想カメラが撮影したオブジェクト空間をタッチパネル12上に表示する。
入力受付処理部213は、プレーヤの操作入力に基づく入力指示を受け付けるとともに、受け付けた入力指示をゲーム制御部214に出力する。
ゲーム制御部214は、入力受付処理部213が受け付けたコマンドと、当該コマンドを受け付けた際のタッチ操作入力に継続して入力されたスライド操作入力と、コマンドに基づくゲーム処理を実行する。
また、例えば、本実施形態のゲーム制御部214は、入力受付処理部213と連動してスライド操作入力を受け付ける。
一方、ゲーム制御部214は、オブジェクト空間内において移動可能なオブジェクト(移動体オブジェクト、キャラクタを含む)等の移動演算を行う。
すなわち、ゲーム制御部214は、入力部260によりプレーヤが入力した入力データ又はプログラム(移動アルゴリズム)や各種データ(モーションデータ)などに基づいて、移動体オブジェクトをオブジェクト空間内で移動させ、又は、移動体オブジェクトの動作(モーション、アニメーション)を制御するための処理を行う。
具体的には、ゲーム制御部214は、オブジェクトの移動情報(移動方向、移動量、移動速度、位置、回転角度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム毎に順次求めるシミュレーション処理を行う。ここでフレームとは、オブジェクトの移動処理、動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。そして、本実施形態では、フレームレートは、固定としてもよいし、処理負荷に応じて可変としてもよい。
なお、ゲーム制御部214は、3次元のオブジェクト空間において入力方向に基づいてオブジェクトを移動させる処理を行ってもよい。例えば、予め、入力方向毎に移動方向を対応づけ、入力方向に対応する移動方向にオブジェクトを移動させる。
また、ゲーム制御部214は、サーバ装置10と連動して実行してもよいし、その一部又は全部がサーバ装置10に形成されていてもよい。
ゲーム演算部215は、種々のゲーム演算処理を行う。特に、ゲーム演算部215は、プレーヤの指示に基づいてゲームに使用される複数のプレーヤキャラクタをデッキとして設定する場合には、当該デッキに設定された各プレーヤキャラクタを用いてゲームを進行させるための各処理を実行する。
また、ゲーム演算部215は、スライド操作入力に応じて変動パラメータを管理するとともに、その結果を表示制御部212と連動してタッチパネル12上にゲージ、テキストイメージ等として表示させる。
なお、ゲーム演算部215は、サーバ装置10と連動して実行するが、その一部又は全部の機能はサーバ装置10に搭載されていてもよい。
仮想カメラ制御部216は、所与の視点から見える画像であって、奥行きがあるように見える画像を生成する。この場合に、仮想カメラ制御部216が、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
例えば、仮想カメラによりオブジェクト(例えば、キャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。
この場合には、ゲーム制御部214で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動さたりする制御を行ってもよい。また、この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
ゲーム管理部217は、入力部260を介して入力されたプレーヤの操作に基づいて、各プレーヤにおいてパズルゲーム等のゲームに使用するキャラクタ及び各種のアイテムを設定し、プレーヤ情報273に登録する。
特に、ゲーム管理部217は、デッキを用いてゲームを実行する場合には、設定されたプレーヤキャラクタ及び各種のアイテムをデッキデータとしてプレーヤ情報273に登録する。
描画部220は、処理部200で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部290に出力する。描画部220が生成する画像は、いわゆる2次元画像であってもよいし、いわゆる3次元画像であってもよい。特に、描画部220は、オブジェクト空間における仮想カメラから見える画像であって、画面上に表示する画像を生成する。
ここで2次元画像を生成する場合には、描画部220は、設定された優先度が低いオブジェクトから順に描画して、オブジェクト同士が重なる場合には、優先度の高いオブジェクトを上書きして描画する。
また、3次元画像を生成する場合には、本実施形態の描画部220は、まずオブジェク
ト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理が行われる。なお、頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
また、頂点処理では、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(フラグメント処理)が行われる。
ピクセル処理では、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ272(フレームバッファ、ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。
これにより、オブジェクト空間内に設定された仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
なお、描画部220が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
そして、描画部220は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理を行う。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)を記憶部270に記憶する。
テクスチャマッピングでは、記憶部270のテクスチャ記憶部に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングする処理を行う。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部270のテクスチャ記憶部からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出し、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
なお、本実施形態では、オブジェクトを描画する際に、所与のテクスチャをマッピングする処理を行うようにしてもよい。この場合には、マッピングされるテクスチャの色分布
(テクセルパターン)を動的に変化させることができる。
また、この場合において、色分布(ピクセルパターン)が異なるテクスチャを動的に生成してもよいし、複数の色分布が異なるテクスチャを予め用意しておき、使用するテクスチャを動的に切り替えるようにしてもよい。またオブジェクト単位でテクスチャの色分布を変化させてもよい。
隠面消去処理では、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行う。すなわち、オブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照するとともに、当該参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
αブレンディング(α合成)では、描画部220は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)を行う。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
音処理部230は、処理部200で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部292に出力する。
なお、本実施形態の端末装置は、1人のプレーヤのみがプレーできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレーできるマルチプレーヤモードも備えるシステムにしてもよい。
また、複数のプレーヤがプレーする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末装置20を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末装置20又はサーバ装置10を用いて分散処理により生成してもよい。
4.本実施形態の手法
4−1.ゲームの概要
本実施形態の端末装置20(ゲーム装置の一例)は、例えば情報記憶媒体280に記憶されたプログラムに基づき、オブジェクト空間を含むゲーム画面を表示部290へ表示してパズルゲームを実行する。このパズルゲームの概要は、以下の(1)〜(6)のとおりである。このパズルゲームは、独立したゲームとして端末装置20で実行されてもよいし、シューティングゲームやRPGにおけるミニゲーム(リラックス用のゲーム)として端末装置20で実行されてもよい。
(1)表示制御部212は、オブジェクト空間設定部210と協働して、オブジェクト空間をゲーム画面へ表示する。オブジェクト空間は、2次元のオブジェクト空間であっても3次元のオブジェクト空間であってもよいが、以下では図6に示すような2次元のオブジェクト空間1500とする。図6では、オブジェクト空間1500と共に、自動ボタン(Autoボタン)100C、リセットボタン(Resetボタン)100A、プレーヤのスコアを示すテキスト900などがゲーム画面に配置された状態を示している。なお、Autoボタン100Cは、オブジェクト空間に対するオブジェクトの補充が自動的に行う指示をプレーヤが端末装置20へ入力するためのボタンであって、Resetボタン1
00Aは、ゲーム画面を当初の状態へ戻す(リセットする)指示をプレーヤが端末装置20へ入力するためのボタンである。
(2)ゲーム制御部214は、オブジェクト空間設定部210と協働して、属性の異なる複数種類のオブジェクトOBA、OBB、OBC、OBDを含むオブジェクト群をオブジェクト空間1500へ配置する。図6では、プレーヤによる落下ボタン(Dropボタン)100Bのタッチ操作に応じてオブジェクトがオブジェクト空間1500へ補充されるときのゲーム画面を示している。なお、図3に示した配置部214aは、オブジェクト群をオブジェクト空間1500へ配置するゲーム制御部214の機能を可視化したものである。以下、この機能を実現する主体がゲーム制御部214であるとして説明する。
(3)ゲーム制御部214は、表示制御部212と協働して、オブジェクト空間1500に存在する少なくとも1つのオブジェクトをプレーヤが指定した場合に(図7)、指定中のオブジェクトへプレーヤの操作に応じた仮想外力(後述)を加える(図8)。図8において矢印で示すのが仮想外力のイメージである。なお、図3に示した外力発生部214bは、オブジェクトへ仮想外力を加えるゲーム制御部214の機能を可視化したものである。以下、この機能を実現する主体がゲーム制御部214であるとして説明する。また、図7、図8では仮想連結力のイメージを矢印で表現したが、この矢印は、実際のゲーム画面では非表示としてもよい(他の図も同様)。
(4)ゲーム制御部214は、表示制御部212と協働して、指定中のオブジェクトに対して、同属のオブジェクト間で伝達可能な仮想連結力(後述)を発生させる(図9)。図9において矢印で示すのが仮想連結力のイメージである。なお、図3に示した連結力発生部214cは、オブジェクトへ仮想連結力を発生させるゲーム制御部214の機能を可視化したものである。以下、この機能を実現する主体がゲーム制御部214であるとして説明する。
(5)ゲーム制御部214は、表示制御部212と協働して、仮想外力、仮想連結力、その他の仮想物理法則に従い、オブジェクト空間1500における各オブジェクトの動きを制御する(図10〜図16)。オブジェクトの動きの詳細は、後述する。なお、図3に示した制御部214dは、オブジェクトの動きを制御するゲーム制御部214の機能を可視化したものである。以下、この機能を実現する主体がゲーム制御部214であるとして説明する。
(6)ゲーム制御部214は、表示制御部212と協働して、オブジェクト空間1500内において互いに接触又は近接する同属のオブジェクト群が所定条件(消滅条件)を満たす場合に(図19)、当該オブジェクト群をオブジェクト空間1500から消去する(図20)。なお、図3に示した消去部214eは、オブジェクト群を消去するゲーム制御部214の機能を可視化したものである。以下、この機能を実現する主体がゲーム制御部214であるとして説明する。
ここで、「互いに接触又は近接する同属のオブジェクト群」とは、互いの距離が所定の閾値未満であるオブジェクト群のことであり、当該オブジェクト群に属する各オブジェクトは、当該オブジェクト群に属する他のオブジェクトの何れか1つとの距離が所定の閾値未満となっている。よって、オブジェクト群は、直列に並んでいる場合もあり、非直列に並んでいる場合もあり、塊状となっている場合もある。
また、当該オブジェクト群が消去されるための「所定条件(消滅条件)」は、例えば、「当該オブジェクト群に属するオブジェクトの個数が閾値以上である」という条件である。
また、本実施形態では、消滅条件が満たされているか否かの判定(消滅判定)が開始されるために、所定の条件(時間的な制限、静止状態の維持など)が課されてもよい。例えば、判定が行われるタイミングは、制限時間内のみに制限されてもよい。
また、消滅条件には、他の要件が課されてもよい。例えば、オブジェクトの個数に応じて上昇し、かつ、経過時間等に応じて下降するパラメータを設定し、「当該パラメータが所定の閾値を超えたこと」を消滅条件とすることもできる。
そこで、以下では、当該オブジェクト群が消去されるための消滅条件を、「当該オブジェクト群に含まれるオブジェクトの個数が所定数(例えば4個)以上であること」とする。
また、以下では、消滅判定が開始されるための条件に、「オブジェクト空間1500内の全てのオブジェクトがリリース(後述)されたこと」、「所定期間(例えば2秒)に亘ってオブジェクト空間1500内の全オブジェクトが静止したこと」が課されるものとする。
つまり、以下では、オブジェクト空間1500内のオブジェクトが静止していない場合、又は、オブジェクト空間1500内の何れかのオブジェクトがホールド中である場合には、消滅判定が禁止されるものとする。
因みに、図20には、消滅条件を満たした6つのオブジェクトが消滅する状態が表されている。
4−2.感圧式タッチパネルについて
本実施形態では、検出部262としてタッチパネル12が用いられる場合を想定する。タッチパネル12の方式(原理)としては、上述したとおり抵抗膜方式(4線式、5線式)、静電容量方式などの方式が適用可能であるが、ここでは特に、感圧式のタッチパネルを想定する。感圧式のタッチパネルは、プレーヤによるタッチ位置に応じた信号を生成するだけでなく、タッチ位置におけるタッチ操作の強度(押圧力)を感知し、当該タッチ操作の強度に応じた信号を生成する。つまり、本実施形態の検出部262は、タッチ検出処理部211と協働し、プレーヤによるタッチ操作のタッチ位置を示す信号と、押圧力の大きさを示す信号とを生成して処理部200へ与える。
4−3.タッチ操作、スライド操作などの説明
(1)「タッチ操作」:
タッチ操作には、前述したとおり直接的なタッチ操作と、間接的なタッチ操作と、擬似的なタッチ操作とが含まれるが、ここではタッチパネル12に対する手指の直接的なタッチ操作を想定する。以下、タッチパネル12の何れかの位置を手指で触れるプレーヤの行為、又は、手指が接触した状態を継続するプレーヤの行為を、「タッチ操作」という。本実施形態では、ゲーム画面に現れた或るオブジェクトをプレーヤが指でタッチ操作すると、当該オブジェクトが指定される。
(2)「タッチ位置」:
タッチパネル12においてプレーヤの手指の接触している位置のことである。
(3)「タッチ操作の押圧力」:
プレーヤがタッチ操作によりタッチパネル12へ与える押圧力の大きさ(タッチ操作の強度)のことである。以下、適宜に「押圧力」という。
(4)「スライド操作」:
タッチ操作後にタッチパネル12から手指を離すことなくタッチパネル12におけるタッチ位置を時間変化させるプレーヤの行為のことである。
(5)「ホールド」:
オブジェクトへのタッチ操作の継続により当該オブジェクトの指定を継続するプレーヤの行為のことである。なお、ホールドは指定の一例である。
(6)「ドラッグ」:
タッチ操作に継続したスライド操作により、指定中のオブジェクトを移動させるプレーヤの行為のことである。なお、ドラッグはホールドの一種である。
(7)「リリース」:
タッチ操作の解除によりオブジェクトの指定を解除するプレーヤの行為のことである。
(8)「スライド力」
タッチ位置の変化の加速度(つまりスライド操作の勢い)のことである。因みに、スライド力が大きくなるのは、ホールド後に最初にドラッグが開始され始めるとき(ホールドされたオブジェクトが最初に動き始めるとき)である。一方、ドラッグが等速度(又は等速度に近い状態)で行われているときにはスライド力は発生しないとみなせる。
従って、本実施形態のプレーヤは、ゲーム画面に現れた或るオブジェクトをタッチ操作することで当該オブジェクトをホールドすることができ、当該タッチ操作に継続してスライド操作を行うことでホールド中のオブジェクトを移動させることができ、さらにタッチ操作を解除(タッチ解除)することでホールド中のオブジェクトをリリースすることができる。なお、押圧力及びスライド力の利用方法については、後述する。
4−4.オブジェクト空間の仮想物理法則
オブジェクト空間1500には、以下の仮想物理法則が適用される。仮想物理法則は、オブジェクト空間1500に存在するオブジェクトの動き方を決める法則であって、ゲーム制御部214がオブジェクトの動きを制御する際のアルゴリズムに相当する。
4−4−1.仮想重力
ゲーム制御部214は、オブジェクト空間1500に仮想重力を発生させる。仮想重力の方向は、例えば、ゲーム画面においてプレーヤから見て下側方向に設定される。
仮想重力加速度は、例えば、オブジェクト空間の設定データの1つとしてゲームデータ記憶部274などに予め格納されている。このオブジェクト空間の設定データは、ゲーム制御部214によって適宜に参照される。図5Bには、オブジェクト空間の設定データの1つとして仮想重力加速度の大きさを示す情報が書き込まれた例を示した。図5Bの例では、仮想重力加速度の大きさが「大」、「中」、「小」のうち「中(地上相当)」に設定されている。
但し、オブジェクト空間の設定データに含まれる仮想重力加速度は、ゲーム管理部217によって書き換え可能であってもよい。例えば、ゲーム開始前にプレーヤからの指示に応じてゲーム管理部217が書き換えてもよいし、プレーヤのスコアに応じてゲーム管理部217書き換えてもよいし、プレーヤのスコアが閾値を超え、かつ、プレーヤからの指示があった場合にゲーム管理部217が書き換えてもよい(なお、プレーヤのスコアは、例えばユーザ情報273などに保管され、ゲーム演算部215によって適宜に書き換えら
れる。)。図5Cには、オブジェクト空間の設定データのうち、仮想重力加速度の大きさが「大」、「中」、「小」のうち「小(月面相当)」に書き換えられた例を示している。
そして、ゲーム制御部214は、ゲーム処理の開始当初など、必要なタイミングでオブジェクト空間の設定データを参照し、設定データに書き込まれた仮想重力加速度が大きいときほど大きな仮想重力をオブジェクト空間1500内の各オブジェクトに加える。従って、オブジェクト空間に存在する個々のオブジェクトには、基本的に、ゲーム画面の下側に向かって定常的に仮想重力が加わる。なお、ゲーム制御部214は、オブジェクトに加わる仮想重力を、オブジェクトの仮想重力が大きいほど、また、オブジェクトの仮想質量が大きいときほど、大きくする。
4−4−2.仮想媒質
ゲーム制御部214は、オブジェクト空間1500に仮想媒質を存在させる。仮想媒質の特性のうち、オブジェクトの動きに影響を与えるのは、主に密度(比重)であるので、ここでは、比重について説明する。
仮想媒質の種類は、例えば、オブジェクト空間の設定データの1つとしてゲームデータ記憶部274などに予め格納されている。このオブジェクト空間の設定データは、ゲーム制御部214によって適宜に参照される。図5Bには、オブジェクト空間の設定データの1つとして仮想媒質の種類を示す情報が書き込まれた例を示した。図5Bの例では、仮想媒質の種類が「空気」である例を示している。また、図5Cの例では、仮想媒質の種類が「水」に設定されている。
但し、オブジェクト空間の設定データに含まれる仮想媒質の種類は、ゲーム管理部217によって書き換え可能であってもよい。例えば、ゲーム開始前にプレーヤからの指示に応じてゲーム管理部217が書き換えてもよいし、プレーヤのスコアに応じてゲーム管理部217書き換えてもよいし、プレーヤのスコアが閾値を超え、かつ、プレーヤからの指示があった場合にゲーム管理部217が書き換えてもよい(なお、プレーヤのスコアは、例えばユーザ情報273などに保管され、ゲーム演算部215によって適宜に書き換えられる。)。図5Cには、オブジェクト空間の設定データのうち、仮想媒質の種類が「水」に書き換えられた例を示している。
そして、ゲーム制御部214は、ゲーム処理の開始当初など、適当なタイミングでオブジェクト空間の設定データを参照し、設定データに書き込まれた仮想媒質の比重が大きいときほど大きな仮想浮力をオブジェクト空間1500内の各オブジェクトに加える。従って、オブジェクト空間に存在する個々のオブジェクトには、ゲーム画面の上側に向かって定常的に仮想浮力が加わる。なお、ゲーム制御部214は、オブジェクトに加わる仮想浮力を、オブジェクトのサイズが大きいほど大きくする。なお、仮想媒質の種類と比重との対応関係は、実空間における媒質の種類と比重との対応関係と同様に設定されるものとする。また、ここでは、オブジェクト空間の設定データに仮想媒質の種類の情報が格納された例を説明したが、種類の情報の代わりに比重又は密度を示す情報が格納されてもよい。
4−4−3.オブジェクト属性
ゲーム制御部214は、属性の異なる複数種類のオブジェクトをオブジェクト空間1500に配置する。ここでは、図6に示すとおり、外観の異なる4種類のオブジェクトOBA、OBB、OBC、OBDがオブジェクト空間1500に配置される場合を想定する。これら4種類のオブジェクトOBA、OBB、OBC、OBDの間では属性が互いに異なる。これらのオブジェクトOBA、OBB、OBC、OBDの各属性は、例えば、オブジェクト属性テーブルとしてゲームデータ記憶部274へ保管される。
そして、ゲーム制御部214は、ゲーム処理の開始当初など、適当なタイミングでオブジェクト属性テーブルを参照することによりオブジェクト空間1500に存在する各オブジェクトの属性を認識し、認識した各オブジェクトの属性に基づき、各オブジェクトの動きを制御する。つまり、ここでいう「オブジェクトの属性」とは、ゲーム制御部214が従うべき仮想物理法則(アルゴリズム)におけるオブジェクトの性質(パラメータ)のことである。
図5Aには、オブジェクト属性テーブルの一例を示した。図5Aに示すとおり、オブジェクト属性テーブルは、オブジェクトの属性情報をオブジェクトの名称(ここでは、符号OBA、OBB、OBC、OBDの別)ごとに格納したものである。属性情報には、外観(色、サイズ、形状)、仮想質量、仮想連結力、作用距離、タイムラグなどが含まれる。以下、色、サイズ、形状、仮想質量、仮想連結力、作用距離、タイムラグについて説明する。
(1)オブジェクトの色:
オブジェクトの色は、オブジェクト空間1500におけるオブジェクトの表示色のことである。
(2)オブジェクトのサイズ:
オブジェクトのサイズは、オブジェクト空間1500におけるオブジェクトの大きさのことである。大きいオブジェクトほど仮想媒質における仮想浮力が大きくなるので、動き易くなる。
(3)オブジェクトの形状:
オブジェクトの形状は、オブジェクト空間1500におけるオブジェクトの外形(例えば球体、立方体、六面体など)と、表面の滑らかさのことである。滑らかなオブジェクトほど他のオブジェクトとの間の摩擦係数が小さくなるので、動き易くなる。
(4)オブジェクトの仮想質量:
オブジェクトの仮想質量は、オブジェクト空間1500におけるオブジェクトの動き難さのことである。他のパラメータ(仮想重力加速度、仮想媒質、形状、サイズなど)が同じであるならば、仮想質量が大きいオブジェクトほど動き難くなる。
(5)オブジェクトの仮想連結力:
オブジェクトの仮想連結力は、オブジェクトが同属のオブジェクトを引き寄せる力の大きさのことである。大きな仮想連結力ほど強固にオブジェクトを連結することができる。例えば、小さな仮想連結力で連結された複数のオブジェクト(オブジェクト列)は、オブジェクト空間1500の壁面又は異属のオブジェクトへの衝突によって分離する可能性が高いが、大きな仮想連結力で連結されたオブジェクト列は、オブジェクト空間1500の壁面又は異属のオブジェクトへの衝突によって分離する可能性が低い。
なお、本実施形態では、仮想連結力がプレーヤによって適宜に調節できるものとする。このため、図5Aにおける仮想連結力は、単一の値ではなく値範囲によって表現されている。例えば、図5Aの例によるとオブジェクトOBAの仮想連結力は、「5±2」という範囲(すなわち「3〜7」という範囲)に設定されている。但し、図5Aに示した各数値は、あくまでも一例である。
(6)仮想連結力の作用距離:
仮想連結力の作用距離は、2つのオブジェクトが非接触で連結可能な最大の間隔のことである。作用距離がゼロである仮想連結力は、互いに接触したオブジェクト同士しか連結
することができず、作用距離が1mmである仮想連結力は、1mm以下の距離に近接したオブジェクト同士を連結することが可能である。因みに、仮想連結力が高いほど作用距離を高くしたならば、仮想連結力を磁力に似せることができる。
(7)仮想連結力解除までのタイムラグ:
仮想連結力解除までのタイムラグは、互いに連結された複数のオブジェクト(オブジェクト列という。)がリリースされたタイミングから当該オブジェクトの仮想連結力が完全に解除されるまでのタイムラグのことである。例えば、タイムラグが1秒であるならば、リリース後の1秒間は連結状態が維持され、タイムラグが0.5秒であるならば、リリース後の0.5秒間は連結状態が維持される。なお、仮想連結力をタイムラグの後に急峻にオフするよりも、仮想連結力をリリース直後から徐々に弱めた方が、仮想連結力を磁力の振る舞いに似せることができる。
4−4−4.仮想外力
ゲーム制御部214は、タッチ位置を示す信号(タッチ位置信号)及び押圧力の大きさを示す信号(押圧力信号)を受信すると、ゲーム画面における当該タッチ位置にオブジェクトが表示中であるか否かを判定し、表示中であった場合には、当該表示中のオブジェクトがプレーヤによってホールドされたとみなす(図7)。
そして、ゲーム制御部214は、押圧力信号が示す押圧力と、タッチ位置信号の時間変化が示すスライド力とに応じた仮想外力を、ホールド中のオブジェクトに対して発生させる。例えば、ゲーム制御部214は、オブジェクト空間にけるドラッグ中のオブジェクトの位置を、ゲーム画面におけるプレーヤのタッチ位置に追従させる。但し、ゲーム制御部214は、ホールド後に最初にドラッグが開始され始めたときにおけるスライド操作の押圧力及びスライド力が一定より弱かった場合には、オブジェクトの位置をタッチ位置に追従させることなく、オブジェクトのホールドを解除(リリース)する。
具体的に、ゲーム制御部214は、例えば以下の処理(1)〜(4)を実行する。
(1)ゲーム制御部214は、オブジェクト属性テーブル(図5A)を参照し、ホールド中のオブジェクトに加わる仮想重力及び仮想浮力を認識し、認識した仮想重力及び仮想浮力と、スライド方向とに基づき、オブジェクトをスライド方向へ動かし始めるのに必要な仮想外力必要な仮想外力を計算する。なお、スライド方向は、タッチ位置信号の時間変化によって特定することができる。
(2)ゲーム制御部214は、押圧力の閾値を当該必要な仮想外力に応じた値に設定し、スライド力の閾値を当該必要な仮想外力に応じた値に設定する。
(3)ゲーム制御部214は、押圧力の閾値を押圧力と比較し、かつ、スライド力の閾値をスライド力と比較する。
(4)ゲーム制御部214は、押圧力が当該閾値未満であり、かつ、スライド力が当該閾値未満である場合には、オブジェクトのホールドを解除(リリース)し、そうでない場合には、オブジェクトの位置をタッチ位置に追従させる。
従って、プレーヤは、例えば図8に矢印で示すとおりホールド中のオブジェクトを右上方向へ向けてドラッグしたい場合には、右上方向に向かってスライド操作を行えばよい。但し、当該オブジェクトの仮想質量が大きいほど(サイズが小さいほど)当該オブジェクトに加わる下向きの仮想重力が大きくなる(上向きの仮想浮力が小さくなる)ので、プレーヤは一定以上の押圧力及びスライド力でタッチ操作を行わなければ、オブジェクトを動
かすことはできないことになる。
また、ゲーム制御部214は、ホールド中のオブジェクトに他のオブジェクトが連結されている場合(つまりホールド中のオブジェクトが後述する図10のようなオブジェクト列である場合)には、オブジェクトの連結数の分だけオブジェクト列の仮想質量を大きく見積もる。
その場合、プレーヤは、オブジェクト列(図10)を動かそうとする場合には、オブジェクトの連結数の分だけ強い押圧力及びスライド力でスライド操作しなければオブジェクト列を動かすことはできないことになる。
また、ゲーム制御部214は、オブジェクト又はオブジェクト列の移動経路に障害物(他のオブジェクト)が存在する場合には、当該オブジェクト又はオブジェクト列を動かすのに必要な外力を決定する際に、当該オブジェクト又はオブジェクト列が障害物から受ける摩擦力を考慮してもよい。摩擦力は、当該オブジェクト又はオブジェクト列の仮想質量、当該オブジェクト又はオブジェクト列のサイズ、当該オブジェクト又はオブジェクト列の面形状、障害物の仮想質量、障害物のサイズ、障害物の面形状、仮想重力の加速度、仮想媒質の密度などに基づき設定される。
従って、プレーヤは、オブジェクト又はオブジェクト列の移動経路に障害物がある場合には、一定以上の押圧力及びスライド力でスライド操作しなければオブジェクト又はオブジェクト列を動かすことはできないことになる。
また、ゲーム制御部214は、ホールド中のオブジェクト又はオブジェクト列が障害物に一定以上の勢い(加速度)で衝突した場合には、衝突の勢い(加速度)に応じて障害物を動かす。なお、オブジェクト空間内の少なくとも一部のオブジェクトの動きは、他のオブジェクトの動きに影響を与え得るものとし、オブジェクト空間1500内の各オブジェクトの動きは、ゲーム制御部214によって適宜に制御される(以下も同様。)。
従って、プレーヤは、オブジェクト又はオブジェクト列をドラッグし、他のオブジェクトへ衝突させることで、他のオブジェクトを動かすこともできる。よって、プレーヤは、オブジェクト又はオブジェクト列のドラッグにより、オブジェクト空間1500内に存在するオブジェクト群の全体を撹拌することもできる(図23を参照)。
4−4−5.仮想連結力
ゲーム制御部214は、タッチ位置を示す信号(タッチ位置信号)及び押圧力の大きさを示す信号(押圧力信号)を受信すると、ゲーム画面における当該タッチ位置にオブジェクトが表示中であるか否かを判定し、表示中であった場合には、当該表示中のオブジェクトがプレーヤによってホールドされたとみなす(図7)。
そして、ゲーム制御部214は、ホールド中のオブジェクトの内部に仮想連結力を発生させる。例えば、ゲーム制御部214は、ホールド中のオブジェクトから作用距離未満の位置に同属のオブジェクトの少なくとも一部が存在する場合に、当該同属のオブジェクトを、ホールド中のオブジェクトに接触させ、かつ、当該同属のオブジェクトの位置を、オブジェクトの位置に追従させる。
具体的に、ゲーム制御部214は、例えば以下の処理(1)〜(4)を実行する。
(1)ゲーム制御部214は、オブジェクト属性テーブル(図5A)を参照し、ホールド中のオブジェクトに発生させるべき仮想連結力(同属のオブジェクトの間で作用する仮
想連結力)の範囲及び作用距離を認識する。
(2)ゲーム制御部214は、ホールド中のオブジェクトに発生させる仮想連結力の大きさを、認識した範囲の中心値と同じ値に設定する。
(3)ゲーム制御部214は、ホールド中のオブジェクトに発生させる仮想連結力の大きさ(強度)を、押圧力信号が示す押圧力の大きさに応じて調節する。但し、ゲーム制御部214は、調節の範囲を、当該認識した範囲内に収める。
(4)ゲーム制御部214は、ホールド中のオブジェクトに発生させる仮想連結力の作用距離を、認識した作用距離と同じ値に設定する。
従って、プレーヤは、例えば図9に示すとおりホールド中のオブジェクトOBA1をドラッグして同属のオブジェクトOBA2に接触又は近接(作用距離未満に接近)させることにより、当該同属のオブジェクトOBA2をホールド中のオブジェクトOBA1に連結させることができる。図9において、オブジェクトOBA1の内部に描かれた矢印は、仮想連結力のイメージである。
更に、ゲーム制御部214は、ホールド中のオブジェクトに同属のオブジェクトが連結されると、ホールド中のオブジェクトの内部に発生していた仮想連結力を、当該同属のオブジェクトの側へと伝達させる。
以下、互いに連結されたオブジェクトからなる2以上のオブジェクトの全体を「オブジェクト列」と称し、ホールド中のオブジェクトの側をオブジェクト列の先頭側とし、ホールド中のオブジェクトと反対の側をオブジェクト列の後尾側とする。
図9において、オブジェクトOBA2の内部に描かれた1対の矢印は、オブジェクトOBA1への連結によりオブジェクトOBA2の内部に発生した仮想連結力のイメージである。オブジェクトOBA2の先頭側に発生した仮想連結力は、オブジェクトOBA1の後尾側に発生した仮想連結力と釣り合っており(連結により相殺されており)、オブジェクトOBA2の後尾側に発生した仮想連結力は、他の同属のオブジェクト(オブジェクトOBA3)を引き寄せる。
同様に、ゲーム制御部214は、オブジェクト列に同属のオブジェクトが新たに連結されると、オブジェクト列の内部に発生していた仮想連結力を、新たに連結されたオブジェクトの側へと伝達させる。
図9において、オブジェクトOBA3の内部に描かれた1対の矢印は、オブジェクトOBA2への連結によりオブジェクトOBA3の内部に発生した仮想連結力の概念である。オブジェクトOBA3の先頭側に発生した仮想連結力は、オブジェクトOBA2の後尾側に発生した仮想連結力と釣り合っており(連結により相殺されており)、オブジェクトOBA3の後尾側に発生した仮想連結力は、他の同属のオブジェクト(オブジェクトOBA4)を引き寄せる。
図9において、オブジェクトOBA4の内部に描かれた1対の矢印は、オブジェクトOBA3への連結によりオブジェクトOBA4の内部に発生した仮想連結力の概念である。オブジェクトOBA4の先頭側に発生した仮想連結力は、オブジェクトOBA3の後尾側に発生した仮想連結力と釣り合っており(連結により相殺されており)、オブジェクトOBA4の後尾側に発生した仮想連結力は、他の同属のオブジェクト(オブジェクトOBA5)を引き寄せる。
図9において、オブジェクトOBA5の内部に描かれた1対の矢印は、オブジェクトOBA4への連結によりオブジェクトOBA5の内部に発生した仮想連結力の概念である。オブジェクトOBA5の先頭側に発生した仮想連結力は、オブジェクトOBA4の後尾側に発生した仮想連結力と釣り合っており(連結により相殺されており)、オブジェクトOBA5の後尾側に発生した仮想連結力は、他の同属のオブジェクトを引き寄せることが可能である。
つまり、本実施形態における仮想連結力は、ホールド中のオブジェクトから離れる方向に向かって伝達する。
従って、プレーヤは、ホールド中のオブジェクトOBA1をドラッグすることで、同属のオブジェクトOBA2、OBA3、OBA4、OBA5をオブジェクトOBA1へ直列に連結させつつ、互いに連結されたオブジェクトOBA1、OBA2、OBA3、OBA4、OBA5の全体(オブジェクト列)を蛇状に動かすことができる。
ここで、プレーヤは、ホールド中のオブジェクトOBA1を例えば図10に示すとおりゲーム画面の上方向にドラッグすれば、オブジェクト列の全体を引き上げることも可能である。
また、プレーヤは、ホールド中のオブジェクトOBA1を例えば図11に示すとおり未連結の同属のオブジェクトOBA6に近接させることで、図12〜図16に示すとおり当該オブジェクトOBA6をオブジェクト列の後尾に連結させることもできる。図12〜図16には、オブジェクト列の先頭に接触した同属のオブジェクトOBA6がオブジェクト列の先頭に連結され、その後、オブジェクト列の最後尾に向かって徐々に移動する様子が時系列順に表されている。つまり、本実施形態のゲーム制御部214は、同属のオブジェクトOBA6がオブジェクト列の何れかの部位に近接した時点でオブジェクトOBA6をオブジェクト列へ連結させるが(図13)、その後、オブジェクト列の移動に従って、オブジェクトOBA6の連結先をオブジェクト列の最後尾へと変位させる(図14〜図16)。
従って、プレーヤは、自分の指先が磁石になったような感覚を楽しむことができる。また、プレーヤは、自分の指先に引き寄せられるオブジェクトを次々と連結させ、オブジェクト列に含まれるオブジェクトの数(連結数)を増やすという感覚を楽しむこともできる。
また、プレーヤは、オブジェクト空間1500内でオブジェクト列を例えば図23に示すとおり自在に引き回すこともできる。仮想連結力が十分に高ければ、オブジェクト列を他属のオブジェクトを衝突させて動かしたり、オブジェクト列に同属のオブジェクトを連結させたりすることができる。これによって、プレーヤは、オブジェクト空間1500内におけるオブジェクト群を撹拌することができる。
但し、前述したとおり、プレーヤは一定以上の押圧力又はスライド力でスライド操作を行わなければオブジェクト列を動かすことはできない。また、オブジェクト列の仮想連結力と比して強い力で他属のオブジェクトがオブジェクト列に衝突した場合には、オブジェクト列の連結が解除される可能性もある。よって、プレーヤは、スライド操作の押圧力やスライド力を適度に制御する必要がある。
4−4−6.オブジェクトのリリース及び消滅
ゲーム制御部214は、ホールド中のオブジェクトがリリースされると、仮想外力及び
仮想連結力を消滅させる。但し、ゲーム制御部21は、オブジェクト属性テーブル(図5A)を参照し、ホールドしていたオブジェクトのタイムラグを認識する。そして、ゲーム制御部214は、仮想連結力を完全に消滅するまでの時間を、認識したタイムラグと同じ時間に設定する。
従って、プレーヤは、例えば図16に示すとおりオブジェクト列を引き上げた状態でホールド中のオブジェクトOBA1をリリースすると(図17)、オブジェクト列を構成していた全てのオブジェクトOBA1、OBA2、OBA3、OBA4、OBA5、OBA6を、所定時間の経過後に図18、図19に示すとおり自由落下させることができる。
そして、ゲーム制御部214は、リリース後、上述した消滅条件を満たす同属のオブジェクト群が存在するか否か判定し、存在する場合には、当該オブジェクト群をオブジェクト空間1500から消滅させる。図19、図20には、オブジェクト空間1500からオブジェクトOBA1〜OBA6が消滅するときの状態を示した。また、このように、オブジェクト空間の一部のオブジェクト(オブジェクトOBA1〜OBA6)が消滅すると、オブジェクト空間1500内におけるオブジェクトの位置関係が変化する可能性がある。図21には、消滅せずに残されたオブジェクトの一部の姿勢が不安定となり(支えとなっていたオブジェクトが消滅したため)、仮想重力に従って落下した後の状態を示した。
従って、プレーヤは、自分がホールドしたオブジェクトをリリースするまでの期間中に、仮想連結力を利用してなるべく多くの同属のオブジェクトを集めておく(互いに接触又は近接させておく)ことにより、リリース後に消滅可能なオブジェクトの個数を増やすことができる。
さらに、オブジェクトの消滅後にオブジェクトの位置関係が変化すると、消滅条件を満たす同属のオブジェクト群が新たに発生する可能性もある。その場合は、オブジェクトの消滅の連鎖が起こるので、プレーヤは、少ない手数で多くのオブジェクトを消去できたという爽快感を味わうことができる。
4−4−7.オブジェクトの補充
ゲーム制御部214は、オブジェクト空間1500からオブジェクト群を消去した場合には、オブジェクト空間1500へオブジェクトを補充する。図22には、オブジェクトが補充される様子を示した。図22では、補充されるオブジェクトが反重力方向から重力方向に向かって落下する様子を示している。
ゲーム制御部214は、例えば、補充するオブジェクトの個数を、例えば消去したオブジェクト群に含まれるオブジェクトの個数に応じた数に設定する。「オブジェクトの個数に応じた数」とは、オブジェクトの個数と同じ数、オブジェクトの個数に比例した数などのことである。
また、ゲーム制御部214は、補充するオブジェクトの各々の属性を、例えばランダムに設定する。また、ゲーム制御部214は、オブジェクトの補充される頻度を、属性毎に予め決められた頻度に設定する。
また、ゲーム制御部214は、例えば、ゲーム画面上に配置された落下ボタン(Dropボタン)100Bをプレーヤがタッチ操作したタイミングでオブジェクトの補充を行ってもよい(図6)。
また、ゲーム制御部214は、例えば、定期的に所定数のオブジェクトを補充してもよい。また、その場合は、オブジェクト空間1500がオブジェクトで充満された時点(新
規の補充ができない状態となった時点)で、プレーヤのミス(プレーヤの得点を原点する、ゲームの続行を禁止するなど)としてもよい。
なお、以下では、オブジェクト空間1500からオブジェクト群が消去される度にオブジェクトが補充される場合を想定する。
4−4−8.オブジェクトの動き難さ
ゲーム制御部214は、オブジェクト属性テーブルに基づき、オブジェクト空間1500に存在する各オブジェクトの動き難さを制御する。ここでは、オブジェクト空間1500内で静止中のオブジェクトを移動させるのに必要な仮想外力の大きさのことを「オブジェクトの動き難さ」という。
オブジェクト空間1500におけるオブジェクトの動き難さは、実空間における物体の動き難さと同様に設定することができる。具体的に、ゲーム制御部214は、オブジェクト空間1500におけるオブジェクトの動き難さを、他のパラメータとの間で以下の(1)〜(5)の関係を満たすように制御する。
(1)オブジェクトの動き難さは、オブジェクトの仮想質量が大きいほど大きい。
(2)オブジェクトの動き難さは、オブジェクトの面形状が複雑であるほど大きい。例えば、オブジェクトの面形状が粗いときほど動き難さは大きく、オブジェクトの面形状が滑らかであるときほど動き難さは小さくなる。
(3)オブジェクトの動き難さは、オブジェクトの移動経路に存在する他属のオブジェクト(障害物)から受ける摩擦力が大きいほど大きい。摩擦力は、オブジェクトの面形状が複雑であるときほど大きく、障害物の面形状が複雑であるときほど大きい。
(4)オブジェクトの動き難さは、オブジェクトに加わる仮想重力が大きいほど大きい。オブジェクトに加わる仮想重力は、オブジェクトに加わる仮想重力の加速度が大きいほど大きく、オブジェクトの仮想質量が大きいほど大きい。
(5)オブジェクトの動き難さは、オブジェクトに加わる仮想浮力が小さいほど大きくなる。オブジェクトに加わる仮想浮力は、オブジェクト空間1500に充填される仮想媒質の比重が大きいほど大きく、オブジェクトのサイズが大きいほど大きい。
4−5.得点の価値設定
ゲーム演算部215は、オブジェクト空間1500からオブジェクト群が消去されると、消去されたオブジェクト群に含まれるオブジェクトの属性に応じてオブジェクト属性テーブル及びオブジェクト空間1500の設定データを参照し、当該オブジェクトの動き難さを計算する。各パラメータと、オブジェクトの動き難さとの関係は、前述したとおりである。
但し、得点の価値を設定するために計算すべきなのは、あくまでも属性間での相対的な動き難さ(相対動き難さ)であるので、ゲーム演算部215は移動経路、仮想媒質、仮想重力加速度を必ずしも考慮しなくてもよい。よって、ゲーム演算部215は、オブジェクトの属性間の相対動き難さを予め記憶しておいてもよい。
一方、ゲーム演算部215は、オブジェクト空間1500からオブジェクト群が消去されると、消去されたオブジェクト群に含まれるオブジェクトの属性に応じてオブジェクト属性テーブルを参照し、当該オブジェクトの連結し難さを計算する。
この計算では、例えば、ゲーム演算部215は、仮想連結力が低いときほど連結し難さを大きくし、仮想連結力の作用距離が短いときほど連結し難さを大きくし、タイムラグが小さいときほど連結し難さを大きくする。
次に、ゲーム演算部215は、消去したオブジェクトの動き難さと、消去したオブジェクトの連結し難さと、消去したオブジェクトの個数とに応じて、プレーヤの得点の価値を設定する。
例えば、ゲーム演算部215は、消去したオブジェクトの動き難さが大きいときほど、また消去したオブジェクトの連結し難さが大きいときほど、また消去したオブジェクトの個数が多いときほど、プレーヤの得点の価値を高く設定する。
そして、ゲーム演算部215は、設定した得点をプレーヤのスコアへ加算する。
従って、プレーヤには、動かし難いオブジェクトや連結し難いオブジェクトを積極的に消滅させようという意欲が働くことになる。
4−6.フロー
図24は、ゲーム中における端末装置20の処理の流れを示すフローチャートである。このゲーム処理は、プレーヤからの開始指示に応じて実行され、プレーヤからの終了指示に応じて終了される。開始指示及び終了指示の入力は、入力部260を介して行われる。また、このゲーム処理は、原則的には端末装置20の処理部200において実行される。但し、処理部200は、ゲーム処理の全部又は一部をサーバ装置10との連動により実行することも可能である。また、処理部200を構成する要素の機能の割り当てについては既に説明済みであるので、以下では各ステップの主体が「処理部200」であるとして説明する。
先ず、処理部200は、表示部290に対するオブジェクト空間1500の表示を開始する(S11)。オブジェクト空間1500には、前述したとおり属性の異なる複数種類のオブジェクトOBA、OBB、OBC、OBDが複数ずつ配置される。
次に、処理部200は、プレーヤがオブジェクト空間1500に存在する何れかのオブジェクトをタッチ操作しない限り、ホールド判定(S13)と、静止判定(S25)と、消滅判定(S26)と、終了判定(S33N)とを繰り返す。なお、消滅判定(S26)にて消滅条件を満たすオブジェクト群が検出された場合(S26Y)の処理(S27〜S31)については、後述する。
その後、オブジェクト空間1500に存在する何れかのオブジェクトをプレーヤがタッチ操作によりホールドすると(S13Y)、処理部200は、ホールドされたオブジェクトに前述した仮想連結力を発生させ(S15)、かつ、ホールド中のオブジェクトに前述した仮想外力を発生させる(S17)。仮想連結力、仮想外力の詳細は、前述したとおりである。
その後、ホールド中のオブジェクトがリリースされない限り(S19N)、処理部200は、オブジェクト空間1500に存在する各オブジェクトの位置(動き)を仮想連結力及び仮想外力に従って制御する。仮想連結力及び仮想外力に従ったオブジェクトの動きについては、前述したとおりである。
その後、ホールド中のオブジェクトがリリースされると(S19Y)、処理部200は
、仮想外力及び仮想連結力を解除し(S21)、静止判定(S25)へ移行する。
次に、処理部200は、オブジェクト空間1500内の全ブロックが所定時間(例えば2秒)に亘って静止していたか否かを判定し(S25)、所定時間に亘って静止した場合には(S25)、消滅判定(S26)へ移行する。
次に、処理部200は、前述した消滅判定を満たすオブジェクト群がオブジェクト空間1500内に存在する場合には(S26Y)、当該オブジェクト群をオブジェクト空間1500から消滅させ(S27)、そうでない場合には(S26N)、消滅の処理(S27)を実行せずに、終了判定(S33)へ移行する。
また、処理部200は、オブジェクト空間1500からオブジェクト群を消滅させると(S27)、当該オブジェクト群に含まれるオブジェクトの個数及び属性に応じた得点をプレーヤのスコアへ反映させ(S29)、かつ、消滅させたオブジェクトの個数に応じた数のオブジェクトをオブジェクト空間1500へ補充し(S31)、終了判定(S33)へ移行する。
そして、処理部200は、終了指示がプレーヤから入力された場合に(S33Y)フローを終了する。
4−7.実施形態の作用効果
以上説明したとおり、上記実施形態の端末装置20は、属性の異なる複数種類のオブジェクトOBA、OBB、OBC、OBDを含むオブジェクト群をオブジェクト空間1500へ配置する(S11)。
また、上記実施形態の端末装置20は、オブジェクト空間1500に存在する少なくとも1つのオブジェクトをプレーヤがホールドした場合に(S13)、ホールド中のオブジェクトへプレーヤのドラッグ操作に応じた仮想外力を加える(S17)。
また、上記実施形態の端末装置20は、ホールド中のオブジェクトに対して、同属のオブジェクト間で伝達可能な仮想連結力を発生させる(S15)。
また、上記実施形態の端末装置20は、仮想外力及び仮想連結力に従い、オブジェクト空間1500における各オブジェクトの動きを制御する(S15、S17)。
また、上記実施形態の端末装置20は、オブジェクト空間1500内において互いに接触又は近接する同属のオブジェクト群が消滅条件を満たす場合に(S26Y)、当該オブジェクト群をオブジェクト空間1500から消去する(S27)。
従って、プレーヤは、ホールドしたオブジェクトで同属の1又は複数のオブジェクトを引き寄せ、当該同属のオブジェクトを当該ホールドしたオブジェクトへ連結させるという感覚を楽しむことができる。このときのオブジェクトの動きは、磁石に引き寄せられる磁性体の動きに似ている。
また、プレーヤは、自分のホールドしたオブジェクトをドラッグすることにより、オブジェクト空間内に点在していた同属の複数のオブジェクトをも互いに近接した位置に集めることができるので、消滅可能なオブジェクトの個数を自分の意思で増やすという楽しみ方をすることができる。連結数を増やすには手間がかかるが、その分だけ消去されるオブジェクトの個数が増えるので、より高い爽快感をプレーヤが感じることになる。このため、プレーヤは、より高い爽快感を求めて連結数の向上を目指すと考えられる。
また、プレーヤは、自分のホールドしたオブジェクトと、当該オブジェクトに連結したオブジェクとからなるオブジェクト列をオブジェクト空間内でドラッグことにより、オブジェクト空間に存在するオブジェクト群を撹拌し、当該オブジェクト群に含まれる個々のオブジェクトの位置関係に変化を生じさせることもできる。
また、オブジェクトの消滅後にオブジェクトの位置関係が変化すると、消滅条件を満たす同属のオブジェクト群が新たに発生する可能性もあって、オブジェクトの消滅の連鎖という現象も起こり得る。この場合、プレーヤは、少ない手数で多くのオブジェクトを消去できたという更なる爽快感を味わうことも可能である。
従って、プレーヤは、シンプルな操作であるスライド操作によりオブジェクトに新規かつ面白みのある動きをさせ、パズルゲームならではの爽快感を味わうことができる。
4−8.実施形態の補足
因みに、以上の実施形態において、ホールド中のオブジェクトに加わる力(ちから)のベクトルを可視化すると、例えば図25に示すとおりである。なお、図25では、オブジェクト空間1500を三次元空間とした。
つまり、上述したゲーム制御部214は、ホールド中のオブジェクトOBの動きを制御する際に、仮想外力80b、仮想浮力80c、仮想重力80d、仮想摩擦力80fなどのパラメータを考慮したアルゴリズム(仮想物理法則)に従う。
但し、仮想摩擦力80fは、オブジェクトOBに接触中の障害物(他のオブジェクト、オブジェクト空間の壁など)から受ける力であって、接触中の障害物が存在しない場合にはゼロベクトルとなる。
また、ゲーム制御部124は、ホールド中のオブジェクトOBの近傍に、仮想連結力の作用する範囲80aを設定する。すなわち、ゲーム制御部124は、ホールド中のオブジェクトOBに仮想連結力を発生させる。そして、ゲーム制御部124は、範囲80aに交差した同属のオブジェクトの動きを、不図示の仮想連結力と、同属のオブジェクトに加わる力(ちから)とに従って制御する。
従って、本実施形態の端末装置20は、オブジェクト空間1500内で物理法則(磁力相当の連結力を含む)を再現するシミュレーション装置としての役割を果たす。
5.変形例
5−1.オブジェクトの質感等について
ゲーム制御部214は、オブジェクト空間1500に存在する各オブジェクトの質感を、各種の質感に設定することができる。ゲーム制御部214は、オブジェクトの質感を例えばぬいぐるみの質感に設定してもよいし、ボールの質感に設定してもよいし、動物としてもよいし、金属の質感にしてもよい。また、ゲーム制御部214は、オブジェクトの質感をぬいぐるみの質感にする場合は、当該オブジェクトに対してぬいぐるみ相当の弾力を付与するとよい。また、ゲーム制御部214は、オブジェクトの質感をボールの質感にする場合は、当該オブジェクトに対してボール相当の弾力を付与するとよい。
因みに、本実施形態のオブジェクト空間1500には、仮想連結力が発生し、仮想連結力は、実空間における磁力と似た振る舞いをするので、オブジェクトを金属オブジェクト(金属ブロック、乗り物を模したオブジェクト、ロボットを模したオブジェクト、クリップを模したオブジェクト、ネジなどの部品を模したオブジェクト、その他の金属のオブジ
ェクト)とすることで、オブジェクトの動きにリアリティを持たせることができる。また、音処理部230は、金属オブジェクトと金属オブジェクトとが連結するときに、音出力部292を介して金属同士が連結するときの音を発するようにしてもよい。
また、ゲーム制御部214は、仮想連結力の発生の有無及び仮想連結力の発生箇所をプレーヤへ知らせるために、仮想連結力の発生箇所に連結具を発現させてもよい。例えば、ぬいぐるみオブジェクトや動物オブジェクトにおける仮想連結力の発生箇所から手指を発現させ、2つのオブジェクトが連結すると2つのオブジェクト同士が手指を繋ぐようにしてもよい。
5−2.押圧力によるパラメータ調整について
上記の実施形態の端末装置20は、タッチパネルへの押圧力に応じて仮想連結力を調節したが、この調節の機能は端末装置20に搭載されなくてもよいし、調節の機能が端末装置20に発現するか否かをプレーヤに予め選択させてもよい。また、押圧力の感度(押圧力と仮想連結力との関係)は、調節可能であってもよいし、調節をプレーヤに行わせてもよい。なお、プレーヤによる選択又は調節等は、入力部260を介して行われる。
上記の実施形態の端末装置20は、タッチパネルへの押圧力に応じて仮想外力を調節したが、この調節の機能は端末装置20に搭載されなくてもよいし、調節の機能が端末装置20に発現するか否かをプレーヤに予め選択させてもよい。また、押圧力の感度(押圧力と仮想外力との関係)は、調節可能であってもよいし、調節をプレーヤに行わせてもよい。なお、プレーヤによる選択又は調節等は、入力部260を介して行われる。
5−3.仮想反発力について
ゲーム制御部214は、オブジェクト空間1500内に存在する少なくとも2つのオブジェクトの間に、マイナスの仮想連結力(仮想反発力)を発生させてもよい。マイナスの仮想連結力は、2つのオブジェクトに対して互いに反発するような動きをさせてもよい。例えば、ゲーム制御部214は、属性の異なる2種類のオブジェクトの間にマイナスの仮想連結力を発生させてもよい。このようにすれば、例えば、プレーヤは、自分の指定したオブジェクトで他属の1又は複数のオブジェクトを追い払うという感覚を楽しむことができる。
5−4.加速度センサを利用したシャッフルについて
上記の実施形態の端末装置20が入力部260として加速度センサを搭載している場合には、ゲーム制御部214は、仮想重力の方向を加速度センサの出力に応じて変化させたり、端末装置20に実際に加えられた外力に応じてオブジェクトへ仮想外力を加えたりしてもよい。この場合、プレーヤは、端末装置20の全体を動かすことによってオブジェクト空間1500内のオブジェクト群を撹拌することができる。
5−5.特殊オブジェクトについて
ゲーム制御部214は、属性が可変な特殊オブジェクト(以下、「レインボーオブジェクト」と称す。)をオブジェクト空間1500に配置してもよい。レインボーオブジェクトは、属性が可変なオブジェクトであり、例えば、プレーヤにとってゲームで高得点を得るために有利に働くオブジェクト、又はプレーヤにとって不利に働くオブジェクトである。
例えば、ゲーム制御部214は、他の属性のオブジェクトよりも低頻度でレインボーオブジェクトをオブジェクト空間1500へ補充(投入)する。
また、例えば、ゲーム制御部214は、レインボーオブジェクトの外観を、他のオブジ
ェクトの外観とは異なるものに設定する。例えばゲーム制御部214は、レインボーオブジェクトの色を他のオブジェクトよりも目立つ色(例えば、虹色、時間変化する色、メタリックカラーなど)に設定し、レインボーオブジェクトの形状を、他のオブジェクトとは異なる形状(例えば、特大の球体)に設定する。
そして、ゲーム制御部214は、レインボーオブジェクトの属性(少なくとも仮想連結力に関する属性)を、例えば、プレーヤがホールドしたオブジェクトの属性と同じに設定する。この場合、ホールド中のオブジェクトにレインボーオブジェクトが連結されるので、プレーヤが高得点を得られる確率を高めることができる。
なお、ゲーム制御部214は、プレーヤがホールドしたオブジェクトに対してマイナスの仮想連結力(仮想反発力)を有する属性にレインボーオブジェクトの属性を設定してもよい。
また、ゲーム制御部214は、レインボーオブジェクトをオブジェクト空間1500に投入するためにプレーヤが満たすべき条件を定めることもできる。
例えば、ゲーム制御部214は、レインボーオブジェクトの属性を、複数の属性の間でサイクリックに時間変化させ、プレーヤがレインボーオブジェクトをタッチ操作した時点における属性を、当該時点以降におけるレインボーオブジェクトの属性に固定してもよい。その場合は、プレーヤがレインボーオブジェクトをタッチ操作したタイミングでレインボーオブジェクトの属性が決まるので、プレーヤがレインボーオブジェクトの属性を自分の意思で設定できるという面白さがある。
以上のレインボーオブジェクトがオブジェクト空間1500に配置されれば、プレーヤの状況を急激に好転させたり急激に悪化させたりするのに(ゲームの展開を急激に変化させるのに)有効である。
5−6.ポインティングデバイスについて
上記の実施形態では、端末装置20のユーザインタフェースとしてタッチパネルを利用したが、ゲーム画面上のカーソル(ポインタ)を移動させる他のポインティングデバイスを利用することもできる。以下、他のポインティングデバイスの例として、マウス及びタッチトラックパッドを順に説明するが、トラックボールなどの他種のポインティングデバイスについても同様に利用が可能である。
5−6−1.マウスについて
以下、マウスを利用する場合の一例を説明する。
この場合、ユーザは、ゲーム画面に出現している何れかのオブジェクト上にカーソル(ポインタ)が位置しているときにマウスの確定ボタンを押下することで、当該オブジェクトをホールド(「ホールド」の定義は前述のとおりである。)することができる。但し、ここでいう「確定ボタン」には、マウスのいわゆる左ボタンだけでなく、マウスにおいて確定ボタンの機能が割り付けられた部分なども含まれるものとする(以下、同様。)。
また、ユーザは、ホールド後にマウスの確定ボタンを押下しながらマウスをスライドさせ、ゲーム画面内のカーソル(ポインタ)を移動させることで、当該オブジェクトをドラッグすることができる(「ドラッグ」の定義は前述のとおりである。)。
また、ユーザは、オブジェクトのホールド中にマウスの確定ボタンを解除することで、当該オブジェクトをリリースすることができる(「リリース」の定義は前述のとおりであ
る。)。
なお、以上のホールド、ドラッグ、リリース等のユーザ操作を検出するために、ゲーム制御部214は、タッチパネルを利用した場合と同様、タッチ検出処理部211と協働してゲーム画面の各フレームにおけるタッチ位置を検出する。但し、マウスが利用された場合、ゲーム制御部214は、マウスの確定ボタンが押下されているときにおけるカーソル(ポインタ)の位置を、当該タッチ位置として検出する。
また、ゲーム制御部214は、マウスの確定ボタンに押圧力の検知機能が搭載されていない場合には、押圧力に応じて仮想外力等を制御する機能(前述)をオフし、マウスの確定ボタンに押圧力の検知機能が搭載されている場合には、ゲーム制御部214は、押圧力に応じて仮想外力等を制御する機能(前述)をオンするものとする。
5−6−2.タッチトラックパッドについて
以下、タッチトラックパッドを利用する場合の一例を説明する。
この場合、ユーザは、ゲーム画面に出現している何れかのオブジェクト上にカーソル(ポインタ)が位置しているときにタッチトラックパッドの確定ボタンを押下することで、当該オブジェクトをホールド(「ホールド」の定義は前述のとおりである。)することができる。但し、ここでいう「確定ボタン」には、タッチトラックパッドに設けられた確定ボタンだけでなく、タッチトラックパッドにおいて確定ボタンの機能が割り付けられた部分なども含まれるものとする(以下、同様。)。
また、ユーザは、ホールド後にタッチトラックパッドの確定ボタンを押下しながら手指でタッチトラックパッドをなぞり、ゲーム画面内のカーソル(ポインタ)を移動させることで、当該オブジェクトをドラッグすることができる(「ドラッグ」の定義は前述のとおりである。)。
また、ユーザは、オブジェクトのホールド中にタッチトラックパッドの確定ボタンを解除することで、当該オブジェクトをリリースすることができる(「リリース」の定義は前述のとおりである。)。
なお、以上のホールド、ドラッグ、リリース等のユーザ操作を検出するために、ゲーム制御部214は、タッチパネルを利用した場合と同様、タッチ検出処理部211と協働してゲーム画面の各フレームにおけるタッチ位置を検出する。但し、タッチトラックパッドが利用された場合、ゲーム制御部214は、タッチトラックパッドの確定ボタンが押下されているときにおけるカーソル(ポインタ)の位置を、当該タッチ位置として検出する。
また、ゲーム制御部214は、タッチトラックパッドの確定ボタンに押圧力の検知機能が搭載されていない場合には、押圧力に応じて仮想外力等を制御する機能(前述)をオフし、タッチトラックパッドの確定ボタンに押圧力の検知機能が搭載されている場合には、押圧力に応じて仮想外力等を制御する機能(前述)をオンするものとする。
5−7.オブジェクト空間及び視点について
上記の実施形態の端末装置20は、オブジェクト空間1500の次元を2次元としたが、3次元としてもよい。また、上記の実施形態の端末装置20は、仮想カメラの視点を切り替え可能としてもよい。また、上記の実施形態の端末装置20は、仮想カメラの視点をプレーヤが切り替え可能としてもよい。
5−8.処理部の機能分担について
上述した処理部200に含まれる各要素の機能分担については、前述したものに限定されることはない。例えば、ゲーム処理部214の機能の一部は、オブジェクト空間設定部210によって実行されてもよい。また、例えば、ゲーム演算部215の機能の一部又は全部は、ゲーム制御部214によって実行されてもよい。また、例えば、表示制御部212の機能の一部又は全部は、ゲーム制御部214によって実行されてもよい。また、ゲーム制御部214の機能の一部又は全部は、表示制御部212によって実行されてもよい。また、端末装置20には、処理部200の機能の一部又は全部を実現する専用の回路(ハードウエア)が搭載されてもよい。
5−9.その他の変形例
本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
例えば、本実施形態は、一のサーバ装置10によって各ゲームを端末装置20に提供してもよいし、複数のサーバ装置10を連動させてサーバシステムを構築し、各ゲームを端末装置に提供してもよい。
さらに、本実施形態においては、サーバ装置10によって提供されたゲームを端末装置20によって実行されているが、タッチ検出処理部211を除き、上記の端末装置20の処理部200の各機能及びゲームプログラムの実行をサーバ装置10で実行し、当該端末装置20は、操作入力とストリーミングによる画像表示を実行することによって、上記のゲームを実現してもよい。
また、本実施形態においては、ゲーム装置に本発明の端末装置を適用しているが、ゲーム装置に限らず、スマートフォン、タブレット型情報端末装置、パーソナルコンピュータ、モニター又はテレビなどのタッチパネルを用いて操作入力を実行可能な端末装置であれば、本発明の端末装置を提供することができる。
本発明は、実施形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施形態で説明した構成に公知技術を付加した構成を含む。
上記のように、本発明の実施形態について詳細に説明したが、本発明の新規事項及び効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。したがって、このような変形例はすべて本発明の範囲に含まれるものとする。