全站通知:

模组:音频

阅读

    

2024-10-16更新

    

最新编辑:骑凤散人

阅读:

  

更新日期:2024-10-16

  

最新编辑:骑凤散人

来自StardewValley星露谷物语WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
sizau
骑凤散人

目录

此页面解释如何使用和编辑游戏音乐和音效(统称为声音提示(cues))。这是一篇面向模组开发者的高级指南。

音频数据

您可以通过编辑Data/AudioChanges素材以添加或编辑声音提示。新的声音提示会被添加到游戏的声音库中,因此它们可以用于任何能使用正常音频的地方(例如Music 地图属性)。


数据格式

Data/AudioChanges素材由一个“字符串 → 数据模型”查询构成,其中,键名匹配相应ID,而键值为包含下述字段的数据模型。

此素材中列出的条目描述了对声音库的重写。此重写对于当前游戏会话是永久性的,即便编辑素材以移除它。重写声音提示会清空指定条目的所有值。

字段 效果
ID 当前声音提示的唯一字符串ID。在游戏内播放声音时会用到。
FilePaths 一个绝对文件路径列表(而不是素材名称),将从中加载音频。每个文件为.ogg.wav 格式。若列出多条路径,则每次播放时选取随机路径。
Category 音频类别,决定了该音频受到游戏中选项的哪个音量条控制。应当为Default, Music, Sound, Ambient, 或 Footsteps (参见具体描述)。默认为Default
StreamedVorbis 是否应该在播放音频时从磁盘流式传输,而不是提前加载到内存中。这只适用于Ogg Vorbis.ogg)文件,否则这些文件在加载时会在内存中解压缩。默认值为false。

这是内存占用和性能之间的权衡,因此您应当考虑每条声音提示使用何值最佳:

效果
true 当声音提示不处于活动状态时,此方法会减少内存使用,但在播放时会增加对性能的影响。由于每次播放都会流式传输一个新实例,因此在声音提示处于活动状态时,多次播放音频会成倍增加内存使用和性能影响。建议用于较长的声音提示(如音乐或环境噪音),或在特定场景中很少使用的提示(例如,仅在某个事件中播放一次的声音)。
false 此方法会增加内存占用(因为它会被完全加载到内存中),但在播放时会减少对性能的影响。它可以被播放任意次数,而不会影响内存或性能(因为它只会播放缓存的音频)。建议用于音效或偶尔播放的短声音提示。
Looped 是否循环播放声音提示直到停止。默认为false。
UseReverb 是否对音频应用混响效果。默认为false。
CustomFields 此条目对应的自定义数据字段

类别列表

每条声音提示都隶属于下列五个类别之一,规定了它受制于游戏选项中具体哪个音量条:

internal ID name description
1 Default 这是一个无用的类别,一般情况下应当避免使用。
2 Music 用于音乐。对应游戏选项中“音乐音量”。
3 Sound 用于音效。对应游戏选项中“音效音量”。
4 Ambient 用于背景音,例如风声、雨声、机器轰鸣声,能够在一个场景的背景播放。对应游戏选项中“背景音量”。
5 Footsteps 用于脚步声,例如玩家或马的脚步声。对应游戏选项中“脚步音量”。

音频文件格式

游戏仅支持.ogg.wav。若您希望在游戏中使用.mp3等文件,可以使用Audacity等软件先将其转换为.wav.ogg格式。对应诸如音效的尺寸较小的声音,可使用.wav文件;但对于音乐等尺寸较大的音频,请使用压缩后的.ogg文件。

确保音乐文件尺寸相对较小(最好在2-4MB左右)。文件越大,加载对应音乐时游戏冻结的时间越长。为减少音乐尺寸,可将其转换为.ogg文件并压缩。压缩程度越大,文件尺寸越小,但过度压缩会显著减损音质。

若您正在一次打包许多声音,请留意您的模组文件大小。文件越大,人们下载您的模组用时越长。

示例

如下内容包向游戏添加了新的声音提示,并在玩家进入巴士站时播放之:

{
    "Format": "2.3.0",
    "Changes": [
        // 添加声音提示
        {
            "Action": "EditData",
            "Target": "Data/AudioChanges",
            "Entries": {
                "{{ModId}}_Music": {
                    "ID": "{{ModId}}_Music",
                    "Category": "Music",
                    "FilePaths": [ "{{AbsoluteFilePath: assets/music.ogg}}" ],
                    "StreamedVorbis": true,
                    "Looped": true
                }
            }
        },

        // 添加到巴士站
        {
            "Action": "EditMap",
            "Target": "Maps/BusStop",
            "MapProperties": {
                "Music": "{{ModId}}_Music"
            }
        }
    ]
}

