DESIGN DOC · 04 人物与形象 · #s6

形象设计规范(给美术的硬约束)

★ 每人一页人设圣经在此 · 图鉴 · 体型规范 — 《热血骑手·物语》设计案按节成页:一个 section 一个文件,左侧目录全站可跳。

本页只是04 册的第 2/2 节
本册 2 节#s5 · #s6
★ 本轮新增 每个人物一张独立页面:性格 / 说话方式 / 口头禅 / 台词样本(含反例)/ 语音 / 任务 / 红线。 打开人物设定圣经(39 人)→ 辣条妹③B 御膳房专区 杨洋沸毛雄燕子 傲楠改一个人 = 只改 chars-src/<key>.txt,再跑 node gen.js
06

形象设计规范(给美术的硬约束)

为什么长这样

规格

2.5~2.8 头身 · 120×120 矢量画布

已弃用像素风(用户拍板:细节全丢、不好看)。改为漫画 Q 版 chibi:头大身小、腿短粗成团子,头宽占身高 42%~52%,逻辑画布 120×120,矢量输出可在 4K Steam 与 iPhone SE 上同源无损缩放。

统一 暖黑描边 #2b2233,粗细随形体大小变化,转角 stroke-linejoin=round;内侧一层浅色 cel-shade 提体积。

可读性优先级

剪影 > 配色 > 细节

手机上看不清脸,所以每个角色必须有一个夸张的轮廓特征:杨洋沸的鸭舌帽反戴+侧挂包(蓝)、毛雄的头盔+背后大保温箱(黄)、燕子的自拍杆、余浪的奥特曼头饰、犬王的项圈疤。

检验标准:纯黑剪影也能认出是谁。这条现在有工具了 —— HB_SILK(key, scale, opt) 把任意立绘(含指定成长阶段)染成一整块实心黑,图鉴卡片下方的「体型进化」横条就是它输出的。任何两个不同角色的剪影都不允许长得一样,见下方 6A。

配色系统

五色槽位

每角色只有 5 个可换色槽:body / trim / pants / shoe / accent。黄蓝两兄弟用同一骨架不同槽位 → 天然强调"我们是一类人"。

蓝 #2f7fd6 杨洋沸·P1·稳重/守反击黄 #ffcf2d 毛雄·P2·冲锋/搞笑担当红 #e2402b 危险/BOSS粉 #ff7ba8 燕子金 #c9a227 金钱势力

萌的五官硬指标

眼睛占脸高一半,嘴只到眼宽的 40%

每只眼必须带 2 个高光 + 底部反光 + 渐变瞳孔;鼻子是一个点或直接省略;腮红默认开启(女性/少年感角色加重)。头发用大块面 + 尖发簇 + 一条高光带,绝不画单根发丝。

情绪仍靠 3 张头像(普通/笑/怒)+ 身体小动画;愤怒时头顶弹可爱的四瓣青筋,尴尬时后脑冒汗滴,心动时眼睛变爱心。反差萌是本作的情绪语言。

风格决策记录(2026-10-08):初版给了 FC 像素风方案,你判定"太难看、细节完全丢失",已全面改为漫画 Q 版萌系。★★ 2026-10-09 追加:用户亲自绘制的男一形象 game-logo.png(杨洋沸 · 蓝衣骑手冲镜头挥拳)被定为全作唯一画风裁判,所有角色 / 建筑 / 场景一律向它对齐 —— 见下方 6C。这条决定同时影响三处:① 立绘(本页所有形象已重画);② 格斗动作帧(§07 已重写为萌系姿态 + 漫画特效:速度线、冲击星、汗滴、怒气四瓣青筋、爱心);③ 引擎侧渲染(矢量 → 运行时栅格化,不再需要 Aseprite 逐帧手绘,产能反而更高)。代价:Q 版身形小,打击感必须靠镜头抖动 / 顿帧 / 特效补,见 §07.4。

各阵营视觉语言

