03 May 2009

Windowskins

While playing around with the Windowskin Generator I mentioned in a previous entry, I've created some cool Windowskins for use in games.

Old Leather Windowskin



Oceanic Windowskin



Grassy Windowskin



To change the default "Window" skin to one of these ones, right-click to save them onto the hard drive. Import them into RMVX and look in Window_Base for the following:
self.windowskin = Cache.system("Window")
It should be on line 21 by default. Simply replace the default file name with one of the others to use the new windowskin.
02 May 2009

Change Parallax Script

One of many features disabled in RMVX is the ability to change the Parallaxes, which was available in RMXP (and RM2K/3 before that) directly from the Event Commands. Parallaxes are graphics (usually of clouds or distant landscapes) that can scroll behind a map. While it is possible to set the parallax graphic in the map settings only, this "one parallax per map" rule is rather annoying.

As I start learning RGSS, the scripting language used by RMXP and RMVX, and familiarize myself with its nuances, being able to find workarounds and tweaks is half the fun.

A simple but effective (and certainly not perfect) method for changing parallaxes is with a small script.

  • Look in the Game_Map section of the scripts for Scroll Setup and Parallax Background Setup.
  • Place the following between these two sections:
    #----------------------------------------------
    # * Parallax Presetup - Change Parallax
    #----------------------------------------------
    def change_parallax(parallax_name)
        case parallax_name
        when 1
          @parallax_name = "BlueSky"
        when 2
          @parallax_name = "CloudySky"
        when 3
          @parallax_name = "Mountains"
        when 4
          @parallax_name = "Ocean"
        when 5
          @parallax_name = "StarlitSky"
        when 6
          @parallax_name = "Sunset"
        end
      end
    Add any other imported Parallax graphics by adding more "when" commands accordingly. Note: New parallax graphics must be first imported into RMVX under Graphics/Parallaxes.
  • To use an event to change the parallax graphic, use the Script function and place the following:
    $game_map.change_parallax(x)
    where x is the number corresponding to the desired parallax.

Note: With this method, if the Loop Coordinates aren't set directly on the map (via the Map Properties), the parallax will remain static. By changing the Horizontal Loop and/or Vertical Loop settings here it will make the parallax graphic scroll in the background.

Windowskin Generator

There haven't been many updates recently because I've been offline for the past three or so weeks. Our ISP decided to double their monthly fees overnight and without telling us, then demanded that we pay around $400 to reconnect. And they would only accept the full amount before reconnecting. (I wanted to pay them direct at their office with an envelope full of leaves, since "money grows on trees" apparently!)

Anyway, moving on...

I found this awesome and very useful utility. It's a Windowskin Generator for RMVX and it works!

The idea behind this is to make Windowskin creation easy by selecting various parts and applying them to the skin. It even has a preview area where you can see what the resultant image will look like! Once you're done, the finished product can be saved and imported into RMVX for use in your games.

Read a mini-review here or download it directly here, then extract it to the RMVX Projects folder (using WinRar or Winzip) and open it up in the RMVX program.

It can be run directly from RMVX or as a standalone program. If used as standalone, the RGSS2002e.dll may be needed. Information on creating and running standalone games (including downloading the appropriate files) can be found on the RPG RPG Revolution forum.
30 March 2009

Resource Converting

Because of the different formats used by the RPG Maker programs, it isn't possible to port resources over from RMXP to RMVX without first tweaking them. Otherwise, there will be some very strange side-effects. So, if you've created some really cool character sets for RMXP, they wouldn't automatically work in RMVX.

Thankfully, there are some nice utilities that make conversion easy.

  • RMVX Characterset Converter (RMVX): This awesome utility makes it possible to convert RMXP character sets to RMVX format, which can then be saved as BMP, JPG or PNG formats. You can even convert those old RM2K/3 charsets to RMVX formats. It can be downloaded here (download not available).
  • RM2K/3-To-RMXP Resource Converter (RMXP): As the title suggests, this utility converts those old RPG Maker 2000/3 resources to RMXP. I've used this on numerous occasions to make games compatible with RMXP. Note: When using this program, be sure to select the GAME folder for the resources to convert, NOT the resource folder itself. The utility can be downloaded from Kobra's Realm (download not available).
  • Charas.EX (RM2K/3): This utility allows you to create charsets from scratch or modify existing charsets. Although the utility is specifically for RM2K/3, charsets can be converted using the two utilities above. The program can be downloaded from Kobra's Realm (website not available) or charsets can be developed online at Charas Project.
  • RMXP Resource Wizard (RMXP): This program, in my opinion, is the definitive RM2K/3 to RMXP converter. With it, you can convert any RM2K/3 resource into a compatible RMXP format. You can download it from RPG Crisis (you will need a membership to access the file).