审阅音频

解压音频文件

原版游戏的音频以声音库的形式存储在Content/XACT文件夹,后者存储游戏的一切音效和音乐。两个可用的声音库文件包括Wave Bank(1.4).xwbWave Bank.xwb

可使用XWB提取器提取和浏览音频文件:

工具名称 支持平台 说明
unxwb Windows, macOS 直接将XWB声音库提取为.wav文件和十六进制代码。一个直接打开和提取的工具。
在macOS上使用 
若欲在Mac上使用unxwb,则需自行搭建
  1. unxwb下载源码(点击绿色的Code按钮 > 选择下载zip)。
  2. 从Github下载makefile(下载zip按钮在右上方)
  3. 如需要,解压这两个文件
  4. 将makefile移动到源码文件夹
  5. 打开终端并输入cd Downloads/unxwb-master并回车,如果您把所有东西放在了Downloads文件夹中,否则使用cd移动到您存放源码的文件夹。
  6. 在终端中输入make并回车。若报错,尝试输入xcode-select --install并回车,此命令会自动安装开发者工具,然后再次尝试make命令。
  7. 您现在应当在那个文件夹中得到了作为Unix可执行文件的unxwb
  8. 从游戏文件夹复制Wave Bank.xwb到unxwb文件夹。
  9. 输入./unxwb Wave\ Bank.xwb并回车以从.xwb提取.wav文件。
  10. 将.wav文件移动到另一个单独的文件夹(我称之为Wave Bank)。
  11. 从游戏文件夹复制code>Wave Bank(1.4).xwb到unxwb文件夹。
  12. Wave Bank(1.4).xwb重命名为WaveBank14.xwb
  13. 输入./unxwb WaveVank14.xwb并回车以从.xwb提取.wav文件。
  14. 将.wav文件移动到另一个单独的文件夹(我称之为Wave Bank 1.4)。
  15. 现在您已分别将.wav文件提取到两个分开的文件夹中!
VGMStream插件,用于foobar2000播放器 Windows 使用整数代码和包括文件名在内的游戏代码来查看XWB声音库。具备非常便捷的文件浏览器。(出于某些原因,此工具会将音频ID加1,并循环每条声音提示。)
XACTTool Windows 将XWB声音库提取为.wav文件和整数的代码。也能操作声音库。仅支持命令行。

参见下方完整声音列表

鉴别游戏中的声音

  • 对于音乐,您可以安装的Now Playing模组(参见模组描述,以获得关于将音乐ID追加到消息的具体信息)。当音乐开始时,游戏内会显示一则用户界面消息。
  • 对于音效,您可以在SMAPI控制台输入debug logSounds。这会将游戏内所有音效写入日志,包括位置信息(如果可用)。参见控制台命令以获得更多信息。


声音列表

下面是从游戏数据中导出的原始声音库ID(参见讨论页获取导出用代码)。

关于表格各列的说明:

  • “名称”是您在游戏中会用到的东西(例如,在Music地图属性中或Game1.changeMusicTrack方法中用到的名称)。当不同声音库ID对应的音频有相同名称,则每次播放时游戏会从中随机选取一个。
  • “声音库”指示音频来自Content/XACT/Wave Bank.xwb还是来自Content/XACT/Wave Bank(1.4).xwb。每个声音库都有自己的一套声音库ID,但不冲突。
  • “声音索引”是该声音在声音库中的位置。其中,十六进制版本与您使用unxwb解压声音库得到的十六进制代码相匹配。
  • “描述”是本维基手动添加的。

另请参阅早期电子表格以获得更详细的描述。(不要从电子表格中粘贴文本到本页面,因为没有许可证!)

脚步声

name wavebank soundbank index description
decimal hexadecimal
Cowboy_Footstep Wavebank 269 0000010d 主要用于宠物的脚步声,草原之王小游戏,和各种菜单内的悬停音效(包括标题界面按钮)。
grassyStep Wavebank 22 00000016 主要用于玩家在草地上的脚步声,向筒仓中添加干草的声音,更换帽子或发型的声音,或在玛妮#6心时间中搜索灌木丛的声音。
sandyStep Wavebank 16 00000010 一种安静、窸窸窣窣的声音。当给农夫穿上新衣服时会播放这个声音。
snowyStep Wavebank 340 00000154
stoneStep Wavebank 23 00000017 当玩家选择一个物品栏位或将物品放入他们的背包中时播放。
thudStep Wavebank 24 00000018
woodyStep Wavebank 29 0000001d

音乐

