- 2009年2月 1日 19:38
つづいて、2日目です。
2/2 12:05 追記
Spark Projectで齋藤栄二氏(e_s_jp)とイズカワタカノブ氏(soundkitchen)の紹介している情報が逆でした。イズカワタカノブ氏 ( soundkitchen ) は SWFWheel の方、齋藤栄二氏 ( e_s_jp ) が mxp 紹介した方でした、すいません><;指摘ありがとー、taiga!
L-4 失敗事例に学ぶFlexプロジェクトの第一歩 NECシステムテクノロジー株式会社 坂田泰平氏
失敗プロジェクトとは、Quality, Cost, Deliveryがまず実現できていないと失敗になってしまう。そうでなくても、終わった後、開発者が疲れてしまって辞めっちゃったりするのも失敗だよね。
高コストの原因、Flexはなんでもできる。よって要求のハードルが高い。要求が次々にでてきて終わらない。やり直しが増える。あやふやなまま進めがちである。
品質問題。スクリプトでなんとなく作れる。なんとなくだからトラブルに対応できなくてバグが分からない。よって遅延。Flex初心者がプロジェクトにありがち。
HTMLですでに運用されている場合、Flex化するときに「もうできてるじゃないですか」となって、物事が決まらない。よって遅延。
などなど、色々な事例を交えて失敗プロジェクトを分析していました。
・できるかできないのか?
・無理がないものなのか?
・べからず設計をしていないか?性能に問題がないのか?
・メモリーリークになりそうなコーディングをしていないか。(ガベコレとか強参照・弱参照)
・ツールを使いこなす。traceだけに頼るやり方は古い。プロファイラやデバッガを効率よく使いましょう。またプロファイラは1シーンだけの検証じゃダメ。多くとって検証しよう。
・QDB繰り返しテスト・Flex評価ツールも効果的。
最終的にiBizBlockとかに落ち着く話だった。
iBizBlock
http://www.necst.co.jp/product/ibiz/
大林組の事例。
http://www.necsoft.com/event/2008/0208-adobeflex.html
映像とプログラミング 中村勇吾氏
ActionScriptでなくて、デザインとは何かの伝え方を考えています。今日はアニメーションを軸にお話します。アニマ。
あとは、ユニクロなどを例に挙げた裏話などなど。フォントパーク。人力駆動でなんとなくできていくUI。わざと制約を作る。時という情報を伝える「時計」っていいよね。
最後に見た「骨展」のサイトで使われるという、物体崩壊プログラムが面白かった。
以下印象に残った言葉。
「WEBを何も知らない人に伝えるときにホームページとかサイトとか色々な呼称ったえるけどよく考えて言葉を選ぼう。そうすることで言葉が力を持ち広がりが出てくる。」
「WEBの中で考えるとWEBの中で止まってしまう。俯瞰してみるのは大事!」
「広告ECサイトを作るんじゃなくてWEBのアニメーションを考えると割とうまく行きます。」
「ポニョは手書き。複雑で豊穣。FFはトゥイーン。単純で平板。」
[Flash]アイデアの実装:コントロールと最適化 Roxik 城戸雅行氏
主に3Dの実装に関して。座標変換とその管理方法。
モーションとレンダリングを分離する。分かりやすくプレゼンするために、変数名に日本語を使っていた。
また、後半の軽量化の方法は、パターン化できる動きはビットマップにレンダリングしたほうがいいということ。例えば、360度回転ぶん・3Dでもループする部分はレンダリングしきっておくとか対称なオブジェクトは半分だけレンダリングするとか。
EcoだZooで使われていたLightwaveでFlashの3D管理を出来る城戸さん独自のツールは圧巻の一言。
以下印象に残った言葉。
「3DやボーンなどFlash10で実装されたけど、自分でも紐ほどいて作ってみると、扱いやすくなるし重い通りに動くようになると思います」
「ただ動くだけなら簡単に作れる。けれど思い通りに動かすにはいつも時間がかかる。」
ActionScript 3.0におけるパフォーマンス向上のヒント 野中文雄氏
ActionScript3.0のコーディングでのパフォーマンスを高めるテクニック。
概ね下記リンクに書かれていることが中心だったけど、野中さんの厳選のTips集となりました。なにより、丁寧で分かりやすい説明がとてもありがたかった。高速化の議論って概ねヘビーに色々盛り込んで納期に近い時期にあがってくるので、殺伐としがちだから、できるだけわかりやすい説明を心がけたいですから。
[tips]ActionScript3 最適化・高速化Tips 簡易まとめ
http://actionscript.g.hatena.ne.jp/ConquestArrow/20070621/1182359767
いくつか気になったTipを書いておきます。
・hitArea=true、visible=falseでもAS3.0では描画上見えないけど、押すことが出来る。表示負荷がかからない透明ボタン。
・Arrayは中に入る値は型指定できないが、Flash10から登場のVectorでは型指定が可能。またエレメントへのアクセスが高速。ただし、Arrayよりも厳しいルールがある(エレメントにはひとつのデータ型を指定。エレメントは密である必要がある。Arrayでできた飛び飛びはダメ)
・Math.pow(n)よりn*nのほうが高速
・Math.absは(n<0)-n:nのほうが高速。だけど可読性が悪いかも。
・ただし、べた書きは早いがfunctionにくるむとやや遅くなる。
・int処理がAS3.0だと高速。ただ、AS2.0でのintとは役割も仕様も違うので注意。
・割り算より掛け算が早い。n/5よりn*0.2のほうが早いということ。
・2の累乗は最適化されていて早い。
・ビット演算はCPUの処理に近く一般的には高速。
・<<は×と同じ。>>は÷と同じ。RGBの処理に向いている。
・ビット演算は理論和にも使える。
ただ、高速化の件はOSやブラウザの組み合わせ、スタンドアロン再生かブラウザ再生かでも結果が変わってくるので、あまり軽微な高速化には飛びつく必要はない。また、高速化のテクニックには可読性やメンテナンスのしやすさが下がってしまうことで別の「速度低下」が起きるので注意したい。
詳しいコードは野中さんが公開してくれるようなのでそれを待つことにします。
D-8 コミッタ全員集合!? Spark project ライトニングトークセッション Spark Project
総勢8名のライトニングトーク!一人持ち時間5分の盛りだくさんなセッションでした。
はじめに
Flash/Actionscriptのオープンソースコミュニティ。みんなでソースコードやノウハウを共有して幸せになろうという思いの元運営がしてます。
山崎貴明氏(zk33)
sazameki
オーディオ操作ライブラリ。Flash内で音を生成したり加工したりといったことができる。popforgeにインスパイアされました。テルミンのようにマウスで触れて音を奏でるようなサンプルやクリックした場所でスクラッチがかけれたりするサンプル。
現在、FlashPlayer10版の制作に注力中!
http://sazameki.org/
寺井周平氏(trick7)
ライブラリを使うメリット。ライブラリを使っていると楽しくなるよ。
とっつきやすいライブラリって何?→標準のActionScriptと同じ記述が出来る。
ライブラリは必殺技と思って是非使ってみてください。メラとか、メテオとか。
メラということで、簡単に炎が作れるライブラリ。
TeraFire
http://www.libspark.org/wiki/trick7/TeraFire
TeraClock
そして、簡単に時計が作れるライブラリ。
http://www.libspark.org/wiki/trick7/TeraClock
最後に簡単に日の出を作るライブラリも紹介されていました。TeraHinode。
小山智彦氏(Saqoosha)
拡張現実を簡単に実現するARToolKitをFlashに移植。おもしろい!
http://www.libspark.org/wiki/saqoosha/FLARToolKit
PaperVisionが使えるなら使えるらしいです。ブースでも公開されていました。
齋藤栄二氏(e_s_jp)
Spark project は ActionScript ライブラリだけでなくJSFLもコミットされています。拡張機能・コマンドは、複数処理よくやる処理に便利。Flashにはない機能を追加できる。MXPで簡単インストールでコマンドメニューからすぐに試せる
TransformationPoint
Flash CS3 でオブジェクトの変形点をパネルから設定する拡張機能。
http://www.libspark.org/wiki/e_s_jp/TransformationPoint
以下、JSFL作者のほかの方々も紹介されました。
カラーピッカーPS
RGB、HSVを同時に調整できる拡張パネル。グラデーションも簡単に作れる。
http://www.libspark.org/wiki/dada/colorPickerPS
Frame2Symbol
フレームを選択してコピーして新規シンボル内にペーストして座標が同じになるように配置する
http://www.libspark.org/browser/mxp/Frame2Symbol
TimelineController
Flashアニメ制作をサポートする機能拡張パネル
http://www.libspark.org/wiki/yoropan/TimelineController
insertLabel
フレームラベルを連番で生成する機能拡張
http://www.libspark.org/wiki/kaede/insertLabel
tanablogさんのコマンド集
http://bitmap.dyndns.org/blog/archives/cat_jsfl.html
http://www.libspark.org/browser/jsfl/Commands
letterspace
ライブラリ内のMC化された静止テキストの指定文字をカーニング
http://www.libspark.org/wiki/yoropan/LetterspaceStaticText
EasingGenerator
Tweenerのtransitionパラメータを3次ベジェで指定する為の拡張パネル
http://www.libspark.org/wiki/dsk/EasingGenerator
TrueFLfile
CJSFL File APIの不具合を修正する拡張DLL
http://www.libspark.org/wiki/TrueFLfile
GetLibraryItemClass
.flaファイルのライブラリでクラス設定されているものを調べてその一覧を出力するコマンド
http://www.libspark.org/wiki/e_s_jp/GetLibraryItemClass
イズカワタカノブ氏(soundkitchen)
Macでうまくマウスホイールが取れないのは有名だが、実はWindowsでもwmodeによって取れないことがあるがなんとこれも吸収している。また、検証ブラウザもかなり網羅されてる。どれくらい網羅されてるかというと、MacだとStainless、CaminoとかWindowsだとChromeとかマニアックなところまで!
SWFWheel
マウスホイールイベントの環境依存・状況依存を吸収するライブラリ。
http://www.libspark.org/wiki/SWFWheel
高輪知明氏(nutsu)
Frocessingという、Processingライクなドロー系AS3ライブラリの紹介。
Frocessing
http://www.libspark.org/wiki/nutsu/Frocessing
AS3標準のGraphicsとProcssingの違いは、いろいろな描画をシンプルに使えるようにしているところ。RGBだけでなくHSVの指定も出来る。3次元ベジエが使えたり。きれいなフラクタル描画サンプルも見れたり、
松野規親氏(まっつん)
specialbuttonコンポーネント
ActionScriptの初心者から上級者まで幅広くサポートした汎用ボタンコンポーネント。
http://www.libspark.org/wiki/n_mattun/specialbutton
ずっとしゃべり続けてたトークセッション。すごい!
コンポーネント定数が全て日本語。フレーム移動系命令とリンク設定は記述不要。ツールチップやショートカットも実装。ボタン押しっぱなしの挙動も実装。
新藤愛大氏(beinteractive)
オオトリ。
ActionScript Thread Library 1.0 (そうめん)
http://www.libspark.org/wiki/Thread
AS3で煩雑になりがちな非同期イベントを管理するライブラリ。リスナーさようなら。
あと、新ライブラリ BetweenAS3も紹介されてました。2009春ごろを目指して製作中とのことで超期待!!
ブース
また、Spark Projectはブースもあり、FLARToolKitデモ(Saqoosha)、SMSas デモ(ll_koba_ll)が展示されていました。
小林陽介氏(ll_koba_ll)
SMSas
MacBookのモーションセンサーの値をFlashで使えるようにするライブラリ。
http://www.libspark.org/wiki/ll_koba_ll/SMSas
ということで、ライトニングトークの名にふさわしいあっというまのセッションでした。けれど、そこに垣間見えるのはSpark Projectの層の厚さとオープンソースのもつパワーを感じました。実は私もコミッターですがソースを見ているばかりでなかなか自分のライブラリを上げたりすることができませんでしたが、これを機会にまたがんばりたい!