Difference between revisions of "Resource palette"

From Dragon Age Toolset Wiki
Jump to: navigation, search
m (fix some links)
(fix some links, add a paragraph that likely belongs somewhere else but can be stored here for now)
Line 6: Line 6:
  
 
*[[Image:IconArea.png]] [[Area]]s - An area represents a level in the game.  It has a visible model associated with it, as well as a walk-mesh (for hit-finding) and walk-grid (for path-finding).
 
*[[Image:IconArea.png]] [[Area]]s - An area represents a level in the game.  It has a visible model associated with it, as well as a walk-mesh (for hit-finding) and walk-grid (for path-finding).
**[[Image:Waypoint]]s are simple objects for marking points within an area for reference purposes.
+
**[[Waypoint]]s are simple objects for marking points within an area for reference purposes.
 
*[[Image:IconAreaList.png]] [[Area list]]s - An area list a grouping of area objects made in the toolset.  These areas are considered to be a block and will always be loaded together.  The player will be able to wander between these areas without requiring a major area transition, at least until they try to move to another area list.  
 
*[[Image:IconAreaList.png]] [[Area list]]s - An area list a grouping of area objects made in the toolset.  These areas are considered to be a block and will always be loaded together.  The player will be able to wander between these areas without requiring a major area transition, at least until they try to move to another area list.  
 
*[[Image:IconCharacter.png]] [[Character]]s - this resource is for coordinating voice-over and localization efforts, and is not used directly by game code.
 
*[[Image:IconCharacter.png]] [[Character]]s - this resource is for coordinating voice-over and localization efforts, and is not used directly by game code.
Line 13: Line 13:
 
**[[Conversation cinematics and animation]] discusses how to direct the visual performance of your virtual actors.
 
**[[Conversation cinematics and animation]] discusses how to direct the visual performance of your virtual actors.
 
*[[Image:IconCreature.png]] [[Creature]]s - Creature objects are used to represent the player's characters and every other living creature in the game.  Creatures can run actions or scripts, move, cast spells, use talents or skills and engage in combat.
 
*[[Image:IconCreature.png]] [[Creature]]s - Creature objects are used to represent the player's characters and every other living creature in the game.  Creatures can run actions or scripts, move, cast spells, use talents or skills and engage in combat.
**[[Image:Morph]]s are highly customizable heads that can be used to create an enormous diversity of unique character appearances. They are not listed in the resource palette, to create new ones go to the File menu and select "Morph" from the "New" submenu. This will bring up the morph creator tool.
+
**[[Morph]]s are highly customizable heads that can be used to create an enormous diversity of unique character appearances. They are not listed in the resource palette, to create new ones go to the File menu and select "Morph" from the "New" submenu. This will bring up the morph creator tool.
**[[Image:Creature group]]s are used when determining who is hostile to whom.
+
**[[Creature group]]s are used when determining who is hostile to whom.
**[[Image:Ambient behaviour]] determines how the creature behaves when not doing anything else in particular.
+
**[[Ambient behaviour]] determines how the creature behaves when not doing anything else in particular.
 
*[[Image:IconCutscene.png]] [[Cutscene]]s - A cutscene is a pre-determined cinematic sequence played back using the game engine.
 
*[[Image:IconCutscene.png]] [[Cutscene]]s - A cutscene is a pre-determined cinematic sequence played back using the game engine.
 
** [[cutscene object]]s
 
** [[cutscene object]]s
Line 106: Line 106:
  
 
If you wish to delete resources, make sure that all of the other resources that may have depended on it are checked in beforehand.
 
If you wish to delete resources, make sure that all of the other resources that may have depended on it are checked in beforehand.
 +
 +
== "Active" vs. "Inactive" objects ==
 +
 +
Objects are generally set active or inactive by script. Inactive objects are still accessible to script calls but have their command queues cleared. Objects placed in an area not on the current area list are not accessible by tag based searches. I don't remember if they are accessible by local objects, but it is generally best to act as if they are not accessible unless in the same area list (or a general object loaded into memory like a party member or a map or a map location).

Revision as of 16:04, 15 July 2009

The Dragon Age toolset comes with a large database containing the various resources out of which a campaign can be assembled. The resources within are for the most part 'default' objects that will require some degree of customization to make them work in the specific ways the designer wants them to.

All the resources, except the head morphs, are database resources. The files that get generated are processed files for the game.