name wavebank soundbank index description
decimal hexadecimal
50s Wavebank 45 0000002d
AbigailFlute Wavebank 279 00000117
AbigailFluteDuet Wavebank 280 00000118
aerobics Wavebank 55 00000037
archaeo Wavebank 0 00000000
bigDrums Wavebank 172 000000ac
breezy Wavebank 281 00000119
caldera Wavebank 383 0000017f
Cavern Wavebank 65 00000041
christmasTheme Wavebank 305 00000131
Cloth Wavebank 67 00000043
CloudCountry Wavebank 190 000000be
clubloop Wavebank 102 00000066
cowboy_boss Wavebank 267 0000010b
cowboy_outlawsong Wavebank 277 00000115
Cowboy_OVERWORLD Wavebank 261 00000105
Cowboy_singing Wavebank 262 00000106
Cowboy_undead Wavebank 270 0000010e
crane_game Wavebank(1.4) 12 0000000c
crane_game_fast Wavebank(1.4) 13 0000000d
Crystal Bells Wavebank 64 00000040
Cyclops Wavebank 124 0000007c
desolate Wavebank 40 00000028
distantBanjo Wavebank 347 0000015b
EarthMine Wavebank 64 00000040
EarthMine Wavebank 65 00000041
EarthMine Wavebank 66 00000042
echos Wavebank 49 00000031
elliottPiano Wavebank 295 00000127
EmilyDance Wavebank 357 00000165
EmilyDream Wavebank 358 00000166
EmilyTheme Wavebank 359 00000167
end_credits Wavebank 403 00000193
event1 Wavebank 299 0000012b
event2 Wavebank 302 0000012e
fall1 Wavebank 121 00000079
fall2 Wavebank 119 00000077
fall3 Wavebank 120 00000078
fallFest Wavebank 304 00000130
fieldofficeTentMusic Wavebank 375 00000177
FlowerDance Wavebank 301 0000012d
FrogCave Wavebank 387 00000183
FrostMine Wavebank 67 00000043
FrostMine Wavebank 68 00000044
FrostMine Wavebank 69 00000045
Ghost Synth Wavebank 119 00000077
grandpas_theme Wavebank 336 00000150
gusviolin Wavebank 297 00000129
harveys_theme_jazz Wavebank(1.4) 4 00000004
heavy Wavebank 51 00000033
honkytonky Wavebank 52 00000034
Icicles Wavebank 68 00000044
IslandMusic Wavebank 374 00000176
jaunty Wavebank 41 00000029
junimoKart Wavebank(1.4) 20 00000014
junimoKart_ghostMusic Wavebank(1.4) 0 00000000
junimoKart_mushroomMusic Wavebank(1.4) 21 00000015
junimoKart_slimeMusic Wavebank(1.4) 22 00000016
junimoKart_whaleMusic Wavebank(1.4) 1 00000001
junimoStarSong Wavebank 308 00000134
kindadumbautumn Wavebank 282 0000011a
LavaMine Wavebank 72 00000048
LavaMine Wavebank 73 00000049
LavaMine Wavebank 198 000000c6
LavaMine Wavebank 215 000000d7
libraryTheme Wavebank 341 00000155
MainTheme Wavebank 335 0000014f
Majestic Wavebank 121 00000079
MarlonsTheme Wavebank 349 0000015d
marnieShop Wavebank 180 000000b4
mermaidSong Wavebank 362 0000016a
moonlightJellies Wavebank 303 0000012f
movie_classic Wavebank(1.4) 7 00000007
movie_nature Wavebank(1.4) 8 00000008
movie_wumbus Wavebank(1.4) 9 00000009
movieTheater Wavebank(1.4) 10 0000000a
movieTheaterAfter Wavebank(1.4) 11 0000000b
musicboxsong Wavebank 44 0000002c
Near The Planet Core Wavebank 72 00000048
New Snow Wavebank 126 0000007e
night_market Wavebank 364 0000016c
Of Dwarves Wavebank 73 00000049
Orange Wavebank 122 0000007a
Overcast Wavebank 215 000000d7
Pink Petals Wavebank 93 0000005d
PIRATE_THEME Wavebank 390 00000186
PIRATE_THEME(muffled) Wavebank 390 00000186
playful Wavebank 278 00000116
Plums Wavebank 120 00000078
poppy Wavebank 53 00000035
ragtime Wavebank 46 0000002e
sad_kid Wavebank 389 00000185
sadpiano Wavebank 47 0000002f
Saloon1 Wavebank 350 0000015e
sam_acoustic1 Wavebank(1.4) 2 00000002
sam_acoustic2 Wavebank(1.4) 3 00000003
sampractice Wavebank 50 00000032
sappypiano Wavebank 43 0000002b
Secret Gnomes Wavebank 66 00000042
SettlingIn Wavebank 192 000000c0
shaneTheme Wavebank 361 00000169
shimmeringbastion Wavebank 54 00000036
spaceMusic Wavebank 285 0000011d
spirits_eve Wavebank 334 0000014e
spring1 Wavebank 93 0000005d
spring2 Wavebank 91 0000005b
spring3 Wavebank 92 0000005c
springsongs Wavebank 91 0000005b
springsongs Wavebank 92 0000005c
springsongs Wavebank 93 0000005d
springtown Wavebank 94 0000005e
Stadium_ambient Wavebank 356 00000164
starshoot Wavebank 42 0000002a
submarine_song Wavebank 366 0000016e
summer1 Wavebank 122 0000007a
summer2 Wavebank 123 0000007b
summer3 Wavebank 115 00000073
SunRoom Wavebank(1.4) 17 00000011
sweet Wavebank 144 00000090
tickTock Wavebank 300 0000012c
tinymusicbox Wavebank 296 00000128
title_night Wavebank 127 0000007f
tribal Wavebank 198 000000c6
Tropical Jam Wavebank 115 00000073
VolcanoMines Wavebank 382 0000017e
VolcanoMines Wavebank 384 00000180
VolcanoMines1 Wavebank 382 0000017e
VolcanoMines2 Wavebank 384 00000180
wavy Wavebank 95 0000005f
wedding Wavebank 104 00000068
winter1 Wavebank 126 0000007e
winter2 Wavebank 124 0000007c
winter3 Wavebank 125 0000007d
WizardSong Wavebank 321 00000141
woodsTheme Wavebank 216 000000d8
XOR Wavebank 69 00000045

