「ボクセルポリゴンな日々」 - UnityでMakersとVRをつなぐ挑戦 -

Unityプログラムで3DCGアセットデータをVRや3Dプリンターで利用可能にする最新技術や関連最新情報を紹介します。

【Silverlightプログラミング】Silverlightの現在と未来、そして3DCGライブラリの今後

2011年06月20日 10時20分15秒 | プログラム開発
のっけからプログラミングの話題ですみません。
このブログでは日本国内で情報発信の少ないSilverlight関連の技術情報を載せていきたいと思っています。

というのも、私の本職はテクニカルライターだったりするからです。(汗)


・・・・・


前置きはともかく、Silverlightについてお話します。

Silverlightとはマイクロソフト社が提供するプログラム実行環境の呼称です。
Silverlightプログラムの開発はWindows上で行ないます。
開発環境はVisualStudio2010、使用言語はC#またはVisualBasicです。
(私はC#を選択していますので、以降のサンプルコードはC#での記述となります事をご了承ください。)

そもそも、VisulaStudio2010ではSilverlightを選択しなくてもC#だけでWindowsアプリケーション(=実行プログラム)が開発出来ます。
しかしここにSilverlightを介することで以下のメリットが生じます。

1.OSからプログラムを直接実行するのではなく、
  IEやFirefoxといったインターネットブラウザからURLを指定することで実行できる
  「Webアプリケーション」の開発が出来ます。
2.Webアプリケーションを開発することにより、
  Windows以外のOS(Mac等)でも実行可能なアプリケーションを
  配信する事が出来ます。
3.通常のC#プログラム開発と異なり、
  ユーザーインタフェースデザインと実行コード配置を分けてプログラムを開発することが出来ます。
  (ユーザーインタフェースデザインとは、
   画面上で表示されるボタンや画像・テキスト編集エリアなどの配置を決める情報の事です。)

これらのメリットはプログラム開発を飛躍的に向上します。
とりわけ2の項目は、今までならばWindows以外のOS環境で動くプログラムを開発する事を考えると、
その分の開発期間がWindows上で動くプログラムと同等以上にかかるというデメリットを一気に解消する
画期的なものです。
また1の「Webアプリケーション」という形態は、プログラムをわざわざPCにインストールしなくても
そのWebページを表示しただけで利用できる便利なものだったりします。
Webブラウズに慣れた人なら、「この仕事をするんだったらこのページを見よう。」とブックマークを探ってリンクをクリックするだけでプログラムが起動可能になります。
あるいはそうした機能を持つプログラムをブログ等に配置して呼び出すだけで、世界中のあっちこっちで利用されるようになるのです。

ただしデメリットも存在します。

1.大きなデータを扱えない。
  インターネットブラウザの監視下で実行されるため、メモリを扱う量が制限されます。
2.実行速度が通常のアプリケーションに比べて遅い。
  インターネットブラウザの監視下の元で実行されるため、プログラムの実行は少し遅くなります。
  加えてあらゆるOS上で実行可能にするためOSやCPUの違いを吸収する仕組みが働くので、
  それもプログラム実行を遅くする要因になります。
3.ローカルPC上のファイルの扱いに制限がある。
  ローカルPCに配置されたファイルの読み書きが出来ますが、
  ファイル選択ダイアログで同時に一つのファイルしか選んで読み書きを実行するよう
  操作が限定されています。

これらは従来のOSからの直接実行タイプのプログラムに比べて大きなハンデになります。
が、それでもWeb上でプログラムを直接選んで実行できるメリットはこれらのデメリットをカバーして余りあります。


このようにメリットの大きいSilverlightですが、
現行の公開バージョン4では、実は画像のような3DCGデータを表示する機能はありません。
現在開発用βバージョンが出始めたバージョン5では3DCGデータを表示するための機能である
「XNA」が搭載されていますが、バージョン5は一般公開利用が出来ない状況です。

そこで今回の開発ではSilverlight4でも利用できる3DCGライブラリ(Silverlightの機能を拡張するプログラム部品の事)を使って3DCGデータを表示する機能を付加しました。

その3DCGライブラリが「Balder」です。
現在α版ということですが、
他のSilverlight用3DCGライブラリに比べてプログラムの実装例が豊富だったので利用する事にしました。

とはいえ、日本国内でBalderを利用したプログラミング例がほぼ皆無に等しい状態ではあります。

そこで本開発に合わせてSilverlightにBalderを組み合わせたアプリケーションを開発していく上での
Tipsみたいなものも合わせて発信していく事にしました。
今後Silverlightで3DCGプログラムを開発してみたい人の参考になれば幸いです。

ところが、次期Silverlight5では正式な3DCGライブラリとして「XNA」が搭載されることになっています。
XNAはマイクロソフト社が自社の家庭用ゲーム機「XBOX360」の開発用に用意したプログラム開発ライブラリの名前です。このライブラリの一部機能が次のSilverlightでサポートされることが決まっています。

「それじゃ今からBalderつかっても意味ないんじゃないの?」

という疑問が出てくると思いますが、
そこはライブラリを使っていけばBalderの長所やXNAの問題点が見えてくるものです。
私としましては、今のところ両方をにらみながら開発を進めていきたいと考えています。


さらに説明を続けていくと文章がもっと長くなるので、この話題はいったんここで置く事にします。(汗)

今回のトップ画像は私がSilverlight5で作成したWebブラウザアプリケーションの実行例です。


追伸:

今後【Silverlightプログラミング】のタイトルテーマではC#ソースコード+XAMLコードが登場します。

次回は「はじめてのSilverlightで3DCGプログラム ~ Balder事始め(1)」でお送りします。(^^)

最新の画像もっと見る

コメントを投稿