https://linen.dev logo
EDを使用したときに音声ファイルを実行
# forum
i
列車がEDブレーキを使用したときに、音声ファイルを実行する方法をわかる人いませんか?
h
音声スクリプトでEB(Notch:-8)に投入した瞬間に1度だけ再生するということであれば、車両のノッチを取得して1度だけ再生する仕組みを作るといいと思います
Copy code
js
function onUpdate(su) {
    // ⋮
    //ブレーキ音(EB投入)
    var entity = su.getEntity();
    var notch = entity.getNotch();//ノッチを取得 -8~5
    if (notch === -8) {//EB投入時
        su.playSound("ドメイン", "音声名", 1, 1, false);//falseにすることで一度だけ再生する
    }
    else {
        //非ループ音源も一度停止しないともう一度再生できないため、B7以前で停止処理を挟む
        su.stopSound("ドメイン", "音声名");
    }
    // ⋮
}
i
失礼ですがドメインというのは、Sound_(ドメイン)という感じでしょうか?
h
"sound_〇〇"がドメインになります
i
このスクリプトは音声を流すためのオブジェクトが必要ですか?
h
"オブジェクト"が何を指しているか分からないので推測ですが、 モデル上のオブジェクトという話であれば必要ないです(そもそも音声スクリプトの話なので) 音声ファイルのことを指してるなら音声ファイルは必要です(ないと再生できないので)
i
Sound.jsonの方は "名前": { "category": "neutral", "sounds": [ "ファイル場所" ] }, これで良いのでしょうか?
h
返信遅くなってしまってすみません。jsonは以下のような感じで書いていきます
Copy code
JSON
{
  "音声名": {
    "category": "master",
    "sounds": [
      {
        "name": "ファイルパス",
        "stream": false    長い音声はtrueにすると再生時にフリーズしなくなる
      }
    ]
  },
  ...以下繰り返し
}
i
このコード追加のみで動作しますか?
h
おそらく動くと思います
2 Views