下载 App
10/096 浏览综合

《刀光剑影》开发者日志

horizontal linehorizontal line

第一期:让刀光"是画出来的",而不是贴上去的

本期进展

1. 核心玩法跑通了
玩家在屏幕上画一笔,这一笔的形状直接变成一道飞出去的刀光。画横线出横劈,画弧线出月牙,画爱心就出爱心刀光。笔画越长刀波越大,画得越快伤害越高。
技术上走的是「屏幕笔画 → 归一化形状 → 程序化几何体」这条路:把玩家的采样点降采样、居中、按最大跨度归一化到 [-0.5, 0.5],再沿着轨迹生成带状网格。所以形状完全由玩家决定,不需要预制任何刀光模型。
2. 3D 角色动起来了
用 Tripo 生成的模型 + 引擎内置动画系统。这里踩了个大坑:生成的模型是 Mixamo 命名(L_Upperarm),而引擎动画是 Bip001 命名(Bip001 L UpperArm),名字对不上,动画驱动不了模型。
解法是把模型骨骼改名成引擎期望的格式——而且必须同时改 name 和 nameHash,因为引擎内部用 StringHash 索引骨骼,只改 name 是无效的。
3. 走路/跑步动画用 IK 实现
这个模型的腿几乎完全伸直(大腿 0.477m + 小腿 0.702m = 1.179m,而站立时髋到脚只有 1.171m,余量 8mm)。直接转髋关节 40°,脚就会沿腿长划弧抬起 0.33m,直接穿出裙子。
所以改成两骨 IK:先决定"脚踩在哪",再用余弦定理反解髋/膝角度。
上图:用红/绿标记球标定左右手腕骨骼位置,排查剑挂载点。这是在确认「角色右手到底是哪个方向」时拍的。

问题与风险

刀光是一团糊掉的白光,玩家画的形状完全读不出来。
原因有两个,都是根子上的问题:
① 边缘衰减太软,没有边界。 旧 shader 横向衰减写的是 pow(1 - across, edge_soft),edge_soft ≈ 0.85 时几乎是线性衰减——从中心到边缘一路慢慢变淡,整条刀光糊成一坨。
② 拖尾残影把颜色冲成白的。 6~8 层残影共用同一个材质,每层亮度完全一样。半透明叠 6 层,alpha 混合的结果必然趋近白色。这个不解决,光调颜色没用。
上图:改版前的刀光,四个飞行时刻。形状读不出来,就是一团白色光晕。

下期计划

  • 刀光改成「刃线 + 刃身 + 速度线」三层结构,边缘从软过渡改成硬边
  • 用顶点色把每层拖尾的 fade 传进 shader,解决叠加发白
  • 加命中特效
horizontal linehorizontal line

第二期:刀光的"刃感"与命中反馈

本期进展

1. 刀光重做成三层结构
层做法
刃线轮廓处一条高斯细亮线 + 外侧柔光晕,定义"刃",形状靠它读出来
刃身边界改成 smoothstep 硬边,饱和青蓝(深蓝外缘 → 亮青内层)
速度线沿轨迹流动的高频条纹,只出现在刃身内部
关键修复:把每层的 fade 写进顶点色(DefineColor),shader 里乘 COLOR.r。顶点色是唯一能逐层传值、又不用拆材质的通道。而且RGB 也要乘——只乘 alpha 的话,多层叠加后仍会趋近白。
另外把刃身亮度压下来、白核收窄:场景开了 Bloom + ACES,亮度一高就被冲白,只有刃线和中轴该发光。
2. 命中冲击波环
刀光撞到敌人时,在命中点炸开一圈径向光:白核 → 扩张亮环 → 大而淡地消失。击杀时环放大 1.6 倍。
这里用了和拖尾同样的技巧——顶点色传年龄。池里 8 个环共用同一个材质,uniform 是材质级的、改一个会影响全部,只有顶点色能逐对象传值。
上图:冲击波环的三帧演化——白核爆点、扩张的亮环、淡出。

问题与风险

挥砍动作"没有惯性"。
速度曲线用的是对称的 smoothstep:起手和收尾一样慢,到顶时速度刚好降到 0 但立刻开始回落,看着像"弹"回去的,没有挥完"定住"的那一下。
改成三段非对称曲线后好多了:出刀 ease-out(起步最快)、中间定住约 96ms、收刀 ease-in-out 慢慢落回。
上图:挥砍动作的胶片图,逐帧对比姿态。第 5、6 格姿态几乎相同,就是"顿住"的那一拍。

