Join also our Discord channel! Click here.

ff12 phyre model

Post questions about game models here, or help out others!
Post Reply
User avatar
alexdokuchayev
ultra-n00b
Posts: 9
Joined: Sat Sep 14, 2019 7:40 am
Been thanked: 13 times

ff12 phyre model

Post by alexdokuchayev » Sat Sep 14, 2019 11:58 am

i'm currently working on a small tool to compile models of ffxii to .phyre
Since the re-release of ffxii, I've dipped into model format research, here's what I come to know so far:

phyre model asset structure on conversion. you should set model to replace in the same file structure as in the vbf, which usually starts with base "artdata".

These ".ah" files act as model external material. they similar to 3d material file (i.e. ".mat") I could edit this files with a simple text editor. this file also identifies the model to load.
Models to preload you can find in jsondata: init.json

Code: Select all

  "ModelsToPreload": [
    "chara/c10/c1004/c1004",
    "chara/c10/c1005/c1005",
    "chara/c10/c1006/c1006",
    "chara/c10/c1019/c1019",
    "chara/c10/c1021/c1021",
    "chara/c10/c1023/c1023"
  ],
there are also shaders linked these files. Whether it is a shader (for characters and weapons) or default lit shaders (for maps) it must be kept in the material file or crash game.

ION, I've looked into animation and they are contained in ".ca" file
In obj_finish folder there is '.ca' file in each character ID folder (c1004, c1005 so on). this .ca animations are all models battle field animations and can be swapped with each other without crash.

Code: Select all

.       c1004: Vaan
.       c1005: Balthier
.       c1006: Fran
.       c1019: Basch
.       c1021: Ashe
.       c1023: Penelo
.       c1029: Reddas
seems there are two NPC models of Doctor Cid, one for the fight at Draklor and other at Pharos. though n1073 may be dummied.
If you model swap using battle pack editor by raidenripper, Doctor Cid model uses ID n1073.

I haven't tested all battle field animation but so far here's the ID functions:

c1004_00.ca - Walk/Run field animation/sheathe/unsheathe
c1004_10.ca - Unarmed animation
c1004_11.ca - Daggers animation
c1004_50.ca - Bow animation
c1004_60.ca - Guns animation

all the 1 MB .ca files are the character weapon discipline animation.
c1004_t1 suffix "t1" are for towns. It appears just replacing this file for NPC is not enough to get them fully controllable in towns, they'll probably need this data added to their animation hierarchy.

c1004_e1.ca - Riding chocobo animation.

All main characters have full set of battle field animations, NPCs do not. Some bosses have only a fraction of battle field animation than the cast and the IDs are different from them.
Last edited by alexdokuchayev on Thu Oct 17, 2019 3:23 am, edited 6 times in total.

User avatar
alexdokuchayev
ultra-n00b
Posts: 9
Joined: Sat Sep 14, 2019 7:40 am
Been thanked: 13 times

Re: ff12 phyre model

Post by alexdokuchayev » Fri Sep 20, 2019 2:52 pm

post move down
Last edited by alexdokuchayev on Fri Oct 04, 2019 7:24 pm, edited 3 times in total.

User avatar
alexdokuchayev
ultra-n00b
Posts: 9
Joined: Sat Sep 14, 2019 7:40 am
Been thanked: 13 times

Re: ff12 phyre model

Post by alexdokuchayev » Sat Sep 21, 2019 1:43 am

model viewer model processor.

"c1004.dae.phyre"
Image

"hc1004_01.dae.phyre"
Image

"hc1004_02.dae.phyre"
Image

"c1005.dae.phyre"
Image

"hc1005_02.dae.phyre"
Image

it is true the models use high model replace.
maps a bit different. unlike the others the mesh bounds are divided into sections.
Last edited by alexdokuchayev on Fri Oct 04, 2019 7:24 pm, edited 1 time in total.

kidling
ultra-n00b
Posts: 8
Joined: Sat Aug 15, 2015 4:34 am
Has thanked: 1 time
Been thanked: 1 time

Re: ff12 phyre model

Post by kidling » Sun Sep 29, 2019 8:14 pm

Amazing job. May we change the 3d model of game for other with more vertices/details?

