How to do Primitive Animation (or Cheating in a Rhythm Game)
May 22, 2017 22:42:45 GMT -5
Post by jorpho on May 22, 2017 22:42:45 GMT -5
So, I find myself confronted by the challenge that is the ruthlessly-difficult Lockstep minigame in Rhythm Heaven Megamix. This game consists of nothing more than tapping the A-button in a regular rhythm, only the beat switches back and forth between the beats and the off-beats. Considerable precision is required and there is very little visual feedback in-game to provide an indication of when you're supposed to hit the button. So my thought is, why not provide some other source of visual feedback?
So far I have written out the notes in MuseScore, a free musical notation program. Click for big:
MuseScore has some capacity for playing scores, and even highlighting the notes as it goes – but alas, no matter how I try, I cannot quite get it to synchronize with sufficient precision with a recording of the accompanying music. The only capacity MuseScore has for such synchronization works measure-by-measure, and that's not precise enough.
My next thought was to do a screen recording of MuseScore playing the score, load it up in VirtualDub, supply the audio, and then change the frame rate to match the length of the audio. This almost works, but as you might expect, the framerate is jittery.
So I'm thinking the next step might be animation: start with the image as attached, and then smoothly highlight each line of music one at a time at a rate that synchronizes with the music. I have absolutely no idea what might be the best program for the job, though. Flash would be an obvious choice, except that's not free (or is it?). I'm tempted to have a go with Python. Would anyone be able to point me in the right direction?
At this point I'm pondering maybe making some kind of Arduino device that I can attach to my skin and will shock my fingers at the appropriate time to push the buttons - but perhaps that's going too far. (It would at least be marginally less difficult than building some kind of mechanical actuator to hit the button instead.)
Is this a long way to go for a video game? Perhaps. I see it as an exercise in creative problem-solving.
EDIT: It suddenly occurs to me that perhaps remaking the game in osu!mania might be ideal, and in fact someone's already made some advances in that area. But I have no idea how easy osu is to work with.
So far I have written out the notes in MuseScore, a free musical notation program. Click for big:
MuseScore has some capacity for playing scores, and even highlighting the notes as it goes – but alas, no matter how I try, I cannot quite get it to synchronize with sufficient precision with a recording of the accompanying music. The only capacity MuseScore has for such synchronization works measure-by-measure, and that's not precise enough.
My next thought was to do a screen recording of MuseScore playing the score, load it up in VirtualDub, supply the audio, and then change the frame rate to match the length of the audio. This almost works, but as you might expect, the framerate is jittery.
So I'm thinking the next step might be animation: start with the image as attached, and then smoothly highlight each line of music one at a time at a rate that synchronizes with the music. I have absolutely no idea what might be the best program for the job, though. Flash would be an obvious choice, except that's not free (or is it?). I'm tempted to have a go with Python. Would anyone be able to point me in the right direction?
At this point I'm pondering maybe making some kind of Arduino device that I can attach to my skin and will shock my fingers at the appropriate time to push the buttons - but perhaps that's going too far. (It would at least be marginally less difficult than building some kind of mechanical actuator to hit the button instead.)
Is this a long way to go for a video game? Perhaps. I see it as an exercise in creative problem-solving.
EDIT: It suddenly occurs to me that perhaps remaking the game in osu!mania might be ideal, and in fact someone's already made some advances in that area. But I have no idea how easy osu is to work with.