下期计划

  • 攻击姿势的轨迹还在调,目标是干净的前半圆
  • 刀光与攻击动作的时序对齐
horizontal linehorizontal line

第三期:攻击轨迹与发布素材

本期进展

1. 攻击轨迹改用「绕固定轴旋转」
之前试过两种插值,都不对:
方案问题
角度线性插值「角度 → 手的位置」是强非线性的,角度走直线、手在空间里就是扭的。实测 x 序列会先往左又弹回右,路径/直线比 3.84
三关键帧 + slerp插值本身没问题,但关键帧本身是坏的:「正前方」和「左前上」两个姿态的右手落点几乎重合(相差 0.13),后半段等于没动
最后改成绕一条固定轴做连续旋转——这也正是挥砍的物理本质(肩关节绕一个轴转)。轴和角度是扫出来的:9 条候选轴 × 3 个总角度,逐个读右手世界坐标,按「x 单调」和「z 前鼓尽量小」两个指标挑。
一个教训:验证必须用游戏相机(角色身后、pitch 20°)。我中途一度用正上方俯视去验证,把"手往前伸"误读成了"抬手",白调了一轮。
2. 出刀爆发
在刀光起点炸开一道向外扩散的月牙,0.3 秒内边扩散边淡出。踩了两个坑:
  • SetNumGeometries(2) 会让整条刀光都不渲染——这个引擎的 CustomGeometry 多几何体路径不可靠。改成把爆发和刀身塞进同一次 BeginGeometry/Commit
  • 顶点色传错了:我把 burstAge 当淡出系数传,但 age=0(刚出刀)时系数为 0 → 起手全透明。应该传 1 - burstAge
3. 发布素材
实机截图、图标、宣传图、横竖版封面都已生成。截图是从真实游戏画面抓的——写了个拍摄脚本跑真实场景、每 14 帧自动甩一道刀波,从 10 个候选帧里挑刀光最完整的 4 张。
上图:现在的刀光——带亮边的青蓝刃光,形状清晰,拖尾层次分明。

问题与风险

中段遮挡。 从游戏相机(身后)看,挥砍中段有 3~4 帧剑会被角色身体挡住——因为手往身前鼓了 z = +0.36,正好跑到身体前面去了。这是当前版本的已知取舍,如果后续要全程可见,需要把终点改成一个"不那么靠前"的斜上方姿态。
发布配置里的一处坑。 项目的 i18n 是关闭状态(enabled: false),但引擎的 i18n.lua 始终声明了对 i18n/zh_CN.json 和 i18n/en.json 的引用。构建从不产出这两个文件 → 运行时 DownloadManager 解析失败 → 预览客户端拿到空数据崩溃。解法是开启 i18n 让构建产出翻译表(源语言回退到原文,显示不受影响)。
上图:实机截图,大弧刀光 + 拖尾 + 出刀爆发同时出现在画面里。

下期计划

  • 挥砍中段遮挡:调整终点姿态,让剑全程露在身体轮廓外
  • 剑气质感升级:参考《晶核》的剑气,加"平行细光丝"和白色尾迹烟雾
  • 敌人 AI 与战斗节奏调整(目前 7 个敌人会持续围殴,主角掉血过快)
  • #聚光灯gamejam开发者日志
