ページ

2009年3月30日月曜日

[Live Messenger] 会話ウィンドウ上でかな変換ができない問題の更新プログラム

http://messenger.live.jp/
おぉ、バナーがアイマスだ。

じゃなくてw
Windows XP のコンピュータで Windows Live Messenger を使用する際、会話ウィンドウ上でかな変換ができない
なんてのが 2009/03/25 付けで公開されてたんですね。
確かに、これ、なるなる。
さっそく入れてみよう。


[Silverlight] MediaStreamSource を使って動的にビデオ・サウンドを作る

赤坂玲音Blog: 「Silverlight 3 ベータ
さすが赤坂さんだ。
Perspective 3D と Pixel Shader Effects のサンプル動画がすばらしい。
一目見て、慈...もとい、慈愛に満ちた作風に定評のある大型新人 JeffP の作品とわかりますねw

なんてことが書きたかったわけではなくw ↓についてです。

MIX09 のセッションによると、低水準なサウンドやメディア API も追加され、動的にメディアを生成できるようになるようなので今から楽しみです。

以前 「[Silverlight] Silverlight 3 で Commodore 64 エミュレータ?」 で紹介した Pete Brown 氏が MediaStreamSource を使って動的にビデオを生成する方法について記事を書かれてました。
Silverlight 3 ? Creating Video from Raw Bits using a MediaStreamSource

まず、MediaStreamSource は Silverlight 2 からあったけれども、サポートされているフォーマットに変換する必要があったそうです。(そのため使いにくかった、もしくは、現実的には使い物にならなかった、という意味かな?)
しかし、Silverlight 3 でははるかに簡単にビデオを生成することができるようになったそうです。

コード例が掲載されていますが、ざっと見ると、

  • MediaStreamSource クラスを継承して、
  • 初期化時に幅×高さ×BytesPerPixel の byte 配列を確保。これがいわゆる VRAM。
  • OpenMediaAsync をオーバーライドして、MediaSourceAttributesKeys.Duration、MediaSourceAttributesKeys.CanSeek、MediaStreamAttributeKeys.VideoFourCC、MediaStreamAttributeKeys.Height、MediaStreamAttributeKeys.Width を設定。
  • GetSampleAsync をオーバーライドして、VRAM の内容を Stream 経由で MediaStreamSource に渡す。

本質的にはこれだけですね。
自分でもちょこっと試してみましたが、ほんとにこれだけでちゃんと表示されました。
(DDA (ブレセンハムのアルゴリズム) のコードを拝借してきて線分を描画してみたくらいですが)

コード例では byte 配列を 2つ確保して flip で切り替えてます。
VRAM に書きこんでいる最中に GetSampleAsync が呼ばれるとちらついたりするからじゃないかと思います。
(それ以前に、あるスレッドが書きこんでる最中に別のスレッドが読み込むことがあるってのはあまりよろしくないと思うのでちゃんと lock なりした方がいいように思いますが)

確かにほんとに簡単にビデオが動的に生成できますね。
こりゃ、おもしろい。

さらに、
Creating Sound using MediaStreamSource in Silverlight 3 Beta
にてサウンドを動的に生成する方法も紹介してくださっています。
基本的には動画の場合と同じで、単に画像では無く WaveFormatEx を動的に作る点が異なるだけみたいです。
これを使って
http://www.irritatedvowel.com/Silverlight/sl3/Synth/Default.html
 (注意 不安定でバギーだと書かれています。また、当然 Silverlight 3 beta が入っていないと動きません)
こんなのまで作ったそうです。
すげぇ


2009年3月27日金曜日

[MIX09][Silverlight] Physics Helper Library (物理演算ライブラリ) のビデオが一等賞

MIX09 では、MIX09 Show Off コンテスト なんてものがあったんですね。

  • 非商用。
  • 個人、もしくは、チームでアプリケーション、アニメーション、ツール、技術、その他、なんかを紹介した WMV を一本。
  • マイクロソフトのカンファレンスなので、マイクロソフトに関連したことが入っていること。
  • ビデオは 3分以内。クレジットは無し。(マイクロソフト側で最初にクレジットを追加する)
  • もしスクリーンキャプチャした動画を含めるなら、でかいスクリーンで上映するのでなるべくハイクオリティにしてくれ。

