Welcome to the TWC Wiki! You are not logged in. Please log in to the Wiki to vote in polls, change skin preferences, or edit pages. See HERE for details of how to LOG IN.

Difference between revisions of "Cas Files"

From TWC Wiki
Jump to navigationJump to search
Line 34: Line 34:
  
  
[[RTW Skins, Models & Animations]]
+
[[Category:RTW Skins, Models & Animations]]
[[M2TW Modding]]
+
[[Category:M2TW Modding]]

Revision as of 11:29, 28 March 2021

Rome:Total War & Remastered - Modding Index

M2TW Modding Index


.cas files are used for unit models and animations in RTW, unit animations in M2TW and strat map models and animations in both games. Cas is a proprietary format used by CA to export 3d models and animations from 3dsMax. Various modding tools exist to convert .cas files to either 3dsMax, Milkshape or Blender.

Format Types

The contents and structure of .cas files vary with use (with or without animation, with or without 'mesh') and according to when they were created. Uncompressed .cas files supplied with the games start with a version number, these numbers range from approx 2.1+ to 3.22, the version number can indicate changes to the format. 'Cas' files that are generated by 'unpacking' the animation packs do not return to the same format and do not have a version number.

Bone Weighting

Most .cas models with a skeleton only contain weighting to one bone per vertex, so each vertex will be 100% weighted to a particular bone, triangles that have vertexes weighted to different bones will stretch and contract as the bones are moved in an animation.

Mesh sections for primary and secondary weapons in RTW battle units will be weighted to one bone only, e.g. the right hand, in these type of mesh sections the bone number is given once at the top of the section and not repeated for each vertex.

Mesh sections for the body will typically have vertexes weighted to all of the available bones, but only one bone per vertex as described above.

Multi Bone Weighting

A few vanilla RTW unit models actually have elements where vertexes have shared weighting across two bones. Typically these are the shoulder pad elements as used on the officer_roman_centurion model. The early .cas to 3dsMax converters do not handle these multi-weighted sections and simply fail to import them into Max. For these models to work properly in game they need to have the model_flexi_m setting and not just model_flexi. Model_flexi_m is described in both games descr_model_strat.txt file as:

essentially a flexi model but has a small number of weighted vertices, such as Will's high-detail carthaginian infantryman with the weighted shoulder verts

The format of sections that have the multi-bone weighting is different from the normal weapon/body mesh chunks and there do seem to be restrictions on how much they can be used. Within the .cas file these types of chunks are preceded with the indicator 3, so will now be referred to as 'type 3'

Limitations of Type 3 Groups

Testing the limits of this has only recently become possible, as wilddog's IWTE tool is being tested on writing .dae (Blender) files to .cas for RTW units and will handle the multi-weighting.

The number of verts/tris that can be included in type 3 sections seems limited, exceeding 100 verts/tris per group or 200 verts/tris per .cas can crash the game or create visual effects similar to having unweighted bones.

The weighting only works between parent and direct child bones, so Torso/Rupperarm works, Torso/Relbow doesn't. RThigh/LThigh combination on a vert will not work, but you can have Pelvis/RThigh and Pelvis/LThigh assigned verts in the same triangle.

The type 3 sections form separate mesh groups within the .cas file and can use the same name as an associated normal mesh group, so you can have one main section of normal 'body' that has just one bone per vert, then perhaps a type 3 'body' section with multi-weighting between Pelvis/Abs and another type 3 section again called 'body' with multi-weighting between Torso/Upperarms/Head. These extra type 3 groups do not seem to cause the same problems as having too many separately named normal groups.

Each type 3 group can only have one 'parent' bone, but if that bone has more than one direct child bone, more than one child bone can be referenced in the group.

Because of the one parent limit you cannot have a working multi-weighted triangle that has verts shared between both the Pelvis, the RThigh and the RLowerleg (as the Pelvis is the parent of the Thigh, and the Thigh would need to be a second parent to the Lowerleg). To achieve sections that are multi-weighted between the Pelvis/Thigh and also Thigh/Lowerleg, you need transition verts that are weighted 100% to the Thigh, so the two areas can be successfully separated into different type 3 groups.