Flashの未来をFLASH MEETUPで聞いてきた!

先ほどまで、FLASH MEETUP http://atnd.org/events/22297 があり、Adobe Flash の現状・未来についての質疑応答のイベントがありました。Flash の技術の偉い方のちゃんとわかっている人が3名アメリカから来ていて、超内容が濃かったです!7〜9時の予定が11時まで延長して、京都から来た方は泊まりこみになりました!

Flash 関係で、最近誤解を招いてしまったことについて解説があったのですが、まぁ、ネットではたくさん出ているので、Flash の今後について話していたことについてこの記事では書きます。

あと、僕、間違ったことを書いていたらごめんなさい。私見も混じっています。アドビの太田禎一さん @ さんに聞くと色々と教えてくださると思います。

全体の方針

現状、Flash がよく使われているのは、「ゲーム」「動画」「広告」なんですが、ゲームと動画に今後は注力していくとしていました。

Stage 3D

Flash Player 11.0 から入った GPU を呼び出せる Stage 3D ですが、方針としては、

  • 2D フレームワーク や 3D フレームワーク経由で使ってね。
    • 2D フレームワークは Starling などがあるのですが、(私見:3D 程は注目されていなく)ぜひぜひ使ってね、と言っていました。Angry Bird は Starling を使って書いた Flash 版を発表するそうです。
    • 2D でも結構フレームレート良くなるそうです
    • ソフトウェアレンダリングエンジンになってしまった場合でも、Flash 10.x の方式よりも速いそうです
  • Adobe 自前ではこれらのフレームワークを作ることはなく、その下のレイヤーだけに注力する。
  • 3D のオーサリングツールも作らない。Flare3D のオーサリングツールを紹介していました。

あと比較的高度な話として、

  • 11.0 では Pixel Bender 3D で for ループが出来なかったり、描画命令もすごく種類が少ないのは、広範にいろいろなコンピュータでテストしてみたところ、あまりにもちゃんと動いてくれない GPU が多すぎて、その結果、こういう命令になった。GPU ベンダーにバグ修正の要望を色々出している。
  • バグのある GPU は動作させないブラックリストFlash Player は持っていて、統計的に 50% 近く弾いている。そのリストは今後公開予定。最新のドライバなら動く GPU でも、ドライバのバージョンが古かったりするとブラックリスト入りしている場合がある。最初のインキュベータ版では「2009年1月よりも前にリリースされたドライバ」を全て弾いていたそうです。
    • 個人的には、Flash Player の力で、ビデオカードのドライバのバージョンが古い場合、ダウンロードしてインストールする機能をつけてしまっても良い気がしました!
  • それでも、WebGLブラックリストよりは広範囲のドライバをサポートしている。(例えば、WebGL の場合、第1世代 Core i の Intel HD Graphics ですらブラックリストに入っています)

モバイル関係としては、

  • モバイル Adobe AIR の Stage 3D 対応は2012年頭までにはやります。たぶん、まもなく出る、Flash Player 11.2 でサポートするという意味だと思います。これのデモもやっていました。

HTML 5 向けのアニメーションツール

Adobe Edge で HTML 5 向けの2Dアニメーションオーサリングツールを公開していますが、スマートフォンが HTML 5 しか使えなくなった以上、これは積極的に投資してく方針みたいです。CS6 -> CS7 とどんどんこの手の機能を良くしてく感じみたいです。話の流れだと、Adobe 製のアニメーションツールで 相手に生成できるのも積極的に作っていくみたいな感じでした(たぶん)。「この手の大型のオーサリングツールが市場に出ていないからね」という感じでポロッと言っていました。(でも、Flash と違って独占にはならないから、アメリカベンチャーから強いライバルが出る可能性もありそう…)

なんか、話の感じだと、ActionScript 3 → JavaScriptコンパイラも研究している感じでした。本当か?

ここらへんの話は特にデモがなく、詳細は不明です。

プロファイリングツール

Flash の新しいプロファインリグツール(ボトルネックを探すツール)のデモもやりました。フレームごとに、どの処理・スクリプトに何msかかったか見ることができる GUI ツールです。良い感じでしたよ!スマートフォン相手にも Wifi 経由でリモートプロファイリングができるそうです。

サイレントアップデート

Flash Player 11.2 からサイレントアップデートの機能が入り、ユーザーが拒否しない限り、Google Chrome みたく、勝手に自動的にアップデートするようになりました。これを、Mac OS X にも近いうちに入れる予定だそうです。(Liunx は yum や apt などに頼るのでしょう)

サウンド

現状200〜250ms 程度サウンドのレイテンシがあるそうですが、それを 40ms 程度まで短縮した Flash Player を今後出すそうです。

国際化

これは会場の質問から出たのですが、Flash が日本語など非英語圏でテストが甘くバグが多い、という文句が出たのですが、(日本語入力がテキストフィールドでできなくなったり、マイク選択で英語以外のデバイス名が含んでいると動作がおかしくなるなど)、「頑張ります」的な回答しかなかったのですが、日本語でバグレポートを出来る場を作って欲しいと言われていて、これはそのとおりだと思います。

Alchemy 2

C/C++ ライブラリを Flash Player 内で動かす Alchemy ですが、一度死にかかった感じがあるのですが、Alchemy 2 としてちゃんと再生させることが発表されています。(技術的に何が変わるのか質問したかったのですが、タイムオーバーで質問出来なかった)。話によると、ネイティブと変わらないパフォーマンスで動いているよと言っていました。コンパイラLLVMコンパイラなので、最適化関係は LLVM の強力な最適化で行われるのですが、あとは、生成される命令がどの程度ちゃんと JIT されるかなんですが、まぁ、期待!

ネイティブエクステンションという選択肢も Adobe AIR ではありますが、

  • パーフォマンスが理由なら、Alchemy 2 を使って
  • OS の特殊な API を呼び出したいなら、ネイティブエクステンションを使って

という使い分け方を推奨していました。

Flex

Flex にさく予算は減らし、Apache 管轄で、コミュニティ主導で維持していくと発表していました。僕の意見として、HTML 4 でできることは Flash でやらないほうが良いことが多く(日本語入力にバグがあるなどの理由から)、Flex は HTML 4 と被る部分が多く、HTML 4 と被る部分は積極的に投資しないというのは正しい判断だと思います。

Text Layout Framework

Text Layout Framework は Flex の一部になっているけれど、純粋に一部というわけではないので、これはちゃんとメンテナンスしていくと言っていました。

こんな内容だったかな。少し上記、報道というよりは、私見も混じっていてすいません。動画関係も抜けています。