接入数字人和调整界面

This commit is contained in:
aixianling
2023-11-09 15:21:33 +08:00
parent 8eb0db8401
commit ad77470063
18 changed files with 290 additions and 115 deletions

View File

@@ -1,10 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<link rel="icon" type="image/svg+xml" href="/vite.svg"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>语言模型聊天</title>
<meta charset="UTF-8"/>
<link rel="icon" type="image/svg+xml" href="/vite.svg"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>语言模型聊天</title>
<script src="/live2d/sdk/live2d.min.js"></script>
<script src="/live2d/sdk/live2dcubismcore.min.js"></script>
</head>
<body>
<div id="app"></div>

View File

@@ -14,6 +14,8 @@
"highlight.js": "^11.8.0",
"jsencrypt": "^3.3.2",
"nanoid": "^4.0.2",
"pixi-live2d-display": "^0.4.0",
"pixi.js": "^6.5.10",
"query-string": "^8.1.0",
"sass": "^1.62.1",
"sass-loader": "^13.2.2",
@@ -21,6 +23,6 @@
},
"devDependencies": {
"@vitejs/plugin-vue": "^4.1.0",
"vite": "^4.3.2"
"vite": "^4.5.0"
}
}

View File

@@ -0,0 +1,45 @@
# Live2D Animator Motion Data
$fps=30.0
$fadein=0
$fadeout=0
PARAM_ANGLEX=-30,-29.952,-29.809,-29.571,-29.249,-28.835,-28.345,-27.777,-27.134,-26.42,-25.638,-24.777,-23.867,-22.883,-21.858,-20.781,-19.655,-18.484,-17.252,-15.999,-14.691,-13.369,-12.018,-10.64,-9.24,-7.821,-6.364,-4.915,-3.434,-1.969,-0.5,0.969,2.434,3.915,5.364,6.821,8.24,9.64,11.018,12.369,13.691,14.999,16.252,17.484,18.655,19.781,20.858,21.883,22.867,23.777,24.638,25.42,26.134,26.777,27.345,27.835,28.249,28.571,28.809,28.952,29,28.952,28.809,28.571,28.249,27.835,27.345,26.777,26.134,25.42,24.638,23.777,22.867,21.883,20.858,19.781,18.655,17.484,16.252,14.999,13.691,12.369,11.018,9.64,8.24,6.821,5.364,3.915,2.434,0.969,-0.5,-1.969,-3.434,-4.915,-6.364,-7.821,-9.24,-10.64,-12.018,-13.369,-14.691,-15.999,-17.252,-18.484,-19.655,-20.781,-21.858,-22.883,-23.867,-24.777,-25.638,-26.42,-27.134,-27.777,-28.345,-28.835,-29.249,-29.571,-29.809,-29.952,-30,-29.952,-29.809,-29.571,-29.249,-28.835,-28.345,-27.777,-27.134,-26.42,-25.638,-24.777,-23.867,-22.883,-21.858,-20.781,-19.655,-18.484,-17.252,-15.999,-14.691,-13.369,-12.018,-10.64,-9.24,-7.821,-6.364,-4.915,-3.434,-1.969,-0.5,0.969,2.434,3.915,5.364,6.821,8.24,9.64,11.018,12.369,13.691,14.999,16.252,17.484,18.655,19.781,20.858,21.883,22.867,23.777,24.638,25.42,26.134,26.777,27.345,27.835,28.249,28.571,28.809,28.952,29,28.952,28.809,28.571,28.249,27.835,27.345,26.777,26.134,25.42,24.638,23.777,22.867,21.883,20.858,19.781,18.655,17.484,16.252,14.999,13.691,12.369,11.018,9.64,8.24,6.821,5.364,3.915,2.434,0.969,-0.5,-1.969,-3.434,-4.915,-6.364,-7.821,-9.24,-10.64,-12.018,-13.369,-14.691,-15.999,-17.252,-18.484,-19.655,-20.781,-21.858,-22.883,-23.867,-24.777,-25.638,-26.42,-27.134,-27.777,-28.345,-28.835,-29.249,-29.571,-29.809,-29.952
PARAM_ANGLEY=0
PARAM_ANGLEZ=-20.631,-21.584,-22.5,-23.376,-24.21,-25.01,-25.751,-26.451,-27.088,-27.669,-28.191,-28.653,-29.052,-29.389,-29.651,-29.845,-29.961,-30,-29.961,-29.845,-29.651,-29.389,-29.052,-28.653,-28.191,-27.669,-27.088,-26.451,-25.751,-25.01,-24.21,-23.376,-22.5,-21.584,-20.631,-19.629,-18.609,-17.545,-16.47,-15.37,-14.25,-13.111,-11.956,-10.77,-9.591,-8.387,-7.195,-6,-4.805,-3.613,-2.409,-1.23,-0.044,1.111,2.25,3.37,4.47,5.545,6.609,7.629,8.631,9.584,10.5,11.376,12.21,13.01,13.751,14.451,15.088,15.669,16.191,16.653,17.052,17.389,17.651,17.845,17.961,18,17.961,17.845,17.651,17.389,17.052,16.653,16.191,15.669,15.088,14.451,13.751,13.01,12.21,11.376,10.5,9.584,8.631,7.629,6.609,5.545,4.47,3.37,2.25,1.111,-0.044,-1.23,-2.409,-3.613,-4.805,-6,-7.195,-8.387,-9.591,-10.77,-11.956,-13.111,-14.25,-15.37,-16.47,-17.545,-18.609,-19.629,-20.631,-21.584,-22.5,-23.376,-24.21,-25.01,-25.751,-26.451,-27.088,-27.669,-28.191,-28.653,-29.052,-29.389,-29.651,-29.845,-29.961,-30,-29.961,-29.845,-29.651,-29.389,-29.052,-28.653,-28.191,-27.669,-27.088,-26.451,-25.751,-25.01,-24.21,-23.376,-22.5,-21.584,-20.631,-19.629,-18.609,-17.545,-16.47,-15.37,-14.25,-13.111,-11.956,-10.77,-9.591,-8.387,-7.195,-6,-4.805,-3.613,-2.409,-1.23,-0.044,1.111,2.25,3.37,4.47,5.545,6.609,7.629,8.631,9.584,10.5,11.376,12.21,13.01,13.751,14.451,15.088,15.669,16.191,16.653,17.052,17.389,17.651,17.845,17.961,18,17.972,17.892,17.756,17.569,17.332,17.041,16.707,16.317,15.879,15.404,14.873,14.296,13.688,13.024,12.332,11.585,10.796,9.985,9.118,8.213,7.291,6.314,5.323,4.277,3.197,2.109,0.966,-0.207,-1.384,-2.615,-3.847,-5.132,-6.442,-7.749,-9.108,-10.49,-11.864,-13.289,-14.718,-16.167,-17.648,-19.116
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.966,0.873,0.74,0.582,0.418,0.26,0.127,0.034,0,0.055,0.198,0.395,0.605,0.802,0.945,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.966,0.873,0.74,0.582,0.418,0.26,0.127,0.034,0,0.055,0.198,0.395,0.605,0.802,0.945,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
PARAM_MOUTH_OPEN_Y=0
PARAM_BODY_ANGLEX=-10,-9.984,-9.935,-9.855,-9.745,-9.605,-9.439,-9.246,-9.029,-8.786,-8.521,-8.23,-7.921,-7.588,-7.24,-6.875,-6.493,-6.096,-5.679,-5.254,-4.81,-4.362,-3.904,-3.437,-2.963,-2.482,-1.988,-1.496,-0.995,-0.498,0,0.498,0.995,1.496,1.988,2.482,2.963,3.437,3.904,4.362,4.81,5.254,5.679,6.096,6.493,6.875,7.24,7.588,7.921,8.23,8.521,8.786,9.029,9.246,9.439,9.605,9.745,9.855,9.935,9.984,10,9.984,9.935,9.855,9.745,9.605,9.439,9.246,9.029,8.786,8.521,8.23,7.921,7.588,7.24,6.875,6.493,6.096,5.679,5.254,4.81,4.362,3.904,3.437,2.963,2.482,1.988,1.496,0.995,0.498,0,-0.498,-0.995,-1.496,-1.988,-2.482,-2.963,-3.437,-3.904,-4.362,-4.81,-5.254,-5.679,-6.096,-6.493,-6.875,-7.24,-7.588,-7.921,-8.23,-8.521,-8.786,-9.029,-9.246,-9.439,-9.605,-9.745,-9.855,-9.935,-9.984,-10,-9.984,-9.935,-9.855,-9.745,-9.605,-9.439,-9.246,-9.029,-8.786,-8.521,-8.23,-7.921,-7.588,-7.24,-6.875,-6.493,-6.096,-5.679,-5.254,-4.81,-4.362,-3.904,-3.437,-2.963,-2.482,-1.988,-1.496,-0.995,-0.498,0,0.498,0.995,1.496,1.988,2.482,2.963,3.437,3.904,4.362,4.81,5.254,5.679,6.096,6.493,6.875,7.24,7.588,7.921,8.23,8.521,8.786,9.029,9.246,9.439,9.605,9.745,9.855,9.935,9.984,10,9.984,9.935,9.855,9.745,9.605,9.439,9.246,9.029,8.786,8.521,8.23,7.921,7.588,7.24,6.875,6.493,6.096,5.679,5.254,4.81,4.362,3.904,3.437,2.963,2.482,1.988,1.496,0.995,0.498,0,-0.498,-0.995,-1.496,-1.988,-2.482,-2.963,-3.437,-3.904,-4.362,-4.81,-5.254,-5.679,-6.096,-6.493,-6.875,-7.24,-7.588,-7.921,-8.23,-8.521,-8.786,-9.029,-9.246,-9.439,-9.605,-9.745,-9.855,-9.935,-9.984
PARAM_BODY_ANGLE_Y=0,0.498,0.995,1.496,1.988,2.482,2.963,3.437,3.904,4.362,4.81,5.254,5.679,6.096,6.493,6.875,7.24,7.588,7.921,8.23,8.521,8.786,9.029,9.246,9.439,9.605,9.745,9.855,9.935,9.984,10,9.984,9.935,9.855,9.745,9.605,9.439,9.246,9.029,8.786,8.521,8.23,7.921,7.588,7.24,6.875,6.493,6.096,5.679,5.254,4.81,4.362,3.904,3.437,2.963,2.482,1.988,1.496,0.995,0.498,0,-0.498,-0.995,-1.496,-1.988,-2.482,-2.963,-3.437,-3.904,-4.362,-4.81,-5.254,-5.679,-6.096,-6.493,-6.875,-7.24,-7.588,-7.921,-8.23,-8.521,-8.786,-9.029,-9.246,-9.439,-9.605,-9.745,-9.855,-9.935,-9.984,-10,-9.984,-9.935,-9.855,-9.745,-9.605,-9.439,-9.246,-9.029,-8.786,-8.521,-8.23,-7.921,-7.588,-7.24,-6.875,-6.493,-6.096,-5.679,-5.254,-4.81,-4.362,-3.904,-3.437,-2.963,-2.482,-1.988,-1.496,-0.995,-0.498,0,0.498,0.995,1.496,1.988,2.482,2.963,3.437,3.904,4.362,4.81,5.254,5.679,6.096,6.493,6.875,7.24,7.588,7.921,8.23,8.521,8.786,9.029,9.246,9.439,9.605,9.745,9.855,9.935,9.984,10,9.984,9.935,9.855,9.745,9.605,9.439,9.246,9.029,8.786,8.521,8.23,7.921,7.588,7.24,6.875,6.493,6.096,5.679,5.254,4.81,4.362,3.904,3.437,2.963,2.482,1.988,1.496,0.995,0.498,0,-0.498,-0.995,-1.496,-1.988,-2.482,-2.963,-3.437,-3.904,-4.362,-4.81,-5.254,-5.679,-6.096,-6.493,-6.875,-7.24,-7.588,-7.921,-8.23,-8.521,-8.786,-9.029,-9.246,-9.439,-9.605,-9.745,-9.855,-9.935,-9.984,-10,-9.989,-9.956,-9.9,-9.822,-9.721,-9.599,-9.455,-9.289,-9.101,-8.891,-8.655,-8.401,-8.12,-7.821,-7.5,-7.157,-6.792,-6.399,-5.989,-5.551,-5.097,-4.621,-4.123,-3.603,-3.061,-2.488,-1.902,-1.284,-0.653
PARAM_HAIR_FRONT=-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998
PARAM_HAIR_FRONT_2=-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998
PARAM_HAIR_FRONT_3=-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998
PARAM_HAIR_BACK=-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998
PARAM_HAIR_BACK_Y=0,0.065,0.128,0.19,0.249,0.306,0.36,0.412,0.462,0.51,0.555,0.599,0.64,0.679,0.716,0.75,0.782,0.812,0.84,0.866,0.889,0.91,0.929,0.946,0.96,0.972,0.982,0.99,0.996,0.999,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.999,-0.996,-0.99,-0.982,-0.972,-0.96,-0.946,-0.929,-0.91,-0.889,-0.866,-0.84,-0.812,-0.782,-0.75,-0.716,-0.679,-0.64,-0.599,-0.555,-0.51,-0.462,-0.412,-0.36,-0.306,-0.249,-0.19,-0.128,-0.065,0,0.065,0.128,0.19,0.249,0.306,0.36,0.412,0.462,0.51,0.555,0.599,0.64,0.679,0.716,0.75,0.782,0.812,0.84,0.866,0.889,0.91,0.929,0.946,0.96,0.972,0.982,0.99,0.996,0.999,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.999,-0.996,-0.99,-0.982,-0.972,-0.96,-0.946,-0.929,-0.91,-0.889,-0.866,-0.84,-0.812,-0.782,-0.75,-0.716,-0.679,-0.64,-0.599,-0.555,-0.51,-0.462,-0.412,-0.36,-0.306,-0.249,-0.19,-0.128,-0.065
PARAM_SKIRT=-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.999,0.996,0.991,0.984,0.975,0.964,0.951,0.936,0.92,0.902,0.882,0.861,0.838,0.813,0.787,0.759,0.729,0.699,0.666,0.632,0.597,0.561,0.523,0.484,0.444,0.403,0.36,0.316,0.272,0.226,0.179,0.131,0.083,0.033,-0.017,-0.068,-0.12,-0.173,-0.226,-0.28,-0.335,-0.39,-0.446,-0.503,-0.56,-0.618,-0.676,-0.734,-0.793
PARAM_SKIRT_Y=-0.555,-0.51,-0.462,-0.412,-0.36,-0.306,-0.249,-0.19,-0.128,-0.065,0,0.065,0.128,0.19,0.249,0.306,0.36,0.412,0.462,0.51,0.555,0.599,0.64,0.679,0.716,0.75,0.782,0.812,0.84,0.866,0.889,0.91,0.929,0.946,0.96,0.972,0.982,0.99,0.996,0.999,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.999,-0.996,-0.99,-0.982,-0.972,-0.96,-0.946,-0.929,-0.91,-0.889,-0.866,-0.84,-0.812,-0.782,-0.75,-0.716,-0.679,-0.64,-0.599,-0.555,-0.51,-0.462,-0.412,-0.36,-0.306,-0.249,-0.19,-0.128,-0.065,0,0.065,0.128,0.19,0.249,0.306,0.36,0.412,0.462,0.51,0.555,0.599,0.64,0.679,0.716,0.75,0.782,0.812,0.84,0.866,0.889,0.91,0.929,0.946,0.96,0.972,0.982,0.99,0.996,0.999,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.999,-0.996,-0.991,-0.984,-0.975,-0.964,-0.951,-0.935,-0.917,-0.897,-0.874,-0.849,-0.821,-0.791,-0.759,-0.723,-0.686,-0.644,-0.601
PARAM_SLEEVE_1=-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.999,0.995,0.99,0.982,0.972,0.959,0.945,0.929,0.91,0.889,0.867,0.842,0.816,0.788,0.757,0.726,0.691,0.656,0.619,0.58,0.539,0.497,0.453,0.408,0.361,0.313,0.263,0.212,0.159,0.105,0.05,-0.006,-0.065,-0.123,-0.184,-0.245,-0.308,-0.372
PARAM_SLEEVE_2=0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.999,0.996,0.99,0.983,0.973,0.96,0.946,0.929,0.911,0.89,0.866,0.84,0.813,0.783,0.75,0.715,0.678,0.639,0.597,0.553,0.506,0.457,0.407,0.353,0.297,0.239,0.178,0.115
PARAM_CLOTHES_1=-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998
PARAM_CLOTHES_2=-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.999,0.996,0.99,0.983,0.974,0.962,0.949,0.934,0.917,0.898,0.877,0.854,0.83,0.804,0.777,0.748,0.717,0.685,0.651,0.615,0.579,0.54,0.501,0.46,0.419,0.375,0.33,0.285,0.237,0.19,0.141,0.091,0.04,-0.012,-0.065,-0.119,-0.173,-0.229,-0.285,-0.342,-0.4,-0.458,-0.518,-0.577,-0.637,-0.697
PARAM_CLOTHES_3=-0.484,-0.528,-0.57,-0.612,-0.651,-0.689,-0.725,-0.76,-0.793,-0.824,-0.853,-0.879,-0.903,-0.925,-0.944,-0.961,-0.975,-0.986,-0.994,-0.998,-1,-0.998,-0.994,-0.986,-0.975,-0.961,-0.944,-0.925,-0.903,-0.879,-0.853,-0.824,-0.793,-0.76,-0.725,-0.689,-0.651,-0.612,-0.57,-0.528,-0.484,-0.439,-0.393,-0.347,-0.3,-0.252,-0.203,-0.154,-0.104,-0.055,-0.005,0.045,0.094,0.144,0.193,0.242,0.29,0.337,0.383,0.429,0.474,0.518,0.56,0.602,0.641,0.679,0.715,0.75,0.783,0.814,0.843,0.869,0.893,0.915,0.934,0.951,0.965,0.976,0.984,0.988,0.99,0.988,0.984,0.976,0.965,0.951,0.934,0.915,0.893,0.869,0.843,0.814,0.783,0.75,0.715,0.679,0.641,0.602,0.56,0.518,0.474,0.429,0.383,0.337,0.29,0.242,0.193,0.144,0.094,0.045,-0.005,-0.055,-0.104,-0.154,-0.203,-0.252,-0.3,-0.347,-0.393,-0.439,-0.484,-0.528,-0.57,-0.612,-0.651,-0.689,-0.725,-0.76,-0.793,-0.824,-0.853,-0.879,-0.903,-0.925,-0.944,-0.961,-0.975,-0.986,-0.994,-0.998,-1,-0.998,-0.994,-0.986,-0.975,-0.961,-0.944,-0.925,-0.903,-0.879,-0.853,-0.824,-0.793,-0.76,-0.725,-0.689,-0.651,-0.612,-0.57,-0.528,-0.484,-0.439,-0.393,-0.347,-0.3,-0.252,-0.203,-0.154,-0.104,-0.055,-0.005,0.045,0.094,0.144,0.193,0.242,0.29,0.337,0.383,0.429,0.474,0.518,0.56,0.602,0.641,0.679,0.715,0.75,0.783,0.814,0.843,0.869,0.893,0.915,0.934,0.951,0.965,0.976,0.984,0.988,0.99,0.989,0.985,0.98,0.972,0.962,0.95,0.936,0.919,0.901,0.881,0.859,0.834,0.808,0.78,0.75,0.719,0.686,0.65,0.614,0.576,0.536,0.495,0.451,0.406,0.361,0.313,0.265,0.214,0.162,0.109,0.055,0,-0.057,-0.115,-0.173,-0.233,-0.294,-0.357,-0.42
PARAM_ARM_L=-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.998,0.994,0.985,0.975,0.96,0.944,0.925,0.903,0.879,0.852,0.823,0.792,0.759,0.724,0.688,0.649,0.61,0.568,0.525,0.481,0.436,0.39,0.344,0.296,0.248,0.199,0.15,0.099,0.05,0,-0.05,-0.099,-0.15,-0.199,-0.248,-0.296,-0.344,-0.39,-0.436,-0.481,-0.525,-0.568,-0.61,-0.649,-0.688,-0.724,-0.759,-0.792,-0.823,-0.852,-0.879,-0.903,-0.925,-0.944,-0.96,-0.975,-0.985,-0.994,-0.998,-1,-0.998,-0.994,-0.985,-0.975,-0.96,-0.944,-0.925,-0.903,-0.879,-0.852,-0.823,-0.792,-0.759,-0.724,-0.688,-0.649,-0.61,-0.568,-0.525,-0.481,-0.436,-0.39,-0.344,-0.296,-0.248,-0.199,-0.15,-0.099,-0.05,0,0.05,0.099,0.15,0.199,0.248,0.296,0.344,0.39,0.436,0.481,0.525,0.568,0.61,0.649,0.688,0.724,0.759,0.792,0.823,0.852,0.879,0.903,0.925,0.944,0.96,0.975,0.985,0.994,0.998,1,0.999,0.995,0.99,0.982,0.972,0.96,0.946,0.93,0.912,0.892,0.87,0.846,0.82,0.792,0.764,0.732,0.699,0.665,0.629,0.591,0.552,0.511,0.469,0.426,0.38,0.334,0.286,0.237,0.187,0.135,0.082,0.028,-0.027,-0.083,-0.141,-0.198,-0.258,-0.318,-0.38,-0.441,-0.504
PARAM_ARM_2=0.144,0.094,0.045,-0.005,-0.055,-0.104,-0.154,-0.203,-0.252,-0.3,-0.347,-0.393,-0.439,-0.484,-0.528,-0.57,-0.612,-0.651,-0.689,-0.725,-0.76,-0.793,-0.824,-0.853,-0.879,-0.903,-0.925,-0.944,-0.961,-0.975,-0.986,-0.994,-0.998,-1,-0.998,-0.994,-0.986,-0.975,-0.961,-0.944,-0.925,-0.903,-0.879,-0.853,-0.824,-0.793,-0.76,-0.725,-0.689,-0.651,-0.612,-0.57,-0.528,-0.484,-0.439,-0.393,-0.347,-0.3,-0.252,-0.203,-0.154,-0.104,-0.055,-0.005,0.045,0.094,0.144,0.193,0.242,0.29,0.337,0.383,0.429,0.474,0.518,0.56,0.602,0.641,0.679,0.715,0.75,0.783,0.814,0.843,0.869,0.893,0.915,0.934,0.951,0.965,0.976,0.984,0.988,0.99,0.988,0.984,0.976,0.965,0.951,0.934,0.915,0.893,0.869,0.843,0.814,0.783,0.75,0.715,0.679,0.641,0.602,0.56,0.518,0.474,0.429,0.383,0.337,0.29,0.242,0.193,0.144,0.094,0.045,-0.005,-0.055,-0.104,-0.154,-0.203,-0.252,-0.3,-0.347,-0.393,-0.439,-0.484,-0.528,-0.57,-0.612,-0.651,-0.689,-0.725,-0.76,-0.793,-0.824,-0.853,-0.879,-0.903,-0.925,-0.944,-0.961,-0.975,-0.986,-0.994,-0.998,-1,-0.998,-0.994,-0.986,-0.975,-0.961,-0.944,-0.925,-0.903,-0.879,-0.853,-0.824,-0.793,-0.76,-0.725,-0.689,-0.651,-0.612,-0.57,-0.528,-0.484,-0.439,-0.393,-0.347,-0.3,-0.252,-0.203,-0.154,-0.104,-0.055,-0.005,0.045,0.094,0.144,0.193,0.242,0.29,0.337,0.383,0.429,0.474,0.518,0.56,0.602,0.641,0.679,0.715,0.75,0.783,0.814,0.843,0.869,0.893,0.915,0.934,0.951,0.965,0.976,0.984,0.988,0.99,0.989,0.986,0.981,0.973,0.964,0.952,0.938,0.922,0.903,0.882,0.859,0.833,0.805,0.775,0.742,0.706,0.668,0.628,0.585,0.539,0.491,0.44,0.387,0.33,0.271,0.209
VISIBLE:PARTS_01_SKETCH=1
VISIBLE:PARTS_01_BACKGROUND=1
VISIBLE:PARTS_01_BODY=1
VISIBLE:PARTS_01_NECK=1
VISIBLE:PARTS_01_HAIR_BACK_001=1
VISIBLE:PARTS_01_HAIR_SIDE_001=1
VISIBLE:PARTS_01_HAIR_FRONT_001=1
VISIBLE:PARTS_01_EAR_001=1
VISIBLE:PARTS_01_NOSE_001=1
VISIBLE:PARTS_01_MOUTH_001=1
VISIBLE:PARTS_01_BROW_001=1
VISIBLE:PARTS_01_EYE_BALL_001=1
VISIBLE:PARTS_01_EYE_001=1
VISIBLE:PARTS_01_FACE_001=1
VISIBLE:ROUGH=1
VISIBLE:PSD=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

