From 92b20b0dd2d1bd926bbb5ec6f1faf891a9cf4c64 Mon Sep 17 00:00:00 2001 From: Neko Ayaka Date: Thu, 21 May 2026 02:25:04 +0800 Subject: [PATCH] fix(stage-*): many live2d and vrm issues, default values were missing --- apps/stage-pocket/src/pages/index.vue | 33 ++-- .../src/renderer/pages/index.vue | 10 +- apps/stage-web/src/pages/index.vue | 35 ++-- packages/i18n/src/locales/en/settings.yaml | 12 +- .../i18n/src/locales/zh-Hans/settings.yaml | 12 +- .../ViewControls/SliderControls.vue | 70 -------- .../src/components/scenes/Live2D.vue | 39 +++-- .../src/components/scenes/live2d/Model.vue | 7 +- .../composables/live2d/eye-tracking.test.ts | 79 +++++++++ .../src/composables/live2d/eye-tracking.ts | 41 +++-- .../src/composables/live2d/live2d.test.ts | 63 +++++++ .../src/composables/live2d/live2d.ts | 20 +-- .../composables/live2d/motion-manager.test.ts | 138 +++++++++++++++ .../src/composables/live2d/motion-manager.ts | 14 +- .../src/components/Controls/OrbitControls.vue | 11 +- .../components/Controls/SliderControls.vue | 83 --------- .../src/components/Controls/index.ts | 1 - .../src/components/Model/VRMModel.vue | 23 ++- .../src/components/ThreeScene.vue | 33 ++-- .../src/composables/eye-tracking.test.ts | 93 ++++++++++ .../src/composables/eye-tracking.ts | 63 ++++--- .../stage-ui-three/src/stores/model-store.ts | 12 +- .../settings/model-settings/live2d.vue | 42 ++++- .../settings/model-settings/preview-stage.vue | 17 +- .../stage-ui/src/components/scenes/Stage.vue | 10 +- .../components/scenes/ViewControlSlider.vue | 162 ++++++++++++++++++ .../stage-ui/src/components/scenes/index.ts | 1 + 27 files changed, 807 insertions(+), 317 deletions(-) delete mode 100644 packages/stage-ui-live2d/src/components/ViewControls/SliderControls.vue create mode 100644 packages/stage-ui-live2d/src/composables/live2d/eye-tracking.test.ts create mode 100644 packages/stage-ui-live2d/src/composables/live2d/live2d.test.ts create mode 100644 packages/stage-ui-live2d/src/composables/live2d/motion-manager.test.ts delete mode 100644 packages/stage-ui-three/src/components/Controls/SliderControls.vue create mode 100644 packages/stage-ui-three/src/composables/eye-tracking.test.ts create mode 100644 packages/stage-ui/src/components/scenes/ViewControlSlider.vue diff --git a/apps/stage-pocket/src/pages/index.vue b/apps/stage-pocket/src/pages/index.vue index 6ca63e1f7..963ac98ed 100644 --- a/apps/stage-pocket/src/pages/index.vue +++ b/apps/stage-pocket/src/pages/index.vue @@ -11,14 +11,14 @@ import { BackgroundProvider } from '@proj-airi/stage-layouts/components/Backgrou import { useBackgroundThemeColor } from '@proj-airi/stage-layouts/composables/theme-color' import { useBackgroundStore } from '@proj-airi/stage-layouts/stores/background' import { IS_DEV } from '@proj-airi/stage-shared' -import { WidgetStage } from '@proj-airi/stage-ui/components/scenes' +import { ViewControlSlider, WidgetStage } from '@proj-airi/stage-ui/components/scenes' import { useAudioRecorder } from '@proj-airi/stage-ui/composables/audio/audio-recorder' import { useVAD } from '@proj-airi/stage-ui/stores/ai/models/vad' import { useChatOrchestratorStore } from '@proj-airi/stage-ui/stores/chat' import { useConsciousnessStore } from '@proj-airi/stage-ui/stores/modules/consciousness' import { useHearingSpeechInputPipeline } from '@proj-airi/stage-ui/stores/modules/hearing' import { useProvidersStore } from '@proj-airi/stage-ui/stores/providers' -import { useSettingsAudioDevice } from '@proj-airi/stage-ui/stores/settings' +import { useSettings, useSettingsAudioDevice } from '@proj-airi/stage-ui/stores/settings' import { breakpointsTailwind, useBreakpoints, useMouse } from '@vueuse/core' import { storeToRefs } from 'pinia' import { computed, onMounted, onUnmounted, ref, useTemplateRef, watch } from 'vue' @@ -38,6 +38,7 @@ const isMobile = breakpoints.smaller('md') const backgroundStore = useBackgroundStore() const { selectedOption, sampledColor } = storeToRefs(backgroundStore) const backgroundSurface = useTemplateRef>('backgroundSurface') +const { stageModelRenderer } = storeToRefs(useSettings()) const { syncBackgroundTheme } = useBackgroundThemeColor({ backgroundSurface, selectedOption, sampledColor }) onMounted(() => syncBackgroundTheme()) @@ -189,15 +190,25 @@ watch([stream, () => vadLoaded.value], async ([s, loaded]) => {
- +
+
+ +
+ +