diff --git a/app/pages/PageEnigma/js/editor.ts b/app/pages/PageEnigma/js/editor.ts index 4ea7822fff..9640994354 100644 --- a/app/pages/PageEnigma/js/editor.ts +++ b/app/pages/PageEnigma/js/editor.ts @@ -441,6 +441,28 @@ class Editor { loadingBarIsShowing.value = false; } + public async newScene(){ + this.activeScene.clear(); + this.audio_engine = new AudioEngine(); + this.emotion_engine = new EmotionEngine(this.version); + this.transform_engine = new TransformEngine(this.version); + this.lipsync_engine = new LipSyncEngine(); + this.animation_engine = new AnimationEngine(this.version); + + this.timeline = new TimeLine( + this, + this.audio_engine, + this.transform_engine, + this.lipsync_engine, + this.animation_engine, + this.emotion_engine, + this.activeScene, + this.camera, + this.mouse, + this.camera_name, + ); + } + // Token comes in from the front end to load the scene from the site. public async testBatchRequest() { const result = await this.api_manager.getMediaBatch([ diff --git a/app/pages/PageEnigma/js/scene.ts b/app/pages/PageEnigma/js/scene.ts index 4cc05e5310..1b42c1fe37 100644 --- a/app/pages/PageEnigma/js/scene.ts +++ b/app/pages/PageEnigma/js/scene.ts @@ -50,6 +50,12 @@ class Scene { this._create_camera_obj(); } + clear() { + this.scene.children.forEach(child => { + this.scene.remove(child); + }); + } + instantiate(name: string, pos: THREE.Vector3 = new THREE.Vector3(0, 0, 0)) { const material = new THREE.MeshPhongMaterial({ color: 0xdacbce }); material.shininess = 0.0;