Sound
从蓝图里播放一个音频片段、之后每个节点都要用的那个句柄,以及蓝图所在页面的音乐
九个节点,管的是由蓝图决定的界面声音:取决于条件的声音,例如 CG 解锁后才响的点击声;不属于悬停或点击的声音,例如某个 Page 打开期间的环境音;以及在页面打开期间改变的页面音乐,例如在音乐鉴赏里按下的曲目。每次都响的悬停音效与点击音效不需要蓝图,在属性面板的音效中为元素设置。页面本身的音乐同样在属性面板中设置,见页面音乐。故事播放的音乐与音效属于故事,写成那边的 /bgm 与 /sound 行。
约定
- 九个都是 latent。 所以都不能给蓝图值当后端。Story Action 蓝图没有游戏宿主,也不提供它们
Play Sound交出一个句柄,Stop Sound、Pause Sound、Resume Sound、Seek Sound、Set Sound Volume与Is Sound Playing收它。 句柄指的是正在播放的这一次,不是资产:同一个片段播两次就是两个句柄,各自独立地停止、跳转与淡入淡出- 片段在卡片上选。 在
Play Sound与Play Page Music上,Audio Clip选资产,Track选它播放所在的音轨,于是玩家对那条音轨的音量会生效。Asset Id引脚留给运行时才决定播哪个的情况。它收到的名字必须是项目里已有的:在资产选择器里选的,或者从存着这个名字的变量或列表行里读出来的。运行时拼出来的名字(例如用Concat拼接)会被blueprint/assembled-asset-name项目检查报告,生产构建也会拒绝,因为游戏包里不会带上那个片段 - 页面音乐节点设置自己所在页面的音乐。
Play Page Music(播放页面音乐)与Stop Page Music(停止页面音乐)不收句柄。它们在页面打开期间改变运行它们的蓝图所在的页面或叠加页面的音乐,取代页面属性里的音乐设置,并遵循那一设置的规则:返回到下面的页面时,换回那个页面的音乐;用Replace Page替换它、保持当前音乐的页面,继续播放它的音乐。游戏进行中由故事决定音乐,所以它们不改变任何东西,开发模式中会在控制台面板给出一条警告说明这一点
Play Sound
blueprint.sound.play · Latent
起播一个片段,并返回之后用来找到它的句柄。
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
assetId | in · data | string | 可选。覆盖卡片上的 Audio Clip,用于运行时才决定的片段 |
loop | in · data | boolean | 可选,字面量 |
volume | in · data | float | 可选,字面量 |
fadeIn | in · data | float | 可选,字面量。单位秒 |
next | out · exec | — | |
handle | out · data | SoundHandle | 本分类其余节点都收它 |
卡片字段
| 字段 | 说明 |
|---|---|
Audio Clip | 要播放的音频资产 |
Track | 它播放所在的项目音轨,于是玩家对那条音轨的音量会生效 |
Stop Sound
blueprint.sound.stop · Latent
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
handle | in · data | SoundHandle | 可选。不接线时停止 Play Sound 播放的所有片段 |
fade | in · data | float | 可选,字面量。单位秒 |
next | out · exec | — |
Pause Sound
blueprint.sound.pause · Latent
| 引脚 | 方向 | 类型 |
|---|---|---|
in | in · exec | — |
handle | in · data | SoundHandle |
next | out · exec | — |
Resume Sound
blueprint.sound.resume · Latent
| 引脚 | 方向 | 类型 |
|---|---|---|
in | in · exec | — |
handle | in · data | SoundHandle |
next | out · exec | — |
Seek Sound
blueprint.sound.seek · Latent
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
handle | in · data | SoundHandle | |
time | in · data | float | 字面量。从片段开头算起的秒数 |
next | out · exec | — |
Set Sound Volume
blueprint.sound.setVolume · Latent
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
handle | in · data | SoundHandle | |
volume | in · data | float | 可选,字面量 |
fade | in · data | float | 可选,字面量。单位秒——想把一段音乐压在台词底下而不是直接切掉,用的就是它 |
next | out · exec | — |
Is Sound Playing
blueprint.sound.isPlaying · Latent
| 引脚 | 方向 | 类型 |
|---|---|---|
in | in · exec | — |
handle | in · data | SoundHandle |
next | out · exec | — |
isPlaying | out · data | boolean |
Play Page Music
blueprint.sound.playPageMusic · Latent
在本蓝图所在页面打开期间,把一个片段作为它的音乐。同一段音乐已在同一音轨上播放时,它不中断地继续,音量换成本节点的音量;否则正在播放的音乐按自己的淡入淡出时间淡出,这个片段按 fade 淡入。在同一页面上再次运行本节点,替换它之前设置的音乐。游戏进行中不起作用
音乐鉴赏用它播放各行:按下的一行接替之前按下的那一行,离开页面时换回下面页面的音乐。骨架模板(模板 1.20.7 及以后)鉴赏页面上的音乐列表就是这样做的
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
assetId | in · data | string | 可选。覆盖卡片上的 Audio Clip,例如换成按下的那一行的片段 |
volume | in · data | float | 可选,字面量。0 到 1,没有值时为 1 |
loop | in · data | boolean | 可选,字面量。没有值时按音轨自己的设置,音乐音轨是循环的 |
fade | in · data | float | 可选,字面量。单位秒(卡片上是淡变(秒))。片段按它淡入,被其他音乐接替时也按它淡出。没有值时为 0 |
next | out · exec | — |
卡片字段
| 字段 | 说明 |
|---|---|
Audio Clip | 要播放的音频资产 |
Track | 它播放所在的项目音轨,于是玩家对那条音轨的音量会生效。留空即音乐音轨 |
Stop Page Music
blueprint.sound.stopPageMusic · Latent
在本蓝图所在页面打开期间不播放音乐,与页面音乐设为无音乐相同。正在播放的音乐按 fade 淡出。游戏进行中不起作用
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
fade | in · data | float | 可选,字面量。单位秒(卡片上是淡变(秒))。没有值时,正在播放的音乐按自己的淡入淡出时间淡出 |
next | out · exec | — |