Git Product home page Git Product logo

extension-spine's Introduction

Actions Status Alpha

Spine animations for Defold

Defold native extension for interacting with Spine animations.

Manual, API and setup instructions is available on the official Defold site.

Pull requests

We happily accept pull requests that solve reported issues.

Updating the Spine runtime version

Updating the Spine runtime version requires a rebuild of the runtime for all supported platforms. There is a build script to rebuild the runtime library in extension-spine/utils/runtime. The version is defined in the build_runtime_lib.sh file.

Make sure to check the change log for breaking changes!

Updating the Spine extension plugin for the editor

If the extension code for the editor has to be updated there is also a build script in `extension-spine/utils/build_plugins.sh’. Use it to build the plugin libs and jar file.

extension-spine's People

Contributors

agulev avatar badlogic avatar britzl avatar dapetcu21 avatar dri-richard avatar jcash avatar jhonnyg avatar matgis avatar otsakir avatar subsoap avatar vlaaad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

extension-spine's Issues

Baking of spine IK (DEF-1349)

Look into way of baking spine IK with bob, which to improve performance when no dynamic IK target is required.
This requires a new component property setting, "Dynamic" to let the builder now it should or should not be baked.
2017-03-24 10:58:35 (Sara.Cederberg)
[~andreas.tadic], is this still valid in regards to librig?
2017-03-27 10:00:01 (andreas.tadic)
Yes, it is. Spine can use IK to create and control animations and we want to be able to give the option to bake them in order to increase run-time performance (at the cost of increased memory usage). This is a use-case for when the animators are using IK without the need for it to be controlled in run-time.

`gui.get_spine_bone` is not working

When I call the function:

 gui.get_spine_bone(gui.get_node("sp_loader_anim"), "1_level1")

I get this error:

main/main.gui_script:3: No gui node found for the bone '1_level1'
stack traceback:
[C]: -1: in function get_spine_bone
main/main.gui_script:3: in function <main/main.gui_script:1>

But it works fine:

gui.get_node("sp_loader_anim/1_level1")

spine_offset.zip

GUI with spine model will break when sending "final" message to a collection proxy (DEF-3102)

The engine will remove spine models from guis when sending a "final" message to a collection proxy. This poses a problem if an "init" and/or "enable" message is sent to the proxy since the spine model is removed and the gui will be shown again without the spine models. No crash or anything but it's not the expected behaviour.Note that the collection is not unloaded, it's merely finalized.

Particle fx attached to spine bone doesn't rotate with the bone (DEF-3905)

When a particle fx is attached to the bone of a spine model on a game object or in a gui scene the particle fx doesn't rotate with the spine model and the go/node it is attached to.

2019-04-11 10:30:31 (Johan.Beck-Noren)
Aftersome investigation we found that this is caused by bones in Spine having a negative scale (in the attached scene the root bone has an x-scale of -1). This flips the spine scene, but causes some issue with rotations apparently. We don't allow setting a negative scale in the editor or in runtime, but apparently we support it coming from  Spine, and the spine scene is rendered flipped.

 

Needs a small design on the next steps. Options to consider are; should we consider it a bug and "fix" it? Would break current behaviour. Massage data in our build-pipeline, e.g. catch the negative scale and perform a flip ourselves while keeping the scale positive.

Problem setting the parent of a collection factory created object to a spine bone (DEF-3256)

Description:
A factory created collection contains two game objects A and B
Game object A has a spine model and a script
Game object B has a sprite
Game object B is set as a child of A in the init() function
B is no longer visible and printing go.set_position() results in vmath.vector3(nan, nan, nan)

Delaying the set_parent operation until after init() works.

Steps to reproduce:
Refer to attached sample project

Expected result:
It should be possible to parent collection factory created game objects in the init() function of a script on one of the game objects

Actual result:
It is not possible to parent collection factory created game objects in the init() function of a script on one of the game objects

Cloning gui spine node doesn't set skin and animation parameters (DEF-2895)

Description:
Cloning a tree of gui nodes that contain spines will reset the skin and the animation properties to empty, rather than the values used in the original.

Steps to reproduce:
Have a spine gui node with a set skin and default animation
Clone tree

Expected result:
The skin and the default animation is the same

Actual result:
Skin and default animation is reset to empty.

Keyframed spine events does not fire if placed in frame 0 (DEF-2113)

Description:
From the forums: (LINK REMOVED)If a spine scene animation includes keyframed events, any events placed in frame 0 will not trigger any "spine_event" messages.

Steps to reproduce:
See the attached player.zip on the forums.

Expected result:
The keyframed event placed in the first frame (frame 0) should trigger "spine_event".

Actual result:
"spine_event" is not sent/triggered for events placed in frame 0.

Use blend modes defined in Spine (DEF-2400)

Description:
There should be a SpineModel BlendMode setting to respect the blend modes defined in a Spine file instead of overriding it with one mode for the whole thing.

Currently the blend mode can be set on a SpineModel which is fine in some cases. The problem is when a Spine has some parts that should be rendered with Add and some other parts that should be Alpha blended. What you need to do in those cases is to split it up into multiple animations and Spine files, set up one SpineModel for each blend layer (making sure it's rendered in the right order) and play the animations in sync.
A much better workflow would be to create just one Spine file that has the blend modes defined. Then a single SpineModel could be set up with the blend mode to "Spine" or something similar. Each Spine sub mesh would be rendered with the blend mode defined in the Spine file.

Use case:
Since there is no option not to override the blend modes defined in a Spine file we have to split up the animations across multiple files. This is a very bad workflow for artists, since you can't see the whole animation in the Spine editor. It also limits how many blend layers you can use without it getting too difficult to manage.

Business need:
Adding this feature would save us time and make it possible to do more complex Spine animations of higher quality.
2017-02-16 08:06:40 (Halldor.Bjarnason)
I would like to add that with the current workaround the 'add' blending mode layers obviously can not be in different depths of the animation, they are always in the front or in the back of the whole thing.

Spine default skin handled differently in bob/ed2 (DEF-3070)

Forum post: [(LINK REMOVED)For example setting a default skin in script works as expected when spine resource is built through editor2. but not through Bob

For example:

{code:java}
gui.set_spine_skin(combo_node, hash('default'))
{code}

is required in ed2 but fails when built through Bob. In Bob, not setting a skin at all will assume we want to use the default skin.

Prebuilt Spine test data should automatically be generated during build (DEF-3078)

Currently there are some Spine tests in in gamesys that needs prebuilt data (rigscene, meshset etc) to work. These prebuilt files can be generated using a script located under the test folder for gamesys, which will run bob-light on a simple project and copy the resulting files to the correct folder.

If the protobuf messages for rig is updated, these prebuilt files needs to be regenerated once again, and committed the the repo. This is not ideal, it would be much better if this script/step is automatically run when building+running the gamesys tests.

Implement support for Spines "Tint black" function (DEF-2955)

Description: Standard image tint in Spine only allows to tint in equal or lower brightness than the source image, but since a while back there is an option to flag a slot with "Tint black". With "Tint black" checked an image can be tinted to equal or higher brightness (all the way to white) instead, which I often find handy when making various effects and glowing transitions.

Use case: I want a game tile to become glowing white before it explodes. Currently I have to add a white version of the tile image and put it on an extra bone to make a smooth animation to full glow. With tint black I can just animate to color to white and save texture space, have less bones and a more easily manageable rig.

Business need: I think this will be useful in any project that uses spine for animations. The current workaround is to add duplicated over-bright images when animating glow effects on game and ui objects.

Spine takes image name from slot not path (DEF-2709)

Description:
Defold seams to use the slot of a image as its path instead of the skins path name.

Steps to reproduce:
Create a spine that have a different path than name.
Check out the provided zip, the animation json "path" will not work even though the image "logo" is in the atlas provided.

Expected result:
The runtime should be able to find the image.

Actual result:
The runtime says that the image is missing.

2017-11-29 15:24:12 (Mattias.Hedberg)
Attached screenshot of json file. If there is a path entry Defold should use that instead of name.

Investigate GO instance index release in model and spine model component (DEF-2465)

Description:
When debugging an error that happened in Cohesion, which resulted in issue DEF-2464, we came across something that did not look correct in how we handle GO instance indices.

This issue should focus on investigating the potential issues we found.

Inside {{OnResourceReloaded}} (in comp_spine_model.cpp) call {{DestroyComponent}} using an index which comes from a loop inside {{ResourceReloadedCallback}}. The index looks to be set as an integer from 0 to n, where n is the number of spine components in SpineModelWorld. But the index that is expected is the actual gameobject index, which as far as I understand, does not map 1:1 of the component index in the world.

Spine crops sprites when using inner-padding in atlas (DEF-2846)

No inner padding on spine in gui:

!image-2017-08-17-13-05-38-030.png!

20 pixels inner padding:

!image-2017-08-17-13-06-27-988.png!
2017-08-17 15:32:06 (Johan.Beck-Noren)
Issue is present for spine in both collection and gui, editor (1+2) rendering also shows the issue.

Error when building bundle for android(`libSpineExt.dll`)

I get this error when building a bundle from editor on android.

/defold-spine/plugins/lib/x86_64-win32/libSpineExt.dll
E:\Projects\PotatoJam\spine_offset\build\plugins\defold-spine\plugins\lib\x86_64-win32\libSpineExt.dll (The process cannot access the file because it is being used by another process)

spine_offset.zip

Build time2022-03-08T12:35:13.609680
Defold channeleditor-alpha
Defold editor shac281f9bace40f3d2e6a56d5b515601e92f5ab9ad
Defold engine sha0e77ba11ac957ee01878bbde2e6ac0c9fae6dc01
Defold version1.3.0
GPURadeon RX 580 Series
GPU Driver4.5.14761 Compatibility Profile Context 21.30.23.04 30.0.13023.4001
Java version11.0.1+13
OS archamd64
OS nameWindows 10
OS version10.0

Integrate "tint" into the vertex color

Instead of using the "tint" shader uniform (since it breaks batches), we should be able to pass that into the vertex generation function, and use the vertex color instead.

Preview Spine animations (DEFEDIT-683)

Description:
When in a *.spinescene I want the ability to preview the different animations. This would be helpful even in *.go, *.collection, and *.gui

Use case:
User want to see how the spine animation looks in the engine

2017-01-11 14:28:07 (Sara.Cederberg)
Ragnar: We have not yet added spine animation previewing to Editor2 at all, but when we do we should fix it for spine scenes as well.

Things to do for official runtime

These are the things we need to do in order to keep the extension functionality on par with the current runtime.

Events

  • Animation complete message / callback
  • Animation custom event message / callback

Properties

  • "cursor"
  • "playback_rate"
  • "material"
  • "skin"
  • "animation"

Functions

  • spine.play_anim()
  • spine.cancel()
  • spine.set_skin - remove the slot part from this function
  • spine.set_attachment(slot, attachment) - to compensate for the removed argument of the set_skin
  • spine.set_constant()
  • spine.reset_constant (should we support go.set(..., nil) ? )

Bones support

  • spine.get_go

IK support

  • spine.set_ik_target_position
  • spine.set_ik_target
  • spine.reset_ik_target

Support Spine as Go extension

  • Engine
  • Editor

Support Spine as a Gui extension

  • Engine
  • Editor

Particles do not inherit scale from Spine bone (DEF-2637)

Particles are not scaled when childed to a Spine bone that has an animated scale.

Steps to reproduce:
Check out the Defold project CohesionProduction and the branch bug/spine_bone_particle_scale.
Start the game.
There are three objects in the scene, each with a particlefx and a sprite component. Two of the objects are scaled by go.animate() and in those cases the particles are scaled as expected. But when it comes to the object that is childed to a spine bone the sprite scales but not the particles.

play_anim() callback is not called at end of animation

The complete_function specified when calling play_anim() is not called when an animation finishes.

I added an on_message handler for hash("spine_animation_done"), and those messages are received, which suggests that the callback parameter is being ignored.

Spine playrate not correct on Windows (DEF-2887)

Description:
From forums: [(LINK REMOVED){quote}We have lots of Spine animations with flipbook-animations in the timeline. (one key of changed image per frame)
This works smoothly on OSX and iOS. But not so much on Windows.
The whole game is running on 60 fps with no stutter but the spine animation is barely looking like 20-30 fps stuttering in its animation.
The animation itself takes the same amount of time to play, its just as if it skips every second frame.
{quote}

Steps to reproduce:
Run the "Test_project_2" project (id: 71576, ask [~sven.andersson] for access) on a Windows machine.

Expected result:
Should behave the same as on any other platform.

Actual result:
According to report, seems to be skipping frames. (Unverified, need verify on our machines.)
2017-10-11 15:03:32 (sven.andersson)
Could not reproduce! Andreas from Strangequest will be here on Monday (16/10), will try to recreate on his hardware.

Unable to set Spine Json property

Expected behaviour

Setting the Spine Json of a Spine Scene does not throw an error.

Actual behaviour

It throws the following error:

java.lang.AssertionError: Assert failed: Attempting to connect 72057594037927951 (a editor.placeholder-resource/PlaceholderResourceNode) :content to 72057594037928107 (a editor.spineext/SpineSceneNode) :spine-json-content, but editor.placeholder-resource/PlaceholderResourceNode does not have an output or property named :content
output-valtype

Steps to reproduce

  1. Fetch the https://github.com/defold/extension-spine/archive/refs/tags/2.0.1.zip library
  2. Create a Spine Scene
  3. Add the following .spinejson file to the Spine Json property

raw file contents:

{"skeleton":{"hash":"xAG1PDbOmds","spine":"4.0.61","x":-990.73,"y":-262.96,"width":1963.71,"height":637.77,"images":"","audio":""},"bones":[{"name":"root"},{"name":"bone","parent":"root","length":238.92,"rotation":178.02,"x":-11.01,"y":3.1},{"name":"bone2","parent":"bone","length":350.57,"rotation":-10.01,"x":250.25,"y":1.37},{"name":"bone3","parent":"bone2","length":217.88,"rotation":14.24,"x":350.57}],"slots":[{"name":"dolphin","bone":"bone3","attachment":"dolphin"}],"skins":[{"name":"default","attachments":{"dolphin":{"dolphin":{"type":"mesh","uvs":[0.57156,0,0.59564,0.01342,0.55505,0.14697,0.55878,0.22289,0.59834,0.30457,0.61605,0.32541,0.70249,0.4042,0.79966,0.49277,0.88109,0.71966,0.88347,0.70898,0.92342,0.68821,0.98931,0.72447,1,0.74704,1,0.74922,0.92981,0.79848,0.93563,0.91264,0.96954,1,0.96359,1,0.93174,0.98545,0.8507,0.85068,0.78286,0.73785,0.76013,0.72619,0.67385,0.71677,0.55895,0.70423,0.41553,0.68857,0.41952,0.71725,0.40419,0.75475,0.33078,0.75554,0.30334,0.72875,0.24378,0.67061,0.23424,0.66076,0.13804,0.66559,0.12511,0.66623,0.10628,0.69067,0.01153,0.758,0,0.74268,0,0.71583,0.09465,0.47886,0.16825,0.29458,0.26347,0.23034,0.30619,0.20152,0.41633,0.17582,0.44328,0.15096,0.54464,0,0.28353,0.48117,0.12122,0.59319,0.42743,0.45795,0.8655,0.78689,0.7898,0.63664,0.68706,0.57262,0.57866,0.50423],"triangles":[2,43,0,2,0,1,42,43,2,46,41,42,44,39,40,38,39,44,46,44,40,46,40,41,50,3,4,50,4,5,42,2,3,46,42,3,46,3,50,49,5,6,49,6,7,50,5,49,45,37,38,45,38,44,48,49,7,30,45,44,31,45,30,32,45,31,29,30,44,7,8,48,24,44,46,28,29,44,37,45,36,33,45,32,23,46,50,24,46,23,45,35,36,22,50,49,23,50,22,21,49,48,22,49,21,44,27,28,20,21,48,47,20,48,35,45,34,11,12,13,44,24,27,26,24,25,26,27,24,33,34,45,8,47,48,14,10,11,9,10,14,8,9,14,14,11,13,47,8,14,19,20,47,15,47,14,15,19,47,18,19,15,16,17,15,18,15,17],"vertices":[1,1,-96.76,-375.28,1,1,1,-143.83,-372.2,1,1,1,-80.39,-265.77,1,1,1,-95.19,-212.51,1,1,1,-178.58,-164.81,1,1,1,-214.32,-154.7,1,1,1,-386.39,-121.74,1,1,1,-579.82,-84.69,1,1,1,-757.45,55.49,1,1,1,-760.87,47.21,1,1,1,-834.58,21.57,1,1,1,-963.33,29.68,1,1,1,-985.91,42.93,1,1,1,-986.13,44.49,1,1,1,-857.93,98.66,1,1,1,-880.6,178.69,1,1,1,-953.83,231.98,1,1,1,-942.55,233.58,1,1,1,-880.63,231.79,1,1,1,-713.11,157.35,1,1,1,-572.88,95.03,1,1,1,-528.54,92.84,1,1,1,-363.84,109.42,1,1,1,-144.49,131.5,1,2,1,129.28,159.06,0.83931,2,-70.26,185.91,0.16069,2,1,118.79,178.48,0.79764,2,-74.7,207.54,0.20236,2,1,144.07,209.43,0.7392,2,-41.55,229.86,0.2608,2,1,283.32,229.83,0.31404,2,97.66,209.16,0.68596,2,1,338.13,218.1,0.16813,2,146.74,182.1,0.83187,3,1,457.07,192.63,0.0113,2,253.25,123.36,0.96532,3,-58.93,145.65,0.02338,3,1,476.18,188.17,0.00463,2,270.25,113.56,0.93629,3,-45.35,131.5,0.05908,2,2,453.09,89.14,4.8E-4,3,123.36,56.91,0.99952,1,3,146.03,46.89,1,1,3,186.19,47.68,1,1,3,371.41,15.19,1,1,3,386.78,-4.16,1,1,3,378.61,-21.74,1,2,2,514.94,-56.69,9.7E-4,3,141.96,-100.41,0.99903,2,2,355.37,-166.9,0.65911,3,-42.07,-161.58,0.34089,2,2,167.92,-185.17,0.99908,3,-227.15,-126.69,9.2E-4,2,1,386.36,-159.53,0.0386,2,83.82,-193.36,0.9614,2,1,179.95,-207.66,0.83427,2,-127.7,-179.81,0.16573,2,1,131.34,-232.71,0.95003,2,-181.47,-189.75,0.04997,1,1,-45.68,-368.01,1,1,2,157.26,-0.34,1,1,3,130.57,-4.08,1,1,1,130.16,-9,1,1,1,-734.7,107.76,1,1,1,-575.74,20.82,1,1,1,-374.24,2.82,1,1,1,-161.55,-16.78,1],"hull":44,"edges":[0,86,0,2,2,4,4,6,6,8,8,10,14,16,16,18,18,20,20,22,22,24,24,26,26,28,28,30,30,32,32,34,34,36,40,42,48,50,50,52,52,54,58,60,64,66,66,68,68,70,70,72,80,82,82,84,84,86,76,78,78,80,54,56,56,58,56,88,88,78,72,74,74,76,60,62,62,64,62,90,90,74,70,90,90,88,48,92,92,84,88,92,46,48,10,12,12,14,42,44,44,46,36,38,38,40,16,94,94,38,28,94,14,96,96,40,94,96,12,98,98,44,96,98,8,100,100,46,98,100,100,92],"width":1917,"height":722}}}}],"animations":{"animation":{"bones":{"bone2":{"rotate":[{"value":27.93},{"time":0.4,"value":-21.82},{"time":0.8,"value":-68.63},{"time":1,"value":14.58}]},"bone3":{"rotate":[{"value":20.09},{"time":0.4,"value":-44.17},{"time":0.8,"value":87.25},{"time":1,"value":-10.81,"curve":"stepped"},{"time":1.3333,"value":-10.81}]}}}}}
prettified file contents
{
  "skeleton": {
    "hash": "xAG1PDbOmds",
    "spine": "4.0.61",
    "x": -990.73,
    "y": -262.96,
    "width": 1963.71,
    "height": 637.77,
    "images": "",
    "audio": ""
  },
  "bones": [
    {
      "name": "root"
    },
    {
      "name": "bone",
      "parent": "root",
      "length": 238.92,
      "rotation": 178.02,
      "x": -11.01,
      "y": 3.1
    },
    {
      "name": "bone2",
      "parent": "bone",
      "length": 350.57,
      "rotation": -10.01,
      "x": 250.25,
      "y": 1.37
    },
    {
      "name": "bone3",
      "parent": "bone2",
      "length": 217.88,
      "rotation": 14.24,
      "x": 350.57
    }
  ],
  "slots": [
    {
      "name": "dolphin",
      "bone": "bone3",
      "attachment": "dolphin"
    }
  ],
  "skins": [
    {
      "name": "default",
      "attachments": {
        "dolphin": {
          "dolphin": {
            "type": "mesh",
            "uvs": [
              0.57156,
              0,
              0.59564,
              0.01342,
              0.55505,
              0.14697,
              0.55878,
              0.22289,
              0.59834,
              0.30457,
              0.61605,
              0.32541,
              0.70249,
              0.4042,
              0.79966,
              0.49277,
              0.88109,
              0.71966,
              0.88347,
              0.70898,
              0.92342,
              0.68821,
              0.98931,
              0.72447,
              1,
              0.74704,
              1,
              0.74922,
              0.92981,
              0.79848,
              0.93563,
              0.91264,
              0.96954,
              1,
              0.96359,
              1,
              0.93174,
              0.98545,
              0.8507,
              0.85068,
              0.78286,
              0.73785,
              0.76013,
              0.72619,
              0.67385,
              0.71677,
              0.55895,
              0.70423,
              0.41553,
              0.68857,
              0.41952,
              0.71725,
              0.40419,
              0.75475,
              0.33078,
              0.75554,
              0.30334,
              0.72875,
              0.24378,
              0.67061,
              0.23424,
              0.66076,
              0.13804,
              0.66559,
              0.12511,
              0.66623,
              0.10628,
              0.69067,
              0.01153,
              0.758,
              0,
              0.74268,
              0,
              0.71583,
              0.09465,
              0.47886,
              0.16825,
              0.29458,
              0.26347,
              0.23034,
              0.30619,
              0.20152,
              0.41633,
              0.17582,
              0.44328,
              0.15096,
              0.54464,
              0,
              0.28353,
              0.48117,
              0.12122,
              0.59319,
              0.42743,
              0.45795,
              0.8655,
              0.78689,
              0.7898,
              0.63664,
              0.68706,
              0.57262,
              0.57866,
              0.50423
            ],
            "triangles": [
              2,
              43,
              0,
              2,
              0,
              1,
              42,
              43,
              2,
              46,
              41,
              42,
              44,
              39,
              40,
              38,
              39,
              44,
              46,
              44,
              40,
              46,
              40,
              41,
              50,
              3,
              4,
              50,
              4,
              5,
              42,
              2,
              3,
              46,
              42,
              3,
              46,
              3,
              50,
              49,
              5,
              6,
              49,
              6,
              7,
              50,
              5,
              49,
              45,
              37,
              38,
              45,
              38,
              44,
              48,
              49,
              7,
              30,
              45,
              44,
              31,
              45,
              30,
              32,
              45,
              31,
              29,
              30,
              44,
              7,
              8,
              48,
              24,
              44,
              46,
              28,
              29,
              44,
              37,
              45,
              36,
              33,
              45,
              32,
              23,
              46,
              50,
              24,
              46,
              23,
              45,
              35,
              36,
              22,
              50,
              49,
              23,
              50,
              22,
              21,
              49,
              48,
              22,
              49,
              21,
              44,
              27,
              28,
              20,
              21,
              48,
              47,
              20,
              48,
              35,
              45,
              34,
              11,
              12,
              13,
              44,
              24,
              27,
              26,
              24,
              25,
              26,
              27,
              24,
              33,
              34,
              45,
              8,
              47,
              48,
              14,
              10,
              11,
              9,
              10,
              14,
              8,
              9,
              14,
              14,
              11,
              13,
              47,
              8,
              14,
              19,
              20,
              47,
              15,
              47,
              14,
              15,
              19,
              47,
              18,
              19,
              15,
              16,
              17,
              15,
              18,
              15,
              17
            ],
            "vertices": [
              1,
              1,
              -96.76,
              -375.28,
              1,
              1,
              1,
              -143.83,
              -372.2,
              1,
              1,
              1,
              -80.39,
              -265.77,
              1,
              1,
              1,
              -95.19,
              -212.51,
              1,
              1,
              1,
              -178.58,
              -164.81,
              1,
              1,
              1,
              -214.32,
              -154.7,
              1,
              1,
              1,
              -386.39,
              -121.74,
              1,
              1,
              1,
              -579.82,
              -84.69,
              1,
              1,
              1,
              -757.45,
              55.49,
              1,
              1,
              1,
              -760.87,
              47.21,
              1,
              1,
              1,
              -834.58,
              21.57,
              1,
              1,
              1,
              -963.33,
              29.68,
              1,
              1,
              1,
              -985.91,
              42.93,
              1,
              1,
              1,
              -986.13,
              44.49,
              1,
              1,
              1,
              -857.93,
              98.66,
              1,
              1,
              1,
              -880.6,
              178.69,
              1,
              1,
              1,
              -953.83,
              231.98,
              1,
              1,
              1,
              -942.55,
              233.58,
              1,
              1,
              1,
              -880.63,
              231.79,
              1,
              1,
              1,
              -713.11,
              157.35,
              1,
              1,
              1,
              -572.88,
              95.03,
              1,
              1,
              1,
              -528.54,
              92.84,
              1,
              1,
              1,
              -363.84,
              109.42,
              1,
              1,
              1,
              -144.49,
              131.5,
              1,
              2,
              1,
              129.28,
              159.06,
              0.83931,
              2,
              -70.26,
              185.91,
              0.16069,
              2,
              1,
              118.79,
              178.48,
              0.79764,
              2,
              -74.7,
              207.54,
              0.20236,
              2,
              1,
              144.07,
              209.43,
              0.7392,
              2,
              -41.55,
              229.86,
              0.2608,
              2,
              1,
              283.32,
              229.83,
              0.31404,
              2,
              97.66,
              209.16,
              0.68596,
              2,
              1,
              338.13,
              218.1,
              0.16813,
              2,
              146.74,
              182.1,
              0.83187,
              3,
              1,
              457.07,
              192.63,
              0.0113,
              2,
              253.25,
              123.36,
              0.96532,
              3,
              -58.93,
              145.65,
              0.02338,
              3,
              1,
              476.18,
              188.17,
              0.00463,
              2,
              270.25,
              113.56,
              0.93629,
              3,
              -45.35,
              131.5,
              0.05908,
              2,
              2,
              453.09,
              89.14,
              0.00048,
              3,
              123.36,
              56.91,
              0.99952,
              1,
              3,
              146.03,
              46.89,
              1,
              1,
              3,
              186.19,
              47.68,
              1,
              1,
              3,
              371.41,
              15.19,
              1,
              1,
              3,
              386.78,
              -4.16,
              1,
              1,
              3,
              378.61,
              -21.74,
              1,
              2,
              2,
              514.94,
              -56.69,
              0.00097,
              3,
              141.96,
              -100.41,
              0.99903,
              2,
              2,
              355.37,
              -166.9,
              0.65911,
              3,
              -42.07,
              -161.58,
              0.34089,
              2,
              2,
              167.92,
              -185.17,
              0.99908,
              3,
              -227.15,
              -126.69,
              0.00092,
              2,
              1,
              386.36,
              -159.53,
              0.0386,
              2,
              83.82,
              -193.36,
              0.9614,
              2,
              1,
              179.95,
              -207.66,
              0.83427,
              2,
              -127.7,
              -179.81,
              0.16573,
              2,
              1,
              131.34,
              -232.71,
              0.95003,
              2,
              -181.47,
              -189.75,
              0.04997,
              1,
              1,
              -45.68,
              -368.01,
              1,
              1,
              2,
              157.26,
              -0.34,
              1,
              1,
              3,
              130.57,
              -4.08,
              1,
              1,
              1,
              130.16,
              -9,
              1,
              1,
              1,
              -734.7,
              107.76,
              1,
              1,
              1,
              -575.74,
              20.82,
              1,
              1,
              1,
              -374.24,
              2.82,
              1,
              1,
              1,
              -161.55,
              -16.78,
              1
            ],
            "hull": 44,
            "edges": [
              0,
              86,
              0,
              2,
              2,
              4,
              4,
              6,
              6,
              8,
              8,
              10,
              14,
              16,
              16,
              18,
              18,
              20,
              20,
              22,
              22,
              24,
              24,
              26,
              26,
              28,
              28,
              30,
              30,
              32,
              32,
              34,
              34,
              36,
              40,
              42,
              48,
              50,
              50,
              52,
              52,
              54,
              58,
              60,
              64,
              66,
              66,
              68,
              68,
              70,
              70,
              72,
              80,
              82,
              82,
              84,
              84,
              86,
              76,
              78,
              78,
              80,
              54,
              56,
              56,
              58,
              56,
              88,
              88,
              78,
              72,
              74,
              74,
              76,
              60,
              62,
              62,
              64,
              62,
              90,
              90,
              74,
              70,
              90,
              90,
              88,
              48,
              92,
              92,
              84,
              88,
              92,
              46,
              48,
              10,
              12,
              12,
              14,
              42,
              44,
              44,
              46,
              36,
              38,
              38,
              40,
              16,
              94,
              94,
              38,
              28,
              94,
              14,
              96,
              96,
              40,
              94,
              96,
              12,
              98,
              98,
              44,
              96,
              98,
              8,
              100,
              100,
              46,
              98,
              100,
              100,
              92
            ],
            "width": 1917,
            "height": 722
          }
        }
      }
    }
  ],
  "animations": {
    "animation": {
      "bones": {
        "bone2": {
          "rotate": [
            {
              "value": 27.93
            },
            {
              "time": 0.4,
              "value": -21.82
            },
            {
              "time": 0.8,
              "value": -68.63
            },
            {
              "time": 1,
              "value": 14.58
            }
          ]
        },
        "bone3": {
          "rotate": [
            {
              "value": 20.09
            },
            {
              "time": 0.4,
              "value": -44.17
            },
            {
              "time": 0.8,
              "value": 87.25
            },
            {
              "time": 1,
              "value": -10.81,
              "curve": "stepped"
            },
            {
              "time": 1.3333,
              "value": -10.81
            }
          ]
        }
      }
    }
  }
}
  1. Observe the error

Notes:

  • I experienced this with defold-spine 2.0.0 as well
  • The spine model contains meshes
  • See related issue: defold/defold#6435.

Build time2022-02-16T09:54:22.680586
Defold channeleditor-alpha
Defold editor sha12cd9306bcb9d37dcc5c97674e395266321a9d22
Defold engine sha84a9c89dfd5a2c3818c01e7c6777169272d9390b
Defold version1.2.192
Errordf64ef3e83ff48268e7e9ffd2eb2708b
GPUIntel(R) Iris(TM) Plus Graphics 655
GPU Driver2.1 INTEL-18.4.6
Java version11.0.1+13
OS archx86_64
OS nameMac OS X
OS version10.16

Design: Spine Flipping: Bones (DEF-1420)

Implement Defold to support flipping of bones

Alternative solutions that need to looked into during design: (sorry for the Swedish)

  • Just flip root (convention), just a local flip-Simple but not so good
  • Use Spines model (model/object flip) -second best solution
  • Bake the flip in animation (done in the build step on the bone)-Preferred solution

CLONE - Some images are not reported as missing for spine models (DEFEDIT-753)

Description:
(Bug found in Cohesion.)
If a spine scene is referencing an image, that does not exist in the atlas, in some cases the editor will not report an error but instead use the whole "atlas as image".

Steps to reproduce:
Setup a project with spine scene, spine model and atlas using the attached files. Then in the atlas, remove the "grid" image.

Expected result:
View the spine model file, where the grid should be is now the whole atlas image and no error is reported.

Actual result:
The editor should report an error that the grid image could not be found in the atlas.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.