Inside Sabertooth
Learn how Sabertooth uses 3ds Max to create 3D interactive projects, including HBO Go’s Game of Thrones interactive experience
  • 1/3
You are here: Forum Home / Autodesk® MotionBuilder® / Open Reality / Shape Geometry Data
  RSS 2.0 ATOM  

Shape Geometry Data
Rate this thread
 
44295
 
Permlink of this thread  
avatar
  • ZachHall
  • Posted: 14 June 2010 02:21 AM
  • Total Posts: 5
  • Joined: 07 June 2010 01:58 PM

I need to be able to access the vertex information stored in a morph target.

When you import a mesh with a morph target on it from Max or Maya the shapes show up as slider values on the object. The sliders are attached to simple AnimatableDouble properties, and do not appear to plug into anything that looks remotely like stored vertex information.

Does anyone know where the vertex data for shapes is stored and how I would go about accessing it?



Replies: 0
avatar
  • qhliao
  • Posted: 18 June 2010 12:44 PM

which version MB you are using?




Replies: 0
avatar
  • MARCIUC
  • Posted: 19 June 2010 04:16 AM

ZachHall 14 June 2010 09:21 AM

I need to be able to access the vertex information stored in a morph target.

When you import a mesh with a morph target on it from Max or Maya the shapes show up as slider values on the object. The sliders are attached to simple AnimatableDouble properties, and do not appear to plug into anything that looks remotely like stored vertex information.

Does anyone know where the vertex data for shapes is stored and how I would go about accessing it?



http://www.3d-source.com

Replies: 0
avatar
  • ZachHall
  • Posted: 19 June 2010 01:43 PM

I am using Motion Builder 2010.



Replies: 0
avatar
  • qhliao
  • Posted: 22 June 2010 10:37 AM

There is no access to the shape vertex info in MB2010 and before versions. In MB2011 there a set of FBModel::ShapeXXXXXX() functions to do so.

/**
 * \name Shape Management Interface
 */
 //@{

 /** Get Shape Count. */
 
int ShapeGetCount() const;

 
/** Return the shape Name */
 
const charShapeGetName(int pShapeIdx) const;

 
/** Add new shape
 * \param pName the shape name
 * \return the index of the new shape, -1 if the shape adding fail.
 */
 
int ShapeAdd(const charpName)

 
/** Clears all the shapes*/
 
void ShapeClearAll()

 
/**  Init the shape.
 * \param pShapeIdx The index of the shape to be inited.
 * \param pDiffSize Total number of different point (pos or normal) compared to base geometry.
 * \param pWithNormal Currently normal won't be considered during shape blending. 
 */
 
void ShapeInit(int pShapeIdxint pDiffSizebool pWithNormal false)

 
/** Return the shape's total diff points count
 * \param pShapeIdx The index of the shape
 */
 
int ShapeGetDiffPointCount(int pShapeIdx) const;

 
/** Set the differentiate point.
 * \param pShapeIdx The index of the shape
 * \param pDiffIndex The index of the diff point in this shape.
 * \param pOriIndex The index of the diff point in the original geometry.
 * \param pPosDiff The position differentiation.
 * \param pNormalDiff The normal differentiation.
 */
 
bool ShapeSetDiffPoint(int pShapeIdxint pDiffIndexint pOriIndex, const FBVertexpPosDiff)
 bool ShapeSetDiffPoint(int pShapeIdx
int pDiffIndexint pOriIndex, const FBVertexpPosDiff, const FBNormalpNormalDiff)

 
/** Get the differentiate point.
 * \param pShapeIdx The index of the shape
 * \param pDiffIndex The index of the diff point in this shape.
 * \param pOriIndex The index of the diff point in the original geometry.
 * \param pPosDiff The position differentiation.
 * \param pNormalDiff The normal differentiation.
 */
 
bool ShapeGetDiffPoint(int pShapeIdxint pDiffIndexintpOriIndexFBVertexpPosDiff) const;
 
bool ShapeGetDiffPoint(int pShapeIdxint pDiffIndexintpOriIndexFBVertexpPosDiffFBNormalpNormalDiff) const;

 
//@}



Replies: 1
/img/forum/dark/default_avatar.png

Thanks ghliao.

Thats disappointing, but good to know.

Author: ZachHall

Replied: 23 June 2010 03:41 PM