3ds Max は、追加データを保存し、他のアプリケーションとのデータ交換の機能を強化するために、Alembic ファイルの仕様を拡張しました。これらの拡張機能はオートデスクの標準に準拠し、他のオートデスク製品(Maya など)との相互運用性が強化されています。このトピックでは、オートデスクの標準について説明し、3ds Max が Alembic ファイルの書き出しのために強化した特定の拡張機能をリストします。
スプラインは Alembic ではサポートされません。スプラインを書き出す場合は NURBS に変換されます。
インスタンスは、Alembic 仕様に準拠している場合にサポートされます。ただし、反復するジオメトリは検出されず、読み込み時にインスタンスに変換されません。
3ds Max シーン カメラは Alembic にエクスポートされます。
既定では、Maya はパース カメラ(正面、パース、側面、上面)を書き出します。
ノード | タイプ | ノート |
---|---|---|
Node/Node/MaxVisibility | スカラー: Float32 |
MAX オブジェクト属性を保持するためのコンテナ。サポートされている属性は次のとおりです: { kHide, _T("Hide"), CustomAttribute::DataType::kBool}, { kFreeze, _T("Freeze"), CustomAttribute::DataType::kBool}, { kSeeThrough, _T("SeeThrough"), CustomAttribute::DataType::kBool}, { kDisplayAsBox,_T("DisplayAsBox"), CustomAttribute::DataType::kBool }, { kBackfaceCull,_T("BackfaceCull"), CustomAttribute::DataType::kBool }, { kEdgesOnly,_T("EdgesOnly"), CustomAttribute::DataType::kBool}, { kVertexTicks,_T("VertexTicks"), CustomAttribute::DataType::kBool}, kMotionPaths,_T("MotionPaths"), CustomAttribute::DataType::kBool}, { kIgnoreExtents,_T("IgnoreExtents"), CustomAttribute::DataType::kBool}, { kShowFrozenInGray,_T("ShowFrozenInGray"), CustomAttribute::DataType::kBool}, { kNeverDegrade,_T("NeverDegrade"), CustomAttribute::DataType::kBool}, { kRenderable,_T("Renderable"), CustomAttribute::DataType::kBool}, { kInheritVisibility,_T("InheritVisibility"), CustomAttribute::DataType::kBool }, { kVisibleToCamera,_T("VisibleToCamera"), CustomAttribute::DataType::kBool}, { kVisibleToReflection,_T("VisibleToReflection"), CustomAttribute::DataType::kBool }, { kReceiveShadows,_T("ReceiveShadows"), CustomAttribute::DataType::kBool}, { kCastShadows,_T("CastShadows"), CustomAttribute::DataType::kBool}, { kApplyAtmospherics,_T("ApplyAtmospherics"), CustomAttribute::DataType::kBool}, { kRenderOccludedObjects,_T("RenderOccludedObjects"), CustomAttribute::DataType::kBool }, { kDisplayByLayer,_T("DisplayByLayer"), CustomAttribute::DataType::kBool }, { kRenderingByLayer,_T("RenderingByLayer"), CustomAttribute::DataType::kBool }, { kMotionBlurByLayer,_T("MotionBlurByLayer"), CustomAttribute::DataType::kBool }, { kMotionBlurEnabled,_T("MotionBlurEnabled"), CustomAttribute::DataType::kBool}, { kMotionBlurMultiplier,_T("MotionBlurMultiplier"), CustomAttribute::DataType::kFloat}, { kMotionBlurType,_T("MotionBlurType"), CustomAttribute::DataType::kInt }, { kObjectID,_T("ObjectID"), CustomAttribute::DataType::kULong }, { kUserPropBuffer,_T("UserPropBuffer"), CustomAttribute::DataType::kString }, |
Node/Node/MaxCustomAttributes_BaseObject | 複合 |
基本オブジェクトに割り当てられたカスタム アトリビュートを保持するコンテナ。すべての CA タイプが直接サポートされますが、Nodes、Texmaps、および Material は例外です。これらの参照名は文字列および配列として保存され、選択された要素インデックスのみを保存します。 メタデータ「max_a_uihint」が各アトリビュートに接続され、データがどのように使用されるかのヒントを提供します。これは ParamType および ParamType2 列挙型です。 |
Node/Node/MaxCustomAttributes_Modifier | 複合 | オブジェクト モディファイヤに割り当てられたカスタム アトリビュートを保持するコンテナ。前述の内容と同じです。 注記: 現在読み込み時にはサポートされていません。 |
ノード | タイプ | [コメント] |
---|---|---|
Node/Node/.userProperties/Max_CustomAttributes_BaseObject | ||
Node/Node/.userProperties/Max_CustomAttributes_Modifier | ||
Node/Node/.userProperties/Max_CustomAttributes_Modifier | OStringProperty | このノードを含むレイヤの名前を含みます |
Node/Node/.geom/.arbGeomParams/Max_Map_Channel "Name" | 複合 | 個々のチャネルを保持するコンテナ |
Node/Node/.geom/.arbGeomParams/Max_Map_Channel "Name"/.vals | OV2fGeomParam または OV3fGeomParam の配列 | テクスチャ データを含みます |
Node/Node/.geom/.arbGeomParams/Max_Map_Channel "Name"/.indices | OInt32Property の配列 | テクスチャ インデックスを含みます |
Node/Node/.geom/.arbGeomParams/Max_Map_Channel "Name"/Max_Map_ChannelNumber | スカラー OInt32Property | Max によって使用されるマップ チャネル |
Node/Node/.geom/.arbGeomParams/Max_Vertex_Color_Map | 複合 | 頂点カラー チャネルのコンテナ |
Node/Node/.geom/.arbGeomParams/Max_Vertex_Color_Map/.vals | OC3fGeomParam の配列 | 頂点カラー データを含む |
Node/Node/.geom/.arbGeomParams/Max_Vertex_Color_Map/.indices | OInt32Property の配列 | 頂点カラー インデックス |
Node/Node/.geom/.userProperties/Max_MaterialName | OStringProperty | ノードのマテリアルの名前を含む |
Node/Node/.geom/.userProperties/Max_ObjectID | OUInt32Property | ノードのオブジェクト ID を含む |
Node/Node/.geom/Max_MaterialID_# | 複合 | 面セット スキーマ OFaceSetSchema を含む |
Node/Node/.geom/Max_MaterialID_#/.faceset | ||
Node/Node/.geom/Max_MaterialID_#/.faceset/.selfBnds | ||
Node/Node/.geom/Max_MaterialID_#/.faceset/.faces | ||
Node/Node/.geom/Max_MaterialID_#/Max_MaterialID | OInt32Property | 面マテリアル ID の追加プロパティ |
ノード | タイプ | [コメント] |
---|---|---|
BezierName/BezierName:# | ||
BezierName/BezierName:#/.geom/ | ||
BezierName/BezierName:#/.geom/.selfBnds | ||
BezierName/BezierName:#/.geom/.P | ||
BezierName/BezierName:#/.geom/nVertices | ||
BezierName/BezierName:#/.geom/curveBasisAndType | ||
BezierName/BezierName:#/.geom/width | ||
BezierName/BezierName:#/MaxLayerName | ||
BezierName/BezierName:#/\MaxObjectID | ||
Node/NURBSName | ||
Node/NURBSName/.geom/ | ||
Node/NURBSName/.geom/.selfBnds | ||
Node/NURBSName/.geom/.P | ||
Node/NURBSName/.geom/nVertices | ||
Node/NURBSName/.geom/curveBasisAndType | ||
Node/NURBSName/.geom/width | ||
Node/NURBSName/MaxLayerName | ||
Node/NURBSName/\MaxObjectID |
以下に、サポートされているカメラのプロパティとそれらが Max でどのように計算されるかを示します。
CameraState lCameraState; Interval lValid( TIME_NegInfinity, TIME_PosInfinity ); RefResult lRefResult; lRefResult = lGenCamera->EvalCameraState( t, lValid, &lCameraState ); Interface *lMaxInterface = GetCOREInterface(); double lLensSqueeenzeRatio = lMaxInterface ? lMaxInterface->GetRendApect() : 1.0; mSample.setLensSqueezeRatio( lLensSqueeenzeRatio ); double lApertureWidth = 3.6f; double lApertureHeight = 2.4f; if ( lMaxInterface ) { lApertureWidth = lMaxInterface->GetRendApertureWidth() * MATH_MM_TO_CM; float lImageAspect = lMaxInterface->GetRendImageAspect(); if ( lImageAspect <= 0.0f ) { lImageAspect = 0.001f; } lApertureHeight = lApertureWidth * ( 1.0 / lImageAspect ); } mSample.setHorizontalAperture( lApertureWidth ); mSample.setVerticalAperture( lApertureHeight ); double lAngleOfView = lCameraState.fov * MATH_RAD_TO_DEG; int lFovType = lGenCamera->GetFOVType(); double lFocalLength = CalculateFocalLength( lAngleOfView, lApertureWidth, lApertureHeight, lFovType, lLensSqueeenzeRatio ) * ( 1.0 / MATH_MM_TO_CM ); mSample.setFocalLength( lFocalLength ); mSample.setNearClippingPlane( lCameraState.nearRange ); mSample.setFarClippingPlane( lCameraState.farRange ); mSample.setFStop( lGenCamera->GetDOFFStop( t ) ); mSample.setFocusDistance( lCameraState.tdist );
サポートされていません。
単純な PFlow パーティクルは OPointsSchema を通じてサポートされています。