このプラグインはbveのモーター音を電流値によって音色を変化させたり、車内の残響を再現することによって、モーター音をもっとリアルに鳴らすことを目的としたプラグインです。以下の機能が実装されています。
車内の残響(モーター音のノッチオフ・オン時の音量フェードイン・フェードアウト)
電流値によるモーター音の音量変化・音色変化
VVVFインバータ制御車のノッチオフ・オン時のパルスモード変化再現
界磁チョッパ制御車のゼロアンペア制御起動中に鳴る音の再現
地下線やスラブ軌道での反響音再現
惰性時のWN振動音再現
モーターファンの音の再現
架線電圧による音程変化の再現(模擬)
MG、整流子音の再現
このプラグインは上級者向けです。再現にはXAudio2を使用しています。
dllファイルの配置の自由度が向上しました
BVEをポーズさせたときとアクティブウインドウから外れたときに音声の再生が停止されるようになりました
ビルト構成を変更しこれまで環境依存でエラーが出ていたパソコンでも動く可能性が向上しました
BVE6(64bit版)を追加しました
[MG][Brush]の説明を追加しました
その他細かいパラメータの追加
ダウンロードします。
MotorMaster.dllをRock_On氏公開のDetailManeger.dllのDetailModules,txtに相対パスを記述する。もしくはBVE車両ファイルのAts = にパスを記述する。
下部記載のファイル配置方法を参考にMParameter.txtを作成し、パラメータを記述する。
MParameter.txtには最低限以下の記述が必要です。
BVEのmotornoiseに相当する
[Power]
[Brake]
Soundパスの[Motor]セクションに相当する
[Motor]
に、それぞれモーター音テーブルへの相対パスと、音声への相対パスを記述します。絶対パスには対応していません。ご了承ください。そして
[SoundMixing]
ZeroCurrentFirstOrderLag = 0.012
と記述すれば動作します。
※当サイトで公開されている阪急車両データにはMotorMasterプラグインを使用しています。そちらをサンプルデータとしてご利用ください。
MParameter.txtの具体的な書き方についてもそちらをご参照ください。
音声ファイルはWave PCMフォーマット 44.1kHz 16bitを推奨します(ハイレゾ音源には非対応)
速度に対するピッチとボリューム記述したcsvファイルは、必ず速度が昇順で記述されている必要があります。
振幅やピッチはそれぞれ二点必ず必要です(一点だけでは鳴りません)
Root
├── DetailManager.dll
└── Detailmodules.txt ← ここから別フォルダの MotorMaster.dll を指定する
別フォルダ
├── MotorMaster.dll
└── MParameter.txt
この使い方は、Vehicleを一つ用意して編成ごとのバリエーション展開を少なくする場合におすすめです。Detailmodulesから別フォルダまたは同階層にMotorMaster.dllとMParameter.txtを用意します。
Root
├── DetailManager.dll
├── Detail modules.txt ← ここから別フォルダの MotorMaster.dll を指定する
└── MParamter.txt
別フォルダ
├── MotorMaster.dll
└── 他のdllなど
この使い方は、編成ごとにモーター音の違いを再現する場合や、たくさんの形式をパック公開する場合におすすめです。MotorMaster.dllを一つ配置して、編成ごとにdeteilmodulesを用意します。要するにdllを一つだけ用意することによって、将来MotorMasterプラグインをアップデートする場合やバージョン違いによる動作違いを防ぐことができます。
フォルダ
├── MotorMaster.dll
└── MParamter.txt
この使い方は、純粋に車両ファイルのAts = のパスにMotorMaster.dllを指定する場合に使用します。主にテスト用です。
速度に対するピッチとボリュームを記述したcsvファイル(カンマ区切り)の相対パスを記述します。Frequencyにピッチ、Volumeにボリュームのパスを入力します。
テーブルはA列に速度が昇順となるよう記述します。
このセクションはモーター音インデックスに対応するwavファイルのパスを記述します。相対パスで記述します。
例:インデックス = 〇〇\▽▽.wav
bveのmotornoise.txtとsound.txtの[Motor]セクションに相当します。
音声制御の細かな設定を行うセクションです。モーター音は電流値によって音量を変化させたりイコライザのかかり具合を変化させるのでその境目となるパラメータを入力します。
VVVFインバータ制御電車で、ノッチオフ、ノッチオンしたときに音程が明らかに変化したり非同期音が聞こえる音の再現を目的とするセクションです。
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です。
MasterVolume(任意※Ver1.2より追加)
最終的に出力されるモーター音の音量を[dB]で記述します。Fanインデックスなど他の音響には作用しません。
ThinBlock(任意※Ver1.2より追加)
最終的に出力される音量を2[dB]大きくします。trueかfalseで指定します。すべての音響に作用します
ReferenceSpeed(任意※Ver1.2より追加)
速度を絶対速度で計算するか指定します。= absにするといわゆるキハジ計算された速度で計算します。
ParallelMode(任意※Ver1.2より追加)
MotorMasterプラグインをdetailmanegerにて2つ並列に読み込む場合に記述します。trueかfalseで記述します。
主に空転滑走を更にリアルに表現するためのパラメータで負荷が二倍になるため超上級者向きです。
詳しい説明はこちら
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キロでPitch1、Gain1になります。
惰性中の振動音の再生を目的としています。
MGWave
MG音までのパスを記述します。
SPPanelIndex
抵抗制御車で直並列制御を行う電車の場合、運転台パネルに「並列」などの表示灯がある場合はそのインデックスを入力します。直並列制御が始まると電圧降下が大きくなり音程が下がるのでそれのきっかけとして利用します。
BrushWave
ブラシ音までのパスを記述します。
30キロでPitch1、Gain1になります。このパラメータは直流電動機車両が、終端駅について折り返して起動するときに独特なブラシの擦れる音を再現することができます。
2024年10月1日 BVE6に対応した64bitDLLを公開
2022年頃 Windows8.1に対応したバージョンを公開
2018年頃 Ver1.0 初版公開