光照
「光照」是引擎组里的一个扩展,给舞台加上游戏引擎式的 2D 光照:点光、聚光、日月光,墙体和物体投下的 软阴影,边缘立体感和法线贴图,自发光与泛光,空气里的光晕和光柱,以及整个画面的曝光和调色。横版、 正俯视、斜俯视(星露谷、宝可梦那种)三种画法都按各自的空间关系算光和影子。灯可以挂在角色身上 (克隆体自动带上),也可以摆在场景里;选一个画面风格、摆几盏灯、给物体装上碰撞体,画面就是一个 完整的夜景、室内或小镇,不需要写积木。

打开方式#
在扩展库的「引擎」一组里添加「光照」。装上后:
- 装配编辑器多一页光与粒子(和粒子扩展共用):中间就是舞台本身,在上面摆灯、调材质、调画面, 看到的就是作品里的样子。怎么操作见 引擎 的「光与粒子页」;
- 选中舞台,角色栏参数区下面多一节光照:开关和画面风格,「在装配编辑器里调」直接翻到那一页;
- 积木栏多一个光照分类。
新装上时场景是「原样」风格、横版视角:环境光 100% 白,没有灯的地方画面和原来完全一样。这时灯照在 白色上看不出来,「光与粒子」页放了灯会在舞台上方提示,一键调暗环境光或换成月夜。
怎么用#
1. 选画面风格#
在「光与粒子」页点一下空白处,右栏就是整个画面,在「风格」里点一个(舞台的「光照」一节里也有)。 风格一次写入环境光、日月光、天光、曝光、泛光、光晕、暗角和调色,一条撤销可以整套退回;之后每一项 仍然可以单独调。

| 风格 | 画面 |
|---|---|
| 原样 | 不改变原画,只有灯照到的地方变亮 |
| 晴天 | 暖白的日光从左上方照下,天光把朝上的边缘染淡蓝 |
| 黄昏 | 低角度的橙色日光,偏暖,暗角较重 |
| 月夜 | 蓝色的暗环境光和月光,泛光和光晕较强 |
| 洞穴 | 几乎全黑,只剩灯照到的地方 |
| 霓虹 | 暗紫色环境,高饱和,泛光最强 |
| 地牢 | 暗褐色环境,偏暖,暗角最重 |
| 电影 | 电影感色调映射,暗部更深,亮部过渡更柔和 |

2. 选视角#
画面设置里的「视角」按游戏的画法选:
| 视角 | 画法 | 光和影子 |
|---|---|---|
| 横版 | 横版过关、剖开来看的室内 | 画面是后墙。灯的高度是离后墙多远;物体站在后墙前面,影子投到墙上 |
| 俯视 | 从正上方往下看 | 画面是地面。灯的高度是离地多高;物体有高度,影子从脚下拉出去 |
| 斜俯视 | 地面从上往下看,房子、树、人立着画 | 灯照的是它正下方那块地;立着的东西按脚下的地取光,影子倒在地上 |
斜俯视里:
- 灯挂在灯罩上,「高度」填灯罩离地面多高,也就是画面上灯罩到灯杆底的距离。灯照亮的是正下方那一块 地,光晕留在灯罩上。
- 投影的物体默认立着,按造型轮廓的剪影投影,画多高就算多高;不投影的(路面、花、水面)默认躺着。 材质的「立着」可以改。立着的东西前后有多厚填在「厚度」里:篱笆、路牌填得薄,不填就按轮廓估。
- 一棵树可以装两个碰撞体(树干一个、树冠一个),把「形状」选成「碰撞体」:影子就是一根细细的树干 加一团离开地面的树冠,而不是整棵树的一大团。
- 立着的东西按脚下那块地取光:走进树影里整个人变暗,迎着灯的一面亮,背着灯的一面暗。造型的 下边缘就当作脚底,造型图下面别留太多空白。
- 走动的角色建议把材质的「阴影」设为「整体」:影子边扫过脚下时整个人一起变,不会被切成两半。
- 灯罩和灯杆分成两只角色:灯杆只画到灯下面,不然灯杆会挡住自己的灯。
- 灯在一个立着的东西正上方、而这东西差不多和灯一样高时(灯罩下的灯杆、光球飘过人头顶),它的影子 会淡掉,不会在脚下铺一大块。
- 谁挡住谁还是由图层决定,越靠画面下方的东西越该在前面。

