该教材将帮助你定位声音目录,并说明Java版声音文件是如何储存的
译者注:本教程以正版启动器默认的游戏目录为主(即游戏存储在%Appdata%/.minecraft中,如使用其他第三方启动器,默认目录一般为你的第三方启动器目录下的.minecraft中)。
声音目录 (1.7.2后版本)
1.7.2版本后声音文件在位于 indexes 目录下:
1.8 Mac OS X: ~/Library/Application Support/minecraft/assets/indexes/1.8.json
1.11 Mac OS X: ~/Library/Application Support/minecraft/assets/indexes/1.11.json
声音文件在Java版1.7.2 (准确的说为 13w42a) 与以上版本后将以Hash值的方式散步到不同的目录里,位于:
Windows: %AppData%\.minecraft\assets\objects
Mac OS X: ~/Library/Application Support/minecraft/assets/objects
Linux: ~/.minecraft/assets/objects
定位具体的声音文件位置
找到同在“assets”文件夹下的文件夹“indexes”,在那里声音文件被sounds.json文件索引并记录。选择你要的版本并用记事本之类的编辑器打开它。打开后,它看起来是这样的:
"sounds/music/menu/menu1.ogg": {
"hash": "c157c56846f0e50620f808fecd9d069423dd6c41",
"size": 1744657
},
从这里,我们可以确定 menu1.ogg 的Hash值(或标记)为c157c56846f0e50620f808fecd9d069423dd6c41。在 objects 目录下搜索该字符串,你应该会找到一个与该字符串相同文件名的文件。这个文件就是"menu1.ogg",为游戏主界面播放的音乐之一。文件名前两个字符("c1")也能够匹配到相应的目录,知道这一点将能够帮助你快速的定位到指定文件。
定位文件后,你可以通过支持.ogg格式的媒体播放器测试它,保证它是你要找的文件。如果不能播放,试一试添加.ogg扩展名。如果还是不行,试一试别的音频文件扩展名(比如.wav)或者这就不是一个声音文件。
注:如果你不小心从初始目录中编辑或删除了这些文件,启动器将会在下一次启动时自动帮你重新下载。(启动游戏时你必须保持网络连接,否则声音目录可能不会被重置,并且导致错误。)
提取 Minecraft 音乐(OSX脚本)
在Mac系统上:
建立一个新文件(以终端操作为例)vi minecraft-music-extractor.sh
#!/bin/sh
#
# Description: Minecraft Music Extractor
MINECRAFT_ASSETS_DIR="/Users/YOURUSERNAMEHERE/Library/Application Support/minecraft/assets"
OUTPUT_DIR="/Users/YOURUSERNAMEHERE/Desktop"
JSON_FILE="/Users/YOURUSERNAMEHERE/Library/Application Support/minecraft/assets/indexes"
for ENTRY in `cat $JSON_FILE | python -c 'import sys,json; from pprint import pprint; data = json.load(sys.stdin); pprint(data);' | grep music | awk -F\' '{print $2 "," $6}'`
do
echo "Processing $ENTRY..."
FILENAME=`echo $ENTRY | cut -d, -f1 | sed 's:.*/::'`
FILEHASH=`echo $ENTRY | cut -d, -f2`
#Locate the file in the assets directory structure
FULLPATH_HASHFILE=`find "$MINECRAFT_ASSETS_DIR" -name $FILEHASH`
#Copy the file
cp "$FULLPATH_HASHFILE" "$OUTPUT_DIR/$FILENAME"
done
Update the variables (e.g. MINECRAFT_ASSETS_DIR) with your correct directory paths
Run the script
旧版本的声音目录 (pre-1.7)
如果你的游戏版本在1.7.2以前,声音目录将如下:
Windows: %AppData%\.minecraft\assets 或 %AppData%\.minecraft\assets\virtual\legacy
Mac OS X: ~/Library/Application Support/minecraft/assets 或 ~/Library/Application Support/minecraft/assets/virtual/legacy
Linux: ~/.minecraft/assets 或 ~/.minecraft/assets/virtual/legacy
如果你同时有新旧两种版本,新版本与旧版本的声音文件都将存在。旧版本目录仅适用于 pre-1.7 版本。
Legacy 子目录
在 .minecraft\assets\virtual\legacy\sounds中,有13个子目录:
ambient: 环境与雨/雷
damage: 玩家受伤的声音
dig: 打破方块
fire: 火的声音
firework: 烟花效果音
liquids: 水或熔岩等液体的声音
minecart: 矿车移动的声音
mob: 生物的声音
music: C418编曲的背景音乐
random: 吃东西到爆炸等各种音效
records: 唱片的音乐
step: 脚步声
tile: 活塞
如果你直接在声音目录中对声音编辑、新增或移除,且在连接到网路时执行启动器并启动Minecraft,将会自动重新下载并还原任何你在声音目录下所做的更改, 删除你的工作,这项情况适用于新的和旧的声音目录。在启动游戏前断开网络连接不会还原任何更改,但不建议这样做。安全储存自定义声音的最佳方法是创建自己的资源包。
视频教程
了解更多