音乐(背景音)

name wavebank soundbank index description
decimal hexadecimal
babblingBrook Wavebank 343 00000157
bugLevelLoop Wavebank 169 000000a9
communityCenter Wavebank 307 00000133
cracklingFire Wavebank 342 00000156
darkCaveLoop Wavebank 168 000000a8
fall_day_ambient Wavebank 338 00000152
Frost_Ambient Wavebank 200 000000c8
heavyEngine Wavebank 344 00000158
Hospital_Ambient Wavebank 283 0000011b
jojaOfficeSoundscape Wavebank 337 00000151
jungle_ambience Wavebank 371 00000173
Lava_Ambient Wavebank 201 000000c9
movieScreenAmbience Wavebank(1.4) 6 00000006
nightTime Wavebank 224 000000e0
ocean Wavebank 175 000000af
pool_ambient Wavebank 288 00000120
rain Wavebank 116 00000074
roadnoise Wavebank 189 000000bd
spring_day_ambient Wavebank 179 000000b3
spring_night_ambient Wavebank 345 00000159
summer_day_ambient Wavebank 339 00000153
tropical_island_day_ambient Wavebank 376 00000178
Upper_Ambient Wavebank 199 000000c7
Volcano_Ambient Wavebank 377 00000179
wind Wavebank 85 00000055
winter_day_ambient Wavebank 354 00000162

音效