俯视里每样东西都有自己的高度:帐篷、原木、人的影子从篝火往外放射,比火苗高的帐篷影子一直拖到 林子里;树冠在材质里填了离地的高度,影子离开树干落在地上。

灯可以随时移动:两个演示里都有一颗跟着鼠标走的光球,影子跟着它实时转。
3. 摆灯#
在「光与粒子」页拿起点光(P),先在工具条上挑一个预设(火把、烛光、篝火、灯笼、窗光、霓虹、魔法、
萤火),在舞台上按下去就是灯的位置,拖出去就是半径。聚光(S)拖出去是朝向和射程,预设是手电和
舞台灯。放好以后拖灯本身挪位置,拖范围上的手柄改半径,聚光还能拖扇尖改朝向、拖扇边改张角;右栏
最上面的预设点一下换整套参数,位置不动。
- 按在角色上放,灯就挂在这个角色身上:跟着它移动、转向、缩放,每一个克隆体各带一盏。火把挂在 拿火把的人身上,篝火挂在篝火上。
- 按在空地上放(或者按住 Alt),灯就摆在场景里,不跟任何角色走:路灯、窗户、天花板上的灯。 不用为了一盏灯专门建一个角色。
放好以后在右栏「位置」的「挂在」里随时换,舞台上的位置不变。

| 属性 | 范围 | 作用 |
|---|---|---|
| 类型 | 点光 / 聚光 | 聚光只照一个扇形 |
| 颜色 | — | 灯光的颜色 |
| 强度 | 0–6 | 灯正下方的亮度,1 相当于白色环境光 |
| 半径 | 10–3000 | 照多远,超出半径完全不亮 |
| 集中 | 0–4 | 0 时光均匀铺满半径,越大越集中在灯芯附近 |
| 光晕 | 0–3 | 灯周围空气里的一团亮光;聚光灯是一道可见的光柱 |
| 张角、柔边 | 1–179°、0–90° | 聚光的扇形宽度和边缘过渡 |
| 朝向 | 度 | 聚光往哪照:挂在角色上时相对角色的朝向,摆在场景里时 0 是朝右 |
| 闪烁 | 不闪 / 火光 / 呼吸 / 脉冲 | 只改亮度,不改数据 |
| 高度 | 1–2000 | 横版是离后墙多远,俯视和斜俯视是离地多高。越低,边缘的明暗越强,影子越长 |
| 投影 | 开 / 关 | 这盏灯会不会被墙体、物体挡住 |
| 光源大小 | 0–400 | 发光体本身有多大。越大,影子的边越柔 |
4. 调材质#
材质是整个物体的一份设置。在「光与粒子」页点一个角色(画面上点它,或者在左边列表里点),右栏就是 它的材质。

| 属性 | 默认 | 作用 |
|---|---|---|
| 受光 | 100% | 0% 时保持原画的颜色,不受任何光影响,适合界面和文字 |
| 立体感 | 100% | 朝着灯的边缘被照亮、背着灯的边缘变暗的程度;也是法线贴图起伏的总倍数 |
| 自发光 | 0% | 在黑暗里也亮;超过 100% 会产生泛光,适合火焰、窗户、霓虹 |
| 受灯光 | 100% | 灯(点光和聚光)对它的影响;远景调低 |
| 挡光 | 自动 | 它怎么挡光:自动 / 墙体 / 物体 / 不挡,见下面「阴影」 |
| 形状 | 自动 | 挡光的形状:碰撞体 / 造型轮廓 |
| 立着 | 自动 | 斜俯视里立着还是躺着;自动是挡光的立着、不挡的躺着 |
| 离后墙 / 离地 | 0 | 横版是离后墙多远,俯视是离地多高 |
| 厚度 / 高度 | 0 | 横版和斜俯视是物体前后多厚,俯视是物体多高(0 按 24 算) |
| 受阴影 | 逐像素 | 它怎么接收别人的影子:逐像素 / 整体 / 不受 |
| 法线贴图 | — | 这一张造型的法线贴图:生成、导入、清除;强度;翻转 Y |
立体感不需要法线贴图:编辑器按造型自己的轮廓和明暗推算表面的起伏,所以一整张砖墙造型里, 每块砖的边都会被旁边的火把照亮。
法线贴图让表面的质感真正立起来:瓦片、树叶、石头的每一处凸起都迎光发亮、背光发暗,灯一动, 高光跟着走。在材质的「法线贴图」一节里按当前这张造型设置:
- 「导入」选一张切线空间的法线贴图(PNG / WebP),和造型一样比例,大小随意;绿通道朝下的 (DirectX 习惯)打开「翻转 Y」。
- 「生成」按造型的轮廓和明暗算一张:轮廓往里鼓成圆边,再叠上造型自己的明暗细节。
- 「强度」调起伏有多明显。
有法线贴图的造型不再用自动推算的立体感。贴图存在作品里,一张造型一张,克隆体共用;动画的每一帧 各配一张。

