diff --git a/contracts/rest-api.yaml b/contracts/rest-api.yaml index 66dc71b..44e1609 100644 --- a/contracts/rest-api.yaml +++ b/contracts/rest-api.yaml @@ -262,7 +262,7 @@ paths: parameters: [{ $ref: '#/components/parameters/Id' }] post: tags: [motions] - summary: 触发 BVH/FBX → MediaPipe33 关键点序列预处理(同步执行) + summary: 触发 BVH/FBX -> MediaPipe33 关键点序列预处理(同步执行) description: | 同步执行并返回最终状态:成功时 preprocessState=done; 失败时返回 422,且 Motion.preprocessError 记录可读原因。 @@ -285,7 +285,7 @@ paths: '200': description: | application/x-ndjson,每行一个帧对象: - {"frame":0,"timeMs":0,"points":[[x,y,z,conf], …33],"angles":[9 个余弦]} + {"frame":0,"timeMs":0,"points":[[x,y,z,conf], ...33],"angles":[9 个余弦]} content: application/x-ndjson: schema: { type: string } @@ -323,11 +323,11 @@ paths: - `.glb` / `.vrm` / `.gltf`:**直接导入**,不重编码 - `.pmx` / `.fbx`:服务端转换,**优先 GLB、其次 VRM** - - `.zip`:**自动搜索包内可用模型** —— `.vrm` → `.glb` → `.gltf`(直接导入) - 优先,其次 `.pmx` → `.fbx`(转换)。压缩包原件作为 `model-archive` 资产留存。 + - `.zip`:**自动搜索包内可用模型** -- `.vrm` -> `.glb` -> `.gltf`(直接导入) + 优先,其次 `.pmx` -> `.fbx`(转换)。压缩包原件作为 `model-archive` 资产留存。 - 转换链路(`model-convert.ts`):`assimp export → .glb` →(失败)`→ .gltf` 后 - 由服务端自行打包成 GLB →(`MODEL_CONVERT_FORMAT=vrm` 时)在 GLB 之上补 + 转换链路(`model-convert.ts`):`assimp export -> .glb` ->(失败)`-> .gltf` 后 + 由服务端自行打包成 GLB ->(`MODEL_CONVERT_FORMAT=vrm` 时)在 GLB 之上补 `VRMC_vrm` 扩展产出 VRM 1.0。每一步都 `assimp info` **回读校验**, 并把过程写进 `conversionNote`;贴图会内嵌进 GLB,保证单文件可用。 @@ -488,7 +488,7 @@ paths: - $ref: '#/components/parameters/Id' post: tags: [reviews] - summary: 审核通过 → published + summary: 审核通过 -> published requestBody: content: application/json: @@ -510,7 +510,7 @@ paths: - $ref: '#/components/parameters/Id' post: tags: [reviews] - summary: 撤回审核 → draft + summary: 撤回审核 -> draft requestBody: content: application/json: @@ -552,7 +552,7 @@ paths: - $ref: '#/components/parameters/Id' post: tags: [reviews] - summary: 审核驳回 → rejected + summary: 审核驳回 -> rejected requestBody: required: true content: @@ -795,13 +795,13 @@ components: fileSha256: type: string nullable: true - description: 模型文件(转换产物)的 sha256 —— 每次转换都会变(Assimp 导出非字节级确定),仅作记录 + description: 模型文件(转换产物)的 sha256 -- 每次转换都会变(Assimp 导出非字节级确定),仅作记录 stats: type: object nullable: true description: >- 模型分析结果(面数 / 顶点数 / 贴图 / 骨骼树 / humanoid 覆盖 / 可驱动性), - 审核界面据此判断"能不能驱动与评分"。结构见 contracts/model-formats.md §1.1 + 审核界面据此判断"能不能驱动与评分"。结构见 contracts/model-formats.md 1.1 sourceSha256: type: string nullable: true diff --git a/deploy/.env.example b/deploy/.env.example index 4d6fcf2..883d4cf 100644 --- a/deploy/.env.example +++ b/deploy/.env.example @@ -1,5 +1,5 @@ # ============================================================ -# OpenDance Studio Web 服务端 —— Linux 原生部署环境变量 +# OpenDance Studio Web 服务端 -- Linux 原生部署环境变量 # # 复制为 deploy/.env 后填写;.env 已被 .gitignore 忽略,禁止提交。 # 该文件由 systemd 通过 EnvironmentFile 注入 Node 进程。 @@ -14,8 +14,8 @@ PORT=3000 # 不设置时默认 = PORT + 1(即 3001);设为与 PORT 相同即为单端口兼容模式 ADMIN_PORT=3001 # 监听地址: -# 反代与后端同机 → 127.0.0.1(后端不直接对外暴露,推荐) -# 反代在别的机器 → 0.0.0.0,并用防火墙把该端口限制为仅反代来源可访问 +# 反代与后端同机 -> 127.0.0.1(后端不直接对外暴露,推荐) +# 反代在别的机器 -> 0.0.0.0,并用防火墙把该端口限制为仅反代来源可访问 HOST=0.0.0.0 # 管理端单独绑定地址(可选)。只想让管理端暴露在内网时,例如 127.0.0.1 或内网网卡地址 # ADMIN_HOST=127.0.0.1 @@ -49,14 +49,14 @@ ASSIMP_BIN=assimp # vrm:在 GLB 之上补 VRMC_vrm 扩展(humanoid 骨骼 / 表情语义); # humanoid 骨骼名映射不全时会自动回退交付 GLB 并写进 conversion_note MODEL_CONVERT_FORMAT=glb -# 压缩包里优先选用的 PMX 文件名(大小写不敏感);找不到时按"格式优先级 → 目录最浅 → 文件最大"挑 +# 压缩包里优先选用的 PMX 文件名(大小写不敏感);找不到时按"格式优先级 -> 目录最浅 -> 文件最大"挑 MODEL_CONVERT_PMX=Hatsune Miku.pmx # 单次转换超时(毫秒) MODEL_CONVERT_TIMEOUT_MS=180000 # ---- 默认模型(可选)---- # 显式指定默认模型 id;不设置时按源码 src/config/default-model.ts 里的种子匹配, -# 再回落到契约 data-models.md §4.1 的 VRM 优先规则 +# 再回落到契约 data-models.md 4.1 的 VRM 优先规则 # DEFAULT_MODEL_ID=1 # ---- 契约目录 ---- diff --git a/deploy/proxy/nginx.conf.example b/deploy/proxy/nginx.conf.example index 9ad495c..4f47504 100644 --- a/deploy/proxy/nginx.conf.example +++ b/deploy/proxy/nginx.conf.example @@ -1,13 +1,13 @@ # ============================================================ -# OpenDance Studio Web 服务端 —— nginx 反向代理样例(双端口) +# OpenDance Studio Web 服务端 -- nginx 反向代理样例(双端口) # # 说明:本 Web 端不自带反向代理。本文件是**给你的反代服务参考**的配置样例, # 由部署 `deploy/install.sh` 之外的反代负责人使用。 # # 后端同时监听两个端口,职责不同: -# 软件 API 端口(PORT,默认 3000)—— Windows/Godot 客户端、Android App +# 软件 API 端口(PORT,默认 3000)-- Windows/Godot 客户端、Android App # 只提供 /api、/health、/static、/contracts -# 管理端端口(ADMIN_PORT,默认 3001)—— 浏览器,提供管理页面 + 上面全部接口 +# 管理端端口(ADMIN_PORT,默认 3001)-- 浏览器,提供管理页面 + 上面全部接口 # # 两个端口都不需要在代理层托管静态文件、也不需要 SPA 回退(服务端已处理), # 因此每个站点只要一条 `location /` 全匹配转发即可。 diff --git a/deploy/proxy/web.config.example b/deploy/proxy/web.config.example index b4c3e13..c602196 100644 --- a/deploy/proxy/web.config.example +++ b/deploy/proxy/web.config.example @@ -1,7 +1,7 @@