3ds Max Alembic 파일 확장 참조

3ds Max는 Alembic 파일 사양을 보강하여 추가 데이터를 저장하고 다른 응용 프로그램과 보다 원활하게 데이터를 교환할 수 있도록 지원합니다. 이 확장은 Autodesk 표준을 따르며 다른 Autodesk 제품(예: Maya)과의 상호 운용성을 개선합니다. 이 항목에서는 Autodesk 표준에 대해 설명하고 Alembic 파일 내보내기를 위해 3ds Max에서 입력하는 확장 목록을 제공합니다.

일반 정보

  • 노드 및 특성 이름에는 공백이 없습니다.
  • 사용자 정의 속성은 .userProperties 특성 아래 저장됩니다 형상이 없는 오브젝트에 사용자 정의 데이터를 포함할 수 있도록 .geom 또는 .xform 노드 아래에 위치할 수 있습니다.

추가 UV 채널

  • 추가 UV 채널은 .geom 특성의 .arbGeomParams 아래 저장됩니다.
  • 특성 이름은 채널 이름입니다.
  • UV 데이터만 내보낼 수 있고 UVW는 내보낼 수 없습니다.
  • .vals는 범위 = 2인 kFloat32POD의 배열입니다.
  • .indices는 범위 = 1인 kUint32POD의 배열입니다.

내보내지 않은 데이터

스플라인은 Alembic에서 지원되지 않습니다. 내보내기 위해 스플라인은 NURBS로 변환됩니다.

인스턴스

인스턴스는 Alembic 사양을 따를 때 지원됩니다. 그러나 반복되는 형상은 감지되지 않고, 가져올 때 인스턴스로 변환되지 않습니다.

카메라

3ds Max 장면 카메라는 Alembic으로 내보내집니다.

Maya는 기본적으로 투시 카메라를 내보냅니다(전면, 투시, 측면 및 맨 위).

3ds Max 사용자 정의 데이터 노드

Max 노드
노드 유형
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 합성 오브젝트 수정자에 할당된 사용자 정의 속성을 보관하는 컨테이너입니다. 위와 같습니다. 현재 가져오기에서 지원되지 않습니다.

1.0.0의 새로운 기능
노드 유형 주석
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를 통해 지원됩니다.