|
|
65424a4dfb
|
feat(web): 海选按场景分组 + 删场景点位页签 + 演出真实底图 + 破缓存
- 海选审核左侧改两列:场景列(按新字段 ir.scene 手动归类聚合,含全部/未分类) + 该场景事件列
- 删独立「场景/点位」页签(pointview.js 保留未引用)
- 演出配置 Timeline 接真实场景俯视底图(setupShot 覆盖投影范围 + drawStage 叠图,复用 /api/pointsets 的 shot)
- 事件 meta 加「所属场景」归类输入框(datalist 提示已有场景名)
- db: events 加 scene 列 + 旧库 ALTER 迁移;upsert 镜像 ir.scene;list 返回
- app.py: 首页按文件 mtime 给 js/css 注入 ?v= 破浏览器缓存(根治新html配旧缓存js崩溃→弹口令)
|
2026-06-15 11:46:59 +08:00 |
|
|
|
021080dd56
|
feat(timeline): P2 并行编排——scene 多轨编辑器 + 白模重叠预览
剧情 Timeline P2 前端 + 共享内核(与 SGame 源真同步):
- ir_core/IR_SCHEMA/样张:scene v0.3 + scene 校验 + 导出 gate(D3),与 SGame 仓逐字一致
- timeline.js:appendScene 按 authored start 铺多轨 clip(自然重叠预览),move from 同 actor 跨轨续连(D4);
drawStage 改逐 actor 查对话→多人气泡同时计时;导出 _clipDur 纯函数;show() 加 startId 参;常量加 CAMERA_DUR
- scene_edit.js(新):演出段编辑模态——拖 clip 改 start(吸附 0.1s)、拖右缘改 dur、增删 clip/轨道、
选中属性条精确编辑、客户端轻量 lint(镜像 validate.py)、▶ 预览此段(复用播放核)
- graph.js:scene 节点(KIND_CN/summary/nodeInner 列轨道)+双击进编辑模态
- form.js:右栏 renderScene 精确数值编辑(轨道/clip 的 start/dur/kind/目标)+打开编辑器按钮
- app.py export:捕获 CompileError 并入 report(scene 被拦时不再 500)
- test_scene.js:离线 10 断言全过(重叠确凿/晚 1.5s 起步/from 续连);gitignore 忽略本地 _localdemo.db
待浏览器目测拖拽编辑落 IR + 白模重叠演出。
|
2026-06-13 22:34:29 +08:00 |
|
|
|
06e639f0df
|
feat(timeline): 结局金色浮层(重新观看 + 回到上一个选择)
播到结局时在镜头下方弹金色星标浮层:显示结局文案/成败/奖励 + 两个按钮——
「⟲ 重新观看」从头再播、「↶ 回到上一个选择」跳回最近分支点(位置重放正确)直接试另一条。
记录最近 choice/random/fight 节点供回跳;纯线性到结局则只显示重新观看。
|
2026-06-13 21:41:04 +08:00 |
|
|
|
ebff4e9b3b
|
feat(timeline): 模式配色区分 + 舞台放大/时间轴可拖高度 + 滚动条美化 + 镜头跟玩家
- 两模式各自背景色调:海选审核=暖棕 / 演出配置=冷青绿(顶栏/背景/列表/边框/滚动条全区分)
- 舞台自适应填充放大(画布提到960×470),时间轴默认200px固定高+中间分隔条可上下拖调高度
- 时间轴滚动条换成纤细主题化样式(替代默认丑滚动条),随模式变色
- 镜头修正:默认锁玩家(模拟真机45°俯视跟随相机),换说话人不再推近,仅显式镜头点才移焦
|
2026-06-13 20:43:52 +08:00 |
|
|
|
f164ed0a08
|
fix(timeline): 修时间轴无法滚动(flex min-width:auto 坑) + 加鼠标拖拽平移
- 根因:.tl-tracks 作为 flex 子项默认 min-width:auto,被 ~3000px 内容撑大不收缩,
内部 overflow-x 永不触发→滚轮/滚动条全失效。修复=加 min-width:0
- 新增鼠标按住拖拽平移时间轴(超阈值不算点击,避免误选);滚轮横向滚动;cursor:grab
|
2026-06-13 20:08:28 +08:00 |
|
|
|
e6ec743564
|
feat(timeline): 交互式分支演出 + 从任意节点开始 + 时间轴分面板/自适应
- 交互分支:播到选择/战斗/随机节点暂停,在镜头下方弹按钮手选,点完接对应分支续演
- 从任意节点开始:单击节点选中→「从选中处开始」或双击节点,立即从该处播放;
起始位置按从开头到该节点途中的走位重放算出(角色站在应有位置),已离线验证
- 布局分两块(上舞台/下时间轴),时间轴 playhead 仅播放时居中、暂停可自由滚
- 时间轴自适应宽度按钮(整条压进可视区)+鼠标滚轮横向滚动,解决长时间轴够不着节点
- 演示事件 QY_TLDEMO 扩充两条分支(和解→随机夜晚/拔剑→战斗胜败),去掉对焦NP1
|
2026-06-13 18:54:32 +08:00 |
|
|
|
fb95937236
|
feat(timeline): 无点位集时合成圆周布局兜底 + 演示事件
- 线上 NAS 多半没挂点位集卷(/api/pointsets 空),白模会无坐标。改为:真实锚点优先,
缺坐标时把引用到的点位(演员位/走位目标/镜头点)在圆周自动铺开,走位预览不空。
真实坐标存在时一律覆盖合成。mapinfo 标注当前是真实坐标还是示意布局。
- samples/timeline_demo.ir.json:QY_TLDEMO 演示事件,覆盖 P1 全部功能
(旁白/对话打字机/3角色走位/动画标记/镜头对焦/选择分支/双结局),离线测试合成布局走位全有位移
|
2026-06-13 11:22:07 +08:00 |
|
|
|
2a3cf2c66b
|
feat(perform): 演出配置页(模式切换) + 镜头可视框始终可见
P1 反馈两处修改:
- 顶部加「海选审核 / 演出配置」模式切换;演出配置=独立页,左列仅已确认事件,
选中即内嵌白模预览(弃用原弹窗),为 P2 在此配置演出细节打底
- 修镜头框只在 dialogue 显式带 camera 时才画的 bug:改为镜头可视区域框始终可见,
显式镜头点优先→跟随说话人→跟玩家→场景中心,框尺寸按世界单位随舞台缩放+焦点十字
- timeline.js 从弹窗固定ID重构为挂载到任意容器 Timeline.show(host,...);
离线模型测试复跑两样张全过,重构未破坏逻辑
|
2026-06-13 11:15:20 +08:00 |
|
|
|
dbf857769e
|
feat(timeline): P1 白模演出预览——时间线+俯视舞台播放
- /api/pointsets 增 anchors(含 pos/rot/kind/npc 坐标),保留 points 名字数组兼容下拉
- 新增 static/timeline.js:线性化主路径→按时长铺多轨时间线 + 2D 俯视白模舞台播放
(走位插值/对话打字机/镜头俯视框示意/playhead/点击跳转);战斗/选择/随机仅标点不模拟
- 工具栏加「演出预览」按钮 + 预览遮罩 + 暗金主题样式
- 时长模型:对话=字数×打字机速度,走位=坐标距离÷速度,动画/镜头给缺省时长
- node 离线测试两样张(含 out_ref+fight+skip)逻辑全过;修掉结局重复渲染 bug
设计文档见主仓 docs/plans/2026-06-13-story-timeline-editor-and-whitebox-preview-design.md (P1 期)
|
2026-06-13 10:52:20 +08:00 |
|