3DS Max FBX Import + Export - Removing my custom attributes (Reproducible)

3DS Max FBX Import + Export - Removing my custom attributes (Reproducible)

Anonymous
Not applicable
1,493 Views
2 Replies
Message 1 of 3

3DS Max FBX Import + Export - Removing my custom attributes (Reproducible)

Anonymous
Not applicable

I've encountered a scenario where my custom fbx attributes are being removed when importing an FBX file, then exporting to another FBX. I cannot tell whether its the import or export operation that is removing these attributes.

 

I created a test to try and reproduce the issue, but max imported and exported and kept the custom attribute I was interested in. I tried this with a single object, many objects (Sphere 1-n).

 

Eventually I found that if there are non-unique names, the attributes will be lost. If I have custom attributes on 6 nodes with the names "Sphere", "Sphere", "Sphere 1", "Sphere 2", "Sphere 3", "Sphere", then 2 of the 3 "Sphere" nodes will lose their attributes.

 

I've attached a zip with 4 files. All are in ascii for quick and easy inspection.

- ManySpheres-Original.fbx

Contains lots of spheres with lots of re-used names, i.e. "Child 0" to "Child 6".

 

- ManySpheres-MaxImportExport.fbx

Created after importing and then exporting the above original fbx.

Custom Attributes being lost here

 

- ManySpheresUniqueNames-Original.fbx

Same structure as the first file but node depth is added into the name of the nodes to make them more unique. Note: they are not globally unique.

 

- ManySpheresUniqueNames-MaxImportExport.fbx

The above file but imported into max and exported. The attributes are still there.

 

The attribute, "Fred" is being used.

 

 

CustomAttributes.jpg

 

In addition I am using the "UDP3DSMAX" attribute that 3ds max uses in addition to my custom attribute - to try and figure out what is happening. To my surprise this attribute is being retained in "ManySpheres-MaxImportExport.fbx".

 

The following node (among many) kept the UDP3DSMAX attribute value, but lost my "Fred" custom attribute.

	Model: 2023267551824, "Model::Child 6", "Mesh" {
		Version: 232
		Properties70:  {
			P: "InheritType", "enum", "", "",1
			P: "ScalingMax", "Vector3D", "Vector", "",0,0,0
			P: "DefaultAttributeIndex", "int", "Integer", "",0
			P: "UDP3DSMAX", "KString", "", "U", "Fred = {254bf79d-0fa9-40de-983d-2c89ac6a1a34}&cr;&lf;"
			P: "MaxHandle", "int", "Integer", "UH",16
		}
		Shading: T
		Culling: "CullingOff"
	}

 

 

However, as the above screenshot shows, there are 7 instances that did make it in the exported file (ManySpheres-MaxImportExport.fbx line 174125):

 

