Music模组制作
原页面:Music modding
音乐文件以 *.ogg 格式存储在/Hearts of Iron IV/music/文件夹或其某个子文件夹中。
音乐模组创作工具是一个快速且易于使用的模组工具,它会生成下文所述的所有文件,以为游戏添加音乐与一个电台。
歌曲定义
歌曲定义在 *.asset 格式的文件中,这些文件与 *.ogg 文件位于同一文件夹。一个定义的格式如下:
music = {
name = "song_name"
file = "song_file.ogg"
volume = 0.65
}
name是歌曲的 ID,同时也是其在本地化文件文件中作为song_name:0 "歌曲名称"进行名称分配所用的本地化键。它不能超过 63 个字符。file是歌曲的文件名,包含 *.ogg 扩展名。volume允许在不编辑 *.ogg 文件的情况下调整其音量。
分配到电台
为了正常工作,歌曲必须被分配到某个电台。这些分配存储在 *.txt 文件中,与 *.asset 和 *.ogg 文件位于同一文件夹。一个分配文件在定义任何歌曲之前,必须先被分配到一个电台。多个文件可以被分配到同一个电台。这通过下面这行代码完成:
music_station = "station_name"
一首歌曲的典型分配格式如下:
music = {
song = "song_name"
chance = {
base = 1
modifier = {
factor = 0
has_war = no
}
}
}
song接受歌曲 ID,其定义为其在 *.asset 文件中的名称。chance定义当播放模式设为「加权随机」时歌曲被选中的几率。允许的参数为factor(乘以几率)、add(加到几率上)与基础(完全替换几率)。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
}
}
}
The name is assigned by using its ID as a 本地化 key within /Hearts of Iron IV/localisation/<language>/*_l_<language>.yml: <MUSIC STATION>:0 "音乐电台名称".
The album cover is assigned a sprite as the quadTextureSprite within select_station_button. A sprite must be defined within /Hearts of Iron IV/interface/*.gfx as the following:
spriteType = {
name = "<SPRITE>"
texturefile = "gfx//interface//topbar//musicplayer//<FILE NAME>.dds"
noOfFrames = 2
}*.dds 文件必须水平分割为 2 个精灵图:未选中时与选中时。
| 文档 | 效果 • 触发器 • 定义文件 • 修正项 • 修正项列表 • 作用域 • 本地化文件 • 事件钩子 • 数据结构(标记、事件目标、国家标签别名、变量、数组) |
| 脚本 | 成就 • AI • AI 焦点 • 自治领 • 力量均势 • 书签/剧本 (游戏规则) • 建筑 • 角色与特质 • 外观标签 • 国家 • 师 • 决议 • 学说 • 装备 • 事件 • 阵营 • 理念 • 意识形态 • 军事工业组织 • 国策 • 资源 • 脚本化 GUI • 科技与学说 • 单位 |
| 地图 | 地图 • 州 • 补给区域 • 战略区域 |
| 图形 | 界面 • 图形资源 • 实体 • 后期特效 • 粒子 • 字体 |
| 外观 | 肖像 • 名称列表 • 音乐 • 音效 |
| 其他 | 控制台指令 • 疑难排查 • 模组结构 • 模组 • 地图编辑器 |