diff --git a/client/demo_so-vits-svc_40v2_c/dist/assets/settings/amitaro/amitaro.psd b/client/demo_so-vits-svc_40v2_c/dist/assets/settings/amitaro/amitaro.psd new file mode 100644 index 00000000..c25af31d Binary files /dev/null and b/client/demo_so-vits-svc_40v2_c/dist/assets/settings/amitaro/amitaro.psd differ diff --git a/client/demo_so-vits-svc_40v2_c/dist/assets/settings/amitaro/motion.json b/client/demo_so-vits-svc_40v2_c/dist/assets/settings/amitaro/motion.json new file mode 100644 index 00000000..1f18caab --- /dev/null +++ b/client/demo_so-vits-svc_40v2_c/dist/assets/settings/amitaro/motion.json @@ -0,0 +1,40 @@ +[ + { "mode": "normal", "z_index": 0, "number": 10, "layer_path": "ROOT_全身" }, + { "mode": "normal", "z_index": 1, "number": 500, "layer_path": "ROOT_!目_*通常" }, + { "mode": "normal", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*通常→" }, + { "mode": "normal", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*微笑" }, + { "mode": "normal", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*∩∩" }, + { "mode": "normal", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*微笑" }, + { "mode": "normal", "z_index": 2, "number": 800, "layer_path": "ROOT_!口_*にこ" }, + { "mode": "normal", "z_index": 2, "number": 100, "layer_path": "ROOT_!口_*おすまし" }, + { "mode": "normal", "z_index": 3, "number": 1000, "layer_path": "ROOT_!眉_*平行" }, + { "mode": "normal", "z_index": 3, "number": 1000, "layer_path": "ROOT_!眉_*通常" }, + { "mode": "normal", "z_index": 4, "number": 1000, "layer_path": "ROOT_表情_なし" }, + { "mode": "normal", "z_index": 4, "number": 1000, "layer_path": "ROOT_表情_赤面" }, + { "mode": "normal", "z_index": 5, "number": 1000, "layer_path": "ROOT_漫符_なし" }, + + { "mode": "talking", "z_index": 0, "number": 10, "layer_path": "ROOT_全身" }, + { "mode": "talking", "z_index": 1, "number": 500, "layer_path": "ROOT_!目_*通常" }, + { "mode": "talking", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*通常→" }, + { "mode": "talking", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*微笑" }, + { "mode": "talking", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*∩∩" }, + { "mode": "talking", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*微笑" }, + { "mode": "talking", "z_index": 2, "number": 100, "layer_path": "ROOT_!口_*お" }, + { "mode": "talking", "z_index": 2, "number": 50, "layer_path": "ROOT_!口_*え" }, + { "mode": "talking", "z_index": 2, "number": 100, "layer_path": "ROOT_!口_* -" }, + { "mode": "talking", "z_index": 2, "number": 50, "layer_path": "ROOT_!口_*う" }, + { "mode": "talking", "z_index": 2, "number": 100, "layer_path": "ROOT_!口_*にこ" }, + { "mode": "talking", "z_index": 3, "number": 200, "layer_path": "ROOT_!眉_*平行" }, + { "mode": "talking", "z_index": 3, "number": 400, "layer_path": "ROOT_!眉_*通常" }, + { "mode": "talking", "z_index": 3, "number": 400, "layer_path": "ROOT_!眉_*ドヤ" }, + { "mode": "talking", "z_index": 4, "number": 200, "layer_path": "ROOT_表情_なし" }, + { "mode": "talking", "z_index": 4, "number": 1000, "layer_path": "ROOT_表情_赤面" }, + { "mode": "talking", "z_index": 5, "number": 100, "layer_path": "ROOT_漫符_なし" }, + { "mode": "talking", "z_index": 5, "number": 1000, "layer_path": "ROOT_漫符_*♪" }, + { "mode": "talking", "z_index": 0, "number": 10, "layer_path": "ROOT_全身" }, + { "mode": "talking", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*∪∪" }, + { "mode": "talking", "z_index": 2, "number": 10, "layer_path": "ROOT_!口_*え" }, + { "mode": "talking", "z_index": 3, "number": 10, "layer_path": "ROOT_!眉_*平行" }, + { "mode": "talking", "z_index": 4, "number": 10, "layer_path": "ROOT_表情_なし" }, + { "mode": "talking", "z_index": 5, "number": 10, "layer_path": "ROOT_漫符_なし" } +] diff --git a/client/demo_so-vits-svc_40v2_c/dist/assets/settings/amitaro/settings.json b/client/demo_so-vits-svc_40v2_c/dist/assets/settings/amitaro/settings.json new file mode 100644 index 00000000..f3705ccc --- /dev/null +++ b/client/demo_so-vits-svc_40v2_c/dist/assets/settings/amitaro/settings.json @@ -0,0 +1,6 @@ +{ + "charaName": "あみたろ", + "psdFile": "/assets/settings/amitaro/amitaro.psd", + "motionFile": "/assets/settings/amitaro/motion.json", + "motionSpeedRate": 0.5 +} diff --git a/client/demo_so-vits-svc_40v2_c/dist/assets/settings/settings.json b/client/demo_so-vits-svc_40v2_c/dist/assets/settings/settings.json index a1fcd0e0..f3705ccc 100644 --- a/client/demo_so-vits-svc_40v2_c/dist/assets/settings/settings.json +++ b/client/demo_so-vits-svc_40v2_c/dist/assets/settings/settings.json @@ -1,5 +1,6 @@ { - "charaName": "つくよみちゃん", - "psdFile": "/assets/settings/tsukuyomi/tsukuyomi.psd", - "motionFile": "/assets/settings/tsukuyomi/motion.json" + "charaName": "あみたろ", + "psdFile": "/assets/settings/amitaro/amitaro.psd", + "motionFile": "/assets/settings/amitaro/motion.json", + "motionSpeedRate": 0.5 } diff --git a/client/demo_so-vits-svc_40v2_c/dist/assets/settings/tsukuyomi/tsukuyomi.json b/client/demo_so-vits-svc_40v2_c/dist/assets/settings/tsukuyomi/settings.json similarity index 55% rename from client/demo_so-vits-svc_40v2_c/dist/assets/settings/tsukuyomi/tsukuyomi.json rename to client/demo_so-vits-svc_40v2_c/dist/assets/settings/tsukuyomi/settings.json index a1fcd0e0..8c761037 100644 --- a/client/demo_so-vits-svc_40v2_c/dist/assets/settings/tsukuyomi/tsukuyomi.json +++ b/client/demo_so-vits-svc_40v2_c/dist/assets/settings/tsukuyomi/settings.json @@ -1,5 +1,6 @@ { "charaName": "つくよみちゃん", "psdFile": "/assets/settings/tsukuyomi/tsukuyomi.psd", - "motionFile": "/assets/settings/tsukuyomi/motion.json" + "motionFile": "/assets/settings/tsukuyomi/motion.json", + "motionSpeedRate": 1 } diff --git a/client/demo_so-vits-svc_40v2_c/dist/index.js b/client/demo_so-vits-svc_40v2_c/dist/index.js index 9640bf34..4de3db58 100644 --- a/client/demo_so-vits-svc_40v2_c/dist/index.js +++ b/client/demo_so-vits-svc_40v2_c/dist/index.js @@ -47,7 +47,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-dom/client */ \"./node_modules/react-dom/client.js\");\n/* harmony import */ var _css_App_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./css/App.css */ \"./src/css/App.css\");\n/* harmony import */ var _100_options_microphone__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./100_options_microphone */ \"./src/100_options_microphone.tsx\");\n/* harmony import */ var _001_provider_001_AppStateProvider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./001_provider/001_AppStateProvider */ \"./src/001_provider/001_AppStateProvider.tsx\");\n/* harmony import */ var _fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @fortawesome/fontawesome-svg-core */ \"./node_modules/@fortawesome/fontawesome-svg-core/index.mjs\");\n/* harmony import */ var _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @fortawesome/free-solid-svg-icons */ \"./node_modules/@fortawesome/free-solid-svg-icons/index.mjs\");\n/* harmony import */ var _fortawesome_free_regular_svg_icons__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @fortawesome/free-regular-svg-icons */ \"./node_modules/@fortawesome/free-regular-svg-icons/index.mjs\");\n/* harmony import */ var _fortawesome_free_brands_svg_icons__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @fortawesome/free-brands-svg-icons */ \"./node_modules/@fortawesome/free-brands-svg-icons/index.mjs\");\n/* harmony import */ var _001_provider_001_AppRootProvider__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./001_provider/001_AppRootProvider */ \"./src/001_provider/001_AppRootProvider.tsx\");\n/* harmony import */ var _001_provider_900_ErrorBoundary__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./001_provider/900_ErrorBoundary */ \"./src/001_provider/900_ErrorBoundary.tsx\");\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @dannadori/voice-changer-client-js */ \"./node_modules/@dannadori/voice-changer-client-js/dist/index.js\");\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./const */ \"./src/const.ts\");\n/* harmony import */ var _components_201_Dialog__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./components/201_Dialog */ \"./src/components/201_Dialog.tsx\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n_fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_8__.library.add(_fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_14__.fas, _fortawesome_free_regular_svg_icons__WEBPACK_IMPORTED_MODULE_15__.far, _fortawesome_free_brands_svg_icons__WEBPACK_IMPORTED_MODULE_16__.fab);\nvar container = document.getElementById(\"app\");\nvar root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_4__.createRoot)(container);\nvar App = function App() {\n var appState = (0,_001_provider_001_AppStateProvider__WEBPACK_IMPORTED_MODULE_7__.useAppState)();\n var _useIndexedDB = (0,_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.useIndexedDB)({\n clientType: _const__WEBPACK_IMPORTED_MODULE_12__.CLIENT_TYPE\n }),\n removeItem = _useIndexedDB.removeItem;\n var _useMicrophoneOptions = (0,_100_options_microphone__WEBPACK_IMPORTED_MODULE_6__.useMicrophoneOptions)(),\n voiceChangerSetting = _useMicrophoneOptions.voiceChangerSetting;\n var titleRow = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n var githubLink = (0,_const__WEBPACK_IMPORTED_MODULE_12__.isDesktopApp)() ?\n /*#__PURE__*/\n // @ts-ignore\n react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", {\n className: \"link\",\n onClick: function onClick() {\n window.electronAPI.openBrowser(\"https://github.com/w-okada/voice-changer\");\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"img\", {\n src: \"./assets/icons/github.svg\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", null, \"github\")) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"a\", {\n className: \"link\",\n href: \"https://github.com/w-okada/voice-changer\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"img\", {\n src: \"./assets/icons/github.svg\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", null, \"github\"));\n var manualLink = (0,_const__WEBPACK_IMPORTED_MODULE_12__.isDesktopApp)() ?\n /*#__PURE__*/\n // @ts-ignore\n react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", {\n className: \"link\",\n onClick: function onClick() {\n window.electronAPI.openBrowser(\"https://zenn.dev/wok/books/0003_vc-helper-v_1_5\");\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"img\", {\n src: \"./assets/icons/help-circle.svg\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", null, \"manual\")) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"a\", {\n className: \"link\",\n href: \"https://zenn.dev/wok/books/0003_vc-helper-v_1_5\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"img\", {\n src: \"./assets/icons/help-circle.svg\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", null, \"manual\"));\n var coffeeLink = (0,_const__WEBPACK_IMPORTED_MODULE_12__.isDesktopApp)() ?\n /*#__PURE__*/\n // @ts-ignore\n react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", {\n className: \"link\",\n onClick: function onClick() {\n window.electronAPI.openBrowser(\"https://www.buymeacoffee.com/wokad\");\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"img\", {\n className: \"donate-img\",\n src: \"./assets/buymeacoffee.png\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", null, \"donate(\\u5BC4\\u4ED8)\")) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"a\", {\n className: \"link\",\n href: \"https://www.buymeacoffee.com/wokad\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"img\", {\n className: \"donate-img\",\n src: \"./assets/buymeacoffee.png\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", null, \"donate(\\u5BC4\\u4ED8)\"));\n var licenseButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", {\n className: \"link\",\n onClick: function onClick() {\n var _document$getElementB;\n (_document$getElementB = document.getElementById(\"dialog\")) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add(\"dialog-container-show\");\n appState.frontendManagerState.stateControls.showLicenseCheckbox.updateState(true);\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", null, \"License\"));\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(react__WEBPACK_IMPORTED_MODULE_3__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"top-title\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", {\n className: \"title\"\n }, \"\\u30EA\\u30A2\\u30EB\\u30BF\\u30A4\\u30E0\\u30DC\\u30A4\\u30B9\\u30C1\\u30A7\\u30F3\\u30B8\\u30E3\\u30FC\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"top-title\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", {\n className: \"top-title-version\"\n }, \"\\u3064\\u304F\\u3088\\u307F\\u3061\\u3083\\u3093 ver.0.0\\u03B1\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", {\n className: \"belongings\"\n }, githubLink, manualLink, coffeeLink, licenseButton)));\n }, []);\n var clearRow = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n var onClearSettingClicked = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee() {\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return appState.clearSetting();\n case 2:\n _context.next = 4;\n return removeItem(_const__WEBPACK_IMPORTED_MODULE_12__.INDEXEDDB_KEY_AUDIO_OUTPUT);\n case 4:\n location.reload();\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function onClearSettingClicked() {\n return _ref.apply(this, arguments);\n };\n }();\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(react__WEBPACK_IMPORTED_MODULE_3__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"body-row split-3-3-4 left-padding-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"body-button-container\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"body-button\",\n onClick: onClearSettingClicked\n }, \"clear setting\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"body-item-text\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"body-item-text\"\n })));\n }, []);\n var mainSetting = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(react__WEBPACK_IMPORTED_MODULE_3__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"main-body\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(_components_201_Dialog__WEBPACK_IMPORTED_MODULE_13__.Dialog, null), titleRow, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"canvas\", {\n id: _const__WEBPACK_IMPORTED_MODULE_12__.TSUKUYOMI_CANVAS\n })), clearRow, voiceChangerSetting));\n }, [voiceChangerSetting]);\n (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(function () {\n if (!appState.psdAnimationState.psdAnimationInitialized) {\n return;\n }\n var startPsdAnimation = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee2() {\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return appState.psdAnimationState.switchNormalMotion();\n case 2:\n _context2.next = 4;\n return appState.psdAnimationState.start();\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function startPsdAnimation() {\n return _ref2.apply(this, arguments);\n };\n }();\n startPsdAnimation();\n }, [appState.psdAnimationState.psdAnimationInitialized]);\n (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(function () {\n if (!appState.initializedRef.current) {\n return;\n }\n if (!appState.psdAnimationState.psdAnimationInitialized) {\n return;\n }\n if (appState.volume > 0.0001) {\n appState.psdAnimationState.switchTalkingMotion();\n } else {\n appState.psdAnimationState.switchNormalMotion();\n }\n }, [appState.volume, appState.initializedRef.current, appState.psdAnimationState.psdAnimationInitialized]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(react__WEBPACK_IMPORTED_MODULE_3__.Fragment, null, mainSetting);\n};\nvar AppStateWrapper = function AppStateWrapper() {\n // エラーバウンダリー設定\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n error = _useState2[0],\n setError = _useState2[1];\n var _useIndexedDB2 = (0,_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.useIndexedDB)({\n clientType: _const__WEBPACK_IMPORTED_MODULE_12__.CLIENT_TYPE\n }),\n removeItem = _useIndexedDB2.removeItem;\n var errorComponent = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n var errorName = (error === null || error === void 0 ? void 0 : error.error.name) || \"no error name\";\n var errorMessage = (error === null || error === void 0 ? void 0 : error.error.message) || \"no error message\";\n var errorInfos = ((error === null || error === void 0 ? void 0 : error.errorInfo.componentStack) || \"no error stack\").split(\"\\n\");\n var onClearCacheClicked = /*#__PURE__*/function () {\n var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee3() {\n var indexedDBKeys, _i, _indexedDBKeys, k;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n indexedDBKeys = [_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.INDEXEDDB_KEY_CLIENT, _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.INDEXEDDB_KEY_SERVER, _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.INDEXEDDB_KEY_WORKLETNODE, _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.INDEXEDDB_KEY_MODEL_DATA, _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.INDEXEDDB_KEY_WORKLET, _const__WEBPACK_IMPORTED_MODULE_12__.INDEXEDDB_KEY_AUDIO_OUTPUT];\n _i = 0, _indexedDBKeys = indexedDBKeys;\n case 2:\n if (!(_i < _indexedDBKeys.length)) {\n _context3.next = 9;\n break;\n }\n k = _indexedDBKeys[_i];\n _context3.next = 6;\n return removeItem(k);\n case 6:\n _i++;\n _context3.next = 2;\n break;\n case 9:\n location.reload();\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return function onClearCacheClicked() {\n return _ref3.apply(this, arguments);\n };\n }();\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"error-container\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"top-error-message\"\n }, \"\\u3061\\u3087\\u3063\\u3068\\u554F\\u984C\\u304C\\u8D77\\u304D\\u305F\\u307F\\u305F\\u3044\\u3067\\u3059\\u3002\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"top-error-description\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"p\", null, \"\\u3053\\u306E\\u30A2\\u30D7\\u30EA\\u3067\\u7BA1\\u7406\\u3057\\u3066\\u3044\\u308B\\u60C5\\u5831\\u3092\\u30AF\\u30EA\\u30A2\\u3059\\u308B\\u3068\\u56DE\\u5FA9\\u3059\\u308B\\u5834\\u5408\\u304C\\u3042\\u308A\\u307E\\u3059\\u3002\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"p\", null, \"\\u4E0B\\u8A18\\u306E\\u30DC\\u30BF\\u30F3\\u3092\\u62BC\\u3057\\u3066\\u60C5\\u5831\\u3092\\u30AF\\u30EA\\u30A2\\u3057\\u307E\\u3059\\u3002\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"p\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"button\", {\n onClick: onClearCacheClicked\n }, \"\\u30A2\\u30D7\\u30EA\\u3092\\u521D\\u671F\\u5316\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"error-detail\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"error-name\"\n }, errorName), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"error-message\"\n }, errorMessage), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"error-info-container\"\n }, errorInfos.map(function (x) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"error-info-line\",\n key: x\n }, x);\n }))));\n }, [error]);\n var updateError = function updateError(error, errorInfo) {\n console.log(\"error compo\", error, errorInfo);\n setError({\n error: error,\n errorInfo: errorInfo\n });\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(_001_provider_900_ErrorBoundary__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n fallback: errorComponent,\n onError: updateError\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(_001_provider_001_AppStateProvider__WEBPACK_IMPORTED_MODULE_7__.AppStateProvider, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(App, null)));\n};\nroot.render( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(_001_provider_001_AppRootProvider__WEBPACK_IMPORTED_MODULE_9__.AppRootProvider, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(AppStateWrapper, null)));\n\n//# sourceURL=webpack://demo/./src/000_index.tsx?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-dom/client */ \"./node_modules/react-dom/client.js\");\n/* harmony import */ var _css_App_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./css/App.css */ \"./src/css/App.css\");\n/* harmony import */ var _100_options_microphone__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./100_options_microphone */ \"./src/100_options_microphone.tsx\");\n/* harmony import */ var _001_provider_001_AppStateProvider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./001_provider/001_AppStateProvider */ \"./src/001_provider/001_AppStateProvider.tsx\");\n/* harmony import */ var _fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @fortawesome/fontawesome-svg-core */ \"./node_modules/@fortawesome/fontawesome-svg-core/index.mjs\");\n/* harmony import */ var _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @fortawesome/free-solid-svg-icons */ \"./node_modules/@fortawesome/free-solid-svg-icons/index.mjs\");\n/* harmony import */ var _fortawesome_free_regular_svg_icons__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @fortawesome/free-regular-svg-icons */ \"./node_modules/@fortawesome/free-regular-svg-icons/index.mjs\");\n/* harmony import */ var _fortawesome_free_brands_svg_icons__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @fortawesome/free-brands-svg-icons */ \"./node_modules/@fortawesome/free-brands-svg-icons/index.mjs\");\n/* harmony import */ var _001_provider_001_AppRootProvider__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./001_provider/001_AppRootProvider */ \"./src/001_provider/001_AppRootProvider.tsx\");\n/* harmony import */ var _001_provider_900_ErrorBoundary__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./001_provider/900_ErrorBoundary */ \"./src/001_provider/900_ErrorBoundary.tsx\");\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @dannadori/voice-changer-client-js */ \"./node_modules/@dannadori/voice-changer-client-js/dist/index.js\");\n/* harmony import */ var _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./const */ \"./src/const.ts\");\n/* harmony import */ var _components_201_Dialog__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./components/201_Dialog */ \"./src/components/201_Dialog.tsx\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n_fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_8__.library.add(_fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_14__.fas, _fortawesome_free_regular_svg_icons__WEBPACK_IMPORTED_MODULE_15__.far, _fortawesome_free_brands_svg_icons__WEBPACK_IMPORTED_MODULE_16__.fab);\nvar container = document.getElementById(\"app\");\nvar root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_4__.createRoot)(container);\nvar App = function App() {\n var appState = (0,_001_provider_001_AppStateProvider__WEBPACK_IMPORTED_MODULE_7__.useAppState)();\n var _useIndexedDB = (0,_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.useIndexedDB)({\n clientType: _const__WEBPACK_IMPORTED_MODULE_12__.CLIENT_TYPE\n }),\n removeItem = _useIndexedDB.removeItem;\n var _useMicrophoneOptions = (0,_100_options_microphone__WEBPACK_IMPORTED_MODULE_6__.useMicrophoneOptions)(),\n voiceChangerSetting = _useMicrophoneOptions.voiceChangerSetting;\n var titleRow = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n var githubLink = (0,_const__WEBPACK_IMPORTED_MODULE_12__.isDesktopApp)() ?\n /*#__PURE__*/\n // @ts-ignore\n react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", {\n className: \"link\",\n onClick: function onClick() {\n window.electronAPI.openBrowser(\"https://github.com/w-okada/voice-changer\");\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"img\", {\n src: \"./assets/icons/github.svg\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", null, \"github\")) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"a\", {\n className: \"link\",\n href: \"https://github.com/w-okada/voice-changer\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"img\", {\n src: \"./assets/icons/github.svg\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", null, \"github\"));\n var manualLink = (0,_const__WEBPACK_IMPORTED_MODULE_12__.isDesktopApp)() ?\n /*#__PURE__*/\n // @ts-ignore\n react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", {\n className: \"link\",\n onClick: function onClick() {\n window.electronAPI.openBrowser(\"https://zenn.dev/wok/books/0003_vc-helper-v_1_5\");\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"img\", {\n src: \"./assets/icons/help-circle.svg\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", null, \"manual\")) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"a\", {\n className: \"link\",\n href: \"https://zenn.dev/wok/books/0003_vc-helper-v_1_5\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"img\", {\n src: \"./assets/icons/help-circle.svg\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", null, \"manual\"));\n var coffeeLink = (0,_const__WEBPACK_IMPORTED_MODULE_12__.isDesktopApp)() ?\n /*#__PURE__*/\n // @ts-ignore\n react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", {\n className: \"link\",\n onClick: function onClick() {\n window.electronAPI.openBrowser(\"https://www.buymeacoffee.com/wokad\");\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"img\", {\n className: \"donate-img\",\n src: \"./assets/buymeacoffee.png\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", null, \"donate(\\u5BC4\\u4ED8)\")) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"a\", {\n className: \"link\",\n href: \"https://www.buymeacoffee.com/wokad\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"img\", {\n className: \"donate-img\",\n src: \"./assets/buymeacoffee.png\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", null, \"donate(\\u5BC4\\u4ED8)\"));\n var licenseButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", {\n className: \"link\",\n onClick: function onClick() {\n var _document$getElementB;\n (_document$getElementB = document.getElementById(\"dialog\")) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.classList.add(\"dialog-container-show\");\n appState.frontendManagerState.stateControls.showLicenseCheckbox.updateState(true);\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", null, \"License\"));\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(react__WEBPACK_IMPORTED_MODULE_3__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"top-title\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", {\n className: \"title\"\n }, \"\\u30EA\\u30A2\\u30EB\\u30BF\\u30A4\\u30E0\\u30DC\\u30A4\\u30B9\\u30C1\\u30A7\\u30F3\\u30B8\\u30E3\\u30FC\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"top-title\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", {\n className: \"top-title-version\"\n }, appState.appSettings.appSettings.charaName, \" ver.0.1\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"span\", {\n className: \"belongings\"\n }, githubLink, manualLink, coffeeLink, licenseButton)));\n }, []);\n var clearRow = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n var onClearSettingClicked = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee() {\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return appState.clearSetting();\n case 2:\n _context.next = 4;\n return removeItem(_const__WEBPACK_IMPORTED_MODULE_12__.INDEXEDDB_KEY_AUDIO_OUTPUT);\n case 4:\n location.reload();\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function onClearSettingClicked() {\n return _ref.apply(this, arguments);\n };\n }();\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(react__WEBPACK_IMPORTED_MODULE_3__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"body-row split-3-3-4 left-padding-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"body-button-container\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"body-button\",\n onClick: onClearSettingClicked\n }, \"clear setting\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"body-item-text\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"body-item-text\"\n })));\n }, []);\n var mainSetting = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(react__WEBPACK_IMPORTED_MODULE_3__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"main-body\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(_components_201_Dialog__WEBPACK_IMPORTED_MODULE_13__.Dialog, null), titleRow, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"canvas\", {\n id: _const__WEBPACK_IMPORTED_MODULE_12__.TSUKUYOMI_CANVAS\n })), clearRow, voiceChangerSetting));\n }, [voiceChangerSetting]);\n (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(function () {\n if (!appState.psdAnimationState.psdAnimationInitialized) {\n return;\n }\n var startPsdAnimation = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee2() {\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return appState.psdAnimationState.switchNormalMotion();\n case 2:\n _context2.next = 4;\n return appState.psdAnimationState.start();\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function startPsdAnimation() {\n return _ref2.apply(this, arguments);\n };\n }();\n startPsdAnimation();\n }, [appState.psdAnimationState.psdAnimationInitialized]);\n (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(function () {\n if (!appState.initializedRef.current) {\n return;\n }\n if (!appState.psdAnimationState.psdAnimationInitialized) {\n return;\n }\n if (appState.volume > 0.0001) {\n appState.psdAnimationState.switchTalkingMotion();\n } else {\n appState.psdAnimationState.switchNormalMotion();\n }\n }, [appState.volume, appState.initializedRef.current, appState.psdAnimationState.psdAnimationInitialized]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(react__WEBPACK_IMPORTED_MODULE_3__.Fragment, null, mainSetting);\n};\nvar AppStateWrapper = function AppStateWrapper() {\n // エラーバウンダリー設定\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n error = _useState2[0],\n setError = _useState2[1];\n var _useIndexedDB2 = (0,_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.useIndexedDB)({\n clientType: _const__WEBPACK_IMPORTED_MODULE_12__.CLIENT_TYPE\n }),\n removeItem = _useIndexedDB2.removeItem;\n var errorComponent = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n var errorName = (error === null || error === void 0 ? void 0 : error.error.name) || \"no error name\";\n var errorMessage = (error === null || error === void 0 ? void 0 : error.error.message) || \"no error message\";\n var errorInfos = ((error === null || error === void 0 ? void 0 : error.errorInfo.componentStack) || \"no error stack\").split(\"\\n\");\n var onClearCacheClicked = /*#__PURE__*/function () {\n var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee3() {\n var indexedDBKeys, _i, _indexedDBKeys, k;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n indexedDBKeys = [_dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.INDEXEDDB_KEY_CLIENT, _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.INDEXEDDB_KEY_SERVER, _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.INDEXEDDB_KEY_WORKLETNODE, _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.INDEXEDDB_KEY_MODEL_DATA, _dannadori_voice_changer_client_js__WEBPACK_IMPORTED_MODULE_11__.INDEXEDDB_KEY_WORKLET, _const__WEBPACK_IMPORTED_MODULE_12__.INDEXEDDB_KEY_AUDIO_OUTPUT];\n _i = 0, _indexedDBKeys = indexedDBKeys;\n case 2:\n if (!(_i < _indexedDBKeys.length)) {\n _context3.next = 9;\n break;\n }\n k = _indexedDBKeys[_i];\n _context3.next = 6;\n return removeItem(k);\n case 6:\n _i++;\n _context3.next = 2;\n break;\n case 9:\n location.reload();\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return function onClearCacheClicked() {\n return _ref3.apply(this, arguments);\n };\n }();\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"error-container\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"top-error-message\"\n }, \"\\u3061\\u3087\\u3063\\u3068\\u554F\\u984C\\u304C\\u8D77\\u304D\\u305F\\u307F\\u305F\\u3044\\u3067\\u3059\\u3002\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"top-error-description\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"p\", null, \"\\u3053\\u306E\\u30A2\\u30D7\\u30EA\\u3067\\u7BA1\\u7406\\u3057\\u3066\\u3044\\u308B\\u60C5\\u5831\\u3092\\u30AF\\u30EA\\u30A2\\u3059\\u308B\\u3068\\u56DE\\u5FA9\\u3059\\u308B\\u5834\\u5408\\u304C\\u3042\\u308A\\u307E\\u3059\\u3002\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"p\", null, \"\\u4E0B\\u8A18\\u306E\\u30DC\\u30BF\\u30F3\\u3092\\u62BC\\u3057\\u3066\\u60C5\\u5831\\u3092\\u30AF\\u30EA\\u30A2\\u3057\\u307E\\u3059\\u3002\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"p\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"button\", {\n onClick: onClearCacheClicked\n }, \"\\u30A2\\u30D7\\u30EA\\u3092\\u521D\\u671F\\u5316\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"error-detail\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"error-name\"\n }, errorName), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"error-message\"\n }, errorMessage), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"error-info-container\"\n }, errorInfos.map(function (x) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(\"div\", {\n className: \"error-info-line\",\n key: x\n }, x);\n }))));\n }, [error]);\n var updateError = function updateError(error, errorInfo) {\n console.log(\"error compo\", error, errorInfo);\n setError({\n error: error,\n errorInfo: errorInfo\n });\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(_001_provider_900_ErrorBoundary__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n fallback: errorComponent,\n onError: updateError\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(_001_provider_001_AppStateProvider__WEBPACK_IMPORTED_MODULE_7__.AppStateProvider, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(App, null)));\n};\nroot.render( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(_001_provider_001_AppRootProvider__WEBPACK_IMPORTED_MODULE_9__.AppRootProvider, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(AppStateWrapper, null)));\n\n//# sourceURL=webpack://demo/./src/000_index.tsx?"); /***/ }), @@ -58,7 +58,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bab /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"useAppSettings\": () => (/* binding */ useAppSettings)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nvar InitialAppSettings = {\n charaName: \"\",\n psdFile: \"\",\n motionFile: \"\"\n};\nvar useAppSettings = function useAppSettings() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(InitialAppSettings),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState, 2),\n appSettings = _useState2[0],\n setAppSettings = _useState2[1];\n (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(function () {\n var loadAppSettings = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee() {\n var ret;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return fetch(\"/assets/settings/settings.json\");\n case 2:\n _context.next = 4;\n return _context.sent.json();\n case 4:\n ret = _context.sent;\n setAppSettings(ret);\n case 6:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function loadAppSettings() {\n return _ref.apply(this, arguments);\n };\n }();\n loadAppSettings();\n }, []);\n return {\n appSettings: appSettings\n };\n};\n\n//# sourceURL=webpack://demo/./src/001_globalHooks/001_useAppSettings.ts?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"useAppSettings\": () => (/* binding */ useAppSettings)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nvar InitialAppSettings = {\n charaName: \"\",\n psdFile: \"\",\n motionFile: \"\",\n motionSpeedRate: 1\n};\nvar useAppSettings = function useAppSettings() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(InitialAppSettings),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState, 2),\n appSettings = _useState2[0],\n setAppSettings = _useState2[1];\n (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(function () {\n var loadAppSettings = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee() {\n var ret;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return fetch(\"/assets/settings/settings.json\");\n case 2:\n _context.next = 4;\n return _context.sent.json();\n case 4:\n ret = _context.sent;\n setAppSettings(ret);\n case 6:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function loadAppSettings() {\n return _ref.apply(this, arguments);\n };\n }();\n loadAppSettings();\n }, []);\n return {\n appSettings: appSettings\n };\n};\n\n//# sourceURL=webpack://demo/./src/001_globalHooks/001_useAppSettings.ts?"); /***/ }), @@ -102,7 +102,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"usePsdAnimation\": () => (/* binding */ usePsdAnimation)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _dannadori_psdanimator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @dannadori/psdanimator */ \"./node_modules/@dannadori/psdanimator/dist/index.js\");\n/* harmony import */ var _dannadori_psdanimator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_dannadori_psdanimator__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../const */ \"./src/const.ts\");\n\n\n\n\n\n\nvar usePsdAnimation = function usePsdAnimation() {\n var w = (0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(function () {\n return new _dannadori_psdanimator__WEBPACK_IMPORTED_MODULE_3__.WorkerManager();\n }, []);\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(false),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState, 2),\n psdAnimationInitialized = _useState2[0],\n setPsdAnimationInitialized = _useState2[1];\n var loadPsd = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee(psdFile, motionFile) {\n var psd, motion, canvas, c, p1;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return fetch(psdFile);\n case 2:\n _context.next = 4;\n return _context.sent.arrayBuffer();\n case 4:\n psd = _context.sent;\n _context.next = 7;\n return fetch(motionFile);\n case 7:\n _context.next = 9;\n return _context.sent.json();\n case 9:\n motion = _context.sent;\n canvas = document.getElementById(_const__WEBPACK_IMPORTED_MODULE_5__.TSUKUYOMI_CANVAS); // const c = generateConfig(psdFile, canvas, 640, 480, true)\n c = (0,_dannadori_psdanimator__WEBPACK_IMPORTED_MODULE_3__.generateConfig)(psd, canvas, 640, 480, false);\n c.transfer = [c.canvas];\n _context.next = 15;\n return w.init(c);\n case 15:\n console.log(\"[psd animator] Initialized\");\n p1 = {\n type: \"SET_MOTION\",\n motion: motion,\n transfer: []\n };\n _context.next = 19;\n return w.execute(p1);\n case 19:\n console.log(\"[psd animator] Set motion\");\n setPsdAnimationInitialized(true);\n case 21:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function loadPsd(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n }();\n\n // \"ROOT_!眉 _*通常眉\",\n // \"ROOT_!眉 _*通常眉:少し下げ\",\n // \"ROOT_!眉 _*喜び・驚き\",\n // \"ROOT_!目_*通常目\",\n // \"ROOT_!目_*目を少し細める ★デフォルト\",\n // \"ROOT_!目_*目を細める\",\n // \"ROOT_!目_*目を閉じる\",\n // \"ROOT_!目_*目を閉じて微笑む\",\n // \"ROOT_!頬 _*通常\",\n // \"ROOT_!口 _*口を閉じて微笑む\",\n // \"ROOT_!口 _*小さく笑う\",\n // \"ROOT_!口 _*大きく笑う\",\n // \"ROOT_!髪(おさげ)_!髪(おさげ) ※選択肢なし\",\n // \"ROOT_!左腕_*左手を下げる\",\n // \"ROOT_!左腕_*左手でご案内\",\n // \"ROOT_!左腕_*左手を胸の前に:グー\",\n // \"ROOT_!左腕_*左手を胸の前に:パー\",\n // \"ROOT_!左腕_*左手を口に当てる\",\n // \"ROOT_!右腕_*右手を下げる\",\n // \"ROOT_!右腕_*右手でご案内\",\n // \"ROOT_!右腕_*右手を胸の前に:グー\",\n // \"ROOT_!右腕_*右手を胸の前に:パー\",\n // \"ROOT_!右腕_*右手を口に当てる\",\n // \"ROOT_!体_!体 ※選択肢なし\"\n\n var start = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee2() {\n var p3;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n p3 = {\n type: \"START\",\n transfer: []\n };\n _context2.next = 3;\n return w.execute(p3);\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function start() {\n return _ref2.apply(this, arguments);\n };\n }();\n var switchNormalMotion = /*#__PURE__*/function () {\n var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee3() {\n var p2;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n p2 = {\n type: \"SWITCH_MOTION_MODE\",\n motionMode: \"normal\",\n transfer: []\n };\n _context3.next = 3;\n return w.execute(p2);\n case 3:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return function switchNormalMotion() {\n return _ref3.apply(this, arguments);\n };\n }();\n var switchTalkingMotion = /*#__PURE__*/function () {\n var _ref4 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee4() {\n var p2;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n p2 = {\n type: \"SWITCH_MOTION_MODE\",\n motionMode: \"talking\",\n transfer: []\n };\n _context4.next = 3;\n return w.execute(p2);\n case 3:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function switchTalkingMotion() {\n return _ref4.apply(this, arguments);\n };\n }();\n return {\n loadPsd: loadPsd,\n switchNormalMotion: switchNormalMotion,\n switchTalkingMotion: switchTalkingMotion,\n start: start,\n psdAnimationInitialized: psdAnimationInitialized\n };\n};\n\n//# sourceURL=webpack://demo/./src/001_globalHooks/100_usePsdAnimation.ts?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"usePsdAnimation\": () => (/* binding */ usePsdAnimation)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _dannadori_psdanimator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @dannadori/psdanimator */ \"./node_modules/@dannadori/psdanimator/dist/index.js\");\n/* harmony import */ var _dannadori_psdanimator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_dannadori_psdanimator__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../const */ \"./src/const.ts\");\n\n\n\n\n\n\nvar usePsdAnimation = function usePsdAnimation() {\n var w = (0,react__WEBPACK_IMPORTED_MODULE_4__.useMemo)(function () {\n return new _dannadori_psdanimator__WEBPACK_IMPORTED_MODULE_3__.WorkerManager();\n }, []);\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(false),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState, 2),\n psdAnimationInitialized = _useState2[0],\n setPsdAnimationInitialized = _useState2[1];\n var loadPsd = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee(psdFile, motionFile, speedRate) {\n var psd, motion, canvas, c, p1, p3;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return fetch(psdFile);\n case 2:\n _context.next = 4;\n return _context.sent.arrayBuffer();\n case 4:\n psd = _context.sent;\n _context.next = 7;\n return fetch(motionFile);\n case 7:\n _context.next = 9;\n return _context.sent.json();\n case 9:\n motion = _context.sent;\n canvas = document.getElementById(_const__WEBPACK_IMPORTED_MODULE_5__.TSUKUYOMI_CANVAS); // const c = generateConfig(psdFile, canvas, 640, 480, true)\n c = (0,_dannadori_psdanimator__WEBPACK_IMPORTED_MODULE_3__.generateConfig)(psd, canvas, 640, 480, false);\n c.processorURL = \"https://cdn.jsdelivr.net/npm/@dannadori/psdanimator@1.0.17/dist/process.js\";\n c.transfer = [c.canvas];\n _context.next = 16;\n return w.init(c);\n case 16:\n console.log(\"[psd animator] Initialized\");\n p1 = {\n type: \"SET_MOTION\",\n motion: motion,\n transfer: []\n };\n _context.next = 20;\n return w.execute(p1);\n case 20:\n console.log(\"[psd animator] Set motion\");\n setPsdAnimationInitialized(true);\n p3 = {\n type: \"SET_WAIT_RATE\",\n waitRate: speedRate,\n transfer: []\n };\n _context.next = 25;\n return w.execute(p3);\n case 25:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function loadPsd(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n }();\n var start = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee2() {\n var p3;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n p3 = {\n type: \"START\",\n transfer: []\n };\n _context2.next = 3;\n return w.execute(p3);\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function start() {\n return _ref2.apply(this, arguments);\n };\n }();\n var switchNormalMotion = /*#__PURE__*/function () {\n var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee3() {\n var p2;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n p2 = {\n type: \"SWITCH_MOTION_MODE\",\n motionMode: \"normal\",\n transfer: []\n };\n _context3.next = 3;\n return w.execute(p2);\n case 3:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return function switchNormalMotion() {\n return _ref3.apply(this, arguments);\n };\n }();\n var switchTalkingMotion = /*#__PURE__*/function () {\n var _ref4 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee4() {\n var p2;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n p2 = {\n type: \"SWITCH_MOTION_MODE\",\n motionMode: \"talking\",\n transfer: []\n };\n _context4.next = 3;\n return w.execute(p2);\n case 3:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function switchTalkingMotion() {\n return _ref4.apply(this, arguments);\n };\n }();\n return {\n loadPsd: loadPsd,\n switchNormalMotion: switchNormalMotion,\n switchTalkingMotion: switchTalkingMotion,\n start: start,\n psdAnimationInitialized: psdAnimationInitialized\n };\n};\n\n//# sourceURL=webpack://demo/./src/001_globalHooks/100_usePsdAnimation.ts?"); /***/ }), @@ -124,7 +124,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"AppStateProvider\": () => (/* binding */ AppStateProvider),\n/* harmony export */ \"useAppState\": () => (/* binding */ useAppState)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _001_globalHooks_001_useAppSettings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../001_globalHooks/001_useAppSettings */ \"./src/001_globalHooks/001_useAppSettings.ts\");\n/* harmony import */ var _001_globalHooks_001_useVCClient__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../001_globalHooks/001_useVCClient */ \"./src/001_globalHooks/001_useVCClient.ts\");\n/* harmony import */ var _001_globalHooks_010_useFrontendManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../001_globalHooks/010_useFrontendManager */ \"./src/001_globalHooks/010_useFrontendManager.ts\");\n/* harmony import */ var _001_globalHooks_100_usePsdAnimation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../001_globalHooks/100_usePsdAnimation */ \"./src/001_globalHooks/100_usePsdAnimation.ts\");\n/* harmony import */ var _001_AppRootProvider__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./001_AppRootProvider */ \"./src/001_provider/001_AppRootProvider.tsx\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\n\n\n\n\n\nvar AppStateContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createContext(null);\nvar useAppState = function useAppState() {\n var state = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(AppStateContext);\n if (!state) {\n throw new Error(\"useAppState must be used within AppStateProvider\");\n }\n return state;\n};\nvar AppStateProvider = function AppStateProvider(_ref) {\n var children = _ref.children;\n var appRoot = (0,_001_AppRootProvider__WEBPACK_IMPORTED_MODULE_6__.useAppRoot)();\n var appSettings = (0,_001_globalHooks_001_useAppSettings__WEBPACK_IMPORTED_MODULE_2__.useAppSettings)();\n var clientState = (0,_001_globalHooks_001_useVCClient__WEBPACK_IMPORTED_MODULE_3__.useVCClient)({\n audioContext: appRoot.audioContextState.audioContext\n });\n var frontendManagerState = (0,_001_globalHooks_010_useFrontendManager__WEBPACK_IMPORTED_MODULE_4__.useFrontendManager)();\n var psdAnimationState = (0,_001_globalHooks_100_usePsdAnimation__WEBPACK_IMPORTED_MODULE_5__.usePsdAnimation)();\n var initializedRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n if (clientState.clientState.initialized) {\n initializedRef.current = true;\n }\n }, [clientState.clientState.initialized]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n if (appSettings.appSettings.charaName.length > 0) {\n psdAnimationState.loadPsd(appSettings.appSettings.psdFile, appSettings.appSettings.motionFile);\n }\n }, [appSettings.appSettings]);\n var providerValue = _objectSpread(_objectSpread({\n audioContext: appRoot.audioContextState.audioContext,\n appSettings: appSettings\n }, clientState.clientState), {}, {\n frontendManagerState: frontendManagerState,\n psdAnimationState: psdAnimationState,\n initializedRef: initializedRef\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(AppStateContext.Provider, {\n value: providerValue\n }, children);\n};\n\n//# sourceURL=webpack://demo/./src/001_provider/001_AppStateProvider.tsx?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"AppStateProvider\": () => (/* binding */ AppStateProvider),\n/* harmony export */ \"useAppState\": () => (/* binding */ useAppState)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _001_globalHooks_001_useAppSettings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../001_globalHooks/001_useAppSettings */ \"./src/001_globalHooks/001_useAppSettings.ts\");\n/* harmony import */ var _001_globalHooks_001_useVCClient__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../001_globalHooks/001_useVCClient */ \"./src/001_globalHooks/001_useVCClient.ts\");\n/* harmony import */ var _001_globalHooks_010_useFrontendManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../001_globalHooks/010_useFrontendManager */ \"./src/001_globalHooks/010_useFrontendManager.ts\");\n/* harmony import */ var _001_globalHooks_100_usePsdAnimation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../001_globalHooks/100_usePsdAnimation */ \"./src/001_globalHooks/100_usePsdAnimation.ts\");\n/* harmony import */ var _001_AppRootProvider__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./001_AppRootProvider */ \"./src/001_provider/001_AppRootProvider.tsx\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\n\n\n\n\n\nvar AppStateContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createContext(null);\nvar useAppState = function useAppState() {\n var state = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(AppStateContext);\n if (!state) {\n throw new Error(\"useAppState must be used within AppStateProvider\");\n }\n return state;\n};\nvar AppStateProvider = function AppStateProvider(_ref) {\n var children = _ref.children;\n var appRoot = (0,_001_AppRootProvider__WEBPACK_IMPORTED_MODULE_6__.useAppRoot)();\n var appSettings = (0,_001_globalHooks_001_useAppSettings__WEBPACK_IMPORTED_MODULE_2__.useAppSettings)();\n var clientState = (0,_001_globalHooks_001_useVCClient__WEBPACK_IMPORTED_MODULE_3__.useVCClient)({\n audioContext: appRoot.audioContextState.audioContext\n });\n var frontendManagerState = (0,_001_globalHooks_010_useFrontendManager__WEBPACK_IMPORTED_MODULE_4__.useFrontendManager)();\n var psdAnimationState = (0,_001_globalHooks_100_usePsdAnimation__WEBPACK_IMPORTED_MODULE_5__.usePsdAnimation)();\n var initializedRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n if (clientState.clientState.initialized) {\n initializedRef.current = true;\n }\n }, [clientState.clientState.initialized]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n if (appSettings.appSettings.charaName.length > 0) {\n psdAnimationState.loadPsd(appSettings.appSettings.psdFile, appSettings.appSettings.motionFile, appSettings.appSettings.motionSpeedRate);\n }\n }, [appSettings.appSettings]);\n var providerValue = _objectSpread(_objectSpread({\n audioContext: appRoot.audioContextState.audioContext,\n appSettings: appSettings\n }, clientState.clientState), {}, {\n frontendManagerState: frontendManagerState,\n psdAnimationState: psdAnimationState,\n initializedRef: initializedRef\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(AppStateContext.Provider, {\n value: providerValue\n }, children);\n};\n\n//# sourceURL=webpack://demo/./src/001_provider/001_AppStateProvider.tsx?"); /***/ }), diff --git a/client/demo_so-vits-svc_40v2_c/package-lock.json b/client/demo_so-vits-svc_40v2_c/package-lock.json index 76f19d24..64fa6d4f 100644 --- a/client/demo_so-vits-svc_40v2_c/package-lock.json +++ b/client/demo_so-vits-svc_40v2_c/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@dannadori/psdanimator": "^1.0.15", + "@dannadori/psdanimator": "^1.0.16", "@dannadori/voice-changer-client-js": "^1.0.96", "@fortawesome/fontawesome-svg-core": "^6.3.0", "@fortawesome/free-brands-svg-icons": "^6.3.0", @@ -24,8 +24,8 @@ "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.21.0", - "@types/node": "^18.15.5", - "@types/react": "^18.0.28", + "@types/node": "^18.15.9", + "@types/react": "^18.0.29", "@types/react-dom": "^18.0.11", "autoprefixer": "^10.4.14", "babel-loader": "^9.1.2", @@ -41,13 +41,13 @@ "npm-run-all": "^4.1.5", "postcss-loader": "^7.1.0", "postcss-nested": "^6.0.1", - "prettier": "^2.8.6", - "rimraf": "^4.4.0", + "prettier": "^2.8.7", + "rimraf": "^4.4.1", "style-loader": "^3.3.2", "ts-loader": "^9.4.2", "tsconfig-paths": "^4.1.2", "typescript": "^5.0.2", - "webpack": "^5.76.2", + "webpack": "^5.76.3", "webpack-cli": "^5.0.1", "webpack-dev-server": "^4.13.1" } @@ -3188,9 +3188,9 @@ } }, "node_modules/@dannadori/psdanimator": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/@dannadori/psdanimator/-/psdanimator-1.0.15.tgz", - "integrity": "sha512-cf9v3xc5N+V588MkY3vsc394TzsMFxQnCmmq452VQTFWpjcsKLA8X1g0x2Z9WA6oIE6d6LT/cB6EZ30mrB1afg==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/@dannadori/psdanimator/-/psdanimator-1.0.16.tgz", + "integrity": "sha512-leA8V8LY009RfpxijE3yCVoD1LVnLfb0O4zRZclOvTa6NitNCIO6Xe/3SfN1Rkq4zhaU3TRL6CMotS/vIFx2MA==", "dependencies": { "@dannadori/worker-manager": "^1.0.11", "@webtoon/psd": "^0.3.0" @@ -3818,9 +3818,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.15.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.5.tgz", - "integrity": "sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==" + "version": "18.15.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.9.tgz", + "integrity": "sha512-dUxhiNzBLr6IqlZXz6e/rN2YQXlFgOei/Dxy+e3cyXTJ4txSUbGT2/fmnD6zd/75jDMeW5bDee+YXxlFKHoV0A==" }, "node_modules/@types/prop-types": { "version": "15.7.5", @@ -3841,9 +3841,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.0.28", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", - "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", + "version": "18.0.29", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.29.tgz", + "integrity": "sha512-wXHktgUABxplw1+UnljseDq4+uztQyp2tlWZRIxHlpchsCFqiYkvaDS8JR7eKOQm8wziTH/el5qL7D6gYNkYcw==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -8947,9 +8947,9 @@ } }, "node_modules/prettier": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.6.tgz", - "integrity": "sha512-mtuzdiBbHwPEgl7NxWlqOkithPyp4VN93V7VeHVWBF+ad3I5avc0RVDT4oImXQy9H/AqxA2NSQH8pSxHW6FYbQ==", + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -9421,9 +9421,9 @@ } }, "node_modules/rimraf": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.0.tgz", - "integrity": "sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", "dev": true, "dependencies": { "glob": "^9.2.0" @@ -10675,9 +10675,9 @@ } }, "node_modules/webpack": { - "version": "5.76.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.2.tgz", - "integrity": "sha512-Th05ggRm23rVzEOlX8y67NkYCHa9nTNcwHPBhdg+lKG+mtiW7XgggjAeeLnADAe7mLjJ6LUNfgHAuRRh+Z6J7w==", + "version": "5.76.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.3.tgz", + "integrity": "sha512-18Qv7uGPU8b2vqGeEEObnfICyw2g39CHlDEK4I7NK13LOur1d0HGmGNKGT58Eluwddpn3oEejwvBPoP4M7/KSA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -13671,9 +13671,9 @@ } }, "@dannadori/psdanimator": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/@dannadori/psdanimator/-/psdanimator-1.0.15.tgz", - "integrity": "sha512-cf9v3xc5N+V588MkY3vsc394TzsMFxQnCmmq452VQTFWpjcsKLA8X1g0x2Z9WA6oIE6d6LT/cB6EZ30mrB1afg==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/@dannadori/psdanimator/-/psdanimator-1.0.16.tgz", + "integrity": "sha512-leA8V8LY009RfpxijE3yCVoD1LVnLfb0O4zRZclOvTa6NitNCIO6Xe/3SfN1Rkq4zhaU3TRL6CMotS/vIFx2MA==", "requires": { "@dannadori/worker-manager": "^1.0.11", "@webtoon/psd": "^0.3.0" @@ -14198,9 +14198,9 @@ "dev": true }, "@types/node": { - "version": "18.15.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.5.tgz", - "integrity": "sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==" + "version": "18.15.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.9.tgz", + "integrity": "sha512-dUxhiNzBLr6IqlZXz6e/rN2YQXlFgOei/Dxy+e3cyXTJ4txSUbGT2/fmnD6zd/75jDMeW5bDee+YXxlFKHoV0A==" }, "@types/prop-types": { "version": "15.7.5", @@ -14221,9 +14221,9 @@ "dev": true }, "@types/react": { - "version": "18.0.28", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", - "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", + "version": "18.0.29", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.29.tgz", + "integrity": "sha512-wXHktgUABxplw1+UnljseDq4+uztQyp2tlWZRIxHlpchsCFqiYkvaDS8JR7eKOQm8wziTH/el5qL7D6gYNkYcw==", "dev": true, "requires": { "@types/prop-types": "*", @@ -18005,9 +18005,9 @@ "dev": true }, "prettier": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.6.tgz", - "integrity": "sha512-mtuzdiBbHwPEgl7NxWlqOkithPyp4VN93V7VeHVWBF+ad3I5avc0RVDT4oImXQy9H/AqxA2NSQH8pSxHW6FYbQ==", + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", "dev": true }, "prettier-linter-helpers": { @@ -18367,9 +18367,9 @@ "dev": true }, "rimraf": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.0.tgz", - "integrity": "sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", "dev": true, "requires": { "glob": "^9.2.0" @@ -19293,9 +19293,9 @@ } }, "webpack": { - "version": "5.76.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.2.tgz", - "integrity": "sha512-Th05ggRm23rVzEOlX8y67NkYCHa9nTNcwHPBhdg+lKG+mtiW7XgggjAeeLnADAe7mLjJ6LUNfgHAuRRh+Z6J7w==", + "version": "5.76.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.3.tgz", + "integrity": "sha512-18Qv7uGPU8b2vqGeEEObnfICyw2g39CHlDEK4I7NK13LOur1d0HGmGNKGT58Eluwddpn3oEejwvBPoP4M7/KSA==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", diff --git a/client/demo_so-vits-svc_40v2_c/package.json b/client/demo_so-vits-svc_40v2_c/package.json index b00ed326..ce63fd82 100644 --- a/client/demo_so-vits-svc_40v2_c/package.json +++ b/client/demo_so-vits-svc_40v2_c/package.json @@ -23,8 +23,8 @@ "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.21.0", - "@types/node": "^18.15.5", - "@types/react": "^18.0.28", + "@types/node": "^18.15.9", + "@types/react": "^18.0.29", "@types/react-dom": "^18.0.11", "autoprefixer": "^10.4.14", "babel-loader": "^9.1.2", @@ -40,18 +40,18 @@ "npm-run-all": "^4.1.5", "postcss-loader": "^7.1.0", "postcss-nested": "^6.0.1", - "prettier": "^2.8.6", - "rimraf": "^4.4.0", + "prettier": "^2.8.7", + "rimraf": "^4.4.1", "style-loader": "^3.3.2", "ts-loader": "^9.4.2", "tsconfig-paths": "^4.1.2", "typescript": "^5.0.2", - "webpack": "^5.76.2", + "webpack": "^5.76.3", "webpack-cli": "^5.0.1", "webpack-dev-server": "^4.13.1" }, "dependencies": { - "@dannadori/psdanimator": "^1.0.15", + "@dannadori/psdanimator": "^1.0.16", "@dannadori/voice-changer-client-js": "^1.0.96", "@fortawesome/fontawesome-svg-core": "^6.3.0", "@fortawesome/free-brands-svg-icons": "^6.3.0", diff --git a/client/demo_so-vits-svc_40v2_c/public/assets/settings/amitaro/amitaro.psd b/client/demo_so-vits-svc_40v2_c/public/assets/settings/amitaro/amitaro.psd new file mode 100644 index 00000000..c25af31d Binary files /dev/null and b/client/demo_so-vits-svc_40v2_c/public/assets/settings/amitaro/amitaro.psd differ diff --git a/client/demo_so-vits-svc_40v2_c/public/assets/settings/amitaro/motion.json b/client/demo_so-vits-svc_40v2_c/public/assets/settings/amitaro/motion.json new file mode 100644 index 00000000..1f18caab --- /dev/null +++ b/client/demo_so-vits-svc_40v2_c/public/assets/settings/amitaro/motion.json @@ -0,0 +1,40 @@ +[ + { "mode": "normal", "z_index": 0, "number": 10, "layer_path": "ROOT_全身" }, + { "mode": "normal", "z_index": 1, "number": 500, "layer_path": "ROOT_!目_*通常" }, + { "mode": "normal", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*通常→" }, + { "mode": "normal", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*微笑" }, + { "mode": "normal", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*∩∩" }, + { "mode": "normal", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*微笑" }, + { "mode": "normal", "z_index": 2, "number": 800, "layer_path": "ROOT_!口_*にこ" }, + { "mode": "normal", "z_index": 2, "number": 100, "layer_path": "ROOT_!口_*おすまし" }, + { "mode": "normal", "z_index": 3, "number": 1000, "layer_path": "ROOT_!眉_*平行" }, + { "mode": "normal", "z_index": 3, "number": 1000, "layer_path": "ROOT_!眉_*通常" }, + { "mode": "normal", "z_index": 4, "number": 1000, "layer_path": "ROOT_表情_なし" }, + { "mode": "normal", "z_index": 4, "number": 1000, "layer_path": "ROOT_表情_赤面" }, + { "mode": "normal", "z_index": 5, "number": 1000, "layer_path": "ROOT_漫符_なし" }, + + { "mode": "talking", "z_index": 0, "number": 10, "layer_path": "ROOT_全身" }, + { "mode": "talking", "z_index": 1, "number": 500, "layer_path": "ROOT_!目_*通常" }, + { "mode": "talking", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*通常→" }, + { "mode": "talking", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*微笑" }, + { "mode": "talking", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*∩∩" }, + { "mode": "talking", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*微笑" }, + { "mode": "talking", "z_index": 2, "number": 100, "layer_path": "ROOT_!口_*お" }, + { "mode": "talking", "z_index": 2, "number": 50, "layer_path": "ROOT_!口_*え" }, + { "mode": "talking", "z_index": 2, "number": 100, "layer_path": "ROOT_!口_* -" }, + { "mode": "talking", "z_index": 2, "number": 50, "layer_path": "ROOT_!口_*う" }, + { "mode": "talking", "z_index": 2, "number": 100, "layer_path": "ROOT_!口_*にこ" }, + { "mode": "talking", "z_index": 3, "number": 200, "layer_path": "ROOT_!眉_*平行" }, + { "mode": "talking", "z_index": 3, "number": 400, "layer_path": "ROOT_!眉_*通常" }, + { "mode": "talking", "z_index": 3, "number": 400, "layer_path": "ROOT_!眉_*ドヤ" }, + { "mode": "talking", "z_index": 4, "number": 200, "layer_path": "ROOT_表情_なし" }, + { "mode": "talking", "z_index": 4, "number": 1000, "layer_path": "ROOT_表情_赤面" }, + { "mode": "talking", "z_index": 5, "number": 100, "layer_path": "ROOT_漫符_なし" }, + { "mode": "talking", "z_index": 5, "number": 1000, "layer_path": "ROOT_漫符_*♪" }, + { "mode": "talking", "z_index": 0, "number": 10, "layer_path": "ROOT_全身" }, + { "mode": "talking", "z_index": 1, "number": 10, "layer_path": "ROOT_!目_*∪∪" }, + { "mode": "talking", "z_index": 2, "number": 10, "layer_path": "ROOT_!口_*え" }, + { "mode": "talking", "z_index": 3, "number": 10, "layer_path": "ROOT_!眉_*平行" }, + { "mode": "talking", "z_index": 4, "number": 10, "layer_path": "ROOT_表情_なし" }, + { "mode": "talking", "z_index": 5, "number": 10, "layer_path": "ROOT_漫符_なし" } +] diff --git a/client/demo_so-vits-svc_40v2_c/public/assets/settings/amitaro/settings.json b/client/demo_so-vits-svc_40v2_c/public/assets/settings/amitaro/settings.json new file mode 100644 index 00000000..f3705ccc --- /dev/null +++ b/client/demo_so-vits-svc_40v2_c/public/assets/settings/amitaro/settings.json @@ -0,0 +1,6 @@ +{ + "charaName": "あみたろ", + "psdFile": "/assets/settings/amitaro/amitaro.psd", + "motionFile": "/assets/settings/amitaro/motion.json", + "motionSpeedRate": 0.5 +} diff --git a/client/demo_so-vits-svc_40v2_c/public/assets/settings/settings.json b/client/demo_so-vits-svc_40v2_c/public/assets/settings/settings.json index a1fcd0e0..f3705ccc 100644 --- a/client/demo_so-vits-svc_40v2_c/public/assets/settings/settings.json +++ b/client/demo_so-vits-svc_40v2_c/public/assets/settings/settings.json @@ -1,5 +1,6 @@ { - "charaName": "つくよみちゃん", - "psdFile": "/assets/settings/tsukuyomi/tsukuyomi.psd", - "motionFile": "/assets/settings/tsukuyomi/motion.json" + "charaName": "あみたろ", + "psdFile": "/assets/settings/amitaro/amitaro.psd", + "motionFile": "/assets/settings/amitaro/motion.json", + "motionSpeedRate": 0.5 } diff --git a/client/demo_so-vits-svc_40v2_c/public/assets/settings/tsukuyomi/tsukuyomi.json b/client/demo_so-vits-svc_40v2_c/public/assets/settings/tsukuyomi/settings.json similarity index 55% rename from client/demo_so-vits-svc_40v2_c/public/assets/settings/tsukuyomi/tsukuyomi.json rename to client/demo_so-vits-svc_40v2_c/public/assets/settings/tsukuyomi/settings.json index a1fcd0e0..8c761037 100644 --- a/client/demo_so-vits-svc_40v2_c/public/assets/settings/tsukuyomi/tsukuyomi.json +++ b/client/demo_so-vits-svc_40v2_c/public/assets/settings/tsukuyomi/settings.json @@ -1,5 +1,6 @@ { "charaName": "つくよみちゃん", "psdFile": "/assets/settings/tsukuyomi/tsukuyomi.psd", - "motionFile": "/assets/settings/tsukuyomi/motion.json" + "motionFile": "/assets/settings/tsukuyomi/motion.json", + "motionSpeedRate": 1 } diff --git a/client/demo_so-vits-svc_40v2_c/src/000_index.tsx b/client/demo_so-vits-svc_40v2_c/src/000_index.tsx index b8c49f0c..59b85432 100644 --- a/client/demo_so-vits-svc_40v2_c/src/000_index.tsx +++ b/client/demo_so-vits-svc_40v2_c/src/000_index.tsx @@ -89,7 +89,7 @@ const App = () => { リアルタイムボイスチェンジャー
- つくよみちゃん ver.0.0α + {appState.appSettings.appSettings.charaName} ver.0.1 {githubLink} {manualLink} diff --git a/client/demo_so-vits-svc_40v2_c/src/001_globalHooks/001_useAppSettings.ts b/client/demo_so-vits-svc_40v2_c/src/001_globalHooks/001_useAppSettings.ts index a8382837..14990ac8 100644 --- a/client/demo_so-vits-svc_40v2_c/src/001_globalHooks/001_useAppSettings.ts +++ b/client/demo_so-vits-svc_40v2_c/src/001_globalHooks/001_useAppSettings.ts @@ -4,12 +4,14 @@ export type AppSettings = { charaName: string, psdFile: string, motionFile: string, + motionSpeedRate: number } const InitialAppSettings: AppSettings = { charaName: "", psdFile: "", motionFile: "", + motionSpeedRate: 1 } export type AppSettingStates = { diff --git a/client/demo_so-vits-svc_40v2_c/src/001_globalHooks/100_usePsdAnimation.ts b/client/demo_so-vits-svc_40v2_c/src/001_globalHooks/100_usePsdAnimation.ts index 00b3f3e7..3618d1ec 100644 --- a/client/demo_so-vits-svc_40v2_c/src/001_globalHooks/100_usePsdAnimation.ts +++ b/client/demo_so-vits-svc_40v2_c/src/001_globalHooks/100_usePsdAnimation.ts @@ -7,7 +7,7 @@ type PsdAnimationState = { }; export type PsdAnimationStateAndMethod = PsdAnimationState & { - loadPsd: (psdFile: string, motionFile: string) => Promise + loadPsd: (psdFile: string, motionFile: string, speedRate: number) => Promise start: () => Promise switchNormalMotion: () => Promise switchTalkingMotion: () => Promise @@ -20,12 +20,13 @@ export const usePsdAnimation = (): PsdAnimationStateAndMethod => { }, []) const [psdAnimationInitialized, setPsdAnimationInitialized] = useState(false) - const loadPsd = async (psdFile: string, motionFile: string) => { + const loadPsd = async (psdFile: string, motionFile: string, speedRate: number) => { const psd = await (await fetch(psdFile)).arrayBuffer() const motion = await (await fetch(motionFile)).json() as AnimationFrameInfo[] const canvas = document.getElementById(TSUKUYOMI_CANVAS) as HTMLCanvasElement // const c = generateConfig(psdFile, canvas, 640, 480, true) const c = generateConfig(psd, canvas, 640, 480, false) + c.processorURL = "https://cdn.jsdelivr.net/npm/@dannadori/psdanimator@1.0.17/dist/process.js" c.transfer = [c.canvas] await w.init(c) console.log("[psd animator] Initialized") @@ -38,34 +39,16 @@ export const usePsdAnimation = (): PsdAnimationStateAndMethod => { await w.execute(p1) console.log("[psd animator] Set motion") setPsdAnimationInitialized(true) + + const p3: PSDAnimatorParams = { + type: "SET_WAIT_RATE", + waitRate: speedRate, + transfer: [] + } + await w.execute(p3) } - // "ROOT_!眉 _*通常眉", - // "ROOT_!眉 _*通常眉:少し下げ", - // "ROOT_!眉 _*喜び・驚き", - // "ROOT_!目_*通常目", - // "ROOT_!目_*目を少し細める ★デフォルト", - // "ROOT_!目_*目を細める", - // "ROOT_!目_*目を閉じる", - // "ROOT_!目_*目を閉じて微笑む", - // "ROOT_!頬 _*通常", - // "ROOT_!口 _*口を閉じて微笑む", - // "ROOT_!口 _*小さく笑う", - // "ROOT_!口 _*大きく笑う", - // "ROOT_!髪(おさげ)_!髪(おさげ) ※選択肢なし", - // "ROOT_!左腕_*左手を下げる", - // "ROOT_!左腕_*左手でご案内", - // "ROOT_!左腕_*左手を胸の前に:グー", - // "ROOT_!左腕_*左手を胸の前に:パー", - // "ROOT_!左腕_*左手を口に当てる", - // "ROOT_!右腕_*右手を下げる", - // "ROOT_!右腕_*右手でご案内", - // "ROOT_!右腕_*右手を胸の前に:グー", - // "ROOT_!右腕_*右手を胸の前に:パー", - // "ROOT_!右腕_*右手を口に当てる", - // "ROOT_!体_!体 ※選択肢なし" - const start = async () => { const p3: PSDAnimatorParams = { type: "START", diff --git a/client/demo_so-vits-svc_40v2_c/src/001_provider/001_AppStateProvider.tsx b/client/demo_so-vits-svc_40v2_c/src/001_provider/001_AppStateProvider.tsx index 11ecb4d4..1402d79e 100644 --- a/client/demo_so-vits-svc_40v2_c/src/001_provider/001_AppStateProvider.tsx +++ b/client/demo_so-vits-svc_40v2_c/src/001_provider/001_AppStateProvider.tsx @@ -44,7 +44,7 @@ export const AppStateProvider = ({ children }: Props) => { useEffect(() => { if (appSettings.appSettings.charaName.length > 0) { - psdAnimationState.loadPsd(appSettings.appSettings.psdFile, appSettings.appSettings.motionFile) + psdAnimationState.loadPsd(appSettings.appSettings.psdFile, appSettings.appSettings.motionFile, appSettings.appSettings.motionSpeedRate) } }, [appSettings.appSettings])