已通关,放心玩截图
已通关,放心玩
官方
1 赞
《刀光剑影》开发者日志截图
《刀光剑影》开发者日志
剑气随机滚转 + 拖尾居中 本期进展 1. 剑气不再永远是水平的 之前每道剑气都是固定的水平月牙,看久了很单调。这一期让它绕飞行轴随机滚转: lua复制 self.roll = math.random() * 360.0 self.rotation = Quaternion(yaw, Vector3.UP) * Quaternion(self.roll, Vector3.FORWARD) yaw
官方
1 赞
《刀光剑影》开发者日志第四期:剑气对标参考、特效拉满截图
《刀光剑影》开发者日志第四期:剑气对标参考、特效拉满
本期进展 1. 剑气形状定为固定月牙,不再跟玩家手绘走 上一期的刀光形状 = 玩家画什么就是什么。实际试下来这个设计有问题:玩家随手画一笔,出来的形状很难看,而且剑气的"帅"完全依赖玩家的手速和手感。 改成固定月牙形状:玩家画什么只决定"出不出招",形状永远是同一道月牙。程序化生成 32 个点:x = t - 0.5、y = -0.11 + 0.22 * (2t-1)²,两端翘起、中间下沉,就是一
官方
1 赞
《变成黑洞》开发日志
日期:2026-10-20 代码规模:12424 行 / 16 个文件 一、本期主线:从「700 体大混沌」到「渐进解锁的稀疏宇宙」 上一期结束时,场上铺着 700 个天体——引力对、碰撞对、守恒也对, 但玩起来画面挤成一团,性能也吃紧。这一期把整个世界结构重排了一遍: 玩家看到什么、什么时候看到、天体从哪里来,全部重写。 1. 渐进解锁:场上只出现「玩家阶段 +1」以内的天体 开局铺满十阶各两个
官方
2 赞
《变成黑洞》开发日志
日期:2026-10-23 代码规模:14022 行 / 20 个文件 一、本期主线:三个「不应该是这样」的物理 这一期的问题全部来自同一个地方:物理规则是对的,但套错了对象。 两块陨石撞一下,变成碎石被吃掉 —— 「同归于尽」变成了「一方吃掉另一方」 两块等大的球撞上,双双停在原地 —— 像粘住,不像天体 玩家撞成重伤,进度条纹丝不动 —— 掉血和进度是两套独立计量 三次排查都经历同一个过程:先
官方
2 赞
《变成黑洞》经费已至,敬请期待
日期:2026-10-17 ~ 2026-10-18 本期构建序号:19 → 56(共 38 次构建) 代码规模:8469 行 / 14 个文件 一、本期进展 这一期的主线只有一件事:把「视野」这件事从头重做一遍。 围绕它牵出了一连串问题——阶段错乱、渲染预算、特效不跟随、性能卡顿。 下面按「主线 → 连带修复 → 工程债」的顺序说。 1. 视野重构:从「按玩家体型」到「固定广阔」 起点:用户反馈
官方
1 赞
《刀光剑影》开发者日志截图
《刀光剑影》开发者日志
第八期:资源瘦身、流式不卡,和把草地"做回草地" 本期进展 包体从 1.2GB 压到 637MB(源目录 630MB → 239MB) 用户问"是不是资源不够",实际是资源没用对。审计发现三类浪费: 问题 体积 处理 assets/image 30 张设计稿 + 开发截图 138MB 运行时零引用,归档 Textures/Landscape、terrain、TileSets、Environment
官方
1 赞
《刀光剑影》开发者日志截图
《刀光剑影》开发者日志
角色蒙皮重构、画质链路,和一次发布环境的两连错 本期进展 1. 角色蒙皮:给"设备上一换角度就碎"做了一条兼容渲染路径 用户反馈的角色横片破碎,本地用独立观察相机做了固定姿势的前/后/侧/高俯角实拍,全部正常——问题复现不了,但截图是真的。排查收敛到一个高危点:内置 GPU 蒙皮的骨矩阵纹理存的是世界空间矩阵(角色在 470/326 米一带),一旦设备某个阶段把精度降到 FP16,光这个平移就会产
官方
《刀光剑影》开发者日志截图
《刀光剑影》开发者日志
给游戏配上武侠 BGM(音效试听后撤掉) 本期进展 之前完全没有声音 查了一遍:项目里没有任何音频资源和音频代码,连 SoundSource 都没出现过。素材声明里也写着"作品无背景音乐与音效"。这期补上。 生成 3 首武侠 BGM 用 AI 音乐模型生成,纯器乐(古筝/琵琶/二胡/战鼓),无人声: 文件 用途 时长 bgm_menu.ogg 菜单、结算 约 3.5 分钟 bgm_battle.o
官方
1 赞
《刀光剑影》开发者日志截图
《刀光剑影》开发者日志
三幕扩到六幕,把数值收进一张表 本期进展 1. 问题:内容太少 用户反馈"经常有玩家抱怨内容太少了"。当时是 3 幕、每幕 240 秒,一局约 12 分钟,而且第 3 幕首领一死就直接结算——中段没有变化,重复玩很快腻。 2. 扩到 6 幕,并调整单幕时长 旧 新 幕数 3 6 单幕时长 240 秒 150~180 秒 一局总时长 约 12 分钟 约 16 分钟 单幕缩短、幕数翻倍,是为了让"变
官方