View File

@@ -0,0 +1,19 @@
{
"version": "Sample 1.0.0",
"model": "model.moc",
"textures": [
"model.1024/texture_00.png"
],
"motions": {
"idle": [{
"file": "daiji_idle_01.mtn","fade_in":0,"fade_out":0
}],
"": [{
"file": "daiji_idle_01.mtn","fade_in":0,"fade_out":0
}]
},
"hit_areas": [{
"name": "body",
"id": "D_REF_BODY"
}]
}

2
public/live2d/sdk/live2d.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,6 @@
<template>
<chat class="fill" :config="setting" :showSettings="showSettings"
<meta-human/>
<chat class="fill mar-l8" :config="setting" :showSettings="showSettings"
@setting="showSettings=!showSettings"/>
<settings v-show="showSettings" v-model="setting"/>
</template>
@@ -7,16 +8,17 @@
<script>
import Chat from "./components/chat";
import Settings from "./components/settings";
import {ChatGPT} from "./utils/models";
import {Alpaca, ChatGLM, ChatGPT} from "./utils/models";
import MetaHuman from "./components/metaHuman.vue";
export default {
name: 'App',
components: {Settings, Chat},
components: {MetaHuman, Settings, Chat},
data() {
return {
showSettings: false,
setting: {
model: new ChatGPT(),
model: new ChatGLM(),
stream: true
},
}

View File

@@ -3,7 +3,6 @@
<div class="chat-wrapper" v-for="item in list" :key="item.id">
<div class="chat-friend" v-if="item.uid !== 'me'">
<div class="chat-text" v-if="item.chatType == 0">
<icon-copy @click="copy(item.msg, '已复制')"/>
<v-md-preview :text="optimizeMessage(item.msg)"/>
</div>
<div class="chat-img" v-if="item.chatType == 1">
@@ -13,17 +12,18 @@
<div class="info-time">
<img :src="item.avatar" alt=""/>
<span>{{ item.name }}</span>
<span>{{ item.time }}</span>
<span class="time">{{ item.time }}</span>
<icon-copy @click="copy(item.msg, '已复制')"/>
</div>
</div>
<div class="chat-me" v-else>
<div class="chat-text" v-if="item.chatType == 0">
<icon-copy @click="copy(item.msg, '已复制')"/>
<span v-text="item.msg"/>
</div>
<div class="info-time">
<div class="info-time right">
<icon-copy @click="copy(item.msg, '已复制')"/>
<span>{{ item.name }}</span>
<span>{{ item.time }}</span>
<span class="time">{{ item.time }}</span>
<img :src="item.avatar" alt=""/>
</div>
</div>
@@ -110,32 +110,6 @@ export default {
border-radius: 4px;
}
}
.info-time {
margin: 10px 0;
color: #fff;
font-size: 14px;
display: flex;
justify-content: flex-start;
img {
width: 30px;
height: 30px;
border-radius: 50%;
vertical-align: middle;
margin-right: 10px;
}
span {
line-height: 30px;
}
span:last-child {
color: rgb(101, 104, 115);
margin-left: 10px;
vertical-align: middle;
}
}
}
.chat-me {
@@ -165,29 +139,33 @@ export default {
border-radius: 4px;
}
}
}
.info-time {
margin: 10px 0;
color: #fff;
font-size: 14px;
display: flex;
.info-time {
margin: 10px 0;
color: #fff;
font-size: 14px;
display: flex;
justify-content: flex-start;
align-items: center;
gap: 8px;
&.right {
justify-content: flex-end;
}
img {
width: 30px;
height: 30px;
border-radius: 50%;
vertical-align: middle;
margin-left: 10px;
}
img {
width: 30px;
height: 30px;
border-radius: 50%;
vertical-align: middle;
}
span {
line-height: 30px;
}
span {
line-height: 30px;
span:first-child {
&.time {
color: rgb(101, 104, 115);
margin-right: 10px;
vertical-align: middle;
}
}

View File

@@ -0,0 +1,77 @@
<script>
import * as PIXI from "pixi.js";
import {load} from "../utils/tools.js";
import {Live2DModel} from "pixi-live2d-display";
window.PIXI = PIXI;
export default {
name: "metaHuman",
data() {
return {
ins: null
}
},
methods: {
initLive2d() {
load(window.Live2D && window.Live2DCubismCore)
.then(() => Live2DModel.from("/live2d/ots14_1203/ots14_1203.model.json"))
.then(model => {
this.ins.stage.addChild(model)
model.rotation = Math.PI;
model.skew.x = Math.PI;
model.x = 400
model.y = 200
model.scale.set(0.16, 0.16);
// interaction
model.on('hit', (hitAreas) => {
if (hitAreas.includes('body')) {
model.motion('tap_body');
}
});
this.draggable(model)
}).catch(err => console.log(err));
},
draggable(model) {
model.buttonMode = true;
model.on("pointerdown", (e) => {
model.dragging = true;
model._pointerX = e.data.global.x - model.x;
model._pointerY = e.data.global.y - model.y;
});
model.on("pointermove", (e) => {
if (model.dragging) {
model.position.x = e.data.global.x - model._pointerX;
model.position.y = e.data.global.y - model._pointerY;
}
});
model.on("pointerupoutside", () => (model.dragging = false));
model.on("pointerup", () => (model.dragging = false));
}
},
mounted() {
this.$nextTick(() => {
this.ins = new PIXI.Application({
autoStart: true,
resizeTo: this.$el,
backgroundAlpha: 0,
})
this.$el.appendChild(this.ins.view)
this.initLive2d()
})
}
}
</script>
<template>
<section class="metaHuman">
</section>
</template>
<style scoped lang="scss">
.metaHuman {
width: 375px;
}
</style>

View File

@@ -73,7 +73,7 @@ export default {
},
getModelAccount(c = 0) {
const ai = this.settings.model
if (ai.apiKey) {
if (ai.apiKey && !this.isLocal) {
this.loadingAccount = true
ai.getAccount().then(v => this.settings.account = v).finally(() => this.loadingAccount = false)
} else if (c < 5) setTimeout(() => this.getModelAccount(++c), 1000)

View File

@@ -18,5 +18,8 @@ export default {
<style lang="scss" scoped>
.iconCopy {
height: 22px;
width: 22px;
flex-shrink: 0;
}
</style>

View File

@@ -7,10 +7,10 @@ import 'element-plus/dist/index.css'
import Hljs from "highlight.js"
import {createApp} from 'vue'
import App from './App.vue'
import axios from "./utils/axios";
import http from "./utils/http.js";
const app = createApp(App)
app.config.globalProperties.$http = axios
app.config.globalProperties.$http = http
VMdPreview.use(githubTheme, {Hljs})
app.use(ElementPlus)
app.use(VMdPreview);

View File

@@ -1,7 +1,10 @@
import qs from "query-string"
const ins = {
post: (url, body, config) => fetch(qs.stringifyUrl({url, query: config.params}), {...config, method: "POST", body}),
post: (url, body, config = {}) => {
const {params: query} = config
return fetch(qs.stringifyUrl({url, query}), {...config, method: "POST", body})
},
get: (url, config) => fetch(qs.stringifyUrl({url, query: config.params}), {...config, method: "GET"}),
}
export default ins

View File

@@ -1,6 +1,6 @@
import {dayjs} from "element-plus";
import {nanoid} from "nanoid";
import axios from "./axios";
import http from "./http.js";
import {JSEncrypt} from "jsencrypt";
class BaseModel {
@@ -37,7 +37,7 @@ export class ChatGPT extends BaseModel {
async chat(history) {
const messages = history.map(e => ({role: e.role, content: e.msg}))
return await axios.post(ChatGPT.base + "/v1/chat/completions", JSON.stringify({messages, model: this.id}), {
return await http.post(ChatGPT.base + "/v1/chat/completions", JSON.stringify({messages, model: this.id}), {
headers: {
Authorization: 'Bearer ' + this.apiKey, "Content-Type": "application/json", Accept: "application/json",
},
@@ -46,7 +46,7 @@ export class ChatGPT extends BaseModel {
async chatStream(history) {
const messages = history.map(e => ({role: e.role, content: e.msg}))
return await axios.post(ChatGPT.base + "/v1/chat/completions", JSON.stringify({
return await http.post(ChatGPT.base + "/v1/chat/completions", JSON.stringify({
messages,
model: this.id,
stream: true
@@ -59,12 +59,12 @@ export class ChatGPT extends BaseModel {
async getAccount() {
const {headers} = this
const usages = await axios.get(ChatGPT.base + "/v1/dashboard/billing/subscription", {headers}).then(res => res.json());
const usages = await http.get(ChatGPT.base + "/v1/dashboard/billing/subscription", {headers}).then(res => res.json());
const endDate = usages.access_until
if (endDate) {
const startDate = new Date(endDate - 90 * 24 * 60 * 60);
const formattedDate = time => dayjs(time).format("YYYY-MM-DD")
return await axios.get(`${ChatGPT.base}/v1/dashboard/billing/usage?start_date=${formattedDate(startDate * 1000)}&end_date=${formattedDate(endDate * 1000)}`, {headers}).then(res => res.json()).then(res => {
return await http.get(`${ChatGPT.base}/v1/dashboard/billing/usage?start_date=${formattedDate(startDate * 1000)}&end_date=${formattedDate(endDate * 1000)}`, {headers}).then(res => res.json()).then(res => {
usages.total_usage = res.total_usage
const names = usages.account_name.split(" ")
return {
@@ -133,7 +133,7 @@ export class ChatGLM extends BaseModel {
async getToken() {
if (this.apiKey) return await this.apiKey
const encrypted = ChatGLM.encrypt(ChatGLM.publicKey)
return await axios.post(ChatGLM.base + "/passApiToken/createApiToken", JSON.stringify({
return await http.post(ChatGLM.base + "/passApiToken/createApiToken", JSON.stringify({
apiKey: "4e3ceff669c143dfa09e763663aa72cd",
encrypted
}), {
@@ -145,7 +145,7 @@ export class ChatGLM extends BaseModel {
const history = messages.map(e => e.msg)
history.pop()
const prompt = history.pop()
return await axios.post(ChatGLM.base + "/model/v1/open/engines/chatGLM/chatGLM", JSON.stringify({
return await http.post(ChatGLM.base + "/model/v1/open/engines/chatGLM/chatGLM", JSON.stringify({
history, prompt, temperature: 1, top_p: 0.6, requestTaskNo: this.taskId
}), {headers: this.headers}).then(res => res.json()).then(data => {
if (data?.data.taskStatus == 'PROCESSING') {
@@ -157,7 +157,7 @@ export class ChatGLM extends BaseModel {
}
async getChatResult(taskOrderNo) {
return await axios.get(ChatGLM.base + `/request-task/query-request-task-result/${taskOrderNo}`, {headers: this.headers}).then(res => res.json()).then(data => {
return await http.get(ChatGLM.base + `/request-task/query-request-task-result/${taskOrderNo}`, {headers: this.headers}).then(res => res.json()).then(data => {
if (data?.data.taskStatus == 'PROCESSING') {
return this.getChatResult(data.data.taskOrderNo)
} else {
@@ -171,7 +171,7 @@ export class ChatGLM extends BaseModel {
history.pop()
const prompt = history.pop()
const url = ChatGLM.base + "/model/v1/open/engines/sse/chatGLM/chatGLM"
return await axios.post(url, JSON.stringify({
return await http.post(url, JSON.stringify({
history, prompt, temperature: 0.2, requestTaskNo: this.taskId
}), {
headers: this.headers,
@@ -186,7 +186,7 @@ export class ChatGLM extends BaseModel {
}
async getAccount() {
const usages = await axios.get("https://open.bigmodel.ai/api/paas/account/query-customer-account-report", {headers: this.headers}).then(res => res.json());
const usages = await http.get("https://open.bigmodel.ai/api/paas/account/query-customer-account-report", {headers: this.headers}).then(res => res.json());
if (usages.code == 200) {
const {data} = usages
return {
@@ -216,7 +216,7 @@ export class ChatGLM extends BaseModel {
* 集成私有的Alpaca
*/
export class Alpaca extends BaseModel {
static base = "https://testai.cunwuyun.cn"
static base = "https://alpaca7b.aceykubbo.workers.dev"
static avatar = "https://cdn.cunwuyun.cn/img/logo.svg"
static name = "Alpaca"
static id = "alpaca-7b-plus"
@@ -230,7 +230,7 @@ export class Alpaca extends BaseModel {
async chat(history) {
const messages = history.map(e => ({role: e.role, content: e.msg}))
return await axios.post(Alpaca.base + "/v1/chat/completions", JSON.stringify({messages, model: this.id}), {
return await http.post(Alpaca.base + "/v1/chat/completions", JSON.stringify({messages, model: this.id}), {
headers: {
Authorization: 'Bearer ' + this.apiKey, "Content-Type": "application/json", Accept: "application/json",
},
@@ -238,51 +238,57 @@ export class Alpaca extends BaseModel {
}
async chatStream(history) {
const messages = history.map(e => ({role: e.role, content: e.msg}))
return await axios.post(Alpaca.base + "/v1/chat/completions", JSON.stringify({
messages,
model: this.id,
stream: true
}), {
headers: {
Authorization: 'Bearer ' + this.apiKey, "Content-Type": "application/json", Accept: "application/json",
},
}).then(res => res?.body?.getReader());
const prompt = history.map(e => `\n\n### ${e.role}:${e.msg}`).join("")
return await http.post(Alpaca.base + "/completion", JSON.stringify({
prompt,
batch_size: 128,
temperature: 0.2,
top_k: 40,
top_p: 0.9,
n_keep: -1,
n_predict: 2048,
stop: ["### user:\n\n"], // when detect this, stop completion
exclude: [], // no show in the completion
threads: 8,
as_loop: true, // use this to request the completion token by token
interactive: true, // enable the detection of a stop word
})).then(res => res?.text());
}
streamOutput(reader, chat) {
return reader.read().then(({done, value}) => {
if (done) {
return;
}
if (!chat.reminder) {
chat.reminder = ""
}
let decode = new TextDecoder().decode(value)
decode = chat.reminder + decode
let decodedArray = decode.split("data: ");
let longstr = "";
decodedArray.forEach(decoded => {
decoded = decoded.trim();
try {
if (longstr != "") {
decoded = longstr + decoded;
longstr = "";
}
} catch (e) {
longstr = decoded;
decoded = "";
}
if (!!decoded && decoded !== "[DONE]") {
const choices = JSON.parse(decoded).choices
if (choices?.length > 0) {
const response = choices[0].delta.content || "";
chat.msg += response
}
}
})
return this.streamOutput(reader, chat)
})
console.log(reader)
// return reader.read().then(({done, value}) => {
// if (done) {
// return;
// }
// if (!chat.reminder) {
// chat.reminder = ""
// }
// let decode = new TextDecoder().decode(value)
// decode = chat.reminder + decode
// let decodedArray = decode.split("data: ");
// let longstr = "";
// decodedArray.forEach(decoded => {
// decoded = decoded.trim();
// try {
// if (longstr != "") {
// decoded = longstr + decoded;
// longstr = "";
// }
// } catch (e) {
// longstr = decoded;
// decoded = "";
// }
// if (!!decoded && decoded !== "[DONE]") {
// const choices = JSON.parse(decoded).choices
// if (choices?.length > 0) {
// const response = choices[0].delta.content || "";
// chat.msg += response
// }
// }
// })
// return this.streamOutput(reader, chat)
// })
}
}

View File

@@ -29,3 +29,17 @@ export function copyToClipboard(content) {
* @returns {any}
*/
export const scopy = (any = null) => JSON.parse(JSON.stringify(any))
export const load = (ctx, params = {c: 0, delay: 500}) => {
if (ctx) {
return Promise.resolve(ctx)
} else if (params.c < 10) {
return new Promise(resolve => setTimeout(() => resolve(load({...params, c: ++params.c}), params.delay)))
} else return Promise.reject("无法加载内容")
}
export const addJs = url => {
const script = document.createElement("script")
script.src = url
document.body.appendChild(script)
}

13
src/utils/worker.js Normal file
View File

@@ -0,0 +1,13 @@
export default {
async fetch(request, env) {
const url = new URL(request.url);
const pt = request.headers.get("Proxy-Authenticate")
url.host = pt || "testai.cunwuyun.cn"
return fetch(url, {
headers: request.headers,
method: request.method,
body: request.body,
redirect: 'follow'
});
}
}