深色
风格
视觉表达
S
循环切换
经典
稳定的技术默认风格
信号流
突出动态流向
蓝图
工程评审
编辑风格
适合发布与上线说明
动态
演示
导出
导出图表
便携、整洁的输出
E
分享
路径分享卡片
1200×630 PNG
可达范围分享卡片
1200×630 PNG
复制图表
复制 PNG 到剪贴板
图像
PNG
无损图像
JPEG
紧凑图像
WebP
现代图像格式
矢量与动效
SVG · 自动
匹配宿主主题
SVG · 浅色
始终浅色
SVG · 深色
始终深色
WebM
6 秒动效
Live 播放器:AWB 解码、人声分谱与音频同步
Live 播放器:AWB 解码、人声分谱与音频同步
由 Archify 生成的架构图。
演出音乐初始化 · Director.InitializeMusic · 架构组件
演出音乐初始化
Director.InitializeMusic
独立听歌列表 · UmaViewerUI.ListLiveSounds · 架构组件 · 不是 Director 演出路径
独立听歌列表
UmaViewerUI.ListLiveSounds
不是 Director 演出路径
列表试听与歌曲预览 · LoadLiveSound / loadLivePreviewSound · 架构组件 · 试听不使用 Live part 分谱
列表试听与歌曲预览
LoadLiveSound / loadLivePreviewSound
试听不使用 Live part 分谱
按资源名查找 AWB · AbSounds / ApplySound · 架构组件 · 伴奏 SONG_PATH;缺人声才随机
按资源名查找 AWB
AbSounds / ApplySound
伴奏 SONG_PATH;缺人声才随机
读取独立 AWB 容器 · LoadAudio → AwbReader · 架构组件 · Live 不解析 ACB cue 表
读取独立 AWB 容器
LoadAudio → AwbReader
Live 不解析 ACB cue 表
授权音频密钥 · Config.GetAudioKey → MixKey · 架构组件 · 不是资源包 ABKey / FKey
授权音频密钥
Config.GetAudioKey → MixKey
不是资源包 ABKey / FKey
解密 HCA 并逐块解码 · UmaWaveStream / HcaWaveStream · 架构组件
解密 HCA 并逐块解码
UmaWaveStream / HcaWaveStream
输入失败:异常向上冒泡 · AudioKey / AFS2 / HcaDecoder · 架构组件 · 文件不存在:返回空 clip 列表
输入失败:异常向上冒泡
AudioKey / AFS2 / HcaDecoder
文件不存在:返回空 clip 列表
生成流式 Unity 音频片段 · AudioClip.Create(stream: true) · 架构组件 · PCM 读取与 seek 回调持续持有 stream
生成流式 Unity 音频片段
AudioClip.Create(stream: true)
PCM 读取与 seek 回调持续持有 stream
每个 wave 建立一个播放音源 · CuteAudioSource.sourceList · 架构组件 · 人声按 PartForm 标记;伴奏 part = -1
每个 wave 建立一个播放音源
CuteAudioSource.sourceList
人声按 PartForm 标记;伴奏 part = -1
统一播放与时间控制所有者 · Director.Play / OnTimelineUpdate · 架构组件 · AudioSource 不是独立时间轴驱动器
统一播放与时间控制所有者
Director.Play / OnTimelineUpdate
AudioSource 不是独立时间轴驱动器
进度拖动与时间显示 · LiveViewerUI / SliderControl · 架构组件 · 界面读 Director;不接管主时钟
进度拖动与时间显示
LiveViewerUI / SliderControl
界面读 Director;不接管主时钟
人声分谱与歌手数量 · partInfo:PartEntry · 架构组件 · time 毫秒;列名规范化
人声分谱与歌手数量
partInfo:PartEntry
time 毫秒;列名规范化
选择发声片段并应用混音 · UmaViewerAudio.AlterUpdate · 架构组件 · 非 solo 才执行;0 为静音
选择发声片段并应用混音
UmaViewerAudio.AlterUpdate
非 solo 才执行;0 为静音
拖动暂停与释放重新同步 · Director.Update → SetTime / Play · 架构组件 · 释放强制重算分谱;重置 _syncTime
拖动暂停与释放重新同步
Director.Update → SetTime / Play
释放强制重算分谱;重置 _syncTime
Unity 音源输出伴奏与人声 · AudioSource.Play / volume / panStereo · 架构组件 · 静音波形仍在同步播放
Unity 音源输出伴奏与人声
AudioSource.Play / volume / panStereo
静音波形仍在同步播放
离场销毁场景中的音源对象 · ExitLive → UnloadSceneAsync · 架构组件 · 按场景销毁,不是 Stop/Dispose 总线
离场销毁场景中的音源对象
ExitLive → UnloadSceneAsync
按场景销毁,不是 Stop/Dispose 总线
解码流没有显式释放闭环 · LoadAudio:无 Dispose / clip Destroy · 架构组件 · 不能把 Bundle 释放等同 AWB 流释放
解码流没有显式释放闭环
LoadAudio:无 Dispose / clip Destroy
不能把 Bundle 释放等同 AWB 流释放
初始化人声与伴奏
点击试听
同一 LoadAudio
找到的 AWB
逐 wave 子流
混合密钥
输入无效时
PCM 格式与样本
clip 绑定
建轨后进入 Play
非 solo:当前时间
当前 time 行
触摸 / 释放
控制暂停与定位
片段选择、音量、声像
全部轨道定位后播放
Esc / 曲终
未见解码对象清理
图例
前端
后端
数据库
安全
外部系统
图表指南
探索此系统
×
正在检查已编译语义
01
查找任意节点
搜索标签、职责、类型和稳定 ID。
/
02
追踪路径
查看两个语义节点如何按编写方向连接。
R
03
查看完整系统
打开带实时视口和稳定节点的语义雷达。
M
04
比较语义类型
统计角色、显示流量并比较直接编写的连接。
L
05
进入演示模式
让实时图表占满视口,同时不改变导出。
F
E
导出
T
主题
S
风格
0
重置
+
放大
-
缩小
Esc
关闭
查找节点
×
⌕
/
没有匹配的节点
语义护照
已验证来源
编写可达范围
上游
0
下游
0
×
复制链接
关系
路径
点击路径的起点
查找起点
复制链接
清除
在图上点两个节点
←
▶
旅程
→
总览
先点起点,再点终点,沿箭头方向找路。
语义透镜
比较系统角色
×
最多选择两种语义类型。选择一种可显示其真实流量;选择两种只比较直接编写的关系。
选择一种类型以检查其节点和相连关系。
复制链接
清除
语义雷达
正在构建总览
打开雷达
×
点击节点
拖动平移
语义雷达需要更多地图可见空间。
要点与索引
路径
地图
透镜
阅读
100%