受灯光解决 2D 画面没有纵深的问题:远处的山和前景的火把在舞台上挨在一起,但山不该被火把照亮。 把远景的受灯光调到 10%–40%,它仍然受环境光和日月光影响,却不会被前景的灯照亮。
5. 阴影#
挡光的东西分两种:
- 墙体:在画面里直接挡光,墙后面是黑的;光只照进朝着灯那一面的一小条边。横版里是地面、房间的 墙和天花板这类整个纵深都实心的东西;俯视里是比灯还高的墙,填了「高度」就按那么高,矮墙的影子 有长有短。
- 物体:有高度的东西,影子落在地面或后墙上。
- 横版:站在后墙前面「深度」那么远(默认 24)。灯越近、物体越靠前,墙上的影子越大、越偏、越柔。 影子只落在贴着后墙的东西上,不会落在旁边另一个物体身上。
- 俯视:从「离地」起,高「高度」(默认 24)。影子从脚下拉出去,灯越低越长;立在地上的物体不挡 自己站的那块地,影子也会落在旁边的物体身上。离了地的(树冠、屋檐)影子悬在地上,只落在地面上。
- 斜俯视:立着的物体按剪影投影,影子从脚底倒在地上;躺着的同俯视。

挡光的形状默认是物体上装的碰撞体:方框、圆、胶囊、多边形、按造型生成的都算,感应区不算。 碰撞体来自物理扩展的装配;光照读的是物体上的数据,物理扩展有没有在跑都不影响投影。没有碰撞体的 物体、斜俯视里立着的物体(碰撞体一般只包着脚下那一块),默认按造型轮廓挡光。
材质的「挡光」选「自动」时:没有碰撞体就不投影;横版和俯视里物理的静止刚体算墙体,其余算物体; 斜俯视里都算物体。
- 影子贴着物体的地方清楚,离得越远越柔;「光源大小」越大越柔。
- 灯挂在哪个物体上,那个物体就不挡这盏灯;灯在墙体里面时,那块墙体也不挡它。
- 物体要比灯低,才会留下影子;和灯差不多高的,影子会拉得很长。
- 日月光也会被挡住(画面设置的日月光里开「投影」,「柔和」调边缘)。横版里墙体之间的空隙 就是窗,月光从空隙里照进来,画面的「光晕」大于 0 时空气里有一道看得见的光柱;俯视和斜俯视里, 太阳越低影子越长。
- 材质的「受阴影」决定一个物体怎么接收影子:「逐像素」是默认;「整体」只看它中心(斜俯视里是脚下) 那一点,整个角色一起变暗变亮;「不受」完全不受影子影响。
剖面怎么画:横版室内是把房子剖开来看,被剖开的外墙、天花板画成一整块暗色的切面,材质的 「受光」设为 0%;不要在切面上画正对镜头的砖块或拱窗,那是另一个视角。窗户是切面上的一个缺口, 缺口里看到的是屋外;窗上横穿的铁条在剖面上只是一个个小方块,给它们各装一个小碰撞体,就会在光里 划出细影。竖着的窗框在墙的厚度方向上,会把整道光挡掉,不要装碰撞体。碰撞体只包住墙本身的厚度, 不要伸到屋里或屋外。屋外的天空离得很远,材质的「受阴影」设为「不受」、「受灯光」设为 0%。
场景设置#
在「光与粒子」页点空白处,右栏就是这些;日月光的方向和高度也可以拿日月光工具(D)直接在舞台上
拖出来:箭头是光往哪照,拖得越长太阳越低、影子越长。
| 分组 | 设置 | 作用 |
|---|---|---|
| — | 视角 | 横版 / 俯视 / 斜俯视,见上面「选视角」 |
| — | 环境光、强度 | 没有灯的地方有多亮、是什么颜色 |
| 日月光 | 开、颜色、强度、方向、高度 | 从一个方向照亮整个画面,边缘有明暗;方向是光从哪边来 |
| 日月光 | 投影、柔和 | 被墙体和物体挡住;柔和是影子边缘的宽度(度) |
| 天光 | 颜色、强度 | 从天上来的光:横版加在朝上的边缘上,俯视照亮整个地面 |
| 画面效果 | 曝光 | 整体亮度 |
| 画面效果 | 泛光 | 比白色更亮的地方向外溢出的光 |
| 画面效果 | 光晕 | 灯照到的空气也微微发亮 |
| 画面效果 | 暗角 | 四角压暗 |
| 画面效果 | 立体感 | 所有物体立体感的总倍数 |
| 画面效果 | 电影感 | 换成电影式的色调映射:暗部更深,中间调更亮,亮部过渡更柔和 |
| 调色 | 饱和度、对比度、色温 | 最后一步的调色 |
| — | 画质 | 光照计算的分辨率:省电 1/4、均衡 1/2、精细与画面相同 |
设置存在舞台上,一个场景一份,改了立刻生效。

