From 59acb45fe7181668b24acad954ab55e1a9aa7f19 Mon Sep 17 00:00:00 2001 From: Quicksticks-oss Date: Thu, 4 Apr 2024 22:23:32 -0400 Subject: [PATCH 1/7] animations --- .../contexts/TrackContext/TrackProvider.tsx | 37 ++++++++++++++++++- app/pages/PageEnigma/js/editor.ts | 25 +++++++++++-- 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/app/pages/PageEnigma/contexts/TrackContext/TrackProvider.tsx b/app/pages/PageEnigma/contexts/TrackContext/TrackProvider.tsx index 936a4577dd..3c2a7efda1 100644 --- a/app/pages/PageEnigma/contexts/TrackContext/TrackProvider.tsx +++ b/app/pages/PageEnigma/contexts/TrackContext/TrackProvider.tsx @@ -81,11 +81,46 @@ export const TrackProvider = ({ children }: Props) => { useEffect(() => { setAnimationClips([{ version: 1, - media_id: "m_w5t517krrf63f3tj2288vsffmj87zw", + media_id: "m_s7d4ems68sb2vqj4pdje1rc15q3ycp", type: ClipType.ANIMATION, length: 25, name: "Walk", }, + { + version: 1, + media_id: "m_yzreg1494d08aepezj74607d2ascep", + type: ClipType.ANIMATION, + length: 100, + name: "Sitting", + }, + { + version: 1, + media_id: "m_qepzjytd4ahd5askdt2ngrwzj2aa3f", + type: ClipType.ANIMATION, + length: 100, + name: "Idle", + }, + { + version: 1, + media_id: "m_v06h821hj4dvst0mzm575jdka31f41", + type: ClipType.ANIMATION, + length: 100, + name: "Punch", + }, + { + version: 1, + media_id: "m_q92keqa05gds69zyd8mkep7z9338t8", + type: ClipType.ANIMATION, + length: 100, + name: "Jump", + }, + { + version: 1, + media_id: "m_0qmgsyxh5ng9c9ac3m0snzdqqs5q60", + type: ClipType.ANIMATION, + length: 100, + name: "Dance", + }, ]); setAudioClips([ { diff --git a/app/pages/PageEnigma/js/editor.ts b/app/pages/PageEnigma/js/editor.ts index 2692f241b0..1461a00866 100644 --- a/app/pages/PageEnigma/js/editor.ts +++ b/app/pages/PageEnigma/js/editor.ts @@ -651,8 +651,8 @@ class Editor { async _test_demo() { // note the database from the server is the source of truth for all the data. // Test code here - const object: THREE.Object3D = await this.activeScene.load_glb( - "m_r7w1tmkx2jg8nznr3hyzj4k6zhfh7d", + const object: THREE.Object3D = await this.activeScene.load_glb_absolute( + "./resources/R_XBot.glb", ); object.uuid = "CH1"; @@ -1034,10 +1034,29 @@ class Editor { URL.revokeObjectURL(url); document.body.removeChild(downloadLink); - const data = await this.api_manager.uploadMedia(blob, "render.mp4"); + const data: any = await this.api_manager.uploadMedia(blob, "render.mp4"); + console.log("data", data) + + if (data == null) { return; } + let upload_token = data['upload_token']; + console.log(upload_token); // Create a link to download the file stylize video using api .. //{"success":true,"upload_token":"mu_x9kr5cfafn512pjbygdszvbdpktrr"} payload + const result = await this.api_manager + .stylizeVideo( + upload_token, + this.art_style, + this.positive_prompt, + this.negative_prompt, + Visibility.Public, + ) + .catch((error) => { + console.log(error); + }); + + console.log(result); + } async generateFrame() { From 095de8440e5528fed3eb6941f6909107815b65d8 Mon Sep 17 00:00:00 2001 From: Quicksticks-oss Date: Thu, 4 Apr 2024 22:28:52 -0400 Subject: [PATCH 2/7] added animations now working on deletion of clips. --- app/pages/PageEnigma/js/animation_engine.ts | 4 ++-- app/pages/PageEnigma/js/editor.ts | 4 ++-- app/pages/PageEnigma/js/timeline.ts | 6 ++++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/pages/PageEnigma/js/animation_engine.ts b/app/pages/PageEnigma/js/animation_engine.ts index ba64f6c54d..59988fe5ff 100644 --- a/app/pages/PageEnigma/js/animation_engine.ts +++ b/app/pages/PageEnigma/js/animation_engine.ts @@ -11,14 +11,14 @@ export class AnimationEngine { } load_object(object_uuid: string, media_id:string, clip_name: string) { - this.clips[object_uuid] = new AnimationClip( + this.clips[object_uuid+media_id] = new AnimationClip( this.version, media_id, "glb", object_uuid, 1.0, 1.0, clip_name); - this.clips[object_uuid]._load_animation(); + this.clips[object_uuid+media_id]._load_animation(); } } diff --git a/app/pages/PageEnigma/js/editor.ts b/app/pages/PageEnigma/js/editor.ts index 1461a00866..d9aa785238 100644 --- a/app/pages/PageEnigma/js/editor.ts +++ b/app/pages/PageEnigma/js/editor.ts @@ -651,8 +651,8 @@ class Editor { async _test_demo() { // note the database from the server is the source of truth for all the data. // Test code here - const object: THREE.Object3D = await this.activeScene.load_glb_absolute( - "./resources/R_XBot.glb", + const object: THREE.Object3D = await this.activeScene.load_glb( + "m_77z28zfaxc3sdtt5cc68vpz2n40qed", ); object.uuid = "CH1"; diff --git a/app/pages/PageEnigma/js/timeline.ts b/app/pages/PageEnigma/js/timeline.ts index 7661c82672..a61438f8de 100644 --- a/app/pages/PageEnigma/js/timeline.ts +++ b/app/pages/PageEnigma/js/timeline.ts @@ -255,6 +255,8 @@ export class TimeLine { } public async deleteClip(data: any) { console.log(data); + let json_data = data['data']; + let clip_uuid = json_data['clip_uuid']; } public async scrubberUpdate(data: any) { @@ -390,8 +392,8 @@ export class TimeLine { } } else if (element.type === ClipType.ANIMATION) { if (object) { - await this.animation_engine.clips[object.uuid].play(object); - this.animation_engine.clips[object.uuid].step( + await this.animation_engine.clips[object.uuid+element.media_id].play(object); + this.animation_engine.clips[object.uuid+element.media_id].step( this.scrubber_frame_position / 120, // Double FPS for best result. ); } From 97f56bc6c1c14667e4360d9942fe24b92637a63c Mon Sep 17 00:00:00 2001 From: Quicksticks-oss Date: Thu, 4 Apr 2024 22:33:04 -0400 Subject: [PATCH 3/7] added removal of clips. --- app/pages/PageEnigma/js/timeline.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app/pages/PageEnigma/js/timeline.ts b/app/pages/PageEnigma/js/timeline.ts index a61438f8de..d1d7463eeb 100644 --- a/app/pages/PageEnigma/js/timeline.ts +++ b/app/pages/PageEnigma/js/timeline.ts @@ -253,12 +253,23 @@ export class TimeLine { } } } + public async deleteClip(data: any) { console.log(data); let json_data = data['data']; - let clip_uuid = json_data['clip_uuid']; - } + let object_uuid = data["data"]["object_uuid"]; + let media_id = data["data"]["media_id"]; + let type = data['type'] + for (let i = 0; i < this.timeline_items.length; i++) { + const element = this.timeline_items[i]; + if (element.media_id == media_id && element.object_uuid == object_uuid) { + this.timeline_items.splice(i, 1); + break; + } + } + } + public async scrubberUpdate(data: any) { console.log(data); } From 9590be33c75c4bffdf114dfebd0d44553c2435fb Mon Sep 17 00:00:00 2001 From: Quicksticks-oss Date: Thu, 4 Apr 2024 22:36:11 -0400 Subject: [PATCH 4/7] quick typo fix. --- app/pages/PageEnigma/js/timeline.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/pages/PageEnigma/js/timeline.ts b/app/pages/PageEnigma/js/timeline.ts index d1d7463eeb..dbe737701d 100644 --- a/app/pages/PageEnigma/js/timeline.ts +++ b/app/pages/PageEnigma/js/timeline.ts @@ -321,7 +321,6 @@ export class TimeLine { } private async resetScene() { - this.timeline_limit = this.getEndPoint(); for (const element of this.timeline_items) { if (element.type == "transform") { const object = this.scene.get_object_by_uuid(element.object_uuid); @@ -354,7 +353,7 @@ export class TimeLine { // called by the editor update loop on each frame public async update() { //if (this.is_playing == false) return; // start and stop - + this.timeline_limit = this.getEndPoint(); if (this.is_playing) { this.current_time += 1; this.pushEvent(fromEngineActions.UPDATE_TIME, { @@ -381,12 +380,12 @@ export class TimeLine { const object = this.scene.get_object_by_uuid(element.object_uuid); if (element.type === ClipType.TRANSFORM) { if (object && this.transform_engine.clips[element.object_uuid]) { - this.transform_engine.clips[element.object_uuid].step( + this.transform_engine.clips[element.object_uuid+element.media_id].step( object, element.offset, this.scrubber_frame_position, ); - element.length = this.transform_engine.clips[element.object_uuid].length; + element.length = this.transform_engine.clips[element.object_uuid+element.media_id].length; } } else if (element.type == "audio") { if (this.scrubber_frame_position + 1 >= element.length) { From 9c6f32276a4f2592704c37dcd48a17062024cbf9 Mon Sep 17 00:00:00 2001 From: Quicksticks-oss Date: Thu, 4 Apr 2024 22:37:34 -0400 Subject: [PATCH 5/7] fixed reset function. --- app/pages/PageEnigma/js/timeline.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/pages/PageEnigma/js/timeline.ts b/app/pages/PageEnigma/js/timeline.ts index dbe737701d..cf045aa80e 100644 --- a/app/pages/PageEnigma/js/timeline.ts +++ b/app/pages/PageEnigma/js/timeline.ts @@ -330,7 +330,7 @@ export class TimeLine { } else if (element.type == "audio") { this.audio_engine.loadClip(element.media_id); } else if (element.type == "animation") { - this.animation_engine.clips[element.object_uuid].stop(); + this.animation_engine.clips[element.object_uuid+element.media_id].stop(); } else if (element.type == "lipsync") { this.lipSync_engine.clips[element.object_uuid].reset(); } else { @@ -380,12 +380,12 @@ export class TimeLine { const object = this.scene.get_object_by_uuid(element.object_uuid); if (element.type === ClipType.TRANSFORM) { if (object && this.transform_engine.clips[element.object_uuid]) { - this.transform_engine.clips[element.object_uuid+element.media_id].step( + this.transform_engine.clips[element.object_uuid].step( object, element.offset, this.scrubber_frame_position, ); - element.length = this.transform_engine.clips[element.object_uuid+element.media_id].length; + element.length = this.transform_engine.clips[element.object_uuid].length; } } else if (element.type == "audio") { if (this.scrubber_frame_position + 1 >= element.length) { From 865771de09b945d800267c868ae7a5ca78f97644 Mon Sep 17 00:00:00 2001 From: Quicksticks-oss Date: Thu, 4 Apr 2024 22:41:33 -0400 Subject: [PATCH 6/7] Fixed timeline extra camera clip. --- app/pages/PageEnigma/js/editor.ts | 18 ------------------ app/pages/PageEnigma/js/timeline.ts | 3 ++- 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/app/pages/PageEnigma/js/editor.ts b/app/pages/PageEnigma/js/editor.ts index d9aa785238..bf42059add 100644 --- a/app/pages/PageEnigma/js/editor.ts +++ b/app/pages/PageEnigma/js/editor.ts @@ -337,15 +337,6 @@ class Editor { ); this.cam_obj = this.activeScene.get_object_by_name("::CAM::"); - if (this.cam_obj) { - this.addTransformClipBase( - "Camera Object", - "camera", - this.cam_obj, - 0, - 150, - ); - } this.dispatchAppUiState({ type: APPUI_ACTION_TYPES.UPDATE_EDITOR_LOADINGBAR, @@ -825,15 +816,6 @@ class Editor { updateLoop(time: number) { if (this.cam_obj == undefined) { this.cam_obj = this.activeScene.get_object_by_name("::CAM::"); - if (this.cam_obj) { - this.addTransformClipBase( - "Camera Object", - "camera", - this.cam_obj, - 0, - 150, - ); - } } // Updates debug stats. diff --git a/app/pages/PageEnigma/js/timeline.ts b/app/pages/PageEnigma/js/timeline.ts index cf045aa80e..d2e747be47 100644 --- a/app/pages/PageEnigma/js/timeline.ts +++ b/app/pages/PageEnigma/js/timeline.ts @@ -64,7 +64,7 @@ export class TimeLine { ) { this.timeline_items = []; this.absolute_end = 60 * 12; - this.timeline_limit = this.absolute_end; // 5 seconds + this.timeline_limit = 0; // 5 seconds this.is_playing = false; this.scrubber_frame_position = 0; // in frames into the tl @@ -343,6 +343,7 @@ export class TimeLine { private getEndPoint(): number { let longest = 0; for (const element of this.timeline_items) { + console.log(element); if (longest < element.length) { longest = element.length; } From 86a639cbd39a23b43e3a11e2b08db45368f95acf Mon Sep 17 00:00:00 2001 From: Quicksticks-oss Date: Thu, 4 Apr 2024 22:42:26 -0400 Subject: [PATCH 7/7] Cleaned up some logs. --- app/pages/PageEnigma/js/timeline.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/app/pages/PageEnigma/js/timeline.ts b/app/pages/PageEnigma/js/timeline.ts index d2e747be47..093c6f9da0 100644 --- a/app/pages/PageEnigma/js/timeline.ts +++ b/app/pages/PageEnigma/js/timeline.ts @@ -203,7 +203,6 @@ export class TimeLine { end_offset)); return; } else { - console.log("Audio!") this.audio_engine.loadClip(media_id); } break; @@ -239,8 +238,6 @@ export class TimeLine { public async updateClip(data: any) { // only length and offset changes here. - console.log(data); - let object_uuid = data["data"]["object_uuid"]; const media_id = data["data"]["media_id"]; const offset = data["data"]["offset"]; @@ -255,7 +252,6 @@ export class TimeLine { } public async deleteClip(data: any) { - console.log(data); let json_data = data['data']; let object_uuid = data["data"]["object_uuid"]; let media_id = data["data"]["media_id"]; @@ -343,7 +339,6 @@ export class TimeLine { private getEndPoint(): number { let longest = 0; for (const element of this.timeline_items) { - console.log(element); if (longest < element.length) { longest = element.length; }