name wavebank soundbank index description
decimal hexadecimal
achievement Wavebank 103 00000067
axchop Wavebank 141 0000008d
axe Wavebank 1 00000001
backpackIN Wavebank 133 00000085
barrelBreak Wavebank 310 00000136
batFlap Wavebank 170 000000aa
batScreech Wavebank 171 000000ab
bigDeSelect Wavebank 2 00000002
bigSelect Wavebank 3 00000003
bob Wavebank 30 0000001e
boop Wavebank 98 00000062
boop Wavebank 99 00000063
boop Wavebank 100 00000064
boop Wavebank 101 00000065
boulderBreak Wavebank 238 000000ee
boulderCrack Wavebank 4 00000004
breakingGlass Wavebank 284 0000011c
breathin Wavebank 84 00000054
breathout Wavebank 83 00000053
bubbles Wavebank 235 000000eb
bubbles Wavebank 236 000000ec
busDoorOpen Wavebank 191 000000bf
busDriveOff Wavebank 309 00000135
button1 Wavebank 250 000000fa 一种高音调的“咔嗒-咔嗒”声。当浮标被系在钓竿上时播放。
cacklingWitch Wavebank 323 00000143
camel Wavebank(1.4) 23 00000017
cameraNoise Wavebank 292 00000124
cancel Wavebank 353 00000161
cast Wavebank 246 000000f6
cat Wavebank 332 0000014c
cat Wavebank 333 0000014d
cavedrip Wavebank 129 00000081 一种潮湿的“扑通”声。用作矿井下水道中的随机背景噪音,以及火山地牢入口管道的滴水声。
clam_tone Wavebank 363 0000016b
clank Wavebank 173 000000ad
clank Wavebank 203 000000cb
clank Wavebank 203 000000cb
clank Wavebank 204 000000cc
clank Wavebank 205 000000cd
clank Wavebank 205 000000cd
clubhit Wavebank 159 0000009f
clubSmash Wavebank 174 000000ae
clubswipe Wavebank 160 000000a0
cluck Wavebank 31 0000001f
cluck Wavebank 32 00000020
cluck Wavebank 33 00000021
coin Wavebank 5 00000005
coldSpell Wavebank 197 000000c5
cow Wavebank 80 00000050
cow Wavebank 81 00000051
cow Wavebank 82 00000052
cowboy_dead Wavebank 268 0000010c
cowboy_explosion Wavebank 276 00000114
cowboy_gopher Wavebank 275 00000113
cowboy_gunload Wavebank 272 00000110
Cowboy_gunshot Wavebank 266 0000010a 一种短促而空洞的“嗒”声。用于表示啄木鸟的啄木声、草原王者大冒险的枪声、飞镖的撞击声、赌场老虎机声和许多游戏内菜单的悬停声。
Cowboy_monsterDie Wavebank 264 00000108
Cowboy_monsterDie Wavebank 265 00000109
cowboy_monsterhit Wavebank 274 00000112
cowboy_powerup Wavebank 271 0000010f
Cowboy_Secret Wavebank 263 00000107
crafting Wavebank 36 00000024
crane Wavebank(1.4) 14 0000000e
crickets Wavebank 117 00000075
cricketsAmbient Wavebank 346 0000015a
crit Wavebank 352 00000160
croak Wavebank 138 0000008a
crow Wavebank 324 00000144
crystal Wavebank 143 0000008f 一种持续几秒的高音“叮!”声。用于矿井电梯的铃声、岛屿水晶谜题、<角色>的对话唱歌的石头(随机音调)以及矿井水晶被击碎时的声音。
cut Wavebank 6 00000006
daggerswipe Wavebank 163 000000a3
death Wavebank 70 00000046
debuffHit Wavebank 151 00000097
debuffSpell Wavebank 152 00000098
detector Wavebank 37 00000025
dialogueCharacter Wavebank 7 00000007
dialogueCharacterClose Wavebank 8 00000008
dirtyHit Wavebank 243 000000f3
dirtyHit Wavebank 244 000000f4
discoverMineral Wavebank 208 000000d0
distantTrain Wavebank 220 000000dc
distantTrain Wavebank 221 000000dd
dog_bark Wavebank 331 0000014b
dog_pant Wavebank 330 0000014a
dogs Wavebank 228 000000e4
dogWhining Wavebank 316 0000013c
doorClose Wavebank 9 00000009
doorCreak Wavebank 319 0000013f
doorCreakReverse Wavebank 322 00000142
doorOpen Wavebank 320 00000140
dropItemInWater Wavebank 10 0000000a
drumkit0 Wavebank 110 0000006e
drumkit1 Wavebank 111 0000006f
drumkit2 Wavebank 108 0000006c
drumkit3 Wavebank 107 0000006b
drumkit4 Wavebank 109 0000006d
drumkit5 Wavebank 106 0000006a
drumkit6 Wavebank 105 00000069 设置菜单的复选框被点击时播放。
Duck Wavebank 231 000000e7
Duggy Wavebank 60 0000003c
dustMeep Wavebank 186 000000ba
DwarvishSentry Wavebank 386 00000182
dwoop Wavebank 34 00000022
dwop Wavebank 234 000000ea 一种音调向上变化的声音。当用户点击库存中的物品以将其举起并自由拖动时、当垃圾清理熊将物品扔到空中时、当从钓竿上取下浮标时等,都会播放这个声音。
eat Wavebank 25 00000019
explosion Wavebank 35 00000023
fallDown Wavebank 318 0000013e
fastReel Wavebank 248 000000f8
fireball Wavebank 71 00000047
fishBite Wavebank 26 0000001a
fishBite_alternate_0 Wavebank 398 0000018e
fishBite_alternate_1 Wavebank 397 0000018d
fishBite_alternate_2 Wavebank 396 0000018c
fishEscape Wavebank 253 000000fd
FishHit Wavebank 251 000000fb
fishingRodBend Wavebank 254 000000fe
fishingRodBend Wavebank 255 000000ff
fishingRodBend Wavebank 256 00000100
fishSlap Wavebank 260 00000104
flameSpell Wavebank 150 00000096
flameSpellHit Wavebank 149 00000095
flute Wavebank 112 00000070
flybuzzing Wavebank 164 000000a4
frozen Wavebank 394 0000018a
furnace Wavebank 38 00000026
fuse Wavebank 48 00000030
getNewSpecialItem Wavebank 223 000000df
ghost Wavebank 11 0000000b
give_gift Wavebank 348 0000015c
glug Wavebank 325 00000145
goat Wavebank 78 0000004e
goat Wavebank 79 0000004f
goldenWalnut Wavebank 372 00000174
gorilla_intro Wavebank 388 00000184
grunt Wavebank 12 0000000c
gulp Wavebank 239 000000ef
gulp Wavebank 240 000000f0
hammer Wavebank 134 00000086
harvest Wavebank 326 00000146
healSound Wavebank 196 000000c4
hitEnemy Wavebank 56 00000038
hoeHit Wavebank 13 0000000d
horse_flute Wavebank 395 0000018b
horse_flute Wavebank 401 00000191
horse_flute Wavebank 402 00000192
jingle1 Wavebank 252 000000fc 一种高音调的“叮”声。在钓到鱼以及完成日志或鱼塘任务时使用。
junimoKart_coin Wavebank(1.4) 16 00000010
junimoMeep1 Wavebank 306 00000132
keyboardTyping Wavebank 293 00000125
killAnimal Wavebank 233 000000e9
leafrustle Wavebank 142 0000008e
magma_sprite_die Wavebank 380 0000017c
magma_sprite_hit Wavebank 379 0000017b
magma_sprite_spot Wavebank 381 0000017d
Meteorite Wavebank 225 000000e1
Milking Wavebank 230 000000e6
minecartLoop Wavebank 188 000000bc
miniharp_note Wavebank(1.4) 5 00000005
money Wavebank 61 0000003d
moneyDial Wavebank 237 000000ed 硬币掉落的高调声音。在新的一天开始时,前一天出货的金钱被加到玩家的农场账户上时,这个声音会反复播放。
monkey1 Wavebank 385 00000181
monsterdead Wavebank 158 0000009e
mouseClick Wavebank 294 00000126
newArtifact Wavebank 211 000000d3 一种低音调的“叮”声。当UI消息(如技能精通等级提升)出现、物品被捐赠给收集包或博物馆、夜市潜水艇到达海底、在铁匠铺打破含有普通物品的晶球,以及游戏中的其他菜单出现时,都会播放这个声音。
newRecipe Wavebank 214 000000d6
newRecord Wavebank 213 000000d5
objectiveComplete Wavebank 132 00000084
openBox Wavebank 14 0000000e
openChest Wavebank 161 000000a1
Ostrich Wavebank 367 0000016f
ow Wavebank 63 0000003f
owl Wavebank 227 000000e3
parrot Wavebank 360 00000168
parrot_squawk Wavebank 373 00000175
parry Wavebank 173 000000ad
phone Wavebank 113 00000071
Pickup_Coin15 Wavebank 273 00000111
pickUpItem Wavebank 15 0000000f
pig Wavebank 130 00000082
pig Wavebank 131 00000083
potterySmash Wavebank 147 00000093
powerup Wavebank 39 00000027
pullItemFromWater Wavebank 28 0000001c
purchase Wavebank 145 00000091
purchase Wavebank 146 00000092
purchase Wavebank 241 000000f1
purchaseClick Wavebank 146 00000092
purchaseRepeat Wavebank 241 000000f1
qi_shop Wavebank 399 0000018f
qi_shop_purchase Wavebank 400 00000190
questcomplete Wavebank 128 00000080
quickSlosh Wavebank 290 00000122
quickSlosh Wavebank 291 00000123
rabbit Wavebank 74 0000004a
rainsound Wavebank 135 00000087
rainsound Wavebank 136 00000088
rainsound Wavebank 137 00000089
reward Wavebank 212 000000d4
robotBLASTOFF Wavebank 287 0000011f
robotSoundEffects Wavebank 286 0000011e
rockGolemDie Wavebank 166 000000a6
rockGolemHit Wavebank 167 000000a7
rockGolemSpawn Wavebank 165 000000a5
rooster Wavebank 329 00000149
scissors Wavebank 229 000000e5
seagulls Wavebank 176 000000b0
seagulls Wavebank 177 000000b1
seagulls Wavebank 178 000000b2
secret1 Wavebank 218 000000da
seeds Wavebank 17 00000011
select Wavebank 148 00000094 一种高音调且逐渐升高的空洞“噗嗬!”声。用作许多菜单中的点击/选择声音(例如,在标题屏幕上点击按钮)。
sell Wavebank 242 000000f2
serpentDie Wavebank 315 0000013b
serpentHit Wavebank 314 0000013a
sewing_loop Wavebank(1.4) 15 0000000f
shadowDie Wavebank 194 000000c2
shadowHit Wavebank 195 000000c3
shadowpeep Wavebank 18 00000012
sheep Wavebank 232 000000e8
shiny4 Wavebank 19 00000013
Ship Wavebank 96 00000060
Ship Wavebank 97 00000061
shwip Wavebank 317 0000013d
SinWave Wavebank 245 000000f5
sipTea Wavebank 193 000000c1
skeletonDie Wavebank 183 000000b7
skeletonHit Wavebank 184 000000b8
skeletonStep Wavebank 182 000000b6
slime Wavebank 57 00000039
slimedead Wavebank 59 0000003b
slimedead Wavebank 156 0000009c
slimedead Wavebank 157 0000009d
slimeHit Wavebank 185 000000b9
slingshot Wavebank 207 000000cf
slosh Wavebank 289 00000121
slosh Wavebank 290 00000122
slosh Wavebank 291 00000123
slowReel Wavebank 247 000000f7
smallSelect Wavebank 20 00000014
SpringBirds Wavebank 86 00000056
SpringBirds Wavebank 87 00000057
SpringBirds Wavebank 88 00000058
SpringBirds Wavebank 89 00000059
SpringBirds Wavebank 90 0000005a
squid_bubble Wavebank 392 00000188
squid_hit Wavebank 393 00000189
squid_move Wavebank 391 00000187
Stadium_cheer Wavebank 355 00000163
stairsdown Wavebank 313 00000139
stardrop Wavebank 351 0000015f
steam Wavebank 378 0000017a
stoneCrack Wavebank 75 0000004b
stoneCrack Wavebank 76 0000004c
stumpCrack Wavebank 217 000000d9
submarine_landing Wavebank 365 0000016d
swordswipe Wavebank 58 0000003a
swordswipe Wavebank 162 000000a2
telephone_buttonPush Wavebank 369 00000171
telephone_dialtone Wavebank 370 00000172
telephone_ringingInEar Wavebank 368 00000170
throw Wavebank 187 000000bb
throwDownITem Wavebank 21 00000015
thunder Wavebank 114 00000072
thunder_small Wavebank 327 00000147
thunder_small Wavebank 328 00000148
tinyWhip Wavebank 249 000000f9
toolCharge Wavebank 62 0000003e
toolSwap Wavebank 27 0000001b
toyPiano Wavebank 181 000000b5
trainLoop Wavebank 222 000000de
trainWhistle Wavebank 219 000000db
trashbear Wavebank(1.4) 25 00000019
trashbear_flute Wavebank(1.4) 24 00000018
trashcan Wavebank 209 000000d1
trashcanlid Wavebank 210 000000d2
treecrack Wavebank 140 0000008c
treethud Wavebank 139 0000008b
UFO Wavebank 226 000000e2
wand Wavebank 118 00000076
warrior Wavebank 206 000000ce
wateringCan Wavebank 153 00000099
wateringCan Wavebank 154 0000009a
wateringCan Wavebank 155 0000009b
waterSlosh Wavebank 257 00000101
waterSlosh Wavebank 258 00000102
waterSlosh Wavebank 259 00000103
whistle Wavebank 298 0000012a
woodchipper Wavebank(1.4) 18 00000012
woodchipper_occasional Wavebank(1.4) 19 00000013
woodWhack Wavebank 311 00000137
woodWhack Wavebank 312 00000138
woodyHit Wavebank 77 0000004d
yoba Wavebank 202 000000ca

