I was wondering about new stuff that you can do with Knytt Stories, and I came up with something interesting.
You can create predefined animations in knytt stories. For instance, you can make an elevator that juni can ride, or a moving platform, or other things you can imagine. You can also use this technique to create a nice animated cut-scene that the player has to watch and can't skip.
There is a limitation though, during the animation, the player will not be able to move, so you cannot make a platform that moves, and make the player able to jump off the platform at a given moment, unless you program that in your animation as well.
requirements* You must know how to make custom objects of any size.
* Your level must have shifts.
PrincipleThe idea is to use a custom object to play an animation of whatever you want to happen. Juni has to be drawn into the animation aswell, so if you are in the room, you'll see 2 juni's.
Next, we'll be taking advantage of wallswimming. If you wallswim and you don't move, you will slowly move up. See here, a timer!
Now of course, the player can move making the timer unreliable. In order to fix this, we can place a sticky object at the place where Juni will be teleported to inside the wall. Due to the sticky object, the player will start to rise slowly. Place a shift there, and you have a guaranteed delay for a shift. Now, of course you'll see juni twice at the screen. In order to combat that, we can place a custom object over juni to mask it with the background. Result, juni will be seen in the animation and after the second shift is triggered, juni gets to move again.
Making the level and incorporate the ideaAt a certain place, you want to place a shift. This shift will warp juni to an identical screen. (so you have to make a copy of the screen where you want to have the animation)
Ensure that there's a solid tile on layer 3 at the place where Juni will spawn, and at the one above that tile too. Then put 2 Sticky objects in these tiles, and also include a shift in the top one.
It will look like this:
[1] <- contains shift and sticky and tile on layer 3.
[3] <- optional, contains sticky and tile on layer 3.
[2] <- contains sticky and tile on layer 3. Juni also will be teleported there.
If necessary you can put tile 3 in there too, but is not required. If you do so, the time of the animation will be significantly longer. And ofcource 3 can be done many times too.
Thirdly, the shape of the shift also has influence of the timing. Experiment with that shape to get the right timing.
Put one or several custom objects over the 2 or 3 tiles and ensure its set on layer 6 or 7 (in front of juni).
Set the shift to go to the earlier screen, but different location, or if you want, an identical copy as the first one, but with different things (like removing the old shift)
Lastly, Measure how long it takes to run the animation, and create a custom object with an animation that runs exactly as long as your timer gives you. Longer is not bad, but the last frames will not be seen.
Known issuesbefore and after the animation, you will see 2 small pauses because there are shifts involved, and thus a new screen has to load. This can look bad when played from an external device, like a usb stick. This means, that you should be carefull and not overdo the animations because the player will notice them. Besides, the player can't move during the animations, so its never a good idea to restrict the player that often.
I'm curious about one thing though: what do you guys think of this idea?
download example:With special thanks to EgoMassive for creating an example level.
download AutomationTechnique.knytt.bin