READ THE RULES: Click here

Follow us on Facebook: https://www.facebook.com/xentax/ :)

Colin McRae Rally 3 .TAG and track model files

Post questions about game models here, or help out others!
User avatar
Bigchillghost
ultra-veteran
ultra-veteran
Posts: 453
Joined: Tue Jul 05, 2016 9:37 am
Has thanked: 21 times
Been thanked: 344 times

Re: Colin McRae Rally 3 .TAG and track model files

Post by Bigchillghost » Sat Sep 15, 2018 5:14 pm

The models are of poor qualities:
Image
and the submeshes would require bone parenting to reach to their correct positions.
It would be a really tedious task to support them so I'll just leave here the structures of the unpacked *.d files resulting from the tag model:

TriMesh (Non-stripped)

Code: Select all

long	MeshCount;
for (int i = 0; i < MeshCount; i++)
{
	ULONG64	Null;
	long		Vcount;
	long		FaceCount;
	for (int j = 0; j < Vcount; j++)
	{
		float	position[3];
		float	normals[3];
		float	texcoord[2];
		BYTE	 vertexColorRGBA[4];
	}
	for (int j = 0; j < FaceCount; j++)
	{
		long	AlignmentMark;
		long	TriangleIdx[3];
	}
}
TriMesh (Stripped)

Code: Select all

long	MeshCount;
for (int i = 0; i < MeshCount; i++)
{
	ULONG64	Null;
	long	 	Vcount;
	long	 	StrippedGroupCount;
	long	 	ChunkSize; //IndexChunk + VertexChunk + Header
	long	 	IndexChunkAndHeaderSize;
	float		Unknown[6];
	for (int j = 0; j < StrippedGroupCount; j++)
	{
		ULONG64		StrippedIndexCount;
		long			TriangleStrippedIdx[StrippedIndexCount];
	}
	for (int j = 0; j < Vcount; j++)
	{
		float	position[3];
		float	normals[3];
		float	texcoord[2];
		BYTE	 vertexColorRGBA[4];
	}
}
MaterialUV/MaterialUVStripped

Code: Select all

long	MeshCount;
for (int i = 0; i < MeshCount; i++)
{
	long	ChunkSize;
	long	Count;
	long	Vcount;
	long	Unknown[Count];
	for (int j = 0; j < Vcount; j++)
	{
		long	 isMaterialUV; // always == 1
		float	texcoord[2];
	}
}
Node

Code: Select all

long	NodeCount;
for (int i = 0; i < NodeCount; i++)
{
	long	 parentID;
	long	 Unknown1;
	long	 Unknown2;
	char	 NodeName[64];
	long	 NodeID; // Mapping to MeshID. Some nodes share the same ID
	float	Matrix4x4[16];
}
You'll also need the code from the tagUnpacker to get a full understand of the entire file structure.
Last edited by Bigchillghost on Sat Feb 23, 2019 4:11 pm, edited 1 time in total.
May you find peace in this puzzle-solving game. Say it with action: click the Image when you get helped.:)

huckleberrypie
mega-veteran
mega-veteran
Posts: 310
Joined: Mon Apr 26, 2010 6:51 am
Has thanked: 92 times
Been thanked: 12 times

Re: Colin McRae Rally 3 .TAG and track model files

Post by huckleberrypie » Sun Sep 16, 2018 2:38 am

What about the character models?

huckleberrypie
mega-veteran
mega-veteran
Posts: 310
Joined: Mon Apr 26, 2010 6:51 am
Has thanked: 92 times
Been thanked: 12 times

Re: Colin McRae Rally 3 .TAG and track model files

Post by huckleberrypie » Sun Oct 28, 2018 10:48 am

huckleberrypie wrote:What about the character models?
Anyone?

Post Reply