Hey Yonnji,
I am also new to Blender Addons, but I am familiar with Python. Is there anything in particular that you would like help with? Your fork doesn't have an issues page, so I thought I'd try you here.
Best,
Todd
A Blender add-on for building tile based low-poly scenes with paint/map editor like tools · By
I am also working on porting sprytile to 2.8 when I have time here: https://github.com/ologon/Sprytile/tree/feature/support_2.8
I think I will eventually be able to have it fully working, but it will take a bit of time, please be patient :) The viewport drawing code in particular will need a heavy rewrite, because support was dropped for the calls sprytile currently uses.
I made a few updates. Now I've got into the state where I press the build/paint button and the Blender crashes with an error: module 'gpu' has no attribute 'offscreen'
The viewport drawing code in particular will need a heavy rewrite, because support was dropped for the calls sprytile currently uses.Do you mean those calls to glBegin(), glEnd() and everything else gl-related? I've seen a lot of them. So they aren't work anymore?
Yes they don’t work anymore because blender has shifted from opengl 2 to 3 and they need to be either rewritten in gl3 or with the gpu module which is built on top of it. The documentation suggests using the latter if possible because it claims it will remain compatible when blender will shift again to vulkan.
Is it possible to install your addon? I tried downloading the zip file and installing it on blender 2.8 but I couldn't get it to install. Any help would be greatly appreciated. With the update to unity 2019, I had to update blender to 2.8 to get my models to import properly. Thank you so much for all the work you're doing on this and any help getting it install would be greatly appreciated.
Yes, go to the link I've posted above (https://github.com/ologon/Sprytile/tree/feature/support_2.8) and download the zip file from "clone or download", then install it from the usual Preferences -> Addon window (Be sure to use the latest version of blender 2.8 beta, it was updated today). Search for "sprytile" in the same window and activate it.
The sprytile tools have been moved to the new toolbar on the left (they popup in edit mode as usual). Keep in mind that the plugin is still unfinished and it is not very usable yet (tiles cannot be selected).
Thank you so much for getting back to me. I downloaded blender 2.8 beta yesterday, downloaded the zip, and attempted to install it through the addons. I tried again today (downloaded a fresh version of 2.8 on my mac, yesterday I tried this on my windows machine), downloaded your add on, installed from blender. I see at the bottom it says that it was installed. Neither of us were able to get it to display in the addons list.
Sorry, I've got what went wrong. Once you download the repository first unzip it, rename the unzipped folder to "sprytile" and zip it again. (On windows, if you double click on the new zip you should see the "sprytile" folder, and the python scripts should be inside it). Then try installing that zip. I've tested it on a fresh install and it worked :)
Anyone is free to contribute by forking the github repository : ) I'm not too far from having it fully ported, I'm now working on the viewport drawing part. Once that's done, I will have to do just a few adjustments here and there. Haven't encountered a show-stopping problem so far, but the port is proceeding slowly due to a limited free time. (And blender documentation is almost non-existent, especially for the 2.8 api, which further slows down the process)
In 2.80.75, Edit mode, I don't get the 3 icons (Fill, Paint, Build) in the toolbar, it starts at "Flip"
Console throws multiple times:
File "C:\Users\nobody\Documents\blender-2.80\2.80\scripts\startup\bl_ui\space_userpref.py", line 1900, in draw
draw(context)
File "C:\Users\nobody\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\Sprytile\__init__.py", line 790, in draw
box.label("Keyboard Shortcuts")
TypeError: UILayout.label(): required parameter "text" to be a keyword argument!
Good news! I've finished porting all features to blender 2.8, except decal layers, and since it has become usable now, I've uploaded a beta release here:
https://github.com/ologon/Sprytile/releases
To install the beta, grab the zip file from that page and install it from the preferences -> addons panel as usual.
Here's what changed in the blender 2.8 version:
The sprytile panel is now located in the new panel section, which is hidden by default.
To show it click on the small arrow in the top left corner of the 3D view:
Then select "Sprytile"
Blender 2.8 default viewport settings are not optimal for pixel art, specifically you may notice texture jittering when moving the camera. (This is caused by eevee's temporal anti-aliasing filter) Moreover, blender viewport employs filmic color correction by default, which will cause your unlit tiles to appear slightly brighter than the original image. To fix this issues, select the newly added "Sprytile Utilities" -> "Setup Pixel Viewport". I recommend doing this once before starting to work with sprytile.
Sprytile tools are now located in the toolbar on the right. They will show up once you enter edit mode:
You can use the snap tool by holding "S" while the build tool is active as usual, and the tile picker by holding left Alt while any sprytile tool is active.
The normal tool is not a separate icon , instead it can now be used by holding "N" while the build tool is active.
Everything else is pretty much the same as it was in 2.7.
The beta hasn't been tested throughly, so crashes/errors may occur while using it. Let me know if you encounter any problem, and be sure to save often just in case :)
First thank you very much for porting this to blender 2.8
Next, I tried to use but it crashs so quickly and randomly I can't tell you what is going wrong :/
Do you have a version with some try/catch everywhere writing the errors into a file or at least in the console ?
Or tell me how can I help you to make this version more stable, I would like to help.
Hi LuDK,
Thanks! I've been using it for a while and it appears to work just fine in my case. Are you using the latest beta? (Beta6)
If you are already using the latest beta, open the windows command prompt and start blender from there (by typing for example "C:\Program Files\Blender Foundation\Blender\blender.exe" then enter) . When sprytile/blender crashes the error causing the crash should remain in the command prompt. Can you tell me what you are getting? (Also knowing when it happens would be helpful)
Wow crashed again when I tried to Ctrl + Z:
"Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Traceback (most recent call last):
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 513, in draw_callback_handler
VIEW3D_OP_SprytileGui.draw_offscreen(context)
File "C:\Users\eques\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\sprytile\sprytile_gui.py", line 573, in draw_offscreen
target_img.gl_load()
ReferenceError: StructRNA of type Image has been removed
Error : EXCEPTION_ACCESS_VIOLATION
Address : 0x00007FF6C7C1101D
Module : C:\Program Files\Blender Foundation\Blender 2.81\blender.exe"
Hi LuDK!
As in 2.7, to delete a tileset you have to first delete its material. Find the tileset material in the material panel and press the "X" button while holding shift, then save your blend file and reopen it:
Blender will delete the material and it should show up as "Invalid Data" in the tileset list. Sprytile will eventually delete it for you when you add new tilesets, but to delete it right away click on the down arrow icon and choose "Validate Grids":
Regarding the view not showing, it usually means you are working on an object which currently has a different tileset than the one selected.
Hope that helps! :)
All seems good, no more crash, nice job !!!
If you want to have a look: https://www.artstation.com/artwork/Pm0e4L
Made a couple changes to Ologon's 2.8 port of Sprytile. Was experiencing some issues with holding 'S' and 'N' while using my laptop and trackpad. The shortcut for snapping the cursor is "Left Alt + left click", and the shortcut for selecting an off-axis work plane is "ctrl+alt left click."
Also rebound tile rotation and flipping to 1,2,3,4
https://www.dropbox.com/s/29ksood4d1q2qz9/sprytile%20laptop%20edition.zip?dl=0
You can also remove the whitening effect when in edit mode, but going under the Preferences > Themes > 3D View > Face, and change the second color alpha to 0
Has anyone tried this on version 2.81 of blender? I get a few errors every time I try to load a tileset.
Traceback (most recent call last):
File "C:\Users\Rustocrat\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\Sprytile-master\sprytile_utils.py", line 878, in execute
UTIL_OP_SprytileLoadTileset.load_tileset_file(context, self.filepath)
File "C:\Users\Rustocrat\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\Sprytile-master\sprytile_utils.py", line 896, in load_tileset_file
bpy.ops.sprytile.texture_setup('INVOKE_DEFAULT')
File "C:\Program Files\Blender Foundation\Blender 2.81\2.81\scripts\modules\bpy\ops.py", line 199, in __call__
ret = op_call(self.idname_py(), C_dict, kw, C_exec, C_undo)
RuntimeError: Error: Traceback (most recent call last):
File "C:\Users\Rustocrat\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\Sprytile-master\sprytile_utils.py", line 932, in invoke
self.setup_tex(context)
File "C:\Users\Rustocrat\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons\Sprytile-master\sprytile_utils.py", line 973, in setup_tex
target_img.use_alpha = True
AttributeError: 'Image' object has no attribute 'use_alpha'
location: C:\Program Files\Blender Foundation\Blender 2.81\2.81\scripts\modules\bpy\ops.py:199
location: <unknown location>:-1
The 2.8 port is compatible with the latest blender version (2.81a).
Judging from the error log, it looks like you are using a different version from the latest beta. Uninstall any old sprytile from the plugins menu (make also sure there's no sprytile folder left in C:\Users\USER\AppData\Roaming\Blender Foundation\Blender\2.81\scripts\addons) and try installing the latest zip from this page: https://github.com/ologon/Sprytile/releases ( currently sprytile_2.8_beta8.zip)
I've been asked this quite a bit so I thought I would leave a little guide here:
Sprytile displays all the tilesets you currently have added, even those the object you are working on doesn't have a material for. If that is the case, the tile selection UI will not show up (In 2.7 it would just show a blank image). To bring it back you can either:
1) Add the tileset again to the selected object with "Add Tileset" as usual (This will create a duplicate)
2) To reuse the existing tileset, go to the material panel with your object selected, add a new material and set it to the tileset you are trying to use:
(Here for example I'm adding terrain_tileset to the object)
When you reselect the tileset, the tile selection UI will show up.
For those having problems. It looks like the last error message means you are on 2.82. Just go download blender 2.80 (like the heading says!) and this release works fine. You don't need 2.82 now if your workflow is only this. Chill and let the team work on maintaining this plugin through the updates.
Download 2.80 from blender's archive here: https://download.blender.org/release/Blender2.80/
Install per the instructions at the beginning of this thread.
Works just fine!