メイン

2008年05月21日

ADCのこくばん記事

こくばん.inの技術記事がAdobeデベロッパーセンターに掲載されました。

こくばん.in:リアルな書き味と消し味を実現するテクニック


ビットマップデータのdraw時におけるmatrixの作り方についてかなり噛み砕いて説明したにも関わらず、これで中級!?なんて言われていますが上級はもっとすごいと思います。たとえばabcとか。


高速で描いたり消したりしているとものすごい勢いでブラー処理とdrawが行われるため、ペンタブレットだと描画の遅れを感じることがあります。
普通のお絵かきサイトよりもマウスで描きやすいという意見もあり、そんな逆転現象が起こっているのが興味深いですね。
今後FlashPlayerの描画性能が上がった時に「描きにくくなった」という意見が出そうで怖いw

2008年01月11日

Colin MoockとActionScriptな人々

今月15日にAdobe Presents コリン・ムックの「今から始める ActionScript 3.0 - WORLD WIDE TOUR 」が行われますが、その翌日16日に日本のActionScriptを見せつけてやるぜという名目の技術系イベントが開催されます。
まだ若干名リスナーとしてですが募集しているので、ActionScriptの濃ゆい質問をコリン・ムックにぶつけたいぜという人は下記の引用を読んで是非応募をば!

応募数が定員に達したため、参加申し込みは締め切られました。

当日はスピーカーとして参加します。
題目は「BitmapDataで面白エフェクト」ですが、面白くなければ変えるかもしれません(笑)
FlashはFlashらしく、見た目でも楽しめるものにする予定。

新年さっそく、ActionScript の"濃い"技術系イベント開催のご案内です。

AS3 エンジニア必携の書「Essential ActionScript 3.0」
http://www.amazon.co.jp/dp/0596526946
の著者の Colin Moock さんが来日されています。
ブログはこちら: http://moock.org/blog/

アドビのセミナー講師としてワールドツアーを回っているそうです。
http://www.event-web.net/as3/
この1月15日(火)の無料セミナーは既に満員御礼なのですが、このセミナーとは反対に、一線の日本人 ActionScripter から発表
し、Colin Moock を国内先端 ActinoScript で迎撃(歓迎)するイベントを追加開催することになりました。(ありがとう!
Adobe!)

●日時&場所
1月16日(水)18:30~20:40
アドビオフィス
東京都品川区大崎1-11-2 ゲートシティ大崎イーストタワー19F(兼、集合場所)

●当日のタイムテーブル
18:30 開場、事務局連絡、はじめに
18:40 Colin Moock 氏講演(30分)
19:10 日本人ActionScripters発表&ライトニングトーク&休憩(トータル70分程度)
20:20 Colin Moock にコレを聞きたい Q&A(20分)
20:40 終了。解散

●日本人ActionScripters発表&ライトニングトーク内容(予定)
・yossyさんhttp://www.be-interactive.org/
- SparkProject
・むらけんさんhttp://www.muraken.biz/ と teraさんhttp://www.trick7.com/blog/
- Gainer + AIR + Wiiリモコン + ヘルメット
・むねゴンさんhttp://void.heteml.jp/blog/
- BitmapData で面白エフェクト
・id:secondlifeさんhttp://d.hatena.ne.jp/secondlife/
- AS3/Flex で国際化アプリケーションを作る + その他いろいろ
・ワンパク 阿部さん
- ワンパク流ASフレームワーク
・小林悠さんhttp://d.hatena.ne.jp/yukoba/
- Flash でも Ruby つかえるよ

FLASHer 向けでなくて、ActionScripter 向けのイベントです。伝説のイベント『ActionScript 的超絶技巧発表会』
の AS クリエイタや、同じ ECMAScript 陣営の Shibuya.js からも出撃!濃い技術ネタにご期待ください♪

ただ、日程が急なこともあり、大きな会場が取れなかったそうなので、残念ながら、Adobe のサイトでの告知や、公式サイト等はございません。この告
知記事を見て、我こそはという AS ラヴな方、お知らせ下さい。

●参加エントリーについて
参加希望申し込みは以下のメールアドレスからお願いいたします。
宛先メールアドレス: colin-moock-20080116@googlegroups.com
メールには「参加希望です」というフレーズとあわせて:
・希望氏名&所属(必須)
・メールアドレス(必須)
・ご自分のサイトURL等(推奨)
・最近の ActionScript 作品orブログ記事 URL(推奨。あればAS3)
・コリンさんへの質問(必須)
をご記入ください。

既に現在、日本人発表者とコリンさんへの濃ゆい質問を事前打診した都合上、その方々にもご来場いただく事になっており、残り募集枠は限られております。
すいません!!おそらく11日中に定員に達するものと思われます。エントリーはお早めに!
申し込みは先着順にて決定いたしますが、運営者も人の子、ActionScript への愛を感じる申し込みや、コリンさんへのコアな質問や、質問内容
を英語でも用意してくださるような情熱的な ActionScript 愛好家さんからの申し込みを優先させていただくこともあるかと思います。ご容赦
くださいませ。

