export interface IVRMVector3 { x: number; y: number; z: number; } /** * extensions.VRM */ export interface IVRM { exporterVersion: string; specVersion: string; meta: IVRMMeta; humanoid: IVRMHumanoid; firstPerson: IVRMFirstPerson; blendShapeMaster: IVRMBlendShapeMaster; secondaryAnimation: IVRMSecondaryAnimation; materialProperties: IVRMMaterialProperty[]; } /** * extensions.VRM.meta */ export interface IVRMMeta { title: string; version: string; author: string; contactInformation?: string; reference?: string; texture?: number; } /** * extensions.VRM.humanoid */ export interface IVRMHumanoid { humanBones: IVRMHumanoidBone[]; armStretch?: number; legStretch?: number; upperArmTwist?: number; lowerArmTwist?: number; upperLegTwist?: number; lowerLegTwist?: number; feetSpacing?: number; hasTranslationDoF?: boolean; } export interface IVRMHumanoidBone { bone: string; node: number; useDefaultValues: boolean; min?: IVRMVector3; max?: IVRMVector3; center?: IVRMVector3; axisLength?: number; } export interface IVRMFirstPersonMeshAnnotation { mesh: number; firstPersonFlag: string; } export interface IVRMFirstPersonDegreeMap { curve: number[]; xRange: number; yRange: number; } /** * extensions.VRM.firstPerson */ export interface IVRMFirstPerson { firstPersonBone: number; firstPersonBoneOffset: IVRMVector3; meshAnnotations: IVRMFirstPersonMeshAnnotation[]; lookAtTypeName: 'Bone' | 'BlendShape'; lookAtHorizontalInner: IVRMFirstPersonDegreeMap; lookAtHorizontalOuter: IVRMFirstPersonDegreeMap; lookAtVerticalDown: IVRMFirstPersonDegreeMap; lookAtVerticalUp: IVRMFirstPersonDegreeMap; } /** * extensions.VRM.blendShapeMaster */ export interface IVRMBlendShapeMaster { blendShapeGroups: IVRMBlendShapeGroup[]; } export interface IVRMBlendShapeGroup { name: string; presetName: string; binds: IVRMBlendShapeBind[]; materialValues: IVRMBlendShapeMaterialBind[]; isBinary: boolean; } export interface IVRMBlendShapeBind { mesh: number; index: number; weight: number; } export interface IVRMBlendShapeMaterialBind { materialName: string; propertyName: string; targetValue: number[]; } export interface IVRMSecondaryAnimationSpring { comment: string; stiffiness: number; gravityPower: number; gravityDir: IVRMVector3; dragForce: number; center: number; hitRadius: number; bones: number[]; colliderGroups: number[]; } export interface IVRMSecondaryAnimationCollider { offset: IVRMVector3; radius: number; } export interface IVRMSecondaryAnimationColliderGroup { node: number; colliders: IVRMSecondaryAnimationCollider[]; } /** * extensions.VRM.secondaryAnimation */ export interface IVRMSecondaryAnimation { boneGroups: IVRMSecondaryAnimationSpring[]; colliderGroups: IVRMSecondaryAnimationColliderGroup[]; } export declare enum IVRMMaterialPropertyShader { VRM_USE_GLTFSHADER = "VRM_USE_GLTFSHADER", VRMMToon = "VRM/MToon", VRMUnlitTransparentZWrite = "VRM/UnlitTransparentZWrite" } export interface IVRMMaterialPropertyFloatProperties { _Cutoff?: number; _BumpScale?: number; _ReceiveShadowRate?: number; _ShadingGradeRate?: number; _ShadeShift?: number; _ShadeToony?: number; _LightColorAttenuation?: number; _IndirectLightIntensity?: number; _RimLightingMix?: number; _RimFresnelPower?: number; _RimLift?: number; _OutlineWidth?: number; _OutlineScaledMaxDistance?: number; _OutlineLightingMix?: number; _UvAnimScrollX?: number; _UvAnimScrollY?: number; _UvAnimRotation?: number; _DebugMode?: number; _BlendMode?: number; _OutlineWidthMode?: number; _OutlineColorMode?: number; _CullMode?: number; _OutlineCullMode?: number; _SrcBlend?: number; _DstBlend?: number; _ZWrite?: number; [prop: string]: number | undefined; } export declare type IVRMVectorMaterialProperty = [number, number, number, number]; export interface IVRMMaterialPropertyVectorProperties { _Color?: IVRMVectorMaterialProperty; _ShadeColor?: IVRMVectorMaterialProperty; _MainTex?: IVRMVectorMaterialProperty; _ShadeTexture?: IVRMVectorMaterialProperty; _BumpMap?: IVRMVectorMaterialProperty; _ReceiveShadowTexture?: IVRMVectorMaterialProperty; _ShadingGradeTexture?: IVRMVectorMaterialProperty; _RimColor?: IVRMVectorMaterialProperty; _RimTexture?: IVRMVectorMaterialProperty; _SphereAdd?: IVRMVectorMaterialProperty; _EmissionColor?: IVRMVectorMaterialProperty; _EmissionMap?: IVRMVectorMaterialProperty; _OutlineWidthTexture?: IVRMVectorMaterialProperty; _OutlineColor?: IVRMVectorMaterialProperty; _UvAnimMaskTexture?: IVRMVectorMaterialProperty; [prop: string]: IVRMVectorMaterialProperty | undefined; } export interface IVRMMaterialPropertyTextureProperties { _MainTex?: number; _ShadeTexture?: number; _BumpMap?: number; _ReceiveShadowTexture?: number; _ShadingGradeTexture?: number; _RimTexture?: number; _SphereAdd?: number; _EmissionMap?: number; _OutlineWidthTexture?: number; _UvAnimMaskTexture?: number; [prop: string]: number | undefined; } export interface IVRMMaterialPropertyKeywordMap { _NORMALMAP?: boolean; _ALPHATEST_ON?: boolean; _ALPHABLEND_ON?: boolean; _ALPHAPREMULTIPLY_ON?: boolean; } export interface IVRMMaterialPropertyTagMap { RenderType?: 'Opaque' | 'TransparentCutout' | 'Transparent'; } /** * extensions.VRM.materialProperties */ export interface IVRMMaterialProperty { name: string; shader: IVRMMaterialPropertyShader; renderQueue: number; floatProperties: IVRMMaterialPropertyFloatProperties; vectorProperties: IVRMMaterialPropertyVectorProperties; textureProperties: IVRMMaterialPropertyTextureProperties; keywordMap: IVRMMaterialPropertyKeywordMap; tagMap: IVRMMaterialPropertyTagMap; }