SuperAPI AI 工具集

tinyworld-lowpoly-world-prompt

设计与创作

查看项目

更新于 10-30 12:08

技能介绍

该规范面向 Tiny World Builder 中所有涉及生成提示词与模型行为的场景,目标是把内置模型当作紧凑的低多边形立体模型设计者,而不是随机填充格子的工具。

一、世界生成提示词原则 Generate 默认只生成文本:使用 OpenAI gpt-5.5 产出经校验的世界 JSON,除非用户明确再次要求图片,否则不加入图像生成拓扑预处理。必须遵守 Generate 对话框所选的棋盘尺寸(可请求 HOME_GRID_OPTIONS 中任意尺寸),提示词要包含 gridSize 与坐标边界,不能默认 8x8。浮动聊天提示默认是叠加式补丁:除非明确要求替换、重置、重建或以 /clear 开头,应保留现有棋盘,只返回需新增或变更的完整最终状态格子。

二、场景构图 从可读的场景概念开始:村庄、农场、运河、山脊、市场、城堡、花园或混合地标。使用强轮廓(高矮对比、成簇房屋、塔、山丘、树、墙、清晰留白);让地形承担构图(路径引导视线、水域形成穿越、泥土聚集作物、草地提供呼吸空间)。山丘通过 terrainFloors 表现高度,而不是铺满岩石;岩石仅作稀疏地标或巨石。有意识地使用相邻关系:房屋成簇合并、栅栏连接、桥只用于水上穿越、作物成田。不要填满每个格子,保留空格与可见路径。仅在想获得独立单格变体时强制指定 buildingType,否则房屋留为 null 以启用成簇逻辑。输出必须严格符合 schema、可机器解析。

三、基本体拼装 告知模型不能在 JSON 中发明新的对象类型、网格、标签或自定义几何。把宽泛环境翻译为现有基本体:terrain、抬升的 terrainFloors、房屋变体、栅栏与 fenceSide、岩石、桥、作物、草丛和树。基本体是场景组件而非创意上限;对于没有原生类型的独特物体,应写成 customParts 体素搭建的主景格子。文中给出示例拆解:滑板公园=路径/泥土广场+抬升地形坡道+岩石障碍+栅栏边+草丛树木;市场=路径广场+小屋/庄园摊位+栅栏队列+作物南瓜货物;游乐场=路径/泥土底+岩石游乐体+栅栏边界+树木草丛;采石场=抬升泥/草台地+不同层岩石+道路+稀疏草丛。强调默认等距视角下的可读性:3 到 5 个清晰的组合特征胜过大量散落格子。

四、体素印章 新的文本/图像转体素印章优先用语义化 customParts,而不是原始体素云,以保留可编辑结构。需包含允许材质列表、来源对象意图、可用时源部件、图像引用、allowedBounds,以及强调连通分层细节的质量目标。玻璃温室、穹顶、载具、机器人、飞艇等定制需求要语义化彩色部件和多个材质族,原生房屋/栅栏/岩石只能作为实际组件或环境。绳索、吊篮线、系绳、索具用 kind:"cable",需 from/to 端点、半径、下垂和常规兼容参数。圆顶、罐体、罩篷用 sphere/ellipsoid 部件;热气球应是圆润椭球/球形气囊加彩色布面板条,用 phiStart/phiLength 椭球切片而非平面板。首版自定义模型保持在合理棋盘尺度:紧凑道具、桥、平台、码头 customFootprint 约 1.1-1.3,气球、飞艇、穹顶、温室等主景可到 1.5-1.8;桥/平台要嵌入水面或地形时优先用略负的 transform.offsetY。明确要求不要把 customParts 默认设为石头/岩石,除非被请求对象本身是石头;优先 TinyWorld 材质名(wood、brass、copper、metal、steel、glass、glassGreen、fabric、canvas、rope、cable 及强调色)。已有种子且用户要求重解释/放大/细化密度时,再使用原始 {x,y,z,color} 体素,返回体素要有界并省略隐藏的内部填充。参考图或此前的日式印章不应把无关对象偏向宝塔、庭园、鸟居、樱花或神社主题,除非明确要求。

