情報処理プログラムおよび情報処理装置
【課題】 複数アプリ間で共用される情報を煩雑な操作なしで最新状態に保つ。
【解決手段】 情報処理装置(10)では、第1−第3アプリによって共用されるセーブデータが、保存用データメモリ52に、第1−第3アプリに対応させて第1−第3データDa−Dcとして記憶される。コンピュータ(42)は、たとえば第1アプリが起動されると、保存用データメモリ52に記憶されている第1−第3データDa−Dcをメインメモリ48内で統合し(S7)、この統合データDintを第1アプリの実行に従って更新する(S17)一方、自動保存指示やユーザによる保存指示に応じて、保存用データメモリ52に記憶されている第1データDaおよび第2データDbを更新された統合データDintで上書きする(S19)。
【解決手段】 情報処理装置(10)では、第1−第3アプリによって共用されるセーブデータが、保存用データメモリ52に、第1−第3アプリに対応させて第1−第3データDa−Dcとして記憶される。コンピュータ(42)は、たとえば第1アプリが起動されると、保存用データメモリ52に記憶されている第1−第3データDa−Dcをメインメモリ48内で統合し(S7)、この統合データDintを第1アプリの実行に従って更新する(S17)一方、自動保存指示やユーザによる保存指示に応じて、保存用データメモリ52に記憶されている第1データDaおよび第2データDbを更新された統合データDintで上書きする(S19)。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報処理プログラムおよび情報処理装置に関し、特にたとえば、複数のアプリケーション(ソフトウェア)の間で、セーブデータなどの情報を共用する、情報処理プログラムおよび情報処理装置に関する。
【背景技術】
【0002】
この種の背景技術としては、たとえば特許文献1に開示されたものが知られている。この背景技術では、シリーズ化されたソフトウェア間で、古いソフトウェアのセーブデータが新しいソフトウェアでも利用できたり、新しいソフトウェアのセーブデータが古いソフトウェアでも利用できたりする。具体的には、あるソフトウェアを起動したときに、他のソフトウェアのセーブデータが存在するか否かを判別して、セーブデータが存在する場合に、当該セーブデータに関する情報を表示して、使用するセーブデータをユーザに選択させるようになっている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−183066号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上記の背景技術では、古いセーブデータであってもいつまでも残存する可能性があるため、ユーザが誤って古いセーブデータを選択することがあったり、セーブデータの選択時にセーブデータの生成日時や更新日時を確認する作業が必要になったりするという問題があった。
【0005】
それゆえに、この発明の主たる目的は、新規な、情報処理プログラムおよび情報処理装置を提供することである。
【0006】
この発明の他の目的は、複数アプリ間で共用されるセーブデータなどの情報を煩雑な操作なしで最新状態に保つことができる、情報処理プログラムおよび情報処理装置を提供することである。
【課題を解決するための手段】
【0007】
この発明は、上記の課題を解決するために、以下の構成を採用した。
【0008】
第1の発明は、記憶手段に接続されたコンピュータを、アプリケーション実行手段、更新手段、および第1上書き手段として機能させる、情報処理プログラムである。記憶手段には、第1アプリケーションおよび第2アプリケーションによってその少なくとも一部が共用されるデータが、第1アプリケーションに対応させて第1データとして記憶されると共に、第2アプリケーションに対応させて第2データとしても記憶される。すなわち、データは、第1アプリ用の第1データおよび第2アプリ用の第2データとして2通りに記憶される。アプリケーション実行手段は、所定のデータで第1アプリケーションを実行する。更新手段は、アプリケーション実行手段による第1アプリケーションの実行にしたがって所定のデータを更新する。第1上書き手段は、記憶手段に記憶されている第1データおよび第2データを更新手段によって更新された所定のデータで上書きする。
【0009】
第1の発明によれば、第1のアプリケーションの実行にしたがって更新された所定のデータを、第1のアプリケーションに対応させた第1データと第2のアプリケーションに対応させた第2データに上書きするため、第1データおよび第2データを煩雑な操作なしで最新状態に保つことができる。
【0010】
第2の発明は、第1の発明に従属する情報処理プログラムであって、コンピュータを、統合手段としてさらに機能させ、アプリケーション実行手段は、統合手段によって統合された統合データで第1アプリケーションを実行する。統合手段は、記憶手段に記憶されている第1データおよび第2データを統合する。第1アプリケーションは、こうして統合された統合データで実行される。
【0011】
第2の発明によれば、以前の第1アプリケーションおよびは第2アプリケーションの実行により更新されている第1データおよび第2データを統合して第1アプリケーションの実行で更新し、更新したデータを第1データおよび第2データに上書きするため、第1データおよび第2データを以前のアプリケーションの実行結果が反映されたものにすることができる。さらに、上書きされた後の第1データおよび第2データの何れかが消失した場合や破損した場合であっても、最新状態に保たれている一方のデータを用いて各アプリケーションを実行できる。
【0012】
第3の発明は、第1の発明に従属する情報処理プログラムであって、第1上書き手段は、所定の指示に応じて、記憶手段に記憶されている第1データおよび第2データを更新手段によって更新された所定のデータで上書きする。
【0013】
第3の発明によれば、適切なタイミングで第1データと第2データを最新状態に保つことができる。
【0014】
なお、好ましくは、記憶手段は、不揮発性メモリたとえばフラッシュメモリなどの保存用データメモリを含み、統合および更新の各処理は、揮発性メモリたとえばコンピュータに接続されたメインメモリあるいはコンピュータの内蔵メモリ上で行われる。ただし、場合によっては、統合および更新の各処理も記憶手段内で行ってよい。
【0015】
第4の発明は、第2の発明に従属する情報処理プログラムであって、コンピュータを、起動手段としてさらに機能させ、統合手段は、起動手段によって第1アプリケーションが起動されたときに統合を行う。起動手段は、第1アプリケーションを起動させ、統合手段は、起動手段が第1アプリケーションを起動させたときに第1データおよび第2データの統合を行う。
【0016】
第4の発明によれば、第1アプリケーションの起動時に第1データおよび第2データを統合するため、最新のデータで第1アプリケーションの実行を開始させることができる。
【0017】
第5の発明は、第4の発明に従属する情報処理プログラムであって、コンピュータを、第2上書き手段としてさらに機能させる。第2上書き手段は、記憶手段に記憶されている第1データおよび第2データを、第1アプリケーションが起動されたときに統合手段によって統合された統合データで、第1アプリケーションの実行が開始される前に上書きする。
【0018】
第5の発明によれば、第1アプリケーションの起動時に、第1データおよび第2データを統合して、統合結果を速やかに第1データおよび第2データに反映させるので、第1アプリケーションの実行により更新された統合データが第1データおよび第2データに上書きされる前にコンピュータの電源オフ等によりアプリケーションが終了した場合であっても、第1データおよび第2データを統合後の新しいデータにすることができる。
【0019】
第6の発明は、第5の発明に従属する情報処理プログラムであって、第1および/または第2上書き手段は、記憶手段に記憶されている第1データおよび/または第2データのうち、統合手段によって統合された統合データと異なる部分を上書きする。
【0020】
第6の発明によれば、効率的な上書きが行える。
【0021】
第7の発明は、第2ないし第6のいずれかの発明に従属する情報処理プログラムであって、データの共用部分は複数の項目に区分されており、統合手段は第1データおよび第2データを項目毎に統合する。
【0022】
第7の発明によれば、項目によって異なる統合ルールを適用できるので、多様な統合が実現できる。
【0023】
第8の発明は、第7の発明に従属する情報処理プログラムであって、複数の項目の各々は、それぞれに1つのファイルが割り当てられた複数のグループのいずれか1つに属しており、第1および/または第2上書き手段は、第1データおよび第2データをファイル単位で上書きする。
【0024】
第8の発明によれば、項目をグループ分けしてファイルに収め、上書きをファイル単位で行うようにしたので、上書きの効率を向上させることと、記憶手段としてフラッシュメモリを用いることとが容易になる。
【0025】
第9の発明は、第8の発明に従属する情報処理プログラムであって、第1および/または第2上書き手段は、複数のグループ毎にそこに含まれる全ての項目について変化があるか否かを判定し、判定結果が肯定である項目を少なくとも1つ含むグループに対応するファイルについて上書きを行う。
【0026】
第9の発明によれば、効率よく上書きが行える。
【0027】
第10の発明は、第8または第9の発明に従属する情報処理プログラムであって、統合手段は、各ファイルの属性および/または各項目の実体に応じたルールに従って統合を行う。
【0028】
第10の発明によれば、多様な統合を効率よく行える。
【0029】
第11の発明は、第10の発明に従属する情報処理プログラムであって、属性は、各ファイルが更新日時データを含むか否かに関し、ルールは、各ファイルが更新日時データを含んでいれば最新ファイルのデータを採用するという最新採用ルールを含む。
【0030】
第11の発明によれば、統合にあたって最新データを採用するので、第1データおよび第2データに古いデータが残らないようにすることができる。
【0031】
第12の発明は、第10の発明に従属する情報処理プログラムであって、ルールは、項目の実体がアプリケーションの進行状況に関連するフラグである場合にはどれかのデータでフラグが立っていればフラグを立てるというフラグルールを含む。
【0032】
第13の発明は、第10の発明に従属する情報処理プログラムであって、ルールは、項目の実体が値である場合には最も良い値を採用するという最良値ルールを含む。
【0033】
第14の発明は、第10の発明に従属する情報処理プログラムであって、ルールは、項目の実体がデータの管理情報である場合には論理和により採用するという論理和ルールを含む。
【0034】
第14の発明によれば、管理情報を漏れなく採用できる。
【0035】
第15の発明は、第14の発明に従属する情報処理プログラムであって、論理和ルールには、同じ管理情報の異なるデータがあればどれも採用しないという条件がつく。
【0036】
第15の発明では、同じ管理情報が割り当てられているのにデータ自体は異なっている(たとえば同じ写真管理情報が割り当てられているのに画像データは別物である)という場合、どの管理情報も採用されない。
【0037】
第15の発明によれば、間違っている可能性のある管理情報を排除できる。
【0038】
第16の発明は、第3の発明に従属する情報処理プログラムであって、所定の指示は自動保存指示を含む。
【0039】
第16の発明では、上書きは自動保存指示に応じて実行される。
【0040】
第16の発明によれば、ユーザは保存指示を行わなくてよいので、操作量が削減される。
【0041】
なお、所定の指示は、ユーザによる保存指示を含んでもよい。この場合、上書きは、ユーザによる保存指示に応じて実行される。したがって、ユーザが指示するまでは上書きは行われないので、コンピュータや記憶手段への負荷を減らすことができる。
【0042】
第17の発明は、第1の発明に従属する情報処理プログラムであって、データは、第1アプリケーションおよび第2アプリケーションの各アプリケーションの実行により変化する当該各アプリケーションに関連するパラメータを示すデータである。
【0043】
第18の発明は、第2の発明に従属する情報処理プログラムであって、コンピュータを、制御手段としてさらに機能させる。制御手段は、記憶手段に記憶されている第1データに異常がある場合に、記憶手段に記憶されている第2データを利用して当該異常を修復するように統合手段を制御する。
【0044】
第18の発明によれば、統合を通じて異常を修復できる。
【0045】
第19の発明は、第18の発明に従属する情報処理プログラムであって、制御手段は、第1データに対応する更新日時データが現在日時に対して未来かつ同日を示す場合には当該現在日時を示すように当該更新日時データを変更する一方、未来かつ翌日以降を示す場合には当該第1データを無効化する、日時制御手段を含む。
【0046】
第19の発明によれば、更新日時データの示す日時が未来であっても当日であれば、現在日時を示すように更新日時データを変更するに止め、翌日以降であれば、第1データ自体を無効化するので、当日のデータを生かして統合が行える。
【0047】
第20の発明は、第1アプリケーションおよび第2アプリケーションによってその少なくとも一部が共用されるデータを、当該第1アプリケーションに対応させて第1データとして記憶すると共に、当該第2アプリケーションに対応させて第2データとして記憶する、記憶手段、所定のデータで第1アプリケーションを実行するアプリケーション実行手段、アプリケーション実行手段による第1アプリケーションの実行にしたがって所定のデータを更新する更新手段、および記憶手段に記憶されている第1データおよび第2データを更新手段によって更新された所定のデータで上書きする第1上書き手段を備える、情報処理装置である。
【0048】
第20の発明でも、第1の発明と同様に、第1データおよび第2データを煩雑な操作なしで最新状態に保つことができる。
【発明の効果】
【0049】
この発明によれば、複数アプリ間で共用されるセーブデータなどの情報を煩雑な操作なしで最新状態に保つことができる、情報処理プログラムおよび情報処理装置が実現される。
【0050】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0051】
【図1】この発明の一実施例であるゲーム装置の外観図であり、開状態における正面を示す。
【図2】ゲーム装置の外観図であり、開状態における側面を示す。
【図3】ゲーム装置の外観図であり、(A)は閉状態における一方側面を、(B)は閉状態における上面を、(C)は閉状態における他方側面を、そして(D)は閉状態における下面をそれぞれ示す。
【図4】ゲーム装置がユーザによって把持された様子を示す図解図である。
【図5】ゲーム装置の電気的構成の一例を示すブロック図である。
【図6】顔トレーニングの流れを説明するための図解図であり、(A)はアプリ選択画面を示し、(B)はトレーニング選択画面を示し、(C)はトレーニング画面を示し、(D)は表情測定画面を示す。
【図7】ゲーム装置のメモリマップ図であり、(A)は保存用データメモリの一部を示し、(B)はメインメモリの一部を示す。
【図8】セーブデータの構成例を示す図解図である。
【図9】項目テーブルの構成例を示す図解図である。
【図10】統合ルールテーブルの構成例を示す図解図である。
【図11】統合ルールの項目への適用例を示す図解図である。
【図12】ファイル管理テーブルの構成および制御の一例を示す図解図であり、(A)が制御前に対応し、(B)が制御後に対応する。
【図13】CPU動作の一部を示すフロー図である。
【図14】CPU動作の他の一部を示すフロー図である。
【図15】CPU動作のその他の一部を示すフロー図である。
【図16】CPU動作のさらにその他の一部を示すフロー図である。
【図17】CPU動作の他の一部を示すフロー図である。
【図18】CPU動作のその他の一部を示すフロー図である。
【発明を実施するための形態】
【0052】
図1−図3には、本発明の一実施例であるゲーム装置10の外観が示される。ゲーム装置10は折り畳み型のゲーム装置であり、図1および図2は、開いた状態(開状態)におけるゲーム装置10を示し、図3は、閉じた状態(閉状態)におけるゲーム装置10を示している。また、図1は、開状態におけるゲーム装置10の正面図であり、図2は、開状態におけるゲーム装置の側面図である。ゲーム装置10は、2つの表示装置(LCD12および14)および2つのカメラ(カメラ16および18)を有し、カメラによって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることができる。
【0053】
ゲーム装置10は、開いた状態において両手または片手で把持することができるような小型のサイズとされる。
【0054】
ゲーム装置10は、下側ハウジング20および上側ハウジング22という2つのハウジングを有する。下側ハウジング20と上側ハウジング22とは、開閉可能(折り畳み可能)に接続されている。この実施例では、各ハウジング20および22はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。
【0055】
上側ハウジング22は、下側ハウジング20の上側の一部で回動自在に支持されている。これによって、ゲーム装置10は、閉状態(下側ハウジング20と上側ハウジング22とのなす角度が約0°の状態(図3参照))と、開状態(下側ハウジング20と上側ハウジング22とのなす角度が約180°の状態(図2参照))とをとることができる。ユーザは通常、開状態でゲーム装置10を使用し、ゲーム装置10を使用しない場合には閉状態としてゲーム装置10を保管する。また、ゲーム装置10は、上記閉状態および開状態のみでなく、下側ハウジング20と上側ハウジング22とのなす角度を、ヒンジに発生する摩擦力などによって閉状態と開状態との間の任意の角度に維持することができる。つまり、上側ハウジング22を下側ハウジング20に対して任意の角度で静止させることができる。
【0056】
まず、下側ハウジング20に設けられる構成について説明する。図1に示すように、ゲーム装置10は、下側LCD(液晶表示装置)12を有する。下側LCD12は横長形状であり、長辺方向が下側ハウジング20の長辺方向に一致するように配置される。下側LCD12は下側ハウジング20に収納される。下側LCD12は、下側ハウジング20の内側面に設けられる。したがって、ゲーム装置10を使用しない場合には閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。なお、この実施例では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、ゲーム装置10は任意の解像度の表示装置を利用することができる。なお、ゲーム装置10を撮像装置として利用する場合、下側LCD12は主に、カメラ16または18で撮像されている画像をリアルタイムに表示(スルー表示)するために用いられる。
【0057】
下側ハウジング20の内側面はほぼ平面状に形成される。当該内側面の中央には、下側LCD12を露出させるための開口部20bが形成される。当該開口部20bの左側(図示y軸負側)には開口部20cが形成され、当該開口部20bの右側には開口部20dが形成される。開口部20bおよび20cは、各キートップ(各ボタン24a−24eの上面)を露出させるためのものである。そして、下側ハウジング20の内部に収納される下側LCD12の画面が開口部20bから露出し、各キートップが開口部20cおよび20dから露出される。このように、下側ハウジング20の内側面には、中央に設けられる下側LCD12用の開口部20bの左右両側に非画面領域(図1に示す点線領域A1およびA2。具体的には、各ボタン24a−24eを配置するための領域;ボタン配置領域)がそれぞれ設けられる。
【0058】
下側ハウジング20には、入力装置として、各ボタン24a−24iおよびタッチパネル28が設けられる。図1に示されるように、各ボタン24a−24iのうち、方向入力ボタン24a、ボタン24b、ボタン24c、ボタン24d、ボタン24e、および電源ボタン24fは、下側ハウジング20の内側面に設けられる。方向入力ボタン24aは例えば選択操作等に用いられ、各ボタン24b−24eは例えば決定操作やキャンセル操作等に用いられる。電源ボタン24fは、ゲーム装置10の電源をオン/オフするために用いられる。ここでは、方向入力ボタン24aおよび電源ボタン24fは、下側ハウジング20の中央付近に設けられる下側LCD12に対して一方の側の(図1では左側)に設けられ、ボタン24b−24eは下側LCD12に対して他方の側(図1では右側)に設けられる。方向入力ボタン24aおよびボタン24b−24eは、ゲーム装置10に対する各種操作を行うために用いられる。
【0059】
図3(A)は閉状態におけるゲーム装置10の左側面図であり、図3(B)は当該ゲーム装置10の正面図であり、図3(C)は当該ゲーム装置10の右側面図であり、そして図3(D)は当該ゲーム装置10の背面図である。図3(C)に示されるように、また、図3(A)に示されるように、音量ボタン24iは、下側ハウジング20の左側面に設けられる。音量ボタン24iは、ゲーム装置10が備えるスピーカ34の音量を調整するために用いられる。また、図3(D)に示されるように、ボタン24hは、下側ハウジング20の上面の右端部に設けられる。ボタン24gは、下側ハウジング20の上面の左端部に設けられる。各ボタン24gおよび24hは、ゲーム装置10に対して例えば撮影指示操作(シャッタ操作)を行うために用いられる。各ボタン24gおよび24hの両方をシャッターボタンとして機能させてもよく、この場合、右利きのユーザはボタン24hを使用し、左利きのユーザはボタン24gを使用することができ、いずれのユーザにも使い勝手が良い。なお、ゲーム装置10は、各ボタン24gおよび24hを常にシャッターボタンとして有効としておいてもよいし、右利きか左利きかの設定をして(メニュープログラムなどによりユーザに設定入力をさせ、設定されたデータを記憶しておく)、右利き設定のときにはボタン24hのみ有効とし、左利き設定のときにはボタン24gのみ有効とするようにしてもよい。
【0060】
図1に示されるように、ゲーム装置10は、各操作ボタン24a−24iとは別の入力装として、タッチパネル28をさらに備えている。タッチパネル28は、下側LCD12の画面上に装着されている。なお、この実施例では、タッチパネル28は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。この実施例では、タッチパネル28として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル28の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング20の右側面には挿入口30(図1および図3(D)に示す点線)が設けられている。挿入口30は、タッチパネル28に対する操作を行うために用いられるタッチペン36を収納することができる。なお、タッチパネル28に対する入力は通常タッチペン36を用いて行われるが、タッチペン36に限らずユーザの指でタッチパネル28を操作することも可能である。
【0061】
図3(A)に示されるように、下側ハウジング20の右側面には開閉可能なカバー部11Bが設けられる。このカバー部11Bの内側には、ゲーム装置10とメモリカード38とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード38は、コネクタに着脱自在に装着される。メモリカード38は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。
【0062】
図1に示されるように、下側ハウジング20の軸部20aの左側部分には、3つのLED26a−26cが取り付けられる。ここで、ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第1LED26aは、無線通信が確立している場合に点灯する。第2LED26bは、ゲーム装置10の充電中に点灯する。第3LED26cは、ゲーム装置10の電源がオンである場合に点灯する。したがって、3つのLED26a−26cによって、ゲーム装置10の通信確立状況、充電状況、および、電源のオン/オフ状況をユーザに通知することができる。
【0063】
以上に説明したように、下側ハウジング20には、ゲーム装置10に対する操作入力を行うための入力装置(タッチパネル28および各ボタン24a−24i)が設けられる。したがって、ユーザは、ゲーム装置10を使用する際には下側ハウジング20を把持してゲーム装置10に対する操作を行うことができる。図4は、ユーザがゲーム装置10を両手で把持した様子を示す図である。図4に示すように、ユーザは、各LCD12および14がユーザの方向を向く状態で、両手の掌と中指、薬指および小指とで下側ハウジング20の側面および外側面(内側面の反対側の面)を把持する。このように把持することで、ユーザは、下側ハウジング20を把持したまま、各ボタン24a−24eに対する操作を親指で行い、ボタン24gおよび24hに対する操作を人差し指で行うことができる。
【0064】
一方、上側ハウジング22には、画像を撮像するための構成(カメラ)、および、撮像した画像を表示するための構成(表示装置)が設けられる。以下、上側ハウジング22に設けられる構成について説明する。
【0065】
図1に示すように、ゲーム装置10は、上側LCD14を有する。上側LCD14は上側ハウジング22に収納される。上側LCD14は横長形状であり、長辺方向が上側ハウジング22の長辺方向に一致するように配置される。上側LCD14は、上側ハウジング22の内側面(ゲーム装置10が閉状態となった場合に内側となる面)に設けられる。したがって、ゲーム装置10を使用しない場合には閉状態としておくことによって、上側LCD14の画面が汚れたり傷ついたりすることを防止することができる。なお、下側LCD12と同様、上側LCD14に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。なお、他の実施形態においては、上側LCD14上にもタッチパネルを設けてもよい。
【0066】
また、ゲーム装置10は、2つのカメラ16および18を有する。各カメラ16および18はともに上側ハウジング22に収納される。図1に示されるように、内側カメラ16は、上側ハウジング22の内側面に取り付けられる。一方、図3(B)に示されるように、外側カメラ18は、内側カメラ16が取り付けられる面の反対側の面、すなわち、上側ハウジング22の外側面(ゲーム装置10が閉状態となった場合に外側となる面)に取り付けられる。これによって、内側カメラ16は、上側ハウジング22の内側面が向く方向を撮像することが可能であり、外側カメラ18は、内側カメラ16の撮像方向の逆方向、すなわち、上側ハウジング22の外側面が向く方向を撮像することが可能である。以上のように、この実施例では、2つのカメラ16および18が撮像方向が互いに逆方向となるように設けられる。したがって、ユーザはゲーム装置10を持ち替えることなく、異なる2方向を撮像することができる。例えば、ユーザは、ゲーム装置10からユーザの方を見た景色を内側カメラ16で撮影することができるとともに、ゲーム装置10からユーザの反対側の方向を見た景色を外側カメラ18で撮影することができる。
【0067】
また、内側カメラ16は、上側ハウジング22の下側の中央部に形成される軸部22aの中央に取り付けられる。つまり、内側カメラ16は、2つのハウジング20および22が接続される部分の中央に取り付けられる。したがって、ゲーム装置10を開状態にした場合、内側カメラ16は、2つのLCD12および14の間に配置されることになる(図1参照)。換言すれば、内側カメラ16は、ゲーム装置10の中心付近に配置されることになる。なお、「ゲーム装置10の中心」とは、ゲーム装置10の操作面(開状態における各ハウジング20および22の内側面からなる面)の中心という意味である。なお、内側カメラ16は、LCD12および14の横方向の中心付近に配置されているということもできる。
【0068】
この実施例では、ゲーム装置10を開状態にした場合に内側カメラ16はゲーム装置10の中心付近に配置されるので、ユーザは、内側カメラ16によってユーザ自身を撮影する場合、ユーザがゲーム装置10に正対する位置でゲーム装置10を把持すればよい。つまり、通常の把持位置でゲーム装置を把持すれば、ユーザは撮像範囲の中心付近に位置することになり、ユーザ自身を撮像範囲内に収めることが容易になる。
【0069】
また、図3(B)に示されるように、外側カメラ18は、ゲーム装置10を開状態とした場合において上側ハウジング22の上部(下側ハウジング20から遠い側の部分)に配置される。なお、外側カメラ18は、ゲーム装置10を把持するユーザを撮影するものではないので、ゲーム装置10の中心に設ける必要性は高くない。
【0070】
また、図1または図3(B)に示されるように、マイク32は、上側ハウジング22に収納されている。具体的には、マイク32は、上側ハウジング22の軸部22aに取り付けられる。この実施例では、マイク32は、内側カメラ16の周囲(図ではy軸の側方)に取り付けられ、より具体的には、内側カメラ16からy軸正方向側の側方に取り付けられる。また、軸部22aにおいては、マイク32がゲーム装置10外部の音を検知することができるように、マイク32に対応する位置(内側カメラ16の側方)にマイクロフォン用孔22cが設けられる。
【0071】
なお、マイク32は下側ハウジング20に収納されてもよい。たとえば、マイクロフォン用孔22cを下側ハウジング20の内側面、具体的には下側ハウジング20の内側面の左下部分(ボタン配置領域A1)に設け、マイク32を、下側ハウジング20内における、マイクロフォン用孔22cの近傍に配置することができる。また、マイク32は、その集音方向(感度が最大となる方向)が内側カメラ16の撮像方向(光軸)と略並行(言い換えれば集音方向および撮像方向がそれぞれy軸と略並行)となる向きに取り付けられる。これによって、内側カメラ16の撮像範囲内で発せられた音声は、マイク32によって好適に捉えられる。すなわち、マイク32入力の検出とユーザの検出とを同時行うことができるとともに、検出の精度を向上させることができる。
【0072】
図3(B)に示されるように、上側ハウジング22の外側面には、第4LED26dが取り付けられる。第4LED26dは、外側カメラ18の周囲(この実施例では、外側カメラ18の右側)に取り付けられる。第4LED26dは、内側カメラ16または外側カメラ18によって撮影が行われた(シャッターボタンが押下された)時点で点灯する。また、内側カメラ16または外側カメラ18によって動画が撮影される間点灯する。第4LED26dによって、ゲーム装置10による撮影が行われた(行われている)ことを撮影対象者に通知することができる。
【0073】
また、上側ハウジング22の内側面はほぼ平面状に形成される。図1に示すように、当該内側面の中央には、上側LCD14を露出させるための開口部21Bが形成される。上側ハウジング22の内部に収納される上側LCD14の画面は、開口部21Bから露出する。また、上記開口部21Bの左右両側には音抜き孔22dがそれぞれ1つずつ形成される。音抜き孔22dの奥の上側ハウジング22内にはスピーカ34が収納されている。音抜き孔22dは、スピーカ34からの音を外部に放出するための孔である。
【0074】
このように、上側ハウジング22の内側面には、中央に設けられる上側LCD14用の開口部21Bの左右両側に非画面領域(図1に示す点線領域B1およびB2。具体的には、スピーカ34を配置するための領域;スピーカ配置領域)がそれぞれ設けられる。2つの音抜き孔22dは、左右方向については、各スピーカ配置領域の左右方向における中央部付近に配置され、上下方向については、各スピーカ配置領域の下部領域(下側ハウジング20に近い側の領域)に配置される。
【0075】
なお、上記のように、下側ハウジング20および上側ハウジング22に左右方向に関して同じ位置に非画面領域をそれぞれ設けたことで、ゲーム装置10は、図4に示すような横持ちで把持される場合だけでなく、縦持ち(図4に示す状態からゲーム装置10を左または右回りに90°回転させた状態)で把持される場合にも持ちやすい構成となっている。
【0076】
以上に説明したように、上側ハウジング22には、画像を撮像するための構成であるカメラ16および18、および、撮像された画像を表示するための表示手段である上側LCD14が設けられる。一方、下側ハウジング20には、ゲーム装置10に対する操作入力を行うための入力装置(タッチパネル28および各ボタン24a−24i)が設けられる。したがって、ゲーム装置10を撮像装置として使用する際には、ユーザは、上側LCD14に表示される撮像画像(カメラによって撮像された画像)を見ながら、下側ハウジング20を把持して入力装置に対する入力を行うことができる。
【0077】
また、上側ハウジング22のカメラ16近傍には、音声を入力するための構成であるマイク32が設けられており、したがってゲーム装置10は、録音装置としても使用可能である。さらに、ユーザがマイク32を通して音声入力を行い、ゲーム装置10はこのマイク入力情報に基づいてゲーム処理やゲーム以外のアプリケーション処理を実行することもできる。
【0078】
図5は、ゲーム装置10の内部構成(電気的構成)を示すブロック図である。図5に示すように、ゲーム装置10は、CPU42、メインメモリ48、メモリ制御回路50、保存用データメモリ52、プリセットデータ用メモリ54、メモリカードインターフェース(メモリカードI/F)44、無線通信モジュール56、ローカル通信モジュール58、リアルタイムクロック(RTC)39、電源回路46、およびインターフェース回路(I/F回路)40等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング20(または上側ハウジング22でもよい)内に収納される。
【0079】
CPU42は、各種のプログラムを実行するための情報処理手段である。ゲーム装置10を撮像装置として利用する場合には、そのためのプログラムがゲーム装置10内のメモリ(例えば保存用データメモリ52)に記憶される。CPU42が当該プログラムを実行することで、ゲーム装置10は撮影装置として機能する。なお、CPU42によって実行されるプログラムは、ゲーム装置10内のメモリに予め記憶されていてもよいし、メモリカード38から取得されてもよいし、他の機器との通信によって他の機器から取得されても、あるいはインターネットを通じてサーバからダウンロードされてもよい。
【0080】
CPU42には、メインメモリ48、メモリ制御回路50、およびプリセットデータ用メモリ54が接続される。また、メモリ制御回路50には保存用データメモリ52が接続される。メインメモリ48は、CPU42のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ48は、ゲーム処理に用いられる各種データを記憶したり、外部(メモリカード38や他の機器等)から取得されるプログラムを記憶したりする。この実施例では、メインメモリ48として例えばPSRAM(Pseudo−SRAM)を用いる。保存用データメモリ52は、CPU42によって実行されるプログラムや各カメラ16および18によって撮像された画像のデータ、ゲームやアプリケーションのセーブデータ等を記憶するための記憶手段である。保存用データメモリ52は、例えばNAND型フラッシュメモリで構成される(NOR型フラッシュメモリや他の不揮発性メモリを用いてもよい)。メモリ制御回路50は、CPU42の指示に従って、保存用データメモリ52に対するデータの読み出しおよび書き込みを制御する回路である。プリセットデータ用メモリ54は、ゲーム装置10において予め設定される各種パラメータ等のデータ(プリセットデータ)を記憶するための記憶手段である。プリセットデータ用メモリ54としては、SPI(Serial Peripheral Interface)バスによってCPU42と接続されるフラッシュメモリを用いることができる。
【0081】
メモリカードI/F44はCPU42に接続される。メモリカードI/F44は、コネクタに装着されたメモリカード38に対するデータの読み出しおよび書き込みをCPU42の指示に従って行う。この実施例では、各カメラ16および18によって撮像された画像データがメモリカード38に書き込まれたり、メモリカード38に記憶された画像データがメモリカード38から読み出されて保存用データメモリ52に記憶されたりする。
【0082】
無線通信モジュール56は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール58は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール56およびローカル通信モジュール58はCPU42に接続される。CPU42は、無線通信モジュール56を用いてインターネットを介して他の機器との間でデータを送受信したりサーバ(図示せず)からプログラムをダウンロードしたり、ローカル通信モジュール58を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0083】
また、CPU42には、RTC60および電源回路46が接続される。RTC60は、時間をカウントしてCPU42に出力する。CPU42は、RTC60によって計時された時間に基づいて、現在時刻(日付)を計算したり、各種処理の実行タイミングを検知したりする。電源回路46は、ゲーム装置10が有する電源(電池;下ハウジングに収納される)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0084】
また、ゲーム装置10は、マイク32およびスピーカ34を備えている。マイク32およびスピーカ34はそれぞれI/F回路40に接続される。マイク32は、ユーザの音声を検知して音声信号をI/F回路40に出力する。スピーカ34は、I/F回路40からの音声信号に応じた音声を出力する。I/F回路40はCPU42に接続される。また、タッチパネル28はI/F回路40に接続される。I/F回路40は、マイク32およびスピーカ34の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。変換された音声データは、メインメモリ48の音声エリア(図示せず)に書き込まれる。ゲーム装置10を録音装置として利用する場合には、音声エリアに格納された音声データは、後にメモリ制御回路50を介して保存用データメモリ52に書き込まれる(必要に応じてさらに、メモリカードI/F44を介してメモリカード38に記録される)。また、音声エリアに格納された音声データ(マイク入力情報)は、各種のゲーム処理にも利用される。タッチパネル制御回路は、タッチパネル28からの信号に基づいて所定の形式のタッチ位置データを生成してCPU42に出力する。タッチ位置データは、タッチパネル28の入力面のうちで入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル28からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。CPU42は、タッチ位置データを取得することにより、タッチパネル28に対して入力が行われた位置を知ることができる。
【0085】
操作部24は、上記各ボタン24a−24iからなり、CPU42に接続される。操作部24からCPU42へは、各ボタン24a−24iに対する入力状況(押下されたか否か)を示す操作データが出力される。CPU42は、操作部24から操作データを取得することによって、操作部24に対する入力に従った処理を実行する。
【0086】
各カメラ16および18はCPU42に接続される。各カメラ16および18は、CPU42の指示に従って画像を撮像し、撮像した画像データをCPU42に出力する。CPU42は、各カメラ16および18からの画像データをメインメモリ48の画像エリア(図示せず)に書き込む。ゲーム装置10を撮像装置として利用する場合には、画像エリアに格納された画像データは、後にメモリ制御回路50を介して保存用データメモリ52に書き込まれる(必要に応じてさらに、メモリカードI/F44を介してメモリカード38に記録される)。また、画像エリアに格納された画像データは、各種のゲーム処理にも利用される。
【0087】
また、各LCD12および14はCPU42に接続される。各LCD12および14はCPU42の指示に従って画像を表示する。ゲーム装置10でゲームをプレイする場合、LCD12および14の一方または両方にゲーム画像が表示される。ゲーム装置10を撮像装置として利用する場合には、CPU42は、各カメラ16および18のいずれかから取得した画像を上側LCD14に表示させ、所定の処理によって生成した操作画面を下側LCD12に表示させる。
【0088】
以上のように構成されたゲーム装置10で顔トレーニングを行うとき、図6(A)−図6(D)のような画面が上側LCD14(以下“LCD14”)に表示される。なお、画面は、下側LCD12に表示されても、両方に跨って表示されてもよい。また、画面の構成は、簡略化された一例に過ぎず、様々に変更され得る。
【0089】
最初、顔トレーニングの概要を図6(A)−図6(D)により説明する。顔トレーニングを行うにあたって、ユーザは、ゲーム装置10をネットワーク(図示せず)に接続し、所望のアプリケーションをサーバ(図示せず)からネットワーク経由でダウンロードする。
【0090】
ここで、顔トレーニング用のアプリケーションは、“アプリA”,“アプリB”,“アプリC”,…のようにシリーズ化されており、たとえば、アプリAはトレーニング0および1を含み、アプリBはトレーニング0および2を含み、そしてアプリCはトレーニング0および3を含む。トレーニング0,1,2および3は、たとえば顔の全体,一部,他の一部およびその他の一部をそれぞれ対象とするトレーニングである。
【0091】
この実施例では、3つのアプリA−Cに対応するプログラムPa−Pcおよびこれに付随する各種テーブルCT,RTおよびMTが、無線通信モジュール56を経てCPU42により受信され、保存用データメモリ52に格納される(図7(A)参照:詳細は後述)。
【0092】
アプリA−Cは、ゲーム装置10で過去に実行されたことがあり、したがって、保存用データメモリ52には、それぞれに対応するセーブデータDa−Dcがさらに記憶されている。ここで、セーブデータDa−Dcは、アプリA−Cの実行により変化するアプリA−Cに関連するパラメータを示すデータともいえる。初めて実行されるアプリケーションについては、これに対応するセーブデータが、保存用データメモリ52内に新たに生成される。すなわち、セーブデータはアプリ毎に保存されるが、どのアプリ用のセーブデータも、共通の構造を有する(図8参照:詳細は後述)。
【0093】
セーブデータDaは、アプリA用のセーブ項目だけでなく、アプリB,C用のセーブ項目や、アプリを特定しないセーブ項目のデータも含んでおり、セーブデータDb,Dcも同様である(図9参照:後述)。つまり、アプリA−Cに共通のセーブデータがあって、それをアプリA−C用として3通りに記憶したのが、セーブデータDa−Dcである。したがって、セーブデータDa−Dcは、本来同一内容でなければならないが、各アプリA−Cの実行状況によって差異が生じる。そこで、このような差異を解消するためのルーチンが、プログラムPa−Pcに組み込まれている。
【0094】
なお、プログラムPa−PcおよびテーブルCT,RTおよびMTの一部または全部は、サーバからダウンロードされる代わりに、メモリカードI/Fを通じてメモリカード38等から読み込まれても、予め保存用データメモリ52等に格納されていてもよい。
【0095】
ダウンロードが完了すると、CPU42は、図6(A)のようなアプリ選択画面をLCD14に表示する。このアプリ選択画面には、アプリA−Cにそれぞれ対応する3つのボタン“A”,“B”および“C”と、そのいずれかを選択するようユーザに促すテキスト“アプリを選択してください”と、選択されたアプリの起動を指示するためのボタン“起動”と、選択されたアプリの紹介画面(図示せず)を表示させるための“紹介を見る”とが含まれる。
【0096】
図6(A)のアプリ選択画面でアプリAが選択され、そして“起動”が指示されたとすると、CPU42は、図6(B)のようなトレーニング選択画面をLCD14に表示する。トレーニング選択画面には、2種類のトレーニングにそれぞれ対応する2つのボタン“0”および“1”と、そのいずれかを選択するようユーザに促すテキスト“トレーニングを選択してください”とが含まれる。
【0097】
図6(B)のトレーニング選択画面でトレーニング0が選択されたとすると、CPU42は、図6(C)のようなトレーニング画面をLCD14に表示する。このトレーニング画面には、トレーニング“0”の内容を説明するテキスト“顔全体の表情筋を鍛えます”と、チェックボックスCBと、トレーニングを行ったらチックボックスCBに印を付けるようユーザに促すテキスト“トレーニングを終えたら印を付けてください“とが含まれる。なお、図示は省略するが、トレーニング画面には、お手本を示す画像や解説を示すテキストなどが適宜表示され、ユーザは、画面内のお手本や解説を参考に練習を行うことができる。
【0098】
図6(C)のトレーニング画面でチェックボックスCBに印が付けられ、トレーニング結果の評価(表情測定)を行う指示が行われたとすると、CPU42は、図6(D)のような評価画面をLCD14に表示する。この評価画面には、表情測定を行うことを知らせるテキスト“表情を測定します…”と、評価結果を示すテキスト“今日のスコアは80点です”とが含まれる。ここで、評価結果つまりスコアは、ユーザが顔の筋肉をどれだけお手本に近い形で動かせるかを示す数値であり、所定のアルゴリズムに従って算出される。具体的には、ユーザの顔の画像を第1カメラ16を通じて撮像し、この顔画像から各筋肉(瞼筋,頬筋など)の動きを解析し、解析結果をお手本(各筋肉の理想的な動きを示すデータであり、プログラムと一緒にダウンロードされる)と比較して、お手本との類似度をたとえば100点満点でスコア化する。
【0099】
上記のような顔トレーニングが実行されている期間中、セーブデータDa−DcがCPU42によって逐次更新される。実行されているのがアプリA−Cのどれであっても、セーブデータDa−Dcの各々が更新される。具体的には、CPU42は、トレーニング開始に先立って、セーブデータDa−Dcを項目毎に(図9参照)統合する。ここで、統合とは、セーブデータDa−Dcそれぞれの先頭の項目におけるデータのうち1つのデータが採用されて、採用されたデータを先頭の項目におけるデータとし、この処理を最終の項目まで繰り返すことにより統合セーブデータDintを得ることをいう。そして、トレーニングが開始されると、いずれかの項目に該当する動作が行われる度に統合セーブデータDintを更新する一方、自動保存指示またはユーザによる保存指示に応じて、更新された統合セーブデータDintでセーブデータDa−Dcをそれぞれ上書きする。この上書きは、ファイル単位(図8参照)で行われる。なお、更新された統合セーブデータDintでセーブデータDa−Dcをそれぞれ上書きすることは、更新された統合セーブデータDintでセーブデータDa−Dcをそれぞれ更新するといってもよいし、更新された統合セーブデータDintでセーブデータDa−Dcをそれぞれ書き換えるといってもよい。以下、この一連の処理について、詳しく説明する。
【0100】
図7(A)を参照して、保存用データメモリ52はプログラム領域70およびデータ領域72を含み、プログラム領域70にはアプリA−Cに対応するプログラムPa−Pcが、データ領域72にはアプリA−C用のセーブデータDa−Dcが、それぞれ格納される。データ領域72にはさらに、更新処理で利用される各種テーブル、具体的には項目テーブルCT,統合ルールテーブルRTおよびファイル管理テーブルMTも格納される。図7(B)を参照して、メインメモリ48はデータ領域74を含み、データ領域74には統合用のセーブデータDintが格納される。
【0101】
図8を参照して、アプリA−C用のセーブデータDa−Dcおよび統合用のセーブデータDintの各々は、項目1−41に対応する41種類のセーブデータを含む。項目1−41は、それぞれの内容によって19個のグループに分類され、各グループに1つのファイルが割り当てられる。
【0102】
項目1−41の内容は図9に示されており、たとえば、項目1−3は、アプリA−Cの紹介を見たかに関するもので、ファイル1が割り当てられる。項目4−7は、トレーニング0−3を1回でも行ったかに関するもので、ファイル2が割り当てられる。項目8−10は、第1日にアプリA−Cでトレーニングをした印(チェックマーク:図6(C)参照)をつけたかに関するもので、ファイル3が割り当てられる。項目11−13は、第2日にアプリA−Cでトレーニングをした印をつけたかに関するもので、ファイル4が割り当てられる。項目14−16,17−19,20−22,23−25,26−28および29−31は、同じく第3−第7日に対応し、ファイル5−9が割り当てられる。項目32−38は、第1−第7日のスコアに関するもので、ファイル10−16が割り当てられる。項目39は、写真管理情報に関するもので、ファイル17が割り当てられる。項目40は、“最後にトレーニングした日は今日か”に関するもので、ファイル18が割り当てられる。そして、項目41は、ウォーミングアップを最後にした日時に関するもので、ファイル19が割り当てられる。
【0103】
また、このような19個のファイルの一部ここではファイル18および19には、それぞれのファイルの更新日時を示すデータが付加される。残りのファイル1−17には、更新日時データは付加されない(または0000年…のような無効なデータが付加される)。
【0104】
図9を参照して、項目テーブルCTは、各項目について、上記のような内容に加え、その項目の実体,その項目を参照するアプリ(参照アプリ),およびその項目を更新するアプリ(更新アプリ)が記述される。たとえば、項目1については、内容が“アプリAの紹介を見たか”なので、実体はYES/NOを示すフラグである。そして、このフラグを参照するのはアプリA自身だけであり、“アプリAの紹介を見た”場合にこのフラグを更新するのもアプリAに限られる。項目2,3についても、実体はフラグであり、参照アプリおよび更新アプリはアプリB,C自身に限られる。これらのフラグは、アプリケーションの進行状況に関連するフラグであり、アプリケーションの進行に応じて所定の処理が行われた否かを判定するためのものである。
【0105】
項目4については、内容が“トレーニング0(顔全体)を1回でも行ったか”なので実体はフラグであり、このフラグは全アプリA−Cによって参照されかつ全アプリA−Cによって更新される。項目5については、内容が“トレーニング1(たとえば顔の一部)を1回でも行ったか”なので実体はフラグであり、参照アプリおよび更新アプリはアプリA自身に限られる。項目6,7についても、実体はフラグで、参照アプリおよび更新アプリはB,C自身に限られる。
【0106】
項目8については、内容が“第1日にアプリAでトレーニングをしたか”なので、実体はフラグである。このフラグは全アプリA−Cによって参照されるが、“第1日にアプリAでトレーニングをした”場合にこのフラグ更新するのはアプリA自身に限られる。項目9については、内容が“第1日にアプリBでトレーニングをしたか”なので実体はフラグであり、参照アプリは全アプリA−Cであるが、更新アプリはアプリB自身に限られる。項目10については、内容が“第1日にアプリCでトレーニングをしたか”なので実体はフラグであり、参照アプリは全アプリA−Cであるが、更新アプリはアプリC自身に限られる。項目14−16,17−19,20−22,23−25,26−28および29−31も、項目8−10や項目11−13の場合と同様である。
【0107】
項目32については、内容が“第1日のスコア”なので、実体はスコアである。このスコアは、全アプリA−Cによって参照され、かつ全アプリA−Cによって更新される。項目33−38についても同様である。
【0108】
項目39については、内容が“写真管理情報”なので、実体は撮影日時や番号(タイトル),データ量などである。この写真管理情報は、全アプリA−Cによって参照され、かつ全アプリA−Cによって更新される。項目40については、内容が“最後にトレーニングした日は今日か”なので、実体はフラグである。このフラグは、全アプリA−Cによって参照され、かつ全アプリA−Cによって更新される。そして、項目41については、内容が“ウォーミングアップを最後にした日時”なので、実体は日時である。この日時は、全アプリA−Cによって参照され、かつ全アプリA−Cによって更新される。
【0109】
なお、図9の項目テーブルCTにさらに、各項目に適用される統合ルール(次に説明するルールR1−R5のどれか)を予め記述しておいてもよい。
【0110】
図10を参照して、統合ルールテーブルRTには、項目に割り当てられたファイルの属性および項目の実体に応じて5種類の統合ルールR1−R5が記述されている。具体的には、まず、ファイルの属性として“更新日時データを含む”および“更新日時データを含まない”の2種類が記述され、次に、“更新日時データを含む”に対応する項目の実体として“フラグ”および“フラグ以外”の2種類が、“更新日時データを含まない”に対応する項目の実体として“フラグ”,“スコア”および“写真管理情報”が、それぞれ記述されている。
【0111】
そして、ファイル属性が“更新日時データを含む”でありかつ実体が“フラグ”である項目の統合ルールR1として、“最新データを採用、但し最新データと同じ日付のデータがあればその同日データで立っているフラグは立てる”が記述されている。また、“更新日時データを含む”かつ“フラグ以外”である項目の統合ルールR2として“最新データを採用”が、“更新日時データを含まない”かつ“フラグ”である項目の統合ルールR3として“どれかでフラグが立っていればフラグを立てる”が、“更新日時データを含まない”かつ“スコア”である項目の統合ルールR4として“同じ日付の異なるスコアがあれば最もよいスコアを採用”が、そして“更新日時データを含まない”かつ“写真管理情報”である項目の統合ルールR5として“ORつまり論理和による採用、但し同じ管理情報で異なる写真があればどれも採用しない(当該写真を読み込んで写真管理情報を再作成する)”が記述されている。
【0112】
セーブデータDa−Dcは、このような統合ルールテーブルRTに基づいて項目毎に統合される。具体的には、図8−図10を参照して、項目1−3は、割り当てられたファイル1がファイル更新日時データを含まず、かつ実体がフラグなので、ルールR3が適用される。項目4−7は、割り当てられたファイル2がファイル更新日時データを含まず、かつ実体がフラグなので、ルールR3が適用される。項目8−10は、割り当てられたファイル3がファイル更新日時データを含まず、かつ実体がフラグなので、ルールR3が適用される。項目11−13,14−16,17−19,20−22,23−25,26−28および29−31も、項目8−10と同様に、ルールR3が適用される。
【0113】
項目32は、割り照られたファイル10がファイル更新日時データを含まず、かつ実体がスコアなので、ルールR4が適用される。項目33−38も、項目32と同様に、ルールR4が適用される。項目39は、割り当てられたファイル17が更新日時データを含まず、かつ実体が写真管理情報なので、ルールR5が適用される。項目40は、割り当てられたファイル18がファイル更新日時データを含み、かつ実体がフラグなので、ルールR1が適用される。そして、項目41は、割り当てられたファイル19がファイル更新日時データを含み、かつ実体が日時つまりフラグ以外なので、ルールR2が適用される。
【0114】
項目毎の統合の一例を図11に示す。まず、項目1に関し、セーブデータDaではフラグが立っており(フラグ:ON)、セーブデータDb,Dcではいずれもフラグが立っていない(フラグ:OFF)とすると、ルールR3の適用によって、統合セーブデータDintではフラグが立つ(フラグ:ON)。また、項目2に関し、セーブデータDa−Dcのいずれでもフラグ:OFFとすると、ルールR3の適用によって、統合セーブデータDintではフラグ:OFFとなる。項目3−31の各々も、同様に統合される。
【0115】
次に、項目32に関し、セーブデータDa,Db,Dcでスコアがそれぞれ80,75,85であるとすると、ルールR4の適用によって、統合セーブデータDintではスコアは85となる。項目33−38の各々も、同様に統合される。
【0116】
次に、項目39に関し、セーブデータDa,Db,Dcで写真管理情報(たとえば撮影番号)がそれぞれ#1−#12,#2−#13,#1−#13であれば、ルールR5に従って、その論理和つまり撮影番号#1−#13が採用される。ただし、同じ撮影情報で異なる写真があればどの撮影情報も採用しない、という但し書きによって、たとえば、撮影番号#2で識別される3枚の写真のうち1枚が他と違っていたとすると、この撮影番号#2は採用されない。この場合、撮影番号#2に対応する3枚の写真を読み込んで確認し、撮影番号を付け直す作業が行われる。
【0117】
次に、項目40に関し、セーブデータDaではフラグ:OFF(ファイル更新日時:2009_8_1_15:00)、セーブデータDbではフラグ:ON(ファイル更新日時:2009_8_15_11:00)、そしてセーブデータDcではフラグ:OFF(ファイル更新日時:2009_8_20_12:00)であるとすると、ルールR1の適用によって、統合セーブデータDintではフラグOFF(ファイル更新日時:2009_8_20_12:00)となる。なお、セーブデータDbのファイル更新日時が2009_8_15_11:00ではなく2009_8_20_11:00であったなら、これは最新データと同日であり、かつこの同日データでフラグはONなので、統合セーブデータDintでは、この同日データのフラグ:ONが採用されることとなる。
【0118】
次に、項目41に関し、セーブデータDaでは日時が2009_8_1_16:00であり、セーブデータDbは存在せず、そしてセーブデータDcでは日時が2009_8_20_11:00)であるとすると、ルールR2の適用によって、統合セーブデータDintでは日時は2009_8_20_11:00となる。
【0119】
セーブデータDa−Dcは、こうして得られた統合セーブデータDintで上書きされる。上書きは、いずれかの項目が更新される度に、ファイル単位で行われる。
【0120】
また、ゲーム装置10では、以上のような統合処理に先行して、次のようなファイル制御処理が実行される。図12(A)を参照して、制御前(2009年8月20日12:00現在)のファイル管理テーブルMTには、読み込まれた時点のセーブデータDa−Dcの各々について、ファイル1−19の状態および更新日時が記述されている。状態としては、そのファイルが正常である(オープンできる)ことを示す“正常”,そのファイルが破損している(オープンできない)ことを示す“破損”,およびそのファイルがない(無効である)ことを示す“無”の3種類がある。各ファイルの状態が3種類のどれであるかは、たとえばそのファイルの検索およびオープンを試みることによって、あるいは図示しないファイルシステムを参照して、判別される。
【0121】
また、更新日時は、更新日時データを含むファイルであれば、そのファイルから読み取られた値(たとえば2009_8_1_15:00)が記述され、更新日時データを含まないファイルであれば、何も記述されない(または無効な値たとえば0000年0月0日0:00が記述される)。
【0122】
図12(B)を参照して、制御後(2009年8月20日12:00現在)のファイル管理テーブルMTは、上記のような制御前のファイル管理テーブルMTにおいて、状態および更新日時が2箇所ずつ変更されている。具体的には、まず状態に関し、セーブデータDbのファイル2の状態がファイル消去を行うことなく“破損”から“無”に変更され、セーブデータDaのファイル3の状態がファイル消去を行った上で“破損”から“無”に変更されている。
【0123】
ここで、“破損”ファイルを削除するか否かは、これと同じ“正常”ファイルが別のセーブデータに存在しているか否かで決まる。セーブデータDbにおいて破損したファイル2は、これと同じ正常なファイル2がセーブデータDaまたはDcに存在するため、消去されない。セーブデータDcにおいて破損したファイル3は、これと同じ正常なファイル3がセーブデータDaおよびDbのいずれにも存在しないため、消去される。なお、ここで消去されなかった“無”ファイル2は、後段の統合処理および上書き処理を通じ、“正常”ファイル2で上書きされることになる。
【0124】
更新日時に関しては、現在日時に対して未来であるファイルが制御の対象となる。制御には、そのファイルに含まれるセーブデータは有効なままで、そのファイルの更新時刻を現在日時に変更するものと、そのファイルに含まれるセーブデータ全体を無効化するものとの2種類があり、どちらの制御を行うかは、更新日時が現在日時と同日であるか、翌日以降であるかによる。
【0125】
具体的には、セーブデータDcのファイル18は、更新日時が“2009_8_20_13:00”であり、これは、現在日時“2009_8_20_12:05”に対して未来かつ同日であるため、ファイル18に含まれるセーブデータは有効なままで、現在日時に変更されている。一方、セーブデータDbのファイル19は、更新日時が“2009_8_21_11:00”であり、これは、現在日時“2009_8_20_12:00”に対して未来かつ翌日以降であるため、ファイル19に含まれるセーブデータ全体が無効化されている。
【0126】
このようなファイル制御処理を先行して行うことで、もし破損したファイルがあっても(ファイル内のデータに異常があっても)、これと同じ正常なファイルがあれば(別のファイル内に同じデータで正常なものがあれば)、後段の統合処理および上書き処理を通じて、破損ファイル(異常データ)を正常ファイル(正常データ)で修復することが可能となる。加えて、ゲーム装置10では、RTC60の調整が可能なので、RTC60に基づく現在日時が過去に遡る方向に調整されると、ファイル更新日時が現在日時に対して未来となって統合処理に支障が出る可能性があるが、未来を示すファイル更新日時は、現在日時と同日であれば現在日時に変更されるので、統合処理に支障が出る可能性を低減することができる。
【0127】
次に、顔トレーニングを行う場合のCPU42の動作を、図13−図18のフローチャートにより説明する。これらのフローチャートは、図7に示したアプリA用のプログラムPaと対応している。なお、アプリB,C用のプログラムPb,Pcは、図13−図18と同様のフローチャートで記述されるので、図示および説明を省略する。
【0128】
現時点で、プログラム等のダウンロードは完了しており、保存用データメモリ52のプログラム領域70にはアプリA−C用のプログラムPa−Pcが、データ領域72には項目テーブルCT,統合ルールテーブルRTおよびファイル管理テーブルMTが、それぞれ格納されている。また、アプリA−Cは、いずれも過去に実行されたことがあり、データ領域72にはアプリA−C用のセーブデータも格納されている(図7(A)参照)。
【0129】
まず、図13および図14を参照して、図6(A)のようなアプリ選択画面を通じてアプリAが選択されると、CPU42は、アプリA用のプログラムPaを起動する。この起動処理が完了すると、ステップS3に進んで、アプリA−C用のセーブデータDa−Dcをメインメモリ48の作業領域(図示せず)に読み込む。そして、セーブデータDa−Dcに含まれる各ファイルをステップS5で制御した後、セーブデータDa−Dcを項目毎に統合する。ステップS5のファイル制御処理およびステップS7の統合処理の詳細については、後述する。
【0130】
統合処理の結果つまり統合セーブデータDintは、メインメモリ48のデータ領域74に格納される。次のステップS9では、保存用データメモリ52のデータ領域72に格納されているアプリA−C用のセーブデータDa−Dcを、この統合セーブデータDintで上書きする。なお、ステップS9のセーブデータ上書き処理の詳細については、後述する。更新後、ステップS11でアプリ処理が開始される。なお、アプリ処理は、たとえば図6(A)−図6(D)により説明した顔トレーニングに対応する処理であり、図示しない別のフローに従って実行される。また、アプリ処理は、操作部24を介した終了操作等に応じて、あるいは所定の終了条件が満たされたときに、終了される。
【0131】
次に、ステップS13で、項目テーブルCT(図9参照)に記述されたいずれかの項目に該当する動作(項目該当動作)がアプリ処理を通じて行われたか否かを判別し、ここでYESであればステップS17−S19を経てステップS21に進む。ステップS13でNOであれば、ステップS15に移り、操作部24やタッチパネル28等により保存指示操作が行われたか否かを判別し、ここでYESであればステップS19を経てステップS21に進む。ステップS15でNOであれば、直ちにステップS21に進む。
【0132】
ステップS17では、項目該当動作が行われたのに応じて、データ領域74に格納されている統合セーブデータDintを更新する。続くステップS19では、データ領域72に格納されているアプリA−C用のセーブデータDa−Dcをこの統合セーブデータDintに基づいて更新する。なお、ステップS19のセーブデータ上書き処理は、ステップS9のそれと同様の処理であり、後述する。そしてステップS21で、アプリ処理が終了されたか否かを判別し、NOであればステップS13に戻って同様の処理を繰り返す。ステップS21でYESであれば、このフローは終了となる。
【0133】
上記ステップS5のファイル制御処理は、図15のサブルーチンに従って実行される。CPU42は、最初のステップS31で、セーブデータDa−Dcに含まれる各ファイル(図8参照)の状態を検出し、結果(正常/破損/無)をファイル管理テーブルMTに登録する。続くステップS33では、さらに、各ファイルの更新日時を検出し、結果(ファイル更新日時)をファイル管理テーブルMTに登録する。なお、ファイルの状態や更新日時の具体的な検出方法については、前述したので省略する。この時点で、ファイル管理テーブルMTは、図12(A)のようになる。
【0134】
その後、ステップS35に進んで、「破損」ファイルがあるか否かをファイル管理テーブルMTに基づいて判別し、NOならステップS43に進む。ステップS35でYESであれば、ステップS37に進んで、この「破損」ファイルに対応する「正常」ファイルがあるか否かをファイル管理テーブルMTに基づいてさらに判別する。そして、ステップS37でYESであれば、ステップS39でこの「破損」ファイルの状態を「無」に変更した後、ステップS43に進む。一方、ステップS37でNOであれば、ステップS41で、この「破損」ファイルを削除すると共に、その状態を「無」に変更する。そして、ステップS43に進む。
【0135】
ステップS43では、「未来」ファイルがあるか否かをファイル管理テーブルMTに基づいて判別し、NOならステップS49に進む。ステップS43でYESであれば、ステップS45に進んで、この「未来」ファイルの更新日時が現在日時(これは、ゲーム装置10のローカルな現在日時であって、CRT60に基づく)に対して翌日以降であるか否かをファイル管理テーブルMTに基づいてさらに判別する。そして、ステップS45でYESであれば、ステップS47でこの「未来」ファイルを無効化した後、メインルーチン(図13−図14参照)に復帰する。一方、ステップS45でNOであれば、ステップS49で、この「未来」ファイルの更新日時を現在日時に変更した後、メインルーチンに復帰する。この時点で、ファイル管理テーブルMTは、図12(B)のようになる。
【0136】
こうして、セーブデータの統合に先立って、ファイル管理テーブルMT上で、各ファイルの状態および更新日時が制御される。
【0137】
上記ステップS7のセーブデータ統合処理は、図16−図17のサブルーチンに従って実行される。CPU42は、最初のステップS61で、項目(ここでは図9に示す41個の項目)を識別する変数iに初期値“1”をセットする。そして、ステップS63で項目iを選択し、ステップS65では、項目iが属するファイルFj(jは1−19のいずれか:図8参照)を特定して、このファイルFjが更新日時付きか否かを判別する。ここでNOであれば、ステップS79に移る(ステップS79およびこれに続くS81−S89については後述)。
【0138】
ステップS65でYESであれば、ステップS67に進んで、変数jで識別される3個のファイル、つまりアプリA−Cに対応するファイルFja−Fjcのうち、更新日時が最も新しいファイルを特定する。そして、項目iのセーブデータとして、この最新ファイルのセーブデータ(最新データ)を採用する(ルールR1またはR2:図10参照)。さらにステップS71で、項目iの実体がフラグか否かを判別し、NOであればこの項目の処理を終えてステップS95に進む。すなわち、実体がフラグ以外の場合、統合では、単に最新データが採用される(ルールR2:具体例は図11の項目41を参照)。
【0139】
一方、ステップS73でYESであれば、最新ファイルと同じ日付のファイル(同日付ファイル)がファイルFja−Fjcの中にあるか否かをステップS75でさらに判別し、ここでNOであればステップS95に進む。ステップS73でYESであれば、同日付ファイルのセーブデータ(同日データ)でフラグが立っているか否かをさらに判別し、ここでNOであればステップS95に進む。ステップS75でYESであれば、ステップS77でフラグを立てた後、ステップS95に進む。すなわち、実体がフラグの場合、統合では、最新データが採用されるが、同日データで立っているフラグは立てられる(ルールR1:具体例は図11の項目40を参照)。
【0140】
一方、ファイルFjが更新日時付でない場合(ステップS65:NO)、ステップS79で、項目iの実体は写真管理情報か否かを判別し、ここでNOであればステップS81で項目iの実体はスコアか否かをさらに判別し、ここでもNOであれば項目iの実体はフラグとみなし、ステップS83に移る。ステップS83では、ファイルFja−Fjcのどれかのセーブデータでフラグが立っているか否かを判別し、ここでNOであればステップS95に進む。ステップS83でYESであれば、ステップS85でフラグを立てた後、ステップS95に進む。すなわち、実体がフラグの場合、統合では、どれかでフラグがたっていればフラグを立てる(ルールR3:具体例は図11の項目1,2を参照)。
【0141】
ステップS79でYESあれば、ステップS87に進んで、項目iのセーブデータDa−Dcの中に含まれる写真管理情報を“OR”つまり論理和で採用する(ルールR5)。したがって、図11の項目39のように、セーブデータDaに写真管理情報(撮影番号)#1−#12が、セーブデータDbに撮影番号#1−#13が、そしてセーブデータDcに撮影番号#2−#13が含まれているとすると、撮影番号#1−#13が採用される。ただし、撮影番号#2で識別される3枚の写真のうち1枚が他と違っていたとすると、撮影番号#2は採用されず(ルールR5の但し書き)、3枚の写真に撮影番号を付け直す処理が行われる。その後、ステップS95に進む。
【0142】
ステップ81でYESであれば、ステップS89に進んで、項目iのセーブデータDa−Dcの中に含まれるスコアのうち最もよいスコアを採用する(ルールR4:具体例は図11の項目32を参照)。その後、ステップS95に進む。
【0143】
ステップS95では、変数iをインクリメントする。そしてステップS97で、変数iが最大値imax(ここでは41)を超えたか否かを判別し、ここでNOであれば、ステップS63に戻って同様の処理を繰り返す。ステップS97でYESであれば、メインルーチンに復帰する。
【0144】
なお、図16−図17のフローでは、各項目の統合に適用するルールは、統合ルールテーブルRTに基づいて(すなわちファイルの属性および項目の実体を判別して)決定されたが、項目テーブルCT(図9参照)に各項目の統合ルールを予め記述しておく場合には、項目テーブルCTから読み取ればよい。
【0145】
上記ステップS9,S19のセーブデータ上書き処理は、図18のサブルーチンに従って実行される。CPU42は、最初のステップS101で、ファイル(ここでは図8に示す19個のファイル)を識別する変数jに初期値“1”をセットする。そして、ステップS103で、統合セーブデータDintのファイルFjintをメインメモリ48の作業領域(図示せず)に取り込む。そして、ファイルFjintに属する項目の少なくとも1つに変化があったか否かをステップS105で判別し、ここでNOであればステップS109に進む。ステップS105でYESであれば、ステップS107でセーブデータDa−DcのファイルFja−FjcをファイルFjintにより上書きした後、ステップS109に進む。
【0146】
ステップS109では、変数jをインクリメントする。そしてステップS111で、変数jが最大値jmax(ここでは19)を超えたか否かを判別し、ここでNOであれば、ステップS103に戻って同様の処理を繰り返す。ステップS111でYESであれば、メインルーチンに復帰する。
【0147】
このように、更新にあたって、各ファイル1−19が変更のあった項目を含むか否かを判別して、判別結果がYESであるファイルだけを上書きするので、保存用データメモリ52として特にNAND型フラッシュメモリを用いて、効率的な上書きが行える。
【0148】
以上から明らかなように、この実施例のゲーム装置10では、アプリA−C(第1−第3アプリ)によって共用されるセーブデータが、保存用データメモリ52(記憶手段)に、アプリA−Cに対応させてセーブデータDa−Dc(第1−第3セーブデータ)として記憶される。CPU42(コンピュータ)は、たとえばアプリAが起動されると、保存用データメモリ52に記憶されているアプリA−C用のセーブデータDa−Dcをメインメモリ48内で統合し(S7)、この統合データDintをアプリAの実行に従って更新する(S17)一方、自動保存指示やユーザによる保存指示に応じて、保存用データメモリ52に記憶されているセーブデータDa−Dcを更新された統合データDintで上書きする(S19)。これにより、アプリA−C間で共用されるセーブデータを、煩雑な操作なしで最新状態に保つことができる。
【0149】
また、CPU42は、上記の統合処理(S7)をアプリ起動時に実行し、そしてアプリ処理が実行開始される前に、セーブデータDa−Dcを統合データDintで上書きする(S9)。こうして、アプリ起動時に、セーブデータDa−Dcを統合して、統合結果を速やかにセーブデータDa−Dcに反映させることで、最新のセーブデータでアプリ処理を実行することができる。
【0150】
また、CPU42は、統合処理(S7)に先行して制御処理(S5)を実行することで、統合処理を通じてセーブデータの異常を修復する。これにより、たとえばセーブデータDaに異常があっても、セーブデータDbまたはDcが正常であれば、その異常は、統合処理および更新処理を通じて修復することができる。
【0151】
なお、この実施例では、保存用データメモリ52内にアプリA−C用のプログラムPa−PcおよびセーブデータDa−Dcが記憶されているが、プログラムPa−Pcのいずれか1つまたは2つが現時点で記憶されていなくても、セーブデータDa−Dcは記憶されていてよく、この場合、統合の効果を各セーブデータDa−Dcに及ぼすことができる。たとえば、セーブデータDaおよびDbの間で統合を行い、結果をセーブデータDa−Dcに反映させる(セーブデータDaおよびDbに基づく統合データDintでセーブデータDa−Dcを上書きする)ことができる。
【0152】
また、この実施例では、項目をグループ分けして1グループに1ファイルを割り当てたが、グループ分けはせずに、1項目に1ファイルを割り当ててもよく、単一のファイルに全項目を含めることも可能である。ただし、グループ分けをする方が、効率的な上書きが行える。
【0153】
そして、この実施例では、上書きをファイル単位で行ったが、項目単位で上書きを行うような実施例も可能である。ただし、保存用データメモリとして、NOR型フラッシュメモリのような、より細かな上書き制御が可能なメモリを用いる必要が生じる。
【0154】
また、この実施例では、保存用データメモリ52に記憶されているアプリA−C用のセーブデータDa−Dcを統合し、統合して得られた統合データDintを用いてアプリA−Cのいずれかを実行して、アプリA−Cのいずれかの実行に応じて更新された統合データDintをセーブデータDa−Dcに上書きするようにしているが、これに限られず、保存用データメモリ52に記憶されている所定のデータを用いてアプリA−Cのいずれかを実行して、アプリA−Cのいずれかの実行に応じて更新された所定のデータをセーブデータDa−Dcに上書きするようにしてもよい。この場合、上記所定のデータは、統合データDintと同じデータ構造を有する。
【0155】
以上では、ゲーム装置10について説明したが、この発明は、アプリA,B,C…によってその少なくとも一部が共用されるデータ(セーブデータ,履歴データ,参照データ,学習データなど)をアプリA,B,C,…に対応させてデータDa,Db,Dc,…として記憶する記憶手段(フラッシュメモリなどの保存用データメモリ,ハードディスク,書き換え可能な光ディスクなど)に接続されたコンピュータ(CPU)を備える、情報処理装置(PC,PDA,携帯電話端末など)に適用できる。
【符号の説明】
【0156】
10 …ゲーム装置
42 …CPU
48 …メインメモリ
52 …保存用データメモリ
Pa−Pc …アプリA−C用プログラム
Da−Dc …アプリA−C用セーブデータ
Dint …統合セーブデータ
R1−R5 …統合ルール
【技術分野】
【0001】
この発明は、情報処理プログラムおよび情報処理装置に関し、特にたとえば、複数のアプリケーション(ソフトウェア)の間で、セーブデータなどの情報を共用する、情報処理プログラムおよび情報処理装置に関する。
【背景技術】
【0002】
この種の背景技術としては、たとえば特許文献1に開示されたものが知られている。この背景技術では、シリーズ化されたソフトウェア間で、古いソフトウェアのセーブデータが新しいソフトウェアでも利用できたり、新しいソフトウェアのセーブデータが古いソフトウェアでも利用できたりする。具体的には、あるソフトウェアを起動したときに、他のソフトウェアのセーブデータが存在するか否かを判別して、セーブデータが存在する場合に、当該セーブデータに関する情報を表示して、使用するセーブデータをユーザに選択させるようになっている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−183066号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上記の背景技術では、古いセーブデータであってもいつまでも残存する可能性があるため、ユーザが誤って古いセーブデータを選択することがあったり、セーブデータの選択時にセーブデータの生成日時や更新日時を確認する作業が必要になったりするという問題があった。
【0005】
それゆえに、この発明の主たる目的は、新規な、情報処理プログラムおよび情報処理装置を提供することである。
【0006】
この発明の他の目的は、複数アプリ間で共用されるセーブデータなどの情報を煩雑な操作なしで最新状態に保つことができる、情報処理プログラムおよび情報処理装置を提供することである。
【課題を解決するための手段】
【0007】
この発明は、上記の課題を解決するために、以下の構成を採用した。
【0008】
第1の発明は、記憶手段に接続されたコンピュータを、アプリケーション実行手段、更新手段、および第1上書き手段として機能させる、情報処理プログラムである。記憶手段には、第1アプリケーションおよび第2アプリケーションによってその少なくとも一部が共用されるデータが、第1アプリケーションに対応させて第1データとして記憶されると共に、第2アプリケーションに対応させて第2データとしても記憶される。すなわち、データは、第1アプリ用の第1データおよび第2アプリ用の第2データとして2通りに記憶される。アプリケーション実行手段は、所定のデータで第1アプリケーションを実行する。更新手段は、アプリケーション実行手段による第1アプリケーションの実行にしたがって所定のデータを更新する。第1上書き手段は、記憶手段に記憶されている第1データおよび第2データを更新手段によって更新された所定のデータで上書きする。
【0009】
第1の発明によれば、第1のアプリケーションの実行にしたがって更新された所定のデータを、第1のアプリケーションに対応させた第1データと第2のアプリケーションに対応させた第2データに上書きするため、第1データおよび第2データを煩雑な操作なしで最新状態に保つことができる。
【0010】
第2の発明は、第1の発明に従属する情報処理プログラムであって、コンピュータを、統合手段としてさらに機能させ、アプリケーション実行手段は、統合手段によって統合された統合データで第1アプリケーションを実行する。統合手段は、記憶手段に記憶されている第1データおよび第2データを統合する。第1アプリケーションは、こうして統合された統合データで実行される。
【0011】
第2の発明によれば、以前の第1アプリケーションおよびは第2アプリケーションの実行により更新されている第1データおよび第2データを統合して第1アプリケーションの実行で更新し、更新したデータを第1データおよび第2データに上書きするため、第1データおよび第2データを以前のアプリケーションの実行結果が反映されたものにすることができる。さらに、上書きされた後の第1データおよび第2データの何れかが消失した場合や破損した場合であっても、最新状態に保たれている一方のデータを用いて各アプリケーションを実行できる。
【0012】
第3の発明は、第1の発明に従属する情報処理プログラムであって、第1上書き手段は、所定の指示に応じて、記憶手段に記憶されている第1データおよび第2データを更新手段によって更新された所定のデータで上書きする。
【0013】
第3の発明によれば、適切なタイミングで第1データと第2データを最新状態に保つことができる。
【0014】
なお、好ましくは、記憶手段は、不揮発性メモリたとえばフラッシュメモリなどの保存用データメモリを含み、統合および更新の各処理は、揮発性メモリたとえばコンピュータに接続されたメインメモリあるいはコンピュータの内蔵メモリ上で行われる。ただし、場合によっては、統合および更新の各処理も記憶手段内で行ってよい。
【0015】
第4の発明は、第2の発明に従属する情報処理プログラムであって、コンピュータを、起動手段としてさらに機能させ、統合手段は、起動手段によって第1アプリケーションが起動されたときに統合を行う。起動手段は、第1アプリケーションを起動させ、統合手段は、起動手段が第1アプリケーションを起動させたときに第1データおよび第2データの統合を行う。
【0016】
第4の発明によれば、第1アプリケーションの起動時に第1データおよび第2データを統合するため、最新のデータで第1アプリケーションの実行を開始させることができる。
【0017】
第5の発明は、第4の発明に従属する情報処理プログラムであって、コンピュータを、第2上書き手段としてさらに機能させる。第2上書き手段は、記憶手段に記憶されている第1データおよび第2データを、第1アプリケーションが起動されたときに統合手段によって統合された統合データで、第1アプリケーションの実行が開始される前に上書きする。
【0018】
第5の発明によれば、第1アプリケーションの起動時に、第1データおよび第2データを統合して、統合結果を速やかに第1データおよび第2データに反映させるので、第1アプリケーションの実行により更新された統合データが第1データおよび第2データに上書きされる前にコンピュータの電源オフ等によりアプリケーションが終了した場合であっても、第1データおよび第2データを統合後の新しいデータにすることができる。
【0019】
第6の発明は、第5の発明に従属する情報処理プログラムであって、第1および/または第2上書き手段は、記憶手段に記憶されている第1データおよび/または第2データのうち、統合手段によって統合された統合データと異なる部分を上書きする。
【0020】
第6の発明によれば、効率的な上書きが行える。
【0021】
第7の発明は、第2ないし第6のいずれかの発明に従属する情報処理プログラムであって、データの共用部分は複数の項目に区分されており、統合手段は第1データおよび第2データを項目毎に統合する。
【0022】
第7の発明によれば、項目によって異なる統合ルールを適用できるので、多様な統合が実現できる。
【0023】
第8の発明は、第7の発明に従属する情報処理プログラムであって、複数の項目の各々は、それぞれに1つのファイルが割り当てられた複数のグループのいずれか1つに属しており、第1および/または第2上書き手段は、第1データおよび第2データをファイル単位で上書きする。
【0024】
第8の発明によれば、項目をグループ分けしてファイルに収め、上書きをファイル単位で行うようにしたので、上書きの効率を向上させることと、記憶手段としてフラッシュメモリを用いることとが容易になる。
【0025】
第9の発明は、第8の発明に従属する情報処理プログラムであって、第1および/または第2上書き手段は、複数のグループ毎にそこに含まれる全ての項目について変化があるか否かを判定し、判定結果が肯定である項目を少なくとも1つ含むグループに対応するファイルについて上書きを行う。
【0026】
第9の発明によれば、効率よく上書きが行える。
【0027】
第10の発明は、第8または第9の発明に従属する情報処理プログラムであって、統合手段は、各ファイルの属性および/または各項目の実体に応じたルールに従って統合を行う。
【0028】
第10の発明によれば、多様な統合を効率よく行える。
【0029】
第11の発明は、第10の発明に従属する情報処理プログラムであって、属性は、各ファイルが更新日時データを含むか否かに関し、ルールは、各ファイルが更新日時データを含んでいれば最新ファイルのデータを採用するという最新採用ルールを含む。
【0030】
第11の発明によれば、統合にあたって最新データを採用するので、第1データおよび第2データに古いデータが残らないようにすることができる。
【0031】
第12の発明は、第10の発明に従属する情報処理プログラムであって、ルールは、項目の実体がアプリケーションの進行状況に関連するフラグである場合にはどれかのデータでフラグが立っていればフラグを立てるというフラグルールを含む。
【0032】
第13の発明は、第10の発明に従属する情報処理プログラムであって、ルールは、項目の実体が値である場合には最も良い値を採用するという最良値ルールを含む。
【0033】
第14の発明は、第10の発明に従属する情報処理プログラムであって、ルールは、項目の実体がデータの管理情報である場合には論理和により採用するという論理和ルールを含む。
【0034】
第14の発明によれば、管理情報を漏れなく採用できる。
【0035】
第15の発明は、第14の発明に従属する情報処理プログラムであって、論理和ルールには、同じ管理情報の異なるデータがあればどれも採用しないという条件がつく。
【0036】
第15の発明では、同じ管理情報が割り当てられているのにデータ自体は異なっている(たとえば同じ写真管理情報が割り当てられているのに画像データは別物である)という場合、どの管理情報も採用されない。
【0037】
第15の発明によれば、間違っている可能性のある管理情報を排除できる。
【0038】
第16の発明は、第3の発明に従属する情報処理プログラムであって、所定の指示は自動保存指示を含む。
【0039】
第16の発明では、上書きは自動保存指示に応じて実行される。
【0040】
第16の発明によれば、ユーザは保存指示を行わなくてよいので、操作量が削減される。
【0041】
なお、所定の指示は、ユーザによる保存指示を含んでもよい。この場合、上書きは、ユーザによる保存指示に応じて実行される。したがって、ユーザが指示するまでは上書きは行われないので、コンピュータや記憶手段への負荷を減らすことができる。
【0042】
第17の発明は、第1の発明に従属する情報処理プログラムであって、データは、第1アプリケーションおよび第2アプリケーションの各アプリケーションの実行により変化する当該各アプリケーションに関連するパラメータを示すデータである。
【0043】
第18の発明は、第2の発明に従属する情報処理プログラムであって、コンピュータを、制御手段としてさらに機能させる。制御手段は、記憶手段に記憶されている第1データに異常がある場合に、記憶手段に記憶されている第2データを利用して当該異常を修復するように統合手段を制御する。
【0044】
第18の発明によれば、統合を通じて異常を修復できる。
【0045】
第19の発明は、第18の発明に従属する情報処理プログラムであって、制御手段は、第1データに対応する更新日時データが現在日時に対して未来かつ同日を示す場合には当該現在日時を示すように当該更新日時データを変更する一方、未来かつ翌日以降を示す場合には当該第1データを無効化する、日時制御手段を含む。
【0046】
第19の発明によれば、更新日時データの示す日時が未来であっても当日であれば、現在日時を示すように更新日時データを変更するに止め、翌日以降であれば、第1データ自体を無効化するので、当日のデータを生かして統合が行える。
【0047】
第20の発明は、第1アプリケーションおよび第2アプリケーションによってその少なくとも一部が共用されるデータを、当該第1アプリケーションに対応させて第1データとして記憶すると共に、当該第2アプリケーションに対応させて第2データとして記憶する、記憶手段、所定のデータで第1アプリケーションを実行するアプリケーション実行手段、アプリケーション実行手段による第1アプリケーションの実行にしたがって所定のデータを更新する更新手段、および記憶手段に記憶されている第1データおよび第2データを更新手段によって更新された所定のデータで上書きする第1上書き手段を備える、情報処理装置である。
【0048】
第20の発明でも、第1の発明と同様に、第1データおよび第2データを煩雑な操作なしで最新状態に保つことができる。
【発明の効果】
【0049】
この発明によれば、複数アプリ間で共用されるセーブデータなどの情報を煩雑な操作なしで最新状態に保つことができる、情報処理プログラムおよび情報処理装置が実現される。
【0050】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0051】
【図1】この発明の一実施例であるゲーム装置の外観図であり、開状態における正面を示す。
【図2】ゲーム装置の外観図であり、開状態における側面を示す。
【図3】ゲーム装置の外観図であり、(A)は閉状態における一方側面を、(B)は閉状態における上面を、(C)は閉状態における他方側面を、そして(D)は閉状態における下面をそれぞれ示す。
【図4】ゲーム装置がユーザによって把持された様子を示す図解図である。
【図5】ゲーム装置の電気的構成の一例を示すブロック図である。
【図6】顔トレーニングの流れを説明するための図解図であり、(A)はアプリ選択画面を示し、(B)はトレーニング選択画面を示し、(C)はトレーニング画面を示し、(D)は表情測定画面を示す。
【図7】ゲーム装置のメモリマップ図であり、(A)は保存用データメモリの一部を示し、(B)はメインメモリの一部を示す。
【図8】セーブデータの構成例を示す図解図である。
【図9】項目テーブルの構成例を示す図解図である。
【図10】統合ルールテーブルの構成例を示す図解図である。
【図11】統合ルールの項目への適用例を示す図解図である。
【図12】ファイル管理テーブルの構成および制御の一例を示す図解図であり、(A)が制御前に対応し、(B)が制御後に対応する。
【図13】CPU動作の一部を示すフロー図である。
【図14】CPU動作の他の一部を示すフロー図である。
【図15】CPU動作のその他の一部を示すフロー図である。
【図16】CPU動作のさらにその他の一部を示すフロー図である。
【図17】CPU動作の他の一部を示すフロー図である。
【図18】CPU動作のその他の一部を示すフロー図である。
【発明を実施するための形態】
【0052】
図1−図3には、本発明の一実施例であるゲーム装置10の外観が示される。ゲーム装置10は折り畳み型のゲーム装置であり、図1および図2は、開いた状態(開状態)におけるゲーム装置10を示し、図3は、閉じた状態(閉状態)におけるゲーム装置10を示している。また、図1は、開状態におけるゲーム装置10の正面図であり、図2は、開状態におけるゲーム装置の側面図である。ゲーム装置10は、2つの表示装置(LCD12および14)および2つのカメラ(カメラ16および18)を有し、カメラによって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることができる。
【0053】
ゲーム装置10は、開いた状態において両手または片手で把持することができるような小型のサイズとされる。
【0054】
ゲーム装置10は、下側ハウジング20および上側ハウジング22という2つのハウジングを有する。下側ハウジング20と上側ハウジング22とは、開閉可能(折り畳み可能)に接続されている。この実施例では、各ハウジング20および22はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。
【0055】
上側ハウジング22は、下側ハウジング20の上側の一部で回動自在に支持されている。これによって、ゲーム装置10は、閉状態(下側ハウジング20と上側ハウジング22とのなす角度が約0°の状態(図3参照))と、開状態(下側ハウジング20と上側ハウジング22とのなす角度が約180°の状態(図2参照))とをとることができる。ユーザは通常、開状態でゲーム装置10を使用し、ゲーム装置10を使用しない場合には閉状態としてゲーム装置10を保管する。また、ゲーム装置10は、上記閉状態および開状態のみでなく、下側ハウジング20と上側ハウジング22とのなす角度を、ヒンジに発生する摩擦力などによって閉状態と開状態との間の任意の角度に維持することができる。つまり、上側ハウジング22を下側ハウジング20に対して任意の角度で静止させることができる。
【0056】
まず、下側ハウジング20に設けられる構成について説明する。図1に示すように、ゲーム装置10は、下側LCD(液晶表示装置)12を有する。下側LCD12は横長形状であり、長辺方向が下側ハウジング20の長辺方向に一致するように配置される。下側LCD12は下側ハウジング20に収納される。下側LCD12は、下側ハウジング20の内側面に設けられる。したがって、ゲーム装置10を使用しない場合には閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。なお、この実施例では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、ゲーム装置10は任意の解像度の表示装置を利用することができる。なお、ゲーム装置10を撮像装置として利用する場合、下側LCD12は主に、カメラ16または18で撮像されている画像をリアルタイムに表示(スルー表示)するために用いられる。
【0057】
下側ハウジング20の内側面はほぼ平面状に形成される。当該内側面の中央には、下側LCD12を露出させるための開口部20bが形成される。当該開口部20bの左側(図示y軸負側)には開口部20cが形成され、当該開口部20bの右側には開口部20dが形成される。開口部20bおよび20cは、各キートップ(各ボタン24a−24eの上面)を露出させるためのものである。そして、下側ハウジング20の内部に収納される下側LCD12の画面が開口部20bから露出し、各キートップが開口部20cおよび20dから露出される。このように、下側ハウジング20の内側面には、中央に設けられる下側LCD12用の開口部20bの左右両側に非画面領域(図1に示す点線領域A1およびA2。具体的には、各ボタン24a−24eを配置するための領域;ボタン配置領域)がそれぞれ設けられる。
【0058】
下側ハウジング20には、入力装置として、各ボタン24a−24iおよびタッチパネル28が設けられる。図1に示されるように、各ボタン24a−24iのうち、方向入力ボタン24a、ボタン24b、ボタン24c、ボタン24d、ボタン24e、および電源ボタン24fは、下側ハウジング20の内側面に設けられる。方向入力ボタン24aは例えば選択操作等に用いられ、各ボタン24b−24eは例えば決定操作やキャンセル操作等に用いられる。電源ボタン24fは、ゲーム装置10の電源をオン/オフするために用いられる。ここでは、方向入力ボタン24aおよび電源ボタン24fは、下側ハウジング20の中央付近に設けられる下側LCD12に対して一方の側の(図1では左側)に設けられ、ボタン24b−24eは下側LCD12に対して他方の側(図1では右側)に設けられる。方向入力ボタン24aおよびボタン24b−24eは、ゲーム装置10に対する各種操作を行うために用いられる。
【0059】
図3(A)は閉状態におけるゲーム装置10の左側面図であり、図3(B)は当該ゲーム装置10の正面図であり、図3(C)は当該ゲーム装置10の右側面図であり、そして図3(D)は当該ゲーム装置10の背面図である。図3(C)に示されるように、また、図3(A)に示されるように、音量ボタン24iは、下側ハウジング20の左側面に設けられる。音量ボタン24iは、ゲーム装置10が備えるスピーカ34の音量を調整するために用いられる。また、図3(D)に示されるように、ボタン24hは、下側ハウジング20の上面の右端部に設けられる。ボタン24gは、下側ハウジング20の上面の左端部に設けられる。各ボタン24gおよび24hは、ゲーム装置10に対して例えば撮影指示操作(シャッタ操作)を行うために用いられる。各ボタン24gおよび24hの両方をシャッターボタンとして機能させてもよく、この場合、右利きのユーザはボタン24hを使用し、左利きのユーザはボタン24gを使用することができ、いずれのユーザにも使い勝手が良い。なお、ゲーム装置10は、各ボタン24gおよび24hを常にシャッターボタンとして有効としておいてもよいし、右利きか左利きかの設定をして(メニュープログラムなどによりユーザに設定入力をさせ、設定されたデータを記憶しておく)、右利き設定のときにはボタン24hのみ有効とし、左利き設定のときにはボタン24gのみ有効とするようにしてもよい。
【0060】
図1に示されるように、ゲーム装置10は、各操作ボタン24a−24iとは別の入力装として、タッチパネル28をさらに備えている。タッチパネル28は、下側LCD12の画面上に装着されている。なお、この実施例では、タッチパネル28は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。この実施例では、タッチパネル28として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル28の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング20の右側面には挿入口30(図1および図3(D)に示す点線)が設けられている。挿入口30は、タッチパネル28に対する操作を行うために用いられるタッチペン36を収納することができる。なお、タッチパネル28に対する入力は通常タッチペン36を用いて行われるが、タッチペン36に限らずユーザの指でタッチパネル28を操作することも可能である。
【0061】
図3(A)に示されるように、下側ハウジング20の右側面には開閉可能なカバー部11Bが設けられる。このカバー部11Bの内側には、ゲーム装置10とメモリカード38とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード38は、コネクタに着脱自在に装着される。メモリカード38は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。
【0062】
図1に示されるように、下側ハウジング20の軸部20aの左側部分には、3つのLED26a−26cが取り付けられる。ここで、ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第1LED26aは、無線通信が確立している場合に点灯する。第2LED26bは、ゲーム装置10の充電中に点灯する。第3LED26cは、ゲーム装置10の電源がオンである場合に点灯する。したがって、3つのLED26a−26cによって、ゲーム装置10の通信確立状況、充電状況、および、電源のオン/オフ状況をユーザに通知することができる。
【0063】
以上に説明したように、下側ハウジング20には、ゲーム装置10に対する操作入力を行うための入力装置(タッチパネル28および各ボタン24a−24i)が設けられる。したがって、ユーザは、ゲーム装置10を使用する際には下側ハウジング20を把持してゲーム装置10に対する操作を行うことができる。図4は、ユーザがゲーム装置10を両手で把持した様子を示す図である。図4に示すように、ユーザは、各LCD12および14がユーザの方向を向く状態で、両手の掌と中指、薬指および小指とで下側ハウジング20の側面および外側面(内側面の反対側の面)を把持する。このように把持することで、ユーザは、下側ハウジング20を把持したまま、各ボタン24a−24eに対する操作を親指で行い、ボタン24gおよび24hに対する操作を人差し指で行うことができる。
【0064】
一方、上側ハウジング22には、画像を撮像するための構成(カメラ)、および、撮像した画像を表示するための構成(表示装置)が設けられる。以下、上側ハウジング22に設けられる構成について説明する。
【0065】
図1に示すように、ゲーム装置10は、上側LCD14を有する。上側LCD14は上側ハウジング22に収納される。上側LCD14は横長形状であり、長辺方向が上側ハウジング22の長辺方向に一致するように配置される。上側LCD14は、上側ハウジング22の内側面(ゲーム装置10が閉状態となった場合に内側となる面)に設けられる。したがって、ゲーム装置10を使用しない場合には閉状態としておくことによって、上側LCD14の画面が汚れたり傷ついたりすることを防止することができる。なお、下側LCD12と同様、上側LCD14に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。なお、他の実施形態においては、上側LCD14上にもタッチパネルを設けてもよい。
【0066】
また、ゲーム装置10は、2つのカメラ16および18を有する。各カメラ16および18はともに上側ハウジング22に収納される。図1に示されるように、内側カメラ16は、上側ハウジング22の内側面に取り付けられる。一方、図3(B)に示されるように、外側カメラ18は、内側カメラ16が取り付けられる面の反対側の面、すなわち、上側ハウジング22の外側面(ゲーム装置10が閉状態となった場合に外側となる面)に取り付けられる。これによって、内側カメラ16は、上側ハウジング22の内側面が向く方向を撮像することが可能であり、外側カメラ18は、内側カメラ16の撮像方向の逆方向、すなわち、上側ハウジング22の外側面が向く方向を撮像することが可能である。以上のように、この実施例では、2つのカメラ16および18が撮像方向が互いに逆方向となるように設けられる。したがって、ユーザはゲーム装置10を持ち替えることなく、異なる2方向を撮像することができる。例えば、ユーザは、ゲーム装置10からユーザの方を見た景色を内側カメラ16で撮影することができるとともに、ゲーム装置10からユーザの反対側の方向を見た景色を外側カメラ18で撮影することができる。
【0067】
また、内側カメラ16は、上側ハウジング22の下側の中央部に形成される軸部22aの中央に取り付けられる。つまり、内側カメラ16は、2つのハウジング20および22が接続される部分の中央に取り付けられる。したがって、ゲーム装置10を開状態にした場合、内側カメラ16は、2つのLCD12および14の間に配置されることになる(図1参照)。換言すれば、内側カメラ16は、ゲーム装置10の中心付近に配置されることになる。なお、「ゲーム装置10の中心」とは、ゲーム装置10の操作面(開状態における各ハウジング20および22の内側面からなる面)の中心という意味である。なお、内側カメラ16は、LCD12および14の横方向の中心付近に配置されているということもできる。
【0068】
この実施例では、ゲーム装置10を開状態にした場合に内側カメラ16はゲーム装置10の中心付近に配置されるので、ユーザは、内側カメラ16によってユーザ自身を撮影する場合、ユーザがゲーム装置10に正対する位置でゲーム装置10を把持すればよい。つまり、通常の把持位置でゲーム装置を把持すれば、ユーザは撮像範囲の中心付近に位置することになり、ユーザ自身を撮像範囲内に収めることが容易になる。
【0069】
また、図3(B)に示されるように、外側カメラ18は、ゲーム装置10を開状態とした場合において上側ハウジング22の上部(下側ハウジング20から遠い側の部分)に配置される。なお、外側カメラ18は、ゲーム装置10を把持するユーザを撮影するものではないので、ゲーム装置10の中心に設ける必要性は高くない。
【0070】
また、図1または図3(B)に示されるように、マイク32は、上側ハウジング22に収納されている。具体的には、マイク32は、上側ハウジング22の軸部22aに取り付けられる。この実施例では、マイク32は、内側カメラ16の周囲(図ではy軸の側方)に取り付けられ、より具体的には、内側カメラ16からy軸正方向側の側方に取り付けられる。また、軸部22aにおいては、マイク32がゲーム装置10外部の音を検知することができるように、マイク32に対応する位置(内側カメラ16の側方)にマイクロフォン用孔22cが設けられる。
【0071】
なお、マイク32は下側ハウジング20に収納されてもよい。たとえば、マイクロフォン用孔22cを下側ハウジング20の内側面、具体的には下側ハウジング20の内側面の左下部分(ボタン配置領域A1)に設け、マイク32を、下側ハウジング20内における、マイクロフォン用孔22cの近傍に配置することができる。また、マイク32は、その集音方向(感度が最大となる方向)が内側カメラ16の撮像方向(光軸)と略並行(言い換えれば集音方向および撮像方向がそれぞれy軸と略並行)となる向きに取り付けられる。これによって、内側カメラ16の撮像範囲内で発せられた音声は、マイク32によって好適に捉えられる。すなわち、マイク32入力の検出とユーザの検出とを同時行うことができるとともに、検出の精度を向上させることができる。
【0072】
図3(B)に示されるように、上側ハウジング22の外側面には、第4LED26dが取り付けられる。第4LED26dは、外側カメラ18の周囲(この実施例では、外側カメラ18の右側)に取り付けられる。第4LED26dは、内側カメラ16または外側カメラ18によって撮影が行われた(シャッターボタンが押下された)時点で点灯する。また、内側カメラ16または外側カメラ18によって動画が撮影される間点灯する。第4LED26dによって、ゲーム装置10による撮影が行われた(行われている)ことを撮影対象者に通知することができる。
【0073】
また、上側ハウジング22の内側面はほぼ平面状に形成される。図1に示すように、当該内側面の中央には、上側LCD14を露出させるための開口部21Bが形成される。上側ハウジング22の内部に収納される上側LCD14の画面は、開口部21Bから露出する。また、上記開口部21Bの左右両側には音抜き孔22dがそれぞれ1つずつ形成される。音抜き孔22dの奥の上側ハウジング22内にはスピーカ34が収納されている。音抜き孔22dは、スピーカ34からの音を外部に放出するための孔である。
【0074】
このように、上側ハウジング22の内側面には、中央に設けられる上側LCD14用の開口部21Bの左右両側に非画面領域(図1に示す点線領域B1およびB2。具体的には、スピーカ34を配置するための領域;スピーカ配置領域)がそれぞれ設けられる。2つの音抜き孔22dは、左右方向については、各スピーカ配置領域の左右方向における中央部付近に配置され、上下方向については、各スピーカ配置領域の下部領域(下側ハウジング20に近い側の領域)に配置される。
【0075】
なお、上記のように、下側ハウジング20および上側ハウジング22に左右方向に関して同じ位置に非画面領域をそれぞれ設けたことで、ゲーム装置10は、図4に示すような横持ちで把持される場合だけでなく、縦持ち(図4に示す状態からゲーム装置10を左または右回りに90°回転させた状態)で把持される場合にも持ちやすい構成となっている。
【0076】
以上に説明したように、上側ハウジング22には、画像を撮像するための構成であるカメラ16および18、および、撮像された画像を表示するための表示手段である上側LCD14が設けられる。一方、下側ハウジング20には、ゲーム装置10に対する操作入力を行うための入力装置(タッチパネル28および各ボタン24a−24i)が設けられる。したがって、ゲーム装置10を撮像装置として使用する際には、ユーザは、上側LCD14に表示される撮像画像(カメラによって撮像された画像)を見ながら、下側ハウジング20を把持して入力装置に対する入力を行うことができる。
【0077】
また、上側ハウジング22のカメラ16近傍には、音声を入力するための構成であるマイク32が設けられており、したがってゲーム装置10は、録音装置としても使用可能である。さらに、ユーザがマイク32を通して音声入力を行い、ゲーム装置10はこのマイク入力情報に基づいてゲーム処理やゲーム以外のアプリケーション処理を実行することもできる。
【0078】
図5は、ゲーム装置10の内部構成(電気的構成)を示すブロック図である。図5に示すように、ゲーム装置10は、CPU42、メインメモリ48、メモリ制御回路50、保存用データメモリ52、プリセットデータ用メモリ54、メモリカードインターフェース(メモリカードI/F)44、無線通信モジュール56、ローカル通信モジュール58、リアルタイムクロック(RTC)39、電源回路46、およびインターフェース回路(I/F回路)40等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング20(または上側ハウジング22でもよい)内に収納される。
【0079】
CPU42は、各種のプログラムを実行するための情報処理手段である。ゲーム装置10を撮像装置として利用する場合には、そのためのプログラムがゲーム装置10内のメモリ(例えば保存用データメモリ52)に記憶される。CPU42が当該プログラムを実行することで、ゲーム装置10は撮影装置として機能する。なお、CPU42によって実行されるプログラムは、ゲーム装置10内のメモリに予め記憶されていてもよいし、メモリカード38から取得されてもよいし、他の機器との通信によって他の機器から取得されても、あるいはインターネットを通じてサーバからダウンロードされてもよい。
【0080】
CPU42には、メインメモリ48、メモリ制御回路50、およびプリセットデータ用メモリ54が接続される。また、メモリ制御回路50には保存用データメモリ52が接続される。メインメモリ48は、CPU42のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ48は、ゲーム処理に用いられる各種データを記憶したり、外部(メモリカード38や他の機器等)から取得されるプログラムを記憶したりする。この実施例では、メインメモリ48として例えばPSRAM(Pseudo−SRAM)を用いる。保存用データメモリ52は、CPU42によって実行されるプログラムや各カメラ16および18によって撮像された画像のデータ、ゲームやアプリケーションのセーブデータ等を記憶するための記憶手段である。保存用データメモリ52は、例えばNAND型フラッシュメモリで構成される(NOR型フラッシュメモリや他の不揮発性メモリを用いてもよい)。メモリ制御回路50は、CPU42の指示に従って、保存用データメモリ52に対するデータの読み出しおよび書き込みを制御する回路である。プリセットデータ用メモリ54は、ゲーム装置10において予め設定される各種パラメータ等のデータ(プリセットデータ)を記憶するための記憶手段である。プリセットデータ用メモリ54としては、SPI(Serial Peripheral Interface)バスによってCPU42と接続されるフラッシュメモリを用いることができる。
【0081】
メモリカードI/F44はCPU42に接続される。メモリカードI/F44は、コネクタに装着されたメモリカード38に対するデータの読み出しおよび書き込みをCPU42の指示に従って行う。この実施例では、各カメラ16および18によって撮像された画像データがメモリカード38に書き込まれたり、メモリカード38に記憶された画像データがメモリカード38から読み出されて保存用データメモリ52に記憶されたりする。
【0082】
無線通信モジュール56は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール58は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール56およびローカル通信モジュール58はCPU42に接続される。CPU42は、無線通信モジュール56を用いてインターネットを介して他の機器との間でデータを送受信したりサーバ(図示せず)からプログラムをダウンロードしたり、ローカル通信モジュール58を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0083】
また、CPU42には、RTC60および電源回路46が接続される。RTC60は、時間をカウントしてCPU42に出力する。CPU42は、RTC60によって計時された時間に基づいて、現在時刻(日付)を計算したり、各種処理の実行タイミングを検知したりする。電源回路46は、ゲーム装置10が有する電源(電池;下ハウジングに収納される)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0084】
また、ゲーム装置10は、マイク32およびスピーカ34を備えている。マイク32およびスピーカ34はそれぞれI/F回路40に接続される。マイク32は、ユーザの音声を検知して音声信号をI/F回路40に出力する。スピーカ34は、I/F回路40からの音声信号に応じた音声を出力する。I/F回路40はCPU42に接続される。また、タッチパネル28はI/F回路40に接続される。I/F回路40は、マイク32およびスピーカ34の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。変換された音声データは、メインメモリ48の音声エリア(図示せず)に書き込まれる。ゲーム装置10を録音装置として利用する場合には、音声エリアに格納された音声データは、後にメモリ制御回路50を介して保存用データメモリ52に書き込まれる(必要に応じてさらに、メモリカードI/F44を介してメモリカード38に記録される)。また、音声エリアに格納された音声データ(マイク入力情報)は、各種のゲーム処理にも利用される。タッチパネル制御回路は、タッチパネル28からの信号に基づいて所定の形式のタッチ位置データを生成してCPU42に出力する。タッチ位置データは、タッチパネル28の入力面のうちで入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル28からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。CPU42は、タッチ位置データを取得することにより、タッチパネル28に対して入力が行われた位置を知ることができる。
【0085】
操作部24は、上記各ボタン24a−24iからなり、CPU42に接続される。操作部24からCPU42へは、各ボタン24a−24iに対する入力状況(押下されたか否か)を示す操作データが出力される。CPU42は、操作部24から操作データを取得することによって、操作部24に対する入力に従った処理を実行する。
【0086】
各カメラ16および18はCPU42に接続される。各カメラ16および18は、CPU42の指示に従って画像を撮像し、撮像した画像データをCPU42に出力する。CPU42は、各カメラ16および18からの画像データをメインメモリ48の画像エリア(図示せず)に書き込む。ゲーム装置10を撮像装置として利用する場合には、画像エリアに格納された画像データは、後にメモリ制御回路50を介して保存用データメモリ52に書き込まれる(必要に応じてさらに、メモリカードI/F44を介してメモリカード38に記録される)。また、画像エリアに格納された画像データは、各種のゲーム処理にも利用される。
【0087】
また、各LCD12および14はCPU42に接続される。各LCD12および14はCPU42の指示に従って画像を表示する。ゲーム装置10でゲームをプレイする場合、LCD12および14の一方または両方にゲーム画像が表示される。ゲーム装置10を撮像装置として利用する場合には、CPU42は、各カメラ16および18のいずれかから取得した画像を上側LCD14に表示させ、所定の処理によって生成した操作画面を下側LCD12に表示させる。
【0088】
以上のように構成されたゲーム装置10で顔トレーニングを行うとき、図6(A)−図6(D)のような画面が上側LCD14(以下“LCD14”)に表示される。なお、画面は、下側LCD12に表示されても、両方に跨って表示されてもよい。また、画面の構成は、簡略化された一例に過ぎず、様々に変更され得る。
【0089】
最初、顔トレーニングの概要を図6(A)−図6(D)により説明する。顔トレーニングを行うにあたって、ユーザは、ゲーム装置10をネットワーク(図示せず)に接続し、所望のアプリケーションをサーバ(図示せず)からネットワーク経由でダウンロードする。
【0090】
ここで、顔トレーニング用のアプリケーションは、“アプリA”,“アプリB”,“アプリC”,…のようにシリーズ化されており、たとえば、アプリAはトレーニング0および1を含み、アプリBはトレーニング0および2を含み、そしてアプリCはトレーニング0および3を含む。トレーニング0,1,2および3は、たとえば顔の全体,一部,他の一部およびその他の一部をそれぞれ対象とするトレーニングである。
【0091】
この実施例では、3つのアプリA−Cに対応するプログラムPa−Pcおよびこれに付随する各種テーブルCT,RTおよびMTが、無線通信モジュール56を経てCPU42により受信され、保存用データメモリ52に格納される(図7(A)参照:詳細は後述)。
【0092】
アプリA−Cは、ゲーム装置10で過去に実行されたことがあり、したがって、保存用データメモリ52には、それぞれに対応するセーブデータDa−Dcがさらに記憶されている。ここで、セーブデータDa−Dcは、アプリA−Cの実行により変化するアプリA−Cに関連するパラメータを示すデータともいえる。初めて実行されるアプリケーションについては、これに対応するセーブデータが、保存用データメモリ52内に新たに生成される。すなわち、セーブデータはアプリ毎に保存されるが、どのアプリ用のセーブデータも、共通の構造を有する(図8参照:詳細は後述)。
【0093】
セーブデータDaは、アプリA用のセーブ項目だけでなく、アプリB,C用のセーブ項目や、アプリを特定しないセーブ項目のデータも含んでおり、セーブデータDb,Dcも同様である(図9参照:後述)。つまり、アプリA−Cに共通のセーブデータがあって、それをアプリA−C用として3通りに記憶したのが、セーブデータDa−Dcである。したがって、セーブデータDa−Dcは、本来同一内容でなければならないが、各アプリA−Cの実行状況によって差異が生じる。そこで、このような差異を解消するためのルーチンが、プログラムPa−Pcに組み込まれている。
【0094】
なお、プログラムPa−PcおよびテーブルCT,RTおよびMTの一部または全部は、サーバからダウンロードされる代わりに、メモリカードI/Fを通じてメモリカード38等から読み込まれても、予め保存用データメモリ52等に格納されていてもよい。
【0095】
ダウンロードが完了すると、CPU42は、図6(A)のようなアプリ選択画面をLCD14に表示する。このアプリ選択画面には、アプリA−Cにそれぞれ対応する3つのボタン“A”,“B”および“C”と、そのいずれかを選択するようユーザに促すテキスト“アプリを選択してください”と、選択されたアプリの起動を指示するためのボタン“起動”と、選択されたアプリの紹介画面(図示せず)を表示させるための“紹介を見る”とが含まれる。
【0096】
図6(A)のアプリ選択画面でアプリAが選択され、そして“起動”が指示されたとすると、CPU42は、図6(B)のようなトレーニング選択画面をLCD14に表示する。トレーニング選択画面には、2種類のトレーニングにそれぞれ対応する2つのボタン“0”および“1”と、そのいずれかを選択するようユーザに促すテキスト“トレーニングを選択してください”とが含まれる。
【0097】
図6(B)のトレーニング選択画面でトレーニング0が選択されたとすると、CPU42は、図6(C)のようなトレーニング画面をLCD14に表示する。このトレーニング画面には、トレーニング“0”の内容を説明するテキスト“顔全体の表情筋を鍛えます”と、チェックボックスCBと、トレーニングを行ったらチックボックスCBに印を付けるようユーザに促すテキスト“トレーニングを終えたら印を付けてください“とが含まれる。なお、図示は省略するが、トレーニング画面には、お手本を示す画像や解説を示すテキストなどが適宜表示され、ユーザは、画面内のお手本や解説を参考に練習を行うことができる。
【0098】
図6(C)のトレーニング画面でチェックボックスCBに印が付けられ、トレーニング結果の評価(表情測定)を行う指示が行われたとすると、CPU42は、図6(D)のような評価画面をLCD14に表示する。この評価画面には、表情測定を行うことを知らせるテキスト“表情を測定します…”と、評価結果を示すテキスト“今日のスコアは80点です”とが含まれる。ここで、評価結果つまりスコアは、ユーザが顔の筋肉をどれだけお手本に近い形で動かせるかを示す数値であり、所定のアルゴリズムに従って算出される。具体的には、ユーザの顔の画像を第1カメラ16を通じて撮像し、この顔画像から各筋肉(瞼筋,頬筋など)の動きを解析し、解析結果をお手本(各筋肉の理想的な動きを示すデータであり、プログラムと一緒にダウンロードされる)と比較して、お手本との類似度をたとえば100点満点でスコア化する。
【0099】
上記のような顔トレーニングが実行されている期間中、セーブデータDa−DcがCPU42によって逐次更新される。実行されているのがアプリA−Cのどれであっても、セーブデータDa−Dcの各々が更新される。具体的には、CPU42は、トレーニング開始に先立って、セーブデータDa−Dcを項目毎に(図9参照)統合する。ここで、統合とは、セーブデータDa−Dcそれぞれの先頭の項目におけるデータのうち1つのデータが採用されて、採用されたデータを先頭の項目におけるデータとし、この処理を最終の項目まで繰り返すことにより統合セーブデータDintを得ることをいう。そして、トレーニングが開始されると、いずれかの項目に該当する動作が行われる度に統合セーブデータDintを更新する一方、自動保存指示またはユーザによる保存指示に応じて、更新された統合セーブデータDintでセーブデータDa−Dcをそれぞれ上書きする。この上書きは、ファイル単位(図8参照)で行われる。なお、更新された統合セーブデータDintでセーブデータDa−Dcをそれぞれ上書きすることは、更新された統合セーブデータDintでセーブデータDa−Dcをそれぞれ更新するといってもよいし、更新された統合セーブデータDintでセーブデータDa−Dcをそれぞれ書き換えるといってもよい。以下、この一連の処理について、詳しく説明する。
【0100】
図7(A)を参照して、保存用データメモリ52はプログラム領域70およびデータ領域72を含み、プログラム領域70にはアプリA−Cに対応するプログラムPa−Pcが、データ領域72にはアプリA−C用のセーブデータDa−Dcが、それぞれ格納される。データ領域72にはさらに、更新処理で利用される各種テーブル、具体的には項目テーブルCT,統合ルールテーブルRTおよびファイル管理テーブルMTも格納される。図7(B)を参照して、メインメモリ48はデータ領域74を含み、データ領域74には統合用のセーブデータDintが格納される。
【0101】
図8を参照して、アプリA−C用のセーブデータDa−Dcおよび統合用のセーブデータDintの各々は、項目1−41に対応する41種類のセーブデータを含む。項目1−41は、それぞれの内容によって19個のグループに分類され、各グループに1つのファイルが割り当てられる。
【0102】
項目1−41の内容は図9に示されており、たとえば、項目1−3は、アプリA−Cの紹介を見たかに関するもので、ファイル1が割り当てられる。項目4−7は、トレーニング0−3を1回でも行ったかに関するもので、ファイル2が割り当てられる。項目8−10は、第1日にアプリA−Cでトレーニングをした印(チェックマーク:図6(C)参照)をつけたかに関するもので、ファイル3が割り当てられる。項目11−13は、第2日にアプリA−Cでトレーニングをした印をつけたかに関するもので、ファイル4が割り当てられる。項目14−16,17−19,20−22,23−25,26−28および29−31は、同じく第3−第7日に対応し、ファイル5−9が割り当てられる。項目32−38は、第1−第7日のスコアに関するもので、ファイル10−16が割り当てられる。項目39は、写真管理情報に関するもので、ファイル17が割り当てられる。項目40は、“最後にトレーニングした日は今日か”に関するもので、ファイル18が割り当てられる。そして、項目41は、ウォーミングアップを最後にした日時に関するもので、ファイル19が割り当てられる。
【0103】
また、このような19個のファイルの一部ここではファイル18および19には、それぞれのファイルの更新日時を示すデータが付加される。残りのファイル1−17には、更新日時データは付加されない(または0000年…のような無効なデータが付加される)。
【0104】
図9を参照して、項目テーブルCTは、各項目について、上記のような内容に加え、その項目の実体,その項目を参照するアプリ(参照アプリ),およびその項目を更新するアプリ(更新アプリ)が記述される。たとえば、項目1については、内容が“アプリAの紹介を見たか”なので、実体はYES/NOを示すフラグである。そして、このフラグを参照するのはアプリA自身だけであり、“アプリAの紹介を見た”場合にこのフラグを更新するのもアプリAに限られる。項目2,3についても、実体はフラグであり、参照アプリおよび更新アプリはアプリB,C自身に限られる。これらのフラグは、アプリケーションの進行状況に関連するフラグであり、アプリケーションの進行に応じて所定の処理が行われた否かを判定するためのものである。
【0105】
項目4については、内容が“トレーニング0(顔全体)を1回でも行ったか”なので実体はフラグであり、このフラグは全アプリA−Cによって参照されかつ全アプリA−Cによって更新される。項目5については、内容が“トレーニング1(たとえば顔の一部)を1回でも行ったか”なので実体はフラグであり、参照アプリおよび更新アプリはアプリA自身に限られる。項目6,7についても、実体はフラグで、参照アプリおよび更新アプリはB,C自身に限られる。
【0106】
項目8については、内容が“第1日にアプリAでトレーニングをしたか”なので、実体はフラグである。このフラグは全アプリA−Cによって参照されるが、“第1日にアプリAでトレーニングをした”場合にこのフラグ更新するのはアプリA自身に限られる。項目9については、内容が“第1日にアプリBでトレーニングをしたか”なので実体はフラグであり、参照アプリは全アプリA−Cであるが、更新アプリはアプリB自身に限られる。項目10については、内容が“第1日にアプリCでトレーニングをしたか”なので実体はフラグであり、参照アプリは全アプリA−Cであるが、更新アプリはアプリC自身に限られる。項目14−16,17−19,20−22,23−25,26−28および29−31も、項目8−10や項目11−13の場合と同様である。
【0107】
項目32については、内容が“第1日のスコア”なので、実体はスコアである。このスコアは、全アプリA−Cによって参照され、かつ全アプリA−Cによって更新される。項目33−38についても同様である。
【0108】
項目39については、内容が“写真管理情報”なので、実体は撮影日時や番号(タイトル),データ量などである。この写真管理情報は、全アプリA−Cによって参照され、かつ全アプリA−Cによって更新される。項目40については、内容が“最後にトレーニングした日は今日か”なので、実体はフラグである。このフラグは、全アプリA−Cによって参照され、かつ全アプリA−Cによって更新される。そして、項目41については、内容が“ウォーミングアップを最後にした日時”なので、実体は日時である。この日時は、全アプリA−Cによって参照され、かつ全アプリA−Cによって更新される。
【0109】
なお、図9の項目テーブルCTにさらに、各項目に適用される統合ルール(次に説明するルールR1−R5のどれか)を予め記述しておいてもよい。
【0110】
図10を参照して、統合ルールテーブルRTには、項目に割り当てられたファイルの属性および項目の実体に応じて5種類の統合ルールR1−R5が記述されている。具体的には、まず、ファイルの属性として“更新日時データを含む”および“更新日時データを含まない”の2種類が記述され、次に、“更新日時データを含む”に対応する項目の実体として“フラグ”および“フラグ以外”の2種類が、“更新日時データを含まない”に対応する項目の実体として“フラグ”,“スコア”および“写真管理情報”が、それぞれ記述されている。
【0111】
そして、ファイル属性が“更新日時データを含む”でありかつ実体が“フラグ”である項目の統合ルールR1として、“最新データを採用、但し最新データと同じ日付のデータがあればその同日データで立っているフラグは立てる”が記述されている。また、“更新日時データを含む”かつ“フラグ以外”である項目の統合ルールR2として“最新データを採用”が、“更新日時データを含まない”かつ“フラグ”である項目の統合ルールR3として“どれかでフラグが立っていればフラグを立てる”が、“更新日時データを含まない”かつ“スコア”である項目の統合ルールR4として“同じ日付の異なるスコアがあれば最もよいスコアを採用”が、そして“更新日時データを含まない”かつ“写真管理情報”である項目の統合ルールR5として“ORつまり論理和による採用、但し同じ管理情報で異なる写真があればどれも採用しない(当該写真を読み込んで写真管理情報を再作成する)”が記述されている。
【0112】
セーブデータDa−Dcは、このような統合ルールテーブルRTに基づいて項目毎に統合される。具体的には、図8−図10を参照して、項目1−3は、割り当てられたファイル1がファイル更新日時データを含まず、かつ実体がフラグなので、ルールR3が適用される。項目4−7は、割り当てられたファイル2がファイル更新日時データを含まず、かつ実体がフラグなので、ルールR3が適用される。項目8−10は、割り当てられたファイル3がファイル更新日時データを含まず、かつ実体がフラグなので、ルールR3が適用される。項目11−13,14−16,17−19,20−22,23−25,26−28および29−31も、項目8−10と同様に、ルールR3が適用される。
【0113】
項目32は、割り照られたファイル10がファイル更新日時データを含まず、かつ実体がスコアなので、ルールR4が適用される。項目33−38も、項目32と同様に、ルールR4が適用される。項目39は、割り当てられたファイル17が更新日時データを含まず、かつ実体が写真管理情報なので、ルールR5が適用される。項目40は、割り当てられたファイル18がファイル更新日時データを含み、かつ実体がフラグなので、ルールR1が適用される。そして、項目41は、割り当てられたファイル19がファイル更新日時データを含み、かつ実体が日時つまりフラグ以外なので、ルールR2が適用される。
【0114】
項目毎の統合の一例を図11に示す。まず、項目1に関し、セーブデータDaではフラグが立っており(フラグ:ON)、セーブデータDb,Dcではいずれもフラグが立っていない(フラグ:OFF)とすると、ルールR3の適用によって、統合セーブデータDintではフラグが立つ(フラグ:ON)。また、項目2に関し、セーブデータDa−Dcのいずれでもフラグ:OFFとすると、ルールR3の適用によって、統合セーブデータDintではフラグ:OFFとなる。項目3−31の各々も、同様に統合される。
【0115】
次に、項目32に関し、セーブデータDa,Db,Dcでスコアがそれぞれ80,75,85であるとすると、ルールR4の適用によって、統合セーブデータDintではスコアは85となる。項目33−38の各々も、同様に統合される。
【0116】
次に、項目39に関し、セーブデータDa,Db,Dcで写真管理情報(たとえば撮影番号)がそれぞれ#1−#12,#2−#13,#1−#13であれば、ルールR5に従って、その論理和つまり撮影番号#1−#13が採用される。ただし、同じ撮影情報で異なる写真があればどの撮影情報も採用しない、という但し書きによって、たとえば、撮影番号#2で識別される3枚の写真のうち1枚が他と違っていたとすると、この撮影番号#2は採用されない。この場合、撮影番号#2に対応する3枚の写真を読み込んで確認し、撮影番号を付け直す作業が行われる。
【0117】
次に、項目40に関し、セーブデータDaではフラグ:OFF(ファイル更新日時:2009_8_1_15:00)、セーブデータDbではフラグ:ON(ファイル更新日時:2009_8_15_11:00)、そしてセーブデータDcではフラグ:OFF(ファイル更新日時:2009_8_20_12:00)であるとすると、ルールR1の適用によって、統合セーブデータDintではフラグOFF(ファイル更新日時:2009_8_20_12:00)となる。なお、セーブデータDbのファイル更新日時が2009_8_15_11:00ではなく2009_8_20_11:00であったなら、これは最新データと同日であり、かつこの同日データでフラグはONなので、統合セーブデータDintでは、この同日データのフラグ:ONが採用されることとなる。
【0118】
次に、項目41に関し、セーブデータDaでは日時が2009_8_1_16:00であり、セーブデータDbは存在せず、そしてセーブデータDcでは日時が2009_8_20_11:00)であるとすると、ルールR2の適用によって、統合セーブデータDintでは日時は2009_8_20_11:00となる。
【0119】
セーブデータDa−Dcは、こうして得られた統合セーブデータDintで上書きされる。上書きは、いずれかの項目が更新される度に、ファイル単位で行われる。
【0120】
また、ゲーム装置10では、以上のような統合処理に先行して、次のようなファイル制御処理が実行される。図12(A)を参照して、制御前(2009年8月20日12:00現在)のファイル管理テーブルMTには、読み込まれた時点のセーブデータDa−Dcの各々について、ファイル1−19の状態および更新日時が記述されている。状態としては、そのファイルが正常である(オープンできる)ことを示す“正常”,そのファイルが破損している(オープンできない)ことを示す“破損”,およびそのファイルがない(無効である)ことを示す“無”の3種類がある。各ファイルの状態が3種類のどれであるかは、たとえばそのファイルの検索およびオープンを試みることによって、あるいは図示しないファイルシステムを参照して、判別される。
【0121】
また、更新日時は、更新日時データを含むファイルであれば、そのファイルから読み取られた値(たとえば2009_8_1_15:00)が記述され、更新日時データを含まないファイルであれば、何も記述されない(または無効な値たとえば0000年0月0日0:00が記述される)。
【0122】
図12(B)を参照して、制御後(2009年8月20日12:00現在)のファイル管理テーブルMTは、上記のような制御前のファイル管理テーブルMTにおいて、状態および更新日時が2箇所ずつ変更されている。具体的には、まず状態に関し、セーブデータDbのファイル2の状態がファイル消去を行うことなく“破損”から“無”に変更され、セーブデータDaのファイル3の状態がファイル消去を行った上で“破損”から“無”に変更されている。
【0123】
ここで、“破損”ファイルを削除するか否かは、これと同じ“正常”ファイルが別のセーブデータに存在しているか否かで決まる。セーブデータDbにおいて破損したファイル2は、これと同じ正常なファイル2がセーブデータDaまたはDcに存在するため、消去されない。セーブデータDcにおいて破損したファイル3は、これと同じ正常なファイル3がセーブデータDaおよびDbのいずれにも存在しないため、消去される。なお、ここで消去されなかった“無”ファイル2は、後段の統合処理および上書き処理を通じ、“正常”ファイル2で上書きされることになる。
【0124】
更新日時に関しては、現在日時に対して未来であるファイルが制御の対象となる。制御には、そのファイルに含まれるセーブデータは有効なままで、そのファイルの更新時刻を現在日時に変更するものと、そのファイルに含まれるセーブデータ全体を無効化するものとの2種類があり、どちらの制御を行うかは、更新日時が現在日時と同日であるか、翌日以降であるかによる。
【0125】
具体的には、セーブデータDcのファイル18は、更新日時が“2009_8_20_13:00”であり、これは、現在日時“2009_8_20_12:05”に対して未来かつ同日であるため、ファイル18に含まれるセーブデータは有効なままで、現在日時に変更されている。一方、セーブデータDbのファイル19は、更新日時が“2009_8_21_11:00”であり、これは、現在日時“2009_8_20_12:00”に対して未来かつ翌日以降であるため、ファイル19に含まれるセーブデータ全体が無効化されている。
【0126】
このようなファイル制御処理を先行して行うことで、もし破損したファイルがあっても(ファイル内のデータに異常があっても)、これと同じ正常なファイルがあれば(別のファイル内に同じデータで正常なものがあれば)、後段の統合処理および上書き処理を通じて、破損ファイル(異常データ)を正常ファイル(正常データ)で修復することが可能となる。加えて、ゲーム装置10では、RTC60の調整が可能なので、RTC60に基づく現在日時が過去に遡る方向に調整されると、ファイル更新日時が現在日時に対して未来となって統合処理に支障が出る可能性があるが、未来を示すファイル更新日時は、現在日時と同日であれば現在日時に変更されるので、統合処理に支障が出る可能性を低減することができる。
【0127】
次に、顔トレーニングを行う場合のCPU42の動作を、図13−図18のフローチャートにより説明する。これらのフローチャートは、図7に示したアプリA用のプログラムPaと対応している。なお、アプリB,C用のプログラムPb,Pcは、図13−図18と同様のフローチャートで記述されるので、図示および説明を省略する。
【0128】
現時点で、プログラム等のダウンロードは完了しており、保存用データメモリ52のプログラム領域70にはアプリA−C用のプログラムPa−Pcが、データ領域72には項目テーブルCT,統合ルールテーブルRTおよびファイル管理テーブルMTが、それぞれ格納されている。また、アプリA−Cは、いずれも過去に実行されたことがあり、データ領域72にはアプリA−C用のセーブデータも格納されている(図7(A)参照)。
【0129】
まず、図13および図14を参照して、図6(A)のようなアプリ選択画面を通じてアプリAが選択されると、CPU42は、アプリA用のプログラムPaを起動する。この起動処理が完了すると、ステップS3に進んで、アプリA−C用のセーブデータDa−Dcをメインメモリ48の作業領域(図示せず)に読み込む。そして、セーブデータDa−Dcに含まれる各ファイルをステップS5で制御した後、セーブデータDa−Dcを項目毎に統合する。ステップS5のファイル制御処理およびステップS7の統合処理の詳細については、後述する。
【0130】
統合処理の結果つまり統合セーブデータDintは、メインメモリ48のデータ領域74に格納される。次のステップS9では、保存用データメモリ52のデータ領域72に格納されているアプリA−C用のセーブデータDa−Dcを、この統合セーブデータDintで上書きする。なお、ステップS9のセーブデータ上書き処理の詳細については、後述する。更新後、ステップS11でアプリ処理が開始される。なお、アプリ処理は、たとえば図6(A)−図6(D)により説明した顔トレーニングに対応する処理であり、図示しない別のフローに従って実行される。また、アプリ処理は、操作部24を介した終了操作等に応じて、あるいは所定の終了条件が満たされたときに、終了される。
【0131】
次に、ステップS13で、項目テーブルCT(図9参照)に記述されたいずれかの項目に該当する動作(項目該当動作)がアプリ処理を通じて行われたか否かを判別し、ここでYESであればステップS17−S19を経てステップS21に進む。ステップS13でNOであれば、ステップS15に移り、操作部24やタッチパネル28等により保存指示操作が行われたか否かを判別し、ここでYESであればステップS19を経てステップS21に進む。ステップS15でNOであれば、直ちにステップS21に進む。
【0132】
ステップS17では、項目該当動作が行われたのに応じて、データ領域74に格納されている統合セーブデータDintを更新する。続くステップS19では、データ領域72に格納されているアプリA−C用のセーブデータDa−Dcをこの統合セーブデータDintに基づいて更新する。なお、ステップS19のセーブデータ上書き処理は、ステップS9のそれと同様の処理であり、後述する。そしてステップS21で、アプリ処理が終了されたか否かを判別し、NOであればステップS13に戻って同様の処理を繰り返す。ステップS21でYESであれば、このフローは終了となる。
【0133】
上記ステップS5のファイル制御処理は、図15のサブルーチンに従って実行される。CPU42は、最初のステップS31で、セーブデータDa−Dcに含まれる各ファイル(図8参照)の状態を検出し、結果(正常/破損/無)をファイル管理テーブルMTに登録する。続くステップS33では、さらに、各ファイルの更新日時を検出し、結果(ファイル更新日時)をファイル管理テーブルMTに登録する。なお、ファイルの状態や更新日時の具体的な検出方法については、前述したので省略する。この時点で、ファイル管理テーブルMTは、図12(A)のようになる。
【0134】
その後、ステップS35に進んで、「破損」ファイルがあるか否かをファイル管理テーブルMTに基づいて判別し、NOならステップS43に進む。ステップS35でYESであれば、ステップS37に進んで、この「破損」ファイルに対応する「正常」ファイルがあるか否かをファイル管理テーブルMTに基づいてさらに判別する。そして、ステップS37でYESであれば、ステップS39でこの「破損」ファイルの状態を「無」に変更した後、ステップS43に進む。一方、ステップS37でNOであれば、ステップS41で、この「破損」ファイルを削除すると共に、その状態を「無」に変更する。そして、ステップS43に進む。
【0135】
ステップS43では、「未来」ファイルがあるか否かをファイル管理テーブルMTに基づいて判別し、NOならステップS49に進む。ステップS43でYESであれば、ステップS45に進んで、この「未来」ファイルの更新日時が現在日時(これは、ゲーム装置10のローカルな現在日時であって、CRT60に基づく)に対して翌日以降であるか否かをファイル管理テーブルMTに基づいてさらに判別する。そして、ステップS45でYESであれば、ステップS47でこの「未来」ファイルを無効化した後、メインルーチン(図13−図14参照)に復帰する。一方、ステップS45でNOであれば、ステップS49で、この「未来」ファイルの更新日時を現在日時に変更した後、メインルーチンに復帰する。この時点で、ファイル管理テーブルMTは、図12(B)のようになる。
【0136】
こうして、セーブデータの統合に先立って、ファイル管理テーブルMT上で、各ファイルの状態および更新日時が制御される。
【0137】
上記ステップS7のセーブデータ統合処理は、図16−図17のサブルーチンに従って実行される。CPU42は、最初のステップS61で、項目(ここでは図9に示す41個の項目)を識別する変数iに初期値“1”をセットする。そして、ステップS63で項目iを選択し、ステップS65では、項目iが属するファイルFj(jは1−19のいずれか:図8参照)を特定して、このファイルFjが更新日時付きか否かを判別する。ここでNOであれば、ステップS79に移る(ステップS79およびこれに続くS81−S89については後述)。
【0138】
ステップS65でYESであれば、ステップS67に進んで、変数jで識別される3個のファイル、つまりアプリA−Cに対応するファイルFja−Fjcのうち、更新日時が最も新しいファイルを特定する。そして、項目iのセーブデータとして、この最新ファイルのセーブデータ(最新データ)を採用する(ルールR1またはR2:図10参照)。さらにステップS71で、項目iの実体がフラグか否かを判別し、NOであればこの項目の処理を終えてステップS95に進む。すなわち、実体がフラグ以外の場合、統合では、単に最新データが採用される(ルールR2:具体例は図11の項目41を参照)。
【0139】
一方、ステップS73でYESであれば、最新ファイルと同じ日付のファイル(同日付ファイル)がファイルFja−Fjcの中にあるか否かをステップS75でさらに判別し、ここでNOであればステップS95に進む。ステップS73でYESであれば、同日付ファイルのセーブデータ(同日データ)でフラグが立っているか否かをさらに判別し、ここでNOであればステップS95に進む。ステップS75でYESであれば、ステップS77でフラグを立てた後、ステップS95に進む。すなわち、実体がフラグの場合、統合では、最新データが採用されるが、同日データで立っているフラグは立てられる(ルールR1:具体例は図11の項目40を参照)。
【0140】
一方、ファイルFjが更新日時付でない場合(ステップS65:NO)、ステップS79で、項目iの実体は写真管理情報か否かを判別し、ここでNOであればステップS81で項目iの実体はスコアか否かをさらに判別し、ここでもNOであれば項目iの実体はフラグとみなし、ステップS83に移る。ステップS83では、ファイルFja−Fjcのどれかのセーブデータでフラグが立っているか否かを判別し、ここでNOであればステップS95に進む。ステップS83でYESであれば、ステップS85でフラグを立てた後、ステップS95に進む。すなわち、実体がフラグの場合、統合では、どれかでフラグがたっていればフラグを立てる(ルールR3:具体例は図11の項目1,2を参照)。
【0141】
ステップS79でYESあれば、ステップS87に進んで、項目iのセーブデータDa−Dcの中に含まれる写真管理情報を“OR”つまり論理和で採用する(ルールR5)。したがって、図11の項目39のように、セーブデータDaに写真管理情報(撮影番号)#1−#12が、セーブデータDbに撮影番号#1−#13が、そしてセーブデータDcに撮影番号#2−#13が含まれているとすると、撮影番号#1−#13が採用される。ただし、撮影番号#2で識別される3枚の写真のうち1枚が他と違っていたとすると、撮影番号#2は採用されず(ルールR5の但し書き)、3枚の写真に撮影番号を付け直す処理が行われる。その後、ステップS95に進む。
【0142】
ステップ81でYESであれば、ステップS89に進んで、項目iのセーブデータDa−Dcの中に含まれるスコアのうち最もよいスコアを採用する(ルールR4:具体例は図11の項目32を参照)。その後、ステップS95に進む。
【0143】
ステップS95では、変数iをインクリメントする。そしてステップS97で、変数iが最大値imax(ここでは41)を超えたか否かを判別し、ここでNOであれば、ステップS63に戻って同様の処理を繰り返す。ステップS97でYESであれば、メインルーチンに復帰する。
【0144】
なお、図16−図17のフローでは、各項目の統合に適用するルールは、統合ルールテーブルRTに基づいて(すなわちファイルの属性および項目の実体を判別して)決定されたが、項目テーブルCT(図9参照)に各項目の統合ルールを予め記述しておく場合には、項目テーブルCTから読み取ればよい。
【0145】
上記ステップS9,S19のセーブデータ上書き処理は、図18のサブルーチンに従って実行される。CPU42は、最初のステップS101で、ファイル(ここでは図8に示す19個のファイル)を識別する変数jに初期値“1”をセットする。そして、ステップS103で、統合セーブデータDintのファイルFjintをメインメモリ48の作業領域(図示せず)に取り込む。そして、ファイルFjintに属する項目の少なくとも1つに変化があったか否かをステップS105で判別し、ここでNOであればステップS109に進む。ステップS105でYESであれば、ステップS107でセーブデータDa−DcのファイルFja−FjcをファイルFjintにより上書きした後、ステップS109に進む。
【0146】
ステップS109では、変数jをインクリメントする。そしてステップS111で、変数jが最大値jmax(ここでは19)を超えたか否かを判別し、ここでNOであれば、ステップS103に戻って同様の処理を繰り返す。ステップS111でYESであれば、メインルーチンに復帰する。
【0147】
このように、更新にあたって、各ファイル1−19が変更のあった項目を含むか否かを判別して、判別結果がYESであるファイルだけを上書きするので、保存用データメモリ52として特にNAND型フラッシュメモリを用いて、効率的な上書きが行える。
【0148】
以上から明らかなように、この実施例のゲーム装置10では、アプリA−C(第1−第3アプリ)によって共用されるセーブデータが、保存用データメモリ52(記憶手段)に、アプリA−Cに対応させてセーブデータDa−Dc(第1−第3セーブデータ)として記憶される。CPU42(コンピュータ)は、たとえばアプリAが起動されると、保存用データメモリ52に記憶されているアプリA−C用のセーブデータDa−Dcをメインメモリ48内で統合し(S7)、この統合データDintをアプリAの実行に従って更新する(S17)一方、自動保存指示やユーザによる保存指示に応じて、保存用データメモリ52に記憶されているセーブデータDa−Dcを更新された統合データDintで上書きする(S19)。これにより、アプリA−C間で共用されるセーブデータを、煩雑な操作なしで最新状態に保つことができる。
【0149】
また、CPU42は、上記の統合処理(S7)をアプリ起動時に実行し、そしてアプリ処理が実行開始される前に、セーブデータDa−Dcを統合データDintで上書きする(S9)。こうして、アプリ起動時に、セーブデータDa−Dcを統合して、統合結果を速やかにセーブデータDa−Dcに反映させることで、最新のセーブデータでアプリ処理を実行することができる。
【0150】
また、CPU42は、統合処理(S7)に先行して制御処理(S5)を実行することで、統合処理を通じてセーブデータの異常を修復する。これにより、たとえばセーブデータDaに異常があっても、セーブデータDbまたはDcが正常であれば、その異常は、統合処理および更新処理を通じて修復することができる。
【0151】
なお、この実施例では、保存用データメモリ52内にアプリA−C用のプログラムPa−PcおよびセーブデータDa−Dcが記憶されているが、プログラムPa−Pcのいずれか1つまたは2つが現時点で記憶されていなくても、セーブデータDa−Dcは記憶されていてよく、この場合、統合の効果を各セーブデータDa−Dcに及ぼすことができる。たとえば、セーブデータDaおよびDbの間で統合を行い、結果をセーブデータDa−Dcに反映させる(セーブデータDaおよびDbに基づく統合データDintでセーブデータDa−Dcを上書きする)ことができる。
【0152】
また、この実施例では、項目をグループ分けして1グループに1ファイルを割り当てたが、グループ分けはせずに、1項目に1ファイルを割り当ててもよく、単一のファイルに全項目を含めることも可能である。ただし、グループ分けをする方が、効率的な上書きが行える。
【0153】
そして、この実施例では、上書きをファイル単位で行ったが、項目単位で上書きを行うような実施例も可能である。ただし、保存用データメモリとして、NOR型フラッシュメモリのような、より細かな上書き制御が可能なメモリを用いる必要が生じる。
【0154】
また、この実施例では、保存用データメモリ52に記憶されているアプリA−C用のセーブデータDa−Dcを統合し、統合して得られた統合データDintを用いてアプリA−Cのいずれかを実行して、アプリA−Cのいずれかの実行に応じて更新された統合データDintをセーブデータDa−Dcに上書きするようにしているが、これに限られず、保存用データメモリ52に記憶されている所定のデータを用いてアプリA−Cのいずれかを実行して、アプリA−Cのいずれかの実行に応じて更新された所定のデータをセーブデータDa−Dcに上書きするようにしてもよい。この場合、上記所定のデータは、統合データDintと同じデータ構造を有する。
【0155】
以上では、ゲーム装置10について説明したが、この発明は、アプリA,B,C…によってその少なくとも一部が共用されるデータ(セーブデータ,履歴データ,参照データ,学習データなど)をアプリA,B,C,…に対応させてデータDa,Db,Dc,…として記憶する記憶手段(フラッシュメモリなどの保存用データメモリ,ハードディスク,書き換え可能な光ディスクなど)に接続されたコンピュータ(CPU)を備える、情報処理装置(PC,PDA,携帯電話端末など)に適用できる。
【符号の説明】
【0156】
10 …ゲーム装置
42 …CPU
48 …メインメモリ
52 …保存用データメモリ
Pa−Pc …アプリA−C用プログラム
Da−Dc …アプリA−C用セーブデータ
Dint …統合セーブデータ
R1−R5 …統合ルール
【特許請求の範囲】
【請求項1】
第1アプリケーションおよび第2アプリケーションによってその少なくとも一部が共用されるデータを、当該第1アプリケーションに対応させて第1データとして記憶すると共に、当該第2アプリケーションに対応させて第2データとして記憶する、記憶手段に接続されたコンピュータを、
所定のデータで前記第1アプリケーションを実行するアプリケーション実行手段、
前記アプリケーション実行手段による前記第1アプリケーションの実行にしたがって前記所定のデータを更新する更新手段、および
前記記憶手段に記憶されている前記第1データおよび前記第2データを前記更新手段によって更新された所定のデータで上書きする第1上書き手段として機能させる、情報処理プログラム。
【請求項2】
前記記憶手段に記憶されている前記第1データおよび前記第2データを統合する統合手段として前記コンピュータをさらに機能させ、
前記アプリケーション実行手段は、前記統合手段によって統合された統合データで前記第1アプリケーションを実行する、請求項1記載の情報処理プログラム。
【請求項3】
前記第1上書き手段は、所定の指示に応じて、前記記憶手段に記憶されている前記第1データおよび前記第2データを前記更新手段によって更新された所定のデータで上書きする、請求項1に記載の情報処理プログラム。
【請求項4】
前記第1アプリケーションを起動させる起動手段として前記コンピュータをさらに機能させ、
前記統合手段は、前記起動手段によって前記第1アプリケーションが起動されたときに統合を行う、請求項2記載の情報処理プログラム。
【請求項5】
前記記憶手段に記憶されている前記第1データおよび前記第2データを、前記第1アプリケーションが起動されたときに前記統合手段によって統合された統合データで、前記第1アプリケーションの実行が開始される前に上書きする、第2上書き手段として前記コンピュータをさらに機能させる、請求項4記載の情報処理プログラム。
【請求項6】
前記第1および/または第2上書き手段は、前記記憶手段に記憶されている前記第1データおよび/または前記第2データのうち、前記統合手段によって統合された統合データと異なる部分を上書きする、請求項5記載の情報処理プログラム。
【請求項7】
前記データの共用部分は複数の項目に区分されており、前記統合手段は前記第1データおよび前記第2データを項目毎に統合する、請求項2ないし6のいずれかに記載の情報処理プログラム。
【請求項8】
前記複数の項目の各々は、それぞれに1つのファイルが割り当てられた複数のグループのいずれか1つに属しており、
前記第1および/または第2上書き手段は、前記第1データおよび前記第2データをファイル単位で上書きする、請求項7記載の情報処理プログラム。
【請求項9】
前記第1および/または第2上書き手段は、前記複数のグループ毎にそこに含まれる全ての項目について変化があるか否かを判定し、判定結果が肯定である項目を少なくとも1つ含むグループに対応するファイルについて上書きを行う、請求項8記載の情報処理プログラム。
【請求項10】
前記統合手段は、各ファイルの属性および/または各項目の実体に応じたルールに従って統合を行う、請求項8または9記載の情報処理プログラム。
【請求項11】
前記属性は、各ファイルが更新日時データを含むか否かに関し、
前記ルールは、各ファイルが更新日時データを含んでいれば最新ファイルのデータを採用するという最新採用ルールを含む、請求項10記載の情報処理プログラム。
【請求項12】
前記ルールは、項目の実体がアプリケーションの進行状況に関連するフラグである場合にはどれかのデータでフラグが立っていればフラグを立てるというフラグルールを含む、請求項10記載の情報処理プログラム。
【請求項13】
前記ルールは、項目の実体が値である場合には最も良い値を採用するという最良値ルールを含む、請求項10記載の情報処理プログラム。
【請求項14】
前記ルールは、項目の実体がデータの管理情報である場合には論理和により採用するという論理和ルールを含む、請求項10記載の情報処理プログラム。
【請求項15】
前記論理和ルールには、同じ管理情報の異なるデータがあればどれも採用しないという条件がつく、請求項14記載の情報処理プログラム。
【請求項16】
前記所定の指示は、自動保存指示を含む、請求項3記載の情報処理プログラム。
【請求項17】
前記データは、前記第1アプリケーションおよび前記第2アプリケーションの各アプリケーションの実行により変化する当該各アプリケーションに関連するパラメータを示すデータである、請求項1記載の情報処理プログラム。
【請求項18】
前記記憶手段に記憶されている前記第1データに異常がある場合に、前記記憶手段に記憶されている前記第2データを利用して当該異常を修復するように前記統合手段を制御する、制御手段として前記コンピュータをさらに機能させる、請求項2記載の情報処理プログラム。
【請求項19】
前記制御手段は、前記第1データに対応する更新日時データが現在日時に対して未来かつ同日を示す場合には当該現在日時を示すように当該更新日時データを変更する一方、未来かつ翌日以降を示す場合には当該第1データを無効化する、日時制御手段を含む、請求項18記載の情報処理プログラム。
【請求項20】
第1アプリケーションおよび第2アプリケーションによってその少なくとも一部が共用されるデータを、当該第1アプリケーションに対応させて第1データとして記憶すると共に、当該第2アプリケーションに対応させて第2データとして記憶する、記憶手段、
所定のデータで前記第1アプリケーションを実行するアプリケーション実行手段、
前記アプリケーション実行手段による前記第1アプリケーションの実行にしたがって前記所定のデータを更新する更新手段、および
前記記憶手段に記憶されている前記第1データおよび前記第2データを前記更新手段によって更新された所定のデータで上書きする第1上書き手段を備える、情報処理装置。
【請求項1】
第1アプリケーションおよび第2アプリケーションによってその少なくとも一部が共用されるデータを、当該第1アプリケーションに対応させて第1データとして記憶すると共に、当該第2アプリケーションに対応させて第2データとして記憶する、記憶手段に接続されたコンピュータを、
所定のデータで前記第1アプリケーションを実行するアプリケーション実行手段、
前記アプリケーション実行手段による前記第1アプリケーションの実行にしたがって前記所定のデータを更新する更新手段、および
前記記憶手段に記憶されている前記第1データおよび前記第2データを前記更新手段によって更新された所定のデータで上書きする第1上書き手段として機能させる、情報処理プログラム。
【請求項2】
前記記憶手段に記憶されている前記第1データおよび前記第2データを統合する統合手段として前記コンピュータをさらに機能させ、
前記アプリケーション実行手段は、前記統合手段によって統合された統合データで前記第1アプリケーションを実行する、請求項1記載の情報処理プログラム。
【請求項3】
前記第1上書き手段は、所定の指示に応じて、前記記憶手段に記憶されている前記第1データおよび前記第2データを前記更新手段によって更新された所定のデータで上書きする、請求項1に記載の情報処理プログラム。
【請求項4】
前記第1アプリケーションを起動させる起動手段として前記コンピュータをさらに機能させ、
前記統合手段は、前記起動手段によって前記第1アプリケーションが起動されたときに統合を行う、請求項2記載の情報処理プログラム。
【請求項5】
前記記憶手段に記憶されている前記第1データおよび前記第2データを、前記第1アプリケーションが起動されたときに前記統合手段によって統合された統合データで、前記第1アプリケーションの実行が開始される前に上書きする、第2上書き手段として前記コンピュータをさらに機能させる、請求項4記載の情報処理プログラム。
【請求項6】
前記第1および/または第2上書き手段は、前記記憶手段に記憶されている前記第1データおよび/または前記第2データのうち、前記統合手段によって統合された統合データと異なる部分を上書きする、請求項5記載の情報処理プログラム。
【請求項7】
前記データの共用部分は複数の項目に区分されており、前記統合手段は前記第1データおよび前記第2データを項目毎に統合する、請求項2ないし6のいずれかに記載の情報処理プログラム。
【請求項8】
前記複数の項目の各々は、それぞれに1つのファイルが割り当てられた複数のグループのいずれか1つに属しており、
前記第1および/または第2上書き手段は、前記第1データおよび前記第2データをファイル単位で上書きする、請求項7記載の情報処理プログラム。
【請求項9】
前記第1および/または第2上書き手段は、前記複数のグループ毎にそこに含まれる全ての項目について変化があるか否かを判定し、判定結果が肯定である項目を少なくとも1つ含むグループに対応するファイルについて上書きを行う、請求項8記載の情報処理プログラム。
【請求項10】
前記統合手段は、各ファイルの属性および/または各項目の実体に応じたルールに従って統合を行う、請求項8または9記載の情報処理プログラム。
【請求項11】
前記属性は、各ファイルが更新日時データを含むか否かに関し、
前記ルールは、各ファイルが更新日時データを含んでいれば最新ファイルのデータを採用するという最新採用ルールを含む、請求項10記載の情報処理プログラム。
【請求項12】
前記ルールは、項目の実体がアプリケーションの進行状況に関連するフラグである場合にはどれかのデータでフラグが立っていればフラグを立てるというフラグルールを含む、請求項10記載の情報処理プログラム。
【請求項13】
前記ルールは、項目の実体が値である場合には最も良い値を採用するという最良値ルールを含む、請求項10記載の情報処理プログラム。
【請求項14】
前記ルールは、項目の実体がデータの管理情報である場合には論理和により採用するという論理和ルールを含む、請求項10記載の情報処理プログラム。
【請求項15】
前記論理和ルールには、同じ管理情報の異なるデータがあればどれも採用しないという条件がつく、請求項14記載の情報処理プログラム。
【請求項16】
前記所定の指示は、自動保存指示を含む、請求項3記載の情報処理プログラム。
【請求項17】
前記データは、前記第1アプリケーションおよび前記第2アプリケーションの各アプリケーションの実行により変化する当該各アプリケーションに関連するパラメータを示すデータである、請求項1記載の情報処理プログラム。
【請求項18】
前記記憶手段に記憶されている前記第1データに異常がある場合に、前記記憶手段に記憶されている前記第2データを利用して当該異常を修復するように前記統合手段を制御する、制御手段として前記コンピュータをさらに機能させる、請求項2記載の情報処理プログラム。
【請求項19】
前記制御手段は、前記第1データに対応する更新日時データが現在日時に対して未来かつ同日を示す場合には当該現在日時を示すように当該更新日時データを変更する一方、未来かつ翌日以降を示す場合には当該第1データを無効化する、日時制御手段を含む、請求項18記載の情報処理プログラム。
【請求項20】
第1アプリケーションおよび第2アプリケーションによってその少なくとも一部が共用されるデータを、当該第1アプリケーションに対応させて第1データとして記憶すると共に、当該第2アプリケーションに対応させて第2データとして記憶する、記憶手段、
所定のデータで前記第1アプリケーションを実行するアプリケーション実行手段、
前記アプリケーション実行手段による前記第1アプリケーションの実行にしたがって前記所定のデータを更新する更新手段、および
前記記憶手段に記憶されている前記第1データおよび前記第2データを前記更新手段によって更新された所定のデータで上書きする第1上書き手段を備える、情報処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2011−59761(P2011−59761A)
【公開日】平成23年3月24日(2011.3.24)
【国際特許分類】
【出願番号】特願2009−205656(P2009−205656)
【出願日】平成21年9月7日(2009.9.7)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成23年3月24日(2011.3.24)
【国際特許分類】
【出願日】平成21年9月7日(2009.9.7)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]