Cutscenes With Huge Character Rosters

Discussion in 'RPG Maker MV' started by Drunken Paladin, Sep 7, 2019.

  1. Drunken Paladin

    Drunken Paladin Veteran Veteran

    Messages:
    82
    Likes Received:
    55
    First Language:
    English
    Hi everyone, I've been puzzling over how to handle this for a little while, so I thought I'd bring it here.

    I have a scenario where the player can choose from around 40 characters to assign to a task. In the next screen, I'd like to play a cutscene featuring only the characters the player chose, in which their sprites all appear on the map.

    How would you go about handling this? I can't think of any non-insane solutions, but maybe there's a smart way to go about it with a plugin or a trick with javascript I don't know about.

    Thanks!
     
    Last edited: Sep 7, 2019
    #1
  2. Andar

    Andar Veteran Veteran

    Messages:
    28,672
    Likes Received:
    6,594
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    the most important rule for cutscenes is to have all commands in a single controlling event.
    all those characters need to be remote-controlled placeholders and have not a single command in them - not even their movement.

    And if you control everything from a single controlling event, it doesn't matter if that event controls 5, 50 or 200 events - it is more tedious the more lines you have to add to the controlling event.

    and in your case, if you only need the selected actors, then you only use as many events as you'll get members and have the controlling event change the event graphics based on which ones are in the party.
    or make the controlling event move everything, but have the character events be conditioned to "actor exists" which means the events not in the party will no longer be there.
     
    #2
  3. Drunken Paladin

    Drunken Paladin Veteran Veteran

    Messages:
    82
    Likes Received:
    55
    First Language:
    English
    Well, I'm no stranger to cutscenes in general, but the reason this is so tricky for me is that they are not actually "actors," but NPCs you can assign to tasks around your base of operations.

    The practical issue I'm running into is that I can't think of a good way to change 4 different tile images in a map to match those of the selected NPCs without the problem of overlapping conditionals.

    BUT, the idea of just adding an actor slot for every NPC and putting them in the party temporarily to assign a tile to match an actor slot is something I hadn't considered before... is that possible with javascript?
     
    #3
  4. Andar

    Andar Veteran Veteran

    Messages:
    28,672
    Likes Received:
    6,594
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    no need for javascript, that is pure eventing and databasing
     
    #4
  5. Tea's Jams

    Tea's Jams I'm human Veteran

    Messages:
    776
    Likes Received:
    1,964
    First Language:
    English
    Primarily Uses:
    RMMV
    Could you assign each one a variable, write a conditional branch and use an event spawner plugin?
     
    #5
    Drunken Paladin likes this.
  6. Liandra Aura

    Liandra Aura Game Director Veteran

    Messages:
    128
    Likes Received:
    60
    Location:
    Norfolk, VA
    First Language:
    English
    Primarily Uses:
    RMMV
    This is exactly what I was going to suggest. Assign each actor and position a variable. If actor A = Variable C, show NPC attached to actor A at variable C. It's a lot of event coding but should get you there. I'd jot it all down on paper and try to organize before you make a go at it though.
     
    #6
    Drunken Paladin likes this.
  7. Drunken Paladin

    Drunken Paladin Veteran Veteran

    Messages:
    82
    Likes Received:
    55
    First Language:
    English
    I hadn't seen the event spawner plugin before now, so this is another helpful possible step!

    But I'm still a little stumped by the quandary of how to spawn them without overlapping tiles, since there are 40+ possible NPC options and only a handful of tiles where the few you select will spawn.
     
    #7
  8. bgillisp

    bgillisp Global Moderators Global Mod

    Messages:
    12,390
    Likes Received:
    12,616
    Location:
    USA
    First Language:
    English
    Primarily Uses:
    RMVXA
    @Andar : There's one problem with your idea. With a roster of 40 and 4 characters that can be used, that is 40C4 combinations, which is more than you can have for event pages. Even without going that deep, 40 is still more than you have for event pages in MV due to MV capping you at 20, so another solution is needed.

    Plus, there is no basic command for if actor x is in slot 2. The command is only for if actor x is in the party but you need to account for in what order they are in too else you may get actor x showing up 3 times on scene and none of the others.

    Myself I usually just put everyone in my game in the cutscene somewhere, with the implication that they are in the reserve group that is not fighting but instead is making sure no one else ambushes you from behind (or maybe doing their own fights).
     
    #8
    Drunken Paladin likes this.
  9. Tea's Jams

    Tea's Jams I'm human Veteran

    Messages:
    776
    Likes Received:
    1,964
    First Language:
    English
    Primarily Uses:
    RMMV
    What about having the conditional branch change the image of four events that you have on the other map?

    Although Like @bgillisp mentioned since there are only twenty pages per event, you'll have to get fancy. I would suggest something like a jump to label and put two npcs per page or something like that.
     
    #9
  10. Drunken Paladin

    Drunken Paladin Veteran Veteran

    Messages:
    82
    Likes Received:
    55
    First Language:
    English
    Well, I'm not sure changing the image gets around the problem of ensuring each event is a unique character.

    If there's a line of Javascript that can check for actor slots, I can see one possible path to success with a lot of work. If there isn't, this might just be a totally lost cause lol
     
    #10
  11. Tea's Jams

    Tea's Jams I'm human Veteran

    Messages:
    776
    Likes Received:
    1,964
    First Language:
    English
    Primarily Uses:
    RMMV
    That's why I mentioned the jump to label thing. You can write your 40 unique dialogs in one event putting 2 npcs on each page, then have the conditional branch change the image AND jump to that characters dialog. Then you can use only 4 npc events for the cutscene.
     
    #11
  12. Andar

    Andar Veteran Veteran

    Messages:
    28,672
    Likes Received:
    6,594
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    that isn't how I would have done it. It probably got mixed up because I described two different methods to handle this in one post.
    but I don't have time to give details on both methods, and the OP sounds as if he already has found his solution
     
    #12
  13. Drunken Paladin

    Drunken Paladin Veteran Veteran

    Messages:
    82
    Likes Received:
    55
    First Language:
    English
    I guess my brain is having a hard time envisioning how this one would work, but maybe you can help explain it better.

    Let's say I make a great big event and label it all for whatever reason, how do I choose which event gets changed with each conditional? Let's say there are 4 events, since I need 4 NPCs to spawn.

    If I turn event 1 into character A, then jump to another label for event 2, how do I prevent it from also becoming character A?
     
    #13
  14. Andar

    Andar Veteran Veteran

    Messages:
    28,672
    Likes Received:
    6,594
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    you need to start from the other side, which is why this is usually done from the other side and with actors. If they aren't actors it is much more difficult to do.

    The first step is to get an array of which four characters are needed. By default this can only be done as "actors in party", so you'll have to use scripting and an array if they are not actors in the party.

    As soon as you have that array (or four variables each holding one choosen number), then the first event checks the first selection and is changed to that sprite, then the second event is changed to the second selection and so on.
    And you'll have four labels for the four different events, and inside them the selections based on the stored IDs.
     
    #14
  15. Drunken Paladin

    Drunken Paladin Veteran Veteran

    Messages:
    82
    Likes Received:
    55
    First Language:
    English
    The part that I'm still getting stuck on is how the second event is bypassing the first array to only change into the second. The only way I can think of is creating ANOTHER conditional for each array that checks whether it's already in use, so 40 conditionals are effectively inside 40 more.
     
    #15
  16. Andar

    Andar Veteran Veteran

    Messages:
    28,672
    Likes Received:
    6,594
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    that is why I told you that you need to get a list of all selected option before setting anything - that way you don't need any check for what is in use, because it already prevents doubles automatically (unless you allow things to be selected twice).

    In the case of actors the engine handles that automatically.

    But it is that first step that is extremely important - getting the selections already done, NOT have the events make the selections.
    If you have that first step, all you need to check for the 40 options each without any need for that "check the other events".
     
    #16
  17. ImaginaryVillain

    ImaginaryVillain Map Event Specialist Veteran

    Messages:
    170
    Likes Received:
    177
    First Language:
    Event Gibberish
    Primarily Uses:
    RMMV
    Oh, I do so love an eventing puzzle… This can be accomplished with just Yanfly’s Event Spawner (but I doubt I could resist using Self Variables/Switches to make it more exciting if it were me). I’ll use 4 NPCs for the example but hey you can change the number as you see fit.


    Anyway so here’s the plan, make a map you want to select the characters on such as a base/town/etc. Place your 40 NPCs on it and assign each a number 1-40 (not a variable you can just number them). Give each a dialogue to select which of the 4 they are (if order matters at all) or it can just be a “pick me” option if order doesn’t matter. When one is picked, put their number “1-40” into a variable for whichever place in the 4 characters they are. Also create a parallel event (lowest priority) which sets variable “Task Done” to 0, and runs the Yanfly despawn map command for your cutscene map.


    Now on an event map setup all 40 characters as their own individual events. You can even make each do whatever action they are supposed to do. Set them to parallel. Also make each one increments variable “Task Done” by 1 when they finish.


    Finally on the your cutscene map, create one event. This event will look at the 4 picked character variables. It will have 5 pages… Page 1 have a list of if Character Variable 1 = # then Yanfly Spawn Event the matching event from the event map at a predetermined location. Create matching pages for the other 3 Character Variables but pick other predetermined locations. Then create a 5th page that checks for Task Done = 4. On that page, transfer the player back to the base map.


    Since your base map will then erase your cutscene map’s events, and reset the Task Done variable, it’s now reusable to do it again and again till you get bored.
     
    #17
    Drunken Paladin likes this.

Share This Page