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.
- package/LICENSE +44 -0
- package/README.md +98 -0
- package/assets/characters/miyako/Expressions/exp_amazed01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_angry01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_angry02.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_angry03.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_angry04.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_angry05.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_anxiety01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_bsmile01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_bsmile02.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_cry01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_cry02.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_cry03.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_cry04.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_heart01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_idle01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_idle02.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_idle03.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_jitome01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_kime01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_kirakira01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_mal_angry01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_mal_angry02.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_mal_idle01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_mal_idle02.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_mal_idle03.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_mal_kime01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_mal_kime02.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_mal_pale01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_mal_pale02.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_mal_sad01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_mal_shy01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_mal_smile01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_pair_angry1_maru_angry1.exp3.json +637 -0
- package/assets/characters/miyako/Expressions/exp_pair_angry2_maru_angry2.exp3.json +637 -0
- package/assets/characters/miyako/Expressions/exp_pair_bsmile1_maru_smile.exp3.json +637 -0
- package/assets/characters/miyako/Expressions/exp_pair_idle_maru_idle.exp3.json +602 -0
- package/assets/characters/miyako/Expressions/exp_pair_jitome_maru_kime1.exp3.json +637 -0
- package/assets/characters/miyako/Expressions/exp_pair_kime_maru_kime.exp3.json +637 -0
- package/assets/characters/miyako/Expressions/exp_pair_serious1_maru_idle3.exp3.json +637 -0
- package/assets/characters/miyako/Expressions/exp_pair_serious_maru_idle.exp3.json +637 -0
- package/assets/characters/miyako/Expressions/exp_pair_serious_maru_sad.exp3.json +637 -0
- package/assets/characters/miyako/Expressions/exp_pair_smile2_maru_kime2.exp3.json +637 -0
- package/assets/characters/miyako/Expressions/exp_pair_smile3_maru_kime1.exp3.json +637 -0
- package/assets/characters/miyako/Expressions/exp_pair_smile_maru_smile.exp3.json +637 -0
- package/assets/characters/miyako/Expressions/exp_pair_surprised2_maru_shy.exp3.json +637 -0
- package/assets/characters/miyako/Expressions/exp_pale01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_pale02.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_panic01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_puzzled01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_sad01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_sad02.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_sad03.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_salk01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_serious01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_serious02.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_shadow01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_shock01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_shy01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_shy02.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_smile01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_smile02.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_smile03.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_smile04.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_spin01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_surprised01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_surprised02.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_surprised03.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_thinking01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_tired01.exp3.json +1 -0
- package/assets/characters/miyako/Expressions/exp_tired02.exp3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_angry01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_angry01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_angry01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_angry02_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_angry02_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_angry02_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_bye01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_bye01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_bye01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_check01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_check01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_check01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_cry01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_cry01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_cry01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_denial01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_denial01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_denial01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_idle01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_idle01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_idle01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_idle02_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_idle02_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_idle02_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_kime01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_kime01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_kime01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_look01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_look01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_look01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_look02_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_look02_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_look02_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_angry01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_angry01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_angry01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_bye01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_bye01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_bye01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_cry01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_cry01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_cry01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_happy01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_happy01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_happy01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_rampage01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_rampage01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_rampage01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_smile01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_smile01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_mal_smile01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_nod01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_nod01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_nod01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_nod02_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_nod02_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_nod02_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_nod03_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_nod03_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_nod03_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_question01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_question01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_question01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_sad01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_sad01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_sad01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_serious01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_serious01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_serious01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_smile01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_smile01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_smile01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_smile02_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_smile02_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_smile02_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_surprised01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_surprised01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_surprised01_R.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_thinking01_C.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_thinking01_L.motion3.json +1 -0
- package/assets/characters/miyako/Motions/mtn_thinking01_R.motion3.json +1 -0
- package/assets/characters/miyako/Textures/texture_00.webp +0 -0
- package/assets/characters/miyako/Textures/texture_01.webp +0 -0
- package/assets/characters/miyako/Textures/texture_02.webp +0 -0
- package/assets/characters/miyako/adv_live2d_miyako_014_casual_spring_01_marukun.moc3 +0 -0
- package/assets/characters/miyako/adv_live2d_miyako_014_casual_spring_01_marukun.model3.json +1 -0
- package/assets/characters/miyako/adv_live2d_miyako_014_casual_spring_01_marukun.model3.json.bak +1 -0
- package/assets/characters/miyako/adv_live2d_miyako_014_casual_spring_01_marukun.physics3.json +1 -0
- package/assets/characters/miyako/model.json +23 -0
- package/assets/characters/viola/Expressions/exp_angry01.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_bsmile01.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_bsmile02.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_cry01.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_cry02.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_idle01.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_idle02.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_idle03.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_idle04.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_kime01.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_pale01.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_pale02.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_sad01.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_sad02.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_serious01.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_serious02.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_shadow01.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_smile01.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_smile02.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_smile02_nomouth.exp3.json +330 -0
- package/assets/characters/viola/Expressions/exp_smile03.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_surprised01.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_surprised01_nomouth.exp3.json +330 -0
- package/assets/characters/viola/Expressions/exp_thinking01.exp3.json +1 -0
- package/assets/characters/viola/Expressions/exp_thinking01_nomouth.exp3.json +330 -0
- package/assets/characters/viola/Motions/mtn_angry01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_angry01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_angry01_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_bye01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_bye01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_bye01_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_check01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_check01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_check01_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_cry01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_cry01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_cry01_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_denial01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_denial01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_denial01_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_idle01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_idle01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_idle01_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_kime01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_kime01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_kime01_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_look01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_look01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_look01_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_nod01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_nod01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_nod01_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_nod02_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_nod02_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_nod02_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_question01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_question01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_question01_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_sad01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_sad01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_sad01_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_serious01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_serious01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_serious01_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_smile01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_smile01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_smile01_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_smile02_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_smile02_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_smile02_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_surprised01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_surprised01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_surprised01_R.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_thinking01_C.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_thinking01_L.motion3.json +1 -0
- package/assets/characters/viola/Motions/mtn_thinking01_R.motion3.json +1 -0
- package/assets/characters/viola/Textures/texture_00.webp +0 -0
- package/assets/characters/viola/Textures/texture_01.webp +0 -0
- package/assets/characters/viola/adv_live2d_sub_viola_casual_spring_01.moc3 +0 -0
- package/assets/characters/viola/adv_live2d_sub_viola_casual_spring_01.model3.json +388 -0
- package/assets/characters/viola/adv_live2d_sub_viola_casual_spring_01.physics3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_angry01.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_bsmile01.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_bsmile02.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_cry01.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_cry02.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_idle01.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_idle02.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_idle03.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_idle04.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_kime01.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_pale01.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_pale02.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_sad01.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_sad02.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_serious01.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_serious02.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_shadow01.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_smile01.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_smile02.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_smile02_nomouth.exp3.json +330 -0
- package/assets/characters/viola_school/Expressions/exp_smile03.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_surprised01.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_surprised01_nomouth.exp3.json +330 -0
- package/assets/characters/viola_school/Expressions/exp_thinking01.exp3.json +1 -0
- package/assets/characters/viola_school/Expressions/exp_thinking01_nomouth.exp3.json +330 -0
- package/assets/characters/viola_school/Motions/mtn_angry01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_angry01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_angry01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_bye01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_bye01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_bye01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_check01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_check01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_check01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_cry01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_cry01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_cry01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_denial01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_denial01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_denial01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_idle01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_idle01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_idle01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_kime01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_kime01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_kime01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_look01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_look01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_look01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_nod01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_nod01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_nod01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_nod02_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_nod02_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_nod02_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_question01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_question01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_question01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_sad01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_sad01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_sad01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_serious01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_serious01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_serious01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_smile01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_smile01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_smile01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_smile02_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_smile02_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_smile02_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_surprised01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_surprised01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_surprised01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_thinking01_C.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_thinking01_L.motion3.json +1 -0
- package/assets/characters/viola_school/Motions/mtn_thinking01_R.motion3.json +1 -0
- package/assets/characters/viola_school/Textures/texture_00.webp +0 -0
- package/assets/characters/viola_school/Textures/texture_01.webp +0 -0
- package/assets/characters/viola_school/adv_live2d_sub_viola_school_winter_hs.moc3 +0 -0
- package/assets/characters/viola_school/adv_live2d_sub_viola_school_winter_hs.model3.json +388 -0
- package/assets/characters/viola_school/adv_live2d_sub_viola_school_winter_hs.physics3.json +1 -0
- package/assets/click/click.mp3 +0 -0
- package/assets/voice/README.txt +139 -0
- package/assets/voice/done-fc.opus +0 -0
- package/assets/voice/done-score.opus +0 -0
- package/assets/voice/idle-common02.opus +0 -0
- package/assets/voice/idle-levelup.opus +0 -0
- package/assets/voice/idle-marukun.opus +0 -0
- package/assets/voice/listening.opus +0 -0
- package/assets/voice/miyako-farewell.opus +0 -0
- package/assets/voice/thinking-comon.opus +0 -0
- package/assets/voice/thinking-gekisou.opus +0 -0
- package/assets/voice/viola-click1.opus +0 -0
- package/assets/voice/viola-click2.opus +0 -0
- package/assets/voice/viola-done1.opus +0 -0
- package/assets/voice/viola-done2.opus +0 -0
- package/assets/voice/viola-done3.opus +0 -0
- package/assets/voice/viola-farewell.opus +0 -0
- package/assets/voice/viola-idle1.opus +0 -0
- package/assets/voice/viola-idle2.opus +0 -0
- package/assets/voice/viola-idle3.opus +0 -0
- package/assets/voice/viola-idle4.opus +0 -0
- package/assets/voice/viola-listening.opus +0 -0
- package/assets/voice/viola-thinking1.opus +0 -0
- package/assets/voice/viola-thinking2.opus +0 -0
- package/assets/voice/viola-thinking3.opus +0 -0
- package/assets/voice/viola-working1.opus +0 -0
- package/assets/voice/viola-working2.opus +0 -0
- package/assets/voice/viola-working3.opus +0 -0
- package/assets/voice/working-combo.opus +0 -0
- package/assets/voice/working-skill.opus +0 -0
- package/assets/voice/working-training.opus +0 -0
- package/cordis.patch.yml +18 -0
- package/lib/client.js +5514 -0
- package/lib/client.live2d.js +67 -0
- package/lib/framing.js +284 -0
- package/lib/index.js +591 -0
- package/lib/machine.js +279 -0
- package/lib/persist.js +183 -0
- package/lib/routes.js +206 -0
- 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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/cordis.patch.yml
ADDED
|
@@ -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
|