こんな感じでビデオを事前募集しておいて MIX09 の際に順位を決めたようです。
前に 「[Silverlight] Silverlight 3 で Commodore 64 エミュレータ?」 で紹介したビデオもこれへの参加作品だったんですね。

MIX09 Show Off コンテストの審査結果はこちら↓
ShowOff Winners Announced

で、一等賞を取ったのがこの方
Physics Helper gets 1st Place at MIX09 Show Off!

確かに良くできてるわw
ビデオも良くできてますが、Physics Helper Library もすごいな。
Expression Blend で Physics コントロールを貼りつけてターゲットを指定するだけで物理演算ができちゃうとかなんとか。
http://www.codeplex.com/PhysicsHelper
↑の Demos のところでビデオに出てきたデモを試せます。
これは Silverlight 2 です。(のはず)

さあ!あなたも今すぐダウンロード!!www


[Silverlight] WPF Pixel Shader Effects Library の Silverlight 3 への移植はすでに完了

http://wpffx.codeplex.com/
ここに Windows Presentation Foundation Pixel Shader Effects Library というのがあります。
これは、WPF のピクセルシェーダーエフェクト機能を使っていろいろなエフェクトを実装したライブラリです。
(WPF にピクセルシェーダーエフェクト機能が追加されたのは .NET Framework 3.5 のときでしたっけ?)
↓は画像にエンボスエフェクトをかけたものです。

20090328_PixelShaderEffectsLibrary

で、Silverlight 3 で WPF と同じようなピクセルシェーダーエフェクト機能が追加されるわけですが、
WPF effects Library running in Silverlight 3
によると Silverlight 3 への移植が完了したそうです。
実際に Silverlight 3 beta で動いているものが↓で見れるそうです。
http://www.cookingwithxaml.com/meals/wpfslfx/default.html
  注意: もちろん Silverlight 3 が入って無いと見れません。
左側でエフェクトを選んでパラメータを変えたりできます。
また、右上の 「Start Transition」 をクリックすると切り替え効果 (フェードイン・フェードアウトとかそういうやつ) を見ることができます。

上記の記事によると、WPF から Silverlight 3 への移植には 50 未満の #if SILVERLIGHT で済んだようです。
しかもそのほとんどが UIPropertyMetadata が Silverlight に無いってのと、Vector も無いから Point で代用したくらいのわずかな修正だけみたいです。
あと、ライブラリ本体では使ってませんが、デモで VisualBrush を使っています。Silverlight には VisualBrush も無いので、これは WriteableBitmap を使って代用したそうです。

ソースのフォルダ構成も Silverlight と WPF に分けたそうです。
デモはそれぞれで作ってありますが、ライブラリは Silverlight の方はフォルダがあるだけという感じです。
ソース本体は WPF の方にリンクしていて Silverlight と WPF 共用となっています。

なんか勝手に WPF と Silverlight のピクセルシェーダーエフェクトには互換性が無いと思い込んでたんですが、こうしてみると無いどころかほとんど完璧な互換性があるんですね。

ただ、気になる一文が、、、

SL effects are not hardware accelerated ( due to security) but it performs pretty well on my machine.. Let us know if you see otherwise.

これって 「Silverlight のエフェクトはハードウエアアクセラレータが働かない (セキュリティのため)。しかし、私のマシンではかなりのパフォーマンスだった。もしそうじゃなかったら教えて」 という感じですよね?
あれ?
Silverlight のピクセルシェーダーエフェクトって HLSL 2.0 で書いてるのに実は全部ソフトウエアエミュレーションなの?
てっきり GPU 使ってくれるもんだと思ってた。


2009年3月26日木曜日

[Silverlight] Quakelight, Quake の Silverlight 版がもう Silverlight 3 用になってた

http://www.innoveware.com/quakelight.html

