まず本発明の背景および概要を説明する。情報処理システムの一例であるゲームシステムでは、ユーザがゲームプレイ中に、ゲームソフトウェアにより予め設定された条件(ミッション)をクリアすると、ゲームソフトウェアより、達成した条件に応じた仮想的な表彰品が付与される。ミッションは、たとえばレーシングゲームにおいて特別なレースで優勝することや、格闘ゲームにおいて特定の敵キャラクタを倒すことなど、ゲームソフトウェアにおいて適宜設定される。
実施例において、付与される仮想的な表彰品を「トロフィ」と呼ぶ。トロフィの種類は複数存在し、実施例ではブロンズ、シルバー、ゴールド、プラチナの4つのグレード(種類)のトロフィを用意する。ブロンズ、シルバー、ゴールドの3つのグレードは、ミッションの難易度に依存し、ブロンズトロフィには達成しやすいミッションが割り当てられ、またゴールドトロフィには達成が困難なミッションが割り当てられる。なおプラチナトロフィはゲーム中の個々のミッションには対応せず、ユーザが全てのミッションをクリアすることでユーザに付与される。
このように獲得したトロフィは、ユーザのゲーム技量の指標となるべきものであり、ユーザは獲得したトロフィ数を、ネットワーク上で公開することで、他のユーザと競ったり、また自慢できる。そのため自力でミッションに挑んでトロフィを集めるユーザは多く、そのようなユーザは、自分以外のユーザが代わりにプレイすることを望まない傾向がある。そのためゲームプレイの中断中に、別のユーザが勝手にプレイを行って、トロフィを獲得してしまったようなケースでは、システム上でトロフィの獲得事実を消す機能がなければ、獲得済みのトロフィは再度獲得できないため、ゲームプレイの達成感が損なわれることにもつながる。そのため実施例では、こうした事態の発生を未然に防止できる仕組みを提案する。
一方で、ゲームユーザの裾野の拡大により、トロフィに対して様々な考えをもつユーザが存在するようになっている。たとえば自分でトロフィを獲得しなくても、別のユーザに代わりにトロフィを獲得してもらって、トロフィ数が増えればよいというユーザもいる。そのようなユーザにとっては、誰がトロフィを獲得したかは問題ではなく、むしろ自分ではトロフィを獲得できないため、他人に獲得してもらいたいこともある。
以上はトロフィに関するユーザ側の考え方であるが、ゲームメーカ側からみれば、トロフィ数を適切なゲーム技量の指標とするべく、トロフィは必ず正規ユーザが獲得しなければならない、という制約を設けたい場合もあり、一方で、誰が獲得しても構わない、という場合もある。
このようにトロフィ獲得に関しては、ユーザやゲームメーカなど様々な思いがあるため、実施例のゲームシステムは、そのような思いを好適に実現できる仕組みを提供することを目的とする。
図1は、本発明の実施例にかかる情報処理システム1を示す。情報処理システム1は、ユーザ端末である情報処理装置10と、サーバ5とを備える。アクセスポイント(以下、「AP」とよぶ)8は、無線アクセスポイントおよびルータの機能を有し、情報処理装置10は、無線または有線経由でAP8に接続して、ネットワーク3上のサーバ5と通信可能に接続する。
情報処理装置10は、ユーザが操作する入力装置6と無線または有線で接続し、入力装置6はユーザが操作した情報を情報処理装置10に出力する。情報処理装置10は入力装置6から操作情報を受け付けるとシステムソフトウェアやアプリケーションソフトウェアの処理に反映し、出力装置4から処理結果を出力させる。情報処理システム1において情報処理装置10はゲームを実行するゲーム装置であり、入力装置6はゲームコントローラなど情報処理装置10に対してユーザの操作情報を供給する機器であってよい。なお入力装置6は、キーボードやマウスなどの入力インタフェースであってもよい。
補助記憶装置2は、HDD(ハードディスクドライブ)やフラッシュメモリなどの大容量記憶装置であり、USB(Universal Serial Bus)などによって情報処理装置10と接続する外部記憶装置であってよく、また内蔵型記憶装置であってもよい。出力装置4は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよく、またコンピュータディスプレイであってもよい。出力装置4は、情報処理装置10に有線ケーブルで接続されてよく、また無線接続されてもよい。
撮像装置であるカメラ7は出力装置4の近傍に設けられ、出力装置4周辺の空間を撮像する。図1ではカメラ7が出力装置4の上部に取り付けられている例を示しているが、出力装置4の側部または下部に配置されてもよく、いずれにしても出力装置4の前方に位置するユーザを撮像できる位置に配置される。カメラ7はステレオカメラであってもよい。
サーバ5は、情報処理システム1のユーザに対してネットワークサービスを提供する。サーバ5は、各ユーザを識別するネットワークアカウントを管理しており、各ユーザは、ネットワークアカウントを用いて、サーバ5が提供するネットワークサービスにサインインする。ユーザは情報処理装置10からネットワークサービスにサインインすることで、サーバ5に、ゲームのセーブデータや、またゲームプレイ中に獲得した仮想的な表彰品であるトロフィを登録できる。ユーザはサーバ5にセーブデータやトロフィを登録しておくことで、ユーザが使用する情報処理装置10とは別の情報処理装置が、サーバ5にアクセスして、セーブデータやトロフィを同期できる。
図1に示す例においては、ユーザAが正規ユーザであって、出力装置4のゲーム画面を見ながらゲームをプレイしている。情報処理装置10がユーザログインを条件として操作を受け付ける端末装置である場合、正規ユーザは、情報処理装置10にログインしたユーザであることを意味する。なお情報処理装置10は、複数ユーザが同時にログインできるように構成されてもよい。なおログインを条件とせずにゲームプレイできる情報処理装置10の場合、正規ユーザは、最初に入力装置6を操作してゲームプレイしたユーザとなる。
この例でユーザBは、非正規ユーザ、すなわちログインしていないユーザである。ユーザBは、情報処理装置10にログインしていないため、ゲームのプレイ権限を有していない。なおユーザBが正規ユーザとしてプレイするためには、ユーザBが情報処理装置10にログインすればよい。
[上面部の構成]
図2(a)は、入力装置上面の外観構成を示す。ユーザは左手で左側把持部78bを把持し、右手で右側把持部78aを把持して、入力装置6を操作する。入力装置6の筐体上面には、入力部である方向キー71、アナログスティック77a、77bと、4種の操作ボタン76が設けられている。筐体上面上において、方向キー71と操作ボタン76の間の平坦な領域には、タッチパッド79が設けられる。タッチパッド79は、ユーザが押すことで下方に沈み込み、またユーザが手を離すと元の位置に復帰する押下式ボタンとしても機能する。
2つのアナログスティック77a、77bの間に機能ボタン80が設けられる。機能ボタン80は、入力装置6の電源をオンし、同時に入力装置6と情報処理装置10とを接続する通信機能をアクティブにするために使用される。入力装置6が情報処理装置10と接続した後は、機能ボタン80は、情報処理装置10にホーム画面を表示させるためにも使用される。
SHAREボタン81は、タッチパッド79と方向キー71の間に設けられる。SHAREボタン81は、情報処理装置10におけるOSないしはシステムソフトウェアに対するユーザからの指示を入力するために利用される。OPTIONSボタン82は、タッチパッド79と操作ボタン76の間に設けられる。OPTIONSボタン82は、情報処理装置10において実行されるアプリケーション(ゲーム)に対するユーザからの指示を入力するために利用される。SHAREボタン81およびOPTIONSボタン82は、いずれもプッシュ式ボタンとして形成されてよい。
[奥側側面部の構成]
図2(b)は、入力装置奥側側面の外観構成を示す。入力装置6の筐体奥側側面の上側には、タッチパッド79が筐体上面から延設されており、筐体奥側側面の下側には、横長の発光部85が設けられる。発光部85は、赤(R)、緑(G)、青(B)のLEDを有し、情報処理装置10から送信される発光色情報にしたがって点灯する。
筐体奥側側面において、上側ボタン83a、下側ボタン84aと、上側ボタン83b、下側ボタン84bとが長手方向の左右対称な位置に設けられる。上側ボタン83a、下側ボタン84aは、それぞれユーザ右手の人差し指、中指により操作され、上側ボタン83b、下側ボタン84bは、それぞれユーザ左手の人差し指、中指により操作される。図示されるように発光部85が、右側の上側ボタン83a、下側ボタン84aの並びと、左側の上側ボタン83b、下側ボタン84bの並びの間に設けられることで、各ボタンを操作する人差し指または中指によって隠れることはなく、カメラ7は、点灯した発光部85を好適に撮像できる。上側ボタン83はプッシュ式ボタンとして構成され、下側ボタン84は回動支持されたトリガー式のボタンとして構成されてよい。
図3は、情報処理装置10のハードウェアブロックを示す。情報処理装置10は、メイン電源ボタン20、電源ON用LED21、スタンバイ用LED22、システムコントローラ24、クロック26、デバイスコントローラ30、メディアドライブ32、USBモジュール34、フラッシュメモリ36、無線通信モジュール38、有線通信モジュール40、サブシステム50およびメインシステム60を有して構成される。
メインシステム60は、メインCPU(Central Processing Unit)、主記憶装置であるメモリおよびメモリコントローラ、GPU(Graphics Processing Unit)などを備える。GPUはゲームプログラムの演算処理に主として利用される。メインCPUはOSを起動し、OSが提供する環境下において、補助記憶装置2にインストールされたアプリケーションを実行する機能をもつ。サブシステム50は、サブCPU、主記憶装置であるメモリおよびメモリコントローラなどを備え、GPUを備えない。
メインCPUは補助記憶装置2やROM媒体44にインストールされているゲームプログラムを実行する機能をもつ一方で、サブCPUはそのような機能をもたない。しかしながらサブCPUは補助記憶装置2にアクセスする機能、サーバ5との間でデータを送受信する機能を有している。サブCPUは、このような制限された処理機能のみを有して構成されており、したがってメインCPUと比較して小さい消費電力で動作できる。これらのサブCPUの機能は、メインCPUがスタンバイ状態にある際に実行される。
メイン電源ボタン20は、ユーザからの操作入力が行われる入力部であって、情報処理装置10の筐体の前面に設けられ、情報処理装置10のメインシステム60への電源供給をオンまたはオフするために操作される。電源ON用LED21は、メイン電源ボタン20がオンされたときに点灯し、スタンバイ用LED22は、メイン電源ボタン20がオフされたときに点灯する。システムコントローラ24は、ユーザによるメイン電源ボタン20の押下を検出する。
クロック26はリアルタイムクロックであって、現在の日時情報を生成し、システムコントローラ24やサブシステム50およびメインシステム60に供給する。
デバイスコントローラ30は、サウスブリッジのようにデバイス間の情報の受け渡しを実行するLSI(Large-Scale Integrated Circuit)として構成される。図示のように、デバイスコントローラ30には、システムコントローラ24、メディアドライブ32、USBモジュール34、フラッシュメモリ36、無線通信モジュール38、有線通信モジュール40、サブシステム50およびメインシステム60などのデバイスが接続される。デバイスコントローラ30は、それぞれのデバイスの電気特性の違いやデータ転送速度の差を吸収し、データ転送のタイミングを制御する。
メディアドライブ32は、ゲームなどのアプリケーションソフトウェア、およびライセンス情報を記録したROM媒体44を装着して駆動し、ROM媒体44からプログラムやデータなどを読み出すドライブ装置である。ROM媒体44は、光ディスクや光磁気ディスク、ブルーレイディスクなどの読出専用の記録メディアである。
USBモジュール34は、外部機器とUSBケーブルで接続するモジュールである。USBモジュール34は補助記憶装置2およびカメラ7とUSBケーブルで接続してもよい。フラッシュメモリ36は、内部ストレージを構成する補助記憶装置である。無線通信モジュール38は、Bluetooth(登録商標)プロトコルやIEEE802.11プロトコルなどの通信プロトコルで、たとえば入力装置6と無線通信する。なお無線通信モジュール38は、ITU(International Telecommunication Union;国際電気通信連合)によって定められたIMT−2000(International Mobile Telecommunication 2000)規格に準拠した第3世代(3rd Generation)デジタル携帯電話方式に対応してもよく、さらには別の世代のデジタル携帯電話方式に対応してもよい。有線通信モジュール40は、外部機器と有線通信し、たとえばAP8を介してネットワーク3に接続する。
図4は、情報処理装置10の機能ブロックを示す。情報処理装置10は、処理部100および受付部102を備える。処理部100は、ゲームソフトウェア120、取得部140、ユーザ認証部142、禁止処理部160、トロフィ獲得処理部170、セーブデータ管理部180および表示処理部190を備える。受付部102は、図3に示す無線通信モジュール38または有線通信モジュール40と、処理部100との間で、データをやり取りする機能をもつ。
図4において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、回路ブロック、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
情報処理装置10は、ログインユーザ認証機能、トロフィ獲得機能およびセーブデータ管理機能を有して構成される。以下、各機能を順に説明する。
<ログインユーザ認証機能>
ユーザ認証部142は、顔認証部144、オブジェクト認識部146、ログインユーザ記憶部148およびユーザ判定部150を有する。ログインユーザ記憶部148はログインしているユーザ情報を記憶し、補助記憶装置2の記憶領域に形成される。既述したように使用中の入力装置6の発光部85は、情報処理装置10により設定された発光色で点灯している。ログインしているユーザAが使用する入力装置6の発光部85は、情報処理装置10からの発光指示により、たとえば青色で点灯している。なお別のユーザが同時にログインする場合には、そのユーザの入力装置6の発光部85は、青以外の色、たとえば赤色で点灯する。このように情報処理装置10は、それぞれのログインユーザの入力装置6の発光色が異なるように管理する。ログインユーザ記憶部148は、ログインユーザと、入力装置6の発光色とを対応付けて記憶する。実施例においてログインユーザ記憶部148は、ユーザAがログインしていることと、ユーザAの入力装置6の発光色が青色であることを対応付けて記憶している。
取得部140は、アプリケーション(ゲーム)を操作するユーザのユーザ情報を取得する。ここでユーザ情報は、その時点でアプリケーションを実際に操作しているユーザに関する情報であり、たとえば入力装置6を触っているユーザを撮像した画像であってよく、また入力装置6を触っているユーザの指紋データであってもよく、また入力装置6を触っているユーザの音声データであってもよい。登録ユーザ情報保持部200は、ユーザを識別するための識別用データを保持する。ユーザ認証部142は、取得部140で取得したユーザ情報と、登録ユーザ情報保持部200に保持された識別用データを用いて、ユーザ認証処理を行う機能をもつ。
なお実施例において、取得部140はユーザ情報としてカメラ7から、ゲームを操作するユーザが撮像された画像を取得する。カメラ7は、出力装置4の前方で入力装置6を操作するユーザを周期的に撮像しており、取得部140は、入力装置6を操作するユーザを含む撮像画像をユーザ情報として取得する。以下に説明するように、ユーザ認証部142は、撮像画像を用いて、顔認識によるユーザ認証処理を実行する。
情報処理装置10において、ユーザはゲームをプレイするためには、情報処理装置10のOSにログインする必要がある。そのためユーザはユーザアカウントを予め取得して、情報処理装置10に様々なユーザ情報を登録している必要がある。以下、ユーザアカウントを情報処理装置10に登録したユーザを、「登録ユーザ」とよぶ。
登録ユーザ情報保持部200は、補助記憶装置2の記憶領域に形成されて、登録ユーザに関する様々な情報を保持し、具体的には、ユーザアカウントに関連付けて、ログイン用パスコード、サーバ5にサインインするためのサインインID、ネットワークアカウント、ユーザのオンラインID(ネットワーク上でのユーザ名)、またユーザを表現するためのユーザアイコンなどを、登録ユーザ情報として保持している。また登録ユーザは、ユーザ認証部142による顔認証処理のために、ユーザアカウントに関連付けて、顔識別用データを登録ユーザ情報として登録している。
ここで顔識別用データは、登録ユーザの顔画像の特徴量データであるが、顔画像データそのものであってもよい。顔識別用データは、顔認証部144による顔認識処理において比較対象とされるデータであり、顔認証部144が採用する顔認識アルゴリズムにしたがって生成される。たとえば顔識別用データは、顔のパーツの相対位置や大きさ、目や鼻やほお骨やあごの形を特徴として抽出したデータであってよい。また顔識別用データは、顔画像の標準データからの差分データとして抽出したデータであってよい。どのような顔識別用データを抽出するかは、採用する顔認識アルゴリズムによって定まり、実施例では顔認証部144が既知の顔認識アルゴリズムを採用している。
図5は、カメラ7によって撮影される画像の一例を示す。この撮影画像には、2人のユーザA、Bが含まれており、ログインしているユーザAが、入力装置6を把持して、ゲームをプレイしている。
取得部140は、カメラ7から撮像画像データを取得する。正規ユーザ(ログインユーザA)のゲームプレイ中、カメラ7は周期的(たとえば1/30秒ごと)に空間を撮像して、撮像画像をUSBモジュール34を経由して取得部140に供給する。取得部140は、カメラ7から取得した撮像画像データを顔認証部144に提供する。顔認証部144は、提供された撮像画像中のユーザの顔画像を検出する。なお、この検出周期は、カメラの撮像周期と同じであってもよいが、異なる周期(たとえば1分ごと)であってもよい。顔認証部144は、撮像画像において人の顔と推定される部分を検出して抜き出し、その部分の特徴量データを導出して、登録ユーザ情報保持部200に保持された顔識別用データと比較し、抜き出した顔がログインユーザの顔であるか否かを判定する。
具体的に顔認証部144は、抜き出したユーザの顔画像の特徴量データと、登録ユーザ情報保持部200に保持されている全ての登録ユーザの顔識別用データとの一致度を導出する。この一致度は数値表現され、たとえば100点満点中の何点という形で一致度が導出される。登録された顔画像の特徴量データとの一致度が90点を超えていれば、顔認証部144は、撮像されたユーザが、登録ユーザであることを判定するとともに、撮像されたユーザがどの登録ユーザであるかを特定する。なお一致度が90点を超えるものが複数存在する場合には、顔認証部144は、撮像されたユーザが、最高点が導出された顔識別用データの登録ユーザであることを判定すればよい。なお、撮像画像から抜き出したユーザの顔画像の特徴量データと、全ての登録ユーザの顔識別用データとの一致度を導出した結果、一致度が90点を超えるものがなければ、顔認証部144は、撮像画像に含まれるユーザが、顔画像を登録したユーザでないことを判定する。このように顔認証部144は、登録ユーザ情報保持部200に保持された顔識別用データを用いて、撮像画像に存在する登録ユーザの顔画像を検出する。この顔識別技術は、既知の技術を用いてよい。この例では、顔認証部144が、左側のユーザが、ユーザAであり、また右側のユーザが、ユーザBであることを認識する。なおユーザBが登録ユーザでない場合には、顔認証部144は、右側のユーザがユーザBであることは認識しない。
また顔認証部144による顔認識処理と並行して、オブジェクト認識部146が、撮像画像において、入力装置6を探索する。使用中の入力装置6は所定色で点灯しているため、オブジェクト認識部146は、所定色の矩形領域、すなわち発光部85の形状で点灯している領域を撮像画像中で探索する。実施例では、オブジェクト認識部146がログインユーザ記憶部148の記憶内容を参照して、使用中の入力装置6が青色で点灯していることを確認してから、撮像画像中の青色の矩形領域を探索する。
ユーザ判定部150は顔認証部144から顔認識結果を受け取る。顔認識結果は、検出ユーザの顔が誰であるかを示す情報と、その位置座標とを含む。またユーザ判定部150はオブジェクト認識部146からオブジェクト認識結果を受け取る。オブジェクト認識結果は、検出した発光色と、その位置座標とを含む。ユーザ判定部150は、青色矩形領域の位置座標と、検出ユーザの位置座標とを参照し、青色矩形領域の位置座標の上方に位置する検出ユーザが誰であるかを特定する。図5に示す例では、ユーザAの顔画像の横方向座標と、青色発光している入力装置6の横方向座標とがほぼ等しく、また入力装置6の縦方向座標の上に、ユーザAの顔画像が存在している。したがってユーザ判定部150は、入力装置6を操作しているユーザがユーザAであることを認識する。
ここでユーザ判定部150は、ログインユーザ記憶部148の記憶内容を参照して、ログインユーザがユーザAであり、またユーザAの入力装置6が青色点灯していることを確認する。これによりユーザ判定部150は、入力装置6を操作しているユーザAが、正規ユーザ(ログインユーザ)であることを判定する。
このようにユーザ認証部142は、取得部140が取得した撮像画像と、登録ユーザ情報保持部200に保持された顔識別用データを用いて、撮像画像に存在するアプリケーションを操作するユーザの顔画像が、正規のユーザの顔画像であるか否かを判定する。ユーザ認証部142が顔認識によるユーザ認証を行うことで、ユーザは、ユーザ認証に関して意識する必要なく、ゲームプレイに集中できる。
なお入力装置6がユーザBによって操作されており、したがって撮像画像中で入力装置6の上方にユーザBの顔が検出されるような場合には、ユーザ判定部150は、入力装置6を操作しているユーザBが、非正規ユーザ(非ログインユーザ)であることを判定する。
次に、トロフィ獲得機能について説明する。
<トロフィ獲得機能>
トロフィ獲得処理部170は、トロフィID取得部172およびトロフィ獲得部174を有する。トロフィ獲得処理部170の各機能は、トロフィ管理ユーティリティソフトウェア(以下、「トロフィ管理ユーティリティ」とも呼ぶ)により実現され、ゲームにおいて予め設定された条件が達成された場合に、達成された条件に対応付けられているトロフィを獲得する。
ゲームソフトウェア120において、アプリケーション実行部122が、ユーザによる入力装置6の操作入力を受けて、ゲームプログラムを実行する。ゲームソフトウェア120は、トロフィを獲得するためのプレイ条件を予め設定している。この条件は「ミッション」と呼ばれ、ミッションの内容はユーザに公開されてもよく、また非公開とされてもよい。各ミッションには、ミッション達成の際にユーザに付与するトロフィのIDが対応付けられる。
ゲームプログラムは、ユーザによるゲームの進行において、予め設定したゲームのプレイ条件の達成を検出すると、トロフィ管理ユーティリティを呼び出し、達成したプレイ条件に対応するトロフィIDをトロフィ管理ユーティリティに通知する。ゲームプログラムには、この処理がコーディングされている。各ミッションの内容と、ミッション達成の際にユーザに付与するトロフィIDとは、一対一に対応づけられる。図6は、ミッション内容とトロフィIDの関係の一例を示す。
ゲームソフトウェア120は、各トロフィを表す画像や、各トロフィの名称と説明文などの属性情報を含んでいる。属性情報は1つのトロフィファイルに格納されて、ゲーム開始時に、ゲームソフトウェア120からトロフィ属性情報保持部202に読み出される。1つのトロフィは、以下の属性をもつ。
(1)トロフィID
トロフィを識別するためのID
(2)名称/詳細情報
トロフィの名前と説明文
(3)グレード (種類)
ブロンズ/シルバー/ゴールド/プラチナのいずれか
ゲームソフトウェア120において、条件達成検出部124は、ゲームの進行状況から、ミッションが達成されたこと、すなわちゲームにおいて予め設定されたゲームのプレイ条件が達成されたことを検出する。この検出処理は、ゲームプログラムにハードコーディングされており、ミッションが達成されると、そのミッションに対応付けられたトロフィIDを取得し、トロフィ管理ユーティリティを呼び出して、トロフィIDを通知する処理がゲームプログラムに書き込まれている。条件達成検出部124による条件達成の検出は、トロフィIDを取得することに相当する。トロフィID通知部126は、取得したトロフィIDをトロフィ獲得処理部170に通知する。
トロフィ獲得処理部170において、トロフィID取得部172が、トロフィID通知部126からトロフィIDの通知を受けると、トロフィ獲得部174が、トロフィの獲得情報をトロフィ獲得情報記録部204に記録する。
なおトロフィ獲得部174は、ゲーム開始前に、トロフィ属性情報保持部202に保持されるトロフィファイルに含まれるトロフィ数を参照して、トロフィ獲得テーブルを補助記憶装置2におけるトロフィ獲得情報記録部204に作成しておく。トロフィ獲得テーブルは、ゲームソフトウェア120が用意した全てのトロフィIDと、トロフィが獲得されたか否かを獲得フラグ値で示すものである。初期状態では、獲得フラグ値は0に設定されている。トロフィID通知部126が、達成した条件に対応するトロフィIDをトロフィID取得部172に渡すと、トロフィ獲得部174が、該当するトロフィIDの獲得フラグ値を1に設定する。このようにゲームソフトウェア120が、設定した条件の達成を検出すると、トロフィ管理ユーティリティがトロフィ獲得テーブルを更新し、トロフィ獲得情報を増やしていく。なお設定された獲得フラグ値1は、トロフィ獲得情報を構成し、特定のトロフィIDの獲得フラグ値1を、元のフラグ値0に戻すことはできない。
トロフィ管理ユーティリティは、サーバ5にトロフィ獲得情報を送信する。サーバ5はユーザのネットワークアカウントをもとに、過去に蓄積しているトロフィ獲得情報に、新たなトロフィ獲得情報をマージして蓄積する。またトロフィ管理ユーティリティは、サーバ5からトロフィ獲得情報を送信される。これによりユーザが複数の情報処理装置10を保有し、複数の情報処理装置10で同じゲームをする場合に、トロフィ獲得情報は、複数の情報処理装置10およびサーバ5にて同期されることになる。ここで同期とは、複数の情報処理装置間で、記憶するトロフィ獲得情報を、同じ状態、たとえば更新された最新の状態に保つことを意味する。
図7は、トロフィ獲得テーブルを示す。トロフィ獲得情報記録部204においてトロフィ獲得テーブルは、トロフィIDと、トロフィ獲得の有無を示す獲得フラグ値とを対応付けて記録する。獲得フラグ値0は、トロフィが獲得されていないことを示し、獲得フラグ値1は、トロフィが獲得されていることを示す。
ミッションが達成されると、そのミッションに対応するトロフィIDの獲得フラグ値が1に設定される。具体的にはトロフィ獲得部174が、トロフィID取得部172からトロフィIDを受け取ると、そのトロフィIDに対応付けられている獲得フラグ値が1であるかチェックし、1であれば変更せず、0であれば1に設定する。図7に示す例では、トロフィID1、ID3の獲得フラグ値が1であり、トロフィID2の獲得フラグ値が0となっており、ログインユーザAが、トロフィID1,ID3のトロフィを獲得していることが示される。
なおトロフィ獲得部174が獲得処理を行うトロフィは、ブロンズ、シルバー、ゴールドの3種類のトロフィであり、プラチナトロフィは含まれない。ゲームソフトウェア120は、ブロンズ、シルバー、ゴールドの3種類のトロフィをユーザに付与することができ、一方、プラチナトロフィは、全てのトロフィがゲームソフトウェア120からユーザに付与されたことをもって、システムソフトウェアにより付与される。
次に、セーブデータ管理機能について説明する。
<セーブデータ管理機能>
セーブデータ管理部180は、ロード処理部182およびセーブ処理部184を有する。セーブデータ管理部180の各機能は、セーブデータ管理ユーティリティソフトウェア(以下、「セーブデータ管理ユーティリティ」とも呼ぶ)により実現され、ゲームのセーブデータを管理する。セーブデータ管理ユーティリティは、ゲームプログラムにより呼び出され、ロード処理部182は、セーブデータをセーブデータ記録部208からロードしてゲームプログラムを起動し、またセーブ処理部184は、ゲームの進行状態を示すステータスデータをセーブデータとしてセーブデータ記録部208に記録する。
ゲームには、ユーザが任意のタイミングでセーブできるものや、また所定のセーブポイントでのみセーブできるものなど、様々なものがあり、セーブデータ管理ユーティリティ関数は、その全てに対して用意されている。
以下、実施例におけるトロフィ獲得機能およびセーブデータ管理機能について説明する。ユーザは、ゲームプレイ前に、トロフィ獲得処理に関する条件を予め情報処理装置10に登録する。トロフィ獲得処理に関する設定情報は、ゲームごとに登録されてもよく、また全ゲーム共通に登録されてもよい。具体的に設定情報は、非正規ユーザによるゲームの操作により、トロフィの獲得を許可するか否かを定める情報を含む。
図8は、トロフィ獲得処理に関する設定画面の一例を示す。ここでは設定情報(設定条件)として、3つの選択肢が用意されている。
第1設定情報220である「他のユーザのプレイを許可しない」は、自分以外のユーザが、自分の代わりにプレイすることを禁止することを意味する。なお、他のユーザが全くプレイできない(たとえば画面をフリーズさせる)状況を作ることも可能であるが、実施例の第1設定情報220は、他のユーザがプレイすることは一応は許すものの、一方で、そのプレイによって、トロフィの獲得や、セーブ処理は禁止することを意味する。したがって第1設定情報220のもとで、ユーザ認証部142により、正規ユーザ以外のユーザ(非正規ユーザ)が入力装置6を操作してプレイしていることが判定された場合、非正規ユーザのプレイによりトロフィ獲得部174がトロフィを獲得することはなく、また非正規ユーザのプレイ結果をセーブ処理部184がセーブすることもない。
第2設定情報222である「他のユーザのトロフィ取得は許可しないが、それ以外のプレイは許可する」は、非正規ユーザがプレイすることは認めるが、トロフィ取得に関するプレイは禁止することを意味する。たとえば図6に示すトロフィID3のミッションは、「全車種で1位をとる」ことであるが、全車種が4つである場合に、3つの車種で1位をとってもミッションはクリアしておらず、最後の1車種で1位をとったときに、ミッションクリアとなる。このようなミッションでは、第2設定情報222のもとで、非正規ユーザが、3車種で1位をとるときまでは、セーブ処理部184によるプレイ結果のセーブ処理を許容し、しかしながら最後の1車種で1位をとっても、トロフィ獲得処理部170がトロフィを獲得することはなく、また最後の1車種で1位をとったプレイ結果をセーブ処理部184がセーブすることもない。
第3設定情報224である「他のユーザのプレイを許可する(トロフィ取得も許可する)」は、非正規ユーザが、自分の代わりにプレイすることを認めることを意味する。そのため第3設定情報224のもとでは、ユーザ認証部142により非正規ユーザがプレイしていることが判定されても、そのプレイ結果によりトロフィを獲得すれば、トロフィ獲得処理部170が、正規ユーザAがトロフィを獲得したものとしてトロフィ獲得情報を生成し、またセーブデータ管理部180は、非正規ユーザによるプレイ結果をセーブする。
図8に示す設定画面において、ユーザはラジオボタンを動かして、所望の設定情報を選択する。このようにユーザに対して、トロフィ獲得処理に関する選択肢が提示されることで、ユーザは、自分のニーズにあったトロフィ獲得処理を選べるようになる。この設定画面において、ユーザがいずれかの選択肢を選択して、決定ボタンを操作すると、この設定情報が、ユーザアカウントに関連付けられて、設定情報保持部206に保持される。
アプリケーション実行部122によるゲームプログラムの実行中、ユーザ判定部150は、周期的に、ゲームを操作しているユーザが正規のユーザであるか否か、すなわち正規ユーザAが入力装置6を操作しているか否かを判定する。このときユーザ判定部150が、ゲームを操作しているユーザが正規ユーザAであることを判定すると、トロフィ獲得処理部170は、ゲームソフトウェア120からトロフィIDの通知を受けて、トロフィ獲得情報記録部204のトロフィ獲得テーブルに、トロフィの獲得情報を記録する。またセーブデータ管理部180は、ゲームソフトウェア120からセーブ指示を受けると、ゲームのステータスデータをセーブデータとしてセーブデータ記録部208に記録する。
図9は、カメラ7によって撮影される画像の別の例を示す。この撮影画像には、1人のユーザBが含まれており、非正規ユーザであるユーザBが、入力装置6を把持して、ゲームをプレイしている。たとえばユーザAがゲームの中断中に、ユーザBが勝手に入力装置6を操作しているような場合に、このような状況が生じうる。
図9に示す撮像画像において、顔認証部144は、撮像画像に含まれるユーザが、ユーザBであることを判定する。なおユーザBが登録ユーザでない場合には、顔認証部144は、撮像画像に含まれるユーザが誰であるかは認識できず、ユーザA以外の誰かが撮像画像に含まれていることを判定する。顔認証部144は、顔認識結果をユーザ判定部150に提供する。既述したように、顔認識結果には、少なくとも検出した顔画像の位置座標が含まれる。またオブジェクト認識部146は、撮像画像において、青色の矩形領域を探索し、オブジェクト認識結果をユーザ判定部150に提供する。オブジェクト認識結果には、青色矩形領域の位置座標が含まれる。
ユーザ判定部150は、青色矩形領域の位置座標と、検出ユーザの顔画像の位置座標とを参照し、青色矩形領域の位置座標の上方に位置する検出ユーザが誰であるかを特定する。図9に示す例では、ユーザBの顔画像の横方向座標と、青色発光している入力装置6の横方向座標とがほぼ等しく、また入力装置6の縦方向座標の上に、ユーザBの顔画像が存在している。したがってユーザ判定部150は、入力装置6を操作しているユーザがユーザBであることを認識する。
ここでユーザ判定部150は、ログインユーザ記憶部148の記憶内容を参照して、ログインユーザがユーザAであり、またユーザAの入力装置6が青色点灯していることを確認する。これによりユーザ判定部150は、入力装置6を操作しているユーザBが、非正規ユーザ、すなわちログインしていないユーザであることを判定する。
このようにユーザ判定部150が、ゲームを操作しているユーザが正規のユーザでないことを判定した場合、禁止処理部160が、正規ユーザであるユーザAのトロフィ獲得処理に関する設定情報を、設定情報保持部206から取得する。禁止処理部160は、ユーザAの設定情報にしたがって、トロフィ獲得処理部170およびセーブデータ管理部180の動作を制御する。
ユーザAの設定情報が、第1設定情報220である場合、禁止処理部160は、トロフィ獲得処理部170によるトロフィ獲得処理、およびセーブデータ管理部180によるセーブ処理を禁止する。トロフィ獲得処理部170は、禁止処理部160から禁止指示を受け取ると、ゲームソフトウェア120からトロフィIDが通知されても、トロフィの獲得処理を行わない。具体的にはトロフィID取得部172がトロフィIDを取得しても、トロフィ獲得部174は、トロフィ獲得情報記録部204のトロフィ獲得テーブルに、トロフィの獲得情報を記録しない。そのため、当該トロフィIDの獲得フラグ値は、0に維持されたままとなる。またセーブデータ管理部180は、禁止処理部160から禁止指示を受け取ると、ゲームソフトウェア120からセーブ指示が通知されても、ゲームのステータスデータのセーブ処理を行わない。
禁止処理部160による禁止指示は、ユーザ判定部150が非正規ユーザであることを判定した時点で、トロフィ獲得処理部170およびセーブデータ管理部180のそれぞれに発行される。このようにユーザAに対して第1設定情報220が設定情報保持部206に登録されており、ユーザ認証部142が、非正規ユーザがゲームプレイしていることを判定した場合に、トロフィ獲得処理部170はトロフィの獲得処理を行わず、またセーブデータ管理部180はステータスデータのセーブ処理を行わない。これにより、ユーザAの代わりに、ユーザBが勝手にゲームをプレイした場合であっても、トロフィが獲得され、またステータスデータがセーブされる事態を回避できる。
ユーザAの設定情報が、第2設定情報222である場合、まず禁止処理部160は、トロフィ獲得処理部170によるトロフィ獲得処理を禁止する。また禁止処理部160は、ゲームプログラムから、現在のプレイがトロフィ獲得に直接関わるプレイであるか否かを示す情報を受け取る。上記したように、図6に示すトロフィID3のミッションは、「全車種で1位をとる」ことであり、車種が4つある場合に、最初の3つの車種でプレイしている際には、ゲームプログラムは、現在のプレイがトロフィ獲得に直接関わらないプレイであることを示す情報を禁止処理部160に提供する。一方、3車種で1位をとった後、最後の車種でプレイを開始するときには、ゲームプログラムが、現在のプレイがトロフィ獲得に直接関わるプレイであることを示す情報を禁止処理部160に提供する。
禁止処理部160は、トロフィ獲得に直接関わらないプレイであることを示す情報をゲームプログラムから受け取ると、セーブデータ管理部180にセーブ処理の禁止指示を発行しない。したがって、3車種で1位をとるプレイに関して、セーブデータ管理部180は、ゲームのステータスデータをセーブできる。しかしながら禁止処理部160は、トロフィ獲得に直接関わるプレイであることを示す情報をゲームプログラムから受け取ると、セーブデータ管理部180にセーブ処理の禁止指示を発行する。これによりセーブデータ管理部180は、3車種で1位をとった後、最後の車種でのプレイに関して、ステータスデータをセーブできない。
なおゲームのセーブポイントがレースの終了後に設定されており、レース中にはセーブできない場合には、禁止処理部160は、トロフィ獲得条件が成立したタイミング、つまり最後の車種で1位をとったタイミングで、禁止処理部160が、セーブデータ管理部180にセーブ処理の禁止指示を発行してもよい。これにより、たとえば最後の車種で2位以下の着順になったような場合のステータスデータを、セーブデータ管理部180がセーブできるようになる。なお最後の車種で1位をとったタイミングは、ゲームソフトウェア120からトロフィIDが通知されるタイミングであり、禁止処理部160は、ゲームソフトウェア120から直接、またはトロフィ獲得処理部170から間接的に、トロフィIDの通知事実を受け取り、そのタイミングで、セーブデータ管理部180にセーブ処理の禁止指示を発行する。
このようにユーザAに対して第2設定情報222が設定情報保持部206に登録されており、ユーザ認証部142が、非正規ユーザがゲームプレイしていることを判定した場合には、トロフィ獲得処理部170はトロフィの獲得処理を行わない。そのため非正規ユーザがプレイした場合であっても、トロフィの獲得は阻止できるため、ユーザAは少なくともトロフィ獲得に直接関係する場面ではプレイでき、トロフィ獲得の達成感を得ることができる。また非正規ユーザによるトロフィ獲得に直接関わらないプレイは許可され、セーブもされるため、非正規ユーザ(たとえばユーザB)にトロフィ獲得直前までのプレイを依頼して、最後のトロフィ獲得の瞬間だけユーザAがプレイすることも可能となり、トロフィ獲得のプロセスを容易にして、トロフィ獲得の満足感をユーザAに与えられる。
ユーザAの設定情報が、第3設定情報224である場合、禁止処理部160は、トロフィ獲得処理部170によるトロフィ獲得処理、およびセーブデータ管理部180によるセーブ処理を禁止しない。トロフィ獲得処理部170は、トロフィIDの通知を受けると、トロフィ獲得情報記録部204のトロフィ獲得テーブルに、トロフィの獲得情報を記録する。またセーブデータ管理部180は、ゲームソフトウェア120からセーブ指示を受けると、ステータスデータをセーブデータとしてセーブデータ記録部208に記録する。したがってユーザAに対して第3設定情報224が設定情報保持部206に登録されている場合には、正規ユーザであるか、非正規ユーザであるかに関係なく、トロフィ獲得処理部170のトロフィ獲得処理およびセーブデータ管理部180のセーブ処理が、滞りなく実行される。
このようにトロフィ獲得処理部170は、非正規ユーザがプレイしていることが判定された場合に、設定情報保持部206に保持された設定情報にしたがって、トロフィの獲得処理を行う、または行わない。またセーブデータ管理部180も同様に、非正規ユーザがプレイしていることが判定された場合に、設定情報保持部206に保持された設定情報にしたがって、セーブ処理を行う、または行わない。上記した例では、トロフィ獲得処理の可否、セーブ処理の可否が、禁止処理部160により制御されているが、禁止処理部160の制御機能は、トロフィ獲得処理部170に組み込まれてもよい。この場合、トロフィ獲得処理部170は、ユーザ判定部150からユーザ判定結果を受けて、自身の動作制御を行うとともに、セーブデータ管理部180の動作制御も行うことになる。
なおユーザ判定部150が、ゲームを操作しているユーザが正規のユーザであることを判定すると、禁止処理部160は、トロフィ獲得処理部170およびセーブデータ管理部180に対して解禁指示を発行し、これによりトロフィ獲得処理部170のトロフィ獲得処理およびセーブデータ管理部180のセーブ処理が、通常どおり実行される。
なお設定情報保持部206に保持されている設定情報は、セーブデータ管理部180におけるロード処理部182のロード処理に利用されてもよい。ユーザによりセーブデータの使用指示が入力された場合、禁止処理部160は、設定情報を参照して、セーブデータのロード処理の可否を判定する。具体的に禁止処理部160は、第1設定情報220が登録されていれば、ロード処理部182によるロード処理を不可とし、第2設定情報222または第3設定情報224が登録されていれば、ロード処理部182によるロード処理を許可する。
なおトロフィ獲得処理部170が、ミッションが達成されたにも関わらず、トロフィの獲得処理を行わない場合、表示処理部190が、トロフィが獲得されなかったことを通知することが好ましい。
図10は、表示処理部190による通知例を示す。表示処理部190は、ゲーム画面に重畳して、トロフィを取得できてないことを表示する。これによりユーザは、トロフィが獲得されていないことを認識できる。
以上は、ユーザが登録した設定情報にしたがって、トロフィ獲得処理部170によるトロフィ獲得処理が実行される、または実行されないことが定まる例であるが、ゲームソフトウェア120に、その設定情報が組み込まれていてもよい。たとえばゲームメーカが、特定のトロフィに関しては正規ユーザによる獲得しか認めない場合、当該特定のトロフィに対して、第1設定情報220ないし第2設定情報222を割り当ててもよい。たとえばゲームメーカは、全てのトロフィに対して、第1設定情報220ないし第2設定情報222を割り当ててもよく、そのようにすることで、そのゲームにおけるトロフィは、ユーザのゲーム技量を正確に表現する指標となる。なおゲームソフトウェア120において、トロフィに関する設定情報は1つの設定ファイルに格納されて、ゲーム開始前に、設定情報保持部206に読み出される。
設定情報保持部206において、ユーザが登録した設定情報と、ゲームソフトウェア120から読み出された設定情報とが存在する場合、禁止処理部160は、非正規ユーザのプレイをより制限する設定情報を使用することが好ましい。なお第1設定情報220、第2設定情報222、第3設定情報224の順に、非正規ユーザの制限度は高い。たとえば、あるトロフィに関して、ユーザ設定情報が第2設定情報222であり、ゲームメーカ設定情報が第3設定情報224である場合、禁止処理部160は、非正規ユーザのプレイをより制限する第2設定情報222を使用して、禁止処理を実行する。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。実施例ではゲームを中心に説明したが、本発明はゲーム以外のアプリケーションにも利用できる。
たとえばゲームプログラムは、ゲームアイテムの出現や条件などを確率によって制御することがある。セーブデータ管理部180は、ゲームアイテムの出現率なども、非正規ユーザによるプレイに影響されないように管理することが好ましい。
実施例ではユーザ認証部142が、顔認識によるユーザ認証処理を実行することを説明したが、他の種類の生体認証や、パスワードによるユーザ認証を実行してもよい。たとえば入力装置6に指紋取得用のスキャナが設けられて、取得部140が指紋画像を取得し、ユーザ認証部142が、登録ユーザ情報保持部200に保持されている指紋情報と比較して、ユーザ認証を行ってもよい。
また実施例では、顔認証部144は、周期的(たとえば1分ごと)に顔認識を行うことを説明したが、ユーザ判定部150により非正規ユーザがプレイしていることが判定された後は、それよりも短周期で顔認識を行ってもよい。顔認証部144による顔認識精度にも依存する事情であるが、誤認識である可能性も考慮して、ユーザ判定部150が、一度、非正規ユーザであることを判定すると、その後、顔認証部144は、短周期(たとえば5秒ごと)に顔認識を行う。たとえば3回連続で、ユーザ判定部150が非正規ユーザであることを判定したときに、禁止処理部160に非正規ユーザがプレイしていることを通知してもよい。
なお顔認証部144は、所定のタイミングで顔認識を行ってもよい。たとえば顔認証部144は、ゲーム中のセーブポイント、トロフィの獲得条件が達成された際、またゲームチャプタの終了時などに、顔認識を行ってもよい。顔認証部144は、周期的に顔認識を行いつつ、所定のタイミングでも顔認識を行ってもよい。
なお禁止処理部160が、トロフィ獲得処理部170およびセーブデータ管理部180の動作を制限しようとする場合には、表示処理部190が、その旨を通知してもよい。
図11は、表示処理部190による通知例を示す。表示処理部190は、ゲーム画面に重畳して、正規ユーザ以外のユーザがプレイしていることが検出されたことを表示する。なお実際にはユーザAがプレイしているにも関わらず、顔認証部144の誤認識により、ユーザAが認証されていないことも可能性としては考えられる。そのためユーザAが入力装置6の所定のボタンを操作すると、禁止処理部160は、パスコードの入力画面を表示し、入力されたパスコードがユーザAのものであれば、トロフィ獲得処理部170およびセーブデータ管理部180の動作制限を行わないようにしてもよい。
なおトロフィは自分で獲得したいが、間近で上級者のプレイを見たいことがある。そのような場合、目の前で上級者に代わりにプレイしてもらい、いろいろと教えてもらいたいが、上級者のプレイによりトロフィが取得されてしまうことは回避したい。そのような事情に応えるべく、ゲームソフトウェア120ないしはシステムソフトウェアは、「お手本モード」によるプレイ機能を搭載してもよい。ゲームソフトウェア120が、お手本モードプレイ機能を搭載する場合、ミッションを達成してもトロフィIDをトロフィ獲得処理部170に通知せず、またセーブ指示をセーブデータ管理部180に通知しないように構成する。
一方、システムソフトウェアが、お手本モードプレイ機能を実現する場合、ユーザからお手本モードのプレイを行うことが指示されると、禁止処理部160に対して、トロフィ獲得処理部170およびセーブデータ管理部180への禁止指示の発行を指示する。つまりお手本モードプレイにおいては、トロフィ獲得処理およびセーブ処理を禁止する。この場合、お手本モードにおいては、禁止処理部160が、強制的に禁止指示を発行するため、ユーザ認証部142によるユーザ認証結果に関わらず、トロフィ獲得処理およびセーブ処理が禁止されるようになる。
なお実施例におけるトロフィ獲得テーブルには、トロフィの獲得時に、トロフィを獲得したユーザを識別する情報が記録されるようにしてもよい。基本的に、記録されるユーザ識別情報は、情報処理装置10にログインして、ゲームをプレイしている正規ユーザの識別情報となるが、後述するように、トロフィ獲得処理に関する設定情報が許容する場合には、正規ユーザとは異なるユーザの識別情報が記録されてもよい。
図12は、トロフィ獲得テーブルの別の例を示す。トロフィ獲得情報記録部204においてトロフィ獲得テーブルは、トロフィIDと、トロフィ獲得の有無を示す獲得フラグ値と、トロフィを獲得したユーザの識別情報(ネットワークアカウント)とを対応付けて記録する。獲得フラグ値0は、トロフィが獲得されていないことを示し、獲得フラグ値1は、トロフィが獲得されていることを示す。
なお、非正規ユーザがトロフィを獲得できる場合は、上記した第3設定情報224が登録されている場合に限定される。図12に示す例では、トロフィID1、ID3をユーザAが獲得し、トロフィID2をユーザBが獲得している。トロフィの獲得情報は、サーバ5に送信されて同期処理されるが、この場合は、ユーザBのネットワークアカウントとともに、トロフィID2の獲得情報がサーバ5に送信され、したがってユーザBに関して、トロフィID2の獲得情報が同期されることになる。
実施例において正規ユーザは、情報処理装置10にログインしたユーザであったが、情報処理装置10は、ユーザがゲームするために、ログインを条件としなくてもよい。その場合、正規ユーザは、入力装置6を操作して最初にゲームをプレイしたユーザである。この場合、ユーザ記憶部(ログインユーザ記憶部148に相当)は、最初に入力装置6を操作したユーザを、顔認証部144による顔認識結果に対応付けて記憶し、顔認証部144は、その顔認識結果を顔識別用データとして利用して、ユーザ認証を行う。