3ds Max는 Alembic 파일 사양을 보강하여 추가 데이터를 저장하고 다른 응용 프로그램과 보다 원활하게 데이터를 교환할 수 있도록 지원합니다. 이 확장은 Autodesk 표준을 따르며 다른 Autodesk 제품(예: Maya)과의 상호 운용성을 개선합니다. 이 항목에서는 Autodesk 표준에 대해 설명하고 Alembic 파일 내보내기를 위해 3ds Max에서 입력하는 확장 목록을 제공합니다.
스플라인은 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 유형은 직접 지원됩니다. 메타데이터 : "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 | Ouint3OUInt32Property2property | 노드의 오브젝트 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를 통해 지원됩니다.