关于 layer-environments
layer-environments 是面向 Layer 的环境美术技能,涵盖游戏场景概念图、视差背景、天空盒和生成式世界。它指导游戏美术人员安排场景深度、保持玩法区域清晰,并导出分层背景。
主要功能
- 01规划场景深度与清晰玩法区
- 02将场景拆分为视差图层
- 03导出 Godot、Unity 或 JSON 格式
- 04创建等距柱状天空盒
- 05生成并完成世界草稿
适用场景
- 01设计清晰易读的平台游戏背景
- 02为引擎准备循环视差场景
- 03创建 360 度全景天空图
- 04完成世界生成前迭代草稿
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ layerai/ skills --skill layer-environments安装后在 Claude Code 中输入/layer-environments确认已加载。
详细介绍
环境
概述
环境是玩家透过它观看的艺术,而不是观看的对象。它必须呈现纵深,在游戏玩法背后衬托场景而不与之争抢注意力;对于视差背景,还要拆分成以不同速度移动、且仍能对齐的图层。
生成机制(模型发现、估算门槛、上传、轮询)在 layer 技能中;提示词设计在 layer-image 中。角色和道具在 layer-game-assets 中,等距和六边形图块在 layer-tilesets 中,平铺表面在 layer-textures 中。
如果你没有这里提到的某项相关技能,请让用户安装它(npx skills add layerai/skills --skill <name>);如果没有人值守,请根据工具架构继续操作,并指出这一缺失。
快速参考
| 交付内容 | 方法 |
|---|---|
| 环境概念图 | 使用 text_to_image;说明相机高度和景深层级 |
| 视差背景 | 生成一个场景,然后对 inpainting 或 erase_object 模型使用 parallax 运行 execute_forge |
| 面向游戏引擎的视差效果 | 对拆分的输出使用 export_parallax,引擎选择 GODOT、UNITY 或 JSON |
| 360 天空盒 | 使用 use_case: "create_skybox" 和 projection: "EQUIRECTANGULAR" |
| 世界场景 | 使用 use_case: "text_to_world" 或 "image_to_world";如果模型支持,则使用 draft: true 迭代 |
环境概念图
说明相机高度和景深层级,因为它们决定背景能否衬托游戏玩法。注明美术所属的层级:前景剪影、可游玩中景带、远景背景。角色站立的位置应刻意降低对比度和饱和度。生成的游戏背景最常见的问题,就是细节太繁杂,导致角色难以辨认。
视差:一个场景,按景深拆分
不要逐个生成视差图层。分开生成的结果不会共享地平线、光线或消失点,而且 export_parallax 会拒绝这些结果:它只接受视差拆分的输出。
拆分需要运行一次 execute_forge,将完成的场景设为 init_image,并在通过 list_base_models 找到且 filter.use_case: "inpainting" 或 "erase_object" 的模型上设置 parallax。该模型会补全每个较近图层遮挡的内容。如果没有提供提示词,修复模型会被要求延续景物,通常这正合你意。
parallax 包含三个字段:
layers:2 到 6,默认为 5。cuts:切分位置,按由远及近的顺序排列,取值介于 0 到 1 之间,数量比layers少一个。 省略此项时,会在场景自身景深的间隙处切分,这是最合适的默认设置。loop:每个图层从左到右重复,并对每张图的接缝进行修补。
输出是一个分层 PSD,最远的图层位于底部,并记录每层的滚动速度。将其 file_id 传给 export_parallax 并指定引擎:GODOT 会为 Godot 4.3 或更高版本写入 Parallax2D 场景,UNITY 会写入精灵图及其 .meta 文件和包含滚动系数的 parallax.json,JSON 会为任何引擎写入图像和 parallax.json。每个图层的尺寸都与背景完整尺寸一致,因此放置在同一位置时能够对齐。导出不消耗 Creative Units。
一次拆分会按除最近图层外的每个图层计费,运行一次模型;loop 则会为每张图增加一次修补操作。做决定前,请使用运行时将获得的全部输入(包括 parallax)进行估算。
为分层做好场景构图
分层只能分开场景中已有区分的部分。提示源图时请注意:
- 侧视镜头、宽画幅。 横版卷轴背景采用横向构图;选择模型时筛选
landscape_16_9。 - 深度层次分明,彼此之间留有空隙:天空、远景、中景、近景。一棵从近处延伸到远山的树会被从中切开。
- 保持游戏玩法区域简洁。 角色站立处的对比度要低;细节放在远景层,并让前景剪影保持稀疏。
- 循环背景中不要有独特地标。 单独一座城堡会每隔一个屏幕宽度重复出现。
天空盒
天空盒是 2:1 的等距柱状全景图,左右边缘相接,极点经过调整后不会变形。查找带有 filter.use_case: "create_skybox" 的模型,并传入 projection: "EQUIRECTANGULAR"。不要同时设置 tileability;该投影已实现无缝衔接。将 width 和 height 留空,即可使用模型最大的 2:1 预设;也可以使用 get_base_model 列出的预设。提示天空和地平线,而不是主体:任何被构图为焦点的内容都会被拉伸到极点。
世界
世界属于独立模态,可通过 filter.use_case: "text_to_world" 或 "image_to_world" 查找。如果 get_base_model 显示 capabilities.draft,就用 draft: true 生成低成本草稿并反复调整,只完成最终选定的草稿:调用 execute_forge,将 base_model_id 设为草稿的 draft.completion_base_model_id,设置 batch_size: 1,并将草稿的 file_id 作为类型为 draft_world 的引导文件,不提供提示词。完成后的世界会保留草稿场景,价格固定,且只能完成一次。先检查 draft.status:已 EXPIRED 的草稿必须重新生成。
示例
“为我们的 Godot 平台游戏制作一张由四层组成、可循环的森林背景。”
- 调用
list_base_models,设置filter.use_case: "text_to_image"和filter.capabilities: {landscape_16_9: true}(一个布尔值对象)。使用第一个结果。 - 提示源图:“2D 平台游戏背景的朦胧松林侧视图,宽幅横向构图。由清晰分隔的空间组成的四个深度层次:浅色天空、远处的蓝色山脉、中景松树树干,以及沿底边分布的稀疏深色蕨类前景。角色奔跑的中间区域对比度低,使用柔和的绿色。不要建筑物,也不要单独的地标。”估价后,使用
batch_size: 4执行,并按poll_interval_seconds轮询,选出一张。 - 调用
list_base_models,设置filter.use_case: "inpainting"。使用第一个结果。 - 调用
estimate_forge_price,指定该模型,将选中场景的file_id作为init_image,设置batch_size: 1,不提供提示词,并设置parallax: {layers: 4, loop: true}。估价会同时计算逐层运行和循环修复的费用。若价格超过 20 CU,请显示价格并等待用户明确同意。 - 使用相同输入调用
execute_forge;按poll_interval_seconds轮询。报告任何质量下降的参考图组。 - 调用
export_parallax,传入 PSD 的file_id、engine: "GODOT"和name。提供 zip 链接,并引导用户查看其中的 README。
常见错误
- 分别运行生成来制作每个视差层。它们无法对齐,且
export_parallax会拒绝这些文件。 - 在普通生成模型上执行分层,而不是使用
inpainting或erase_object模型。 - 源场景中有一个物体横跨多个深度层,导致分层时被切成两半。
- 传入的
cuts数量不正确:它始终比layers少一个。 - 游戏玩法区域杂乱且对比度过高,角色与背景难以区分。
- 循环背景中有独特地标。
- 为天空盒设置
tileability,或将焦点主体安排在会被拉伸到极点的位置。 - 使用新提示词完成世界草稿,或完成已过期的草稿。