8月, 2013 のアーカイブ

結構時間は立ちましたがPSMゲームジャムでMonoGamesを使った際、音の再生で問題が有ったので音の再生に関してメモします (ドキュメントを見た方が早い気もしますが・・・)

 

今回は効果音の再生についてメモします。PSMではWave形式のファイルが効果音として使用されており、現在のバージョンでは他の形式はサポートしていないみたいです。

 

効果音の再生にはSce.PlayStation.Core.Audioネームスペース内にあるSoundクラスと、SoundPayerクラスが使用されます

 

Soundクラスは効果音自体を保持するクラスです。Soundクラスを生成するにはプロジェクトに追加している効果音ファイルのパスを渡すか、音データを表すByte型のデータを渡す事が出来ます。Byteデータの方はプログラム上で変換したり、別のファイル読み込みで獲得したデータを使う時等に使用できます。

 

Sound se = new Sound("/Application/SE/Select.wav" );

 

データを読み込みSoundクラスを作った後、今度は読み込んだ音を再生する為のSoundPlayerを作成します。SoundPlayerはSoundクラスのCreatPlayer()メソッドを呼び出す事で生成されます。

 

SoundPlayer soundPlayer = se.CreatPlayer();

 

後はSoundPlayerのPlay()メソッドを呼ぶだけで再生できます。

 

soundPlayer.Play();

 

ドキュメントにも書いてありますが、一つのSoundクラスから複数のSoundPlayerを作成する事が出来、それにより同じ効果音を別々に再生する事が出来ます。

 

再生する音の音量等はSoundPlayerクラスで調整できます。詳しくはドキュメントを参照した方が良いと思いますが、細かい調整意外で使用しそうなプロパティを書いておきます:

 

音量をの変更( 0.0f~1.0f の間。0.0fが0%で1.0fが100%)

soundPlayer.Volume = 0.75f;

ループ再生の切り替え

soundPlayer.Loop = false;

再生の状態( 停止中か再生中か)

// 停止中の場合は再生する処理
if ( soundPlayer.Status == SoundStatus.Stopped )
{
     soundPlayer.Play();
};

 

今回は以上です。

次回は多分BGMの再生をメモします。

今回はUnityで2プレイヤー用のゲームみたいに、画面を半分に分割する方法をメモります。

 

こんな感じになります:

わかりにくかもしれませんが、片方のブロックだけが動いているのを、両方の画面からみられます。カメラの範囲がわかる様に、背景色も変えています。

 

Unity上で手っ取り早く実装するのは結構簡単です。

まず、カメラを2つ用意してください(Main Cameraを複製するだけでも大丈夫です)。

下記の画像では、解り易くする為に名前を変えています。

camera

次に、カメラのコンポーネント内の”Normalized View Port Rect”を変更して設定を行います。この値は画面のどこで描画するか等を設定します。値は0から1の間なので、この場合0% から100%考える事が出来ます (0.5の場合、50%になります)。

まず、画面を左右に分割する様に設定します。

両方のカメラの”Normalized View Port Rect”プロパティの、W値を0.5に変更します。これにより、カメラは画面の半分に内容を表示します。

camera2

次に、右画面側に表示したいカメラの”Normalized View Port Rect”プロパティの、X値を0.5に変更します。これにより、画面の真ん中から描画を始めます。

camera3

これで終了です。後は画面に映し出す中身を作るだけです。