この実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
(実施形態1)
<情報処理システムの構成>
図1は、本実施形態1に基づく情報処理システムの一例の構成を示す図である。
図1に示すように、情報処理システム1は、記憶媒体(タグ)2と、情報処理装置3とを含む。情報処理装置3は、タグ2との間で近距離無線通信が可能な任意の情報処理装置である。
本実施形態1においては、近距離無線通信の一例として、情報処理装置3とタグ2との間でNFC規格に基づく通信が行われる場合を例として説明する。ここで、近距離無線通信とは、一例として一方の装置からの電波によって(例えば電磁誘導によって)他方の装置に起電力を発生させる通信方式を指す。他方の装置は、発生した起電力によって動作することが可能である(他方の装置は、電源を有していてもよいし有していなくてもよい)。
近距離無線通信においては、情報処理装置3とタグ2とが接近した場合(典型的には両者の距離が十数センチ以下となった場合)に通信可能となる。また、近距離無線通信では、2つの通信装置の通信が確立している間(通信装置に他のタグが接近している間)は電波が送出され続ける。なお、一例として電波によって通信する方式について説明したが特にこれに限られず光でも良いし、他の媒体を用いた通信でも良くその方式については何ら限定しない。
情報処理装置3は、近距離無線通信が可能な任意の情報処理装置である。本実施形態1においては、情報処理装置3は、例えば携帯型ゲーム装置、携帯電話、あるいはスマートフォン等といった、携帯型(可搬型とも言う)の装置であってもよいし、パーソナルコンピュータや家庭用ゲーム機等といった据置型の装置であってもよいし、業務用のアーケードゲーム装置のような大型の装置であってもよい。例えば、情報処理装置3は、NFCリーダライタの機能を有する携帯機器である。
タグ2は、情報処理装置3との間で近距離無線通信が可能な任意の装置である。本実施形態1においては、タグ2は、NFCタグの機能を有する記憶媒体である。すなわち、タグは、近距離無線通信を行う回路(ICチップ)と、データを記憶する記憶手段(メモリ等)とを備える。すなわち、記憶手段に対して読み書き可能な回路を含むRFID(Radio Frequency IDentification)である。なお、タグ2は、データを記憶する機能のみを有する装置(RFタグ)であってもよく、例えばNFCのカードエミュレーション機能を有する情報処理装置(携帯機器)であってもよい。
以下、情報処理装置3の構成について説明する。図1に示すように、情報処理装置3は通信部11を備える。通信部11は、近距離無線通信に用いられるアンテナである。また、情報処理装置3は通信チップ12を備える。通信チップ12は、後述するCPU13からの指示に従い、通信部11から送出すべき信号(電波)を生成する。生成された信号が通信部11から送出される。通信チップ12は、例えばNFCチップである。
図1に示すように、情報処理装置3は、CPU13およびメモリ14を備える。CPU13は、情報処理装置3で実行される各種の情報処理を実行するための情報処理部である。CPU13は、メモリ14を用いて上記各種の情報処理を実行する。
情報処理装置3はプログラム記憶部15を備える。プログラム記憶部15は、情報処理装置3において実行される各種プログラム(後述する通信プログラムおよびアプリケーションプログラムを含む)を記憶する。プログラム記憶部15は、CPU13がアクセス可能な任意の記憶装置(記憶媒体)である。プログラム記憶部15は、例えばハードディスクやメモリ等の、情報処理装置3に内蔵される記憶部であってもよいし、例えば光ディスクやカートリッジ等の、情報処理装置3に着脱可能な記憶媒体であってもよいし、これらの記憶部および記憶媒体の両方であってもよい。
本実施形態1においては、情報処理装置3では、少なくともアプリケーションプログラムおよび通信プログラムという2種類のプログラムがプログラム記憶部15に記憶される。アプリケーションプログラムは、タグ2との間でデータ通信を行う任意のアプリケーションを実行するためのプログラムである。アプリケーションプログラムは、例えば、タグ2からゲームデータを読み出して当該ゲームデータを用いてゲーム処理を行うゲームプログラムであってもよい。通信プログラムは、タグ2との間で近距離無線通信を行うためのプログラムである。例えば、通信プログラムは、通信チップ12を動作させるためのファームウェアであり、ライブラリとして情報処理装置3に予め用意されていてもよい。通信プログラムは、アプリケーションからの指令を受けて通信のための動作を通信チップ12に行わせる。なお、情報処理装置3において複数のアプリケーションプログラムが実行可能である場合、通信プログラムは、各アプリケーションで共通に使用される。つまり、通信プログラム(後述する通信制御部32)は、複数のアプリケーションから通信に関する指令を受け付けることが可能である。
また、情報処理装置3は、ボタンやタッチパネル等、ユーザによる指示を受け付ける入力部16を備える。また、情報処理装置3は、上記情報処理によって生成される画像を表示する表示部17を備えている。
情報処理装置3は、複数の装置によって構成されてもよい。例えば、情報処理装置3は、CPU13およびメモリ14を備える装置に対して、上記通信部11および通信チップ12を備える装置が着脱可能に接続される構成であってもよい。また、情報処理装置3は、CPU13を有する本体装置と、入力部16および/または表示部17を有する装置とが別体である構成であってもよい。例えば、他の実施形態において、情報処理装置3は、本体装置と、入力部16および表示部17を有する端末装置とによって構成されてもよいし、本体装置と、入力部16を有する操作装置とによって構成されてもよい。また、情報処理装置3は、表示部17を備えず、テレビを表示装置として用いる構成であってもよい。
また、他の実施形態においては、情報処理装置3において実行される情報処理の少なくとも一部が、ネットワーク(広域ネットワークおよび/またはローカルネットワーク)によって通信可能な複数の装置によって分散して実行されてもよい。
<タグ>
図2は、実施形態1に基づくタグ2の外観の一例を示す図である。
図2に示すように、本実施形態1におけるタグ2は、キャラクタの絵が描かれた(キャラクタを平面的に表す)外観を有するカード型のタグである。
カード型のタグとして一例としてタイプTY1が関連付けられているものとする。
タグ2が表すキャラクタ(犬、A子)は、情報処理装置3で実行可能な特定のアプリケーション(例えばゲーム)に登場するキャラクタである。ユーザは、このタグ2を用いることによって、上記特定のアプリケーションにおいて上記キャラクタを登場させた所定のイベント処理を実行することができる。すなわち、情報処理装置3は、上記特定のアプリケーションのプログラムを実行する際、タグ2に記憶されるデータを用いることによって、当該アプリケーションのプログラムによって生成される仮想空間に上記のキャラクタを登場させる。なお、タグ2は、アプリケーションに登場する任意のオブジェクトを表すものであり、キャラクタに限らず、ゲームアプリケーションにおけるアイテムを表すものであってもよい。
上記のように、タグ2は、特定のアプリケーションプログラムにおいて用いられる。また、タグ2は、特定のアプリケーションプログラムにおいて利用可能なデータを記憶することができる。以下では、このような特定のアプリケーションプログラムを「特定アプリプログラム」と呼ぶ。
タグ2は、特定アプリプログラムにおいて利用可能である一方、他のアプリケーションプログラムにおいても利用を可能にしても良い。タグ2は、特定アプリプログラムにおいて利用可能なデータを記憶する一方、後述するが特定アプリプログラム以外の他のアプリケーションプログラムにおいても利用可能なデータを記憶させることも可能である。
なお、当該タグ2は、複数のキャラクタにそれぞれ対応して複数種類設けることも可能である。また、一般的なキャラクタと特別なキャラクタとを分類してタグ2の種類を分けることも可能である。タグ2の種類を分けることにより実行される処理も変更可能なようにしても良い。
以下、タグ2に記憶されるデータの一例について説明する。
図3は、タグに記憶されるデータの一例を示す図である。
図3に示すように、タグ2は、読み書き可能領域21と、読み出し専用領域22と、管理領域23とを有する。
また、図3に示すように、読み書き可能領域21には、特定アプリプログラムの実行により保存されるセーブデータが記憶される。セーブデータとしては、例えば、タグ2が表すキャラクタに関連する各種データ、特定アプリプログラムのゲームの進行状態を示すデータ、および/または、特定アプリプログラムのゲームのプレイヤに関するデータ等が記憶される。
なお、読み書き可能領域21には、複数のセーブデータを格納することが可能である。具体的には、複数の特定アプリプログラムにそれぞれ対応するセーブデータを格納することが可能である。したがって、セーブデータと特定アプリプログラムとを関連付けるためのアプリケーションを識別するアプリIDがセーブデータとともに登録されている。
なお、本例においては、アプリIDがセーブデータとともに登録されている場合について説明するが、セーブデータを管理するために以下のキャラクタIDを用いるようにしてもよい。
なお、セーブデータに限られず、初期登録データを記憶するようにしてもよい。初期登録データは、情報処理装置3においてタグ2の利用が開始される際にユーザによって登録されるデータである。なお、初期登録データは、典型的には、タグ2が最初に利用されるタイミングでタグ2に記憶されるが、任意のタイミングでタグ2に記憶されてもよい。つまり、ユーザによるタグ2に対するデータの登録は、任意のタイミングで行われてもよい。
読み出し専用領域22は、データの読み出しのみが可能な記憶領域である。読み出し専用領域22は、タグ2の製造時においてデータが記憶され、その後(タグ2の出荷後)のデータの書き込みが禁止される記憶領域である。つまり、情報処理装置3(情報処理装置3において実行されるアプリケーション)は、読み出し専用領域22に対するデータの書き込みを行うことは不可能である。一方、情報処理装置3(情報処理装置3において実行されるアプリケーション)は、読み書き可能領域21に対するデータの読み出しおよび書き込みを行うことができる。なお、タグ2の出荷時においては読み書き可能領域21にはデータが予め記憶されていてもよいし、記憶されていなくてもよい。いずれの場合であっても、タグ2と情報処理装置3との通信が行われると、情報処理装置3によって読み書き可能領域21にデータが書き込まれて記憶される。
なお、図3に示すように、本実施形態1においては、各データが記憶される記憶領域(読み書き可能領域、読み出し専用領域、および管理データ領域)は予め定められているものとするが、他の実施形態においては定められていなくてもよい。
読み出し専用領域22には、少なくとも次のデータ(情報)が記憶される。
・固有ID(を示すデータ221)
・タイプID(を示すデータ222)
・キャラクタID(を示すデータ223)
・シリーズID(を示すデータ224)
固有IDは、タグに固有の識別情報である。ここで、本実施形態1におけるタグ2のようなNFCタグには、UID(Unique ID)という、タグに固有の識別情報が記憶される。上記固有IDは、このUIDとは異なる情報である。固有IDは、タグを用いたサービスの提供者がタグを管理しやすいように、UIDとは別に付されたIDである。
キャラクタIDは、カード型のタグ2の平面的に表されたキャラクタに固有の識別情報である。キャラクタIDは、タグ2のキャラクタの種類を一意に特定することが可能な識別情報である。例えば、1つのキャラクタにつき、それぞれ外観が異なる(例えば、ポーズや服装が異なる)複数種類のタグがある場合には、各タグには異なる値のフィギュアIDが設定される。この場合、フィギュアIDは、キャラクタに固有のIDと、ポーズ・服装などの違いを示すIDとを含んでもよい。
シリーズIDは、タグ2が表すオブジェクト(キャラクタ)が属するグループに固有の識別情報である。例えば、タグ2が表すキャラクタが複数種類のアプリケーション(例えば、一連のシリーズのゲームアプリケーション)に登場する場合、これら複数種類のアプリケーションが1つのグループに設定され、このグループを示すグループIDが設定されてもよい。
なお、情報処理装置3において実行可能なアプリケーションプログラムは、自身において利用する(利用可能な)タグのキャラクタIDの情報を含んでいる。アプリケーションプログラムに含まれるキャラクタIDの値と、タグに記憶されるキャラクタIDの値とが一致する場合、本例においては一例として特定アプリプログラムであると判断する。そして、後述するが当該特定アプリプログラムは、キャラクタIDに対応するキャラクタに関して当該タグに記憶されるセーブデータを利用したイベント処理を実行する。
タイプIDは、タグ2の種類を示す識別情報である。本実施形態1においては、情報処理装置3においては、タグ2のようなカード型のタグの他、フィギュア型のタグや、特殊なカード型のタグも利用可能であるとする。タイプIDは、タグの種類として、カード型のタグであるかフィギュア型のタグであるか、特殊なカード型のタグであるかを示す識別情報である。なお、他の実施形態においては、タイプIDによって識別可能なタグの種類は任意である。例えば、タグ2を提供する業者毎に異なるタイプIDが付されてもよい。本実施形態1においては、タグ2に記憶されているタイプIDと、アプリケーションプログラムに含まれるタイプIDとが一致する場合に当該タグ2にアクセス可能であると判定する。
次に、管理データについて説明する。管理データは、タグの管理のために用いられるデータであり、管理データは、基本的にはアプリケーションにおいては用いられないデータである。
図3に示すように、タグ2は、管理データとして、バージョン情報のデータを管理領域23に記憶する。バージョン情報は、タグ2のデータフォーマット(記憶形式)に関するバージョンを示す。ここで、本実施形態1においては、タグ2におけるデータの記憶形式はバージョン毎に異なり、同じバージョンであればデータの記憶形式は同じであるとする。具体的には、本実施形態1においては、タグ2においてどのアドレスにどのデータが記憶されるかは、バージョン毎に定められている(なお、バージョン情報のデータが記憶されるアドレスは、バージョンが異なっても同じである)。したがって、情報処理装置3は、バージョン情報を参照することによって、各データが記憶されているアドレスを特定することができる。例えば、バージョン情報において各データのデータサイズ(各データの記憶領域のサイズ)を規定しておくことによって、バージョン情報からアドレスを特定することができる。
また、タグ2は、管理データとして、ハッシュ値を記憶する(図3参照)。ハッシュ値は、読み書き可能領域21および読み出し専用領域22内のデータに対応するハッシュ値である。ハッシュ値は、対応するデータに対して所定のアルゴリズム(ハッシュ関数)を適用することによって得られる。なお、読み出し専用領域22内のデータの内容は変化しないが、読み書き可能領域21内のデータの内容は変化するので、ハッシュ値は変化する。変化したハッシュ値のデータは管理領域23に記憶される。
なお、本実施形態1においては、図3に示すデータのうち、情報処理装置3(本実施形態1においては、後述する通信制御部32)によって復号可能な方式で暗号化されている。したがって、上記方式での復号機能を持たない装置によってタグ2から上記他のデータが読み出されても、当該装置はデータの内容を解読することはできない。これによって、タグ2内のデータのセキュリティを向上することができる。なお、他の実施形態においては、管理データも上記方式で暗号化されていてもよいし、3種類のデータのうち少なくとも1つは暗号化されていなくてもよい。
<情報処理システムにおける処理動作>
次に、実施形態1に基づく情報処理システム1の処理動作(読み出し)について説明する。
図4は、実施形態1に基づくタグ2からデータを読み出す場合における情報処理システムの処理の流れの一例を示す図である。
本実施形態1においては、情報処理装置3内における動作を、機能的にアプリケーション部31と通信制御部32とに分けて説明する。本実施形態1において、アプリケーション部31は、上述のアプリケーションプログラムを実行するCPU13である。通信制御部32は、上述の通信プログラムを実行するCPU13と、通信チップ12および通信部11とによって実現される。なお、他の実施形態においては、情報処理装置3における情報処理は、アプリケーションプログラムと通信プログラムという2種類のプログラムによって実現される必要は無く、単一のプログラムによって実現されてもよい。なお、図4においては、情報処理装置3において特定アプリプログラムが実行される場合、すなわち、アプリケーション部31が特定アプリプログラムを実行するCPU13によって実現される場合を示している。
図4に示されるように、アプリケーション部31は、通信制御部32に対してタグ2からのデータの読出指令を送る(処理sq1)。本実施形態1において、この読出指令にはタイプID、キャラクタIDおよびシリーズIDが含まれる。特定アプリプログラムは、自身がセーブデータを利用可能なタグのタイプID、キャラクタIDおよびシリーズIDの情報を含んでいる。したがって、アプリケーション部31は、読出指令とともに、特定アプリプログラムに含まれるタイプID、キャラクタIDおよびシリーズIDを通信制御部32へ送る。なお、キャラクタIDは、1種類に限られず複数種類のキャラクタIDを送信するようにしても良い。
なお、アプリケーション部31は、特定アプリプログラムに含まれる各タイプIDを通信制御部32に送る。ただし、タグの種類を特定できる場合には、アプリケーション部31は、特定アプリプログラムに含まれる1以上のタイプIDのうち、当該タグのタイプIDのみを通信制御部32に送ってもよい。同様に、キャラクタの種類を特定できる場合には、アプリケーション部31は、特定アプリプログラムに含まれる1以上のキャラクタIDのうち、1つのキャラクタIDのみを通信制御部32に送っても良い。例えば、プレイヤが操作しているキャラクタに対応するキャラクタを表すタグを利用するゲーム状況においてタグのデータを読み出す場合には、情報処理装置3に接続されるタグ2は、当該キャラクタのタグであると特定することができる。したがって、この場合、アプリケーション部31は、当該キャラクタを表すタグのキャラクタIDのみを通信制御部32に送ってもよい。
なお、他の実施形態においては、アプリケーション部31は、読出指令(書込指令等の他の指令でも同様)を送るタイミングとは異なるタイミングでタイプID、キャラクタIDおよびシリーズIDを通信制御部32に送るようにしてもよい。例えば、他の実施形態においては、後述するアクセス許可判定処理において通信制御部32がタイプIDをアプリケーション部31に対して要求し、この要求に応じてアプリケーション部31がタイプIDを通信制御部32へ送るようにしてもよい。同様に、特定アプリ判定処理において通信制御部32がキャラクタIDをアプリケーション部31に対して要求し、この要求に応じてアプリケーション部31がキャラクタIDを通信制御部32へ送るようにしても良い。シリーズIDについても同様である。
読出指令を受け付けると、通信制御部32は、一連の処理(読出指令処理)の実行を開始する。
具体的には、通信制御部32は、タグ2との通信を開始するための接続処理を実行する(処理sq2)。そして、通信制御部32は接続処理したタグ2からデータの読出処理を実行する(処理sq3)。そして、通信制御部32は、読み出したデータに基づいてアクセス許可判定処理を実行する(処理sq4)。ここでは許可と判定された場合が示されている。次に、通信制御部32は、特定アプリ判定処理を実行する(処理sq5)。ここでは、特定アプリと判定された場合が示されている。そして、通信制御部32は、アプリケーション部31に対してキャラクタIDとセーブデータとを出力する(処理sq6)。
図5は、実施形態1に基づく読出指令を受けた場合における通信制御部32の処理(読出指令処理)を説明するフローチャートである。
図5を参照して、通信制御部32は、タグ2との通信を開始するための接続処理を実行する(ステップS1)。接続処理の具体的な内容は任意である。例えば、通信制御部32は、通信部11の周囲に存在するタグ2を検知する処理(例えばポーリング処理)と、検知されたタグ2との間で通信を確立するための処理(例えば、データ通信に必要な情報をタグ2から取得する処理)とを実行する。なお、図示していないが、読出指令処理(後述する書込指令処理においても同様)の途中においてタグ2が情報処理装置3から離れて近距離無線通信が行えなくなった場合、通信制御部32は読出指令処理を終了し、アプリケーション部31とのデータの受け渡しを中止する。
次に、通信制御部32はデータの読出処理を実行する(ステップS2)。具体的には、通信制御部32は、まず、管理データをタグ2から読み出す。そして、読み出した管理データに含まれるバージョン情報に基づいて、タグ2内の各データのアドレスを特定する。なお、バージョン情報に基づいてアドレスを特定する具体的な方法は任意である。例えば、バージョン情報自体に、各データとアドレスとの対応関係を示す情報がバージョン情報に含まれていてもよい。また例えば、上記対応関係とバージョン情報とを関連付けたテーブルを通信制御部32が予め記憶しておき、タグ2から読み出したバージョン情報と当該テーブルとを用いて通信制御部32が対応関係を特定してもよい。
各データのアドレスが特定されると、通信制御部32は、タイプIDをタグ2から読み出す。通信制御部32は、読み出したデータを復号してメモリ14に記憶しておく。
次に、通信制御部32は、アクセス許可判定処理を実行する(ステップS3)。アクセス許可判定処理は、情報処理装置3上で実行されるアプリケーションプログラムによる、通信が確立したタグへのアクセスが許可されるか否かを判定する処理である。換言すれば、アクセス許可判定処理は、通信が確立したタグが、情報処理装置3上で実行されるアプリケーションプログラムによるアクセスが許可されたタグ(以下、「許可タグ」と呼ぶ)か否かを判定する処理である。なお、「許可タグ」は、例えば、情報処理装置3(および/または情報処理装置3で実行可能なアプリケーションプログラム)を提供する事業者が許可したタグである。つまり、本実施形態1においては、情報処理装置3上のアプリケーションは、上記事業者によって許可されたタグにのみアクセス可能であり、上記事業者によって許可されないNFCタグに対してデータの読み出し/書き込みを行うことはできない。
本実施形態1においては、アクセス許可判定処理における判定は、タグ2に記憶される所定の情報に基づいて実行する。例えば、通信制御部32は、タグ2に記憶されている所定の情報を(情報処理装置3の側でも)予め記憶しておき、タグから読み出した情報と、予め記憶しておいた情報とが一致するか否かによって上記判定を行ってもよい。具体的には、タグ2から読み出したタイプIDと、アプリケーション部31から送られたタイプIDとが一致する場合には許可タグであると判断する。なお、この判定に用いる所定の情報としては、本例においては、NFCタグに記憶されている、NFCの規格において定められるタグのタイプ(TY1,TY2等)を示す情報を利用する。
なお、これに限られず、情報処理装置3(および/または情報処理装置3で実行可能なアプリケーションプログラム)を提供する事業者が許可するタグであることを示す情報(専用コード)等を利用するようにしても良い。
あるいは、上述のバージョン情報を利用するようにしても良い。例えば、アクセス許可判定処理における判定は、読み出し専用領域22に記憶されるデータが、バージョン情報から特定される設定に適合しているか否かによって行われてもよい。また例えば、アクセス許可判定処理における判定は、通信制御部32によって読み出された所定のデータ(例えば、読み出し専用領域22に記憶されるデータ)のサイズが所定の範囲内であるか否かによって上記判定を行ってもよい。
ステップS3において、通信制御部32は、タグ2が許可タグでないと判断した場合(ステップS3においてNO)には、その旨をアプリケーション部31に通知する(ステップS4)。具体的には、タグ2から読み出したタイプIDと、アプリケーション部31から送られたタイプIDとが一致しない場合には許可タグでないと判断する。そして、当該通知を受け取ったアプリケーション部31の処理は任意である。例えば、アプリケーション部31は、タグ2が許可されたものではないためにデータの読み出しを行うことができない旨をユーザに対して通知する。ステップS4の処理の終了後、通信制御部32は、読出指令処理を終了する(エンド)。
一方、ステップS3において、通信制御部32は、タグ2が許可タグであると判断した場合(ステップS3においてYES)には、特定アプリ判定処理を実行する(ステップS5)。具体的には、タグ2から読み出したタイプIDと、アプリケーション部31から送られたタイプIDとが一致する場合には、特定アプリ判定処理を実行する。特定アプリ判定処理は、通信制御部32に対する指令(ここでは読出指令)を行ったアプリケーションプログラムが特定アプリプログラムであるか否かを判定する処理である。
特定アプリ判定処理における判定は、上述のキャラクタIDを用いて行われる。すなわち、通信制御部32は、アプリケーション部31から指令と共に取得したキャラクタID(キャラクタIDが複数である場合にはそのうちのいずれか)と、ステップS2でタグ2から読み出したキャラクタIDとを比較する。そして、両者が一致すれば、通信制御部32は、上記指令を行ったアプリケーションプログラムは特定アプリプログラムであると判定する。特定アプリプログラムと判定した場合(ステップS5においてYES)、通信制御部32は、通信制御部32は、アプリケーション部31に対してキャラクタIDとセーブデータとを出力する(ステップS6)。つまり、指令を行ったアプリケーションプログラムが特定アプリプログラムである場合には、通信制御部32は、キャラクタIDとセーブデータの受け取りを許可する。なお、ステップS6の処理の終了後、通信制御部32は、図5に示す読出指令処理を終了する(エンド)。
なお、通信制御部32からキャラクタIDとセーブデータを受け取ったアプリケーション部31は、受け取ったデータを用いた情報処理を実行する。なお、本例においては、通信制御部32から一例としてキャラクタIDとセーブデータとをアプリケーション部31に出力する場合について説明するが特にこれに限られず、いずれか一方出会っても良いし、あるいは、他のデータでも良くこれらの組み合わせであっても良い。情報処理で利用可能なデータであればどのようなデータであっても良い。
この情報処理の内容は任意である。例えば、アプリケーション部31は、セーブデータを用いたゲーム処理を実行する。なお、本実施形態1においては、特定アプリプログラムは、セーブデータを用いることとするが、セーブデータとともにキャラクタIDおよびタイプID等を用いた処理であってもよい。
一方、両者が異なれば、通信制御部32は、上記指令を行ったアプリケーションプログラムは非特定アプリプログラム(特定アプリプログラムではないアプリケーションプログラム)と判定する。特定アプリプログラムでないと判定した場合(ステップS5においてNO)、関連アプリ判定処理を実行する(ステップS7)。具体的には、タグ2から読み出したシリーズIDと、アプリケーション部31から送られたシリーズIDとを比較する。そして、両者が一致すれば、通信制御部32は、上記指令を行ったアプリケーションプログラムは関連アプリプログラムであると判定する。関連アプリプログラムと判定した場合(ステップS7においてYES)、通信制御部は、アプリケーション部31に対してキャラクタIDとセーブデータとを出力する(ステップS6)。
通信制御部32は、タグ2から読み出したシリーズIDと、アプリケーション部31から送られたシリーズIDとが一致しない場合(ステップS7においてNO)、上記指令を行ったアプリケーションプログラムは、関連アプリプログラム(関連アプリとも称する)でないと判定する。そして、通信制御部32は、アプリケーション部31に対して特定アプリでないことを通知する(ステップS8)。つまり、指令を行ったアプリケーションプログラムが関連アプリを除く非特定アプリプログラムである場合には、通信制御部32は、セーブデータの受け取りを制限(禁止)する。なお、ステップS7の処理の終了後、通信制御部32は、図5に示す読出指令処理を終了する(エンド)。
なお、本例においては、特定アプリで無い場合には、通信制御部32からのセーブデータを送信しない場合について説明しているが、例えばキャラクタIDのみを送信するようにしても良い。アプリケーション部31は、受け取ったキャラクタIDのデータを用いた情報処理を実行する。この情報処理の内容は任意であるが、例えば、キャラクタIDを用いて、キャラクタIDが表すキャラクタを表示する処理を実行するようにしても良い。
なお、本実施形態1においては、ステップS6のデータ出力処理において、通信制御部32は、タグ2に記憶されているセーブデータの全てをアプリケーション部31へ出力するものとした。ただし、他の実施形態においては、アプリケーション部31は、取得すべきデータを読出指令において指定し、ステップS6の処理において、通信制御部32は、当該読出指令において指定されたデータをアプリケーション部31へ出力するようにしてもよい。なお、このとき、読出指令において指定されたデータがセーブデータであって、ステップS4の処理において、読出指令を行ったアプリケーションプログラムが非特定アプリプログラムであると判定された場合には、ステップS7において、通信制御部32は、データの出力(読み出し)が制限されている旨をアプリケーション部31へ通知するようにしてもよい。
次に、実施形態1に基づく情報処理システム1の処理動作(書き込み)について説明する。
図6は、実施形態1に基づくタグ2に対してデータを書き込む場合における情報処理システムの処理の流れの一例を示す図である。
図6に示されるように、アプリケーション部31は、通信制御部32に対してタグ2に対するデータの書込指令を送る(sq10)。本実施形態1において、この書込指令には、上述した読出指令と同様、アプリケーション部31のアプリケーションプログラムに含まれるタイプIDが含まれる。特定アプリプログラムは、自身がセーブデータを保存可能なタグのタイプIDの情報を含んでいる。したがって、アプリケーション部31は、書込指令とともに、特定アプリプログラムに含まれるタイプIDを通信制御部32へ送る。なお、タイプIDは、1種類に限られず複数種類のタイプIDを送信するようにしても良い。
書込指令を受け付けると、通信制御部32は、一連の処理(書込指令処理)の実行を開始する。
具体的には、通信制御部32は、タグとの通信を開始するための接続処理を実行する(処理sq11)。そして、通信制御部32は、接続処理したタグ2からデータの読出を処理する(処理sq12)。そして、通信制御部32は、読み出したデータに基づいてアクセス許可判定処理を実行する(処理sq13)。ここでは許可と判定された場合が示されている。次に、通信制御部32は、アプリケーション部31に許可通知を出力する(処理sq14)。許可通知を受け取ったアプリケーション部31は、タグ2に書き込むべきデータ(ここでは、セーブデータ)を生成し、通信制御部32へ送る(処理sq15)。通信制御部32は、アプリケーション部31からセーブデータを取得する(処理sq16)。通信制御部32は、取得したセーブデータに関してタグ2に対する書込処理を実行する(処理sq17)。
図7は、実施形態1に基づく書込指令を受けた場合における通信制御部32の処理(書込指令処理)の流れの一例を示すフローチャートである。
図7を参照して、通信制御部32は、タグ2との通信を開始するための接続処理を実行する(ステップS10)。接続処理の具体的な内容は任意である。例えば、通信制御部32は、通信部11の周囲に存在するタグ2を検知する処理(例えばポーリング処理)と、検知されたタグ2との間で通信を確立するための処理(例えば、データ通信に必要な情報をタグ2から取得する処理)とを実行する。なお、図示していないが、書込指令処理(後述する書込指令処理においても同様)の途中においてタグ2が情報処理装置3から離れて近距離無線通信が行えなくなった場合、通信制御部32は書込指令処理を終了し、アプリケーション部31とのデータの受け渡しを中止する。
次に、通信制御部32は、データの読出処理を実行する(ステップS11)。具体的には、通信制御部32は、まず、管理データをタグ2から読み出す。そして、読み出した管理データに含まれるバージョン情報に基づいて、タグ2内の各データのアドレスを特定する。なお、バージョン情報に基づいてアドレスを特定する具体的な方法は任意である。例えば、バージョン情報自体に、各データとアドレスとの対応関係を示す情報がバージョン情報に含まれていてもよい。また例えば、上記対応関係とバージョン情報とを関連付けたテーブルを通信制御部32が予め記憶しておき、タグ2から読み出したバージョン情報と当該テーブルとを用いて通信制御部32が対応関係を特定してもよい。
各データのアドレスが特定されると、通信制御部32は、タイプIDをタグ2から読み出す。通信制御部32は、読み出したデータを復号してメモリ14に記憶しておく。
次に、通信制御部32は、アクセス許可判定処理を実行する(ステップS12)。アクセス許可判定処理は、情報処理装置3上で実行されるアプリケーションプログラムによる、通信が確立したタグへのアクセスが許可されるか否かを判定する処理である。
ステップS12において、通信制御部32は、タグ2が許可タグでないと判断した場合(書込指令を行ったタグ2はアクセスが許可されていない場合)(ステップS12においてNO)には、不許可のタグであることを通知する(ステップS16)。通信制御部32は、データの書き込みを行うことができない旨をアプリケーション部31に通知する。この通知を受け取ったアプリケーション部31の処理は任意である。例えば、アプリケーション部31は、接続されたタグ2は、実行中のアプリケーションによってデータの書き込みを行うことができないタグである旨をユーザに通知する処理を実行する。ステップS16の後、通信制御部32は書込指令処理を終了する(エンド)。
一方、通信制御部32は、書込指令処理において、ステップS12の判定結果が肯定であった場合(書込指令を行ったタグ2はアクセスが許可されている場合)(ステップS12においてYES)には、アプリケーション部31に対して許可通知を出力する(ステップS13)。
次に、通信制御部32は、タグ2に書き込むべきデータをアプリケーション部31から取得する(ステップS14)。
次に、通信制御部32は、タグ2に対する書込処理を実行する(ステップS15)。上述のように、本実施形態1においては、タグ2に対するデータの書き込みは、タグ2の読み書き可能領域21に対して行われる。すなわち、通信制御部32は、ステップS14でアプリケーション部31から取得したセーブデータを、タグ2に書き込む。その際、通信制御部32は、セーブデータとともに当該セーブデータに対応するアプリIDをともにタグ2に書き込む。なお、タグ2に書き込むことにより内容は変更されることになる。
したがって、ステップS15において、通信制御部32は、変更後のセーブデータについてハッシュ値を算出する。そして、算出したハッシュ値を新たなハッシュ値としてタグ2に書き込む。ステップS15の処理の後、通信制御部32は書込指令処理を終了する(エンド)。
なお、他の実施形態においては、タグ2に対するデータの書き込みおよび読み出しは、所定の単位毎に行われてもよい。例えば、タグ2の記憶領域が複数のブロックに分割されている場合、タグ2に対するデータの書き込みおよび読み出しは、このブロック毎に行われてもよい。
なお、本例においては、書込処理指令において、タグ2のタイプIDが一致するか否かすなわち、アクセスが許可されたタグであるか否かに基づいてタグ2に対する書込処理を許可する方式について説明したが、特にこれに限られない。例えば、読出指令処理と同様にキャラクタIDが一致するか否かすなわち、特定アプリプログラムか否かに基づいてタグ2に対する書込処理を許可するようにしても良い。さらに他の条件を付加するようにするようにしても良い。
次に、アプリケーションプログラムによって情報処理装置3のCPU13(アプリケーション部31)が実行する処理(第1アプリ処理)について説明する。
図8は、第1のアプリケーションプログラムによってCPU13が実行する処理を説明するフロー図である。なお、図8に示す処理は、例えば、ユーザがアプリケーションの起動指示を行ったことに応じて開示される。
図8では、第1のアプリケーションプログラムによる処理の一例として、ゲーム処理が実行される場合を説明する。また、タグ2に記憶されるデータ(キャラクタID)を用いて、タグ2が表すキャラクタをゲーム空間に登場させる等のイベント処理を例として説明する。
ステップS41において、アプリケーション部31は、第1のアプリケーションプログラムに従ってゲーム処理を実行する。このゲーム処理の内容は任意であり、例えば、ユーザの入力に応じて仮想空間(ゲーム空間)におけるキャラクタの動作を制御したり、プログラムにおいて規定されているアルゴリズムに従って他のキャラクタの動作を制御したりする処理が実行される。
ステップS42において、アプリケーション部31は、タグ2との通信を行うか否かを判定する。すなわち、アプリケーション部31は、タグ2との通信を行うための所定のゲーム条件が満たされたか否かを判定する。この所定のゲーム条件は、ゲーム状況が、タグ2が表すキャラクタが登場することができる状況になったことであり、例えば、プレイヤキャラクタが所定のステージに進んだことや、プレイヤキャラクタが所定のアイテムを取得したこと等である。
なお、ステップS42の処理は、ステップS41におけるゲーム処理が実行される間の適宜のタイミングで実行される。
したがって、ステップS42の判定処理の結果が否定となる場合、ステップS41の処理が再度実行され、ステップS42の判定処理の結果が肯定となるまでステップS41およびS42の処理が繰り返し実行される。一方、ステップS42の判定処理の結果が肯定となる場合、後述するステップS43の処理が実行される。
ステップS43において、アプリケーション部31は、読出指令を出力し、タグ2からデータを読み出す。すなわち、上述したように、アプリケーション部31はまず、通信制御部32へ読出指令を出力する。これに応じて、図5で説明したフローに従って通信制御部32はタグ2との通信を行い、タグ2から読み出したデータをアプリケーション部31へ渡す。これによって、アプリケーション部31はタグ2からのデータを取得する。なお、上述のように、実行中のアプリケーションプログラムが特定アプリプログラムである場合には、タグ2からキャラクタIDと特定アプリプログラムに対応するセーブデータとが取得される。なお、タグ2に保存されているセーブデータが無い場合には、キャラクタIDのみが取得される。
なお、図8では示していないが、接続されたタグ2が許可タグでない場合(ステップS3の判定結果が否定となる場合)には、タグ2が許可タグでない旨の通知が通信制御部32からアプリケーション部31へ送られる。この場合、アプリケーション部31は、例えば、データの読み出しを行うことができない旨をユーザに対して通知し、ステップS41のゲーム処理を再開する。
ステップS46において、アプリケーション部31は、ステップS43で取得されたキャラクタIDのキャラクタに基づく第1イベント処理を実行する。ここで、アプリケーションプログラムには、タグ2によってゲームに登場する各キャラクタを生成するためのデータが含まれている。また、アプリケーションプログラムには、当該各キャラクタのそれぞれに関連付けられたキャラクタIDの情報が予め登録されているものとする。
具体的には、アプリケーション部31は、キャラクタIDが示すキャラクタを仮想空間に登場させたイベント処理を実行する。ここで、タグ2に記憶されるキャラクタIDが表すキャラクタをアプリケーション部31がわかっている場合(当該キャラクタIDがアプリケーションにおいて登録されている場合)、アプリケーション部31は、自身のアプリケーションプログラム内の情報を用いてキャラクタを仮想空間に登場させることができる。すなわち、アプリケーション部31は、自身のアプリケーションプログラム内の情報を用いて仮想空間内におけるキャラクタを生成する。
第1イベント処理の詳細については後述する。
次に、第1イベント処理に基づくデータを取得する(ステップS48)。
次に、アプリケーション部31は、書込指令を出力し、タグ2にデータを書き込む。すなわち、アプリケーション部31は、通信制御部32へ書込指令を出力する(ステップS49)。これに応じて、図7で説明したフローに従って通信制御部32はタグ2との通信を行い、アプリケーション部31から通信制御部32に書き込むデータを出力する。
そして、通信制御部32からタグ2に対してデータを書き込む。
そして、次に、ゲームが終了したかどうかを判断する(ステップS50)。
ステップS50において、ゲームが終了した場合(ステップS50においてYES)には、処理を終了する(エンド)。
一方、ステップS50において、ゲームが終了していない場合(ステップS50においてNO)には、ステップS41に戻り、ゲーム処理を継続する。
図9は、第1イベント処理を説明するフロー図である。
図9に示されるように、まず、セーブデータがあるかどうかを判断する(ステップS51)。具体的には、通信制御部32から送られたキャラクタIDとセーブデータとを取得した場合には、セーブデータは有りと判断する。この点で、キャラクタIDのみ取得した場合には、セーブデータは無しと判断する。
また、複数のアプリケーションプログラムにそれぞれ対応する複数のセーブデータがある場合には、特定アプリプログラムに対応するセーブデータを取得する。その際、実行中の特定アプリプログラムに対応するセーブデータを取得するために少なくとも1つのアプリIDが利用される。特定アプリプログラムのアプリIDと一致するアプリIDと関連付けられたセーブデータが有るか否か判断される。特定アプリプログラムのアプリIDと一致するアプリIDと関連付けられたセーブデータが無い場合には、セーブデータは無しと判断する。なお、後述するが特定アプリプログラムのアプリIDは、一種類に限らず複数種類のアプリIDを用いることも可能である。
ステップS51において、セーブデータが有ると判断した場合(ステップS51においてYES)には、ステップS52において、特定アプリプログラムに対応するセーブデータを読み込む。
一方、ステップS51において、セーブデータが無いと判断した場合(ステップS51においてNO)には、セーブデータは無し、すなわち初期状態と判断する。
次に、家外観設計画面を表示する(ステップS53)。
セーブデータがある場合には、セーブデータの内容に基づいて家外観設計画面を表示する。セーブデータが無い場合には、初期状態として規定された内容に基づいて家外観設計画面を表示する。
図10は、一例として家外観設計画面を説明する図である。
図10に示されるように、本例における家外観設計画面は、ユーザ(操作者)がキャラクタIDに対応するキャラクタの家外観の設計を設定することが可能な画面である。当該画面を用いてユーザ(操作者)は、ユーザの好み(趣向)に応じた任意の家外観を設計することが可能である。
本例においては、画面上部において、仮想空間内の家モデル100が表示されるとともに、画面下部において、当該家モデルを設計するために必要なパーツ(設計部品)を選択する選択画面が表示されている。
本例においては、家モデル100の外観として3つのパートに分けられた場合が示されている。具体的には、家の屋根、家の側面、ドアに分けられている。
家の屋根、家の側面、ドアの設計にそれぞれ対応して3つのタブ40〜42が設けられており、タブ40〜42を切り替えることによりそれぞれのパートの家外観を設定することが可能に設けられている。
タブ40の選択により、家の屋根を選択可能な画面に切り替わる。
タブ41の選択により、家の側面を選択可能な画面に切り替わる。
タブ42の選択により、家のドアを選択可能な画面に切り替わる。
本例においては、一例としてタブ42が選択された状態であり、家のドアのパーツを選択可能な画面が示されている。本例においては、それぞれドアの形状等が異なる「メルヘンなドア」、「アラブなドア」、「しかくいアラブなドア」、「しかくいまどつきのドア」、「しかくいおかしなドア」、「しかくいおもいドア」を選択可能な画面が示されている。
上下に操作可能なスライダ43が設けられており、スライダ43を操作することにより、複数種類の家のドアのパーツを上下にスクロール表示することが可能である。
そして、画面に表示された家のドアのパーツの文字をタッチすることにより入力部16(タッチパネル)を介して当該パーツを指定することが可能である。
画面上部においては、一例として指定により「しかくいまどつきのドア」を有する家モデル100が表示されている。
そして、当該画面には、「けってい」ボタン44が設けられており、「けってい」ボタン44を選択することにより家外観設計画面の設計が終了して次の処理が実行される。
例えば、家の内装を設計可能な設定画面が表示され、当該設定が可能であるものとする。
再び、図9を参照して、次に、ステップS54において、設定したかどうかを判断する。具体的には、上記家外観設計画面において、家モデル100の外観に関する各種の設計をしたかどうかを判断する。すなわち、「けってい」ボタン44を選択したかどうかを判断する。なお、初期状態として家外観として各種のパーツが予め選択された状態としても良い。
設定が無いすなわち、設定が完了しない場合(ステップS54においてNO)には、ステップS53に戻り、上記処理を繰り返す。
次に、設定したと判断した場合(ステップS54においてYES)には、次に、家側面ID、屋根ID、ドアIDを設定する。上記家外観設計画面で設計されたパーツ(設計データ)には、当該パーツを識別するIDが予め割り当てられている。具体的には、家側面ID、屋根ID、ドアIDは、上記家モデルを表示するためのパーツ(設計データ)を識別するIDであり、当該仮想空間に配置する家モデルの外観表示に関連する環境データである。言い換えれば当該環境データは、仮想空間の状況(環境)を示すデータである。具体的には、環境データは、仮想空間に配置されるオブジェクト表示(構成)を示すデータである。環境データは、キャラクタに関連する周辺の環境データであり、キャラクタデータ(強さのパラメータ等)とは異なる。
そして、次に内装設計画面を表示する(ステップS56)。
図11は、家の内装を設計することが可能な画面を説明する図である。
図11(A)は、内装の変更、削除等の編集が可能な画面である。当該画面を用いてユーザ(操作者)は、ユーザの好み(趣向)に応じた任意の家の内装を設計することが可能である。具体的には、家具の配置を変更したり、家具を削除等したりすることが可能である。
図11(B)、(C)は、キャラクタIDに対応するキャラクタに関する家具等を追加する場合を説明する図である。
図11(B)の画面上部には、上記で設計した家内部にキャラクタIDに対応するキャラクタオブジェクトが表示されている場合が示されている。また、画面下部には、家内部に配置する家具を選択する画面が表示されている。当該画面を用いて、ユーザ(操作者)は、ユーザの好み(趣向)に応じた任意の家の内装を設計することが可能である。
本例においては、図11(B)において家具の一例として「滑り台」のアイコン50を選択(購入)して、図11(C)において家の内部に「滑り台」のオブジェクトを配置した状態が示されている。
再び図9を参照して、次に、設定したかどうかを判断する(ステップS57)。具体的には、上記家内装設計画面において、家モデル100の内装に関する各種の設計をしたかどうかを判断する。すなわち、図示しない「けってい」ボタンを選択したかどうかを判断する。なお、初期状態として家内装として各種のパーツが予め選択された状態としても良い。
ステップS57において、設定していないと判断した場合(ステップS57においてNO)には、ステップS56に戻り、上記処理を繰り返す。
一方、ステップS57において、設定したと判断した場合(ステップS57においてYES)には、次に、内装ID等を設定する(ステップS58)。
そして、処理を終了する(リターン)。
図12は、タグ2に記憶されるデータの別の一例について説明する図である。
図12に示すように、図3のタグ2に記憶されるデータと比較して、セーブデータの内容が具体的に示されている。
具体的には、家の外観および内装のオブジェクトを規定する家側面ID(データ212)、屋根ID(データ213)、ドアID(データ214)、内装ID(データ215)、家具ID(データ216)等が格納されている。当該セーブデータを利用したアプリケーションプログラムを実行する際に当該セーブデータに基づく設定した家モデルを仮想空間内に表示させることが可能である。
また、当該セーブデータに基づく第1イベント処理を再び実行することにより家モデルの再設計を実行することが可能である。当該家モデルの再設計によりタグ2に記憶されるデータを更新することが可能である。
図13は、実施形態1に基づくタグ2の利用形態の一例を説明する図である。
図13に示されるように、本例においては、(1)アプリケーションプログラムA(アプリA)に従いタグ2のデータの読み込みを実行する。次に、(2)アプリケーションプログラムA(アプリA)に従いタグ2へのデータの書き込みを実行する。そして、本例においては、(3)アプリケーションプログラムA(アプリA)とは別のアプリケーションプログラムB(アプリB)に従いタグ2のデータの読み込みを実行する。本実施形態1においては、アプリAに従いタグ2へのデータの書き込みを実行したデータに関して、アプリBで当該データを利用する場合について説明する。
次に、アプリケーションプログラムによって情報処理装置3のCPU13(アプリケーション部31)が実行する処理(第2アプリ処理)について説明する。
図14は、第2のアプリケーションプログラムによってCPU13が実行する処理を説明するフロー図である。なお、図14に示す処理は、例えば、ユーザがアプリケーションの起動指示を行ったことに応じて開示される。
図14では、第2のアプリケーションプログラムによる処理の一例として、ゲーム処理が実行される場合を説明する。また、タグ2に記憶されるデータ(キャラクタID)を用いて、タグ2が表すキャラクタ等をゲーム空間に登場させる等のイベント処理を例として説明する。
ステップS61〜S63においては、図8のステップS41〜S43で説明したのと同様の処理が実行される。ステップS63において、アプリケーション部31は、読出指令を出力し、タグ2からデータを読み出す。すなわち、上述したように、アプリケーション部31はまず、通信制御部32へ読出指令を出力する。これに応じて、図5で説明したフローに従って通信制御部32はタグ2との通信を行い、タグ2から読み出したデータをアプリケーション部31へ渡す。これによって、アプリケーション部31はタグ2からのデータを取得する。なお、上述のように、実行中のアプリケーションプログラムが特定アプリプログラムである場合には、タグ2からキャラクタIDと特定アプリプログラムに対応するセーブデータとが取得される。なお、タグ2に保存されているセーブデータが無い場合には、キャラクタIDのみが取得される。
ステップS66において、アプリケーション部31は、ステップS63で取得されたキャラクタIDのキャラクタに基づく第2イベント処理を実行する。ここで、アプリケーションプログラムには、タグ2によってゲームに登場する各キャラクタを生成するためのデータが含まれている。また、アプリケーションプログラムには、当該各キャラクタのそれぞれに関連付けられたキャラクタIDの情報が予め登録されているものとする。
ステップS66における第2イベント処理の詳細については後述する。
具体的には、アプリケーション部31は、キャラクタIDが示すキャラクタ等を仮想空間に登場させたイベント処理を実行する。ここで、タグ2に記憶されるキャラクタIDが表すキャラクタをアプリケーション部31がわかっている場合(当該キャラクタIDがアプリケーションにおいて登録されている場合)、アプリケーション部31は、自身のアプリケーションプログラム内の情報を用いてキャラクタを仮想空間に登場させることができる。すなわち、アプリケーション部31は、自身のアプリケーションプログラム内の情報を用いて仮想空間内におけるキャラクタを生成する。
そして、次に、ゲームが終了したかどうかを判断する(ステップS68)。
ステップS68において、ゲームが終了した場合(ステップS68においてYES)には、処理を終了する(エンド)。
一方、ステップS68において、ゲームが終了していない場合(ステップS68においてNO)には、ステップS61に戻り、ゲーム処理を継続する。
図15は、実施形態1に基づく第2イベント処理を説明するフロー図である。
図15に示されるように、まず、関連セーブデータがあるかどうかを判断する(ステップS21)。具体的には、アプリケーション部31は、通信制御部32から送られたキャラクタIDとセーブデータとを取得した場合に、現在実行中のアプリケーションプログラムとは別の(関連する)アプリケーションプログラムのセーブデータが有るかどうかを判断する。この点で、キャラクタIDのみ取得した場合には、関連セーブデータは無と判断する。
アプリケーション部31は、関連するアプリケーションプログラム(関連アプリプログラム)のアプリIDに対応するセーブデータがあるかどうかを判断する。関連するアプリIDに関する情報は、予めアプリケーションプログラムに格納されているものとする。アプリケーション部31は、実行中の特定アプリプログラムに関連するアプリID(関連アプリID)と一致するアプリIDと関連付けられたセーブデータが有るか否かを判断する。
ステップS21において、関連アプリプログラムの関連アプリIDと一致するアプリIDと関連付けられたセーブデータが無いと判断した場合(ステップS21においてNO)には、関連セーブデータは無しと判断する。
この場合には、ステップS25に進み、キャラクタIDが示すキャラクタオブジェクトを表示する処理を実行する(ステップS65)。
そして、処理を終了する(リターン)。なお、後述するが関連アプリプログラムの関連アプリIDは、一種類に限らず複数種類のアプリIDを用いることも可能である。
ステップS21において、関連セーブデータが有ると判断した場合(ステップS21においてYES)には、関連アプリプログラムに対応するセーブデータを読み込む。
次に、関連セーブデータに含まれている家外観データを取得する(ステップS23)。
具体的には、関連セーブデータに含まれる一部のデータである家側面ID、屋根ID、ドアIDを取得する。なお、取得する一部のデータの種類は予め設定されているものとする。
次に、取得した家外観データに基づいて家外観を表示する(ステップS24)。なお、実行中の特定アプリプログラムは、関連セーブデータに含まれる家側面ID、屋根ID、ドアIDに基づいて家外観を表示させるための生成プログラムが含まれているものとする。
そして、ステップS25に進み、キャラクタIDが示すキャラクタオブジェクトを表示する処理を実行する(ステップS25)。
そして、処理を終了する(リターン)。
図16は、実施形態1に基づく一例として家外観を表示した場合を説明する図である。
図16に示されるように、本例においては、関連セーブデータに含まれている家外観データに基づいて仮想空間内に家モデル100を表示する。ここでは、すごろくゲームを実行するアプリケーションプログラムを実行した場合のゲーム画面が表示されている。当該ゲーム画面において、すごろくゲームの進行に用いられる複数のマスが配置されている場合が示されている。すごろくゲームは、ユーザの操作に従って出現するすごろくの目(数字)に応じてユーザが操作するキャラクタがマスを進むことによりゲームが進行する。一例として、「あと4マス」との表示に従いユーザが操作するキャラクタが4マス分、マスを進むことが可能であることが示されている。本例における第2イベント処理としては、関連セーブデータに基づいて当該ゲームの仮想空間内のオブジェクトとして上記家モデル100を表示する。当該オブジェクトは、ユーザの操作や指示を受け付けることができないオブジェクト(操作受付不可のオブジェクト)であり、ゲームの進行に影響を与える要因とはならない。当該オブジェクトは仮想空間内の背景画像としてのみ用いられる。
本実施形態1に基づく情報処理装置3は、第1のアプリケーションプログラム(アプリA)とは異なる第2のアプリケーションプログラム(アプリB)を実行する際に、アプリAで処理したタグ2に記憶したデータを利用して処理する。当該処理により、記憶媒体(タグ)のデータを異なるアプリケーションプログラム間で利用することにより、データの汎用性を高めた処理が可能である。これによりタグ2を汎用的に利用することが可能となり、種々の利用形態を適用することが可能である。
本実施形態1に基づく情報処理装置3は、第1のアプリケーションプログラム(アプリA)とは異なる第2のアプリケーションプログラム(アプリB)を実行する際に、上記第2イベント処理として、ゲームの進行に影響を与えないオブジェクトを表示する処理を実行する。例えば、ゲーム画面におけるオブジェクトとして家モデル100を表示させる。すなわち、ゲームの進行に影響を与えるゲームパラメータ(例えばキャラクタの強さのパラメータ等)については変化させない処理を実行する。
また、ゲームの進行に影響を与えないゲーム画面におけるオブジェクトとしてキャラクタIDが示すキャラクタオブジェクト110(操作受付不可のオブジェクト)を表示させる。
なお、第2イベント処理は、タグ2に記憶された第1のアプリケーションプログラム(アプリA)により処理されたデータのみを利用したイベント処理であり、タグ2に記憶された第1のアプリケーションプログラム(アプリA)により処理されたデータを更新はしない。
(タグの外観に関する変形例)
上記実施形態1においては、タグ2は、キャラクタの絵が描かれた(キャラクタを平面的に表す)カード型のタグについて説明したが、キャラクタを立体的に表すフィギュア型のタグであってもよい。また、タグの形状はこれに限らず、任意の形状であってよい。これによれば、タグ2を用いてアプリケーションにおいて登場させることができるオブジェクトをユーザにわかりやすく認識させることができる。また、上記オブジェクトを表示部17に表示する場合には、現実のオブジェクトがあたかも仮想空間に入り込んで登場したかのような感覚をユーザに体験させることができ、アプリケーションの興趣性を向上することができる。
(実施形態2)
実施形態2においては、同じアプリケーションプログラムに対して種別が異なるタグにより処理が異なる場合について説明する。具体的には、タグの種別に応じて第2アプリ処理において処理が異なる場合について説明する。第1アプリ処理についてはタグの種別に依らず同様であるとする。
図17は、実施形態2に基づくタグ2Pの外観の一例を示す図である。
図17に示すように、本実施形態におけるタグ2Pは、キャラクタを立体的に表わすフィギュア型のタグである。
フィギュア型のタグとして一例としてタイプTY2が関連付けられているものとする。
タグ2Pが表すキャラクタ(犬、A子)は、情報処理装置3で実行可能な特定のアプリケーション(例えばゲーム)に登場するキャラクタである。ユーザは、このタグ2Pを用いることによって、上記特定のアプリケーションにおいて上記キャラクタを登場させた所定のイベント処理を実行することができる。すなわち、情報処理装置3は、上記特定のアプリケーションのプログラムを実行する際、タグ2Pに記憶されるデータを用いることによって、当該アプリケーションのプログラムによって生成される仮想空間に上記のキャラクタを登場させる。
図18は、実施形態2に基づくタグ2Pからデータを読み出す場合における情報処理システムの処理の流れの一例を示す図である。
図18に示されるように、図4の情報処理システムの流れと比較して異なる点は、処理sq6が処理sq6Pに置換した点である。その他の構成については同様であるのでその詳細な説明については繰り返さない。
図19は、実施形態2に基づく読出指令を受けた場合における通信制御部32の処理(読出指令処理)の流れの一例を示すフローチャートである。
図19に示されるように、図5の読出指令を受けた場合における通信制御部32の処理(読出指令処理)とを説明するフローチャートと比較して、ステップS6をステップS6Pに置換した点が異なる。その他の構成については同様であるのでその詳細な説明については繰り返さない。
具体的には、ステップS6Pにおいて、通信制御部32は、アプリケーション部31に対してタイプIDとキャラクタIDとセーブデータとを出力する。つまり、指令を行ったアプリケーションプログラムが特定アプリプログラムである場合には、通信制御部32は、タイプIDとキャラクタIDとセーブデータの受け取りを許可する。
図20は、実施形態2に基づく第2アプリ処理を説明するフロー図である。
図20に示されるように、図14のフロー図と比較して異なる点は、ステップS66をステップS66Pに置換した点である。その他の構成については同様であるのでその詳細な説明については繰り返さない。
図21は、実施形態2に基づく第2イベント処理を説明するフロー図である。
図21に示されるように、まず、タグのタイプを確認する(ステップS70)。具体的には、アプリケーション部31は、通信制御部32から送られたタイプIDを確認する。
次に、アプリケーション部31は、取得したタイプIDがタイプTY1であるか否かを判断する(ステップS71)。
アプリケーション部31は、取得したタイプIDがタイプTY1であると判断した場合(ステップS71においてYES)に、取得したセーブデータに関して、現在実行中のアプリケーションプログラムとは別の(関連する)アプリケーションプログラムのセーブデータが有るかどうかを判断する(ステップS72)。この点で、キャラクタIDのみ取得した場合には、関連セーブデータは無と判断する。
関連するアプリIDに関する情報は、予めアプリケーションプログラムに格納されているものとする。アプリケーション部31は、実行中の特定アプリプログラムに関連するアプリID(関連アプリID)と一致するアプリIDと関連付けられたセーブデータが有るか否かを判断する。
ステップS72において、関連セーブデータが有ると判断した場合(ステップS72においてYES)には、関連アプリプログラムに対応するセーブデータを読み込む(ステップS73)。
次に、関連セーブデータに含まれている家外観データを取得する(ステップS74)。
具体的には、関連セーブデータに含まれる一部のデータである家側面ID、屋根ID、ドアIDを取得する。なお、取得する一部のデータの種類は予め設定されているものとする。
次に、取得した家外観データに基づいて家外観を表示する(ステップS75)。なお、実行中の特定アプリプログラムは、関連セーブデータに含まれる家側面ID、屋根ID、ドアIDに基づいて家外観を表示させるための生成プログラムが含まれているものとする。具体的には、図16に示されるように仮想空間内の家モデル100が表示される。
そして、キャラクタIDに対応するキャラクタオブジェクトを表示する(ステップS76)。また、図16に示されるように、仮想空間内にキャラクタオブジェクト110を表示する。当該キャラクタオブジェクト110は、ユーザが操作することのできない(ユーザの操作を制限する)選択不可能なキャラクタである。
そして、処理を終了する(リターン)。
また、ステップS72において、関連アプリプログラムの関連アプリIDと一致するアプリIDと関連付けられたセーブデータが無いと判断した場合(ステップS72においてNO)には、関連セーブデータは無しと判断する。
この場合には、ステップS76に進み、キャラクタIDが示すキャラクタオブジェクトを表示する処理を実行する(ステッ76)。
そして、処理を終了する(リターン)。なお、関連アプリプログラムの関連アプリIDは、一種類に限らず複数種類のアプリIDを用いることも可能である。
一方、取得したタイプIDがタイプTY1でないと判断した場合(ステップS71においてNO)には、取得したタイプIDがタイプTY2であるか否かを判断する(ステップS77)。
ステップS77において、アプリケーション部31は、取得したタイプIDがタイプTY2であると判断した場合(ステップS77においてYES)には、キャラクタIDに対応するキャラクタオブジェクトを表示する(ステップS79)。タイプIDがタイプTY2である場合には、アプリケーション部31は、上記第2イベント処理として、ゲームの進行に影響を与える処理を実行する。本例においては、ユーザが操作することが可能なキャラクタを出現させる。
そして、処理を終了する(リターン)。
一方、ステップS77において、アプリケーション部31は、取得したタイプIDがタイプTY2でないと判断した場合(ステップS77においてNO)には、処理を終了する(リターン)。
図22は、実施形態2に基づく一例としてユーザが操作するキャラクタオブジェクトを表示した場合を説明する図である。
図22に示されるように、本例においては、すごろくゲームを実行するアプリケーションプログラムを実行した場合のゲーム画面が表示されている。当該ゲーム画面において、すごろくゲームの進行に用いられる複数のマスが配置されている場合が示されている。すごろくゲームは、ユーザの操作に従って出現するすごろくの目(数字)に応じてユーザが操作するキャラクタがマスを進むことによりゲームが進行する。本例においては、ユーザが操作するキャラクタオブジェクト111としてゲーム画面に表示されている場合が示されている。
なお、本例においては、ユーザが操作可能な複数のキャラクタオブジェクトがゲーム画面に表示されている。一例として4体のキャラクタオブジェクトがゲーム画面に表示されている。
また、キャラクタオブジェクトに対応したポイントがゲーム画面に表示されている。
一例として、キャラクタオブジェクト111に対応して設けられたポイント表示領域400が表示されている。他のキャラクタオブジェクトについても同様である。また、当該ポイント表示領域400内には、ポイント値402として「10」ポイント有る場合が示されている。他のキャラクタオブジェクトについても同様である。当該ポイント値は、すごろくゲームを実行することによりキャラクタオブジェクトに対応して加減算される。
本実施形態2に基づく情報処理装置3は、第2のアプリケーションプログラム(アプリB)を実行する際に、タグのタイプに応じた処理を実行する。具体的には、タイプTY1のタグについては、アプリAで処理したタグ2に記憶したデータを利用して処理する。情報処理装置3は、ゲームの進行に影響を与えない処理を実行する。例えば、ゲーム画面におけるオブジェクト(操作受付不可オブジェクト)として家モデル100およびキャラクタIDが示すキャラクタオブジェクト110を表示させる。
一方で、タイプTY2のタグについては、アプリAで処理したタグ2に記憶したデータを利用しない。タグ2に記憶されているキャラクタIDに基づく処理を実行する。情報処理装置3は、ゲームの進行に影響を与える処理を実行する。例えば、ゲーム画面における操作するキャラクタとして選択可能なキャラクタオブジェクト111を表示させる。当該キャラクタオブジェクト111を操作したゲームを実行することが可能である。
当該処理により、同じアプリケーションプログラムであっても記憶媒体(タグ)の種別に応じて異なるイベント処理を実行することが可能である。
すなわち、異なる処理を実行することにより、タグに記憶するデータを用いてタグの興趣性を高めた処理が可能である。
(実施形態3)
実施形態3においては、同じアプリケーションプログラムに対して種別が異なるタグにより処理が異なるさらに別の場合について説明する。具体的には、タグの種別に応じて第2アプリ処理において処理が異なる場合について説明する。
図23は、実施形態3に基づくタグ2Qの外観の一例を示す図である。
図23に示すように、本実施形態におけるタグ2Qは、カード型のタグである。
カード型のタグとして、図2のカード型のタグとは異なる種別として一例としてタイプTY3が関連付けられているものとする。
また、当該タグ2Qは、タグ2の縦型のカードと比較して横型のカードであり外形的な形態が異なる。また、キャラクタの絵が描かれた外観を有しておらず、木が描かれた外観を有しており絵柄が異なる点でも形態が異なる。なお、カードの大小によっても外形的な形態を異なるようにしても良い。また、カードの材質により形態を異なるようにしても良い。例えば、タグの種別に従って、紙、プラスチック、樹脂等の材質により形態が異なるようにすることも可能である。
タグ2Qは、情報処理装置3で実行可能な特定のアプリケーション(例えばゲーム)でのみ利用される。本例においては、アプリBでのみ利用される。ユーザは、このタグ2Qを用いることによって、上記特定のアプリケーションにおいてゲームに用いられるマップ(一例としてすごろくマップ)を登場させた所定のイベント処理を実行することができる。すなわち、情報処理装置3は、上記特定のアプリケーションのプログラムを実行する際、タグ2Qに記憶されるデータを用いることによって、当該アプリケーションのプログラムによって生成される仮想空間にマップを登場させる。当該マップを利用したゲームを実行することが可能である。
図24は、実施形態3に基づくタグ2Qからデータを読み出す場合における情報処理システムの処理の流れの一例を示す図である。
図24に示されるように、図4の情報処理システムの流れと比較して異なる点は、処理sq6が処理sq6Qに置換した点である。その他の構成については同様であるのでその詳細な説明については繰り返さない。
図25は、実施形態3に基づく読出指令を受けた場合における通信制御部32の処理(読出指令処理)の流れの一例を示すフローチャートである。
図25に示されるように、図5の読出指令を受けた場合における通信制御部32の処理(読出指令処理)とを説明するフローチャートと比較して、ステップS6をステップS6Qに置換した点が異なる。その他の構成については同様であるのでその詳細な説明については繰り返さない。
具体的には、ステップS6Qにおいて、通信制御部32は、アプリケーション部31に対してタイプIDを出力する。つまり、指令を行ったアプリケーションプログラムが特定アプリプログラムである場合には、通信制御部32は、タイプIDの受け取りを許可する。
図26は、実施形態3に基づく第2アプリ処理を説明するフロー図である。
図26に示されるように、図14のフロー図と比較して異なる点は、ステップS66をステップS66Qに置換した点である。その他の構成については同様であるのでその詳細な説明については繰り返さない。
図27は、実施形態3に基づく第2イベント処理を説明するフロー図である。
図27に示されるように、まず、タグのタイプを確認する(ステップS70)。具体的には、アプリケーション部31は、通信制御部32から送られたタイプIDを確認する。
次に、アプリケーション部31は、取得したタイプIDがタイプTY1であるか否かを判断する(ステップS71)。
アプリケーション部31は、取得したタイプIDがタイプTY1であると判断した場合(ステップS71においてYES)に、取得したセーブデータに関して、現在実行中のアプリケーションプログラムとは別の(関連する)アプリケーションプログラムのセーブデータが有るかどうかを判断する(ステップS72)。この点で、キャラクタIDのみ取得した場合には、関連セーブデータは無と判断する。
関連するアプリIDに関する情報は、予めアプリケーションプログラムに格納されているものとする。アプリケーション部31は、実行中の特定アプリプログラムに関連するアプリID(関連アプリID)と一致するアプリIDと関連付けられたセーブデータが有るか否かを判断する。
ステップS72において、関連セーブデータが有ると判断した場合(ステップS72においてYES)には、関連アプリプログラムに対応するセーブデータを読み込む(ステップS73)。
次に、関連セーブデータに含まれている家外観データを取得する(ステップS74)。
具体的には、関連セーブデータに含まれる一部のデータである家側面ID、屋根ID、ドアIDを取得する。なお、取得する一部のデータの種類は予め設定されているものとする。
次に、取得した家外観データに基づいて家外観を表示する(ステップS75)。なお、実行中の特定アプリプログラムは、関連セーブデータに含まれる家側面ID、屋根ID、ドアIDに基づいて家外観を表示させるための生成プログラムが含まれているものとする。具体的には、図16に示されるように仮想空間内の家モデル100が表示される。
そして、キャラクタIDに対応するキャラクタオブジェクトを表示する(ステップS76)。また、図16に示されるように、仮想空間内にキャラクタオブジェクト110を表示する。当該キャラクタオブジェクト110は、ユーザが操作することのできない(ユーザの操作を制限する)選択不可能なキャラクタである。
そして、処理を終了する(リターン)。
また、ステップS72において、関連アプリプログラムの関連アプリIDと一致するアプリIDと関連付けられたセーブデータが無いと判断した場合(ステップS72においてNO)には、関連セーブデータは無しと判断する。
この場合には、ステップS76に進み、キャラクタIDが示すキャラクタオブジェクトを表示する処理を実行する(ステッ76)。
そして、処理を終了する(リターン)。なお、関連アプリプログラムの関連アプリIDは、一種類に限らず複数種類のアプリIDを用いることも可能である。
一方、取得したタイプIDがタイプTY1でないと判断した場合(ステップS71においてNO)には、取得したタイプIDがタイプTY2であるか否かを判断する(ステップS77)。
ステップS77において、アプリケーション部31は、取得したタイプIDがタイプTY2であると判断した場合(ステップS77においてYES)には、キャラクタIDに対応するキャラクタオブジェクトを表示する(ステップS79)。タイプIDがタイプTY2である場合には、アプリケーション部31は、上記第2イベント処理として、ゲームの進行に影響を与える処理を実行する。本例においては、ユーザが操作することが可能なキャラクタを出現させる。
そして、処理を終了する(リターン)。
一方、ステップS77において、アプリケーション部31は、取得したタイプIDがタイプTY2でないと判断した場合(ステップS77においてNO)には、取得したタイプIDがタイプTY3であるか否かを判断する(ステップS80)。
ステップS80において、アプリケーション部31は、取得したタイプIDがタイプTY3であると判断した場合(ステップS80においてYES)には、選択画面を表示する(ステップS81)。タイプIDがタイプTY3である場合には、アプリケーション部31は、上記第2イベント処理として、本例においては、ユーザの選択に従ってタグ2Qに格納されたマップデータに基づくすごろくマップを登場させる。あるいは、ユーザの選択に従ってタグ2Qに対してすごろくマップのマップデータを格納することが可能となる。
一方、ステップS80において、アプリケーション部31は、取得したタイプIDがタイプTY3でないと判断した場合(ステップS80においてNO)には、処理を終了する(リターン)。利用可能でないタグであるため第2イベント処理を終了する。
図28は、実施形態3に基づく選択画面を説明する図である。
図28に示されるように、ここでは、「データをセーブしますか?」と「データをロードしますか?」の表示されており、ユーザによる選択可能な「セーブ」ボタン、「ロード」ボタン、「キャンセル」ボタンが設けられている場合が示されている。
再び図27を参照して、次に、アプリケーション部31は、選択画面においてセーブが選択されたかどうかを判断する(ステップS82)。
ステップS82において、アプリケーション部31は、セーブが選択されたと判断した場合(ステップS82においてYES)には、データを取得する(ステップS83)。
具体的には、ゲーム処理において利用しているマップデータを取得する。当該マップデータは、すごろくのマスに関するデータと、オブジェクト(操作受付不可オブジェクト)のデータとを含む。オブジェクト(操作受付不可オブジェクト)のデータは、図16で説明した家モデル100が表示されている場合には、家外観データを含む。また、オブジェクトのデータは、図16で説明したキャラクタオブジェクト110が表示されている場合には、キャラクタIDを含む。
そして、次に、ステップS84において、アプリケーション部31は、通信制御部32へ取得したデータに関する書込指令を出力する。
これに応じて、通信制御部32はタグ2Qとの通信を行い(図7におけるステップS10)、アプリケーション部31から通信制御部32に書き込むデータ(マップデータ)を出力する。そして、通信制御部32からタグ2Qに対してデータを書き込む。
そして、処理を終了する(リターン)。
当該書込指令により、タグ2Qにマップデータをセーブすることが可能である。そして、当該タグ2Qを利用してデータをロードすることにより、上記セーブしたマップデータに基づくマップを表示させることが可能となる。
図29は、タグ2Qに記憶されるデータの一例について説明する図である。
図29に示すように、タグ2Qは、読み書き可能領域21Qと、読み出し専用領域22Qと、管理領域23とを有する。具体的には、図3のタグ2に記憶されるデータと比較して、読み書き可能領域21Qと、読み出し専用領域22Qとが異なる。
読み出し専用領域22Qには、少なくとも次のデータ(情報)が記憶される。
・固有ID(を示すデータ221)
・タイプID(を示すデータ222)
上記したように、タグ2Qは、アプリBでのみ利用され、仮想空間にすごろくマップを登場させる。したがって、本例においては、キャラクタID(を示すデータ223)やシリーズID(を示すデータ224)は記憶されていない場合が示されている。
読み書き可能領域21Qには、マップデータ(複数のセーブデータ)の内容が具体的に示されている。
具体的には、すごろくマップに配置されるオブジェクトを規定するオブジェクトID(データ240)、すごろくマップの地形等に関するマップID(データ242)、キャラクタID(データ246)、家外観データ(家側面ID(データ212)、屋根ID(データ213)、ドアID(データ214)等が格納されている。
再び、図27を参照して、ステップS82において、アプリケーション部31は、セーブが選択されなかったと判断した場合(ステップS82においてNO)には、ロードが選択されたかどうかを判断する(ステップS85)。
ステップS85において、アプリケーション部31は、ロードが選択されたと判断した場合(ステップS85においてYES)には、セーブデータを読み込む(ステップS86)。具体的には、セーブデータとしてタグ2Qに書き込んだマップデータを取得する。当該マップデータには、すごろくのマスのマップの地形等に関するデータ(マップID)と、オブジェクト(操作受付不可オブジェクト)のデータ(キャラクタID)等が含まれる。
そして、次に、アプリケーション部31は、取得したマップデータに基づくマップを表示する(ステップS87)。
一方、ステップS85において、アプリケーション部31は、ロードが選択されなかったと判断した場合(ステップS85においてNO)には、処理を終了する(リターン)。
具体的には、「キャンセル」ボタンが選択されたと判断してタグ2Qに関するイベント処理を終了する。
本実施形態3に基づく情報処理装置3は、第2のアプリケーションプログラム(アプリB)を実行する際に、タグのタイプに応じた処理を実行する。具体的には、タイプTY1のタグについては、アプリAで処理したタグ2に記憶したデータを利用して処理する。情報処理装置3は、ゲームの進行に影響を与えない処理を実行する。例えば、ゲーム画面におけるオブジェクト(操作受付不可オブジェクト)として家モデル100およびキャラクタIDが示すキャラクタオブジェクト110を表示させる。
また、タイプTY2のタグ2Pについては、アプリAで処理したタグ2Pに記憶したデータを利用しない。タグ2Pに記憶されているキャラクタIDに基づく処理を実行する。情報処理装置3は、ゲームの進行に影響を与える処理を実行する。例えば、ゲーム画面における操作するキャラクタとして選択可能なキャラクタオブジェクト111を表示させる。当該キャラクタオブジェクト111を操作したゲームを実行することが可能である。
また、タイプTY3のタグ2Qについては、タグ2Qに記憶されているマップデータに基づく処理を実行する。例えば、ゲーム画面におけるマップを表示させる。あるいは、タグ2Qにマップデータをセーブ(格納)する処理を実行する。
当該処理により、同じアプリケーションプログラムであっても記憶媒体(タグ)の種別に応じて異なるイベント処理を実行することが可能である。
すなわち、異なる処理を実行することにより、タグに記憶するデータを用いてタグの興趣性を高めた処理が可能である。
また、タイプTY3のタグ2Qは、オブジェクト(操作受付不可オブジェクト)のデータを含むマップデータを格納する。したがって、ゲーム画面において当該オブジェクトが変更(更新)された場合には、更新されたオブジェクトを含むマップデータを格納することが可能である。
例えば、タイプTY1のタグ2がアプリBで利用される毎に、例えば、ゲーム画面におけるオブジェクト(操作受付不可オブジェクト)として家モデルおよびキャラクタIDが示すキャラクタオブジェクトが表示される。そして、当該オブジェクト(操作受付不可オブジェクト)を含むマップデータをタイプTY3のタグ2Qで格納し、次にゲーム処理する際に、当該タグ2Qを利用することにより、更新されたオブジェクト(操作受付不可オブジェクト)を含むマップデータに基づくマップでゲームを実行することが可能となる。
当該処理により、タグに記憶するデータを用いてタグの興趣性を高めた処理が可能である。
図30は、実施形態3に基づくタグ2Qの別の利用形態の一例を説明する図である。
図30に示されるように、本例においては、情報処理装置3aにおいて(1)アプリケーションプログラムB(アプリB)に従いタグ2Qのデータの読み込みを実行する。具体的には、タグ2Qに記憶されているすごろくゲームのマップデータの読み込みを実行する。そして、マップデータに基づくマップを表示してゲームを実行することが可能である。
次に、情報処理装置3aにおいて(2)アプリケーションプログラムB(アプリB)に従いタグ2Qへのデータの書き込みを実行する。具体的には、すごろくゲームのマップデータ(オブジェクトのデータや家外観データ等)をタグ2Qに対して書き込みを実行する。
そして、本例においては、情報処理装置3aとは別の情報処理装置3bにおいて(3)アプリケーションプログラムB(アプリB)に従いタグ2Qのデータの読み込みを実行する。そして、マップデータに基づくマップを表示してゲームを実行することが可能である。
本実施形態3においては、情報処理装置3aにおいてアプリBに従いタグ2Qへのデータの書き込みを実行したデータに関して、別の情報処理装置3bにおいてアプリBで当該データを利用することが可能である。具体的には、オブジェクトのデータや家外観データは、マップ仮想空間に配置する家モデルの外観表示等に関連する環境データである。当該環境データをタグ2Qを利用して他のデバイスで利用することが可能である。
(実施形態4)
実施形態4においては、タグと情報処理装置とが関連付けられることにより第2アプリ処理において処理が異なる場合について説明する。
図31は、実施形態4に基づく第2アプリ処理を説明するフロー図である。
図31に示されるように、図14のフロー図と比較して異なる点は、ステップS66をステップS66Rに置換した点である。その他の構成については同様であるのでその詳細な説明については繰り返さない。
図32は、実施形態4に基づく第2イベント処理を説明するフロー図である。
図32に示されるように、図27に示される第2イベント処理と比較して、ステップS90,S92を追加した点が異なる。その他のフローについては同様であるのでその詳細な説明については繰り返さない。
ステップS77において、アプリケーション部31は、取得したタイプIDがタイプTY2であると判断した場合(ステップS77においてYES)には、キャラクタIDに対応するキャラクタオブジェクトを表示する(ステップS79)。タイプIDがタイプTY2である場合には、アプリケーション部31は、上記第2イベント処理として、ゲームの進行に影響を与える処理を実行する。本例においては、ユーザが操作することが可能なキャラクタを出現させる。
次に、アプリケーション部31は、ポイントの利用の選択の指示が有るか否かを判断する(ステップS90)。具体的には、ユーザからの操作指示に従ってポイントの利用の選択指示が有るかどうかを判断する。例えば、アプリケーション部31は、情報処理装置3の入力部16による所定の操作指示(例えば所定ボタンの操作)の有無に基づいてポイントの利用の選択指示が有るかどうかを判断する。
ステップS90において、アプリケーション部31は、ポイントの利用の選択の指示が有ると判断した場合(ステップS90においてYES)には、ポイントの利用の判定処理(ポイント利用判定処理)を実行する(ステップS92)。ポイント利用判定処理は、キャラクタIDに対応するキャラクタオブジェクトに関して、当該キャラクタオブジェクトに対応付けられているポイント値を利用した処理が可能であるか否かを判定し、判定結果に基づいて所定の処理を実行する。
一方、ステップS90において、アプリケーション部31は、ポイントの利用の選択の指示が無いと判断した場合(ステップS90においてNO)には、ステップS92のポイント利用判定処理をスキップして処理を終了する(リターン)。
図33は、実施形態4に基づくポイント利用判定処理のサブルーチンについて説明するフロー図である。
図33に示されるように、アプリケーション部31は、登録済フラグがオンしているかどうかを判断する(ステップS100)。具体的には、アプリケーション部31は、タイプTY2のタグ2PのアプリID(本例においてはアプリB)に対応するセーブデータに登録済フラグがオンとして登録されているか否かを判断する。
ステップS100において、アプリケーション部31は、登録済フラグがオンしていない(つまりオフ)と判断した場合(ステップS100においてNO)には、タグ2Pから取得したデータに含まれる固有IDをメモリ14に保存する(ステップS101)。
タグ2Pの固有IDとは、タグ2Pから読み出したデータに含まれるタグ2Pを識別する情報(識別情報)である。
そして、次に、アプリケーション部31は、通信制御部32へ登録済フラグをオンする書込指令を出力する(ステップS102)。具体的には、アプリケーション部31は、情報処理装置3のメモリ14にタグ2Pの固有IDを保存(登録)することにより、タイプTY2のタグ2PのアプリID(本例においてはアプリB)に対応するセーブデータとして登録済フラグをオンに設定する。
アプリケーション部31は、タグ2Pの固有IDをメモリ14に登録することにより、登録されたタグ2Pのデータに基づく所定のイベント処理を実行する。
なお、ステップS101とステップS102との処理を入れ替えるようにすることも可能である。
図34は、タグ2Pに記憶されるデータの一例について説明する図である。
図34に示すように、タグ2Pは、読み書き可能領域21Pと、読み出し専用領域22と、管理領域23とを有する。具体的には、図3のタグ2に記憶されるデータと比較して、セーブデータの内容が具体的に示されている。
読み書き可能領域21Pには、アプリIDに対応するセーブデータが格納されている。
本例においては、一例としてアプリBに対応するセーブデータが示されている。
セーブデータとして、登録済フラグ(データ250)と、ポイントデータ(データ252)が格納されている。
登録済フラグは、タグ2Pの固有IDが情報処理装置3に登録されたことを示すデータである。登録済フラグがオンの場合には、登録済であることを示す。一方、登録済フラグがオフの場合には、未登録であることを示す。
ポイントデータは、アプリBのすごろくゲームを実行することにより加減算されるポイント値を指し示す。
再び、図33を参照して、ステップS100において、アプリケーション部31は、登録済フラグがオンであると判断した場合(ステップS100においてYES)には、IDが一致するか否かを判断する(ステップS103)。具体的には、アプリケーション部31は、登録済フラグがオンであると判断した場合には、タグ2Pから読み出したデータに含まれる固有IDと、メモリ14に既に登録されているタグの固有IDとが一致するか否かを判断する。
ステップS103において、アプリケーション部31は、IDが一致すると判断した場合(ステップS103においてYES)には、ポイント利用選択画面を表示する(ステップS104)。具体的には、アプリケーション部31は、タグ2Pから読み出したデータに含まれる固有IDと、メモリ14に既に登録されているタグの固有IDとが一致すると判断した場合には、ポイント利用選択画面を表示する。
図35は、実施形態4に基づくポイント利用選択画面を説明する図である。
図35に示されるように、ポイントを選択的に利用可能なポイント利用選択画面300が示されている。
具体的には、キャラクタオブジェクトに対応付けられたポイント値を利用してマップ上に表示するオブジェクトを選択することが可能な画面が示されている。
一例として、「ベンチ」オブジェクト302が示されており、当該「ベンチ」オブジェクト302をマップ上に表示するためにポイント値として5ポイント必要である場合が示されている。
また、ポイント利用選択画面300には、「使う」ボタン306と、「使わない」ボタン308とが設けられている。また、カーソル304が設けられている。
カーソル304を選択することによりマップ上に表示するオブジェクトを変更することが可能である。例えば、カーソル304を選択することにより「ベンチ」オブジェクトではなく、別の「ブランコ」オブジェクト等に変更することも可能である。
ユーザは、入力部16を操作して「使う」ボタン306を選択することにより、当該表示されているオブジェクトを選択することが可能である。
一方、ユーザは、入力部16を操作して「使わない」ボタン308を選択することにより、ポイント利用選択画面300におけるポイントの利用の無しを選択することが可能である。そして、当該ポイント利用選択画面300の表示が終了する。
例えば、ユーザが「使う」ボタン306を選択した場合には、「ベンチ」オブジェクト302をマップ上に表示することが可能である。
図36は、実施形態4に基づく一例としてベンチオブジェクトを表示した場合を説明する図である。
図36に示されるように、図22の画面と比較して、「ベンチ」オブジェクト302がゲーム画面に表示されている。
なお、「ベンチ」オブジェクト302は、上記で説明した家モデル100と同様、ゲームの進行に影響を与えないオブジェクト(操作受付不可オブジェクト)である。
また、当該処理により、キャラクタオブジェクト111に対応して設けられたポイント表示領域400において、ポイント値402は、「10」ポイントから「5」ポイントに変更された場合が示されている。
再び、図33を参照して、アプリケーション部31は、利用が有るかどうかを判断する(ステップS106)。具体的には、アプリケーション部31は、ポイント利用選択画面300において「使う」ボタンが選択されたか否かを判断する。
ステップS106において、アプリケーション部31は、利用が有ると判断した場合(ステップS106においてYES)には、オブジェクトを表示する(ステップS108)。具体的には、アプリケーション部31は、ポイント利用選択画面300において「使う」ボタンが選択された場合には、当該選択されたオブジェクトをマップ上に表示する。
そして、処理を終了する(リターン)。
一方、ステップS106において、アプリケーション部31は、利用が無いと判断した場合(ステップS106においてNO)には、処理を終了する(リターン)。具体的には、アプリケーション部31は、ポイント利用選択画面300において「使わない」ボタンが選択された場合には、当該ポイント利用選択画面の表示を終了する。
一方、ステップS103において、アプリケーション部31は、IDが一致しないと判断した場合(ステップS103においてNO)には、処理を終了する(リターン)。具体的には、アプリケーション部31は、タグ2Pのデータに含まれている固有IDと、メモリ14に既に登録されているタグの固有IDとが一致するか否かを判断し、一致しないと判断した場合には、ポイント利用選択画面の表示をスキップして処理を終了する。したがって、この場合にはポイントを利用することができない。
当該処理により、情報処理装置3のメモリ14に登録されているタグの固有IDと、タグ2Pから読み出したデータに含まれる固有IDとが一致した場合に、セーブデータのポイントを利用してオブジェクトを配置することが可能である。一方で、情報処理装置3のメモリ14にタグ2Pの固有IDと異なる固有IDが登録されている場合には、セーブデータのポイントを利用することはできない。
例えば、ユーザがタグ2Pを有している場合に、タグ2Pに格納されているキャラクタIDに対応するキャラクタオブジェクトを出現してゲーム処理を実行することが可能である。タグ2Pに基づくゲーム処理を実行する場合、タグ2Pの固有IDは、情報処理装置3のメモリ14に登録されるものとする。また、タグ2Pの登録済フラグはオンに設定されるものとする。この場合、ゲーム処理として、タグ2Pに格納されているキャラクタIDに対応するキャラクタオブジェクトを出現して、当該タグ2Pに格納されているポイント値を利用した処理を実行することが可能である。
また、別のユーザが別のタグ2P(固有IDは異なる)を有している場合、ゲーム処理として、当該別のタグ2Pに格納されているキャラクタIDに対応するキャラクタオブジェクトを出現してゲーム処理を実行することが可能である。当該別のタグ2Pの固有IDは、別の情報処理装置3のメモリ14に登録されているものとする。また、当該別のタグ2Pの登録済フラグはオンに設定されているものとする。この場合、ゲーム処理として、当該別のタグ2Pに格納されているキャラクタIDに対応するキャラクタオブジェクトを出現させるが、当該別のタグ2Pに格納されているポイント値を利用した処理は実行できない。つまり、この場合には制限された処理となる。
したがって、タグ2Pの固有IDを情報処理装置3のメモリ14に登録することにより情報処理装置3とタグ2Pとを関連付けることが可能となり、特定の装置においてゲーム処理として異なる処理を実行することが可能であり、タグを用いた処理の興趣性を高めることが可能である。
なお、本例においては、情報処理装置3のメモリ14にタグ2Pの固有IDを登録して、アクセスするタグの固有IDと比較して一致する場合に所定のイベント処理を実行する場合について説明したが、特に当該方式に限られず他の方式で実行するようにしても良い。
例えば、情報処理装置3の識別情報(ID)をタグ2Pに登録することにより、アクセスするタグ2Pに登録された当該識別情報(ID)と実行する情報処理装置3の識別情報(ID)とを比較して一致する場合に所定のイベント処理を実行するようにしても良い。
あるいはタグ2Pにユーザアカウント情報(ユーザ識別情報)を登録して、実行する情報処理装置3のメモリ14に予め保存されているユーザアカウント情報とを比較して一致する場合に所定のイベント処理を実行するようにしても良い。
(情報処理システムの構成に関する変形例)
他の実施形態において、タグ2が情報処理部を有する場合には、情報処理装置3で実行される処理の一部は、タグ2の側で実行されてもよい。例えば、通信制御部32における処理(の一部または全部)が、タグ2が有する情報処理部によって実行されてもよい。上記実施形態においては、通信制御部32は実際にはタグ2からデータを読み出し、通信制御部32がアプリケーション部31へのデータの受け渡しを管理することによって、アプリケーション部31によるタグ2からのデータの読み出しを制限するようにした。これに対して、通信制御部32における処理がタグ2の側で実行される場合には、情報処理装置3によるタグ2からのデータの読み出しが実際に制限されることになる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。