MSC_PLAY

Last-modified: 2008-04-17 (木) 22:02:12

関数群名

SACT2

機能

 **BA.aldにリンクされた音楽を再生します。

定義

bool MSC_PLAY(int nLinkNum, int nFadeInTime = 1, int nVolume = 100)

引数

nLinkNum
 音楽データのリンク番号
nFadeInTime
 フェイドイン時間(ミリ秒)
nVolume
 音量(0~100)

戻り値

ture成功
false失敗

解説

 音楽再生です。効果音と違って、再生しっぱなしのまま処理を進められます。
 再生中の音楽を停止せずにMSC_PLAYを呼び出した場合、フェイドイン時間でクロスフェイドされます。
(再生中の音楽をフェイドアウトしながら新しい音楽をフェイドインする。)

 

 ただし以下のような処理は行うべきではありません。


MSC_PLAY(ランスⅣ+01,10000);
MSC_PLAY(ランスⅣ+13,10000);
MSC_PLAY(ランスⅣ+02,10000);

 このように続けて再生する場合、「使用中のチャンネルをDeleteせずCREATEした……」といったエラーメッセージがアウトプットに出力されます。また、4曲がフェードしている状態の場合、実行中のエラーが出ます。

 

※(これは標準でBGMチャンネルは4つに振り当てられているためです。
"SACT\SOUND\music_system.jaf"の先頭にある、[g_nSactMusicDataMaxNum]の値を変えることで、
多分もっと増やしたり減らしたりできる)

 

詳細不明?
CTRLで飛ばしていると、フェードが無視されることがあります。条件は不明。
フェード時間によっては音楽が二つ重なったまま鳴り続けることもあります。こちらも条件不明。

 

参考:

 

基本的にMSC_PLAYは一度MSC_STOPで止める関数を作って使用した方が良いようです。
アリスソフトの作品でも、戦国ランスくらいしかクロスフェード使ってませんし。

サンプル

 なし

サンプル出力例

 なし

定義位置

System\SACT\SOUND\music.jaf

関連

MSC_STOP