光照变体:夜晚、火把、水下、中毒
夜晚关卡需要夜晚的精灵。在白天精灵表上叠一层色调会保留白天的阴影;Pixor 会在另一种光照下重新绘制每一帧,让阴影落在那种光照该落的地方,然后把精灵表换成那种光照的颜色。






入门 · 约 5 分钟 · 或用 75 秒看完
1. 白天的精灵
打开一个模型:本教程使用免费 CC0 素材库中的机甲及其行走动画。风格步骤的 2D 视图按风格的光照显示它:这就是白天精灵表。
2. 添加调色板变体
在资产步骤中,选中精灵表节点,在节点库的查找框中输入 variant,添加文件:调色板变体。光照变体和调色板替换、队伍颜色在同一个列表里。
3. 四种光照
在检查器中打开添加变体,滚动到列表末尾:光照 night、光照 torch、光照 underwater、光照 poison。每一个都是一张单独的精灵表。
night:从远侧高处照来的冷而暗的月光;深蓝色阴影。torch:低举在前方的暖光;模型更多部分处于阴影中,没有补光。underwater:光从正上方穿过蓝绿色的水照下来,更柔和也更暗。poison:风格自身的光,病态的绿色,稍暗一些。
调色板中上方的Night条目是对白天像素的调色板替换;光照 night才是重新绘制的那个。
4. 导出
导出会在白天精灵表旁边为每种光照写出一张精灵表,各以光照命名(mech_light-night.png,…),如果导出会生成 JSON、GIF 和 Aseprite 文件,每张也各带一份。白天精灵表的 JSON 在 meta.pixor.lights 下列出它们。
从命令行
pxr render mech.glb --clip Walk --ring 4 --light-variant night,torch,underwater,poison
pxr project set game.pixor --light-variant night,torch
--light-variant night 等同于 --variant light:night;--no-light-variants 会把它们从项目中移除。
下一步
- 换色变体:用同一张精灵表做出受击闪白、冰冻的敌人和队伍颜色。
- 有限的调色板:为什么加了光照的精灵表颜色数不变。
问题
光照变体只是换调色板吗?
不是。调色板变体保留每个像素,只改变颜色的含义。光照变体会重新绘制帧:主光移动,模型更多部分落入较暗的色带,补光和高光也随之改变。然后再按那种光照给调色板着色。
加了光照的精灵表还是索引色像素画吗?
是的。每一张都使用经该光照色调转换后的风格调色板:颜色数量相同,色阶相同,每个像素都来自其调色板。
这些帧和白天精灵表对得上吗?
完全对得上:尺寸相同,帧的位置相同,轴心点相同。玩家走进洞穴时,在引擎中换掉纹理即可。
导出前能看到某种光照的效果吗?
暂时不能:调色板变体节点上的「生成」只生成调色板替换,光照由导出绘制。导出到一个文件夹,在那里打开精灵表。