FBX export fails due to non-utf-8 channel names #76482

Closed
opened 2020-05-06 19:59:31 +02:00 by Luis · 10 comments

System Information
Operating system: Windows 10
Graphics card: Nvidia GForce GTX 1050

Blender Version
Broken: 2.82a
Worked: never

Short description of error
Can't export FBX with multiple actions. Deleting all actions but one will allow me to export to FBX.

Exact steps for others to reproduce the error
1-Open the file
2-Export to FBX with all actions
3-An error pops up and the export fails
4-Delete all actions but one
5-Export to FBX
6-Export is succeful

base_mesh.blend

**System Information** Operating system: Windows 10 Graphics card: Nvidia GForce GTX 1050 **Blender Version** Broken: 2.82a Worked: never **Short description of error** Can't export FBX with multiple actions. Deleting all actions but one will allow me to export to FBX. **Exact steps for others to reproduce the error** 1-Open the file 2-Export to FBX with all actions 3-An error pops up and the export fails 4-Delete all actions but one 5-Export to FBX 6-Export is succeful [base_mesh.blend](https://archive.blender.org/developer/F8516601/base_mesh.blend)
Author

Added subscriber: @FenrisTheLobo

Added subscriber: @FenrisTheLobo
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'
Member

Can confirm, getting:

  File "/build_linux/bin/2.90/scripts/addons/io_scene_fbx/export_fbx_bin.py", line 2120, in validate_actions
    data_path = fc.data_path
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 8: invalid start byte

Checking if this is something unsupported...

Can confirm, getting: ``` File "/build_linux/bin/2.90/scripts/addons/io_scene_fbx/export_fbx_bin.py", line 2120, in validate_actions data_path = fc.data_path UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 8: invalid start byte ``` Checking if this is something unsupported...
Member

Changed status from 'Confirmed' to: 'Needs User Info'

Changed status from 'Confirmed' to: 'Needs User Info'
Member

There are a bunch of invalid channel names in various [but not all] actions:

Action `attack_gunfu_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `attack_gunfu_D` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `attack_gunfu_Main` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `attack_punch_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `attack_slash_scythe_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `attack_slash_scythe_B` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `attack_throw_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `blocking_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `cinematic_001` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `dash_back` > `poletarget.l` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `dash_back_to_front` > `poletarget.l` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `dash_mini_front` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `death_A` > `foot.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `execution_A_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `execution_A_B` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `fall_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `healing_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `holster_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `hurt_A` > `foot.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `hurt_B` > `foot.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `idle_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `look_back_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `slide_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `sprint_stop` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )
Action `sword_slash_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` )

Not sure where these are coming from?
So FBX export doesnt support this, blender itself shouldnt create such channel paths, are you using an external Addon?
If you remove these bad channels, you can export again without problems:
base_mesh_corrected.blend

Afraid there is not we can do [except wait for ways to reproduce this with blender internal tools -- in this case it would be a bug...]

There are a bunch of invalid channel names in various [but not all] actions: ``` Action `attack_gunfu_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `attack_gunfu_D` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `attack_gunfu_Main` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `attack_punch_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `attack_slash_scythe_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `attack_slash_scythe_B` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `attack_throw_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `blocking_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `cinematic_001` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `dash_back` > `poletarget.l` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `dash_back_to_front` > `poletarget.l` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `dash_mini_front` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `death_A` > `foot.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `execution_A_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `execution_A_B` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `fall_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `healing_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `holster_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `hurt_A` > `foot.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `hurt_B` > `foot.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `idle_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `look_back_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `slide_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `sprint_stop` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) Action `sword_slash_A` > `lowerleg.r` has some invalid FCurve path ( displays as `pose.bon` -- pasted looks like `pose.bonÿÿÿÿlowerleg.r"]` ) ``` Not sure where these are coming from? So FBX export doesnt support this, blender itself shouldnt create such channel paths, are you using an external Addon? If you remove these bad channels, you can export again without problems: [base_mesh_corrected.blend](https://archive.blender.org/developer/F8518671/base_mesh_corrected.blend) Afraid there is not we can do [except wait for ways to reproduce this with blender internal tools -- in this case it would be a bug...]
Philipp Oeser changed title from Can't export multiple actions to FBX to FBX export fails due to non-utf-8 channel names 2020-05-07 19:15:51 +02:00
Author

Quoted Text So FBX export doesnt support this, blender itself shouldnt create such channel paths, are you using an external Addon?

Nope. Only Addon I have installed is fSpy, everything else is factory settings. Knowing what's causing the issue is really a relief though, thanks for the help!.

I'll try to replicate this behaviour and keep you updated.

> Quoted Text So FBX export doesnt support this, blender itself shouldnt create such channel paths, are you using an external Addon? Nope. Only Addon I have installed is fSpy, everything else is factory settings. Knowing what's causing the issue is really a relief though, thanks for the help!. I'll try to replicate this behaviour and keep you updated.

Added subscriber: @mont29

Added subscriber: @mont29

Changed status from 'Needs User Info' to: 'Archived'

Changed status from 'Needs User Info' to: 'Archived'
Bastien Montagne self-assigned this 2020-05-22 11:47:15 +02:00

Thanks for the report, nut indeed all text in Blender is assumed valid utf8, so unless you can give us a way to reproduce such data corruption am afraid there is little we can do here...

Thanks for the report, nut indeed all text in Blender is assumed valid utf8, so unless you can give us a way to reproduce such data corruption am afraid there is little we can do here...
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-addons#76482
No description provided.