表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法
【課題】所望の表示オブジェクトをより短い時間で探すことのできる表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法を提供する。
【解決手段】表示装置に複数のオブジェクトからなるオブジェクト群を表示するときに、複数のオブジェクトを第1の方向に並べて配置するときの、各オブジェクトの当該第1の方向についての配置位置を設定し、第1の方向についての配置位置が設定されたオブジェクトそれぞれにおける、第1の方向と異なる第2の方向についての配置位置を、他の少なくとも1つのオブジェクトに対して異なる位置に、所定の法則に従って設定する。そして、それぞれ設定した第1の方向および第2の方向についての配置位置に基づいて、複数のオブジェクトをそれぞれ配置して表示装置に表示する。
【解決手段】表示装置に複数のオブジェクトからなるオブジェクト群を表示するときに、複数のオブジェクトを第1の方向に並べて配置するときの、各オブジェクトの当該第1の方向についての配置位置を設定し、第1の方向についての配置位置が設定されたオブジェクトそれぞれにおける、第1の方向と異なる第2の方向についての配置位置を、他の少なくとも1つのオブジェクトに対して異なる位置に、所定の法則に従って設定する。そして、それぞれ設定した第1の方向および第2の方向についての配置位置に基づいて、複数のオブジェクトをそれぞれ配置して表示装置に表示する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法に関し、より具体的には、オブジェクトの配置表示を行う表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法に関する。
【背景技術】
【0002】
従来、写真画像のサムネイルなどのオブジェクトを複数表示する装置が提案されている(例えば、特許文献1参照)。上記特許文献1で開示された画像処理装置では、複数の画像データで示される画像を横一列に配置し、ユーザにスクロールさせることにより、任意の画像をユーザに閲覧させる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−50901号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1で開示された画像処理装置は、複数のオブジェクトを横一列に配置するだけであり、1度見つけたオブジェクトの指標を視覚的に認識できない。従って、上記特許文献1で開示された画像処理装置では、1度見つけたオブジェクトを探すまでにより長い時間が必要となる。
【0005】
それ故に、本発明の目的は、所望のオブジェクトをより短い時間で探すことのできる表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は、以下に述べるような特徴を有している。
【0007】
本発明の表示制御プログラムは、表示装置に複数のオブジェクトからなるオブジェクト群を表示する表示制御装置のコンピュータで実行される。表示制御プログラムは、第1方向位置設定手段と、第2方向位置設定手段と、表示制御手段として、コンピュータを機能させる。第1方向位置設定手段は、複数のオブジェクトを第1の方向に並べて配置するときの、各オブジェクトの当該第1の方向についての配置位置を設定する。第2方向位置設定手段は、第1方向位置設定手段によって第1の方向についての配置位置が設定されたオブジェクトそれぞれにおける、第1の方向と異なる第2の方向についての配置位置を、他の少なくとも1つのオブジェクトに対して異なる位置に、所定の法則に従って設定する。表示制御手段は、第1の方向および第2の方向についての配置位置に基づいて、複数のオブジェクトをそれぞれ配置して表示装置に表示する。
【0008】
上記によれば、他の少なくとも1つのオブジェクトに対して異なる位置に設定した第2の配置位置でサムネイルをユーザに視認させるので、ユーザは、当該配置位置を指標として所望のオブジェクトをより短い時間で探すことができる。
【0009】
また、第2方向位置設定手段は、法則に従い、オブジェクトそれぞれにおける第2の方向への配置位置を、第1方向位置設定手段によって各オブジェクトを第1の方向へ配置するときに並べる順番で連続的に変化するように設定してもよい。
【0010】
上記によれば、連続的に変化するように各オブジェクトの第2の方向への配置位置を設定するので、ユーザは、それぞれのオブジェクトの第2の方向への配置位置を指標としてそれぞれのオブジェクトのおおよその位置を把握できる。
【0011】
また、第2方向位置設定手段は、法則に従い、オブジェクトそれぞれにおける第2の方向への配置位置を第1方向位置設定手段によって各オブジェクトを第1の方向へ配置するときに並べる順番で連続的に変化しながらピークが生じるように設定してもよい。
【0012】
上記によれば、ピークを生じる形状に沿ってオブジェクトが配置されるので、ユーザは、当該ピーク上、或いは当該ピーク付近に配置されたオブジェクトを指標として、目的のオブジェクトをより短い時間で探すことができる。
【0013】
また、第2方向位置設定手段は、法則に従い、オブジェクトそれぞれにおける第2の方向への配置位置を、第1方向位置設定手段によって各オブジェクトを第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じるように設定してもよい。
【0014】
上記によれば、周期的にピークを生じる形状に沿ってオブジェクトが配置されるので、ユーザは、周期的に現れる複数のピークを指標として、目的のオブジェクトをより短い時間で探すことができる。
【0015】
また、第2方向位置設定手段は、法則に従い、第1方向位置設定手段によって各オブジェクトを第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じ、且つ第2の方向への配置位置の基準からの変位量を繰り返し増減するように、オブジェクトそれぞれにおける当該第2の方向への配置位置を設定してもよい。
【0016】
上記によれば、第2の方向への配置位置の基準からの変位量を繰り返し増減させるので、斜めの直線上に多数のオブジェクトを配置したときのように表示画面からはみでて表示されることを防げる。また、オブジェクトが表示画面からはみ出て表示されない程度に、増減量を最適な大きさにすることもでき、ユーザは、オブジェクトの第2の方向における配置位置を認識しやすくなる。
【0017】
また、表示制御プログラムは、表示装置に表示された各オブジェクトを第1の方向に沿ってスクロールさせるスクロール手段としてコンピュータをさらに機能させてもよい。
【0018】
上記によれば、表示装置の表示領域にスクロールしているオブジェクトが現れるときの第2の方向における位置が互いに異なるので、オブジェクトがスクロールしていることをユーザに視覚的に認識させられる。また、上記によれば、ユーザは、表示装置の表示領域にスクロールしているオブジェクトが現れるときのそれぞれの第2の方向における位置の変化の速度でスクロール速度を認識することができる。
【0019】
また、第2方向位置設定手段は、当該第1の方向へ配置された各オブジェクトについて、両端のオブジェクトの第2の方向についての配置位置が所定の同じ位置になるように、各オブジェクトの第2の方向についての配置位置を再設定してもよい。
【0020】
上記によれば、スクロールしているオブジェクトの第2の方向における配置位置が、スクロールに従って、当該第2の方向における所定の同じ位置になるにつれて、スクロールしているオブジェクトが両端側のいずれかに配置されているオブジェクトであることをユーザに視覚的に認識させられる。
【0021】
また、第2方向位置設定手段は、法則に従い、オブジェクトそれぞれにおける第2の方向についての配置位置を、第1方向位置設定手段によって各オブジェクトを第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じ、当該ピークの第1の方向についての位置が、両端のオブジェクトの第1の方向についての配置位置に近くなるにつれて、当該ピークの第2の方向についての位置が、両端のオブジェクトの第2の方向についての配置位置に近くなるように設定してもよい。
【0022】
上記によれば、スクロールしているオブジェクトの第2の方向における配置位置が、スクロールに従って、両端のオブジェクトの当該第2の方向における位置に近くなるにつれて、スクロールしているオブジェクトが両端側のいずれかに配置されているオブジェクトであることをユーザに視覚的に認識させられる。
【0023】
また、第2方向位置設定手段は、オブジェクトそれぞれにおける第1の方向への配置位置をパラメータとする、周期的に増減する関数を法則とし、当該法則に従って、オブジェクトそれぞれにおける第2の方向についての配置位置を、第1方向位置設定手段によって各オブジェクトを第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じるように設定してもよい。
【0024】
上記によれば、周知の関数を用いて周期的にピークを生じる形状に沿ってオブジェクトを配置でき、ユーザは、周知の関数に基づいて周期的に現れる複数のピークを指標として、目的のオブジェクトをより短い時間で探すことができる。
【0025】
また、第2方向位置設定手段は、関数として正弦関数または余弦関数を用いてもよい。
【0026】
上記によれば、正弦関数または余弦関数を模した形状に沿ってオブジェクトが配置されるので、ユーザは、親しみのある形状に基づいて、指標となるピークをより容易に認識でき、目的のオブジェクトをより短い時間で探すことができる。
【0027】
また、本発明は、上記各手段を備える表示制御装置および表示制御システムや上記各手段で行われる動作を含む表示制御方法の形態で実施されてもよい。
【発明の効果】
【0028】
本発明によれば、所望のオブジェクトをより短い時間で探すことのできる表示を実現できる。
【図面の簡単な説明】
【0029】
【図1】開いた状態におけるゲーム装置10の一例を示す正面図
【図2】開いた状態におけるゲーム装置10の一例を示す側面図
【図3】閉じた状態におけるゲーム装置10の一例を示す正面図
【図4】ゲーム装置10の内部構成の一例を示すブロック図
【図5】図1の上側LCD22および下側LCD12に表示されたアルバム作成画面の一例を示す図
【図6】本発明で用いられるアルバムデータの一例を示す図
【図7】アルバム表示処理における画面の一例を示す図
【図8】アルバム表示処理における画面の一例を示す図
【図9】サムネイルの配置例を示す図
【図10A】サムネイルの配置を決定する際に用いられる基本位置の一例を示す図
【図10B】サムネイルの配置を決定する際に用いられるレートの一例を示す図
【図10C】基本位置とレートとを用いて決定されたサムネイルの配置例を示す図
【図11】サムネイルの初期位置の一例を示す図
【図12】図1の下側LCD12に表示されたアルバム表示処理における初期画面の一例を示す図
【図13】アルバム表示処理においてタッチパネルに対してスライド操作がされるときの一例を示す図
【図14】アルバム表示処理においてタッチパネルに対するスライド操作がされたときの追従スクロールの一例を示す図
【図15】等速スクロールをするときのスクロール速度とスクロール時間との関係例を示す図
【図16】スクロールを停止させる処理に用いられる停止距離の一例を示す図
【図17】停止距離を用いてスクロールを停止させた後の表示画面例を示す図
【図18】図1のゲーム装置10で実行される表示制御プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図
【図19】図1のゲーム装置10で実行される表示制御プログラムを実行することによってゲーム装置10が表示制御する動作の一例を示すフローチャート
【図20】図19のステップ103で行われるアルバム作成処理の詳細な動作の一例を示すサブルーチン
【図21】図19のステップ103で行われるアルバム作成処理の詳細な動作の一例を示すサブルーチン
【図22】図19のステップ105のアルバム表示処理の詳細な動作の一例を示すサブルーチン
【図23】図22のステップ302で行われるサムネイル配置処理の詳細な動作の一例を示すサブルーチン
【図24】図22のステップ302で行われるサムネイル配置処理の詳細な動作の一例を示すサブルーチン
【図25】図22のステップ307で行われるスクロール表示処理の詳細な動作の一例を示すサブルーチン
【図26】図22のステップ307で行われるスクロール表示処理の詳細な動作の一例を示すサブルーチン
【図27】図22のステップ307で行われるスクロール表示処理の詳細な動作の一例を示すサブルーチン
【図28】図22のステップ307で行われるスクロール表示処理の詳細な動作の一例を示すサブルーチン
【図29】サムネイルの他の配置例を示す図
【図30】等速スクロールをするときのスクロール速度とスクロール距離との関係例を示す図
【図31】等速スクロール期間Ttを計算する際に用いる計算スクロール距離Zkおよび総スクロール距離Skの一例を示す図
【図32】図22のステップ307で行われるスクロール表示処理の詳細な動作の変形例を示すサブルーチン
【図33】等速スクロール期間Ttを計算する際に用いられる距離の一例を示す図
【図34】下側LCD12の表示領域において表示オブジェクトをスクロールさせるときの位置関係の一例を示す図
【図35】下側LCD12の表示領域において表示オブジェクトをスクロールさせるときの位置関係の一例を示す図
【発明を実施するための形態】
【0030】
(第1の実施形態)
図面を参照して、本発明の第1の実施形態に係る表示制御プログラムを実行する表示制御装置について説明する。本発明の表示制御プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、表示制御装置の一例として携帯型のゲーム装置10を用い、ゲーム装置10で実行される表示制御プログラムを用いて説明する。なお、図1〜図3は、ゲーム装置10の外観の一例を示す平面図である。ゲーム装置10は、一例として携帯型のゲーム装置であり、図1〜図3に示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10の一例を示す正面図である。図2は、開状態におけるゲーム装置10の一例を示す右側面図である。図3Bは、閉じた状態(閉状態)におけるゲーム装置10の一例を示す正面図である。ゲーム装置10は、撮像部を内蔵しており、当該撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能である。
【0031】
図1〜図3において、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回動可能に連結されている。通常、ユーザは、開状態でゲーム装置10を使用する。そして、ユーザは、ゲーム装置10を使用しない場合には閉状態としてゲーム装置10を保管する。また、ゲーム装置10は、上記閉状態および開状態のみでなく、下側ハウジング11と上側ハウジング21とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング21を下側ハウジング11に対して任意の角度で静止させることができる。
【0032】
図1および図2に示されるように、下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面(主面)11Bに対して垂直な方向に突起する突起部11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部21Aが設けられる。下側ハウジング11の突起部11Aと上側ハウジング21の突起部21Aとが連結されることにより、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。
【0033】
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L(図1〜図3)、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0034】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。下側LCD12は、下側ハウジング11の中央に配置される。下側LCD12は、下側ハウジング11の内側面(主面)に設けられ、下側ハウジング11の内側面に設けられた開口部から下側LCD12の画面が露出する。そして、ゲーム装置10を使用しない場合には上記閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、一例として、256dot×192dot(横×縦)である。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0035】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、例えば静電容量方式等、任意の押圧式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1に示す破線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0036】
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lの内、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14B、ボタン14C、ボタン14D、およびボタン14Eは、十字状に配置される。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0037】
アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。図1に示すように、十字ボタン14Aが下側LCD12より左側領域の下部領域に設けられ、アナログスティック15が十字ボタン14Aの上方に設けられる。また、アナログスティック15および十字ボタン14Aは、下側ハウジング11を把持した左手の親指で操作可能な位置に設計される。また、アナログスティック15を上部領域に設けたことにより、下側ハウジング11を把持する左手の親指が自然と位置するところにアナログスティック15が配され、十字ボタン14Aは、左手の親指を少し下にずらした位置に配される。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトは、アナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いてもよい。
【0038】
十字状に配置される、ボタン14B、ボタン14C、ボタン14D、およびボタン14Eの4つのボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つのボタンとアナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの4つのボタンを使用して方向指示入力をすることも可能である。
【0039】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク(図4参照)が設けられ、当該マイクがゲーム装置10の外部の音を検出する。
【0040】
図3に示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14Gは、下側ハウジング11の上面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上面の右端部に設けられる。後述のように、Lボタン14GおよびRボタン14Hは、撮像部のシャッターボタン(撮影指示ボタン)として機能する。また、下側ハウジング11の左側面には、音量ボタン14I(図示せず)が設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0041】
また、下側ハウジング11の左側面には開閉可能なカバー部11C(図示せず)が設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ46とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ46は、上記コネクタに着脱自在に装着される。データ保存用外部メモリ46は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。
【0042】
図1に示されるように、下側ハウジング11の上側面にはゲーム装置10とゲームプログラムを記録した外部メモリ45を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ45と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。外部メモリ45がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよび挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
【0043】
図1に示されるように、下側ハウジング11の下側面には、ゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16Aが設けられる。また、図2に示されるように、下側ハウジング11の右側面には、ゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は、他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、他の機器との無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図2参照)。
【0044】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0045】
上側ハウジング21には、上側LCD22、2つの外側撮像部23(外側左撮像部23aおよび外側右撮像部23b)、内側撮像部24、3D調整スイッチ25、および3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0046】
図1に示すように、上側LCD22は、上側ハウジング21に収納される。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は、上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、一例として下側LCD12の画面の面積よりも大きく設定される。具体的には、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。
【0047】
上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21の内側面に設けられた開口部から上側LCD22の画面が露出する。また、図2に示すように、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、一例として640dot×200dot(横×縦)である。なお、本実施形態では、上側LCD22が液晶表示装置であるとしたが、例えばELを利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0048】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。上側LCD22は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示することが可能である。具体的には、上側LCD22は、左目用画像と右目用画像とが所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。なお、上側LCD22は、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、上側LCD22は、裸眼立体視可能な表示装置である。この場合、上側LCD22は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22は、パララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像をそれぞれ視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視と対比する意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0049】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(外側左撮像部23aおよび外側右撮像部23b)の総称である。外側左撮像部23aおよび外側右撮像部23bの撮像方向は、いずれも外側面21Dの外向きの法線方向である。また、外側左撮像部23aおよび外側右撮像部23bは、いずれも、上側LCD22の表示面(内側面)の法線方向と180度反対の方向に設計される。すなわち、外側左撮像部23aの撮像方向および外側右撮像部23bの撮像方向は、平行である。外側左撮像部23aと外側右撮像部23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)のいずれか一方を単独で用いて、外側撮像部23を非ステレオカメラとして使用することも可能である。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像を行うことも可能である。本実施形態では、外側撮像部23は、外側左撮像部23aおよび外側右撮像部23bの2つの撮像部で構成される。外側左撮像部23aおよび外側右撮像部23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0050】
図1の破線で示されるように、外側撮像部23を構成する外側左撮像部23aおよび外側右撮像部23bは、上側LCD22の画面の横方向と平行に並べられて配置される。すなわち、2つの外側左撮像部23aおよび外側右撮像部23bを結んだ直線が上側LCD22の画面の横方向と平行になるように、外側左撮像部23aおよび外側右撮像部23bが配置される。図1の破線23aおよび23bは、上側ハウジング21の内側面とは反対側の外側面に存在する外側左撮像部23aおよび外側右撮像部23bをそれぞれ表している。図1に示すように、ユーザが上側LCD22の画面を正面から視認した場合に、外側左撮像部23aは左側に外側右撮像部23bは右側にそれぞれ位置する。外側撮像部23をステレオカメラとして機能させるプログラムが実行されている場合、外側左撮像部23aは、ユーザの左目で視認される左目用画像を撮像し、外側右撮像部23bは、ユーザの右目で視認される右目用画像を撮像する。外側左撮像部23aおよび外側右撮像部23bの間隔は、人間の両目の間隔程度に設定され、例えば、30mm〜70mmの範囲で設定されてもよい。なお、外側左撮像部23aおよび外側右撮像部23bの間隔は、この範囲に限らない。
【0051】
なお、本実施例においては、外側左撮像部23aおよび外側右撮像部23bは、ハウジングに固定されており、撮像方向を変更することはできない。
【0052】
外側左撮像部23aおよび外側右撮像部23bは、上側LCD22(上側ハウジング21)の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。
【0053】
このように、外側撮像部23の2つの撮像部(外側左撮像部23aおよび外側右撮像部23b)が上側LCD22の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23それぞれの撮像方向をユーザの左右の目それぞれの視線方向と一致させることができる。また、外側撮像部23は、上側LCD22の画面の上端より上方の裏側の位置に配置されるため、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。従って、外側撮像部23を上側LCD22の画面の裏側に配置する場合と比べて、上側ハウジング21を薄く構成することが可能となる。
【0054】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0055】
図1に示すように、内側撮像部24は、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方に配置され、上側ハウジング21の左右方向に関して中央の位置(上側ハウジング21(上側LCD22の画面)を左右に2等分する線の線上)に配置される。具体的には、図1に示されるように、内側撮像部24は、上側ハウジング21の内側面であって、外側左撮像部23aおよび外側右撮像部23bの中間の裏側の位置に配置される。すなわち、上側ハウジング21の外側面に設けられた外側左撮像部23aおよび外側右撮像部23bを上側ハウジング21の内側面に投影した場合、当該投影した外側左撮像部23aおよび外側右撮像部23bの中間に、内側撮像部24が設けられる。
【0056】
このように、内側撮像部24は、外側撮像部23とは反対方向を撮像する。内側撮像部24は、上側ハウジング21の内側面であって、2つの外側撮像部23の中間位置となる裏側に設けられる。これにより、ユーザが上側LCD22を正視した際、内側撮像部24でユーザの顔を正面から撮像することができる。また、外側左撮像部23aおよび外側右撮像部23bと内側撮像部24とが上側ハウジング21の内部で干渉することがないため、上側ハウジング21を薄く構成することが可能となる。
【0057】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。図1に示されるように、3D調整スイッチ25は、上側ハウジング21の内側面および右側面の端部に設けられ、ユーザが上側LCD22を正視した場合に、当該3D調整スイッチ25を視認できる位置に設けられる。3D調整スイッチ25は、所定方向(例えば、上下方向)の任意の位置にスライド可能なスライダを有しており、当該スライダの位置に応じて上側LCD22の表示モードが設定される。
【0058】
例えば、3D調整スイッチ25のスライダが最下点位置に配置されている場合、上側LCD22が平面表示モードに設定され、上側LCD22の画面には平面画像が表示される。なお、上側LCD22を立体表示モードのままとして、左目用画像と右目用画像とを同一の画像とすることにより平面表示してもよい。一方、上記最下点位置より上側にスライダが配置されている場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視可能な画像が表示される。ここで、スライダが上記最下点位置より上側に配置されている場合、スライダの位置に応じて、立体画像の見え方が調整される。具体的には、スライダの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。
【0059】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。例えば、3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。図1に示されるように、3Dインジケータ26は、上側ハウジング21の内側面に設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。従って、ユーザは、上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。
【0060】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ44からの音声がこのスピーカ孔21Eから出力される。
【0061】
次に、図4を参照して、ゲーム装置10の内部構成を説明する。なお、図4は、ゲーム装置10の内部構成の一例を示すブロック図である。
【0062】
図4において、ゲーム装置10は、上述した各構成部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、角速度センサ40、電源回路41、およびインターフェイス回路(I/F回路)42等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0063】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。本実施形態では、所定のプログラムがゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ45やデータ保存用内部メモリ35)に記憶されている。情報処理部31のCPU311は、当該所定のプログラムを実行することによって、後述する画像処理やゲーム処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22および/または下側LCD12に出力し、上側LCD22および/または下側LCD12に当該画像が表示される。
【0064】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、およびデータ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ45を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ46を着脱自在に接続するためのインターフェイスである。
【0065】
メインメモリ32は、情報処理部31(CPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、画像処理やゲーム処理で用いられる各種データを一時的に記憶したり、外部(外部メモリ45や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0066】
外部メモリ45は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ45は、例えば読み取り専用の半導体メモリで構成される。外部メモリ45が外部メモリI/F33に接続されると、情報処理部31は外部メモリ45に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ46は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ46には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ46がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ46に記憶された画像を読み込み、上側LCD22および/または下側LCD12に当該画像を表示することができる。
【0067】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0068】
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は、情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0069】
情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(本実施形態では、xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、例えば下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、ゲーム装置10の各軸方向へ生じる直線加速度の大きさをそれぞれ検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸または2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを算出する。
【0070】
情報処理部31には、角速度センサ40が接続される。角速度センサ40は、ゲーム装置10の3軸(本実施形態では、xyz軸)周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ(角速度データ)を情報処理部31へ出力する。角速度センサ40は、例えば下側ハウジング11の内部に設けられる。情報処理部31は、角速度センサ40から出力された角速度データを受信して、ゲーム装置10の姿勢や動きを算出する。
【0071】
情報処理部31には、RTC38および電源回路41が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路41は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0072】
情報処理部31には、I/F回路42が接続される。I/F回路42には、マイク43、スピーカ44、およびタッチパネル13が接続される。具体的には、I/F回路42には、図示しないアンプを介してスピーカ44が接続される。マイク43は、ユーザの音声を検知して音声信号をI/F回路42に出力する。アンプは、I/F回路42からの音声信号を増幅し、音声をスピーカ44から出力させる。I/F回路42は、マイク43およびスピーカ44(アンプ)の制御を行う音声制御回路と、タッチパネル13の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置(タッチ位置)の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、およびタッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われたタッチ位置を知ることができる。
【0073】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
【0074】
下側LCD12および上側LCD22は、情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(GPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、外側撮像部23および内側撮像部24のいずれかから取得した画像のサムネイルを下側LCD12に表示させる。また、本実施形態では、情報処理部31は、外側撮像部23および内側撮像部24のいずれかから取得した画像を上側LCD22に表示させる。すなわち、情報処理部31は、上側LCD22に外側撮像部23で撮像した右目用画像と左目用画像とを用いた立体画像(立体視可能な画像)を表示させたり、内側撮像部24で撮像した平面画像を上側LCD22に表示させたり、上側LCD22に外側撮像部23で撮像した右目用画像および左目用画像の一方を用いた平面画像を表示させたりする。
【0075】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された(外側撮像部23で撮像された)右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0076】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。本実施形態では、情報処理部31は、外側撮像部23および内側撮像部24のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部31に送る。具体的には、ユーザによるタッチパネル13や操作ボタン14を用いた操作によって使用する撮像部が選択される。そして、撮像部が選択されたことを情報処理部31(CPU311)が検知し、情報処理部31が外側撮像部23または内側撮像部24に対して撮像指示を行う。
【0077】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダの位置に応じた電気信号を情報処理部31に送信する。
【0078】
3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。
【0079】
次に、ゲーム装置10で実行される表示制御プログラムによる具体的な表示制御動作を説明する前に、図5〜図17を参照して、本発明においてサムネイルを配置する手法およびスクロール表示の手法について説明する。なお、図5は、ゲーム装置10に内蔵する実カメラで撮像され、データ保存用外部メモリ46に記憶されているカメラ画像CIの中から登録する画像を選択してアルバムを作成するアルバム作成処理を実行しているときの表示画面の一例を示す図である。また、図6は、アルバム作成処理において生成されるアルバムデータDbの一例を示す図である。また、図7は、アルバム作成処理で作成されたアルバムを閲覧するときに実行されるアルバム表示処理を開始したときの初期画面の一例を示す図である。また、図8は、アルバム表示処理においてサムネイルを選択したときの上側LCD22と下側LCD12の表示画面例を示す図である。図9は、サムネイル配置処理におけるサムネイルの配置位置の一例を示す図である。図10A〜図10Cは、サムネイル配置処理におけるサムネイルの配置位置の計算手法を説明する図である。図11は、計算したサムネイルの配置位置に基づいて決定された初期位置の一例を説明するための図である。図12は、アルバム表示処理における下側LCD12の初期画面の一例を示す図である。図13〜図14は、アルバム表示処理においてサムネイルをスクロールするためのスクロール表示処理における追従スクロールの表示画面例を示す図である。図15は、スクロール表示処理におけるスクロール時間Stとスクロール速度Svとの関係例を示す図である。図16〜図17は、スクロール表示処理における停止スクロールにおける処理を説明する図である。なお、本実施形態の説明では、説明を簡単にするため、外側撮像部23および内側撮像部24のいずれかから取得したカメラ画像CIに基づいた、実世界の平面画像(上述した立体視可能な画像と対比する意味での平面視の画像)が表示される例を用いる。
【0080】
本実施形態では、一例として、上述したように外側撮像部23および内側撮像部24のいずれかから取得された画像をカメラ画像CIと称する。外側撮像部23および内側撮像部24のいずれかから取得されたカメラ画像CIは、データ保存用外部メモリ46に記憶される。また、本実施形態では、一例として、カメラ画像CIを取得したときに当該画像を示すサムネイルの画像データが生成されるものとする。生成されたサムネイルの画像データは、カメラ画像CIがデータ保存用外部メモリ46に記憶されるときに、当該カメラ画像CIと対応させてデータ保存用外部メモリ46に記憶される。データ保存用外部メモリ46に記憶されるカメラ画像CIには、それぞれを識別するカメラ画像識別子Pidが付与される。また、データ保存用外部メモリ46に記憶されるサムネイルにもそれぞれを識別するサムネイル識別子Sidが付与される。
【0081】
サムネイルと共にデータ保存用外部メモリ46に記憶されたカメラ画像CIは、任意のカメラ画像CIのみをアルバムに登録して、アルバム毎に閲覧することができる。本実施形態では、一例として、カメラ画像CIをアルバムに登録するための処理をアルバム作成処理として実行する。また、本実施形態では、一例として、アルバムに登録されたカメラ画像CIを閲覧するための処理をアルバム表示処理として実行する。以下では、まず始めに、アルバム作成処理について説明する。
【0082】
図5において、上側LCD22および下側LCD12には、データ保存用外部メモリ46に記憶されているカメラ画像CIの中からアルバムに登録するカメラ画像CIを選択するアルバム作成画面が表示されている。アルバム作成画面は、アルバム作成処理が開始されたときに上側LCD22および下側LCD12に表示される。アルバム作成処理が開始されると、下側LCD12には、カメラ画像CIをアルバムに登録する「いれる」ボタンアイコンIb、アルバムへの登録を解除する「はずす」ボタンアイコンHb、アルバム作成処理を終了するための「完成」ボタンアイコンKbが表示される。また、アルバム作成処理が開始されると、上側LCD22には、アルバムに登録されたカメラ画像CIの中から処理の対象となっているアルバム画像を示す枠画像Hw、アルバムに登録される順番に応じた位置を示す矢印画像Sy、Rボタン14GおよびLボタン14Hを用いた操作入力を受付可能であることを示すRボタンアイコンRbおよびLボタンアイコンLbが表示される。
【0083】
さらに、アルバム作成画面が表示されるときには、データ保存用外部メモリ46からカメラ画像CIそれぞれに対応するサムネイルを示す画像データが読み込まれ、当該サムネイルも下側LCD12に配置表示される。図5に示すアルバム作成画面には、一例として6つのサムネイルS1〜S6が下側LCD12に配置表示されている。
【0084】
本実施形態では、一例として、アルバム作成画面が表示されると、アルバムに登録されたカメラ画像CIを管理するためのアルバムデータ(図18に示すアルバムデータDb)がメインメモリ32に生成される。アルバム未作成時点におけるアルバムデータは、アルバムにカメラ画像CIが登録されていない状態であるため、カメラ画像CIを示す情報を含まないデータとなっている。本実施形態では、1つのアルバムデータに登録することのできるカメラ画像CIが最大で30枚である場合を一例として説明する。
【0085】
アルバム作成画面が表示されると、ユーザは任意のカメラ画像CIをアルバムへ登録可能となる。一例として、カメラ画像CIをアルバムへ登録するときには、ユーザは、タッチパネル13を介して登録するカメラ画像CIのサムネイルをタッチする操作を行う。ユーザがサムネイルをタッチ操作すると、タッチ操作されたサムネイルが選択され、選択されたサムネイルの縁を強調表示する選択枠画像Swが図5に一例として示すように表示される。
【0086】
アルバムへ登録するカメラ画像CIのサムネイルが選択された状態で、「いれる」ボタンアイコンIbをユーザがタッチ操作すると、選択されたサムネイルで示されるカメラ画像CIがアルバムに登録される。
【0087】
アルバムにカメラ画像CIが登録されるときには、例えば、登録されるカメラ画像CIのカメラ画像識別子Pidと当該カメラ画像CIを示すサムネイルのサムネイル識別子Sidとがアルバムデータに登録される。アルバムデータにカメラ画像識別子Pidとサムネイル識別子Sidとが登録されるときには、基本的には、登録された順番を示す番号Nが付与される。番号Nが登録された順番を示さない場合については、後に詳述する。
【0088】
また、アルバムにカメラ画像CIが登録されるときには、登録されたカメラ画像CIが、例えば上側LCD22の中央にアルバム画像として表示される。図5には、選択されたサムネイルS3によって示されるカメラ画像CIをアルバム画像A3として上側LCD22の中央に表示している一例が示されている。アルバム作成画面において上側LCD22に表示されるアルバム画像は、一例として、アルバムに登録されたカメラ画像CIの番号Nで示される順番で左方向から右方向に向かって水平に並ぶように上側LCD22に配置表示される。上側LCD22に配置表示されるアルバム画像は、Rボタン14HおよびLボタン14Gのいずれかを押下することにより、押下したボタンに応じた方向にスライド可能に構成されている。従って、上側LCD22には、アルバムに登録されたカメラ画像CIの中から所定の表示数のカメラ画像CIのみをアルバム画像として配置表示してもかまわない。図5には、一例として、アルバムに登録されたカメラ画像CIの番号Nで示される順番に応じて3つのアルバム画像が左右方向に配置され、上側LCD22の中央に配置されたアルバム画像が他のアルバム画像よりも相対的に大きくなるように拡大表示されている上側LCD22が示されている。
【0089】
本実施形態のアルバム作成画面では、典型的には、カメラ画像CIをアルバムに登録できると共に、登録されたカメラ画像CIの中から削除対象として選ばれたカメラ画像CIをアルバムから削除することができる。アルバム作成画面では、上述したように処理の対象となっているアルバム画像を示す枠画像Hwが、現時点で処理対象となっているアルバム画像(例えば、上側LCD22の中央付近に配置されている画像)を囲むように表示されている。また、上側LCD22に配置表示されているアルバム画像は、上述したようにスライド可能に構成される。ユーザがRボタン14HおよびLボタン14Gを押下してスライド操作することによって、処理対象となるアルバム画像が入れ替わり、現時点で処理対象となっているアルバム画像が枠画像Hwで囲まれて表示される。そして、ユーザが「はずす」ボタンアイコンHbをタッチ操作することにより、枠画像Hwで囲まれた処理対象のアルバム画像に対応するカメラ画像CIがアルバムから削除される。カメラ画像CIがアルバムから削除されるときには、削除されるカメラ画像CIのサムネイルもアルバムから削除される。カメラ画像CIがアルバムから削除されるときには、削除されるカメラ画像CIのカメラ画像識別子Pidと当該カメラ画像CIのサムネイルのサムネイル識別子Sidとがアルバムデータから削除される。
【0090】
カメラ画像CIがアルバムから削除されると、アルバムに登録されているカメラ画像CIおよびサムネイルの順番を示す番号Nが連番になるように修正される。アルバムからカメラ画像CIが削除されるときには、アルバムデータから削除されたカメラ画像CIのカメラ画像識別子Pidおよびサムネイルのサムネイル識別子Sidよりも番号Nで示される順番が後になっているカメラ画像識別子Pidおよびサムネイル識別子Sidの番号Nがそれぞれ順次繰り上げられる。具体的に図6を用いて番号Nが3のカメラ画像CIが削除される場合について説明すると、まず、番号Nが3のカメラ画像識別子P3とサムネイル識別子S3とがアルバムデータから削除される。そして、番号Nが4として登録されているカメラ画像識別子P5とサムネイル識別子S5との番号Nが1だけ繰り上げられるように修正されて3になる。この繰り上げ修正と同様に、番号Nが5〜30としてそれぞれ登録されているカメラ画像識別子Pidとサムネイル識別子Sidとの番号Nも1だけ繰り上げられるように修正されてそれぞれ4〜29となる。
【0091】
また、本実施形態のアルバム作成画面では、典型的には、既に登録されているカメラ画像CIの番号Nで示される順番の間に新たなカメラ画像CIを挿入登録することもできる。上述したように、アルバム画像は、対応するカメラ画像CIがアルバムに登録されている番号Nで示される順番に従って左方向から右方向に水平に上側LCD22に配置表示される。また、上側LCD22に配置表示されているアルバム画像は、上述したようにスライド可能に構成される。そして、矢印画像Syは、図5に一例として示すように、上側LCD22においてスライド可能に配置表示されているアルバム画像に対して、左右方向の透き間を示す位置に固定的に表示される。つまり、矢印画像Syは、既にアルバムに番号Nで示される順番で登録されているカメラ画像CIの間に挿入登録するときの順番を示す位置に表示されることとなる。
【0092】
ユーザがRボタン14HおよびLボタン14Gを押下してスライド操作することによって、上側LCD22において固定的に表示されている矢印画像Syで示される位置、すなわち、アルバムにカメラ画像CIを挿入登録するときの順番を示す位置が入れ替わって表示される。そして、ユーザが挿入登録を希望する位置を矢印画像Syが示しているときに、アルバムに挿入登録を希望するカメラ画像CIのサムネイルを選択して、「いれる」ボタンアイコンIbをタッチ操作することにより、選択されているサムネイルで示されるカメラ画像CIが、矢印画像Syで示される位置に応じた順番を示す番号Nでアルバムに挿入登録される。カメラ画像CIがアルバムに挿入登録されるときには、挿入登録されるカメラ画像CIのサムネイルも挿入登録される。カメラ画像CIがアルバムに挿入登録されるときには、挿入登録されるカメラ画像CIのカメラ画像識別子Pidと当該カメラ画像CIのサムネイルのサムネイル識別子Sidとが順番を示す番号Nを付与されてアルバムデータに挿入登録される。
【0093】
カメラ画像CIがアルバムに挿入登録されると、アルバムに登録されていたカメラ画像CIおよびサムネイルの順番を示す番号Nが重複せずに連番になるように修正される。アルバムにカメラ画像CIが挿入登録されるときには、アルバムデータに挿入登録されたカメラ画像CIのカメラ画像識別子Pidおよびサムネイルのサムネイル識別子Sidの番号Nで既に登録されていたカメラ画像識別子Pidおよびサムネイル識別子Sidの番号N以降の番号Nで登録されていたカメラ画像識別子Pidおよびサムネイル識別子Sidの番号Nがそれぞれ順次繰り下げられる。具体的に図6を用いてカメラ画像CIが3の番号Nのカメラ画像CIとして挿入登録される場合について説明すると、まず、3以降の番号Nで既に登録されているカメラ画像識別子P3およびサムネイル識別子S3から、カメラ画像識別子P11およびサムネイル識別子S11までの番号Nがそれぞれ4〜31まで繰り下げられるように修正される。そして、番号Nが3のカメラ画像CIのカメラ画像識別子Pidとサムネイルのサムネイル識別子Sidとが登録される。
【0094】
アルバムデータにカメラ画像識別子Pidとサムネイル識別子Sidとが登録されるときには、登録された順番を示す番号Nが付与されるが、番号Nが登録された順番を示さない場合があることを上述した。以下、番号Nが登録された順番を示さない場合について説明する。
【0095】
アルバムデータにおける番号Nが、カメラ画像CIがアルバムに登録された順番を示さない場合は、上述の説明から明らかなように、アルバムからカメラ画像CIが削除されたり、カメラ画像CIがアルバムに挿入登録されたりして、番号Nが修正された場合に生じる。換言すれば、ユーザは、上述したようにアルバムにカメラ画像CIを登録、削除および挿入登録することにより、番号Nが任意の順番を示すようにカメラ画像CIをアルバムに登録できる。
【0096】
後に明らかとなるが、本実施形態では、一例として、アルバム表示処理において下側LCD12に表示するサムネイルの配置を決定するときに、アルバムに登録されているカメラ画像CIのサムネイルが左方向から右方向に向かって番号Nで示される順番で並ぶようにそれぞれの配置位置を決定する。配置位置が決定されたサムネイルは、下側LCD12に表示させたときにユーザによってスクロールさせることができる。アルバム表示処理において、ユーザは、サムネイルをスクロールさせることによって、所望のサムネイルを下側LCD12に表示させて選択することができる。アルバム表示処理において、サムネイルがユーザによって選択されると、選択されたサムネイルで示されるカメラ画像CIが上側LCD22に表示され、ユーザが閲覧可能となる。
【0097】
従って、ユーザは、アルバム作成処理において、番号Nが任意の順番となるようにカメラ画像CIをアルバムに登録することにより、アルバム表示処理においてスクロールさせて選択するためのサムネイルの配置順を所望の順番にすることができる。
【0098】
ユーザは、アルバム作成処理において、番号Nが任意の順番となるようにカメラ画像CIをアルバムに登録し終えたときに、下側LCD12における「完成」ボタンアイコンKbをタッチ操作することによりアルバム作成処理を終了することができる。アルバム作成処理を終了するときには、生成されたアルバムデータがメインメモリ32からデータ保存用外部メモリ46に転送され、保存される。
【0099】
このように生成され、転送されたアルバムデータは、アルバム表示処理が実行されることにより、データ保存用外部メモリ46から読み出される。アルバム表示処理では、アルバムデータに登録された任意のカメラ画像CIを閲覧することができる。以下、本実施形態におけるアルバム表示処理の一例について説明する。
【0100】
図7は、アルバムに登録されたカメラ画像CIを閲覧するアルバム表示処理を実行しているときの表示画面の一例を示す図である。アルバム表示処理が開始されると、アルバム作成処理で生成されたアルバムデータがデータ保存用外部メモリ46からメインメモリ32へ読み込まれる。図7において、下側LCD12には、読み込まれたアルバムデータに登録されているサムネイルの一部が表示されている。また、図7において、下側LCD12には、アルバムの閲覧を中止してアルバム表示処理を終了するための「おわる」ボタンアイコンObも表示されている。
【0101】
本実施形態のアルバム表示処理では、一例として、下側LCD12においてユーザがタッチ操作したサムネイルで示されるカメラ画像CIが上側LCD22に表示される。図8において、下側LCD12には、ユーザによってタッチ操作されたサムネイルが選択され、その縁を強調する選択枠画像Swが表示されている。また、図8において、上側LCD22には、ユーザによって選択されたサムネイルで示されるカメラ画像CIが表示画面全体に表示されている。本実施形態では、後に詳述するスクロール表示処理が実行されることにより、ユーザは、下側LCD12においてサムネイルをスクロールさせることができる。本実施形態において、ユーザは、サムネイルをスクロールさせて選択することにより、アルバムに登録されている任意のカメラ画像CIを上側LCD22に表示させて閲覧できる。
【0102】
本実施形態では、アルバム表示処理において、アルバムに登録されているサムネイルを下側LCD12に表示するときに、サムネイル配置処理でそれぞれの配置位置を求めてから表示する。本実施形態では、一例として、アルバム表示処理が開始されると、データ保存用外部メモリ46に記憶されているアルバムデータが読み込まれる。アルバム表示処理においてアルバムデータが読み込まれると、読み込まれたアルバムデータに登録されているサムネイル識別子Sidで示されるサムネイルを下側LCD12に表示するときに用いられる配置位置がそれぞれ決定される。以下、図9〜図11を参照して、サムネイルの配置位置をそれぞれ決定するためのサムネイル配置処理について説明する。
【0103】
本実施形態におけるサムネイル配置処理では、図9に一例として示すように、下側LCD12の左右方向に平行なLx軸と当該下側LCD12の上下方向に平行なLy軸とからなるLxLy座標系を仮想し、Lx軸方向における位置とLy軸方向における位置とで当該平面上におけるサムネイルの配置位置が決定される。LxLy座標系で配置位置が決定されるサムネイルは、上述したようにアルバム表示処理が開始されたときにデータ保存用外部メモリ46から読み込まれたアルバムデータに登録されているサムネイル識別子Sidでそれぞれ示されるサムネイルである。
【0104】
図9には、一例として、アルバムデータに登録されている番号Nで示される順番が1〜30までのサムネイル識別子Sidでそれぞれ示されるサムネイルのLxLy座標系における配置位置の一例が示されている。本実施形態におけるサムネイル配置処理では、図9に一例として示すように、各サムネイルの配置位置のLx軸方向における位置が、等間隔となるようにそれぞれ決定される。また、本実施形態では、一例として、それぞれのサムネイルの配置位置のLx軸方向における位置は、アルバムデータに登録されている番号Nで示される順番に従って左方向から右方向に向かって並ぶように決定される。また、本実施形態において、各サムネイルの配置位置のLy軸方向における位置は、図9に一例として示すように、LxLy座標系にそれぞれのサムネイルを配置したときの列(以下、サムネイル列と称する)が、LxLy座標系に対して垂直な方向から見下ろしたときに波形となるように決定される。
【0105】
サムネイル配置処理においてサムネイルの配置位置を決定する手法を具体的に説明する。各サムネイルの配置位置を決定するときには、それぞれのサムネイルのLxLy座標系における基本の位置を基本位置Kiとして求める。それぞれのサムネイルの基本位置Kiには、サムネイル毎に求められたレートRが乗算される。基本位置KiにレートRを乗算して求められた位置が、それぞれのサムネイルの配置位置となる。本実施形態では、一例として、このようにサムネイルの基本位置Kiを求め、レートRを乗算して配置位置を求める演算を番号Nで示される順番でサムネイル毎に実行する。
【0106】
本実施形態における基本位置Kiの例について説明する。図10Aは、本実施形態における各サムネイルの基本位置Kiの一例を示す図である。図10AにおいてLx軸方向に沿って付されている1〜30の番号は、アルバムデータに登録されている各サムネイルの順番を示す番号Nである。
【0107】
本実施形態では、一例として、上述したように、各サムネイルの配置位置のLx軸方向における位置が、アルバムデータに登録されている番号Nで示される順番に従って左方向から右方向に向かって等間隔に並ぶようにそれぞれ決定される。このため、それぞれのサムネイルの基本位置KiのLx軸方向における位置は、番号Nで示される順番で、LxLy座標系の原点HgからLx軸の正方向に等間隔となるように決定される。
【0108】
また、本実施形態では、一例として、各サムネイルの配置位置のLy軸方向における位置については、上述したように、LxLy座標系にそれぞれのサムネイルを配置したときのサムネイル列が、LxLy座標系に対して垂直な方向から見下ろしたときに波形となるように決定される。具体的には、以下の式(1)で示す演算をすることによって各サムネイルの基本位置KiのLy軸方向における位置が求められる。
【0109】
【数1】
【0110】
上記式(1)に一例として示すように、それぞれのサムネイルの基本位置KiのLy軸方向における位置は、各サムネイルの配置位置を上述したように波形となるように決定するために、一例として、正弦関数を用いて求められる。上記式(1)において、c1は、上記正弦関数で示される正弦波形の1周期分の波形に含ませるサムネイルの数を示す。本実施形態では、一例として、c1=9であるものとする。図10Aは、c1=9とした場合の計算結果を示している。また、上記式(1)におけるNは、アルバムデータにおけるサムネイルの順番を示す番号Nである。上記式(1)に番号Nを代入して計算することにより、代入した番号Nで示される順番のサムネイルの基本位置KiのLy軸方向における位置が求められる。
【0111】
次に、本実施形態におけるレートRの例について説明する。本実施形態では、一例として、レートRが、サムネイル毎に求められ、基本位置KiのLy軸方向における位置に乗算される。
【0112】
図10Bは、基本位置KiのLy軸方向における位置に乗算されるサムネイル毎のレートRをプロットしたLxLy座標系が一例として示されている。図10BにおいてLx軸方向に沿って付されている1〜30の番号は、アルバムデータに登録されている順番を示す番号Nである。以下では、説明の便宜のため、番号Nが15および16のサムネイルの配置位置のLx軸方向における位置に対して、番号Nが1および30のサムネイルの配置位置のLx軸方向における位置を両端側と称する。また、図9に一例として示すように配置されたサムネイルの内、両端側のサムネイルの配置位置のLx軸方向における位置に対して、番号Nが15および16のサムネイルの配置位置のLx軸方向における位置を中央側と称する。
【0113】
図10Bから明らかなように、本実施形態では、一例として、両端側のサムネイルからそれぞれ7個だけ中央側に並べて配置されるサムネイルを除いたサムネイルのレートRを1とする。具体的には、番号Nが8〜23のサムネイルのレートRを1とする。従って、本実施形態では、一例として、両端側からそれぞれ7個だけ中央側に並べて配置されるサムネイルのレートRを計算する。具体的には、アルバムデータに登録されている番号Nが1〜7と24〜30とのサムネイルについてレートRが計算される。図10Bに示すレートRは、以下の式(2)および式(3)でそれぞれ示される始点レートRsと終点レートReとを乗算して求められる曲線である。始点レートRsは、以下の式(2)から明らかなように、図10Bに示す曲線の内、番号Nが1から7までの間で漸増し、番号Nが8以上では1となる曲線である。一方、終点レートRsは、以下の式(3)から明らかなように、図10Bに示す曲線の内、番号Nが23以下では1となり、番号Nが24から30までの間で漸減する曲線である。従って、本実施形態では、一例として、番号Nが1から7までのサムネイルについては式(2)の計算で求めた始点レートRsをレートRとし、番号Nが24から30までのサムネイルについては式(3)の計算で求めた終点レートReをレートRとする。
【0114】
【数2】
【0115】
【数3】
【0116】
ここで、上記式(2)および式(3)におけるSは、基本位置KiのLy軸方向の位置を変化させる対象となるサムネイルを示す数値である。例えば、S=7の場合には、両端側からそれぞれ7個だけ中央側に配置されるサムネイルについて基本位置KiのLy軸方向における位置を変化させることとなる。ここで、基本位置KiのLy軸方向における位置を変化させるとは、後述するように基本位置KiのLy軸方向における位置に乗算するレートRとして1以外の数値を乗算することを意味する。本実施形態では、一例として、S=7であるものとして説明をする。従って、上述の説明では、番号Nが1〜7と24〜30とのサムネイルについて始点レートRsおよび終点レートReがそれぞれレートRとして計算されるものとした。また、上記式(3)におけるNmaxは、アルバムデータにおける番号Nの最大値であり、本実施形態では、上述の説明から明らかなように、一例として、Nmax=30となる。数値SおよびNmaxを予め設定してから上記式(2)および式(3)に番号Nを代入して計算することにより、代入した番号Nで示される順番のサムネイルのレートRを求めることができる。
【0117】
上述したようにサムネイル毎に基本位置KiのLy軸方向における位置およびレートRを求めると、これらを乗算して配置位置のLy軸方向における位置を決定する。図10Cは、決定された各サムネイルの配置位置の一例を示す図である。サムネイル毎に求めたレートRと基本位置KiのLy軸方向における位置とを乗算することにより、本実施形態では図10Cに一例として示すように、サムネイル列の頂点のLx軸方向における位置が、両端側のサムネイルのLx軸方向の位置に近くなるにつれて、当該頂点のLy軸方向における位置が両端のオブジェクトのLy軸方向の位置(図10Cに示す例ではLy座標=0)に近くなるように決定される。
【0118】
このように、基本位置KiのLy軸方向における位置にレートRを乗算して求めたLy軸方向における位置と、Lx軸方向において等間隔となるように決定された位置とでLxLy座標系におけるそれぞれのサムネイルの配置位置が決定される。サムネイルの配置位置が決定されると、決定された各サムネイルの配置位置に基づいてグローバル座標系における初期位置を決定し、決定した初期位置に基づいてアルバム表示処理における下側LCD12の初期画面の表示内容が決定される。
【0119】
各サムネイルの初期位置の決定について説明する前に、本実施形態におけるグローバル座標系の例について説明する。グローバル座標系とは、全てのサムネイルをそれぞれ示す画像の中から下側LCD12に表示する画像を判断するために用いられる仮想的に定義された座標系である。グローバル座標系における各サムネイルの位置は、サムネイルを示す画像の中心の位置である。本実施形態では、一例として、グローバル座標系における各サムネイルの位置に基づいて当該座標系における下側LCD12の表示領域に含まれるサムネイルの画像の画素が判断される。本実施形態では、一例として、グローバル座標系における下側LCD12の表示領域の左右方向および上下方向の座標が、下側LCD12の表示画面の左右方向および上下方向の座標と対応するようにグローバル座標系を定義するものとする。従って、下側LCD12の表示領域に含まれると判断された画像の画素の位置座標は、グローバル座標系における原点Goと下側LCD12の画面座標系における原点Oとの差を減算して、対応する下側LCD12の画面座標系の位置座標に変換できる。このように、グローバル座標系における位置座標を下側LCD12の画面座標系の位置座標に変換すれば、全てのサムネイルの中から、グローバル座標系において下側LCD12の表示領域に含まれると判断したサムネイルの画像の画素を下側LCD12に表示できる。
【0120】
次に、各サムネイルの初期位置の決定について説明する。各サムネイルのグローバル座標系における初期位置を決定するときには、まず、LxLy座標系の原点Hgと下側LCD12の表示領域の中央位置Hcとを一致させる演算が行われる。そして、LxLy座標系の原点Hgに対する各サムネイルの配置位置の関係が維持されるように、グローバル座標系における原点Goに対する各サムネイルの初期位置が決定される。図11は、このようにして決定された各サムネイルの初期位置と下側LCD12の表示領域との一例を示す図である。
【0121】
図12は、アルバム表示処理における下側LCD12の初期画面の一例を示す図である。図12に示す一例において、下側LCD12には、上述したように決定された各サムネイルの初期位置に基づいた位置にサムネイルの画像が表示されている。上述したように原点Hgは、アルバムに登録されている1番目のカメラ画像CIのサムネイルの配置位置であるので、当該サムネイルの初期位置は、図12に一例として示すように、下側LCD12の中央位置Hcとなる。また、下側LCD12の初期画面には、1番目のカメラ画像CIのサムネイルの画像以外にも表示領域に含まれると判断されたサムネイルを示す画像がそれぞれ決定された初期位置に表示されている。具体的には、図12において、下側LCD12の初期画面には、表示領域に含まれると判断された2番目および3番目のカメラ画像CIのサムネイルを示す画像もそれぞれ決定された初期位置に表示されている。
【0122】
なお、グローバル座標系において決定されたサムネイル列を構成する各サムネイルの初期位置の相対的な位置関係は、後述するようにサムネイルがスクロールするときにも維持される。また、以下の説明では、初期位置に配置された各サムネイルのスクロール後の位置をスクロール位置と称する。
【0123】
このように、アルバム表示処理において、下側LCD12の初期画面の表示が完了すると、ユーザの操作に応じて、サムネイルを選択して対応するカメラ画像CIを上側LCD22に表示させることやサムネイル列をスクロールさせることが可能な状態となる。以下、本実施形態において、サムネイル列をスクロールさせるときの処理の例について説明する。なお、以下の説明では、ユーザによるタッチ操作においてタッチペン28或いはユーザの指で触れられるなど、タッチパネル13に対する接触があったときをタッチオンと称し、触れられたタッチペン28或いはユーザの指が離れたときなど、タッチパネル13に対する接触がなくなったときをタッチオフと称する。
【0124】
本実施形態では、一例として、サムネイル列のスクロールが、ユーザによってタッチパネル13に対するタッチオンを契機として開始されるスクロール表示処理で実現される。本実施形態におけるスクロール表示処理による表示形態例について、図13〜図17を参照して説明する。
【0125】
本実施形態では、一例として、アルバム表示処理によって下側LCD12にサムネイルが表示されている状態においてタッチオンされるとスクロール表示処理が開始される。スクロール表示処理が開始されると、本実施形態では、タッチオフされるまで、タッチペン28或いは指などのスライド操作に追従してサムネイルが水平スクロールする。
【0126】
具体的には、図13に示すようにタッチペン28でタッチオンされた後、タッチペン28を用いて左右方向成分のいずれかを含むスライド操作をすると、サムネイル列がスライド操作の左右方向成分のいずれかの方向成分に応じた方向に追従するように水平スクロールする追従スクロールが実行される。追従スクロールが実行されるときには、例えば、タッチペン28を用いて左方向成分を少なくとも含むスライド操作をしたときには、スライド操作によるタッチ位置座標の変化に応じて、各サムネイルのグローバル座標におけるスクロール位置の左右方向における位置を示す座標(以下、Gx座標と称する)が逐次減算される。一方、タッチペン28を用いて右方向成分を少なくとも含むスライド操作をしたときには、スライド操作によるタッチ位置座標の変化に応じて、各サムネイルのスクロール位置のGx座標が逐次加算される。各サムネイルのスクロール位置のGx座標を逐次減算または逐次加算する演算の後、演算後の各サムネイルのスクロール位置の座標に基づいて上述した手法により下側LCD12にサムネイルを示す画像が実際に表示され、追従スクロールが実現される。このように、本実施形態では、一例として、グローバル座標系において固定した下側LCD12の表示領域に対して各サムネイルの位置を相対的に移動させる演算をすることにより追従スクロールが実現される。このことは、後述する等速スクロール、減速スクロールおよび停止スクロールについても同様である。
【0127】
次に、タッチペン28を用いたスライド操作におけるスライド速度、すなわち、タッチパネル13の平面に平行な方向への速度を維持しながらタッチオフされると、本実施形態では、一例として、サムネイル列を構成するサムネイルの数に応じて決定された期間でスライド操作の方向に応じてサムネイル列が等速スクロールした後、スクロール速度が漸減しながら停止するスクロールが行われる。
【0128】
図15は、本実施形態において、等速スクロールを開始してからスクロールが停止するまでのスクロール速度Svとスクロール時間Stとの関係の一例を示す図である。図15において、Stはスクロール時間であり、Ttは等速スクロール期間であり、Gtは減速スクロール期間であり、Ktは停止スクロール期間であり、Tvは等速スクロール速度であり、Gvは減速スクロール速度であり、Kvは停止スクロール速度であり、thはスクロール速度Svに対して予め定められたしきい値である。
【0129】
本実施形態では、ユーザがスライド操作したときのスライド速度を維持したままタッチオフすると、図15に一例として示すように、等速スクロール期間Tt中は、等速スクロール速度Tvでスライド操作に応じた方向にサムネイル列を水平スクロールさせる。サムネイル列の等速スクロールを開始するときには、まず、スクロール時間Stの計測を開始する。また、スクロール時間Stの計測開始と共に、等速スクロールにおける等速スクロール期間Tt、等速スクロール速度Tvおよび減速スクロール期間Gtが求められる。
【0130】
等速スクロール期間Ttは、一例として、サムネイル列を構成するサムネイルの数に所定の定数を乗算することによって求められる。つまり、等速スクロール期間Ttは、サムネイル列を構成するサムネイルの数に比例するように求められる。また、等速スクロール速度Tvは、ユーザがタッチオフするまでのタッチ位置TPのスライド量に基づいて求められる。より詳細には、例えば、等速スクロール速度Tvを計算するときには、タッチ位置TPの履歴に基づいて、ユーザがタッチオフする直前の予め定められた期間における所定の時間単位毎の左右方向のタッチ位置が用いられる。そして、当該期間中のタッチ位置TPの履歴に基づいて、所定の時間単位毎のタッチ位置TPの左右方向の移動距離がそれぞれスライド量(スライド速度)として求められる。例えば、求められたそれぞれのスライド量の平均を、等速スクロール速度Tvとして計算する。このように等速スクロール速度Tvを求めることにより、ユーザがタッチオフする直前のスライド量に応じて等速スクロール速度Tvで等速スクロールを開始できる。すなわち、ユーザがタッチオフするまでの操作感覚を反映した初速で等速スクロールを開始できる。なお、等速スクロール速度Tvの大きさに応じて、等速スクロール期間Ttを調整してもよい。
【0131】
また、減速スクロール期間Gtは、図15に一例として示すように、スクロール時間Stが等速スクロール期間Ttの終了タイミングを超えるときを開始タイミングとして、減速スクロール速度Gvが等速スクロール速度Tvから所定の減速度(負の加速度)Gaでしきい値th以下になるまでの期間として求められる。
【0132】
スクロール時間Stの計測を開始し、等速スクロール期間Tt、等速スクロール速度Tvおよび減速スクロール期間Gtが求められると、スライド操作の方向に応じた等速スクロール速度Tvの等速スクロールが等速スクロール期間Tt中に実行される。具体的には、等速スクロール期間Ttの開始タイミングで計測が開始されたスクロール時間Stが等速スクロール期間Ttの終了タイミングを超えるまで等速スクロールが実行される。等速スクロールが実行されるときには、計算された等速スクロール速度Tvがスクロール速度Svとして設定される。スクロール速度Svが設定されると、スクロールの方向に従って設定されたスクロール速度Svで移動するように各サムネイルのスクロール位置のGx座標が逐次減算または逐次加算される。各サムネイルのスクロール位置のGx座標を逐次減算または逐次加算する演算がされた後は、追従スクロールが実行されるときについて説明したように、演算後の各サムネイルのスクロール位置の座標に基づいて上述した手法により下側LCD12にサムネイルを示す画像が実際に表示され、等速スクロールが実現される。
【0133】
計測しているスクロール時間Stが等速スクロール期間Ttの終了タイミングを超えると、図15に一例として示すように、スクロール速度Svを漸減させる減速スクロールが実行される。減速スクロールが実行されるときには、スクロール時間Stが減速スクロール期間Gtの終了タイミングを超えるまで、所定の減速度Ga(負の加速度)で等速スクロール速度Tvから漸減する減速スクロール速度Gvが逐次計算される。そして、逐次計算される減速スクロール速度Gvがスクロール速度Svとして逐次設定される。減速スクロールは、逐次設定されるスクロール速度Svに基づいて、等速スクロールで説明した手法と同様の手法で各サムネイルのスクロール位置を逐次演算した結果に基づいて、下側LCD12にサムネイルを示す画像が表示されることによって実現される。
【0134】
スクロール速度Svがしきい値th以下になった後、スクロール時間Stが減速スクロール期間Gtの終了タイミングを超えると、停止スクロールが実行される。上述したように減速スクロール期間Gtは、スクロール時間Stが等速スクロール期間Ttを超えるときを開始タイミングとして、減速スクロール速度Gvが等速スクロール速度Tvからしきい値th以下になるまでの期間として求められる。従って、スクロール速度Svがしきい値th以下になるときとは、必然的にスクロール時間Stが減速スクロール期間Gtの終了タイミングとなる。
【0135】
ここで、停止スクロールとは、下側LCD12の中央位置Hcにいずれかのサムネイルが到来したときにスクロール速度Svがゼロになるように当該スクロール速度Svを漸減させるスクロールのことである。停止スクロールが実行されるときには、まず、上述したようにグローバル座標系における各サムネイルのスクロール位置とスクロール方向とに基づいて、スクロールを続けているサムネイルの中から次に中央位置HcとGx座標が一致するスクロール位置のサムネイルが特定される。中央位置Hcと次にGx座標が一致するスクロール位置のサムネイルが特定されると、特定されたサムネイルのスクロール位置と中央位置HcとのGx座標の間隔が停止距離Tkとして求められる。図16に示す一例では、左方向に減速スクロールしている場合において、次にGx座標が中央位置Hcと一致するサムネイルS19のスクロール位置CiのGx座標から中央位置HcのGx座標までの水平距離が停止距離Tkとして示されている。
【0136】
停止距離Tkが求められると、しきい値th以下となったときの減速スクロール速度Gvから、求めた停止距離Tkで、スクロール速度Svがゼロとなるように停止スクロール減速度Ka(負の加速度)が求められる。停止スクロール減速度Kaが求められると、しきい値th以下となったときの減速スクロール速度Gvから求められた停止スクロール減速度Kaで漸減する停止スクロール速度Kvが逐次計算される。そして、スクロール速度Svが停止スクロール速度Kvに逐次設定される。停止スクロールは、停止スクロール速度Kvに逐次設定されるスクロール速度Svに基づいて、減速スクロールで説明した手法と同様の手法で各サムネイルのスクロール位置のGx座標を逐次演算した結果に基づいて、下側LCD12にサムネイルを示す画像が実際に表示されることによって実現される。これにより、漸減するように逐次計算される停止スクロール速度Kvがゼロとなったときに停止距離Tkで中央位置Hcと左右方向の位置が一致すると特定されたサムネイルが中央位置Hcの左右方向の位置で停止する。図17において、下側LCD12の表示画面では、次に中央位置Hcと左右方向の位置が一致するサムネイルとして特定されたサムネイルS19の左右方向の位置が中央位置Hcの左右方向の位置に一致してスクロールが停止している。
【0137】
なお、本実施形態では、等速スクロール速度Tvがしきい値th以下である場合には、直ちに停止スクロールを実行してもよい。この場合、タッチオフされたときに中央位置Hcと左右方向の位置が一致するサムネイルの停止距離Tkが直ちに計算され、上述した停止スクロールが実行される。
【0138】
また、追従スクロール、等速スクロール、減速スクロールおよび停止スクロールのいずれかを実行しているとき、すなわち、スクロール表示処理を実行しているときにおいて、スクロールを継続できない場合がある。具体的には、サムネイル列を右方向にスクロールをさせている途中で、サムネイル列の左端に位置するサムネイルのスクロール位置のGx座標が中央位置HcのGx座標と一致する場合に、スクロールを停止させる。また、サムネイル列を左方向にスクロールをさせている途中で、サムネイル列の右端に位置するサムネイルのスクロール位置のGx座標が中央位置HcのGx座標と一致する場合にもスクロールを停止させる。このような場合において、左端または右端のサムネイルのスクロール位置のGx座標が中央位置HcのGx座標を超えないように各サムネイルの位置を演算してもよい。これにより、サムネイル列の両端に位置するサムネイルのいずれかのスクロール位置のGx座標が中央位置Hcを越えるようなスクロールが行われた場合には、当該サムネイルのスクロール位置のGx座標が中央位置HcのGx座標で停止するようにスクロール表示される。
【0139】
また、本実施形態では、上述の説明から明らかなように、一例として、スクロール表示処理においてタッチオフされた後、等速スクロール期間Tt、減速スクロール期間Gtおよび停止スクロール期間Ktにおいて設定されたスクロール速度Svでスクロールさせる自動的なスクロールが実行される。このように自動的なスクロールが実行されているときにおいて、再びユーザによってタッチオンされたとき、自動的なスクロールを強制的に停止し、上述で説明したスライド操作に応じた追従スクロールを再び実行してもよい。
【0140】
このように、本実施形態では、一例として、スライド操作でサムネイルをスライドさせながら、スライド速度を維持したままタッチオフしたときに、サムネイルの数に基づいて計算された等速スクロール期間Ttにおける等速スクロールが開始される。そして、等速スクロールをしてから、減速スクロールおよび停止スクロールでスクロール速度を漸減させてからスクロールを停止する。
【0141】
次に、ゲーム装置10で行われる処理動作を説明する前に、図18を参照して、表示制御プログラムを実行する際に用いられる各種データについて説明する。なお、図18は、表示制御プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図である。
【0142】
図18において、メインメモリ32には、操作データDa、アルバムデータDb、画像データDc、サムネイル位置データDd、フラグデータDeおよび表示制御プログラムなどで構成される各種プログラム群Paが記憶される。
【0143】
操作データDaは、タッチパネル13をユーザがタッチしている画面座標系のタッチ位置TPを示すデータ(タッチ位置データDa1)や操作ボタン14をユーザが操作している状態を示すデータ(操作ボタンデータDa2)が記憶される。例えば、タッチ位置TPや操作ボタン14の状態は、ゲーム装置10がゲーム処理する時間単位(例えば、1/60秒)毎に取得され、取得されたときにタッチ位置データDa1および操作ボタンデータDa2に記憶されて更新される。また、タッチ位置データDa1は、タッチ操作されているときには、タッチ位置TPを示し、タッチ操作されていないときには、タッチ操作されていない状態を、例えば、ヌル(Null)で示すデータが記憶される。また、本実施形態のタッチ位置データDa1は、例えば、少なくとも直前の所定回数(例えば5回)における処理で取得されたタッチ位置TPまたはヌルのいずれかを示す履歴を含む。従って、本実施形態では、タッチ位置データDa1に基づいて、タッチパネル13にタッチされている位置TPを判断できるだけでなく、タッチパネル13に対してタッチオンまたはタッチオフされているかを判断できる。具体的には、タッチ位置データDa1に記憶されている最新のデータが示す位置が現時点でユーザがタッチ操作しているタッチ位置TPであって、それ以前の状態がヌルである場合には当該タッチ位置TPにタッチオンされたと判断できる。一方、タッチ位置データDa1で示される最新のデータがヌルであって、その直前のデータがタッチ位置TPを示すデータである場合には当該タッチ位置TPでタッチオフされたと判断できる。
【0144】
アルバムデータDbは、表示制御プログラムに含まれるアルバム作成処理プログラムまたはアルバム表示処理プログラムを実行することに応じてメインメモリ32に記憶されるデータである。アルバム作成処理プログラムでは、上述で説明したように、当該プログラムが開始されたときにアルバムデータDbがメインメモリ32に生成される。また、アルバム表示処理プログラムでは、当該プログラムが開始されたときに、上述で説明したようにデータ保存用外部メモリ46からアルバムデータDbがメインメモリ32に読み込まれる。アルバムデータDbには、アルバムに登録されたカメラ画像CIのカメラ画像識別子Pidを記憶するカメラ画像識別子データDb1と、カメラ画像CIに対応するサムネイルのサムネイル識別子Pidを記憶するサムネイル識別子データDb2が含まれる。このアルバムデータDbの一例が、図6に示して説明したアルバムデータである。
【0145】
画像データDcは、カメラ画像データDc1およびサムネイルデータDc2を含んでいる。カメラ画像データDc1は、アルバム表示処理プログラムを実行するときに読み込まれるデータである。カメラ画像データDc1は、アルバム表示処理プログラムが開始されたときに読み込まれるアルバムデータDbに含まれるカメラ画像識別子Pidで示されるカメラ画像CIが記憶される。カメラ画像データDc1に記憶されるカメラ画像CIは、データ保存用外部メモリ46から読み込まれる。また、サムネイルデータDc2は、アルバム表示処理プログラムを実行するときに読み込まれるデータである。サムネイルデータDc2は、アルバム表示処理プログラムが開始されたときに読み込まれるアルバムデータDbに含まれるサムネイル識別子Sidで示されるサムネイルが記憶される。サムネイルデータDc2に記憶されるサムネイルは、データ保存用外部メモリ46から読み込まれる。
【0146】
なお、本実施形態では、一例として、アルバム作成処理プログラムにおいて、上述したアルバム作成画面に表示されるカメラ画像CIおよびサムネイルは、アルバムデータDbに含まれるカメラ画像識別子Pidとサムネイル識別子Sidとに関わらずに、必要に応じてデータ保存用外部メモリ46から直接読み込まれるものとする。
【0147】
サムネイル位置データDdは、サムネイルのグローバル座標系におけるスクロール位置を示すデータであり、スクロール表示処理によって生成または逐次更新されるデータである。
【0148】
フラグデータDeは、スクロール時間計測フラグDe1と停止スクロール減速度計算フラグDe2とを含んでいる。スクロール時間計測フラグDe1は、スクロール時間Stの計測を開始済みであるか否かを示すフラグデータである。スクロール時間計測フラグDe1は、スクロール時間Stの計測を開始済みであることをオンで示し、開始済みでないことをオフで示すフラグデータである。また、停止スクロール減速度計算フラグDe2は、停止スクロール減速度Kaを計算済みであるか否かを示すフラグデータである。停止スクロール減速度計算フラグDe2は、停止スクロール減速度Kaを計算済みであることをオンで示し、計算済みでないことをオフで示すフラグデータである。
【0149】
次に、図19〜図28を参照して、ゲーム装置10で実行される表示制御プログラムによる具体的な処理動作について説明する。なお、図19は、表示制御プログラムを実行することによってゲーム装置10が表示制御処理を行う一例を示すフローチャートである。また、図20〜図21は、ステップ103で実行されるアルバム作成処理の詳細な動作を示すサブルーチンである。また、図22は、ステップ105で実行されるアルバム表示処理の詳細な動作を示すサブルーチンである。また、図23〜図24は、ステップ302で実行されるサムネイル配置処理の詳細な動作を示すサブルーチンである。また、図25〜図28は、ステップ307で実行されるスクロール表示処理の詳細な動作を示すサブルーチンである。また、図19〜図28においては、ステップを「S」と略称している。
【0150】
まず、図19において、ゲーム装置10の電源(電源ボタン14F)がONされると、CPU311によってブートプログラム(図示せず)が実行され、これによりデータ保存用外部メモリ46に記憶されている、複数のアプリケーションプログラムを選択的に実行するプログラムがメインメモリ32にロードされる。ロードされたプログラムは、CPU311によって実行され、プログラム選択画面が下側LCD12に表示される(ステップ101)。プログラム選択画面では、後述するアルバム作成処理プログラムおよびアルバム表示処理プログラムを含む選択可能なアプリケーションプログラムが、例えば、アイコンで表示され、ユーザによるタッチ操作により選択できる。
【0151】
CPU311は、タッチ位置データDa1に基づいて、プログラム選択画面においてアルバム作成アプリケーションが選択されたか否かを判断する(ステップ102)。具体的には、CPU311は、タッチ位置データDa1を取得し、取得したタッチ位置データDa1で示される最新のタッチ位置TPが、下側LCD12におけるアルバム作成アプリケーションのアイコンの表示位置であるときに、アルバム作成アプリケーションが選択されたと判断できる。CPU311は、アルバム作成アプリケーションが選択されたと判断した場合(ステップ102:Yes)、アルバム作成処理を実行する(ステップ103)。以下、図20〜図21を参照して、上記ステップ103で行うアルバム作成処理の詳細な動作について説明する。
【0152】
図20において、CPU311は、ユーザにアルバムを作成させるためのアルバム作成画面を上側LCD22および下側LCD12に表示させ(ステップ201)、さらに、データ保存用外部メモリ46に記憶されているサムネイルをサムネイル識別子Sidと共にメインメモリ32に読み込んで下側LCD12に表示させる(ステップ202)。CPU311によってステップ201およびステップ202の処理が実行されたときには、図5に示すアルバム作成画面の表示例において、アルバム画像および選択枠画像Swを除く表示が上側LCD22および下側LCD12にそれぞれされている。アルバム作成画面およびサムネイルを表示させると、CPU311は、タッチ位置データDa1を取得する(ステップ203)。CPU311は、取得したタッチ位置データDa1で示される最新のタッチ位置TPに基づいて下側LCD12に表示されているいずれかのサムネイルにタッチ操作されたか否かを判断する(ステップ204)。CPU311は、タッチ位置データDa1によって示される最新のタッチ位置TPがいずれかのサムネイルの表示位置である場合、サムネイルにタッチ操作されたと判断し(ステップ204:Yes)、図5に一例として示すように、タッチ操作されたと判断したサムネイルの縁を強調する選択枠画像Swを表示させる(ステップ205)。
【0153】
一方、CPU311は、サムネイルにタッチ操作されていないと判断した場合(ステップ204:No)、ステップ203で取得したタッチ位置データDa1によって示される最新のタッチ位置TPに基づいて下側LCD12に表示されている「はずす」ボタンアイコンHbにタッチ操作されたか否かを判断する(ステップ206)。CPU311は、タッチ位置データDa1によって示される最新のタッチ位置TPが「はずす」ボタンアイコンHbの表示位置である場合、「はずす」ボタンアイコンHbにタッチ操作されたと判断し(ステップ206:Yes)、次のステップ207へ処理を進める。ステップ207において、CPU311は、上側LCD22において枠画像Hwに収められているアルバム画像として表示されているカメラ画像CIのカメラ画像識別子Pidと当該カメラ画像CIのサムネイルのサムネイル識別子Sidとを上述で説明したようにアルバムデータDbから削除し、順番を示す番号Nを上述したように更新する。
【0154】
一方、CPU311は、「はずす」ボタンアイコンHbにタッチ操作されていないと判断した場合(ステップ206:No)、ステップ203で取得したタッチ位置データDa1によって示される最新のタッチ位置TPに基づいて下側LCD12に表示されている「いれる」ボタンアイコンIbにタッチ操作されたか否かを判断する(ステップ208)。CPU311は、ステップ203で取得したタッチ位置データDa1によって示される最新のタッチ位置TPが「いれる」ボタンアイコンIbの表示位置である場合、「いれる」ボタンアイコンIbにタッチ操作されたと判断し(ステップ208:Yes)、次のステップ209へ処理を進める。ステップ209において、CPU311は、下側LCD12において選択されることによって選択枠画像Swで縁が強調されているサムネイルで示されるカメラ画像CIのカメラ画像識別子Pidと当該サムネイルのサムネイル識別子Sidとを上述で説明したようにアルバムデータDbに登録し、順番を示す番号Nを上述したように更新する。
【0155】
一方、CPU311は、「いれる」ボタンアイコンIbにタッチ操作されていないと判断した場合(ステップ208:No)、ステップ203で取得したタッチ位置データDa1によって示される最新のタッチ位置TPに基づいて下側LCD12に表示されている「完成」ボタンアイコンKbにタッチ操作されたか否かを判断する(ステップ220)。CPU311は、ステップ203で取得したタッチ位置データDa1によって示される最新のタッチ位置TPが下側LCD12に表示されている「完成」ボタンアイコンKbの表示位置である場合、「完成」ボタンアイコンKbにタッチ操作されたと判断し(ステップ220:Yes)、メインメモリ32に記憶されているアルバムデータDbをデータ保存用外部メモリ46に転送して(ステップ221)、当該サブルーチンによる処理を終了する。当該サブルーチンによる処理が終了すると、再び上述したプログラム選択画面が表示される。
【0156】
一方、CPU311は、「完成」ボタンアイコンKbにタッチ操作されていないと判断した場合(ステップ220:No)、操作ボタンデータDa2を取得する(ステップ222)。CPU311は、ステップ222で取得した操作ボタンデータDa2に基づいてRボタン14Hが押下されたか否かを判断する(ステップ223)。CPU311は、Rボタン14Hが押下されたと判断すると(ステップ223:Yes)、上側LCD22の中央に表示されているアルバム画像の右隣に表示されているアルバム画像が中央に表示されるように全てのアルバム画像を左にスクロールさせる(ステップ224)。一方、CPU311は、Rボタン14Hが押下されていないと判断すると(ステップ223:No)、ステップ222で取得した操作ボタンデータDa2に基づき、Lボタン14Gが押下されたか否かを判断する(ステップ225)。CPU311は、Lボタン14Gが押下されたと判断すると(ステップ225:Yes)、上側LCD22の中央に表示されているアルバム画像の左隣に表示されているアルバム画像が中央に表示されるように全てのアルバム画像を右にスクロールさせる(ステップ226)。
【0157】
CPU311は、選択枠画像Swを表示させたとき(ステップ205)、アルバムデータDbからカメラ画像識別子Pidとサムネイル識別子Sidとを削除したとき(ステップ207)、アルバムデータDbにカメラ画像識別子Pidとサムネイル識別子Sidとを登録したとき(ステップ209)、アルバム画像を左にスクロールさせたとき(ステップ224)またはアルバム画像を右にスクロールさせたとき(ステップ226)、ステップ203から処理を繰り返す。
【0158】
図19に戻り、CPU311は、アルバム作成アプリケーションが選択されていないと判断した場合(ステップ102:No)、タッチ位置データDa1に基づいて、アルバム表示アプリケーションが選択されたか否かを判断する(ステップ104)。具体的には、CPU311は、タッチ位置データDa1を取得し、取得したタッチ位置データDa1で示される最新のタッチ位置TPが、下側LCD12におけるアルバム表示アプリケーションのアイコンの表示位置であるときに、アルバム表示アプリケーションが選択されたと判断できる。CPU311は、アルバム表示アプリケーションが選択されたと判断した場合(ステップ104:Yes)、アルバム表示処理を実行する(ステップ105)。以下、図22を参照して、上記ステップ105で行うアルバム表示処理の詳細な動作について説明する。
【0159】
図22において、CPU311は、アルバムデータDbをデータ保存用外部メモリ46から読み込んでメインメモリ32に転送し(ステップ301)、サムネイル配置処理を実行する(ステップ302)。以下、図23〜図24を参照して、上記ステップ302で行うサムネイル配置処理の詳細な動作について説明する。
【0160】
図23において、CPU311は、配置位置を決定するサムネイルを認識するための順番を示す番号Nを1に初期化し(ステップ401)、アルバムデータDbに記憶されているサムネイル識別子Sidの中から番号Nで記憶されているサムネイル識別子Sidで示されるサムネイルの基本位置Kiを上述で説明したように求める(ステップ402)。基本位置Kiを求めると、CPU311は、順番を示す番号NのサムネイルのレートRとして計算するのが始点レートRsであるか否かを判断する(ステップ403)。具体的には、本実施形態では、上述の説明から明らかなように、CPU311は、番号Nが1〜7のいずれかであるとき、サムネイルのレートRとして計算するのが始点レートRsであると判断する。CPU311は、サムネイルのレートRとして計算するのが始点レートRsであると判断した場合(ステップ403:Yes)、上述の式(2)で示される始点レートRsを番号NのサムネイルのレートRとして計算して設定する(ステップ404)。一方、CPU311は、番号NのサムネイルのレートRとして計算するのが始点レートRsでないと判断した場合(ステップ403:No)、番号NのサムネイルのレートRとして計算するのが終点レートReであるか否かを判断する(ステップ405)。具体的には、本実施形態では、CPU311は、上述で説明したように、番号Nが24〜30のいずれかであるとき、サムネイルのレートRとして計算するのが終点レートReであると判断する。CPU311は、サムネイルのレートRとして計算するのが終点レートReであると判断した場合(ステップ405:Yes)、上述の式(3)で示される終点レートReを番号NのサムネイルのレートRとして計算して設定する(ステップ406)。一方、CPU311は、番号NのサムネイルのレートRとして計算するのが終点レートReでないと判断した場合(ステップ405:No)、番号NのサムネイルのレートRを1に設定する(ステップ407)。
【0161】
CPU311は、番号NのサムネイルについてレートRを設定すると、設定したレートRとステップ402で求めた基本位置KiのLy軸方向における位置とを乗算して、上述した当該サムネイルの配置位置を決定する(ステップ408)。配置位置を決定すると、CPU311は、決定した配置位置に基づいて上述した初期位置を計算し(ステップ420)、計算した初期位置を番号Nのサムネイルの初期位置としてサムネイル位置データDdに記憶させる(ステップ421)。初期位置を記憶させると、CPU311は、番号NがアルバムデータDbに登録されているサムネイルの最後の番号Nmaxと等しいか否かを判断する(ステップS422)。CPU311は、番号NがアルバムデータDbに登録されているサムネイルの最後の番号Nmaxと等しい場合(ステップ422:Yes)、アルバムデータDbに登録されている全てのサムネイルについて初期位置を決定したと判断し、決定した初期位置に基づいて下側LCD12に上述した初期画面を表示させ(ステップ423)、当該サブルーチンによる処理を終了する。一方、CPU311は、番号NがアルバムデータDbに登録されている最後の番号Nmaxと等しくない場合(ステップ422:No)、アルバムデータDbに登録されているサムネイルの中で初期位置を決定していないサムネイルが存在すると判断し、番号Nを1だけインクリメントして(ステップ424)、処理をステップ402から繰り返す。
【0162】
図22に戻り、CPU311は、タッチ位置データDa1を取得し(ステップ303)、取得したタッチ位置データDa1に基づいて下側LCD12に表示されているサムネイルにタッチオンされたか否かを判断する(ステップ304)。CPU311は、ステップ303で取得したタッチ位置データDa1で示される最新のタッチ位置TPが下側LCD12に表示されているいずれかのサムネイルの表示位置であって、上述した手法で当該タッチ位置TPへのタッチがタッチオンであると判断した場合、サムネイルにタッチオンされたと判断し(ステップ304:Yes)、タッチオンされたサムネイルで示されるカメラ画像CIを上側LCD22に表示させ(ステップ305)、次のステップ307へ処理を進める。一方、CPU311は、サムネイルにタッチオンされていないと判断した場合(ステップ304:No)、ステップ303で取得したタッチ位置データDa1に基づいて、下側LCD12において、サムネイルおよび「おわる」ボタンアイコンObの表示位置を除くスクロール受付領域にタッチオンされたか否かを判断する(ステップ306)。CPU311は、ステップ303で取得したタッチ位置データDa1で示される最新のタッチ位置TPが下側LCD12において、前述のスクロール領域であって、上述した手法で当該タッチ位置TPへのタッチがタッチオンであると判断した場合、スクロール受付領域にタッチオンされたと判断し(ステップ306:Yes)、次のステップ307へ処理を進める。
【0163】
CPU311が、ステップ304〜ステップ306の処理をすることにより、ユーザがサムネイルにタッチオンしたときには、タッチオンされたサムネイルのカメラ画像CIをアルバム画像として上側LCD22に表示させてからスクロール表示処理に移行できる。一方で、CPU311が、ステップ304〜ステップ306の処理をすることにより、下側LCD12の表示領域においてサムネイルおよび「おわる」ボタンアイコンObを除く領域にユーザがタッチオンしたときにはそのままスクロール表示処理に移行できる。
【0164】
一方、CPU311は、ステップ303において取得した最新のタッチ位置TPがスクロール受付領域に含まれていないと判断したとき(ステップ306:No)、当該タッチ位置TPが下側LCD12に表示されている「おわる」ボタンアイコンObの表示位置であるか否かを判断する(ステップ308)。CPU311は、タッチ位置が「おわる」ボタンアイコンObの表示位置であると判断したとき(ステップ308:Yes)、「おわる」ボタンアイコンObにタッチ操作されたと判断して、当該サブルーチンによる処理を終了する。当該サブルーチンによる処理が終了すると、再び上述したプログラム選択画面が表示される。一方、CPU311は、タッチ位置が「おわる」ボタンアイコンObの表示位置でないと判断したとき(ステップ308:No)、処理をステップ303から繰り返す。
【0165】
図19に戻り、CPU311は、アルバム表示アプリケーションが選択されていないと判断したとき(ステップ104:No)、プログラム選択画面に表示されている他のアプリケーションプログラムが選択されたか否かを判断する(ステップ106)。具体的には、CPU311は、タッチ位置データDa1を取得し、取得したタッチ位置データDa1で示される最新のタッチ位置TPが、下側LCD12における他のアプリケーションプログラムを示すアイコンの表示位置であるときに、他のアプリケーションプログラムが選択されたと判断できる。CPU311は、他のアプリケーションプログラムが選択されたと判断すると(ステップ106:Yes)、選択されたアプリケーションプログラムを実行した後、処理をステップ108へ進める。一方、CPU311は、他のアプリケーションプログラムが選択されていないと判断したとき(ステップ106:No)、処理をステップ108へ進める。
【0166】
CPU311は、アルバム作成処理(ステップ103)、アルバム表示処理(ステップ105)、他のアプリケーションプログラムの処理(ステップ107)をそれぞれ終了した後、および、他のアプリケーションプログラムが選択されなかったとき(ステップ106:No)、プログラム選択画面において「終了」ボタンアイコンにタッチ操作されたか否かを判断する(ステップ108)。具体的には、CPU311は、タッチ位置データDa1を取得し、取得したタッチ位置データDa1で示される最新のタッチ位置TPが、下側LCD12における「終了」ボタンアイコンの表示位置であるときに、「終了」ボタンアイコンがタッチ操作されたと判断できる。CPU311は、「終了」ボタンアイコンにタッチ操作されたと判断すると(ステップ108:Yes)、ゲーム装置10の電源をOFFにして処理を終了する。一方、CPU311は、「終了」ボタンアイコンにタッチ操作されていないと判断すると(ステップ108:No)、プログラム選択画面の表示を継続して、ユーザにプログラムを選択させる。
【0167】
図22を再び参照して、CPU311は、上述したようにステップ305の処理をしたときまたはステップ306でYesと判断したとき、処理をステップ307のスクロール表示処理へ進める。以下、図25〜図29を参照して、上記ステップ307で行うスクロール表示処理の詳細な動作について説明する。
【0168】
図25において、CPU311は、タッチ位置データDa1を取得し(ステップ501)、最新のタッチ位置TPとそれよりも1つだけ以前のタッチ位置TPの左右方向の位置の差分を差分距離として計算する(ステップ502)。CPU311は、差分距離を計算すると、計算した差分距離だけサムネイル列を左右方向に移動させたときの各サムネイルのスクロール位置を計算する(ステップ503)。
【0169】
CPU311は、各サムネイルの移動後のスクロール位置を計算すると、計算したスクロール位置に基づき、サムネイル列のスクロールを継続できるか否かを判断する(ステップ504)。より詳細には、CPU311は、ステップ501で取得したタッチ位置データDa1に基づいて、スクロールの方向が右方向および左方向のいずれかを判断する。CPU311は、スクロールの方向が左方向であると判断した場合には、サムネイル列の右端のサムネイルの移動後のスクロール位置と中央位置HcとのGx座標を比較する。具体的には、CPU311は、移動後の右端のサムネイルのスクロール位置のGx座標が中央位置HcのGx座標と一致する場合、スクロールを継続できないと判断し、中央位置HcのGx座標よりも大きい場合、スクロールを継続できると判断する。一方、CPU311は、スクロールの方向が右方向であると判断した場合には、サムネイル列の左端のサムネイルの移動後のスクロール位置と中央位置HcとのGx座標を比較する。具体的には、CPU311は、移動後の左端のサムネイルスクロール位置のGx座標が中央位置HcのGx座標と一致する場合、スクロールを継続できないと判断し、中央位置HcのGx座標よりも小さい場合、スクロールを継続できると判断する。以下では、CPU311が、スクロールを継続できるか否かを判断するときには、同様の手法を用いるものとする。
【0170】
CPU311は、スクロールを継続できると判断したとき(ステップ504:Yes)、ステップ503で計算したスクロール位置まで各サムネイルを移動させる水平スクロールを実行し、移動後の各サムネイルのスクロール位置でサムネイル位置データDdを更新する(ステップ505)。CPU311は、ステップ502〜ステップ505の処理をすることにより、最新のタッチ位置TPと1つだけ以前のタッチ位置TPの位置との左右方向の差分距離だけサムネイル列をスクロールさせる水平スクロールをステップ507でタッチオフされたと判断されるまで継続する。すなわち、CPU311は、ステップ502〜ステップ507の処理をすることにより、タッチ位置TPに従ってサムネイルをスクロールさせる追従スクロールをタッチオフされるまで実行できる。
【0171】
一方、CPU311は、ステップ505の処理をしたとき、またはスクロールを継続できないと判断したとき(ステップ504:No)、タッチ位置データDa1を取得する(ステップ506)。CPU311は、取得したタッチ位置データDa1に基づいて上述した手法でユーザがタッチオフしたか否かを判断する(ステップ507)。
【0172】
CPU311は、ユーザがタッチオフしていないと判断したとき(ステップ507:No)処理をステップ501から繰り返す。一方、CPU311は、ユーザがタッチオフしたと判断したとき(ステップ507:Yes)、ステップ509の処理をするときにおいてスクロールを継続できるか否かを上述した手法で判断する(ステップ508)。CPU311は、スクロールを継続できると判断したとき(ステップ508:Yes)、ステップ521へ処理を進める。一方、CPU311は、スクロールを継続できないと判断したとき(ステップ508:No)、ステップ547へ処理を進める。
【0173】
CPU311は、ステップ507の処理をすることにより、ユーザがタッチオフしていないと判断したときには、ステップ501から処理を繰り返して上述した追従スクロールを継続できる。一方、CPU311は、ステップ507の処理をすることにより、ユーザがタッチオフしたと判断したときには、さらに、ステップ508でスクロールを継続できると判断したときに、処理をステップ521に進めて等速スクロールのための処理に移行できる。
【0174】
図26において、CPU311は、スクロール時間計測フラグDe1がオンとなっているか否かを判断する(ステップ521)。CPU311は、スクロール時間計測フラグDe1がオンとなっていると判断したとき(ステップ521:Yes)、処理をステップ528へ進める。一方、CPU311は、スクロール時間計測フラグDe1がオンとなっていないと判断したとき(ステップ521:No)、RTC38から出力されるカウントされた時間に基づいて、スクロール時間Stの計測をゼロから開始し(ステップ522)、メインメモリ32に記憶されているスクロール時間計測フラグDe1をオンにする(ステップ523)。
【0175】
後述で明らかとなるが、スクロール時間Stの計測を開始済みである場合には、等速スクロール速度Tv、等速スクロール期間Ttおよび減速スクロール期間Ttが計算済みということになる。従って、CPU311は、ステップ521の処理でスクロール時間Stの計測を開始済みであるか否かを判断することによって、等速スクロール速度Tv、等速スクロール期間Ttおよび減速スクロール期間Ttを計算済みであるか否かを判断できる。そして、CPU311は、スクロール時間Stの計測を開始済みであると判断したときには、等速スクロール速度Tv、等速スクロール期間Ttおよび減速スクロール期間Ttを計算する処理をスキップしてステップ528へ処理を進められる。
【0176】
スクロール時間計測フラグDe1をオンにするとCPU311は、等速スクロール速度Tvを計算する(ステップ524)。具体的には、CPU311は、タッチ位置データDa1に含まれるタッチ位置TPの履歴に基づいて、上述したように等速スクロール速度Tvを計算する。次に、CPU311は、計算した等速スクロール速度Tvがしきい値th以下であるか否かを判断する(ステップ525)。CPU311は、計算した等速スクロール速度Tvがしきい値th以下でないと判断したとき(ステップ525:No)、サムネイル列を構成するサムネイルの数に基づいて上述したように等速スクロール期間Ttを計算し(ステップ526)、さらに、上述したように減速スクロール期間Gtを計算する(ステップ527)。一方、CPU311は、ステップ524で計算した等速スクロール速度Tvがしきい値th以下であると判断したとき(ステップ525:Yes)、ステップ541へ処理を進める。
【0177】
CPU311は、ステップ525において計算した等速スクロール速度Tvがしきい値th以下である場合には処理をステップ541へスキップする。等速スクロール速度Tvがしきい値th以下であるにも関わらず等速スクロール期間Ttで等速スクロールをすると、中央位置HcとGx座標を一致させて停止させなければならないサムネイルがスクロール速度Svを漸減させる前に到来してしまい、滑らかなスクロールを実現できない。そこで、本実施形態では、一例として、等速スクロール速度Tvがしきい値th以下である場合には、処理をステップ541へスキップして直ちに停止スクロールのための処理を実行する。これにより、どのような等速スクロール速度Tvが計算された場合でもサムネイルのスクロール速度Svを漸減させながら、上述したようにスクロールすることによって次にGx座標が中央位置Hcと一致するサムネイルのスクロール位置のGx座標を中央位置HcのGx座標で滑らかに停止させることのできるスクロールを実現できる。
【0178】
減速スクロール期間Gtを計算するとCPU311は、計測中のスクロール時間Stが等速スクロール期間Ttの終了タイミング以前であるか否かを判断する(ステップ528)。CPU311は、スクロール時間Stが等速スクロール期間Ttの終了タイミング以前であると判断したとき(ステップ528:Yes)、サムネイルをスクロールさせるときのスクロール速度Svとして等速スクロール速度Tvを設定する(ステップ529)。一方、CPU311は、計測中のスクロール時間Stが等速スクロール期間Ttの終了タイミング以前でないと判断したとき(ステップ528:No)、計測中のスクロール時間Stが減速スクロール期間Gtの終了タイミング以前であるか否かを判断する(ステップ530)。CPU311は、計測中のスクロール時間Stが減速スクロール期間Gtの終了タイミング以前であると判断すると(ステップS530:Yes)、所定の減速度Gaで上述したように減速スクロール速度Gvを計算し(ステップ531)、サムネイルをスクロールさせるときのスクロール速度Svとして計算した減速スクロール速度Gvを設定する(ステップ532)。
【0179】
CPU311は、ステップ528の処理でスクロール時間Stが等速スクロール期間Ttの終了タイミング以前でないと判断したときには、さらに、ステップ530でスクロール時間Stが減速スクロール期間Gtの終了タイミング以前であると判断したときに減速スクロール速度Gvを計算し(ステップ531)、計算した減速スクロール速度Gvをスクロール速度Svとして設定する。つまり、CPU311は、ステップ528およびステップ530の処理をすることにより、スクロール時間Stに基づき、必要に応じて等速スクロールのための処理から減速スクロールのための処理に移行できる。また、CPU311は、ステップ530において、スクロール時間Stが減速スクロール期間Gtの終了タイミング以前でないと判断したときには、スクロール時間Stが停止スクロール期間Ktの開始タイミングから終了タイミングまでの間であるとみなして、ステップ541へ処理を進めて停止スクロールのための処理へ移行できる。
【0180】
CPU311は、スクロール速度Svとして等速スクロール速度Tvを設定する(ステップ529)またはスクロール速度Svとして減速スクロール速度Gvを設定する(ステップ532)と、処理をステップ547へ進める。
【0181】
一方、図27において、CPU311は、計測中のスクロール時間Stが減速スクロール期間Gtの終了タイミング以前でないと判断したとき(ステップ530:No)または、上述したように等速スクロール速度Tvがしきい値th以下であると判断したとき(ステップ525:Yes)、停止スクロール減速度計算フラグDe2がオンであるか否かを判断する(ステップ541)。CPU311は、停止スクロール減速度計算フラグDe2がオンでない場合(ステップ541:No)、Gx座標が次に中央位置HcのGx座標と一致するスクロール位置のサムネイルを、サムネイル位置データDdで示される各サムネイルのスクロール位置に基づいて判断し、当該サムネイルのスクロール位置を取得する(ステップ542)。CPU311は、次に中央位置HcのGx座標と一致するサムネイルのスクロール位置を取得すると、取得したスクロール位置に基づいて上述で説明したように停止スクロール減速度Kaを計算し(ステップ543)、停止スクロール減速度Kaを計算済みであることを示すようにメインメモリ32に記憶されている停止スクロール減速度計算フラグDe2をオンにする(ステップ544)。CPU311は、停止スクロール減速度計算フラグDe2をオンにする(ステップ544)または停止スクロール減速度計算フラグDe2がオンであると判断したとき(ステップ541:No)、計算済みの停止スクロール減速度Kaに基づいて上述したように停止スクロール速度Kvを計算し(ステップ545)、サムネイルをスクロールさせるときのスクロール速度Svとして停止スクロール速度Kvを設定する(ステップ546)。
【0182】
上述の説明から明らかなように、本実施形態の一例では、停止スクロール減速度Kaは一度計算すれば、再びスクロール表示処理を開始するまで計算する必要がない。従って、CPU311は、ステップ541で停止スクロール減速度Kaを計算済みであると判断した場合には、ステップ545へ処理をスキップできる。
【0183】
CPU311は、サムネイルをスクロールさせるときのスクロール速度Svとして等速スクロール速度Tvを設定する(ステップ529)、減速スクロール速度Gvを設定する(ステップ532)または停止スクロール速度Kvを設定する(ステップ546)と、タッチ位置データDa1を取得する(ステップ547)。CPU311は、取得したタッチ位置データDa1に基づいて上述した手法でユーザによってタッチオンされたか否かを判断する(ステップ548)。CPU311は、タッチオンされていないと判断したとき(ステップ548:No)、設定したスクロール速度Svを用いて水平スクロールさせたときの各サムネイルのスクロール位置を計算する(ステップ549)。
【0184】
図28において、CPU311は、スクロール速度Svを用いて計算した各サムネイルのスクロール位置に基づいて上述した手法でスクロールを継続できるか否かを判断する(ステップ561)。CPU311は、スクロールを継続できると判断したとき(ステップ561:Yes)、ステップ549で計算したスクロール位置まで各サムネイルを移動させてスクロールさせ、計算後の各サムネイルのスクロール位置でサムネイル位置データDdを更新し(ステップ562)、処理をステップ521から繰り返す。
【0185】
一方、CPU311は、スクロールを継続できないと判断したとき(ステップ561:No)またはタッチオンされたと判断したとき(ステップ548:Yes)、サムネイルのスクロールを停止し(ステップ563)、スクロール時間Stの計測を停止してゼロにリセットし(ステップ564)、スクロール時間計測フラグDe1および停止スクロール減速度計測フラグDe2をそれぞれオフにし(ステップ565)、当該サブルーチンによる処理を終了する。
【0186】
本実施形態では、一例として、上述したようにステップ529、ステップ532またはステップ546でスクロール速度Svを設定した後、直ちにスクロール後の各サムネイルの位置を計算するのではなく、ステップ547〜ステップ548の処理でユーザによってタッチオンされたか否かを判断する。これにより、CPU311は、等速スクロール、減速スクロールまたは停止スクロールの自動的なスクロールを実行しているときにタッチオンされたときには、ステップ563へ処理をスキップしてスクロールを停止させることができる。この場合には、CPU311は、図22のフローチャートに戻って、ステップ308では、ステップ548で判断されたタッチオンのタッチ位置TPに基づいて「おわる」ボタンアイコンObにタッチ操作されたか否かが判断される。そして、CPU311は、「おわる」ボタンアイコンObにタッチ操作されていないと判断した場合には、ステップ303から処理を繰り返して上述した追従スクロールのための処理へ移行できる。
【0187】
以上が、本実施形態においてゲーム装置10によって行われる表示制御処理の一例の説明である。本実施形態では、上述したように、サムネイル配置処理において、それぞれのサムネイルの配置位置の下側LCD12の上下方向(Ly軸方向)における位置を、少なくとも他の1つのサムネイルに対して異なる位置になるように正弦関数を用いて決定した。そして、このように決定した配置位置にそれぞれのサムネイルを配置することによってサムネイル列が波形となるように表示手段に表示することができる。このようにサムネイル列を波形にすることにより、配置位置にサムネイル毎の視覚的な特徴を付与することができる。具体的には、例えば、あるサムネイルは波形の頂点位置(具体的には、波形を示す正弦波の極大点または極小点などのピークを生ずる位置)に配置されているという特徴や、あるサムネイルは隣り合う前述の頂点位置の中間に配置されているという特徴である。このように、本実施形態に係るゲーム装置10によれば、サムネイル列が波形になるようにサムネイルをそれぞれ配置することにより、視覚的な特徴をユーザに直感的に認識させ、目的のサムネイルを探すための指標を自然に与え、所望のサムネイルをより短い時間で探すことができる。
【0188】
また、上述の説明では、サムネイル配置処理において、それぞれのサムネイルの配置位置の下側LCD12の上下方向(Ly軸方向)における位置を、少なくとも他の1つのサムネイルに対して異なる位置になるように正弦関数を用いて決定した。しかしながら、必ずしも正弦関数を用いて決定せずともよく、それぞれのサムネイルの配置位置の下側LCD12の上下方向(Ly軸方向)における位置を、少なくとも他の1つのサムネイルに対して異なる位置になるように決定すればよい。これにより、他の少なくとも1つのサムネイルに対して異なる位置に設定した下側LCD12の上下方向における位置でサムネイルをユーザに視認させることができ、ユーザは、当該位置を指標として所望のサムネイルをより短い時間で探すことができる。
【0189】
また、上述の説明では、サムネイル列を波形にすることにより、上述したようにサムネイル毎の配置位置に視覚的な特徴を付与するものとした。しかしながら、他の一実施形態では、隣り合うサムネイルの下側LCD12の上下方向における位置が連続的に変化するように、それぞれのサムネイルの配置位置を決定してもよい。これによって、下側LCD12の左右方向(Lx軸方向)に並ぶように配置位置が決定されたサムネイルの下側LCD12の上下方向(Ly軸方向)における位置が連続的に変化するので、ユーザは、各サムネイルの当該上下方向における位置を指標としてそれぞれのサムネイルのおおよその位置を把握できる。
【0190】
また、他の一実施形態では、サムネイル列が斜め方向(右上がり方向または右下がり方向)に向かう直線形になるようにそれぞれのサムネイルの配置位置を決定してもよい。このように、サムネイル列を直線形にしたとしても、下側LCD12の上下方向におけるそれぞれのサムネイルの配置位置には視覚的な特徴を付与できる。具体的には、例えば、あるサムネイルは隣に配置されているサムネイルよりも下側LCD12の上方向または下方向に配置されているなどの視覚的な特徴である。従って、サムネイル列を直線形にすることによっても、視覚的な特徴をユーザに直感的に認識させて、目的のサムネイルを探すための指標を自然に与えることができる。ただし、サムネイル列を波形にしたときにおける、あるサムネイルは波形の頂点位置に配置されているおよびあるサムネイルは隣り合う前述の頂点位置の中間に配置されているなどの特徴の方が、サムネイル列を直線形にしたときに現れる特徴よりもユーザにとって認識しやすい特徴となる。
【0191】
また、上述の説明では、サムネイルの配置位置を正弦関数を用いて決定し、サムネイル列を波形にするものとした。しかしながら、サムネイルの配置位置は、正弦関数に限られず、余弦関数などを用いてサムネイル列を波形にしてもよい。また、サムネイル列は、正弦関数、或いは余弦関数に限られず、図29に一例として示すように、頂点Pを有する形状であれば、三角波状など形状に沿って配置されたサムネイルから構成されていてもよい。サムネイル列が頂点Pを有する形状に沿って配置されたサムネイルから構成されるようにすることによって、頂点Pに位置するサムネイルを指標として近傍に位置するサムネイルをユーザに視覚的に記憶させて目標となるサムネイルを探しやすくさせることができる。
【0192】
また、頂点Pを有する形状に沿ってサムネイルを配置する場合において、必ずしも頂点Pの位置にサムネイルを配置する必要はない。頂点Pにサムネイルを配置しない場合には、頂点Pの近傍に配置されているサムネイルが頂点に位置するようにユーザに視認される。このため、頂点Pにサムネイルを配置せずとも、ユーザは頂点に位置すると認識したサムネイルを指標として目標となるサムネイルを容易に探すことができる。頂点Pを有する形状の他の一例としては、例えば、鋸波関数を用いて決定される鋸波形状などが挙げられる。
【0193】
また、上述したように、正弦関数、余弦関数、三角波関数および鋸波関数など周知の形状を用いることにより、サムネイル列をユーザに親しみのある形状にすることができる。これにより、ユーザは、親しみのある形状に基づいて、指標となる頂点または頂点付近に配置されているサムネイルをより容易に認識でき、目的のサムネイルをより短い時間で探すことができる。
【0194】
また、上述したように、正弦関数、余弦関数、三角波関数および鋸波関数などで決定される形状、すなわち、周期的に頂点が生じる形状に沿ってサムネイルを配置することにより、ユーザは、周期的に現れる複数の頂点を指標として、目的のサムネイルをよりも短い時間で探すことができる。
【0195】
また、上述の説明では、サムネイルの配置位置の下側LCD12の左右方向(Lx軸方向)における位置は、番号Nで示される順番に従って等間隔となるように決定するものとした。そして、サムネイルの配置位置の下側LCD12の上下方向(Ly軸方向)における位置は、等間隔な位置を示す番号Nをパラメータとする正弦関数で決定されるものとした。これは、上述したように、余弦関数、三角波関数および鋸波関数を用いてサムネイルの配置位置の下側LCD12の上下方向(Ly軸方向)における位置を決定する場合も同様である。また、サムネイルの配置位置の下側LCD12の左右方向(Lx軸方向)における位置は、等間隔でなくてもよく、Lx軸方向における任意の間隔であってもよい。サムネイルの配置位置の下側LCD12の左右方向(Lx軸方向)における位置を任意の間隔にする場合には、Lx軸方向の座標値をパラメータとする上記正弦関数、余弦関数、三角波関数および鋸波関数を用いて、下側LCD12の上下方向(Ly軸方向)における位置を決定すればよい。
【0196】
また、上述の説明では、サムネイルの配置位置を正弦関数を用いて決定する場合を一例として説明した。このように正弦関数を用いてサムネイルの配置位置を決定すると、決定した配置位置のLy軸方向における位置、すなわち、Ly軸方向と平行なLx軸からの変位量は、並んでいるサムネイルの順番に従って繰り返し増減することとなる。従って、本実施形態によれば、一例として、サムネイルを下側LCD12に表示するときに表示領域の上下方向にはみ出ないように配置位置を決定することができる。また、サムネイルが下側LCD12の表示領域から上下方向にはみ出ない程度に、増減量を適切な大きさにすることもできるので、ユーザは、それぞれのサムネイルの下側LCD12の上下方向(Ly軸方向)における配置位置を区別して認識しやすくなる。
【0197】
また、上述の説明では、スクロール方向に直交する下側LCD12の上下方向(Ly軸方向)におけるサムネイルの配置位置を少なくとも他の1つのサムネイルに対して異なるように決定した。これにより、ユーザがサムネイルをスクロールさせたときには、各サムネイルが表示画面に現れるときに、下側LCD12の上下方向において互いに異なる位置に現れるので、サムネイルがスクロールしていることを下側LCD12に現れるときの上下方向の位置の変化で示すことができる。さらに、上述の説明では、スクロール方向に直交する下側LCD12の上下方向(Ly軸方向)におけるサムネイルの配置位置を少なくとも他の1つのサムネイルに対して異なるよう正弦関数を用いて連続的に変化するように決定した。これにより、ユーザがサムネイルをスクロールさせたときのスクロール速度を、各サムネイルが表示画面に現れたときの、下側LCD12の上下方向における位置の変化の程度で示すことができる。このように、スクロール方向と異なる方向におけるサムネイルの配置位置を少なくとも1つのサムネイルに対して異なるように決定することにより、サムネイルがスクロールしていること、或いはスクロール速度などを、下側LCD12の表示領域に所謂スクロールバーを表示させることなくユーザに示すことができる。このことは、正弦関数に限らず、上述した余弦関数、三角波関数および鋸波関数などを用いる場合も同様である。
【0198】
また、上述の説明では、サムネイル列の頂点のLx軸方向における位置が、両端側のサムネイルのLx軸方向の位置に近くなるにつれて、当該頂点のLy軸方向における位置が両端のオブジェクトのLy軸方向の位置(図10Cに示す例ではLy座標=0)に近くなるようにレートRを用いて決定される場合について説明した。これにより、下側LCD12の表示画面にスクロール表示されているサムネイルの配置位置の頂点の下側LCD12の上下方向(Ly軸方向)における位置が大きくなってきた場合には、表示されているサムネイルのスクロール方向における位置が中央側であることをユーザに視覚的に認識させることができる。一方、下側LCD12の表示画面にスクロール表示されているサムネイルの配置位置の頂点の下側LCD12の上下方向(Ly軸方向)における位置が小さくなってきた場合には、表示されているサムネイルのスクロール方向における位置が両端側のいずれかであることをユーザに視覚的に認識させることができる。
【0199】
なお、周期的に生じる頂点のLx軸方向における位置が両端側のサムネイルのLx軸方向の位置に近くなるにつれて近づけるLy軸方向の位置は、Ly座標がゼロの位置でなくともよく、両端で互いに同じ位置であればよい。また、周期的に生じる頂点の左右方向における位置がサムネイル列の両端に近くなるにつれて、当該頂点の上下方向の位置が両端のサムネイルのLy座標(本実施例ではLy座標がゼロとなる位置)に近くなる形状とは、正弦関数など周期的に増減する関数の振幅がゼロに近くなる(小さくなる)形状のことである。
【0200】
また、他の一実施形態では、サムネイル列の頂点のLx軸方向における位置が、両端側のサムネイルのLx軸方向の位置に近くなるにつれて、当該頂点のLy軸方向における位置が両端のオブジェクトのLy軸方向の位置(図10Cに示す例ではLy座標=0)から離れるようにレートRを用いて決定してもよい。これにより、下側LCD12の表示画面にスクロール表示されているサムネイルの配置位置の頂点の下側LCD12の上下方向(Ly軸方向)における位置が大きくなってきた場合には、表示されているサムネイルのスクロール方向における位置が両端側のいずれかであることをユーザに視覚的に認識させることができる。一方、下側LCD12の表示画面にスクロール表示されているサムネイルの配置位置の頂点の下側LCD12の上下方向(Ly軸方向)における位置が小さくなってきた場合には、表示されているサムネイルのスクロール方向における位置が中央側であることをユーザに視覚的に認識させることができる。
【0201】
また、サムネイルの配置位置の下側LCD12の左右方向(Lx軸方向)における位置は、任意の間隔であってもよいことを上述したが、例えば、Lx軸方向においてサムネイル列の両端側から中央側に向かうに従って広くなるように或いは狭くなるように決定してもよい。これにより、下側LCD12の表示画面にスクロール表示されているサムネイルの配置位置の下側LCD12の左右方向(Lx軸方向)における間隔が、狭くなってきた或いは広くなってきた場合に、表示されているサムネイルのスクロール方向における位置がサムネイル列の両端側のいずれか、または、中央側であることをユーザに視覚的に認識させられる。
【0202】
また、上述の説明では、複数のサムネイルを、下側LCD12の上下方向(Ly軸方向)における位置が少なくとも他の1つのサムネイルに対して異なる位置になるように、下側LCD12の左右方向(Lx軸方向)に、番号Nで示される順番に並べて配置する場合を一例として説明した。ここで、下側LCD12の左右方向は、スクロール表示処理におけるスクロール方向と一致する。すなわち、上述の説明では、一例として、サムネイルを並べて配置する方向と、スクロール方向とを一致させる場合を説明した。番号Nで示される順番でスクロール方向と一致する方向にサムネイルを並べて、スクロールさせることにより、ユーザは、アルバムに登録されているサムネイルの順番を指標として、目的のサムネイルをより短い時間で探すことができる。
【0203】
また、上述の説明では、アルバムデータDbには、カメラ画像識別子Pidおよびサムネイル識別子Sidを記憶させるものとした。しかしながら、他の一実施形態では、アルバムデータDbにカメラ画像CIおよびサムネイルを直接記憶させてもよい。
【0204】
また、上述の説明では、図10Bに一例として示したようにレートRを示す曲線が左右対称である場合を一例として説明した。しかしながら、他の一実施形態では、レートRを示す曲線は、左右対称でなくてもよい。
【0205】
(変形例)
上記第1の実施形態では、スクロール表示処理においてスクロール時間Stを計測しながら当該スクロール時間Stに基づいてサムネイルのスクロールを制御していた。これに対して、他の一実施形態では、サムネイルのスクロールをスクロール距離に基づいて制御してもよい。以下、図30〜図32を参照しながら、本変形例におけるスクロール表示処理について説明する。なお、図30は、本変形例において等速スクロールを開始してからスクロールが停止するまでのスクロール速度とスクロール距離との関係の一例を示す図である。また、図31は、本変形例における計算スクロール距離Zkおよび総スクロール距離Skの一例を示す図である。また、図32は、本変形例におけるスクロール表示処理の詳細な動作を示すサブルーチンである。
【0206】
図30において、Kyはスクロール距離であり、Tkは等速スクロール距離であり、Gkは減速スクロール距離であり、Skは総スクロール距離であり、Zkは計算スクロール距離である。
【0207】
本変形例では、図30に一例として示すように、ユーザがスライド操作したときのスライド速度を維持したままタッチオフすると、スライド操作に応じた方向にサムネイルを等速で水平スクロールさせる。本変形例では、等速スクロールおよび減速スクロールでサムネイルをスクロールさせて停止させる。等速スクロールを開始するときには、まず、スクロール距離Kyの計測を開始する。また、スクロール距離Kyの計測開始と共に、総スクロール距離Sk、計算スクロール距離Zk、等速スクロールにおける等速スクロール距離Tk、等速スクロール速度Tvおよび減速スクロールにおける減速スクロール距離Gkが求められる。
【0208】
図31には、下側LCD12においてタッチオフしたときの中央位置Hcを基準として計算される計算スクロール距離Zkおよび総スクロール距離Skの一例が示されている。等速スクロールを開始するときには、図31に一例として示すように、タッチオフしたときの中央位置Hcを基準としてサムネイル列を構成するサムネイルの数に応じて計算スクロール距離Zkが計算される。例えば、計算スクロール距離Zkは、サムネイル列を構成するサムネイルの数に所定の定数を乗算して計算する。つまり、計算スクロール距離Zkは、サムネイル列を構成するサムネイルの数に比例するように求められる。しかし、サムネイルの数に所定の定数を乗算して計算される計算スクロール距離Zkは、図31に一例として示すように、中央位置Hcからいずれかのサムネイルのスクロール位置Ciまでの距離とはならない場合がある。従って、計算スクロール距離Zkだけスクロールさせると、スクロールの停止後には、下側LCD12の中央にいずれかのサムネイルが位置しなくなる場合がある。そこで、本変形例では、計算スクロール距離Zkを計算し、計算した計算スクロール距離Zkに最も近いサムネイルのスクロール位置Ciまでの距離を総スクロール距離Skとする。
【0209】
総スクロール距離Skが求められると、次に、等速スクロール距離Tkおよび減速スクロール距離Gkが求められる。本変形例において、等速スクロール距離Tkは、一例として、サムネイル列を構成するサムネイルの数に所定の定数を乗算することによって求められる。つまり、本変形例において、等速スクロール距離Tkは、一例として、サムネイル列を構成するサムネイルの数に比例するように求められる。また、減速スクロール距離Gkは、総スクロール距離Skから等速スクロール距離Tkを減算して求められる。本変形例では、図31から明らかなように、第1の実施形態で説明した停止スクロールは実行せずに減速スクロールを実行してスクロールを停止させるため、減速スクロール距離Gkでスクロール速度Svがゼロとなるように減速スクロール減速度Gaが計算される。また、本変形例において等速スクロール速度Tvは、第1の実施形態で説明した手法と同様の手法で計算されるものとする。
【0210】
等速スクロール距離Tkおよび等速スクロール速度Tvが求められると、スクロール距離Kyが等速スクロール距離Tkを超えるまで、等速スクロール速度Tvのスライド操作の方向に応じた等速スクロールが実行される。本変形例においても、等速スクロールが実行されるときには、第1の実施形態と同様に、計算された等速スクロール速度Tvにスクロール速度Svが設定され、各サムネイルのスクロール位置のGx座標が逐次演算されることにより、等速スクロールが実現される。
【0211】
計測しているスクロール距離Kyが等速スクロール距離Tkを超えると、図30に一例として示すように、スクロール速度Svを漸減させる減速スクロールが実行される。減速スクロールが開始されると、計算した減速スクロール減速度Gaで等速スクロール速度Tvから漸減する減速スクロール速度Gvが逐次計算される。そして、スクロール速度Svが減速スクロール速度Gvに逐次設定される。減速スクロールは、第1の実施形態と同様に、逐次設定されるスクロール速度Svに基づいて、各サムネイルのスクロール位置のGx座標を逐次演算することにより実現される。そして、減速スクロール速度Gvがゼロになるとスクロールが停止してサムネイルが下側LCD12の中央位置Hcで停止する。
【0212】
次に、図32を参照して、本変形例におけるゲーム装置10で実行される表示制御プログラムによる具体的な処理動作について説明する。本変形例における表示制御プログラムは図32に示すスクロール表示処理の一部を除いて第1の実施形態と同様である。従って、本変形例の表示制御プログラムの説明では、図32を参照して、第1の実施形態との相違点についてのみ説明をする。なお、本変形例では、図示はしていないが、第1の実施形態で説明したスクロール時間計測フラグDe1の代わりにスクロール距離計測フラグDe3がフラグデータDeに含まれるものとする。スクロール距離計測フラグDe3は、スクロール距離Kyの計測を開始済みであることをオンで示し、開始済みでないことをオフで示すフラグデータである。
【0213】
本変形例では、CPU311は、スクロールを継続できると判断したとき(ステップ508:Yes)、図32におけるステップ601へ処理を進める。図32において、CPU311は、スクロール距離Kyを計測中であることを示すスクロール距離計測フラグDe3がオンとなっているか否かを判断する(ステップ601)。CPU311は、スクロール距離計測フラグDe3がオンとなっていると判断したとき(ステップ601:Yes)、処理をステップ608へ進める。一方、CPU311は、スクロール距離計測フラグDe3がオンとなっていないと判断したとき(ステップ601:No)、スクロール距離Kyの計測をゼロから開始し(ステップ602)、スクロール距離計測フラグDe3をオンにする(ステップ603)。このとき計測されるスクロール距離Kyは、スクロール開始時のいずれかのサムネイルのスクロール位置の初期位置からのGx座標の変化量を計測すればよい。スクロール距離計測フラグDe3をオンにするとCPU311は、等速スクロール速度Tvを上述したように計算し(ステップ524)、上述したように計算スクロール距離Zk、等速スクロール距離Tk、減速スクロール距離Gkおよび減速スクロール減速度Gaをそれぞれ計算する(ステップ604〜ステップ607)。
【0214】
計算スクロール距離Zk、等速スクロール距離Tk、減速スクロール距離Gkおよび減速スクロール減速度Gaをそれぞれ計算すると、CPU311は、計測しているスクロール距離Kyが等速スクロール距離Tk以内であるか否かを判断する(ステップ608)。CPU311は、計測中のスクロール距離Kyが等速スクロール距離Tk以内であると判断したとき(ステップ608:Yes)、サムネイルをスクロールさせるときのスクロール速度Svとして等速スクロール速度Tvを設定する(ステップ529)。一方、CPU311は、計測中のスクロール距離Kyが等速スクロール距離Tk以内でないと判断したとき(ステップ608:No)、計測中のスクロール距離Kyが減速スクロール距離Gk内であるか否かを判断する(ステップ609)。CPU311は、計測中のスクロール距離Kyが減速スクロール距離Gk内であると判断したとき(ステップ609:Yes)、減速スクロール減速度Gaを用いて減速スクロール速度Gvを計算する(ステップ531)。一方、CPU311は、計測中のスクロール距離Kyが減速スクロール期間Gk内でないと判断したとき、ステップ547へ処理を進める。
【0215】
本変形例では、CPU311は、ステップ608の処理でスクロール距離Kyが等速スクロール距離Tk内でないと判断したときには、さらに、ステップ609でスクロール距離Kyが減速スクロール距離Gk内であると判断したときに減速スクロール速度Gvを計算し(ステップ531)、計算した減速スクロール速度Gvをスクロール速度Svとして設定する。つまり、本変形例では、CPU311は、ステップ608およびステップ609の処理をすることにより、スクロール距離Kyに基づき、必要に応じて等速スクロールのための処理から減速スクロールのための処理に移行できる。
【0216】
以上が、第1の実施形態の変形例においてゲーム装置10によって行われる表示制御処理の一例の説明である。第1の実施形態では、スクロール時間Stに基づいてサムネイル列のスクロールを制御していたのに対して、本変形例では、スクロール距離Kyに基づいてサムネイル列のスクロールを制御する。このように、スクロール距離Kyに基づいても第1の実施形態と同様にサムネイル列のスクロールを制御できる。
【0217】
また、本実施形態では、上述したように、一例として、スクロール表示処理において、ユーザがタッチパネル13にタッチオンしてスライド操作をしながらタッチオフすると、等速スクロールを実行した後、減速スクロールおよび停止スクロールをしてスクロール速度Svを所定の減速度Gaで漸減させながらスクロールを停止させる。また、本実施形態では、一例として、等速スクロールをするときの等速スクロール期間Ttをサムネイル列を構成するサムネイルの数に基づいて計算する。
【0218】
上述したように、第1の実施形態および第1の実施形態の変形例(以下、単に変形例と称する)のいずれにおいても、スクロール表示処理では、一例として、ユーザがタッチパネル13にタッチオンしてスライド操作をしながらタッチオフすると、等速スクロールを実行した後、減速スクロールおよび停止スクロールをする。そして、第1の実施形態では、一例として、等速スクロールをするときの等速スクロール期間Ttをサムネイル列を構成するサムネイルの数に基づいて(比例するように)計算し、変形例では、一例として、等速スクロールをするときの等速スクロール距離Tkをサムネイル列を構成するサムネイルの数に基づいて(比例するように)計算する。このように、上述の説明では、等速スクロール期間Ttまたは等速スクロール距離Tkをサムネイル列を構成するサムネイルの数に基づいて計算してから等速スクロールを実行する場合を一例として説明した。
【0219】
例えば、本実施形態の等速スクロールをせずに、スクロール速度Svを漸減させるスクロールのみをすると、サムネイルの数が相対的に多い場合には、目的とするサムネイルを表示させるまでに時間がかかってしまう。また、スクロール速度Svを漸減させるスクロールのみをする場合において、数が相対的に多いサムネイルの中から目的とするサムネイルが表示されるまでの時間を短くするために、所定の減速度を小さくすることが考えられる。しかしながら、この場合には、目的とするサムネイルが近づいてくると低い速度の緩慢なスクロールが続いてしまい、ユーザに煩わしさを感じさせてしまう。
【0220】
そこで、第1の実施形態および変形例におけるスクロール表示処理では、スクロール速度Svを漸減させるスクロールをする前に、等速スクロールを実行する。このように、等速スクロール期間Ttまたは等速スクロール距離Tkで等速スクロールを実行してからスクロール速度Svを漸減させることにより、サムネイルの数が相対的に多い場合にも、目的とするサムネイルが表示されるまでの時間を短縮でき、ユーザに煩わしさを感じさせることを防げる。
【0221】
また、上述で説明した本実施形態の一例によれば、サムネイル列を構成するサムネイルの数に応じて等速スクロール期間Ttを変化させるので、適切な等速スクロール期間Ttで等速スクロールを実行した後、スクロール速度Svを漸減させることができる。
【0222】
また、上述で説明した本実施形態の一例では、サムネイル列を構成するサムネイルの数に応じて等速スクロール期間Ttを変化させるので、スクロール速度Svを所定の減速度で漸減させられる。従って、上述で説明した第1の実施形態の一例によれば、登録されているサムネイルの数が異なるアルバムを選択したとしても、スクロールを停止させるときの減速度を同一にしてユーザに与える操作感覚を統一することができ、違和感を与えることを防げる。このことは、オブジェクトの大きさに応じて等速スクロール期間Ttを変化させる場合でも同様である。
【0223】
また、第1の実施形態では、サムネイル列を構成する全てのサムネイルの数に基づいて等速スクロール期間Ttを計算するものとし、変形例では、サムネイル列を構成する全てのサムネイルの数に基づいて等速スクロール距離Tkを計算するものとした。つまり、上述の説明では、等速スクロールするときの等速スクロール量を示す等速スクロールパラメータの一例として、等速スクロール期間Ttまたは等速スクロール距離Tkを計算するものとした。しかしながら、他の一実施形態によれば、例えば、等速スクロール期間Ttおよび等速スクロール距離Tkなどの等速スクロールパラメータを、図33に一例として示すように、タッチオフしたときの中央位置Hcからスクロール方向におけるサムネイルの残りの数に基づいて計算してもよい。図33に示す一例では、タッチオフしたときの中央位置Hcからスクロール方向におけるサムネイルの残りの数は、4番目〜29番目までの27個となる。このように、スクロール方向におけるサムネイルの残りの数に基づいて、等速スクロール期間Ttまたは等速スクロール距離Tkを計算する場合には、スクロール方向におけるサムネイルの残りの数に比例するように等速スクロール期間Ttまたは等速スクロール距離Tkを計算してもよい。これにより、スクロール方向における残りのサムネイルの数が多いほど、等速スクロール期間Ttを長くするまたは等速スクロール距離Tkを長くすることができ、目的とするサムネイルが表示されるまでの期間を短縮できる。また、等速スクロール期間Ttまたは等速スクロール距離Tk以外にも、例えば、変形例で説明した計算スクロール距離Zkなどをスクロール方向における残りのサムネイルの数に基づいて計算しても同様の効果を得ることができる。
【0224】
なお、上記第1の実施形態および変形例の説明では、等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどをサムネイル列を構成するサムネイルの数に基づいて計算する場合を一例として説明した。しかしながら、他の一実施形態では、等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどをスクロール方向におけるスクロール可能な距離(スクロール可能量)に基づいて計算してもよい。図33は、スクロール方向におけるスクロール可能な距離の一例として、タッチオフしたときの中央位置Hcからスクロール方向において末端に位置するサムネイルのスクロール位置Ciまでの距離Nkの一例を示す図である。図33に一例として示す距離Nkなど、スクロール方向におけるスクロール可能な距離に基づいて、例えば、当該距離が長いほど等速スクロール期間Ttを長くする、等速スクロール距離Tkを長くするまたは計算スクロール距離Zkを長くするなど、スクロール方向におけるスクロール可能な距離に比例するようにこれらを計算することにより目的とするサムネイルが表示されるまでの期間を短縮できる。
【0225】
また、上述の説明では、複数のサムネイルからなるサムネイル列をスクロール対象としてスクロールする場合を一例として説明した。しかしながら、他の一実施形態では、複数の任意の表示オブジェクトからなる表示オブジェクト列または表示オブジェクト群をスクロール対象としてスクロールしてもよい。この場合において、上述で説明したようにサムネイル列を構成する全体のサムネイルの数に基づいて等速スクロール期間Tt、等速スクロール距離Tkまたは計算スクロール距離Zkを計算するのと同様に、表示オブジェクト列または表示オブジェクト群を構成する表示オブジェクトの数に基づいて等速スクロール期間Tt、等速スクロール距離Tkまたは計算スクロール距離Zkを計算してもよい。さらに、上述で説明したようにスクロール方向における残りのサムネイルの数に基づいて等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkを計算するのと同様に、スクロール方向における残りの表示オブジェクトの数に基づいて等速スクロール期間Tt、等速スクロール距離Tkまたは計算スクロール距離Zkを計算してもよい。
【0226】
また、上述の説明では、下側LCD12の表示画面全体を表示領域としてスクロール表示する場合を一例として説明した。しかしながら、他の一実施形態では、下側LCD12の表示画面の一部において上述で説明したスクロール表示をしてもよい。
【0227】
また、上述の説明では、複数のオブジェクトからなるオブジェクト群またはオブジェクト列をスクロール対象としてもよいことを説明した。しかしながら、他の一実施形態では、任意の1つのオブジェクトをスクロール対象としてもよい。そして、この場合において、スクロール対象となる1つのオブジェクトの全体の大きさに対する下側LCD12の表示領域の大きさの割合に基づいて等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどを計算してもよい。図34〜図35は、表示オブジェクトHoの大きさOrに対する下側LCD12の表示領域の大きさの割合に基づいて、表示オブジェクトHoをスクロールする際の等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどを計算する場合の一例を示す図である。
【0228】
図34は、下側LCD12の表示領域に1つの表示オブジェクトHoの一部が表示されている場合において、タッチパネル13に対してスライド操作してタッチオフされるときの下側LCD12の表示領域と表示オブジェクトHoとのグローバル座標系における位置関係の一例を示す図である。図34において、Toは下側LCD12の表示領域においてタッチオフされる位置を示す。また、図35は、図34に一例として示すようにタッチオフされた後にスクロールさせたときのグローバル座標系における下側LCD12の表示領域と表示オブジェクトHoとの位置関係を示す図である。図34および図35に示すように下側LCD12の表示領域に対して表示オブジェクトHoをスクロールさせるときに、表示オブジェクトHoの大きさOrに対する下側LCD12の表示領域の大きさの割合に基づいて等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkを計算してもよい。具体的な一例としては、下側LCD12の表示領域の大きさに対する表示オブジェクトHoの大きさOrの割合に比例するように、等速スクロール期間Tt、等速スクロール距離Tkまたは計算スクロール距離Zkを計算してもよい。
【0229】
また、下側LCD12の表示領域の割合を求めるときの表示オブジェクトHoの大きさOrは、図34および図35に示す一例では、表示オブジェクトHoの最大幅および最大高さからなる四角形の大きさであるものとした。しかしながら、表示オブジェクトHoの大きさOrは、表示オブジェクトHoの外形の面積であってもよい。
【0230】
また、図34には、スライド操作したときのタッチオフ位置Toからスライド方向とは反対方向であってタッチオフ位置Toから当該反対方向における表示オブジェクトHoの大きさHrの端部までの距離を示す残り距離ベクトルShも示されている。他の一実施形態では、例えば、図34に一例として示すような残り距離ベクトルShの大きさ(長さ)に基づいて、等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどを計算してもよい。具体的には、残り距離ベクトルShの大きさ(長さ)に比例するように等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどのいずれかを計算してもよい。そして、計算した結果に基づいて、当該残り距離ベクトルShの方向部分の表示オブジェクトHoが下側LCD12の表示領域に表示されるように図35に一例として示すように当該表示オブジェクトHoをスクロールさせてもよい。この場合、残り距離ベクトルShの長さが、スクロール可能長さとなる。
【0231】
また、図34には、スライド操作したときのタッチオフ位置Toからスライド方向とは反対方向であってタッチオフ位置Toから当該反対方向における表示領域の端部までの距離を示す残り表示距離ベクトルHnも示されている。他の一実施形態では、例えば、図34に一例として示すような残り距離ベクトルShの長さと残り表示距離ベクトルHnの長さとの割合に基づいて、等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどのいずれかを計算してもよい。具体的な一例としては、残り表示距離ベクトルHnの長さに対する残り距離ベクトルShの長さの割合に比例するように、等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどのいずれかを計算してもよい。
【0232】
また、第1の実施形態および変形例では、サムネイル列を構成するサムネイルを下側LCD12の左右方向(Lx軸方向)に並べ、タッチパネル13に対するスライド操作の方向成分の内、上下方向成分を無視し、サムネイルを並べる方向と同一の左右方向成分のみに基づいて、左右方向のスクロールする場合を一例として説明した。このように、サムネイルを並べる方向とスクロール方向とを一致させることにより、ユーザが、サムネイルの配置方向とスクロール方向とをずらしてしまうことによってサムネイルを見失うことを防ぎながら、サムネイルに触れるような感覚でスクロール操作を実行できる。このことは、左右方向のスクロールに限られず、任意の方向にスクロールさせるときについても同様である。
【0233】
また、第1の実施形態および変形例では、等速スクロール速度Tvを上述で説明したように、ユーザがタッチオフするまでのタッチ位置TPのスライド量に基づいて求めるものとした。このように等速スクロール速度Tvを求めることにより、ユーザがタッチオフする直前のスライド量に応じて等速スクロール速度Tvで等速スクロールを開始できる。すなわち、ユーザがタッチオフするまでの操作感覚を反映した初速で等速スクロールを開始できる。なお、等速スクロール速度Tvの大きさに応じて、等速スクロール期間Ttを調整してもよい。
【0234】
また、第1の実施形態では、等速スクロールにおけるスクロール量を示すパラメータとして、等速スクロール期間Ttを求め、スクロール時間Stと等速スクロール期間Ttとに基づいて、等速スクロールを制御するものとした。このように、等速スクロールを時間で制御することにより、等速スクロールにかかる時間が過度に長くなることを防いでユーザに与える煩わしさをなくすことができる。
【0235】
また、変形例では、等速スクロールにおけるスクロール量を示すパラメータとして、等速スクロール距離Tkを求め、スクロール距離Kyと等速スクロール距離Tkとに基づいて、等速スクロールを制御するものとした。このように、等速スクロールを距離で制御することにより、等速スクロールをする距離が過度に長くなりスクロールしすぎてしまうことによって、目標とするサムネイルが表示領域からはみ出て見失うことを防げる。
【0236】
また、変形例では、総スクロール距離Skから等速スクロール距離Tkを減算した減算スクロール距離Gkを残りのスクロール量として計算して、減算スクロール距離Gkでスクロール速度Svが等速スクロール速度Tvからゼロとなるように減速スクロール減速度Gaを計算するものとした。このように、残りのスクロール量に基づいて減速度を計算することにより、等速スクロール距離Tkに基づいて等速スクロールを距離で制御する場合において、総スクロール距離Skにおける当該等速スクロール距離Tkの長さに関わらずに、適切な滑らかさでスクロールを停止させられる。このことは、等速スクロール期間Ttに基づいて等速スクロールを時間で制御する場合も同様である。つまり、残りのスクロール量に基づいて減速度を計算することにより、スクロール全体動作における等速スクロールのスクロール量に関わらずに、適切な滑らかさでスクロールを停止させられる。
【0237】
また、上述した第1の実施形態では、等速スクロールを時間で制御する場合において、下側LCD12の中央位置Hcにいずれかのサムネイルが到来したときにスクロール速度Svがゼロになってスクロールが停止するように当該スクロール速度Svを漸減させる停止スクロールをするものとした。また、上述した変形例では、等速スクロールを距離で制御する場合において、サムネイルの数に所定の定数を乗算して計算される計算スクロール距離Zkが、中央位置Hcからいずれかのサムネイルのスクロール位置Ciまでの距離とはならない場合を考慮して、計算スクロール距離Zkを計算し、計算した計算スクロール距離Zkに最も近いサムネイルのスクロール位置Ciまでの距離を総スクロール距離Skとするものとした。つまり、上述の説明では、等速スクロールの制御手法に関わらず、スクロールを停止させるときにサムネイルが下側LCD12の中央位置Hcと左右方向の位置が一致するように停止させる場合について説明した。これにより、スクロール停止後のサムネイルに対するタッチ位置TPを同一にすることができ、ユーザは、スクロール停止後のサムネイルを選択しやすくなる。
【0238】
また、上述した説明では、複数のサムネイルを配置する方向と、スクロール方向とが下側LCD12の左右方向である場合を一例として説明した。しかしながら、他の一実施形態では、複数のサムネイルを配置する方向と、スクロール方向とを下側LCD12の上下方向にしてもよい。
【0239】
また、上述した説明では、グローバル座標系において、下側LCD12の表示領域を固定し、サムネイル列或いは表示オブジェクトを移動させる演算をしてスクロールさせる場合を一例として説明した。しかしながら、他の一実施形態では、グローバル座標系において、サムネイル列或いは表示オブジェクトを固定し、下側LCD12の表示領域を移動させる演算をしてスクロールさせてもよい。
【0240】
また、上述した説明では、サムネイル列を波形にするために用いる正弦関数の周期の長さは変化させないものとした。しかしながら、他の一実施形態では、サムネイル列を波形にするために用いる正弦関数の周期の長さをサムネイル列を構成するサムネイルの数に応じて変化させてもよい。このことは、正弦関数だけでなく、余弦関数、三角波関数、鋸波関数などをサムネイルの配置位置を決定するために用いるときも同様である。
【0241】
また、上述した説明では、互いに直交するLx軸とLy軸とを用いてサムネイルの配置位置を決定する場合を一例として説明をした。しかしながら、他の一実施形態では、互いに直交する座標軸を用いなくてもよく、平行でない任意の方向の2つの軸を座標軸として用いてサムネイルの配置位置を決定してもよい。
【0242】
また、上述の説明において、等速スクロール期間Tt、等速スクロール距離Tk、等速スクロール速度Tvは等速スクロールのスクロール量を示すパラメータと考えることができる。また、上述の説明において、減速スクロール期間Gt、減速スクロール速度Gv、減速スクロール距離Gkは減速スクロールのスクロール量を示すパラメータと考えることができる。また、上述の説明において、停止スクロール期間Kt、停止スクロール速度Kvは、停止スクロールのスクロール量を示すパラメータと考えることができる。すなわち、上述の説明において、スクロールの期間、速度および距離は、スクロール量を示すパラメータと考えることができる。
【0243】
また、上述の説明では、サムネイル列をスクロールさせるときに、必ず等速スクロールを含むスクロールをさせる場合を一例として説明した。しかしながら、他の一実施形態では、任意のオブジェクトまたはオブジェクト群などのスクロール対象をスクロールさせるときに、等速スクロールを含まないスクロールさせてもよい。より詳細には、他の一実施形態において、スクロール対象をスクロールさせるときに、スクロール対象の大きさまたはスクロール対象に含まれるオブジェクトの数、もしくはスクロール操作に応じたスクロール方向においてスクロール対象がスクロール可能なスクロール可能量に基づいて、スクロール対象のスクロールを開始してから停止するまでのスクロール量を示すパラメータを算出するのであれば、等速スクロールを含まないスクロールをさせてもよい。このように、等速スクロールを含まないスクロールをさせる場合であっても、スクロール対象の大きさまたはスクロール対象に含まれるオブジェクトの数、もしくはスクロール操作に応じたスクロール方向においてスクロール対象がスクロール可能なスクロール可能量に基づいて、最適なパラメータを算出すれば(例えば、これらの値に比例するようにパラメータを算出すれば)、オブジェクトを見つけようとするユーザに煩わしさを感じさせることのないスクロールを行える。
【0244】
また、上記第1の実施形態では、タッチパネル13を用いてタッチ操作に応じてアルバム表示アプリケーションが選択されたときに、アルバム表示処理を開始してサムネイル配置処理でサムネイルを配置するものとした。さらに、上記第1の実施形態では、タッチパネル13を用いてタッチ操作或いはスライド量などを検出して等速スクロールを含むスクロールを制御していた。しかしながら、他の一実施形態では、タッチパネル13を用いたタッチ操作或いはスライド量の検出ではなく、操作ボタン14の操作状態を検出してアルバム作成処理およびアルバム表示処理を実行してもよい。具体的には、プログラム選択画面において操作ボタン14の操作状態に基づいてアルバム作成処理またはアルバム表示処理が選択されたと判断したときに、選択された処理を実行するようにする。また、アルバム作成処理では、操作ボタン14の操作状態に基づいて、各種ボタンアイコンを選択できるようにし、選択されたボタンアイコンに応じて第1の実施形態で説明した処理と同様の処理を実行するようにする。また、アルバム表示処理では、操作ボタン14の操作状態に基づいていずれかのサムネイルが選択されたと判断したときに、選択されたサムネイルで示されるカメラ画像CIを上側LCD22に表示するようにしてもよい。また、アルバム表示処理では、十字ボタン14Aの操作状態に基づいて、左右方向のいずれかの入力が検出されたときに、入力時間に比例して対応するスクロール方向へのスクロール速度を漸次増加させていき、検出されなくなったときのスクロール速度を初速として、上述で説明したように等速スクロールを開始してもよい。
【0245】
また、他の一実施形態では、マウスから出力される座標情報など、他のポインティングデバイスから出力される座標情報に基づいてスクロールを制御してもよい。例えば、マウスから出力される座標情報に基づいてスクロールを制御する場合には、任意のボタンを押下したまま当該マウスを移動させる所謂ドラッグ操作を上述したスライド操作と同等の操作として検出するようにして上述した追従スクロールを実行し、ドラッグ操作されている状態で当該ボタンが押下されなくなった状態への変化の検出を上述したタッチオフと同等の操作として検出するようにすれば、上述の説明と同様に追従スクロールの処理から等速スクロールのための処理へ移行して、上述の説明と同様にスクロール表示処理を実行できる。また、マウスをタッチパネル13の代わりに用いる場合には、典型的に設けられているスクロールホイールの回転操作を上述で説明したスライド操作と同等の操作として検出し、当該スクロールホイールの回転状態から非回転状態への変化を上述で説明したタッチオフと同等の操作として検出するようにしても、上述の説明と同様にスクロール表示処理を実行できる。また、マウスの他にも、トラックパッド、トラックボール等を入力手段として使用しても、同様にスクロールを制御することができる。
【0246】
また、ゲームコントローラをユーザが把持してゲームを楽しむ据置型のゲーム装置の場合、他の態様のポインティングデバイスも考えられる。例えば、ゲームコントローラのハウジングに固設されたカメラを、上記ポインティングデバイスとして利用することも可能である。この場合、ゲームコントローラのハウジングで指し示した位置の変化に応じてカメラが撮像する撮像画像が変化する。従って、この撮像画像を解析することにより、表示画面に対して上記ハウジングで指し示した座標を算出することができる。なお、本発明においては、ゲーム装置10にタッチパネル13等のポインティングデバイス自体が設けられていなくても実現可能であることは言うまでもない。
【0247】
また、第1の実施形態では、説明を簡単にするため、実世界の平面画像が表示される例を用いて説明をした。しかしながら、上述した立体視可能な画像がカメラ画像CIとして表示される場合にも本発明は適用可能であることは言うまでもない。立体視可能な画像がカメラ画像CIとして表示される場合には、その内の左目用画像を用いて当該画像を示すサムネイルの画像データが生成され、当該カメラ画像CIと対応させてデータ保存用外部メモリ46に記憶させられる。
【0248】
また、上述した説明では、アルバムデータDbに登録されているカメラ画像CIが30枚である場合を一例として説明した。しかしながら、アルバムデータDbに登録可能なカメラ画像CIは、2以上の任意の数であればよい。
【0249】
また、他の一実施形態において、登録されているカメラ画像CIの一部または全部が互いに異なる複数のアルバムデータDbがデータ保存用外部メモリ46にそれぞれ記憶されていてもよい。この場合、ステップ101の説明で述べた複数のアプリケーションプログラムを選択的に実行するプログラムが実行されることによって表示されるプログラム選択画面において、これらのアルバムデータDbを示すアイコンが個別に選択可能なように表示され、選択されたアイコンに対応するアルバムデータDbが読み込まれる。
【0250】
また、上記第1の実施形態では、上側LCD22がパララックスバリア方式の液晶表示装置であるとして、視差バリアのON/OFFを制御することにより、立体表示と平面表示とを切り替えることができる。他の一実施形態では、例えば、上側LCD22としてレンチキュラー方式の液晶表示装置を用いて、立体画像および平面画像を表示可能としてもよい。レンチキュラー方式の場合でも、外側撮像部23で撮像した2つの画像を縦方向に短冊状に分割して交互に配置することで画像が立体表示される。また、レンチキュラー方式の場合でも、内側撮像部24で撮像した1つの画像をユーザの左右の目に視認させることによって、当該画像を平面表示させることができる。すなわち、レンチキュラー方式の液晶表示装置であっても、同じ画像を縦方向に短冊状に分割し、これら分割した画像を交互に配置することにより、ユーザの左右の目に同じ画像を視認させることができる。これにより、内側撮像部24で撮像された画像を平面画像として表示することが可能である。
【0251】
また、上述した実施形態では、2画面分の液晶表示部の一例として、物理的に分離された下側LCD12および上側LCD22を互いに上下に配置した場合(上下2画面の場合)を説明した。しかしながら、2画面分の表示画面の構成は、他の構成でもかまわない。例えば、下側ハウジング11の一方主面に下側LCD12および上側LCD22を左右に配置してもかまわない。また、下側LCD12と横幅が同じで縦の長さが2倍のサイズからなる縦長サイズのLCD(すなわち、物理的には1つで、表示サイズが縦に2画面分あるLCD)を下側ハウジング11の一方主面に配設して、2つの画像(例えば、撮像画像と操作説明画面を示す画像等)を上下に表示(すなわち上下の境界部分無しに隣接して表示)するように構成してもよい。また、下側LCD12と縦幅が同じで横の長さが2倍のサイズからなる横長サイズのLCDを下側ハウジング11の一方主面に配設して、横方向に2つの画像を左右に表示(すなわち左右の境界部分無しに隣接して表示)するように構成してもよい。すなわち、物理的に1つの画面を2つに分割して使用することにより2つの画像を表示してもかまわない。また、物理的に1つの画面を2つに分割して使用することにより上記2つの画像を表示する場合、当該画面全面にタッチパネル13を配設してもかまわない。
【0252】
また、上述した実施例では、ゲーム装置10にタッチパネル13が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上側LCD22の上面にタッチパネル13を設けて上側LCD22に上述した下側LCD12に表示していた表示画像を表示し、下側LCD12に上述した上側LCD22に表示していた表示画像を表示してもよい。
【0253】
また、上記実施例では、携帯型のゲーム装置10や据置型のゲーム装置を用いて説明したが、一般的なパーソナルコンピュータ等の情報処理装置で本発明の画像処理プログラムを実行して、本発明を実現してもかまわない。また、他の実施形態では、ゲーム装置に限らず任意の携帯型電子機器、例えば、PDA(Personal Digital Assistant)や携帯電話、パーソナルコンピュータ、カメラ等であってもよい。例えば、携帯電話が、1つのハウジングの主面に2つの表示部と、実カメラとを備えてもよい。
【0254】
また、上述したゲーム装置10の形状や、それに設けられている各種操作ボタン14、アナログスティック15、タッチパネル13の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した表示制御処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【0255】
また、上記表示制御プログラム(ゲームプログラム)は、外部メモリ45やデータ保存用外部メモリ46等の外部記憶媒体を通じてゲーム装置10に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置10に供給されてもよい。また、上記プログラムは、ゲーム装置10内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、或いはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを一時的に記憶する揮発性メモリでもよい。
【0256】
また、上述した説明では、上記表示制御プログラムが情報処理部31で実行される例を用いたが、上記表示制御プログラムの少なくとも一部を、当該情報処理部31と通信可能な他の装置に備えられた少なくともCPUからなる情報処理部で実行しても構わない。例えば、ゲーム装置10が他の装置(例えば、サーバなど)と通信可能に構成されている場合、上記表示制御プログラムにおける処理は、ゲーム装置10および当該他の装置が協働することによって実行してもよい。一例として、他の装置において、上記表示制御プログラムが実行され、当該プログラムの実行に必要なタッチオン、タッチオフ、スライド操作などの操作の検出、当該プログラムの実行に必要な表示を行う表示装置などは、それぞれゲーム装置10のタッチパネル13、および下側LCD12を用いるように構成した表示制御システムにおいて、上記表示制御プログラムを実行してもよい。
【0257】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。従って、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0258】
本発明に係る表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法は、ユーザに所望の表示オブジェクトを探しやすい表示が可能であり、各種画像を表示装置に表示する処理を行う表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法等として有用である。
【符号の説明】
【0259】
10…ゲーム装置
11…下側ハウジング
12…下側LCD
13…タッチパネル
14…操作ボタン
15…アナログスティック
16…LED
17…挿入口
18…マイクロフォン用孔
19…無線スイッチ
21…上側ハウジング
22…上側LCD
23…外側撮像部
23a…外側左撮像部
23b…外側右撮像部
24…内側撮像部
25…3D調整スイッチ
26…3Dインジケータ
27…スクリーンカバー
28…タッチペン31…情報処理部
311…CPU
312…GPU
313…VRAM
32…メインメモリ
33…外部メモリI/F
34…データ保存用外部メモリI/F
35…データ保存用内部メモリ
36…無線通信モジュール
37…ローカル通信モジュール
38…RTC
39…加速度センサ
40…角速度センサ
41…電源回路
42…I/F回路
43…マイク
44…スピーカ
45…外部メモリ
46…データ保存用外部メモリ
【技術分野】
【0001】
本発明は、表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法に関し、より具体的には、オブジェクトの配置表示を行う表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法に関する。
【背景技術】
【0002】
従来、写真画像のサムネイルなどのオブジェクトを複数表示する装置が提案されている(例えば、特許文献1参照)。上記特許文献1で開示された画像処理装置では、複数の画像データで示される画像を横一列に配置し、ユーザにスクロールさせることにより、任意の画像をユーザに閲覧させる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−50901号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1で開示された画像処理装置は、複数のオブジェクトを横一列に配置するだけであり、1度見つけたオブジェクトの指標を視覚的に認識できない。従って、上記特許文献1で開示された画像処理装置では、1度見つけたオブジェクトを探すまでにより長い時間が必要となる。
【0005】
それ故に、本発明の目的は、所望のオブジェクトをより短い時間で探すことのできる表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は、以下に述べるような特徴を有している。
【0007】
本発明の表示制御プログラムは、表示装置に複数のオブジェクトからなるオブジェクト群を表示する表示制御装置のコンピュータで実行される。表示制御プログラムは、第1方向位置設定手段と、第2方向位置設定手段と、表示制御手段として、コンピュータを機能させる。第1方向位置設定手段は、複数のオブジェクトを第1の方向に並べて配置するときの、各オブジェクトの当該第1の方向についての配置位置を設定する。第2方向位置設定手段は、第1方向位置設定手段によって第1の方向についての配置位置が設定されたオブジェクトそれぞれにおける、第1の方向と異なる第2の方向についての配置位置を、他の少なくとも1つのオブジェクトに対して異なる位置に、所定の法則に従って設定する。表示制御手段は、第1の方向および第2の方向についての配置位置に基づいて、複数のオブジェクトをそれぞれ配置して表示装置に表示する。
【0008】
上記によれば、他の少なくとも1つのオブジェクトに対して異なる位置に設定した第2の配置位置でサムネイルをユーザに視認させるので、ユーザは、当該配置位置を指標として所望のオブジェクトをより短い時間で探すことができる。
【0009】
また、第2方向位置設定手段は、法則に従い、オブジェクトそれぞれにおける第2の方向への配置位置を、第1方向位置設定手段によって各オブジェクトを第1の方向へ配置するときに並べる順番で連続的に変化するように設定してもよい。
【0010】
上記によれば、連続的に変化するように各オブジェクトの第2の方向への配置位置を設定するので、ユーザは、それぞれのオブジェクトの第2の方向への配置位置を指標としてそれぞれのオブジェクトのおおよその位置を把握できる。
【0011】
また、第2方向位置設定手段は、法則に従い、オブジェクトそれぞれにおける第2の方向への配置位置を第1方向位置設定手段によって各オブジェクトを第1の方向へ配置するときに並べる順番で連続的に変化しながらピークが生じるように設定してもよい。
【0012】
上記によれば、ピークを生じる形状に沿ってオブジェクトが配置されるので、ユーザは、当該ピーク上、或いは当該ピーク付近に配置されたオブジェクトを指標として、目的のオブジェクトをより短い時間で探すことができる。
【0013】
また、第2方向位置設定手段は、法則に従い、オブジェクトそれぞれにおける第2の方向への配置位置を、第1方向位置設定手段によって各オブジェクトを第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じるように設定してもよい。
【0014】
上記によれば、周期的にピークを生じる形状に沿ってオブジェクトが配置されるので、ユーザは、周期的に現れる複数のピークを指標として、目的のオブジェクトをより短い時間で探すことができる。
【0015】
また、第2方向位置設定手段は、法則に従い、第1方向位置設定手段によって各オブジェクトを第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じ、且つ第2の方向への配置位置の基準からの変位量を繰り返し増減するように、オブジェクトそれぞれにおける当該第2の方向への配置位置を設定してもよい。
【0016】
上記によれば、第2の方向への配置位置の基準からの変位量を繰り返し増減させるので、斜めの直線上に多数のオブジェクトを配置したときのように表示画面からはみでて表示されることを防げる。また、オブジェクトが表示画面からはみ出て表示されない程度に、増減量を最適な大きさにすることもでき、ユーザは、オブジェクトの第2の方向における配置位置を認識しやすくなる。
【0017】
また、表示制御プログラムは、表示装置に表示された各オブジェクトを第1の方向に沿ってスクロールさせるスクロール手段としてコンピュータをさらに機能させてもよい。
【0018】
上記によれば、表示装置の表示領域にスクロールしているオブジェクトが現れるときの第2の方向における位置が互いに異なるので、オブジェクトがスクロールしていることをユーザに視覚的に認識させられる。また、上記によれば、ユーザは、表示装置の表示領域にスクロールしているオブジェクトが現れるときのそれぞれの第2の方向における位置の変化の速度でスクロール速度を認識することができる。
【0019】
また、第2方向位置設定手段は、当該第1の方向へ配置された各オブジェクトについて、両端のオブジェクトの第2の方向についての配置位置が所定の同じ位置になるように、各オブジェクトの第2の方向についての配置位置を再設定してもよい。
【0020】
上記によれば、スクロールしているオブジェクトの第2の方向における配置位置が、スクロールに従って、当該第2の方向における所定の同じ位置になるにつれて、スクロールしているオブジェクトが両端側のいずれかに配置されているオブジェクトであることをユーザに視覚的に認識させられる。
【0021】
また、第2方向位置設定手段は、法則に従い、オブジェクトそれぞれにおける第2の方向についての配置位置を、第1方向位置設定手段によって各オブジェクトを第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じ、当該ピークの第1の方向についての位置が、両端のオブジェクトの第1の方向についての配置位置に近くなるにつれて、当該ピークの第2の方向についての位置が、両端のオブジェクトの第2の方向についての配置位置に近くなるように設定してもよい。
【0022】
上記によれば、スクロールしているオブジェクトの第2の方向における配置位置が、スクロールに従って、両端のオブジェクトの当該第2の方向における位置に近くなるにつれて、スクロールしているオブジェクトが両端側のいずれかに配置されているオブジェクトであることをユーザに視覚的に認識させられる。
【0023】
また、第2方向位置設定手段は、オブジェクトそれぞれにおける第1の方向への配置位置をパラメータとする、周期的に増減する関数を法則とし、当該法則に従って、オブジェクトそれぞれにおける第2の方向についての配置位置を、第1方向位置設定手段によって各オブジェクトを第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じるように設定してもよい。
【0024】
上記によれば、周知の関数を用いて周期的にピークを生じる形状に沿ってオブジェクトを配置でき、ユーザは、周知の関数に基づいて周期的に現れる複数のピークを指標として、目的のオブジェクトをより短い時間で探すことができる。
【0025】
また、第2方向位置設定手段は、関数として正弦関数または余弦関数を用いてもよい。
【0026】
上記によれば、正弦関数または余弦関数を模した形状に沿ってオブジェクトが配置されるので、ユーザは、親しみのある形状に基づいて、指標となるピークをより容易に認識でき、目的のオブジェクトをより短い時間で探すことができる。
【0027】
また、本発明は、上記各手段を備える表示制御装置および表示制御システムや上記各手段で行われる動作を含む表示制御方法の形態で実施されてもよい。
【発明の効果】
【0028】
本発明によれば、所望のオブジェクトをより短い時間で探すことのできる表示を実現できる。
【図面の簡単な説明】
【0029】
【図1】開いた状態におけるゲーム装置10の一例を示す正面図
【図2】開いた状態におけるゲーム装置10の一例を示す側面図
【図3】閉じた状態におけるゲーム装置10の一例を示す正面図
【図4】ゲーム装置10の内部構成の一例を示すブロック図
【図5】図1の上側LCD22および下側LCD12に表示されたアルバム作成画面の一例を示す図
【図6】本発明で用いられるアルバムデータの一例を示す図
【図7】アルバム表示処理における画面の一例を示す図
【図8】アルバム表示処理における画面の一例を示す図
【図9】サムネイルの配置例を示す図
【図10A】サムネイルの配置を決定する際に用いられる基本位置の一例を示す図
【図10B】サムネイルの配置を決定する際に用いられるレートの一例を示す図
【図10C】基本位置とレートとを用いて決定されたサムネイルの配置例を示す図
【図11】サムネイルの初期位置の一例を示す図
【図12】図1の下側LCD12に表示されたアルバム表示処理における初期画面の一例を示す図
【図13】アルバム表示処理においてタッチパネルに対してスライド操作がされるときの一例を示す図
【図14】アルバム表示処理においてタッチパネルに対するスライド操作がされたときの追従スクロールの一例を示す図
【図15】等速スクロールをするときのスクロール速度とスクロール時間との関係例を示す図
【図16】スクロールを停止させる処理に用いられる停止距離の一例を示す図
【図17】停止距離を用いてスクロールを停止させた後の表示画面例を示す図
【図18】図1のゲーム装置10で実行される表示制御プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図
【図19】図1のゲーム装置10で実行される表示制御プログラムを実行することによってゲーム装置10が表示制御する動作の一例を示すフローチャート
【図20】図19のステップ103で行われるアルバム作成処理の詳細な動作の一例を示すサブルーチン
【図21】図19のステップ103で行われるアルバム作成処理の詳細な動作の一例を示すサブルーチン
【図22】図19のステップ105のアルバム表示処理の詳細な動作の一例を示すサブルーチン
【図23】図22のステップ302で行われるサムネイル配置処理の詳細な動作の一例を示すサブルーチン
【図24】図22のステップ302で行われるサムネイル配置処理の詳細な動作の一例を示すサブルーチン
【図25】図22のステップ307で行われるスクロール表示処理の詳細な動作の一例を示すサブルーチン
【図26】図22のステップ307で行われるスクロール表示処理の詳細な動作の一例を示すサブルーチン
【図27】図22のステップ307で行われるスクロール表示処理の詳細な動作の一例を示すサブルーチン
【図28】図22のステップ307で行われるスクロール表示処理の詳細な動作の一例を示すサブルーチン
【図29】サムネイルの他の配置例を示す図
【図30】等速スクロールをするときのスクロール速度とスクロール距離との関係例を示す図
【図31】等速スクロール期間Ttを計算する際に用いる計算スクロール距離Zkおよび総スクロール距離Skの一例を示す図
【図32】図22のステップ307で行われるスクロール表示処理の詳細な動作の変形例を示すサブルーチン
【図33】等速スクロール期間Ttを計算する際に用いられる距離の一例を示す図
【図34】下側LCD12の表示領域において表示オブジェクトをスクロールさせるときの位置関係の一例を示す図
【図35】下側LCD12の表示領域において表示オブジェクトをスクロールさせるときの位置関係の一例を示す図
【発明を実施するための形態】
【0030】
(第1の実施形態)
図面を参照して、本発明の第1の実施形態に係る表示制御プログラムを実行する表示制御装置について説明する。本発明の表示制御プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、表示制御装置の一例として携帯型のゲーム装置10を用い、ゲーム装置10で実行される表示制御プログラムを用いて説明する。なお、図1〜図3は、ゲーム装置10の外観の一例を示す平面図である。ゲーム装置10は、一例として携帯型のゲーム装置であり、図1〜図3に示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10の一例を示す正面図である。図2は、開状態におけるゲーム装置10の一例を示す右側面図である。図3Bは、閉じた状態(閉状態)におけるゲーム装置10の一例を示す正面図である。ゲーム装置10は、撮像部を内蔵しており、当該撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能である。
【0031】
図1〜図3において、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回動可能に連結されている。通常、ユーザは、開状態でゲーム装置10を使用する。そして、ユーザは、ゲーム装置10を使用しない場合には閉状態としてゲーム装置10を保管する。また、ゲーム装置10は、上記閉状態および開状態のみでなく、下側ハウジング11と上側ハウジング21とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング21を下側ハウジング11に対して任意の角度で静止させることができる。
【0032】
図1および図2に示されるように、下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面(主面)11Bに対して垂直な方向に突起する突起部11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部21Aが設けられる。下側ハウジング11の突起部11Aと上側ハウジング21の突起部21Aとが連結されることにより、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。
【0033】
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L(図1〜図3)、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0034】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。下側LCD12は、下側ハウジング11の中央に配置される。下側LCD12は、下側ハウジング11の内側面(主面)に設けられ、下側ハウジング11の内側面に設けられた開口部から下側LCD12の画面が露出する。そして、ゲーム装置10を使用しない場合には上記閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、一例として、256dot×192dot(横×縦)である。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0035】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、例えば静電容量方式等、任意の押圧式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1に示す破線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0036】
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lの内、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14B、ボタン14C、ボタン14D、およびボタン14Eは、十字状に配置される。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0037】
アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。図1に示すように、十字ボタン14Aが下側LCD12より左側領域の下部領域に設けられ、アナログスティック15が十字ボタン14Aの上方に設けられる。また、アナログスティック15および十字ボタン14Aは、下側ハウジング11を把持した左手の親指で操作可能な位置に設計される。また、アナログスティック15を上部領域に設けたことにより、下側ハウジング11を把持する左手の親指が自然と位置するところにアナログスティック15が配され、十字ボタン14Aは、左手の親指を少し下にずらした位置に配される。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトは、アナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いてもよい。
【0038】
十字状に配置される、ボタン14B、ボタン14C、ボタン14D、およびボタン14Eの4つのボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つのボタンとアナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの4つのボタンを使用して方向指示入力をすることも可能である。
【0039】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク(図4参照)が設けられ、当該マイクがゲーム装置10の外部の音を検出する。
【0040】
図3に示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14Gは、下側ハウジング11の上面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上面の右端部に設けられる。後述のように、Lボタン14GおよびRボタン14Hは、撮像部のシャッターボタン(撮影指示ボタン)として機能する。また、下側ハウジング11の左側面には、音量ボタン14I(図示せず)が設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0041】
また、下側ハウジング11の左側面には開閉可能なカバー部11C(図示せず)が設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ46とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ46は、上記コネクタに着脱自在に装着される。データ保存用外部メモリ46は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。
【0042】
図1に示されるように、下側ハウジング11の上側面にはゲーム装置10とゲームプログラムを記録した外部メモリ45を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ45と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。外部メモリ45がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよび挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
【0043】
図1に示されるように、下側ハウジング11の下側面には、ゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16Aが設けられる。また、図2に示されるように、下側ハウジング11の右側面には、ゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は、他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、他の機器との無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図2参照)。
【0044】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0045】
上側ハウジング21には、上側LCD22、2つの外側撮像部23(外側左撮像部23aおよび外側右撮像部23b)、内側撮像部24、3D調整スイッチ25、および3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0046】
図1に示すように、上側LCD22は、上側ハウジング21に収納される。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は、上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、一例として下側LCD12の画面の面積よりも大きく設定される。具体的には、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。
【0047】
上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21の内側面に設けられた開口部から上側LCD22の画面が露出する。また、図2に示すように、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、一例として640dot×200dot(横×縦)である。なお、本実施形態では、上側LCD22が液晶表示装置であるとしたが、例えばELを利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0048】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。上側LCD22は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示することが可能である。具体的には、上側LCD22は、左目用画像と右目用画像とが所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。なお、上側LCD22は、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、上側LCD22は、裸眼立体視可能な表示装置である。この場合、上側LCD22は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22は、パララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像をそれぞれ視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視と対比する意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0049】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(外側左撮像部23aおよび外側右撮像部23b)の総称である。外側左撮像部23aおよび外側右撮像部23bの撮像方向は、いずれも外側面21Dの外向きの法線方向である。また、外側左撮像部23aおよび外側右撮像部23bは、いずれも、上側LCD22の表示面(内側面)の法線方向と180度反対の方向に設計される。すなわち、外側左撮像部23aの撮像方向および外側右撮像部23bの撮像方向は、平行である。外側左撮像部23aと外側右撮像部23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)のいずれか一方を単独で用いて、外側撮像部23を非ステレオカメラとして使用することも可能である。また、プログラムによっては、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像を行うことも可能である。本実施形態では、外側撮像部23は、外側左撮像部23aおよび外側右撮像部23bの2つの撮像部で構成される。外側左撮像部23aおよび外側右撮像部23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0050】
図1の破線で示されるように、外側撮像部23を構成する外側左撮像部23aおよび外側右撮像部23bは、上側LCD22の画面の横方向と平行に並べられて配置される。すなわち、2つの外側左撮像部23aおよび外側右撮像部23bを結んだ直線が上側LCD22の画面の横方向と平行になるように、外側左撮像部23aおよび外側右撮像部23bが配置される。図1の破線23aおよび23bは、上側ハウジング21の内側面とは反対側の外側面に存在する外側左撮像部23aおよび外側右撮像部23bをそれぞれ表している。図1に示すように、ユーザが上側LCD22の画面を正面から視認した場合に、外側左撮像部23aは左側に外側右撮像部23bは右側にそれぞれ位置する。外側撮像部23をステレオカメラとして機能させるプログラムが実行されている場合、外側左撮像部23aは、ユーザの左目で視認される左目用画像を撮像し、外側右撮像部23bは、ユーザの右目で視認される右目用画像を撮像する。外側左撮像部23aおよび外側右撮像部23bの間隔は、人間の両目の間隔程度に設定され、例えば、30mm〜70mmの範囲で設定されてもよい。なお、外側左撮像部23aおよび外側右撮像部23bの間隔は、この範囲に限らない。
【0051】
なお、本実施例においては、外側左撮像部23aおよび外側右撮像部23bは、ハウジングに固定されており、撮像方向を変更することはできない。
【0052】
外側左撮像部23aおよび外側右撮像部23bは、上側LCD22(上側ハウジング21)の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側左撮像部23aおよび外側右撮像部23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。
【0053】
このように、外側撮像部23の2つの撮像部(外側左撮像部23aおよび外側右撮像部23b)が上側LCD22の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23それぞれの撮像方向をユーザの左右の目それぞれの視線方向と一致させることができる。また、外側撮像部23は、上側LCD22の画面の上端より上方の裏側の位置に配置されるため、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。従って、外側撮像部23を上側LCD22の画面の裏側に配置する場合と比べて、上側ハウジング21を薄く構成することが可能となる。
【0054】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0055】
図1に示すように、内側撮像部24は、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方に配置され、上側ハウジング21の左右方向に関して中央の位置(上側ハウジング21(上側LCD22の画面)を左右に2等分する線の線上)に配置される。具体的には、図1に示されるように、内側撮像部24は、上側ハウジング21の内側面であって、外側左撮像部23aおよび外側右撮像部23bの中間の裏側の位置に配置される。すなわち、上側ハウジング21の外側面に設けられた外側左撮像部23aおよび外側右撮像部23bを上側ハウジング21の内側面に投影した場合、当該投影した外側左撮像部23aおよび外側右撮像部23bの中間に、内側撮像部24が設けられる。
【0056】
このように、内側撮像部24は、外側撮像部23とは反対方向を撮像する。内側撮像部24は、上側ハウジング21の内側面であって、2つの外側撮像部23の中間位置となる裏側に設けられる。これにより、ユーザが上側LCD22を正視した際、内側撮像部24でユーザの顔を正面から撮像することができる。また、外側左撮像部23aおよび外側右撮像部23bと内側撮像部24とが上側ハウジング21の内部で干渉することがないため、上側ハウジング21を薄く構成することが可能となる。
【0057】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。図1に示されるように、3D調整スイッチ25は、上側ハウジング21の内側面および右側面の端部に設けられ、ユーザが上側LCD22を正視した場合に、当該3D調整スイッチ25を視認できる位置に設けられる。3D調整スイッチ25は、所定方向(例えば、上下方向)の任意の位置にスライド可能なスライダを有しており、当該スライダの位置に応じて上側LCD22の表示モードが設定される。
【0058】
例えば、3D調整スイッチ25のスライダが最下点位置に配置されている場合、上側LCD22が平面表示モードに設定され、上側LCD22の画面には平面画像が表示される。なお、上側LCD22を立体表示モードのままとして、左目用画像と右目用画像とを同一の画像とすることにより平面表示してもよい。一方、上記最下点位置より上側にスライダが配置されている場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視可能な画像が表示される。ここで、スライダが上記最下点位置より上側に配置されている場合、スライダの位置に応じて、立体画像の見え方が調整される。具体的には、スライダの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。
【0059】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。例えば、3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。図1に示されるように、3Dインジケータ26は、上側ハウジング21の内側面に設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。従って、ユーザは、上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。
【0060】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ44からの音声がこのスピーカ孔21Eから出力される。
【0061】
次に、図4を参照して、ゲーム装置10の内部構成を説明する。なお、図4は、ゲーム装置10の内部構成の一例を示すブロック図である。
【0062】
図4において、ゲーム装置10は、上述した各構成部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、角速度センサ40、電源回路41、およびインターフェイス回路(I/F回路)42等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0063】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。本実施形態では、所定のプログラムがゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ45やデータ保存用内部メモリ35)に記憶されている。情報処理部31のCPU311は、当該所定のプログラムを実行することによって、後述する画像処理やゲーム処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22および/または下側LCD12に出力し、上側LCD22および/または下側LCD12に当該画像が表示される。
【0064】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、およびデータ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ45を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ46を着脱自在に接続するためのインターフェイスである。
【0065】
メインメモリ32は、情報処理部31(CPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、画像処理やゲーム処理で用いられる各種データを一時的に記憶したり、外部(外部メモリ45や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0066】
外部メモリ45は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ45は、例えば読み取り専用の半導体メモリで構成される。外部メモリ45が外部メモリI/F33に接続されると、情報処理部31は外部メモリ45に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ46は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ46には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ46がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ46に記憶された画像を読み込み、上側LCD22および/または下側LCD12に当該画像を表示することができる。
【0067】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0068】
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は、情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0069】
情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(本実施形態では、xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、例えば下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、ゲーム装置10の各軸方向へ生じる直線加速度の大きさをそれぞれ検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸または2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを算出する。
【0070】
情報処理部31には、角速度センサ40が接続される。角速度センサ40は、ゲーム装置10の3軸(本実施形態では、xyz軸)周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ(角速度データ)を情報処理部31へ出力する。角速度センサ40は、例えば下側ハウジング11の内部に設けられる。情報処理部31は、角速度センサ40から出力された角速度データを受信して、ゲーム装置10の姿勢や動きを算出する。
【0071】
情報処理部31には、RTC38および電源回路41が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路41は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0072】
情報処理部31には、I/F回路42が接続される。I/F回路42には、マイク43、スピーカ44、およびタッチパネル13が接続される。具体的には、I/F回路42には、図示しないアンプを介してスピーカ44が接続される。マイク43は、ユーザの音声を検知して音声信号をI/F回路42に出力する。アンプは、I/F回路42からの音声信号を増幅し、音声をスピーカ44から出力させる。I/F回路42は、マイク43およびスピーカ44(アンプ)の制御を行う音声制御回路と、タッチパネル13の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置(タッチ位置)の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、およびタッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われたタッチ位置を知ることができる。
【0073】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
【0074】
下側LCD12および上側LCD22は、情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(GPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、外側撮像部23および内側撮像部24のいずれかから取得した画像のサムネイルを下側LCD12に表示させる。また、本実施形態では、情報処理部31は、外側撮像部23および内側撮像部24のいずれかから取得した画像を上側LCD22に表示させる。すなわち、情報処理部31は、上側LCD22に外側撮像部23で撮像した右目用画像と左目用画像とを用いた立体画像(立体視可能な画像)を表示させたり、内側撮像部24で撮像した平面画像を上側LCD22に表示させたり、上側LCD22に外側撮像部23で撮像した右目用画像および左目用画像の一方を用いた平面画像を表示させたりする。
【0075】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された(外側撮像部23で撮像された)右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0076】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。本実施形態では、情報処理部31は、外側撮像部23および内側撮像部24のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部31に送る。具体的には、ユーザによるタッチパネル13や操作ボタン14を用いた操作によって使用する撮像部が選択される。そして、撮像部が選択されたことを情報処理部31(CPU311)が検知し、情報処理部31が外側撮像部23または内側撮像部24に対して撮像指示を行う。
【0077】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダの位置に応じた電気信号を情報処理部31に送信する。
【0078】
3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。
【0079】
次に、ゲーム装置10で実行される表示制御プログラムによる具体的な表示制御動作を説明する前に、図5〜図17を参照して、本発明においてサムネイルを配置する手法およびスクロール表示の手法について説明する。なお、図5は、ゲーム装置10に内蔵する実カメラで撮像され、データ保存用外部メモリ46に記憶されているカメラ画像CIの中から登録する画像を選択してアルバムを作成するアルバム作成処理を実行しているときの表示画面の一例を示す図である。また、図6は、アルバム作成処理において生成されるアルバムデータDbの一例を示す図である。また、図7は、アルバム作成処理で作成されたアルバムを閲覧するときに実行されるアルバム表示処理を開始したときの初期画面の一例を示す図である。また、図8は、アルバム表示処理においてサムネイルを選択したときの上側LCD22と下側LCD12の表示画面例を示す図である。図9は、サムネイル配置処理におけるサムネイルの配置位置の一例を示す図である。図10A〜図10Cは、サムネイル配置処理におけるサムネイルの配置位置の計算手法を説明する図である。図11は、計算したサムネイルの配置位置に基づいて決定された初期位置の一例を説明するための図である。図12は、アルバム表示処理における下側LCD12の初期画面の一例を示す図である。図13〜図14は、アルバム表示処理においてサムネイルをスクロールするためのスクロール表示処理における追従スクロールの表示画面例を示す図である。図15は、スクロール表示処理におけるスクロール時間Stとスクロール速度Svとの関係例を示す図である。図16〜図17は、スクロール表示処理における停止スクロールにおける処理を説明する図である。なお、本実施形態の説明では、説明を簡単にするため、外側撮像部23および内側撮像部24のいずれかから取得したカメラ画像CIに基づいた、実世界の平面画像(上述した立体視可能な画像と対比する意味での平面視の画像)が表示される例を用いる。
【0080】
本実施形態では、一例として、上述したように外側撮像部23および内側撮像部24のいずれかから取得された画像をカメラ画像CIと称する。外側撮像部23および内側撮像部24のいずれかから取得されたカメラ画像CIは、データ保存用外部メモリ46に記憶される。また、本実施形態では、一例として、カメラ画像CIを取得したときに当該画像を示すサムネイルの画像データが生成されるものとする。生成されたサムネイルの画像データは、カメラ画像CIがデータ保存用外部メモリ46に記憶されるときに、当該カメラ画像CIと対応させてデータ保存用外部メモリ46に記憶される。データ保存用外部メモリ46に記憶されるカメラ画像CIには、それぞれを識別するカメラ画像識別子Pidが付与される。また、データ保存用外部メモリ46に記憶されるサムネイルにもそれぞれを識別するサムネイル識別子Sidが付与される。
【0081】
サムネイルと共にデータ保存用外部メモリ46に記憶されたカメラ画像CIは、任意のカメラ画像CIのみをアルバムに登録して、アルバム毎に閲覧することができる。本実施形態では、一例として、カメラ画像CIをアルバムに登録するための処理をアルバム作成処理として実行する。また、本実施形態では、一例として、アルバムに登録されたカメラ画像CIを閲覧するための処理をアルバム表示処理として実行する。以下では、まず始めに、アルバム作成処理について説明する。
【0082】
図5において、上側LCD22および下側LCD12には、データ保存用外部メモリ46に記憶されているカメラ画像CIの中からアルバムに登録するカメラ画像CIを選択するアルバム作成画面が表示されている。アルバム作成画面は、アルバム作成処理が開始されたときに上側LCD22および下側LCD12に表示される。アルバム作成処理が開始されると、下側LCD12には、カメラ画像CIをアルバムに登録する「いれる」ボタンアイコンIb、アルバムへの登録を解除する「はずす」ボタンアイコンHb、アルバム作成処理を終了するための「完成」ボタンアイコンKbが表示される。また、アルバム作成処理が開始されると、上側LCD22には、アルバムに登録されたカメラ画像CIの中から処理の対象となっているアルバム画像を示す枠画像Hw、アルバムに登録される順番に応じた位置を示す矢印画像Sy、Rボタン14GおよびLボタン14Hを用いた操作入力を受付可能であることを示すRボタンアイコンRbおよびLボタンアイコンLbが表示される。
【0083】
さらに、アルバム作成画面が表示されるときには、データ保存用外部メモリ46からカメラ画像CIそれぞれに対応するサムネイルを示す画像データが読み込まれ、当該サムネイルも下側LCD12に配置表示される。図5に示すアルバム作成画面には、一例として6つのサムネイルS1〜S6が下側LCD12に配置表示されている。
【0084】
本実施形態では、一例として、アルバム作成画面が表示されると、アルバムに登録されたカメラ画像CIを管理するためのアルバムデータ(図18に示すアルバムデータDb)がメインメモリ32に生成される。アルバム未作成時点におけるアルバムデータは、アルバムにカメラ画像CIが登録されていない状態であるため、カメラ画像CIを示す情報を含まないデータとなっている。本実施形態では、1つのアルバムデータに登録することのできるカメラ画像CIが最大で30枚である場合を一例として説明する。
【0085】
アルバム作成画面が表示されると、ユーザは任意のカメラ画像CIをアルバムへ登録可能となる。一例として、カメラ画像CIをアルバムへ登録するときには、ユーザは、タッチパネル13を介して登録するカメラ画像CIのサムネイルをタッチする操作を行う。ユーザがサムネイルをタッチ操作すると、タッチ操作されたサムネイルが選択され、選択されたサムネイルの縁を強調表示する選択枠画像Swが図5に一例として示すように表示される。
【0086】
アルバムへ登録するカメラ画像CIのサムネイルが選択された状態で、「いれる」ボタンアイコンIbをユーザがタッチ操作すると、選択されたサムネイルで示されるカメラ画像CIがアルバムに登録される。
【0087】
アルバムにカメラ画像CIが登録されるときには、例えば、登録されるカメラ画像CIのカメラ画像識別子Pidと当該カメラ画像CIを示すサムネイルのサムネイル識別子Sidとがアルバムデータに登録される。アルバムデータにカメラ画像識別子Pidとサムネイル識別子Sidとが登録されるときには、基本的には、登録された順番を示す番号Nが付与される。番号Nが登録された順番を示さない場合については、後に詳述する。
【0088】
また、アルバムにカメラ画像CIが登録されるときには、登録されたカメラ画像CIが、例えば上側LCD22の中央にアルバム画像として表示される。図5には、選択されたサムネイルS3によって示されるカメラ画像CIをアルバム画像A3として上側LCD22の中央に表示している一例が示されている。アルバム作成画面において上側LCD22に表示されるアルバム画像は、一例として、アルバムに登録されたカメラ画像CIの番号Nで示される順番で左方向から右方向に向かって水平に並ぶように上側LCD22に配置表示される。上側LCD22に配置表示されるアルバム画像は、Rボタン14HおよびLボタン14Gのいずれかを押下することにより、押下したボタンに応じた方向にスライド可能に構成されている。従って、上側LCD22には、アルバムに登録されたカメラ画像CIの中から所定の表示数のカメラ画像CIのみをアルバム画像として配置表示してもかまわない。図5には、一例として、アルバムに登録されたカメラ画像CIの番号Nで示される順番に応じて3つのアルバム画像が左右方向に配置され、上側LCD22の中央に配置されたアルバム画像が他のアルバム画像よりも相対的に大きくなるように拡大表示されている上側LCD22が示されている。
【0089】
本実施形態のアルバム作成画面では、典型的には、カメラ画像CIをアルバムに登録できると共に、登録されたカメラ画像CIの中から削除対象として選ばれたカメラ画像CIをアルバムから削除することができる。アルバム作成画面では、上述したように処理の対象となっているアルバム画像を示す枠画像Hwが、現時点で処理対象となっているアルバム画像(例えば、上側LCD22の中央付近に配置されている画像)を囲むように表示されている。また、上側LCD22に配置表示されているアルバム画像は、上述したようにスライド可能に構成される。ユーザがRボタン14HおよびLボタン14Gを押下してスライド操作することによって、処理対象となるアルバム画像が入れ替わり、現時点で処理対象となっているアルバム画像が枠画像Hwで囲まれて表示される。そして、ユーザが「はずす」ボタンアイコンHbをタッチ操作することにより、枠画像Hwで囲まれた処理対象のアルバム画像に対応するカメラ画像CIがアルバムから削除される。カメラ画像CIがアルバムから削除されるときには、削除されるカメラ画像CIのサムネイルもアルバムから削除される。カメラ画像CIがアルバムから削除されるときには、削除されるカメラ画像CIのカメラ画像識別子Pidと当該カメラ画像CIのサムネイルのサムネイル識別子Sidとがアルバムデータから削除される。
【0090】
カメラ画像CIがアルバムから削除されると、アルバムに登録されているカメラ画像CIおよびサムネイルの順番を示す番号Nが連番になるように修正される。アルバムからカメラ画像CIが削除されるときには、アルバムデータから削除されたカメラ画像CIのカメラ画像識別子Pidおよびサムネイルのサムネイル識別子Sidよりも番号Nで示される順番が後になっているカメラ画像識別子Pidおよびサムネイル識別子Sidの番号Nがそれぞれ順次繰り上げられる。具体的に図6を用いて番号Nが3のカメラ画像CIが削除される場合について説明すると、まず、番号Nが3のカメラ画像識別子P3とサムネイル識別子S3とがアルバムデータから削除される。そして、番号Nが4として登録されているカメラ画像識別子P5とサムネイル識別子S5との番号Nが1だけ繰り上げられるように修正されて3になる。この繰り上げ修正と同様に、番号Nが5〜30としてそれぞれ登録されているカメラ画像識別子Pidとサムネイル識別子Sidとの番号Nも1だけ繰り上げられるように修正されてそれぞれ4〜29となる。
【0091】
また、本実施形態のアルバム作成画面では、典型的には、既に登録されているカメラ画像CIの番号Nで示される順番の間に新たなカメラ画像CIを挿入登録することもできる。上述したように、アルバム画像は、対応するカメラ画像CIがアルバムに登録されている番号Nで示される順番に従って左方向から右方向に水平に上側LCD22に配置表示される。また、上側LCD22に配置表示されているアルバム画像は、上述したようにスライド可能に構成される。そして、矢印画像Syは、図5に一例として示すように、上側LCD22においてスライド可能に配置表示されているアルバム画像に対して、左右方向の透き間を示す位置に固定的に表示される。つまり、矢印画像Syは、既にアルバムに番号Nで示される順番で登録されているカメラ画像CIの間に挿入登録するときの順番を示す位置に表示されることとなる。
【0092】
ユーザがRボタン14HおよびLボタン14Gを押下してスライド操作することによって、上側LCD22において固定的に表示されている矢印画像Syで示される位置、すなわち、アルバムにカメラ画像CIを挿入登録するときの順番を示す位置が入れ替わって表示される。そして、ユーザが挿入登録を希望する位置を矢印画像Syが示しているときに、アルバムに挿入登録を希望するカメラ画像CIのサムネイルを選択して、「いれる」ボタンアイコンIbをタッチ操作することにより、選択されているサムネイルで示されるカメラ画像CIが、矢印画像Syで示される位置に応じた順番を示す番号Nでアルバムに挿入登録される。カメラ画像CIがアルバムに挿入登録されるときには、挿入登録されるカメラ画像CIのサムネイルも挿入登録される。カメラ画像CIがアルバムに挿入登録されるときには、挿入登録されるカメラ画像CIのカメラ画像識別子Pidと当該カメラ画像CIのサムネイルのサムネイル識別子Sidとが順番を示す番号Nを付与されてアルバムデータに挿入登録される。
【0093】
カメラ画像CIがアルバムに挿入登録されると、アルバムに登録されていたカメラ画像CIおよびサムネイルの順番を示す番号Nが重複せずに連番になるように修正される。アルバムにカメラ画像CIが挿入登録されるときには、アルバムデータに挿入登録されたカメラ画像CIのカメラ画像識別子Pidおよびサムネイルのサムネイル識別子Sidの番号Nで既に登録されていたカメラ画像識別子Pidおよびサムネイル識別子Sidの番号N以降の番号Nで登録されていたカメラ画像識別子Pidおよびサムネイル識別子Sidの番号Nがそれぞれ順次繰り下げられる。具体的に図6を用いてカメラ画像CIが3の番号Nのカメラ画像CIとして挿入登録される場合について説明すると、まず、3以降の番号Nで既に登録されているカメラ画像識別子P3およびサムネイル識別子S3から、カメラ画像識別子P11およびサムネイル識別子S11までの番号Nがそれぞれ4〜31まで繰り下げられるように修正される。そして、番号Nが3のカメラ画像CIのカメラ画像識別子Pidとサムネイルのサムネイル識別子Sidとが登録される。
【0094】
アルバムデータにカメラ画像識別子Pidとサムネイル識別子Sidとが登録されるときには、登録された順番を示す番号Nが付与されるが、番号Nが登録された順番を示さない場合があることを上述した。以下、番号Nが登録された順番を示さない場合について説明する。
【0095】
アルバムデータにおける番号Nが、カメラ画像CIがアルバムに登録された順番を示さない場合は、上述の説明から明らかなように、アルバムからカメラ画像CIが削除されたり、カメラ画像CIがアルバムに挿入登録されたりして、番号Nが修正された場合に生じる。換言すれば、ユーザは、上述したようにアルバムにカメラ画像CIを登録、削除および挿入登録することにより、番号Nが任意の順番を示すようにカメラ画像CIをアルバムに登録できる。
【0096】
後に明らかとなるが、本実施形態では、一例として、アルバム表示処理において下側LCD12に表示するサムネイルの配置を決定するときに、アルバムに登録されているカメラ画像CIのサムネイルが左方向から右方向に向かって番号Nで示される順番で並ぶようにそれぞれの配置位置を決定する。配置位置が決定されたサムネイルは、下側LCD12に表示させたときにユーザによってスクロールさせることができる。アルバム表示処理において、ユーザは、サムネイルをスクロールさせることによって、所望のサムネイルを下側LCD12に表示させて選択することができる。アルバム表示処理において、サムネイルがユーザによって選択されると、選択されたサムネイルで示されるカメラ画像CIが上側LCD22に表示され、ユーザが閲覧可能となる。
【0097】
従って、ユーザは、アルバム作成処理において、番号Nが任意の順番となるようにカメラ画像CIをアルバムに登録することにより、アルバム表示処理においてスクロールさせて選択するためのサムネイルの配置順を所望の順番にすることができる。
【0098】
ユーザは、アルバム作成処理において、番号Nが任意の順番となるようにカメラ画像CIをアルバムに登録し終えたときに、下側LCD12における「完成」ボタンアイコンKbをタッチ操作することによりアルバム作成処理を終了することができる。アルバム作成処理を終了するときには、生成されたアルバムデータがメインメモリ32からデータ保存用外部メモリ46に転送され、保存される。
【0099】
このように生成され、転送されたアルバムデータは、アルバム表示処理が実行されることにより、データ保存用外部メモリ46から読み出される。アルバム表示処理では、アルバムデータに登録された任意のカメラ画像CIを閲覧することができる。以下、本実施形態におけるアルバム表示処理の一例について説明する。
【0100】
図7は、アルバムに登録されたカメラ画像CIを閲覧するアルバム表示処理を実行しているときの表示画面の一例を示す図である。アルバム表示処理が開始されると、アルバム作成処理で生成されたアルバムデータがデータ保存用外部メモリ46からメインメモリ32へ読み込まれる。図7において、下側LCD12には、読み込まれたアルバムデータに登録されているサムネイルの一部が表示されている。また、図7において、下側LCD12には、アルバムの閲覧を中止してアルバム表示処理を終了するための「おわる」ボタンアイコンObも表示されている。
【0101】
本実施形態のアルバム表示処理では、一例として、下側LCD12においてユーザがタッチ操作したサムネイルで示されるカメラ画像CIが上側LCD22に表示される。図8において、下側LCD12には、ユーザによってタッチ操作されたサムネイルが選択され、その縁を強調する選択枠画像Swが表示されている。また、図8において、上側LCD22には、ユーザによって選択されたサムネイルで示されるカメラ画像CIが表示画面全体に表示されている。本実施形態では、後に詳述するスクロール表示処理が実行されることにより、ユーザは、下側LCD12においてサムネイルをスクロールさせることができる。本実施形態において、ユーザは、サムネイルをスクロールさせて選択することにより、アルバムに登録されている任意のカメラ画像CIを上側LCD22に表示させて閲覧できる。
【0102】
本実施形態では、アルバム表示処理において、アルバムに登録されているサムネイルを下側LCD12に表示するときに、サムネイル配置処理でそれぞれの配置位置を求めてから表示する。本実施形態では、一例として、アルバム表示処理が開始されると、データ保存用外部メモリ46に記憶されているアルバムデータが読み込まれる。アルバム表示処理においてアルバムデータが読み込まれると、読み込まれたアルバムデータに登録されているサムネイル識別子Sidで示されるサムネイルを下側LCD12に表示するときに用いられる配置位置がそれぞれ決定される。以下、図9〜図11を参照して、サムネイルの配置位置をそれぞれ決定するためのサムネイル配置処理について説明する。
【0103】
本実施形態におけるサムネイル配置処理では、図9に一例として示すように、下側LCD12の左右方向に平行なLx軸と当該下側LCD12の上下方向に平行なLy軸とからなるLxLy座標系を仮想し、Lx軸方向における位置とLy軸方向における位置とで当該平面上におけるサムネイルの配置位置が決定される。LxLy座標系で配置位置が決定されるサムネイルは、上述したようにアルバム表示処理が開始されたときにデータ保存用外部メモリ46から読み込まれたアルバムデータに登録されているサムネイル識別子Sidでそれぞれ示されるサムネイルである。
【0104】
図9には、一例として、アルバムデータに登録されている番号Nで示される順番が1〜30までのサムネイル識別子Sidでそれぞれ示されるサムネイルのLxLy座標系における配置位置の一例が示されている。本実施形態におけるサムネイル配置処理では、図9に一例として示すように、各サムネイルの配置位置のLx軸方向における位置が、等間隔となるようにそれぞれ決定される。また、本実施形態では、一例として、それぞれのサムネイルの配置位置のLx軸方向における位置は、アルバムデータに登録されている番号Nで示される順番に従って左方向から右方向に向かって並ぶように決定される。また、本実施形態において、各サムネイルの配置位置のLy軸方向における位置は、図9に一例として示すように、LxLy座標系にそれぞれのサムネイルを配置したときの列(以下、サムネイル列と称する)が、LxLy座標系に対して垂直な方向から見下ろしたときに波形となるように決定される。
【0105】
サムネイル配置処理においてサムネイルの配置位置を決定する手法を具体的に説明する。各サムネイルの配置位置を決定するときには、それぞれのサムネイルのLxLy座標系における基本の位置を基本位置Kiとして求める。それぞれのサムネイルの基本位置Kiには、サムネイル毎に求められたレートRが乗算される。基本位置KiにレートRを乗算して求められた位置が、それぞれのサムネイルの配置位置となる。本実施形態では、一例として、このようにサムネイルの基本位置Kiを求め、レートRを乗算して配置位置を求める演算を番号Nで示される順番でサムネイル毎に実行する。
【0106】
本実施形態における基本位置Kiの例について説明する。図10Aは、本実施形態における各サムネイルの基本位置Kiの一例を示す図である。図10AにおいてLx軸方向に沿って付されている1〜30の番号は、アルバムデータに登録されている各サムネイルの順番を示す番号Nである。
【0107】
本実施形態では、一例として、上述したように、各サムネイルの配置位置のLx軸方向における位置が、アルバムデータに登録されている番号Nで示される順番に従って左方向から右方向に向かって等間隔に並ぶようにそれぞれ決定される。このため、それぞれのサムネイルの基本位置KiのLx軸方向における位置は、番号Nで示される順番で、LxLy座標系の原点HgからLx軸の正方向に等間隔となるように決定される。
【0108】
また、本実施形態では、一例として、各サムネイルの配置位置のLy軸方向における位置については、上述したように、LxLy座標系にそれぞれのサムネイルを配置したときのサムネイル列が、LxLy座標系に対して垂直な方向から見下ろしたときに波形となるように決定される。具体的には、以下の式(1)で示す演算をすることによって各サムネイルの基本位置KiのLy軸方向における位置が求められる。
【0109】
【数1】
【0110】
上記式(1)に一例として示すように、それぞれのサムネイルの基本位置KiのLy軸方向における位置は、各サムネイルの配置位置を上述したように波形となるように決定するために、一例として、正弦関数を用いて求められる。上記式(1)において、c1は、上記正弦関数で示される正弦波形の1周期分の波形に含ませるサムネイルの数を示す。本実施形態では、一例として、c1=9であるものとする。図10Aは、c1=9とした場合の計算結果を示している。また、上記式(1)におけるNは、アルバムデータにおけるサムネイルの順番を示す番号Nである。上記式(1)に番号Nを代入して計算することにより、代入した番号Nで示される順番のサムネイルの基本位置KiのLy軸方向における位置が求められる。
【0111】
次に、本実施形態におけるレートRの例について説明する。本実施形態では、一例として、レートRが、サムネイル毎に求められ、基本位置KiのLy軸方向における位置に乗算される。
【0112】
図10Bは、基本位置KiのLy軸方向における位置に乗算されるサムネイル毎のレートRをプロットしたLxLy座標系が一例として示されている。図10BにおいてLx軸方向に沿って付されている1〜30の番号は、アルバムデータに登録されている順番を示す番号Nである。以下では、説明の便宜のため、番号Nが15および16のサムネイルの配置位置のLx軸方向における位置に対して、番号Nが1および30のサムネイルの配置位置のLx軸方向における位置を両端側と称する。また、図9に一例として示すように配置されたサムネイルの内、両端側のサムネイルの配置位置のLx軸方向における位置に対して、番号Nが15および16のサムネイルの配置位置のLx軸方向における位置を中央側と称する。
【0113】
図10Bから明らかなように、本実施形態では、一例として、両端側のサムネイルからそれぞれ7個だけ中央側に並べて配置されるサムネイルを除いたサムネイルのレートRを1とする。具体的には、番号Nが8〜23のサムネイルのレートRを1とする。従って、本実施形態では、一例として、両端側からそれぞれ7個だけ中央側に並べて配置されるサムネイルのレートRを計算する。具体的には、アルバムデータに登録されている番号Nが1〜7と24〜30とのサムネイルについてレートRが計算される。図10Bに示すレートRは、以下の式(2)および式(3)でそれぞれ示される始点レートRsと終点レートReとを乗算して求められる曲線である。始点レートRsは、以下の式(2)から明らかなように、図10Bに示す曲線の内、番号Nが1から7までの間で漸増し、番号Nが8以上では1となる曲線である。一方、終点レートRsは、以下の式(3)から明らかなように、図10Bに示す曲線の内、番号Nが23以下では1となり、番号Nが24から30までの間で漸減する曲線である。従って、本実施形態では、一例として、番号Nが1から7までのサムネイルについては式(2)の計算で求めた始点レートRsをレートRとし、番号Nが24から30までのサムネイルについては式(3)の計算で求めた終点レートReをレートRとする。
【0114】
【数2】
【0115】
【数3】
【0116】
ここで、上記式(2)および式(3)におけるSは、基本位置KiのLy軸方向の位置を変化させる対象となるサムネイルを示す数値である。例えば、S=7の場合には、両端側からそれぞれ7個だけ中央側に配置されるサムネイルについて基本位置KiのLy軸方向における位置を変化させることとなる。ここで、基本位置KiのLy軸方向における位置を変化させるとは、後述するように基本位置KiのLy軸方向における位置に乗算するレートRとして1以外の数値を乗算することを意味する。本実施形態では、一例として、S=7であるものとして説明をする。従って、上述の説明では、番号Nが1〜7と24〜30とのサムネイルについて始点レートRsおよび終点レートReがそれぞれレートRとして計算されるものとした。また、上記式(3)におけるNmaxは、アルバムデータにおける番号Nの最大値であり、本実施形態では、上述の説明から明らかなように、一例として、Nmax=30となる。数値SおよびNmaxを予め設定してから上記式(2)および式(3)に番号Nを代入して計算することにより、代入した番号Nで示される順番のサムネイルのレートRを求めることができる。
【0117】
上述したようにサムネイル毎に基本位置KiのLy軸方向における位置およびレートRを求めると、これらを乗算して配置位置のLy軸方向における位置を決定する。図10Cは、決定された各サムネイルの配置位置の一例を示す図である。サムネイル毎に求めたレートRと基本位置KiのLy軸方向における位置とを乗算することにより、本実施形態では図10Cに一例として示すように、サムネイル列の頂点のLx軸方向における位置が、両端側のサムネイルのLx軸方向の位置に近くなるにつれて、当該頂点のLy軸方向における位置が両端のオブジェクトのLy軸方向の位置(図10Cに示す例ではLy座標=0)に近くなるように決定される。
【0118】
このように、基本位置KiのLy軸方向における位置にレートRを乗算して求めたLy軸方向における位置と、Lx軸方向において等間隔となるように決定された位置とでLxLy座標系におけるそれぞれのサムネイルの配置位置が決定される。サムネイルの配置位置が決定されると、決定された各サムネイルの配置位置に基づいてグローバル座標系における初期位置を決定し、決定した初期位置に基づいてアルバム表示処理における下側LCD12の初期画面の表示内容が決定される。
【0119】
各サムネイルの初期位置の決定について説明する前に、本実施形態におけるグローバル座標系の例について説明する。グローバル座標系とは、全てのサムネイルをそれぞれ示す画像の中から下側LCD12に表示する画像を判断するために用いられる仮想的に定義された座標系である。グローバル座標系における各サムネイルの位置は、サムネイルを示す画像の中心の位置である。本実施形態では、一例として、グローバル座標系における各サムネイルの位置に基づいて当該座標系における下側LCD12の表示領域に含まれるサムネイルの画像の画素が判断される。本実施形態では、一例として、グローバル座標系における下側LCD12の表示領域の左右方向および上下方向の座標が、下側LCD12の表示画面の左右方向および上下方向の座標と対応するようにグローバル座標系を定義するものとする。従って、下側LCD12の表示領域に含まれると判断された画像の画素の位置座標は、グローバル座標系における原点Goと下側LCD12の画面座標系における原点Oとの差を減算して、対応する下側LCD12の画面座標系の位置座標に変換できる。このように、グローバル座標系における位置座標を下側LCD12の画面座標系の位置座標に変換すれば、全てのサムネイルの中から、グローバル座標系において下側LCD12の表示領域に含まれると判断したサムネイルの画像の画素を下側LCD12に表示できる。
【0120】
次に、各サムネイルの初期位置の決定について説明する。各サムネイルのグローバル座標系における初期位置を決定するときには、まず、LxLy座標系の原点Hgと下側LCD12の表示領域の中央位置Hcとを一致させる演算が行われる。そして、LxLy座標系の原点Hgに対する各サムネイルの配置位置の関係が維持されるように、グローバル座標系における原点Goに対する各サムネイルの初期位置が決定される。図11は、このようにして決定された各サムネイルの初期位置と下側LCD12の表示領域との一例を示す図である。
【0121】
図12は、アルバム表示処理における下側LCD12の初期画面の一例を示す図である。図12に示す一例において、下側LCD12には、上述したように決定された各サムネイルの初期位置に基づいた位置にサムネイルの画像が表示されている。上述したように原点Hgは、アルバムに登録されている1番目のカメラ画像CIのサムネイルの配置位置であるので、当該サムネイルの初期位置は、図12に一例として示すように、下側LCD12の中央位置Hcとなる。また、下側LCD12の初期画面には、1番目のカメラ画像CIのサムネイルの画像以外にも表示領域に含まれると判断されたサムネイルを示す画像がそれぞれ決定された初期位置に表示されている。具体的には、図12において、下側LCD12の初期画面には、表示領域に含まれると判断された2番目および3番目のカメラ画像CIのサムネイルを示す画像もそれぞれ決定された初期位置に表示されている。
【0122】
なお、グローバル座標系において決定されたサムネイル列を構成する各サムネイルの初期位置の相対的な位置関係は、後述するようにサムネイルがスクロールするときにも維持される。また、以下の説明では、初期位置に配置された各サムネイルのスクロール後の位置をスクロール位置と称する。
【0123】
このように、アルバム表示処理において、下側LCD12の初期画面の表示が完了すると、ユーザの操作に応じて、サムネイルを選択して対応するカメラ画像CIを上側LCD22に表示させることやサムネイル列をスクロールさせることが可能な状態となる。以下、本実施形態において、サムネイル列をスクロールさせるときの処理の例について説明する。なお、以下の説明では、ユーザによるタッチ操作においてタッチペン28或いはユーザの指で触れられるなど、タッチパネル13に対する接触があったときをタッチオンと称し、触れられたタッチペン28或いはユーザの指が離れたときなど、タッチパネル13に対する接触がなくなったときをタッチオフと称する。
【0124】
本実施形態では、一例として、サムネイル列のスクロールが、ユーザによってタッチパネル13に対するタッチオンを契機として開始されるスクロール表示処理で実現される。本実施形態におけるスクロール表示処理による表示形態例について、図13〜図17を参照して説明する。
【0125】
本実施形態では、一例として、アルバム表示処理によって下側LCD12にサムネイルが表示されている状態においてタッチオンされるとスクロール表示処理が開始される。スクロール表示処理が開始されると、本実施形態では、タッチオフされるまで、タッチペン28或いは指などのスライド操作に追従してサムネイルが水平スクロールする。
【0126】
具体的には、図13に示すようにタッチペン28でタッチオンされた後、タッチペン28を用いて左右方向成分のいずれかを含むスライド操作をすると、サムネイル列がスライド操作の左右方向成分のいずれかの方向成分に応じた方向に追従するように水平スクロールする追従スクロールが実行される。追従スクロールが実行されるときには、例えば、タッチペン28を用いて左方向成分を少なくとも含むスライド操作をしたときには、スライド操作によるタッチ位置座標の変化に応じて、各サムネイルのグローバル座標におけるスクロール位置の左右方向における位置を示す座標(以下、Gx座標と称する)が逐次減算される。一方、タッチペン28を用いて右方向成分を少なくとも含むスライド操作をしたときには、スライド操作によるタッチ位置座標の変化に応じて、各サムネイルのスクロール位置のGx座標が逐次加算される。各サムネイルのスクロール位置のGx座標を逐次減算または逐次加算する演算の後、演算後の各サムネイルのスクロール位置の座標に基づいて上述した手法により下側LCD12にサムネイルを示す画像が実際に表示され、追従スクロールが実現される。このように、本実施形態では、一例として、グローバル座標系において固定した下側LCD12の表示領域に対して各サムネイルの位置を相対的に移動させる演算をすることにより追従スクロールが実現される。このことは、後述する等速スクロール、減速スクロールおよび停止スクロールについても同様である。
【0127】
次に、タッチペン28を用いたスライド操作におけるスライド速度、すなわち、タッチパネル13の平面に平行な方向への速度を維持しながらタッチオフされると、本実施形態では、一例として、サムネイル列を構成するサムネイルの数に応じて決定された期間でスライド操作の方向に応じてサムネイル列が等速スクロールした後、スクロール速度が漸減しながら停止するスクロールが行われる。
【0128】
図15は、本実施形態において、等速スクロールを開始してからスクロールが停止するまでのスクロール速度Svとスクロール時間Stとの関係の一例を示す図である。図15において、Stはスクロール時間であり、Ttは等速スクロール期間であり、Gtは減速スクロール期間であり、Ktは停止スクロール期間であり、Tvは等速スクロール速度であり、Gvは減速スクロール速度であり、Kvは停止スクロール速度であり、thはスクロール速度Svに対して予め定められたしきい値である。
【0129】
本実施形態では、ユーザがスライド操作したときのスライド速度を維持したままタッチオフすると、図15に一例として示すように、等速スクロール期間Tt中は、等速スクロール速度Tvでスライド操作に応じた方向にサムネイル列を水平スクロールさせる。サムネイル列の等速スクロールを開始するときには、まず、スクロール時間Stの計測を開始する。また、スクロール時間Stの計測開始と共に、等速スクロールにおける等速スクロール期間Tt、等速スクロール速度Tvおよび減速スクロール期間Gtが求められる。
【0130】
等速スクロール期間Ttは、一例として、サムネイル列を構成するサムネイルの数に所定の定数を乗算することによって求められる。つまり、等速スクロール期間Ttは、サムネイル列を構成するサムネイルの数に比例するように求められる。また、等速スクロール速度Tvは、ユーザがタッチオフするまでのタッチ位置TPのスライド量に基づいて求められる。より詳細には、例えば、等速スクロール速度Tvを計算するときには、タッチ位置TPの履歴に基づいて、ユーザがタッチオフする直前の予め定められた期間における所定の時間単位毎の左右方向のタッチ位置が用いられる。そして、当該期間中のタッチ位置TPの履歴に基づいて、所定の時間単位毎のタッチ位置TPの左右方向の移動距離がそれぞれスライド量(スライド速度)として求められる。例えば、求められたそれぞれのスライド量の平均を、等速スクロール速度Tvとして計算する。このように等速スクロール速度Tvを求めることにより、ユーザがタッチオフする直前のスライド量に応じて等速スクロール速度Tvで等速スクロールを開始できる。すなわち、ユーザがタッチオフするまでの操作感覚を反映した初速で等速スクロールを開始できる。なお、等速スクロール速度Tvの大きさに応じて、等速スクロール期間Ttを調整してもよい。
【0131】
また、減速スクロール期間Gtは、図15に一例として示すように、スクロール時間Stが等速スクロール期間Ttの終了タイミングを超えるときを開始タイミングとして、減速スクロール速度Gvが等速スクロール速度Tvから所定の減速度(負の加速度)Gaでしきい値th以下になるまでの期間として求められる。
【0132】
スクロール時間Stの計測を開始し、等速スクロール期間Tt、等速スクロール速度Tvおよび減速スクロール期間Gtが求められると、スライド操作の方向に応じた等速スクロール速度Tvの等速スクロールが等速スクロール期間Tt中に実行される。具体的には、等速スクロール期間Ttの開始タイミングで計測が開始されたスクロール時間Stが等速スクロール期間Ttの終了タイミングを超えるまで等速スクロールが実行される。等速スクロールが実行されるときには、計算された等速スクロール速度Tvがスクロール速度Svとして設定される。スクロール速度Svが設定されると、スクロールの方向に従って設定されたスクロール速度Svで移動するように各サムネイルのスクロール位置のGx座標が逐次減算または逐次加算される。各サムネイルのスクロール位置のGx座標を逐次減算または逐次加算する演算がされた後は、追従スクロールが実行されるときについて説明したように、演算後の各サムネイルのスクロール位置の座標に基づいて上述した手法により下側LCD12にサムネイルを示す画像が実際に表示され、等速スクロールが実現される。
【0133】
計測しているスクロール時間Stが等速スクロール期間Ttの終了タイミングを超えると、図15に一例として示すように、スクロール速度Svを漸減させる減速スクロールが実行される。減速スクロールが実行されるときには、スクロール時間Stが減速スクロール期間Gtの終了タイミングを超えるまで、所定の減速度Ga(負の加速度)で等速スクロール速度Tvから漸減する減速スクロール速度Gvが逐次計算される。そして、逐次計算される減速スクロール速度Gvがスクロール速度Svとして逐次設定される。減速スクロールは、逐次設定されるスクロール速度Svに基づいて、等速スクロールで説明した手法と同様の手法で各サムネイルのスクロール位置を逐次演算した結果に基づいて、下側LCD12にサムネイルを示す画像が表示されることによって実現される。
【0134】
スクロール速度Svがしきい値th以下になった後、スクロール時間Stが減速スクロール期間Gtの終了タイミングを超えると、停止スクロールが実行される。上述したように減速スクロール期間Gtは、スクロール時間Stが等速スクロール期間Ttを超えるときを開始タイミングとして、減速スクロール速度Gvが等速スクロール速度Tvからしきい値th以下になるまでの期間として求められる。従って、スクロール速度Svがしきい値th以下になるときとは、必然的にスクロール時間Stが減速スクロール期間Gtの終了タイミングとなる。
【0135】
ここで、停止スクロールとは、下側LCD12の中央位置Hcにいずれかのサムネイルが到来したときにスクロール速度Svがゼロになるように当該スクロール速度Svを漸減させるスクロールのことである。停止スクロールが実行されるときには、まず、上述したようにグローバル座標系における各サムネイルのスクロール位置とスクロール方向とに基づいて、スクロールを続けているサムネイルの中から次に中央位置HcとGx座標が一致するスクロール位置のサムネイルが特定される。中央位置Hcと次にGx座標が一致するスクロール位置のサムネイルが特定されると、特定されたサムネイルのスクロール位置と中央位置HcとのGx座標の間隔が停止距離Tkとして求められる。図16に示す一例では、左方向に減速スクロールしている場合において、次にGx座標が中央位置Hcと一致するサムネイルS19のスクロール位置CiのGx座標から中央位置HcのGx座標までの水平距離が停止距離Tkとして示されている。
【0136】
停止距離Tkが求められると、しきい値th以下となったときの減速スクロール速度Gvから、求めた停止距離Tkで、スクロール速度Svがゼロとなるように停止スクロール減速度Ka(負の加速度)が求められる。停止スクロール減速度Kaが求められると、しきい値th以下となったときの減速スクロール速度Gvから求められた停止スクロール減速度Kaで漸減する停止スクロール速度Kvが逐次計算される。そして、スクロール速度Svが停止スクロール速度Kvに逐次設定される。停止スクロールは、停止スクロール速度Kvに逐次設定されるスクロール速度Svに基づいて、減速スクロールで説明した手法と同様の手法で各サムネイルのスクロール位置のGx座標を逐次演算した結果に基づいて、下側LCD12にサムネイルを示す画像が実際に表示されることによって実現される。これにより、漸減するように逐次計算される停止スクロール速度Kvがゼロとなったときに停止距離Tkで中央位置Hcと左右方向の位置が一致すると特定されたサムネイルが中央位置Hcの左右方向の位置で停止する。図17において、下側LCD12の表示画面では、次に中央位置Hcと左右方向の位置が一致するサムネイルとして特定されたサムネイルS19の左右方向の位置が中央位置Hcの左右方向の位置に一致してスクロールが停止している。
【0137】
なお、本実施形態では、等速スクロール速度Tvがしきい値th以下である場合には、直ちに停止スクロールを実行してもよい。この場合、タッチオフされたときに中央位置Hcと左右方向の位置が一致するサムネイルの停止距離Tkが直ちに計算され、上述した停止スクロールが実行される。
【0138】
また、追従スクロール、等速スクロール、減速スクロールおよび停止スクロールのいずれかを実行しているとき、すなわち、スクロール表示処理を実行しているときにおいて、スクロールを継続できない場合がある。具体的には、サムネイル列を右方向にスクロールをさせている途中で、サムネイル列の左端に位置するサムネイルのスクロール位置のGx座標が中央位置HcのGx座標と一致する場合に、スクロールを停止させる。また、サムネイル列を左方向にスクロールをさせている途中で、サムネイル列の右端に位置するサムネイルのスクロール位置のGx座標が中央位置HcのGx座標と一致する場合にもスクロールを停止させる。このような場合において、左端または右端のサムネイルのスクロール位置のGx座標が中央位置HcのGx座標を超えないように各サムネイルの位置を演算してもよい。これにより、サムネイル列の両端に位置するサムネイルのいずれかのスクロール位置のGx座標が中央位置Hcを越えるようなスクロールが行われた場合には、当該サムネイルのスクロール位置のGx座標が中央位置HcのGx座標で停止するようにスクロール表示される。
【0139】
また、本実施形態では、上述の説明から明らかなように、一例として、スクロール表示処理においてタッチオフされた後、等速スクロール期間Tt、減速スクロール期間Gtおよび停止スクロール期間Ktにおいて設定されたスクロール速度Svでスクロールさせる自動的なスクロールが実行される。このように自動的なスクロールが実行されているときにおいて、再びユーザによってタッチオンされたとき、自動的なスクロールを強制的に停止し、上述で説明したスライド操作に応じた追従スクロールを再び実行してもよい。
【0140】
このように、本実施形態では、一例として、スライド操作でサムネイルをスライドさせながら、スライド速度を維持したままタッチオフしたときに、サムネイルの数に基づいて計算された等速スクロール期間Ttにおける等速スクロールが開始される。そして、等速スクロールをしてから、減速スクロールおよび停止スクロールでスクロール速度を漸減させてからスクロールを停止する。
【0141】
次に、ゲーム装置10で行われる処理動作を説明する前に、図18を参照して、表示制御プログラムを実行する際に用いられる各種データについて説明する。なお、図18は、表示制御プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図である。
【0142】
図18において、メインメモリ32には、操作データDa、アルバムデータDb、画像データDc、サムネイル位置データDd、フラグデータDeおよび表示制御プログラムなどで構成される各種プログラム群Paが記憶される。
【0143】
操作データDaは、タッチパネル13をユーザがタッチしている画面座標系のタッチ位置TPを示すデータ(タッチ位置データDa1)や操作ボタン14をユーザが操作している状態を示すデータ(操作ボタンデータDa2)が記憶される。例えば、タッチ位置TPや操作ボタン14の状態は、ゲーム装置10がゲーム処理する時間単位(例えば、1/60秒)毎に取得され、取得されたときにタッチ位置データDa1および操作ボタンデータDa2に記憶されて更新される。また、タッチ位置データDa1は、タッチ操作されているときには、タッチ位置TPを示し、タッチ操作されていないときには、タッチ操作されていない状態を、例えば、ヌル(Null)で示すデータが記憶される。また、本実施形態のタッチ位置データDa1は、例えば、少なくとも直前の所定回数(例えば5回)における処理で取得されたタッチ位置TPまたはヌルのいずれかを示す履歴を含む。従って、本実施形態では、タッチ位置データDa1に基づいて、タッチパネル13にタッチされている位置TPを判断できるだけでなく、タッチパネル13に対してタッチオンまたはタッチオフされているかを判断できる。具体的には、タッチ位置データDa1に記憶されている最新のデータが示す位置が現時点でユーザがタッチ操作しているタッチ位置TPであって、それ以前の状態がヌルである場合には当該タッチ位置TPにタッチオンされたと判断できる。一方、タッチ位置データDa1で示される最新のデータがヌルであって、その直前のデータがタッチ位置TPを示すデータである場合には当該タッチ位置TPでタッチオフされたと判断できる。
【0144】
アルバムデータDbは、表示制御プログラムに含まれるアルバム作成処理プログラムまたはアルバム表示処理プログラムを実行することに応じてメインメモリ32に記憶されるデータである。アルバム作成処理プログラムでは、上述で説明したように、当該プログラムが開始されたときにアルバムデータDbがメインメモリ32に生成される。また、アルバム表示処理プログラムでは、当該プログラムが開始されたときに、上述で説明したようにデータ保存用外部メモリ46からアルバムデータDbがメインメモリ32に読み込まれる。アルバムデータDbには、アルバムに登録されたカメラ画像CIのカメラ画像識別子Pidを記憶するカメラ画像識別子データDb1と、カメラ画像CIに対応するサムネイルのサムネイル識別子Pidを記憶するサムネイル識別子データDb2が含まれる。このアルバムデータDbの一例が、図6に示して説明したアルバムデータである。
【0145】
画像データDcは、カメラ画像データDc1およびサムネイルデータDc2を含んでいる。カメラ画像データDc1は、アルバム表示処理プログラムを実行するときに読み込まれるデータである。カメラ画像データDc1は、アルバム表示処理プログラムが開始されたときに読み込まれるアルバムデータDbに含まれるカメラ画像識別子Pidで示されるカメラ画像CIが記憶される。カメラ画像データDc1に記憶されるカメラ画像CIは、データ保存用外部メモリ46から読み込まれる。また、サムネイルデータDc2は、アルバム表示処理プログラムを実行するときに読み込まれるデータである。サムネイルデータDc2は、アルバム表示処理プログラムが開始されたときに読み込まれるアルバムデータDbに含まれるサムネイル識別子Sidで示されるサムネイルが記憶される。サムネイルデータDc2に記憶されるサムネイルは、データ保存用外部メモリ46から読み込まれる。
【0146】
なお、本実施形態では、一例として、アルバム作成処理プログラムにおいて、上述したアルバム作成画面に表示されるカメラ画像CIおよびサムネイルは、アルバムデータDbに含まれるカメラ画像識別子Pidとサムネイル識別子Sidとに関わらずに、必要に応じてデータ保存用外部メモリ46から直接読み込まれるものとする。
【0147】
サムネイル位置データDdは、サムネイルのグローバル座標系におけるスクロール位置を示すデータであり、スクロール表示処理によって生成または逐次更新されるデータである。
【0148】
フラグデータDeは、スクロール時間計測フラグDe1と停止スクロール減速度計算フラグDe2とを含んでいる。スクロール時間計測フラグDe1は、スクロール時間Stの計測を開始済みであるか否かを示すフラグデータである。スクロール時間計測フラグDe1は、スクロール時間Stの計測を開始済みであることをオンで示し、開始済みでないことをオフで示すフラグデータである。また、停止スクロール減速度計算フラグDe2は、停止スクロール減速度Kaを計算済みであるか否かを示すフラグデータである。停止スクロール減速度計算フラグDe2は、停止スクロール減速度Kaを計算済みであることをオンで示し、計算済みでないことをオフで示すフラグデータである。
【0149】
次に、図19〜図28を参照して、ゲーム装置10で実行される表示制御プログラムによる具体的な処理動作について説明する。なお、図19は、表示制御プログラムを実行することによってゲーム装置10が表示制御処理を行う一例を示すフローチャートである。また、図20〜図21は、ステップ103で実行されるアルバム作成処理の詳細な動作を示すサブルーチンである。また、図22は、ステップ105で実行されるアルバム表示処理の詳細な動作を示すサブルーチンである。また、図23〜図24は、ステップ302で実行されるサムネイル配置処理の詳細な動作を示すサブルーチンである。また、図25〜図28は、ステップ307で実行されるスクロール表示処理の詳細な動作を示すサブルーチンである。また、図19〜図28においては、ステップを「S」と略称している。
【0150】
まず、図19において、ゲーム装置10の電源(電源ボタン14F)がONされると、CPU311によってブートプログラム(図示せず)が実行され、これによりデータ保存用外部メモリ46に記憶されている、複数のアプリケーションプログラムを選択的に実行するプログラムがメインメモリ32にロードされる。ロードされたプログラムは、CPU311によって実行され、プログラム選択画面が下側LCD12に表示される(ステップ101)。プログラム選択画面では、後述するアルバム作成処理プログラムおよびアルバム表示処理プログラムを含む選択可能なアプリケーションプログラムが、例えば、アイコンで表示され、ユーザによるタッチ操作により選択できる。
【0151】
CPU311は、タッチ位置データDa1に基づいて、プログラム選択画面においてアルバム作成アプリケーションが選択されたか否かを判断する(ステップ102)。具体的には、CPU311は、タッチ位置データDa1を取得し、取得したタッチ位置データDa1で示される最新のタッチ位置TPが、下側LCD12におけるアルバム作成アプリケーションのアイコンの表示位置であるときに、アルバム作成アプリケーションが選択されたと判断できる。CPU311は、アルバム作成アプリケーションが選択されたと判断した場合(ステップ102:Yes)、アルバム作成処理を実行する(ステップ103)。以下、図20〜図21を参照して、上記ステップ103で行うアルバム作成処理の詳細な動作について説明する。
【0152】
図20において、CPU311は、ユーザにアルバムを作成させるためのアルバム作成画面を上側LCD22および下側LCD12に表示させ(ステップ201)、さらに、データ保存用外部メモリ46に記憶されているサムネイルをサムネイル識別子Sidと共にメインメモリ32に読み込んで下側LCD12に表示させる(ステップ202)。CPU311によってステップ201およびステップ202の処理が実行されたときには、図5に示すアルバム作成画面の表示例において、アルバム画像および選択枠画像Swを除く表示が上側LCD22および下側LCD12にそれぞれされている。アルバム作成画面およびサムネイルを表示させると、CPU311は、タッチ位置データDa1を取得する(ステップ203)。CPU311は、取得したタッチ位置データDa1で示される最新のタッチ位置TPに基づいて下側LCD12に表示されているいずれかのサムネイルにタッチ操作されたか否かを判断する(ステップ204)。CPU311は、タッチ位置データDa1によって示される最新のタッチ位置TPがいずれかのサムネイルの表示位置である場合、サムネイルにタッチ操作されたと判断し(ステップ204:Yes)、図5に一例として示すように、タッチ操作されたと判断したサムネイルの縁を強調する選択枠画像Swを表示させる(ステップ205)。
【0153】
一方、CPU311は、サムネイルにタッチ操作されていないと判断した場合(ステップ204:No)、ステップ203で取得したタッチ位置データDa1によって示される最新のタッチ位置TPに基づいて下側LCD12に表示されている「はずす」ボタンアイコンHbにタッチ操作されたか否かを判断する(ステップ206)。CPU311は、タッチ位置データDa1によって示される最新のタッチ位置TPが「はずす」ボタンアイコンHbの表示位置である場合、「はずす」ボタンアイコンHbにタッチ操作されたと判断し(ステップ206:Yes)、次のステップ207へ処理を進める。ステップ207において、CPU311は、上側LCD22において枠画像Hwに収められているアルバム画像として表示されているカメラ画像CIのカメラ画像識別子Pidと当該カメラ画像CIのサムネイルのサムネイル識別子Sidとを上述で説明したようにアルバムデータDbから削除し、順番を示す番号Nを上述したように更新する。
【0154】
一方、CPU311は、「はずす」ボタンアイコンHbにタッチ操作されていないと判断した場合(ステップ206:No)、ステップ203で取得したタッチ位置データDa1によって示される最新のタッチ位置TPに基づいて下側LCD12に表示されている「いれる」ボタンアイコンIbにタッチ操作されたか否かを判断する(ステップ208)。CPU311は、ステップ203で取得したタッチ位置データDa1によって示される最新のタッチ位置TPが「いれる」ボタンアイコンIbの表示位置である場合、「いれる」ボタンアイコンIbにタッチ操作されたと判断し(ステップ208:Yes)、次のステップ209へ処理を進める。ステップ209において、CPU311は、下側LCD12において選択されることによって選択枠画像Swで縁が強調されているサムネイルで示されるカメラ画像CIのカメラ画像識別子Pidと当該サムネイルのサムネイル識別子Sidとを上述で説明したようにアルバムデータDbに登録し、順番を示す番号Nを上述したように更新する。
【0155】
一方、CPU311は、「いれる」ボタンアイコンIbにタッチ操作されていないと判断した場合(ステップ208:No)、ステップ203で取得したタッチ位置データDa1によって示される最新のタッチ位置TPに基づいて下側LCD12に表示されている「完成」ボタンアイコンKbにタッチ操作されたか否かを判断する(ステップ220)。CPU311は、ステップ203で取得したタッチ位置データDa1によって示される最新のタッチ位置TPが下側LCD12に表示されている「完成」ボタンアイコンKbの表示位置である場合、「完成」ボタンアイコンKbにタッチ操作されたと判断し(ステップ220:Yes)、メインメモリ32に記憶されているアルバムデータDbをデータ保存用外部メモリ46に転送して(ステップ221)、当該サブルーチンによる処理を終了する。当該サブルーチンによる処理が終了すると、再び上述したプログラム選択画面が表示される。
【0156】
一方、CPU311は、「完成」ボタンアイコンKbにタッチ操作されていないと判断した場合(ステップ220:No)、操作ボタンデータDa2を取得する(ステップ222)。CPU311は、ステップ222で取得した操作ボタンデータDa2に基づいてRボタン14Hが押下されたか否かを判断する(ステップ223)。CPU311は、Rボタン14Hが押下されたと判断すると(ステップ223:Yes)、上側LCD22の中央に表示されているアルバム画像の右隣に表示されているアルバム画像が中央に表示されるように全てのアルバム画像を左にスクロールさせる(ステップ224)。一方、CPU311は、Rボタン14Hが押下されていないと判断すると(ステップ223:No)、ステップ222で取得した操作ボタンデータDa2に基づき、Lボタン14Gが押下されたか否かを判断する(ステップ225)。CPU311は、Lボタン14Gが押下されたと判断すると(ステップ225:Yes)、上側LCD22の中央に表示されているアルバム画像の左隣に表示されているアルバム画像が中央に表示されるように全てのアルバム画像を右にスクロールさせる(ステップ226)。
【0157】
CPU311は、選択枠画像Swを表示させたとき(ステップ205)、アルバムデータDbからカメラ画像識別子Pidとサムネイル識別子Sidとを削除したとき(ステップ207)、アルバムデータDbにカメラ画像識別子Pidとサムネイル識別子Sidとを登録したとき(ステップ209)、アルバム画像を左にスクロールさせたとき(ステップ224)またはアルバム画像を右にスクロールさせたとき(ステップ226)、ステップ203から処理を繰り返す。
【0158】
図19に戻り、CPU311は、アルバム作成アプリケーションが選択されていないと判断した場合(ステップ102:No)、タッチ位置データDa1に基づいて、アルバム表示アプリケーションが選択されたか否かを判断する(ステップ104)。具体的には、CPU311は、タッチ位置データDa1を取得し、取得したタッチ位置データDa1で示される最新のタッチ位置TPが、下側LCD12におけるアルバム表示アプリケーションのアイコンの表示位置であるときに、アルバム表示アプリケーションが選択されたと判断できる。CPU311は、アルバム表示アプリケーションが選択されたと判断した場合(ステップ104:Yes)、アルバム表示処理を実行する(ステップ105)。以下、図22を参照して、上記ステップ105で行うアルバム表示処理の詳細な動作について説明する。
【0159】
図22において、CPU311は、アルバムデータDbをデータ保存用外部メモリ46から読み込んでメインメモリ32に転送し(ステップ301)、サムネイル配置処理を実行する(ステップ302)。以下、図23〜図24を参照して、上記ステップ302で行うサムネイル配置処理の詳細な動作について説明する。
【0160】
図23において、CPU311は、配置位置を決定するサムネイルを認識するための順番を示す番号Nを1に初期化し(ステップ401)、アルバムデータDbに記憶されているサムネイル識別子Sidの中から番号Nで記憶されているサムネイル識別子Sidで示されるサムネイルの基本位置Kiを上述で説明したように求める(ステップ402)。基本位置Kiを求めると、CPU311は、順番を示す番号NのサムネイルのレートRとして計算するのが始点レートRsであるか否かを判断する(ステップ403)。具体的には、本実施形態では、上述の説明から明らかなように、CPU311は、番号Nが1〜7のいずれかであるとき、サムネイルのレートRとして計算するのが始点レートRsであると判断する。CPU311は、サムネイルのレートRとして計算するのが始点レートRsであると判断した場合(ステップ403:Yes)、上述の式(2)で示される始点レートRsを番号NのサムネイルのレートRとして計算して設定する(ステップ404)。一方、CPU311は、番号NのサムネイルのレートRとして計算するのが始点レートRsでないと判断した場合(ステップ403:No)、番号NのサムネイルのレートRとして計算するのが終点レートReであるか否かを判断する(ステップ405)。具体的には、本実施形態では、CPU311は、上述で説明したように、番号Nが24〜30のいずれかであるとき、サムネイルのレートRとして計算するのが終点レートReであると判断する。CPU311は、サムネイルのレートRとして計算するのが終点レートReであると判断した場合(ステップ405:Yes)、上述の式(3)で示される終点レートReを番号NのサムネイルのレートRとして計算して設定する(ステップ406)。一方、CPU311は、番号NのサムネイルのレートRとして計算するのが終点レートReでないと判断した場合(ステップ405:No)、番号NのサムネイルのレートRを1に設定する(ステップ407)。
【0161】
CPU311は、番号NのサムネイルについてレートRを設定すると、設定したレートRとステップ402で求めた基本位置KiのLy軸方向における位置とを乗算して、上述した当該サムネイルの配置位置を決定する(ステップ408)。配置位置を決定すると、CPU311は、決定した配置位置に基づいて上述した初期位置を計算し(ステップ420)、計算した初期位置を番号Nのサムネイルの初期位置としてサムネイル位置データDdに記憶させる(ステップ421)。初期位置を記憶させると、CPU311は、番号NがアルバムデータDbに登録されているサムネイルの最後の番号Nmaxと等しいか否かを判断する(ステップS422)。CPU311は、番号NがアルバムデータDbに登録されているサムネイルの最後の番号Nmaxと等しい場合(ステップ422:Yes)、アルバムデータDbに登録されている全てのサムネイルについて初期位置を決定したと判断し、決定した初期位置に基づいて下側LCD12に上述した初期画面を表示させ(ステップ423)、当該サブルーチンによる処理を終了する。一方、CPU311は、番号NがアルバムデータDbに登録されている最後の番号Nmaxと等しくない場合(ステップ422:No)、アルバムデータDbに登録されているサムネイルの中で初期位置を決定していないサムネイルが存在すると判断し、番号Nを1だけインクリメントして(ステップ424)、処理をステップ402から繰り返す。
【0162】
図22に戻り、CPU311は、タッチ位置データDa1を取得し(ステップ303)、取得したタッチ位置データDa1に基づいて下側LCD12に表示されているサムネイルにタッチオンされたか否かを判断する(ステップ304)。CPU311は、ステップ303で取得したタッチ位置データDa1で示される最新のタッチ位置TPが下側LCD12に表示されているいずれかのサムネイルの表示位置であって、上述した手法で当該タッチ位置TPへのタッチがタッチオンであると判断した場合、サムネイルにタッチオンされたと判断し(ステップ304:Yes)、タッチオンされたサムネイルで示されるカメラ画像CIを上側LCD22に表示させ(ステップ305)、次のステップ307へ処理を進める。一方、CPU311は、サムネイルにタッチオンされていないと判断した場合(ステップ304:No)、ステップ303で取得したタッチ位置データDa1に基づいて、下側LCD12において、サムネイルおよび「おわる」ボタンアイコンObの表示位置を除くスクロール受付領域にタッチオンされたか否かを判断する(ステップ306)。CPU311は、ステップ303で取得したタッチ位置データDa1で示される最新のタッチ位置TPが下側LCD12において、前述のスクロール領域であって、上述した手法で当該タッチ位置TPへのタッチがタッチオンであると判断した場合、スクロール受付領域にタッチオンされたと判断し(ステップ306:Yes)、次のステップ307へ処理を進める。
【0163】
CPU311が、ステップ304〜ステップ306の処理をすることにより、ユーザがサムネイルにタッチオンしたときには、タッチオンされたサムネイルのカメラ画像CIをアルバム画像として上側LCD22に表示させてからスクロール表示処理に移行できる。一方で、CPU311が、ステップ304〜ステップ306の処理をすることにより、下側LCD12の表示領域においてサムネイルおよび「おわる」ボタンアイコンObを除く領域にユーザがタッチオンしたときにはそのままスクロール表示処理に移行できる。
【0164】
一方、CPU311は、ステップ303において取得した最新のタッチ位置TPがスクロール受付領域に含まれていないと判断したとき(ステップ306:No)、当該タッチ位置TPが下側LCD12に表示されている「おわる」ボタンアイコンObの表示位置であるか否かを判断する(ステップ308)。CPU311は、タッチ位置が「おわる」ボタンアイコンObの表示位置であると判断したとき(ステップ308:Yes)、「おわる」ボタンアイコンObにタッチ操作されたと判断して、当該サブルーチンによる処理を終了する。当該サブルーチンによる処理が終了すると、再び上述したプログラム選択画面が表示される。一方、CPU311は、タッチ位置が「おわる」ボタンアイコンObの表示位置でないと判断したとき(ステップ308:No)、処理をステップ303から繰り返す。
【0165】
図19に戻り、CPU311は、アルバム表示アプリケーションが選択されていないと判断したとき(ステップ104:No)、プログラム選択画面に表示されている他のアプリケーションプログラムが選択されたか否かを判断する(ステップ106)。具体的には、CPU311は、タッチ位置データDa1を取得し、取得したタッチ位置データDa1で示される最新のタッチ位置TPが、下側LCD12における他のアプリケーションプログラムを示すアイコンの表示位置であるときに、他のアプリケーションプログラムが選択されたと判断できる。CPU311は、他のアプリケーションプログラムが選択されたと判断すると(ステップ106:Yes)、選択されたアプリケーションプログラムを実行した後、処理をステップ108へ進める。一方、CPU311は、他のアプリケーションプログラムが選択されていないと判断したとき(ステップ106:No)、処理をステップ108へ進める。
【0166】
CPU311は、アルバム作成処理(ステップ103)、アルバム表示処理(ステップ105)、他のアプリケーションプログラムの処理(ステップ107)をそれぞれ終了した後、および、他のアプリケーションプログラムが選択されなかったとき(ステップ106:No)、プログラム選択画面において「終了」ボタンアイコンにタッチ操作されたか否かを判断する(ステップ108)。具体的には、CPU311は、タッチ位置データDa1を取得し、取得したタッチ位置データDa1で示される最新のタッチ位置TPが、下側LCD12における「終了」ボタンアイコンの表示位置であるときに、「終了」ボタンアイコンがタッチ操作されたと判断できる。CPU311は、「終了」ボタンアイコンにタッチ操作されたと判断すると(ステップ108:Yes)、ゲーム装置10の電源をOFFにして処理を終了する。一方、CPU311は、「終了」ボタンアイコンにタッチ操作されていないと判断すると(ステップ108:No)、プログラム選択画面の表示を継続して、ユーザにプログラムを選択させる。
【0167】
図22を再び参照して、CPU311は、上述したようにステップ305の処理をしたときまたはステップ306でYesと判断したとき、処理をステップ307のスクロール表示処理へ進める。以下、図25〜図29を参照して、上記ステップ307で行うスクロール表示処理の詳細な動作について説明する。
【0168】
図25において、CPU311は、タッチ位置データDa1を取得し(ステップ501)、最新のタッチ位置TPとそれよりも1つだけ以前のタッチ位置TPの左右方向の位置の差分を差分距離として計算する(ステップ502)。CPU311は、差分距離を計算すると、計算した差分距離だけサムネイル列を左右方向に移動させたときの各サムネイルのスクロール位置を計算する(ステップ503)。
【0169】
CPU311は、各サムネイルの移動後のスクロール位置を計算すると、計算したスクロール位置に基づき、サムネイル列のスクロールを継続できるか否かを判断する(ステップ504)。より詳細には、CPU311は、ステップ501で取得したタッチ位置データDa1に基づいて、スクロールの方向が右方向および左方向のいずれかを判断する。CPU311は、スクロールの方向が左方向であると判断した場合には、サムネイル列の右端のサムネイルの移動後のスクロール位置と中央位置HcとのGx座標を比較する。具体的には、CPU311は、移動後の右端のサムネイルのスクロール位置のGx座標が中央位置HcのGx座標と一致する場合、スクロールを継続できないと判断し、中央位置HcのGx座標よりも大きい場合、スクロールを継続できると判断する。一方、CPU311は、スクロールの方向が右方向であると判断した場合には、サムネイル列の左端のサムネイルの移動後のスクロール位置と中央位置HcとのGx座標を比較する。具体的には、CPU311は、移動後の左端のサムネイルスクロール位置のGx座標が中央位置HcのGx座標と一致する場合、スクロールを継続できないと判断し、中央位置HcのGx座標よりも小さい場合、スクロールを継続できると判断する。以下では、CPU311が、スクロールを継続できるか否かを判断するときには、同様の手法を用いるものとする。
【0170】
CPU311は、スクロールを継続できると判断したとき(ステップ504:Yes)、ステップ503で計算したスクロール位置まで各サムネイルを移動させる水平スクロールを実行し、移動後の各サムネイルのスクロール位置でサムネイル位置データDdを更新する(ステップ505)。CPU311は、ステップ502〜ステップ505の処理をすることにより、最新のタッチ位置TPと1つだけ以前のタッチ位置TPの位置との左右方向の差分距離だけサムネイル列をスクロールさせる水平スクロールをステップ507でタッチオフされたと判断されるまで継続する。すなわち、CPU311は、ステップ502〜ステップ507の処理をすることにより、タッチ位置TPに従ってサムネイルをスクロールさせる追従スクロールをタッチオフされるまで実行できる。
【0171】
一方、CPU311は、ステップ505の処理をしたとき、またはスクロールを継続できないと判断したとき(ステップ504:No)、タッチ位置データDa1を取得する(ステップ506)。CPU311は、取得したタッチ位置データDa1に基づいて上述した手法でユーザがタッチオフしたか否かを判断する(ステップ507)。
【0172】
CPU311は、ユーザがタッチオフしていないと判断したとき(ステップ507:No)処理をステップ501から繰り返す。一方、CPU311は、ユーザがタッチオフしたと判断したとき(ステップ507:Yes)、ステップ509の処理をするときにおいてスクロールを継続できるか否かを上述した手法で判断する(ステップ508)。CPU311は、スクロールを継続できると判断したとき(ステップ508:Yes)、ステップ521へ処理を進める。一方、CPU311は、スクロールを継続できないと判断したとき(ステップ508:No)、ステップ547へ処理を進める。
【0173】
CPU311は、ステップ507の処理をすることにより、ユーザがタッチオフしていないと判断したときには、ステップ501から処理を繰り返して上述した追従スクロールを継続できる。一方、CPU311は、ステップ507の処理をすることにより、ユーザがタッチオフしたと判断したときには、さらに、ステップ508でスクロールを継続できると判断したときに、処理をステップ521に進めて等速スクロールのための処理に移行できる。
【0174】
図26において、CPU311は、スクロール時間計測フラグDe1がオンとなっているか否かを判断する(ステップ521)。CPU311は、スクロール時間計測フラグDe1がオンとなっていると判断したとき(ステップ521:Yes)、処理をステップ528へ進める。一方、CPU311は、スクロール時間計測フラグDe1がオンとなっていないと判断したとき(ステップ521:No)、RTC38から出力されるカウントされた時間に基づいて、スクロール時間Stの計測をゼロから開始し(ステップ522)、メインメモリ32に記憶されているスクロール時間計測フラグDe1をオンにする(ステップ523)。
【0175】
後述で明らかとなるが、スクロール時間Stの計測を開始済みである場合には、等速スクロール速度Tv、等速スクロール期間Ttおよび減速スクロール期間Ttが計算済みということになる。従って、CPU311は、ステップ521の処理でスクロール時間Stの計測を開始済みであるか否かを判断することによって、等速スクロール速度Tv、等速スクロール期間Ttおよび減速スクロール期間Ttを計算済みであるか否かを判断できる。そして、CPU311は、スクロール時間Stの計測を開始済みであると判断したときには、等速スクロール速度Tv、等速スクロール期間Ttおよび減速スクロール期間Ttを計算する処理をスキップしてステップ528へ処理を進められる。
【0176】
スクロール時間計測フラグDe1をオンにするとCPU311は、等速スクロール速度Tvを計算する(ステップ524)。具体的には、CPU311は、タッチ位置データDa1に含まれるタッチ位置TPの履歴に基づいて、上述したように等速スクロール速度Tvを計算する。次に、CPU311は、計算した等速スクロール速度Tvがしきい値th以下であるか否かを判断する(ステップ525)。CPU311は、計算した等速スクロール速度Tvがしきい値th以下でないと判断したとき(ステップ525:No)、サムネイル列を構成するサムネイルの数に基づいて上述したように等速スクロール期間Ttを計算し(ステップ526)、さらに、上述したように減速スクロール期間Gtを計算する(ステップ527)。一方、CPU311は、ステップ524で計算した等速スクロール速度Tvがしきい値th以下であると判断したとき(ステップ525:Yes)、ステップ541へ処理を進める。
【0177】
CPU311は、ステップ525において計算した等速スクロール速度Tvがしきい値th以下である場合には処理をステップ541へスキップする。等速スクロール速度Tvがしきい値th以下であるにも関わらず等速スクロール期間Ttで等速スクロールをすると、中央位置HcとGx座標を一致させて停止させなければならないサムネイルがスクロール速度Svを漸減させる前に到来してしまい、滑らかなスクロールを実現できない。そこで、本実施形態では、一例として、等速スクロール速度Tvがしきい値th以下である場合には、処理をステップ541へスキップして直ちに停止スクロールのための処理を実行する。これにより、どのような等速スクロール速度Tvが計算された場合でもサムネイルのスクロール速度Svを漸減させながら、上述したようにスクロールすることによって次にGx座標が中央位置Hcと一致するサムネイルのスクロール位置のGx座標を中央位置HcのGx座標で滑らかに停止させることのできるスクロールを実現できる。
【0178】
減速スクロール期間Gtを計算するとCPU311は、計測中のスクロール時間Stが等速スクロール期間Ttの終了タイミング以前であるか否かを判断する(ステップ528)。CPU311は、スクロール時間Stが等速スクロール期間Ttの終了タイミング以前であると判断したとき(ステップ528:Yes)、サムネイルをスクロールさせるときのスクロール速度Svとして等速スクロール速度Tvを設定する(ステップ529)。一方、CPU311は、計測中のスクロール時間Stが等速スクロール期間Ttの終了タイミング以前でないと判断したとき(ステップ528:No)、計測中のスクロール時間Stが減速スクロール期間Gtの終了タイミング以前であるか否かを判断する(ステップ530)。CPU311は、計測中のスクロール時間Stが減速スクロール期間Gtの終了タイミング以前であると判断すると(ステップS530:Yes)、所定の減速度Gaで上述したように減速スクロール速度Gvを計算し(ステップ531)、サムネイルをスクロールさせるときのスクロール速度Svとして計算した減速スクロール速度Gvを設定する(ステップ532)。
【0179】
CPU311は、ステップ528の処理でスクロール時間Stが等速スクロール期間Ttの終了タイミング以前でないと判断したときには、さらに、ステップ530でスクロール時間Stが減速スクロール期間Gtの終了タイミング以前であると判断したときに減速スクロール速度Gvを計算し(ステップ531)、計算した減速スクロール速度Gvをスクロール速度Svとして設定する。つまり、CPU311は、ステップ528およびステップ530の処理をすることにより、スクロール時間Stに基づき、必要に応じて等速スクロールのための処理から減速スクロールのための処理に移行できる。また、CPU311は、ステップ530において、スクロール時間Stが減速スクロール期間Gtの終了タイミング以前でないと判断したときには、スクロール時間Stが停止スクロール期間Ktの開始タイミングから終了タイミングまでの間であるとみなして、ステップ541へ処理を進めて停止スクロールのための処理へ移行できる。
【0180】
CPU311は、スクロール速度Svとして等速スクロール速度Tvを設定する(ステップ529)またはスクロール速度Svとして減速スクロール速度Gvを設定する(ステップ532)と、処理をステップ547へ進める。
【0181】
一方、図27において、CPU311は、計測中のスクロール時間Stが減速スクロール期間Gtの終了タイミング以前でないと判断したとき(ステップ530:No)または、上述したように等速スクロール速度Tvがしきい値th以下であると判断したとき(ステップ525:Yes)、停止スクロール減速度計算フラグDe2がオンであるか否かを判断する(ステップ541)。CPU311は、停止スクロール減速度計算フラグDe2がオンでない場合(ステップ541:No)、Gx座標が次に中央位置HcのGx座標と一致するスクロール位置のサムネイルを、サムネイル位置データDdで示される各サムネイルのスクロール位置に基づいて判断し、当該サムネイルのスクロール位置を取得する(ステップ542)。CPU311は、次に中央位置HcのGx座標と一致するサムネイルのスクロール位置を取得すると、取得したスクロール位置に基づいて上述で説明したように停止スクロール減速度Kaを計算し(ステップ543)、停止スクロール減速度Kaを計算済みであることを示すようにメインメモリ32に記憶されている停止スクロール減速度計算フラグDe2をオンにする(ステップ544)。CPU311は、停止スクロール減速度計算フラグDe2をオンにする(ステップ544)または停止スクロール減速度計算フラグDe2がオンであると判断したとき(ステップ541:No)、計算済みの停止スクロール減速度Kaに基づいて上述したように停止スクロール速度Kvを計算し(ステップ545)、サムネイルをスクロールさせるときのスクロール速度Svとして停止スクロール速度Kvを設定する(ステップ546)。
【0182】
上述の説明から明らかなように、本実施形態の一例では、停止スクロール減速度Kaは一度計算すれば、再びスクロール表示処理を開始するまで計算する必要がない。従って、CPU311は、ステップ541で停止スクロール減速度Kaを計算済みであると判断した場合には、ステップ545へ処理をスキップできる。
【0183】
CPU311は、サムネイルをスクロールさせるときのスクロール速度Svとして等速スクロール速度Tvを設定する(ステップ529)、減速スクロール速度Gvを設定する(ステップ532)または停止スクロール速度Kvを設定する(ステップ546)と、タッチ位置データDa1を取得する(ステップ547)。CPU311は、取得したタッチ位置データDa1に基づいて上述した手法でユーザによってタッチオンされたか否かを判断する(ステップ548)。CPU311は、タッチオンされていないと判断したとき(ステップ548:No)、設定したスクロール速度Svを用いて水平スクロールさせたときの各サムネイルのスクロール位置を計算する(ステップ549)。
【0184】
図28において、CPU311は、スクロール速度Svを用いて計算した各サムネイルのスクロール位置に基づいて上述した手法でスクロールを継続できるか否かを判断する(ステップ561)。CPU311は、スクロールを継続できると判断したとき(ステップ561:Yes)、ステップ549で計算したスクロール位置まで各サムネイルを移動させてスクロールさせ、計算後の各サムネイルのスクロール位置でサムネイル位置データDdを更新し(ステップ562)、処理をステップ521から繰り返す。
【0185】
一方、CPU311は、スクロールを継続できないと判断したとき(ステップ561:No)またはタッチオンされたと判断したとき(ステップ548:Yes)、サムネイルのスクロールを停止し(ステップ563)、スクロール時間Stの計測を停止してゼロにリセットし(ステップ564)、スクロール時間計測フラグDe1および停止スクロール減速度計測フラグDe2をそれぞれオフにし(ステップ565)、当該サブルーチンによる処理を終了する。
【0186】
本実施形態では、一例として、上述したようにステップ529、ステップ532またはステップ546でスクロール速度Svを設定した後、直ちにスクロール後の各サムネイルの位置を計算するのではなく、ステップ547〜ステップ548の処理でユーザによってタッチオンされたか否かを判断する。これにより、CPU311は、等速スクロール、減速スクロールまたは停止スクロールの自動的なスクロールを実行しているときにタッチオンされたときには、ステップ563へ処理をスキップしてスクロールを停止させることができる。この場合には、CPU311は、図22のフローチャートに戻って、ステップ308では、ステップ548で判断されたタッチオンのタッチ位置TPに基づいて「おわる」ボタンアイコンObにタッチ操作されたか否かが判断される。そして、CPU311は、「おわる」ボタンアイコンObにタッチ操作されていないと判断した場合には、ステップ303から処理を繰り返して上述した追従スクロールのための処理へ移行できる。
【0187】
以上が、本実施形態においてゲーム装置10によって行われる表示制御処理の一例の説明である。本実施形態では、上述したように、サムネイル配置処理において、それぞれのサムネイルの配置位置の下側LCD12の上下方向(Ly軸方向)における位置を、少なくとも他の1つのサムネイルに対して異なる位置になるように正弦関数を用いて決定した。そして、このように決定した配置位置にそれぞれのサムネイルを配置することによってサムネイル列が波形となるように表示手段に表示することができる。このようにサムネイル列を波形にすることにより、配置位置にサムネイル毎の視覚的な特徴を付与することができる。具体的には、例えば、あるサムネイルは波形の頂点位置(具体的には、波形を示す正弦波の極大点または極小点などのピークを生ずる位置)に配置されているという特徴や、あるサムネイルは隣り合う前述の頂点位置の中間に配置されているという特徴である。このように、本実施形態に係るゲーム装置10によれば、サムネイル列が波形になるようにサムネイルをそれぞれ配置することにより、視覚的な特徴をユーザに直感的に認識させ、目的のサムネイルを探すための指標を自然に与え、所望のサムネイルをより短い時間で探すことができる。
【0188】
また、上述の説明では、サムネイル配置処理において、それぞれのサムネイルの配置位置の下側LCD12の上下方向(Ly軸方向)における位置を、少なくとも他の1つのサムネイルに対して異なる位置になるように正弦関数を用いて決定した。しかしながら、必ずしも正弦関数を用いて決定せずともよく、それぞれのサムネイルの配置位置の下側LCD12の上下方向(Ly軸方向)における位置を、少なくとも他の1つのサムネイルに対して異なる位置になるように決定すればよい。これにより、他の少なくとも1つのサムネイルに対して異なる位置に設定した下側LCD12の上下方向における位置でサムネイルをユーザに視認させることができ、ユーザは、当該位置を指標として所望のサムネイルをより短い時間で探すことができる。
【0189】
また、上述の説明では、サムネイル列を波形にすることにより、上述したようにサムネイル毎の配置位置に視覚的な特徴を付与するものとした。しかしながら、他の一実施形態では、隣り合うサムネイルの下側LCD12の上下方向における位置が連続的に変化するように、それぞれのサムネイルの配置位置を決定してもよい。これによって、下側LCD12の左右方向(Lx軸方向)に並ぶように配置位置が決定されたサムネイルの下側LCD12の上下方向(Ly軸方向)における位置が連続的に変化するので、ユーザは、各サムネイルの当該上下方向における位置を指標としてそれぞれのサムネイルのおおよその位置を把握できる。
【0190】
また、他の一実施形態では、サムネイル列が斜め方向(右上がり方向または右下がり方向)に向かう直線形になるようにそれぞれのサムネイルの配置位置を決定してもよい。このように、サムネイル列を直線形にしたとしても、下側LCD12の上下方向におけるそれぞれのサムネイルの配置位置には視覚的な特徴を付与できる。具体的には、例えば、あるサムネイルは隣に配置されているサムネイルよりも下側LCD12の上方向または下方向に配置されているなどの視覚的な特徴である。従って、サムネイル列を直線形にすることによっても、視覚的な特徴をユーザに直感的に認識させて、目的のサムネイルを探すための指標を自然に与えることができる。ただし、サムネイル列を波形にしたときにおける、あるサムネイルは波形の頂点位置に配置されているおよびあるサムネイルは隣り合う前述の頂点位置の中間に配置されているなどの特徴の方が、サムネイル列を直線形にしたときに現れる特徴よりもユーザにとって認識しやすい特徴となる。
【0191】
また、上述の説明では、サムネイルの配置位置を正弦関数を用いて決定し、サムネイル列を波形にするものとした。しかしながら、サムネイルの配置位置は、正弦関数に限られず、余弦関数などを用いてサムネイル列を波形にしてもよい。また、サムネイル列は、正弦関数、或いは余弦関数に限られず、図29に一例として示すように、頂点Pを有する形状であれば、三角波状など形状に沿って配置されたサムネイルから構成されていてもよい。サムネイル列が頂点Pを有する形状に沿って配置されたサムネイルから構成されるようにすることによって、頂点Pに位置するサムネイルを指標として近傍に位置するサムネイルをユーザに視覚的に記憶させて目標となるサムネイルを探しやすくさせることができる。
【0192】
また、頂点Pを有する形状に沿ってサムネイルを配置する場合において、必ずしも頂点Pの位置にサムネイルを配置する必要はない。頂点Pにサムネイルを配置しない場合には、頂点Pの近傍に配置されているサムネイルが頂点に位置するようにユーザに視認される。このため、頂点Pにサムネイルを配置せずとも、ユーザは頂点に位置すると認識したサムネイルを指標として目標となるサムネイルを容易に探すことができる。頂点Pを有する形状の他の一例としては、例えば、鋸波関数を用いて決定される鋸波形状などが挙げられる。
【0193】
また、上述したように、正弦関数、余弦関数、三角波関数および鋸波関数など周知の形状を用いることにより、サムネイル列をユーザに親しみのある形状にすることができる。これにより、ユーザは、親しみのある形状に基づいて、指標となる頂点または頂点付近に配置されているサムネイルをより容易に認識でき、目的のサムネイルをより短い時間で探すことができる。
【0194】
また、上述したように、正弦関数、余弦関数、三角波関数および鋸波関数などで決定される形状、すなわち、周期的に頂点が生じる形状に沿ってサムネイルを配置することにより、ユーザは、周期的に現れる複数の頂点を指標として、目的のサムネイルをよりも短い時間で探すことができる。
【0195】
また、上述の説明では、サムネイルの配置位置の下側LCD12の左右方向(Lx軸方向)における位置は、番号Nで示される順番に従って等間隔となるように決定するものとした。そして、サムネイルの配置位置の下側LCD12の上下方向(Ly軸方向)における位置は、等間隔な位置を示す番号Nをパラメータとする正弦関数で決定されるものとした。これは、上述したように、余弦関数、三角波関数および鋸波関数を用いてサムネイルの配置位置の下側LCD12の上下方向(Ly軸方向)における位置を決定する場合も同様である。また、サムネイルの配置位置の下側LCD12の左右方向(Lx軸方向)における位置は、等間隔でなくてもよく、Lx軸方向における任意の間隔であってもよい。サムネイルの配置位置の下側LCD12の左右方向(Lx軸方向)における位置を任意の間隔にする場合には、Lx軸方向の座標値をパラメータとする上記正弦関数、余弦関数、三角波関数および鋸波関数を用いて、下側LCD12の上下方向(Ly軸方向)における位置を決定すればよい。
【0196】
また、上述の説明では、サムネイルの配置位置を正弦関数を用いて決定する場合を一例として説明した。このように正弦関数を用いてサムネイルの配置位置を決定すると、決定した配置位置のLy軸方向における位置、すなわち、Ly軸方向と平行なLx軸からの変位量は、並んでいるサムネイルの順番に従って繰り返し増減することとなる。従って、本実施形態によれば、一例として、サムネイルを下側LCD12に表示するときに表示領域の上下方向にはみ出ないように配置位置を決定することができる。また、サムネイルが下側LCD12の表示領域から上下方向にはみ出ない程度に、増減量を適切な大きさにすることもできるので、ユーザは、それぞれのサムネイルの下側LCD12の上下方向(Ly軸方向)における配置位置を区別して認識しやすくなる。
【0197】
また、上述の説明では、スクロール方向に直交する下側LCD12の上下方向(Ly軸方向)におけるサムネイルの配置位置を少なくとも他の1つのサムネイルに対して異なるように決定した。これにより、ユーザがサムネイルをスクロールさせたときには、各サムネイルが表示画面に現れるときに、下側LCD12の上下方向において互いに異なる位置に現れるので、サムネイルがスクロールしていることを下側LCD12に現れるときの上下方向の位置の変化で示すことができる。さらに、上述の説明では、スクロール方向に直交する下側LCD12の上下方向(Ly軸方向)におけるサムネイルの配置位置を少なくとも他の1つのサムネイルに対して異なるよう正弦関数を用いて連続的に変化するように決定した。これにより、ユーザがサムネイルをスクロールさせたときのスクロール速度を、各サムネイルが表示画面に現れたときの、下側LCD12の上下方向における位置の変化の程度で示すことができる。このように、スクロール方向と異なる方向におけるサムネイルの配置位置を少なくとも1つのサムネイルに対して異なるように決定することにより、サムネイルがスクロールしていること、或いはスクロール速度などを、下側LCD12の表示領域に所謂スクロールバーを表示させることなくユーザに示すことができる。このことは、正弦関数に限らず、上述した余弦関数、三角波関数および鋸波関数などを用いる場合も同様である。
【0198】
また、上述の説明では、サムネイル列の頂点のLx軸方向における位置が、両端側のサムネイルのLx軸方向の位置に近くなるにつれて、当該頂点のLy軸方向における位置が両端のオブジェクトのLy軸方向の位置(図10Cに示す例ではLy座標=0)に近くなるようにレートRを用いて決定される場合について説明した。これにより、下側LCD12の表示画面にスクロール表示されているサムネイルの配置位置の頂点の下側LCD12の上下方向(Ly軸方向)における位置が大きくなってきた場合には、表示されているサムネイルのスクロール方向における位置が中央側であることをユーザに視覚的に認識させることができる。一方、下側LCD12の表示画面にスクロール表示されているサムネイルの配置位置の頂点の下側LCD12の上下方向(Ly軸方向)における位置が小さくなってきた場合には、表示されているサムネイルのスクロール方向における位置が両端側のいずれかであることをユーザに視覚的に認識させることができる。
【0199】
なお、周期的に生じる頂点のLx軸方向における位置が両端側のサムネイルのLx軸方向の位置に近くなるにつれて近づけるLy軸方向の位置は、Ly座標がゼロの位置でなくともよく、両端で互いに同じ位置であればよい。また、周期的に生じる頂点の左右方向における位置がサムネイル列の両端に近くなるにつれて、当該頂点の上下方向の位置が両端のサムネイルのLy座標(本実施例ではLy座標がゼロとなる位置)に近くなる形状とは、正弦関数など周期的に増減する関数の振幅がゼロに近くなる(小さくなる)形状のことである。
【0200】
また、他の一実施形態では、サムネイル列の頂点のLx軸方向における位置が、両端側のサムネイルのLx軸方向の位置に近くなるにつれて、当該頂点のLy軸方向における位置が両端のオブジェクトのLy軸方向の位置(図10Cに示す例ではLy座標=0)から離れるようにレートRを用いて決定してもよい。これにより、下側LCD12の表示画面にスクロール表示されているサムネイルの配置位置の頂点の下側LCD12の上下方向(Ly軸方向)における位置が大きくなってきた場合には、表示されているサムネイルのスクロール方向における位置が両端側のいずれかであることをユーザに視覚的に認識させることができる。一方、下側LCD12の表示画面にスクロール表示されているサムネイルの配置位置の頂点の下側LCD12の上下方向(Ly軸方向)における位置が小さくなってきた場合には、表示されているサムネイルのスクロール方向における位置が中央側であることをユーザに視覚的に認識させることができる。
【0201】
また、サムネイルの配置位置の下側LCD12の左右方向(Lx軸方向)における位置は、任意の間隔であってもよいことを上述したが、例えば、Lx軸方向においてサムネイル列の両端側から中央側に向かうに従って広くなるように或いは狭くなるように決定してもよい。これにより、下側LCD12の表示画面にスクロール表示されているサムネイルの配置位置の下側LCD12の左右方向(Lx軸方向)における間隔が、狭くなってきた或いは広くなってきた場合に、表示されているサムネイルのスクロール方向における位置がサムネイル列の両端側のいずれか、または、中央側であることをユーザに視覚的に認識させられる。
【0202】
また、上述の説明では、複数のサムネイルを、下側LCD12の上下方向(Ly軸方向)における位置が少なくとも他の1つのサムネイルに対して異なる位置になるように、下側LCD12の左右方向(Lx軸方向)に、番号Nで示される順番に並べて配置する場合を一例として説明した。ここで、下側LCD12の左右方向は、スクロール表示処理におけるスクロール方向と一致する。すなわち、上述の説明では、一例として、サムネイルを並べて配置する方向と、スクロール方向とを一致させる場合を説明した。番号Nで示される順番でスクロール方向と一致する方向にサムネイルを並べて、スクロールさせることにより、ユーザは、アルバムに登録されているサムネイルの順番を指標として、目的のサムネイルをより短い時間で探すことができる。
【0203】
また、上述の説明では、アルバムデータDbには、カメラ画像識別子Pidおよびサムネイル識別子Sidを記憶させるものとした。しかしながら、他の一実施形態では、アルバムデータDbにカメラ画像CIおよびサムネイルを直接記憶させてもよい。
【0204】
また、上述の説明では、図10Bに一例として示したようにレートRを示す曲線が左右対称である場合を一例として説明した。しかしながら、他の一実施形態では、レートRを示す曲線は、左右対称でなくてもよい。
【0205】
(変形例)
上記第1の実施形態では、スクロール表示処理においてスクロール時間Stを計測しながら当該スクロール時間Stに基づいてサムネイルのスクロールを制御していた。これに対して、他の一実施形態では、サムネイルのスクロールをスクロール距離に基づいて制御してもよい。以下、図30〜図32を参照しながら、本変形例におけるスクロール表示処理について説明する。なお、図30は、本変形例において等速スクロールを開始してからスクロールが停止するまでのスクロール速度とスクロール距離との関係の一例を示す図である。また、図31は、本変形例における計算スクロール距離Zkおよび総スクロール距離Skの一例を示す図である。また、図32は、本変形例におけるスクロール表示処理の詳細な動作を示すサブルーチンである。
【0206】
図30において、Kyはスクロール距離であり、Tkは等速スクロール距離であり、Gkは減速スクロール距離であり、Skは総スクロール距離であり、Zkは計算スクロール距離である。
【0207】
本変形例では、図30に一例として示すように、ユーザがスライド操作したときのスライド速度を維持したままタッチオフすると、スライド操作に応じた方向にサムネイルを等速で水平スクロールさせる。本変形例では、等速スクロールおよび減速スクロールでサムネイルをスクロールさせて停止させる。等速スクロールを開始するときには、まず、スクロール距離Kyの計測を開始する。また、スクロール距離Kyの計測開始と共に、総スクロール距離Sk、計算スクロール距離Zk、等速スクロールにおける等速スクロール距離Tk、等速スクロール速度Tvおよび減速スクロールにおける減速スクロール距離Gkが求められる。
【0208】
図31には、下側LCD12においてタッチオフしたときの中央位置Hcを基準として計算される計算スクロール距離Zkおよび総スクロール距離Skの一例が示されている。等速スクロールを開始するときには、図31に一例として示すように、タッチオフしたときの中央位置Hcを基準としてサムネイル列を構成するサムネイルの数に応じて計算スクロール距離Zkが計算される。例えば、計算スクロール距離Zkは、サムネイル列を構成するサムネイルの数に所定の定数を乗算して計算する。つまり、計算スクロール距離Zkは、サムネイル列を構成するサムネイルの数に比例するように求められる。しかし、サムネイルの数に所定の定数を乗算して計算される計算スクロール距離Zkは、図31に一例として示すように、中央位置Hcからいずれかのサムネイルのスクロール位置Ciまでの距離とはならない場合がある。従って、計算スクロール距離Zkだけスクロールさせると、スクロールの停止後には、下側LCD12の中央にいずれかのサムネイルが位置しなくなる場合がある。そこで、本変形例では、計算スクロール距離Zkを計算し、計算した計算スクロール距離Zkに最も近いサムネイルのスクロール位置Ciまでの距離を総スクロール距離Skとする。
【0209】
総スクロール距離Skが求められると、次に、等速スクロール距離Tkおよび減速スクロール距離Gkが求められる。本変形例において、等速スクロール距離Tkは、一例として、サムネイル列を構成するサムネイルの数に所定の定数を乗算することによって求められる。つまり、本変形例において、等速スクロール距離Tkは、一例として、サムネイル列を構成するサムネイルの数に比例するように求められる。また、減速スクロール距離Gkは、総スクロール距離Skから等速スクロール距離Tkを減算して求められる。本変形例では、図31から明らかなように、第1の実施形態で説明した停止スクロールは実行せずに減速スクロールを実行してスクロールを停止させるため、減速スクロール距離Gkでスクロール速度Svがゼロとなるように減速スクロール減速度Gaが計算される。また、本変形例において等速スクロール速度Tvは、第1の実施形態で説明した手法と同様の手法で計算されるものとする。
【0210】
等速スクロール距離Tkおよび等速スクロール速度Tvが求められると、スクロール距離Kyが等速スクロール距離Tkを超えるまで、等速スクロール速度Tvのスライド操作の方向に応じた等速スクロールが実行される。本変形例においても、等速スクロールが実行されるときには、第1の実施形態と同様に、計算された等速スクロール速度Tvにスクロール速度Svが設定され、各サムネイルのスクロール位置のGx座標が逐次演算されることにより、等速スクロールが実現される。
【0211】
計測しているスクロール距離Kyが等速スクロール距離Tkを超えると、図30に一例として示すように、スクロール速度Svを漸減させる減速スクロールが実行される。減速スクロールが開始されると、計算した減速スクロール減速度Gaで等速スクロール速度Tvから漸減する減速スクロール速度Gvが逐次計算される。そして、スクロール速度Svが減速スクロール速度Gvに逐次設定される。減速スクロールは、第1の実施形態と同様に、逐次設定されるスクロール速度Svに基づいて、各サムネイルのスクロール位置のGx座標を逐次演算することにより実現される。そして、減速スクロール速度Gvがゼロになるとスクロールが停止してサムネイルが下側LCD12の中央位置Hcで停止する。
【0212】
次に、図32を参照して、本変形例におけるゲーム装置10で実行される表示制御プログラムによる具体的な処理動作について説明する。本変形例における表示制御プログラムは図32に示すスクロール表示処理の一部を除いて第1の実施形態と同様である。従って、本変形例の表示制御プログラムの説明では、図32を参照して、第1の実施形態との相違点についてのみ説明をする。なお、本変形例では、図示はしていないが、第1の実施形態で説明したスクロール時間計測フラグDe1の代わりにスクロール距離計測フラグDe3がフラグデータDeに含まれるものとする。スクロール距離計測フラグDe3は、スクロール距離Kyの計測を開始済みであることをオンで示し、開始済みでないことをオフで示すフラグデータである。
【0213】
本変形例では、CPU311は、スクロールを継続できると判断したとき(ステップ508:Yes)、図32におけるステップ601へ処理を進める。図32において、CPU311は、スクロール距離Kyを計測中であることを示すスクロール距離計測フラグDe3がオンとなっているか否かを判断する(ステップ601)。CPU311は、スクロール距離計測フラグDe3がオンとなっていると判断したとき(ステップ601:Yes)、処理をステップ608へ進める。一方、CPU311は、スクロール距離計測フラグDe3がオンとなっていないと判断したとき(ステップ601:No)、スクロール距離Kyの計測をゼロから開始し(ステップ602)、スクロール距離計測フラグDe3をオンにする(ステップ603)。このとき計測されるスクロール距離Kyは、スクロール開始時のいずれかのサムネイルのスクロール位置の初期位置からのGx座標の変化量を計測すればよい。スクロール距離計測フラグDe3をオンにするとCPU311は、等速スクロール速度Tvを上述したように計算し(ステップ524)、上述したように計算スクロール距離Zk、等速スクロール距離Tk、減速スクロール距離Gkおよび減速スクロール減速度Gaをそれぞれ計算する(ステップ604〜ステップ607)。
【0214】
計算スクロール距離Zk、等速スクロール距離Tk、減速スクロール距離Gkおよび減速スクロール減速度Gaをそれぞれ計算すると、CPU311は、計測しているスクロール距離Kyが等速スクロール距離Tk以内であるか否かを判断する(ステップ608)。CPU311は、計測中のスクロール距離Kyが等速スクロール距離Tk以内であると判断したとき(ステップ608:Yes)、サムネイルをスクロールさせるときのスクロール速度Svとして等速スクロール速度Tvを設定する(ステップ529)。一方、CPU311は、計測中のスクロール距離Kyが等速スクロール距離Tk以内でないと判断したとき(ステップ608:No)、計測中のスクロール距離Kyが減速スクロール距離Gk内であるか否かを判断する(ステップ609)。CPU311は、計測中のスクロール距離Kyが減速スクロール距離Gk内であると判断したとき(ステップ609:Yes)、減速スクロール減速度Gaを用いて減速スクロール速度Gvを計算する(ステップ531)。一方、CPU311は、計測中のスクロール距離Kyが減速スクロール期間Gk内でないと判断したとき、ステップ547へ処理を進める。
【0215】
本変形例では、CPU311は、ステップ608の処理でスクロール距離Kyが等速スクロール距離Tk内でないと判断したときには、さらに、ステップ609でスクロール距離Kyが減速スクロール距離Gk内であると判断したときに減速スクロール速度Gvを計算し(ステップ531)、計算した減速スクロール速度Gvをスクロール速度Svとして設定する。つまり、本変形例では、CPU311は、ステップ608およびステップ609の処理をすることにより、スクロール距離Kyに基づき、必要に応じて等速スクロールのための処理から減速スクロールのための処理に移行できる。
【0216】
以上が、第1の実施形態の変形例においてゲーム装置10によって行われる表示制御処理の一例の説明である。第1の実施形態では、スクロール時間Stに基づいてサムネイル列のスクロールを制御していたのに対して、本変形例では、スクロール距離Kyに基づいてサムネイル列のスクロールを制御する。このように、スクロール距離Kyに基づいても第1の実施形態と同様にサムネイル列のスクロールを制御できる。
【0217】
また、本実施形態では、上述したように、一例として、スクロール表示処理において、ユーザがタッチパネル13にタッチオンしてスライド操作をしながらタッチオフすると、等速スクロールを実行した後、減速スクロールおよび停止スクロールをしてスクロール速度Svを所定の減速度Gaで漸減させながらスクロールを停止させる。また、本実施形態では、一例として、等速スクロールをするときの等速スクロール期間Ttをサムネイル列を構成するサムネイルの数に基づいて計算する。
【0218】
上述したように、第1の実施形態および第1の実施形態の変形例(以下、単に変形例と称する)のいずれにおいても、スクロール表示処理では、一例として、ユーザがタッチパネル13にタッチオンしてスライド操作をしながらタッチオフすると、等速スクロールを実行した後、減速スクロールおよび停止スクロールをする。そして、第1の実施形態では、一例として、等速スクロールをするときの等速スクロール期間Ttをサムネイル列を構成するサムネイルの数に基づいて(比例するように)計算し、変形例では、一例として、等速スクロールをするときの等速スクロール距離Tkをサムネイル列を構成するサムネイルの数に基づいて(比例するように)計算する。このように、上述の説明では、等速スクロール期間Ttまたは等速スクロール距離Tkをサムネイル列を構成するサムネイルの数に基づいて計算してから等速スクロールを実行する場合を一例として説明した。
【0219】
例えば、本実施形態の等速スクロールをせずに、スクロール速度Svを漸減させるスクロールのみをすると、サムネイルの数が相対的に多い場合には、目的とするサムネイルを表示させるまでに時間がかかってしまう。また、スクロール速度Svを漸減させるスクロールのみをする場合において、数が相対的に多いサムネイルの中から目的とするサムネイルが表示されるまでの時間を短くするために、所定の減速度を小さくすることが考えられる。しかしながら、この場合には、目的とするサムネイルが近づいてくると低い速度の緩慢なスクロールが続いてしまい、ユーザに煩わしさを感じさせてしまう。
【0220】
そこで、第1の実施形態および変形例におけるスクロール表示処理では、スクロール速度Svを漸減させるスクロールをする前に、等速スクロールを実行する。このように、等速スクロール期間Ttまたは等速スクロール距離Tkで等速スクロールを実行してからスクロール速度Svを漸減させることにより、サムネイルの数が相対的に多い場合にも、目的とするサムネイルが表示されるまでの時間を短縮でき、ユーザに煩わしさを感じさせることを防げる。
【0221】
また、上述で説明した本実施形態の一例によれば、サムネイル列を構成するサムネイルの数に応じて等速スクロール期間Ttを変化させるので、適切な等速スクロール期間Ttで等速スクロールを実行した後、スクロール速度Svを漸減させることができる。
【0222】
また、上述で説明した本実施形態の一例では、サムネイル列を構成するサムネイルの数に応じて等速スクロール期間Ttを変化させるので、スクロール速度Svを所定の減速度で漸減させられる。従って、上述で説明した第1の実施形態の一例によれば、登録されているサムネイルの数が異なるアルバムを選択したとしても、スクロールを停止させるときの減速度を同一にしてユーザに与える操作感覚を統一することができ、違和感を与えることを防げる。このことは、オブジェクトの大きさに応じて等速スクロール期間Ttを変化させる場合でも同様である。
【0223】
また、第1の実施形態では、サムネイル列を構成する全てのサムネイルの数に基づいて等速スクロール期間Ttを計算するものとし、変形例では、サムネイル列を構成する全てのサムネイルの数に基づいて等速スクロール距離Tkを計算するものとした。つまり、上述の説明では、等速スクロールするときの等速スクロール量を示す等速スクロールパラメータの一例として、等速スクロール期間Ttまたは等速スクロール距離Tkを計算するものとした。しかしながら、他の一実施形態によれば、例えば、等速スクロール期間Ttおよび等速スクロール距離Tkなどの等速スクロールパラメータを、図33に一例として示すように、タッチオフしたときの中央位置Hcからスクロール方向におけるサムネイルの残りの数に基づいて計算してもよい。図33に示す一例では、タッチオフしたときの中央位置Hcからスクロール方向におけるサムネイルの残りの数は、4番目〜29番目までの27個となる。このように、スクロール方向におけるサムネイルの残りの数に基づいて、等速スクロール期間Ttまたは等速スクロール距離Tkを計算する場合には、スクロール方向におけるサムネイルの残りの数に比例するように等速スクロール期間Ttまたは等速スクロール距離Tkを計算してもよい。これにより、スクロール方向における残りのサムネイルの数が多いほど、等速スクロール期間Ttを長くするまたは等速スクロール距離Tkを長くすることができ、目的とするサムネイルが表示されるまでの期間を短縮できる。また、等速スクロール期間Ttまたは等速スクロール距離Tk以外にも、例えば、変形例で説明した計算スクロール距離Zkなどをスクロール方向における残りのサムネイルの数に基づいて計算しても同様の効果を得ることができる。
【0224】
なお、上記第1の実施形態および変形例の説明では、等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどをサムネイル列を構成するサムネイルの数に基づいて計算する場合を一例として説明した。しかしながら、他の一実施形態では、等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどをスクロール方向におけるスクロール可能な距離(スクロール可能量)に基づいて計算してもよい。図33は、スクロール方向におけるスクロール可能な距離の一例として、タッチオフしたときの中央位置Hcからスクロール方向において末端に位置するサムネイルのスクロール位置Ciまでの距離Nkの一例を示す図である。図33に一例として示す距離Nkなど、スクロール方向におけるスクロール可能な距離に基づいて、例えば、当該距離が長いほど等速スクロール期間Ttを長くする、等速スクロール距離Tkを長くするまたは計算スクロール距離Zkを長くするなど、スクロール方向におけるスクロール可能な距離に比例するようにこれらを計算することにより目的とするサムネイルが表示されるまでの期間を短縮できる。
【0225】
また、上述の説明では、複数のサムネイルからなるサムネイル列をスクロール対象としてスクロールする場合を一例として説明した。しかしながら、他の一実施形態では、複数の任意の表示オブジェクトからなる表示オブジェクト列または表示オブジェクト群をスクロール対象としてスクロールしてもよい。この場合において、上述で説明したようにサムネイル列を構成する全体のサムネイルの数に基づいて等速スクロール期間Tt、等速スクロール距離Tkまたは計算スクロール距離Zkを計算するのと同様に、表示オブジェクト列または表示オブジェクト群を構成する表示オブジェクトの数に基づいて等速スクロール期間Tt、等速スクロール距離Tkまたは計算スクロール距離Zkを計算してもよい。さらに、上述で説明したようにスクロール方向における残りのサムネイルの数に基づいて等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkを計算するのと同様に、スクロール方向における残りの表示オブジェクトの数に基づいて等速スクロール期間Tt、等速スクロール距離Tkまたは計算スクロール距離Zkを計算してもよい。
【0226】
また、上述の説明では、下側LCD12の表示画面全体を表示領域としてスクロール表示する場合を一例として説明した。しかしながら、他の一実施形態では、下側LCD12の表示画面の一部において上述で説明したスクロール表示をしてもよい。
【0227】
また、上述の説明では、複数のオブジェクトからなるオブジェクト群またはオブジェクト列をスクロール対象としてもよいことを説明した。しかしながら、他の一実施形態では、任意の1つのオブジェクトをスクロール対象としてもよい。そして、この場合において、スクロール対象となる1つのオブジェクトの全体の大きさに対する下側LCD12の表示領域の大きさの割合に基づいて等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどを計算してもよい。図34〜図35は、表示オブジェクトHoの大きさOrに対する下側LCD12の表示領域の大きさの割合に基づいて、表示オブジェクトHoをスクロールする際の等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどを計算する場合の一例を示す図である。
【0228】
図34は、下側LCD12の表示領域に1つの表示オブジェクトHoの一部が表示されている場合において、タッチパネル13に対してスライド操作してタッチオフされるときの下側LCD12の表示領域と表示オブジェクトHoとのグローバル座標系における位置関係の一例を示す図である。図34において、Toは下側LCD12の表示領域においてタッチオフされる位置を示す。また、図35は、図34に一例として示すようにタッチオフされた後にスクロールさせたときのグローバル座標系における下側LCD12の表示領域と表示オブジェクトHoとの位置関係を示す図である。図34および図35に示すように下側LCD12の表示領域に対して表示オブジェクトHoをスクロールさせるときに、表示オブジェクトHoの大きさOrに対する下側LCD12の表示領域の大きさの割合に基づいて等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkを計算してもよい。具体的な一例としては、下側LCD12の表示領域の大きさに対する表示オブジェクトHoの大きさOrの割合に比例するように、等速スクロール期間Tt、等速スクロール距離Tkまたは計算スクロール距離Zkを計算してもよい。
【0229】
また、下側LCD12の表示領域の割合を求めるときの表示オブジェクトHoの大きさOrは、図34および図35に示す一例では、表示オブジェクトHoの最大幅および最大高さからなる四角形の大きさであるものとした。しかしながら、表示オブジェクトHoの大きさOrは、表示オブジェクトHoの外形の面積であってもよい。
【0230】
また、図34には、スライド操作したときのタッチオフ位置Toからスライド方向とは反対方向であってタッチオフ位置Toから当該反対方向における表示オブジェクトHoの大きさHrの端部までの距離を示す残り距離ベクトルShも示されている。他の一実施形態では、例えば、図34に一例として示すような残り距離ベクトルShの大きさ(長さ)に基づいて、等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどを計算してもよい。具体的には、残り距離ベクトルShの大きさ(長さ)に比例するように等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどのいずれかを計算してもよい。そして、計算した結果に基づいて、当該残り距離ベクトルShの方向部分の表示オブジェクトHoが下側LCD12の表示領域に表示されるように図35に一例として示すように当該表示オブジェクトHoをスクロールさせてもよい。この場合、残り距離ベクトルShの長さが、スクロール可能長さとなる。
【0231】
また、図34には、スライド操作したときのタッチオフ位置Toからスライド方向とは反対方向であってタッチオフ位置Toから当該反対方向における表示領域の端部までの距離を示す残り表示距離ベクトルHnも示されている。他の一実施形態では、例えば、図34に一例として示すような残り距離ベクトルShの長さと残り表示距離ベクトルHnの長さとの割合に基づいて、等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどのいずれかを計算してもよい。具体的な一例としては、残り表示距離ベクトルHnの長さに対する残り距離ベクトルShの長さの割合に比例するように、等速スクロール期間Tt、等速スクロール距離Tkおよび計算スクロール距離Zkなどのいずれかを計算してもよい。
【0232】
また、第1の実施形態および変形例では、サムネイル列を構成するサムネイルを下側LCD12の左右方向(Lx軸方向)に並べ、タッチパネル13に対するスライド操作の方向成分の内、上下方向成分を無視し、サムネイルを並べる方向と同一の左右方向成分のみに基づいて、左右方向のスクロールする場合を一例として説明した。このように、サムネイルを並べる方向とスクロール方向とを一致させることにより、ユーザが、サムネイルの配置方向とスクロール方向とをずらしてしまうことによってサムネイルを見失うことを防ぎながら、サムネイルに触れるような感覚でスクロール操作を実行できる。このことは、左右方向のスクロールに限られず、任意の方向にスクロールさせるときについても同様である。
【0233】
また、第1の実施形態および変形例では、等速スクロール速度Tvを上述で説明したように、ユーザがタッチオフするまでのタッチ位置TPのスライド量に基づいて求めるものとした。このように等速スクロール速度Tvを求めることにより、ユーザがタッチオフする直前のスライド量に応じて等速スクロール速度Tvで等速スクロールを開始できる。すなわち、ユーザがタッチオフするまでの操作感覚を反映した初速で等速スクロールを開始できる。なお、等速スクロール速度Tvの大きさに応じて、等速スクロール期間Ttを調整してもよい。
【0234】
また、第1の実施形態では、等速スクロールにおけるスクロール量を示すパラメータとして、等速スクロール期間Ttを求め、スクロール時間Stと等速スクロール期間Ttとに基づいて、等速スクロールを制御するものとした。このように、等速スクロールを時間で制御することにより、等速スクロールにかかる時間が過度に長くなることを防いでユーザに与える煩わしさをなくすことができる。
【0235】
また、変形例では、等速スクロールにおけるスクロール量を示すパラメータとして、等速スクロール距離Tkを求め、スクロール距離Kyと等速スクロール距離Tkとに基づいて、等速スクロールを制御するものとした。このように、等速スクロールを距離で制御することにより、等速スクロールをする距離が過度に長くなりスクロールしすぎてしまうことによって、目標とするサムネイルが表示領域からはみ出て見失うことを防げる。
【0236】
また、変形例では、総スクロール距離Skから等速スクロール距離Tkを減算した減算スクロール距離Gkを残りのスクロール量として計算して、減算スクロール距離Gkでスクロール速度Svが等速スクロール速度Tvからゼロとなるように減速スクロール減速度Gaを計算するものとした。このように、残りのスクロール量に基づいて減速度を計算することにより、等速スクロール距離Tkに基づいて等速スクロールを距離で制御する場合において、総スクロール距離Skにおける当該等速スクロール距離Tkの長さに関わらずに、適切な滑らかさでスクロールを停止させられる。このことは、等速スクロール期間Ttに基づいて等速スクロールを時間で制御する場合も同様である。つまり、残りのスクロール量に基づいて減速度を計算することにより、スクロール全体動作における等速スクロールのスクロール量に関わらずに、適切な滑らかさでスクロールを停止させられる。
【0237】
また、上述した第1の実施形態では、等速スクロールを時間で制御する場合において、下側LCD12の中央位置Hcにいずれかのサムネイルが到来したときにスクロール速度Svがゼロになってスクロールが停止するように当該スクロール速度Svを漸減させる停止スクロールをするものとした。また、上述した変形例では、等速スクロールを距離で制御する場合において、サムネイルの数に所定の定数を乗算して計算される計算スクロール距離Zkが、中央位置Hcからいずれかのサムネイルのスクロール位置Ciまでの距離とはならない場合を考慮して、計算スクロール距離Zkを計算し、計算した計算スクロール距離Zkに最も近いサムネイルのスクロール位置Ciまでの距離を総スクロール距離Skとするものとした。つまり、上述の説明では、等速スクロールの制御手法に関わらず、スクロールを停止させるときにサムネイルが下側LCD12の中央位置Hcと左右方向の位置が一致するように停止させる場合について説明した。これにより、スクロール停止後のサムネイルに対するタッチ位置TPを同一にすることができ、ユーザは、スクロール停止後のサムネイルを選択しやすくなる。
【0238】
また、上述した説明では、複数のサムネイルを配置する方向と、スクロール方向とが下側LCD12の左右方向である場合を一例として説明した。しかしながら、他の一実施形態では、複数のサムネイルを配置する方向と、スクロール方向とを下側LCD12の上下方向にしてもよい。
【0239】
また、上述した説明では、グローバル座標系において、下側LCD12の表示領域を固定し、サムネイル列或いは表示オブジェクトを移動させる演算をしてスクロールさせる場合を一例として説明した。しかしながら、他の一実施形態では、グローバル座標系において、サムネイル列或いは表示オブジェクトを固定し、下側LCD12の表示領域を移動させる演算をしてスクロールさせてもよい。
【0240】
また、上述した説明では、サムネイル列を波形にするために用いる正弦関数の周期の長さは変化させないものとした。しかしながら、他の一実施形態では、サムネイル列を波形にするために用いる正弦関数の周期の長さをサムネイル列を構成するサムネイルの数に応じて変化させてもよい。このことは、正弦関数だけでなく、余弦関数、三角波関数、鋸波関数などをサムネイルの配置位置を決定するために用いるときも同様である。
【0241】
また、上述した説明では、互いに直交するLx軸とLy軸とを用いてサムネイルの配置位置を決定する場合を一例として説明をした。しかしながら、他の一実施形態では、互いに直交する座標軸を用いなくてもよく、平行でない任意の方向の2つの軸を座標軸として用いてサムネイルの配置位置を決定してもよい。
【0242】
また、上述の説明において、等速スクロール期間Tt、等速スクロール距離Tk、等速スクロール速度Tvは等速スクロールのスクロール量を示すパラメータと考えることができる。また、上述の説明において、減速スクロール期間Gt、減速スクロール速度Gv、減速スクロール距離Gkは減速スクロールのスクロール量を示すパラメータと考えることができる。また、上述の説明において、停止スクロール期間Kt、停止スクロール速度Kvは、停止スクロールのスクロール量を示すパラメータと考えることができる。すなわち、上述の説明において、スクロールの期間、速度および距離は、スクロール量を示すパラメータと考えることができる。
【0243】
また、上述の説明では、サムネイル列をスクロールさせるときに、必ず等速スクロールを含むスクロールをさせる場合を一例として説明した。しかしながら、他の一実施形態では、任意のオブジェクトまたはオブジェクト群などのスクロール対象をスクロールさせるときに、等速スクロールを含まないスクロールさせてもよい。より詳細には、他の一実施形態において、スクロール対象をスクロールさせるときに、スクロール対象の大きさまたはスクロール対象に含まれるオブジェクトの数、もしくはスクロール操作に応じたスクロール方向においてスクロール対象がスクロール可能なスクロール可能量に基づいて、スクロール対象のスクロールを開始してから停止するまでのスクロール量を示すパラメータを算出するのであれば、等速スクロールを含まないスクロールをさせてもよい。このように、等速スクロールを含まないスクロールをさせる場合であっても、スクロール対象の大きさまたはスクロール対象に含まれるオブジェクトの数、もしくはスクロール操作に応じたスクロール方向においてスクロール対象がスクロール可能なスクロール可能量に基づいて、最適なパラメータを算出すれば(例えば、これらの値に比例するようにパラメータを算出すれば)、オブジェクトを見つけようとするユーザに煩わしさを感じさせることのないスクロールを行える。
【0244】
また、上記第1の実施形態では、タッチパネル13を用いてタッチ操作に応じてアルバム表示アプリケーションが選択されたときに、アルバム表示処理を開始してサムネイル配置処理でサムネイルを配置するものとした。さらに、上記第1の実施形態では、タッチパネル13を用いてタッチ操作或いはスライド量などを検出して等速スクロールを含むスクロールを制御していた。しかしながら、他の一実施形態では、タッチパネル13を用いたタッチ操作或いはスライド量の検出ではなく、操作ボタン14の操作状態を検出してアルバム作成処理およびアルバム表示処理を実行してもよい。具体的には、プログラム選択画面において操作ボタン14の操作状態に基づいてアルバム作成処理またはアルバム表示処理が選択されたと判断したときに、選択された処理を実行するようにする。また、アルバム作成処理では、操作ボタン14の操作状態に基づいて、各種ボタンアイコンを選択できるようにし、選択されたボタンアイコンに応じて第1の実施形態で説明した処理と同様の処理を実行するようにする。また、アルバム表示処理では、操作ボタン14の操作状態に基づいていずれかのサムネイルが選択されたと判断したときに、選択されたサムネイルで示されるカメラ画像CIを上側LCD22に表示するようにしてもよい。また、アルバム表示処理では、十字ボタン14Aの操作状態に基づいて、左右方向のいずれかの入力が検出されたときに、入力時間に比例して対応するスクロール方向へのスクロール速度を漸次増加させていき、検出されなくなったときのスクロール速度を初速として、上述で説明したように等速スクロールを開始してもよい。
【0245】
また、他の一実施形態では、マウスから出力される座標情報など、他のポインティングデバイスから出力される座標情報に基づいてスクロールを制御してもよい。例えば、マウスから出力される座標情報に基づいてスクロールを制御する場合には、任意のボタンを押下したまま当該マウスを移動させる所謂ドラッグ操作を上述したスライド操作と同等の操作として検出するようにして上述した追従スクロールを実行し、ドラッグ操作されている状態で当該ボタンが押下されなくなった状態への変化の検出を上述したタッチオフと同等の操作として検出するようにすれば、上述の説明と同様に追従スクロールの処理から等速スクロールのための処理へ移行して、上述の説明と同様にスクロール表示処理を実行できる。また、マウスをタッチパネル13の代わりに用いる場合には、典型的に設けられているスクロールホイールの回転操作を上述で説明したスライド操作と同等の操作として検出し、当該スクロールホイールの回転状態から非回転状態への変化を上述で説明したタッチオフと同等の操作として検出するようにしても、上述の説明と同様にスクロール表示処理を実行できる。また、マウスの他にも、トラックパッド、トラックボール等を入力手段として使用しても、同様にスクロールを制御することができる。
【0246】
また、ゲームコントローラをユーザが把持してゲームを楽しむ据置型のゲーム装置の場合、他の態様のポインティングデバイスも考えられる。例えば、ゲームコントローラのハウジングに固設されたカメラを、上記ポインティングデバイスとして利用することも可能である。この場合、ゲームコントローラのハウジングで指し示した位置の変化に応じてカメラが撮像する撮像画像が変化する。従って、この撮像画像を解析することにより、表示画面に対して上記ハウジングで指し示した座標を算出することができる。なお、本発明においては、ゲーム装置10にタッチパネル13等のポインティングデバイス自体が設けられていなくても実現可能であることは言うまでもない。
【0247】
また、第1の実施形態では、説明を簡単にするため、実世界の平面画像が表示される例を用いて説明をした。しかしながら、上述した立体視可能な画像がカメラ画像CIとして表示される場合にも本発明は適用可能であることは言うまでもない。立体視可能な画像がカメラ画像CIとして表示される場合には、その内の左目用画像を用いて当該画像を示すサムネイルの画像データが生成され、当該カメラ画像CIと対応させてデータ保存用外部メモリ46に記憶させられる。
【0248】
また、上述した説明では、アルバムデータDbに登録されているカメラ画像CIが30枚である場合を一例として説明した。しかしながら、アルバムデータDbに登録可能なカメラ画像CIは、2以上の任意の数であればよい。
【0249】
また、他の一実施形態において、登録されているカメラ画像CIの一部または全部が互いに異なる複数のアルバムデータDbがデータ保存用外部メモリ46にそれぞれ記憶されていてもよい。この場合、ステップ101の説明で述べた複数のアプリケーションプログラムを選択的に実行するプログラムが実行されることによって表示されるプログラム選択画面において、これらのアルバムデータDbを示すアイコンが個別に選択可能なように表示され、選択されたアイコンに対応するアルバムデータDbが読み込まれる。
【0250】
また、上記第1の実施形態では、上側LCD22がパララックスバリア方式の液晶表示装置であるとして、視差バリアのON/OFFを制御することにより、立体表示と平面表示とを切り替えることができる。他の一実施形態では、例えば、上側LCD22としてレンチキュラー方式の液晶表示装置を用いて、立体画像および平面画像を表示可能としてもよい。レンチキュラー方式の場合でも、外側撮像部23で撮像した2つの画像を縦方向に短冊状に分割して交互に配置することで画像が立体表示される。また、レンチキュラー方式の場合でも、内側撮像部24で撮像した1つの画像をユーザの左右の目に視認させることによって、当該画像を平面表示させることができる。すなわち、レンチキュラー方式の液晶表示装置であっても、同じ画像を縦方向に短冊状に分割し、これら分割した画像を交互に配置することにより、ユーザの左右の目に同じ画像を視認させることができる。これにより、内側撮像部24で撮像された画像を平面画像として表示することが可能である。
【0251】
また、上述した実施形態では、2画面分の液晶表示部の一例として、物理的に分離された下側LCD12および上側LCD22を互いに上下に配置した場合(上下2画面の場合)を説明した。しかしながら、2画面分の表示画面の構成は、他の構成でもかまわない。例えば、下側ハウジング11の一方主面に下側LCD12および上側LCD22を左右に配置してもかまわない。また、下側LCD12と横幅が同じで縦の長さが2倍のサイズからなる縦長サイズのLCD(すなわち、物理的には1つで、表示サイズが縦に2画面分あるLCD)を下側ハウジング11の一方主面に配設して、2つの画像(例えば、撮像画像と操作説明画面を示す画像等)を上下に表示(すなわち上下の境界部分無しに隣接して表示)するように構成してもよい。また、下側LCD12と縦幅が同じで横の長さが2倍のサイズからなる横長サイズのLCDを下側ハウジング11の一方主面に配設して、横方向に2つの画像を左右に表示(すなわち左右の境界部分無しに隣接して表示)するように構成してもよい。すなわち、物理的に1つの画面を2つに分割して使用することにより2つの画像を表示してもかまわない。また、物理的に1つの画面を2つに分割して使用することにより上記2つの画像を表示する場合、当該画面全面にタッチパネル13を配設してもかまわない。
【0252】
また、上述した実施例では、ゲーム装置10にタッチパネル13が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上側LCD22の上面にタッチパネル13を設けて上側LCD22に上述した下側LCD12に表示していた表示画像を表示し、下側LCD12に上述した上側LCD22に表示していた表示画像を表示してもよい。
【0253】
また、上記実施例では、携帯型のゲーム装置10や据置型のゲーム装置を用いて説明したが、一般的なパーソナルコンピュータ等の情報処理装置で本発明の画像処理プログラムを実行して、本発明を実現してもかまわない。また、他の実施形態では、ゲーム装置に限らず任意の携帯型電子機器、例えば、PDA(Personal Digital Assistant)や携帯電話、パーソナルコンピュータ、カメラ等であってもよい。例えば、携帯電話が、1つのハウジングの主面に2つの表示部と、実カメラとを備えてもよい。
【0254】
また、上述したゲーム装置10の形状や、それに設けられている各種操作ボタン14、アナログスティック15、タッチパネル13の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した表示制御処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【0255】
また、上記表示制御プログラム(ゲームプログラム)は、外部メモリ45やデータ保存用外部メモリ46等の外部記憶媒体を通じてゲーム装置10に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置10に供給されてもよい。また、上記プログラムは、ゲーム装置10内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、或いはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを一時的に記憶する揮発性メモリでもよい。
【0256】
また、上述した説明では、上記表示制御プログラムが情報処理部31で実行される例を用いたが、上記表示制御プログラムの少なくとも一部を、当該情報処理部31と通信可能な他の装置に備えられた少なくともCPUからなる情報処理部で実行しても構わない。例えば、ゲーム装置10が他の装置(例えば、サーバなど)と通信可能に構成されている場合、上記表示制御プログラムにおける処理は、ゲーム装置10および当該他の装置が協働することによって実行してもよい。一例として、他の装置において、上記表示制御プログラムが実行され、当該プログラムの実行に必要なタッチオン、タッチオフ、スライド操作などの操作の検出、当該プログラムの実行に必要な表示を行う表示装置などは、それぞれゲーム装置10のタッチパネル13、および下側LCD12を用いるように構成した表示制御システムにおいて、上記表示制御プログラムを実行してもよい。
【0257】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。従って、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0258】
本発明に係る表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法は、ユーザに所望の表示オブジェクトを探しやすい表示が可能であり、各種画像を表示装置に表示する処理を行う表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法等として有用である。
【符号の説明】
【0259】
10…ゲーム装置
11…下側ハウジング
12…下側LCD
13…タッチパネル
14…操作ボタン
15…アナログスティック
16…LED
17…挿入口
18…マイクロフォン用孔
19…無線スイッチ
21…上側ハウジング
22…上側LCD
23…外側撮像部
23a…外側左撮像部
23b…外側右撮像部
24…内側撮像部
25…3D調整スイッチ
26…3Dインジケータ
27…スクリーンカバー
28…タッチペン31…情報処理部
311…CPU
312…GPU
313…VRAM
32…メインメモリ
33…外部メモリI/F
34…データ保存用外部メモリI/F
35…データ保存用内部メモリ
36…無線通信モジュール
37…ローカル通信モジュール
38…RTC
39…加速度センサ
40…角速度センサ
41…電源回路
42…I/F回路
43…マイク
44…スピーカ
45…外部メモリ
46…データ保存用外部メモリ
【特許請求の範囲】
【請求項1】
表示装置に複数のオブジェクトからなるオブジェクト群を表示する表示制御装置のコンピュータで実行される表示制御プログラムであって、
前記コンピュータを、
前記複数のオブジェクトを第1の方向に並べて配置するときの、各オブジェクトの当該第1の方向についての配置位置を設定する第1方向位置設定手段と、
前記第1方向位置設定手段によって前記第1の方向についての配置位置が設定された前記オブジェクトそれぞれにおける、前記第1の方向と異なる第2の方向についての配置位置を、他の少なくとも1つのオブジェクトに対して異なる位置に、所定の法則に従って設定する第2方向位置設定手段と、
前記第1の方向および前記第2の方向についての配置位置に基づいて、前記複数のオブジェクトをそれぞれ配置して前記表示装置に表示する表示制御手段として機能させる、表示制御プログラム。
【請求項2】
前記第2方向位置設定手段は、前記法則に従い、前記オブジェクトそれぞれにおける前記第2の方向についての配置位置を、前記第1方向位置設定手段によって各前記オブジェクトを前記第1の方向へ配置するときに並べる順番で連続的に変化するように設定する、請求項1に記載の表示制御プログラム。
【請求項3】
前記第2方向位置設定手段は、前記法則に従い、前記オブジェクトそれぞれにおける前記第2の方向についての配置位置を、前記第1方向位置設定手段によって各前記オブジェクトを前記第1の方向へ配置するときに並べる順番で連続的に変化しながらピークが生じるように設定する、請求項2に記載の表示制御プログラム。
【請求項4】
前記第2方向位置設定手段は、前記法則に従い、前記オブジェクトそれぞれにおける前記第2の方向についての配置位置を、前記第1方向位置設定手段によって各前記オブジェクトを前記第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じるように設定する、請求項3に記載の表示制御プログラム。
【請求項5】
前記第2方向位置設定手段は、前記法則に従い、前記第1方向位置設定手段によって各前記オブジェクトを前記第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じ、且つ前記第2の方向への配置位置の基準からの変位量を繰り返し増減するように、前記オブジェクトそれぞれにおける当該第2の方向への配置位置を設定する、請求項4に記載の表示制御プログラム。
【請求項6】
前記表示装置に表示された各前記オブジェクトを前記第1の方向に沿ってスクロールさせるスクロール手段として前記コンピュータをさらに機能させる、請求項1〜5のいずれか1つに記載の表示制御プログラム。
【請求項7】
前記第2方向位置設定手段は、当該第1の方向へ配置された各前記オブジェクトについて、両端のオブジェクトの前記第2の方向についての配置位置が所定の同じ位置になるように、各前記オブジェクトの前記第2の方向についての配置位置を設定する、請求項6に記載の表示制御プログラム。
【請求項8】
前記第2方向位置設定手段は、前記法則に従い、前記オブジェクトそれぞれにおける前記第2の方向についての配置位置を、前記第1方向位置設定手段によって各前記オブジェクトを前記第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じ、当該ピークの前記第1の方向についての位置が前記両端のオブジェクトの第1の方向についての配置位置に近くなるにつれて、当該ピークの前記第2の方向についての位置が前記両端のオブジェクトの第2の方向についての配置位置に近くなるように設定する、請求項7に記載の表示制御プログラム。
【請求項9】
前記第2方向位置設定手段は、前記オブジェクトそれぞれにおける前記第1の方向への配置位置をパラメータとする、周期的に増減する関数を前記法則とし、当該法則に従って、前記オブジェクトそれぞれにおける前記第2の方向についての配置位置を、前記第1方向位置設定手段によって各前記オブジェクトを前記第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じ、且つ前記第2の方向への配置位置の基準からの変位量を繰り返し増減するように、前記オブジェクトそれぞれにおける当該第2の方向への配置位置を設定する、請求項5に記載の表示制御プログラム。
【請求項10】
前記第2方向位置設定手段は、前記関数として正弦関数または余弦関数を用いる、請求項10に記載の表示制御プログラム。
【請求項11】
表示装置に複数のオブジェクトからなるオブジェクト群を表示する表示制御装置であって、
前記複数のオブジェクトを第1の方向に並べて配置するときの、各オブジェクトの当該第1の方向についての配置位置を設定する第1方向位置設定手段と、
前記第1方向位置設定手段によって前記第1の方向についての配置位置が設定された前記オブジェクトそれぞれにおける、前記第1の方向と異なる第2の方向についての配置位置を、他の少なくとも1つのオブジェクトに対して異なる位置に、所定の法則に従って設定する第2方向位置設定手段と、
前記第1の方向および前記第2の方向についての配置位置に基づいて、前記複数のオブジェクトをそれぞれ配置して前記表示装置に表示する表示制御手段とを備える、表示制御装置。
【請求項12】
表示装置に複数のオブジェクトからなるオブジェクト群を表示する表示制御装置で実行される表示制御方法であって、
前記複数のオブジェクトを第1の方向に並べて配置するときの、各オブジェクトの当該第1の方向についての配置位置を設定する第1方向位置設定ステップと、
前記第1方向位置設定ステップにおいて前記第1の方向についての配置位置が設定された前記オブジェクトそれぞれにおける、前記第1の方向と異なる第2の方向についての配置位置を、他の少なくとも1つのオブジェクトに対して異なる位置に、所定の法則に従って設定する第2方向位置設定ステップと、
前記第1の方向および前記第2の方向についての配置位置に基づいて、前記複数のオブジェクトをそれぞれ配置して前記表示装置に表示する表示制御ステップとを備える、表示制御方法。
【請求項13】
複数の装置が通信可能に構成され、表示装置に複数のオブジェクトからなるオブジェクト群を表示する表示制御システムであって、
前記複数のオブジェクトを第1の方向に並べて配置するときの、各オブジェクトの当該第1の方向についての配置位置を設定する第1方向位置設定手段と、
前記第1方向位置設定手段によって前記第1の方向についての配置位置が設定された前記オブジェクトそれぞれにおける、前記第1の方向と異なる第2の方向についての配置位置を、他の少なくとも1つのオブジェクトに対して異なる位置に、所定の法則に従って設定する第2方向位置設定手段と、
前記第1の方向および前記第2の方向についての配置位置に基づいて、前記複数のオブジェクトをそれぞれ配置して前記表示装置に表示する表示制御手段とを備える、表示制御システム。
【請求項1】
表示装置に複数のオブジェクトからなるオブジェクト群を表示する表示制御装置のコンピュータで実行される表示制御プログラムであって、
前記コンピュータを、
前記複数のオブジェクトを第1の方向に並べて配置するときの、各オブジェクトの当該第1の方向についての配置位置を設定する第1方向位置設定手段と、
前記第1方向位置設定手段によって前記第1の方向についての配置位置が設定された前記オブジェクトそれぞれにおける、前記第1の方向と異なる第2の方向についての配置位置を、他の少なくとも1つのオブジェクトに対して異なる位置に、所定の法則に従って設定する第2方向位置設定手段と、
前記第1の方向および前記第2の方向についての配置位置に基づいて、前記複数のオブジェクトをそれぞれ配置して前記表示装置に表示する表示制御手段として機能させる、表示制御プログラム。
【請求項2】
前記第2方向位置設定手段は、前記法則に従い、前記オブジェクトそれぞれにおける前記第2の方向についての配置位置を、前記第1方向位置設定手段によって各前記オブジェクトを前記第1の方向へ配置するときに並べる順番で連続的に変化するように設定する、請求項1に記載の表示制御プログラム。
【請求項3】
前記第2方向位置設定手段は、前記法則に従い、前記オブジェクトそれぞれにおける前記第2の方向についての配置位置を、前記第1方向位置設定手段によって各前記オブジェクトを前記第1の方向へ配置するときに並べる順番で連続的に変化しながらピークが生じるように設定する、請求項2に記載の表示制御プログラム。
【請求項4】
前記第2方向位置設定手段は、前記法則に従い、前記オブジェクトそれぞれにおける前記第2の方向についての配置位置を、前記第1方向位置設定手段によって各前記オブジェクトを前記第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じるように設定する、請求項3に記載の表示制御プログラム。
【請求項5】
前記第2方向位置設定手段は、前記法則に従い、前記第1方向位置設定手段によって各前記オブジェクトを前記第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じ、且つ前記第2の方向への配置位置の基準からの変位量を繰り返し増減するように、前記オブジェクトそれぞれにおける当該第2の方向への配置位置を設定する、請求項4に記載の表示制御プログラム。
【請求項6】
前記表示装置に表示された各前記オブジェクトを前記第1の方向に沿ってスクロールさせるスクロール手段として前記コンピュータをさらに機能させる、請求項1〜5のいずれか1つに記載の表示制御プログラム。
【請求項7】
前記第2方向位置設定手段は、当該第1の方向へ配置された各前記オブジェクトについて、両端のオブジェクトの前記第2の方向についての配置位置が所定の同じ位置になるように、各前記オブジェクトの前記第2の方向についての配置位置を設定する、請求項6に記載の表示制御プログラム。
【請求項8】
前記第2方向位置設定手段は、前記法則に従い、前記オブジェクトそれぞれにおける前記第2の方向についての配置位置を、前記第1方向位置設定手段によって各前記オブジェクトを前記第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じ、当該ピークの前記第1の方向についての位置が前記両端のオブジェクトの第1の方向についての配置位置に近くなるにつれて、当該ピークの前記第2の方向についての位置が前記両端のオブジェクトの第2の方向についての配置位置に近くなるように設定する、請求項7に記載の表示制御プログラム。
【請求項9】
前記第2方向位置設定手段は、前記オブジェクトそれぞれにおける前記第1の方向への配置位置をパラメータとする、周期的に増減する関数を前記法則とし、当該法則に従って、前記オブジェクトそれぞれにおける前記第2の方向についての配置位置を、前記第1方向位置設定手段によって各前記オブジェクトを前記第1の方向へ配置するときに並べる順番で連続的に変化しながら周期的にピークが生じ、且つ前記第2の方向への配置位置の基準からの変位量を繰り返し増減するように、前記オブジェクトそれぞれにおける当該第2の方向への配置位置を設定する、請求項5に記載の表示制御プログラム。
【請求項10】
前記第2方向位置設定手段は、前記関数として正弦関数または余弦関数を用いる、請求項10に記載の表示制御プログラム。
【請求項11】
表示装置に複数のオブジェクトからなるオブジェクト群を表示する表示制御装置であって、
前記複数のオブジェクトを第1の方向に並べて配置するときの、各オブジェクトの当該第1の方向についての配置位置を設定する第1方向位置設定手段と、
前記第1方向位置設定手段によって前記第1の方向についての配置位置が設定された前記オブジェクトそれぞれにおける、前記第1の方向と異なる第2の方向についての配置位置を、他の少なくとも1つのオブジェクトに対して異なる位置に、所定の法則に従って設定する第2方向位置設定手段と、
前記第1の方向および前記第2の方向についての配置位置に基づいて、前記複数のオブジェクトをそれぞれ配置して前記表示装置に表示する表示制御手段とを備える、表示制御装置。
【請求項12】
表示装置に複数のオブジェクトからなるオブジェクト群を表示する表示制御装置で実行される表示制御方法であって、
前記複数のオブジェクトを第1の方向に並べて配置するときの、各オブジェクトの当該第1の方向についての配置位置を設定する第1方向位置設定ステップと、
前記第1方向位置設定ステップにおいて前記第1の方向についての配置位置が設定された前記オブジェクトそれぞれにおける、前記第1の方向と異なる第2の方向についての配置位置を、他の少なくとも1つのオブジェクトに対して異なる位置に、所定の法則に従って設定する第2方向位置設定ステップと、
前記第1の方向および前記第2の方向についての配置位置に基づいて、前記複数のオブジェクトをそれぞれ配置して前記表示装置に表示する表示制御ステップとを備える、表示制御方法。
【請求項13】
複数の装置が通信可能に構成され、表示装置に複数のオブジェクトからなるオブジェクト群を表示する表示制御システムであって、
前記複数のオブジェクトを第1の方向に並べて配置するときの、各オブジェクトの当該第1の方向についての配置位置を設定する第1方向位置設定手段と、
前記第1方向位置設定手段によって前記第1の方向についての配置位置が設定された前記オブジェクトそれぞれにおける、前記第1の方向と異なる第2の方向についての配置位置を、他の少なくとも1つのオブジェクトに対して異なる位置に、所定の法則に従って設定する第2方向位置設定手段と、
前記第1の方向および前記第2の方向についての配置位置に基づいて、前記複数のオブジェクトをそれぞれ配置して前記表示装置に表示する表示制御手段とを備える、表示制御システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10A】
【図10B】
【図10C】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10A】
【図10B】
【図10C】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【公開番号】特開2012−68730(P2012−68730A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願番号】特願2010−210932(P2010−210932)
【出願日】平成22年9月21日(2010.9.21)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願日】平成22年9月21日(2010.9.21)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]