Skip to content
snouz edited this page Jul 9, 2024 · 10 revisions

The Model Viewer is a debugging mode that can be activated with the Memoria.ini option:

[Debug]
Enabled = 1
StartModelViewer = 1

Table of Contents

Navigation

The mouse wheel zoom in/out the model, the mouse left click rotates it, the mouse right click moves it up and down.

Models are classified in 6 different categories:

  • Accessory models (eg. Dali Barrel, dolls, moving Iifa leaf, moogle book...),
  • Main models (eg. Zidane's battle model, Zidane's model on the field, Garnet's model as a child...),
  • Monster models (eg. Mandragora, Ozma, Fire Guardian's model on the field...),
  • NPC models (eg. villagers, chocobos, frogs, pigeons...),
  • Sub models (eg. Baku, Black Waltzes on the field, Zidane's model on the world map...),
  • Weapon models (eg. Hammer, Dagger, Excalibur...).
You can switch from a model to the next/previous one with the arrow keys right/left. If you hold Shift while pressing arrow keys, you jump to the next model category.

The model of the book used by moogles to save the player's progression

The arrow keys up/down let you navigate through the model's animations.

The other keys are:

  • Space bar: play the animation again
  • N: show/hide model and animation name IDs
  • B: show/hide model bones
  • 1: use the normal animation speed (x1)
  • 2: use the battle animation speed (x0.5)
  • E: start exporting the current animation (see next section)
  • Shift + E: start exporting all the animations of the model (same)
  • L: play the latest animation exported
The Model Viewer is the only way to see some of the dummied animations. You'll see that most enemy models have animations probably made for testing purpose. Also, Garnet, Vivi, Steiner, Quina, Freya and Amarant have unused battle animations.

Amarant has a run-then-kick unused animation sequence

Exporting animations

It is possible to tweak the animations and re-export them afterwards. Unfortunatly, it requires the animations to have been already exported beforehand by some other mean.

Using Hades Workshop's tool "Unity Assets Viewer":

  1. Open → FF9_Laucher to setup the tool,
  2. Archive → Streaming Assets → p0data5 to open the archive which contains most of model animations,
  3. Select them (you can select a range by holding shift) and right-click to export them,
  4. Move the animations that were exported from the folder HadesWorkshopAssets/p0data5/assets/... into the folder StreamingAssets/assets/....
After that, the key E should create and open a configuration file allowing some tweaks before re-exporting the animation(s). It looks like that:
// EXPORT ANIMATION
// Write the configurations for exporting an animation, then save the file and press "E" again on the model viewer

Animation:ANH_ACC_F0_BBT_B
ExportPath:StreamingAssets/Assets/Resources/Animations/240/65.anim
DeleteThisOnSuccess:true
Reverse:false
//AnimPatch:bone000;localRotation;Euler(0, 0, 0)
//AnimPatch:bone000;localRotation;Quaternion(0, 0, 0, 1)
//AnimPatch:bone000;localPosition;(0, 0, 0)
//AnimPatch:bone000;localScale;(1, 1, 1)
FrameRate:30
BoneHierarchy:
bone000
bone000/bone001
  • It is possible to have multiple Animation lines to export multiple animations but there should be just as many ExportPath lines as well.
  • The option DeleteThisOnSuccess deletes the text file (MemoriaExportAnim.txt) after pressing the key E in the Model Viewer.
  • The option Reverse exported a reversed version of the animation.
  • The FrameRate specifies the expected frame rate of the animation.
  • The multiple lines after BoneHierarchy specifies the expected skeleton of the model for which the exported animation will be used. In order to export an animation for another model than its original model, replace the bone names here by the bone names of the target model... provided that the hierarchies of both models are similar. You can leave empty lines to ignore some parts (for example, if you use a blank line in place of the line corresponding to the left arm's bone, the exported animation will not contain the movement of the left arm).
  • The lines AnimPatch can be used to apply a global modification to a specific bone (this modification is not be time-dependant). For example, the line AnimPatch:bone000;localRotation;Euler(0, 180, 0) export the animation with the model facing the other direction.

NEW VERSION (PENDING RELEASE)

The Model Viewer is a debugging mode that can be activated with the Memoria.ini option:

[Debug]
Enabled = 1
StartModelViewer = 1

Navigation

The mouse wheel zoom in/out the model, the mouse left click rotates it, the mouse right click moves it up and down.

Models are classified in categories:

  • Accessory models (e.g. Dali Barrel, dolls, moving Iifa leaf, moogle book...),
  • Main characters models (e.g. Zidane's battle model, Zidane's model on the field, Garnet's model as a child...),
  • Monster models (e.g. Mandragora, Ozma, Fire Guardian's model on the field...),
  • NPC models (e.g. villagers, chocobos, frogs, pigeons...),
  • Secondary characters models (e.g. Baku, Black Waltzes on the field, Zidane's model on the world map...),
  • Weapon models (e.g. Hammer, Dagger, Excalibur...).
  • Battle Maps (models of battle environments)
  • SPS: special effects displayed on the fields. They're separated in 11 categories: 9 for the 9 p0data1X containing the corresponding fields, 1 for worldmap sfx, 1 for prototypes.
Shift + Left/right: jump between categries Left/right: navigate models

The model of the book used by moogles to save the player's progression

  • Up/Down: navigate through the model's animations.
The other keys are:
  • Space bar: pause/play animation
  • I: hide/show UI
  • B: show/hide model bones
  • S: Change animation speed (1x (fields), 0.5x (battles), 0.1x)
  • E: start exporting the current animation (see next section)
  • Shift + E: start exporting all the animations of the model (same)
  • L: play the latest animation exported
  • O: Switch between perspective and orthographic view
  • P: Show a weapon to attach to a character's bone. Press again to control the weapon
  * <code>Shift + P</code>: play the latest animation exported

The Model Viewer is the only way to see some of the dummied animations. You'll see that most enemy models have animations probably made for testing purpose. Also, Garnet, Vivi, Steiner, Quina, Freya and Amarant have unused battle animations.


Amarant has a run-then-kick unused animation sequence

Exporting animations

It is possible to tweak the animations and re-export them afterwards. Unfortunatly, it requires the animations to have been already exported beforehand by some other mean.

Using Hades Workshop's tool "Unity Assets Viewer":

  1. Open → FF9_Laucher to setup the tool,
  2. Archive → Streaming Assets → p0data5 to open the archive which contains most of model animations,
  3. Select them (you can select a range by holding shift) and right-click to export them,
  4. Move the animations that were exported from the folder HadesWorkshopAssets/p0data5/assets/... into the folder StreamingAssets/assets/....
After that, the key E should create and open a configuration file allowing some tweaks before re-exporting the animation(s). It looks like that:
// EXPORT ANIMATION
// Write the configurations for exporting an animation, then save the file and press "E" again on the model viewer

Animation:ANH_ACC_F0_BBT_B
ExportPath:StreamingAssets/Assets/Resources/Animations/240/65.anim
DeleteThisOnSuccess:true
Reverse:false
//AnimPatch:bone000;localRotation;Euler(0, 0, 0)
//AnimPatch:bone000;localRotation;Quaternion(0, 0, 0, 1)
//AnimPatch:bone000;localPosition;(0, 0, 0)
//AnimPatch:bone000;localScale;(1, 1, 1)
FrameRate:30
BoneHierarchy:
bone000
bone000/bone001
  • It is possible to have multiple Animation lines to export multiple animations but there should be just as many ExportPath lines as well.
  • The option DeleteThisOnSuccess deletes the text file (MemoriaExportAnim.txt) after pressing the key E in the Model Viewer.
  • The option Reverse exported a reversed version of the animation.
  • The FrameRate specifies the expected frame rate of the animation.
  • The multiple lines after BoneHierarchy specifies the expected skeleton of the model for which the exported animation will be used. In order to export an animation for another model than its original model, replace the bone names here by the bone names of the target model... provided that the hierarchies of both models are similar. You can leave empty lines to ignore some parts (for example, if you use a blank line in place of the line corresponding to the left arm's bone, the exported animation will not contain the movement of the left arm).
  • The lines AnimPatch can be used to apply a global modification to a specific bone (this modification is not be time-dependant). For example, the line AnimPatch:bone000;localRotation;Euler(0, 180, 0) export the animation with the model facing the other direction.