#サウンドsound

1 messages · Page 1 of 1 (latest)

shadow leaf
#

リソパの中に音関連を定義しているsounds.jsonがあるのでそちらを変更します

#

block_soundsの中にブロックのIDに続けて破壊した時/設置した時などの音が指定されているので、そちらを変更することで設置時の音を変えられます

#

ありません

#

音はカスタムした物に置き換えたい感じですか?

#

ではsounds/sound_definitions.jsonで定義した音のIDをsounds.jsonで指定する形になりますね

#

書き方はバニラのものを参考にしてみてください

#

ですね

#

block/glass_placeが音のファイルがある場所を指していて、ここでは"blockフォルダ内のglass_place(.ogg)ファイル"という意味です

#

そしてblock.glass.placeがsounds.jsonで使われる音のIDです

#

wool_placeですね

#

#

ですね
(基本的には音のファイルはsoundsフォルダ内に置かれてますが)

shadow leaf
shadow leaf
#

format_versionは基本的にはサンプルのまま変えないでください

#

ここはマイクラのバージョンではなくjsonの書き方のバージョンなので、変に変えると動かなくなってしまいます

#

weightは複数の音をsoundsに入れたときにどれくらいの割合でそれを鳴らすか、という物です

#

今回は1つしか入れていないからどの数でもOK

shadow leaf
#

合ってそうですね

shadow leaf
shadow leaf
#

ブロック以外も入ってたような

#

block_soundsの中がブロック周りの音ですね

#

3273行目にentity_soundsがあるので、2~3272行目がブロックの部分です

#

この中のambient.basalt_deltas.additionsが音のIDに当たる部分です

#

それをここと置き換えです

#

流石に全ブロック手作業で変えるのはしぬから自動化した方がよさそう()

#

そこは別ですね

#

まとめると

  • sound_definitions.jsonで音のIDと音声ファイルを紐付け
  • sounds.jsonで何をした時にどのIDの音を鳴らすかを設定
    って感じ
#

yes

#

ちょっと怪しい気がするから今のsound_definitions.json見せて

shadow leaf
#

かっこ閉じる順番と数が足りてないです

#

音のIDはそれでいいの?

shadow leaf
#

definitionsはok

#

あとは
今回は全ての設置音を変えたいので、sounds.jsonの中でブロックの設置音のIDを全てblock.okublock_placeに変更する必要があります

shadow leaf
#

もう一度確認しておきますがバニラの全てのブロックの設置音を変えたいんですよね?

#

#old-サウンド で言われているように、place内に書かれている音のIDを変更することでそのブロックの設置音を変えられます

#

こちらの書き方は間違っている+全ブロック分書き換える必要があるので、まずはバニラのパックからsounds.jsonをコピーしてきましょう

#

yes

#

sounds.jsonではこのように書かれています

#

なのでここではplace.amethyst_blockをblock.okublock_placeに変更すると、amethyst_blockの設置音が変わります

#

全ブロックを変更なのでブロックID分全て書き換える必要がありますね()

shadow leaf
#

プログラム等でJSONを編集することです

#

pyでもjsでもなんでもok

#

今日の夜あたりになりそうですが作ってみますね

#

200個あるけどどれのことかな()

shadow leaf
#

block.clickも音のIDです

#

sound_definitionsで探すと見つかると思います

#

ついでにコードも貼っとく```js
const fs = require('fs')
const sounds = require('./sounds.json');

const NEW_SOUND_ID = "block.okublock_place";

const newSounds = {
"block_sounds": {}
}

for (const [key, soundData] of Object.entries(sounds["block_sounds"])) {
soundData.events.place.sound = NEW_SOUND_ID;
newSounds["block_sounds"][key] = soundData;
}

fs.writeFileSync('./new_sounds.json', JSON.stringify(newSounds, null, 2))

#

全部書き換えたよ

shadow leaf
#

音のIDがblock.okublock_place

#

block.clickは関係ありませんよ

shadow leaf
#

でいいと思われ

#

というと?