09/04 ~ 09/08
Moving into the second week of the semester, we continue to build on our demos from last week for validating more features of the implementation of dynamic music.
Our plan this week is to complete a demo of dynamic music that: 1. transfer between two BGM segments with a SFX played at the transition point; 2. let the triggering of events match the beat of the music.
We need to keep things simple to deliver this demo fast enough. The enemy can only perform one type of close range attack for this demo, and we make the music switching between two states: one only with the drum part and one with instrument layers on the top.
Screen shot of an early stage of the demo, showing the test messages on the left:
The way we approach to the demo is dividing the bigger problem into smaller ones that we can solve quickly.
First, we print out a test message every time the player clicks the mouse, so that we can see exactly when the player’s input happens. Then, we add a transition SFX to each clicking action, and finally, add a transition between two different background music. The transition between background music is done by lowering the volume of one and raising the volume of the other.
We also spend our time on adjusting the MIDI input regulation so that we can let MIDI carry more useful information. In order to align the beginning of the attack animation to precisely match the strong beat of the music, enemy AI must get a signal for start playing animation before reaching the beat.
In the project of our background music, we use a specified MIDI track to carry the beat information of the skill to the enemy AI. In that track, we move the MIDI notes correspondingly based on the animation of the skill, so that we make sure the attack animation feels in sync with the music. Blue notes below are representing the actual beat of the music, and green notes are the notes that the AI receives to trigger the attack animation.
Besides carrying the time information, we can also use. Since pitch in this midi track won’t play any sound, we decide to use the pitch information of this MIDI track to . Originally we plan to use multiple tracks to represent different skills, but using the pitches as data, we can fit notes representing multiple skills in one single track. We use C3, which is middle C in Logic Pro (pitch = 60), to represent the first enemy skill. The pitch for each skill after that will be the pitch of the previous one +2. For example, skill 2 will be represented by pitch 62, skill 3 is 64, etc. In this case, the first muted track is the place that stores all the information.
Here is the video showing the demo, and we plan to show at quarter walkaround:
For next week’s plan, our quarter is scheduled on Wednesday and we will be discussing the preparation of quarter with our advisors on Monday. We will see if our guests can tell the difference caused by changing the background music dynamically.