I'm afraid it's not possible to say what's causing the crash. Please create a minimal iOS project that reproduces the issue and send it to us, preferrably with your assets.
Please submit a pull request on our repo and I can see if I can generalize it.
The material really just needs a texture and an optional normal map. That should be all the requirements.
Ideally both, but exports only will be likely fine too.
Without the asset that crahes we can't help. You can post them here, or send them via email to contact@esotericsoftware.com
Yeah, you can pass callbacks to
spine_atlas_load_callback
:
EsotericSoftware/spine-runtimesblob/4.3-beta/spine-c/src/extensions.h#L75Some runtimes actually do not supply any texture loader callbacks but instead walk through the parsed atlas pages after
spine_atlas_load
, figure out the image paths, then load them however they want.E.g. that's what the Dart/Flutter runtime does:
EsotericSoftware/spine-runtimesblob/4.3-beta/spine-flutter/lib/spine_flutter.dart#L124It's Dart that calls directly into the spine-c API through FFI. Note that I haven't updated spine-flutter to use the new, generated spine-c API. But the principles hold.
This seems entirely unrelated to spine-ue based on the minimal info you provided. It appears you .NET installation may be broken?
Sorry, I overlooked your reply!
Start by getting the v4 extensions example to export on your system:
EsotericSoftware/spine-runtimestree/4.2/spine-godot/example-v4-extension- Download and install Godot 4.4.1
git clone https://github.com/EsotericSoftware/spine-runtimes
- Download the spine-godot extension for Godot 4.4.1 and unzip it
- Unzip the extension zip, and copy the
bin/
folder tospine-runtimes/spine-godot/example-v4-extension/
.
- Open Godot 4.4.1 and inside that, open
spine-runtimes/spine-godot/example-v4-extension/
. You will need to confirm that Godo can upgrade the project from Godot version 4.3 to 4.4. You also need to confirm that Godo can resave all scenes and resources to use UIDs. - You might also see this dialogue.
- If so, click "Done", then open "Privacy & Security" , scroll down to the "Open anyway" button and click it, go back to Godot and click "Done" again, then in the final dialogue click "Open anyway".
- If so, click "Done", then open "Privacy & Security" , scroll down to the "Open anyway" button and click it, go back to Godot and click "Done" again, then in the final dialogue click "Open anyway".
- Open any of the test scenes and confirm they work both in the editor and when running via the play button in Godot
- Open "Project -> Export", then click "Add..." and select Android. Leave ever setting as is and click "Export Project" to export an
spine-godot-examples.apk
to a known location. Connect an Android device via USB that has developer mode enabled, and assuming you have the Android SDK installed, run~/Library/Android/sdk/platform-tools/adb install spine-godot-examples.apk
to instal the .apk on your device. Open the app on the device for testing. - For iOS, open "Project -> Export", then click "Add..." and select iOS. You must specify your app store team id, which you can get via
security find-identity -v -p codesigning
on the CLI. You must specify a bundle identifier, e.g.com.esotericsoftware.spine
. Click "Export Project" to exportspine-godot-examples.ipa
to a known location. You can deploy the.ipa
to your iOS device via Test Flight, or open thespine-godot-examples.xcodeproj
project in the export location via Xcode and build and deploy to a real device. Godot does not work on the iOS simulator.
The new spine-cpp-lite (called spine-c going forward) is a complete rewrite. In fact, it is auto-generated from spine-cpp and include access to everything the public spine-cpp API exposes, except for listeners. If you can show me what exactly you need wrt to listeners, we can work that into the new spine-c.
The iOS PMA bug will also be fixed in the 4.3 release.
You can check out a the new spine-c here:
EsotericSoftware/spine-runtimestree/4.3-beta/spine-cIt is currently a work in progress as we fix some final bugs. But the API surface will stay like this!
Just so follow up on this. I tried launching Spine 3.8.99 with Spine launcher 4.3.01 (Apple Silicon) on macOS 15.5:
I tried with and without an external monitor and other common failure causes. Since we are unable to reproduce your issue loaclly, and since the crash log does not give us enough information, we'll need to figure out what on your system(s) is different to a standard macOS 15.5 install.
Do you have an apps installed that may interfere with other apps, like anti-virus (unlikely on macOS)?
Can you try deleting
/Users/<username>/Library/Application Support/Spine
on one of the problematic machines? Note that this will delete local settings and you will have to re-enter your activation code on first start.I'm afraid that is not possible, due to how the cocos2dX rendering pipeline works. We can not interleave rendering of multiple skeletons like you describe with cocos2dX.
Thanks for reporting. This has been fixed in the 4.2 branch.
Please note that in Spine 4.3, we are removing spine-c in favor of spine-cpp-lite, a C wrapper around spine-cpp. This consolidation to a single implementation for native runtimes should help improve the native runtimes considerably.
The crash happens in Godot code, not spine-godot code.
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libsystem_kernel.dylib 0x181da25d0 __pthread_kill + 8 1 libsystem_pthread.dylib 0x181ddac20 pthread_kill + 288 2 libsystem_c.dylib 0x181ce7a30 abort + 180 3 Godot 0x10176e068 0x100fa4000 + 8167528 4 libsystem_platform.dylib 0x181e0b584 _sigtramp + 56 5 libspine_godot.macos.editor 0x110e85c74 0x110dbc000 + 826484 6 libspine_godot.macos.editor 0x110e858f8 0x110dbc000 + 825592 7 libspine_godot.macos.editor 0x110eaab00 0x110dbc000 + 977664 8 Godot 0x105d6b92c Object::set(StringName const&, Variant const&, bool*) + 112 9 Godot 0x10480b378 SceneState::instantiate(SceneState::GenEditState) const + 7044 10 Godot 0x10480da70 PackedScene::instantiate(PackedScene::GenEditState) const + 36 11 Godot 0x1032c095c EditorExportPlatform::_export_customize(String const&, LocalVector<Ref<EditorExportPlugin>, unsigned int, false, false>&, LocalVector<Ref<EditorExportPlugin>, unsigned int, false, false>&, HashMap<String, EditorExportPlatform::FileExportCache, HashMapHasherDefault, HashMapComparatorDefault<String>, DefaultTypedAllocator<HashMapElement<String, EditorExportPlatform::FileExportCache>>>&, String const&, bool) + 1664 12 Godot 0x1032c7490 EditorExportPlatform::export_project_files(Ref<EditorExportPreset> const&, bool, Error (*)(void*, String const&, Vector<unsigned char> const&, int, int, Vector<String> const&, Vector<String> const&, Vector<unsigned char> const&, unsigned long long), Error (*)(void*, String const&), void*, Error (*)(void*, SharedObject const&)) + 15624 13 Godot 0x102bd19d4 EditorExportPlatformAndroid::export_project_helper(Ref<EditorExportPreset> const&, bool, String const&, int, bool, BitField<EditorExportPlatform::DebugFlags>) + 11616 14 Godot 0x102be58b4 EditorExportPlatformAndroid::export_project(Ref<EditorExportPreset> const&, bool, String const&, BitField<EditorExportPlatform::DebugFlags>) + 308 15 Godot 0x1033490b4 ProjectExportDialog::_export_project_to_path(String const&) + 1148 16 Godot 0x101aee244 0x100fa4000 + 11838020
Without a minimal reproduction project, I'm afraid I can not help. All our test projects export fine with the latest extension build, on macOS.
From the log:
/home/gogzy/Downloads/spine-runtimes-4.2/spine-godot/example-v4-csharp/examples/04-simple-input/SpineboyInput.cs(4,38): error CS0246: The type or namespace name 'SpineSprite' could not be found (are you missing a using directive or an assembly reference?) [/home/gogzy/Downloads/spine-runtimes-4.2/spine-godot/example-v4-csharp/spine-godot-examples.csproj]
msbuild can't find `SpineSprite, which means the assembly can't be found. Your NuGet setup must be broken in some way. But I'm afraid that's hard to debug for me remotely :/
I will update the docs regarding the incompatibility of spine-godoto extension 4.3 with iOS and Android.
Installation Verification:
- The extension version number is Godot 4.4.1 in the download section for Godot 4.4.1.
- The installation procedure is as described on the spine-godot documentation page:
https://en.esotericsoftware.com/spine-godot#spine-godot-GDExtension-downloads - None known
- Export your project and run it on a device, as per the Godot documentation
Project Migration
No compatibility issues are known when upgrading from 4.3 to 4.4.x.No specific migration steps required. Just upgrade your Godot project from 4.3 to 4.4.x (which is automatic when you open it in Godot 4.4.x), and update the spine-godot extension in your project.
I'm afraid the auto-translation isn't great. Can you please describe in detail what you want to achieve? Possibly with illustrations?
I'm afraid I have no idea what could be the cause on your end. Did you try to export for HTML using the export settings in my test project?
Oh, you might be on to something wrt to how you serve the game. For my test, i used
python3 -m http.server
in the directory I exported the test project to. I can then load the demo in the browser at http://localhost:8000.Hah, this has happened to me numerous times as well
The spine-godot extension version 4.3 does not support Android and iOS exports. Please update to Godot 4.4.x and the spine-godot extension for that version.
I've created a test project and exporting and running both Android and iOS exports works as expected.