Thank you for your hard work

User avatar
alexdokuchayev
ultra-n00b
Posts: 9
Joined: Sat Sep 14, 2019 7:40 am
Been thanked: 13 times

Re: ff12 phyre model

Post by alexdokuchayev » Mon Sep 30, 2019 5:35 pm

kidling wrote:
Sun Sep 29, 2019 8:14 pm
Amazing job. May we change the 3d model of game for other with more vertices/details?

Thank you for your hard work
I can pm you info.

stevenrafael
ultra-n00b
Posts: 1
Joined: Fri Mar 13, 2020 10:32 pm

Re: ff12 phyre model

Post by stevenrafael » Fri Mar 13, 2020 10:38 pm

This is amazing work. Do you have a list of the NPC models corresponding to each ID? I see you have Cid listed as n1073.

I'm particularly curious about the Dalmascan Soldier model, from the beginning portion of the game. Using Zodiac Age Editor, I can find references to two models named Dalmascan Soldier, yet in game, there are 3 visual variations controlled by the AI during the tutorial. Both models load only the first variation. I can't figure out how to access or locate the other two.

Darkhowlings
veteran
Posts: 104
Joined: Mon Sep 01, 2014 8:33 am
Has thanked: 50 times
Been thanked: 4 times

Re: ff12 phyre model

Post by Darkhowlings » Sun Mar 15, 2020 12:20 am

Reading all of this, it is still a surprise nobody had try to mod either FF12 or FF10 on 3D way on both they PC realize.
More taking we're on 2020, and yet still no move about it.

And it is dissapointed that if you ask on this page about modding FF7, 8, 9, 10, the only answer you get is "we only care more about FF7 on 3D Modding", like they respond me years ago.

Anyway, it is very great to see, late, sorry, that at least someone is trying to find out how to convert it and edit it.
I take my hat out for you Sir.

User avatar
alexdokuchayev
ultra-n00b
Posts: 9
Joined: Sat Sep 14, 2019 7:40 am
Been thanked: 13 times

Re: ff12 phyre model

Post by alexdokuchayev » Mon May 04, 2020 3:27 am

post down
Last edited by alexdokuchayev on Mon Jun 22, 2020 11:58 am, edited 1 time in total.

User avatar
alexdokuchayev
ultra-n00b
Posts: 9
Joined: Sat Sep 14, 2019 7:40 am
Been thanked: 13 times

Re: ff12 phyre model update

Post by alexdokuchayev » Mon Jun 22, 2020 11:58 am

Some Updates to this tool...

What can be done so far:
  • Convert a skinned ascii .fbx model to .phyre mesh (version no higher than 2016 FBX).
  • Hierarchy should return a similar structure to target model.
  • Converts formatted .dds (diffuse/normal/spec) to phyre.
  • Extract FFX/XII phyre model to .fbx
Cannot currently:
  • Convert a mesh to binary .fbx, only ascii .fbx.
  • Import an .xps model.
  • Extract/Import maps
  • Edit animation remaps tool (.ca)
Things to be done:
  • Converting of hc models
  • retain mesh/bone names
  • For Maps, See Maps infos below

Code: Select all

Options:
             -b                 process skinned .fbx to .phyre
             -t                 process .dds to .phyre
             -e                 export .dae.phyre to .fbx
             -s                 process .fx shader to .phyre
.fbx should have appropriate materials linked in hierarchy. Will attempt to right estimate material path within .dae.phyre

Notes regarding asset preparation:
  • Textures must be in .dds format (see below for diffuse/normal/spec types)
  • Model should be centered scaled, internal scaling will be attempt handle processed.
  • Model should have meshes linked appropriately to target model. *see list for all main models meshes.
  • Polys do not exceed 60000 for precaution.
  • Limit textures to amount of original model replacing. This version cannot handle new textures more than the original model.
  • Materials should be hierarchy of texture path in .vbf
  • Lambert or Phong default shaders. It will process .fbx and link it to default chr shaders already present.
  • Before creating a .dae, model should have the applicable bone and mesh names matching target model of importation.
  • Mismatched names will lead to errors.
  • Meshes must not contain triangulated meshes
