AuthorTopic: New pixel art (animation) program development  (Read 5770 times)

Offline willfaulds

  • 0010
  • *
  • Posts: 217
  • Karma: +0/-0
    • View Profile

New pixel art (animation) program development

on: August 01, 2009, 10:28:35 am
So the lack of decent pixel art animation programs on Mac has pushed be over the edge. I'm in the first stages of developing a multi-platform tool.

I'm not really looking for feature suggestions (I've looked over happymonster's topic http://www.wayofthepixel.net/pixelation/index.php?topic=7405.0).

What I would like to discuss is the best approach to layered animation (animation functionality will be a priority).

So I know of a few different approaches but none of them seem ideal - I've tried to conceive a hybrid but so far no luck.

Known approaches;

a/ New frame = Blank canvas = Layers only accessible on their frame of origin.

b/ New frame = All layers available.


a. This approach keeps things simple. As long as onion skinning or something similar is available its ok. But it can really slow down your work-flow if you need access to a constant layer (e.g. a background).

b. Its easy to get confused. Inexperienced users accidentally edit the look of an early frame. Can lead to far too many layers.


So does anyone use or know of a program that handles things differently? Please post a screenshot and description.

Does anyone want to help try and conceive a system? I've had some ideas but so far I think they'll just confuse new users.
« Last Edit: August 01, 2009, 10:44:58 am by willfaulds »

Offline Atnas

  • Moderator
  • 0100
  • *
  • Posts: 1074
  • Karma: +2/-0
  • very daijōbs
    • paintbread
    • paintbread
    • View Profile

Re: New pixel art (animation) program development

Reply #1 on: August 01, 2009, 02:21:14 pm
GG uses approach a, and it works rather well. Each frame is composed of layers, and you may copy any frame and paste it to the left or right of your current one. Makes things easy.

I would definitely like to see is a continuous layer option. Spans all frames, changing one instance will affect all instances of the frame.

Although I would want to use approach a. with constant layers, I do not know how you will deal with actually moving the layer up and down through what could be variable amount of layers frame to frame. Say you have it on layer 3 but there is only one existing layer? I guess blank layers, then, would be created to fill in the difference. But then it becomes approach b. And that's rather messy, what did you have in mind for constant layers? Only thing I can think of is to have it in a separate group from the other layers and have it set to a background.

Rather feature creep-ish.

There are not many pixel animation apps for Mac, so I think anything you do will be a godsend.  :P

Offline Jad

  • 0100
  • ***
  • Posts: 1048
  • Karma: +0/-0
    • View Profile

Re: New pixel art (animation) program development

Reply #2 on: August 01, 2009, 04:42:09 pm
just want to note that when you cycle through frames in GG, the layer tries to stay on the layer with the same name

so if you name your layers appropriately you'll stay on the same layer even though other things change with layer order and amount, etc.

I like it, it creates some order among the confusion
' _ '

Offline willfaulds

  • 0010
  • *
  • Posts: 217
  • Karma: +0/-0
    • View Profile

Re: New pixel art (animation) program development

Reply #3 on: August 01, 2009, 04:46:26 pm
Yeah I used a variety of animation packages and none seem to have found the perfect solution.

ImageReady uses b. - I've gotten quite used to this for pixel animations but it is messy at times. On the other hand you can do something so quickly and easily.

One partial solution I'm considering to improve things is the way in which frames/layers are displayed. The standard Photoshop solution is classic. Ordered by height with visual ques as to whats on the layer great for static work. ImageReady continues to use Photoshop established layer gui. But Flash for instances gives you a much more time based approach. Though layers in Flash are quite different in concept to layers in Photoshop. So I've been contemplating using both displays or attempting a hybrid version.




