Search Issue Tracker

By Design

Votes

0

Found in

2022.2.0a1

Issue ID

1412968

Regression

No

[Mesh][Prefab] With skinnedMeshRenderer component in a prefab - bones list is not updated after reimporting model

Scene Management

-

Steps (to see the problem):
1. open repro project, open SampleScene
2. In hierarchy, select "INSTANCE-FBX" > "SpitterMesh" gameobject
3. in inspector, check the value in "Inspector Enhancements" > "Exposed data" > "Skinned mesh renderer bone count"
4. note there are 135 bones
- in project tab, select "FBX" > "SpitterMesh (Mesh)" and check inspector > "Skin:" to confirm 135 bones on current FBX
- this prefab is directly instantiated from the FBX and is correctly updated when FBX is modified or import settings changes
5. in hierarchy, select "INSTANCE-Prefab-A-optimize-off" > "SpitterMesh" gameobject
6. in inspector, check the value in "Inspector Enhancements" > "Exposed data" > "Skinned mesh renderer bone count"
7. note there are 73 bones
- in project tab, select "FBX-ORIGINAL" > "SpitterMesh (Mesh)" and check inspector > "Skin:" to confirm 73 bones on the old FBX
- this prefab is instantiated from a prefab that was first created when the model contained 73 bones (before artist made changes to FBX)

EXPECTED: at step 7, the prefab using "FBX.fbx" model should have 135 bones on the skinnedmeshrenderer to work correctly with the new mesh
ACTUAL: at step 7, the skinnedmeshrenderer is shown to have the old bone list of 73 bones from the original FBX

Repro: 2021.2.16f1

Workaround steps (to fix):
- open the affected prefab ("Prefab-A-optimize-off")
- delete the "Skeleton" and "SpitterMesh" game objects
- still in prefab editing mode, drag and drop the FBX into the scene view or hierarchy (to instantiate the FBX inside the prefab)
- then close and save the prefab
RESULT: now, the prefab should contain a nested prefab which will be updated with any changes to the FBX

More info --

Steps (to create the repro):
- import an FBX with a skinned model (must have a rig and skinned model)
- drag and drop the FBX from project tab to the scene view or hierarchy - to instantiate the FBX as a gameobject
- drag and drop the gameobject from hierarchy to project tab to make a prefab
- choose "original prefab" from popup dialog
- also repro using "prefab variant" from popup dialog
- change the FBX rig somehow in authoring software (for example, delete 1 bone from the rig)
- export the FBX and be sure to overwrite the original (take a backup of original first, if needed)

Expected: prefab skinnedmeshrenderer component has correct number of bones according to the assigned model
Actual: skinnedmeshrenderer component in the prefab has old bones list (according to the original FBX used at time of creating prefab)

  1. Resolution Note:

    This behavior is by design. By selecting "Original Prefab" a copy of the Prefab from which the selected GameObject was instantiated is created. This copy is called an "Original Prefab" because is not related in any way to the initial Prefab meaning that changing the initial Prefab will not change the Copy. I've also tested for Variants and the behavior is as expected - the number of bones gets updated. 

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.