以下、本発明に係る実施形態を図面に基づいて説明する。本実施形態では、表示制御装置を含む表示制御システムを一例に挙げて説明する。なお、図面において同一又は対応する構成には同一の符号を付し、繰り返しの説明を省略することがある。
[1.表示制御システムの全体構成]
図1は、表示制御システムの全体構成を示す図である。図1に示すように、本実施形態に係る表示制御システム1は、表示制御装置10と、サーバ30と、を含む。表示制御装置10及びサーバ30は、ネットワークNに接続される。このため、表示制御装置10とサーバ30との間で相互にデータ通信が可能である。
表示制御装置10は、ユーザが操作するコンピュータである。例えば、表示制御装置10は、携帯端末(例えば、スマートフォンなどの携帯電話又はタブレット型コンピュータ)、パーソナルコンピュータ、携帯ゲーム機、据置ゲーム機、業務用ゲーム機、又は、情報処理機能を備えた多機能型テレビジョン受像機(スマートテレビ)等である。なお、以下では、タッチパネルを備えた携帯電話が表示制御装置10であり、サーバ30から供給されるプログラムが携帯電話において実行される場合について説明する。プログラムは、サーバ30とは異なるサーバや記録媒体等を介して供給されてもよい。
図1に示すように、表示制御装置10は、制御部11、記憶部12、通信部13、操作部14、及び表示部15を含む。制御部11は、少なくとも1つのマイクロプロセッサを含む。制御部11は、オペレーティングシステムやその他のプログラムに従って処理を実行する。記憶部12は、主記憶部(例えば、RAM)及び補助記憶部(例えば、不揮発性の半導体メモリ)を含む。記憶部12は、プログラムやデータを記憶する。なお例えば、表示制御装置10がパーソナルコンピュータ等である場合、記憶部12は、例えばハードディスクドライブ又はソリッドステートドライブ等の補助記憶部を含むようにしてもよい。通信部13は、ネットワークカードなどの通信インタフェースを含む。通信部13は、ネットワークNを介してデータ通信を行う。
操作部14は、入力デバイスであり、例えば、ボタン、キー、レバー、ゲームコントローラ(ゲームパッド)、マウスやタッチパネルなどのポインティングデバイス、又はキーボード等である。なお、操作部14は、ユーザが音声又はジェスチャによって入力操作を行うためのマイクやカメラを含んでもよい。表示部15は、例えば、液晶表示パネル又は有機ELディスプレイ等であり、制御部11の指示に従って画面を表示する。なお、操作部14及び表示部15は、表示制御装置10に内蔵されていなくともよく、表示制御装置10に接続された外部装置であってもよい。
サーバ30は、サーバコンピュータである。図1に示すように、サーバ30は、制御部31、記憶部32、及び通信部33を含む。制御部31、記憶部32、及び通信部33のハードウェア構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
なお、記憶部12又は記憶部32に記憶されるものとして説明するプログラムやデータは、例えば、ネットワークNを介して表示制御装置10又はサーバ30に供給されるようにしてもよい。また、表示制御装置10又はサーバ30は、情報記憶媒体(例えば、光ディスク又はメモリカード等)に記憶されたプログラム又はデータを読み取るための読取部(例えば、光ディスクドライブ又はメモリカードスロット)を含むようにしてもよい。そして、情報記憶媒体を介して表示制御装置10又はサーバ30にプログラムやデータが供給されるようにしてもよい。
[2.表示制御装置において実行される処理の概要]
表示制御装置10は、種々の画像を表示部15に表示可能であるが、本実施形態では、画像の一例として、ゲームに関する画像を説明する。例えば、サーバ30は、ゲームプログラムを表示制御装置10に配信可能であり、表示制御装置10は、配信されたゲームプログラムを受信すると記憶部12に記録する。表示制御装置10がゲームプログラムを実行すると、ゲームの設定をするための画像やゲーム内の世界を示す画像などが、表示部15に表示される。
表示制御装置10は、種々のタイプのゲームを実行してよいが、本実施形態では、ゲームの一例としてサッカーゲームを説明する。例えば、現実又は架空のサッカー選手を示す選手キャラクタが用意されており、その一部がユーザに付与される。選手キャラクタは、ゲームの初回起動時にユーザに付与されてもよいし、ガチャと呼ばれる抽選、ゲーム内のミッションの達成、又は、他のユーザからのプレゼントなどによりユーザに付与されてもよい。例えば、ユーザが所有可能な選手キャラクタの数は、上限値が設けられていてよく、当該上限値は、ゲーム内通貨を消費することによって変更可能であってよい。
ユーザは、対戦相手チームと試合をするために、自身が所有する選手キャラクタの中から、試合に最初から出場するスターティングメンバーと、試合に途中から出場可能なベンチ入りメンバーと、を選択し、自身のサッカーチームを編成する。例えば、サッカーチームの編成を支援するために、表示制御装置10は、ユーザが所有する選手キャラクタに関する情報を表示することができる。例えば、ユーザが操作部14から所定の操作をすると、ユーザが所有する選手キャラクタのメニュー(リスト)を示すメニュー画像が、表示部15に表示される。
図2は、メニュー画像の一例を示す図である。図2に示すように、メニュー画像G1は、例えば、情報表示領域A10、メニュー名称画像G11、及びメニュー表示領域A12を含む。本実施形態では、表示領域の左上を原点Oとし、横方向をX軸とし、縦方向をY軸とするスクリーン座標軸が設定される。表示領域内の各画素の位置は、スクリーン座標系の2次元座標により示される。例えば、表示領域は、表示部15において画像を表示可能な領域であり、表示部15の画素全体(画面全体)のことである。ここでは、表示領域の右端の画素のX座標をXmaxと記載し、表示領域の下端の画素のY座標をYmaxと記載する。
例えば、情報表示領域A10は、ゲームに関する種々の情報を表示するための領域であり、ユーザが所有するゲーム内通貨(例えば、ポイント)、ユーザのレベルや経験値などのパラメータ、又は、ゲームアイテムやゲーム内通貨を購入するためのゲーム内の店舗に画面遷移するための画像が表示されてよい。なお、情報表示領域A10は、他の情報が表示されてもよく、例えば、ユーザ名やユーザのアバタ画像などが表示されてもよい。
例えば、メニュー名称画像G11は、メニュー画像G1に表示されるメニューの名称を示す。メニューとは、例えば、表示部15に表示される情報のリストであり、ユーザが選択可能な複数の画像が表示される。本実施形態では、メニュー画像G1には、ユーザが所有する選手キャラクタのリストがメニューとして表示されるので、図2に示すように、メニュー名称画像G11には、「メンバーリスト」の文字列が示される。
例えば、メニュー表示領域A12は、メニューを表示するための領域であり、表示領域の一部に設定される。本実施形態では、表示領域の一部が情報表示領域A10やメニュー名称画像G11の表示に用いられるので、メニュー表示領域A12は、それ以外の部分に設定されている。メニュー表示領域A12の上端の画素のY座標をY0とするとメニュー表示領域A12は、表示領域のうち、Y座標がY0以上の領域となる。別の言い方をすれば、メニュー表示領域A12は、Y座標がY0の画素から下の部分である。即ち、本実施形態では、メニュー表示領域A12は、(0,Y0)、(Xmax,Y0)、(0,Ymax)、(Xmax,Ymax)の4つの座標を頂点とする長方形の領域である場合を一例として説明する。
また、本実施形態では、メニュー表示領域A12の下端は、表示領域の下端(Y座標がYmaxの画素)と一致する。また、メニュー表示領域A12の左端は、表示領域の左端(X座標が0の画素)と一致し、メニュー表示領域A12の右端は、表示領域の右端(X座標がXmaxの画素)と一致する。なお、図2のメニュー表示領域A12は一例にすぎず、メニュー表示領域A12のそのサイズ及び形状は、後述する変形例のように任意であってよい。
図2に示すように、メニュー表示領域A12には、複数の項目画像G13A〜G13Fが縦方向に並べられており、固定画像G14が上端に配置されている。なお、以降では、項目画像G13A〜G13Fを区別する必要のないときは、単に項目画像G13と記載する。
例えば、項目画像G13は、ユーザが所有する選手キャラクタに関する情報を示す。1つの項目画像G13につき、複数の選手キャラクタの情報が示されてもよいが、ここでは、1つの項目画像G13につき、1人の選手キャラクタの情報が示されるものとする。また例えば、選手キャラクタには、多数の項目(例えば、選手名や能力など)の情報が関連付けられており、項目画像G13には、その一部の項目が表示されるものとする。更に、メニュー表示領域A12に表示可能な項目画像G13の数は、任意であってよく、例えば、表示部15のサイズやアスペクト比によって決まるようにしてよい。
例えば、固定画像G14は、項目画像G13に表示される情報の項目名を示す。図2の例では、項目画像G13には、選手キャラクタの名称、能力の総合的な高さ、及びレベルが表示されるので、固定画像G14には、これらの項目名(例えば、「選手名」、「総合値」、及び「レベル」)の文字列が表示される。なお、固定画像G14は、項目画像G13よりも上のレイヤ(別の言い方をすれば、視点側のレイヤ又は前面側のレイヤ)に配置されており、項目画像G13に重畳して表示される。
本実施形態では、項目画像G13は、メニュー表示領域A12において、縦方向にスクロール可能である。例えば、操作部14がタッチパネルを含むとすると、ユーザがタッチパネルをタッチして縦方向にスライド操作又はフリック操作をすると、項目画像G13は、スライド操作又はフリック操作の方向(即ち、上方向又は下方向)にスクロールする。
図3は、項目画像G13がスクロールする様子を示す図である。図3に示すように、メニュー画像G1Aの状態において、ユーザが項目画像G13を上方向にスクロールさせると、メニュー画像G1Bに示すように、項目画像G13Aは、固定画像G14の下に徐々に隠れるようにスクロールする。そして、メニュー表示領域A12の下端(ここでは、表示領域の下端)からは、新たな項目画像G13Gが徐々に表れるようにスクロールする。その間にある項目画像G13B〜G13Fも同様にして上方向にスクロールする。
また、メニュー画像G1Bの状態において、ユーザが項目画像G13を下方向にスクロールさせると、固定画像G14の下にある項目画像G13Aが、固定画像G14の下から徐々に表れるようにスクロールする。そして、メニュー表示領域A12の下端(ここでは、表示領域の下端)に、項目画像G13Gが徐々に隠れるようにスクロールする。その間にある項目画像G13B〜G13Fも同様にして下方向にスクロールする。本実施形態では、項目画像G13をスクロール可能にすることで、ユーザが保有する選手キャラクタの数が、メニュー表示領域A12に表示可能な項目画像G13の数より多かったとしても、全ての選手キャラクタの情報をメニュー表示領域A12に表示できるようになっている。
本実施形態のように、メニュー表示領域A12が表示領域の一部に設定されている場合、項目画像G13がメニュー表示領域A12の上端に近づいた場合にその一部だけを表示させようとしてマスク処理を実行すると、従来技術で説明したように、表示制御装置10の処理負荷及び消費電力が増大する。また例えば、表示制御装置10がスマートフォンなどの携帯端末であり、当該携帯端末で高解像度の画像を表示させる場合には、先述したように、処理負荷及び消費電力の増大が特に問題となる。
この点、表示制御装置10は、メニュー表示領域A12の上端に固定画像G14を配置し、スクロールした項目画像G13が、徐々にその下に隠れるようにしている。そして、項目画像G13の上端がメニュー表示領域A12の上に少しでも出ると、当該項目画像G13が表示の対象から除外される。即ち、項目画像G13は、固定画像G14に隠れた状態で表示の対象から除外されることになる。このため、マスク処理のような複雑な処理を利用しなくても、メニュー表示領域A12の上端に近づいた項目画像G13の一部だけを表示可能とし、かつ、項目画像G13が突然消えるような見た目上の違和感を防止可能としている。即ち、表示制御装置10は、固定画像G14を利用して簡易的な処理で済むようにすることで、処理負荷及び消費電力を軽減するようにしている。以降、この処理の詳細を説明する。
[3.表示制御システムにおいて実現される機能]
図4は、表示制御システム1で実現される機能のうち、本発明に関連する機能を示す機能ブロック図である。本実施形態では、表示制御装置10において、データ記憶部100、項目画像表示制御部101、固定画像表示制御部102、スクロール部103、判定部104、及び除外部105が実現される場合を説明する。
[3−1.データ記憶部]
データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、メニュー画像G1を表示させるために必要なデータやゲームを実行するために必要なデータを記憶する。ここでは、データ記憶部100が記憶するデータの一例として、ユーザが所有する選手キャラクタに関する所有キャラクタデータDT1を説明する。
図5は、所有キャラクタデータDT1の一例を示す図である。図5に示すように、例えば、所有キャラクタデータDT1には、選手キャラクタを一意に識別する選手IDに関連付けられて、複数の項目の情報が格納される。例えば、所有キャラクタデータDT1に格納される項目としては、選手キャラクタの名称、ポジション、各種属性(例えば、所属クラブ、所属リーグ、所属地域、国籍、年齢など)、能力の総合値、各種能力パラメータ、及び現在のレベル等であってよい。
なお、データ記憶部100に記憶されるデータは、所有キャラクタデータDT1に限られない。例えば、データ記憶部100は、後述するフレームデータDT2を記憶してもよい。また例えば、データ記憶部100は、メニュー画像G1に表示される各画像の画像データやメニュー画像G1のレイアウトを定義したデータを記憶してもよい。他にも例えば、データ記憶部100は、操作部14がポインティングデバイスである場合に、ユーザが指示した画面上の位置の履歴を記憶してもよい。
[3−2.項目画像表示制御部]
項目画像表示制御部101は、制御部11を主として実現される。項目画像表示制御部101は、表示領域の一部であるメニュー表示領域A12内に、複数の項目画像G13を、所定方向に並べて表示させる。
先述したように、メニュー表示領域A12は、例えば、表示部15の全画素のうち、項目画像G13及び固定画像G14の表示で利用される部分である。別の言い方をすれば、例えば、メニュー表示領域A12は、項目画像G13及び固定画像G14が配置される領域であり、項目画像G13をスクロール可能な領域である。なお、メニュー表示領域A12のサイズ及び形状は、任意であってよく、例えば、本実施形態のような長方形以外にも、正方形や他の多角形であってよい。また、メニュー表示領域A12には、固定画像G14及び項目画像G13が隙間なく敷き詰められていてもよいし、画像間に隙間を設けて画像が表示されない領域を含んでいてもよい。
また、先述したように、項目画像G13は、画面内でスクロール可能な画像である。本実施形態では、項目画像G13が文字列を含む画像である場合を説明するが、特に文字列を含まない画像であってもよい。また例えば、項目画像G13は、所定の処理を実行するための画像であってもよい。この場合、例えば、項目画像G13には、ユーザが項目画像G13を選択した場合に実行される処理が関連付けられている。本実施形態では、この処理は、例えば、選手キャラクタの詳細な情報を示す画面に遷移する処理、又は、ユーザのサッカーチームを編成する処理である。更に、項目画像G13は、自身が選択された場合に実行される処理の内容を示してもよい。
本実施形態では、項目画像G13は、当該項目画像G13に情報が表示される表示対象に関連付けられた複数の情報の中から抽出された情報を示す画像である場合を説明する。表示対象とは、複数の情報が関連付けられる対象であり、例えば、ゲームキャラクタ、ゲームカード、ゲームアイテム、又はユーザである。例えば、ゲームキャラクタ、ゲームカード、又はゲームアイテムが表示対象に相当する場合、これらに関連付けられる情報は、名前、レベル、能力パラメータの総合値、役割、又は能力などの各種パラメータ(例えば、攻撃力や守備力など)である。また例えば、ユーザが表示対象に相当する場合、ユーザに関連付けられる情報は、名前、レベル、代表画像(例えば、アバタや保有キャラクタの何れかなど)、ゲーム内通貨、又はポイントなどである。
本実施形態では、表示対象の一例として選手キャラクタを説明する。このため、項目画像G13には、選手キャラクタに関連付けられた複数の情報の中から抽出された情報が示される。即ち、項目画像G13には、所有キャラクタデータDT1に格納された複数の項目のうちの一部が示されることになる。どの項目が項目画像G13に表示されるかは、例えば、予めゲームプログラム又はゲームの設定を示すファイルに定められていてよい。なお、当該ファイルは、データ記憶部100に記憶されていてよい。あるいは、ユーザが、どの項目を項目画像G13に表示させるかをユーザが自由に設定可能であってもよい。
なお、項目画像G13のサイズ及び形状は、任意であってよく、例えば、図2に示すような長方形以外にも、正方形であってもよいし、四角形以外の多角形であってもよい。更には、項目画像G13は、多角形の角を削って丸みを帯びさせた形状であってもよいし、円形であってもよい。また、本実施形態では、項目画像G13のサイズ及び形状と、固定画像G14のサイズ及び形状と、が同じである場合を説明するが、これらは異なっていてもよい。例えば、本実施形態では、項目画像G13の縦方向の幅(縦幅)と、固定画像G14の縦方向の幅と、が同じ長さとするが、これらは異なってもよい。これらの幅が異なる場合には、固定画像G14によって項目画像G13を隠すために、固定画像G14の縦方向の幅は、項目画像G13の縦方向の幅よりも長いものとするが、例えば数画素程度であれば項目画像G13の縦方向の幅よりも短くてもよい。
同様に、本実施形態では、項目画像G13の横方向の幅(横幅)と、固定画像G14の横方向の幅と、も同じ長さとするが、これらは異なってもよい。これらの幅が異なる場合には、固定画像G14によって項目画像G13を隠すために、固定画像G14の横方向の幅は、項目画像G13の横方向の幅よりも長いものとするが、例えば数画素程度であれば項目画像G13の横方向の幅よりも短くてもよい。更に、例えば、項目画像G13と固定画像G14とは、縦方向の幅のみが同じであり、横方向の幅が異なってもよい。また例えば、項目画像G13と固定画像G14とは、縦方向の幅が異なっており、横方向の幅のみが同じであってもよい。また例えば、項目画像G13と固定画像G14とは、縦方向の幅と横方向の幅との両方が異なってもよい。
所定方向とは、画面内の予め定められた方向であり、例えば、画面の縦方向(上下方向・垂直方向)、又は、横方向(左右方向・水平方向)である。なお、画面の縦方向と横方向は、表示部15の向き(姿勢)によって変化するので、アスペクト比の大きい方向(長手方向)が縦方向であり小さい方が横方向に相当することもあるし、アスペクト比の小さい方向(短手方向)が縦方向であり大きい方が横方向に相当することもある。本実施形態では、縦方向が所定方向に相当する場合を説明する。このため、本実施形態で「縦方向」と記載した部分は、横方向などの任意の所定方向に読み替えることが可能である。
例えば、項目画像表示制御部101は、所有キャラクタデータDT1のうち、項目画像G13を生成する選手キャラクタのレコードを参照する。項目画像G13を生成する選手キャラクタは、ユーザが所有する選手キャラクタのうちの一部又は全部であり、任意の方法によって定まればよい。例えば、項目画像表示制御部101は、所有キャラクタデータDT1に情報が格納された選手キャラクタを所定のソート条件のもとでソートする。そして、項目画像表示制御部101は、ソートされた選手キャラクタのうちの一部(例えば、後述するフレームFの数の選手キャラクタ)のレコードを選択する。項目画像G13を生成する選手キャラクタは、項目画像G13のスクロールに応じて変わってよい。なお、ソート条件としては、例えば、選手ID、選手名、レベル、総合値、又はポジションであってよく、これらの昇順又は降順でソートが実行されてよい。また、項目画像表示制御部101は、全ての選手キャラクタについて項目画像G13を予め生成しておいてもよく、この場合には、所有キャラクタデータDT1の全てのレコードに対して項目画像G13を生成する。
例えば、項目画像表示制御部101は、選択したレコードから、項目画像G13に表示させる項目の情報を取得する。そして、項目画像表示制御部101は、取得した情報に基づいて、選手キャラクタに対応する項目画像G13を生成する。なお、項目画像G13の画像データは、データ記憶部100に記憶されており、項目画像表示制御部101は、当該画像データが示す画像に、取得した選手キャラクタの情報(文字列)を合成することで、項目画像G13を生成するようにしてよい。また、本実施形態では、項目画像表示制御部101は、各項目画像G13の間隔(隙間)をあけずに敷き詰める場合を説明するが、項目画像G13間に一定の間隔を設けて並べてもよい。項目画像表示制御部101は、生成した項目画像G13の一部又は全部を、メニュー表示領域A12において、縦方向に並べて表示させることになる。項目画像G13の並び順は、上記説明したソート順であってもよいし、所有キャラクタデータDT1におけるレコード順であってもよい。
本実施形態では、上記のような項目画像G13を表示及びスクロールさせるために、フレームを利用する場合を説明する。このため、項目画像表示制御部101がフレーム設定部101Aを含む場合を説明する。
フレームとは、例えば、画像を表示すべき領域を示す枠である。本実施形態では、フレームの形状を矩形とするが、例えば、矩形以外の多角形であってもよいし、円形であってもよい。本実施形態では、フレームのサイズ及び形状と、表示対象となる画像のサイズ及び形状と、が同じである場合を説明するが、これらは異なっていてもよい。これらが異なる場合には、画像は、フレームに合わせて拡張又は縮小されたうえで表示されてもよいし、画像の一部がフレームに合わせて切り取られた状態で表示されてもよい。
図6は、メニュー表示領域A12に設定されたフレームを示す図である。図6に示すように、例えば、フレーム設定部101Aは、メニュー表示領域A12内に、複数のフレームF1〜F7を、縦方向に並べて設定し、複数の項目画像G13A〜G13Gを、当該設定された複数のフレームF1〜F7にそれぞれ関連付ける。なお、以降、フレームF1〜F7を区別する必要のないときは、フレームFと記載する。
フレームFの数は、任意であってよく、例えば、画面に表れる項目画像G13の数と同じであってもよいし、それより多くてもよい。本実施形態では、フレーム設定部101Aは、メニュー表示領域A12に表示される項目画像G13の数よりも1つ多い数のフレームFを設定する場合を説明する。例えば、図2に示すように、見た目上は6つの項目画像G13A〜G13Fが表示されていたとしても、フレーム設定部101Aは、それよりも1つ多い7つのフレームF1〜F7を設定する。
図6に示すように、一部がメニュー表示領域A12の外に出ているフレームF7が存在してもよい。ただし、本実施形態では、メニュー表示領域A12の下にフレームFが出ることは許容するが、メニュー表示領域A12の上にフレームFは出ないものとする。詳細は後述するが、フレームFがメニュー表示領域A12の上に出た場合には、当該フレームFは、最も下に移動する。フレーム設定部101Aは、フレームFを設定すると、各フレームFの現在の位置を示すフレームデータDT2を、データ記憶部100に記録する。
図7は、フレームデータDT2のデータ格納例を示す図である。図7に示すように、フレームデータDT2には、例えば、各フレームFを一意に識別するためのフレームIDに関連付けて、フレームFの現在の位置と、フレームFに関連付けられた項目画像G13と、が格納される。なお、フレームFのサイズ及び形状を定義する情報は、フレームデータDT2とは別にデータ記憶部100に記憶されていてもよいし、フレームデータDT2に格納されていてもよい。
本実施形態では、各フレームF1〜F7の現在の位置として、中心点P1〜P7の2次元座標が用いられる場合を説明するが、他にも例えば、四隅の2次元座標であってもよいし、四隅以外の端部の2次元座標であってもよい。なお、各フレームFのサイズ及び形状は共通なので、中心点Pを特定できれば、フレームFの端部の2次元座標も特定可能である。また、フレームFは、後述するスクロール部103によりスクロール可能なので、フレームFのスクロールに応じて、当該フレームFの現在の位置を示す情報が更新されることになる。
フレーム設定部101Aは、表示対象の項目画像G13を何れかのフレームFに関連付ける。フレーム設定部101AがフレームFに項目画像G13を関連付けると、当該フレームF内に当該項目画像G13が表示される。どのフレームFにどの項目画像G13が関連付けいているかは、フレームデータDT2に定義される。例えば、あるフレームFに関連付けられていた項目画像G13が、当該フレームFに関連付けられなくなると、当該項目画像G13は、メモリ上から消去されるようにしてよい。
[3−3.固定画像表示制御部]
固定画像表示制御部102は、制御部11を主として実現される。固定画像表示制御部102は、メニュー表示領域A12における縦方向の端部に、少なくとも1つの項目画像G13を覆い隠すことができる大きさの固定画像G14を重畳して表示させる。
ここでの端部とは、本実施形態のように項目画像G13が並ぶ所定方向が縦方向であれば、上端部又は下端部であり、所定方向を横方向とするのであれば、右端部又は左端部である。本実施形態では、固定画像表示制御部102は、メニュー表示領域A12の上端部と、固定画像G14の上端部と、が一致するように、固定画像G14を表示させる。別の言い方をすれば、固定画像G14は、メニュー表示領域A12の端部うち、表示領域の端部と一致しない端部に配置される。
少なくとも1つの項目画像G13を覆い隠すことができる大きさとは、例えば、項目画像G13と同じ大きさであること、又は、項目画像G13よりも大きいことである。別の言い方をすれば、項目画像G13が固定画像G14の下に移動した場合に、真上から見て項目画像G13が見えない程度の大きさである。なお、本実施形態では、固定画像G14が1つの項目画像G13を隠す場合を説明するが、2つ以上の項目画像G13を隠すようにしてもよい。
固定画像G14は、項目画像G13とは異なる画像であればよく、例えば、項目画像G13を隠すために、背景が透過しない画像、背景の透過度が基準未満の画像、又は、背景の模様の密度が基準以上の画像であってよい。例えば、固定画像G14は、縦方向の幅が項目画像G13の幅以上の画像であってよい。別の言い方をすれば、固定画像G14は、項目画像G13以上のサイズを有する画像であってよい。
固定画像G14は、何らかの情報を含む画像(例えば、文字列を含む画像)であってもよいし、特に情報を含まない画像(例えば、文字列を含まずに所定の色で塗りつぶされた画像)であってもよい。他にも例えば、固定画像G14は、項目画像G13の意味を説明する画像であってもよいし、項目画像G13が含む情報の概要を表す画像であってよい。また例えば、項目画像G13が所定の文字列を含む場合、固定画像G14は、その文字列が何を示すを説明する画像であってもよいし、複数の項目画像G13がリスト形式で表示される場合、固定画像G14は、リスト名又はリストに含まれる項目名を示す画像であってもよい。
本実施形態では、固定画像G14は、複数の項目画像G13が示す内容を案内するための画像である場合を説明する。別の言い方をすれば、固定画像G14は、例えば、複数の項目画像G13が示す内容を案内するための画像であり、項目画像G13に関連する画像であってよい。先述したように、固定画像G14は、項目画像G13に重畳するようにして表示される。
図8は、項目画像G13と固定画像G14との位置関係を示す図である。図8に示すように、例えば、固定画像表示制御部102は、項目画像G13よりも前面側(上のレイヤ)に固定画像G14を配置することによって、重畳して表示させる。前面とは、レイヤが上のことであり、例えば、視点から見て手前側であって、背面側ではないことである。例えば、固定画像G14が配置されるレイヤL1は、項目画像G13が配置されるレイヤL2よりも上面(前面)である。即ち、項目画像G13が配置されるレイヤL2は、固定画像G14が配置されるレイヤL1よりも下面(背面)である。
なお、図8の例では、説明の簡略化のために、2つのレイヤL1,L2のみを示しており、情報表示領域A10内の各画像、メニュー名称画像G11、及び固定画像G14が同じレイヤL1に配置されているが、これらは、別々のレイヤに分けられていてもよい。また、図8では、模式的に、レイヤL1,L2のサイズ及び形状と、表示領域のサイズ及び形状と、を同じとしているが、実際には、レイヤL1,L2は、表示領域よりも広くてよい。また、固定画像G14は、項目画像G13よりも前面であればよく、最前面である必要はない。例えば、固定画像表示制御部102は、背面側である項目画像G13のレイヤL2が描画された後に、前面側の固定画像G14のレイヤL1を描画するようにしてよい。即ち、背面側のレイヤL2から前面側のレイヤL1にかけて順番に、各レイヤの画像が描画されるようにしてよい。
[3−4.スクロール部]
スクロール部103は、制御部11を主として実現される。スクロール部103は、ユーザによる操作指示に応じて、複数の項目画像G13を縦方向にスクロールさせる。
操作指示は、例えば、画像をスクロールさせるための操作であり、操作部14から入力可能な任意の操作であってよい。例えば、操作部14がポインティングデバイスであれば、ユーザが入力する画面上の位置を移動させることであってよい。ポインティングデバイスがタッチパネルであれば、例えば、スライド操作、フリック操作、又はドラッグ操作と呼ばれる操作であってよい。また例えば、操作指示は、スクロールの方向を指示するための方向指示操作であってよい。このため、操作部14がレバーやスティックであれば、ユーザがレバーやスティックを倒して方向指示をすることが操作指示に相当してもよい。また例えば、操作部14がキーボードであれば、ユーザがキーボードの矢印ボタンを押すことが操作指示に相当してもよい。
スクロールとは、例えば、画面上を画像が移動することであり、画像の表示位置が変わることである。本実施形態では、項目画像G13が並ぶ方向と、スクロールする方向(即ち、項目画像G13の移動方向)と、が同じ方向である場合を説明するが、これらの方向は一致していなくてもよく、ある程度のずれ(角度)があってもよい。項目画像G13が並ぶ方向とスクロールする方向とにずれがある場合、例えば、このずれは閾値未満であってよい。例えば、項目画像G13は、画面の縦方向又は横方向にスクロールするようにしてよい。
本実施形態では、項目画像G13の表示及びスクロールにフレームFが利用されるので、スクロール部103は、複数の項目画像G13と共に、それぞれの項目画像G13に関連付けられた複数のフレームFをスクロールさせることになる。項目画像G13は、自身に関連付けられたフレームFの移動とともに移動する。別の言い方をすれば、項目画像G13は、フレームFに従動する。
図9は、フレームFが上方向にスクロールする様子を示す図であり、図10は、フレームFが上方向にスクロールした場合のメニュー画像G1の変化を示す図である。なお、図9では、説明の簡略化のために、メニュー画像G1内の各画像を省略している。図9のメニュー画像G1C〜G1Fに示すように、フレームFが上方向にスクロールすると、図10のメニュー画像G1C〜G1Fに示すように、フレームFに関連付けられた項目画像G13は、自身に関連付けられたフレームFとともに上方向にスクロールする。
図11は、フレームFが下方向にスクロールする様子を示す図であり、図12は、フレームFが下方向にスクロールした場合のメニュー画像G1の変化を示す図である。なお、図12では、説明の簡略化のために、メニュー画像G1内の各画像を省略している。図11のメニュー画像G1G〜G1Jに示すように、フレームFが上方向にスクロールすると、図12のメニュー画像G1G〜G1Jに示すように、フレームFに関連付けられた項目画像G13は、自身に関連付けられたフレームFとともに下方向にスクロールする。
[3−5.判定部]
判定部104は、制御部11を主として実現される。判定部104は、スクロール部103により複数の項目画像G13が縦方向へスクロールされることで、何れかの項目画像G13の一部がメニュー表示領域A12の外に出たかを判定する。なお、メニュー表示領域A12の位置を示す情報(例えば、四隅の2次元座標)は、予めデータ記憶部100に記憶されているものとする。
例えば、判定部104は、項目画像G13に関連付けられた基準点がメニュー表示領域A12の外に出たかを判定する。基準点は、例えば、項目画像G13のうち縦方向側の端部の位置、又は、端部から所定距離以内の位置である。例えば、本実施形態のように縦方向にスクロールする場合、基準点は項目画像G13の上端又は下端であり、横方向にスクロールする場合、基準点は項目画像G13の左端又は右端である。
例えば、判定部104は、何れかの項目画像G13のうちの縦方向の端部がメニュー表示領域A12の外に出たかを判定する。例えば、判定部104は、項目画像G13の上端又は下端の2次元座標と、メニュー表示領域A12の上端又は下端の2次元座標と、を比較することによって、判定処理を実行する。
本実施形態では、項目画像G13の表示及びスクロールにフレームFが利用されるので、判定部104は、何れかのフレームFのうちの縦方向の端部がメニュー表示領域A12の外に出たかを判定する。例えば、判定部104は、何れかのフレームFのうちの上端部がメニュー表示領域A12の外に出たかを判定する。
例えば、図9に示すように、フレームFが上方向にスクロールする場合、メニュー画像G1Eに示すように、判定部104は、最も上にあるフレームF1の上端の2次元座標が、メニュー表示領域A12の上端の2次元座標(ここでは、Y座標値がY0)の外に出たかを判定することになる。また例えば、図11に示すように、フレームFが下方向にスクロールする場合、メニュー画像G1Iに示すように、判定部104は、最も下にあるフレームF7の上端の2次元座標が、メニュー表示領域A12の下端の2次元座標(ここでは、Y座標値がYmax)の外に出たかを判定することになる。
例えば、フレーム設定部101Aは、何れかのフレームFに関連付けられた項目画像G13がメニュー表示領域A12の外に出た場合、当該フレームFを、縦方向のうちスクロールによる進行方向の逆側に移動させ、当該フレームに関連付けられていた項目画像G13とは異なる項目画像G13と関連付ける。
スクロールによる進行方向の逆側とは、例えば、本実施形態のようにスクロールの進行方向が縦方向であれば、最も下又は上である。即ち、スクロールの進行方向が上方向であれば逆側は下側であり、スクロールの進行方向が下方向であれば逆側は上側である。また例えば、スクロールの進行方向が横方向であれば、逆側は、最も右又は左である。即ち、スクロールの進行方向が右方向であれば逆側は左側であり、スクロールの進行方向が左方向であれば逆側は右側である。即ち、逆側は、スクロールの進行方向に対して最後尾側である。
例えば、フレーム設定部101Aは、何れかのフレームFに関連付けられた項目画像G13がメニュー表示領域A12の外に出た場合、当該フレームFを、縦方向のうちスクロールによる進行方向の逆側に移動させ、当該フレームに関連付けられていた項目画像G13とは異なる項目画像G13と関連付ける。
例えば、図9のメニュー画像G1Fに示すように、上方向にスクロールしてフレームF1がメニュー表示領域A12の外に出た場合、フレーム設定部101Aは、当該フレームF1を、逆側である下側(最も下にあるフレームF7の下側)に移動させる。そして、移動させたフレームF1にそれまで関連付けられていた項目画像G13Aの関連付けが、後述する除外部105により解除され、図10のメニュー画像G1Fに示す項目画像G13H(即ち、新たに下側から表示すべき項目画像G13H)がフレームF1に関連付けられる。
また例えば、図11のメニュー画像G1Jに示すように、下方向にスクロールしてフレームF7がメニュー表示領域A12の外に出た場合、フレーム設定部101Aは、当該フレームF7を、逆側である上側(最も上にあるフレームF1の上側)に移動させる。そして、移動させたフレームF7にそれまで関連付けられていた項目画像G13Hの関連付けが後述する除外部105により解除され、図10のメニュー画像G1Jに示す項目画像G13A(即ち、新たに上側から表示すべき項目画像G13A)がフレームF7に関連付けられる。
[3−6.除外部]
除外部105は、制御部11を主として実現される。除外部105は、判定部104によりメニュー表示領域A12の外に一部が出たと判定された項目画像G13を、項目画像表示制御部101により表示させる対象から除外する。表示させる対象から除外するとは、例えば、項目画像G13を画面の表示対象から外すことであり、メモリに展開した項目画像G13を消去することはその一例である。
なお、表示対象から除外するためには、メモリから項目画像G13を消去しなくてもよく、本実施形態のように、項目画像G13の表示及びスクロールにフレームFが利用される場合には、除外部105は、フレームFと項目画像G13との関連付けを解除することによって、項目画像G13を表示対象から除外するようにしてよい。
[4.表示制御システムにおいて実行される処理]
図13は、表示制御システム1において実行される処理の一例を示すフロー図である。図13に示す処理は、制御部11が記憶部12に記憶されたプログラムに従って動作することによって実行される。下記の処理は、図4に示す各機能ブロックによる処理の一例である。なお、下記の処理は、所定のフレームレート(例えば、30fps)に基づいて定まる時間(例えば、1/30秒)ごとにされるものとする。また、下記の処理が実行されるにあたり、制御部11は、予めフレームFを設定し、項目画像G13と関連付けており、フレームデータDT2を記憶部12に記録しているものとする。
図13に示すように、まず、表示制御装置10においては、制御部11は、操作部14からの信号に基づいて、ユーザが操作指示をしたかを判定する(S1)。例えば、操作部14がポインティングデバイスを含んでいたとすると、S1においては、制御部11は、操作部14から入力された画面上の位置が変化したかを判定する。より具体的には、ポインティングデバイスがタッチパネルだったとすると、制御部11は、スライド操作又はフリック操作により縦方向が指示されたかを判定する。なお、制御部11は、操作部14から入力された画面上の位置の履歴を記憶部12に記録し、履歴に基づいて画面上の位置の変化を特定すればよい。
ユーザが操作指示をしたと判定された場合(S1;Y)、制御部11は、操作指示に基づいて、フレームFを移動させる(S2)。S2においては、制御部11は、操作指示が示す移動方向に、操作量に対応する移動量だけ、各フレームFを移動させる。移動方向は、操作指示により特定される方向であり、ここでは上方向又は下方向である。また例えば、移動量は、操作指示が示す画面上の位置の変化量である。例えば、スライド操作によるスライド量又はフリック操作によるフリック量が移動量として取得される。S2においては、制御部11は、フレームデータDT2に格納された各フレームFの現在の位置を更新する。
制御部11は、各フレームFの現在の位置を参照し、最も上にあるフレームFの上端がメニュー表示領域A12の上に出たかを判定する(S3)。S3においては、制御部11は、最も上にあるフレームFの上端のY座標値と、メニュー表示領域A12の上端のY座標値であるY0と、を比較する。制御部11は、最も上にあるフレームFの上端のY座標値がY0未満である場合に、最も上にあるフレームFの上端がメニュー表示領域A12の上に出たと判定する。
最も上にあるフレームFの上端がメニュー表示領域A12の上に出たと判定された場合(S3;Y)、制御部11は、当該フレームFに関連付けられていた項目画像G13を表示の対象から除外する(S4)。S4においては、制御部11は、当該フレームFに関連付いていた項目画像G13が当該フレームFに関連付いていない状態となるように、フレームデータDT2を更新する。これに応じて、当該項目画像G13を記憶部12上から消去するようにしてもよい。当該項目画像G13は、固定画像G14に隠れた状態で、表示の対象から除外される。このため、見た目では、当該項目画像G13が表示の対象から除外されたことが分からないことになる。
制御部11は、メニュー表示領域A12の上に出たフレームFを最も下に移動させる(S5)。S5においては、制御部11は、現時点において最も下にあるフレームFの下に位置するように、メニュー表示領域A12の上に出たフレームFの現在の位置を更新する。例えば、制御部11は、現時点において最も下にあるフレームFの現在の位置の所定距離だけ下の位置を、メニュー表示領域A12の上に出たフレームFの現在の位置とする。
制御部11は、所有キャラクタデータDT1に基づいて、最も下に移動させたフレームFに新たな項目画像G13を関連付ける(S6)。S6においては、制御部11は、下から2番目のフレームFに関連付けられた項目画像G13が示す選手キャラクタの次の選手キャラクタの情報に基づいて、新たな項目画像G13を生成し、最も下に移動させたフレームFに関連付ける。なお、制御部11は、所有キャラクタデータDT1に情報が格納された各選手キャラクタの項目画像G13を予め生成しておいてもよく、この場合には、下から2番目のフレームFに対応する選手キャラクタの情報が格納されたレコードの次のレコードの情報を示す項目画像G13を、最も下に移動させたフレームFに関連付けることになる。
一方、S3において、最も上にあるフレームFの上端がメニュー表示領域A12の上に出たと判定されない場合(S3;N)、制御部11は、最も下にあるフレームの上端がメニュー表示領域A12の下に出たかを判定する(S7)。S7の判定処理は、S3の判定処理とは異なる判定であり、S3の判定処理は、フレームFの一部がメニュー表示領域A12の外に出たかを判定する処理であるのに対し、S7の判定処理は、フレームFの全部がメニュー表示領域A12の外に出たかを判定する処理である。S7においては、制御部11は、最も下にあるフレームFの上端のY座標値と、メニュー表示領域A12の下端のY座標値であるYmaxと、を比較する。制御部11は、最も下にあるフレームFの上端のY座標値がYmaxよりも大きい場合に、最も下にあるフレームFの下端がメニュー表示領域A12の下に出たと判定する。
最も下にあるフレームの上端がメニュー表示領域A12の下端よりも下に出たと判定された場合(S7;Y)、制御部11は、最も下のフレームFに関連付けられた項目画像G13を表示の対象から除外する(S8)。S8においては、制御部11は、当該フレームFに関連付いていた項目画像G13が当該フレームFに関連付いていない状態となるように、フレームデータDT2を更新する。これに応じて、当該項目画像G13を記憶部12上から消去するようにしてもよい。当該項目画像G13は、表示領域から完全に出た状態で、表示の対象から除外される。このため、見た目では、当該項目画像G13が表示の対象から除外されたことが分からないことになる。
制御部11は、メニュー表示領域A12の下に出たフレームFを最も上に移動させる(S9)。S9においては、制御部11は、現時点において最も上にあるフレームFの上に位置するように、メニュー表示領域A12の下に出たフレームFの現在の位置を更新する。例えば、制御部11は、現時点において最も上にあるフレームFの現在の位置の所定距離だけ上の位置を、メニュー表示領域A12の下に出たフレームFの現在の位置とする。
制御部11は、所有キャラクタデータDT1に基づいて、最も上に移動させたフレームFに新たな項目画像G13を関連付ける(S10)。S10においては、制御部11は、上から2番目のフレームFに関連付けられた項目画像G13が示す選手キャラクタの前の選手キャラクタの情報に基づいて、新たな項目画像G13を生成し、最も上に移動させたフレームFに関連付ける。なお、制御部11は、所有キャラクタデータDT1に情報が格納された各選手キャラクタの項目画像G13を予め生成しておいてもよく、この場合には、上から2番目のフレームFに対応する選手キャラクタの情報が格納されたレコードの前のレコードの情報を示す項目画像G13を、最も上に移動させたフレームFに関連付けることになる。
制御部11は、最新のフレームデータDT2に基づいて、項目画像G13のレイヤL2を描画し(S11)、次いで固定画像G14のレイヤL1を描画する(S12)。S11においては、制御部11は、フレームデータDT2が示す位置にフレームFを配置し、当該フレームFに関連付けられた項目画像G13を、当該フレームFの位置に描画する。S12においては、制御部11は、固定画像G14を予め定められた位置であるメニュー表示領域A12の上端に表示させる。S12においては、制御部11は、情報表示領域A10内の画像やメニュー名称画像G11も表示させる。S11及びS12の処理により、メニュー画像G1の表示が更新され、本処理は終了する。そして、次の処理単位が訪れた場合に、S1の処理が再び実行される。
なお、S2において、ユーザが操作指示をしたと判定されない場合(S2;N)、項目画像G13をスクロールさせる必要がないので、S3〜S10の処理は実行されず、S11の処理に移行する。この場合、フレームFは移動せず、項目画像G13は、直近の位置のまま移動しない。
以上説明した表示制御システム1によれば、項目画像G13がスクロールしてメニュー表示領域A12の端部に近づいた場合に、項目画像G13は、固定画像G14によって徐々に覆われるので、項目画像G13の一部のみを表示させるためにマスク処理を利用する必要がなくなり、表示制御装置10の処理負荷と消費電力を軽減することができる。
例えば、従来技術で説明した方法1は、メニュー表示領域A12が表示領域全体に設定されるので、項目画像G13がスクロールして外に出た部分はそもそも描画されず、マスク処理を利用しなくても当該部分を表示させないようにすることができ、処理負荷を抑えることができる。しかし、方法1は、表示領域全体がメニュー表示領域A12になるので、項目画像G13以外の画像を表示させようとしても、そのレイアウトが制約されるので、表示領域のレイアウトの自由度が低下してしまう。この点、従来技術で説明した方法2では、レイアウトの自由度が高くなるが、マスク処理が必要なので処理負荷が高くなってしまう。マスク処理により処理負荷が高くなるのは、先述したように、画素単位で描画対象を判定する必要があるからである。例えば、モバイルゲームの分野では、携帯端末のバッテリーの持ち時間が短くならないように、処理負荷の少ない方を採用することが多い。このため、メニュー表示に関しては、レイアウトの自由度を犠牲にして、処理負荷の少ない方法1を採用することが多かった。しかし、最近、ゲームコンテンツのリッチ化に伴い、レイアウトの自由度を高めたいという要望が高まっており、方法2を採用するモバイルゲームも多い。しかしながら、リッチなゲームコンテンツは、ゲーム全体で複雑な画像処理が実行されることが多く、もともとバッテリーの持ちが短くなりがちである。更に、携帯端末の表示部の高解像度化に伴い個々の項目も高解像度になる傾向があり、方法2による処理負荷が増大している。
上記のように、方法2のデメリットである処理負荷を軽減する方法が求められているところ、表示制御システム1では、方法2で実行される判定処理の回数を減少させる(ここでは、ポイント1と記載する。)とともに、それまで見えていた画像が突然消えるという見た目の不自然さをなくす表示とする(ここでは、ポイント2と記載する。)ことができる。具体的には、ポイント1では、画素単位で行っていた判定処理を、メニューの項目単位で行うようにする。このため、例えば、項目画像G13が一部でもメニュー表示領域A12の外に出たか否かが判定されることで、1つの項目についての判定処理を1回にすることができる。ポイント2は、ポイント1を実現することで生じる見た目の不自然さをなくすものである。具体的には、ポイント1により、各項目の一部分がメニュー表示領域A12の外に出たタイミングで当該項目全体を描画対象から除外すると、はみ出ていない部分は表示されているため、ユーザにとって当該項目が突然消去されたように見えてしまう。そこで、ユーザに各項目が消去されたことを見えないようにするための固定画像G14をメニュー表示領域A12の端部に重畳して表示することで、項目画像G13が消えたことを隠すためのカバーをかぶせた状態で項目画像G13が消えるようにしている。固定画像G14の大きさは、少なくとも1つの項目画像G13を覆い隠すことができる大きさであればよく、項目画像G13には、メニューに表示される内容を示す名称(例えば、選手名、総合値、レベルなど)が表示される。小手により、ユーザには、単なるメニューのヘッダなどに見える。
上記のように、例えば、先述したように、携帯端末に高解像度の画像を表示させる場合には、特に処理負荷と消費電力の問題が発生するが、表示制御システム1によれば、マスク処理が必要ないので、携帯端末に高解像度の画像を表示させる場合であったとしても、処理負荷と消費電力を軽減することができる。また、項目画像G13が見えているにも関わらず項目画像G13を表示の対象から除外すると、それまでは見えていた項目画像G13が突然見えなくなり、見た目上の違和感を生じさせる可能性があるが、項目画像G13は、固定画像G14に覆われた状態で、表示の対象から除外されるので、見た目上の違和感を抑えることもできる。また、もし仮に、表示領域全体(表示部の画面全体)をメニュー表示領域A12にしたとすると、項目画像G13がスクロールして外に出た部分はそもそも描画されないので、マスク処理を利用しなくても当該部分を表示させないようにすることができるが、この場合は、表示領域全体がメニュー表示領域A12になるので、項目画像G13以外の画像を表示させようとしても、そのレイアウトが制約されるので、表示領域のレイアウトの自由度が低下してしまう。この点、表示制御システム1によれば、メニュー表示領域A12を表示領域の一部としており、メニュー表示領域A12以外の部分(例えば、情報表示領域A10)を自由に使用できるので、上記説明した効果に加えて、表示領域のレイアウトの自由度を高めることもできる。
また、項目画像G13の端部を基準にしてメニュー表示領域A12の外に出たかを判定するので、当該判定処理を簡略化することができる。その結果、表示制御装置10の処理負荷と消費電力を効果的に軽減することができる。
また、固定画像G14を、項目画像G13を覆うことのできる最低限のサイズとすることで、メニュー表示領域A12のスペースを有効活用することができる。また、メニュー表示領域A12のサイズを小さくすることが可能になり、表示領域全体のうちメニュー表示領域A12以外の部分を広くとることができるので、表示領域のレイアウトの自由度を更に高めることができる。
また、メニュー表示領域A12の外に出たフレームFを、スクロールによる進行方向の逆側に移動させることで、不要になったフレームFを使いまわすことができ、設定するフレーム数を抑えることができるので、メモリ消費量を軽減することができる。また、フレームFを使いまわすことによって、設定するフレームFの数以上の項目を表示可能となる。例えば、項目画像G13を使ってゲームキャラクタの情報を表示する場合に、設定されるフレーム数が11個であり、50人のゲームキャラクタが用意されていたとすると、ゲームキャラクタの数よりも少ない11個のフレームを使いまわすことによって、50人分のゲームキャラクタの情報が表示させることができる。即ち、50個のフレームFを用意しなくても、50人分の情報を表示させることができる。
また、固定画像G14と、表示される項目画像G13の数よりも1つ多いフレームFと、により項目画像G13が表示の対象から除外される際の見た目上の違和感を抑えることができる。このため、設定するフレームFの数を、当該違和感を抑えるために必要最低限の数とすることができる。
また、項目画像G13を覆い隠すためだけの何の情報も含まない画像を使うわけではないので、ユーザにとって有益な情報を提示することができる。また、固定画像G14自身が項目画像G13に関する情報を案内しているので、固定画像G14とは別に当該情報を案内するための画像を表示させる必要がなくなるので、メニュー表示領域A12のスペースを有効活用することもできる。
また、表示対象に関連付けられた複数の情報の中から抽出された情報の内容を示す項目画像G13をスクロールさせる場合の見た目上の違和感を抑えつつ、表示制御装置10の処理負荷及び消費電力を低減させることができる。
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
例えば、実施形態では、メニュー表示領域A12の下端と表示領域の下端とが一致する場合を説明したが、メニュー表示領域A12は、表示領域の一部であればよく、実施形態の例に限られない。
図14は、変形例のメニュー画像G1を示す図である。図14に示すように、メニュー表示領域A12の上端と表示領域の上端とが一致しており、メニュー表示領域A12の下端と表示領域の下端とが一致していないようにしてもよい。この場合、メニュー表示領域A12の下端は、表示領域の下端から所定距離の画素(図14では、Y座標がY1とする。)となる。即ち、図14のメニュー表示領域A12は、(0,0)、(Xmax,0)、(0,Y1)、(Xmax,Y1)の4つの座標を頂点とする長方形の領域となる。例えば、項目画像G13が上方向にスクロールしてメニュー表示領域A12の上に出たとしても、そもそも表示領域の外に出るため、特に固定画像G14を上端に配置しなくても、メニュー表示領域A12の上に出た項目画像G13の一部だけを表示させることは可能である。
一方、項目画像G13が下方向にスクロールしてメニュー表示領域A12の下に出た場合は、実施形態とは異なり、表示領域の外に出るわけではないので、図14では、メニュー表示領域A12の下端に、固定画像G14が配置される。なお、項目画像G13が縦方向に並んで配置される点は、実施形態と同様である。図14の場合、項目画像G13が下方向にスクロールすると、固定画像G14の下に徐々に隠れる。そして、最も下にある項目画像G13の下端がメニュー表示領域A12の下に出ると、当該項目画像G13が表示の対象から除外される。この場合、実施形態と同様、最も下にあるフレームFが最も上に移動するようにしてよい。
図15は、変形例のメニュー画像G1を示す図である。図15に示すように、メニュー表示領域A12の上端及び下端と、表示領域の上端及び下端と、が両方とも一致しなくてもよい。この場合、メニュー表示領域A12の上端は、表示領域の上端から所定距離の画素(図15では、Y座標がY2とする。)であり、メニュー表示領域A12の下端は、表示領域の下端から所定距離の画素(図15では、Y座標がY3とする。)となる。即ち、図15のメニュー表示領域A12は、(0,Y2)、(Xmax,Y2)、(0,Y3)、(Xmax,Y3)の4つの座標を頂点とする長方形の領域となる。図15に示すように、固定画像G14A,G14Bは、それぞれメニュー表示領域A12の上端と下端の両方に配置されるようにしてよい。即ち、固定画像G14A,G14Bは、項目画像G13を挟み込むように配置されてよい。項目画像G13が縦方向に並んで配置される点は、実施形態と同様である。
図15の場合、項目画像G13が上方向にスクロールすると、固定画像G14Aの下に徐々に隠れる。そして、最も上にある項目画像G13の上端がメニュー表示領域A12の上に出ると、当該項目画像G13が表示の対象から除外される。この場合、実施形態と同様、最も上にあるフレームが最も下に移動するようにしてよい。また、項目画像G13が下方向にスクロールすると、固定画像G14Bの下に徐々に隠れる。そして、最も下にある項目画像G13の下端がメニュー表示領域A12の下に出ると、当該項目画像G13が表示の対象から除外される。この場合、実施形態と同様、最も下にあるフレームが最も上に移動するようにしてよい。
また例えば、メニュー表示領域A12の左右の端部と、表示部15の表示領域の左右の端部と、が一致する場合を説明したが、これらは一致している必要はない。即ち、メニュー表示領域A12は、左端及び右端の少なくとも一方が、表示領域の左端及び右端と一致していなくてもよい。例えば、メニュー表示領域A12の左右の端部が、表示部15の表示領域の左右の端部と項目画像G13の左右の端部との間に位置してもよいし、メニュー表示領域A12の左右の端部と、項目画像G13の左右の端部と、が一致してもよい。更に、項目画像G13が並ぶ方向は、横方もよい。この場合、項目画像G13は横方向にスクロールしてよい。固定画像G14は、メニュー表示領域A12の右端又は左端のうち、表示領域の端部と接していない端部に配置されるようにすればよい。他にも例えば、項目画像G13が斜めにスクロール可能とする場合には、項目画像G13を斜めに並べて配置し、固定画像G14をメニュー表示領域A12の端部に配置すればよい。更に、固定画像G14は、常に表示されているのではなく、ユーザが操作指示をした場合に表示されるようにしてよい。
また例えば、実施形態では、項目画像G13がメニュー表示領域A12の外に出たかを判定する際に、項目画像G13の縦方向の端部を基準としたが、判定部104の判定の基準となる位置は、端部に限られない。例えば、項目画像G13の縦方向の端部から所定距離以内の位置を基準としてもよい。また例えば、項目画像G13の縦方向の幅と固定画像G14の縦方向の幅とが同じ長さである場合を説明したが、これらの幅は異なっていてもよい。また例えば、実施形態では、項目画像G13の表示及びスクロールにフレームFが用いられる場合を説明したが、項目画像表示制御部101は、フレームFを用いずに項目画像G13を表示させてもよい。例えば、項目画像表示制御部101は、各項目画像G13の表示位置を示す情報をデータ記憶部100に記録しておき、後述するスクロール部103によるスクロールに応じて当該情報を更新するようにしてもよい。また例えば、フレームFの数がメニュー表示領域A12に表示される項目画像G13の数よりも1つ多い場合を説明したが、2つ以上多くてもよい。また例えば、固定画像G14が、項目画像G13の内容を案内するための画像である場合を説明したが、固定画像G14は他の内容を示す画像であってもよいし、特に内容を含まない画像であってもよい。また例えば、項目画像G13は、選手キャラクタに関連付けられた複数の項目のうち抽出された項目の情報を示す場合を説明したが、メニュー表示領域A12が十分な表示スペースを有する場合には、選手キャラクタに関連付けられた項目の全てを項目画像G13で表示させてもよい。
また例えば、上記説明した変形例の2つ以上を組み合わせてもよい。
また例えば、項目画像表示制御部101、スクロール部103、判定部104、除外部105、及び固定画像表示制御部102がサーバ30で実現されるようにしてもよい。この場合、これら各機能は、サーバ30の制御部31を主として実現され、サーバ30が本発明に係る表示制御装置に相当する。サーバ30は、上記説明した処理を実行することでメニュー画像G1を生成し、ユーザが操作するコンピュータに配信することになる。ユーザが操作するコンピュータは、メニュー画像G1の画像データを受信し、メニュー画像G1を表示する。ユーザが操作指示を当該コンピュータに入力した場合は、サーバ30にその旨が通知され、サーバ30において、項目画像G13のスクロールが行われるようにすればよい。
また例えば、表示制御装置10とサーバ30とで各機能が分担されてもよい。例えば、判定部104がサーバ30で実現される場合には、表示制御装置10からサーバ30に項目画像G13のスクロール後の位置が送信され、サーバ30において判定部104の判定処理が実行され、サーバ30から表示制御装置10に対して判定結果が送信されるようにしてもよい。また例えば、判定部104が表示制御装置10で実現されて、他の各機能がサーバ30で実現される場合には、上記とは逆に、判定部104の判定結果が表示制御装置10からサーバ30に送信されるようにすればよい。
また例えば、サッカーゲームが実行される場合を説明したが、他のゲームに本発明に係る処理を適用してもよい。例えば、サッカーゲーム以外のスポーツゲーム(例えば、野球、テニス、アメリカンフットボール、バスケットボール、バレーボール等を題材としたゲーム)に本発明に係る処理を適用してもよい。また例えば、スポーツゲーム以外にも、アクションゲーム、ロールプレイングゲーム、シミュレーションゲーム、カードバトルゲーム、又は育成ゲームなどのように、ゲーム形式・ジャンルを問わず種々のゲームに本発明に係る処理を適用してもよい。
また例えば、ゲーム以外に本発明に係る処理を適用してもよい。例えば、スマートフォンの設定におけるメニュー、ソーシャルネットワーキングサービスにおけるメニュー、音楽プレーヤにおけるメニューなどの種々のメニューにおいて、本発明に係る処理を適用可能である。
[6.付記]
以上のような記載から、本発明は例えば以下のように把握される。
1)本発明の一態様に係る表示制御装置(10)は、表示領域の一部であるメニュー表示領域内に、複数の項目画像を、所定方向に並べて表示させる項目画像表示制御手段(101)と、ユーザによる操作指示に応じて、前記複数の項目画像を前記所定方向にスクロールさせるスクロール手段(102)と、前記スクロール手段(102)により前記複数の項目画像が前記所定方向へスクロールされることで、何れかの前記項目画像の一部が前記メニュー表示領域の外に出たかを判定する判定手段(103)と、前記判定手段(103)により前記メニュー表示領域の外に一部が出たと判定された前記項目画像を、前記項目画像表示制御手段(101)により表示させる対象から除外する除外手段(104)と、前記メニュー表示領域における前記所定方向の端部に、少なくとも1つの項目画像を覆い隠すことができる大きさの固定画像を重畳して表示させる固定画像表示制御手段(105)と、を含むことを特徴とする。
8)本発明の一態様に係る表示制御システム(1)は、表示領域の一部であるメニュー表示領域内に、複数の項目画像を、所定方向に並べて表示させる項目画像表示制御手段(101)と、ユーザによる操作指示に応じて、前記複数の項目画像を前記所定方向にスクロールさせるスクロール手段(102)と、前記スクロール手段(102)により前記複数の項目画像が前記所定方向へスクロールされることで、何れかの前記項目画像の一部が前記メニュー表示領域の外に出たかを判定する判定手段(103)と、前記判定手段(103)により前記メニュー表示領域の外に一部が出たと判定された前記項目画像を、前記項目画像表示制御手段(101)により表示させる対象から除外する除外手段(104)と、前記メニュー表示領域における前記所定方向の端部に、少なくとも1つの項目画像を覆い隠すことができる大きさの固定画像を重畳して表示させる固定画像表示制御手段(105)と、を含むことを特徴とする。
9)本発明の一態様に係るプログラムは、1)〜7)の何れかに記載の表示制御装置(10)又は8)に記載の表示制御システム(1)としてコンピュータを機能させる。
10)本発明の一態様に係る情報記憶媒体は、1−9)のプログラムを記録したコンピュータで読み取り可能な情報記憶媒体である。
1)又は8)〜10)に係る発明によれば、項目画像がスクロールしてメニュー表示領域の端部に近づいた場合に、項目画像は、固定画像によって徐々に覆われるので、項目画像の一部のみを表示させるためにマスク処理を利用する必要がなくなり、表示制御装置の処理負荷と消費電力を軽減することができる。例えば、先述したように、携帯端末に高解像度の画像を表示させる場合には、特に処理負荷と消費電力の問題が発生するが、1)又は8)〜10)に係る発明によれば、マスク処理が必要ないので、携帯端末に高解像度の画像を表示させる場合であったとしても、処理負荷と消費電力を軽減することができる。また、項目画像が見えているにも関わらず項目画像を表示の対象から除外すると、それまでは見えていた項目画像が突然見えなくなり、見た目上の違和感を生じさせる可能性があるが、項目画像は、固定画像に覆われた状態で、表示の対象から除外されるので、見た目上の違和感を抑えることもできる。また、もし仮に、表示領域全体(表示部の画面全体)をメニュー表示領域にしたとすると、項目画像がスクロールして外に出た部分はそもそも描画されないので、マスク処理を利用しなくても当該部分を表示させないようにすることができるが、この場合は、表示領域全体がメニュー表示領域になるので、項目画像以外の画像を表示させようとしても、そのレイアウトが制約されるので、表示領域のレイアウトの自由度が低下してしまう。この点、1)又は8)〜10)に係る発明によれば、メニュー表示領域を表示領域の一部としており、メニュー表示領域以外の部分を自由に使用できるので、上記説明した効果に加えて、表示領域のレイアウトの自由度を高めることもできる。
2)本発明の一態様では、前記判定手段(103)は、何れかの前記項目画像のうちの前記所定方向の端部が前記メニュー表示領域の外に出たかを判定する、ことを特徴とする。
2)の態様によれば、項目画像の端部を基準にしてメニュー表示領域の外に出たかを判定するので、当該判定処理を簡略化することができる。その結果、表示制御装置の処理負荷と消費電力を効果的に軽減することができる。
3)本発明の一態様では、前記項目画像の前記所定方向の幅と、前記固定画像の前記所定方向の幅と、は同じ長さである、ことを特徴とする。
3)の態様によれば、固定画像を、項目画像を覆うことのできる最低限のサイズとすることで、メニュー表示領域のスペースを有効活用することができる。また、メニュー表示領域のサイズを小さくすることが可能になり、表示領域全体のうちメニュー表示領域以外の部分を広くとることができるので、表示領域のレイアウトの自由度を更に高めることができる。
4)本発明の一態様では、前記項目画像表示制御手段(101)は、前記メニュー表示領域内に、複数のフレームを、前記所定方向に並べて設定し、前記複数の項目画像を、当該設定された複数のフレームにそれぞれ関連付けるフレーム設定手段(101A)を更に含み、前記スクロール手段(102)は、前記複数の項目画像と共に、それぞれの項目画像に関連付けられた複数のフレームをスクロールさせ、前記フレーム設定手段(101A)は、何れかの前記フレームに関連付けられた項目画像が前記メニュー表示領域の外に出た場合、当該フレームを、前記所定方向のうちスクロールによる進行方向の逆側に移動させ、当該フレームに関連付けられていた項目画像とは異なる項目画像と関連付ける、ことを特徴とする。
4)の態様によれば、メニュー表示領域の外に出たフレームを、スクロールによる進行方向の逆側に移動させることで、不要になったフレームを使いまわすことができるので、設定するフレーム数を抑えることができる。その結果、表示制御装置の処理負荷や消費電力を軽減するとともに、メモリ消費量も軽減することができる。また、フレームを使いまわすことによって、設定するフレームの数以上の項目を表示可能となる。例えば、項目画像を使ってゲームキャラクタの情報を表示する場合に、設定されるフレーム数が11個であり、50人のゲームキャラクタが用意されていたとすると、ゲームキャラクタの数よりも少ない11個のフレームを使いまわすことによって、50人分のゲームキャラクタの情報が表示させることができる。即ち、50個のフレームを用意しなくても、50人分の情報を表示させることができる。
5)本発明の一態様では、前記フレーム設定手段(101A)は、前記メニュー表示領域に表示される項目画像の数よりも1つ多い数の前記フレームを設定する、ことを特徴とする。
5)の態様によれば、固定画像と、表示される項目画像の数よりも1つ多いフレームと、により項目画像が表示の対象から除外される際の見た目上の違和感を抑えることができる。このため、設定するフレームの数を、当該違和感を抑えるために必要最低限の数とすることができる。
6)本発明の一態様では、前記固定画像は、前記複数の項目画像が示す内容を案内するための画像である、ことを特徴とする。
6)の態様によれば、項目画像を覆い隠すためだけの何の情報も含まない画像を使うわけではないので、ユーザにとって有益な情報を提示することができる。また、固定画像自身が項目画像に関する情報を案内しているので、固定画像とは別に当該情報を案内するための画像を表示させる必要がなくなるので、メニュー表示領域のスペースを有効活用することもできる。
7)本発明の一態様では、各項目画像は、当該項目画像に情報が表示される表示対象に関連付けられた複数の情報の中から抽出された情報を示す画像である、ことを特徴とする。
7)の態様によれば、表示対象に関連付けられた複数の情報の中から抽出された情報の内容を示す項目画像をスクロールさせる場合の見た目上の違和感を抑えつつ、表示制御装置の処理負荷及び消費電力を低減させることができる。