Hackerham

  • 14 июл 2021
  • Регистрация: 9 ноя 2015

    npm pixi-spine/all-4.0 is up to date, works with pixi 5 & 6.

    That's common problem for many projects. For that kind of tricks runtimes need better integration with target engines, thats why current strategy is "Every runtime is for themselves", there is no common API.

    pixi.js runtime gives provides a way to change a texture without changing attachment or slot.

    There's up-to-date spine plugin for pixi, but it does not support pixiv2 which is used in phaser: https://github.com/pixijs/pixi-spine

    Also, old spine plugin for phaser is basically the same code as spine-js, you can try to port it yourself

    I just fixed what you asked at html5forum about IK flip, skew will be ready tomorrow

    hey. Skype jedi_knight2008, email ivan dot popelyshev at gmail dot com

    ping Jason
    pint timeout

    guys? you can contact me on skype, jedi_knight2008

    "My email is: <removed> ,"

    Im afraid its lost in translation. Please post your email in pixi-spine github or in html5gamedevs forum pixi section

    Nate написал

    1) Polygon packing would be great, but it's quite complex. Even rectangular bin packing is NP hard.

    N is not that big in our cases. Unity and TexturePacker already have it, but I dont know which algorithm they are using. Did you at least investigate it?

    Nate написал

    2) What benefits are there to putting Spine on Steam? What Spriter does is not interesting for us.

    I thought you'll be able to sell stuff in regions, but I dont know if its possible to sell periods and not whole app.

    Nate написал

    3) I understand the difference in economies between the US and eastern Europe (I live in Croatia). However, it's difficult to make discounts fair, especially for a lifetime license. Unfortunately we haven't been able to come up with a reasonable solution.

    Make it yearly, like texturePacker. Even JetBrains doesnt sell life-time licenses anymore.

    Great! I'm going to update pixi.js runtime.

    @Nate

    I just dump here all stuff that you didnt answer before:

    News:
    Rpgmaker MV is going to support spine soon.
    Pixi.js runtime uses GPU to optimize FFD animations.

    Questions:
    1) What about support of polygon packing for meshes? I saw how @StageXL published in his twitter optimized atlas for Rider.
    2) When will you publish it in Steam? Spriter is already there.
    3) What about region-based discounts? I know a number of indie game developers in russia and ukraine who just cant spend that much money due to economical crysis.

    If only Spine could pack textures based on its meshes (polygon packing)

    F YEAH, that patch moves all vertex calculations to the shader.

    https://github.com/pixijs/pixi-spine/blob/gpupatch/gpupatch/SkinnedMeshPatch.js

    Some shader code:

    void main(void){,
       vec2 ffd[4];
       ffd[0] = aFfd11.xy * ffdAlpha[0] + aFfd21.xy * ffdAlpha[1] + aFfd31.xy * ffdAlpha[2] + aFfd41.xy * ffdAlpha[3];
       ffd[1] = aFfd11.zw * ffdAlpha[0] + aFfd21.zw * ffdAlpha[1] + aFfd31.zw * ffdAlpha[2] + aFfd41.zw * ffdAlpha[3];
       ffd[2] = aFfd12.xy * ffdAlpha[0] + aFfd22.xy * ffdAlpha[1] + aFfd32.xy * ffdAlpha[2] + aFfd42.xy * ffdAlpha[3];
       ffd[3] = aFfd12.zw * ffdAlpha[0] + aFfd22.zw * ffdAlpha[1] + aFfd32.zw * ffdAlpha[2] + aFfd42.zw * ffdAlpha[3];
       vec3 skinned = vec3( 0 );
       skinned += boneGlobalMatrices[ int(aSkin0[0]) ] * vec3(aSkin0[1] + ffd[0].x, aSkin0[2] + ffd[0].y, 1.0) * aSkin0[3]; 
       skinned += boneGlobalMatrices[ int(aSkin1[0]) ] * vec3(aSkin1[1] + ffd[1].x, aSkin1[2] + ffd[1].y, 1.0) * aSkin1[3]; 
       skinned += boneGlobalMatrices[ int(aSkin2[0]) ] * vec3(aSkin2[1] + ffd[2].x, aSkin2[2] + ffd[2].y, 1.0) * aSkin2[3]; 
       skinned += boneGlobalMatrices[ int(aSkin3[0]) ] * vec3(aSkin3[1] + ffd[3].x, aSkin3[2] + ffd[3].y, 1.0) * aSkin3[3]; 
       gl_Position = vec4(projectionMatrix * skinned, 1.0);
       vTextureCoord = aTextureCoord;
    }
    

    I opened a game that uses a lot of spine animations, pasted it into console and got 60 FPS instead of 30.

    You can try to port it in other runtimes, I've noticed that people are complaining about performance in Unity.

    There're no benchmarks yet, but I'll make them soon.

    P.S. Is there anyway to get a discount on spine prof. version just because I'm awesome?

    • Изменено