2012年1月29日日曜日

BGM再生

Silverlight に  XNA Framework が利用できるようになったので
BGM再生を実装していたのですが、SoundEffect クラスでは、MP3のファイルが再生できませんでした。
まあ、SoundEffect クラスは、効果音などのファイルサイズの小さいサウンドを再生するためのクラスのようなので、それもそうかという仕様でした。
ということで、MediaElement クラスでBGM再生を実装しました。ただ、MediaElementクラスは、再生開始までに少し時間がかかってしまいますが、それは、まあ、しかたないということで。
(ちなみに、 BGMをmp3からwavに変換すれば、SoundEffect クラスで再生可能ですが
そうなると今度はファイルサイズが大きくなりすぎてしまうという問題が起きます)

ということで、MediaElementクラスを用いてBGM再生を実装しました。
参考にしたのは下記サイトです。
http://bygzam.seesaa.net/article/110314848.html
http://bygzam.seesaa.net/article/110314849.html


下記のような実装にしました。
StringEnumAttributeクラスとは、enumの属性を取得するクラスで、ここではenum値の属性からuriStringを取得すメソッドを実行しています

/// <summary>
/// ゲーム全体のBGMを管理するMediaElement
/// </summary>
private static MediaElement MusicElement;

/// <summary>
/// 指定したBGMを鳴らす
/// </summary>
/// <param name="kind"></param>
public static void Play(SoundBGMKind kind)
{
 // ファイルの取得
 string uriString = StringEnumAttribute.GetStringValue(kind);
 StreamResourceInfo streamInfo = Application.GetResourceStream(new Uri(uriString, UriKind.Relative));

 // 再生
 MusicElement.SetSource(streamInfo.Stream);
 MusicElement.Play();
}

2012年1月26日木曜日

Silverlight 5 のサウンド機能


Silverlight 5 では、ゲームの効果音などに活用するのに適したサウンド機能が充実しています。
もともと「XNA Game Studio」というゲーム開発環境で用いられていた XNA Framework と同じようなクラスが提供されるようです。
使い方を調べていたとき、下記のサイトがとても参考になりました。
Silverlight 5 の新機能その4 Realtime Sound (low‐latency Audio)

下記のような実装で、uriString に "Sounds/click01.wav" などの効果音ファイルのを指定することで、効果音を鳴らせます。
(上記の場合、click01.wav は プロジェクトフォルダの下の Soundsフォルダの下に格納しています)

/// <summary>
/// サウンドを鳴らす
/// </summary>
/// <param name="uriString"></param>
/// <param name="isLooped"></param>
private static void Play(string uriString, bool isLooped)
{
 StreamResourceInfo streamInfo = Application.GetResourceStream(new Uri(uriString, UriKind.Relative));
 SoundEffect soundEffect = SoundEffect.FromStream(streamInfo.Stream);
 SoundEffectInstance instance = soundEffect.CreateInstance();
 instance.IsLooped = isLooped;
 instance.Play();
}

2012年1月14日土曜日

Silverlight 5 Tools 日本語版が公開


やっと、Silverlight 5 Tools の日本語版が公開されました。
Microsoft の下記サイトには、「12月中に公開予定です 」と書かれていましたが、1月11日になってやっと公開となりました(2011年12月時点で、英語版での Silverlight 5 の開発環境はリリースされています)。
http://www.microsoft.com/ja-jp/silverlight/development.aspx
これで、私が開発しているゲーム「栄冠にゃいん」も、Silverlight 5 に移行できます。
Silverlight 5 になって、オーディオ関係が充実しているので、
これでやっと無音のゲームから、音が鳴るゲームに進化できそうです。

2012年1月5日木曜日

野球ゲーム開発中

Silverlight で、野球シミュレーションゲームを開発しています。
平たく言うと、パワプロの「栄冠ナイン」のようなゲームを開発しています。
現時点では、とりあえず戦術なしで試合が一通り進められるところまで開発しています。
(選手交代とか、バントとかもなく、選手のパラメータとかも未作成ですが。。。)


開発中のゲームは、以下のページに随時最新版をアップしています。