[VXA] Composite Graphics / Visual Equipment

0 Members and 1 Guest are viewing this topic.

*
Rep: +0/-0Level 46
RMRK Junior
Hello I wanted to know your policy for use of your scrips in commercial projects. I have not got very far in my project but I wanted to know what are the requirements for using your scripts in commercial projects in case I need them since your scripts seem very useful. Thanks.

**
Rep: +0/-0Level 44
Evented AI
Hey MA, there seems to be a small incompatibility with Yami's Battle Symphony. In the battle itself it works suprisingly well, but after every Aftermath when the game returns to the map there is a resource error, if one of the actors makes use of your script.

In my experience a possible fix is usually really obvious when it comes to incompatibility issues, but this one really gives me headaches.  :'(

I am currently using it together with Victors Visual Equipment, because for some strange reason the presence of his script prevents the error from occuring. But sadly this leads to other serious bugs. If I find a real solution by myself, I will let you know.

The error:
Unable to find file:
Graphics/Characters/$macgve_WGUQcxmHpkcilaRrDc5izjix_1

Anyways, thank you for being awesome.  :D

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
The problem is probably that the bitmap is disposed by the battle system after battle.

Sorry, give me a second.

EDIT::

Alright, I updated the script to 1.0.1. You can retrieve it from Pastebin. That error should be fixed, if my guess was right as to the problem. I wasn't able to quickly find the script you referred to, so I haven't looked at it. If it still doesn't work, then I'll need a link to the script you are talking about.
« Last Edit: January 14, 2013, 12:59:04 AM by modern algebra »

**
Rep: +0/-0Level 44
Evented AI
Wow, thanks. You are SERIOUSLY AWESOME.

It seems to work! Don't have so much time to test it currently since it's my brother's birthday today, but it hasn't crashed after the aftermath, so you did a great and fast job once again.  ;D

Btw I'm looking forward to contribute a few scripts in the near feature and rmrk will be my favorite place to do so.

Cya and thanks again.  ;8

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Glad to hear it!

Let me know if you encounter any further problems.

**
Rep: +0/-0Level 54
RMRK Junior
Hi, I've noticed a little problem that's keeping me from pulling off an event. Well, the ability to make an event duplicate the player works fine, but then if I add a composite graphic to the player then the copy events stay the same. Is there any way I could get them to update with the player?
Basically I'm trying to set up a preview screen for a character creator which contains a picture of the player standing in all directions so you can properly see how things look on them. But the code for event duplication has to be within the event, so when I'm calling the 'add [eyes/hair/whatever]' code via a separate autorun event there isn't a code I can stick in too to refresh the duplicate events. Aka I can't just stick the script call in to be activated and change them when you hit Z on the events, cos that wouldn't make all three of them plus the actual player sprite all update simulataneously.. plus it'd ruin immersion if you had to run around on a character creator instead of selecting choices XD
Gah, hope I explained it properly, I suck at this! XD

A girl on each arm... the life of a cookie is never boring!
.:: TOTAL NEWBIE ::.
Divided between ideas for a norse mythology game and a sandbox romp through an original setting...
Gathering resources and learning in preparation!!
My deviantART account: bunni89.deviantart.com

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Would it be possible just to make each of the player events have two pages, each identical except with the second requiring some switch. Then, after you change the graphic, you could toggle the switch (turn it off if it's on and turn it on when it's off). That should update the sprites of the events as well.

That's a pretty gamey solution, I admit, but the alternative is messy and I am not sure when I would have time to implement it.

**
Rep: +0/-0Level 54
RMRK Junior
Thank you! That should work fine and I don't mind if its awkward as long as you don't have to do more work XD
May I say once again that this is a super awesome script that's so darn handy!! :3
Strange hypothetical idea though.. maybe some way to save a composite graphic as its own spritesheet? That'd be a neat bonus feature, so you could save a sheet of your character in whichever outfit is your fave, and then use that in other games. (It'd be most useful for my character-creator, so people could take whatever guy they customized in my game and use them in their own projects.) I reckon that'd be really hard to do though, so don't worry about it, I just wanted to make the suggestion since it popped into my head XD

A girl on each arm... the life of a cookie is never boring!
.:: TOTAL NEWBIE ::.
Divided between ideas for a norse mythology game and a sandbox romp through an original setting...
Gathering resources and learning in preparation!!
My deviantART account: bunni89.deviantart.com

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
It wouldn't be too hard actually. I am sure there are some scripts out there that can save a bitmap as a png; I would just need to integrate that. I'll look into it when I can find the time.

pokeball TDSOffline
***
Rep:
Level 84
-T D S-
Silver - GIAW 11 (Hard)Silver - Game In A Week VII
You could use this one, or at least use it as a base to build upon.

