diff --git a/README.md b/README.md index 9494058..f66a890 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,171 @@ -# live2d_api +# Live2D API + Live2D 看板娘插件 (https://www.fghrsh.net/post/123.html) 上使用的后端 API + +### 特性 + +- 原生 PHP 开发,无需伪静态,开箱即用 +- 支持 模型、皮肤 的 顺序切换 和 随机切换 +- 支持 单模型 单皮肤 切换、多组皮肤 递归穷举 +- 支持 同分组 多个模型 或 多个路径 的 加载切换 + +## 使用 + +### 目录结构 + +```shell +│ model_list.json // 模型列表 +│ +├─model // 模型路径 +│ └─GroupName // 模组分组 +│ └─ModelName // 模型名称 +│ +├─add // 更新皮肤列表 +├─get // 获取模型配置 +├─rand // 随机切换模型 +├─rand_textures // 随机切换皮肤 +├─switch // 顺序切换模型 +├─switch_textures // 顺序切换皮肤 +└─tools + modelList.php // 列出模型列表 + modelTextures.php // 列出皮肤列表 + name-to-lower.php // 文件名格式化 +``` + +### 添加模型 + +- 单模型 单皮肤 切换 + - 单次加载只输出一个皮肤 + - 皮肤放在 `textures` 文件夹,自动识别 + +```shell +│ index.json +│ model.moc +│ textures.cache // 皮肤列表缓存,自动生成 +│ +├─motions +│ idle_01.mtn +│ idle_02.mtn +│ idle_03.mtn +│ +└─textures + default-costume.png + school-costume.png + winter-costume.png +``` + +- 单模型 多组皮肤 递归穷举 + - 多组皮肤 组合模型、穷举组合 + - 皮肤文件夹按 `texture_XX` 命名 + - 添加 `textures_order.json` 列出组合 +```shell +│ index.json +│ model.moc +│ textures.cache +│ textures_order.json +│ +├─motions +│ idle_01.mtn +│ idle_02.mtn +│ idle_03.mtn +│ +├─texture_00 +│ 00.png +│ +├─texture_01 +│ 00.png +│ 01.png +│ 02.png +│ +├─texture_02 +│ 00.png +│ 01.png +│ 02.png +│ +└─texture_03 + 00.png + 01.png +``` + +textures_order.json + +```json +[ + ["texture_00"], + ["texture_01","texture_02"], + ["texture_03"] +] +``` + +textures.cache + +```json +[ + ["texture_00/00.png","texture_01/00.png","texture_02/00.png","texture_03/00.png"], + ["texture_00/00.png","texture_01/00.png","texture_02/00.png","texture_03/01.png"], + ["texture_00/00.png","texture_01/01.png","texture_02/01.png","texture_03/00.png"], + ["texture_00/00.png","texture_01/01.png","texture_02/01.png","texture_03/01.png"], + ["texture_00/00.png","texture_01/02.png","texture_02/02.png","texture_03/00.png"], + ["texture_00/00.png","texture_01/02.png","texture_02/02.png","texture_03/01.png"] +] +``` + +- 同分组 多个模型 或 多个路径 切换 + - 修改 `model_list.json` 添加多个模型 + +```shell +│ +├─model +│ ├─Group1 +│ │ ├─Model1 +│ │ │ index.json +│ │ │ +│ │ └─Model2 +│ │ index.json +│ │ +│ ├─Group2 +│ │ └─Model1 +│ │ index.json +│ │ +│ └─GroupName +│ └─ModelName +│ │ index.json +│ │ model.moc +│ │ +│ ├─motions +│ └─textures +│ +``` + +model_list.json +```json +{ + "models": [ + "GroupName/ModelName", // 分组 1 模型 1 + [ + "Group1/Model1", // 分组 2 模型 1 + "Group1/Model2", // 分组 2 模型 2 + "Group2/Model1" // 分组 2 模型 3 + ] + ], + "messages": [ + "Example 1", // 分组 1 欢迎语 + "Example 2" // 分组 2 欢迎语 + ] +} +``` + +### 接口用法 + - `/add/` - 检测 新增皮肤 并更新 缓存列表 + - `/get/?id=1-23` 获取 分组 1 的 第 23 号 皮肤 + - `/rand/?id=1` 根据 上一分组 随机切换 + - `/switch/?id=1` 根据 上一分组 顺序切换 + - `/rand_textures/?id=1-23` 根据 上一皮肤 随机切换 同分组其他皮肤 + - `/switch_textures/?id=1-23` 根据 上一皮肤 顺序切换 同分组其他皮肤 + +## 版权声明 + +- (>▽<) 都看到这了,点个 Star 吧 ~ +**API 内所有模型 版权均属于原作者,仅供研究学习,不得用于商业用途** + +MIT © FGHRSH