ShadowDragon

Realist
Veteran
Joined
Oct 8, 2018
Messages
4,685
Reaction score
1,799
First Language
Dutch
Primarily Uses
RMMV
New Tutorial that is for the Zelda fans =)

There are plugins available to play the ocarina style ON MAP and IN BATTLE, some very complex
to get it working.

Now, will this work on the map, Ofcrourse it will work, but probably not in battle (not tested).

what it will look like: (if gif play):
Untitled Project.gif
if it doesn't work, try to click it (it's animated, so I dont know if it plays it, if not, play the demo) =)

while I wont explain exacly how to create it, but here is what you MUST have in order to work.

Plugins required:
- YEP_EngineCore

if you dont have the following (recommended plugin) I created a temp plugin for same effect!
ShadowDragon_SM (StopMovement) (best not use in project, but use on your own risk!)
- YEP_StopMapMovement (I cannot include this one, because it's behind paid wall)

Switches and Variables Used:
Switch Main Loop
Switch Play Ocarina
Switch Learning Song
Switch Check Song
Switch StopMovement (temp plugin as replacement for YEP_StopMapMovement)

Variable Song (placeholder)
Variable Song Index (button column reader)
Variable Songs++ (each song has it's variable, so add as many as you like.)


Step by Step tutorial (comments are in Demo as well):

We start with creating 4 Common Events (pictures and explantion)
Main Loop trigger is set Parallel, and switch to Main Loop.
Conditional branch checks first if the ocarina is been played, else it does nothing,
if it does, we check the buttons pressed (this can be spammed if not triggered
correctly after (see Play Ocarina) where we come later to it.

Check if OK is being pressed, else, we check if DOWN is being pressed, same
with RIGHT, LEFT and UP. (you can use more notes if you like, use a keymapper
in this case (not in this tutorial).

Keep in mind that the sounds are NOT 100% correct, so correct them with
your own sounds, this is only an example!.

MainLoop1.png

When you use the Ocarina (you can use a keymapper or YEP_ButtonCommonEvent
to attach this common event to the button.

We first save the BGM that is played on the MAP and fade that out in 1second.
You may experience to 2-4 seconds, I wont recommend higer than 3 though.
We also Disable the Menu Access after so we dont get into the menu unwanted.

StopMovement switch (ShadowDragon_SM) is a temp solution for YEP_StopMapMovement.
The song variable is set to 0 (Song variable is the placeholder), Song Index reads the columns.

1 is the first button, (later explained).
after that, We place the background (you can be creative in creating those)
wait 10 frames this buffer is required, 10 to 30 frames max), than we set the Switch
Play Ocarina ON. (which activate Main Loop Common Events to play the notes!)
UseOcarina2.png

This is a repeatable check, I explain "OK button", but repeat for DOWN, RIGHT,
LEFT and UP.

The Commont for variable placed (you may change it).
OK check = 1
DOWN check = 2
RIGHT check = 3
LEFT check = 4
UP check = 5

those numbers are used in the variable, this can be part of 2 ways,
Long way and short way (confused) but I explain both in the spoiler "How Variables are readed"
so you can choose which one you like (optional to check, recommeded for beginners).

When Song Index = 1, we show a picture which is on the far left, when Song Index is 2,
increse the X to +80 (or what fits for your resolution and settings), the Y is the same for
the OK button, so only X is needed. repeat for Song Index 3, 4 ~ 8 (9 stays empty)

9 is basicly max, while variables cannot have more than 9 digits.
On the end, we add Song Index +=1 (so we have song Index 2,
SongIndex = 2 reads the 2nd column of the button, Song Index 3, reads
the 3rd column etc. we also see if the Check Song = ON (self turning switch OFF)
Explained in Spoiler "Check Song" (next part below this image).

PlayOcarina3.png

On the DOWN, we add +2 when SongIndex = 1, +20 when SongIndex = 2 etc,
On RIGHT, we add +3 on SongIndex = 1, +30 when SongIndex = 2 etc,
On LEFT, we add +4 on SongIndex = 1, +40 when SongIndex = 2 etc,
On UP we add +5 on SongIndex =1, +50 when SongIndex is 2 etc,
the higher the SongIndex, the more 0's (zeroes) you add, or 1 less 0.
(depends what's easier, see spoiler "How variables are readed")
PlayOcarine_3.png

On the Play Ocarina still, we also check when the "cancel button" is triggered,
if you ask, why is not "escape" checked? (Input.isTriggered('escape') is because
cancel and escape functions in the same way.

we fade out the BGM of the ocarina sounds, 30 wait frames (buffer and important)
without buffer or lower than 20, the menu might open, 30 frames avoid that.
we Enable the Menu Acces back on, and Play Ocarine switch OFF.
after we replay the map BGM again.

the next part of erasing images can be quiet long, erase pic, erase pict2,
erase pict 3, up to all 10, but it is required if you use 1, 3, 6, 10, etc, else
we just erase them in a batch using:

JavaScript:
for (var i = 1; i <= 10; ++i){  //this means, 1 is the picture ID, 10 is the end of Picture ID
$gameScreen.erasePicture(i); // this erase all pictures in a range from 1 through 10.
}

in case you picture ID 41-50, use var i = 41; i <= 50 instead.
than (temp plugin), turn switch OFF to enable player movement again.
else AllowPlayerMovement if you use YEP_StopMapMovement.
PlayOcarina2.png

SongIndex = 1 are the columns like I said before, but if it's confusing somehow,
here is a sample (songIndex 1 is only readed ones, while we increase it by +1.
so here is a sample how SongIndex is readed: which explain the button setting.
SampleSongIndex.png

I use this in 3 parts, first part first, 2nd part below this image.
Check Song trigger is parallel (very important, DO NOT USE AUTORUN), even if it
turn the Check SOng switch turn OFF.

If Song = Song 1 (check if Song variable is the same as Song 1)
we also check if Song Learnging = OFF (switch), explain later on "Event Setup)"
if the song is correct, play a sound effect, fade out BGM 1 second, Switch Play Ocarina = OFF,
we dont want them to play do we? than we erase the images in a batch (same as you
press cancel button).
IMPORTANT PART HERE: Replace Text (placeholder) to make an effect, like
weather change to rain, thunder, or time +6 hours, or teleport somewhere or open
passages when in the correct place, so be creative here.
We replay the map BGM again, and enable map movement here again.
wait 10 buffer, and acces Main Access to Enable (make it 20-30 to be save).
CheckSongs4.png

Part 2 and 2A, Scripcall with xr is optional:

JavaScript:
let xr = [0, 366, 446, 526, 606, 766, 846, 926, 1006] // X possition array optional
for (var i = 2; i <=10; ++i) { //we skip 1 because we dont want the background to be deleted
$gameScreen.movePicture(i, 0, xr[i], 5000, 100, 100, 255, 0, 40);
}

the scriptcall for move picture i = picture ID2 through 10, xr reads the array,
so all bottons drops down to Y position of 5000 in a duration of 40 frames.
when you enter a wrong song, you can also move it to without xr, and replace
for 1000, so it go to the right of the map, or -1000 to the left. so play around
with the X (xr), Y (5000), 40 (duration).

we set the variable Song back to 0, and song index to 1, than we Play Ocarina to ON
and Check Song OFF. so we can try again for the correct song.

Short explaining how to set up. so we start with initialize the songs (page 2 and 3 are irrelivant)
page 2 = empty event with condition of Switch A is ON.

Main Loop Switch is activated on the first map where your actor starts the game.
this is set to parallel, autorun is also possible, but parallel is recommend in this case.

Variables Song 1 through song 6 are set to -1, it means, you cannot play this song, as long
it is not learned. you can add songs with already given value (hidden/secret melodies) for
suprise if you like to or devMode =)
Initialize.png

Learning a Song (finally) (now we can put it in action (yay))
We set the variable for Song 1 to be learned (you can set the song to be learned)
the setup for the variable is 523411 (how to use those variables is in the next spoiler)

Learning Song switch = ON, this is important on learning a song, so you cannot play any
song you learned at that moment, so long you learn a new song.
Save Map BGM, this basicly copy the common event "Use Ocarina"
in addition of variable and learning switch is added. (page 1 is irrelivant, but you may add
one if you want text before like what you learn (see demo), and check if the player has
the ocarina or a different instrument before it can learn a song.
LearningSong1.png

if song = 523411 (the song you need to learn), if correct, play SE sound.
Play Ocarina switch = OFF, buffer of 10 frames (minimum, 20-30 to be saver),
Enable the menu again, and replay BGM, erase pictures in a batch again and return
Players movement and a text and or effect that you learned a new song/melody.
Learning Song Switch is OFF, so you can play it everywhere you like too. and SelfSwitch
B, C, D = ON, or E, F + if you have YEP_SelfVar Plugin.

when cancel, you can copy the cancel part, but we add 1 switch and 1 variable to it.
Variable Song = -1 (so you cancel the song learning)
Switch learning Song = OFF, so you can play the songs you already learned.
LearningSong2.png

The final part is how Variables are readed, both long, and short (easy and confused)

confused/hard way (used in demo used)

When Song Index = 1, we add to the variable Song+= 1,
when Song Index = 2, we add to the variable Song += 10,
then on 3, we add 100 (we add +0 to each Song Index.

in the demo, I use A A<- ->↓↑ (114325) but while Song index = 1, than +10
it start on the end. so you need to read it backwards (reversed), and so it
become: 523411 as the song. 1 1 = A A.

Long and Easy way is to read the 00000 if you want 11432500 (+2 "00")
so if you have a song AA (1 1), than you have 11000000 as song number.

So you have the following if the above is to hard or confused, change the variables to the following:
Song Index 1 += 10000000
Song Index 2 += 1000000
Song Index 3 += 100000
Song Index 4 += 10000
Song Index 5 += 1000
Song Index 6 += 100
Song Index 7 += 10
Song Index 8 += 1

Basicly, you reverse the index to start with a high number, so the 11432500
has the correct button input you place, else reversed, this means, you always
need to put the 8 digit song as learning, if it has 4 digit button, it would be
like this: 52140000 on the end.

That's for the tutorial setup, read the demo (use reversed variable reading)
but if you have any question or suggestions, feel free to ask your questions.

be creative in making it a wonderfull way it will fit.

TIPS: when creating a piano from it (piano? yes, a piano)
Use a keymapper to use more buttons =), this is Zelda based, so instead of
a lines, use a flute or music Note with the Letter and arrows inside of it.

create colorfull notes or use a flute, or drums, or pipes as image that creates notes.
the possibillities are almost endless as long you let your brains working.

Credits? Nah, dont have to as long you use creativity, but creativity image
of the background and notes used are welcome =) if you cannot make them,
maybe I can create one for you, but I tell you, it's easy :)

Enjoy.


Download here the Example:
 
Last edited:

Wavelength

MSD Strong
Global Mod
Joined
Jul 22, 2014
Messages
6,114
Reaction score
5,851
First Language
English
Primarily Uses
RMVXA
Very cool! Thanks for writing this. I'm not a big Zelda player myself but it reminds me a lot of the Tadpole Pond minigame from Super Mario RPG back in the day :D
 

Zelune

Sleepy and Tired
Member
Joined
Aug 21, 2021
Messages
26
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMZ
New Tutorial that is for the Zelda fans =)

There are plugins available to play the ocarina style ON MAP and IN BATTLE, some very complex
to get it working.

Now, will this work on the map, Ofcrourse it will work, but probably not in battle (not tested).

what it will look like: (if gif play):
View attachment 170263
if it doesn't work, try to click it (it's animated, so I dont know if it plays it, if not, play the demo) =)

while I wont explain exacly how to create it, but here is what you MUST have in order to work.

Plugins required:
- YEP_EngineCore

if you dont have the following (recommended plugin) I created a temp plugin for same effect!
ShadowDragon_SM (StopMovement) (best not use in project, but use on your own risk!)
- YEP_StopMapMovement (I cannot include this one, because it's behind paid wall)

Switches and Variables Used:
Switch Main Loop
Switch Play Ocarina
Switch Learning Song
Switch Check Song
Switch StopMovement (temp plugin as replacement for YEP_StopMapMovement)

Variable Song (placeholder)
Variable Song Index (button column reader)
Variable Songs++ (each song has it's variable, so add as many as you like.)


Step by Step tutorial (comments are in Demo as well):

We start with creating 4 Common Events (pictures and explantion)
Main Loop trigger is set Parallel, and switch to Main Loop.
Conditional branch checks first if the ocarina is been played, else it does nothing,
if it does, we check the buttons pressed (this can be spammed if not triggered
correctly after (see Play Ocarina) where we come later to it.

Check if OK is being pressed, else, we check if DOWN is being pressed, same
with RIGHT, LEFT and UP. (you can use more notes if you like, use a keymapper
in this case (not in this tutorial).

Keep in mind that the sounds are NOT 100% correct, so correct them with
your own sounds, this is only an example!.

View attachment 170665

When you use the Ocarina (you can use a keymapper or YEP_ButtonCommonEvent
to attach this common event to the button.

We first save the BGM that is played on the MAP and fade that out in 1second.
You may experience to 2-4 seconds, I wont recommend higer than 3 though.
We also Disable the Menu Access after so we dont get into the menu unwanted.

StopMovement switch (ShadowDragon_SM) is a temp solution for YEP_StopMapMovement.
The song variable is set to 0 (Song variable is the placeholder), Song Index reads the columns.

1 is the first button, (later explained).
after that, We place the background (you can be creative in creating those)
wait 10 frames this buffer is required, 10 to 30 frames max), than we set the Switch
Play Ocarina ON. (which activate Main Loop Common Events to play the notes!)
View attachment 170667

This is a repeatable check, I explain "OK button", but repeat for DOWN, RIGHT,
LEFT and UP.

The Commont for variable placed (you may change it).
OK check = 1
DOWN check = 2
RIGHT check = 3
LEFT check = 4
UP check = 5

those numbers are used in the variable, this can be part of 2 ways,
Long way and short way (confused) but I explain both in the spoiler "How Variables are readed"
so you can choose which one you like (optional to check, recommeded for beginners).

When Song Index = 1, we show a picture which is on the far left, when Song Index is 2,
increse the X to +80 (or what fits for your resolution and settings), the Y is the same for
the OK button, so only X is needed. repeat for Song Index 3, 4 ~ 8 (9 stays empty)

9 is basicly max, while variables cannot have more than 9 digits.
On the end, we add Song Index +=1 (so we have song Index 2,
SongIndex = 2 reads the 2nd column of the button, Song Index 3, reads
the 3rd column etc. we also see if the Check Song = ON (self turning switch OFF)
Explained in Spoiler "Check Song" (next part below this image).

View attachment 170668

On the DOWN, we add +2 when SongIndex = 1, +20 when SongIndex = 2 etc,
On RIGHT, we add +3 on SongIndex = 1, +30 when SongIndex = 2 etc,
On LEFT, we add +4 on SongIndex = 1, +40 when SongIndex = 2 etc,
On UP we add +5 on SongIndex =1, +50 when SongIndex is 2 etc,
the higher the SongIndex, the more 0's (zeroes) you add, or 1 less 0.
(depends what's easier, see spoiler "How variables are readed")
View attachment 170756

On the Play Ocarina still, we also check when the "cancel button" is triggered,
if you ask, why is not "escape" checked? (Input.isTriggered('escape') is because
cancel and escape functions in the same way.

we fade out the BGM of the ocarina sounds, 30 wait frames (buffer and important)
without buffer or lower than 20, the menu might open, 30 frames avoid that.
we Enable the Menu Acces back on, and Play Ocarine switch OFF.
after we replay the map BGM again.

the next part of erasing images can be quiet long, erase pic, erase pict2,
erase pict 3, up to all 10, but it is required if you use 1, 3, 6, 10, etc, else
we just erase them in a batch using:

JavaScript:
for (var i = 1; i <= 10; ++i){  //this means, 1 is the picture ID, 10 is the end of Picture ID
$gameScreen.erasePicture(i); // this erase all pictures in a range from 1 through 10.
}

in case you picture ID 41-50, use var i = 41; i <= 50 instead.
than (temp plugin), turn switch OFF to enable player movement again.
else AllowPlayerMovement if you use YEP_StopMapMovement.
View attachment 170672

SongIndex = 1 are the columns like I said before, but if it's confusing somehow,
here is a sample (songIndex 1 is only readed ones, while we increase it by +1.
so here is a sample how SongIndex is readed: which explain the button setting.
View attachment 170757

I use this in 3 parts, first part first, 2nd part below this image.
Check Song trigger is parallel (very important, DO NOT USE AUTORUN), even if it
turn the Check SOng switch turn OFF.

If Song = Song 1 (check if Song variable is the same as Song 1)
we also check if Song Learnging = OFF (switch), explain later on "Event Setup)"
if the song is correct, play a sound effect, fade out BGM 1 second, Switch Play Ocarina = OFF,
we dont want them to play do we? than we erase the images in a batch (same as you
press cancel button).
IMPORTANT PART HERE: Replace Text (placeholder) to make an effect, like
weather change to rain, thunder, or time +6 hours, or teleport somewhere or open
passages when in the correct place, so be creative here.
We replay the map BGM again, and enable map movement here again.
wait 10 buffer, and acces Main Access to Enable (make it 20-30 to be save).
View attachment 170675

Part 2 and 2A, Scripcall with xr is optional:

JavaScript:
let xr = [0, 366, 446, 526, 606, 766, 846, 926, 1006] // X possition array optional
for (var i = 2; i <=10; ++i) { //we skip 1 because we dont want the background to be deleted
$gameScreen.movePicture(i, 0, xr[i], 5000, 100, 100, 255, 0, 40);
}

the scriptcall for move picture i = picture ID2 through 10, xr reads the array,
so all bottons drops down to Y position of 5000 in a duration of 40 frames.
when you enter a wrong song, you can also move it to without xr, and replace
for 1000, so it go to the right of the map, or -1000 to the left. so play around
with the X (xr), Y (5000), 40 (duration).

we set the variable Song back to 0, and song index to 1, than we Play Ocarina to ON
and Check Song OFF. so we can try again for the correct song.

Short explaining how to set up. so we start with initialize the songs (page 2 and 3 are irrelivant)
page 2 = empty event with condition of Switch A is ON.

Main Loop Switch is activated on the first map where your actor starts the game.
this is set to parallel, autorun is also possible, but parallel is recommend in this case.

Variables Song 1 through song 6 are set to -1, it means, you cannot play this song, as long
it is not learned. you can add songs with already given value (hidden/secret melodies) for
suprise if you like to or devMode =)
View attachment 170682

Learning a Song (finally) (now we can put it in action (yay))
We set the variable for Song 1 to be learned (you can set the song to be learned)
the setup for the variable is 523411 (how to use those variables is in the next spoiler)

Learning Song switch = ON, this is important on learning a song, so you cannot play any
song you learned at that moment, so long you learn a new song.
Save Map BGM, this basicly copy the common event "Use Ocarina"
in addition of variable and learning switch is added. (page 1 is irrelivant, but you may add
one if you want text before like what you learn (see demo), and check if the player has
the ocarina or a different instrument before it can learn a song.
View attachment 170683

if song = 523411 (the song you need to learn), if correct, play SE sound.
Play Ocarina switch = OFF, buffer of 10 frames (minimum, 20-30 to be saver),
Enable the menu again, and replay BGM, erase pictures in a batch again and return
Players movement and a text and or effect that you learned a new song/melody.
Learning Song Switch is OFF, so you can play it everywhere you like too. and SelfSwitch
B, C, D = ON, or E, F + if you have YEP_SelfVar Plugin.

when cancel, you can copy the cancel part, but we add 1 switch and 1 variable to it.
Variable Song = -1 (so you cancel the song learning)
Switch learning Song = OFF, so you can play the songs you already learned.
View attachment 170684

The final part is how Variables are readed, both long, and short (easy and confused)

confused/hard way (used in demo used)

When Song Index = 1, we add to the variable Song+= 1,
when Song Index = 2, we add to the variable Song += 10,
then on 3, we add 100 (we add +0 to each Song Index.

in the demo, I use A A<- ->↓↑ (114325) but while Song index = 1, than +10
it start on the end. so you need to read it backwards (reversed), and so it
become: 523411 as the song. 1 1 = A A.

Long and Easy way is to read the 00000 if you want 11432500 (+2 "00")
so if you have a song AA (1 1), than you have 11000000 as song number.

So you have the following if the above is to hard or confused, change the variables to the following:
Song Index 1 += 10000000
Song Index 2 += 1000000
Song Index 3 += 100000
Song Index 4 += 10000
Song Index 5 += 1000
Song Index 6 += 100
Song Index 7 += 10
Song Index 8 += 1

Basicly, you reverse the index to start with a high number, so the 11432500
has the correct button input you place, else reversed, this means, you always
need to put the 8 digit song as learning, if it has 4 digit button, it would be
like this: 52140000 on the end.

That's for the tutorial setup, read the demo (use reversed variable reading)
but if you have any question or suggestions, feel free to ask your questions.

be creative in making it a wonderfull way it will fit.

TIPS: when creating a piano from it (piano? yes, a piano)
Use a keymapper to use more buttons =), this is Zelda based, so instead of
a lines, use a flute or music Note with the Letter and arrows inside of it.

create colorfull notes or use a flute, or drums, or pipes as image that creates notes.
the possibillities are almost endless as long you let your brains working.

Credits? Nah, dont have to as long you use creativity, but creativity image
of the background and notes used are welcome =) if you cannot make them,
maybe I can create one for you, but I tell you, it's easy :)

Enjoy.


Download here the Example:
It works on MZ?
I'm trying to mimetize from your tutorial, but when I press ''enter'' or ''space'', the other keys stop working and my character freezes.
 

ShadowDragon

Realist
Veteran
Joined
Oct 8, 2018
Messages
4,685
Reaction score
1,799
First Language
Dutch
Primarily Uses
RMMV
It should work in MZ, while I dont think the plugin added to stop movement
will work which require a port. (unless the function exist).

There are scriptcalls used, so I dont know if those are the same or not,
so you might need to modify those as well.

otherwise, can you make a screenshot where it freezes on which function,
so I might be able to help you out?
 
Last edited:

Zelune

Sleepy and Tired
Member
Joined
Aug 21, 2021
Messages
26
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMZ
It should work in MZ, while I dont think the plugin added to stop movement
will work which require a port. (unless the function exist).

There are scriptcalls used, so I dont know if those are the same or not,
so you might need to modify those as well.

otherwise, can you make a screenshot where it freezes on which function,
so I might be able to help you out?
It's working!
I've revised multiple times to find out that I were so tired yesterday that I had inserted a control switch on where I had to put a ''control variable'' on ''check sound'' common event.
I changed and now everything works.

Thanks for the tutorial!
 

ShadowDragon

Realist
Veteran
Joined
Oct 8, 2018
Messages
4,685
Reaction score
1,799
First Language
Dutch
Primarily Uses
RMMV
glad to hear you found out where it went wrong.
if you have any questions, feel free to ask :)
 

Zelune

Sleepy and Tired
Member
Joined
Aug 21, 2021
Messages
26
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMZ
glad to hear you found out where it went wrong.
if you have any questions, feel free to ask :)
Since you said, I actually have another question haha :)
When the player is attempting to play a song and hit a wrong note messing the variable's value, the only way to try it again is pressing ''cancel'' and reentering the instrument screen?
or there is a way to autoreset all the notes on the screen for another attempt without exiting the instrument screen (just like OoT)?

EDIT:
I think I did it!
Just set the reset features to index 9 for each key.
I'm going to test some more and bring results
1631124345318.png
 
Last edited:

ShadowDragon

Realist
Veteran
Joined
Oct 8, 2018
Messages
4,685
Reaction score
1,799
First Language
Dutch
Primarily Uses
RMMV
when you press the wrong key, you can input all wrong keys after
to auto reset it, while image 1 (if you use it as 1), the rest of the notes
are gone, cancel is cancel the instrument, otherwise, you cannot exit it.

in case you want a "button", you need a keymapper. using a keymapper
can place a function to remove all keys instantly to a retry.

while this is a basic function to get started, you also use a variable
for the index X axis and the Y to place them if you want it a bit more
advanced.

for learning, you can make it a bit more advanced and complex by making
gray buttons and replace them if the button is correct, otherwise, it will
cancel out and they say "No no, not like that, try again", or something
similair like this.

you can make it far more advanced and complex as you like, while the basic
function still works.

the more you know how to use variables and switches, the better it can become.

When I got time, I might add some advanced and complex eventing on a new Map.
but while I get a bit occupied, I cannot check for that at the moment.
but the 5000 is on X, you can also play with 5000, 100 to 2500, 2500 to throw
the button the the bottom right corner.

it works for ocarina, you can use a fluit with notes, maybe a drum and even animate
those as well, which I can make in a new map with advance settings as possibility.

so test around if you like, I'm always open for suggestions, feedback :)
 

Zelune

Sleepy and Tired
Member
Joined
Aug 21, 2021
Messages
26
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMZ
when you press the wrong key, you can input all wrong keys after
to auto reset it, while image 1 (if you use it as 1), the rest of the notes
are gone, cancel is cancel the instrument, otherwise, you cannot exit it.

in case you want a "button", you need a keymapper. using a keymapper
can place a function to remove all keys instantly to a retry.

while this is a basic function to get started, you also use a variable
for the index X axis and the Y to place them if you want it a bit more
advanced.

for learning, you can make it a bit more advanced and complex by making
gray buttons and replace them if the button is correct, otherwise, it will
cancel out and they say "No no, not like that, try again", or something
similair like this.

you can make it far more advanced and complex as you like, while the basic
function still works.

the more you know how to use variables and switches, the better it can become.

When I got time, I might add some advanced and complex eventing on a new Map.
but while I get a bit occupied, I cannot check for that at the moment.
but the 5000 is on X, you can also play with 5000, 100 to 2500, 2500 to throw
the button the the bottom right corner.

it works for ocarina, you can use a fluit with notes, maybe a drum and even animate
those as well, which I can make in a new map with advance settings as possibility.

so test around if you like, I'm always open for suggestions, feedback :)
Cool! Good idea for learning! I was thinking about showing an old paperish picture with the correct notes for the players imitate, but maybe those gray buttons suits better on certain learning events.
the more ways for the learning events, the better!

I've set another key: Shift (I don't know if it's possible on MV without keymapping, but it works perfect on vanilla MZ)
1631125828635.png
Shift holds the function to reset the ''music sheet'' anytime.
Since my instrument is attached to an item (wich is not attached to any button, so it needs to be activated via item menu) this reset anytime without cancelling the instrument is really handy for my game!
 

ShadowDragon

Realist
Veteran
Joined
Oct 8, 2018
Messages
4,685
Reaction score
1,799
First Language
Dutch
Primarily Uses
RMMV
I have a keymapper to use shift or the entire keyboard, song index should
be 0 too if you want to start over.

but it's a nice idea, or using cancel twice is also possible, like if song index >= 1
than remove all, otherwise, put away the ocarine (or instrument), the other option
which is better if canel, remove notes, hold cancel to put instrument away.

there are options available, but it also depends how the player mechanic works.
the other nice idea is, if you have a piano layout (which I have as test), you can
use the ASDFG buttons or more if you like to play a song.

so many things a possible, but the basic mechanic must be understand first,
before you go into advanced, and simple copy pasting is easy, but if you dont
understand the basics, how would you make it complex if you dont know what
it does than?

but it looks good, see what works for you and your game, as long as they wont
get interupted by other keybinds that gives conflict :p

specially if you use images already on 1 -10. use lower images or more,
depending what you do.

let me know when you have a demo where it is inside it somewhere,
it's always interesting how it is used inside a game.
 

Zelune

Sleepy and Tired
Member
Joined
Aug 21, 2021
Messages
26
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMZ
I have a keymapper to use shift or the entire keyboard, song index should
be 0 too if you want to start over.

but it's a nice idea, or using cancel twice is also possible, like if song index >= 1
than remove all, otherwise, put away the ocarine (or instrument), the other option
which is better if canel, remove notes, hold cancel to put instrument away.

there are options available, but it also depends how the player mechanic works.
the other nice idea is, if you have a piano layout (which I have as test), you can
use the ASDFG buttons or more if you like to play a song.

so many things a possible, but the basic mechanic must be understand first,
before you go into advanced, and simple copy pasting is easy, but if you dont
understand the basics, how would you make it complex if you dont know what
it does than?

but it looks good, see what works for you and your game, as long as they wont
get interupted by other keybinds that gives conflict :p

specially if you use images already on 1 -10. use lower images or more,
depending what you do.

let me know when you have a demo where it is inside it somewhere,
it's always interesting how it is used inside a game.
For sure! I'm not an expert on the matter of variables, but It's cool to understand during the ''copy'' proccess how you've set up the whole thing! And from that knowledge to build new things

I've added some functions to it, when I finish the Demo version (and translate it to english because the primary language will be portuguese), I'll send it to you with pleasure, friend! :)
 

ShadowDragon

Realist
Veteran
Joined
Oct 8, 2018
Messages
4,685
Reaction score
1,799
First Language
Dutch
Primarily Uses
RMMV
the way I set up the x/y for the buttons, can also be done by
gameVariables, that someone showd me on discord the first time
I release this.

while it works both, it's in 1 way a bit more complex, but also
more control on how to place them.

so no worries, this can also be far more extended.
but it require 5 more switches and 3 more variables, but it also
depends on methode you use, and combine them through
locks mechanics, that blocks you for using the instrument, by
anti learn system, even if you learn the song, it wont work, because
you need to learn it in 3 different ways, etc.

I love a challenge so I do my best, but also not to complex that you lost
it's ways, it's more the basis to learn "how to use" common event,
bind events to items, binds them to other events to get a complex event
to work correctly.

if you miss 1 button or 1 event to bind, nothing will work or dont trigger.
but there are people that are far greater, but I do it as hobby, but if it's
working, I like to share it as well, because every beginner or average
developers can learn new things.
 

cocola

Villager
Member
Joined
Aug 22, 2021
Messages
9
Reaction score
5
First Language
german
Primarily Uses
RMMV
Thank you for posting the tutorial. It's amazing!
I have a question. I did it after the tutorial but the left and right key don't seem to work if I look at the script I maybe left something out but everything is done like in the tutorial.
Can you maybe help me pls? I linked a video to demonstrate my problem.
 

Attachments

  • ezgif.com-gif-maker (1).gif
    ezgif.com-gif-maker (1).gif
    1.7 MB · Views: 4

ShadowDragon

Realist
Veteran
Joined
Oct 8, 2018
Messages
4,685
Reaction score
1,799
First Language
Dutch
Primarily Uses
RMMV
if you mean that the button shift down and changed, it's really weird.
if you done exactly how I done it, it's a compleet riddle.

while I cannot help you directly, I need to see the event how you set it
up, specially the button press and the note settings.

otherwise, send me a techdemo of it to with a link to itch/dropbox to
my DM and I can take a look at it.

it's really weird, or double check the demo and yours to compare,
but I hope yo don't use those graphic in your actual game while I made
it quickly for demo purpose, but you are free to use it otherwise.
 

Latest Threads

Latest Profile Posts

I'm just so close to replacing LUK with a different stat, maybe DEX but we'll see.
Slapped together a title screen and working on some dungeon clutter + portraits for Dubhghaill and Einar. Usual CW for minor body horror wrt Einar
QVLJIgD.png

OaPcYUy.png

r55FiUJ.png

EIgO94y.png
cT1V4nb.png
>studying for months for an exam
>does exam
>waits 3 months for the results to come out
>me trying to login, incorrect password
>I get recovery password
>me trying to login, incorrect password

What the heck. As a son of a Karen, I'm going to file a few complaints.
Apparently Amazon Prime users get free Genshin Impact stuff like primogems and whatnot every month, but I'm not sure I ever want to fall into the abyss of F2P ever again.

Forum statistics

Threads
117,149
Messages
1,104,971
Members
153,229
Latest member
jimproringtones
Top