Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411472 Posts in 69369 Topics- by 58423 Members - Latest Member: antkind

April 23, 2024, 11:17:48 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperArt (Moderator: JWK5)Rotating a vector actor around an axis perpendicular to the view
Pages: [1]
Print
Author Topic: Rotating a vector actor around an axis perpendicular to the view  (Read 2720 times)
Core Xii
Level 10
*****


the resident dissident


View Profile WWW
« on: December 03, 2008, 03:24:53 AM »

Bah, what a thread title.

I'm working towards vectorized graphics in my projects but I've ran into a massive issue. It's simple enough to draw a character from the side, as in e.g. a platformer. But what about turning from left to right and vice versa? In traditional raster graphics this is easy since each frame is drawn by hand, but this is not the case with vectors.

One *could* use a similar approach as in raster, creating a few different "sprites", but this does not scale smoothly when timed variably.

Or one could mask it with e.g. horizontal motion blur.

But an instant flip isn't really immersive.
Logged
Alex May
...is probably drunk right now.
Level 10
*


hen hao wan


View Profile WWW
« Reply #1 on: December 03, 2008, 03:46:13 AM »

What kind of vector art is it? filled polys? textured polys? line art? I don't really think you'll be able to do this smoothly unless you use a 3D model and draw it in orthographic on your view.
Logged

Zaphos
Guest
« Reply #2 on: December 03, 2008, 03:51:08 AM »

One *could* use a similar approach as in raster, creating a few different "sprites", but this does not scale smoothly when timed variably.
You could chop the turn into several vector-object configurations, like frames, but also define smooth motion within each configuration to allow variable timing.  Maybe?
Logged
Core Xii
Level 10
*****


the resident dissident


View Profile WWW
« Reply #3 on: December 03, 2008, 06:21:49 AM »

You could chop the turn into several vector-object configurations, like frames, but also define smooth motion within each configuration to allow variable timing.  Maybe?
In theory, it's possible to achieve perfectly smooth motion that way - However, it would be extremely laborous to create, and wouldn't really be flexible.

You could do it with a 3D model, yes, but that kind of renders the whole idea of 2D pointless.
Logged
Alex May
...is probably drunk right now.
Level 10
*


hen hao wan


View Profile WWW
« Reply #4 on: December 03, 2008, 08:59:37 AM »

You could do it with a 3D model, yes, but that kind of renders the whole idea of 2D pointless.

Well you can't have your cake and eat it mate XD

Seems to me like you're asking for something that can somehow extract 3D data from inherently 2D data without having to drive it using any data. The data you're looking for doesn't exist. Either use a 3D model and project it in 2D (you could use some art and code tricks to hide the fact that it's a 3D model), or bite the bullet and hack it in 2D.
Logged

agj
Level 10
*****



View Profile WWW
« Reply #5 on: December 03, 2008, 12:11:17 PM »

If the character is simple enough, each part of his body could be moved independently, like the nose and the eyes and whatnot, to make it seem like he's rotating.
Logged

Kekskiller
Guest
« Reply #6 on: December 03, 2008, 01:10:26 PM »

The only real solution could be some kind of interpolation between the keyframe animations (>2!). I assume you're using 2D vector images? You'll probably need to do some kind of linear interpolation here. Doesn't look good without more than 2 keyframes, so you will need to have CPU intense key-per-key interpolation.

Another way is to have precalculated inbetweens, blended 2x, but between the keyframes and with different transparencies (depending on the actual time delta)... But it wouldn't look very immersive - quite obvious if your source image is 2D only.

Why not adding some depth informations to your vector image? You don't need to have full-blown 3D maths - some sin for X (and maybe cos for Y if you prefer Y-rotation, too) and its done Smiley .
Logged
BorisTheBrave
Level 10
*****


View Profile WWW
« Reply #7 on: December 03, 2008, 08:28:17 PM »

I'd go with having a few manually draw static frames of animation. You are not going to be able to do much tweening, as the motion is simply not right for it.
I think you are exaggerating the effect of jumping from image to another, I think most people will not be able to to tell e.g. that the framerate has dipped to 50fps but it was originally animated for 60. Particularly when the animation in question is so short.

I wouldn't feel obliged to use tweening or other "smooth" methods just because you have vector graphics, as you seem to be suggesting. In my mind, drawing techniques and animation techniques are independent.

Or you could do a sliding/skidding/braking animation (which is more easily tweenable), and have the full turn around sequence as a quick slide followed by a horizontal flip. By giving people an expectation, you *might* be able to make the flip more convincing.
Logged
Core Xii
Level 10
*****


the resident dissident


View Profile WWW
« Reply #8 on: December 03, 2008, 08:56:28 PM »

I think you are exaggerating the effect of jumping from image to another, I think most people will not be able to to tell e.g. that the framerate has dipped to 50fps but it was originally animated for 60. Particularly when the animation in question is so short.

Not at all. What if you scale the time for e.g. slow motion? It'll look really terrible.

I don't think there exists a way to do this. But I posted the question anyway in case someone gets creative.
Logged
BorisTheBrave
Level 10
*****


View Profile WWW
« Reply #9 on: December 03, 2008, 09:38:03 PM »

Right, well, slow motion is not just a slight variation in framerate. You didn't make it clear what to expect in the original question. I can see why you're so against doing frames now: You'd have to add a lot more frames to support the same framerate while under bullet time.

So yes, I'd have to agree I cannot think of an acceptable way to do this. You do see some sprite games with bullet time where they just let the framerate drop, and ignore the issue, but I think that jerky motion would look even worse with vector graphics.
Logged
Loren Schmidt
Level 10
*****



View Profile WWW
« Reply #10 on: December 03, 2008, 11:27:38 PM »

Could you post a sketch (not necessarily game assets, if you want to keep your project under wraps)?

I'm imagining something like the turning animations in Flashback, but I don't have a clear picture of what you're creating here.
Logged
Core Xii
Level 10
*****


the resident dissident


View Profile WWW
« Reply #11 on: December 04, 2008, 10:38:57 PM »

Yeah, I explained it rather complicatedly.

Just simply this.


An actor turning from left to right in side-view.
Logged
Kekskiller
Guest
« Reply #12 on: December 05, 2008, 09:45:27 AM »

Atleast you will need 3D depth informations or more keyframes when doing it like that. There's no other vectorish way around it!
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic