Javaアプリ事始め 第5回:
2Dグラフィックスしよう(1/2)

J-フォンのパケット通信対応51シリーズでは,Java機能が大きく強化され,草の根の開発者でもJavaアプリの作成・公開が可能になっている。今回は,2Dスプライトについて解説する。(毎週金曜日更新)

【国内記事】 2002年4月5日更新

Javaアプリの2Dグラフィックスとは?

 2Dグラフィックスとは,簡単にいえば平面上(2次元)への描画のことです。ある位置に何かキャラクターを表示したり,図形を描画したりする基本的な描画から,何枚もの画像を重ね合わせてそれらの重ね合わせ順を変化させつつ独立して移動させたりする応用的な描画まで,幅広い表現が考えられます。

 Javaアプリでは2種類の2Dグラフィックスの方法があります。1つは画像や図形を直接描画する方法,もう1つは2Dグラフィックス専用のクラスとメソッドによって描画する方法です。特に今回解説する後者を駆使することによって,高度な2Dグラフィックスを実現することができます。

 高度な2Dグラフィックスを実現する概念として,スプライト描画というものがあります。スプライトを使用することで,ある図形や画像を高速で描画させたり,思ったとおりに複数の画像を重ね合わせたりすることができます。

スプライト描画とは?

 そもそもスプライトとは何かというと,移動することが容易な画像オブジェクトのことです。ゲームプログラミングでは,スプライトに敵・味方キャラクターなどを設定して,自由に移動させたり,何枚ものスプライトを切り替えてアニメーションさせたりします。

 スプライト描画とは,スプライトデータと呼ばれる専用フォーマットのデータを描画することです。スプライトデータは,高速にデータを処理するために,8×8ピクセルの矩形で各画素が256色のフォーマットになっています。このデータを描画する際に以下のような操作を容易に行うことができます。

  • 上下反転
  • 左右反転
  • 回転
  • カラーパレットによる色指定

 スプライト描画は,スプライトデータをそのまま画面に描画するのではなく,いったん仮想画面と呼ばれるエリアに描画し,それをフレームバッファと呼ばれるエリアに転送します。

 あるいは仮想画面を使わず,直接フレームバッファに描画します。その後さらに必要なスプライトデータをフレームバッファ上で重ね合わせ,最後に実際の携帯電話の画面に転送するという処理を行っています。

 仮想画面は実画面より大きいエリアが想定されていて,Javaアプリでは実際には背景(Background)といういい方をします。ちなみに仮想画面は1つしか存在しません。

 スプライトに色をつける場合には,カラーパレットと呼ばれる色データを設定する必要があります。カラーパレットは256個まで登録でき,それぞれ24ビットで表現されるRGB値を指定します。定義したカラーパレットのインデックスをスプライトデータで指定することで,その画素に色をつけることができます。

スプライトを用いたグラフィックスのデザイン

 スプライトを用いたグラフィックスのデザインで重要なのは,何をどのように動かすかです。1つのスプライトを単に移動・反転・回転させるだけなのか,複数のスプライトで1つのキャラクターを構成するのか,アニメーションさせるために複数のスプライトを切り替えるのか,複数のスプライトを重ね合わせて表示させるのか,それぞれスプライトの数や描画の順番に違いが出ます。

 スムーズで凝ったアニメーションを実現するためには,それなりの数のスプライトを用意する必要があります。重ね合わせをする場合には,スプライトデータ上透過させたい画素をあらかじめ設定しておく必要もあります。

2Dグラフィックスの制限

 スプライトの数には制限があります。同時に定義できるスプライトデータは256個までです。カラーパレットも同時に定義できるのは256色までです。それ以上の別のスプライトデータやカラーパレットを使いたい場合には,使用中のスプライトデータをいったん破棄し,新たなスプライトデータを設定するといった切り替えが必要です。実際には切り替え処理は実装が煩雑であり処理に時間がかかるので,制限範囲内でまかなうことがほとんどです。

 スプライトデータは8×8ピクセルなので,元画像(GIFやPNGなど)からスプライトデータを作成するには,ツールなどによって自動変換できることが望ましいです。本来公式開発ツールとして何か存在していると開発も効率化されるのですが,存在していません。

 小さなスプライトデータであれば,人手を使ってスプライトデータを打ち込むことも可能ですが,大きなデータになるとさすがに手入力は辛い作業になってしまいます。プログラムに自信のある方は,コンバートツールの作成に挑戦してみるのもいいでしょう。画素と色の情報さえ分かれば8×8に分割していくだけですので,それほど難しいものではありません。

前のページ | 1/2 | 次のページ

[コネクト 伊藤広明,ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.



モバイルショップ

最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!

最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!