nklbdev / godot-4-importality

Universal raster graphics and animations importers pack
MIT License
337 stars 7 forks source link

Lots of errors, can't seem to figure out how to add the imported Aseprite file to the Godot scene #2

Closed golddotasksquestions closed 1 year ago

golddotasksquestions commented 1 year ago

On Godot 4.1.1 stable, Windows:

After I installed and enabled the plugin I saved a basic Aseprite Animation (created as a new file, all defaults, just added 4 frames) into the res folder. I then selected the .aseprite file and in the Import tab I switched to the "Aseprite -> Sprite with AnimationPlayer" preset. I let Godot save and restart and after the restart I tried to drag the .aseprite file onto the Scene Panel top node of a new scene. This did not work. Then I noticed this wall of red errors:

image

I just closed Godot, restarted and tried again in a new scene, and I noticed there are no errors in the beginning, also none when clicking the *aseprite file, but this block appears as soon as I try to click-drag the aseprite file:

image

Aseprite File I used: Sprite-0002.zip

nklbdev commented 1 year ago

I couldn't get the same errors as you in the output window, but your file helped me find one bug - a small typo in handling the default animation when no tags were specified in the *.aseprite-file.

Please check your new version of the plugin. Perhaps the problem was in this typo. And let me know if anything has changed! ๐Ÿ™

golddotasksquestions commented 1 year ago

I deleted the Sprite-0002.aseprite file, uninstalled the addon (first disabled it, then deleted the nklbdev.importality folder from the addon folder), then I restarted Godot.

Then I added the nklbdev.importality folder from the newly downloaded zip to the addon folder and the the Sprite-0002.aseprite file to the res:// folder of my project and started Godot 4.1.1 stable again.

I go to the Plugins in Project Settings and as soon as I enable Importailty, these errors appear:

image

I then select the Sprite-0002.aseprite file and go to the Import tab, select the "Aseprite -> Sprite AnimationPlayer" preset and hit "Reimport", then these errors appear:

image

If I try to drag the Sprite-0002.aseprite file onto the Root node the same errors appear again.

nklbdev commented 1 year ago

Try to remove the file .godot/imported/Sprite-0002.aseprite-aa78087caaed2c076fd048998bb5544ad.ctex. And all the files from .godot/imported/ that names is starting with Sprite-0002.aseprite. And Sprite-0002.aseprite.import from project.

They can store old broken data. Let Godot reimport them.

PS: The file .godot/imported/Sprite-0002.aseprite-aa78087caaed2c076fd048998bb5544ad.ctex was created when aseprite-file was imported as regular image.

Try to change checkbox Project Settings->General->Rendering->Textures->Force PNG. It can affect that Godot is trying to use WebP loader on PNG files

golddotasksquestions commented 1 year ago

I closed Godot and deleted all Sprite-0002... files from the project, so from the Import folder as well as from the res:// folder, including the Sprite-0002.aseprite.import file from the res:// folder.

Then I restarted Godot 4.1.1 to verify it would start without complaints. This went fine.

I then closed Godot again and added the Sprite-0002.aseprite file into the res:// folder and then started Godot, which greeted me with this error message:

image

nklbdev commented 1 year ago

Oh, thank you! There is another typo! I fixed it: changed all error_message to error_description. Now the plugin should adequately write to the console the reason why the import failed. Please try again with a new version of the code ๐Ÿ™

Your experience is extremely valuable for me and for the project! If this plugin doesn't work, try my previous project, which focused solely on importing from Aseprite

golddotasksquestions commented 1 year ago

Ok, I went through the same steps as before, enabeling the addon worked without errors, however after I dragged the aseprite file into the res:// folder, I got these error messages:

image

The *.aseprite file also now shows up with a red X icon, before it was a white texture icon.

Screenshot of the Importality Project Settings:

image

nklbdev commented 1 year ago

Please, set up temporary files directory path and aseprite command like on screenshot

Settings

PS: you can read about temporary files on wiki I recommend to use RAM-Drive for it

golddotasksquestions commented 1 year ago

Is this something you expect all users to do? If so I think it would be necessary to mention this explicitly in the "How to use" section on Github repo here.

Currently the steps just mention the Import Tab and it's settings.

nklbdev commented 1 year ago

I'm sorry that this caused you inconvenience. I didn't know it would work. I have described how to work with each editor on the wiki, and I expected users to immediately search for an article about the editor they are using.

This is helpful for me, thanks. I will fix the readme so as not to mislead users! ๐Ÿ‘

I've added links to the wiki in the "How to use" section. Please tell me, now they look noticeable enough that the following users will not encounter your case?

golddotasksquestions commented 1 year ago

Definitely mention it in the How to that users have to go into the Project settings, otherwise I guarantee you a lot of people will miss this.

I also don't quite understand what folder this Temporary Files Directory Path is. I don't have such a folder or folder structure. Can this be any folder anywhere? If it can be any folder, why not use the OS user or temp folder?

I also find this screenshot confusing as it has settting for apps I might not have. Why does the plugin need a reference to the Aseprite executeable anyway?

What if I don't have Aseprite? Does that mean I can't use your plugin to import *.aseprite files?

nklbdev commented 1 year ago

If you don't have the Aseprite application installed, then the plugin will not be able to import data from *.aseprite-files, because it does not have the ability to parse these files on its own and flatten all the cels into resulting frames images. I'm sorry, but it is.

You can use any directory on your system as the directory for temporary files. But I advise you to use a directory that will not contain files that other applications work with, so that there are no collisions between them.

I will post information about this on the readme and wiki pages.

The main function of the plugin is to make it easier to work with the import of source files, while you periodically open a graphical editor, make changes to the file, and want Godot to immediately update the imported resource.

golddotasksquestions commented 1 year ago

f you don't have the Aseprite application installed, then the plugin will not be able to import data from *.aseprite-files, because it does not have the ability to parse these files on its own and flatten all the cels into resulting frames images. I'm sorry, but it is.

I would also mention this on the Github repro as a known limitation. A lot of Godot users download premade assets from itch.io, opengameart.com, Kenney and other places which sometimes come as *aseprite files. Knowing this before downloading installing and trying your plugin might save them a lot of time and trial and error.

nklbdev commented 1 year ago

Thank you!

I still have an application to test the functionality of the plugin with LibreSprite instead of Aseprite. This is a free analogue of Aseprite. Perhaps if users don't have the option to buy or build Aั‹eprite from source files, they can use LibreSprite instead.

I will do this work in the next day or two.

golddotasksquestions commented 1 year ago

So I set the Temp folder and Aseprite executeable path, now I get these errors:

image

I have to say this is a pretty tiring setup experience. My enthusiasm is pretty much gone at this point.

nklbdev commented 1 year ago

I understand and again I apologize. Now I will test the plugin on your version of Aseprite. Perhaps it does not support some export option specified in the documentation for its CLI

Can you provide me you Aseprite application files? My current version is v1.3-rc4. And now only v1.3-rc6 is available in my Humble Bundle account library ๐Ÿ˜ข

nklbdev commented 1 year ago

I added LibreSprite support and simplified usage of Aseprite/LibreSprite CLI. I hope that now your import will pass without errors.