Coder Social home page Coder Social logo

Spine support? about ezgui HOT 4 OPEN

ezelia avatar ezelia commented on June 26, 2024
Spine support?

from ezgui.

Comments (4)

alaa-eddine avatar alaa-eddine commented on June 26, 2024

Hi @Shadowstep33
What do you mean by Spine support ?
if it's about animations, there is a Pixi plugin which work just fine :)

from ezgui.

Shadowstep33 avatar Shadowstep33 commented on June 26, 2024

By Spine support I mean specifically saying an EZGUI component is or houses a Spine object (component: "Spine") because otherwise EZGUI is going to attempt to just drop a PIXI.Sprite down and call it a day correct? As it is right now I could probably add the Spine object to the EZGUI object manually but it would be cool if I could ue EZGUI params to control/place the spine object so for example something like:

{
component: 'Spine',
image: 'spineAtlasName',
animations: {
idle: 'idle',
move: 'run'
},
autoStart: true
...
}

With that and Spine support theoretically I would have just added a Spine animation to a menu that automatically plays idle animation and as soon as it's position changes starts playing run animation

from ezgui.

Shadowstep33 avatar Shadowstep33 commented on June 26, 2024

and yes, I am referring to the same Spine as pixi-spine

from ezgui.

Shadowstep33 avatar Shadowstep33 commented on June 26, 2024

I'm not sure your exact methodology/flow for getting from a texture reference to outputted image; I have gotten spine objects to appear using some config settings and modifying your code, but I can't seem to get them to animate. If you are taking a render texture of all EZGUI created things and pushing those to client, then that would probably be a possible reason. If there is a way to return a raw object to the client, that would be optimal but here is the code that atleast allows a Spine object to be placed. It will only sit at frame one though.

EZGUI.js 2213

                if(settings.spine && typeof PIXI.spine != "undefined"){
                    console.log("Spine ",settings,cfg,loader.resources)
                    var img = new PIXI.spine.Spine.fromAtlas(settings.image);   // Need to get image name directly
                    img.skeleton.setToSetupPose();
                    img.update(0);
                    img.autoUpdate = true;

                    var anims = [];
                    for(var v in img.spineData.animations){
                        anims.push(img.spineData.animations[v].name);
                    }   

                    if(anims.indexOf(settings.anim) >= 0){
                        img.state.setAnimationByName(0, settings.anim, true);
                        console.log("Set animation", img)
                    }

                    img.position.y = settings.height / 2;
                    img.position.x = settings.width / 2;
                    img.width = settings.width / 5;
                    img.scale.y = img.scale.x;
                }else

...

the json config to make this happen would look something like this

...
                        {
                            width: wW,
                            height: wH,
                            position: {x: 0, y: 0},
                            spine: true,
                            anim: "idle",
                            image: 'spineAtlasID'
                        }
...

from ezgui.

Related Issues (20)

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.