Change character sprite without glitches?

Discussion in 'RPG Maker MV' started by Jogabba, Oct 31, 2016.

  1. Jogabba

    Jogabba Villager Member

    Messages:
    27
    Likes Received:
    14
    First Language:
    Spanish
    Hi again! I have a little problem and don't know if there's any solution to it.


    I've made an extra spritesheet for my character for extra gestures. So, whenever I want my character to do a gesture, I do the following: I use set movement route to swap the standard character sprite to the extra gesture spritesheet and make the character face the desired direction (for example, if I've put a laugh in the first row of this extra gesture spritesheet I make the character face down).


    This works fine except for a little detail: it seems there's a little delay (maybe one frame or two) between changing the spritesheet and making the character face a direction, so it looks like a little weird glitch every time I swap the spritesheets. 


    I suppose it would be fixed if I could change the spritesheet and change the character's direction on the same frame. Is there any way to do so? If not, is there any way to fix this?


    Thank you!
     
    #1
  2. Andar

    Andar Veteran Veteran

    Messages:
    28,002
    Likes Received:
    6,327
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    The main problem is that you're doing it the wrong way. You should NOT use the set move route for this, but the command for changing the actor graphic directly.


    The problem is in the way how set move route works - as it is named: that command SETs an INDEPENDENT move process, which means the processing of the move route itself does not happen on the same timeframe as the processing of the event that creates the move route with the set command.


    If you use the command for changing the actor sprite and set only the turning by move route after that, that should be a much better sequence (unless you already have a lot of lag on that map, and in that case you should search for the causes of that lag and remove them instead of experimenting with the timing of set move routes.
     
    #2
  3. Jogabba

    Jogabba Villager Member

    Messages:
    27
    Likes Received:
    14
    First Language:
    Spanish
    You're right, now it works smooth as silk! Thank you!


    The only problem is that this can only be done with the actor, but not NPCs, right? Is there any way to make it work with events and not the actor?
     
    #3
  4. Andar

    Andar Veteran Veteran

    Messages:
    28,002
    Likes Received:
    6,327
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    of course, it just needs to be done with changing pages instead of changing sprites - and that might cause problems with the process logic.


    So it can be done, but is more tricky
     
    #4
  5. Bex

    Bex Veteran Veteran

    Messages:
    1,152
    Likes Received:
    248
    First Language:
    German
    Primarily Uses:
    RMMV
    You could convert your charsets into a animation picture and than use the animation editor, i used that once for a sword slash charset.


    only problem is when your char stands below a star tile on the map the animation is shown above it, but i heard that even therefor are some scripts which fix that.
     
    #5
  6. Jogabba

    Jogabba Villager Member

    Messages:
    27
    Likes Received:
    14
    First Language:
    Spanish
    Thanks for your answers! Changing pages or animations seem the right thing to do, but it's too tricky for my case. My project is very cutscene-driven and there are a lot of event image changes, so using these methods would be very tiring.


    I've come up with a little solution: at the beginning of the map I preload all the character graphics I'm gonna use. With preloading I mean changing the character graphics very fast, and then make the scene fade in from black. 


    It's a sloppy solution but it's the best I've found in terms of quality/effort.


    I would gladly pay a scripter to make a plugin that could fix this in a more clean and reliable way though.
     
    #6

Share This Page