五、自动建议 返回候选动作而非坐标;建议应能跨多个摆放位置复用;提供有排名的多样批次:一个结构选项、一个地形/路径选项、一个自然/细节选项,以及必要时一个强化/重复选项。

六、离线随机岛屿生成 generateProceduralWorld() 是 Generate 面板与命令面板的公开入口,但委托给 generateRandomIslandWorld()。随机岛屿生成器把 tiny-markov/island-lab 流程移植为 TinyWorld schema 格子:连通岛屿掩码、原型地形/对象权重、水/桥/路径处理,再到有意的 token 到原生类型映射。当前地形/对象目录、原型权重、资源桶、输出映射、母题归属与实时经济对齐说明版本化在仓库 docs/random-island-generation-assets.md;修改这些源块须同步更新该清单及其源摘要。输出格子须为完整 v4 对象格:x、z、terrain、kind、floors、terrainFloors、buildingType、fenceSide。随机岛屿目前输出平坦地形,terrainFloors 恒为 1,岛屿特征靠材质、道路、水域构图、对象分组、特性与经济画像体现。lab 专属 token 要显式映射到真实渲染支持:watchtower/castle 映射为 kind:"house" 且 buildingType:"tower",manor 映射为 manor,lamp 映射为 lamp-post,berries 映射为 bush,ore 映射为 crystal,water-bridge 映射为水上的 bridge;不得发明不支持的 kind。无经济效果的装饰在保存前被抑制,spotlight 明确被生成抑制;lamp-post 可保留但上限两盏且不相邻。已放置对象应设 appearance.objectStyle = "voxel"。原型通过确定性特征语法生成再补充散落:pastoral 为围合田地牧场,forest 为树丛小径,quarry 为连通石/矿脉,river 为渡口加灌溉岸,village 为广场道路房屋街区,fortress 为主堡城墙城门,ruins 为遗迹群,harbor 为海岸码头内陆路径;不得退化为纯加权随机。资源放置先做原型前经济可行性检查,Food/Materials/Commerce/Defense/Charm 各有按原型加权的上下限,低食物岛屿在居住区附近也有食物下限;资源微调在身份语法之后,最终校验修复被移位的楼层;残余散布只作小装饰。作物应成紧凑近方形农田,尽量避开主屋/庄园居住区周围一格;塔楼房屋为地标不计入主屋食物缓冲。塔楼由角落地标处理而非原型散布:watchtower/castle token 解析为角落相邻的 kind:"house"、buildingType:"tower" 格子,数量分布 0/1/2/3/4 各占 6.25%/50%/25%/12.5%/6.25%;塔门在本地 +z,须用 transform.rotationY 朝岛心。地形同样先由母题构图再放路径与对象:大地形来自确定性平滑噪声场,然后水域获得一个受保护的构图母题(边缘水湾、湖泊或河流)加轻微边缘水域偏向,石头沿山脊/矿脉延伸,泥土/草原成田块/草甸斑块,沙从岸线相邻生成。水桥是后期校验层而非装饰:先放河湖,再开/延道路,仅当水格水平或垂直两岸都有路径且水在垂直轴继续穿过时才放 water-bridge;港口岸/码头应使用滨水路径/岸线构图,除非是真正跨可见水道的道路。大型建筑变体要拉开间距,manor、watchtower/castle 等强制房屋变体需与普通房屋簇保持缓冲。世界菜单的 New world 动作是应用内测试路径:随机原型/种子、应用生成状态、保存为命名本地世界槽、打开电影式经济揭示;经济评分须基于载入的 TinyWorld 格子而非映射前 lab token。经济揭示画像由 buildRandomIslandEconomyProfile() 提供,镜像 island-lab 的 Food/Materials/Commerce/Defense/Charm、gold/day、稀有度、特性、协同和特征高亮组,属呈现/运行时数据而非保存 schema;稀有度在归一化评分后相对原型计算。统计画像用 npm run stats:random-island -- --samples=10000 生成,输出到 stats-runs/random-island/ 并刷新 latest.json;视觉/美学样本用 npm run sample:random-island -- --count=16,输出种子、地形字符图、水域组件、经济画像与完整世界 JSON 到 random-island-runs/。