http://cacaosoft.web.fc2.com/tkool/script/rgss3/save_bitmap.html

It's very easy to use and allows you save in many formats. I am not sure about cacaosoft terms about editing, but I think it should be okay to add the functions as an expansion to the script and require the save bitmap one for them.

**
Rep: +0/-0Level 38
RMRK Junior
Hi, this script works only for the character walk or works too for animations such as running, crouching, jumping, waving, etc?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
No, not really. It will normally work only for walking. If you want it to work for other animations, you'd (a) need to make the graphics fit those other sprites; and (b) modify this script so that all the graphics change when the main sprite does.

**
Rep: +0/-0Level 38
RMRK Junior
I figured that.  :P

If you don't mind, could you tell me which parts of the script I have to edit to add new types of animations?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
It would depend very much on however you're choosing to do the animations. If you're using a script which does it by adding, for instance, extensions to the name of the file, then you would need to do it in an entirely different way than if you're just using events.

**
Rep: +0/-0Level 38
RMRK Junior
I dont know how works the script, I haven't seen in depth (yet). I wanted to use it with this other script yours:

http://rmrk.net/index.php/topic,46822.0.html

Correct me if I'm wrong, but I think you create bitmaps (Bitmap.new) that show the images of the characters and objects they have equipped, right?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Yes, it basically draws charactersets with the equipment on to a base sprite.

It'll work fine with the Extra Movement Frames script as long as you have the graphics for it.

But that script doesn't do crouching, jumping, dashing, etc.

**
Rep: +0/-0Level 38
RMRK Junior
So, in the same way, I could change the sprite base by one crouching and the script change the items loads in a bitmap by ones that I have created for a crouching sprite, right?

It is easy to modify in your script?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Well, no, it would be tough to do that.

**
Rep: +0/-0Level 38
RMRK Junior
Mmm, I'll have to make one from 0 that suits what I need. As I did with the inventory grids. :P

Thanks for the help. :)

**
Rep: +0/-0Level 38
RMRK Junior
I get this error if I use Extra Movement Frames and this script:

http://rmrk.net/index.php/topic,46822.0.html



And I have a question.

I'm trying to make some sprites are used for different animations, ie some to walk and other sprites for crouch down, for example.

I have thought of a way that could be quickly and easily modified.

When you add weapons or armor notebox this:

\cc["filename", i0, h0, o255, z0, r0]

In "filename" could also include if you are crouching, walking, running, etc.. because "filename" would read character_name. Let me explain with an example:

You have "Actor1[walk]" and "Actor1[run]". And you also have "Armor[walk]" and "Armor[run]". The armor would have notebox:

\cc0["Armor[walk]"], 0]
\cc0["Armor[run]"], 0]

And when the player is equipped with the object or add \cc[ar1] to an event, it would read the player or event character_name and would check if you put walking, crouching or whatever. That way, the script would choose the sprite \cc0["Armor[walk]"], 0] or \cc0["Armor[run]"], 0].

It would have to add another thing, every time you change the sprite in "change player graphic", "graphic change" or whatever, the script should check again the objects you (or event) have equipped to see which it changes now. For example, if I was walking and then changes to run, armor sprites have equipped will have to change \cc0["Armor[walk]"] to \cc0["Armor[run]"], 0]

Do you think an easy way to implement? Or can you occur of a better way?

Sorry for my English, isn't my first language.
« Last Edit: June 23, 2013, 09:27:40 PM by Duende »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Well, it can certainly be done. You would need to use Regular Expressions when composing the character to exclude all poses but the current one.

There might be some duplication though, since conceivably some parts would be the same for running and walking, and the way you suggest would require you to make two character sheets holding the same pieces.

Another way to do it might simply be to create a new group for each pose, and simply directly identify it that way. Something like:

run = {
\cc0["Armor[run]"], 0]
}
walk = {
\cc0["Armor[walk]"], 0]
}

If you did it that way though, it might be better just to use numbers for each pose instead, similar to the way types are used.

As for the compatibility error with Extra Movement Frames, I will have to look into that, but probably won't have time to do so for at least another month or two.

**
Rep: +0/-0Level 38
RMRK Junior
Hello modern algebra,

I have taken a long time to respond, sorry.

The 864 line error: undefined method `empty? 'for nil: NilClass, it's weird, because it happens sometimes.

I've been trying to do that I mentioned in the post above and I have questions about your code.

When the game is running, load all composite weapons and armors in cache? I guess this is where reading the notebox of weapons and armors:

Code: [Select]
    def self.interpret_composite_graphic_string(string, cg = MA_Composite_Graphic.new("", 0, 0, 255, 0, 0))
      if cg.is_a?(Hash)
        string.sub!(/["'](.+)["']/) { cg[:filename] = $1;    "" } # Filename: ""
        string.sub!(/[Zz](-?\d+)/) { cg[:z] = $1.to_i;       "" } # Z:         0
        string.sub!(/[Hh](\d+)/)   { cg[:hue] = $1.to_i;     "" } # Hue:       0
        string.sub!(/[Oo](\d+)/)   { cg[:opacity] = $1.to_i; "" } # Opacity: 255
        string.sub!(/[Rr](\d+)/)   { cg[:rcode] = $1.to_i;   "" } # R-Code:    0
        string.sub!(/[Ii]?(\d+)/)  { cg[:index] = $1.to_i;   "" } # Index:     0
      elsif cg.is_a?(MA_Composite_Graphic)
        string.sub!(/["'](.+)["']/) { cg.filename = $1;     "" }  # Filename: ""
        string.sub!(/[Zz](-?\d+)/)  { cg.z = $1.to_i;       "" }  # Z:         0
        string.sub!(/[Hh](\d+)/)    { cg.hue = $1.to_i;     "" }  # Hue:       0
        string.sub!(/[Oo](\d+)/)    { cg.opacity = $1.to_i; "" }  # Opacity: 255
        string.sub!(/[Rr](\d+)/)    { cg.rcode = $1.to_i;   "" }  # R-Code:    0
        string.sub!(/[Ii]?(\d+)/)   { cg.index = $1.to_i;   "" }  # Index:     0
      end
      cg
    end

If when running the game reads the notebox and is cached, it will be very difficult to modify the code to change equipped items when you change the sprite of the character or event.

Another question. I added several msgbox_p in the code to try understand how it works and also know where I could read the character_name the actor or event. (To do what I said in the post above).

I thought that could do it here:

Code: [Select]
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Add Composite Character/Face
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def macgve_add_cg(type, arg = {})
    case arg
    when String then cg = RPG::MACGVE_Data_CompositeGraphic.interpret_composite_graphic_string(arg)
    when Hash
      cg = MA_Composite_Graphic.new("", 0, 0, 255, 0, 0)
      arg.each_pair(key, value) { cg.send(:"#{key}=", value) }
    when MA_Composite_Graphic then cg = arg
    else
      return
    end
    send(:"base_composite_#{type}") << cg
    $game_player.refresh
  end

Here you call the function that reads the notebox, and as you are in Game_Actor, you can pass as an argument the character_name the actor or event and then use it when you read the filename of weapon or armor notebox. To know what must load.

I do not know if I have explained well.

Thanks for your help. :)

****
Rep:
Level 41
Somewhat got a project? (\ô/)
GIAW 14: ParticipantParticipant - GIAW 11
Well this would be really cool to use, but how hard is it to use?
I'm not really the best scripter, so I can only do basic stuff. ;) But another great question I got 3 different character sizes and a sideview battle by Yanfly, did this script work anyway? :)

**
Rep: +0/-0Level 38
RMRK Junior
Well this would be really cool to use, but how hard is it to use?
It is not difficult to use, just read the instructions and you will see it is not hard.

I'm not really the best scripter, so I can only do basic stuff. ;) But another great question I got 3 different character sizes and a sideview battle by Yanfly, did this script work anyway? :)
The sideview battle by Yanfly, I do not know how it is, but that of the 3 sizes you can do the following way.

If you have 3 characters with different clothing sizes, and sprites of clothes of 3 sizes, you only must put in armor notebox, for example:

\cc1["sprite small cloth", i0, h0, o255, z0, r0] for the small size.
\cc2["sprite medium cloth", i0, h0, o255, z0, r0] for the medium size.
\cc3["sprite large cloth", i0, h0, o255, z0, r0] for the large size.

And then in the notebox of each character, add:

\ct[1] if you use small size sprite.
\ct[2] if you use medium size sprite.
\ct[3] if you use large size sprite.

(What is in cursive not added.)

But if your characters do some animation, in addition to walking, this will not work. Is what I'm trying to make with the help of modern algebra.

I hope I explained well.

****
Rep:
Level 41
Somewhat got a project? (\ô/)
GIAW 14: ParticipantParticipant - GIAW 11
(What is in cursive not added.)
But if your characters do some animation, in addition to walking, this will not work. Is what I'm trying to make with the help of modern algebra.
I hope I explained well.
That I don't have to use what's cursive I know. ;)
I can also resize menus and place them new too, but that is really basic I guess. ;)
I couldn't do such great work as Modern Algebra does. My characters has no extra animations and you explained it really well.
Thank you for the great help. (\s/)