11.28にFITCとゆう国際的なFlashカンファレンスの日本版に行ってきました。
http://www.fitc.ca/events/about/?event=104
10:00の開演に30分ほど遅れて会場に到着。めちゃくちゃ広い会場の半分程が埋まっている。Web業界の朝は遅いと思っていた自分の予想を裏切られる。一人で参加してるし、よくblogで勉強さしてもらってるFlasherの方もいっぱい来ているようなので、そこここで交わされる雑談を尻目に、何か「混ざりたい、けど混ざれない」みたいな、大昔にクラブ行き初めた頃の様な疎外感を感じつつも、そこは大人の余裕で。1日長かったけれど、「何か作りたい!」って気分にさせられる刺激的な内容でした。
取りあえず、他の方が見て役立つかどうか分かりませんが、以下自分用に各セッション時にとったメモを起こしてみます。
■リー・ブリムロー
Adobeのプラットフォーム・エバンジェリスト(ってなに?)、gotoandlearn.comの人。Adobe Max 2009からの抜粋(?)
途中からだったので中途半端になっちゃって残念でしたが、前半部はAdobe CS5の紹介だったっぽい。
- FlashPlayer10.1
■キース・ピータース
http://www.bit-101.com/。「ActionScript 3.0 アニメーション」の著者。
内容的にはここで勉強出来る事と似ていて、かつ上記書籍の内容そのままだったらしいですが、本は値段があれなんで買ってなかったので、スクリプトでモノを動かすということを非常に分かりやすく教えてもらえて勉強になりました。
「AdvancED ActionScript 3.0 Animation」も訳出されてオライリー(?)から出るそうなので、出たら買いたいなぁ。
- エドワード・マイブリッジ
- コマ撮りアニメーションの実験。
- アニメーションの原理 → 残像(コマとコマの間を脳が補完する)
- フレームレートは24fps〜30fps(高すぎても脳は認識できない)
- 「あるルールに基づいて → 動かす → スクリーンに描画」のサイクルを繰り返す
- EnterFrame(24fps)とTimer(24/1000)
- 「速度」Velocity(スピード+方向)
- 「加速」Acceleration(増減)
- 加速を速度に追加する、速度を位置に追加する。
- 「重力」Gravity(y軸方向に加速)
- 「摩擦」Friction(速度をマイナス、もしくは速度に0.5(1.0未満の値)を掛け算)
- 「弾性」Bounce
- 「Easing」
- ギリシアの哲学者ゼノンの逆説
- 目的地に行くためにはその半分の距離をまず進まなくてはならない→永遠に目的地に到達しない(永遠に半分の距離を進み続ける)
- 複雑なイージングはペンナーイージングを使おう・笑。
- 「バネ」
- ロバート・フックの方程式 → 力 = バネ係数 x 距離
- バネ + 摩擦
- GoASAP(アニメーションプラットフォーム)
■マリオ・クリンゲマン
a.k.a. Quasimondo。http://aviary.com/。
非常にアーティスティックな見地からの講演で刺激的だった。「わたしは数学のグルーピーです」とアツく語る姿勢に、いかにもアーティスト的なピュアネスが滲んでいたと思います。しかしながらその発想と技術は超絶変態!最初の方の彼女とヴァカンスで行ったビーチでゴミを整理・分類してアートを作りました、みたいな話以降は全くついていけず、、、でもおもろかった!
- 数学者とアーティストは似ている。興奮やカタルシスがある、的な。
- ソートイ「素数の音楽」
- 数字をある法則で並べて素数だけをハイライトして出来る模様に何かが隠されているのではないか。
- ウーラムスパイラル、Sacks spiral。
- フィボナッチ数列
- Wolfman Alpha → 数学の検索エンジンのようなもの
- ジェネレイティブのエンジンをいかに導くか(分類と分析)
- Twitterの140文字でモナリザの画像を表現する
- 人の視覚はエッジを認識しやすい。
- ユニコードで中国語の文字列を作成。
- ボロノイ図 → ボロノイ図を軽く解説
- http://www.flickr.com/photos/quasimondo/3518306770/
- 乱数を使っての試行錯誤は必ずランダム値をセーブ出来る様にしておく。
■グラント・スキナー
http://www.gskinner.com/。swfの最適化Tipsがモリモリの内容。よく知られているものから、初耳のものまで。っていうかパフォーマンスの最適化、とゆうと「Bitmapに突っ込むか?」位の発想しかない自分には実務的な面で大変勉強になりました。
当日使用されていたスライドがここに。ページ遷移がかっこいい。スライド内ではリアルタイムに自分のマシンのスペックで数値を計測しているみたい。この内容で本にならないかなぁ〜。
- ベンチマーク無くして最適化なし。
- 1.測定可能なもの(定量的なもの)
- 2.感覚的なもの(ユーザー体験のコンテキスト)
- デバッグ用のライブラリ
- 同じフレームレートの中の1フレームの長さは必ずしも一定ではない。
- フレームレートを下げた方が良い結果が得られる場合もある。
- コードの最適化
-
- 2.アーキテクチャ(構造的)
- インスタンスを減らす。
- ディープなパスの参照は避ける。
- functionの呼び出しにはコストがかかる(functionの中に入れ子でfunction)。
- forループ条件式の中で変わらない値はあらかじめ変数化。
- オブジェクトプールを使う(?)
- 不要なリスナーは削除。
- Janitor.as、Chunker.as
- Array、Vector、Linked Listなどによる配列への格納・アクセスについて色々と。自分には理解出来なかった。。。
- 2.アーキテクチャ(構造的)
-
- 3.アルゴリズム(ロジック自体を変える)
- webcamはフレームレートが設定可能。
- 描画についての最適化。
- cacheAsBitmap
- sprite.z = 0;
- カスタムキャッシング(bitmap.draw)?
- 「blitting」→ベクターデータはbitmapに書き込み(?)
- filterがかかる領域を絞る。2つのオブジェクトがあるとその間の空間にも矩形にフィルターがかかってしまう。
- alpha = 0;やvisible = false;するなら削除する。
- プレイバックで描画が一瞬止まったりするのは、ガベージコレクションが発生しているせい。同時通訳の人がガベージコレクションを「ゴミ集め」と訳していて、通訳も大変なんなだなぁと思いました。
■ジョシュア・ハーシュ
アメリカの代理店、Big Spaceshipの人。さすがのプレゼン上手でイチバン会場を沸かしていました。全般的にどのセッションの時でもみんなシーンと熱心に聞いていて、スピーカーの人がとまどっている風だったな。国民性ねぇ〜。
- ディレクターからデザイナー・開発者というチーム編成でプロジェクトを担当。縦でなく、横で全員が最初から最後までプロジェクトに関わる。
- 一人一人が他の人から学ぶべき事があると考えている。
- Quality is born from fun.
- 時間を見つけてチーム毎にプライベートワークに取り組む。そのプールが、クライアントワークへの提案に活きる。
- プリローダーだけを集めたサイト「Pretty Loaded」
- Perfect Monkey Tankpantsとゆうゲーム(これかなりウケた)。
- コーポレートロゴのアニメーション。紙でロゴをつくり、スモークマシーンも買って、撮影。必ずしもデジタルの中だけで完結させる必要はない。
- クライアントワーク
- MoMAのTim Burton回顧展のサイト → 階段とかも手作り。
- Adobe Max 2008 → 氷河とかも紙で作ってる。