このプラグインはbveのモーター音を電流値によって音色を変化させたり、車内の残響を再現することによって、モーター音をもっとリアルに鳴らすことを目的としたプラグインです。以下の機能が実装されています。
車内の残響(モーター音のノッチオフ・オン時の音量フェードイン・フェードアウト)
電流値によるモーター音の音量変化・音色変化
VVVFインバータ制御車のノッチオフ・オン時のパルスモード変化再現
界磁チョッパ制御車のゼロアンペア制御起動中に鳴る音の再現
地下線やスラブ軌道での反響音再現
惰性時のWN振動音再現
モーターファンの音の再現
架線電圧による音程変化の再現(模擬)
このプラグインは上級者向けです。再現にはXAudio2を使用しています。
以下は旧版の使い方です。
ファイルは
MotorMaster.dll
Mparameter.txt
xaudio2_9redistdll
から成ります。これらのファイルを同ディレクトリに配置し、使用します。
Mparameter.txtに制御するために必要な情報を入力し、使用します。MParameter.txtの先頭にヘッダーを記述します。ヘッダーは
bvets motormasterplugin ver 1.1.0
です。
~以下bveMotorNoiseと異なる箇所~
音声ファイルはWave PCMフォーマット 44.1kHz 16bitを推奨します。
速度に対するピッチとボリューム記述したcsvファイルは、必ず速度が昇順で記述されている必要があります。
振幅やピッチはそれぞれ二点必ず必要です(一点だけでは鳴りません)
対応OS:Windows7以降のWindowsOS
※当サイトで公開されている阪急車両データにはMotorMasterプラグインを使用しています。そちらをサンプルデータとしてご利用ください。
MParameter.txtの具体的な書き方についてもそちらをご参照ください。
速度に対するピッチとボリュームを記述したcsvファイル(カンマ区切り)の相対パスを記述します。Frequencyにピッチ、Volumeにボリュームのパスを入力します。
テーブルはA列に速度が昇順となるよう記述します。音を鳴らすには最低2点の速度-ピッチorボリュームが必要です。
このセクションはモーター音インデックスに対応するwavファイルのパスを記述します。相対パスで記述します。
例:インデックス = 〇〇\▽▽.wav
bve5のmotornoise.txtとsound.txtの[Motor]セクションに相当します。
CurrentVolumeChenge
電流値によって音量を変化させるかさせないかを設定します。trueかfalseで指定します。デフォルトはfalseです。
CurrentEQChenge
電流値によって音色を変化させるかさせないかを設定します。trueかfalseで指定します。デフォルトはfalseです。
ZeroCurrentFirstOrderLag
車体残響係数を入力しますNoLoadCurrentと0[A]との間の車体残響の残り具合や、音の立ち上がりの緩慢さを決める重要なパラメータです。数を小さくするとフェードアウトがなめらかになり、大きくするとフェードアウトしないようになります。
デフォルト値は0.012ですが0.008から0.015程度の間の値を入力するのが望ましいです。
このパラメータは各行の速度補完される値にも影響します。
参考・・・よく響く(0.008)、やや響く(0.012)、普通くらい(0.016)、減衰早め(0.04)、界磁チョッパ車(0.00085)
PowerNoLoadCurrent,BrakeNoLoadCurrent
力行または回生時の無負荷電流[A]を入力します。Current0の最小の値にするのが望ましいです。
PowerCurrentVolumeRatio,BrakeCurrentVolumeRatio
音量や音色を変化させるときに基準となる力行または回生時の電流値[A]を入力します。
PowerNoLoadCurrentVolumeRatio,BrakeNoLoadCurrentVolumeRatio
電流値によって音量を変化させるとき、無負荷電流の時のモーター音の音量を[dB]で入力します。
BaseFrequency,MiddleFrequency,TrebleFrequency,PresenceFrequency
電流値によって音色を変化させるとき、無負荷電流時に強調あるいは減衰させる周波数帯域を入力します。4つの周波数を決めます。値は20[Hz]から20000[Hz]です。
BaseGain,MIddleGain,TreBleGain,PresenceGain
電流値によって音色を変化させるとき、無負荷電流時に強調あるいは減衰させる周波数帯域の音量を入力します。4つの音量を決めます。単位は[dB]で-18[dB]から18[dB]の間で指定します。
BaseBand,MiddleBand,TreBleBand,PresenceBand
電流値によって音色を変化させるとき、無負荷電流時に強調あるいは減衰させる周波数帯域の幅を指定します。値は0.1~2.0の間で指定します。値が大きいほどFrequencyで決めた周波数を中心として大きく音色を変化します。
ReverbBeaconNumber
残響再現をするとき、路線側で設定する番号を入力します。
路線側ではBeacon.Put(ReverbBeaconNumber,0,リバーブのかかり具合0~100);と設定します。
Beaconを設定した地点から1秒間かけてリバーブのかかり具合に設定した値になります。リバーブがかかっていない状態に戻すにはリバーブのかかり具合に0を入力してください。
リバーブのかかり具合(参考)・・・跨線橋の下(10)、スラブ軌道(25)、高架道路の下(35)、地下駅(70)、トンネル(100)
ExclusionReverbIndex
残響再現をするとき、残響再現を反映させないインデックスを入力します。カンマ区切りで複数指定できます。
CurrentVolumeLimit(任意)
電流値によって音量を変化させるときCurrentVolumeRatio以上の電流のときにGainが1以上にならないようにします。falseにするとトルク分電流に比例して音量が変化します。デフォルトはtrueです。
CurrentEQLimit(任意)
電流値によって音色を変化させるときCurrentVolumeRatio以上の電流のときにイコライザで変化させる音量がGainで決められた以上にならないようにします。falseにするとトルク分電流に比例して音色が変化します。デフォルトはtrueです。
CurrentVolumeRatio=100[A]
NoLoadCurrentVolumeRatio=-6[dB]
NoLoadCurrent=20[A}
に設定した場合の例を示します。CurrentVolumeLimitがfalseの場合では破線のように無負荷電流以上では音量がほぼ比例し変化します。
CurrentEQは上記のパラメータに変化させる周波数をバンド帯域を追加することで、無負荷電流時に低音を弱めたり、様々に変化させることができます。
JerkModulationChangeMode
ジャーク制御時にインバータが電圧を変化させる際に鳴る音の、鳴らし方を設定します。1から4の値で指定します。
モード:1
CVVFStartSpeed以上で電流がJeakModeChengeCurrent以下で力行ノッチVoltageMaxNotch未満のとき、指定の音源を再生します。
モード:2
全速度域で電流が0[A]から変化する際に以下で設定した速度域を指定した時間で再生します。速度は線形補間されます。モード2の場合は以下のパラメータの記述が必要です。
PowerJerkUpMaxSpeed:ジャーク開始からPowerJerkUpTime経った時に鳴らす速度
PowerJerkDownMinSpeed:ジャーク開始時に鳴らす速度
PowerJerkUpTime:電圧最大までかかる時間[ms]
PowerJerkDownTime:電圧最大までかかる時間[ms]
(上のPowerをBrakeに書き換えて合計8つ記述します)
モード:3
ジャーク制御時に何も特殊な処理を行わないモードです。
モード:4
SynchronousModeStartSpeed以下はモード2、超えるとモード1を使用するモードです。それぞれのモードに必要なパラメータの記述が必要です。
PowerJerkModeChengeCurrent,BrakeJerkModeChengeCurrent
JerkModulationChangeModeが1のとき、パルスモードを変化させる電流値を記述します。
PowerSynchronousModeStartspeed,BrakeSynchronousModeStartspeed
JerkModulationChangeModeが4のとき、同期変調が開始する速度を入力します。
PowerCVVFStartSpeed,BrakeCVVFStartSpeed
加速時もしくは減速時に1パルスまたは出力電圧が最大になる速度を記述します。
VoltageMaxNotch
JerkModulationChangeModeが1もしくは4のとき、力行ノッチの電圧が最大になるノッチ数を入力します。
SynchronousModeJerkIndexは電流がJeakModeChengeCurrent以下とVoltageMaxNotch以下、両方の条件を満たした時に再生されます。
SlipVelocityCoefficient
滑り速度を入力します(bve純正車両パラメータと同じ)
SynchronousModeJerkIndex
JerkModulationChangeModeが1のとき、ジャークモードの時再生される音源のインデックスを指定します。ピッチや音量の情報はモーター音テーブルでそれぞれ指定された値になります。
カンマ区切りで複数記述できます。
GearIndex
ジャーク制御で電圧変化中に特殊な再生処理を行ってていても変わりなく鳴らすインデックスを指定します。
カンマ区切りで複数記述できます。
JerkModulationChangeModeが1・2・4のときに関係なく鳴らす場合に使用します。駆動装置の音や常にピッチが速度に比例して鳴る音源のインデックスを記述します。
NotchONPoleEstimationIndex
ゲートスタート時、速度推定の際にモーターから鳴る音を指定します。
カンマ区切りで複数記述できます。
NotchOFFPoleEstimationIndex
ゲートオフ時、速度推定の際にモーターから鳴る音を指定します。
カンマ区切りで複数記述できます。
ZeroAmpereStartSpeed
界磁チョッパ制御でゼロアンペア制御で断流器が入りっぱなしになる速度を記述します。
ZeroAmpereEndSpeed
界磁チョッパ制御でゼロアンペア制御が切れる最低速度(ブレーキ時)を入力します。
ZeroAmpereCoastingEndSpeed
界磁チョッパ制御でゼロアンペア制御が切れる最低速度(惰行時)を入力します。
ZeroAmperePanelIndex
BVEの運転台パネルで断流器入表示灯などのインデックスがあればそれを入力します。デフォルトではfalseとなっているので上記2つのパラメータでゼロアンペア制御起動中か判断します。
GearIndex
駆動装置のインデックスを入力します。ゼロアンペア制御中には音量がゼロになります。
カンマ区切りで複数記述できます。
SubstationSpacing
変電所間隔を入力します。単位は[m]です。
InitialPosition
始点からの最初の変電所までの距離を入力します。
FirstUpOrDown
始点から電圧が上がっていくのか下がっていくのか入力します。UpもしくはDownと入れます。
VoltageFluctuationRate
変調の音程の振れ幅を入力します。0.01から0.05の間にするのが好ましいです。
※必ずモーター音が設定されている状態で使用する必要があります。[Motor]セクションより後に記述します。
bveのSound指定とは異なり、インデックス番号にそれぞれ対応した音を割り振ります。以下を制御するパラメータは下記のセクションに追加で記述します。
FanIndex
電動機ファンの音を再生する場合のみ記述します。指定されたインデックスは常に再生されます。速度やピッチはモーター音音量テーブル・ピッチテーブルにそれぞれ記述します。
WavPath→WN振動音までの相対パス
CriterionCurrent
WN音を再生する場合のみ記述します。加減速を開始した際に音量を0にする電流の絶対値[A]を入力します。WN音を再生する場合は必ず[WN]セクションの記述が必要です。
90キロでピッチ1、ガイン1になります。