Tool:Animation Editor

From Post-Apocalyptic RPG wiki

Jump to: navigation, search

This article contains all information that is related to an animation editor tool for PARPG.

Contents

Purpose of the tool

Automate steps for getting rendered images of 3d models into the game.

Target audience

Graphics department. No specific programming background should be required to use the tool.

Target platforms

Cross platform: Win32, Linux and possibly Mac. Mac support obviously depends on having an active maintainer on the team who could test the tool on this platform. Nevertheless any 3rd party libraries that are planned to be used for this tool for be available for the platforms mentioned above.

Functionality

The following tasks should be performed by the tool.

Rendering script

Some tasks could be automated via a rendering script, written in the programming language that the 3d modeling package of choice supports. This might be tricky as our artists are currently using a bunch of different 3d modeling packages: Blender, 3dsMax, XSI SoftImage.

The following tasks should be performed by it:

Features

  • Ensure that the correct rendering setup is used to render the animation
  • Automatically rotate and render the model in 45 degree steps, starting at 0 degrees (polar coordinate system)

Animation editor

The animation editor itself would be a graphical tool that automates the process of getting animations into the game by creating valid XML files that FIFE / PARPG can parse.

Features

  • Filename / directory structure check: move the files into the right directories and rename them to follow the agreed upon filename scheme
  • Boilerplate code creation: create necessary boilerplate code in every XML file
  • The GUI should offer editing abilities for the following agent parameters:
    • id: ID of the object, e.g. "PlayerCharacter"
    • namespace: namespace of the object; "PARPG" would be the standard namespace, but as such a tool would be pretty useful for all FIFE-based games, we might not want to hardcode it but rather add a field where artists can change the namespace as well
    • blocking: blocking attribute, defining if an object blocks other objects when it comes to pathfinding; as moving objects usually block movement of other objects, the default setting should be 1, however smaller animated objects (a newspaper flying around) might actually NOT block movement
    • static: static attribute determines if an object is actually able to move around or always resides at one position of the map (if not "beamed" to another position via code); this attribute is used by FIFE's pathfinding code to optimize path calculations; moving objects are non-static but there can be animated objects that are actually not moving; proposal: use 0 as default setting in the editor
    • action id: e.g. idle, running, walking, kicking, etc.
  • The GUI should furthermore offer editing abilities for the following animation parameters:
    • Delay: delay from one animation frame to the next one; 1000 / delay = frames per second
    • namespace: see above
    • id: ID of the animation, e.g. "PlayerCharacter:idle:000" (object:action:angle)
    • x_offset: visual shift that gets applied to each animation frame to properly position the animation (x-axis)
    • y_offset: visual shift that gets applied to each animation frame to properly position the animation (y-axis)
    • List of frames: all frames that the animation should contain; support for removing frames as well as adding new ones; support for adding all frames that reside in one specific directory

Notes

Such a tool is a good way to automate some parts of the process, however we'll have to agree upon some basic aspects as well:

  1. Frame numbers: how long is an usual animation? Do we start counting at 0 or 1?
  2. Playback speed: standard animation playback speed
  3. Idle animations: do we want to have one idle animation per model? Or rather use one weapon-specific idle animations? Multiple randomly-chosen idle animations per model?
  4. File / directory scheme: what scheme should be applied for naming the rendered sprites and which directory structure should apply?
Personal tools