Creating a small scene between NPCs

From Chrono Compendium
Revision as of 04:25, 17 July 2005 by ZeaLitY (Talk | contribs)

Jump to: navigation, search

This tutorial will teach you how to create two NPCs, and have them talk to each other and do other actions. It is based off a scene from the modification "Chrono Trigger: Crimson Echoes."

Temporal Flux Tutorial Disclaimer

This tutorial involves Temporal Flux. Since these tutorials are not meant to augment your game, you should make a copy of your Chrono Trigger ROM for use with these instructions. This not only backs it up, but will prevent you from unnecessarily changing and overwriting your clean copy, which you probably want to still play time to time, no?

In this tutorial, you will use and learn the basic, following skills and commands:

  • Creating an NPC
  • Making an NPC face a certain way
  • Using NPC animations
  • Correctly structuring conversations and actions
  • Moving NPCs and making them disappear
  • Preventing the party from leaving the scene in progress

Getting Started

As stated above, this tutorial is based off a scene from Crimson Echoes. Specifically, we're going to have Bandeau, the ferryman who appeared at the end of Chrono Trigger, argue with the new Medina elder, a Blue Imp. After a couple animations and appeals, Bandeau will storm out, while the Blue Imp will go to the window to gaze and ponder the turn of events. The tutorial will be divided into two sections; creating the NPCs, and making them interact.

Creating the NPCs

Firstly, we need to clean up the event code for Medina Elder's House 1F {021}. Several happenings go on here, and we want to eliminate them so that they will not intrude upon our work or unnecessarily complicate it. Delete all Objects after 07. This way, only the String Index and Music (Object 00), and the Player Characters, will be the only ones left.

Fluxtut11.png

That might have seemed a little drastic, but now we're ready to make the actual NPCs. Recall that we're going to be using two here -- the Blue Imp, and Bandeau, the ferryman. Let's do Bandeau first. Create a new object (it will appear as Object 0D; don't worry). You'll see Startup / Idle, Activate, and a list of Arbitrary commands. We're only concerned with Startup / Idle at the moment, because this is what tells the game what to do the very moment you enter the room. Let's run through what to do to load him up. Use the 'command' button to make commands that you can edit to specific event functions for this list.

  • Object Coordinates - Use this to place him. Coordinates X - 6F, Y - 94 (to reference these, open the real Medina Elder's House map, fullsize, and move your mouse. In the lower right corner, digits will tell you the coordinates your mouse is currently hovering on).
  • Sprite Drawing - Under command, select Load Sprite. Type is NPC, and the NPC itself is 34 - Villager (Man).
  • Facing - This will make him face a certain direction. Under facing, put right.
  • Animation - Most NPCs in RPGs have a basic walking animation. Use animation 01, normal.
  • Return
  • End (these two terminate the Startup commands; the game would glitch otherwise)

Let's review what we should have now.

Fluxtut12.png

You can disregard the little [####] tags next to the commands; just make sure the commands are there and in that order. Congratulations! If you write memory and save, there will be a man in the Medina Elder's House. However, he won't do anything or even speak yet; let's keep going. Next, we need to create the Blue Imp. Similar to what you did to create Bandeau, let's make a new object, and give it startup commands.

  • Object Coordinates - X - 88, Y - 94 (this will put him across from Bandeau).
  • Sprite Drawing - Load Sprite, type: enemy. Use enemy C, which is a Blue Imp.
  • Facing - Put facing left; he'll look at Bandeau now.
  • Return
  • End

Okay, let's check it out.

Fluxtut13.png

There we have it; Medina Elder's House is now populated by these two. What's the next step? Why, making them speak and behave! Lock in and proceed to the next section.

Scripting NPC Interaction

Before we go on, let's review exactly what's going to happen. Bandeau and the Elder are going to exchange lines. What does this mean, exactly? Will we have to put a command on Bandeau to say something, then tell the game to switch over to the Elder, who will have a line? Actually, consider this. If the two are standing there, not moving and not voice-animated, could you tell the difference if text spoken by both of them was simply placed under one NPC's file? There'd be no way. Thus, we don't have to waste event space for both NPCs by putting their own lines in their own code. Rather, we can stack all the text on one character's code to conserve space. You'll see what I mean when we begin. Before we continue, however, we need to give our new characters lines. We'll use the strings I typed for Crimson Echoes.

In Temporal Flux 1.7, go to Dialogue (0x384650) in Strings (if 2.0 is out by the time you read this, you can just paste these as you make textbox commands). Replace lines 00-07 with the following:

00

ELDER: I'm sorry Bandeau, but I{line break} can't accept. Please understand.{null}

01

BANDEAU: Eh? But elder, there are {line break} countless Porre merchants waiting{line break} to do business here.{delay 03} Just sign the{line break} agreement, and they'll steam right in.{null}

02

ELDER: ...{delay 03}{line break} Again, no, thank you. Right now, we{line break} don't need to get involved in Zenan{line break} politics. Your ferry service is enough.{null}

03

BANDEAU: Urgh, I don't believe this...{null}

04

BANDEAU: Hey, you guys! What if{line break} riches lay in wait for your town?{line break} For free, I might add? Wouldn't you{line break} take it without a second thought?{null}

05

ELDER: Hey!! It's not for free! If I{line break} sign, we have to promise only to trade{line break} with Por...{delay 03}{instant full break} {null}

06

BANDEAU: Enough! Have it your way!{line break} But don't come crying if ticket prices{line break} take a little hike, heh heh...{null}

07

BANDEAU: ...mm, I'm in trouble now...{delay 02}{instant full break}
{null}