人生エクソダス

なんてことのない日々のこもごもをつらつらと書き連ねたり連ねなかったりする。

MUGEN小話 3 playsndでもっと大きい音にしたいときのあれこれ

2020-01-12 19:00:13 | MUGEN

 本当はmugen@wiki chaosで見て網羅できれば一番良いが、1.0以降の記述についての解説が少ないので、stageのBGM音量調整が昔はbgvolumeで良かったけど今はbgmvolumeじゃないと機能しない、とか、キャラクターの音調整もvolumeじゃなくてvolumescaleだとか、どっかのbbsに書いてあるのを検証して正誤判断しないといけないのがしんどい。

 ちなみにキャラクターの声とか、技しゃべってるときに殴られたら音を止めるようにchannel=0をつけたりするが、これを書くと音が埋もれて普通の時にも音量が小さくなってしまう。手っ取り早いのはchannel=0を消して同じステートをコピペするもの。ただ、これにすると叩かれたりKOされた時も技名を叫んでたりして(要は音が止まらないので)滑稽なので、movetype=hのときにstopsndになるよう記述すれば喰らい状態の時とそうでない時で音声をコントロールできる。ただ貴重なvarを1枠使ってしまうので、そこはそういうものと断念するか、helperは別枠でvarを保存できるのでishelperをtriggerに入れて判断させてもいい。ただ私はそのやり方を知らない。

;殴られたら音止めます
[state -3, ototomemas]
type=stopsnd
trigger1=movetype=h
channel=2
ignorehitpause=1
[state -3, ototomemas]
type=stopsnd
trigger1=movetype=h
channel=3
ignorehitpause=1
[state -3, ototomemas]
type=stopsnd
trigger1=movetype=h
channel=4
ignorehitpause=1

;パゼストバイフェニックス
;降下
[state -3, voice pb-phoenix raid]
type=playsnd
triggerall=time=1
trigger1=stateno=2110
value=s12101,var(0)
channel=2
[state -3, voice pb-phoenix raid]
type=playsnd
triggerall=time=1
trigger1=stateno=2110
value=s12101,var(0)
channel=3
[state -3, voice pb-phoenix raid]
type=playsnd
triggerall=time=1
trigger1=stateno=2110
value=s12101,var(0)
volume=44
volumescale=44
channel=4

 ↑みたいにすれば、喰らったらchannel=2~4の音を止めるようにできる。

 playsndを重ね掛けしているのは、所詮一個のplaysndで音量最大にしても効果音で埋もれるから。全く同じフレームで同じ音を出せば音が大きくなるので、記述が苦にならないならこのやり方が一番確実。ただvalueのs0000,floor(random/250)みたいにランダム要素を入れると各ステコンごとに計算するのでわやになってしまう。ステコンvarrandomとか、nullでvar(--):=floor(random/250) || 1みたいにランダムしたvarを代入するとかで同じvalueになるようにする必要がある。

 めんどくさいやり方として、sndファイルの音量を直接上げるという方法もあるが、これは本当に音を上げるだけなので音割れのケアなんかしてくれない。またモノラル*2でステレオにすれば音量も上がるが、これはsndを直接いじってできることではないので、「wavで出力」したものを編集し再取り込みしナンバリングしてようやく、というところになる。このやり方でコンプレッサーで中音域をつり上げて圧縮することで音量アップできるので、音量アップ+モノラルのステレオ化をやるならwavで出力したほうがいい。

 でも面倒でしょ。playsnd重ね掛けした方が楽だよ。



最新の画像もっと見る

コメントを投稿