AuthorTopic: 2D pixel characters, animated in 3D environment  (Read 9298 times)

Offline NathanielA

  • 0001
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile

2D pixel characters, animated in 3D environment

on: July 30, 2015, 08:54:32 pm
Hi everyone.  I just wanted to show off some more of what I've been working on with Himeko Sutori, http://himekosutori.com/



I know the animations are choppy and I'd like to do more frames, but doubling the frames right now would essentially double my allocated out-of-pocket budget that I've already spent.  I'll be launching a Kickstarter soon, and maybe smoother animations will be a stretch goal.

Here's a closer look at some of the characters:



I'd love to hear your thoughts.  Thanks for taking a look.

Offline Gil

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

Re: 2D pixel characters, animated in 3D environment

Reply #1 on: July 31, 2015, 09:16:35 am
I don't get this look. It's pixel art, but you distort the pixels and filter them? Seems to me that's a lot of work for not much gain. If you were to simply paint some body parts and do bone animation, you could get smoother animations, do more variation, in less time. Also, IMHO, it'd look prettier than distorting pixel art, but I'm not sure if other people agree there.

Why the outline filter btw?

Offline winkatawink

  • 0001
  • *
  • Posts: 12
  • Karma: +0/-0
  • im winkatawink
    • View Profile

Re: 2D pixel characters, animated in 3D environment

Reply #2 on: July 31, 2015, 10:48:18 am
it may look cool if you were doing something like this



although i think the reason this look can be pulled off is because of the fixed camera angle and the fact that the sprites aren't skewed.
ey what up

Offline NathanielA

  • 0001
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile

Re: 2D pixel characters, animated in 3D environment

Reply #3 on: July 31, 2015, 12:45:36 pm
Thanks for your comments.  You bring up some good points.

Quote
I don't get this look. It's pixel art, but you distort the pixels and filter them? Seems to me that's a lot of work for not much gain...

Actually, I have spent hours trying to minimize the distortion, and trust me, it looks a lot better than it would otherwise.  You see, each character is being drawn on its own invisible plane in the 3D world.  I turn all of those planes to face the camera, so you don't ever see the characters edge-on.  That much looks pretty good in first-person or over-the-shoulder camera modes.  But at an isometric camera angle, such as you see in most tactical or strategy games, things start to go wrong:  When the characters face a camera above them, then toward the sides of the screen they're almost horizontal.  And if they're next to a wall, when the sprite tilts to face the camera, the head clips into the wall and you just see a torso sticking out.

So instead of making the sprites face the camera, I have the sprites turn toward the camera's plane, so that all of the sprites are lined up perpendicular to the camera's line of sight.  And I have them ignore the camera's Z position, so that they stay upright.  And I tilt them slightly inwards as they get to sides of the screen.  That looks pretty good, but then the sprites seem to get really short as they pass under the camera.  So I make the sprites taller as they go under the camera.  That looks OK actually, but you can see the shadows going bonkers as the sprites stretch and tilt.  So I make the characters themselves not cast shadows, but a similar sprite, invisible to the camera, that doesn't stretch, casts the shadow.

So why don't I just use an isometric camera with no vanishing points?  Wouldn't that solve everything?  It would solve a lot, certainly, but UDK doesn't do true isometric.  The best approximation is moving the camera way out and zooming the field of view way in.  But at a distance, the depth buffer starts making approximations, and the rugs blend into the floor, and curtains blend into the wall.  So I have to pick a camera distance that strikes a balance between minimizing the distortion and not confusing the depth buffer.

So why can't I just draw the sprites directly, flat against the screen, without all the effort described above?  I could, but then they wouldn't be affected by lighting.  They wouldn't disappear behind 3D scenery.  UDK would let me draw them as a particle effect, which would draw them flat against the screen with no distortion, and properly placed and occluded behind other objects in the scene, but that would still cause the problem with clipping into walls and other obstacles--characters with their torsos sticking out of walls, like I mentioned above.

And that's why I'm rendering those pixel characters the way I'm rendering them.  It's not ideal, but it's probably the best that I can do without having to write a whole custom game engine.

Quote
If you were to simply paint some body parts and do bone animation, you could get smoother animations, do more variation, in less time.

That is very, very true.  And if I were to do it again, that's what I would do.  But early on in development I decided I wanted the characters to look very old-school.  I wanted to recreate the look of Final Fantasy Tactics and Ogre Battle.  And those ancient games used sprite sheets--not this newfangled 2D bone animation.  Well, after going through all of the effort and expense of actually drawing (or commissioning) the sprite sheets, I'm thinking bone animation might not have been such a bad idea after all.  Oh well.  At least I can tell myself that this way, I'm being true to my original artistic intent, or something.

Quote
Why the outline filter btw?

The stylistic difference between the pixel characters and a rather detailed 3D environment is kind of jarring.  I felt that they needed some sort of visual theme to tie them together.  I thought that a Sobel edge detection post process filter was the best way to unify the look.  I've heard some people say they like it and I've heard some people say they don't like it.  In the end, it's just a matter of style and taste, and I thought I should go with it.

And finally...

Quote
it may look cool if you were doing something like this ... although i think the reason this look can be pulled off is because of the fixed camera angle and the fact that the sprites aren't skewed.

Yes, those pixel characters look good in that 3D setting for a variety of reasons.  But I think at its most basic level, it works because it's simple.  I'm trying to achieve something a little more complicated from a technical standpoint, and it's going to involve some trade-offs.  But if I can earn comparisons to games like Fire Emblem, then I'll be glad just to be mentioned in the same sentence.
« Last Edit: July 31, 2015, 12:50:08 pm by NathanielA »

Offline Gil

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

Re: 2D pixel characters, animated in 3D environment

Reply #4 on: July 31, 2015, 02:37:41 pm
Thanks for the explanation, makes a lot more sense now. I know quite a bit about programming cameras and such and I get your reasoning.

Offline 32

  • 0011
  • **
  • Posts: 535
  • Karma: +1/-0
    • @AngusDoolan
    • http://pixeljoint.com/p/19827.htm
    • View Profile

Re: 2D pixel characters, animated in 3D environment

Reply #5 on: July 31, 2015, 10:09:20 pm
I actually kinda like the style :)

It doesn't strike me as being a unified 3d space like traditional isometric tactics games but as an aesthetic it's appealing on some level I can't quite put my finger on. I like the outlines but the way they get thicker and thinner and disappear I really don't. Black outlines drawn onto the sprites themselves would be much nicer I think.

Offline NathanielA

  • 0001
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile

Re: 2D pixel characters, animated in 3D environment

Reply #6 on: August 02, 2015, 04:18:39 pm
Thanks 32.  I see what you mean with the line thickness.  I'll see how it looks with everything being the same width, or at least the width depending only on distance between camera and pixel, not pixel to neighbor.

Offline CelioHogane

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

Re: 2D pixel characters, animated in 3D environment

Reply #7 on: August 04, 2015, 06:43:19 pm
Well, if you like that way is okay.

the sprites are cool, i get you are trying to make a Ragnarock only feel (Wich i need to say i totally hate) so you are doing it fine.