diff --git a/doc/en/MS1-ProductProposal.md b/doc/en/MS1-ProductProposal.md new file mode 100644 index 00000000..9fc66dec --- /dev/null +++ b/doc/en/MS1-ProductProposal.md @@ -0,0 +1,374 @@ +# MS1-Product Proposal + +## One-Sentence Product Summary + +This product is a 2D pixel-art game asset generation tool built on top of a game asset management system. It is designed to help 2D pixel-art game developers efficiently generate, manage, and reuse stylistically consistent game assets. + +--- + +## Target Users + +The product targets **pixel art / character art enthusiasts, indie game developers, small game teams, and game prototype creators**. The distinction lies in **their intended use cases rather than their professional skill levels**. + +- **Pixel art / character art enthusiasts** represent a relatively large user base but are not the core target audience. Their individual usage is relatively low, and their willingness to pay is limited. Their primary value is user acquisition and community exposure rather than direct monetization. +- **Indie game developers** can generally be divided into two groups: + - Individuals or teams with no artistic capability at all, who require a more complete AI-powered solution. + - Individuals or teams with limited art staff and low art team productivity, who need AI assistance to improve productivity. These users are offered a "vibe creating" / "AI assistant creating" solution integrated into the creative environments indie developers commonly use. +- **Game prototype creators** primarily target those who want to rapidly develop a game demo. During the demo phase, the speed of developing basic game functionality is clearly much faster than producing art assets. It is also possible that art teams may directly use AI to generate assets during the demo phase rather than spending effort on drawing. In essence, these needs largely overlap with the two categories of indie developers. + +--- + +## Problems We Solve + +When using general-purpose AI image generation tools for game development, users commonly encounter the following issues: + +1. A single generation result is disconnected from real game development workflows — you only get a single image, and cannot directly obtain animation frames, spritesheets, tilesets, or game engine objects. +2. Multiple assets within the same game project are generated independently, and the AI lacks project-level context, easily resulting in inconsistent art style, proportions, color palettes, and design specifications. +3. A single asset often requires multiple rounds of generation and modification, but general chat-based AI tools make it difficult to centrally manage conversations, historical records, and branching for that asset. +4. Characters, animations, weapons, sound effects, and environments are inherently related, yet these relationships are typically not recorded by the system, forcing users to repeatedly provide the same context. +5. Generated results still require manual cropping, frame extraction, file organization, and format conversion before they can be imported into engines such as Unity or Godot. +6. Music and sound effect creation has an even higher barrier than general image asset creation. While users without drawing skills can still express ideas through rough sketches, users with no musical knowledge typically find it very difficult to start creating BGM or sound effects on their own. +7. Some similar products are disconnected from development workflows and cannot be integrated into actual work processes. + +Therefore, the goal of this product is to build a pixel-art-oriented one-stop 2D game asset creation and management platform that enables users to generate, edit, relate, manage, and deliver game assets within a unified project context. + +--- + +## Core Concepts & Information Architecture + +### Project + +To help users continuously generate, manage, and maintain assets for the same game, we introduce the concept of a **Project**. A Project typically corresponds to a game, a game demo, or a themed asset pack with a unified style, serving as the workspace for the entire asset production process. + +There are three ways to create a Project: import an existing game, have a game idea, or have no game idea and create the simplest project. Currently, priority is given to implementing Project creation with a game idea. +Each Project includes: +- Project Name +- Game Type +- Visual Style +- Target Platform (e.g., PC, Web) +- Game Description +- Visual Direction + +A large image (Visual Direction) is generated, which includes as many examples of Characters, UI, Background, Objects, and other Assets as possible to serve as a reference for subsequent asset generation. If unsatisfied, users can modify the prompt and regenerate, or upload their own image as a replacement. + +A Project provides the following capabilities: + +- **Unified AI Context** + - The information provided by users when creating a Project becomes the default AI context for the Project and is automatically referenced when generating Characters, UI, Backgrounds, Objects, and other assets, reducing repetitive prompt input and maintaining stylistic consistency across the project as much as possible. + +- **Centralized Asset Management** + - Users can create, browse, and manage multiple Assets within a Project. + - All Assets belong to a single Project, ensuring complete isolation between different games or asset packs. + +--- + +### Asset + +To help users continuously iterate on and manage game assets, we introduce the concept of **Asset**. An Asset is an asset management unit within a Project — each Asset corresponds to an independent asset in a game. For example, in *Stardew Valley*, Abigail could be a Character Asset, Pelican Town could be a Scenery Asset, a wooden chest could be an Object Asset, and the backpack interface could be a UI Asset. + +#### Character + +A Character represents all the information of a character, managing one or more protoTypes (prototype images) of that character, Animations generated from protoTypes, and sound effects attached to corresponding Animations. + +A Character includes: +- Asset Name +- Creative brief (the user's specific description of this Character) +- Canvas size (the canvas size for the generated Character, e.g., 32×32px) +- Perspective (the user can choose Top-down, Side-on, or Isometric) +- Reference (reference images) +- Belongs to Project + +After defining a Character, the AI generates a protoType for the user, which describes the Character's appearance information. +A protoType includes: +- Name +- Belongs to Character +- AI-generated image asset (currently presented as multi-directional sprites) + +Once satisfied, users can generate Animations attached to this Character based on the protoType. An Animation includes: +- Animation Name +- First Frame (the first frame of the Animation) +- Description (a specific description of the motion to generate; users can write their own or use our presets such as idle and then modify) +- Frame count (4–16 frames) +- AI-generated frame image resources +- Belongs to Character +A Character can have multiple Animations associated with it. + +We support adding sound effects to Animations. A sound effect includes: +- Belongs to Character +- Animation (the corresponding animation) +- Description (sound effect description) +- AI-generated sound effect resource + +#### Object + +An Object represents a static or interactive object in a game. Similar to Character, it contains one or more protoTypes (prototype images), Animations generated from protoTypes, and sound effects attached to corresponding Animations. + +#### UI + +A UI Asset represents a set of UI components. In the first phase, we focus on the most basic static UI. The second phase will add different states (e.g., hover) to UI components, and the final phase will provide UI animation capabilities. +A UI includes: +- Asset Name +- Style (overall style description for this set of UI components) +- Reference (style reference images) +- Belongs to Project + +A large composite image is presented to the user and then sliced. This image contains all Components. A Component represents a specific UI component (currently only the most basic single-state static UI component), and includes: +- Name +- Belongs to UI +- Size (the size specification of the Component) +- The sliced resource +![alt text](/doc/image/ui-example.png) + +#### Background + +Background includes two specific Asset types: Scenery and TileSet. + +##### Scenery + +Scenery represents a scene displayed as multiple stacked layers, and includes: +- Asset Name +- Style (overall style description for this scene) +- Layer num (number of layers) +- Aspect ratio (e.g., 16:9) +- Reference (reference images) +![alt text](/doc/image/secenery-example.png) +- Belongs to Project + +It manages a number of Layers corresponding to Layer num. A Layer includes: +- Name +- Description +- AI-generated resource + +After generation, users can directly see the effect of multiple layers stacked together. If unsatisfied with certain layers, they can further modify specific layers. + +##### TileSet + +A TileSet represents a set of tile resources, and includes: +- Asset Name +- Description (description of this TileSet) +- Reference (reference images) +![alt text](/doc/image/tile-example.png) +- Belongs to Project + +A TileSet manages multiple user-defined Items. An Item is an independently placeable unit with a logical concept (for example, a bed may occupy two Tiles — these two Tiles individually have no logical meaning; only the two combined as a bed form the Item). A large Tile Set image is provided to the user and sliced into individual Tiles, which are assigned to their respective Items based on the user's preset configuration. + +An Item includes: +- Name +- Description (specific description of this Item's content) +- Shape(e.g. 16X32) +- Location (position (x, y)) +- Belongs to TileSet + +A Tile, as the basic tile unit of a TileSet, includes: +- Belongs to TileSet +- Belongs to Item +- The sliced resource + +#### Audio + +Audio is distinct from animation-attached sound effects. Audio is an Asset type typically used for generating BGM, ambient sounds, and similar audio for games. It includes: +- Asset Name +- Style (music style; users can choose preset styles such as rock, or write their own prompts) +- Reference (audio reference) +- Length (duration) +- Belongs to Project + +At this stage, only simple trimming and speed adjustment are supported. Track functionality will be introduced later for more flexible processing. + +#### Asset provides the following general capabilities: + +- **Continuous Asset Iteration** + - Users can repeatedly perform AI generation, partial repainting, and manual fine-tuning around the same Asset. + - Every modification is retained within the current Asset rather than creating a new independent resource, making it easy for users to continuously refine the same asset. + +- **Record Management** + - Assets include built-in Record management. Each time a user uses AI generation, a new Record is automatically created. + - Users can browse historical records, restore any previous record, or select an Asset and copy it into a new Asset. + +- **Asset Associations** + - Assets support AI-automated association relationships. The system automatically references these related assets as context during generation or modification, improving the consistency of generated results. + +- **Tag Classification** + - Users can add one or more Tags to an Asset for classification, quick search, and batch modification. + - The same Tag can be associated with multiple Assets, making it convenient to manage a group of assets with shared characteristics. + +- **Asset Export** + - Assets can be exported into formats such as PNG, GIF, Spritesheet, Tileset, and JSON depending on the asset type, and can also be further converted into resource formats required by game engines such as Unity or Godot, enabling users to use them out of the box. + +--- + +### Record + +To support continuous iteration and historical traceability of game assets, we introduce the concept of **Record**. + +A Record is a persistent history entry for an Asset. Each time a user confirms a creation or edit operation, the system automatically creates a new Record that captures the complete state of the Asset at that moment, without overwriting any previous history. + +A Record provides the following capabilities: + +- **Automatic Saving** + - Every creation or save operation that requires user confirmation automatically generates a new Record, such as AI Generate, Save. + - Users do not need to save manually — the system automatically persists the history, allowing users to focus on asset creation. + +- **Complete History** + - Each Record stores a complete snapshot of the Asset at the time it was created. + +- **Historical Rollback** + - Users can revert to a previous historical record to recover from problems caused by incorrect operations. + +--- + +## Features + +The first milestone focuses on completing the core business loop of the AI game asset generation platform, covering the entire workflow: + +**Project Creation → Asset Generation & Management → Iteration → Batch Processing → Export** + +### Feature 1: Web Application + +Provide a browser-based asset management platform as the primary entry point for asset generation, management, and export. + +--- + +### Feature 2: Quick Generate + +Provide a simplified generation entry point. Users do not need to understand concepts like Projects or complex form data — they only need to provide a few required parameters and prompts to quickly create game assets. +Preserve the user's AI creation history, making it convenient for users to view their historical generation records. + +--- + +### Feature 3: Project Management & Global Configuration + +Provide Project creation and management capabilities, serving as the workspace for the entire game asset production process. + +Supported operations: + +- Create Project +- Edit Project +- Delete Project +- View Project + +Configure unified AI context for the Project, and generate or upload a Visual Direction master image to improve asset generation consistency. This prevents the problem of multiple assets within the same project being generated independently, where the AI lacks project context, leading to inconsistent art style and design specifications. + +Supported configurations: + +- Game genre +- Art style +- Camera perspective +- Target platform +- Reference images + +--- + +### Feature 4: Asset Management + +Provide organization and management capabilities for assets within a Project, helping users efficiently locate and maintain assets as their number grows. + +Supported operations: + +- Create Asset +- Edit Asset +- Delete Asset +- Search Assets +- View Asset Details +- Copy Asset + +--- + +### Feature 5: Asset Content Modification + +Support AI re-generation or manual editing of content within an Asset. + +--- + +### Feature 6: Record Management + +Automatically track the complete evolution history of every Asset, solving the problem that a single asset often requires multiple rounds of generation and modification whose historical versions are difficult to trace and manage. + +Supported features: + +- Automatic Record creation +- Restore historical Records +- View Record details + +--- + +### Feature 7: Animation & Sound Effect Generation + +Generate animation frames for characters or objects based on their ProtoType, and attach sound effects to animations, forming a complete "Character → Animation → Sound Effect" chain. This solves the problems of prototypes, animations, and sound effects lacking associations (forcing users to re-describe context) and the high barrier to sound effect creation. + +Supported capabilities: + +- Generate Animations from ProtoType +- Preview animations and sound effects + +--- + +### Feature 8: Tags + +Support asset classification and batch management. + +Capabilities include: + +- Create Tags +- Assign Tags to Assets +- Search by Tag +- Batch operations via Tags + +--- + +### Feature 9: Asset Associations + +Automatically establish relationships between Assets, enabling related assets to be referenced as context during generation and modification, improving cross-asset consistency within a Project. This solves the problem of users needing to repeatedly describe relationships between characters, objects, scenes, and other related assets. + +Supported capabilities: + +- AI automatically identifies and establishes Asset associations + +--- + +### Feature 10: SDK + +Network games require assets such as images, audio, and animations to be hosted in object storage. The platform provides optimized built-in object storage services and packages a client SDK, allowing users to call assets directly in their code via the SDK — no need for "download assets → upload to own object bucket → configure access URLs". + +Supported capabilities: + +- JS SDK (npm install) +- Asset loading + +--- + +### Feature 11: MCP Capabilities + +To seamlessly integrate platform assets into the game development workflow, we introduce the **MCP (Model Context Protocol)** interface. + +MCP addresses two typical game development scenarios: + +- **Network Game Scenario: SDK Information Retrieval** + - Agents read the SDK's real-time documentation via MCP, automatically generating asset invocation code to achieve vibe coding — users only need to describe their requirements, and the agent handles the entire pipeline from asset retrieval to code integration. + +- **Local Game Scenario: Direct Project Landing** + - After users configure assets in the Web editor, agents use MCP to directly land resource files into the local project directory. + - Automatically generates engine-specific scene files (such as Godot's .tscn files), including sprite nodes, animation frame references, and other configurations. + +This solves the problem of the product being disconnected from development workflows — unable to integrate into actual work processes or directly produce ready-to-use resources. + +Supported capabilities: + +- Read SDK real-time documentation +- Query Project information and Asset lists +- Search Assets within Projects +- Retrieve Asset details and related assets +- Download resource files to a specified directory +- Generate engine-specific scene files and resource configurations + +--- + +### Feature 12: Audio Generation + +Provide standalone BGM, ambient sound, and other audio asset generation capabilities, solving the problem of the high barrier to creating music assets such as BGM. + +Supported capabilities: + +- Online audio playback +- Duration control +- Simple trimming and speed adjustment diff --git a/doc/image/secenery-example.png b/doc/image/secenery-example.png new file mode 100644 index 00000000..6b190daa Binary files /dev/null and b/doc/image/secenery-example.png differ diff --git a/doc/image/tile-example.png b/doc/image/tile-example.png new file mode 100644 index 00000000..1de60b9b Binary files /dev/null and b/doc/image/tile-example.png differ diff --git a/doc/image/ui-example.png b/doc/image/ui-example.png new file mode 100644 index 00000000..637b3f7a Binary files /dev/null and b/doc/image/ui-example.png differ diff --git a/doc/zh/MS1-ProductProposal.md b/doc/zh/MS1-ProductProposal.md new file mode 100644 index 00000000..8413cd89 --- /dev/null +++ b/doc/zh/MS1-ProductProposal.md @@ -0,0 +1,374 @@ +# MS1-产品 Proposal + +## 一句话产品总结 + +本产品为建立在一套游戏素材管理系统之上的2D像素风游戏素材生成工具。旨在帮助2D像素风游戏开发者高效生成、管理和复用风格一致的游戏素材。 + +--- + +## 用户画像 + +面向像素画/形象or游戏爱好者、独立游戏开发者、小型游戏团队和游戏原型制作者。区别在于使用的目的,不在于专业能力 + +- 像素画/形象or游戏爱好者用户群体比较大,但并非核心用户群体。个人使用量比较小,付费意愿较低。主要在于引流,提高用户基数和项目曝光度,不重在直接盈利。 +- 独立游戏开发者分为两种 + - 一种是个人或者团队完全不具备绘画能力的,提供更加完备的方案。 + - 另一种为美工人员少,美工团队生产力较低,需要 AI 辅助,提高生产力的个人或者团队。提供类似 "vibe creating"/"AI assistant creating" 的方案。集成在独立游戏开发者常用的创作环境里面。 +- 游戏原型制作者则主要针对想要快速开发一个游戏 demo。Demo 期间显然开发一些基础的简单的游戏功能的速度会远大于美术素材的开发。当然也有可能会直接让美术团队 demo 期间先用 AI 来直接生成素材而不是花精力去画。所以这部分本质上讲和独立游戏开发者的两类需求是高度重叠的。 + +--- + +## 解决的问题 + +目前使用通用 AI 图像工具制作游戏素材时,通常会遇到以下问题: + +1. 单次生成结果与实际游戏开发流程脱节,只能得到一张图片,无法直接得到动画帧、Spritesheet、Tileset 或游戏引擎对象。 +2. 同一个游戏项目中的多个素材分别生成,AI 缺少项目上下文,容易出现画风、比例、色板和设定不一致。 +3. 一个素材往往需要多次生成和修改,但通用对话工具很难集中管理其对话、历史版本和分支。 +4. 角色、动画、武器、音效和场景之间存在关系,但这些关系通常没有被系统记录,导致用户需要不断重复说明。 +5. 生成结果仍然需要手动裁剪、拆帧、整理文件并转换格式,才能进入 Unity、Godot 等开发环境。 +6. 音乐和音效的制作门槛高于一般图像素材。不会绘画的用户仍然可以通过简单草图表达想法,但完全没有音乐知识的用户通常很难自行开始制作 BGM 和音效。 +7. 同类产品与开发流程脱节,无法集成到实际工作流中使用。 + +因此,本产品的目标是建立一个面向像素风的一站式 2D 游戏素材生产和管理系统,让用户能够在统一的项目上下文中生成、修改、关联、管理和交付游戏素材。 + +--- + +## 基本概念及其信息结构 + +### Project + +为了帮助用户围绕同一个游戏持续生成、管理和维护素材,我们引入了 Project 的概念。一个 Project 通常对应一个游戏、一个游戏 Demo 或一套具有统一风格的素材包,是整个素材生产过程的工作空间。 + +Project有三种创建方式:已有游戏导入、有游戏想法、没有游戏想法,创建一个最简单的project。目前优先实现有游戏想法创建project。 +每个Project包含: +- Project Name +- Game Type (游戏类型) +- Visual Style (视觉风格) +- Target Platform (目标平台,e.g. PC、Web) +- Game Description +- Visual direction + +我们会生成一张大图(Visual direction),这张大图尽可能包含了Character、UI、Background、Object等Asset的例子来作为后续素材生成的参考,用户不满意可以修改提示词重新生成,也可以上传自己的图片替代。 + +Project 为用户提供以下能力: + +- **统一的 AI 上下文** + - 用户创建project时提供的信息会作为 Project 的默认上下文,在后续生成 Character、UI、Background、Object 等Asset时自动引用,减少重复输入 Prompt,并尽可能保持项目内素材风格的一致性。 + +- **Asset 统一管理** + - 用户可以在 Project 中创建、查看和管理多个 Asset。 + - 所有Asset均归属于唯一的 Project,不同 Project 之间相互独立,实现不同游戏、不同素材包之间的素材隔离。 + +--- + +### Asset + +为了帮助用户持续迭代和管理游戏素材,我们引入了 Asset 的概念。Asset 是 Project 中的素材管理单元,一个 Asset 对应游戏中的一个独立素材,例如,在《星露谷物语》中,Abigail可以作为一个角色 Asset,Pelican Town可以作为一个场景 Asset,木制宝箱可以作为一个物品 Asset,背包界面可以作为一个 UI Asset。 + +#### Character + +Character 代表了一个角色的所有信息,其下管理有一张或多张该角色的protoType(原型图)、基于protoType生成的Animation以及附属于相应Animation的音效 + +Character 包括有 +- Asset Name +- Creative brief (用户对于这个Character的具体描述) +- Canvas size (生成的 Character 画布尺寸,e.g. 32X32px) +- Perspective (用户可以选择 Top down or Side on or Isometric) +- Reference (参考图片) +- 归属的Project + +用户在定义好Character后AI会为用户生成protoType,它描述了Character的外观信息。 +protoType 包括有: +- Name +- 所属的Character +- AI生成的形象素材 (目前是多向图的形式来表示) + +用户满意后便可基于protoType去生成附属于该Character的Animation,Animation包括: +- Animation Name +- First Frame (Animation 的第一帧) +- Description (对于生成的动作的具体描述,用户可以选择自己编写,也可以使用我们提供的预设如idle再加以更改) +- Frame count (帧数 4~16) +- AI生成的帧图素材 +- 所属的Character +一个 Character可以关联多个Animation + +我们支持为Animation添加音效(soundEffect),音效包括: +- 归属的Character +- Animation (对应动画) +- Descrption (音效描述) +- AI生成的音效素材 + +#### Object + +Object表示游戏中的静态或可交互物体,与Character类似,包含一张或多张protoType(原型图)、基于protoType生成的Animation以及附属于相应Animation的音效。 + +#### UI + +UI Asset 代表了一套UI组件,第一阶段先考虑最基础的静态UI,第二阶段会为UI增加不同state(如 hover),最终阶段提供UI的动画功能。 +UI包括的信息有: +- Asset Name +- Style (对这套UI组件的整体风格描述) +- Reference (风格参考图) +- 归属的Project + +我们会为用户展示一张大图并对其分割,这张大图包含了所有的Component,Component 代表一个具体的UI组件(目前只是最基础的单状态静态UI组件),包括: +- Name +- 所属的UI +- Size (Component的大小规格) +- 切割后的素材 +![alt text](/doc/image/ui-example.png) + +#### Background + +Background 包含Scenery 与TileSet两种具体的Asset类别。 + +##### Scenery + +Scenery 代表由多个图层堆叠展示的场景,包括的信息有: +- Asset Name +- Style (对这个场景一个整体的风格描述) +- Layer num (层数) +- Aspect ratio (比例,e.g. 16:9) +- Reference (参考图片) +![alt text](/doc/image/secenery-example.png) +- 归属的Project + +其下管理有对应Layer num数量的Layer,Layer包含: +- Name +- Descirption +- AI生成的素材 + +生成后用户可以直接看到多个图层堆叠起来的效果,若对某些图层不满意,可以针对具体图层进行进一步修改 + +##### TileSet + +TileSet 代表一组瓦片素材,包括的信息有: +- Asset Name +- Description (对这个TileSet的描述) +- Reference (参考图片) +![alt text](/doc/image/tile-example.png) +- 归属的Project + +Tile Set下管理有用户定义的多个Item,Item是可独立放置的、具有逻辑概念的一个单位(比如一张床,可能占有两个Tile,这两个Tile各自并不具有逻辑概念,两个组合成的床才是Item),我们会为用户提供一张大的Tile Set图,将其分割为一个个Tile,根据用户的预设决定其属于哪个Item. + +Item包含有: +- Name +- Description (对这个Item内容的具体描述) +- Shape(e.g. 16X32) +- Location (位置 (x,y)) +- 归属的TileSet + +Tile作为Tile Set的基本图块,包含有: +- 归属的TileSet +- 归属的Item +- 切割后的素材 + + + +#### Audio + +Audio 不同于附属于动画的音效,它属于Asset的一种类型,通常用于生成我们游戏中的BGM、环境音等,它包含的信息有: +- Asset Name +- Style (音乐风格,用户可以选择预设的风格如摇滚风,也可以自己编写提示词) +- Reference (音频参考) +- Length (时长) +- 归属的Project + +目前阶段仅支持简单的裁剪与倍速操作,后面会考虑引入Track实现更灵活的处理。 + +#### Asset 提供以下通用能力: + +- **素材持续迭代** + - 用户可以围绕同一个 Asset 持续进行 AI 生成、局部重绘以及人工微调。 + - 每一次修改都会保留到当前 Asset 中,而不会创建新的独立素材,方便用户持续完善同一个素材。 + +- **Record管理** + - Asset 内置 Record 管理,用户每次使用 AI 生成都会产生新的 Record。 + - 用户可以查看历史版本、回退到任意历史版本,或选取某个Asset copy 出一个新的 Asset。 + +- **素材关联** + - Asset 支持 AI 自动建立关联关系。系统在生成或修改时会自动引用这些相关素材作为上下文,提高生成结果的一致性。 + +- **标签分类** + - 用户可以为 Asset 添加一个或多个 Tag,用于素材分类、快速检索以及批量修改。 + - 同一个 Tag 可以关联多个 Asset,方便统一管理一组具有共同特征的素材。 + +- **素材导出** + - Asset 可以根据素材类型导出为 PNG、GIF、Spritesheet、Tileset、JSON 等多种格式,也可以进一步转换为 Unity、Godot 等游戏引擎所需的素材格式,帮助用户开箱即用。 + +--- + +### Record + +为了支持游戏素材的持续迭代与历史追溯,我们引入了 **Record** 的概念。 + +Record 是 Asset 的持久化历史记录。每一次经过用户确认的创建或编辑操作,系统都会自动创建一条新的 Record,用于记录当时 Asset 的完整状态,而不会覆盖历史内容。 + +Record 提供以下能力: + +- **自动保存** + - 每一次需要用户确认的创建或保存操作都会自动生成一条新的 Record,例如 AI Generate、Save。 + - 用户无需手动保存,系统会自动完成历史记录的持久化,让用户专注于素材创作。 + +- **完整的历史记录** + - 每一条 Record 都保存 Asset 在该时刻的完整快照。 + +- **历史回溯** + - 用户可以回退到之前的历史版本来避免误操作带来的问题。 + +--- + +## Feature + +第一阶段主要完成游戏素材 AI 生成平台的核心业务闭环,实现从 **Project 创建 → Asset 生成与管理 → 迭代 → 批量处理 → 导出** 的完整流程。 + +### Feature 1:Web 端 + +提供基于浏览器的素材管理平台,作为用户进行素材生成、管理和导出的主要入口。 + +--- + +### Feature 2:快速生成 + +提供简化的生成入口,用户无需关心 Project 等概念和专业化的表单数据,仅需提供必须的几个参数与提示词即可快速创建游戏素材。 +保存用户的 AI 创作历史,方便用户查看历史生成记录。 + +--- + +### Feature 3:Project 管理与全局配置 + +提供 Project 的创建与管理能力,作为整个游戏素材的工作空间。 + +支持: + +- 创建 Project +- 编辑 Project +- 删除 Project +- 查看 Project + +并为 Project 配置统一的 AI 上下文,生成或上传Visual Direction 大图提高素材生成的一致性,避免同一个游戏项目中的多个素材分别生成,AI 缺少项目上下文,出现画风、设定不一致的问题。 + +支持配置: + +- 游戏类型 +- 美术风格 +- 游戏视角 +- 目标平台 +- 参考图片 + +--- + +### Feature 4:Asset 管理 + +提供 Project 内Asset的组织和管理能力,帮助用户在Asset数量增长后依然能够高效定位和维护。 + +支持: + +- 创建 Asset +- 编辑 Asset +- 删除 Asset +- 搜索 Asset +- 查看 Asset 详情 +- 复制 Asset + +--- + +### Feature 5:Asset 内素材修改 + +支持 Asset内素材进行 AI重新生成或用户手动修改。 + +--- + +### Feature 6:Record 管理 + +自动记录Asset的完整演化过程,解决了一个素材往往需要多次生成和修改其历史版本难以回溯管理的问题。 + +支持: + +- 自动记录 Record +- 回退历史版本 +- 查看版本详情 + +--- + +### Feature 7:Animation 与音效生成 + +基于 ProtoType 生成角色或物体的动画帧,并为动画附加音效,形成"角色 → 动画 → 音效"的完整链条,解决了原型、动画、音效没有关联需要用户重复描述与音效制作门槛高的问题。 + +支持: + +- 基于 ProtoType 生成 Animation +- 动画与音效的预览 + +--- + +### Feature 8:Tag + +支持素材分类与批量管理。 + +支持: + +- 创建 Tag +- Asset 绑定 Tag +- Tag 检索 +- Tag 批量操作 + +--- + +### Feature 9:Asset 关联 + +自动建立 Asset 之间的关联关系,使生成与修改时能够引用相关Asset作为上下文,提升项目内素材的一致性,解决了角色、物品、场景等素材间存在关系用户需要重复说明的问题。 + +支持: + +- AI 自动识别并建立 Asset 关联 + +--- + +### Feature 10: SDK + +网络游戏需要将图片、音频、动画等素材托管到对象存储中,平台内置经过优化的对象存储服务,并封装客户端 SDK,用户直接在代码中通过 SDK 调用素材,无需经历"下载素材 → 上传到自有对象桶 → 配置访问地址"的流程。 + +支持: + +- JS SDK(npm 安装) +- 素材加载 + +--- + +### Feature 11:MCP 能力 + +为了将平台素材无缝集成到游戏开发工作流中,我们引入 MCP(Model Context Protocol)接口。 + +MCP 面向两种典型游戏开发场景: + +- **网络游戏场景:获取SDK信息 ** + - Agent 通过 MCP 读取 SDK 实时文档,自动生成素材调用代码,实现 vibe coding——用户只需描述需求,Agent 即可完成从素材获取到代码集成的全流程。 + +- **本地游戏场景:项目直落** + - 用户在 Web 编辑器中完成素材配置后,Agent 通过 MCP 直接将素材文件落地到本地项目目录。 + - 自动生成目标引擎所需的场景文件(如 Godot 的 .tscn 文件),包含Sprite节点、动画帧引用等配置。 + +解决了产品与开发流程脱节无法集成到实际工作流与无法直接得到可落地的素材的问题 + +支持: + +- 读取 SDK 实时文档 +- 查询 Project 信息与 Asset 列表 +- 搜索 Project 中的 Asset +- 获取 Asset 详情与关联素材 +- 下载素材文件到指定目录 +- 生成目标游戏引擎所需的场景文件与素材配置 + +--- + +### Feature 12:Audio 生成 + +提供独立的 BGM、环境音等音频素材生成能力,解决了BGM等音乐素材制作门槛高的问题 + +支持: + +- 音频在线播放 +- 时长控制 +- 简单裁剪与倍速调整 \ No newline at end of file