在C#中管理音频

播放音效

游戏主要通过Game1.sounds字段处理音效。有诸如PlayLocal, PlayAll, GetVolumeForDistance的低级方法。

然而,您应尽量避免直接调用Game1.sounds。游戏中提供了播放音效的四个主要方法:

方法 如何使用
Game1.playSound 仅对当前玩家播放声音。在多人游戏中不会同步。不受地点或距离影响。主要用于UI和菜单声音。

例如:

// for UI elements (e.g. crafting an item)
Game1.playSound("crafting");
GameLocation.localSound
GameLocation.playSound
若在相应地点,则只对当前玩家播放(localSound)或对所有玩家播放(playSound)。

可选参数为

  • 地块位置(会根据玩家到声源的距离减弱音量)。
  • 和/或 音高 (从0到2400,每半度为100。1200为默认音高)。

例如:

// play sound for the current player if they're anywhere on the farm
Game1.getFarm().localSound("doorCreak");

// play sound for the current player if they're on the farm near the mailbox (fading with distance)
Farm farm = Game1.getFarm();
farm.localSound("doorCreak", farm.GetMainMailboxPosition());

// play sound for all players on the farm near the mailbox (fading with distance), with a -200 pitch shift
Farm farm = Game1.getFarm();
farm.playSound("doorCreak", farm.GetMainMailboxPosition(), 1000);
DelayedAction.playSoundAfterDelay 在延迟指定毫秒后,为当前玩家或所有玩家播放声音。您可以选择性地指定位置、地块位置和音高(这与GameLocation方法的作用相同)。您可以反复调用此方法以播放多个声音(例如,播放具有不同延迟的一系列声音)。

