Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Neo Mode 07 + 8 directions + more frames

I'm sure you're all familiar with MGCaladtogel's New Mode 07 (a.k.a. Neo Mode 07) for RPG Maker XP.

I'm looking to expand upon this script by adding the following.
  • 1. Any amount of frames per character. Some characters may have four frames (the usual) while others might have eight frames, and others a single frame.
    2. Standing pose. A standing pose for characters when they are not moving.
    3. 8 directions. However, characters with four direction sprites and one direction sprites should also work.

Also, the way I want to implement this is by having two different character sets. On one character set we have the moving sprites and on the other character set we have the standing pose.

I'd greatly appreciate if anyone would help me. Of course, I'd be more than willing to collaborate. I know Ruby language. I'm a decent scripter. However, I could use some help with this, particularly some guidance. I don't really understand MGCaladtogel's script all that well.

Thank you.
 
Jbrist":1oidevit said:
Just to let you know, all three of these have been done in seperate scripts and can be found right here on the forums, you'll just need to go digging lol.

I know, but I've tried combining them and since they usually override the same classes (i.e. Game_Actor and Sprite_Actor), none of the scripts work fully right. So, I was kind of hoping someone had already done this before. This way, I won't have to do it myself. You know, no need reinventing the wheel.
 
medinastories":yr3lkjh1 said:
I'm sure you're all familiar with MGCaladtogel's New Mode 07 (a.k.a. Neo Mode 07) for RPG Maker XP.
Personally, I'm not, and while I'm sure it's a very famous script, you're doing everyone who tries to help you a big favor by linking it up - saves a few clicks either way.

That being said, I don't think the script's any important for what you're trying to do. If you're using smartly aliased scripts for your Game_Actor affecting scripts, there shouldn't really be a problem with compatibility. In general, the way to go here is trying to make the three scripts you listed above work together in a new project, and when they do, start working on making them compatible with the Mode-7 stuff - also in the new project you created, to make sure whatever compatibility error you might get is from those scripts.

medinastories":yr3lkjh1 said:
3. Any amount of directions. The usual is four, but I'd like to implement also eight directions, and one direction.
So, you're basically looking for an 8-way movement system. Having scripts that support different numbers of directions doesn't really make sense, as the amount of programming involved is ridiculous compared to the other solution: leaving unneeded frames clear. If you're using PNG as your graphic format (which you should either way), you won't suffer a single byte more of filesize, because of the format's encryption, so don't worry about that. The only imperfection you'll have is half-empty graphics.
Which kind of leads me to the next point... why exactly would you need different direction counts? I can see the single direction one (sprites might only have one required direction because they're always facing the same way, or are objects that look alike from whatever direction viewed), but you differing between 4- and 8-way kinda suggests that you want to cheap out on some sprites and only create 4-way sprites for them, while others have 8-way. If that's the case, I can only discourage you from even thinking about it - it'll be looking like a stitched-together game in the end, nevermind you getting problems with diagonal movement scripts.
 
BlueScope":e03vmk1d said:
If you're using smartly aliased scripts for your Game_Actor affecting scripts, there shouldn't really be a problem with compatibility.

Well, now that you mention, aliasing is one of the few things in Ruby I've never learned. Is there a good tutorial on aliasing?

Now, to answer your other inequities...
  • 1. I have been working this on my own. I haven't made much progress, though, since college is really kicking my ass. But thanks for your tips. I will try to work this ridiculous script my way up.

    2. Each character has two basic poses: idle and walking. When idle, a character can look forward, clockwise or counter clockwise. Thus, it's 8-directions but only 3-frames. When walking, a character has a standard of 8-directions and 8-frames. There is also a fighting stance which only has 6-frames. Get it?

    3. It's only 8-directions. What I meant to say is that a character set with a single sprite, such as a tree, should be able to appear as a single direction object, always looking straight ahead.
 
As for the aliasing tutorial... I made one not too long ago that's able to teach you the most advanced things about aliasing, utilizing the 'learning by watching' concept. After working your way through it, you know what there is to know about the topic at hand really... and I promise you it's fool-proof ^^
aliasexplanation.png
Btw, to eliminate the possibility that you might take my sentence before the spoiler as sarcastic - it's actually not. With the exception of being able to optimize the processing speed by using symbols, and other fancy-nancy shit like that, looking at this picture teaches you aliasing in a minute, without the need to read through hazzley text such as the one you're reading right now :eek::

As for your (2), I don't really get what you're talking about there... are you talking about an animated idle pose that makes the character look around when not walking? If so, this is nothing I can tell by reading what you wrote before :p In that case, you need a special handler for that in your script anyway, which allows you to iterate through 3 frames instead of 8, but still keep the graphic size the same - it should return you less clutter when cutting graphics by script.
Fighting stances can be completely independant, unless you're talking on-map battles. In that case, you'll need a special handler here as well...

All of this would be less complicated if you'd work with single images for frames, named appropriately (i.e. arthur_idle04.png), instead of tileable sheets. That's the method I usually use, even with pre-defined frame counts, however it's very potent for systems that have an unknown number of frames for different occurancies, such as yours.
The technics behind this are to draw your character graphic based on a @state variable or something, with the possible values 'walk', 'idle', 'battleidle', 'battlestrike', ...; and then draw the sprite with the appropriate @frame_count number... it looks somewhat like this in the end:
[rgss]@count += 1
unless File.exist?('root_to_your_file/' + $game_party.actors[0].name + '_' + @state + @count.to_s) # might not be working with encrypted games
  @count = 0
end
@sprite.bitmap = RPG::Cache.picture($game_party.acotrs[0].name + '_' + @state + @count.to_s)
[/rgss]

Note that I created this method for Gosu applications, meaning you'll probably have more trouble than gain implementing it in RMXP. Either way, it's a very smart way of drawing sprites IMO, as you're being completely independant from every other class and just need to be able to change the state of your actor and everything gets drawn directly if you provide the correct graphics, no matter how many frames you want for every individual animation, or how large your frames are. It's been battle-tested by me for a while now, too, and I can only recommend it.
(and yeah, I am aware that it's not a genious script invented by me and that everyone and their mother could come up with it as well :p )
 
Thank you for the advise. Also, thanks for the tutorial on aliasing. It's perfectly made.

Also, I didn't explain myself clearly. The idle pose does have three frames, but, through code you can make the character look sideways. I pictured it something like this.

Code:
actor = $game_party.actors[i]

actor.look_clockwise

actor.look_counterclockwise

actor.look_straight

So, anyhow, thanks to a tutorial at House Slasher, I've managed to do 8-directions and multiple frames. But it's still not 100% compatible with Mode 07. The aliasing I think will help.
 
not that im trying to dis the rules or anything, but when was the last time you saw some one get in trouble for necroposting/double posting? i think a month or so ago i saw someone post on a post from 2007 or 08 and all the mod said was "lol, this script hasn't been supported since 200*" <---more or less
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top