阵营轮廓关键词主色动作气质
骑手(我方)头盔、方保温箱、反光条蓝(P1杨洋沸)/黄(P2毛雄) + 白反光前倾奔跑、单手提箱、随时看表
市井店主围裙、袖套、扁担暖橙/绿/米白稳、慢、双手在忙
豹哥的合约团伙皮衣、面罩、铁管黑 + 血红耸肩、歪头、武器拖地
金钱势力(罗总/刀哥)西装、金链、礼帽黑 + 金不动手,只抬手叫人
主播圈自拍杆、灯牌、双马尾粉/紫/青举东西、跳、比心
犬群四足低重心、獠牙土黄/灰黑压低—突进—撕咬

6A ★★ 体型即设定:13 种体型骨架,禁止"全员同一个身材"

上一版最严重的问题不是画得不够细,而是所有人共用一副身体——胖子、壮汉、老头、小孩在屏幕上是一样大的同一种人,于是"罗总有 108kg""顾长根是保镖""许诺是职校生"这些设定完全没有被画出来。本版把它改成硬规则:体型是从角色设定推导出来的结论,不是美术的自由发挥。manga.js 里 BODY_TYPES 定义了 13 种骨架预设,每个角色必须先选一种才能填配色;resolveBody() 再把这套骨架换算成头宽、颈长、躯干宽高、腰臀差、腿围、脚宽。新增角色时先回答"他多重、多高、靠什么吃饭",再决定用哪副骨架。

骨架 key中文标签头身比身高/体重锚点轮廓特征(为什么必须是这个形状)本作使用者
riderLean骑手·精瘦2.6178cm / 63kg窄肩长肢、体脂低、重心前倾 —— 穷、常年骑车、吃不好杨洋沸(S0→S3 会变壮,见 6B)、毛雄
brawler打手·敦实2.5182cm / 84kg宽肩厚背、脖子缩短、重心低 —— 靠冲撞吃饭的人余浪(馆长)、豹哥马仔、山庄保安、傲楠(★更挺拔的 brawler)、大背头小弟
femme成年女性2.7168cm / 52kg颈长、胸腰差大、长腿窄脚、裙摆线燕子、护士小雅
petite少女·最萌2.9156cm / 44kg全场头最大、身子最小、腿最短 → 萌度最高的一档桃桃、毛雄妈
matron主妇·圆润2.4163cm / 68kg软腹、宽胯、手臂有肉 —— 灶台前站了三十年芳姨
dadBuild中年男性2.4172cm / 74kg直筒微发福、肩已塌 —— 久坐/久站的普通人老周、凯哥、舔狗·小费
heavy胖子·球形2.2170cm / 108kg球状躯干 + 脖子消失 + 脚外八,剪影是一个圆罗总、纳赛尔
tank壮汉·倒三角2.8196cm / 122kg肩宽 1.5 倍头宽、上臂比头还粗、腰极细 —— 压迫感全靠轮廓刀哥、顾长根、铁塔
twiggy干瘦老人2.3165cm / 51kg窄肩微驼、胳膊垂在身后、lean:-3 前倾废品陈伯
kid少年·团子3.0148cm / 38kg大头小身子,手脚全是圆团,腰几乎不收职校生小弟、许诺
lanky高瘦文弱2.3186cm / 62kg窄肩长身纸片人 —— 不运动、只动脑/只动嘴裁判·无名、督导007、赖律师、舔狗·键盘、傻强(傲楠第二副手)
athlete运动员·最高2.6189cm / 78kg全场最长腿(legH:17) + V 背(taper:.82)闪电队长、吴灾、阿威(傲楠第一副手)
stocky矮胖敦实2.2166cm / 88kg横着长、腿最短(legH:8)、肚子顶到胸口夜市强叔、豹哥、图米、③B 辣条妹(她靠黑金围裙 + 叫号牌把轮廓改写了,见下)、阿凯(傲楠第三副手 · 工具带 + 一卷电线 + 叉腰)

★ 体型对照线 · 同一条地平线上的 30 个剪影(真实身高标定)

左侧刻度是真实身高。最高的人 = 满幅,其余按 cm ÷ 196 缩放后站在同一条地面线上;全部染成纯黑(HB_SILK),因为"涂黑还能认出是谁"本来就是本节的验收标准。左边四张是杨洋沸 S0→S3(越练越壮,头身比锁死、只有肩/臂/腰在长),右边 25 张是 13 种骨架各挑代表。这一张图就是"体型都一样"这个问题的答案本身。

三条硬规则

体型不许凭手感调

① 先选骨架再填色:新角色必须从 13 种里挑一种 bodyType,不允许直接裸调参数。
② 职业写进轮廓:扛东西的人肩要宽,久坐的人腰要粗,孩子头要大,老人要驼。
③ 同阵营不同形:骑手内部也要拉开(杨洋沸精瘦 vs 毛雄敦实),否则双人同屏分不清谁是谁。

验收方式

剪影对照表已经跑过了

把 49 个形象(含杨洋沸四阶、毛雄两阶,同一角色的不同阶段不计入对照;`maoxiong/yangyangfei/yanzi` 是 `re/liang/man` 的别名 key,不重复计数)全部染成纯黑,栅格化成 240px 位图后量四个数:面积占比 / 宽高比 / 腰部最窄 / 肩部最宽,取四项里最小的相对差作为"这一对有多难分辨"。全表 1,035 组配对已跑完(C(46,2)):最差的一对是「夜市强叔 vs 豹哥」0.022(同属 stocky,本来就同类人,靠围裙与皮衣的配色和道具区分),次差「废品陈伯 vs 裁判·无名」0.033;拉得最开的是「铁塔 0.81 vs 赖律师 0.40」的宽高比。
★ 本轮新增五个形象的剪影实测(同一套算法重跑):傲楠 ar 0.694 / fill 0.206 —— 他的短袖西装两片向后开的衣角 + 大背头把轮廓整体加宽加高,是全作唯一"宽肩但腰极窄(waist 0.044)"的 brawler,与余浪、豹哥马仔、山庄保安同骨架却拉开得最开;阿威 ar 0.636(athlete 长腿 + 手里那件西装)、傻强 ar 0.543(lanky + 双手捧着的手机充电宝)、大背头小弟 ar 0.633(扛在肩上的棒球棍是唯一识别点);阿凯 ar 0.540 / fill 0.144 / waist 0.094 —— 他用的虽是 stocky,但叉腰(armPose hips)+ 腰间工具带 + 手里那卷没接完的电线把宽高比从夜市强叔的 0.610 拉到 0.540,和大背头的 0.633、铁塔的 0.811 都拉开了。结论:五个新皮全部靠"一件改变轮廓的东西"过关,没有一个需要新骨架。结论:涂黑以后仍然能分辨 —— 但同骨架的那几对必须靠道具守住,这是有条件的通过,不是无条件。

已知风险

同骨架复用会撞剪影

stocky 用了 5 个(辣条妹、阿凯)、brawler 用了 6 个(傲楠、大背头是本轮新加的两个)、tank 用了 3 个、lanky 用了 5 个(+傻强)、athlete 用了 3 个(+阿威)。→ 数字由脚本从 manga.js 的 bodyType 字段实测统计,不是估的。这是刻意的成本控制(同一骨架换皮是本项目最大的产能来源),但代价是同骨架角色必须靠发型轮廓 + 一件大道具二次区分。
★ 傲楠团五个新皮全部落在已有骨架上,没有一个是新骨架 —— 这是"换皮产能"这条路线第一次被验证到反派群体上。本轮补进来的辣条妹就是这条规则的正面样本:她没有新骨架,但那条垂到膝盖的黑金围裙把剪影下半身整体加宽(实测肩部 0.3375 vs 强叔 0.2833、宽高比 0.484 vs 0.637),于是她与最强叔的相对差反而拉到 0.087,比"强叔 vs 豹哥"那对好分辨得多。
后续如果某个 lanky 变成重要 BOSS,照此办理:加一件改变轮廓的东西(长风衣/轮椅/旗杆),而不是改身材。

6B ★★★ 成长规则:练武的人体型必须变大,但头身比永远不变

你提的这条是本作最重要的一次系统级修正:杨洋沸经过几次拳馆学习,体型越来越壮。在此之前"学会了三连撞摆拳"这件事只体现在招式表上,玩家的身体感觉不到。现在它是看得见的——而且必须是同一个人变壮,不能变成另一个角色。实现拆成两层:

