下载 App
仙岛🐌11.05更新内容(未上线)
置顶前天 14:1816 浏览更新内容
《望海镇》第四期更新公告
本期覆盖 11-03 晚至 11-05。大世界渲染方案在四天内调整了四次,最终定在正交投影;另有存档页/设置页重组、字体合规、发布水印等改动。
一、大世界渲染:最终采用正交投影
四天内调整了四次,如实说明过程
时间 方案 结果
11-03 13:40 真 3D + 透视相机 出现近大远小、画面扭曲
11-04 13:06 地面烘焙成贴图 + 物件立起 地面有接缝、画质模糊
11-05 03:46 真 3D + 正交相机 有改进,但仍需重做
11-05 12:20 退回纯 NanoVG 2D(菱形地面) 坐标问题基本解决
11-05 14:30 又改真 3D(按饥荒方案) 出现近大远小
11-05 17:10 定稿:正交投影 ✅ 当前方案
最终方案为什么是正交投影
你说得对:饥荒里没有近大远小——走到哪里,东西都一样大,只有放大缩小会改变大小。
所以最终定稿:
同屏物件严格等大:数学上保证,不是靠调参逼近。实测纵深差 4 格的两块同尺寸立牌,屏幕高度差 0.0000 像素。
缩放只改视野与俯角:4 格时 480px、8 格时 240px、14 格时 137px,比值精确等于 3.500(= 14/4)。
俯角随缩放变化:拉到最近 30°(接近平视、纵深强),拉到最远 60°(接近俯瞰、看得全)。
移动横平竖直:推右 → 屏幕纯水平移动;推下 → 纯竖直。
立牌严格正方形:修掉了一个引擎陷阱——浮点版的设置接口会给出正方形视口,拉伸到 1920×1080 后所有东西横向变胖 1.78 倍(立牌本该 240×240,画出来是 427×240)。改用向量版接口后严格为 240×240。
本期同时修掉的实际问题
画面扭曲 / 每个东西歪的方向都不一样:根因是错误使用透视相机。透视天然带近大远小和梯形收缩,而本项目立绘是平视绘制的,必须用正交才与美术一致。
地板贴图错误(深色矩形块 / 黑波浪线):地形形状瓦片带大量透明像素(实测水面图集有 89.1% 全透明),却被用不透明材质渲染,透明区被画成实色。已按层区分:满铺底图用不透明(保证物件正确压在上面),侵蚀层用透明材质。
地面网格漏角(右下角三角空白):正交相机有俯角时,屏幕纵向在地面上被拉长 2.9 倍,原来的估算范围远远不够。改为按投影几何精确计算。
屏幕边缘物品抖动:地面与物件用了两套不同的可见范围算法,边界不一致,相机一动就在"被裁掉/被加回"之间反复跳。已统一为唯一入口,实测移动 101 帧跳变 0 次。
角色斜着走 / 物品不贴地:精灵层自己手算屏幕坐标,绕过了旋转矩阵,与地面天然差 45°。已统一走同一个投影函数,误差 < 1e-6。
房子名字跟着角色乱跑:投影函数返回的已是绝对坐标,调用处又加了一次偏移。已去掉重复偏移。
加载范围外黑屏:屏幕矩形在世界坐标里是旋转过的,其外接矩形要大 √2 倍,屏幕四角该画的地皮没算进来。已按旋转外接矩形计算。
进屋卡住:排查后确认不是代码 Bug,是测试用例走错方向(菱形视角下"向上一格"在屏幕上是斜向右上)。用正确方向后进门正常。
整屏纯蓝:光照预设自带一整套重负载效果(IBL、球谐、泛光、体积雾、自动曝光、四级阴影),加上重建视口时用了雾色清屏。已改为最简光照、无阴影,并修正清屏配置。
物件长在水里 / 走过才加载:地面尺寸被错误放大 2 倍,错位量随移动累积(走 30 格就错 30 格)。已改为尺寸严格等于实际范围。
顺带做的性能与观感调整
全部物件统一为一格宽,锚点居中贴底。
物件分布回退到 2D 版的原始规则(每区 100 件、均匀随机撒点),不再自行发挥。之前出现「挤成一坨、横平竖直」是因为组团算法的坐标恒为步长整数倍,数学上就是完美晶格。
特效光照全关,只保留最简框架。名牌发光从三层模糊降到单层实心 + 一层细阴影,成本降到约 1/3。
视野范围:默认 8 格(4~14 可调)。
未完成
室内仍是纯 2D:你明确说过「先把室外做好,室内先不管」,本期只做室外。
立牌暂无四向帧:角色朝向是固定值,你已说以后自己加 4 套图解决。
边界红线、答题机器人已跟随 3D 投影(此前与立牌不同源,必然错位)。
二、主角与 NPC 头顶名字
主角头顶也显示名字
选谁显示谁:扮演阿生就显示「阿生」,换月儿就变「月儿」。名字来自角色数据,零额外配置。
名字错位问题已解决
这个问题返工了三轮,前两轮的排查方向都是错的。真正的两个根因:
立牌尺寸字段是「半边长」语义 —— 填 140.8 实际画出 281.6 高。之前按全尺寸取顶点,名字被压到角色头上。
水平中心不能用左右角求平均 —— 透视下左右角不对称,平均值会带偏,这就是「名字在侧边」的来源。改用节点自身投影,节点天生就在立牌底边中点。
名字字号随之自适应
名字字号按立牌屏幕宽度的 0.22 倍计算 —— 角色放大,名字同步变大,不再出现「角色变大、字反而变小」。
三、UI 换皮:统一纸纹模板
新建统一模板,不再各处硬编码
按你的要求建了统一的 PaperSkin 模板,所有常量从书页配置读取,不新增第二份数据源。调用方一律走模板接口,避免各自引错表。
更换范围(按你三轮修正后的最终口径)
改 不改
纯颜色、还没加东西的整窗底 → 纸纹+横线 L1 一级书页窗一点都不能动(含黑色装订线)
剧情/小游戏标题 → 二级标签纸片 有贴图的背景一律不动
加载弹窗(含全屏遮罩) 贴实体选项框不改
确认框、顺序验证框 新做的不画装订线
修复的三个换皮事故
纸片变成全屏:上一版把加载层的全屏遮罩也换成了纸。已撤回——遮罩恢复原半透明青绿,只保留中间承载文字的面板换纸。
标题纸片不显示文字:纸片宽度由内容决定、父宽未定,而文字设了 width="100%" → 算出 0 → 整条不可见。改为让文字自动测宽、纸片贴合文字。
纸片居中:已全部改为靠左。
另外排查出两处动了布局的地方(提示框被多加了一块高度、对话框被多加了居中),均已恢复原尺寸与原布局,只保留换底色。
四、图鉴右页排版(承接上期)
相框胶带:平行左移,最低点正好压到相框左边缘、露出一部分。(引擎百分比定位不支持负号,left = -9.71% 会被解析成正数反向右移,故改用等价的 right 表达。)
相框名字居中贴底、下方正文回退左对齐、三个标签条放大 1.5 倍(字号不变)。
五、存档页 / 设置页重组
一级入口重排
槽位 原来 现在
槽 1 设置 存档(二级:存档 / 好友 / 天赋 / 明信片 / 熟练度)
槽 5 商城 设置(二级:通用 / 福利 / 指南 / 反馈 / 致谢)
图鉴 1/2/3 三槽一字未动。两个一级入口各有 5 个二级。原「基本 + 资料」合并为「通用」,「商城」并入设置,「邮件」并入福利第 5 个格子。
设置页重排
音量行改为「标题 │ 滑块 │ 百分比」一行三件并铺满页宽。
删除「回到主菜单」「返回选存档」两个按钮。
改为「恢复默认」+ 一个模式按钮(游戏内显示「返回主菜单」,游戏外显示「退出游戏」,同一位置)。
按你要求删除了「游戏内外二级标签顺序对调」的旧设定,改为固定顺序。
头像框系统
头像改为 4 列卡片式(卡片底 + 胶带 + 选中倾斜)。
新增头像框网格(头像 72% 在下、框 84% 在上),网格常驻不再折叠。
头像框从硬编码改为可选配置,并接通 HUD 渲染与云同步。当前仅 1 个框,后续追加即可。
HUD 头像框按所选框渲染。
新增三个页面
指南:PC / 手机 / 界面按钮三个分区,按本项目真实操作编写。
反馈:5 步指引 + 复制诊断信息(版本 / 场景 / 存档 / 分辨率)。
致谢:字体授权全文。
六、字体合规
授权全文入包
OFL 第 2 条要求「随软件分发须附带版权声明与许可」,此前 .txt 全部不进包,致谢页读不到全文,不满足要求。已加入资源分组。
修复「找不到资源」报错
.txt 属于引擎分类里的「其他资源」——既不是启动预加载项,也没有边玩边下机制。文件确实在包里,但引擎不会自动下载它 → 致谢页读取必然落空并留负缓存,每次进页面都刷错误。
修复:随字体一起预下载,读取前先探测文件是否存在(兜住「下载完成前就点进致谢页」的竞态),两条路径都不再刷错误。实测整份日志该报错出现次数 0。
字体母体升级
母体从 v1.520 升级到上游最新 v1.530(2026-10-17 发布),消除上一轮的字形版本回退。子集 cmap 7568(新增 12 字、丢失 0 字),GB2312 全集完整覆盖。
一个发现并修掉的方向性问题
字体子集脚本原先校验的是 GameText-Regular.ttf,而运行时实际加载的是 LXGWWenKai-Regular.ttf —— 校验脚本查的是不生效的那个文件。已修正路径。
另一个隐患已堵上:首轮重建后字库只剩 2517 字(仅项目用字),会砍掉 5051 个汉字 —— 玩家打出的昵称会变豆腐块。现在以 GB2312 全集打底(玩家昵称是运行期外部输入,不能按项目用字裁剪)。
七、发布安全
资源盲水印
给发布包的图片和音频加了不可见水印,用于溯源。
图片:8×8 DCT 中频调制,固定几何不依赖 alpha 通道
音频:400~3000Hz 带限扩频
实测结果:
PNG 551/551 处理成功,体积 +4.2%,完整性 551/551 通过
OGG 307/307 处理成功,体积 −4.1%,完整性 307/307 通过
抽检图片 30 张:28 张强检出、2 张弱检出、0 张未检出
抽检音频 12 个:10 个强检出,短音频联合检测同样通过
音量变化 +0.025dB(不可闻)
抗 JPEG 重压缩通过;抗缩放/裁剪不通过(已知局限,已在代码中标明)
双轨制发布流水线
scripts/ 与 assets/ 保持开发原样,发布构建读取 .release/ 下的加固副本,两者互不影响。
发布脚本会裁剪开发文件:519 个 lua → 452 个(剔除 61 个测试脚本 + 6 个开发探针 + 2 个私密配置)。
一项主动放弃的方案
排查确认包内 513 个 lua 是固定 XOR 加密(密钥跨版本固定,513/513 可还原,注释 19.3% 全保留)。
但据此判断「剥离注释 / 变量短名化」对 AI 破解无效(AI 变量名还原率 80~90%),故主动放弃该路线,改为资源盲水印 + 平台维权。这是权衡后的决定,不是遗漏。












