Files
AIGame/ResourceCreate.md
T
udxandCursor 6550b8df4b Add AIServer, character art pipeline, and Art package boot integration.
Bring in MaleExplorer assets/shaders, model tooling and Hunyuan updates, plus boot/YooAsset Art package support.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 17:06:59 +08:00

146 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 各生成节点使用方法
## 文/图生图
- 默认模型:`gpt-image-2.5`(≤1K,如 `1024x1024` 或比例 `"1:1"` / `"16:9"`)
- VIP 模型:`gpt-image-2-vip`(>1K 像素,如 `2048x2048`、`2048x1152`)
- API key:sk-b69877bd82c6412ca4872351f428d580
- 接口文档:Doc\gpt-image_doc.md
- 脚本:Tools\gpt_image_generate.py
### 模型选择规则(Agent / 人工均需遵守)
1. 输出边长 **≤1024**(含 `1024x1024` 及比例写法):用默认 `gpt-image-2.5`。
2. 输出任一边 **>1024**(如 `2048x2048` UI 图集):**必须**改用 VIP `gpt-image-2-vip`,并传像素写法(VIP **不支持** `"16:9"` 这类比例字符串)。
3. 脚本在 `--aspect-ratio` 为 `WxH` 且任一边 >1024 时:若当前模型不是 VIP 系列,会自动升为 `gpt-image-2-vip`;已是 `gpt-image-2-vip` / `gpt-image-2.5-flare` / `gpt-image-2.5-sunburst` 则保留。
4. VIP 像素约束:边长为 16 的倍数、最大边 ≤3840、总像素约 0.64M–8.3M、长短边比 ≤3:1。
5. 当前账号下 `gpt-image-2.5-flare` 对 >1K 不可用,**不要默认使用 flare**。
### AI / 命令行调用
```bash
# 文生图(默认 1K / gpt-image-2.5)
python Tools/gpt_image_generate.py -p "一只边牧在草地上奔跑" -o AIClient/Assets/Generated/dog.png
# 大于 1K(如 2048):用 VIP,传像素尺寸
python Tools/gpt_image_generate.py -p "UI sprite atlas" -o Tools/output/ui_atlas.png --aspect-ratio 2048x2048 --model gpt-image-2-vip
# 图生图(可多次传 --image)
python Tools/gpt_image_generate.py -p "保持构图,换成赛博朋克风格" -i ref.png -o out.png
# JSON 参数(适合 Agent / 流程编排)
python Tools/gpt_image_generate.py --json "{\"prompt\":\"城市夜景\",\"output\":\"out/city.png\"}" --result-only
python Tools/gpt_image_generate.py --json "{\"prompt\":\"UI图集\",\"output\":\"out/atlas.png\",\"aspectRatio\":\"2048x2048\",\"model\":\"gpt-image-2-vip\"}" --result-only
```
### 流程回调
- `--callback-url`:每个进度/结果事件 POST JSON
- `--callback-file`:覆盖写入 `{latest, history}` 状态文件
- 默认 stdout 输出 NDJSON 事件流,最后一行为最终结果
环境变量可选覆盖:`GRSAI_API_KEY`、`GPT_IMAGE_API_KEY`
## 腾讯混元3D(图生3D → GLB)
- 网站:`https://3d.hunyuan.tencent.com/`
- 脚本:`Tools/hunyuan_3d_generate.py`
- 模块:`Tools/hunyuan_3d/`(`auth.py` 微信登录 / `client.py` 图生自动化)
- 依赖:`Tools/requirements-hunyuan.txt`(`playwright` + 本机 Microsoft Edge)
```bash
pip install -r Tools/requirements-hunyuan.txt
playwright install msedge
```
- 会话目录:`Tools/data/hunyuan/`(`storage_state.json` 为登录凭证,已 gitignore)
- 环境变量:`HUNYUAN_SESSION_DIR`、`HUNYUAN_BROWSER_CHANNEL`(默认 `msedge`)
### 能力说明
1. 首期仅 **图生3D → GLB**。文生请先用上文「文/图生图」出图,再交给本脚本。
2. 未登录、凭证失效或**当前账号额度/次数用尽**时,会 **弹出 Edge 微信扫码页**(同步阻塞,最长 `--login-timeout` 秒);额度满时提示换号登录,成功后自动续跑。
3. 面数:`--faces 50k|500k|1m`(默认 `50k`)。
4. 任务中间文件在 `Tools/data/hunyuan/jobs/<job_id>/`;最终 GLB 写到 `-o`。
5. 生成完成后须在 `Doc/ResDesc_Model.md` 登记资源(索引见 `Doc/ResDesc.md`)。
### AI / 命令行调用
```bash
# 查看登录状态
python Tools/hunyuan_3d_generate.py --status
# 预登录(弹出微信扫码)
python Tools/hunyuan_3d_generate.py --login
# 强制换号登录(忽略本地凭证 / 额度满换号)
python Tools/hunyuan_3d_generate.py --login --force-login
# 图生3D(未登录或额度满则中途自动弹登录页)
python Tools/hunyuan_3d_generate.py -i ref.png -o Tools/output/prop.glb --faces 50k
# JSON / Agent
python Tools/hunyuan_3d_generate.py --json "{\"image\":\"ref.png\",\"output\":\"out/a.glb\",\"faces\":\"50k\"}" --result-only
# CI:禁止弹窗,未登录直接失败
python Tools/hunyuan_3d_generate.py -i ref.png -o out.glb --no-interactive-login
```
### 流程回调 / 事件
- `--callback-url` / `--callback-file` / NDJSON 与文生图脚本同模式
- 典型事件:`login_required` → `login_waiting` → `login_ok` → `stage` → `succeeded` / `failed`
- `login_required.reason`:`auth`(未登录/失效)或 `quota`(额度满需换号)
## 高模减面与贴图烘焙
- 来源:复刻 `ClientTrunk/Tools/ModelTools`(`model_decimate` + `model_bake`)
- 目录:`Tools/model_tools/`(说明见 `Tools/model_tools/README.md`)
- 依赖:本机 **Blender**(推荐 5.0);可选 Pillow(UV 观察图);可选 UVPackmaster 4
- 默认路径:`D:\tools\Blender\blender-5.0.0-windows-x64\blender.exe`(可用 `BLENDER_EXE` / `BLENDER_PATH` / `--blender` 覆盖)
### 流程
```text
高模(FBX / GLB / glTF)
-> 减面 + 重展 UV -> <名>_low.fbx
-> Cycles selected-to-active 烘焙
-> 五通道 PNG + 低模 FBX
-> model_translator(默认)-> XPbr 两张图 + .mat/.meta
<名>_base.png RGB=Albedo A=AO/透明
<名>_mix.png RG=球面法线 B=Metallic A=Roughness
```
### AI / 命令行调用
```bash
# 一键:减面 + 烘焙 + XPbr 打包(默认)
python Tools/model_tools/model_lowpoly_bake.py Tools/output/prop.glb -o Tools/output/prop_game --tris 5000 --size 2048
# 仅五通道、跳过 XPbr
python Tools/model_tools/model_lowpoly_bake.py prop.glb -o Tools/output/prop_game --no-xpbr
# 单独 XPbr 转换(输入为烘焙后的 FBX 目录旁贴图)
python Tools/model_tools/model_translator.py Tools/output/prop_game/prop/prop.fbx -o Tools/output/prop_xpbr
```
与混元衔接:
```bash
python Tools/hunyuan_3d_generate.py -i ref.png -o Tools/output/{actor}_3d/{actor}.glb --faces 50k
python Tools/model_tools/model_lowpoly_bake.py Tools/output/{actor}_3d/{actor}.glb -o Tools/output/{actor}_game --tris 5000 --size 2048
python Tools/install_character_bundles.py -a {ActorName} -b Tools/output/{actor}_game/{actor}_xpbr -c ref.png
# Unity: AIGame/M3/Setup Character Prefab + Art Collector(挂 Test/XPbr 生成预设)
```
### 与 AIC#Project ModelTranslator 对比(减面/烘焙)
- **更优(AIC#)**:默认 Quad Remesher 四边拓扑、更深 seam 扫描;本仓库未捆绑 QR 引擎。
- **已对齐**:自适应烘焙射线、UV 最大单岛门限、XPbr base/mix 打包与 `Test/XPbr` 材质。
- **本仓库优势**:高模直接吃 GLB/glTF(混元产物),一键流水线含 XPbr。
游戏目录:`AIClient/Assets/Bundles/Characters/{ActorName}/`;高模中间件留在 `Tools/output/`。完成后登记 `Doc/ResDesc_Model.md`。
## UI 自动生成(JSON → Prefab)
总览:`Doc/UI_AutoGen_Overview.md`
```text
需求 → 写 Doc/UIPrefabCreater/{UI}.json
→ Unity Tools/UI 或获焦自动转换
→ Assets/Bundles/UI/Prefab/{UI}.prefab
→ HotUpdate C# 接管
```
- 契约提示词:`Doc/Rule/UIGenerationPrompt.md`
- 切图规范:`Doc/UI_Normal_Set.md` / `Doc/UI_Pic_Set.md`
- 风格:`Doc/Design/UI_Design_Principles.md`
- 缺切图时用上文「文/图生图」,>1K 用 `gpt-image-2-vip`;导入 `Assets/Bundles/UI/Texture/Common`
- 完成后登记 `Doc/ResDesc_Picture.md`