夜雨聆风学习资料网

ARTICLE · 1257400

族谱软件开发日志 (漫游世系)10.26

族谱软件开发日志 (漫游世系)10.26

老闫的族谱软件开发日志

这是一份持续更新的开发日志。我按时间节点记录「族谱管理」软件从想法到交付的全过程。本文为第 13 篇,全程文字记录,不涉及任何真实族人信息。

关注
重播 分享 赞

📖 前言

上一篇写到 1.3.6:族人变成星球,夫妻并排转,选中的一家人一起亮,宇宙照片铺满塔外的天空。

这一篇记 10 月 26 日,也把中间几天的活一起补上。这几天没有加很多新页面,主要是在把已经做出来的东西,做得更像一本能用的谱书:把世系从一块文字面板,换成能翻的 B6 谱册;把格式、同步状态、缩放和拖动放到顺手的位置;再把 3D 漫游的结尾,接成一条能自己回家的路。

听起来都是小修小补,真正动手才知道,小地方最容易反复。左栏明明写了居中,打印一样靠上;状态圈明明画好了,放在按钮外面就不像按钮的一部分;两只侧栏能弹出来了,却还是一顿一顿的;镜头能钻到塔里了,却又在下坠的最后一段只看见一片空星空。

最后留下的这一版,是一遍遍看、一遍遍退回重调之后的版本。

🎯 今日目标

  • ✅ 世系 PDF 左栏父名和子序,水平和垂直都居中
  • ✅ 世系改为左侧 510px 面板滑出,不再弹窗;支持适配、放大、小手拖动
  • ✅ 世系支持 Ctrl+滚轮,以鼠标位置为中心缩放,最小只缩到适配宽度
  • ✅ 左上角加入「家谱格式」下拉,A1 到 B6 六种格式;当前只有 B6 可用
  • ✅ 同步状态圈收进按钮内部,世系、刷新、3D、备份五处联动
  • ✅ 世系和详情面板统一为 240 毫秒先快后慢滑出
  • ✅ 底部只保留一条半透明状态条,绿色提示行删除
  • ✅ 3D 漫游变成循环:中段切入 → 世代电梯 → 成员环内螺旋俯冲 → 第一世再漫游
  • ✅ 世代电梯和俯冲减速,BGM 贯穿循环,Esc 或点击画面可停止
  • ✅ 导出一轮完整循环视频《星空10.26.mp4》
  • ✅ 七套测试全绿,测试版版本号升到 1.3.8
  • ⏳ 正式版更新、A1-A5 传统格式模板(我自己来)

🧩 方案选型 & 设计思路

这次没有新增复杂功能,主要是在几个“位置”和“节奏”之间做选择。

要解决的问题
考虑过的做法
最后的选择
世系放在哪里
独立弹窗 / 左侧固定面板
左侧 510px 滑出,推挤树状图,不遮挡内容
PDF 怎么缩放
只放按钮 / 滚轮 / 快捷键
按钮 + 小手拖动 + Ctrl+滚轮锚点缩放
格式怎么选
固定 B6 / 下拉菜单
下拉列出 A1 到 B6,当前只开放 B6,其余灰显
同步状态放哪
单独浮在按钮外 / 收进按钮
收进按钮边框内部,和按钮文字一起看
底部状态栏
保留绿色提示行 + 透明状态条
只留半透明一条,固定左下,不跟着面板走
漫游结尾怎么进塔
沿中轴直下 / 从成员环内螺旋下
成员环内螺旋,逐世减速,最后收回第一世

老闫思考: 好的界面不是把功能堆在眼前,而是让人知道下一步该点哪里。按钮上的小圈、抽屉的弹速、镜头最后停在哪里,都是在回答这个问题。

💻 核心改动

一、一本能翻的谱

1.3.7 最重要的变化,是世系窗口不再是一块只能滚动的文字面板,而是直接在左侧生成 B6 现代牒记式 PDF。全谱从当前数据库自动载入,一页一页向下滚动,显示和导出共用同一份文件。树状图点一位成员,谱册就翻到那一页;点妻子,翻到丈夫那一页。

