Maniphest T66469

OBJ exports incorrectly in 2.8
Closed, Archived

Assigned To
Bastien Montagne (mont29)
Authored By
BCB (BaconCatBug)
Jul 5 2019, 1:35 PM
Tags
  • BF Blender
Subscribers
Bastien Montagne (mont29)
BCB (BaconCatBug)
Philipp Oeser (lichtwerk)

Description

System Information
Operating system: Windows 8.1
Graphics card: nVidia 1060

Blender Version
Broken: 2.80, f990c23bcfb5, 2019-07-03
Worked: 2.79, f4dc9f9d68b, 2018-03-22

Short description of error
When exporting a project as an OBJ file, the file is not correctly structured (parents and the like) and thus causes errors in programs such as Tabletop Simulator that require that structure to be correct.

Exact steps for others to reproduce the error
Step 1: Create or import a multi-object project.
Step 2: Select all objects
Step 3: Deselect and reselect the desired top level parent object.
Step 4: Press Control P and select "Object". All objects are now under the parent object.
Step 5: Export as OBJ.

2.79 exports the OBJ correctly. 2.8 does not.

Related Objects

Mentioned Here
rBf4dc9f9d68bd: Fix T54360: FFMPEG bitrate not editable for all codecs
rBf990c23bcfb5: Fix T66366: Multi object edit makes blender crash

Event Timeline

BCB (BaconCatBug) created this task.Jul 5 2019, 1:35 PM
Philipp Oeser (lichtwerk) lowered the priority of this task from 90 to 30.Jul 5 2019, 1:50 PM
Philipp Oeser (lichtwerk) added a subscriber: Philipp Oeser (lichtwerk).

Mind sharing a .blend file so we can reproduce?

  • Also please describe exactly where this fails ["not correctly structured (parents and the like)"] in regards to what is expected vs. what was actually exported...
  • Also: do exporter settings have an influence on this [Objects as OBJ objects, Objects as OBJ groups, ...]?
BCB (BaconCatBug) added a comment.EditedJul 5 2019, 2:25 PM

Export settings are both the same.

Please find attached with screenshots, the exported OBJs and a blend file before and after parenting (created with 2.79)

The OBJ exported with 2.79 is correct, the OBJ exported with 2.8 is not. In 2.79 the OBJ exporter puts the parent object as the first entry, 2.8 does not.

Philipp Oeser (lichtwerk) raised the priority of this task from 30 to 80.Jul 5 2019, 3:30 PM
Philipp Oeser (lichtwerk) added a subscriber: Bastien Montagne (mont29).

Hm, cannot find anything hinting at parent relationships in either the 2.79 nor the 2.8 exported OBJ file.

Seems like OBJ doesnt even support this? (see https://en.wikipedia.org/wiki/Wavefront_.obj_file#Other_geometry_formats)

Obj files also do not support mesh hierarchies

Not sure how the Tabletop Simulator software creates a hierarchy out of the 2.79 OBJ, maybe @Bastien Montagne (mont29) knows more?

Bastien Montagne (mont29) changed the task status from Unknown Status to Unknown Status.Jul 5 2019, 3:33 PM
Bastien Montagne (mont29) claimed this task.

There is no concept of object relationship in OBJ, order of objects there is totally irrelevant. No bug here, use more advanced formats (like infamous FBX) if you need that kind of data.

Philipp Oeser (lichtwerk) added a comment.Jul 5 2019, 3:41 PM

These two links also suggest to join all objects into one when exporting OBJ to the Tabletop simulator:

BCB (BaconCatBug) added a comment.EditedJul 5 2019, 4:26 PM
In T66469#713999, @Bastien Montagne (mont29) wrote:

There is no concept of object relationship in OBJ, order of objects there is totally irrelevant. No bug here, use more advanced formats (like infamous FBX) if you need that kind of data.

So why when I export with 2.79 the objects are listed in the same order as the hierarchy and not on 2.8? This causes OBJs exported for Tabletop Simulator to not work, as I need the tintable part to only be part of the model.

This is literally 2.8 being non-functional and 2.79 being functional so why is there a change to how 2.8 exports OBJs?

Am I officially being told to sod off and use 2.79 instead of 2.8?

Bastien Montagne (mont29) added a comment.Jul 5 2019, 4:29 PM

Object listing is not guarranted in any way in Blender, and your 'trick' would only work if you have a single parent object anyway, even in 2.79, and if it was created in some specific way, etc. Again, this is not and has never been supported, OBJ does not convey any notion of relationships between its objects. If Tabletop abuse it to infer some, that's their problem, and imho a bug regarding OBJ specs.

BCB (BaconCatBug) added a comment.Jul 5 2019, 4:31 PM
In T66469#714038, @Bastien Montagne (mont29) wrote:

Object listing is not guarranted in any way in Blender, and your 'trick' would only work if you have a single parent object anyway, even in 2.79, and if it was created in some specific way, etc. Again, this is not and has never been supported, OBJ does not convey any notion of relationships between its objects. If Tabletop abuse it to infer some, that's their problem, and imho a bug regarding OBJ specs.

So why does it always and without fail work in 2.79 and not with 2.8?