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
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)
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Particle System only collides with one Terrain Collider at a time when Collision Type is set to 'World'
- Editor crashes on StoredGraphicsBuffer::GetGfxBufferID when VFX Graph property is modified during Play Mode and Application.targetFrameRate is used to limit FPS
- Crash on NVAPI_Thunk when changing Player resolution while HDR display is used and Direct3D12 is set as the graphics API
- Only one out of multiple cameras is shown in the Play Mode while HDR display is used and Direct3D12 is set as the graphics API
- The "Paste Component as New" option is incorrectly displayed as active despite the action being prohibited
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.