音乐文件以 *.ogg 格式存储在/Hearts of Iron IV/music/文件夹或其子文件夹之一中。
Music Mod Creation Tool是一种快速且易于使用的 Mod 工具,它将生成下面描述的所有文件,以将音乐和广播电台添加到游戏中。
歌曲定义
歌曲在 *.asset 格式的文件中定义,与 *.ogg 文件位于同一文件夹中。定义的格式如下:
music = {
name = "song_name"
file = "song_file.ogg"
volume = 0.65
}
name是歌曲的 ID,以及用于在本地化文件中分配名称的 本地化键 song_name:0 "Song's Name"。它不能包含超过 63 个字符。
file是歌曲的文件名,包括 *.ogg 扩展名。
volume 允许调整 *.ogg 文件的音量,而无需对其进行编辑。
分配电台
为了正常工作,歌曲必须分配给一个电台。分配存储在 *.txt 文件中,与 *.asset 和 *.ogg 文件位于同一文件夹中。
在定义任何歌曲之前,必须将分配文件分配给一个电台。可以将多个文件分配给同一个电台。这是通过以下代码行完成的:
music_station = "station_name"
典型的歌曲分配格式如下:
music = {
song = "song_name"
chance = {
factor = 1
modifier = {
factor = 0
has_war = no
}
}
}
song 接受歌曲的 ID,在 *.asset 文件中为其定义名称。
chance 定义了在播放模式设置为加权随机播放时歌曲被选中的几率。允许的参数有 factor,用于乘以几率,add,用于增加几率,以及base,完全替换几率。modifier = {} 允许参数仅在满足所有触发条件时修改几率。
广播电台
广播电台被定义为一个 用户页面文件,位于/Hearts of Iron IV/interface/*.gui.中。文件内容需要如下所示,将<MUSIC STATION>替换为音乐电台的名称:
guiTypes = {
containerWindowType = {
name = "<MUSIC STATION>_faceplate"
position = { x =0 y=0 }
size = { width = 590 height = 46 }
iconType ={
name ="musicplayer_header_bg"
spriteType = "GFX_musicplayer_header_bg"
position = { x= 0 y = 0 }
alwaystransparent = yes
}
instantTextboxType = {
name = "track_name"
position = { x = 72 y = 20 }
font = "hoi_20b"
text = "Roger Pontare - Nar vindarna viskar mitt namn"
maxWidth = 450
maxHeight = 25
format = center
}
instantTextboxType = {
name = "track_elapsed"
position = { x = 124 y = 30 }
font = "hoi_18b"
text = "00:00"
maxWidth = 50
maxHeight = 25
format = center
}
instantTextboxType = {
name = "track_duration"
position = { x = 420 y = 30 }
font = "hoi_18b"
text = "02:58"
maxWidth = 50
maxHeight = 25
format = center
}
buttonType = {
name = "prev_button"
position = { x = 220 y = 20 }
quadTextureSprite ="GFX_musicplayer_previous_button"
buttonFont = "Main_14_black"
Orientation = "LOWER_LEFT"
clicksound = click_close
pdx_tooltip = "MUSICPLAYER_PREV"
}
buttonType = {
name = "play_button"
position = { x = 263 y = 20 }
quadTextureSprite ="GFX_musicplayer_play_pause_button"
buttonFont = "Main_14_black"
Orientation = "LOWER_LEFT"
clicksound = click_close
}
buttonType = {
name = "next_button"
position = { x = 336 y = 20 }
quadTextureSprite ="GFX_musicplayer_next_button"
buttonFont = "Main_14_black"
Orientation = "LOWER_LEFT"
clicksound = click_close
pdx_tooltip = "MUSICPLAYER_NEXT"
}
extendedScrollbarType = {
name = "volume_slider"
position = { x = 100 y = 45}
size = { width = 75 height = 18 }
tileSize = { width = 12 height = 12}
maxValue =100
minValue =0
stepSize =1
startValue = 50
horizontal = yes
orientation = lower_left
origo = lower_left
setTrackFrameOnChange = yes
slider = {
name = "Slider"
quadTextureSprite = "GFX_scroll_drager"
position = { x=0 y = 1 }
pdx_tooltip = "MUSICPLAYER_ADJUST_VOL"
}
track = {
name = "Track"
quadTextureSprite = "GFX_volume_track"
position = { x=0 y = 3 }
alwaystransparent = yes
pdx_tooltip = "MUSICPLAYER_ADJUST_VOL"
}
}
buttonType = {
name = "shuffle_button"
position = { x = 425 y = 20 }
quadTextureSprite ="GFX_toggle_shuffle_buttons"
buttonFont = "Main_14_black"
Orientation = "LOWER_LEFT"
clicksound = click_close
}
}
containerWindowType={
name = "<MUSIC STATION>_stations_entry"
size = { width = 162 height = 130 }
checkBoxType = {
name = "select_station_button"
position = { x = 0 y = 0 }
quadTextureSprite = "<SPRITE>"
clicksound = decisions_ui_button
}
}
}
名称通过在/Hearts of Iron IV/localisation/<language>/*_l_<language>.yml中使用其 ID 作为本地化键来分配:: <MUSIC STATION>:0 "Music station's name".
专辑封面被分配为 select_station_button 中的 quadTextureSprite。必须在/Hearts of Iron IV/interface/*.gfx中定义一个 sprite,如下所示:
spriteType = {
name = "<SPRITE>"
texturefile = "gfx//interface//topbar//musicplayer//<FILE NAME>.dds"
noOfFrames = 2
}*.dds 文件必须垂直分割成两个sprite:未选中时和选中时。
| 文件 | 效果 • 条件 • 定义 • 修正 • 修正列表 • 作用域 • 本地化 • on action • 数据结构 (标记, 临时标记, 国家别名, 变量, 数组) |
| 脚本 | 成就修改 • AI修改 • AI focuses • 自治领修改 • 权力平衡修改 • 剧本/标签 (游戏规则)• 建筑修改 • 人物修改 • 修饰性TAG修改 • 国家创建 • 军队修改 • 决议制作 • 装备修改 • 事件修改 • Idea修改 • 意识形态修改 • 军工商修改 • 国策制作 • 资源修改 • Scripted GUI • 科技制作 • 单位修改 |
| 地图 | 地图 • 省份 • 补给区域 • 战略区域 |
| 图形图像 | 界面 • 图形资产 • 实体模型 • 后期特效 • 粒子效果 • 字体 |
| 装饰性 | 肖像 • 命名列表 • 音乐包制作 • 音效 |
| 其他 | 控制台指令 • 故障排除 • 模组结构 • 成就代码分析 • Mod相关 • Nudger修改 |