work
save startup to fix blender opening on 2nd monitor
This commit is contained in:
@@ -10,13 +10,13 @@ D:\Work\9 iClone\Amazon\
|
||||
D:\Amazon\00_external-files\
|
||||
N:\1. CHARACTERS\remapping\
|
||||
[Recent]
|
||||
T:\250827_FestivalTurf\Blends\animations\07 Final Touches And Maintenance\blendcache_Visual_new_final\drinkfluid\
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Waterspider A\
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Deliverable\WSA\
|
||||
P:\260217_Jarvis-Defense\Blends\animations\
|
||||
A:\1 Amazon_Active_Projects\260225_Problem-Solve_2026\Blends\animations\
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\img-BG\
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Deliverable\
|
||||
A:\1 Amazon_Active_Projects\0 AssetArchive\
|
||||
A:\1 Amazon_Active_Projects\1 BlenderAssets\
|
||||
C:\Users\Nathan\Desktop\
|
||||
A:\1 Amazon_Active_Projects\1 BlenderAssets\Amazon\Mat\
|
||||
A:\1 Amazon_Active_Projects\1 BlenderAssets\Amazon\
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Char\
|
||||
A:\1 Amazon_Active_Projects\0 AssetArchive\Amazon\
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Assets\Blends\
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Assets\Graphics\
|
||||
|
||||
+108
-65
@@ -1,12 +1,114 @@
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 1a_part1.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 1a_part2.blend
|
||||
T:\250827_FestivalTurf\Blends\animations\07 Final Touches And Maintenance\Visual_new_final.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\Shot_4.blend
|
||||
A:\1 Amazon_Active_Projects\260225_Problem-Solve_2026\Blends\animations\PS_2026_animation short 1a.blend
|
||||
C:\Users\Nathan\Downloads\Shot_5c.blend
|
||||
C:\Users\Nathan\Downloads\Shot_5b.blend
|
||||
C:\Users\Nathan\Downloads\Shot_4d_f.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\Shot_Q.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\Shot_2.blend
|
||||
F:\jobs\Shot_4d_f-4pth\Shot_4_redo_fall.flamenco.blend
|
||||
F:\jobs\Shot_5c\Shot_Q.flamenco.blend
|
||||
F:\jobs\Shot_5b\Shot_Q.flamenco.blend
|
||||
C:\Users\Nathan\Downloads\Visual_new_final\Visual_new_final.blend
|
||||
P:\250827_FestivalTurf\Blends\animations\07 Final Touches And Maintenance\Visual_new_final.blend
|
||||
C:\Users\Nathan\Downloads\Shot_7.blend
|
||||
F:\jobs\Shot_7-qlk2\Shot_4.flamenco.blend
|
||||
C:\Users\Nathan\Downloads\Shot_4.blend
|
||||
F:\jobs\Shot_7-p1na\Shot_4.flamenco.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\Shot_3_retimed.blend
|
||||
F:\jobs\Shot_3a-fpm9\Shot_3_retimed.flamenco.blend
|
||||
F:\jobs\Shot_1c-1rui\Shot_1.flamenco.blend
|
||||
C:\Users\Nathan\Downloads\Shot_2a.blend
|
||||
T:\260217_Jarvis-Defense\Blends\animations\Shot_4_redo_fall.blend
|
||||
C:\Users\Nathan\Downloads\Shot_1c.blend
|
||||
C:\Users\Nathan\Downloads\Shot_1b.blend
|
||||
F:\jobs\Shot_1b-qrzg\Shot_1.flamenco.blend
|
||||
C:\Users\Nathan\Downloads\Shot_1.flamenco.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Char\Priest_v3.0.blend
|
||||
F:\jobs\shot_2a-ja00\Shot_2.flamenco.blend
|
||||
C:\Users\Nathan\Downloads\Shot_3_retimed.flamenco.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 1b.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 1c.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_9o.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_9m.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_9k.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_9h.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 13bJ.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_9e.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_9b.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_9d.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 10bF.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_9a.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 13bC.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 13bD.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 9bC.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 9bG.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 9bB.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 9bD_2.blend
|
||||
T:\1 BlenderAssets\Amazon\Char\Cartoon3\Steve_v1.2.blend
|
||||
T:\1 BlenderAssets\Amazon\Char\Cartoon2\AS\Sarah_v3.3.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_4b.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_4a.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_2j.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_2i.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_1b.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_2a.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_1a.blend
|
||||
A:\1 Amazon_Active_Projects\1 BlenderAssets\Amazon\Scenes\AMZ-warehouse_v6.1_small.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 10bD.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_10a.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_9l.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_9c.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_8f.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_8d.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_8c.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_8g.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_5b.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 9a_v3.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 9a_v2.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_7b.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_7c.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_7a.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Assets\Blends\AMZ-warehouse_v6.2_small.blend
|
||||
T:\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 9bB.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_2f.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_2c.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\stills\i_noncon_OOG_9i.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 12C.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 12A.blend
|
||||
A:\1 Amazon_Active_Projects\1 BlenderAssets\Amazon\Char\Cartoon3\Liam_v1.2.blend
|
||||
A:\1 Amazon_Active_Projects\1 BlenderAssets\Amazon\Char\Cartoon3\Tony_v1.2.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Path 3\iDock_Path4_4d_red.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Path 3\iDock_Path4_4d_yellow.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Path 3\iDock_Path3_6_yellow.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Path 3\iDock_Path3_6_red.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Waterspider A\WS_A_go-cart loading_f.blend
|
||||
T:\260206_Dock_Unified\Blends\stills\Waterspider A\WS_A_go-cart loading_f.blend
|
||||
T:\260206_Dock_Unified\Blends\stills\Waterspider A\WS_A_go-cart loading_d.blend
|
||||
T:\260206_Dock_Unified\Blends\stills\Waterspider A\WS_A_go-cart loading_b.blend
|
||||
T:\260206_Dock_Unified\Blends\stills\Waterspider A\iWS_A_6.blend
|
||||
T:\260206_Dock_Unified\Blends\stills\Waterspider B\MISC_WS-B_swapping.blend
|
||||
T:\260206_Dock_Unified\Blends\animations\go_cart_loading\WS_A_go-cart loading_a.blend
|
||||
G:\Amazon\2024\240322_Amazon_Dock-Safety\blends\ANIMATIONS\Path 3\path 3 images\iDock_Path3_6.blend
|
||||
T:\260206_Dock_Unified\Blends\stills\Waterspider B\WS_A_go-cart loading_e.blend
|
||||
T:\260206_Dock_Unified\Blends\stills\Waterspider B\WS_A_go-cart loading_f.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Waterspider A\WS_A_go-cart loading_f_red.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Waterspider A\WS_A_go-cart loading_e.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Waterspider A\WS_A_go-cart loading_a.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Path 3\iDock_path3_4c.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\animations\Path 3\Path 3_Animation 3a.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\animations\Path 3\Path 3_Animation 3_Aa.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Path 3\iDock_Path3_6.blend
|
||||
T:\250827_FestivalTurf\Blends\animations\07 Final Touches And Maintenance\Visual_new_final.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 2e.blend
|
||||
T:\260206_Dock_Unified\Blends\animations\Path 3\Path 3_Animation 3_Aa.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\animations\Path 3\Path 3_Animation 3e.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\animations\Path 3\Path 3_Animation 3d.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\animations\Path 3\Path 3_Animation 3c.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\animations\Path 3\Path 3_Animation 3b.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 1a_part2.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 1a_part1.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\animations\Waterspider A\WS_A_move go-cart from trailer A.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Waterspider A\WS_A_go-cart loading_e_red.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Waterspider A\WS_A_go-cart loading_f_red.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Waterspider A\WS_A_go-cart loading_f.blend
|
||||
A:\1 Amazon_Active_Projects\260206_Dock_Unified\Blends\stills\Waterspider A\WS_A_go-cart loading_e.blend
|
||||
C:\Users\Nathan\Desktop\Untitled.blend
|
||||
A:\1 Amazon_Active_Projects\1 BlenderAssets\Amazon\Char\Cartoon1\Regina_v4.3.blend
|
||||
T:\1 BlenderAssets\Amazon\Char\Cartoon2\AS\Paul_v3.4.blend
|
||||
@@ -28,13 +130,9 @@ A:\1 Amazon_Active_Projects\260225_Problem-Solve_2026\Blends\animations\PS_2026_
|
||||
A:\1 Amazon_Active_Projects\260225_Problem-Solve_2026\Blends\animations\PS_2026_animation 5E.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 2f.blend
|
||||
A:\1 Amazon_Active_Projects\1 BlenderAssets\Amazon\Mat\MATERIALS_BSDF_pallette_v1.0.blend
|
||||
A:\1 Amazon_Active_Projects\1 BlenderAssets\Amazon\Scenes\AMZ-warehouse_v6.1_small.blend
|
||||
A:\1 Amazon_Active_Projects\1 BlenderAssets\Amazon\Scenes\AMZ-warehouse_v5.1.blend
|
||||
A:\1 Amazon_Active_Projects\1 BlenderAssets\Amazon\Scenes\AMZ-warehouse_BSDF_v4.0.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\3075 Decade Dr.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\Shot_Q.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Char\Priest_v3.0.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 2e.blend
|
||||
C:\Users\Nathan\Downloads\noncon_OOG_short_animation 2d.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 2d.blend
|
||||
A:\1 Amazon_Active_Projects\260317_NONCON_2026\Blends\animations\noncon_OOG_short_animation 9a.blend
|
||||
@@ -96,62 +194,7 @@ A:\1 Amazon_Active_Projects\260311_PnS-Beyond-Day-2\Blends\animations\P&S_BD2_an
|
||||
A:\1 Amazon_Active_Projects\260311_PnS-Beyond-Day-2\Blends\animations\P&S_BD2_animation 10b_part3.blend
|
||||
A:\1 Amazon_Active_Projects\260311_PnS-Beyond-Day-2\Blends\animations\P&S_BD2_animation 10b_part2.blend
|
||||
A:\1 Amazon_Active_Projects\260311_PnS-Beyond-Day-2\Blends\animations\P&S_BD2_animation 10b_part1.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\Shot_4.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\Shot_3_retimed.blend
|
||||
F:\jobs\Shot_4c\Shot_4.flamenco.blend
|
||||
F:\jobs\Shot_4e\Shot_4.flamenco.blend
|
||||
F:\jobs\Shot_4a\Shot_4.flamenco.blend
|
||||
F:\jobs\Shot_4g\Shot_4.flamenco.blend
|
||||
F:\jobs\Shot_1a-tqpj\Shot_1.flamenco.blend
|
||||
F:\jobs\Shot_6-4dkh\closeup.flamenco.blend
|
||||
F:\jobs\Shot_0_5a\Shot_0_5.flamenco.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\closeup.blend
|
||||
F:\jobs\Shot5c\Shot_Q.flamenco.blend
|
||||
F:\jobs\Shot5b\Shot_Q.flamenco.blend
|
||||
F:\jobs\Shot5a\Shot_Q.flamenco.blend
|
||||
A:\1 Amazon_Active_Projects\260311_PnS-Beyond-Day-2\Blends\stills\iP&S_BD2_11b.blend
|
||||
A:\1 Amazon_Active_Projects\260311_PnS-Beyond-Day-2\Blends\animations\P&S_BD2_animation 3a_part1.blend
|
||||
A:\1 Amazon_Active_Projects\260311_PnS-Beyond-Day-2\Blends\animations\P&S_BD2_animation 3a.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\Shot_2.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\Shot_1.blend
|
||||
C:\Users\Nathan\Downloads\Shot_1\Shot_1.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\Shot_0_5.blend
|
||||
T:\260217_Jarvis-Defense\Blends\animations\Shot_1.blend
|
||||
F:\jobs\iP&S_BD2_5a\P&S_BD2_animation 3a_part2.flamenco.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Props\City_bike.blend
|
||||
C:\Users\Nathan\Downloads\Shot5\Shot5c.blend
|
||||
C:\Users\Nathan\Downloads\Shot5\Shot5b.blend
|
||||
C:\Users\Nathan\Downloads\Shot5\Shot5a.blend
|
||||
C:\Users\Nathan\Downloads\Shot5\Shot_Q.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Downloads\uploads_files_3527670_Dry+van.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Vehicles\Ford 250_v2.0.blend
|
||||
F:\jobs\Shot_thur_5a\Shot_Q.flamenco.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Char\Chase_v3.0.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Char\Russell_v4.0.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\Shot_3.blend
|
||||
T:\260217_Jarvis-Defense\Assets\Blends\Char\Chase_v2.0.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Char\Priest_v2.0.blend
|
||||
D:\Work\9 iClone\Jarvis Defense\Blender\Dec_v5.blend
|
||||
C:\Users\Nathan\Desktop\Shot5c.blend
|
||||
C:\Users\Nathan\Downloads\startup.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\Shot_L.blend
|
||||
C:\Users\Nathan\Downloads\Shot_4_c.blend
|
||||
C:\Users\Nathan\Downloads\Shot_4.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\shot 3.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Vehicles\Ford 250.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Vehicles\Ford 250_NL.blend
|
||||
C:\Users\Nathan\AppData\Local\Temp\2026-03-10_11-52_Ford 250.blend
|
||||
F:\jobs\Shot_jeds_long_take-uwhb\Shot_4.flamenco.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Char\Chase_v2.0.blend
|
||||
\\NEXUS\proj\260217_Jarvis-Defense\Assets\Blends\Char\Chase_v3.0.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Char\Russell_v3.1.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Char\Russell_v3.0.blend
|
||||
D:\Work\9 iClone\Jarvis Defense\Blender\Kayla_Russell_v4.blend
|
||||
D:\Work\9 iClone\Jarvis Defense\Blender\Kayla_Russell_dress.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\Jarvis-Defense_L.blend
|
||||
P:\260217_Jarvis-Defense\Blends\animations\shot 2 avoid.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Vehicles\Pop Up Camper.blend
|
||||
C:\Users\Nathan\SynologyDrive\Desktop\260217_Jarvis-Defense\Blends\animations\Shot_4.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Char\Russell_v2.0.blend
|
||||
P:\260217_Jarvis-Defense\Assets\Blends\Char\Russell_v1.0.blend
|
||||
C:\Users\Nathan\SynologyDrive\Desktop\260217_Jarvis-Defense\Assets\Blends\Char\Russell_v2.0.blend
|
||||
|
||||
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -20,7 +20,7 @@
|
||||
bl_info = {
|
||||
"name": "Animation Layers",
|
||||
"author": "Tal Hershkovich",
|
||||
"version" : (2, 3, 5),
|
||||
"version" : (2, 3, 7),
|
||||
"blender" : (3, 2, 0),
|
||||
"location": "View3D - Properties - Animation Panel",
|
||||
"description": "Simplifying the NLA editor into an animation layers UI and workflow",
|
||||
|
||||
@@ -84,7 +84,7 @@ def make_annotations(cls):
|
||||
if bl_props:
|
||||
if '__annotations__' not in cls.__dict__:
|
||||
setattr(cls, '__annotations__', {})
|
||||
annotations = cls.__dict__['__annotations__']
|
||||
annotations = cls.__dict__.get('__annotations__', {})
|
||||
for k, v in bl_props.items():
|
||||
annotations[k] = v
|
||||
delattr(cls, k)
|
||||
@@ -1376,10 +1376,12 @@ def register(bl_info):
|
||||
# other considerations and suggestions from a security standpoint
|
||||
# "tokenstring" Need read api and read repo permission
|
||||
# updater.private_token = "glpat-K6GjFFka_J6o3GTbe3JK"
|
||||
updater.private_token = "glpat-js__ikigVSQ_tKWgjVn1"
|
||||
# updater.private_token = "glpat-js__ikigVSQ_tKWgjVn1"
|
||||
updater.private_token = "glpat-5rHfAdBG2Br3ww6H8U4vI286MQp1OjFpcXEK.01.100el42cj"
|
||||
|
||||
# choose your own username, must match website (not needed for GitLab)
|
||||
updater.user = ""
|
||||
|
||||
|
||||
# choose your own repository, must match git name for GitHUb and Bitbucket,
|
||||
# for GitLab use project ID (numbers only)
|
||||
updater.repo = "22294607"
|
||||
|
||||
@@ -2,7 +2,8 @@ import bpy
|
||||
import os
|
||||
import numpy as np
|
||||
from bpy_extras import anim_utils
|
||||
import sys
|
||||
import bisect
|
||||
# import sys
|
||||
|
||||
from bpy.app.handlers import persistent
|
||||
from . import bake_ops
|
||||
@@ -270,6 +271,7 @@ def register_layers(obj, nla_tracks):
|
||||
continue
|
||||
strip = track.strips[0]
|
||||
use_animated_influence(strip)
|
||||
strip.influence = 1
|
||||
|
||||
#updating the ui list with the nla track names
|
||||
def visible_layers(obj, nla_tracks):
|
||||
@@ -342,15 +344,20 @@ def use_animated_influence(strip):
|
||||
return
|
||||
fcu_len = len(strip.fcurves)
|
||||
strip.use_animated_influence = True
|
||||
|
||||
if fcu_len != len(strip.fcurves):
|
||||
if hasattr(strip.fcurves[0].keyframe_points, 'clear'):
|
||||
strip.fcurves[0].keyframe_points.clear()
|
||||
else:
|
||||
keyframe = strip.fcurves[0].keyframe_points[0]
|
||||
strip.fcurves[0].keyframe_points.remove(keyframe)
|
||||
|
||||
strip.influence = 1
|
||||
if len(strip.fcurves[0].keyframe_points):
|
||||
keyframes = strip.fcurves[0].keyframe_points
|
||||
# value = keyframes[0].co.y
|
||||
# print('influence value ', keyframes[0])
|
||||
if hasattr(keyframes, 'clear'):
|
||||
keyframes.clear()
|
||||
else:
|
||||
keyframe = keyframes[0]
|
||||
keyframes.remove(keyframe)
|
||||
|
||||
strip.influence = 1
|
||||
|
||||
def check_override_layers(obj):
|
||||
if obj.override_library is None:
|
||||
return False
|
||||
@@ -1291,6 +1298,7 @@ def load_action(self, context):
|
||||
subscriptions.frameend_update_callback()
|
||||
strip.use_sync_length = False
|
||||
use_animated_influence(strip)
|
||||
strip.influence = 1
|
||||
return
|
||||
subscriptions.subscriptions_remove()
|
||||
strip = track.strips[0]
|
||||
@@ -1941,6 +1949,7 @@ def add_animlayer(layer_name = 'Anim_Layer' , duplicate = False, index = 1, blen
|
||||
new_strip.blend_type = blend_type
|
||||
new_strip.use_sync_length = False
|
||||
use_animated_influence(new_strip)
|
||||
new_strip.influence = 1
|
||||
|
||||
return new_track
|
||||
|
||||
@@ -2324,12 +2333,13 @@ class ShareLayerKeys(bpy.types.Operator):
|
||||
|
||||
#if the group doesn't exist in the current layer then create one and assign it
|
||||
if fcu.group is None:
|
||||
if group.name in anim_data.action.groups:
|
||||
new_group = anim_data.action.groups[group.name]
|
||||
else:
|
||||
new_group = anim_data.action.groups.new(group.name)
|
||||
new_group = add_group_to_fcurve(obj, fcu, group.name)
|
||||
# if group.name in anim_data.action.groups:
|
||||
# new_group = anim_data.action.groups[group.name]
|
||||
# else:
|
||||
# new_group = anim_data.action.groups.new(group.name)
|
||||
|
||||
fcu.group = new_group
|
||||
# fcu.group = new_group
|
||||
|
||||
#exclude the frames that already exist in the current layer action fcurve
|
||||
if len(fcu.keyframe_points):
|
||||
@@ -2771,6 +2781,110 @@ def sync_frame_range(context):
|
||||
if use_frame_range:
|
||||
action.use_frame_range = True
|
||||
|
||||
class InfluenceNextKeyframe(bpy.types.Operator):
|
||||
"""Select the influence keyframes of the current layer"""
|
||||
bl_idname = "anim.influence_next_key"
|
||||
bl_label = "Move to the next influence keyframe"
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
anim_data = anim_data_type(context.object)
|
||||
return hasattr(anim_data,"nla_tracks") and len(anim_data.nla_tracks[context.object.als.layer_index].strips)
|
||||
|
||||
def execute(self, context):
|
||||
|
||||
strips = influence_get_strips(context)
|
||||
|
||||
current_frame = context.scene.frame_current
|
||||
# The next keyframes from all the strips together
|
||||
next_keyframes = []
|
||||
|
||||
#Assign selection to all strips
|
||||
for strip in strips:
|
||||
for fcu in strip.fcurves:
|
||||
if fcu.data_path != 'influence':
|
||||
continue
|
||||
if not len(fcu.keyframe_points):
|
||||
continue
|
||||
keys_len = len(fcu.keyframe_points)
|
||||
|
||||
#Get the selection of the current keys or the next one in the list
|
||||
keyframes = np.zeros(keys_len*2)
|
||||
fcu.keyframe_points.foreach_get('co', keyframes)
|
||||
frames = keyframes[::2]
|
||||
next_i = bisect.bisect_right(frames, current_frame)
|
||||
if next_i >= len(frames):
|
||||
continue
|
||||
next_frame = frames[next_i]
|
||||
next_keyframes.append(next_frame)
|
||||
|
||||
if not len(next_keyframes):
|
||||
return {'CANCELLED'}
|
||||
next_keyframes.sort()
|
||||
|
||||
next_i = bisect.bisect_right(next_keyframes, current_frame)
|
||||
if next_i >= len(next_keyframes):
|
||||
return {'CANCELLED'}
|
||||
|
||||
next_frame = next_keyframes[next_i]
|
||||
|
||||
context.scene.frame_set(int(next_frame))
|
||||
|
||||
return {'FINISHED'}
|
||||
|
||||
class InfluencePrevKeyframe(bpy.types.Operator):
|
||||
"""Select the influence keyframes of the current layer"""
|
||||
bl_idname = "anim.influence_prev_key"
|
||||
bl_label = "Move to the previous influence keyframe"
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
anim_data = anim_data_type(context.object)
|
||||
return hasattr(anim_data,"nla_tracks") and len(anim_data.nla_tracks[context.object.als.layer_index].strips)
|
||||
|
||||
def execute(self, context):
|
||||
|
||||
strips = influence_get_strips(context)
|
||||
|
||||
current_frame = context.scene.frame_current
|
||||
# The prev keyframes from all the strips together
|
||||
prev_keyframes = []
|
||||
|
||||
#Assign selection to all strips
|
||||
for strip in strips:
|
||||
for fcu in strip.fcurves:
|
||||
if fcu.data_path != 'influence':
|
||||
continue
|
||||
if not len(fcu.keyframe_points):
|
||||
continue
|
||||
keys_len = len(fcu.keyframe_points)
|
||||
|
||||
#Get the selection of the current keys or the prev one in the list
|
||||
keyframes = np.zeros(keys_len*2)
|
||||
fcu.keyframe_points.foreach_get('co', keyframes)
|
||||
frames = keyframes[::2]
|
||||
prev_i = bisect.bisect_left(frames, current_frame)
|
||||
if prev_i:
|
||||
prev_i -= 1
|
||||
prev_frame = frames[prev_i]
|
||||
prev_keyframes.append(prev_frame)
|
||||
|
||||
if not len(prev_keyframes):
|
||||
return {'CANCELLED'}
|
||||
prev_keyframes.sort()
|
||||
|
||||
prev_i = bisect.bisect_left(prev_keyframes, current_frame)
|
||||
if prev_i:
|
||||
prev_i -= 1
|
||||
|
||||
prev_frame = prev_keyframes[prev_i]
|
||||
context.scene.frame_set(int(prev_frame))
|
||||
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
class SelectInfluenceKeys(bpy.types.Operator):
|
||||
"""Select the influence keyframes of the current layer"""
|
||||
bl_idname = "anim.select_influence_keys"
|
||||
@@ -2921,8 +3035,8 @@ def panelFactory(space_type):
|
||||
|
||||
track = anim_data.nla_tracks[obj.als.layer_index]
|
||||
|
||||
col=layout.column(align = True)
|
||||
row = col.row()
|
||||
# col=layout.column(align = True)
|
||||
row = layout.row(align = True)
|
||||
|
||||
if not len(track.strips):
|
||||
return
|
||||
@@ -2933,18 +3047,22 @@ def panelFactory(space_type):
|
||||
#Drawing the influence slider
|
||||
if len(strip.fcurves[0].keyframe_points) and not strip.fcurves[0].mute:
|
||||
row.prop(strip, 'influence', slider = True, text = 'Influence')
|
||||
row.operator('anim.influence_prev_key', text = '', icon = 'PREV_KEYFRAME')
|
||||
row.separator(factor = 0.1)
|
||||
row.operator('anim.influence_next_key', text = '', icon = 'NEXT_KEYFRAME')
|
||||
else:
|
||||
row.prop(context.scene.als, 'influence', slider = True, text = 'Influence')
|
||||
# row.prop(obj.Anim_Layers[obj.als.layer_index], 'influence', slider = True, text = 'Influence')
|
||||
|
||||
#Influence SETTINGS
|
||||
row.separator(factor = 1.5)
|
||||
row.prop(context.scene.als, 'influence_settings', text ='', icon = 'SETTINGS')
|
||||
if context.scene.als.influence_settings:
|
||||
split = layout.split(factor = 0.4)
|
||||
global_local = 'Global' if context.scene.als.influence_global == True else 'Local'
|
||||
split.prop(context.scene.als, 'influence_global', text = global_local, toggle = True)
|
||||
|
||||
row = split.row()
|
||||
row = split.row(align = True)
|
||||
row.alignment = 'RIGHT'
|
||||
#Drawing Select influence keys
|
||||
row.operator('anim.select_influence_keys', text="", icon = 'RESTRICT_SELECT_OFF')
|
||||
@@ -2957,6 +3075,7 @@ def panelFactory(space_type):
|
||||
mute_icon = 'MUTE_IPO_OFF' if track.strips[0].fcurves[0].mute else 'MUTE_IPO_ON'
|
||||
row.prop(obj.als, 'influence_mute', icon_only=True, icon = mute_icon)
|
||||
|
||||
row.separator(factor = 1.5)
|
||||
lock_icon = 'DECORATE_LOCKED' if strip.fcurves[0].lock else 'DECORATE_UNLOCKED'
|
||||
row.prop(obj.als, 'influence_lock', icon_only=True, icon = lock_icon)
|
||||
|
||||
@@ -3289,7 +3408,7 @@ def remove_empty_slots(action):
|
||||
|
||||
classes = (AutoCustomFrameRange, ResetLayerKeyframes, LAYERS_UL_list, AddAnimLayer, ExtractSelection, ExtractMarkers, DuplicateAnimLayer, RemoveAnimLayer, CyclicFcurves, RemoveFcurves, MoveAnimLayerUp,
|
||||
MoveAnimLayerDown, SelectBonesInLayer, ClearNLA, ClearActiveAction, OverrideError, AddAction, SyncActionLength, RemoveAction, ShareLayerKeys, SelectInfluenceKeys,
|
||||
AddSlot, RemoveSlot, EditAllLayersOperator)
|
||||
AddSlot, RemoveSlot, EditAllLayersOperator, InfluencePrevKeyframe, InfluenceNextKeyframe)
|
||||
|
||||
spaceTypes = ['VIEW_3D', 'GRAPH_EDITOR', 'DOPESHEET_EDITOR', 'NLA_EDITOR']
|
||||
# panel_classes = (cls for spaceType in spaceTypes for cls in panelFactory(spaceType))
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"last_check": "2026-03-13 10:11:53.265170",
|
||||
"backup_date": "December-11-2025",
|
||||
"last_check": "2026-03-20 10:19:09.867653",
|
||||
"backup_date": "March-20-2026",
|
||||
"update_ready": false,
|
||||
"ignore": false,
|
||||
"just_restored": false,
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
bl_info = {
|
||||
"name": "Animation Layers",
|
||||
"author": "Tal Hershkovich",
|
||||
"version" : (2, 3, 4),
|
||||
"version" : (2, 3, 5),
|
||||
"blender" : (3, 2, 0),
|
||||
"location": "View3D - Properties - Animation Panel",
|
||||
"description": "Simplifying the NLA editor into an animation layers UI and workflow",
|
||||
|
||||
@@ -1049,13 +1049,13 @@ def only_selected_bones(self, context):
|
||||
def data_type_update(self, context):
|
||||
obj = self.id_data
|
||||
anim_data = anim_data_type(obj)
|
||||
obj.als['layer_index'] = 0
|
||||
if anim_data is None:
|
||||
obj.Anim_Layers.clear()
|
||||
return
|
||||
if not len(anim_data.nla_tracks):
|
||||
obj.Anim_Layers.clear()
|
||||
return
|
||||
obj.als.layer_index = 0
|
||||
register_layers(obj, anim_data.nla_tracks)
|
||||
|
||||
#change bake method if working with shapekeys
|
||||
@@ -1980,12 +1980,14 @@ class AddAnimLayer(bpy.types.Operator):
|
||||
#starting animation layers and getting the default sync layer names
|
||||
obj.als.auto_rename = context.preferences.addons[__package__].preferences.auto_rename
|
||||
#Adding base layer
|
||||
obj.als['layer_index'] = 0
|
||||
add_animlayer(base_name, index = 0, blend_type = blend_type)
|
||||
#using a temporary variable instead of calling update_track_list all the time with obj.als.layer_index
|
||||
|
||||
index = 0
|
||||
|
||||
if anim_data.action:
|
||||
add_animlayer(layer_name, blend_type = blend_type)
|
||||
add_animlayer(layer_name, index, blend_type = blend_type)
|
||||
index += 1
|
||||
anim_data.action.use_fake_user = True
|
||||
anim_data.action = None
|
||||
@@ -2705,10 +2707,10 @@ class AddSlot(bpy.types.Operator):
|
||||
return {'FINISHED'}
|
||||
if not hasattr(anim_data, 'action_slot'):
|
||||
return {'FINISHED'}
|
||||
index = obj.als.layer_index
|
||||
if not len(anim_data.nla_tracks[index].strips):
|
||||
return {'FINISHED'}
|
||||
|
||||
index = obj.als.layer_index
|
||||
|
||||
strip = anim_data.nla_tracks[index].strips[0]
|
||||
action = strip.action
|
||||
@@ -2734,10 +2736,10 @@ class RemoveSlot(bpy.types.Operator):
|
||||
return {'FINISHED'}
|
||||
if not hasattr(anim_data, 'action_slot'):
|
||||
return {'FINISHED'}
|
||||
index = obj.als.layer_index
|
||||
if not len(anim_data.nla_tracks[index].strips):
|
||||
return {'FINISHED'}
|
||||
|
||||
index = obj.als.layer_index
|
||||
strip = anim_data.nla_tracks[index].strips[0]
|
||||
action = strip.action
|
||||
action_slot = strip.action_slot
|
||||
@@ -3260,7 +3262,12 @@ def add_action_slot(obj, action):
|
||||
|
||||
if action.slots:
|
||||
for slot in action.slots:
|
||||
if obj in slot.users():
|
||||
if obj.als.data_type != slot.target_id_type:
|
||||
continue
|
||||
|
||||
# Shapekey slot users are the shapekey data, object slot users are the objects
|
||||
item = obj.data.shape_keys if hasattr(obj.data, 'shape_keys') and obj.als.data_type == 'KEY' else obj
|
||||
if item in slot.users():
|
||||
return slot
|
||||
|
||||
slot = action.slots.new(obj.als.data_type, obj.name)
|
||||
|
||||
+4
-4
@@ -1,16 +1,16 @@
|
||||
{
|
||||
"last_check": "2025-12-11 10:42:47.932340",
|
||||
"backup_date": "",
|
||||
"last_check": "2026-03-20 10:19:09.867653",
|
||||
"backup_date": "December-11-2025",
|
||||
"update_ready": true,
|
||||
"ignore": false,
|
||||
"just_restored": false,
|
||||
"just_updated": false,
|
||||
"version_text": {
|
||||
"link": "https://gitlab.com/api/v4/projects/22294607/repository/archive.zip?sha=b3bccbaf23e3171ca198e64cb265eb9bf3810f21",
|
||||
"link": "https://gitlab.com/api/v4/projects/22294607/repository/archive.zip?sha=3868a0c2bd99dde13a2d390a18ffb1db25883f17",
|
||||
"version": [
|
||||
2,
|
||||
3,
|
||||
5
|
||||
7
|
||||
]
|
||||
}
|
||||
}
|
||||
BIN
Binary file not shown.
@@ -648,6 +648,14 @@ def AL_bake(frame_start, frame_end, nla_tracks, fcu_keys, additive, step, action
|
||||
baked_channelbag = anim_layers.get_channelbag(obj, baked_action)
|
||||
baked_fcurves = baked_channelbag.fcurves
|
||||
|
||||
|
||||
if not obj.als.smartbake:
|
||||
interpolation_types = ('CONSTANT', 'LINEAR', 'BEZIER', 'SINE', 'QUAD', 'CUBIC', 'QUART', 'QUINT', 'EXPO', 'CIRC', 'BACK', 'BOUNCE', 'ELASTIC')
|
||||
handle_types = ('FREE', 'ALIGNED', 'VECTOR', 'AUTO', 'AUTO_CLAMPED')
|
||||
# Get the index position to assign with foreach_set
|
||||
interpolation = interpolation_types.index(bpy.context.preferences.edit.keyframe_new_interpolation_type)
|
||||
handle_type = handle_types.index(bpy.context.preferences.edit.keyframe_new_handle_type)
|
||||
|
||||
if obj.als.operator == 'MERGE':# and not additive: # and anim_data.action is not None: #and obj.als.onlyselected
|
||||
#overwrite action
|
||||
anim_data.use_tweak_mode = False
|
||||
@@ -845,7 +853,7 @@ def AL_bake(frame_start, frame_end, nla_tracks, fcu_keys, additive, step, action
|
||||
smartkey.value = eval_array[i]
|
||||
if smartkey.inbetween:
|
||||
continue
|
||||
|
||||
|
||||
baked_fcu.keyframe_points.add(1)
|
||||
keyframe = baked_fcu.keyframe_points[-1]
|
||||
keyframe.co = (frame, eval_array[i])
|
||||
@@ -859,6 +867,10 @@ def AL_bake(frame_start, frame_end, nla_tracks, fcu_keys, additive, step, action
|
||||
continue
|
||||
if obj.als.smartbake:
|
||||
add_interpolations(baked_fcu, fcu_keys[(fcu_key[0], i)], layers_count)
|
||||
else:
|
||||
# Add the interpolation and handle types from the preferences defaults
|
||||
set_all_handles(baked_fcu, interpolation, handle_type)
|
||||
|
||||
baked_fcu.update()
|
||||
|
||||
#paste the modifiers to the new baked fcurve
|
||||
@@ -874,6 +886,17 @@ def AL_bake(frame_start, frame_end, nla_tracks, fcu_keys, additive, step, action
|
||||
|
||||
return baked_action
|
||||
|
||||
def set_all_handles(baked_fcu, interpolation, handle_type):
|
||||
'''Set all the handle types and interpolations in an fcurve using foreach_set and numpy
|
||||
should use numerical value instead of a string'''
|
||||
keyframes_len = len(baked_fcu.keyframe_points)
|
||||
interpolations = np.full(keyframes_len, interpolation)
|
||||
handles = np.full(keyframes_len, handle_type)
|
||||
kp = baked_fcu.keyframe_points
|
||||
kp.foreach_set('interpolation', interpolations)
|
||||
kp.foreach_set('handle_left_type', handles)
|
||||
kp.foreach_set('handle_right_type', handles)
|
||||
|
||||
def ensure_fcurves_bversion(fcurves, data_path, i):
|
||||
'''Either use ensure in Blender 5.0 and above or use find and new in older version'''
|
||||
|
||||
|
||||
@@ -291,10 +291,6 @@ def evaluate_array(fcurves, fcu_path, frame, array_default = [0, 0, 0]):
|
||||
continue
|
||||
fcu_array[i] = fcu.evaluate(frame)
|
||||
|
||||
# if (fcu_array == array_default).all():
|
||||
# # print('295 return none')
|
||||
# return None
|
||||
|
||||
return np.array(fcu_array)
|
||||
|
||||
def evaluate_layers(context, obj, anim_data, fcu, array_default):
|
||||
@@ -317,7 +313,7 @@ def evaluate_layers(context, obj, anim_data, fcu, array_default):
|
||||
if not len(track.strips):
|
||||
continue
|
||||
for strip in track.strips:
|
||||
if not strip.frame_start < frame < strip.frame_end:
|
||||
if not strip.frame_start <= frame <= strip.frame_end:
|
||||
continue
|
||||
action = strip.action
|
||||
if action is None:
|
||||
@@ -332,6 +328,7 @@ def evaluate_layers(context, obj, anim_data, fcu, array_default):
|
||||
|
||||
#evaluate the frame according to the strip settings
|
||||
frame_eval = frame
|
||||
|
||||
#change the frame if the strip is on hold
|
||||
if frame < strip.frame_start:
|
||||
if strip.extrapolation == 'HOLD':
|
||||
@@ -445,7 +442,7 @@ def evaluate_value(self, context):
|
||||
fcurves = anim_layers.get_fcurves(obj, action)
|
||||
eval_array = evaluate_array(fcurves, fcu.data_path, context.scene.frame_current, array_default)
|
||||
|
||||
#calculate the difference between current value and the fcurve value
|
||||
#calculate the difference between current value and the fcurve value
|
||||
add_diff(obj, fcurves, fcu.data_path, np.array(current_value), eval_array)
|
||||
|
||||
class MULTIKEY_OT_Multikey(bpy.types.Operator):
|
||||
|
||||
@@ -183,7 +183,7 @@ def check_handler(scene):
|
||||
anim_layers.visible_layers(obj, nla_tracks)
|
||||
|
||||
# Making sure that scene.als.edit_all_layers_op is not somehow turned on
|
||||
if not any(item.object.als.edit_all_keyframes for item in scene.AL_objects) and scene.als.edit_all_layers_op:
|
||||
if not any(item.object.als.edit_all_keyframes for item in scene.AL_objects if item.object is not None) and scene.als.edit_all_layers_op:
|
||||
scene.als.edit_all_layers_op = False
|
||||
|
||||
# check if track and layers are synchronized
|
||||
@@ -385,24 +385,32 @@ def influence_sync(scene, obj, nla_tracks):
|
||||
|
||||
#Tracks that dont have keyframes are locked
|
||||
for i, track in enumerate(nla_tracks):
|
||||
|
||||
if obj.Anim_Layers[i].lock:
|
||||
continue
|
||||
if not len(track.strips):
|
||||
continue
|
||||
if not len(track.strips[0].fcurves):
|
||||
strip = track.strips[0]
|
||||
if not len(strip.fcurves):
|
||||
if not strip.use_animated_influence:
|
||||
influence = strip.influence
|
||||
anim_layers.use_animated_influence(strip)
|
||||
strip.influence = influence
|
||||
continue
|
||||
if not len(track.strips[0].fcurves[0].keyframe_points):
|
||||
|
||||
if not len(strip.fcurves[0].keyframe_points):
|
||||
#apply the influence property to the temp property when keyframes are removed (but its still locked)
|
||||
if not track.strips[0].fcurves[0].lock:
|
||||
if not strip.fcurves[0].lock:
|
||||
# obj.Anim_Layers[i]['influence'] = track.strips[0].influence
|
||||
scene.als['influence'] = track.strips[0].influence
|
||||
scene.als['influence'] = strip.influence
|
||||
track.strips[0].fcurves[0].lock = True
|
||||
|
||||
if scene.animation_data is None:
|
||||
return
|
||||
action = scene.animation_data.action
|
||||
if action is None:
|
||||
return
|
||||
|
||||
# strip.use_animated_influence = True
|
||||
#if a keyframe was found in the temporary property then add it to the
|
||||
# data_path = 'Anim_Layers[' + str(obj.als.layer_index) + '].influence'
|
||||
data_path = 'als.influence'
|
||||
|
||||
Reference in New Issue
Block a user