例如:

// play sound for the current player after 1.5 seconds, no matter where they are
DelayedAction.playSoundAfterDelay("thunder_small", 1500);

// play sound for all players on the farm after 1.5 seconds, fading with distance from the mailbox
Farm farm = Game1.getFarm();
DelayedAction.playSoundAfterDelay("doorCreak", farm, farm.GetMainMailboxPosition());

// play sound for the current player only if they'rte on the farm after 1.5 seconds, fading with distance from the mailbox
Farm farm = Game1.getFarm();
DelayedAction.playSoundAfterDelay("doorCreak", farm, farm.GetMainMailboxPosition(), local: true);

添加自定义音频

TODO: 星露谷物语1.6中自定义音频的更新。

游戏音频分解为以下组件:

  • SoundEffect(声音效果)是存储声音音频本身的对象。
  • Cue(声音提示)是存储声音名称、SoundEffect 以及声音所具有的其他任何设置或属性的对象。
  • Soundbank(声音库)存储了要调用、播放或修改的 Cue。

为添加您的音频到音频库(无论是音乐还是音效),您可以定义一个新的CueDefinition并添加名称:

CueDefinition myCueDefinition = new CueDefinition();

// Adding the name for the cue, which will be
// the name of the audio to play when using sound functions.
myCueDefinition.name = "myNewSound";

