【游戏功能】
篆刻师傅的印章从不打草稿:刀落石上,一笔是一笔,刻坏了整块石头就废了。今天拆篆刻印章的表现,看"刻"与"盖"两段仪式怎么在石头和宣纸上各演一遍。
一、刻石、蘸砂、盖印三段成印
篆刻的仪式三段。刻石段:刻刀在印面上刻出四笔印文,刻痕是凹进石面的深槽——刻痕是印面的"反字":刻下去的地方盖出来是白的,没刻的地方是红的。蘸砂段:印面蘸上朱砂印泥,印泥均匀抹进刻痕——蘸砂是把"刻"转成"盖"的中转工序。盖印段:印章按上宣纸一压,朱文印面鲜红欲滴——盖的力道决定印色的浓淡:力道大印色饱满,力道小印色斑驳。三段的视觉核心是"反转":石上刻的是反字,纸上盖的是正字——刻与盖之间的翻转就是篆刻的魔术。
完整演示在这,刻满四笔再盖印:
fx-seal
二、幂尔框架实现:刻痕队列与朱文渲染
刻痕按笔顺存进印面,盖印按刻痕渲染朱文:
local Seal = {}
local KEY = { STROKES = 4 }
local carved, stamped = 0, false
local STROKES = {
{ -24, -30, 30, 4 }, { -24, 6, 30, 4 },
{ -24, 34, 18, 4 }, { 12, 34, 12, 4 }
}
function SE.Carve()
if carved >= KEY.STROKES then return end
carved = carved + 1
SL:PlaySfx("carve")
SL:PlayBurst(210 + carved * 24, 120, "stone_bits", 5)
SL:ShowTipAbove(210 + carved * 24, 100, "刻痕 " .. carved)
end
function SE.Stamp()
if carved < KEY.STROKES then
SL:ShowSystemTips("印面未刻完")
return
end
stamped = true
SL:PlaySfx("stamp")
SL:ScreenShake(0.2, 3)
-- 朱文渲染: 印底红 + 刻痕处透白
SL:Schedule(function(dt)
local k = math.min(1, SL:GetValue("stampK") + dt * 2.4)
SL:SetValue("stampK", k)
SL:SetFxAlpha("seal_print", math.min(1, k + 0.2))
for s = 1, carved do
SL:PunchWhite(SE.STROKES[s], k)
end
if k >= 1 then SL:UnSchedule("stampRun") end
end, 0.016, "stampRun")
end
return SE
朱文渲染的红底白字就是"印面"的正字:刻痕是凹的所以透白,没刻的是凸的所以吃朱砂。
三、力道浓淡与印泥的脾性
盖印力道滑块是全套的浓淡阀:力道大朱砂吃得满、印色鲜红欲滴;力道小印色斑驳、边缘发虚——斑驳的印反而在文人眼里更有"金石气",完美无瑕的印色反而像机器印的。印泥的脾性要还原:朱砂印泥是油调的,盖多了会"洇"——印色边缘微微往外渗一圈油晕,这个洇边是印泥的诚实。刻痕的四笔排布也有讲究:三横一竖是"丰"字的骨架——印文的笔画布局对称,盖出来的朱文才有章法。最后,宣纸的米黄底色是朱砂红最好的画布:米黄衬朱红,红得更稳;白纸衬朱红,红得刺眼——纸的颜色是印色的画框。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏功能】 两只精英站在一起,你先砍谁?砍血厚的,薄的在旁边白拍你;砍血薄的,厚的一刀送你回城——这道选择题在大多数战斗里…
【游戏功能】 荡魂波的全机制就一句话:怪物张口吐出一圈波纹,环带贴着地往外跑,扫过谁就把谁往外推半屏——不控血不减防,它只控…
【游戏功能】 一次压测里翻到一笔对不上的账:大怪的血线明明已经压到三成,十几秒后却又悄悄爬回了八成——治疗流水里查无此人,增…
【游戏功能】 测试组半夜报了一口"事故":打甲壳怪的战斗里,同一个普攻一会儿飘十四一会儿飘二十,伤害数字忽大忽小,怀疑扣血的…
【游戏功能】 dmg = math.round(dmg 0.7) ——一行七折的乘法,写尽了雷链诀全部的脾气:雷不会只劈一个…
【游戏功能】 毒圈该怎么画?很多新手第一笔就是"绿雾一罩、站在里面扣血"——这么写出来的毒沼是死的:圈从落地到消失一个模样,…