Quakelight は id Software の超有名ゲーム Quake を Silverlight に移植したものです。
超有名ゲームって書いたけど、そういや最近あんまり聞かなくなったなぁ。
ゲーム自体は確かシェアウエアなんですが、おもしろいことに GPL でソースが公開されています。
上記のサイトには 「オリジナルの Quake の GPL のソースコードをフルの 3D エンジンも含めてダイレクトに移植した(C から C# へ)」 と書かれてますね。
すごいなぁ。
どんだけ手間暇かかるんだろ。

で、この Quakelight は Silverlight 2 のころからあったと思うんですが、早くも Silverlight 3 用になってました。
上記のサイトの “Demos (NEW!)” のところにある “TRY IT” のリンクをクリックすると Silverlight 3 版 Quakelight のページが開きます。
もちろん、Silverlight 3 beta が入って無いと動きません。

ただ、ちょっと注意。
私の環境では最初のオートデモの部分は動くんですが、Single Player でスタートしようとすると止まっちゃいます。
Silverlight が止まるだけでなく、一度だけですが IE が固まっちゃってプロセスを殺す以外にどうしようもなくなったりしました。
beta ですし、自己責任でお願いします。

Silverlight 3 beta が入っていなくても、上記のサイトにはスクリーンショットとかムービーとかも置いてありますから、それらを見ればどんなものかはわかると思います。


2009年3月24日火曜日

[Silverlight] Silverlight でパーティクル

Creating Particle Effects in Silverlight

パーティクルっていうのは小さな点 (点じゃなくてもいいですが) をたくさん描画することによって煙や炎なんかを表現するっていうやつです。
それを Silverlight 2 でやってみたというのが上記の記事です。(Silverlight 3 じゃありません)

このサンプルでは、パーティクルの一要素はグラデーションブラシで灰色に塗った小さな円です。
これに drift という名前のストーリボードをセットしています。
drift は左から右に速度変化しながら移動するアニメーションです。
これをオート・リバースでリピートにしてあるので、左から右へ、右から左へ、とゆらゆら揺れることになります。
このパーティクルを 50ms 間隔のタイマーを使って次々と生成します。
パーティクルの生成部分はちょっと工夫があって、上まで昇っていって使い終わったパーティクルを再利用するようになっています。(それが ParticleGenerator の部分)
また、生成時の x座標の初期値と drift の開始時間を乱数を使って若干ランダムにしています。
さらに、同じくタイマーイベントのタイミングで生成済みのパーティクルを ScaleTransform でちょっとづづ大きくする、Opacity でちょっとづつ透明にする、y座標を上に移動、といったことを行います。
これくらいの処理で、記事の最初にあるような結構リアルな感じの煙になります。

なるほどなぁ。
ところで、スケール、透明度、y座標の変更をストーリーボードではなくコードでやってるのはなんでだろ?
これらもストーリーボードでやってやればコードでやるのはパーティクルの死亡判定くらいにできると思うんだけど。
(ストーリーボードでできることはストーリーボードでやった方がパフォーマンスが良くなるように思います)


2009年3月23日月曜日

[Silverlight] Silverlight 3 で Commodore 64 エミュレータ?

My MIX09 Silverlight 3 ShowOff Video ? Commodore 64 Emulator

うはっ、まじっすか?
中ほどにある “Showoff Video Link” が動画へのリンクになってます。
Silverlight 3 の Out of Browser で Commodore 64 エミュレータを作ったってことみたいです。

この動画自体は MIX09 のときに公開されたみたいですね。
(「MIX09 で見たよ。感激した!」 みたいなコメントが付いてますし)
記事に 「Silverlight 3 がアナウンスされるまでこのビデオをリリースできなかった」 とあるので、アルファテスターか何かとして Silverlight 3 に関わっていたのかな?

ところで、動画の中に “Screen display is raw pixel MediaStreamSource video at 50fps” とあります。
なるほど、Commodore 64 の画面にあたる部分は MediaElement になってて、MediaStreamSource 経由で動的に画像を作って、それをストリーミングとして表示している、というような仕組みなのかな?


[Silverlight] ピクセル・シェーダー・エフェクトって HLSL を使うのか

Silverlight 3 の新機能にピクセル・シェーダー・エフェクト (Pixel Shader Effects) ってのがありますが、これって HLSL をそのまんま使うんですね。

Silverlight 3: Pixel Shaders and Effects
こちらにコード例があったので見てたんですけどね。
HLSL とかよくわかって無いんですが、要するに、シェーダー言語を DirectX の FX Compiler (fxc) でコンパイルした .ps を Silverlight 3 アプリのリソースに入れておいて、コードでは PixelShader クラスで .ps を読み込んで ShaderEffect クラスに突っ込んでおくだけ、ということなのかな?
(上記では Shazzam というツールを使ってるけど、.ps さえ作れれば別に何でもいいんだろうし)

検索してみたら、.ps っていうのはバイナリファイルというわけではなく、アセンブラチックなシェーダー言語のファイルなのかな?

Silverlight: Web Pixel Shader Compiler
こんなの作った人までいた。
.fx のソースをテキストボックスに入れて “Compile” ボタンを押すとコンパイル結果の .ps ファイルがダウンロードできるとのこと。
「これで DirectX SDK をダウンロードする手間が省けるよ」 とのこと。


2009年3月19日木曜日

[Silverlight] Siverlight 3 Tools と Silverligh 2 Tools とを切り替えて使う方法

Switching from Silverlight 3 Tools to Silverlight 2 Tools

まだ Silverlight 3 はまったく試してませんが上記ブログによると、

Silverlight 3 Tools for Visual Studio 2008 では Silverlight 2 のプロジェクトは作ることができない。
Visual Studio 2010 では Silverlight 2 と 3 の両方に対応する。
しかし、それまでは Silverlight 3 のプロジェクトは Silverlight 3 Tools を、Silverlight 2 のプロジェクトは Silverlight 2 Tools を使う必要がある。

もし、すでに Silverlight 2 Tools をインストールしているならば、Silverlight 3 のインストーラーを走らせれば簡単に Silverlight 3 Tools にアップグレードできる。
Silverlight 3 Tools から 2 へダウングレードするには、"Microsoft Silverlight" と "Microsoft Silverlight Tools for Visual Studio 2008" を 「プログラムの追加と削除」 でアンインストールしてから、あらためて Silverlight 2 Tools をインストールする必要がある。

ということだそうです。
で、この手間をちょっとでも減らすようにツールを作ってくれたそうです。
ツールというか、ちょっと見てみたらアンインストールとインストールを呼び出すバッチファイルを作るバッチファイルです。
日本語版の Silverlight Tools でもそのまま使えるのかがちょっと気になるところですが。。。
日本語版でもファイル名が変わっていなければそのまま使えると思います。
もし、変わっていたとしてもちょっと修正すればいいくらいじゃないかと。
試した人がいたら 「使えた」 とか 「そのままじゃダメだった」 とかコメントもらえるとうれしいな。

ついでなので、ブログ記事に書かれている使い方を以下に訳しておきます。

準備

 

  1. 上記のブログ記事から "Silverlight_Tools_Util.zip" をダウンロードし、解凍する。
  2. Silverlight 2 Tools をダウンロードし、”Silverlight_Tools.exe” という名前にリネームして Silverlight_Tools_Util と同じフォルダに入れる。
  3. Silverlight 3 Tools をダウンロードし、”Silverlight3_Tools.exe” という名前にリネームして Silverlight_Tools_Util と同じフォルダに入れる。
  4. もし以前に入れていなければ、Silverlight_Tools.exe を実行して Silverlight 2 Tools と SDK をインストールする。
  5. もし以前に入れていなければ、Silverlight3_Tools.exe を実行して Silverlight 3 Tools と SDK をインストールする。
  6. Setup_SLTools_Utilbat を実行する。

 

Silverlight 2 Tools for Visual Studio をインストールする

 

  1. Visual Studio を終了する。
  2. VS_3-to-2.bat を実行する。

 

Silverlight 3 Tools for Visual Studio をインストールする

 

  1. Visual Studio を終了する。
  2. VS_2-to-3.bat を実行する。

 

Silverlight 2 Tools for Visual Web Developer Express をインストールする

 

  1. Visual Web Developer Express を終了する。
  2. VWDx_3-to-2.bat を実行する。

 

Silverlight 3 Tools for Visual Web Developer Express をインストールする

 

  1. Visual Web Developer Express を終了する。
  2. VWDx_2-to-3.bat を実行する。

 

Silverlight 3 プロジェクトを Silverlight 2 にダウングレードする

 

  1. .csproj / .vbproj ファイルをテキストエディタで開く。
  2. <Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.CSharp.targets" Condition="" />
    となっているところを
    <Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight\v2.0\Microsoft.Silverlight.CSharp.targets" Condition="" />
    に変更する。

--

3/23 追記
こぐまBLOGさんからトラックバックをもらいました。
上記の切り替えツールは日本語版 Silverlight Tools でも問題無く使えたそうです。
Silverlight 3 開発環境

しかし、別記事によると切り替えがうまくいかないことがあるそうです。
修正方法も紹介されていますので、ぜひ見てみてください。
Siverlight 3 Tools と Silverligh 2 Tools を切り替えて使う方法


[Silverlight] What&rsquo;s New in Silverlight 3 Beta?

What’s New in Silverlight 3 Beta?

大雑把に訳してみます。
いいかげんな訳ですし、全文ではなく適当に気になるところを抜粋したものです。
なので、ちゃんとしたことは原文を見てください。

  • ハイクオリティなビデオ・オーディオのサポート
    H.264/AAC オーディオ、ライブとオンデマンドの IIS7 Smooth Streaming (フル HD(720p+))、拡張可能なデコーダー・パイプラインをネイティブサポート。
    GPU ハードウエアアクセラレーションで真のフルスクリーン HD (720p+) を提供。
    新しい Raw AV パイプラインで幅広いサードパーティ製の CODEC を簡単にサポート。
  • よりリッチなエクスペリエンスを
    • 3D グラフィック
      3D プレーン (平面) をサポート。コードを書かなくても回転させたりスケール変更したりできる。
    • ピクセルシェーダーエフェクト
      ブラー、ドロップシャドウを含むソフトウエアベースのエフェクト。自分でエフェクトを書くことも可能。
    • ビットマップキャッシング
      ベクタコンテントやテキスト、コントロールなどをビットマップにキャッシュできるようにしたことによってアプリケーションのレンダリングパフォーマンスを劇的に向上。
    • 新しいビットマップ API
      ビットマップにピクセルを書いたりできるようになる。
    • テーマをサポート
    • アニメーションエフェクト
      スプリング、バウンスといった新しいアニメーションエフェクトを提供。
    • コントロールのスキンの機能強化
    • テキストレンダリングとフォントサポートの進化
  • リッチ・インターネット・アプリケーション(RIA)としての生産性の向上
    • 60以上のコントロール(ソースコード付き)
    • ディープリンク
      Silverlight コントロールの中のページへのリンク。ブックマークしたりできる。
    • サーチ・エンジン・オプティマイゼーション(SEO)
    • より進んだデータのサポート
    • パフォーマンス向上
      アプリケーション・ライブラリ・キャッシング、Deep Zoom の強化、バイナリ XML、ローカルコネクション(クライアントサイドの 2つの Silverlight アプリケーション間で通信する機能)
  • アクセシビリティの機能追加
  • ブラウザの外で!
    新しいアウト・オブ・ブラウザ機能は PC や Mac のデスクトップ上やスタートメニューのリンクから直接 Silverlight アプリケーションを起動できるようにするもの。追加のランタイムやブラウザプラグインをダウンロードする必要はない。インターネットに繋がっていなくても実行可能にできる。セキュアなサンドボックス内で動く。起動時に最新バージョンに自動アップデートするようにできる。

なんかすげぇ!
これはほんとにすげぇ!


[Silverlight] Silverlight 3 beta 1

Twitter で mix09 とかを検索してたらいろんな人が書いてました。

Microsoft Silverlight 3 ソフトウェア開発キット Beta 1
Visual Studio 2008 SP1 用 Microsoft Silverlight 3 Tools Beta 1


[mix09] もうじき mix09 なのか

ふと気付くともうすぐ mix09 なんですね。
キーノートスピーチがラスベガスの 18日 9時かららしい。日本の 19日 1時かな。
どうやら http://live.visitmix.com/ でキーノートスピーチのライブストリーミングがあるみたい。

ところで、http://live.visitmix.com/ にアクセスすると↓の画像がどかんと表示されますが、これ Silverlight なんですね。

この画像の右側っていったいなんだろうと思ったら Twitter なんですね。
どうやら http://search.twitter.com/“mix09” を検索した結果 を表示してるみたい。
ただ、なんかの拍子に 日本語で検索した結果 になっちゃったな。(クッキーみてるのかブラウザの language みてるのかあたり?)
こういうのは Any Language で検索した結果 になるようにしてほしいところ。

あと、ちょっと下にある “@MIX09 TWEETUP” っていうのは facebook へのリンクだし、やっぱり向こうでは facebook や twitter は必須のツールっていう感じなのかな?
ちなみに、この http://twitter.com/MIX09 が mix09 の運営側(?)みたいです。


2009年3月17日火曜日

[Silverlight] Perenthia - Silverlight 製のマルチプレーヤーゲーム

http://www.perenthia.com/

フリーでテキストベースのマルチプレーヤー・ファンタジー・アドベンチャーゲームだそうです。
現在はアルファテスト中でログインするには招待コードが必要とのこと。
ただ、テキストベースなのでプレーするにはそれなりに英語力が必要かもしれませんね。

ええと、実は先に見たのは
Working on a Silverlight Multi-Player Library
こちらのブログの記事なんです。
なんでも、マルチプレーヤー用のライブラリをそう遠くないうちに CodePlex に上げるよ、といったことが書かれています。
そのライブラリはもともと Perenthia のために作られたものっていうことみたいです。


[WLW] Windows Live Writer って画像のファイル名を自動リネームしなくなった?

ブログ書くのに Windows Live Writer (WLW) を愛用してます。
WLW では画像もドラッグ&ドロップとかコピー&ペーストとかで簡単に貼りつけることができて、自動的にサーバにアップロードまでしてくれます。
で、このときの画像のファイル名ってどうなってましたっけ?

以前は ”WindowsLiveWriter_タイトルの一部_xxx.png” といった感じで勝手に長い名前にリネームされてたみたいです。
実際、以前のファイルを見るとそうなってます。
(タイトルが日本語だとイマイチ中途半端な名前になってる感じですけど)

けど、最近はリネームせずに元のファイル名のままアップロードしてるみたいです。
これって私だけですか?
特にリネームするかどうかの設定も無いみたいですし、いつからこうなったのかわかりません。

私が使っている FC2 では同じ名前でアップロードすると古いファイルを上書きしてしまいます。
なので、ファイル名が重複しないようにしてやらなくちゃいけません。
ローカル側にファイルがある場合はそのファイル名を気をつけてやればいいんですが、困ったのがクリップボードから直接ペーストする場合です。
この場合、常に image.png になってしまいファイル名を変更することができません。
うーむ。。。
この機能はかなり便利なだけにこれはちょっと困ります。

で、探したらありました。

Clipboard Image Plugin

これを使えばクリップボードから任意のファイル名を付けてペーストできます。
下の方の ”download” のリンクからダウンロードできます。
ただ、これ MSI なんですがそのままじゃ WLW に認識されませんでした。
なので、まずダウンロードした MSI を実行してセットアップ。
デフォルトだと 「C:\Program Files\ScottIsAFool\Clipboard Capture」 に ClipboardCapture.dll がコピーされるのでこれを 「C:\Program Files\Windows Live Writer\Plugins」 にコピー。
これで WLW を起動すれば 「挿入」 のところに 「Clipboard Image...」 が増えてるはず。
(Plugins にコピーしたら元のは用済みなのでプログラムの追加と削除からアンインストールしてしまって構いません)

使い方は簡単。
クリップボードに画像がある状態で 「Clipboard Image...」 プラグインを実行するだけ。
するとファイル名と画像形式を聞かれます。
(私の環境だとボタンがウインドウからはみ出ちゃってますが動作には問題なし)


2009年3月16日月曜日

[Excel] Excel VBA でアクションゲーム

「Excel VBA アクションゲーム作成入門」 という書籍が出たそうです。(発売日 2009/03/06)
http://www.impressjapan.jp/books/2686

↑にも貼られてる YouTube の動画に感動したのでここにも貼り。

いやぁ、まじで感動したw
この動画見て、思わず噴き出しちゃったよww
モード 3 はまだいいにしても、モード 4 とかモード X とか 「ちょっ、それって Excel?!」

以前 「[3DCG?] 革新的な 3D ゲームエンジン...ってバカだろw(もちろんいい意味で」 で Excel のオートシェープでポリゴン描画をしてるのに驚いたりしましたが、この本ではモード 2 なのか。この程度のコトは Excel 使いの人たちにとっては当たり前のことなのかな?w
ちなみに、そのときにちょこっと紹介したパッセルマンの作者さんが著者 (の一人) ですね。


[Silverlight] XNA 2D ゲームが Silverlight で動く?

XNA 2D games come to the browser via Silverlight

SilverSprite という Silverlight 2 用のクラスライブラリが紹介されています。
(ものは ”Releases” ではなく “Source Code” の方にあります)
これはコードの変更無しに XNA ゲームを Silverlight 2 で走らせることができるようにするものだそうです。
サポートしているのは SpriteBatch ベースのグラフィックです。(3D は非サポート)

私は XNA のことよくわかってませんし実際に試したわけじゃないですが、説明によると名前空間を Microsoft.Xna.Framework から SilverArcade.SilverSprite に書き変えたりといったほとんにわずかの修正で XNA 用に書いたソースを動かせるようになるみたいです。
http://www.silverarcade.com/ というサイトも準備中とのこと。


2009年3月14日土曜日

[IIS] IIS Smooth Streaming は Vista でも試せます

[Blender][IIS] IIS Smooth Streaming のデモにデブウサギ(Big Buck Bunny)が出演」 にエバンジェリストの大西さんがコメントをくれました。
Vista の IIS 7 でも IIS Smooth Streaming を試すことができるそうです。
せっかくなので頂いたコメントをそのままコピペしておきます。

Windows Vista上でのIISの構成は次を。
http://social.technet.microsoft.com/Forums/ja-JP/iis7ja/thread/bf87da4b-2e84-475a-8984-fc1e1e2e215d

IIS 7が動作した後の手順

  1. http://www.iis.net/extensions/SmoothStreaming へ行き、プラグインのインストーラーをダウンロード(x86またはx64版)する
  2. 利用しているIIS 7の環境で、ダウンロードしたプラグインのインストーラーを起動し、インストールする
  3. http://go.microsoft.com/?linkid=9652408 へ行き、サンプルのダウンロード(Big_Buck_Bunny_Sample-IIS_Smooth_Streaming_Beta.exe)を行う
  4. 適当なフォルダを作る (例: c:demobbb )
  5. Big_Buck_Bunny_Sample-IIS_Smooth_Streaming_Beta.exe を実行し、展開先として、4で作ったフォルダ名を指定する
  6. IIS 7の管理コンソールから、bbbという仮想ディレクトリを作成し、物理パスとして、4のフォルダを指定する
  7. Silverlight 2が入っているブラウザ環境から、6の仮想ディレクトリへアクセスする (例:ホスト名が foo.netとして、http://foo.net/bbb/ )


2009年3月12日木曜日

[Blender][IIS] IIS Smooth Streaming のデモにデブウサギ(Big Buck Bunny)が出演

Silverlight Streaming と IIS7 のイイ関係を確認する

マイクロソフトのエバンジェリストの高橋忍さんのブログを見ていたら、見なれたデブウサギが。。。
Blender を使ってる人なら誰でも知ってるであろう Big Buck Bunny が IIS Smooth Streaming のデモ用コンテンツとして使われてるそうです。

IIS Smooth Streaming っていうのは IIS 7 用の技術で、HD 品質レベルのストリーミングを行うためのものです。
クライアントは今のところ Silverlight 2 で実装されているようです。
仕組みが 「IIS Media Pack1 (2) ~ Smooth Streaming」 でちょろっと紹介されてました。
どうやら

  • サーバ側ではあらかじめ複数のビットレートで動画を用意しておく。
  • 2秒間隔くらいのブツ切れでクライアント側から動画をリクエスト。
  • そのときネットワーク帯域にあわせてビットレートをうまい具合に選択しながらリクエストする。
  • もちろん、クライアント側では切れ目がわからないようにうまいこと繋げて再生する。
  • サーバ-クライアント間の通信はすべて HTTP。

なんて感じみたいです。
何とも力技という感じはしますが、結局のところこういうオーソドックスな方法がうまくいくってことなんでしょうね。

ところで、上記の IIS Smooth Streaming のデモ用コンテンツですが、私は見てません。
どうやら IIS 7 とかを用意して Smooth Streaming (beta)を試せる環境を作らなくちゃいけないみたいなので。
あっ、Big Buck Bunny 自体は http://www.bigbuckbunny.org/index.php/download/ で落とせます。
オープンソースの統合 3DCG ソフトである Blender で作られたムービーです。
このムービーを作るのに使われた .blend データもすべて落とせます。
ムービーもデータも Creative Commons です。


[Silverlight] Silverlight 3.0 for Great Business Apps

Brad Abrams - Silverlight 3.0 for Great Business Apps

MIX09 で予定されている Silverlight 3 のセッションの内容を一部紹介したムービーみたいです。
途中でデモが出てくるんですが、

  • Silverlight コントロール内でページ遷移して、ブラウザの戻るボタンをクリックすると Silverlight コントロール内でページを戻るようにできる。
    今までだとブラウザは Silverlight 内のことなんて関知してなかったので戻るボタンすると開いているページそのものが戻っちゃってたんですよね。ゲームみたいなものならいいんですが、Silverlight コントロール内でページ遷移があるようなものを作ると、つい戻るボタン押しちゃって 「あっ、しまった。入力中のものが消えちゃったよ orz」 なんてことになったり。
  • ディープリンク。Silverlight コントロール内の各ページにも URL があり直接そこに飛んできたりブックマークしたりできる。
  • 例外がちゃんと表示される。
    Visual Studio 上のデバッガで動かしてるときはちゃんと例外が表示されますが、普通に IE で表示してるときに例外が出ると、確か、「JavaScript でエラーが出た」 みたいになっちゃってたように思います。(Silverlight コントロール内の例外がブラウザまで伝わってこない) これがちゃんと表示されるようになるみたい。

なんて感じのものが紹介されています。
後半は新しいデータグリッドみたいです。Silverlight Toolkit に追加されるものなのかな?

MIX09 は 2009/03/18~20 ですからあと一週間ですが、Silverlight 3 beta とか出てくるのかな?


[Silverlight] Silverlight Game Programming

Silverlight Tip of the Day #98 ? Silverlight 3 Game Programming Book

Silverlight Tip of the Day シリーズを書いてくださっている Mike Snow さんが Silverlight 本(英語)を出されるそうです。
Amazon によると 2009/06/16 発売予定。

「Silverlight 3 を対象に Silverlight でマルチプレーヤーオンライン RPG の作り方を紹介。Silverlight で作られたマップエディタも含まれている」 という本だそうです。
これは楽しみ。
洋書なんてほとんど買ったこと無いですが、思わず amazon.co.jp で予約しちゃいました。

それにしても、Silverlight 3 が対象ってのもびっくりですが、題材がマルチプレーヤーオンライン RPG ってのもすごい。
画面の表示は XAML でかなりのことができるけど、通信関係は非同期になるし、そもそも Silverlight では P2P ってわけにいかないのでサーバも必要になってくるし、説明しなくちゃいけないことが山ほどありそう。
ほんとに一冊で説明できるのか心配になってくるなw


2009年3月11日水曜日

[Silverlight] Silverlight Spy

Windows ネイティブアプリには Spy++、WPF には Snoop なんてツールがありますが、これの Silverlight 版ともいえるのが Silverlight Spy です。

Silverlight Spy は結構前、Silverlight 1.0 のころからリリースされてたと思うので、ちょっと今さらな紹介なんですが(^^;

今リリースされている Silverlight Spy はバージョン 2 になっていて、Silverlight 2 専用になっています。
Silverlight Spy 2 自体は .NET Framework 3.5 で作られているそうです。
配布は ClickOnce なので Silverlight Spy の “Launch Silverlight Spy 2 now!” のリンクをクリックすれば自動的にインストールされます。

画面は↓みたいな感じです。

image

上の画像は Microsoft Research TechFesthttp://www.microsoft.com/presspass/events/msrtechfest/poster.aspx を開いてみたところです。
左下でアウトプット、イベント、ネットワーク、CPU・メモリ使用量なんかをモニタできます。
右側で XAP、アイソレーテッド・ストレージ、コントロールのスタイル、UI Automation、User Interface の中身が見れます。
User Interface が Visual Tree をたどったものだと思います。
UI Automation はアクセシビリティとかのために GUI 要素を外部から参照・操作可能にするってやつですね。私は全然わかってないですが(^^;
UI Automaion の技術的な解説は ユーザー補助 とかなのかな?(これは WPF ですが、UI Automation 自体は細かい技術には非依存のはず)
一度ちゃんと勉強してみないとなぁ。


2009年3月2日月曜日

[.NET] TechDays 2009 Japan 全セッションストリーミング開始

http://www.microsoft.com/japan/powerpro/techdays/

2009/1/27、28 に開催された TechDays 2009 Japan の全セッションの内容がストリーミングで見れるそうです。

私は参加しなかったのでこれはうれしいな。
問題は見る時間があるかどうかだなw