The following classes of resource are available in the palette window (available via the View menu).

  • IconArea.png Areas - An area represents a level in the game. It has a visible model associated with it, as well as a walk-mesh (for hit-finding) and walk-grid (for path-finding).
    • Waypoints are simple objects for marking points within an area for reference purposes.
  • IconAreaList.png Area lists - An area list a grouping of area objects made in the toolset. These areas are considered to be a block and will always be loaded together. The player will be able to wander between these areas without requiring a major area transition, at least until they try to move to another area list.
  • IconCharacter.png Characters - this resource is for coordinating voice-over and localization efforts, and is not used directly by game code.
  • IconConversation.png Conversations - collections of questions, answers, statements, and other interactive activities laid out in a tree structure.
  • IconCreature.png Creatures - Creature objects are used to represent the player's characters and every other living creature in the game. Creatures can run actions or scripts, move, cast spells, use talents or skills and engage in combat.
    • Morphs are highly customizable heads that can be used to create an enormous diversity of unique character appearances. They are not listed in the resource palette, to create new ones go to the File menu and select "Morph" from the "New" submenu. This will bring up the morph creator tool.
    • Creature groups are used when determining who is hostile to whom.
    • Ambient behaviour determines how the creature behaves when not doing anything else in particular.
  • IconCutscene.png Cutscenes - A cutscene is a pre-determined cinematic sequence played back using the game engine.
  • IconItem.png Items - items that can be taken into inventory, and are often equippable by characters or otherwise usable within the game.
  • IconMap.png Maps - images of maps with location pins whose location and appearance can be scripted.
  • IconMerchant.png Merchants - where the player can buy and sell items. Often linked to a creature.
  • IconPlaceable.png Placeables - items that can't be taken into inventory. They can serve a wide variety of roles such as decoration, obstruction, or container, and the player can interact with them in various ways.
    • Doors are a type of placeable but are complex enough to warrant special treatment.
    • Trap system - placeables are used as triggers for traps.
  • IconPlot.png Plots - The plot manager maintains a list of variables that are important to the storyline. They are stored with the party and serve as a gameplay history. Each creature will also maintain a plot table of local variables that can be accessed through scripting. These can be used to keep track of player progress through quests and control journal entries.
  • IconScript.png Scripts - Scripting is used whenever the designers need control over the game's behaviour. The syntax for DA scripts is very similar to the C programming language.
  • IconClientScript.png Client scripts - The client side scripting language is meant to be used for automated testing. It's similar to the server scripting, except that it's designed to simulate client input.
  • IconStage.png Stages - a form of cinematic cutscene that's applied during a conversation to control character and camera placement.
  • IconTrigger.png Triggers - A trigger is an invisible polygonal area painted on the floor in the toolset. This game object will receive events whenever a creature enters or exits it. They are most commonly used for plot scripting in an area.
  • IconSound.png Sounds - audible sounds that can be generated by objects or scripts. These cannot be edited within the designer toolset; the FMOD utility is used for this.
  • IconModel.png Models - the basic physical appearance used by physical objects. These cannot be edited within the designer toolset, though see morphs for altering the appearance of character heads.

Checking in and checking out resources

When you open an object for the first time you will see a red banner at the top that reads "Read Only Copy - Changes can not be saved." If you wish to edit it you'll need to make a local editable copy of the object from the library, which you can do by right clicking on the object in the palette window and selecting "Check out". Objects that are checked out are indicated by a green checkmark in the palette window and a green banner at the top of the main editing window that reads "Writable copy - changes can be saved." You can now edit this copy freely. However, the edits you make won't be saved back into the database right away. This allows you to freely make and test out changes without worrying about making a mistake that damages things you've already accomplished.

You can also create a "local copy" of a resource, separating it entirely from the database. Local copies can not be checked into the game.

File:DA Audio Design Documentation Ambience Content html 336b69fa.png

Resource checkin.png

You can view a summary of the changes you've made to a checked out object by comparing it with the version in the database with the "Diff to Last Checked In" command, available by right-clicking the object in the palette window. The editing window will show the source text of the two version side by side, with added lines highlighted in green, changed lines highlighted in gray, and deleted lines highlighted in red. If you're satisfied with your changes you can apply them to the copy storied in the database by right-clicking on the object in the palette window and selecting "check in", or if you'd prefer to go back to the old version that's stored in the database select "undo check out".

