キャラクタイメージの背景処理

現在作成しているゲームは、帆船が侵攻する
ゲームです。そこで必要になったのが、透過
GIFです。今までは描画関数でキャラを
描いていたのですが、 イメージ画像を
多用することにしたので画像の重なり処理が
必要になったのです。図の例は背景処理して
いない帆かけ舟に背景処理した大砲の弾が
命中するところです。
画像

VBなどでは、そういう重なりを処理する
関数があるらしいですが、Java スクリプトは
ブラウザで動作するので、Web 素材のような
透過GIFだけで済むことが分かりました。
その仕組みについて調べてみました。

VBで解説してる人によると、XOR論理演算で
背景色をマスキングして、その色の画素は
背景色の方を表示するということだそうです。
元画像かマスク画像のどちらかが背景色なら
背景色、両方とも背景色の場合は
?という意味でしょうか。

http://rucio.a.la9.jp/main/technique/teq_13.htm

GIFの方は、ヘッダに透過情報欄があり、
GIF89.a という規格から採用されました。

http://www.tohoho-web.com/wwwgif.htm

ヘッダの拡張領域に情報があります。
Transparent Color Flag(1 Bit)
透過処理を行う場合は1、行わない場合は0
Transparent Color Index(1 Byte)
透過処理する色のインデックス

その意味では、ブラウザの規格に採用された
ので使えるということですが、1995年
ぐらいからのブラウザでGIFが採用されたと
いうことなので、5年ぐらい評価期間が
あったのでしょう。

自分でサブルーチンを作成するのは、
非効率なので、汎用画像関数として使えて
コードがサッパリしました。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック