■Flashのビットマップ関連のバグ(もしくは仕様)

パブリッシュ設定をFlash6及びそれ以前のバージョンした場合は、Flashでビットマップ画像を扱う時に注意する点があります。
1つは、基準点の縦横ラインが二重化されてしまうこと。
もう1つは、15bit(16bit)カラーモード時に自動的にディザがかかる場合とかからない場合があること。


まず、基準点の縦横ラインが二重化される現象を説明します。

赤いエッジを持つ最小チェッカー模様の絵を表示してみます。
この絵は非常に現象を確認しやすいです。

分かりやすいように2倍の大きさで表示していますが、1dot単位のチェッカー模様です。

これをムービーにするとこのようになってしまうことがよくあります。

オブジェクト同士の重ね合わせや、アルファや着色等の効果をつけた場合によく起こります。
普通の絵の場合、やや膨らんだように見えてしまいます。

これを回避するために、ビットマップは必ずシンボル化し、基準点は右下にするわけです。
中心点までが左下である必要はないので、中心点は扱いやすい位置にに移動しておくのが良いでしょう。




次に15bit(16bit)カラーモード時の自動的なディザの説明をします。

白から黒へのグラデーション画像を2本表示しています。
左が全く効果をつけていないもので、右が何らかの効果をつけたものです。

左は段階が分かってしまいますが、右はディザが入ってなめらかなグラデーションになっています。

拡大、縮小、回転、着色、アルファ等ほとんどの効果でディザが入りますが、何もしていないとディザが入りません。

これを回避するために、そのまま表示するだけの場合でも、カラー効果として「高度な設定」のAのみ+1するわけです。
MX2004では、「詳細」になっています。


なぜこの効果を入れるかというと、この効果が一番元画像を変化させないからです。
(アルファ100% や、着色0% ではディザが入ってくれません)

以前はBを+1する方法を紹介していましたが、Flash8以降で不具合が出るようになりました。
(絵同士が重なる時に不具合が起こるバグ→こんな感じ

15bit(16bit)カラーモード時の不具合はビットマップの扱い以外でも起こります。
アルファゼロでも輪郭が見える、マスクレイヤーの範囲外でも輪郭が見える...などです。
このような場合は、
レイヤーの最上層にステージを完全に覆うようなグラフィックオブジェクトを置き、
そのグラフィックオブジェクトのアルファをゼロにする。
これで解消できます。
この対処を行えば処理は重くなりますが、ビットマップに関して個々にA+1の処理をする必要は無くなります。

検索エンジン用ワードセット:16ビット 15ビット highcolor bug アルファ alpha 変色

< Flashテクニックのページへ戻る

[スポンサーPR] 動くエロ漫画フルボイスモーションコミック