Visual Equipment!

Discussion in 'JS Plugin Releases (RMMV)' started by Rexal, Nov 12, 2015.

  1. Rexal

    Rexal Digital Fuzzball Veteran

    Messages:
    141
    Likes Received:
    256
    Location:
    Washington, USA
    First Language:
    C#
    Primarily Uses:
    RMMV
    Visual Equipment v1.1b
    Rexal
     ​
    Intro - Want your equipment to actually show up on your actors? Now you can!​
     ​
    [​IMG]
     ​
    The Plugin(v1.1a) - Here
     ​
    Demo - Here
     ​
    Github Repository - Here
     ​
    Due to its complexities, I highly recommend downloading the demo. I even tried reducing the file size as much as possible :)
     ​
    Features
     ​
    - Able to have equipment be visual by applying "parts" to a sprite.
    - Can have multiple parts per equipment.
    - Can have actors have default parts.
    - Have quite a bit of control on how the parts are colored.

    - Can have equipment hide default parts

    - And more!
     

    Plugin Commands
     ​
     UpdateActors - Forces the game to update the actors, for any reason that
     you need the game to do so.
     
     SetVEPose ActorId pose - Sets the actor with the ActorId specified to
     search for sprites with _pose at the end of them. For example you set pose
     to "dead", "body" becomes "body_dead".
     
     This effects characters on the map only.
     
     ClearVEPose ActorId - Restores the actor's pose to the default one.
    Parameters
    Debug - Will write to the console if true. THIS SENDS A WHOLE LOT OF LOGS WHICH CAN LAG THE GAME, SO ONLY TURN THIS ON IF YOU ARE HAVING ISSUES

    One Sprite Per Layer - By default, you can have an infinite amount of parts per layer. However, making this parameter true will cause only one sprite to show per defined layer, which saves performance. This can be rather difficult to use however, so I recommend using this only if you really need it.
    Show Fadeout - If true, this will fade out the screen until the actors are
    done loading.
    It's up to you whether you want to use this or not.
    Note tags
    VE Prefix: prefix

    This can be set to actors and equipment both.

    Basically, when you define a prefix, instead of searching for "hat" when
    you use VE Image, it'll search for "prefixHat".

    When used with equipment, prefixes are determined by the equipment's slot
    order, but they will always override the actor's settings.

    [VE Actor]

    This is, of course, Actor's notes only.

    Using this tag will make the actor's sprites(and any instance of them) invisible. This is so you can create an actor entirely from parts.

    Make sure that you have a blank sprite in parts/battlers named "blank",
    otherwise it'll soft-lock in battle for some reason.

    VE Image name,layer,hue,saturation,value,ignore prefix

    This can be used for Actors, Weapons, and Armor. If used for actors, they will always have those parts no matter what...unless you use the One Sprite Per Layer parameter, of course.

    First, ensure that you have a folder named parts, and inside that folder are three others named character,face, and battler.

    When you use this tag, the plugin will search the folder relevant to the situation for the sprite with the name you've specified, For example, if the actor's face pops up, it'll look in the "face" folder.

    The layer tells the plugin what order the part should be created in. It goes lowest to highest, and by default is 0.

    hue is the color of the part.

    saturation is how colorful the part is. 255 is completely colorless.

    value is how bright the part is. 0 is the normal value, -255 is black, and 255 is white.

    note: everything but name can be set to an eval formula. Keep in mind though that right now it only sets these values the moment the parts are created.

    VE Image Neutral: name,layer,hue,saturation,value

    Exactly the same as VE Image except that it always ignores prefixes.

    VE Hide: layer

    When set to equipment, it'll hide the actor's default parts on the layer
     specified. Think of it as One Sprite Per Layer lite version.

    VE Color: layer,hue,saturation,value

     This will color all parts in the specified layer unless said part already has
     color settings.

    Future Plans -

    - More notes for more control- More things that can take advantage of the notes (classes, states, events, etc.)

    - Somehow make this constantly update the parts without killing the frame rate.

    - A guide or something on how to use this thing.


    Terms of Use - Free for commercial and non-commercial use.

     

    Change Log



    v1 -
    Initial Version
    1.1a -
     - Added VE Prefix, which lets you have different images per VE Image.
     - Added VE Image Neutral, which ignores all prefix settings.
     - Added another variable to VE Image, which allows you to ignore all prefix
     settings.
     - Added Show Fadeout parameter, which will fade out the screen whenever the
     actors are updated.
     - Added VE Color, which allows you to change the colors settings of parts, as
     long as those parts don't have color settings themselves.
     - Added VE Hide, which is an equipment tag that lets you hide an actor's
     default parts.
     - Save file now properly updates with the character.
     - It no longer crashes when it can't find a part. It'll still send an error
     to the console, though.
     - IF YOU USE [VE ACTOR] YOU MUST NOW HAVE A BLANK SPRITE NAMED "BLANK" IN
     PARTS/BATTLERS OTHERWISE IT WILL SOFT-LOCK IN BATTLE.
     - General Improvements.
     - Added SetVEPose, which lets you set the pose for the sprites to use.
     - Added ClearVEPose, which restores the sprites to default.

     1.1b -
     - Actor's faces without [VE Actor] no longer disappear when equipping something.
     - Balloons should be in the right spot now.
     - ClearVEPose actually works like it's supposed to now.
     - If the plugin cannot find a sprite with the desired prefix, it'll search for the prefixless one.



    If you're using my animated enemies script, place this plugin above it!
     
    Last edited by a moderator: Nov 17, 2015
    #1
  2. Nickel

    Nickel Veteran Veteran

    Messages:
    16
    Likes Received:
    4
    First Language:
    German
    Hey Rexal,

    awesome Script. Thanks for sharing :)

    I found a bug. It does not work with YEPs BattleEngineCore :(
     
    Last edited by a moderator: Nov 13, 2015
    #2
  3. Chickenlump

    Chickenlump Veteran Veteran

    Messages:
    40
    Likes Received:
    20
    First Language:
    English
    Thanks for this, I never would have thought about changing the portraits based on equipment.

    (I also wasn't expecting to laugh so hard at your animated screenshot... :) )
     
    #3
  4. Siskan

    Siskan Villager Member

    Messages:
    22
    Likes Received:
    4
    Location:
    Stockholm, Sweden
    First Language:
    Swedish
    Thanks a lot for this!

    Also, what a neat surprise that demo was! I like how you put some extra effort into it.
     
    Last edited by a moderator: Nov 13, 2015
    #4
  5. Rexal

    Rexal Digital Fuzzball Veteran

    Messages:
    141
    Likes Received:
    256
    Location:
    Washington, USA
    First Language:
    C#
    Primarily Uses:
    RMMV
    @Nickel It should work fine if you put it below Yanfly's stuff.

    @Chickenlump It changes more than just the portraits :)

    @Siskan Glad you liked it! I'm actually planning on making this a master demo for all my plugins since it's such a pain to keep uploading 1/10th of a gigabyte every time...

    Plus having everything in one spot will be a lot easier for me to manage.
     
    #5
    Shinma likes this.
  6. Bogsy

    Bogsy Veteran Veteran

    Messages:
    42
    Likes Received:
    14
    Location:
    Canada, Ontario
    First Language:
    English
    Haha that gif was rather entertaining to stare at for a minute.

    Pretty good work, this is something I'll be using. ^_^
     
    #6
  7. Nickel

    Nickel Veteran Veteran

    Messages:
    16
    Likes Received:
    4
    First Language:
    German
    It doesnt Show damage in Battle on Actor 1. I have try it with my and your Demo Project.
     
    #7
  8. gamerxp

    gamerxp Villager Member

    Messages:
    30
    Likes Received:
    5
    Location:
    Russia
    First Language:
    Russian
    Neat. This gives much more control than similiar plugin from Masked.

    Though, same suggestions I asked him still applies here. If you let me...

    1. Changing equipment from events. You mentioned this issue in the demo as well, but... until you find some great solution can you make a plugin command that updates images manually?

    2. Is there a way to make alternative equipment graphics from alternative character animations? Like those "down" frames for all RTP characters for example.

    For example, it could be handles like... first, you read current actor's charset name. Let's say we got actor with sprites named actor0 and actor0[down].

    Also, we got armor with note like: ve image: femaleClothes,1

    Then first we check current actor's name for tags in the name. Like sprite actor0[down] contains tag down as you can see.

    Then, instead of loading default femaleClothes.png we first try to find image femaleClothes[down].png. If not found - load tagless one.

    Moreover, will be nice to make it possible to create actor-specific variations or same clothes. Done mostly same way.

    After reading tags - we remove them from the name( leaving only actor0 left in our case), and then try to find image with name:

    actor0_femaleClothes[down].png

    Not found -> femaleClothes[down].png

    Not found -> actor0_femaleClothes.png

    NotFound -> femaleClothes.png

    I bet it will require to do some caching of database on load to speedup this process.

    3. Somehow making overrideable ve image. Totally can be done by enabling One Sprite Per Layer option, but this may be easier to use. Like you define an image at layer 5, and any other equipment on this layer will replace it - something like default equipment.
     
    #8
  9. Rexal

    Rexal Digital Fuzzball Veteran

    Messages:
    141
    Likes Received:
    256
    Location:
    Washington, USA
    First Language:
    C#
    Primarily Uses:
    RMMV
    @Nickel That's odd. I wonder why? I'll have to look into it.

    @gamerxp

    1. Sure, I could do that. Not sure why I didn't think of that, to be honest...>>);

    2. I'm planning on doing poses soon, yeah.

    I was actually going to let you set a "prefix" for an actor, which is why I had things like "maleClothes" and "femaleClothes" in the first place...I can't remember why I decided not to do this, but I'll definitely have this done asap.

    3. So, instead of overriding all layers, it overrides the one(s) you define? Yeah, I could do that.
     
    #9
  10. Nohmaan

    Nohmaan Veteran Veteran

    Messages:
    138
    Likes Received:
    33
    Location:
    Minneapolis MN
    First Language:
    English
    This is great!  With all the generator parts I figured this one would come up soon.

    Perhaps some suggestions for new releases:

    You could add a tag to the actors like 've type: 1' and then in the armor use both 've image1: blah blah' and 've image2: blah blah'.  Then depending on who equips the specific armor, it would apply the desired graphic.

    Another cool feature would be a 'hide layer' tag at the end.  VE Image name,layer,hue,saturation,value,hide_layer

    So you could have something like this (call it a ninja mask) 'VE Image: shirt,10,0,0,0,9' it would remove an item equipped on layer 9.  So if I have my hair at layer 9 and I want to equip ninja mask, equipping this removes the hair so it does not stick out of the ninja mask.  When the mask is removed the hair will display again.
     
    #10
    Shinma likes this.
  11. Rexal

    Rexal Digital Fuzzball Veteran

    Messages:
    141
    Likes Received:
    256
    Location:
    Washington, USA
    First Language:
    C#
    Primarily Uses:
    RMMV
    @Nohmaan next release is going to have 've prefix: name'. So if you do 've prefix: female' for an actor and they equip something that has 've image: Hat', it'll search in the folders for 'femaleHat'.

    It'll also have the option to have parts ignore prefixes by either using 've image neutral:' or setting the new sixth variable for ve image to true. (ve image neutral is exactly the same as ve image, it just sets the sixth variable to true automatically so that you don't have to write out all the zeroes :p )

    And ve prefix also works with equipment too.

    Hide layer would be a nice feature! I'll get on that.
     
    Last edited by a moderator: Nov 14, 2015
    #11
    Shinma likes this.
  12. gamerxp

    gamerxp Villager Member

    Messages:
    30
    Likes Received:
    5
    Location:
    Russia
    First Language:
    Russian
    Great! Looking forward to new updated.

    Also, tried making default equipment with One Image Per Layer, but it did not worked as I thought. Actor images got more priority, so it could not be overriden. So yeah - I difinitelly need a tag to make default equipment.

    Other thing - I wish it will check files for existence first before trying to load them. Because there are some equipment parts that are invisible on portrairts and stuff - and it's a bit annoying to create empty images for all of them. Not that critical of a problem though.

    Also, about that Hide Layer thingy... I never tried, but can you use few VE Image in same equipment? If yes - you could like... make a hat, that will Add a hat image and override hairs layer with some other hairstyle for that hat using Hide Layer feature. Probably, there are some more possibilities. Like when you want an equipment, that got few layers. For example - something like a circlet, that got horns on the forehead (just an easy-to-understand example). When you look from the back - you can see both circlet on the back of head and horns somewhere behind. But those horns should be on background layer, while circlet - on the front.
     
    #12
  13. Rexal

    Rexal Digital Fuzzball Veteran

    Messages:
    141
    Likes Received:
    256
    Location:
    Washington, USA
    First Language:
    C#
    Primarily Uses:
    RMMV
    Well, I tried to make it more compatible with Yanfly's stuff and wound up making it even less so in the long-run. Looks like I'm going to need a compatibility patch just like I had to do with my Animated Enemies script...

    But besides that...

    New Version! I did so much to it I had to bump it up to 1.1a.

    Also the demo's updated with some new things.

    @gamerxp I fixed it! Now the only file you absolutely need is one in parts/battlers called "blank", otherwise you can't battle. I don't really know why it does that, but that's how it is for now.

    Yeah, you can use as many VE Image tags as you want per equipment. And now, you can use as many VE Hide tags as you want as well.
     
    Last edited by a moderator: Nov 14, 2015
    #13
  14. gamerxp

    gamerxp Villager Member

    Messages:
    30
    Likes Received:
    5
    Location:
    Russia
    First Language:
    Russian
    Neat!

    Some bugs nad suggestions though:

    1. Bubble icons are positioned wrong when applied to actors with visual equipment.

    2. Portraits are completely erased now even when there is not tag [ve actor]

    3. Equiping stuff with events does not apply VE Hide for some reason. Using UpdateActors fixes that though.

    4. ClearVEPose does not work. Character's equipment just disappears. Also, about poses. That tag thing I suggested should be easier to use since it does not require any script calls. Well, this one got it's own advantages as well.

    5. When you use prefixes - it does not load any image at all when it can't find one with prefix. It will be much better if it will load prefixless image if it could not find image with prefix. It may be even better if you make it possible to apply few prefixes. It will try to load images in order you placed those prefixes. If not found for first prefix - it will go to the next. That's mostly same idea I suggested for actor-specific variations of equipment. Like:

    VE PREFIX: mage

    VE PREFIX: female

    So, let's say you equiped "Robe". It will first try to find mageRobe. Not found - femaleRobe. Not found - Robe.
     
    Last edited by a moderator: Nov 14, 2015
    #14
  15. Ste

    Ste Veteran Veteran

    Messages:
    38
    Likes Received:
    17
    Location:
    Parma, Italy
    First Language:
    Italian
    Primarily Uses:
    RMMV
    When I open the demo get the error:
    "Unable to read file Actor.json."

    : (
     
    #15
  16. Rexal

    Rexal Digital Fuzzball Veteran

    Messages:
    141
    Likes Received:
    256
    Location:
    Washington, USA
    First Language:
    C#
    Primarily Uses:
    RMMV
    1.1b update

    - Actor's faces without [VE Actor] no longer disappear when equipping something.
     - Balloons should be in the right spot now.
     - ClearVEPose actually works like it's supposed to now.
     - If the plugin cannot find a sprite with the desired prefix, it'll search for the prefixless one.

    @gamerpc

    1. Oh yeah, I actually ran into that kind of bug when I was first working on this. I fixed it, though now you need to have a sprite in parts/characters named blank(that's the same size as your character's sprites) in order for the balloon to be positioned properly. It might be a good idea to have a blank in parts/face as well. Seemed to improve performance from what I could tell.

    2. Fixed.

    3. VE Hide can be stubborn, but I'll look into it.

    4. Ah, whoops. That was an error on my part. It's fixed now. I want to do something better than what I have now for poses in the future, but I guess this works as a temporary solution.

    5. Getting it to load the prefix-less image was easy enough, but having it load several may be difficult. I'll look into it and see what I can do. That kind of thing would be great for classes as well...

    @Ste

    Make sure you unpack the zip before you try to open the demo.
     
    Last edited by a moderator: Nov 17, 2015
    #16
    Shinma and Ste like this.
  17. gamerxp

    gamerxp Villager Member

    Messages:
    30
    Likes Received:
    5
    Location:
    Russia
    First Language:
    Russian
    ClearVEPose still does nothing for me.
     
    #17
  18. Rexal

    Rexal Digital Fuzzball Veteran

    Messages:
    141
    Likes Received:
    256
    Location:
    Washington, USA
    First Language:
    C#
    Primarily Uses:
    RMMV
    Gah....I saved that part of the code in the wrong plugin...okay, now it should work.
     
    #18
  19. gamerxp

    gamerxp Villager Member

    Messages:
    30
    Likes Received:
    5
    Location:
    Russia
    First Language:
    Russian
    About that bubble bug. You sure fixed so bubbles now are visible on VE characters... But they are invisible now on normal chars!

    On other parts, it works pretty good now except performance. When changing poses character disappears for around 200ms when you first uses that pose. And then it lags for about 1-2 seconds after that no matter if you used it for the first time or not. Still thing it will be wise to use some cache system to preload all parts-to-be-used.

    Edit 1:

    Another problem found. If you place an event with actor's graphics and that actor is not yet shown previously - VE won't be applied to it if you won't update actors manually.

    Also, a small suggestion - can you add some options for [VE ACTOR] tag? I want to have only charset to be fully generated, but portraits should be same. For now I have to use invisible sprites for character to achieve that.

    Edit 2:

    Flash effects from Animations (and maybe from other places as well) are applied only to the first VE sprite. In my case - Body sprite.

    There also seems to be a problem with CP_Large_Sprite_Fix, that fixes the problem of larger sprites appearing below Start-type tiles. Exact problem is that overlapping part is appearing somewhere in the bottom right of the screen instead of right position. This problem occurs only with VE graphics. Don't know if it's possible to fix on your side, but will be nice if you could.

    Edit 3:

    I wonder if it's possible to make this compatible with Bust Poirtraits plugin... it will probably require compatibility patch that will replace image-loading function of plugin with generator OR generating existing faces as busts and just change the way faces are drawn in messages. Also, need to have some good way to properly exchange portraits choosen in dialogues with images for generator. Something like existing pose system, but that will automatically determinate pose from filename for example.
     
    Last edited by a moderator: Nov 22, 2015
    #19
  20. Nickel

    Nickel Veteran Veteran

    Messages:
    16
    Likes Received:
    4
    First Language:
    German
    I can confirm this. Sometimes it Shows the bubble. The most time not. I dont know why. But this plugin is very cool. I use it with the Rural Farm Pack i bought for RPG Maker VX Ace so i can have a ingame character creator :)
     
    #20

Share This Page