These are the only good resource converters I know about, but if I find (and test) any more I'll add them.
26 February 2009

Create Your Own Resources Online

If you're not a great graphic artist, like me, there are several websites that allow you to create your own, thus:

  • Character Sprite Generator (RMXP) - No longer available! This is an effective character creator, but is extremely limited on extras. I don't think it's been updated for a while either.
  • Chibi KYARATSUKURU (RMXP) - This is a more comprehensive character maker, Google-translated into English from its original Japanese version. I love creating characters here, even if none of them ever make it into games!
  • RPG Material - Character Generation (RMVX) - This is the ultimate RMVX character creator (and the only one as far as I know). Not only can you create your own characters by setting a series of options, but you can randomize characters. The output even has the appropriate facesets to use too!
  • RPG Material - Roof Chipset Maker (RMXP/RMVX) - No longer available! With this nifty resource tool, you can create your own rooftops for the main chipsets by manipulating a few options or randomizing them. The roof outputs can become part of the map chipsets.

While these are the best resources for creating RMXP/RMVX chipsets conveniently online, there are several methods for character sets and chipsets from older versions of RPG Maker compatible with RMXP/RMVX. I'll cover that in a future entry.
18 January 2009

RMXP Compatibility with Vista

One of the commonest questions I'm asked is whether RMXP is compatible with Windows Vista. The simple answer is "Yes and No". Rather than attempting to use RMXP on Vista (better in my opinion though it is), it's better to use RMVX for Vista machines.

One of the problems with Vista is that it is extremely buggy and is known for its incompatibility issues. Running RMXP on Vista machines is possible, but not without endless hours tweaking certain system settings so that it can at least work half the time.

A common problem is that RMXP seems to work, but then suddenly freezes at any point (usually when playtesting games) or it will produce some obscure error message. Usually when this happens, it's due to compatibility issues (either with the system itself or hardware conflicts).

One workaround is to make sure you have full Admin rights and change its permission to "Run compatibility mode for XP SP2". To set these options, this link will help. If there are any messages for updates, it's probably prudent to download and install them.

To determine whether RMXP will be compatible with your Vista system, you can check at the Microsoft Compatibility Check. Hopefully this should help run RMXP on Vista machines.

Create Your Own Characters

If you've ever wanted to create your own charsets for RM2K/3, but (like me) are not an artist, there are several resources available for doing just that. These are the best ones I've found:

  • Chara.EX - This is probably the best known site in the RM2K/3 community. Not only can you design characters online and save them onto your hard drive, you can also download an offline version too. Creating charsets with either method is quick, easy and fun.
  • Character Maker 1999 - With this neat program, you can edit any resource for RM2K/3, including adding status effects (if you know about transparencies). This program can also be used for producing resources for RMXP and RMVX.

Other programs that are useful for creating resources are:

  • Irfanview - This program is useful for cropping images and correcting transparency issues. In some games, it is possible to take snapshots, pasting and cropping them in Irfanview, then copying the cropped image and pasting the result in Character Maker 1999 to be further modified.
  • Paint Shop Pro - Now owned by Corel, Paint Shop Pro is the editor to use for more complex designs, but I'd recommend using version 7.04 (if you can find it) rather than the latest version, as it is cumbersome and unnecessarily complex. I usually use this program to design the Title and Game Over screens, then use Irfanview for final size modification.
17 January 2009

Create Your Own Resources

Sometimes the resources that come with RMXP are not enough and you might want to create your own. There are several websites and programs that allow such customization, thus:


Utilities

  • Dan's RMXP Tool - A useful tool for inspiration, which allows you to create names, titles, items, etc.
  • Move Event - This utility helps with programming complex character movements, which can otherwise be very tedious.
  • Character Maker - Allows the creation of sprites and character sets. (While this program is limited on features, some cool character sets can still be made from it.)
  • Face Maker - What's a character set without a matching face? This helps in creating such facesets for message boxes. (To download, you'll have to become a member of the forum, but it's well worth it!)

Online Creators

  • Character Sprite Generator - A good sprite/character maker for RMXP, but with limited resources. You can change the hair, eyes, clothing, etc.

8-Directional Movement (2K3)

This is a simple method for moving in 8 directions, rather than the standard 4 (up, down, left and right). This is not the best method, but it is workable, using the keypad, which means that Numlock must be on.

Knowledge Base

  • Common Events
  • Forks/Branch Conditions
  • Variables


Variables

We'll only need one variable for the movement system, 0001:Dir Move.

Common Events

Open the Database (F9) and create a new Common Event, 8-Dir Movement and set the "Trigger" to "Parallel Process". This means that it will run in the background until one of the movement keys is pressed. Leave the "Switch" blank.

