-
Notifications
You must be signed in to change notification settings - Fork 4
HRC Format
The Hierarchy (HRC) format is a plain-text format that stores information about the skeleton of a Final Fantasy VII field character model (i.e., the ones found in char.lgp).
HRC files begin with a header block that provide general information about the file. The header seems to be able to be variable length, but it seems to be exactly 3 lines in every Final Fantasy VII HRC file.
The first line of the header block (and thus of the HRC file) designates the number of attributes in the header block. It is of the following format (where N denotes the number of attributes):
:HEADER_BLOCK N
For example, an HRC file with 2 attributes (such as seemingly all HRC files in Final Fantasy VII) would have the following:
:HEADER_BLOCK 2
Recall that the header block length specified the number of header attributes (seemingly always 2 in Final Fantasy VII). For each of these, we have a line in the following format:
:KEY VALUE
In Final Fantasy VII, the attributes are typically the following:
:SKELETON NAME
:BONES N
-
NAMEis the name of this skeleton -
Nis the number of bones in this skeleton
For example, the following shows the header attribute lines for a skeleton named n_cloud_sk with 21 bones:
:SKELETON n_cloud_sk
:BONES 21
Every bone consists of 4 lines in the following format:
NAME
PARENT_NAME
LENGTH
RSD_FILES
-
NAMEdesignates the name of this bone -
PARENT_NAMEdesignates the name of the parent bone- The parent bone must already be listed above in the HRC file, or it can be
root(origin)
- The parent bone must already be listed above in the HRC file, or it can be
-
LENGTHdesignates the length of this bone -
RSD_FILESdesignates the RSD files that are aligned to this bone, and it can have one of the following formats:-
0(i.e., just the integer 0)- This bone has no RSD files aligned to it
-
N RSD_1 ...(i.e., an integerNfollowed by a space-delimited list of RSD files)- This bone is aligned to
NRSD files, which areRSD_1, ...
- This bone is aligned to
-
For example, the following shows the 4 lines for a bone named chest with a parent named hip with length 5.181539 and referencing a single RSD file named AAAD:
chest
hip
5.181539
1 AAAD
-
Header Block
- Length of Header Block (nH)
- Header Attribute 1 (name)
- Header Attribute 2 (number of skeletons, nS)
- ...
- Header Attribute nH
-
Bones (nS entries)
- Bone 1
- Name
- Parent Name
- Length
- RSD File List
- ...
- Bone nS
- ...
- Bone 1
Niema Moshiri 2019