受講当選者には1月15日18時迄に受講決定メールをお届けします。

尚、当日は参加できない方も、「Q&A」コーナーに参加いただけます。
「どうやって書くのがクール?」とか「AS のここが不便だ」とか Colin Moock に投げかけたい技術的な質問・メッセージを募集中です。
どしどしご応募下さい。colin-moock-20080116@googlegroups.com

2007年12月22日

ビットマップキャッシュの注意点

久々に Flash/ActionScript に関するエントリ。
意外とあまり語られていないビットマップキャッシュの注意点について。

cacheAsBitmapプロパティによって設定できるビットマップキャッシュは文字通り、シンボルをビットマップとしてキャッシュすることで平行移動時の描画負荷を格段に下げることのできる機能です。
拡大/縮小したり回転させたりとシンボル自体の外形を変化させるとその都度キャッシュ処理が行われるため、毎フレーム変化するような場合はメモリ消費が激しくなり結果的に負荷が高くなってしまいます。


と、ここまではよく知られている内容。


実はマスクと併用してはいけません

マスクされているシンボル内ではどこに置こうが毎フレーム再キャッシュ対象になります。
たとえマスク領域内にシンボル全体が表示されていようと変わりません。
試しにシンボル3000個を動かすサンプルを作ってみたところ、マスクをかけた状態では逆に重くなりました……かなりガビガビ。
おそらくシンボルごとにマスクによる表示範囲を再計算しているのでしょうが、ヘルプにも載っていない盲点だったりするので注意が必要です。

どうしても表示範囲を限定したい場合は、その領域だけをくり抜いた巨大なシェイプを上に重ねれば代用できます。
これだとマスクによる再描画処理は発生しないので、安心してビットマップキャッシュを設定することができます。
ものによってはレイヤー構造がかなり複雑になるのでバッドノウハウ気味ですが、動きの小気味よさを追求するならビットマップキャッシュの有無に関わらずマスクは極力避けた方がいいでしょう。


グラデーションマスクをかけたい場合は逆にビットマップキャッシュが必須なので、この限りではありません。
大量のシンボルを平行移動させるような状況の時だけ意識すればいいと思います。


[追記]
ビットマップキャッシュが自動的にONになるフィルタ系は総じて上記の影響受けます。
移動するシンボル内にフィルタ付のシンボルを置いても同じです。
とにかくマスク内ではどうあがいてもダメっぽい。

2007年10月01日

ドキッ!変態だらけのActionScript的超絶技巧発表会

超絶技巧+発表必須というシビアな参加条件の「ActionScript的超絶技巧発表会」に参加してきました。
どんな感じだったのかはてっく煮ブログのエントリにまとめられているので、そちらをご覧ください。

まーみんな変態というか「こんなのにまじになっちゃってどーすんの」と言わんばかりのハックぶりでポカーンとしたりさせたり発表してる自分まで危うくポカーンとしかねない勉強会でしたが、何よりも刺激受けまくりでこれだからやめられないぜ!と再確認。

で、何を発表したかというと以前公開したフィールドマップジェネレータでさりげなく使っているアルゴリズムの説明。
ピクセル走査を一切行わず、画像処理だけで全部やっちゃうという無茶っぷりを晒してみましたが、あの説明と資料でその場で理解できた人がどれくらいいたのか正直気になるところ。


発表資料をそのまま公開しても全く理解できないこと請け合いなので、口頭で説明した部分を追記しました。

発表資料
(左右カーソルキーでページ送り)

ソースはもうしばらくお待ちください。
分からないところがあったらコメントやTwitterでどしどし受け付けます。

2007年06月19日

invisibleのススメ

こないだの勉強会で出した小ネタ紹介をば。

as1ネタになりますが、表示/非表示を制御する _visible の裏プロパティとして新たに _invisible を定義します。
分岐条件などでわざわざ !_visible のように否定をとるような状況が続くとコードが汚く見えたので、なんとなく用意してみました。


最初から prototype プロパティとして登録してしまってもいいのですが、好みの問題があるので以下のような prototype プロパティ追加用メソッドを用意しておきます。

function registerInvisible( target ){
    var setter = function( value ){
        this._visible = !value;
    }
    var getter = function(){
        return !this._visible;
    }
    target.addProperty("_invisible", getter, setter );
    ASSetPropFlags( target, "_invisible", 1 ); // 列挙ロック
}


たとえばムービークリップ全てに _invisible プロパティを追加したい場合は、以下のように記述します。

registerInvisible( MovieClip.prototype );


ちなみに as3 なら普通に public なメンバとして用意して、getter と setter を定義すればおしまい。
実行中に追加定義するには Proxy クラスを継承しなければいけないとか色々ややこしいので、最初から定義しておいた方がよさそうです。

_invisible なんて可読性下がるぜ!なんてツッコミは大歓迎。
はっきりいって好みの問題です。