阶段触发条件体型参数变化(相对 S0)躯干宽上臂半径玩家凭什么发现他变了
S0 入学前CH.01–CH.03原始 riderLean,什么都没动23.10
基准
3.74
基准
—— 又瘦又普通,被人推一下就退两步
S1 三次课缴完第一阶学费 ¥200躯干 ×1.05 · 臂 ×1.08 · 三角肌 +0.03 · 腰 ×0.985 · 腹 −40% · 颈 +0.523.92
+3.5%
4.22
+13%
袖口开始绷住;站姿从含胸变成挺胸
S2 系统训练第二阶 ¥500 + 沙袋练习 ≥ 20 次躯干 ×1.13 · 臂 ×1.18 · 三角肌 +0.07 · V 背出现 · 腰 ×0.955 · 腹 −65% · 颈 +1 · 腿围 ×1.0626.75
+16%
5.02
+34%
腰出现了:肩宽腰细的倒三角第一次成型
S3 能打比赛第三阶 ¥1,200 + CH.10 之后躯干 ×1.22 · 臂 ×1.30 · 三角肌 +0.12 · 腰 ×0.925 · 腹 −80% · 颈 +1.6 · 腿围 ×1.13 · 拳峰 ×1.1030.24
+31%
7.28+95%剪影面积从 0.258 涨到 0.304;三角肌成为独立图元,隔着一条街也认得出"这就是练过的"
绝对不能动的东西

head / hy / legH / footBot

成长只允许改动 9 个参数:躯干宽、三角肌、臂围、V 背斜度、收腰、腹部隆起、颈长、腿围、拳峰。
头宽、头位、腿长、脚底位置一律锁死——它们决定身高和萌系头身比。一旦允许动头身比,S3 的杨洋沸就会变成"另一个角色",玩家的代入感当场归零。
附带修掉的坑:颈长增加会把躯干整体下推、导致脚顶穿画布下边界,所以 applyGrowth() 里 by += n 与 bh -= n 必须同时做。

姿势也是设计

图鉴立绘改成叉腰

旧版杨洋沸举手欢呼(armPose:'up'),上臂整段被躯干挡住——练得再壮也看不见。现在图鉴默认 'hips'(双手撑髋),三角肌和背阔肌的宽度全部露在轮廓外面。
教训:展示成长的角色,姿势必须让成长的部位出现在剪影上。剧情里的欢呼交给运行时用 {mood/mouth} 覆盖,不占体型展示位。

对照组:毛雄

他只是被带动,不是练家子

毛雄用 mild 两阶预设(躯干 +4%、臂 +5%),因为他人设的变化主要是心态变开朗而非体格。
这条对比很重要:如果两个人一起变壮,"练武"这件事就没有专属视觉回报了。成长曲线是角色设定的延伸,不是奖励特效。

机制落点(不只是立绘):体型阶段直接读进战斗数值 —— stage 越高,霸体等级 +1、被击退距离 K 缩短、擒摔判定范围随臂长扩大;反过来体力槽上限略降(体重上升、心肺还没跟上)。这样"越练越壮"同时是看得见的、打得出来的、和数值对得上的三件事,不会出现"立绘变壮但手感一模一样"的空头支票。§08 学费分次付费也因此有了唯一的可视化反馈:交了钱,第二天照镜子就不一样。
彩蛋 · 可验证

图鉴里每一张带成长条的卡片都能点

§05 图鉴中杨洋沸与毛雄的卡片下方有一条纯黑剪影并排带(由 HB_SILK(key,1,{stage:i}) 生成)。点任意一阶,上方彩色立绘立刻切成那一阶的体型。这是本条规范唯一需要"眼见为实"的地方,其余都可以按表格执行。

6C ★★★ 全局画风总纲 —— game-logo.png 是唯一画风裁判

2026-10-09 用户拍板:"参考我设计的 game-logo.png 的样式,那是我设计的男1形象,其他形象也按这个画风对齐设计,包括建筑、场景。"从这条起,本作画风不再靠形容词描述 —— 它有一张实物基准图。以下是从原图实测(1024×1024,逐像素统计,不是目测)拆出来的风格令牌与对齐清单。★ 施工状态更新:男一(杨洋沸)的图鉴立绘已按本节 6C.1 十条硬对齐在 manga.js 重建完成(蓝盔白条/锯齿发际/剑眉/创可贴/喊叫白牙嘴/黑裤白条/像素汉堡保温箱);其余 48 个立绘、scenes.js / wxgame / cocos 素材仍原样不动,按 §16 #35 拍板的顺序逐阵营对齐。