Resource properties

Every resource has a set of generic properties that can be viewed by right-clicking on it in the palette window and selecting "properties". The general tab of the resulting popup window shows the following properties that can be modified:

  • Resource name - the name by which this resource is referenced internally
  • Folder - the folder within the resource database that this resource is contained within
  • Module - The type of resource (eg, a new core resource that's being included in an add-on module would be "Core Game Resources"). Normally this should either be set to Core Game Resources or it should be set to the module that the resource is in.
  • Owner module - The module that the resource actually resides in or belongs to.
  • State - A flag that can be set to NONE, Written, Edited, Pre-localization, Localization, Voice over, Voice over ready.

Resource properties.png

The "references" tab lists all of the other resources that this resource contains references to, and the "referenced by" tab lists all of the other resources that contain references to this one.

Properties will sometimes refer to "2da"s, which stands for "2-dimensional array". These contain tables of values used for a wide variety of purposes. They are stored internally as Excel files.

Creating new resources

You can create a new resource either from the "File" menu, or by right-clicking on the resource palette, and selecting "New". You'll be presented with a list of the sorts of resources that you can create.

New resource.png

Once you select a resource type to create, you'll be presented with a window where you can enter some of the basic resource properties described above. The only thing that must be filled out is ResRef Name, the name by which this resource will be known by the game engine.

Create new resource.png

!!describe fields!!

Object templates vs. object instances

A template is what is loaded into the specialized editor to define its characteristics, an instance is what is actually loaded into the game and interacted with by the player. For several resource types (creatures, placeables, items, and others) there is the opportunity to make changes to individual instances.

For example you might create a generic Hurlock template in the creature editor, with various settings for how tough it is in a fight, what sort of treasure it's carrying, and so forth. When you then set up an area and place a number of these creatures in an area for the player to fight, the creature instances will start out with all their properties set the same as the template. However, if you wish you can edit some specific properties of each instance to change it from that default. You could make one individual Hurlock tougher than its peers, perhaps add a special droppable item to its inventory, or you could choose several Hurlocks and add them to a specific team.

Only some of the properties of an object instance are editable. In the example of the Hurlock, you wouldn't be able to change the creature's appearance.

When you edit a template that has already been used to place instances of that object in an area, all of the instances you've placed will automatically be updated to match. The exception is any per-instance changes you've made, these will remain as you set them.

Moving resources between modules

To move and/or copy content in the toolset you need to either duplicate the resource and select your new module name on the new resource dialog, also change the owner module as well. Or if you want to move the area to the new module then make sure the resource is checked in and right click in the palette, select properties and change the module and owner module from there.

By moving an area to another module you may break dependancies to other resources, however. Use the resource's "properties" window to check what other resources reference it and are referenced by it to help ensure no dependencies are broken.

If the other resources are core then you are fine. But if you created a creature in single player and then places it into area 1 then moved area 1 from single player to a new module then the creature will not show up anymore unless you either move the creature to the new module as well or else move the creature to core.

Deleting resources

A resource can't be deleted while it's checked out. To delete a resource, either check the resource back in or undo the checkout first. You can then delete it by selecting it in the resource palette and right-clicking on it to get a menu with the "delete" command.

To recover a deleted resource, select the "Deleted Resources" command from the "Tools" menu. This will bring up a deleted resource browser that allows you to examine and restore deleted resources.

Dependencies

The toolset has some built-in safety mechanisms to ensure that resources don't wind up referencing nonexistent resources as dependencies. For example, it will refuse to delete a resource that another resource has as a dependency. If you had an area layout with a creature in it, you wouldn't be able to delete the creature's template from your database until you'd removed it from the area layout first.

This can interact with checked out resources in a potentially non-obvious way. If you check out the area layout and remove the creature, the toolset still won't let you delete the creature's template until you actually check in the layout. That's because if you were to delete the creature and then undo your area checkout you'd wind up with an area layout referencing a deleted creature template.

If you wish to delete resources, make sure that all of the other resources that may have depended on it are checked in beforehand.

"Active" vs. "Inactive" objects

Objects are generally set active or inactive by script. Inactive objects are still accessible to script calls but have their command queues cleared. Objects placed in an area not on the current area list are not accessible by tag based searches. I don't remember if they are accessible by local objects, but it is generally best to act as if they are not accessible unless in the same area list (or a general object loaded into memory like a party member or a map or a map location).