ランタイムや英語版SDKは既に先週リリースされていましたが、昨日やっとこ日本語版SDKもリリースされました。
Visual Studio 2008 SP1 用 Microsoft® Silverlight 3 Tools
(Silverlight ToolsはSDKも含むので、別途SDKをインストールする必要はないです)
なぜかSDKにドキュメントが含まれていないようなので、ドキュメントは別途ダウンロードする必要があります。ただし、日本語版ドキュメントは8月下旬の予定で、まだ英語版しかありません。日本語ドキュメント出ました。
Microsoft Silverlight 3 オフライン ドキュメント
Microsoft Silverlight 3 Offline Documentation (英語)
Silverlight3の新機能
私が紹介しなくても、既に散々あちこちで紹介されていると思いますが、私の視点から見たSilverlight3の新機能を紹介しておきます。
・3Dエフェクト
Silverlight3が最初にアナウンスされたとき、3Dと聞いてDirect3Dのような機能に期待した人も多かったと思います。実際には3Dオブジェクトを自由に描画できるような機能ではなく、Silverlightのコントロールを3D回転させて表示できる機能です。画面に表示されるコントロールやジオメトリならば、全て3次元回転でき、回転した状態でも入力等が可能です。
実際に回転させながら入力をしたりすることはないと思うので、画面の切り替えや画像が現れるときのエフェクトの一種として使うのが一般的でしょうか。
・ピクセルシェーダエフェクト
Silverlight3では、ピクセルシェーダを使って画面にエフェクトをかけることもできます。ただし、シェーダの実行はソフトウェアで、3Dアクセラレータは使用されません。
Silverlightはシェーダコンパイラは搭載していないので、DirectX SDKのシェーダコンパイラツールで予めコンパイルしておく必要があります。
ピクセルシェーダに関しては、ドキュメントに情報がなさすぎるので、後で色々調べてまとめようと思います。
・ビットマップ画像操作、Rawオーディオ対応
むしろSilverlight2までで出来なかったことの方が不思議な、ビットマップ画像を自由に操作する機能が加わりました。ただし、SetPixel/GetPixelのような操作が可能なものではなく、Int32の配列を画像化するだけの機能です。
Rawオーディオは、無圧縮のオーディオです。実行時に音を生成して再生することが可能になりました。しかし、遅延が1秒以上あるようなので、インタラクティブ性の高い使い方はできそうにないです。もっとストレートに言うと、ゲーム機のエミュレータ等には使い物にならないです。Microsoftが用意したシンセサイザーのデモがありますが、ダイヤルを回してもすぐには音に反映されなくて気持ち悪いです。
・ブラウザ外での実行
Silverlightは本来ブラウザ内で実行されるプラグインですが、スタンドアロンアプリケーションとして実行できるようになりました。しかし、ブラウザ外での実行でも、セキュリティレベルはブラウザ内と同じなので、できることはあまりないです。(その分、セキュリティの心配は無用)
複雑なことをやろうとするとネット環境が必要ですが、ネットに繋がっているのならばブラウザ外で実行する利点もほとんどないので、使いどころは微妙かもしれません。
主な使い道は、ゲーム系、小道具系アプリケーションといったところでしょうか。ブログの記事エディタをSilverlightで作って、オフラインでも記事が書けるようにするのも良いかもしれません。(Windows Live Writerの方がいいけどね)
ちなみに、Macでもちゃんと動きます。
・ナビゲーションフレームワーク
Silverlightのような動的コンテンツが抱える問題として、コンテンツ内でのページ遷移が、ブラウザのページ移動履歴に反映されないという点があります。
ナビゲーションフレームワークを使うと、Silverlight内でのページ遷移がブラウザにも認識され、進む/戻るボタンで移動できるようになります。また、ページごとにアドレスも変化するので(URLのアンカー部分が変わる)、トップページ以外にリンクするディープリンクも可能です。
Flashでも出来ることですし、Silverlight2+JavaScriptでも出来ますが、標準でフレームワークが用意されたのは助かります。
・新しいコントロールが大量に追加された
Silverlight ToolkitというSilverlightのコントロールを開発しているプロジェクトがあるのですが、そこから成熟レベルまで完成度の高まったコントロールが、標準コントロールとして取り入れられています。
ただし、追加された多くのコントロールは、ランタイムに内蔵されているのではなくライブラリでの提供なので、使用する際には参照の追加などの操作が必要になります。
サンプル等
Silverlight SDK sample browser (機能ごとの簡単なサンプル集)
New Features Silverlight 3 (新機能を使ったアプリケーション例)
New Features in Silverlight 3 (プログラマ向けのコーディング説明ビデオ)


まだ発生条件を追いこんでいませんが、ビジュアルツリーにアニメーション付きのオブジェクトを900〜1200個くらい登録したらfpsがおかしくなりました。
60fpsで制限していても70〜90くらい出てしまいます。
2のときは、遅くなることはあっても速くなることはなかったと記憶しているのですが、バグでしょうかね?