深色
风格
视觉表达
S
循环切换
经典
稳定的技术默认风格
信号流
突出动态流向
蓝图
工程评审
编辑风格
适合发布与上线说明
动态
演示
导出
导出图表
便携、整洁的输出
E
分享
路径分享卡片
1200×630 PNG
可达范围分享卡片
1200×630 PNG
复制图表
复制 PNG 到剪贴板
图像
PNG
无损图像
JPEG
紧凑图像
WebP
现代图像格式
矢量与动效
SVG · 自动
匹配宿主主题
SVG · 浅色
始终浅色
SVG · 深色
始终深色
WebM
6 秒动效
Live 播放器:选择、两阶段加载与资源生命周期
Live 播放器:选择、两阶段加载与资源生命周期
由 Archify 生成的架构图。
本地资源与主数据 · UmaDatabaseController · 架构组件
本地资源与主数据
UmaDatabaseController
可选择的歌曲与角色目录 · UmaViewerMain.AbList / Lives · 架构组件
可选择的歌曲与角色目录
UmaViewerMain.AbList / Lives
① 选择歌曲、阵容与模式 · UmaViewerUI.PlayLive · 架构组件 · 默认 LiveMode = 1
① 选择歌曲、阵容与模式
UmaViewerUI.PlayLive
默认 LiveMode = 1
自动补全失败:停止加载 · LiveAutoSelection.FillMissing · 架构组件
自动补全失败:停止加载
LiveAutoSelection.FillMissing
② 补齐空位并冻结选择 · LiveCharacterLoadData.CaptureAll · 架构组件
② 补齐空位并冻结选择
LiveCharacterLoadData.CaptureAll
③ 注册第一批资源根 · LiveResourceRegister.RegisterDownload · 架构组件
③ 注册第一批资源根
LiveResourceRegister.RegisterDownload
④ 依赖展开与分帧预载 · UmaAssetManager.PreLoadAndRun · 架构组件 · 每 4 个请求让出一帧
④ 依赖展开与分帧预载
UmaAssetManager.PreLoadAndRun
每 4 个请求让出一帧
Standalone 缺失资源下载 · UmaViewerDownload.DownloadAssets · 架构组件 · Default 不做这一轮批量下载
Standalone 缺失资源下载
UmaViewerDownload.DownloadAssets
Default 不做这一轮批量下载
复用句柄或打开资源文件 · AcquireOne / RefCount · 架构组件 · AB:LoadFromFile / LoadFromStream
复用句柄或打开资源文件
AcquireOne / RefCount
AB:LoadFromFile / LoadFromStream
缺失、无效或异常:记录错误 · AcquireOne → false · 架构组件 · 不是事务式整体中止
缺失、无效或异常:记录错误
AcquireOne → false
不是事务式整体中止
⑤ 加法加载 LiveScene · UmaSceneController.LoadLiveSceneAsync · 架构组件
⑤ 加法加载 LiveScene
UmaSceneController.LoadLiveSceneAsync
⑥ 建立控制器并转移对象 · LoadLive:OnSceneloaded · 架构组件 · ViewerMain / AudioManager 等转入
⑥ 建立控制器并转移对象
LoadLive:OnSceneloaded
ViewerMain / AudioManager 等转入
⑦ 初始化时间轴、舞台与分谱 · Director.Initialize · 架构组件 · RequireStage 才实例化舞台
⑦ 初始化时间轴、舞台与分谱
Director.Initialize
RequireStage 才实例化舞台
⑧ 建立阵容与歌词 · LoadLiveUma / LoadLiveLyrics · 架构组件 · 模型不播放普通 event idle
⑧ 建立阵容与歌词
LoadLiveUma / LoadLiveLyrics
模型不播放普通 event idle
⑨ 卸载旧场景后继续 · OnPrevSceneUnloaded · 架构组件
⑨ 卸载旧场景后继续
OnPrevSceneUnloaded
⑩ 扫描时间轴的运行期依赖 · props / effect / 灯光纹理 · 架构组件 · variation == 0;舞台专用资源有门控
⑩ 扫描时间轴的运行期依赖
props / effect / 灯光纹理
variation == 0;舞台专用资源有门控
⑪ 第二轮预载与临时引用归还 · PreLoadAndRun(effectEntries) · 架构组件 · Director 已销毁则跳过初始化
⑪ 第二轮预载与临时引用归还
PreLoadAndRun(effectEntries)
Director 已销毁则跳过初始化
⑫ 接通 UI 并初始化动作 · InitializeUI / InitializeTimeline · 架构组件
⑫ 接通 UI 并初始化动作
InitializeUI / InitializeTimeline
全模式:逐通道动作序列 · LiveTimelineMotionSequence.Initialize · 架构组件 · 缺 clip 才加载 motionName / 2 / 3
全模式:逐通道动作序列
LiveTimelineMotionSequence.Initialize
缺 clip 才加载 motionName / 2 / 3
简单模式:基本动作集合 · InitCharaMotionSequence:mode == 0 · 架构组件 · 并非第一轮显式预载根
简单模式:基本动作集合
InitCharaMotionSequence:mode == 0
并非第一轮显式预载根
⑬ 解码音轨并开始演出 · InitializeMusic → Director.Play · 架构组件
⑬ 解码音轨并开始演出
InitializeMusic → Director.Play
⑭ Esc 或曲终返回 Version2 · Director.ExitLive · 架构组件 · 先销毁 LiveScene,再释放资源
⑭ Esc 或曲终返回 Version2
Director.ExitLive
先销毁 LiveScene,再释放资源
⑮ 释放非永久资源 · UnloadAllBundle(true) · 架构组件 · shader.a 与 livesettings 等保留
⑮ 释放非永久资源
UnloadAllBundle(true)
shader.a 与 livesettings 等保留
读 meta / master
填充列表
PlayLive
无法匹配服装
补全成功
注册根资源
仅 Standalone
逐请求 Acquire
失败返回 false
完成回调
加载完成
对象转移后
站位建成后
回调返回后
卸载完成
去重后的根
Director 仍存在
mode == 1
mode == 0
动作初始化后
动作初始化后
播放期间
旧场景卸载后
图例
前端
后端
数据库
云服务
图表指南
探索此系统
×
正在检查已编译语义
01
查找任意节点
搜索标签、职责、类型和稳定 ID。
/
02
追踪路径
查看两个语义节点如何按编写方向连接。
R
03
查看完整系统
打开带实时视口和稳定节点的语义雷达。
M
04
比较语义类型
统计角色、显示流量并比较直接编写的连接。
L
05
进入演示模式
让实时图表占满视口,同时不改变导出。
F
E
导出
T
主题
S
风格
0
重置
+
放大
-
缩小
Esc
关闭
查找节点
×
⌕
/
没有匹配的节点
语义护照
已验证来源
编写可达范围
上游
0
下游
0
×
复制链接
关系
路径
点击路径的起点
查找起点
复制链接
清除
在图上点两个节点
←
▶
旅程
→
总览
先点起点,再点终点,沿箭头方向找路。
语义透镜
比较系统角色
×
最多选择两种语义类型。选择一种可显示其真实流量;选择两种只比较直接编写的关系。
选择一种类型以检查其节点和相连关系。
复制链接
清除
语义雷达
正在构建总览
打开雷达
×
点击节点
拖动平移
语义雷达需要更多地图可见空间。
要点与索引
路径
地图
透镜
阅读
100%