dsh-pet-live2d-viola 1.0.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 (363) hide show
  1. package/LICENSE +44 -0
  2. package/README.md +98 -0
  3. package/assets/characters/miyako/Expressions/exp_amazed01.exp3.json +1 -0
  4. package/assets/characters/miyako/Expressions/exp_angry01.exp3.json +1 -0
  5. package/assets/characters/miyako/Expressions/exp_angry02.exp3.json +1 -0
  6. package/assets/characters/miyako/Expressions/exp_angry03.exp3.json +1 -0
  7. package/assets/characters/miyako/Expressions/exp_angry04.exp3.json +1 -0
  8. package/assets/characters/miyako/Expressions/exp_angry05.exp3.json +1 -0
  9. package/assets/characters/miyako/Expressions/exp_anxiety01.exp3.json +1 -0
  10. package/assets/characters/miyako/Expressions/exp_bsmile01.exp3.json +1 -0
  11. package/assets/characters/miyako/Expressions/exp_bsmile02.exp3.json +1 -0
  12. package/assets/characters/miyako/Expressions/exp_cry01.exp3.json +1 -0
  13. package/assets/characters/miyako/Expressions/exp_cry02.exp3.json +1 -0
  14. package/assets/characters/miyako/Expressions/exp_cry03.exp3.json +1 -0
  15. package/assets/characters/miyako/Expressions/exp_cry04.exp3.json +1 -0
  16. package/assets/characters/miyako/Expressions/exp_heart01.exp3.json +1 -0
  17. package/assets/characters/miyako/Expressions/exp_idle01.exp3.json +1 -0
  18. package/assets/characters/miyako/Expressions/exp_idle02.exp3.json +1 -0
  19. package/assets/characters/miyako/Expressions/exp_idle03.exp3.json +1 -0
  20. package/assets/characters/miyako/Expressions/exp_jitome01.exp3.json +1 -0
  21. package/assets/characters/miyako/Expressions/exp_kime01.exp3.json +1 -0
  22. package/assets/characters/miyako/Expressions/exp_kirakira01.exp3.json +1 -0
  23. package/assets/characters/miyako/Expressions/exp_mal_angry01.exp3.json +1 -0
  24. package/assets/characters/miyako/Expressions/exp_mal_angry02.exp3.json +1 -0
  25. package/assets/characters/miyako/Expressions/exp_mal_idle01.exp3.json +1 -0
  26. package/assets/characters/miyako/Expressions/exp_mal_idle02.exp3.json +1 -0
  27. package/assets/characters/miyako/Expressions/exp_mal_idle03.exp3.json +1 -0
  28. package/assets/characters/miyako/Expressions/exp_mal_kime01.exp3.json +1 -0
  29. package/assets/characters/miyako/Expressions/exp_mal_kime02.exp3.json +1 -0
  30. package/assets/characters/miyako/Expressions/exp_mal_pale01.exp3.json +1 -0
  31. package/assets/characters/miyako/Expressions/exp_mal_pale02.exp3.json +1 -0
  32. package/assets/characters/miyako/Expressions/exp_mal_sad01.exp3.json +1 -0
  33. package/assets/characters/miyako/Expressions/exp_mal_shy01.exp3.json +1 -0
  34. package/assets/characters/miyako/Expressions/exp_mal_smile01.exp3.json +1 -0
  35. package/assets/characters/miyako/Expressions/exp_pair_angry1_maru_angry1.exp3.json +637 -0
  36. package/assets/characters/miyako/Expressions/exp_pair_angry2_maru_angry2.exp3.json +637 -0
  37. package/assets/characters/miyako/Expressions/exp_pair_bsmile1_maru_smile.exp3.json +637 -0
  38. package/assets/characters/miyako/Expressions/exp_pair_idle_maru_idle.exp3.json +602 -0
  39. package/assets/characters/miyako/Expressions/exp_pair_jitome_maru_kime1.exp3.json +637 -0
  40. package/assets/characters/miyako/Expressions/exp_pair_kime_maru_kime.exp3.json +637 -0
  41. package/assets/characters/miyako/Expressions/exp_pair_serious1_maru_idle3.exp3.json +637 -0
  42. package/assets/characters/miyako/Expressions/exp_pair_serious_maru_idle.exp3.json +637 -0
  43. package/assets/characters/miyako/Expressions/exp_pair_serious_maru_sad.exp3.json +637 -0
  44. package/assets/characters/miyako/Expressions/exp_pair_smile2_maru_kime2.exp3.json +637 -0
  45. package/assets/characters/miyako/Expressions/exp_pair_smile3_maru_kime1.exp3.json +637 -0
  46. package/assets/characters/miyako/Expressions/exp_pair_smile_maru_smile.exp3.json +637 -0
  47. package/assets/characters/miyako/Expressions/exp_pair_surprised2_maru_shy.exp3.json +637 -0
  48. package/assets/characters/miyako/Expressions/exp_pale01.exp3.json +1 -0
  49. package/assets/characters/miyako/Expressions/exp_pale02.exp3.json +1 -0
  50. package/assets/characters/miyako/Expressions/exp_panic01.exp3.json +1 -0
  51. package/assets/characters/miyako/Expressions/exp_puzzled01.exp3.json +1 -0
  52. package/assets/characters/miyako/Expressions/exp_sad01.exp3.json +1 -0
  53. package/assets/characters/miyako/Expressions/exp_sad02.exp3.json +1 -0
  54. package/assets/characters/miyako/Expressions/exp_sad03.exp3.json +1 -0
  55. package/assets/characters/miyako/Expressions/exp_salk01.exp3.json +1 -0
  56. package/assets/characters/miyako/Expressions/exp_serious01.exp3.json +1 -0
  57. package/assets/characters/miyako/Expressions/exp_serious02.exp3.json +1 -0
  58. package/assets/characters/miyako/Expressions/exp_shadow01.exp3.json +1 -0
  59. package/assets/characters/miyako/Expressions/exp_shock01.exp3.json +1 -0
  60. package/assets/characters/miyako/Expressions/exp_shy01.exp3.json +1 -0
  61. package/assets/characters/miyako/Expressions/exp_shy02.exp3.json +1 -0
  62. package/assets/characters/miyako/Expressions/exp_smile01.exp3.json +1 -0
  63. package/assets/characters/miyako/Expressions/exp_smile02.exp3.json +1 -0
  64. package/assets/characters/miyako/Expressions/exp_smile03.exp3.json +1 -0
  65. package/assets/characters/miyako/Expressions/exp_smile04.exp3.json +1 -0
  66. package/assets/characters/miyako/Expressions/exp_spin01.exp3.json +1 -0
  67. package/assets/characters/miyako/Expressions/exp_surprised01.exp3.json +1 -0
  68. package/assets/characters/miyako/Expressions/exp_surprised02.exp3.json +1 -0
  69. package/assets/characters/miyako/Expressions/exp_surprised03.exp3.json +1 -0
  70. package/assets/characters/miyako/Expressions/exp_thinking01.exp3.json +1 -0
  71. package/assets/characters/miyako/Expressions/exp_tired01.exp3.json +1 -0
  72. package/assets/characters/miyako/Expressions/exp_tired02.exp3.json +1 -0
  73. package/assets/characters/miyako/Motions/mtn_angry01_C.motion3.json +1 -0
  74. package/assets/characters/miyako/Motions/mtn_angry01_L.motion3.json +1 -0
  75. package/assets/characters/miyako/Motions/mtn_angry01_R.motion3.json +1 -0
  76. package/assets/characters/miyako/Motions/mtn_angry02_C.motion3.json +1 -0
  77. package/assets/characters/miyako/Motions/mtn_angry02_L.motion3.json +1 -0
  78. package/assets/characters/miyako/Motions/mtn_angry02_R.motion3.json +1 -0
  79. package/assets/characters/miyako/Motions/mtn_bye01_C.motion3.json +1 -0
  80. package/assets/characters/miyako/Motions/mtn_bye01_L.motion3.json +1 -0
  81. package/assets/characters/miyako/Motions/mtn_bye01_R.motion3.json +1 -0
  82. package/assets/characters/miyako/Motions/mtn_check01_C.motion3.json +1 -0
  83. package/assets/characters/miyako/Motions/mtn_check01_L.motion3.json +1 -0
  84. package/assets/characters/miyako/Motions/mtn_check01_R.motion3.json +1 -0
  85. package/assets/characters/miyako/Motions/mtn_cry01_C.motion3.json +1 -0
  86. package/assets/characters/miyako/Motions/mtn_cry01_L.motion3.json +1 -0
  87. package/assets/characters/miyako/Motions/mtn_cry01_R.motion3.json +1 -0
  88. package/assets/characters/miyako/Motions/mtn_denial01_C.motion3.json +1 -0
  89. package/assets/characters/miyako/Motions/mtn_denial01_L.motion3.json +1 -0
  90. package/assets/characters/miyako/Motions/mtn_denial01_R.motion3.json +1 -0
  91. package/assets/characters/miyako/Motions/mtn_idle01_C.motion3.json +1 -0
  92. package/assets/characters/miyako/Motions/mtn_idle01_L.motion3.json +1 -0
  93. package/assets/characters/miyako/Motions/mtn_idle01_R.motion3.json +1 -0
  94. package/assets/characters/miyako/Motions/mtn_idle02_C.motion3.json +1 -0
  95. package/assets/characters/miyako/Motions/mtn_idle02_L.motion3.json +1 -0
  96. package/assets/characters/miyako/Motions/mtn_idle02_R.motion3.json +1 -0
  97. package/assets/characters/miyako/Motions/mtn_kime01_C.motion3.json +1 -0
  98. package/assets/characters/miyako/Motions/mtn_kime01_L.motion3.json +1 -0
  99. package/assets/characters/miyako/Motions/mtn_kime01_R.motion3.json +1 -0
  100. package/assets/characters/miyako/Motions/mtn_look01_C.motion3.json +1 -0
  101. package/assets/characters/miyako/Motions/mtn_look01_L.motion3.json +1 -0
  102. package/assets/characters/miyako/Motions/mtn_look01_R.motion3.json +1 -0
  103. package/assets/characters/miyako/Motions/mtn_look02_C.motion3.json +1 -0
  104. package/assets/characters/miyako/Motions/mtn_look02_L.motion3.json +1 -0
  105. package/assets/characters/miyako/Motions/mtn_look02_R.motion3.json +1 -0
  106. package/assets/characters/miyako/Motions/mtn_mal_angry01_C.motion3.json +1 -0
  107. package/assets/characters/miyako/Motions/mtn_mal_angry01_L.motion3.json +1 -0
  108. package/assets/characters/miyako/Motions/mtn_mal_angry01_R.motion3.json +1 -0
  109. package/assets/characters/miyako/Motions/mtn_mal_bye01_C.motion3.json +1 -0
  110. package/assets/characters/miyako/Motions/mtn_mal_bye01_L.motion3.json +1 -0
  111. package/assets/characters/miyako/Motions/mtn_mal_bye01_R.motion3.json +1 -0
  112. package/assets/characters/miyako/Motions/mtn_mal_cry01_C.motion3.json +1 -0
  113. package/assets/characters/miyako/Motions/mtn_mal_cry01_L.motion3.json +1 -0
  114. package/assets/characters/miyako/Motions/mtn_mal_cry01_R.motion3.json +1 -0
  115. package/assets/characters/miyako/Motions/mtn_mal_happy01_C.motion3.json +1 -0
  116. package/assets/characters/miyako/Motions/mtn_mal_happy01_L.motion3.json +1 -0
  117. package/assets/characters/miyako/Motions/mtn_mal_happy01_R.motion3.json +1 -0
  118. package/assets/characters/miyako/Motions/mtn_mal_rampage01_C.motion3.json +1 -0
  119. package/assets/characters/miyako/Motions/mtn_mal_rampage01_L.motion3.json +1 -0
  120. package/assets/characters/miyako/Motions/mtn_mal_rampage01_R.motion3.json +1 -0
  121. package/assets/characters/miyako/Motions/mtn_mal_smile01_C.motion3.json +1 -0
  122. package/assets/characters/miyako/Motions/mtn_mal_smile01_L.motion3.json +1 -0
  123. package/assets/characters/miyako/Motions/mtn_mal_smile01_R.motion3.json +1 -0
  124. package/assets/characters/miyako/Motions/mtn_nod01_C.motion3.json +1 -0
  125. package/assets/characters/miyako/Motions/mtn_nod01_L.motion3.json +1 -0
  126. package/assets/characters/miyako/Motions/mtn_nod01_R.motion3.json +1 -0
  127. package/assets/characters/miyako/Motions/mtn_nod02_C.motion3.json +1 -0
  128. package/assets/characters/miyako/Motions/mtn_nod02_L.motion3.json +1 -0
  129. package/assets/characters/miyako/Motions/mtn_nod02_R.motion3.json +1 -0
  130. package/assets/characters/miyako/Motions/mtn_nod03_C.motion3.json +1 -0
  131. package/assets/characters/miyako/Motions/mtn_nod03_L.motion3.json +1 -0
  132. package/assets/characters/miyako/Motions/mtn_nod03_R.motion3.json +1 -0
  133. package/assets/characters/miyako/Motions/mtn_question01_C.motion3.json +1 -0
  134. package/assets/characters/miyako/Motions/mtn_question01_L.motion3.json +1 -0
  135. package/assets/characters/miyako/Motions/mtn_question01_R.motion3.json +1 -0
  136. package/assets/characters/miyako/Motions/mtn_sad01_C.motion3.json +1 -0
  137. package/assets/characters/miyako/Motions/mtn_sad01_L.motion3.json +1 -0
  138. package/assets/characters/miyako/Motions/mtn_sad01_R.motion3.json +1 -0
  139. package/assets/characters/miyako/Motions/mtn_serious01_C.motion3.json +1 -0
  140. package/assets/characters/miyako/Motions/mtn_serious01_L.motion3.json +1 -0
  141. package/assets/characters/miyako/Motions/mtn_serious01_R.motion3.json +1 -0
  142. package/assets/characters/miyako/Motions/mtn_smile01_C.motion3.json +1 -0
  143. package/assets/characters/miyako/Motions/mtn_smile01_L.motion3.json +1 -0
  144. package/assets/characters/miyako/Motions/mtn_smile01_R.motion3.json +1 -0
  145. package/assets/characters/miyako/Motions/mtn_smile02_C.motion3.json +1 -0
  146. package/assets/characters/miyako/Motions/mtn_smile02_L.motion3.json +1 -0
  147. package/assets/characters/miyako/Motions/mtn_smile02_R.motion3.json +1 -0
  148. package/assets/characters/miyako/Motions/mtn_surprised01_C.motion3.json +1 -0
  149. package/assets/characters/miyako/Motions/mtn_surprised01_L.motion3.json +1 -0
  150. package/assets/characters/miyako/Motions/mtn_surprised01_R.motion3.json +1 -0
  151. package/assets/characters/miyako/Motions/mtn_thinking01_C.motion3.json +1 -0
  152. package/assets/characters/miyako/Motions/mtn_thinking01_L.motion3.json +1 -0
  153. package/assets/characters/miyako/Motions/mtn_thinking01_R.motion3.json +1 -0
  154. package/assets/characters/miyako/Textures/texture_00.webp +0 -0
  155. package/assets/characters/miyako/Textures/texture_01.webp +0 -0
  156. package/assets/characters/miyako/Textures/texture_02.webp +0 -0
  157. package/assets/characters/miyako/adv_live2d_miyako_014_casual_spring_01_marukun.moc3 +0 -0
  158. package/assets/characters/miyako/adv_live2d_miyako_014_casual_spring_01_marukun.model3.json +1 -0
  159. package/assets/characters/miyako/adv_live2d_miyako_014_casual_spring_01_marukun.model3.json.bak +1 -0
  160. package/assets/characters/miyako/adv_live2d_miyako_014_casual_spring_01_marukun.physics3.json +1 -0
  161. package/assets/characters/miyako/model.json +23 -0
  162. package/assets/characters/viola/Expressions/exp_angry01.exp3.json +1 -0
  163. package/assets/characters/viola/Expressions/exp_bsmile01.exp3.json +1 -0
  164. package/assets/characters/viola/Expressions/exp_bsmile02.exp3.json +1 -0
  165. package/assets/characters/viola/Expressions/exp_cry01.exp3.json +1 -0
  166. package/assets/characters/viola/Expressions/exp_cry02.exp3.json +1 -0
  167. package/assets/characters/viola/Expressions/exp_idle01.exp3.json +1 -0
  168. package/assets/characters/viola/Expressions/exp_idle02.exp3.json +1 -0
  169. package/assets/characters/viola/Expressions/exp_idle03.exp3.json +1 -0
  170. package/assets/characters/viola/Expressions/exp_idle04.exp3.json +1 -0
  171. package/assets/characters/viola/Expressions/exp_kime01.exp3.json +1 -0
  172. package/assets/characters/viola/Expressions/exp_pale01.exp3.json +1 -0
  173. package/assets/characters/viola/Expressions/exp_pale02.exp3.json +1 -0
  174. package/assets/characters/viola/Expressions/exp_sad01.exp3.json +1 -0
  175. package/assets/characters/viola/Expressions/exp_sad02.exp3.json +1 -0
  176. package/assets/characters/viola/Expressions/exp_serious01.exp3.json +1 -0
  177. package/assets/characters/viola/Expressions/exp_serious02.exp3.json +1 -0
  178. package/assets/characters/viola/Expressions/exp_shadow01.exp3.json +1 -0
  179. package/assets/characters/viola/Expressions/exp_smile01.exp3.json +1 -0
  180. package/assets/characters/viola/Expressions/exp_smile02.exp3.json +1 -0
  181. package/assets/characters/viola/Expressions/exp_smile02_nomouth.exp3.json +330 -0
  182. package/assets/characters/viola/Expressions/exp_smile03.exp3.json +1 -0
  183. package/assets/characters/viola/Expressions/exp_surprised01.exp3.json +1 -0
  184. package/assets/characters/viola/Expressions/exp_surprised01_nomouth.exp3.json +330 -0
  185. package/assets/characters/viola/Expressions/exp_thinking01.exp3.json +1 -0
  186. package/assets/characters/viola/Expressions/exp_thinking01_nomouth.exp3.json +330 -0
  187. package/assets/characters/viola/Motions/mtn_angry01_C.motion3.json +1 -0
  188. package/assets/characters/viola/Motions/mtn_angry01_L.motion3.json +1 -0
  189. package/assets/characters/viola/Motions/mtn_angry01_R.motion3.json +1 -0
  190. package/assets/characters/viola/Motions/mtn_bye01_C.motion3.json +1 -0
  191. package/assets/characters/viola/Motions/mtn_bye01_L.motion3.json +1 -0
  192. package/assets/characters/viola/Motions/mtn_bye01_R.motion3.json +1 -0
  193. package/assets/characters/viola/Motions/mtn_check01_C.motion3.json +1 -0
  194. package/assets/characters/viola/Motions/mtn_check01_L.motion3.json +1 -0
  195. package/assets/characters/viola/Motions/mtn_check01_R.motion3.json +1 -0
  196. package/assets/characters/viola/Motions/mtn_cry01_C.motion3.json +1 -0
  197. package/assets/characters/viola/Motions/mtn_cry01_L.motion3.json +1 -0
  198. package/assets/characters/viola/Motions/mtn_cry01_R.motion3.json +1 -0
  199. package/assets/characters/viola/Motions/mtn_denial01_C.motion3.json +1 -0
  200. package/assets/characters/viola/Motions/mtn_denial01_L.motion3.json +1 -0
  201. package/assets/characters/viola/Motions/mtn_denial01_R.motion3.json +1 -0
  202. package/assets/characters/viola/Motions/mtn_idle01_C.motion3.json +1 -0
  203. package/assets/characters/viola/Motions/mtn_idle01_L.motion3.json +1 -0
  204. package/assets/characters/viola/Motions/mtn_idle01_R.motion3.json +1 -0
  205. package/assets/characters/viola/Motions/mtn_kime01_C.motion3.json +1 -0
  206. package/assets/characters/viola/Motions/mtn_kime01_L.motion3.json +1 -0
  207. package/assets/characters/viola/Motions/mtn_kime01_R.motion3.json +1 -0
  208. package/assets/characters/viola/Motions/mtn_look01_C.motion3.json +1 -0
  209. package/assets/characters/viola/Motions/mtn_look01_L.motion3.json +1 -0
  210. package/assets/characters/viola/Motions/mtn_look01_R.motion3.json +1 -0
  211. package/assets/characters/viola/Motions/mtn_nod01_C.motion3.json +1 -0
  212. package/assets/characters/viola/Motions/mtn_nod01_L.motion3.json +1 -0
  213. package/assets/characters/viola/Motions/mtn_nod01_R.motion3.json +1 -0
  214. package/assets/characters/viola/Motions/mtn_nod02_C.motion3.json +1 -0
  215. package/assets/characters/viola/Motions/mtn_nod02_L.motion3.json +1 -0
  216. package/assets/characters/viola/Motions/mtn_nod02_R.motion3.json +1 -0
  217. package/assets/characters/viola/Motions/mtn_question01_C.motion3.json +1 -0
  218. package/assets/characters/viola/Motions/mtn_question01_L.motion3.json +1 -0
  219. package/assets/characters/viola/Motions/mtn_question01_R.motion3.json +1 -0
  220. package/assets/characters/viola/Motions/mtn_sad01_C.motion3.json +1 -0
  221. package/assets/characters/viola/Motions/mtn_sad01_L.motion3.json +1 -0
  222. package/assets/characters/viola/Motions/mtn_sad01_R.motion3.json +1 -0
  223. package/assets/characters/viola/Motions/mtn_serious01_C.motion3.json +1 -0
  224. package/assets/characters/viola/Motions/mtn_serious01_L.motion3.json +1 -0
  225. package/assets/characters/viola/Motions/mtn_serious01_R.motion3.json +1 -0
  226. package/assets/characters/viola/Motions/mtn_smile01_C.motion3.json +1 -0
  227. package/assets/characters/viola/Motions/mtn_smile01_L.motion3.json +1 -0
  228. package/assets/characters/viola/Motions/mtn_smile01_R.motion3.json +1 -0
  229. package/assets/characters/viola/Motions/mtn_smile02_C.motion3.json +1 -0
  230. package/assets/characters/viola/Motions/mtn_smile02_L.motion3.json +1 -0
  231. package/assets/characters/viola/Motions/mtn_smile02_R.motion3.json +1 -0
  232. package/assets/characters/viola/Motions/mtn_surprised01_C.motion3.json +1 -0
  233. package/assets/characters/viola/Motions/mtn_surprised01_L.motion3.json +1 -0
  234. package/assets/characters/viola/Motions/mtn_surprised01_R.motion3.json +1 -0
  235. package/assets/characters/viola/Motions/mtn_thinking01_C.motion3.json +1 -0
  236. package/assets/characters/viola/Motions/mtn_thinking01_L.motion3.json +1 -0
  237. package/assets/characters/viola/Motions/mtn_thinking01_R.motion3.json +1 -0
  238. package/assets/characters/viola/Textures/texture_00.webp +0 -0
  239. package/assets/characters/viola/Textures/texture_01.webp +0 -0
  240. package/assets/characters/viola/adv_live2d_sub_viola_casual_spring_01.moc3 +0 -0
  241. package/assets/characters/viola/adv_live2d_sub_viola_casual_spring_01.model3.json +388 -0
  242. package/assets/characters/viola/adv_live2d_sub_viola_casual_spring_01.physics3.json +1 -0
  243. package/assets/characters/viola_school/Expressions/exp_angry01.exp3.json +1 -0
  244. package/assets/characters/viola_school/Expressions/exp_bsmile01.exp3.json +1 -0
  245. package/assets/characters/viola_school/Expressions/exp_bsmile02.exp3.json +1 -0
  246. package/assets/characters/viola_school/Expressions/exp_cry01.exp3.json +1 -0
  247. package/assets/characters/viola_school/Expressions/exp_cry02.exp3.json +1 -0
  248. package/assets/characters/viola_school/Expressions/exp_idle01.exp3.json +1 -0
  249. package/assets/characters/viola_school/Expressions/exp_idle02.exp3.json +1 -0
  250. package/assets/characters/viola_school/Expressions/exp_idle03.exp3.json +1 -0
  251. package/assets/characters/viola_school/Expressions/exp_idle04.exp3.json +1 -0
  252. package/assets/characters/viola_school/Expressions/exp_kime01.exp3.json +1 -0
  253. package/assets/characters/viola_school/Expressions/exp_pale01.exp3.json +1 -0
  254. package/assets/characters/viola_school/Expressions/exp_pale02.exp3.json +1 -0
  255. package/assets/characters/viola_school/Expressions/exp_sad01.exp3.json +1 -0
  256. package/assets/characters/viola_school/Expressions/exp_sad02.exp3.json +1 -0
  257. package/assets/characters/viola_school/Expressions/exp_serious01.exp3.json +1 -0
  258. package/assets/characters/viola_school/Expressions/exp_serious02.exp3.json +1 -0
  259. package/assets/characters/viola_school/Expressions/exp_shadow01.exp3.json +1 -0
  260. package/assets/characters/viola_school/Expressions/exp_smile01.exp3.json +1 -0
  261. package/assets/characters/viola_school/Expressions/exp_smile02.exp3.json +1 -0
  262. package/assets/characters/viola_school/Expressions/exp_smile02_nomouth.exp3.json +330 -0
  263. package/assets/characters/viola_school/Expressions/exp_smile03.exp3.json +1 -0
  264. package/assets/characters/viola_school/Expressions/exp_surprised01.exp3.json +1 -0
  265. package/assets/characters/viola_school/Expressions/exp_surprised01_nomouth.exp3.json +330 -0
  266. package/assets/characters/viola_school/Expressions/exp_thinking01.exp3.json +1 -0
  267. package/assets/characters/viola_school/Expressions/exp_thinking01_nomouth.exp3.json +330 -0
  268. package/assets/characters/viola_school/Motions/mtn_angry01_C.motion3.json +1 -0
  269. package/assets/characters/viola_school/Motions/mtn_angry01_L.motion3.json +1 -0
  270. package/assets/characters/viola_school/Motions/mtn_angry01_R.motion3.json +1 -0
  271. package/assets/characters/viola_school/Motions/mtn_bye01_C.motion3.json +1 -0
  272. package/assets/characters/viola_school/Motions/mtn_bye01_L.motion3.json +1 -0
  273. package/assets/characters/viola_school/Motions/mtn_bye01_R.motion3.json +1 -0
  274. package/assets/characters/viola_school/Motions/mtn_check01_C.motion3.json +1 -0
  275. package/assets/characters/viola_school/Motions/mtn_check01_L.motion3.json +1 -0
  276. package/assets/characters/viola_school/Motions/mtn_check01_R.motion3.json +1 -0
  277. package/assets/characters/viola_school/Motions/mtn_cry01_C.motion3.json +1 -0
  278. package/assets/characters/viola_school/Motions/mtn_cry01_L.motion3.json +1 -0
  279. package/assets/characters/viola_school/Motions/mtn_cry01_R.motion3.json +1 -0
  280. package/assets/characters/viola_school/Motions/mtn_denial01_C.motion3.json +1 -0
  281. package/assets/characters/viola_school/Motions/mtn_denial01_L.motion3.json +1 -0
  282. package/assets/characters/viola_school/Motions/mtn_denial01_R.motion3.json +1 -0
  283. package/assets/characters/viola_school/Motions/mtn_idle01_C.motion3.json +1 -0
  284. package/assets/characters/viola_school/Motions/mtn_idle01_L.motion3.json +1 -0
  285. package/assets/characters/viola_school/Motions/mtn_idle01_R.motion3.json +1 -0
  286. package/assets/characters/viola_school/Motions/mtn_kime01_C.motion3.json +1 -0
  287. package/assets/characters/viola_school/Motions/mtn_kime01_L.motion3.json +1 -0
  288. package/assets/characters/viola_school/Motions/mtn_kime01_R.motion3.json +1 -0
  289. package/assets/characters/viola_school/Motions/mtn_look01_C.motion3.json +1 -0
  290. package/assets/characters/viola_school/Motions/mtn_look01_L.motion3.json +1 -0
  291. package/assets/characters/viola_school/Motions/mtn_look01_R.motion3.json +1 -0
  292. package/assets/characters/viola_school/Motions/mtn_nod01_C.motion3.json +1 -0
  293. package/assets/characters/viola_school/Motions/mtn_nod01_L.motion3.json +1 -0
  294. package/assets/characters/viola_school/Motions/mtn_nod01_R.motion3.json +1 -0
  295. package/assets/characters/viola_school/Motions/mtn_nod02_C.motion3.json +1 -0
  296. package/assets/characters/viola_school/Motions/mtn_nod02_L.motion3.json +1 -0
  297. package/assets/characters/viola_school/Motions/mtn_nod02_R.motion3.json +1 -0
  298. package/assets/characters/viola_school/Motions/mtn_question01_C.motion3.json +1 -0
  299. package/assets/characters/viola_school/Motions/mtn_question01_L.motion3.json +1 -0
  300. package/assets/characters/viola_school/Motions/mtn_question01_R.motion3.json +1 -0
  301. package/assets/characters/viola_school/Motions/mtn_sad01_C.motion3.json +1 -0
  302. package/assets/characters/viola_school/Motions/mtn_sad01_L.motion3.json +1 -0
  303. package/assets/characters/viola_school/Motions/mtn_sad01_R.motion3.json +1 -0
  304. package/assets/characters/viola_school/Motions/mtn_serious01_C.motion3.json +1 -0
  305. package/assets/characters/viola_school/Motions/mtn_serious01_L.motion3.json +1 -0
  306. package/assets/characters/viola_school/Motions/mtn_serious01_R.motion3.json +1 -0
  307. package/assets/characters/viola_school/Motions/mtn_smile01_C.motion3.json +1 -0
  308. package/assets/characters/viola_school/Motions/mtn_smile01_L.motion3.json +1 -0
  309. package/assets/characters/viola_school/Motions/mtn_smile01_R.motion3.json +1 -0
  310. package/assets/characters/viola_school/Motions/mtn_smile02_C.motion3.json +1 -0
  311. package/assets/characters/viola_school/Motions/mtn_smile02_L.motion3.json +1 -0
  312. package/assets/characters/viola_school/Motions/mtn_smile02_R.motion3.json +1 -0
  313. package/assets/characters/viola_school/Motions/mtn_surprised01_C.motion3.json +1 -0
  314. package/assets/characters/viola_school/Motions/mtn_surprised01_L.motion3.json +1 -0
  315. package/assets/characters/viola_school/Motions/mtn_surprised01_R.motion3.json +1 -0
  316. package/assets/characters/viola_school/Motions/mtn_thinking01_C.motion3.json +1 -0
  317. package/assets/characters/viola_school/Motions/mtn_thinking01_L.motion3.json +1 -0
  318. package/assets/characters/viola_school/Motions/mtn_thinking01_R.motion3.json +1 -0
  319. package/assets/characters/viola_school/Textures/texture_00.webp +0 -0
  320. package/assets/characters/viola_school/Textures/texture_01.webp +0 -0
  321. package/assets/characters/viola_school/adv_live2d_sub_viola_school_winter_hs.moc3 +0 -0
  322. package/assets/characters/viola_school/adv_live2d_sub_viola_school_winter_hs.model3.json +388 -0
  323. package/assets/characters/viola_school/adv_live2d_sub_viola_school_winter_hs.physics3.json +1 -0
  324. package/assets/click/click.mp3 +0 -0
  325. package/assets/voice/README.txt +139 -0
  326. package/assets/voice/done-fc.opus +0 -0
  327. package/assets/voice/done-score.opus +0 -0
  328. package/assets/voice/idle-common02.opus +0 -0
  329. package/assets/voice/idle-levelup.opus +0 -0
  330. package/assets/voice/idle-marukun.opus +0 -0
  331. package/assets/voice/listening.opus +0 -0
  332. package/assets/voice/miyako-farewell.opus +0 -0
  333. package/assets/voice/thinking-comon.opus +0 -0
  334. package/assets/voice/thinking-gekisou.opus +0 -0
  335. package/assets/voice/viola-click1.opus +0 -0
  336. package/assets/voice/viola-click2.opus +0 -0
  337. package/assets/voice/viola-done1.opus +0 -0
  338. package/assets/voice/viola-done2.opus +0 -0
  339. package/assets/voice/viola-done3.opus +0 -0
  340. package/assets/voice/viola-farewell.opus +0 -0
  341. package/assets/voice/viola-idle1.opus +0 -0
  342. package/assets/voice/viola-idle2.opus +0 -0
  343. package/assets/voice/viola-idle3.opus +0 -0
  344. package/assets/voice/viola-idle4.opus +0 -0
  345. package/assets/voice/viola-listening.opus +0 -0
  346. package/assets/voice/viola-thinking1.opus +0 -0
  347. package/assets/voice/viola-thinking2.opus +0 -0
  348. package/assets/voice/viola-thinking3.opus +0 -0
  349. package/assets/voice/viola-working1.opus +0 -0
  350. package/assets/voice/viola-working2.opus +0 -0
  351. package/assets/voice/viola-working3.opus +0 -0
  352. package/assets/voice/working-combo.opus +0 -0
  353. package/assets/voice/working-skill.opus +0 -0
  354. package/assets/voice/working-training.opus +0 -0
  355. package/cordis.patch.yml +18 -0
  356. package/lib/client.js +5514 -0
  357. package/lib/client.live2d.js +67 -0
  358. package/lib/framing.js +284 -0
  359. package/lib/index.js +591 -0
  360. package/lib/machine.js +279 -0
  361. package/lib/persist.js +183 -0
  362. package/lib/routes.js +206 -0
  363. package/package.json +57 -0