基准图 · 男一 杨洋沸
game-logo.png · 用户绘制的男一形象基准

《热血骑手·物语》App 图标规格:圆角方形画框 + 深色描边。角色 = 蓝衣骑手冲镜头挥拳骑电动车,背景 = 落日橙的复古城市天际线。

实测风格令牌(逐像素统计)

五色 + 三条硬数据

近黑描边/剪影 #010102 · 占 22.9% 落日橙天空 #f04a03 · 15.2% 英雄蓝(服/盔/车)#0e4eb4 · 12.6% 皮肤暖米 #f9c78a · 11.2% 建筑暗酒红 #4d1522 · 9.6% 路面暖紫 #2a2e4d · 5.4%

① 上半部平均彩度 0.70 / 中段 0.71 —— 与 §04E.0 游戏盘"平均彩度 ≥ 0.70"的目标互相印证:用户手画的基准图天然落在糖果闸的刻度上。② 近黑像素占 44%(描边 + 剪影 + 建筑 + 轮胎)—— 这个画风的底色不是白,是"黑线骨架"。③ 主对比 = 英雄蓝 vs 落日橙(色相约 217° vs 18°,标准互补),全作每一个画面都要保住这组互补对撞。

6C.1 角色十条硬对齐(新画/重画任何形象逐条打勾)

部位/语言从 logo 里量出来的做法与现有规范的关系
1 描边近黑超粗统一描边,线宽≈画布宽的 1/90,内外双线感(外轮廓粗、内部结构线细一档),转角圆。沿用墨色 #2b2233,但线宽上调一档:logo 的"热血感"一半来自粗线。
2 眼睛大瞳白底:眼白占大头、深棕大瞳孔压在中线偏内、上眼睑一条粗黑弧线切出锐角 —— 少年漫"怒目圆睁"而不是萌系"豆豆眼"。升级 §06"眼睛占脸高一半":高光/反光/渐变瞳孔规则保留,上眼睑粗线为新增硬指标。
3 眉毛粗黑剑眉,内端压低向鼻梁倾斜,眉眼距离近 —— 这是"热血"表情的真正来源,愤怒感全靠眉不靠嘴。新增硬指标。三张情绪头像(普通/笑/怒)里怒眉必须保持剑形下压,不许画成八字眉。
4 嘴喊叫时嘴宽≈脸宽一半:上排整块白牙 + 暗红口腔 + 圆角梯形,绝不画嘴角细线。覆盖旧"嘴只到眼宽 40%"上限 —— 以 logo 为准放宽到 50%(仅限喊叫态,平静态仍小)。
5 脸侧记号创可贴贴在颧骨,十字/条状皆可 —— "挨过打但不在乎"是男一的视觉签名。角色级道具,男一专属;其他角色要贴必须给出剧情理由(如傲楠小弟打赢后贴别人的)。
6 头发深棕大块面 + 硬尖发簇(每簇一个三角形收尾),发际线呈锯齿,不用高光带用色块分层。与现规范一致(大色块 + 尖发簇),补充"发际线锯齿"细节。
7 上色每个材质恰好三层:基色 + 一档硬边暗部 + 一档高光(头盔 = 蓝基色 + 深蓝暗部 + 白色椭圆反光与弧形高光带)。没有渐变,全是硬边 cel-shade。确认现规范"内侧一层浅色 cel-shade"升级为固定三层;渐变填充在角色上一律禁止。
8 动态构图3/4 侧面 + 重心前倾 + 一只拳头朝镜头直冲(极端前缩:拳面≈脸的 3 倍大)。静态立绘可不做前缩拳,但BOSS 登场图与分享卡必须用这个镜头语言。新增,进 §07 格斗姿态帧与 §11 朋友圈海报的构图规范。
9 特效语言白+黑放射状速度线从画面边缘切入、奶油色团状烟尘、halftone 圆点纹理铺在亮部。三者是本作特效"三件套"。与 §07 已重写的漫画特效(速度线/冲击星/汗滴)合并:速度线与烟尘样式以 logo 为准。
10 像素彩蛋位保温箱上的汉堡薯条是8-bit 像素画 —— 在矢量漫画世界里,像素风只允许出现在"道具图案 / 招牌图标 / 食物图标"这三个位置,永远不许上到角色的脸、身体或建筑轮廓。这是对"已弃用像素风"的精确化:弃用的是全画面像素画风,保留像素作为贴图级彩蛋。§05 的 9 种回血食物图标全部改走这条像素语言。

