2007/7/14

2つ以上の警笛を切り替えて鳴らすスクリプト  VRMスクリプト禅問答
【怎麼生】
ここに書いても仕方ないが、愛魔に提案がある。

警笛音を3分割にして長短自在に鳴らせるようにしてくれ。
始め.wav
ループ.wav
終わり.wav
みたいに。

鉄道総合板@2ちゃんねる 現行VRMスレ 469氏のカキコより
※リンク先は保全用のはてブ
【説破】 4.0.6.1

んなことしたら、wavファイルの切れ目に確実にノイズが乗って、使いものになりませんから、残念。

とカビの生えたフレーズで突っ込んで終わっても芸がないので。


469氏の望むところは理解できる。VRMビュワーが、任意のwavリソースを再生するのではなく、自前のシンセサイザーを持っているのであればそれ(スペースキーを押している時間で音色が変化する)もありかとは思うが、そんな実装はあり得ないだろうし、仮にそうなったとして誰が音色データ(wavではあり得ない)を用意すんだよ、と果てしなく疑問がふくらんでしまう。

ならば、警笛音を収めた複数の音声リソース(wavファイル)を切り替えて鳴らした方が手っ取り早いし確実だしノイズも乗らないし、なにより、どんなに異なる音色(空笛、電気笛、音楽笛など)だって好き勝手に切り替えて鳴らせる。

で、しばしば同様のニーズをあちらこちらで目にするような気もするので(気のせいかも)サンプルコードを書いておくことにする。
[編成スクリプト]

// 編成リソースモード設定
SelectTrainResource 1

// フォーカスイベント設定
Var Tmp
SetEventFocusIn MtdSetKey Tmp
SetEventFocusOut MtdResetKey Tmp

// キーイベント管理変数
Var Key1
Var Key2
// Var Key3

// キー設定
BeginFunc MtdSetKey
SetEventKey this MtdHorn1 Key1 m
SetEventKey this MtdHorn2 Key2 n
// SetEventKey this MtdHorn3 Key3 b
EndFunc

// キー解除
BeginFunc MtdResetKey
KillEvent Key1
KillEvent Key2
// KellEvent Key3
EndFunc

// mキーに対応する警笛を鳴らす
BeginFunc MtdHorn1
CallCar MtdSetHorn1
PlayHorn
EndFunc

// nキーに対応する警笛を鳴らす
BeginFunc MtdHorn2
CallCar MtdSetHorn2
PlayHorn
EndFunc

// bキーに対応する警笛を鳴らす
// BeginFunc MtdHorn3
// CallCar MtdSetHorn3
// PlayHorn
// EndFunc


[車両(先頭車)スクリプト]

// mキーに対応する警笛を設定する
BeginFunc MtdSetHorn1
SetWaveHorn 1
EndFunc

// nキーに対応する警笛を設定する
BeginFunc MtdSetHorn2
SetWaveHorn 2
EndFunc

//BeginFunc MtdSetHorn3
// bキーに対応する警笛を設定する
//SetWaveHorn 3
//EndFunc
編成リソースのID1番に組み込んだwavをmキーで、2番をnキーで警笛として鳴らすことが出来るスクリプト。コピー&ペーストするだけで動く(はず)。3つ目、4つ目の音色を使いたい場合は、上掲スクリプトで黄色で示した部分を参考に、書き加えてもらえばOK。

どうでもいいけど。
ここに書いても仕方ないが
この部分だけ、心底同意した。
0

2007/7/15  15:02

投稿者:ちびて
参考までに、BVEではCP音が.wav形式で三分割されていて、データにもよりますが、あまりノイズが乗りません。

コメントを書く

この記事にはコメントを投稿できません




teacup.ブログ “AutoPage”
AutoPage最新お知らせ