Model: 2023267543056, "Model::Child 0", "Mesh" {
		Version: 232
		Properties70:  {
			P: "InheritType", "enum", "", "",1
			P: "ScalingMax", "Vector3D", "Vector", "",0,0,0
			P: "DefaultAttributeIndex", "int", "Integer", "",0
			P: "Lcl Rotation", "Lcl Rotation", "", "A",90.0000025044781,-0,0
			P: "Lcl Scaling", "Lcl Scaling", "", "A",0.01,0.01,0.01
			P: "Fred", "KString", "", "U", "{431b78a6-e383-4883-b84f-513ab2d3462d}"
			P: "UDP3DSMAX", "KString", "", "U", "Fred = {97ce4d9f-ef3e-489c-8708-4253e15284a2}&cr;&lf;"
			P: "MaxHandle", "int", "Integer", "UH",9
		}
		Shading: T
		Culling: "CullingOff"
	}
	Model: 2023267532096, "Model::Child 1", "Mesh" {
		Version: 232
		Properties70:  {
			P: "InheritType", "enum", "", "",1
			P: "ScalingMax", "Vector3D", "Vector", "",0,0,0
			P: "DefaultAttributeIndex", "int", "Integer", "",0
			P: "Lcl Rotation", "Lcl Rotation", "", "A",2.03555499613665e-13,-0,0
			P: "Fred", "KString", "", "U", "{5246d038-a918-4019-b6cc-fe2a445d04a3}"
			P: "UDP3DSMAX", "KString", "", "U", "Fred = {1934539c-18b8-43df-a477-9f91ac862711}&cr;&lf;"
			P: "MaxHandle", "int", "Integer", "UH",10
		}
		Shading: T
		Culling: "CullingOff"
	}
	Model: 2023267547440, "Model::Child 2", "Mesh" {
		Version: 232
		Properties70:  {
			P: "InheritType", "enum", "", "",1
			P: "ScalingMax", "Vector3D", "Vector", "",0,0,0
			P: "DefaultAttributeIndex", "int", "Integer", "",0
			P: "Fred", "KString", "", "U", "{6f8faa01-d57c-4e22-b0ea-a1868d74b981}"
			P: "UDP3DSMAX", "KString", "", "U", "Fred = {5a6af1b7-9f61-41cc-ab8d-ebb273e895b6}&cr;&lf;"
			P: "MaxHandle", "int", "Integer", "UH",11
		}
		Shading: T
		Culling: "CullingOff"
	}
	Model: 2023267534288, "Model::Child 3", "Mesh" {
		Version: 232
		Properties70:  {
			P: "InheritType", "enum", "", "",1
			P: "ScalingMax", "Vector3D", "Vector", "",0,0,0
			P: "DefaultAttributeIndex", "int", "Integer", "",0
			P: "Fred", "KString", "", "U", "{80a9e6c8-3922-4706-9413-979caae33fec}"
			P: "UDP3DSMAX", "KString", "", "U", "Fred = {3cd456eb-7912-44b0-9939-8fb4b18ae7a4}&cr;&lf;"
			P: "MaxHandle", "int", "Integer", "UH",12
		}
		Shading: T
		Culling: "CullingOff"
	}
	Model: 2023267536480, "Model::Child 4", "Mesh" {
		Version: 232
		Properties70:  {
			P: "InheritType", "enum", "", "",1
			P: "ScalingMax", "Vector3D", "Vector", "",0,0,0
			P: "DefaultAttributeIndex", "int", "Integer", "",0
			P: "Fred", "KString", "", "U", "{fc90c78b-c374-40cf-9ea1-bb2f8cf64fe1}"
			P: "UDP3DSMAX", "KString", "", "U", "Fred = {e90fe5d2-7ca1-4c87-b6fa-b6183b7399ea}&cr;&lf;"
			P: "MaxHandle", "int", "Integer", "UH",13
		}
		Shading: T
		Culling: "CullingOff"
	}
	Model: 2023267545248, "Model::Child 5", "Mesh" {
		Version: 232
		Properties70:  {
			P: "InheritType", "enum", "", "",1
			P: "ScalingMax", "Vector3D", "Vector", "",0,0,0
			P: "DefaultAttributeIndex", "int", "Integer", "",0
			P: "Fred", "KString", "", "U", "{e7f3bee8-5471-4d50-96cb-05aa80874f56}"
			P: "UDP3DSMAX", "KString", "", "U", "Fred = {deb97436-19b9-430d-bc51-d8b651004878}&cr;&lf;"
			P: "MaxHandle", "int", "Integer", "UH",14
		}
		Shading: T
		Culling: "CullingOff"
	}
	Model: 2023267549632, "Model::Child 6", "Mesh" {
		Version: 232
		Properties70:  {
			P: "InheritType", "enum", "", "",1
			P: "ScalingMax", "Vector3D", "Vector", "",0,0,0
			P: "DefaultAttributeIndex", "int", "Integer", "",0
			P: "Fred", "KString", "", "U", "{260c5c7f-7bc2-4d0f-ba91-873f54a8c7bb}"
			P: "UDP3DSMAX", "KString", "", "U", "Fred = {78fbb7b2-b3cf-4367-929e-971258ddad21}&cr;&lf;"
			P: "MaxHandle", "int", "Integer", "UH",15
		}
		Shading: T
		Culling: "CullingOff"
	}
	Model: 2023267551824, "Model::Child 6", "Mesh" {
		Version: 232
		Properties70:  {
			P: "InheritType", "enum", "", "",1
			P: "ScalingMax", "Vector3D", "Vector", "",0,0,0
			P: "DefaultAttributeIndex", "int", "Integer", "",0
			P: "UDP3DSMAX", "KString", "", "U", "Fred = {254bf79d-0fa9-40de-983d-2c89ac6a1a34}&cr;&lf;"
			P: "MaxHandle", "int", "Integer", "UH",16
		}
		Shading: T
		Culling: "CullingOff"
	}

Notice that all 7 of those custom attributes are all together sequentially.

 

 

0 Likes
1,494 Views
2 Replies
Replies (2)
Message 2 of 3

Anonymous
Not applicable

Forgot to mention, I am using:

3ds Max 2020

Exporting with:

FBX Plug-in version: 2019.2 Release

Type: ASCII 

Format: FBX 2018

0 Likes
Message 3 of 3

SentientComputingAU
Contributor
Contributor

Forgive the bump, but  this post was automatically flagged as spam and only recently got it re-listed.

 

I have submitted a bug report

0 Likes