07-06-2014, 11:33 AM
07-06-2014, 12:08 PM
Love the swimming animation! Question...I've always wanted to ask this from the programmers; what are you doing to get that water effect? Is it a shader, or a bunch of water objects cycling through the correct ripple tiles?
07-06-2014, 12:17 PM
(07-06-2014, 12:08 PM)Koh Wrote: [ -> ]Love the swimming animation! Question...I've always wanted to ask this from the programmers; what are you doing to get that water effect? Is it a shader, or a bunch of water objects cycling through the correct ripple tiles?
I actually am not 100% sure myself, since it's not my engine. lemme pull the code out of the water maker, though. you might be able to get something from that
(create event)
nodewidth = waterwidth/16
nodes = floor(waterwidth/nodewidth)+1;
spring = 2;
fricdiv = 1.5;
for (i=0; i<nodes; i+=1;) {
yy[i] = y;
ysp[i] = 0;
frc[i] = ysp[i]/(room_speed/fricdiv);
}
swim = instance_create(x,y+4,obj_swim)
swim.image_xscale = waterwidth/16
swim.image_yscale = waterheight/16
(step event)
var drop;
for (i = 0; i < nodes; i += 1) {
if ((i-1 > -1) && (i+1 < nodes)) {
ysp[i] += ((((yy[i-1]-yy[i])+(yy[i+1]-yy[i]))+(ysp[i-1]+ysp[i+1])))/(room_speed*spring);
ysp[i] += (y-yy[i])/(room_speed*spring);
frc[i] = (ysp[i])/(room_speed/fricdiv);
ysp[i] -= frc[i];
drop = collision_circle(x+(i*nodewidth), yy[i], nodewidth/2, obj_physics, 0, 1);
if (drop) {
if (abs(drop.vspeed) > 0.5){
ysp[i] = divide(drop.vspeed/4, max(1, point_distance(drop.x, 0, x+(i*nodewidth), 0)/16));
}
}
//actually move the node
yy[i] += ysp[i];
}
}
(draw event)
draw_set_blend_mode(bm_add) {
draw_set_color(make_color_rgb(0,128,255));
draw_set_alpha(0.5);
draw_primitive_begin(pr_trianglestrip);
for (i = 0; i < nodes; i += 1)
{
draw_vertex(x+(i*nodewidth), yy[i]);
draw_vertex(x+(i*nodewidth), y+waterheight);
}
draw_primitive_end();
draw_set_alpha(1);
draw_set_color(c_white);
//draw the water's surface
var pth, wid, stp, stp_i, xt, xt_i, sgn, a, a_i, x1, y1, x2, y2, i, px, py, nx, ny, vert_count;
wid = 4; //half the width of water surface
px = x;
py = yy[0];
vert_count = 0;
draw_set_color(c_teal)
draw_primitive_begin_texture(pr_trianglestrip, sprite_get_texture(spr_watertop, 0));
for (i = 0; i < nodes; i += 1)
{
nx = x+(i*nodewidth);
ny = yy[i];
dir = point_direction(px, py, nx, ny);
dx = lengthdir_x(wid, dir+90);
dy = lengthdir_y(wid, dir+90);
xt = (i-1)/nodes;
draw_vertex_texture(px+dx, py+dy, xt, 0);
draw_vertex_texture(px-dx, py-dy, xt, 1);
px = nx;
py = ny;
}
draw_vertex_texture(px+dx, py+dy, xt, 0);
draw_vertex_texture(px-dx, py-dy, xt, 1);
draw_primitive_end();
}
draw_set_blend_mode(bm_normal)
nodewidth = waterwidth/16
nodes = floor(waterwidth/nodewidth)+1;
spring = 2;
fricdiv = 1.5;
for (i=0; i<nodes; i+=1;) {
yy[i] = y;
ysp[i] = 0;
frc[i] = ysp[i]/(room_speed/fricdiv);
}
swim = instance_create(x,y+4,obj_swim)
swim.image_xscale = waterwidth/16
swim.image_yscale = waterheight/16
(step event)
var drop;
for (i = 0; i < nodes; i += 1) {
if ((i-1 > -1) && (i+1 < nodes)) {
ysp[i] += ((((yy[i-1]-yy[i])+(yy[i+1]-yy[i]))+(ysp[i-1]+ysp[i+1])))/(room_speed*spring);
ysp[i] += (y-yy[i])/(room_speed*spring);
frc[i] = (ysp[i])/(room_speed/fricdiv);
ysp[i] -= frc[i];
drop = collision_circle(x+(i*nodewidth), yy[i], nodewidth/2, obj_physics, 0, 1);
if (drop) {
if (abs(drop.vspeed) > 0.5){
ysp[i] = divide(drop.vspeed/4, max(1, point_distance(drop.x, 0, x+(i*nodewidth), 0)/16));
}
}
//actually move the node
yy[i] += ysp[i];
}
}
(draw event)
draw_set_blend_mode(bm_add) {
draw_set_color(make_color_rgb(0,128,255));
draw_set_alpha(0.5);
draw_primitive_begin(pr_trianglestrip);
for (i = 0; i < nodes; i += 1)
{
draw_vertex(x+(i*nodewidth), yy[i]);
draw_vertex(x+(i*nodewidth), y+waterheight);
}
draw_primitive_end();
draw_set_alpha(1);
draw_set_color(c_white);
//draw the water's surface
var pth, wid, stp, stp_i, xt, xt_i, sgn, a, a_i, x1, y1, x2, y2, i, px, py, nx, ny, vert_count;
wid = 4; //half the width of water surface
px = x;
py = yy[0];
vert_count = 0;
draw_set_color(c_teal)
draw_primitive_begin_texture(pr_trianglestrip, sprite_get_texture(spr_watertop, 0));
for (i = 0; i < nodes; i += 1)
{
nx = x+(i*nodewidth);
ny = yy[i];
dir = point_direction(px, py, nx, ny);
dx = lengthdir_x(wid, dir+90);
dy = lengthdir_y(wid, dir+90);
xt = (i-1)/nodes;
draw_vertex_texture(px+dx, py+dy, xt, 0);
draw_vertex_texture(px-dx, py-dy, xt, 1);
px = nx;
py = ny;
}
draw_vertex_texture(px+dx, py+dy, xt, 0);
draw_vertex_texture(px-dx, py-dy, xt, 1);
draw_primitive_end();
}
draw_set_blend_mode(bm_normal)
07-08-2014, 03:10 PM
Holy shit those large Mario icons are amazing
As far as actual critique goes, Mario's body looks super weird from the side view, probably due to his leg being too far back and his protruding back area. Keep it up!
As far as actual critique goes, Mario's body looks super weird from the side view, probably due to his leg being too far back and his protruding back area. Keep it up!
07-08-2014, 05:46 PM
how's this? it's more centered here and doesn't really change the spin animation in any way so I'll probably keep it like this just to be safe
also,
(pipes are a wip since they're just recolors as of now)
EDIT-
eeeeeeeehh now I'm not so sure.
I also changed the swimming poses so Mario's holding his breath
07-08-2014, 06:08 PM
The part that seems off about it to me is his butt area protruding in that manner. Loving that Mario Bros. stage.
EDIT: Also, one of the spin poses that has him facing 3/4 away from the screen has his mustache going too far onto his face(to the left).
EDIT: Also, one of the spin poses that has him facing 3/4 away from the screen has his mustache going too far onto his face(to the left).
07-08-2014, 06:21 PM
Is the Mario Bros. stage for anything? It'd be a shame to see such an awesome thing not go to use
07-08-2014, 06:25 PM
his hair forms a diagonal outline which is unnatural.
07-08-2014, 06:55 PM
alright, I've decided that I'll keep the side pose like this, but only for when he's idle. if I do it to his walking poses it feels like something's missing, but here it's alright.
(07-08-2014, 06:21 PM)Rystar Wrote: [ -> ]Is the Mario Bros. stage for anything? It'd be a shame to see such an awesome thing not go to usenot anything I'm aware of.
(07-08-2014, 06:25 PM)Chris2Balls [:B] Wrote: [ -> ]
his hair forms a diagonal outline which is unnatural.
how's this? I tend to have a bit of trouble with Mario's hair so I usually just make it poofier than usual.
07-08-2014, 07:20 PM
Move the leg on the side idle one px forward and it'll be balanced. I just noticed that the Goomba's head doesn't turn as much as the body - that might be intentional.
07-08-2014, 07:31 PM
(07-08-2014, 07:20 PM)SLAPBADMINE??? Wrote: [ -> ]Move the leg on the side idle one px forward and it'll be balanced. I just noticed that the Goomba's head doesn't turn as much as the body - that might be intentional.
I actually just moved his arm back a bit and it seems to have balanced it out better than if I had just moved the leg forward. moving the leg forward gives him less of a belly and it looks kinda weird.
the Goomba's rotation was intentional, yea. it keeps the face in view, plus it allows for better movement of the feet
07-09-2014, 11:43 PM
here's both Mario and Luigi's portraits, with palettes
and here's the portraits on their own
I also got the pipes done for the stage. I'm not 100% keen on the curved pipes, though
07-12-2014, 02:44 PM
here's something not- Mario.
I dunno if it'd be worth making a topic yet, since this is all I have.
this too
07-14-2014, 07:31 AM
The hands on the idle sprite look a little jaggy. Also, the background foot is the one that's supposed to be facing forward, right? It shouldn't be shorter than the foreground foot, then. Nice work on the hair. ^^
07-14-2014, 08:36 AM
(07-14-2014, 07:31 AM)Midi Wrote: [ -> ]The hands on the idle sprite look a little jaggy. Also, the background foot is the one that's supposed to be facing forward, right? It shouldn't be shorter than the foreground foot, then. Nice work on the hair. ^^
how's this? I made the thumbs on the hands more defined and moved the foot so it's consistent with the other foot.
I also added more details to this and fixed some problems I had with the leg movements
... and here's the backwards walk. I based it off of the walking animation from SMB1.