Transfer point cache data from Face Robot to 3ds max

I ran into the problem of transfer of point cache data from Softimage Face Robot in 3ds max, 3ds max has  in world coordinates Z-Up axis, while  Softimage Y-Up axis. If you are writing point cache data in  Softimage and then try to load it in 3dsmax’s PointCache modifier, then after the data is loaded (because mismatch axes) coordinates of the vertices are not correct and the model will seem inverted.

You can solve this problem by adding the XForm modifier on top of the PointCache modifier with subsequent correction of the rotation and position XForm modifier gizmo. This can be done manually using the snapping.
To automate this process and avoid errors when working by hand, I wrote a small script that you can use in this situation.

 Y_up_Matrix = (matrix3 [1,0,0] [0,0,1] [0,-1,0] [0,0,0])
 modPanel.addModToSelection (xform())
 fixedMatrix = Y_up_Matrix
 fixedMatrix.row4 = $.transform.row4 *-1
 $.modifiers[#xform].gizmo.transform = fixedMatrix

These solutions are applicable not only when transferring point cache data from Softimage but also from any other package with the Y-Up axis, e.g. Maya.

How use:

  1. Select one object
  2. Run maxscript code snippet

Leave a Reply