Jump to content
PhoenixSoul

Neon Black's Composite Characters - Issues and Gripes that need addressed...

Recommended Posts

Okay, so I've been working with this for a bit and I love that I finally have a way to customize face and sprite graphics in such a way (even if it is resource-heavy); having (finally!) the ability to add/remove adornments without having to have a massive library of pre-rendered images on hand and a lot of eventing and such, like the application of cosmetics for one instance (there's no script I've found that allows this!), or changing hairstyles, among other things, this script does wonders.

 

Now, onto the locked gate. That locked gate comes with the name, 'emotion sets'. Now, I have already, every single possible face graphic to have a four by four array of different possible emotions with every variation that these apply to. That part is fairly easy to reproduce en mass on the graphics end, but the issue I'm having is the following:

 

If I tell the engine to change the face graphic of any given composite actor from index 0 to any other index, it does NOT LOAD PROPERLY, and the result is that only one or two pieces are displayed, and this IS NOT FIXED by changing the face graphic back to index 0. This really blew the whole story line I had in mind out of the water, until I figured out that having the standard face graphics with the '$' in the filename is the culprit. Removing that from all the standard graphics for composite sprites and faces and editing the script proper to use those instead, emotion sets work properly, but then, it completely destroys the composite sprite image...leaving a blocky mess in its' wake. That is where I am shelving-level stuck and frustrated.

 

@Kayzee also uses this script, but I actually question how helpful she could be in this regard because what I am doing is far more complex and robust in comparison, though to the end user it wouldn't necessarily appear so, so I dunno. Am I screwed here? Or am I missing something so overtly simple that I'll be banging my head against the wall ('STUPID! STUPID! STUPID!') later for?

 

For reference, this here is the script in question, and yes I have version 2.1. As you'll be able to see, the author has completely abandoned their script for reasons unknown.
 

Thanks in advance for a swift reply. (or since it seems everyone think I deserve it - a swift kick to my arse lol)

Share this post


Link to post
Share on other sites

I am pretty sure having a $ in the name shouldn't do anything with faces... I have looked for anything n the default code and the script that would make the $ effect the face graphic in any way and couldn't find anything. For character sprites you need to make the sprite larger if you get rid of the $ because normally character sprite files have 8 different sprite sets in a 4x2 pattern.

 

Also: The composite sprite script can do wacky things sometimes unless all the images you use are the same size, because the size of the finished sprite is the size of whatever image it loads first. I personally changed it to use the size of the actual dummy image file the actor is st to use. If you want to do that, try changing this:
 

Spoiler



  def self.create_composite(file, folder)  ## Find and create the composite.
    path = "#{folder}#{file}"
    return unless need_comp_ref?(file, path)
    foldrs = ["Graphics/Characters/", "Graphics/Faces/"]
    Composites.constants.each_with_index do |fld, i|
      paths = "#{foldrs[i]}#{file}"
      array = Composites.images(file)
      Composites.layers do |i|
        image = array[i]
        unless @temp
          @temp = Bitmap.new("#{fld}#{image}") rescue next
          @temp.hue_change(Composites.hues(file)[i]) unless Composites.hues(file)[i].nil?
        else
          t = Bitmap.new("#{fld}#{image}") rescue next
          t.hue_change(Composites.hues(file)[i]) unless Composites.hues(file)[i].nil?
          @temp.blt(0, 0, t, t.rect)
          t.dispose; t = nil
        end
      end
      @temp = Bitmap.new unless @temp
      Composites.refreshed(file)
      @cache[paths] = Bitmap.new(@temp.width, @temp.height)
      @cache[paths].blt(0, 0, @temp, @temp.rect)
      @temp.dispose; @temp = nil
    end
    Composites.remove_temp_layers(file)
  end


 

 

into this:

 

Spoiler

  def self.create_composite(file, folder)  ## Find and create the composite.
    path = "#{folder}#{file}"
    return unless need_comp_ref?(file, path)
    foldrs = ["Graphics/Characters/", "Graphics/Faces/"]
    Composites.constants.each_with_index do |fld, i|
      paths = "#{foldrs[i]}#{file}"
      array = Composites.images(file)
      Composites.layers do |i|
        image = array[i]
        unless @temp
          @temp = Bitmap.new(paths)
          @temp.clear
        end
        t = Bitmap.new("#{fld}#{image}") rescue next
        t.hue_change(Composites.hues(file)[i]) unless Composites.hues(file)[i].nil?
        @temp.blt(0, 0, t, t.rect)
        t.dispose; t = nil
      end
      @temp = Bitmap.new unless @temp
      Composites.refreshed(file)
      @cache[paths] = Bitmap.new(@temp.width, @temp.height)
      @cache[paths].blt(0, 0, @temp, @temp.rect)
      @temp.dispose; @temp = nil
    end
    Composites.remove_temp_layers(file)
  end

 

 

Share this post


Link to post
Share on other sites

@Kayzee Have you ever seen the Game Theorist's videos with Austin (always starts out with a Gmail letter 'Dear -whomever-')?

 

Well, whether you have or not, there's one specific episode on the Wind Waker where he starts out with...

'Dear Nintendo...
WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGH!!!!'

 

I can tell you, right now... this is my exact emotions...

Because I have graphic layer issues due to one layer only looking translucent but is actually opaque when used.
I have a set of emotions that are designed to be used when that actor is afflicted by a certain set of ailments including one for Knockdown (the death equivalent), and the Knockdown one is supposed to have a gray overlay that grays out the features somewhat, but somehow, the script makes the overlay opaque. It does this whether or not the $ is in the filename, but lately, RPG Maker has been doing some weird things, and I think my hardware is to blame for it all. It's time for an upgrade and I don't know how to do it!!!!

 

Ah, well...Guess I'll ride this until the wheels fall off, the transmissy drops and the engine block cracks...

Share this post


Link to post
Share on other sites

I most definitely corrected that. Somehow, that semi-transparent layer was on every single image instead of just one. It's almost as if GCH forgot to UNTICK THE LAYER UP TOP when I told it to.

 

It kept me up all night, and now I've got offline things to do with less than a full night's rest.

If I get to my art at all today, I'll be lucky...

 

But yeah, I think this is no longer an issue. I hope it doesn't come up again.......Ugh.

 

Also, FTR, what did that little script editing do?

Share this post


Link to post
Share on other sites

It just is something that makes the size of the composite based on the size of the $hero image, because otherwise the size is based on the first image it happens to load so you basically have to make all the composite images the same size. I wasn't sure if that could be part of the problem for you, but I guess not. My game for one needs to do that because the way I do skin tones involves bigger images. In my game if the image loaded is wider then the base image, it will use different parts of it based on skin tone. It's handy because I can have alternative sprites for any part that shows skin.

Share this post


Link to post
Share on other sites

Hmmm...
Since I used the demo image for the $Hero image, if I made that edit, it would do something (not good I'm sure) because the composite sprite image layers are XP height (Looseleaf).

 

Anyway...

 

Spoiler

BaseFair.png

 

 

Spoiler

Body Fair F.png

 

Edited by PhoenixSoul

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×