dsh-pet-live2d 1.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/LICENSE +56 -0
  2. package/README.md +425 -0
  3. package/cordis.patch.yml +8 -0
  4. package/docs/README.md +14 -0
  5. package/docs/downscale-fix.png +0 -0
  6. package/docs/preview.png +0 -0
  7. package/lib/client.js +3525 -0
  8. package/lib/index.js +1027 -0
  9. package/lib/live2d-vendor.js +997 -0
  10. package/package.json +61 -0
  11. package/pets/ds-whale-girl/LICENSE +37 -0
  12. package/pets/ds-whale-girl/README.md +67 -0
  13. package/pets/ds-whale-girl/c_0120.model3.json +249 -0
  14. package/pets/ds-whale-girl/catalog.json +310 -0
  15. package/pets/ds-whale-girl/expressions/angry.exp3.json +55 -0
  16. package/pets/ds-whale-girl/expressions/blank-eyes.exp3.json +10 -0
  17. package/pets/ds-whale-girl/expressions/cat-paws.exp3.json +20 -0
  18. package/pets/ds-whale-girl/expressions/claw-recolor.exp3.json +10 -0
  19. package/pets/ds-whale-girl/expressions/claw.exp3.json +10 -0
  20. package/pets/ds-whale-girl/expressions/cry.exp3.json +60 -0
  21. package/pets/ds-whale-girl/expressions/dark-tablecloth.exp3.json +11 -0
  22. package/pets/ds-whale-girl/expressions/dizzy.exp3.json +40 -0
  23. package/pets/ds-whale-girl/expressions/draw-brush.exp3.json +10 -0
  24. package/pets/ds-whale-girl/expressions/draw-eraser.exp3.json +10 -0
  25. package/pets/ds-whale-girl/expressions/draw-undo.exp3.json +10 -0
  26. package/pets/ds-whale-girl/expressions/drool.exp3.json +10 -0
  27. package/pets/ds-whale-girl/expressions/excited.exp3.json +65 -0
  28. package/pets/ds-whale-girl/expressions/exclaim.exp3.json +10 -0
  29. package/pets/ds-whale-girl/expressions/facial-red.exp3.json +10 -0
  30. package/pets/ds-whale-girl/expressions/glasses-oval.exp3.json +10 -0
  31. package/pets/ds-whale-girl/expressions/glasses-round.exp3.json +10 -0
  32. package/pets/ds-whale-girl/expressions/glasses-square.exp3.json +10 -0
  33. package/pets/ds-whale-girl/expressions/gloomy.exp3.json +10 -0
  34. package/pets/ds-whale-girl/expressions/hands-peace.exp3.json +10 -0
  35. package/pets/ds-whale-girl/expressions/headband.exp3.json +11 -0
  36. package/pets/ds-whale-girl/expressions/heart-pop.exp3.json +10 -0
  37. package/pets/ds-whale-girl/expressions/heartbeat.exp3.json +10 -0
  38. package/pets/ds-whale-girl/expressions/ketchup-squeeze.exp3.json +10 -0
  39. package/pets/ds-whale-girl/expressions/love-eyes.exp3.json +60 -0
  40. package/pets/ds-whale-girl/expressions/menu-press.exp3.json +10 -0
  41. package/pets/ds-whale-girl/expressions/naughty.exp3.json +20 -0
  42. package/pets/ds-whale-girl/expressions/omurice.exp3.json +16 -0
  43. package/pets/ds-whale-girl/expressions/parfait.exp3.json +10 -0
  44. package/pets/ds-whale-girl/expressions/phone-recolor.exp3.json +10 -0
  45. package/pets/ds-whale-girl/expressions/ponytail.exp3.json +11 -0
  46. package/pets/ds-whale-girl/expressions/question.exp3.json +10 -0
  47. package/pets/ds-whale-girl/expressions/sad.exp3.json +35 -0
  48. package/pets/ds-whale-girl/expressions/soul-out.exp3.json +10 -0
  49. package/pets/ds-whale-girl/expressions/sparkle.exp3.json +10 -0
  50. package/pets/ds-whale-girl/expressions/star-eyes.exp3.json +10 -0
  51. package/pets/ds-whale-girl/expressions/sticker-bow.exp3.json +10 -0
  52. package/pets/ds-whale-girl/expressions/sticker-cat.exp3.json +10 -0
  53. package/pets/ds-whale-girl/expressions/sticker-rabbit.exp3.json +10 -0
  54. package/pets/ds-whale-girl/expressions/sunglasses.exp3.json +20 -0
  55. package/pets/ds-whale-girl/expressions/sweat.exp3.json +10 -0
  56. package/pets/ds-whale-girl/expressions/tongue-out.exp3.json +26 -0
  57. package/pets/ds-whale-girl/expressions/whale-on-desk.exp3.json +11 -0
  58. package/pets/ds-whale-girl/expressions/whale.exp3.json +11 -0
  59. package/pets/ds-whale-girl/model/c_0120.cdi3.json +1802 -0
  60. package/pets/ds-whale-girl/model/c_0120.moc3 +0 -0
  61. package/pets/ds-whale-girl/model/c_0120.physics3.json +2396 -0
  62. package/pets/ds-whale-girl/motions/bubble-gum.motion3.json +369 -0
  63. package/pets/ds-whale-girl/motions/hammer.motion3.json +1120 -0
  64. package/pets/ds-whale-girl/motions/idle.motion3.json +4746 -0
  65. package/pets/ds-whale-girl/motions/ketchup.motion3.json +768 -0
  66. package/pets/ds-whale-girl/motions/open-case.motion3.json +116 -0
  67. package/pets/ds-whale-girl/motions/selfie-quick.motion3.json +47 -0
  68. package/pets/ds-whale-girl/motions/selfie.motion3.json +671 -0
  69. package/pets/ds-whale-girl/motions/spray-water.motion3.json +31 -0
  70. package/pets/ds-whale-girl/pet.json +599 -0
  71. package/pets/ds-whale-girl/previews/idle.png +0 -0
  72. package/pets/ds-whale-girl/textures/texture_00.png +0 -0
  73. package/pets/ds-whale-girl/textures/texture_01.png +0 -0
  74. package/pets/ds-whale-girl/voice.json +46 -0
  75. package/pets/ds-whale-girl//345/256/211/350/243/205/350/257/264/346/230/216.md +30 -0
  76. package/src/vendor-entry.ts +28 -0
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "dsh-pet-live2d",
3
+ "version": "1.23.0",
4
+ "description": "Live2D 桌宠插件:为 DSH Web GUI 挂一只可拖动、会跟随鼠标、能换动作与表情的 Live2D 宠物。",
5
+ "type": "module",
6
+ "main": "lib/index.js",
7
+ "license": "MIT",
8
+ "keywords": [
9
+ "dsh",
10
+ "dsh-plugin",
11
+ "deepseek-harness",
12
+ "live2d",
13
+ "desktop-pet",
14
+ "桌宠"
15
+ ],
16
+ "files": [
17
+ "lib",
18
+ "src",
19
+ "docs",
20
+ "pets",
21
+ "cordis.patch.yml",
22
+ "README.md",
23
+ "LICENSE"
24
+ ],
25
+ "exports": {
26
+ ".": {
27
+ "default": "./lib/index.js"
28
+ },
29
+ "./client": "./lib/client.js",
30
+ "./cordis.patch.yml": "./cordis.patch.yml",
31
+ "./package.json": "./package.json"
32
+ },
33
+ "scripts": {
34
+ "build:vendor": "esbuild src/vendor-entry.ts --bundle --format=iife --outfile=lib/live2d-vendor.js --minify --target=es2020"
35
+ },
36
+ "dsh": {
37
+ "engines": {
38
+ "dsh": ">=0.1.5-rc.1"
39
+ },
40
+ "bundle": {
41
+ "patch": "./cordis.patch.yml"
42
+ },
43
+ "client": {
44
+ "inject": [],
45
+ "platform": "web"
46
+ }
47
+ },
48
+ "devDependencies": {
49
+ "esbuild": "^0.25.10",
50
+ "pixi.js": "8.19.0",
51
+ "untitled-pixi-live2d-engine": "1.3.5"
52
+ },
53
+ "repository": {
54
+ "type": "git",
55
+ "url": "git+https://github.com/A8Chann/dsh-pet-live2d.git"
56
+ },
57
+ "homepage": "https://github.com/A8Chann/dsh-pet-live2d#readme",
58
+ "bugs": {
59
+ "url": "https://github.com/A8Chann/dsh-pet-live2d/issues"
60
+ }
61
+ }
@@ -0,0 +1,37 @@
1
+ DS鲸鱼娘 — Live2D 模型素材
2
+ ================================================================================
3
+
4
+ 本目录下的一切美术内容(c_0120.moc3 / 贴图 / expressions / motions / model /
5
+ catalog.json / 截图)采用:
6
+
7
+ CC BY-NC-SA 4.0
8
+ https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh
9
+
10
+ 署名 — 非商业性使用 — 相同方式共享
11
+
12
+ 版权所有人
13
+ --------------------------------------------------------------------------------
14
+ 上善无形(上善) 鲸鱼娘角色形象原作,原创 OC「溟月」
15
+ https://www.pixiv.net/users/62155430
16
+ https://b23.tv/8h5L4xz
17
+
18
+ ZipZipPipe 加入 DeepSeek 元素的女仆鲸鱼娘二次设计
19
+ https://www.pixiv.net/users/18604994
20
+ https://b23.tv/Pnw6nG8
21
+
22
+ 氵六青 本模型(Live2D 绑定 / 动作 / 表情)
23
+ https://space.bilibili.com/11272072
24
+
25
+ 你可以:分享、改编。
26
+ 你必须:署名(并说明是否修改)、非商业性使用、以同一协议分发你的改编。
27
+
28
+ 注意
29
+ --------------------------------------------------------------------------------
30
+ Live2D 作者 氵六青 已授权本项目转载与开源本模型,但该授权**不能覆盖基础版权**:
31
+ 角色形象本身由 上善无形 与 ZipZipPipe 以 CC BY-NC-SA 4.0 发布,
32
+ 因此**非商业(NC)与相同方式共享(SA)条款依然有效**。
33
+
34
+ 商业使用需**分别**取得上述版权所有人的授权。
35
+
36
+ Live2D Cubism Core(live2dcubismcore.min.js)为 Live2D Inc. 专有软件,
37
+ 不在本目录、也不在本仓库内。
@@ -0,0 +1,67 @@
1
+ # DS鲸鱼娘 · Live2D 桌宠
2
+
3
+ DSh 桌宠(`@linxin666/dsh-pet`)的 Live2D 宠物包。
4
+
5
+ - 渲染器:`live2d`(Cubism 3/4)
6
+ - 动作组:Idle / Hammer / BubbleGum / SprayWater / OpenCase / Selfie / SelfieQuick / Ketchup
7
+ - 表情:44 个(情绪 20 / 配件 9 / 道具 15)
8
+ - 许可:**CC BY-NC-SA 4.0**(署名 · **非商业** · 相同方式共享)—— 见本目录 `LICENSE`
9
+ - 版权链:**上善无形**(角色原作「溟月」)→ **ZipZipPipe**(DeepSeek 女仆二创)→ **氵六青**(本模型,交流群 645169617)
10
+
11
+ ## 装扮槽位(状态切换分类)
12
+
13
+ 44 个表情现在**全部**归入 **17 个**槽位。其中六个是**装扮**(眼镜 / 发饰 / 魔爪 / 桌面摆设=巴菲 / 桌布 / 其他=手机换色):
14
+ 它们跨启动记着,「归位」和会话相位都不动它们。其余槽位(手、眼、情绪、嘴、符号、氛围、脸红)是随时可换的表情。
15
+ 它们全部由模型的「通用按键 / C款动作开关」参数驱动,一个参数开一块美术;
16
+ 同时点亮两个不会「叠加」,只会打架。所以按**槽位**归类,每个槽位单选,
17
+ 选新的自动摘掉旧的:
18
+
19
+ | 槽位 | 不选 | 可选项 |
20
+ |---|---|---|
21
+ | 眼镜 | 无 | 圆眼镜 / 方眼镜 / 椭圆眼镜 / 墨镜 |
22
+ | 贴纸 | 无 | 猫猫 / 兔兔 / 蝴蝶结 |
23
+ | 发饰 | 戴着 | 摘掉发箍 / 单边马尾 |
24
+ | 桌布 | 白色 | 黑色 |
25
+ | 魔爪 | 无 | 粉魔爪 / 白魔爪 |
26
+ | 鲸鱼 | 无 | 头顶鲸 / 放桌上 |
27
+ | 桌面摆设 | 无 | 巴菲 |
28
+ | 右手 | 无 | 掏出手机 / 喵喵手 / 双手比耶 / 挤番茄酱 / 写本本 |
29
+ | 左手 | 无 | 撤回 / 画笔 / 橡皮 / 蛋包饭 |
30
+ | 眼部 | 默认 | 星星眼 / 爱心眼 / 呆呆眼 / 晕晕 / 阴暗 |
31
+ | 情绪 | 平静 | 开心兴奋 / 悲伤 / 大哭 / 生气 / 调皮 / 闭眼口水 / 吐魂 |
32
+ | 嘴部 | 闭嘴 | 吐舌 / 吹泡泡糖 |
33
+ | 符号 | 无 | 问号 / 感叹号 / 流汗 |
34
+ | 氛围 | 无 | 情绪花花 / 心跳 / 冒爱心 |
35
+ | 脸红 | 否 | 脸红 |
36
+ | 其他 | 无 | 手机换色 |
37
+ | 点菜 | 无 | 点菜按下 |
38
+
39
+ 分类依据是**模型作者自己在 cdi3 里写的分组和中文名**,不是按文件名猜的:
40
+ `ParamGroup29` 被作者命名为「C款动作开关(集中放置方便检查」,
41
+ 里面正好是 `point`(点菜板) / `danbaofan`(蛋包饭) / `phone`(手机手) /
42
+ `phone7`(双手比耶) / `maoshou`(猫手) —— 一组互斥的手部状态。
43
+
44
+ 剩下 25 个是**可以叠加的情绪表情**(脸红 + 汗 + 问号 是合理的漫画组合),
45
+ 保持自由开关。
46
+
47
+ 引擎的表情管理器一次只持有**一个**表情(`currentExpression`),所以跨槽位叠加不能
48
+ 交给它。插件改成**自己按帧写参数**:在每个表达式 .exp3.json 声明的通道上做 Add 叠加,
49
+ 写入点是 `coreModel.saveParameters()` 之后——正是引擎自己那套表情流程所在的位置。
50
+
51
+ 关键在挂钩点:写在 `loadParameters()` 之后会被下一帧的 `saveParameters()` 一起快照进
52
+ 基线,于是「关不掉」(实测开关永远停在 1);写在 `saveParameters()` 之后才是干净的一层,
53
+ 取消选择时下一帧自然就摘掉了。
54
+
55
+ 所以**六个槽位可以同时生效**,跟参考面板一致。
56
+
57
+ 槽位定义写在 `pet.json` 的 `live2d.expressionSlots`,换个宠物改这里就行。
58
+
59
+ ## 前置:Cubism Core
60
+
61
+ Live2D 专有许可不允许再分发 Core 运行时,需要自行放置:
62
+
63
+ ```
64
+ %DSH_HOME%\pets\.runtime\live2dcubismcore.min.js
65
+ ```
66
+
67
+ 从 Live2D 官方 Cubism SDK for Web 获取(`https://cubism.live2d.com/sdk-web/cubismcore/live2dcubismcore.min.js`)。
@@ -0,0 +1,249 @@
1
+ {
2
+ "Version": 3,
3
+ "FileReferences": {
4
+ "Moc": "model/c_0120.moc3",
5
+ "Textures": [
6
+ "textures/texture_00.png",
7
+ "textures/texture_01.png"
8
+ ],
9
+ "Physics": "model/c_0120.physics3.json",
10
+ "DisplayInfo": "model/c_0120.cdi3.json",
11
+ "Motions": {
12
+ "Idle": [
13
+ {
14
+ "File": "motions/idle.motion3.json"
15
+ }
16
+ ],
17
+ "Hammer": [
18
+ {
19
+ "File": "motions/hammer.motion3.json"
20
+ }
21
+ ],
22
+ "BubbleGum": [
23
+ {
24
+ "File": "motions/bubble-gum.motion3.json"
25
+ }
26
+ ],
27
+ "SprayWater": [
28
+ {
29
+ "File": "motions/spray-water.motion3.json"
30
+ }
31
+ ],
32
+ "OpenCase": [
33
+ {
34
+ "File": "motions/open-case.motion3.json"
35
+ }
36
+ ],
37
+ "Selfie": [
38
+ {
39
+ "File": "motions/selfie.motion3.json"
40
+ }
41
+ ],
42
+ "SelfieQuick": [
43
+ {
44
+ "File": "motions/selfie-quick.motion3.json"
45
+ }
46
+ ],
47
+ "Ketchup": [
48
+ {
49
+ "File": "motions/ketchup.motion3.json"
50
+ }
51
+ ]
52
+ },
53
+ "Expressions": [
54
+ {
55
+ "Name": "脸红",
56
+ "File": "expressions/facial-red.exp3.json"
57
+ },
58
+ {
59
+ "Name": "爱心眼",
60
+ "File": "expressions/love-eyes.exp3.json"
61
+ },
62
+ {
63
+ "Name": "星星眼",
64
+ "File": "expressions/star-eyes.exp3.json"
65
+ },
66
+ {
67
+ "Name": "情绪花花",
68
+ "File": "expressions/sparkle.exp3.json"
69
+ },
70
+ {
71
+ "Name": "心跳",
72
+ "File": "expressions/heartbeat.exp3.json"
73
+ },
74
+ {
75
+ "Name": "开心兴奋",
76
+ "File": "expressions/excited.exp3.json"
77
+ },
78
+ {
79
+ "Name": "悲伤",
80
+ "File": "expressions/sad.exp3.json"
81
+ },
82
+ {
83
+ "Name": "大哭",
84
+ "File": "expressions/cry.exp3.json"
85
+ },
86
+ {
87
+ "Name": "生气",
88
+ "File": "expressions/angry.exp3.json"
89
+ },
90
+ {
91
+ "Name": "晕晕",
92
+ "File": "expressions/dizzy.exp3.json"
93
+ },
94
+ {
95
+ "Name": "流汗",
96
+ "File": "expressions/sweat.exp3.json"
97
+ },
98
+ {
99
+ "Name": "问号",
100
+ "File": "expressions/question.exp3.json"
101
+ },
102
+ {
103
+ "Name": "感叹号",
104
+ "File": "expressions/exclaim.exp3.json"
105
+ },
106
+ {
107
+ "Name": "阴暗",
108
+ "File": "expressions/gloomy.exp3.json"
109
+ },
110
+ {
111
+ "Name": "调皮",
112
+ "File": "expressions/naughty.exp3.json"
113
+ },
114
+ {
115
+ "Name": "闭眼口水",
116
+ "File": "expressions/drool.exp3.json"
117
+ },
118
+ {
119
+ "Name": "吐魂",
120
+ "File": "expressions/soul-out.exp3.json"
121
+ },
122
+ {
123
+ "Name": "吐舌",
124
+ "File": "expressions/tongue-out.exp3.json"
125
+ },
126
+ {
127
+ "Name": "呆呆眼",
128
+ "File": "expressions/blank-eyes.exp3.json"
129
+ },
130
+ {
131
+ "Name": "冒爱心",
132
+ "File": "expressions/heart-pop.exp3.json"
133
+ },
134
+ {
135
+ "Name": "圆眼镜",
136
+ "File": "expressions/glasses-round.exp3.json"
137
+ },
138
+ {
139
+ "Name": "方眼镜",
140
+ "File": "expressions/glasses-square.exp3.json"
141
+ },
142
+ {
143
+ "Name": "椭圆眼镜",
144
+ "File": "expressions/glasses-oval.exp3.json"
145
+ },
146
+ {
147
+ "Name": "墨镜",
148
+ "File": "expressions/sunglasses.exp3.json"
149
+ },
150
+ {
151
+ "Name": "头箍",
152
+ "File": "expressions/headband.exp3.json"
153
+ },
154
+ {
155
+ "Name": "单边马尾",
156
+ "File": "expressions/ponytail.exp3.json"
157
+ },
158
+ {
159
+ "Name": "蝴蝶结贴纸",
160
+ "File": "expressions/sticker-bow.exp3.json"
161
+ },
162
+ {
163
+ "Name": "猫猫贴纸",
164
+ "File": "expressions/sticker-cat.exp3.json"
165
+ },
166
+ {
167
+ "Name": "兔兔贴纸",
168
+ "File": "expressions/sticker-rabbit.exp3.json"
169
+ },
170
+ {
171
+ "Name": "头顶鲸",
172
+ "File": "expressions/whale.exp3.json"
173
+ },
174
+ {
175
+ "Name": "鲸鱼放桌上",
176
+ "File": "expressions/whale-on-desk.exp3.json"
177
+ },
178
+ {
179
+ "Name": "桌面巴菲",
180
+ "File": "expressions/parfait.exp3.json"
181
+ },
182
+ {
183
+ "Name": "蛋包饭",
184
+ "File": "expressions/omurice.exp3.json"
185
+ },
186
+ {
187
+ "Name": "桌面粉魔爪",
188
+ "File": "expressions/claw.exp3.json"
189
+ },
190
+ {
191
+ "Name": "魔爪换色",
192
+ "File": "expressions/claw-recolor.exp3.json"
193
+ },
194
+ {
195
+ "Name": "双手比耶",
196
+ "File": "expressions/hands-peace.exp3.json"
197
+ },
198
+ {
199
+ "Name": "喵喵手",
200
+ "File": "expressions/cat-paws.exp3.json"
201
+ },
202
+ {
203
+ "Name": "手机换色",
204
+ "File": "expressions/phone-recolor.exp3.json"
205
+ },
206
+ {
207
+ "Name": "深色桌布",
208
+ "File": "expressions/dark-tablecloth.exp3.json"
209
+ },
210
+ {
211
+ "Name": "画笔",
212
+ "File": "expressions/draw-brush.exp3.json"
213
+ },
214
+ {
215
+ "Name": "橡皮",
216
+ "File": "expressions/draw-eraser.exp3.json"
217
+ },
218
+ {
219
+ "Name": "撤回",
220
+ "File": "expressions/draw-undo.exp3.json"
221
+ },
222
+ {
223
+ "Name": "点菜按下",
224
+ "File": "expressions/menu-press.exp3.json"
225
+ },
226
+ {
227
+ "Name": "挤番茄酱",
228
+ "File": "expressions/ketchup-squeeze.exp3.json"
229
+ }
230
+ ]
231
+ },
232
+ "Groups": [
233
+ {
234
+ "Target": "Parameter",
235
+ "Name": "EyeBlink",
236
+ "Ids": [
237
+ "ParamEyeLOpen",
238
+ "ParamEyeROpen"
239
+ ]
240
+ },
241
+ {
242
+ "Target": "Parameter",
243
+ "Name": "LipSync",
244
+ "Ids": [
245
+ "ParamMouthOpenY"
246
+ ]
247
+ }
248
+ ]
249
+ }