やっとSilverlight5が正式リリースされました。まだ開発ツールは英語版だけですが、近日中に日本語版も配布されると思います。
Silverligh5での新要素
ざっとドキュメントを読んだ中で、私が「これは!」と思った変更点を挙げておきます。
- 3Dグラフィックスのサポート
XNA Frameworkのグラフィックス周りがSilverlightにも組み込まれました。私はXNAには触れたことがなかったので、かつてのDirect3D RMのような高レベルで小回りの利かないAPIを想像していたのですが、素のDirect3Dに近いかなり低レベルなAPIです。
モデルデータを扱うクラスがSilverlightでは省かれていますが、Silverlight Toolkitの方に用意されているようです。詳細は日本語版の開発ツールが配布されてから確認します。
他の制限は、シェーダモデルは2.0、マルチプルレンダーターゲット使用不可、テクスチャサイズは2048まで、インデックスバッファは16bitといったところです。
- サウンドエフェクト
XNAからサウンド関係も組み込まれました。MediaElementは結構遅延がありましたが、こちらはゲーム用を想定しているので低遅延なようです。
待望のループ機能やピッチ変更もあります。
- In-Browser Trusted Applications
以前はブラウザ外実行でしか使えなかった信頼されたアプリケーションが、ブラウザ内実行でも使えるようになりました。ただし、デフォルト状態では使用不可で、レジストリを変更しないと使えません。また、アプリケーションに署名が必要なようです。
- Call Windows APIs
Silverlight4では信頼されたアプリケーションからCOM呼び出しだけが可能でしたが、5ではネイティブAPIが呼べるようになりました。ネイティブAPIが使えると何でもできてしまうので、いろいろ心配なところです。まぁ、COMが使える時点でスクリプト系のCOMインターフェースを経由すればほとんど何でも可能でしたが。
- ベクトル画像の印刷対応
Silverlight4ではプリンター出力はビットマップ画像に限られていましたが、5ではベクトル画像の印刷も可能になりました。Googleマップ等のオンライン地図サービスはどこも印刷機能がビットマップ画像で解像度がかなり落ちてしまうので、ベクトル画像で地図を出力するサービスができたら助かります。
- ダブルクリック対応
今更ですがダブルクリックのための機能が追加されました。
以前はアプリケーション側でクリック間隔を確認してダブルクリックの判定をする必要がありましたが、OSのマウス設定に基づいて一定時間内の連続クリックをカウントしてくれるようになりました。
- H.264動画のハードウェア再生支援対応
これは、とっくに対応してると思っていました。
- その他
文字間のスペース調節、行間のスペース調節、リモコン対応、ローカルファイルへのアクセス、64bitブラウザ対応、マルチウインドウなどがあります。
私は元々Silverlightはゲームプラットフォームに向いていると思っていたので、3Dとサウンドエフェクト対応でさらにゲーム向きになったと思います。ブラウザ外実行ならばネイティブAPIを使ってジョイスティックも使えそうなので、インストールの手間等を考えると素のXNAよりも手軽でいいかもしれません。