Normals
  • Vector lines—each models include them. Lack of normals will result in missing faces.
  • Do not use inverted normal directions, these surfaces will not be rendered.
  • Normal maps use their affects by manipulating normals on geometric surfaces.
Polys
Please try Keep model poly count<65535. pushing the limits can results in:
  • crashes
  • invisible models
  • flicking meshes
  • other unknown glitches
Scaling
Models/transforms must retain a XYZ position scale. This ensures the model is not too big or too small in game, tool will try handle the scaling in game, but may not correct if scaling is wrong. Remember Z-axis are perpendicular—x-axis and y-axis create the value of Z.

Animation
Animation data can be found for models (main+npcs) in various formats (.ca, .mot .dae)
  • .ca—obj directory
  • .mot—plan_master directory
  • .ca are remaps for battle animations for all models that have one.
Animation remaps

Code: Select all

cXXXX_00.ca - Walk/Run field animation/sheathe/unsheathe
cXXXX_10.ca - Unarmed animation
cXXXX_11.ca - Dagger animation
cXXXX_50.ca - Bow animation
cXXXX_60.ca - Gun animation
all the 1 MB .ca files are weapon discipline remaps.cXXXX_t1 suffix "t1" are for towns. Simply replacing this file for NPC is not enough to get them fully control in towns, they'll need this data added to their animation hierarchy.
cXXXX_e1.ca - Riding chocobo animation.

Example .ca:
https://www.youtube.com/watch?v=6C7Y7Ua6Leg

All main characters have full set of battle field animations, NPCs do not. Some bosses have only a fraction of battle field animation than the cast and the IDs are different from them.

Textures & Shaders
Textures should use shaders within shaders folder of vbf. Recommend to use the same shader the vanilla model uses. You can find this shaders reference in the phyre, .exe and material (.ah)

Textures materials and shaders
You cannot add textures to a material file (.ah) of an imported model and expect the game to read it! This includes taking a vanilla phyre texture file and importing it newly to the .vbf, the game will not read that texture. You can relink original textures of the characters that are already default in the .vbf, you cannot add this original textures of the characters to the vbf in a new location such as:

Code: Select all

c1005_d3d11.ah:
Replaced:

Code: Select all

/GameData/D3D11/ArtData/chr/chara/c10/c1005/tex/tex_0_clut_0_c1005_clut_1.dds.phyre
With:

Code: Select all

/GameData/D3D11/ArtData/balthier_model_edited/_balthier_newmodel/tex_0_clut_0_c1004_clut_1.dds.phyre
The game will not read this and will crash.

However, you can link Vaan's original texture to Balthier that is already present in the .vbf.

Code: Select all

c1005_d3d11.ah:
Replace:

Code: Select all

/GameData/D3D11/ArtData/chr/chara/c10/c1005/tex/tex_0_clut_0_c1005_clut_1.dds.phyre
with:

Code: Select all

/GameData/D3D11/ArtData/chr/chara/c10/c1004/tex/tex_0_clut_0_c1004_clut_1.dds.phyre
The game will read this updated material as it is a location already present in vbf.
For new models and texture, it needs to be referenced in the game. This is the same with shader. Texture and models must reference the correct shader in their hierarchy before importing! This hierarchy structure are critical when importing. This is the same for maps.

Texture formats—diffuse maps should be in .dds (ARGB 8-bit) format. Normal maps should be in .dds (BC5) format. Specular maps should be in .dds (A8R8G8B8) format.

Shadows
You must manually replace shadows of characters via chr_shadow directory.

Maps
- Maps use a different shader than characters. You reference any of the DefaultLit shaders, not phyrechr shaders.
- Only maps have srm_.ah material files needed to be updated accordingly.
- As before, shaders for maps and textures need to be referenced in all instances before import.
- Static objects—objects like chairs, plants, furniture are mostly found used and referenced in the gadgets directory of VBF. This includes event items. This types of static objects do not go on map geometry.
- Map geometry are divided on a zone to zone basis (ex.). Unless all events take place in a single zone, do plan on splitting your maps into zones accordingly as the vanilla game.
- Geometric polys per map
- Poly limits were exceeded w/ vertex color mesh (before texture applied to scene)
- Do not triangulate static meshes!
- I will include documentation once alpha testing is passed.