积木#
积木改的都是临时的:按下停止之后,回到面板里的设置。
| 积木 | 作用 |
|---|---|
光照 [开/关] |
总开关 |
画面风格设为 [ ] |
换成一种风格 |
环境光设为 [颜色] 强度 [ ]% |
|
环境光在 [ ] 秒内变为 [颜色] 强度 [ ]% |
渐变,等变完再往下走;做昼夜交替 |
日月光 [开/关] 颜色 [ ] 强度 [ ]% 方向 [ ] |
|
把画面的 [ ] 设为 [ ]、增加 [ ]、画面的 [ ] |
曝光、泛光、光晕、暗角、调色等场景设置 |
这里能显示光照? |
浏览器不支持时为假 |
让我的灯 [ ] [开/关] 等六块 |
改这一个角色身上的灯,按灯的名字选,「全部」是所有灯 |
把我的 [ ] 设为 [ ]%、我的 [ ] |
受光、立体感、自发光、受灯光、法线强度 |
我的投影设为 [ ]、我受阴影的方式设为 [ ] |
自动 / 墙体 / 物体 / 不投影;逐像素 / 整体 / 不受阴影 |
我离后墙或地面的距离设为 [ ]、我的高度设为 [ ] |
横版里走到前景、退到墙边;俯视里跳起来、飞起来 |
我这里的亮度 |
角色所在位置被照得多亮,100 相当于白色环境光;做潜行玩法 |
在 x [ ] y [ ] 放一盏灯 [名字] … |
不属于任何角色的场景灯,按名字改、删;编辑器里摆在场景里的灯也按名字改、关,停止时恢复 |
细节#
- 一个场景最多 512 盏灯,屏幕外的灯不参与计算;一帧里最多 64 盏灯投影,多出来的照常发光、不投影。
- 实测 1270×953 的舞台:300 多盏不投影的灯同时在画,整帧绘制约 5 毫秒;43 盏投影的灯加 70 个 挡光物体,整帧约 8.5 毫秒;斜俯视的小镇、俯视的夜营两个演示(带法线贴图)整帧都在 5 毫秒以内。
- 物体的影子按外轮廓算,凹进去的地方(比如 L 形)会被填平;需要准确时拆成几个凸的碰撞体。
- 斜俯视里立着的物体按一片有厚度的剪影投影,侧面来的光下影子也有宽度;估出来的厚度不对时 (长篱笆、薄木牌)在材质里填「厚度」。
- 法线贴图存成 WebP,一张 256×256 的大约几十 KB;「导入」的图边长超过 1024 会先缩小。
- 没有背景造型的地方(新作品的空白舞台)底色也受光:跟着环境光变暗,被灯照亮。
- 舞台背景没有立体感;对话气泡不受光;画笔的笔迹受光,但没有立体感。
- 粒子、Spine 骨骼动画和物理软体按原样画出,不受光,但会参与泛光和调色。
- 需要浏览器支持 WebGL 2 和浮点渲染目标。不支持时画面照常显示,只是没有光照效果。
- 旧版光照扩展的积木、玻璃、视频、烘焙和光照区域都已移除;用旧版做的作品里那些积木不再生效。