二、让等待看得见

同步 PDF 要花一点时间。以前只有一个绿色提示条在底部闪一下;现在把状态做成一个细圆圈,直接放进按钮里:库同步、导出、刷新、3D 谱系图、备份,五处都有。

默认是绿色对勾;同步时变成旋转的绿环;失败是红色感叹号。后台生成 PDF 时,五处一起转;生成完自动刷新窗口,导出菜单也跟着当前格式改名。3D 谱系图按钮选中时是绿底,绿色圆圈会看不清,所以给这个状态圈加了一层很浅的白底,像给按钮别了一枚小徽章。

三、抽屉要稳,状态条要静

世系和详情这两只侧栏,以前要么瞬间出现,要么滑得一顿一顿的。这次统一成 240 毫秒、先快后慢的滑出;更关键的是,滑出时里面的内容保持 510 像素固定宽度,只改变外面看得见的宽度。PDF 不再每一帧重新排版,详情表单也不跟着抖。

四、在星空里绕一圈

3D 漫游本身没有变:从第一世开始,沿塔心上升,一层一层点亮名字和世代环,最后回到重置视角。

先在中段切开一个口子,镜头从全景滑到塔身中部;然后像电梯一样逐世上升,每到一层停一下,点亮该世世代环,显示「第 X 世 · N 位族人」;到顶后,不再沿中轴直下,而是从顶世成员环的内部进入,一边向下、一边绕着塔心收紧,穿过每一层的成员,再进入下一世。每一世在环平面附近都会慢一点。最后到第一世的成员环内,接回漫游的第一帧,继续下一轮。

世代电梯和顶部俯冲后来都放慢了:电梯时长翻倍,俯冲时长变成原来的三倍。BGM《开智小曲》贯穿整轮循环,按 Esc 或点击画面可以停下,界面会自动恢复。循环开始时,屏幕下方会短暂提示一句“循环漫游中 · 按 Esc 或点击画面停止”。

这一轮完整循环约 103.9 秒,我把它录成了《星空10.26.mp4》,1920×1080,带开智小曲。视频画面是纯 3D 场景,不含界面字幕和提示浮层,和之前的漫游视频保持一致。

⚠️ 踩坑记录

左栏怎么都不居中

两个状态栏

抽屉越做越卡

螺旋不是画一条线就行

📝 开发复盘

✨ 收获

  1. 固定内容宽度,比换一条更好看的曲线更有用
  2. 状态圈在按钮外面,用户得先找它;收进按钮里,才像按钮自己在说话。
  3. 循环必须有出口。
  4. 镜头路线要先服从数据。

🤔 不足与下一步

  • A1 到 A5 的传统格式模板还没准备好,目前只能在菜单里看到、不能选;
  • 循环内部段的绝对半径会随中段圆环外扩,这是为了保证镜头真的穿过成员环,后面还需要用不同数据多看几遍;
  • 导出的视频是纯 3D 画面,没有界面字幕;如果以后要带字幕,需要另做画面合成;
  • 正式版还是我自己手动更新,不劳 AI 打包。

💬 写在最后

一篇篇写下来,越来越觉得族谱软件做的不是“把数据摆出来”,而是把人和时间摆在一个能看懂的位置上。

左边是一本可以翻的谱,右边是一条可以走的世系;抬头是星空,低头是祖先。这次改的都是位置和节奏:让格子真正居中,让按钮自己说明状态,让抽屉安静地滑出,让镜头从族人之间穿过去,再回到第一世。

路走完一圈,还是回到第一页。这大概就是族谱最朴素的样子。

想要什么功能?留言区告诉老闫哦


老闫的开发日志|持续记录软件开发实战过程 公众号:老闫开发笔记

(未完待续,下一篇见文首新的时间节点。)

—— 2026 年 10 月 26 日

相关学习资料