Page 1 of 3 123 LastLast
Results 1 to 10 of 28

Thread: Spriter - Tool for making 2d animations easier

  1. #1

    Spriter - Tool for making 2d animations easier

    hey guys,

    i found this project at kickstarter and it comes kinda handy when you animate 2d sprites
    it work well with Inkscape but should work with any other graphic program so you should try it out

    normally i would post it under tools but due to the challenge it fits better here

  2. #2
    Co-Founder / PGD Elder WILL's Avatar
    Join Date
    Apr 2003
    Location
    Canada
    Posts
    6,107
    Blog Entries
    25
    Cool idea! Thanks for the post.
    Jason McMillen
    Pascal Game Development
    Co-Founder





  3. #3
    MS only (and they don't even say it). That limits the fun IMHO.

  4. #4
    Spriter is very promising, but still is a bit far of being totally usable!

    There is something similar already available for ZenGL : CoolSprite Editor, and it is already very usable. With some small improvements it would be the definitive tool for doing these kind of animations! The original post is in Russian, but Google Translator can help! =)
    http://translate.google.com/translat...c%2C297.0.html

    Here is something I'm doing using it (for my next super secret project) .



    Here a small video showing how to use the editor!

  5. #5
    Well... Unfortunately Spriter seems to be delayed and Cool Sprite editor is not updated anymore.

    But... Spine were funded on Kickstarter, and it is already very superior to Spriter and Cool Sprite. http://www.kickstarter.com/projects/...software/spine


    There is already some runtimes for it ready for use (https://github.com/EsotericSoftware/spine-runtimes), and there is a lot more of runtimes coming (unfortunately no Pascal runtimes planned for it).

    Anyone interested in start porting the libgdx runtime of Spine to Pascal? I will try to start it soon and some help would be very appreciated! My idea is keep the source free to be easily usable on popular Pascal Engines (ZenGL, Phoenix, Asphyre...).

  6. #6
    PGDCE Developer Carver413's Avatar
    Join Date
    Jun 2010
    Location
    Spokane,WA,Usa
    Posts
    206
    I am working on some simular stuff for 3d for the explorer project. sort of a gijo kind of setup.

  7. #7
    hi, thanks for bringing this spine tool to my attention. I have made a complete pascal runtime port for it. I still need to kill all the memory leaks but that may take a couple of days at most.
    unlike the existing runtimes for spine I did not bind it to any one graphics framework, so anyone can use it with their favorite pascal framework.
    I have attached a small demo rendered using my g2mp game framework.
    Attached Files Attached Files

  8. #8
    Awesome news Dan!

    Thanks a lot for creating the runtime! I can't wait to test it! =)

    Your example works like a charm! =)

  9. #9
    you are welcome, I will upload the runtime some time this weekend. if anyone knows of similar tools that enhance the game development I would be happy to create pascal support for it.

  10. #10
    ok here it is: http://gen2gdk.com/files/SpinePascal.rar
    if anyone is interested I can make the demos with pure opnegl and direct3d. at the moment there is only one demo that uses g2mp.
    Here is how much code I had to write to make it work with g2mp:
    Code:
    TG2SpineTexture = class (TSpineTexture)
      public
        Texture: TG2Texture2D;
        constructor Create(const TextureName: AnsiString);
        destructor Destroy; override;
        function GetWidth: Integer; override;
        function GetHeight: Integer; override;
      end;
    
      TG2SpineTextureLoader = class (TSpineTextureLoader)
      public
        function LoadTexture(const TextureName: AnsiString): TSpineTexture; override;
      end;
    
      TG2SpineRender = class (TSpineRender)
      public
        procedure Render(const Texture: TSpineTexture; const Vertices: PSpineVertexArray); override;
      end;
    
    ...
    
    //TG2SpineTexture BEGIN
    constructor TG2SpineTexture.Create(const TextureName: AnsiString);
    begin
      inherited Create;
      Texture := TG2Texture2D.Create;
      Texture.Load(TextureName);
    end;
    
    destructor TG2SpineTexture.Destroy;
    begin
      Texture.Free;
      inherited Destroy;
    end;
    
    function TG2SpineTexture.GetWidth: Integer;
    begin
      Result := Texture.RealWidth;
    end;
    
    function TG2SpineTexture.GetHeight: Integer;
    begin
      Result := Texture.RealHeight;
    end;
    //TG2SpineTexture END
    
    //TG2SpineTextureLoader BEGIN
    function TG2SpineTextureLoader.LoadTexture(const TextureName: AnsiString): TSpineTexture;
    begin
      Result := TG2SpineTexture.Create(TextureName);
    end;
    //TG2SpineTextureLoader END
    
    //TG2SpineRender BEGIN
    procedure TG2SpineRender.Render(const Texture: TSpineTexture; const Vertices: PSpineVertexArray);
      var pv: PSpineVertexArray absolute Vertices;
    begin
      g2.PicQuadCol(
        pv^[0].x, pv^[0].y, pv^[1].x, pv^[1].y,
        pv^[3].x, pv^[3].y, pv^[2].x, pv^[2].y,
        pv^[0].u, pv^[0].v, pv^[1].u, pv^[1].v,
        pv^[3].u, pv^[3].v, pv^[2].u, pv^[2].v,
        G2Color(Round(pv^[0].r * $ff), Round(pv^[0].g * $ff), Round(pv^[0].b * $ff), Round(pv^[0].a * $ff)),
        G2Color(Round(pv^[1].r * $ff), Round(pv^[1].g * $ff), Round(pv^[1].b * $ff), Round(pv^[1].a * $ff)),
        G2Color(Round(pv^[3].r * $ff), Round(pv^[3].g * $ff), Round(pv^[3].b * $ff), Round(pv^[3].a * $ff)),
        G2Color(Round(pv^[2].r * $ff), Round(pv^[2].g * $ff), Round(pv^[2].b * $ff), Round(pv^[2].a * $ff)),
        TG2SpineTexture(Texture).Texture, bmNormal, tfLinear
      );
    end;
    //TG2SpineRender END
    as you can see it's almost nothing compared to the size of the runtime code itself (~2700 lines).

    I have only tested the runtime with the fpc. I think it should work with delphi as well, but if you have any problems please let me know.
    I will later make a runtime for the smart mobile studio.

Page 1 of 3 123 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •