|
1 | | -# GatherResources, the blender way of collecting video files. |
| 1 | +# Gather Resources — the Blender way to collect your project’s media |
2 | 2 |
|
3 | | -Collect/Assemble/Gather all resources to the texture child directory. AKA: 'GET YOUR SHIT TOGETHER.' |
| 3 | +Collect / assemble / gather all external resources into a single folder with one click. |
| 4 | +Or, in plain English: **GET YOUR SHIT TOGETHER.** |
4 | 5 |
|
5 | | -<img src="GatherResources.png"> |
| 6 | +<img src="GatherResources.png" width="420"> |
6 | 7 |
|
7 | | -Early testing has begun. |
| 8 | +Early testing shows it handles most production scenarios correctly — |
| 9 | +but as always: **Make back-ups if testing with major productions.** |
8 | 10 |
|
9 | | -I have tested a couple of scenarios, but TEST AT YOUR OWN PERIL.... Be sure to test it on something that you don't mind destroying. |
| 11 | +--- |
10 | 12 |
|
| 13 | +## What This Add-on Does |
11 | 14 |
|
12 | | -## Installation: |
| 15 | +**Gather Resources** scans your Blender project for: |
13 | 16 |
|
14 | | -Download from here: https://github.com/SimonHeggie/Blender-GatherResources/archive/refs/heads/main.zip (DO NOT UNZIP) |
| 17 | +- VSE video strips |
| 18 | +- Audio strips |
| 19 | +- Image textures |
| 20 | +- Images used in materials |
| 21 | +- Cache files (e.g., mesh sequence caches) |
| 22 | +- Other external media referenced by your `.blend` |
15 | 23 |
|
16 | | -In blender: Edit/Preferences/Add-ons... Top right arrow, 'Install from Disk'. Select the Gather Resources zip file, then tick it to activate. |
| 24 | +Then it copies all discovered files into a local `textures/` directory beside your `.blend` file. |
17 | 25 |
|
18 | | -## Usage: |
| 26 | +It’s basically **After Effects Collect Files**, but for Blender. |
19 | 27 |
|
20 | | -File > External Data > Gather Resources: |
| 28 | +--- |
21 | 29 |
|
22 | | -This will take all resources used within your project and relocate them to your child texture directory. |
| 30 | +## How to Use |
23 | 31 |
|
24 | | -## (Speculative) Road Map: |
| 32 | +Once installed and enabled: |
25 | 33 |
|
26 | | -### Alpha: |
| 34 | +**File → External Data → Gather Resources** |
27 | 35 |
|
28 | | -- If a duplicate is found somehow; either rename the file, or place in number clone folder. Should be dedectable via comparing file sizes. |
29 | | -- There is currently a bug where sub-folders in the texture folder are moved into the root of textures which may result in unwanted merged data. |
30 | | -- If a duplicate is found and it has the exact same file size, technically that should be re-used instead of causing uneccesary clone data bloat. (This means that asset versioning is up to the users to manage) |
| 36 | +Blender will create a `textures/` directory beside your `.blend`, |
| 37 | +and copy all referenced external files into it. |
31 | 38 |
|
32 | | -### Beta |
33 | | - |
34 | | -- Full cross platform support (Linux, Windows, Mac) |
| 39 | +A summary of collected files will appear in the status bar. |
35 | 40 |
|
36 | | -### Production ready Stable build: |
| 41 | +--- |
37 | 42 |
|
38 | | -- All bugs founds and crushed |
| 43 | +## Roadmap (Speculative) |
39 | 44 |
|
40 | | -### Future ideas: |
| 45 | +### Alpha (Current Phase) |
| 46 | +- Avoid duplicate file creation by checking size+mtime before copy |
| 47 | +- Smarter detection of duplicate files already present |
41 | 48 |
|
42 | | -- Menu option to 'Automatically Gather Resources' |
43 | | -- Either combine the task of, or create a seperate option for capturing all PROXY and CACHE data, which should be gathered but probably not into the 'textures' directory, seeing as it's something that it not as essential as the core resources needed to re-bake and re-render. |
44 | | -- 'Distribute Resources' Sort of like unpack; does the opposite of Gather. It requires storing the original locations of files prior to being gathered. Usecase is updating modified library and stock content for example. |
45 | | -- Support for resource data which is linked and needs to be gathered and vise-versa |
46 | | -- (Very unsure of where this is essential or not...) Collapse the entire 'PACK' menu into one sub-menu and do the same for the gathering commands to neaten the entire menu. |
47 | | -- CLEAN resources: FIRST; warns the users to double check that any other blend files are not share data, and if they are to append all into one blend file before hand. (can remove warning) THEN finds every file NOT being read by the active blend file and removes it. This is going to be SO helpful for optimizing for easy deployment and archiving. |
| 49 | +### Beta |
| 50 | +- Confirm full cross-platform behaviour (Linux, Windows, macOS) |
| 51 | +- Stabilise overwrite and conflict-resolution logic |
48 | 52 |
|
49 | | -### Final plan: |
| 53 | +### Production / Stable |
| 54 | +- Full bug elimination |
| 55 | +- Hardened reliability for archiving, backup, and project transfer |
50 | 56 |
|
51 | | -- Polish the Addon: Ensure code quality, follow Blender's coding guidelines, and fully document the addon. |
52 | | -- Submit to Blender Developers: Create a task on Blender Developer Site and submit the addon for review. |
53 | | -- Engage with Developer Community: Discuss the proposal on the Blender Developer forums or IRC to gather feedback. |
54 | | -- Address Feedback: Make necessary improvements based on code reviews and feedback from Blender's core development team. |
55 | | -- Wait for Testing and Integration: The addon will go through further testing, and if accepted, it will be included in a future Blender release. |
| 57 | +### Future Ideas |
| 58 | +- **Auto-Gather Mode** (toggle to run after saving or before rendering) |
| 59 | +- **Gather Proxy / Cache Data** into a separate folder |
| 60 | +- **Distribute Resources** |
| 61 | + - Opposite of Gather — restore files to original locations using stored mappings |
| 62 | +- **Cleanup Mode** |
| 63 | + - Identify unused files |
| 64 | + - Warn if other `.blend` files share dependencies |
| 65 | + - Remove unreferenced assets for archiving |
| 66 | +- **Menu streamlining** (collapse Pack + Gather tools under one section) |
56 | 67 |
|
57 | | -## Reporting BUGS: |
| 68 | +--- |
58 | 69 |
|
59 | | -This is going to be full of bugs, so any testing is apreciated. |
| 70 | +## Reporting Bugs |
60 | 71 |
|
61 | | -#### Report bugs to: |
| 72 | +This add-on is new and will absolutely have bugs. |
| 73 | +Any testing you can provide is appreciated. |
62 | 74 |
|
| 75 | +Submit issues here: |
63 | 76 | https://github.com/SimonHeggie/Blender-GatherResources/issues |
64 | 77 |
|
65 | | -And please use the following, or similar bug reporting template (Copy and paste it :)): |
| 78 | +Please use the template below: |
| 79 | + |
| 80 | +--- |
66 | 81 |
|
67 | | -- |
| 82 | +### 🐛 Bug Report Template |
68 | 83 |
|
69 | 84 | #### 1. Summary of the Issue |
| 85 | +What went wrong? |
| 86 | +What did you expect to happen? |
70 | 87 |
|
71 | | -What’s not working? (E.g., "File links are not updating to the new 'textures' folder.") |
72 | | -What did you expect to happen? (E.g., "The script should copy files to the 'textures' folder and update the paths to relative links.") |
| 88 | +#### 2. Steps to Reproduce |
| 89 | +1. Open Blender (include version). |
| 90 | +2. Set up scene with videos/images/audio/cache/etc. |
| 91 | +3. Run Gather Resources. |
| 92 | +4. Check the `textures/` directory. |
73 | 93 |
|
74 | | -#### 2. Steps to Reproduce the Issue |
| 94 | +#### 3. Expected vs. Actual Behaviour |
| 95 | +Expected: |
| 96 | +Actual: |
75 | 97 |
|
76 | | -Provide a step-by-step guide to reproduce the problem: |
| 98 | +#### 4. System Information |
| 99 | +- OS: |
| 100 | +- CPU: |
| 101 | +- GPU: |
| 102 | +- RAM: |
| 103 | +- Blender Version: |
77 | 104 |
|
78 | | -Open Blender [Version Number]. |
79 | | -Set up a scene with videos, images, sounds, or Alembic caches. |
80 | | -Run the Gather Resources script. |
81 | | -Check if all files were copied to the textures/ folder and paths were correctly updated. |
| 105 | +#### 5. Files and Formats Involved |
| 106 | +Which types were present and which failed? |
82 | 107 |
|
83 | | -#### 3. Expected vs. Actual Behavior |
84 | | -Expected Behavior: (E.g., "Files should be copied to the 'textures' folder, and their paths updated to relative links.") |
85 | | -Actual Behavior: (E.g., "Files remained in their original location, or the paths were not updated.") |
| 108 | +- Video (.mp4, .mkv, etc.) |
| 109 | +- Image (.png, .jpg, etc.) |
| 110 | +- Audio (.wav, .mp3, etc.) |
| 111 | +- Alembic (.abc) |
| 112 | +- Models (.fbx, .obj, etc.) |
86 | 113 |
|
87 | | -#### 4. System Information |
| 114 | +#### 6. Errors or Console Output |
| 115 | +Paste any error messages or logs. |
| 116 | + |
| 117 | +#### 7. Attempts to Fix / Workarounds (If Any) |
| 118 | +What have you already tried? |
| 119 | + |
| 120 | +#### 8. Additional Context |
| 121 | +Does it happen always, or intermittently? |
| 122 | +Project-specific or global? |
88 | 123 |
|
| 124 | +--- |
89 | 125 |
|
90 | | -Operating System: (E.g., Windows 11, Ubuntu 22.04, macOS 13) |
91 | | -CPU: (E.g., Intel Core i9-13900HX) |
92 | | -GPU: (E.g., NVIDIA RTX 4070) |
93 | | -RAM: (E.g., 32GB) |
94 | | -Blender Version: (E.g., 4.0.1, 3.6.5) |
95 | | -5. Files and Formats Involved |
96 | | -Were all file types handled correctly? |
97 | | -(E.g., "The script copied image files, but skipped .abc files.") |
98 | | -Relevant Formats in Use: (Check all that apply) |
99 | | - Video (.mp4, .mkv, etc.) |
100 | | - Image (.png, .jpg, etc |
101 | | -.) |
102 | | - Audio (.wav, .mp3, etc.) |
103 | | - Alembic (.abc) |
104 | | - 3D Models (.fbx, .obj, etc.) |
105 | | - |
106 | | -#### 6. Error Messages or Console Output |
107 | | -Were there any errors? (If yes, provide the exact error message or attach a screenshot of the console output.) |
108 | | - |
109 | | -#### 7. Workarounds or Attempts to Fix (If Any) |
110 | | -What have you tried so far? (E.g., “Tried running the script on a fresh project, but the issue persists.”) |
111 | | - |
112 | | -#### 8. Additional Context or Observations |
113 | | -How often does the issue occur? (E.g., Every time, or intermittently?) |
114 | | -Is this project-specific? (Does the problem happen in only one project or across multiple?) |
| 126 | +## License |
| 127 | +GPL-3.0-or-later |
| 128 | +© 2024–2025 Simon Heggie |
0 commit comments