Map Collision
Map Collision is not defined by script, map jumps are. Collision data there is a set of additional float to be edge normals.
If e.g. I write zeros to this data, the collision data no longer work in game and the character falls through the ground. It defines the direction the collision acts as collision, that way if the player gets out of bounds they can walk back in.

Image
(test map with many collision 'holes'. And vertex colors.They're simply RGBA channels stored for vertex of a mesh)

Map Construct
The game loads map (area) (e.g. Ozmone Plain) as one, akin a jigsaw;
ozm0101.dae.phyre ; ozm0102.dae.phyre ; ozm0103.dae.phyre // ozm0104.dae.phyre ; ozm01015.dae.phyre // ozm0106.dae.phyre ; ozm0107.dae.phyre ; ozm0108.dae.phyre ~ geometric meshes.
e.g.
"The Switchback" Zone (Is Zone in now : ozm0105.dae.phyre)

Image

End of map/invisible collision zone next ("Dagan Flats")
Image
(End of Map-The Switchback)—Zone "Dagan Flats" (ozm0102.dae.phyre) Is preloaded

So this 'invisible' collision here actual the end of the ozm0105.dae map. (geometry). the map jump to zone "Dagan Flats" is preloaded here. a method to avoid 'end of the world' view for player. i.e. player look into a void before zoning.

i.e instead of the player here looking to nothingness, he be able to see more map ahead before zoning to said map.

Map jump is placed just before the end of this zone's geometry.

For the Ozmone Plain it has 8 map

Code: Select all

(ozm01 :: ozm0101, ozm0102, ozm0103, ozm0104, ozm0105, ozm0106, ozm0107, ozm0108)
Maps construct as:

Field of Fallen Wings — (ozm0101.dae.phyre)
  • Connected maps :: (ozm0102.dae.phyre) // (ozm0105.dae.phyre)
Dagan Flats — (ozm0102.dae.phyre)
  • Is Connected maps to :: (ozm0101.dae.phyre) // (ozm0105.dae.phyre) // (ozm0103.dae.phyre)
The Switchback — (ozm0105.dae.phyre)
  • Connected maps :: (ozm0101.dae.phyre) // (ozm0102.dae.phyre) // (ozm0106.dae.phyre) // (ozm0104.dae.phyre)
  • Map Jump to Zertinan Caverns is "Void" as described before:
Image

The Greensnake — (ozm0104.dae.phyre)
  • Connected maps :: (ozm0105.dae.phyre) // (ozm0107.dae.phyre) // (ozm0103.dae.phyre)
The Shred — (ozm0107.dae.phyre)
  • Connected maps :: (ozm0106.dae.phyre) // (ozm0104.dae.phyre)
  • *Is connected to Haulo Green via Chocobo
Haulo Green — (ozm0106.dae.phyre)
  • Connected maps :: (ozm0105.dae.phyre)
  • Map Jump to Jahara is "Void" as described before.
Field of Light Winds — (ozm0103.dae.phyre)
  • Connected maps :: (ozm0102.dae.phyre) // (ozm0104.dae.phyre)
Sunlit Path — (ozm0108.dae.phyre)
  • Connected maps :: (ozm0103.dae.phyre)
  • Map Jump to Golmore is "Void" as described before.
Image
You will be also control ambient and tone of new map for immersive atmosphere.

Image
It will become part of workflow as you correct and appropriately apply tone maps to new locations.

Map Note
The game will also preload textures of the preloaded map, in these cases, could be dangerous when moving, merging or removing them will simply not load and crash the game. Because of the way the maps are structured, editing the material file (d3d11_ah) and or moving its portals will crash game as the game will try to use that direct portal before a zone and Exit array.

Prefetch data
Related to data for a specific map.

hc models
With hc models. The game will use to it to swap the model stand (lower poly) base mesh:
  • phyre base mesh|body/clothing.
Phyre model asset structure on conversion. You should set model to replace in the same file structure as in the vbf, which usually starts with base "artdata", ps3data or ps4data.

Materials
These ".ah" files act as model external material. they similar to 3d material file (i.e. ".mat") edit this files with a simple text editor. this file also identifies the model to load.Models to preload you can find in jsondata: init.json

Code: Select all

 "ModelsToPreload": [     "chara/c10/c1004/c1004",     "chara/c10/c1005/c1005",     "chara/c10/c1006/c1006",     "chara/c10/c1019/c1019",     "chara/c10/c1021/c1021",     "chara/c10/c1023/c1023"   ],
There are also shaders linked these files. Whether it is a shader (for characters and weapons) or default lit shaders (for maps) it must be kept in the material file or crash game.

Other formats
I've began adding support for 3ds max start with a few extracted models in max

Ashe (wireframe)
Image

Reddas (wireframe)
Image

The Undying (wireframe)
Image

Can download these here.

Other infos list

Code: Select all

mws:
"26"
s0002 - Belias
s0003 - Ultima
s0004 - Zeromus
s0005 - Chaos
s0006 - Hashmal
s0007 - Cúchulainn
s0009 - Zalera
s0010 - Mateus
s0011 - Famfrit
s0012 - Adrammelech
s0013 - Shemhazai
s0014 - Exodus
s0015 - Zodiark
DUMMY
s0019 - Belias
s0020 - Ultima
s0021 - Zeromus
s0022 - Chaos
s0023 - Hashmal
s0024 - Cúchulainn
s0025 - Zalera
s0026 - Mateus
s0027 - Famfrit
s0028 - Adrammelech
s0029 - Shemhazai
s0030 - Exodus
s0031 - Zodiark

Code: Select all

mws:
"103"
g001 - Pouch (Vaan holds during victory)
g002 - Corpse (Sochen Cave Palace)
g007 - Club (Foe)
g009 - Boat (Estersand)
g0010 - Arsenal (Doctor Cid)
g0011 - Strahl (Docked)
g0014 - DUMMY (Invisible collision)
g0016 - Rod (weap)
g0017 - DUMMY (Invisible collision)
g0018 - DUMMY (Invisible collision)
g0023 - Cane
g0024 - ???
g0025 - Galbana lilies
g0027 - Chair (event:Reks)
g0028 - Emblem
g0029 - plant (static—non-movable)
g0030 - Vase
g0031 - Static
g0032 - Airship (static)
g0033 - Sheath
g0034 - Sheathed sword
g0036 - Goddess Statue (Royal Palace)
g0037 - DUMMY (Invisible collision)
g0039 - DUMMY (Invisible collision)
g0040 - Helm-P1
g0042 - Goddess Magicite
g0045 - P2
g0046 - P1
g0047 - Tome
g0048 - Envelope
g0049 - Pouch (static)
g0050 - Bag (static)
g0051 - Vase (static)
g0052 - Manufacted Nethicite
g0053 - Static2
g0055 - Key
g0056 - Insig
g0057 - Static3
g0058 - Static4
g0059 - Static5
g0060 - Airship
g0063 - Imperial Helmet
g0064 - Body Corpse
g0065 - Chair (Bhujerba)
g0066 - Tank
g0067 - Static6
g0068 - Static7
g0069 - Pen
g0070 - Static (collision)
g0071 - Static mesh
g0072 - Nethicite
g0073 - Imperial Helmet (Bhujerba)
g0074 - Static mesh (map)
g0075 - Nethicite
g0076 - TrapDoor (Royal Palace entrance)
g0077 - Imperial Helmet
g0078 - Galbana lilies (static mesh)
g0079 - Galbana lilies (static mesh) -crush-
g0080 - Fish rod
g0081 - Plad
g0082 - Static8
g0083 - Static9
g0084 - Hero's blade
g0085 - DUMMY (Invisible collision)
g0086 - Sheathed sword
g0087 - DUMMY (Invisible collision)
g0088 - Static10
g0089 - Chair
g0090 - Static11
g0091 - Tome
g0092 - Al Cid Margrace shades
g0093 - Static (collision)
g0094 - Glass bottle (static)
g0095 - WeapID (Static)
g0096 - WeapID (Static)
g0097 - Tome
g0098 - Chair
g0099 - Static12
g0100 - Weapon (Event-Static) Judge
g0101 - Gabranth twin blade (static)
g0102 - Treaty Blade (event—static mesh)
g0103 - Sword of Kings (event—static mesh)
g0104 - Weapon (Event-Static) Judge
g0105 - Weapon (Event-Static) Judge
g0106 - Corpse (Imperial Senate)
g0107 - Static13
g0108 - Static14
g0109 - Imperial Helmet (chipped)
g0110 - Imperial Helmet (broken)
g0111 - Static15
g0112 - Nethicite
g0113 - Charm Brace
g0114 - Static (collision)
g0115 - Static16
g0116 - Corpse
g0117 - Static (collision)
g0118 - DUMMY (Invisible collision)
g0119 - Static (collision)
g0120 - Static (collision)
g0121 - Strahl (Static mesh)
g0122 - DUMMY (Invisible collision)
g0999 - DUMMY (Invisible collision)

Code: Select all

n10:
"63"
n1014 - Rabanastre Watch
n1017 - Gabranth (event)
n1018 - Imperial Guard (event)
n1019 - Imperial Guard (event)
n1020 - Inmate (Dungeons)
n1021 - Bangnaa
n1022 - Seeq
n1026 - Static mesh (claw—Part of Set)
n1032 - Bangnaa
n1033 - GenericNPC1
n1034 - GenericNPC2
n1035 - GenericNPCChild1
n1036 - GenericNPCChild2
n1038 - Piscodaemon (DUMMY)
n1039 - NPCArchades
n1040 - NPCArchades2
n1042 - Moogle
n1043 - NPCArchades3
n1044 - GenericNPC3
n1045 - GenericNPC4
n1046 - GenericNPC5
n1047 - GenericNPCChild3
n1099 - NPC68
n11 "84" *NPC (mainly those in events) with relative high model correspond to the ID in that directory. Monsters do not have high model.
m11:
"92"
m1185 - Hell Wyrm
m1186 - Yiazmat

m12:
"83"
m1208 - The Undying
"25"
Most are either enemy actors or dummied ones for events. ID corresponds with monster ID.
n1200 - DUMMYACTOR—GetRelativeEnemyMonsterID
n1201 - DUMMYACTOR—GetRelativeEnemyMonsterID
n1202 - ENEMYACTOR—GetRelativeEnemyMonsterID
n1203 - DUMMYACTOR—GetRelativeEnemyMonsterID
n1204 - ENEMYACTOR—GetRelativeEnemyMonsterID
n1205 - DUMMYACTOR—GetRelativeEnemyMonsterID
n1206 - DUMMYACTOR—GetRelativeEnemyMonsterID
n1207 - ENEMYACTOR—GetRelativeEnemyMonsterID
n1208 - DUMMYACTOR—GetRelativeEnemyMonsterID
n1209 - DUMMYACTOR—GetRelativeEnemyMonsterID
n1210 - DUMMYACTOR—GetRelativeEnemyMonsterID
n1212 - DUMMYACTOR—GetRelativeEnemyMonsterID
n1213 - DUMMYACTOR—GetRelativeEnemyMonsterID
n1214 - ENEMYACTOR—GetRelativeEnemyMonsterID
n1215 - ENEMYACTOR—GetRelativeEnemyMonsterID
n1216 - ENEMYACTOR—GetRelativeEnemyMonsterID
n1218 - ENEMYACTOR—GetRelativeEnemyMonsterID
n1219 - ENEMYACTOR—GetRelativeEnemyMonsterID
n1220 - ENEMYACTOR—GetRelativeEnemyMonsterID
n1221 - DUMMYACTOR—GetRelativeEnemyMonsterID
n1222 - ENEMYACTOR—GetRelativeEnemyMonsterID
n1225 - ENEMYACTOR—GetRelativeEnemyMonsterID
n1232 - ENEMYACTOR—GetRelativeEnemyMonsterID
n1240 - ENEMYACTOR—GetRelativeEnemyMonsterID
n1248 - DUMMYACTOR—GetRelativeEnemyMonsterID

Code: Select all

w00XX : Shields & Event Enemy Weapons
w10XX : Dummy
w20XX : Daggers
w21XX : Enemy Weapons
w22XX : Maces
w23XX : Axes
w24XX : Ninja Swords
w26XX : Hand-bomb
w27XX : Dummy Ammunition 2
w31XX : Hammers
w33XX : Measures
w34XX : Ammunition Bombs
w40XX : Greatswords + Enemy
w41XX : Katanas
w50XX : Spears
w60XX : Rods
w70XX : Bows
w71XX : Ammunition Arrows
w80XX : Crossbows
w81XX : Guns
w82XX : Ammunition Arrows
w83XX : Dummy mesh (ammunition bullets)
There are still much to do and I'd also implement functions specific for FFX models as far as extracting models and animations go. They not far different.

Cheers
Last edited by alexdokuchayev on Wed Jul 01, 2020 7:09 am, edited 2 times in total.

solidssss
ultra-n00b
Posts: 1
Joined: Fri Jun 26, 2020 11:27 am

Re: ff12 phyre model update

Post by solidssss » Tue Jun 30, 2020 10:50 am

alexdokuchayev wrote:
Mon Jun 22, 2020 11:58 am

Code: Select all

Options:
             -b                 process skinned .fbx to .phyre
             -t                 process .dds to .phyre
             -e                 export .dae.phyre to .fbx
             -s                 process .fx shader to .phyre
Hi. Where can I download this version? I would like to have the option command -b to convert .fbx to .phyre. Can you please upload it somewhere? Nexusmods only has v.1.0

User avatar
alexdokuchayev
ultra-n00b
Posts: 9
Joined: Sat Sep 14, 2019 7:40 am
Been thanked: 13 times

Re: ff12 phyre model

Post by alexdokuchayev » Wed Jul 01, 2020 6:10 am

This is only version. Never released on other site only my yandisk. Last version before shift was missing my .ca tool from archive. There are still much to do and I'd also implement functions specific for FFX models. I also work more on maps for ff12 a more complicated process.

Cheers

User avatar
alexdokuchayev
ultra-n00b
Posts: 9
Joined: Sat Sep 14, 2019 7:40 am
Been thanked: 13 times

Re: ff12 phyre model

Post by alexdokuchayev » Thu Jul 02, 2020 4:37 pm

Update info regrading model and nodes..

Models and Nodes
You will need to match model to the same mesh target of original model for work. Any meshes not ID are will not be processed. If you wish a mesh to be omit, leave it empty mesh. These meshes will be converted into Nodes.
Image
i.e. Ashe has over 60 Nodes in hc alone most of which are omitted by the base mesh (c1021.dae.phyre), such as "arm" i.e. "s35_j_ude_a_r"
Image
While there is no arm mesh, the bone data are there.

*Note:
Nodes are in romaji and must be kept in standard as of now.

c1021.dae + hc1021_02.dae (one):

Image

example of hc model setup to import/replace:

Image

Example of Tina structure setup (Top half is hc model replace, I use these only on hc model, I leave tina's body for c1021.dae.phyre—the game will swap in tina's head/hands via hc1021_XX.dae.phyre)
I point on V needed to be flipped or would appear upside down.
Since Tina makes no use of extra nodes (such as "s35_j_ude_a_r" in hc1021.dae), I omit these by including the mesh but leaving the mesh empty, while retaining bone structure. Since this version of Tina is not optimize it results in invisible model in game now because:
Image
Poly substitution needed. Things like hair cards contribute greatly. I have not raised this limit from the engine yet.

Since Tina also has a lot of accessories such as pearls and frills and her cape that were originally separate meshes, these were merged into one large mesh. This includes meshes such as eyelashes/hair ornaments etc.

in c1021.dae.phyre:
Image
Only the body. game will swap in head/hands of hc model.
Ready for converting, move on to materials.

There are different versions of hc, which used in various scenario events in game.

User avatar
alexdokuchayev
ultra-n00b
Posts: 9
Joined: Sat Sep 14, 2019 7:40 am
Been thanked: 13 times

Re: ff12 phyre model

Post by alexdokuchayev » Sat Jul 04, 2020 1:57 pm

As of today, I am no longer working further on models. If you like know why, you may send pm.
This conclude last update on phyre model and map.

Cheers

Post Reply