@@ -0,0 +1,139 @@
1
+ # 内置语音
2
+
3
+ 这些文件随插件一起发布,播放时从**本地磁盘**读取,不依赖网络。
4
+
5
+ | 文件 | 游戏内 cue | 台词 | 时长 | 触发时机 |
6
+ |---|---|---|---|---|
7
+ | `listening.opus` | `VoiceLive_14/Live_Miyako_Start_01` | 準備はできてます / 准备已经做好了 | 1.23 s | 收到消息(`listening` 阶段) |
8
+ | `idle-marukun.opus` | `VoiceSystem_14/BandTop_Miyako_Common_03` | まるくんは私のお友達なんです / 丸君是我的朋友 | 2.57 s | 待机漂移,仅丸君动作可抽 |
9
+ | `idle-common02.opus` | `VoiceSystem_14/BandTop_Miyako_Common_02` | よし、今週分は提出完了。次は宣伝イラスト / 好,这周的份提交了。再来是宣传插图。 | 4.57 s | 待机漂移,任何动作 |
10
+ | `idle-levelup.opus` | `VoiceSystem_14/Growth_Miyako_LevelUP_01` | もっと鍛えなければ……! / 要再多加锻炼才行……! | 1.56 s | 待机漂移,任何动作 |
11
+ | `thinking-comon.opus` | `VoiceLive_14/Live_Miyako_Combo_Comon_Call_01` | 気を抜いてはいけませんよ / 不可以松懈哦 | 1.52 s | `thinking`,30% 概率二选一 |
12
+ | `thinking-gekisou.opus` | `VoiceLive_14/Live_Miyako_GekisouStart_Just_01` | 全神経を集中させて……! / 必须全神贯注才行……! | 1.95 s | 同上 |
13
+ | `working-training.opus` | `VoiceSystem_14/Growth_Miyako_SpecialTraining_01` | フン! 戦の準備、できました! / 哼!已经做好战斗的准备了! | 3.08 s | `working`,30% 概率三选一 |
14
+ | `working-combo.opus` | `VoiceLive_14/Live_Miyako_Combo_Comon_Res_01` | ここまで来たらあとは根性……! / 事已至此就只能靠毅力了……! | 1.99 s | 同上 |
15
+ | `working-skill.opus` | `VoiceLive_14/Live_Miyako_LiveSkill_Comon_Res_01` | お任せください! / 请交给我吧! | 1.09 s | 同上 |
16
+ | `done-fc.opus` | `VoiceLive_14/Live_Miyako_Finish_FC_01` | 練習した甲斐がありました / 平时的苦练总算没白费 | 1.73 s | `done`,每次完成必说,二选一 |
17
+ | `done-score.opus` | `VoiceSystem_14/Result_Miyako_Score_SS_01` | すごく……楽しかった……! / 真的……超开心……! | 2.37 s | 同上 |
18
+
19
+ ## 触发逻辑
20
+
21
+ ### 待机漂移(12 秒一次)
22
+
23
+ 每个槽位从**一个加权集合**里抽一句,**可能抽到静默**:
24
+
25
+ | 台词 | 权重 | 每小时 | 占位比 | 可抽条件 |
26
+ |---|---|---|---|---|
27
+ | `idle-marukun.opus` | 15(`chance` 0.45) | 10.7 | 3.6% | **仅**丸君动作(`mtn_mal_*`) |
28
+ | `idle-common02.opus` | 15 | 39.4 | 13.1% | 任何动作 |
29
+ | `idle-levelup.opus` | 15 | 39.4 | 13.1% | 任何动作 |
30
+ | *(静默)* | 75 | — | 70.1% | 让槽位能不出声 |
31
+
32
+ **有声合计 89.6 句/小时**(占 29.9% 的动作位)。数字由 `idle-voice-weights.mjs`
33
+ 从源码和模型的真实动作权重重算,并用 `verify-idle-model.mjs`(代数 vs 模拟)与
34
+ `verify-idle-rate.mjs`(浏览器里真实抽取 3 万次)双向校验 —— **不要手改这张表**。
35
+
36
+ **静默是必需的**:`pickPreferred` 对所有候选取归一化,所以没有静默候选的话,权重只能决定分配比例,
37
+ 她会在每个槽位都开口。`SILENCE_WEIGHT` 是「整体说得太频繁」的旋钮,它对每条台词一视同仁。
38
+
39
+ **丸君台词为什么要额外的 `chance` 门**:它只在 63.6% 的槽位可抽(丸君动作占比),
40
+ 三条台词又共用同一个 `SILENCE_WEIGHT`,所以它的权重**表达不了**「就这一条,少说点」——
41
+ 降低它的权重只会把概率让给另外两条,降低静默权重会一起降。0.45 的二次门只作用于它自己。
42
+
43
+ > ⚠️ 这张表曾经长期错误:算丸君台词的概率时分母**漏掉了它自己的权重**,把它高估了 14%
44
+ > (12.3 而不是 10.7)。代数上看起来完全合理,是浏览器实测对不上才发现的。
45
+ > 所以现在两个校验脚本都在,`verify-idle-model.mjs` 里还有一步专门断言「漏掉权重会被容差抓住」。
46
+
47
+ ### 每条台词借用的表情
48
+
49
+ 播放时切换表情,**播完变回原来那张脸**:
50
+
51
+ | 台词 | 表情 | 说明 |
52
+ |---|---|---|
53
+ | `idle-marukun.opus` | 微笑 1 + 丸君微笑 | 合成表情 `exp_pair_smile_maru_smile.exp3` |
54
+ | `idle-common02.opus` | 耍帅 1 + 丸君耍帅 1 | 合成表情 `exp_pair_kime_maru_kime.exp3` |
55
+
56
+ 两张脸(都子 + 丸君)要**同时**变,而运行时的 `ExpressionManager` 只维护**一个**当前表情,
57
+ 所以两个表情文件被**合并成一个**(由 `make-combined-expression.mjs` 生成,并注册进 `model3.json`)。
58
+ 两个源表情的参数集完全不相交(94 个面部参数 + 32 个 `ParamMaru*`),所以拼接不会冲突。
59
+
60
+ 计时用 `holdMs`(音频实测长度),**不用音频的 `ended` 事件** —— 后者在后台标签页不可靠,
61
+ 一旦不触发她就会一直保持那个表情。播放中用户手动选表情不会被恢复定时器覆盖。
62
+
63
+ ### thinking / working(每次动画)
64
+
65
+ 这两个阶段各有 **5%** 概率说一句,同一阶段内各条等概率,并且有两层间隔限制:
66
+
67
+ ```
68
+ thinking → thinking-comon 或 thinking-gekisou (各 50%)
69
+ working → working-training 或 working-combo 或 working-skill (各 33%)
70
+ ```
71
+
72
+ | 限制 | 量 | 作用 |
73
+ |---|---|---|
74
+ | `rate` | 5% / 每次动画 | 控制**总量** |
75
+ | `PHASE_LINE_QUIET_MS` | 30 秒(**逐阶段**) | 播完该阶段自己的台词后,该阶段静默 30 秒 |
76
+
77
+ **逐阶段静默窗**(`QUIET_PHASES = {thinking, working}`)的三个要点:
78
+
79
+ - **从音频播完开始算**,不是从开始播算 —— 否则长句会吃掉自己的静默期
80
+ - **逐阶段独立**,所以 `thinking` 说过话不影响 `working`
81
+ - **只作用于这两个阶段**。`done` 刻意排除:它每次完成必说,若被这个窗拦下,会出现「有时候不说话」的难查故障
82
+
83
+ > 曾经还有一个 **60 秒共享冷却**,现已移除。它强制任意两句之间间隔 60 秒,会让 `thinking` 和
84
+ > `working` **无缘无故地互相压制**;而它本来要消除的「成串出现」已经由逐阶段静默窗解决了。
85
+
86
+ **静默窗比比例更重要。** 比例是**按每次动画**算的,而连续的工具调用每两秒就重新进入 `working` ——
87
+ 每次都是独立掷骰,所以单靠比例会**成串出现**。静默窗从结构上消除了这一点(同一阶段 30 秒内不可能说第二次)。
88
+
89
+ 它不影响待机漂移的台词(那些由 12 秒的漂移节奏控制)。
90
+
91
+ ### done(每次完成)
92
+
93
+ **每次完成必说一句**,两条等概率:
94
+
95
+ ```
96
+ done → done-fc 或 done-score (各 50%)
97
+ ```
98
+
99
+ 一次完成是一个回合的结束,不会像工具调用那样每两秒重复,所以**没有突发需要抑制**。
100
+ 它在 `PHASE_LINES` 里写作 `rate: 1`,
101
+ 否则刚说过话的 `thinking`/`working` 会把它静默掉。
102
+
103
+ ## 气泡时长
104
+
105
+ **按各条音频的实际长度单独设置**(`VOICE_LINES` 里的 `holdMs` = 音频长度 + 约 0.33 秒),
106
+ 不是共用常量 —— 九条时长差 **4 倍**(1.09 s ~ 4.57 s),共用一个值会把长句截断、或让短句滞留。
107
+
108
+ **每条语音都必须有 `VOICE_LINES` 条目**,否则会「听得到声音但看不到字」——
109
+ `verify-thinking-voice` 会枚举文件与条目比对,漏了就失败。
110
+
111
+ ## 来源
112
+
113
+ 来自游戏资源,与 yatta.moe 角色页播放的是同一批文件:
114
+
115
+ ```
116
+ https://bdon.yatta.moe/Resources/en/cri_assets_cri/sound/
117
+ voicelive_14/Live_Miyako_Start_01.opus (11,910 字节)
118
+ voicesystem_14/BandTop_Miyako_Common_03.opus (23,293 字节)
119
+ voicesystem_14/BandTop_Miyako_Common_02.opus (35,942 字节)
120
+ voicesystem_14/Growth_Miyako_LevelUP_01.opus (16,345 字节)
121
+ voicelive_14/Live_Miyako_Combo_Comon_Call_01.opus (14,161 字节)
122
+ voicelive_14/Live_Miyako_GekisouStart_Just_01.opus(19,448 字节)
123
+ voicesystem_14/Growth_Miyako_SpecialTraining_01.opus (24,010 字节)
124
+ voicelive_14/Live_Miyako_Combo_Comon_Res_01.opus (20,766 字节)
125
+ voicelive_14/Live_Miyako_LiveSkill_Comon_Res_01.opus (12,223 字节)
126
+ ```
127
+
128
+ URL 规则:把 cue 按 `/` 切开,**第一段转小写**,再接上
129
+ `/Resources/en/cri_assets_cri/sound/`,最后加 `.opus`。
130
+
131
+ ## 格式
132
+
133
+ Ogg Opus(`OggS` 容器,`content-type: audio/ogg`)。浏览器原生支持,无需解码库。
134
+ 时长可从 Ogg 最后一页的 granule position 推出(÷48000),校验脚本就是这么测的。
135
+
136
+ ## 版权
137
+
138
+ 语音版权归其原始权利人所有(Bushiroad / Craft Egg 及其许可方)。
139
+ 随本包提供仅供**个人、非商业的桌宠用途**,**不得再分发或用于商业目的**。
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,18 @@
1
+ # dsh-pet-live2d-viola bundle patch: inserts the plugin row into the web plugin roster.
2
+ #
3
+ # One row mounts both halves:
4
+ # - host half (lib/index.js): the pet state machine, the session-activity
5
+ # bridge, the persisted display config and the asset/API routes.
6
+ # - client half (lib/client.js): the floating Live2D stage, plus the
7
+ # package-local runtime chunk lib/client.live2d.js, which the
8
+ # client-module loader serves from /plugins/dsh-pet-live2d-viola/.
9
+ #
10
+ # The row id must equal the exported plugin name in lib/index.js. The row name must equal the package
11
+ # name AND the id the client module registers with, because the loader builds /plugins/<name>/ from it.
12
+ #
13
+ # Everything this pet owns is namespaced on that id -- /api/pet-live2d-viola, /pet-live2d-viola/assets
14
+ # and ~/.dsh/pet-live2d/pet-live2d-viola.json -- so it can be installed alongside the other Live2D pet
15
+ # without the two fighting over one route table and one saved record.
16
+ - insert:
17
+ - id: pet-live2d-viola
18
+ name: dsh-pet-live2d-viola