6C.2 各阵营怎么向 logo 对齐

描边、眼型、剑眉、三层 cel-shade 是全作公共语言,任何阵营不许私改;阵营差异只允许出现在配色槽、轮廓道具、表情默认值三处。

阵营对齐要点(在 logo 同一套线/眼/ shade 之下)
骑手(男一/男二)男一 = logo 本图(蓝 #0e4eb4 + 白条纹 + 创可贴 + 像素汉堡箱)。✅ 已落地:CHARS.liang 已按 logo 重建(manga.js v1.5)。男二毛雄按同一镜头语言重排:黄 #ffcf2d 同款冲锋姿态即可直接复用 logo 构图 —— 两张图标并排放,必须像同一部动画的截图。
市井店主同样的粗线与三层 shade,只降一档动作幅度(站姿稳、双手在忙);暖橙/米白系服装落在橙侧,与蓝橙互补盘同调。
帮派(豹哥/傲楠团)用 logo 的"怒目"当默认表情:剑眉平移到反派脸上就是威胁感;主色黑 + 血红 #e2402b,暗部用 #4d1522 酒红而不是灰。
金钱势力(罗总/刀哥)粗线不变,直线变多变硬(西装肩线、金链节);背景道具从速度线换成静态光斑,"不动"就是他们的速度线。
主播圈(燕子/桃桃/舔狗)粉紫青系 + 同样的大眼白底;燕子的"萌"靠 6C.1 第 4 条的嘴型档位(平静小嘴/直播喊麦大嘴)与腮红拉开,不靠换画法。
犬群四足剪影规则保留;獠牙与眼神统一走"上眼睑粗线"语言,犬王的眼白比例向男一靠拢 —— 让敌人也长得像这部动画的角色。
验收方式

并排检验(新增,替代纯形容词评审)

任何新画/改画的形象,与 design/game-logo.png 1:1 并排看三件事:① 描边粗细同级?② 眼睛是"白底大瞳 + 上睑粗线"同款?③ 材质是不是恰好三层硬边?三问有一个"否"就打回。自动化侧:过 HB_POPCOL 后平均彩度落在 0.68–0.75(logo 实测 0.70/0.71)。

建筑/场景

背景城市另开一节

logo 背景那套"落日橙 + 暗酒红天际线 + 电线杆剪影 + 暖紫沥青"的拆解与对齐清单,写在 §04E.3。角色与场景共用同一支描边色与同一组互补色。

施工边界

男一已施工,其余仍按文档先行

男一杨洋沸的矢量立绘已按 6C 重建(manga.js:新增 mood:'brave' 剑眉上睑、mouth:'shout' 白牙喊叫嘴、盔顶白条、盔下锯齿发际、创可贴、运动裤白条、像素汉堡保温箱)。其余 48 个矢量立绘、scenes.js 的 15 格样张、wxgame/ 与 cocos/ 的现有素材原样不动,小游戏开发继续按当前素材推进。全量对齐等 §16 #35 拍板,施工顺序永远是:设计文档 → 生成器 → 运行时素材。

《热血骑手·物语》设计案 v1.0 — 分册制 · 域名 hot-blood.infinityfly.xin · 目标平台 Steam / WeGame / 微信小游戏 / iOS·Android

本页是 design/index.html 里 一个 <section> 拆出来的独立页面(一节一文件)。改内容请改 index.html 对应 section,再跑 node split-docs.js 重建;也可以直接改 docs/NN-*-sX.html,但那样下次重建会被覆盖 —— 事实源永远是 index.html。

致敬 FC《热血物语》的结构与气质,角色、世界观、美术均为原创。