theloneplant / blender-spritesheets Goto Github PK
View Code? Open in Web Editor NEWA Blender plugin that allows you to export 3D models and animations to spritesheets
License: MIT License
A Blender plugin that allows you to export 3D models and animations to spritesheets
License: MIT License
for my workflow, when I need to go back and add or tweak animations, usually I just want to target a single action as a spritesheet. I haven't been able to get that to work to where it only outputs a selected action as a sheet.
so, what I've been doing is after rendering the whole sheet, I use another tool to split the sheet into individual frames, then I go through and find just the frames I want, and use something like texturepacker to recompile those as a sheet for an individual action.
I noticed that during the operation, there's a temp folder with individual frames, all named after the action. being able to leave that behind after the operation, as well as skipping the sprite sheet compilation would help me out a ton
It could be my own issue as I'm quite a beginner with blender but maybe not.
BEFORE RENDERING
https://puu.sh/JE1ha/73b34a2644.png
AFTER RENDERING
https://puu.sh/JE1hy/f6527f72d4.png
SETTINGS
https://puu.sh/JE1hI/25c498484d.png
as you can see, all the keyframes are gone on the armature and the pose of the armature seems to be stuck on the last rendered pose.
Maybe I have this set up all wrong but this seems like un-intended behaviour
This helped me out so much, thank you very much!
Would this plugin work together with other importers, such as the Skyrim one?
Hi ,
First of all , thanks for this great addon 👍
I m trying to export object animation with Empty as Parent.
The thing is Create Sprite sheet tab is only showing heading like Selection , Rendering , Output, but no Input option.
Can you please check.
Steps to reproduce.
Thanks 😊
I just wanted to thank you for making this addon available. I got some good use out of it for a while and ultimately wound up creating my own addon based on this for some features I needed. I thought you might be interested in that, and wanted to thank you again - I knew very little Python and nothing about Blender's APIs, so having your repo available was a huge help. I probably wouldn't have gotten off the ground without it.
Currently bin location is not remembered when changing blend files. To fix this, look into moving the bin selection into preferences or store it in a configuration file that the plugin reads
This task it for adding a UI for batching multiple animations when rendering a sprite sheet. The user should be able to select one or more actions to add to a list and kick off the workflow using the same object for each action and render everything to the same sheet.
Hi, so I found out about this useful addon yesterday. I followed your guide and try using the example, but it seems that the code is in error. I'm using Blender v2.81.16
I attached an imgur gallery of the error
https://imgur.com/a/q8HR6gg
This task is to allow users to specify a number of viewing angles along with distance and angle to allow the workflow to create/manipulate cameras on the fly. Allow users to duplicate cameras from an existing one or use settings specified in the plugin. Ensure that the bss is updated with camera position labels so animations can be imported.
This could also allow the user to specify different transforms on the object such as rotation to allow for both multiple object angles and camera angles
Similarly to the unity importer we should support UE4 as well. This task would be adding a separate importer for UE4.
If no, could you mention this in the docs.
Thx.
There’s an issue when importing a sprite sheet and bss where the ordering isn’t correct. Splitting manually won’t work either since the script will pick up the changes and reinitiate the workflow. Look into if this can be moved to a UI instead
First of all, thank you so much for the plugin! You've already saved me a lot of time. :)
Could you make it so it saves multiple files and doesn't save the .bss ? So each action would be a separate sprite sheet?
Example:
You have 2 actions, Walk, Run.
This would result in: Walk.png, and Run.png
This task is for adding support for mapping colors (specified by shadow/midtone/highlight or more for each material on an object). This would involve making a custom renderer that maps pixel colors and their material to a corresponding color in the palette based on brightness.
Hi, I was testing your script and figured out the following:
When rendering one or more animations (using a rigged character, for example), the resulting spritesheet doesn't show the last frame of each animation.
To reproduce the problem:
Expectation:
All 6 frames are rendered correctly
What's actually happening:
Only the first 5 frames are rendered correctly. The last one is omitted.
Workaround:
Create an extra frame for each animation, making that the ignored frame.
Blender version:
Issue tested in 2.80 Beta & 2.82
Error message:
Python: Traceback (most recent call last): File "C:\Users\moehn\AppData\Roaming\Blender Foundation\Blender\4.0\scripts\addons\blender-spritesheets\operators\renderSpriteSheet.py", line 50, in execute self.processAction(action, scene, props, File "C:\Users\moehn\AppData\Roaming\Blender Foundation\Blender\4.0\scripts\addons\blender-spritesheets\operators\renderSpriteSheet.py", line 98, in processAction bpy.ops.spritesheets.render_tile('EXEC_DEFAULT') File "C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\modules\bpy\ops.py", line 107, in __call__ ret = _op_call(self.idname_py(), kw, C_exec, C_undo) RuntimeError: Error: Python: Traceback (most recent call last): File "C:\Users\moehn\AppData\Roaming\Blender Foundation\Blender\4.0\scripts\addons\blender-spritesheets\operators\renderTile.py", line 22, in execute progress = float(progressProps.tileIndex + 1) / progressProps.tileTotal * 100 ZeroDivisionError: float division by zero Location: C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\modules\bpy\ops.py:107
which points to line 22 of renderTile.py
progress = float(progressProps.tileIndex + 1) / progressProps.tileTotal * 100
if actions were only a single frame long, or only had one keyframe, the operation would terminate when it reached that action. it would still output a temp images folder of all the frames it rendered up until that point.
Currently when rendering, the Blender UI freezes due to the renderer being a blocking API call and the workflow renders everything at once. The solution for this would either be to tie the renderer call to UI renders as a workaround or find a way to run the call in a background thread. Initially it looks like a background thread isn’t going to be stable since there may be conflicts with the Blender scene updating in the middle of a render, so we’ll likely need to use the former method.
In addition, we should leverage the progress metrics already in place to display the current progress of rendering to the user.
I've noticed it creates an extra frame per action. My "Idle" has 1 frame, which results in 2 in the sprite sheet? One that has 15 frames ends up in 16? I do have my start set to '1' (not 0), could that be an issue?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.