2012/09/05(水) [n年前の日記]
#1 [flash][starling] Starlingを再勉強中
先日、
_Texture Atlas用の画像とxmlを生成するPythonスクリプト
を書いたので、ようやく本来の Starling の勉強を再開。
Starling の MovieClip を使えば、Texture Atlas の画像とxmlを使って、パラパラアニメ(?)が表示できるのだけど。どうも表示がおかしい。元画像をそのまま並べた画像と、元画像の余分な部分を削除(いわゆるtrim)して配置した画像の2種類で表示してみたら、表示結果が違っていて。前者は問題無いけれど、後者はコマによって画像が拡大されて表示されてしまう。どうも、MovieClip で表示する際に使う領域 ―― uv座標領域とでも言えばいいのかな ―― は、全て同じサイズになってないといけない模様。
Starling に渡す xml では、そのあたりも規定してるようで。 _TextureAtlas - Starling Framework Reference を見ると、frameX, frameY, frameWidth, framwHeight という要素?で指定するらしい。が、それぞれが何の値を示しているのかよく分からず。
何にせよ、先日書いたスクリプトは、--trim をつけないで使う分には問題無いけど、--trim を使うなら修正が必要だなと。
全然関係ないけど。Flash CS6 には、Texture Atlas用の画像とxmlを生成する機能が追加されているらしいので、Flash CS6 を持っている人なら、このへん全然関係ない話。
Starling の MovieClip を使えば、Texture Atlas の画像とxmlを使って、パラパラアニメ(?)が表示できるのだけど。どうも表示がおかしい。元画像をそのまま並べた画像と、元画像の余分な部分を削除(いわゆるtrim)して配置した画像の2種類で表示してみたら、表示結果が違っていて。前者は問題無いけれど、後者はコマによって画像が拡大されて表示されてしまう。どうも、MovieClip で表示する際に使う領域 ―― uv座標領域とでも言えばいいのかな ―― は、全て同じサイズになってないといけない模様。
Starling に渡す xml では、そのあたりも規定してるようで。 _TextureAtlas - Starling Framework Reference を見ると、frameX, frameY, frameWidth, framwHeight という要素?で指定するらしい。が、それぞれが何の値を示しているのかよく分からず。
何にせよ、先日書いたスクリプトは、--trim をつけないで使う分には問題無いけど、--trim を使うなら修正が必要だなと。
全然関係ないけど。Flash CS6 には、Texture Atlas用の画像とxmlを生成する機能が追加されているらしいので、Flash CS6 を持っている人なら、このへん全然関係ない話。
[ ツッコむ ]
#2 [python] PILを勉強中
透明色を指定したインデックスカラーのPNG画像を、背景色が青の新規画像に貼り付け(paste)しようとしたのだけど。透明部分は、青になるはずなのに、元画像の透明色で塗り潰されてしまってハマる。
_python - Transparent PNG in PIL turns out not to be transparent - Stack Overflow を見て解決。
_python - Transparent PNG in PIL turns out not to be transparent - Stack Overflow を見て解決。
from PIL import Image img = Image.open(basefile) layer = Image.open(layerfile) # this file is the transparent one print layer.mode # RGBA img.paste(layer, (xoff, yoff), mask=layer) # the transparancy layer will be used as the mask img.save(outfile)maskを指定すれば良かったのか…。
[ ツッコむ ]
以上、1 日分です。