CC - Visual-Novel like Image Controller

Discussion in 'RGSS3 Scripts (RMVX Ace)' started by CC_Yellow, Aug 3, 2014.

  1. CC_Yellow

    CC_Yellow Villager Member

    Messages:
    12
    Likes Received:
    25
    First Language:
    Japanese
    CC_FG v4.3
    by CC
     
    Features
    This script gives you more control on character images in a dialog scene.
    You can move those images, darken for highlighting a narrator, shake as comical action, et cetra.
    (Optional) You can synchronice a timing of actions with text flow by using a controll character.
     

    Screenshots
    14.PNG rmvxa29.jpg rmvxa32.jpg rmvxa34.jpg rmvxa37.jpg rmvxa55.jpg

    Video

    https://www.youtube.com/watch?v=keHprIVCaG0

    https://www.youtube.com/watch?v=SCrD0V0jKUk

    Demo (Script included)
    >> Here

    How to Use
    [1] Please try demo.

    [2] Install
      This script has four-part. set in order as below.
      CC_FGMSG        : (Optional) Control characters for the use in the message window.
      CC_FGIMG        : Image loader. If you change filename format, see this.
      CC_FGCOM        : Script calls. If you change orders, see this.
      CC_FG           : Main.

    [3] Prepare files
      In default, directory is "Graphics/fgimage/"
      it is written in Module(CC::FGIMG) in CC_FGIMG.
     
      filename format is written in fg_select() in CC_FGIMG.
      example : "./Graphics/fgimage/CC/CC00_smile.jpg"
     
        Perhaps you think default format is unnessarily long and want to change.
        So, this is list of involved method:
        fg_select() in FG_IMG, img() in FG_FGCOM, face() in FG

    [4] Cache
      This script use Cache. It can be heavy load for memory.
      Call Cache.clear_fg_cache to clear cache manually.

    [5] Basic flow of event command script
      1. newfg(key) to make new image holder(=FG).
      2. img(key, ccode, cloth = 0, emo = nil) to set image on FG.
           (to see how filename is determined, see fg_select() in CC_FGIMG.)
      3. let FG act through the commands, script calls.
           (to see commands, see CC_FGCOM.)
      4. delfg(key), delallfg() to delete image holder. Call it when dialog is over.

    [6] (Optional) Combination with 'show text' by CC_FGMSG
      If CC_FGMSG is installed, you can use 'control character'(such as \C[1]) \FG to
      synchronize a timing of texts and actions of FG.
      For more detail, please see CC_FGMSG.
     

    References
    qut, "バストアップ表示スクリプト", http://lud.sakura.ne.jp/.
     
    Author's notes
    This work is licensed under the Creative Commons Attribution 4.0 International License.
    To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/.

    In Short:
    As long as you give credits, you are free to use this script in Commercial/Non-Commercial Projects.

    We appreciate your donation.
     If you find this script useful, please consider to make a donation. Pledgie URL: https://pledgie.com/campaigns/26257
     
    Last edited by a moderator: Dec 30, 2014
    #1
    Ebanyle, Archeia, RobbieLA and 8 others like this.
  2. Sophism

    Sophism Veteran Veteran

    Messages:
    36
    Likes Received:
    6
    First Language:
    English
    This looks exactly like what I needed for my game. I was using Galv's Message Busts, but it wasn't a good fit.

    Off to try it out! Thanks so much for this.  :)
     
    #2
  3. CC_Yellow

    CC_Yellow Villager Member

    Messages:
    12
    Likes Received:
    25
    First Language:
    Japanese
    Updated to v4.2.

    Now you can synchronize a timing of actions of images with the flow of texts.

    Added english descriptions in CC_FGCOM.

    For this post:

    Added some Screenshots.

    Added video for new function.

    I'm thankful to Archeia for the suggestion.
     
    #3
    Archeia likes this.
  4. Sophism

    Sophism Veteran Veteran

    Messages:
    36
    Likes Received:
    6
    First Language:
    English
    OK, I am incredibly stupid, and your script works exactly the way I wanted it to by using the very string I suggested as an example. Never mind me!

    Hi CC_Yellow. I've just implemented your script into my project and with a few adjustments it's working like a charm!

    I do wish it had one additional feature though. (If this can be done by myself, I'd love some help.)

    So in my game, the main character can change clothes and accessories, and those changes reflect on her sprite and her bust pictures. Currently, I'm getting around this by using conditional branches checking for a variable that corresponds to her current appearance:

    Maid Uniform:

    [​IMG]

    Casual Clothes:

    [​IMG]

    But that's a far from ideal solution, as it involves writing frankly massive conditional branches for every single dialogue event in the game.

    As such, I'd love a feature that tracked a specific variable to make sure the script came up with the right file on its own. Something along the lines of:

    img:)a, PC, $game_variables[1], 'Sweatdrop')

    That way, when say Variable 0001 equals 0, it will use "PC00_Sweatdrop.png", and if Variable 0001 was changed to 2, it will use "PC02_Sweatdrop.png" instead.
     
    Last edited by a moderator: Aug 12, 2014
    #4
  5. Zoltor

    Zoltor Veteran Veteran

    Messages:
    1,550
    Likes Received:
    206
    First Language:
    English
    From first glance, this looks just like a scripted version of show picture/move picture commands, but there's some nice features, specifically the delete all img feature. This can be done without scripting, but it will take an additional step, plus trial & error testing to get right.
     
    #5
  6. CC_Yellow

    CC_Yellow Villager Member

    Messages:
    12
    Likes Received:
    25
    First Language:
    Japanese
    Thank you for the feedback.

    Automatic image selection by equipments is what I always want.

    in fact, I tried it before, and realize that the way how the number determined was too user-specific.

    You can see some remains in the line 55 of CC_FGIMG.rb,

      #cloth = cloth_auto_select(CCODE[ccode]) if cloth == -1

    This means that if you call img:)a, PC, -1, 'Sweatdrop'), it call cloth_auto_select() and get the number according to equipments.

    It might be a good point to make your own Method, if you want.

    Autodelete has same problem.

    I agree that an additional step is not smart, however I can't decide when to autodelete.

    Making some of  "If this is true, images are autodeleted when *** " switches is one of ideas I thought,

    and rejected since that generates another additional steps.
     
    Last edited by a moderator: Aug 12, 2014
    #6
  7. Neok

    Neok Veteran Veteran

    Messages:
    42
    Likes Received:
    15
    First Language:
    English
    Wow, this looks wonderful! Definitely gonna try it out!
     
    #7
  8. RaZzi

    RaZzi My Peculiar Brother Veteran

    Messages:
    420
    Likes Received:
    206
    Location:
    Finland
    First Language:
    Finnish
    Hmm. How to disable smooth change of the images?
     
    #8
  9. SpacemanFive

    SpacemanFive Meteor Mage Veteran

    Messages:
    191
    Likes Received:
    23
    Location:
    Canada
    First Language:
    English
    This looks like it would be invaluable to my project! Great work!
     
    #9
  10. CC_Yellow

    CC_Yellow Villager Member

    Messages:
    12
    Likes Received:
    25
    First Language:
    Japanese
    #10
    Sophism likes this.
  11. Sophism

    Sophism Veteran Veteran

    Messages:
    36
    Likes Received:
    6
    First Language:
    English
    An amazing script becomes even better. Thanks again CC!
     
    #11
  12. ookami_lord

    ookami_lord Best Lemon in the world Veteran

    Messages:
    88
    Likes Received:
    12
    Location:
    Portugal
    First Language:
    portuguese
    Primarily Uses:
    N/A
    If I ever try to do a visual novel-like game, this WILL be my choice :)
     
    #12
  13. MirageV

    MirageV Veteran Veteran

    Messages:
    46
    Likes Received:
    43
    First Language:
    English
    I gave this a shot and it works wonderfully on it's own. I replaced my evented VN image controller with it, and it's so much less tedious now.

    But I do have an issue with another system; Saba Kan's Galge Conversation System

    It actually works fine, except that when you enter the message log or the save menu, it will dispose of the images displayed by this script. Is there a way to prevent that? It would be the perfect VN setup if only one could get by this.
     
    #13
  14. pao_8d

    pao_8d Villager Member

    Messages:
    12
    Likes Received:
    1
    First Language:
    Spanish
    Omg It would be great if I finally accomplish to properly use this script in my game. It looks amazing -really!-, but I... I think instructions could be clearer, right? >_o I spent 2 hours trying to figure out how the whole thing works and I don't fully understand it yet. ;; I mean, the script calls explanations are very vague -and almost hidden-, b-but it's ok, I'm not complaining! I'll keep trying so I can use those great functions in my VN. Thank you for this wonderful script ^^

    And now that you mention it, @MirageV... I'm sorry I can't help you with your issue, but maybe could this script have a message log add-on in a future? As you said, that would be perfect! ^^b
     
    #14
  15. Midori_mimi

    Midori_mimi Warper Member

    Messages:
    1
    Likes Received:
    0
    I like it very much,but I can't download the demo.
     
    #15
  16. sentairider42

    sentairider42 Villager Member

    Messages:
    12
    Likes Received:
    0
    First Language:
    English
    Primarily Uses:
    RMVXA
    Quick question; are there any limitations on how big the sprites you use can be?

    Also, sorry if this counts as necro-posting.
     
    #16
  17. TheoAllen

    TheoAllen Self-proclaimed jack of all trades Veteran

    Messages:
    3,047
    Likes Received:
    3,067
    Location:
    Riftverse
    First Language:
    Indonesian
    Primarily Uses:
    RMVXA
    Disclaimer: I didn't look at the script

    But in a general sense, a bitmap an be so big until the engine refuse to create it. I forgot the exact border, but it's around 10000x10000 or some sort. Besides, why would u use sprite bigger than your screen?
     
    #17

Share This Page