【游戏功能】
移速快两成有什么用?打不到人的时候才知道。疾行术是这批技能里数值最朴素的一个——没有伤害、没有控制,就一条移速加成——但演示里狼怪五次扑击四次落空,全靠这两成脚程垫出来的距离。今天拆疾行术,看"快"这个纯数值怎么演成看得见的闪避。
一、起风、拉距、落空三段
疾行术的循环三段。起风段:运功完毕,脚底亮起一圈绿光,身后拖出三道风线——风线是移速的"可视化外挂":速度本身看不见,风线替观众看见。拉距段:狼怪起扑,角色凭两成加速在扑击前摇里拉开半步——距离就是疾行术的全部产出:扑击的射程写死,多拉半步就落空,少半步就挨实。落空段:爪子挥在空气里,灰色"落空"二字从爪尖冒出——落空的观感比命中的观感更值得做:灰色小字、一道空挥的弧线、狼怪自己踉跄半步——每一次落空都是疾行术的战利品展示。三段的核心是"速度兑换空间":移速这个抽象数值,最终以"距离差"的形式兑现成闪避。
完整演示在这,默认自动循环:
fx-windstep
二、幂尔框架实现:移速系数与步频同步
加速落在移速与动画步频两处,缺一就露馅:
local WindStep = {}
local LIFE = 6.0
local SPEED = 2.0 -- 移速倍率
local haste = 0
function SL:CastHaste(actor)
SL:PlayActorAct(actor, "cast")
haste = LIFE
SL:SetMoveSpeed(actor, SPEED)
SL:SetAnimSpeed(actor, SPEED) -- 步频同步翻倍
SL:AttachFx(actor, "wind_trail")
end
function WindStep.Tick(dt)
if haste <= 0 then return end
haste = haste - dt
SL:WindTrail(actor, 3) -- 每帧补三道风线
if haste <= 0 then
SL:SetMoveSpeed(actor, 1)
SL:SetAnimSpeed(actor, 1)
SL:CancelFx(actor, "wind_trail")
SL:ShowSystemTips("风停 — 恢复常速")
end
end
return WindStep
SetMoveSpeed 与 SetAnimSpeed 必须成对出现:只提移速不提步频,角色像被拖着滑行的木偶;只提步频不提移速,原地小碎步像踩水。移速改的是位置更新,步频改的是动画推进,两者同乘一个系数,"快"才同时发生在脚和身上。
三、风线与落空的演出账
风线三道、长短错开、透明度递减,拖在身后的反方向——风线的方向就是速度的矢量演示,观众不看位移光看线就知道谁快。落空那一下的三件套要给足:灰色"落空"字、狼怪爪前的空挥弧、它自己重心前倾的踉跄——扑空是有代价的(前摇加收招),疾行术的每次成功闪避都在替对方浪费一轮攻击窗口,这个"浪费"演出来,速度的价值才有实感。被贴住的那一下也别回避:演示里狼怪偶尔贴身得手,红字照飘——疾行术不承诺无敌,它只把"挨打概率"往下压,偶发的失手恰恰是"概率"二字的可信度。风停的收尾要"泄":风线逐道消散、步频半拍内降回常速——速度的消失要有个缓冲,戛然而止的加减速都会闪到观众的眼睛。
四、移速的定价与上限制
移速是数值设计里最"贵"的属性之一,定价三条。其一,倍率封顶:常规加成给到两倍封顶、常见区间一点二到一点五——移速超过两倍半,闪避从概率变成确定,所有近战 AI 同时报废。其二,攻速不动:疾行术只加速移动、绝不加速攻击——跑得快是腿的事,手快是另一个技能的事,两条管线混写,移速技就会越界成全能技。其三,减速可破:移速加成与移速减伤(玄冰刺的圈内减速)按乘法结算——两倍加速进半速圈正好回归原速,这个数学上的"中和"让两个技能天然互为反制,不需要任何特判代码。最后记一笔演出的便宜账:速度感的大头不在速度本身,在背景参照物——演示的地面网格点阵在高速移动时呈现的流动感,比角色自身的一切特效都更能传达"快",这也是为什么速度类技能的演示都爱留地面参照。起风、拉距、落空三段,成对改速、风线指向、三条定价——疾行术把"快"字从数值演成了画面。
五、风的账外账:加速的副作用清单
移速翻倍不是白拿的,副作用清单要主动列出来给玩家看。第一笔是操控精度:两倍速下的急转弯半径变大——演示里角色的高速巡逻走的是大弧线,急停会滑小半步,这个"刹不住"演出来,速度才有重量;无声地急停的加速是假加速。第二笔是仇恨节奏:跑得快会撕开怪的追击队形——狼怪扑空后的踉跄正是追不上的一体两面,加速技天然是拉扯技,它的战术身份不必另写文档。第三笔是掉血风险的反直觉:高速移动撞进未知区域,等于用更少的反应时间换更快的支援——疾行术救得了队友,也送得掉自己,这条双刃要写进技能说明的第一行。收尾还有一个演出细节值得抄走:风停后角色会多走两步才彻底停下——动量衰减的这两步让"风"这个意象有尾巴,急刹收场的加速等于自己承认刚才是幻灯片。工程上最后钉一条:移速系数是全局状态,热重载加速模块时最怕 SetMoveSpeed 挂了两遍——恢复系数的调用要做成幂等,风停的清理只认一份。加速的两成聪明全在这些账外账里——快不难,快得可信才难。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 它的爪子明明挥向了你,怎么落在自己脸上?夺舍的答案邪门到家:道士的魂钻进了狼怪的身子——占据三秒,这三秒里它每…
【游戏功能】 墙又不追人,怪为什么次次撞?水墙的定位写在物理里:它立在路中央六秒,是一块"会推人的地形"——狼怪巡逻的弧线扫…
【游戏功能】 左手五刀右手五刀,怎么就数得清是双刀?双刀交叉斩的答案在弧线上:左刀的弧向右扫,右刀的弧向左扫,两把刀的弧线在…
【游戏功能】 隔着半个屏幕扎草人,狼怪为什么跟着一抽一抽?咒怨娃娃的逻辑古老而瘆人:草人与目标结咒之后,草人就是它——针扎草…
【游戏功能】 雷云的全部机制就这一行:一朵乌云升到目标头顶,慢半拍地跟着挪,每一点二秒掉一道小雷。云不追人——它认的是"头顶…
【游戏功能】 跑赢了的怪,怎么反倒挨了烧?火焰冲刺的账目反直觉就在这:冲刺是位移,火径是遗产——人冲过去了,路留在原地烧三秒…