In the "Event Commands" section, place the following commands:

  • First create a "Loop" (Tab 3), into which everything will be placed.
    <>Loop
    <>
    : <>End Loop
  • Next, we'll need to define the "Key Input Processing" (Tab 3), which will be stored in our variable 0001:Dir Move. Make sure the "Wait Until Key Pressed" option is checked and only the "Number Keys 0-9 (10-19)" is checked as well.

    <>Key Input Proc: [0001:Dir Move]

  • This is where things could become rather confusing, but it's not really that hard. Create 8 "Branch Conditions" with the "Else" option checked for each.

    Set the first condition to "Variable 0001:Dir Move, Number Equal To 11 (the numerical value for 1, i.e. down/left).
    <>Branch if Var [0001:Dir Move] is 11
    <>
    : Else Handler
    <>
    : End

    Under the "Branch if" create a "Move Event" (Tab 2) and set the movement to down/left using the "Move Down/Left", setting the "Move Event" to "Hero" (usually selected by default).

    <>Branch if Var [0001:Dir Move] is 11
    <>Move Event: Hero, Move Down/Left
    : Else Handler
    <>
    : End

    Under the "Else Handler", repeat the process, but change the variable number and movement in the "Move Event" command to correspond with the direction (i.e. with the second fork, the "Variable" would be set to 12 and the direction to "Down", but ignoring number 15. Continue all the way up to 19.
  • Finally, in the last "Else Handler" insert a "Break Loop" command (Tab 3).

Complete Code

<>Loop
<>Key Input Proc: [0001:Dir Move]
<>Branch if Var [0001:Dir Move] is 11
<>Move Event: Hero, Move Down/Left
: Else Handler
<>Branch if Var [0001:Dir Move] is 12
<>Move Event: Hero, Move Down
: Else Handler
<>Branch if Var [0001:Dir Move] is 13
<>Move Event: Hero, Move Down/Right
: Else Handler
<>Branch if Var [0001:Dir Move] is 14
<>Move Event: Hero, Move Left
: Else Handler
<>Branch if Var [0001:Dir Move] is 16
<>Move Event: Hero, Move Right
: Else Handler
<>Branch if Var [0001:Dir Move] is 17
<>Move Event: Hero, Move Up/Left
: Else Handler
<>Branch if Var [0001:Dir Move] is 18
<>Move Event: Hero, Move Up
: Else Handler
<>Branch if Var [0001:Dir Move] is 19
<>Move Event: Hero, Move Up/Right
: Else Handler
<>Break Loop
: End
: End
: End
: End
: End
: End
: End
: End
: End Loop

Notes

The downside to this method is that only the default movement keys (up, down, left and right) will repeat if they are held down. The other keys will need to be continuously pressed in order to move in that direction.
30 December 2008

Final Fantasy Mystic Quest Battlefield System Tutorial

FFMQ Battlefield Demo
Notice: As of 12 November 2009, this entry has been modified for use with RM2K3 (v1.08). It should be easy to adapt for earlier versions or RM2K. A demo is also available (as requested by Drake) from the panel on the right.

This tutorial teaches how to set up a multi battle system similar to the one used in Final Fantasy Mystic Quest, where you can clear out certain areas (represented by crossed swords in the game). It's a simple method that can easily be adapted for your game.

Knowledge Base

  • Common Events
  • Switches
  • Variables

Variables

Set up 3 Variables: Randomize, Num Battles and Battles Left. In this example, the variables are set to 1, 2 and 3 respectively.

Common Events

We will only need one Common Event for this (set up in the Database). Let's call it "Battle Check" and set its "Trigger" to "Call".

In the "Events Conditions":
  • Create a Conditional Branch (with an Else Handler) to check if the variable "Battles Left" is set to zero.
  • Under the Conditional Branch, create a message stating that the monsters have been cleared out.
  • Change the Switch "Cleared Out 1" to ON.
  • Then, under the Else Handler, create another message to display how many battles are remaining. We do this by adding the variable switch, \V[x], where x is the number of the "Battles Left" variable (in this case set to 3).
<>Branch if Var [0003:Battles Left] is 0
  <>Message:Monsters cleared out!
  <>Switch Operation:[0001:Cleared Out 1] ON
  <>
: Else Handler
  <>Message:Only \V[3] more battles left.
  <>
:End
<>

The Map

On the map (where you'd like the multi battles) to take place, we'll need to create several events. For this tutorial we'll only use one battlefield event, but you can modify it for more than one battlefield event.

Events


Inn Event
The first is called "Inn" for this tutorial. This is so that you can save or restore HP in between battles. Set the "Trigger Condition" to "Action Key" and the "Event Layer" to "Below".

  • Create a message saying, "What would you like to do?" or something similar.
  • Show Choices, with the options set as "Restore", "Save" and "Exit".
  • Under the "Rest Handler", set the screen tone to all zeroes with a wait time of 0.3s, Complete Healing, create a message that all HP and MP have been restored, and set the screen tone back to normal with a wait time of 0.3s.
  • Under the "Save Handler", open the Save Menu.
  • For the "Exit Handler", just leave blank.
<>Message:What would you like to do?
<>Show Choices: Rest/Save/Exit
: [Rest] Handler
  <>Tint Screen:[R000,G000,B000,S000],0.3 Sec (Wait)
  <>Full Heal: Entire Party
  <>Message:HP and MP Restored.
  <>Tint Screen[R100,G100,B100,S100],0.3 Sec(Wait)
  <>
:[Save] Handler
  <>Open Save Menu
  <>
:[Exit] Case
  <>
:END Case
<>

Battle Event
The next event is "Battle 1" (or something else to your liking), which is where the battles will take place until the monsters are cleared out. Set the "Trigger Condition" to "Touched By Hero" and the "Event Layer" to "Below Hero".

  • Change the variable "Randomize" to a random number between 1 and 3.
  • Next we will create 3 Condition Branch, each with a different number from 1 through 3. This is to make random monster parties. For this tutorial, we'll use the default Monster Groups: Plains 1, Forest 1 and Desert 1.
  • In the first Conditional Branch, which is based on the variable "Randomize" being set to the "same" as 1, start a combat with Plains 1 being set, with the "Defeat Handler" set to "Execute Custom Handler".
  • Under the "Victory" condition, set the variable "Battles Left" to subtract 1, then call "Battle Check".
  • Under the "Defeat" condition, set a message to display the final score, using the \V commands for the values stored in the "Battles Fought" and "Battles Left" variables. Also create a "Game Over" command here.
  • Finally, create a new page and make the &quout;Event Conditions" so that the Switch &quout;Cleared Out 1" is ON. This way, once all the monsters have been defeated there won't be any more.

Do the same thing with the other two Conditional Branches, changing the monster party and increasing the value of Randomize each time. The full code should look something like this:
<>Variable Oper: [0001:Randomize] Set, Rnd [1-3]
<>Branch if Var [0001:Randomize] is 1
  <>Enemy Encounter: Normal, Plains 1
    : Victory Handler
      <>Variable Oper:[0003:Battles Left] - , 1
      <>Call Event: Battle Check
      <>
    : Defeat Handler
      <>Message: Final Score
      :       \V[3] left out of \V[2]
      <>Game Over
      <>
    :END Case
    <>
  : ELSE Case
    <>Branch if Var [0001:Randomize] is 2
      <>Enemy Encounter: Normal, Forest 1
      : Victory Handler
        <>Variable Oper:[0003:Battles Left] - , 1
        <>Call Event: Battle Check
        <>
      : Defeat Handler
        <>Message: Final Score
        :       \V[3] left out of \V[2]
        <>Game Over
        <>
      :END Case
      <>
    : ELSE Case
      <>Branch if Var [0001:Randomize] is 3
        <>Enemy Encounter: Normal, Desert 1
        : Victory Handler
        <>Variable Ch:[xxxx:Battles Left] - , 1
        <>Call Event: Battle Check
        <>
      : DEFEAT
        <>Messg:Final Score
        :  :\V[3] left out of \V[2]
        <>Game Over
        <>
      :END Case
      <>
    :END Case
    <>
  :END Case
  <>
:END Case
<>

Set the "Event Graphics" to whatever you want for the Inn and Battlefield.


Pre-Define Event
The final event is to pre-define the starting variables.

Make a blank event in one corner with 2 pages. Set the "Trigger Condition" to "Auto-Start".

Page 1
In the "Event Commands":
  • Change the "Num Battles" variable to "Other" then the number of battles.
  • Change the "Battles Left" variable set to 5 (although you can increase or decrease this amount according to your preference).
  • Change the Switch "Battle Setup" to ON.

Page 2
Change the Switch (under "Preconditions") to "Battle Setup" and make sure the "Trigger Condition" is set to "Action Key". That way it won't keep repeating the event.


Modifications

Since this is only a one multi-battle event, you could easily add more by adding more variables (Battle 2, Battle 3, etc.) and changing the command preferences for each.

Rather than having an autostarting event that predefines the variables, you could make it a "Call Event" instead. That way, you can call it after a victory rather than having to rely on a switch to toggle it on/off.

You could also add a reward after all the monsters have been defeated, such as gold or a "special" item.
Related Posts with Thumbnails
Template Design "Perfect World" by SkinCorner