Wavefront OBJ export with transformations?

Hello.

I added some objects like cube, sphere and a cylinder on different positions with different rotations.

Then exported it as an *.obj file.

The problem here is, that the transformations are not included in the *.obj file.

I read this:
Blender Manual latest - Wavefront OBJ

Note
There is no support for mesh vertex colors, armatures, animation, lights, cameras, empty objects, parenting, or transformations.

Ok. No transformations are exported. But is there a way to do that? A little trick that helps me to get the positions and rotations of the objects?

Thanks.

I know apply. This doesn’t help. The exported *.obj file doesn’t have any information about the objects position and rotation.

OK. I think, that there is not a solution for my problem. Blender already said that in the manual for wavefront obj. “no support for transformations”.

I just thought, that there is maybe a little trick that I can use. :slight_smile:

Do you really mean transformation or animation?

Transformation works for me.

Blender:

Autodesk FBX-Viewer:

Meshlab:

Windows 3D-Viewer:

Yes. All objects looks like I did it in Blender. But when I export it as an *.obj file. I don’t know the objects position like ( X: 0, Y: 10, Z: 0 ) or don’t know the objects rotation like ( X: 0, Y: 90, Z: 0 ) etc. I only see for all objects position ( X: 0, Y: 0, Z: 0 ) and rotation ( X: 0, Y: 0, Z: 0 ). The transformations information are not saved in the *.obj file.

Ah, you mean the Coordinates.
With the Apply command you have set all coordinates to zero.
You can try Apply->Visual Transform.
There the coordinates are obtained.

That doesn’t help either. It’s because of the structure of *obj files.
I added a simple cube, rotated it 45 degrees and exported it. No position and rotation information is saved in the *.obj file.

Test1.obj

mtllib untitled.mtl
o Cube_Cube.003
v 1.414214 -1.000000 0.000000
v 1.414214 1.000000 0.000000
v 0.000000 -1.000000 1.414214
v 0.000000 1.000000 1.414214
v 0.000000 -1.000000 -1.414214
v 0.000000 1.000000 -1.414214
v -1.414214 -1.000000 0.000000
v -1.414214 1.000000 0.000000
vt 0.375000 0.000000
vt 0.625000 0.000000
vt 0.625000 0.250000
vt 0.375000 0.250000
vt 0.625000 0.500000
vt 0.375000 0.500000
vt 0.625000 0.750000
vt 0.375000 0.750000
vt 0.625000 1.000000
vt 0.375000 1.000000
vt 0.125000 0.500000
vt 0.125000 0.750000
vt 0.875000 0.500000
vt 0.875000 0.750000
vn 0.7071 0.0000 0.7071
vn -0.7071 0.0000 0.7071
vn -0.7071 0.0000 -0.7071
vn 0.7071 0.0000 -0.7071
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
usemtl None
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/4/2 4/3/2 8/5/2 7/6/2
f 7/6/3 8/5/3 6/7/3 5/8/3
f 5/8/4 6/7/4 2/9/4 1/10/4
f 3/11/5 7/6/5 5/8/5 1/12/5
f 8/5/6 4/13/6 2/14/6 6/7/6

It looks like the coordinates are saved in the points and not in the axis (gizmo).

Export your object.
Import your object into Blender, the axis is on 0 0 0, but the rotation and the position of the object are correct.

Right Mouse Button -> Set Origin -> Origin to Geometry.
Now the coordinates should look the same as before the export (if you didn’t mess with the axes during export)

What do you want to do?

Want to use the *.obj file in a game engine.

Wouldn’t FBX, DAE, GLTF, etc. be the better formats?
OBJ is a very old format and supports very few features

E.g. you can save armatures and animations in FBX.

Yeah. I know. But the script which I use only accepts *.obj files.

Whatever. Thank you for your help.

I’m having the same problem. Did you found any solution?

Seems this feature is not supported. Possible solution here(updated script):