您还可以确保您的音频每次只播放一个实例,以防止两个相同的音频片段同时播放而相互覆盖。

// If this sound is played multiple times in quick succession,
// only one sound instance will play at a time.
myCueDefinition.instanceLimit = 1;
myCueDefinition.limitBehavior = CueDefinition.LimitBehavior.ReplaceOldest;

然后,通过以下方法将音频文件添加到Cue中:创建一个新的SoundEffect对象,并从一个新的FileStream中获取音频文件,再将其添加到SoundEffect中。

// Get the audio file and add it to a SoundEffect.
SoundEffect audio;
string filePathCombined = Path.Combine(this.Helper.DirectoryPath, "mySound.wav");
using (var stream = new System.IO.FileStream(filePathCombined, System.IO.FileMode.Open)) {
    audio = SoundEffect.FromStream(stream);
}

最后,将SoundEffect添加到Cue中,并将Cue分配给Soundbank进行存储。我们还需要设置一个类别,这个类别决定了使用游戏选项中的哪个音量条(参见类别列表)。由于此处代码示例中的Cue是音效而非音乐,因此需要通过调用getter Game1.audioEngine.GetCategoryIndex()将Cue的类别设置为Sound

// Setting the sound effect to the new cue.
myCueDefinition.SetSound(audio, Game1.audioEngine.GetCategoryIndex("Sound"), false);

// Adding the cue to the sound bank.
Game1.soundBank.AddCue(myCueDefinition);

若您已添加了音效,则可用音效命令播放之:

Game1.playSound("myNewSound");

若您已添加了新的音乐,则可将音乐ID添加到地图中。

编辑已存在的音乐

TODO: 星露谷物语1.6中自定义音频的更新。

要修改游戏中已存在的Cue,您可以从一个已存在的Cue声明一个新的Cue定义,并调用CueDefinition.SetSound来将您的新音频应用到该Cue上。

如上所述,将Cue的类别设置为对应类别(例如debuffHit应位于Sound类别)。

// Get the cue to manipulate.
var existingCueDef = Game1.soundBank.GetCueDefinition("debuffHit");

// Get the audio file and add it to a new SoundEffect, to replace the old one.
SoundEffect audio;
string filePathCombined = Path.Combine(this.Helper.DirectoryPath, "mySound.wav");
using (var stream = new System.IO.FileStream(filePathCombined, System.IO.FileMode.Open)) {
    audio = SoundEffect.FromStream(stream);
}

// Assign the new audio to this cue.
existingCueDef.SetSound(audio, audioEngine.GetCategoryIndex("Sound"), false);

另请参阅