A powerful system for slow motion

New releases and general discussions.

Post » Thu Jun 12, 2008 5:07 pm

I think it would be really cool to be able to set some kind of viariable that sets a slowmotion effect, but also allows you to choose which sprites and other objects are effected. Imagine if there was a little tick box in the properties of any object or movement behavior that said "is effected by slowmotion"...and if you checked this box, suddenly you could set the slomotion variable to any percentile value and those objects would automatically animate that much slower, move that much slower, and most importantly even the movements like platform movement would behave slower.

This would allow for amazing effects for drama or even for gameplay..like a weapon that slows down (or stops) time but not on the player...It would also be a powerful way to allow for a game to be paused with custom menu's and such...just set the slo-mo variable to full stop. ;)

I know things like this can be achieved with careful programming, but wouldn't you have to create custom movements for it to work perfectly? If this were built into the engine it would really help game makers (even ones with poor programming ability) make drastically more dramatic games.
B
2
S
2
G
4
Posts: 124
Reputation: 1,698

Post » Fri Jun 13, 2008 5:37 am

Create all the objects you want to be affected by slow motion in their own family. Next, create a global variable that you can define the percentage of speed you desire. On all objects in this family, create variables to hold the original (normal) values of the changes we will be making.

To make it work, add an argument to all relevant movements and animation speeds that modifies them according to the slow-mo variable. In pseudo code, perhaps something like this:

[code:1u2vrr3g]+On a whim,
-set "SlowMo" to .085

+Slow Mo is on.
-Set "Desired Traits" to (Desired Traits * "SlowMo").[/code:1u2vrr3g]

Of course, this is vastly over-simplifying things, but with some hard work you can achieve a very convincing effect. You can even ramp the SlowMo using some math to make the transition smooth. Do you have a cap that I might be able to play around with?
B
3
S
2
G
4
Posts: 310
Reputation: 2,120

Post » Fri Jun 13, 2008 8:24 pm

Not yet, but I'll keep you posted. Thanks much for the reply. You're post made me realize it might not be too difficult as even with mevement bahaviors like platform, you always have acess to all of its directional velocities. ;)
B
2
S
2
G
4
Posts: 124
Reputation: 1,698

Post » Sat Jun 14, 2008 8:05 am

I tried slow motion with Physics - it really doesn't work very well, as setting the velocity to be demultiplied repeatedly reduces it until it hits 0 (or so close to it that there's no difference) and even if you were to figure out a way to get its proper velocity past the slowed effect, it's kind of hard to make it react as if it were moving at full speed.
A proper timescale addition to Construct would definitely be useful, as I don't believe that it can be achieved via events. At least not with Physics, which is really the only thing I'm using.
It would be nice if the timescale was added to various behaviours, but at least a global application variable would be nice and perhaps an option to apply it to an individual object at runtime.

Stopping time, on the other hand, is something I've already figured out how to do with physics. ;)
B
3
S
2
G
4
Posts: 130
Reputation: 1,735

Post » Sat Jun 14, 2008 8:24 pm

Yat..I'm glad someone else sees the potential with built in slow-motion control! It might be possible to do with some behaviors with quite a bit of footwork, but having it easy and functional with everything would alow for really cool stuff. :)
B
2
S
2
G
4
Posts: 124
Reputation: 1,698

Post » Sun Jun 15, 2008 1:11 am

I really like the idea of time-scaling, so you could slow down really slow and still keep a good framerate going. I don't think it's actually too difficult to do - all I need to do is mess about with the runtime clock and all the plugins will see time going by half as fast, and the entire runtime will slow down ('Every' events will trigger less/more often, built-in movements change speed, timedelta-based custom movements change speed). I think it's a pretty elegant way to do it. I'll see what I can do :)
Scirra Founder
B
357
S
214
G
72
Posts: 22,946
Reputation: 178,228

Post » Sun Jun 15, 2008 1:22 am

I ended up being wrong about my events things. Well, kinda. I achieved an acceptable effect for basic behaviors but could not work with physics. Timescaling, though, I'm all for it. :)
B
3
S
2
G
4
Posts: 310
Reputation: 2,120

Post » Sun Jun 15, 2008 4:35 pm

Very exciting Ashley :)

I cant wait. good luck implimenting it :) Construct is really looking great by the way. :)
B
2
S
2
G
4
Posts: 124
Reputation: 1,698

Post » Sun Jun 15, 2008 11:03 pm

isn't it possible to just freeze everything every second frame? but i guess it wouldn't look very good. I like the idea of slo-mo though.
B
8
S
2
G
5
Posts: 744
Reputation: 3,288


Return to Construct Classic Discussion

Who is online

Users browsing this forum: No registered users and 0 guests