9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

StarlingでBlendModeを使った際の落とし穴

Posted at

はじめに

FlashのStage3Dを活用したライブラリである、StarlingフレームワークでのTipsのご紹介です。
エフェクトなどの表現を作る際、レイヤーのBlendModeをうまく活用すると効果的だと思いますが、注意しないと思わぬ落とし穴に落ちてしまうことがあります。

問題点(落とし穴)

テクスチャにATFファイルを使いBlendModeを使用すると、下図のようにアルファ部分が黒くなってしまうことがあります。左側の星がその症状、右側の星は対処済みのものです。

capture.png

発生条件

  • Starling 1.4.1 (2013年11月5日での最新バージョン)
  • モバイルデバイスでの再生 (PCでは発生なし)
  • ATFファイルをテクスチャに使用する
  • BlendModeを使用する
  • BlendModeを適用していなレイヤーにアルファを適用している
  • Android 4.1.1 / iOS 6.1.3 / iOS 7.0.3で確認済。

解決策

  • カスタムブレンドモードを作成して使用する。
// カスタムブレンドモードを作成
BlendMode.register("CUSTOM_ADD", Context3DBlendFactor.SOURCE_ALPHA, Context3DBlendFactor.ONE);

※使うときは、お好みのMyBlendModeクラスを作るといいかもです。

まとめ

  • ATF の作成の際、設定を色々変えてテストしてみましたが同様の症状でした。(-0, -2, -4, -c など) おそらく機種依存の問題ではないと思います。
  • 沢山のオブジェクトに対してBlendModeを使う際は親レイヤーに一括して適用した方がお得です。
  • アルファとBlendModeはつい一緒に使いたくなりますが、極力避けた方が色々な箇所でいいコトがありそうです。スケールアニメーションや、スプライトシートを活用するといいでしょう。
  • BlendModeは使い方を間違えると諸刃の剣となるでしょう。

参考

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?