My earlier idea (which won't work its current from) was to have 2 layer panels. 1 = constant layers (available in all frames). 2 = frame layers (unique to their frame of origin). You would be able to drag and drop between them ^_^ This would make organising your layers really easy BUT as you too have realized how do you keep track of layer ordering... At present I'm pursuing this idea but in a single panel...
« Last Edit: August 01, 2009, 04:47:58 pm by willfaulds »

D.kappy

  • Guest

New pixel art animation program development

Reply #4 on: October 08, 2009, 03:19:53 am
Great point - my personal preference would be that all boards are developed in Kicad, which has no restrictions.

I dont know it theres any interoperability between Eagle CAD and Kicad?

Offline Ai

  • 0100
  • ***
  • Posts: 1057
  • Karma: +2/-0
  • finti
    • http://pixeljoint.com/pixels/profile.asp?id=1996
    • finticemo
    • View Profile

Re: New pixel art (animation) program development

Reply #5 on: October 08, 2009, 12:40:33 pm
Here are some thoughts not directly about *which* system is better, but might help you think

* I'd like to be able to quickly replace the content of a layer with one of the same-named layers in a different frame,
so maybe, if you rightclick on the thumbnail, you could get a list of those (with the default choice being the frame before this one, and the list being arranged by time proximity). I think this begins to address the 'too many layers available' problem.

* Failing to name your layers meaningfully is a recipe for failure when the animation is complex.
  It's probably therefore better to optimize for mostly-meaningful names (for example, treat the source layer name as much more important.. say you drag a layer from frame 2 onto the same named layer in the current frame -- then the position and other parameters of the layer should reset to match the source layer.)

* Using SHA1 hashing to distinguish unique layer content can also help in cutting down the list of source layers.
   instead of listing duplicate entries
  [001] foo
  [002] foo
  [004] foo
  [006] foo
  , list a single entry [001,~2,~4, ~6] foo and take the content from frame 001
  This can also prevent you from keeping duplicate layers in memory

* you might want to keep an eye on how Grafx2 ends up doing it: Layers are currently being worked on (basic functionality with a maximum of 8 layers currently). Once they're done it will open the way for animation.
  One of the angles they seem to be taking to simplify things: all layers are the same size. I think this is a good simplification that reduces the amount of commands needed and does not impact significantly on performance for typical pixel works.

http://code.google.com/p/grafx2/issues/detail?id=7&colspec=ID%20Type%20Status%20Priority%20Milestone%20Component%20Owner%20Summary%20Level

* I expect any pixel app to keep all frames in memory for quick flipping -- there should never be any wait loading from disk (or if it does, it should be because virtual memory is getting used -- this is what it's for, the OS does it better than any immature application can.)

* I'd like to see 'ghost' layers in the layer list..
   Like, say your previous frame  has 4 layers that aren't in this one.. they should show up in red as a single line.
   layers from the next frame should show up in green as a single line.
   clicking on their lines should allow you to 'realize' a copy of them in the current frame.
   This does not address all reuse situations, but I believe it addresses quite a lot.

* I think (complimenting the above) if you could quickly browse through thumbnails+layer names of layers on nearby frames and copy one complete with name into the current frame, that would address the remainder of the problem of easy reuse of nearby frames.

* finally, I say: 'new frame -> copy of all layers from the frame you were previously on (and no others)'

Hope that helps :)
If you insist on being pessimistic about your own abilities, consider also being pessimistic about the accuracy of that pessimistic judgement.

Offline Gil

  • 0100
  • ***
  • Posts: 1543
  • Karma: +1/-0
  • Too square to be hip
    • http://pixeljoint.com/p/475.htm
    • View Profile
    • My Portfolio

Re: New pixel art (animation) program development

Reply #6 on: October 08, 2009, 04:17:17 pm
I'd like Flash style layers for pixel animation. You can span a layer over an entire animation (background), one frame (animated moving part) or even a few frames.

Offsets would be cool too, like you span a layer over multiple frames, but you can move it around with offsets. Say you want a head to be exactly the same in each frame and if you change it in one, it changes on the others too, but it's offset along the Y axis in different frames.

Offline questseeker

  • 0010
  • *
  • Posts: 112
  • Karma: +0/-0
    • View Profile

Re: New pixel art (animation) program development

Reply #7 on: October 11, 2009, 04:39:25 pm
  • A Flash-style layer display, perhaps with more evidence of which frames have or don't have each layer (e.g. coloured bars rather than arrows), should be very clear and policy-agnostic with respect to the question in the first post. In particular, accessing every layer of every frame would be very easy.
  • Layers in a Flash-style display could be dragged and dropped vertically to control Z-order but also grouped and nested like in Photoshop; most operations in Flash would be obviously applicable, except that most frames would be complete key frames.
    Holding the same picture for some frames would be common, fading between keyframes unusual, automatic interpolation between shapes would be limited to translating layers by whole pixels (or ugly morphing, zooming etc.) while most kinds of adjustment layers and special effects wouldn't apply to pixel art.
  • Regarding the layers to include in a new frame, it might make more sense to tell layer by layer for its whole duration rather than frame by frame; frames tend to be similar to each other, layers tend to be meaningfully different and usually fewer.
    Options can include omit layer (e.g. for ad-hoc retouching or single-frame special stuff), create empty keyframe (to redraw an important layer from scratch), duplicate keyframe (to edit layers that look very similar between frames: likely the most common case), hold previous keyframe (for scenery that must stay the same without accidental edits).

Offline yrizoud

  • 0010
  • *
  • Posts: 330
  • Karma: +0/-0
    • View Profile

Re: New pixel art (animation) program development

Reply #8 on: November 16, 2009, 04:31:32 pm
"Pencil", or "Pencil planner" (http://www.pencil-animation.org/) uses a variant of the "flash" timeline display : A new key frame (bitmap content) is marked by a big spot at the intersection of the time (X) and layer (Y). This frame is valid and displayed until another one arrives, which can be any lenght of time ahead.
It's a much simpler display than flash, as there's no stretching bar with a start symbol and an end symbol.
It's rather intuitive because adding a frame anywhere automatically "interrupts" the duration of previous frame, and removing frame B between A and C automatically means A will be valid till the beginning of C.

Lastly, the program uses empty frames (filled with transparency) when a layer disappears entirely. Simple trick.