import type { Array3, Array4 } from './CommonTypes'; import type { RnM2 } from './RnM2'; export type Vrm0xHumanBone = { bone: string; node: number; name?: string; useDefaultValues: boolean; }; export type Vrm0xLookAt = { curve: number[]; xRange: number; yRange: number; }; export type Vrm0xBlendShapeBind = { mesh: number; index: number; weight: number; }; export type Vrm0xBlendShapeGroup = { name: string; presetName: string; isBinary: boolean; binds: Vrm0xBlendShapeBind[]; materialValues: []; }; export type Vrm0xBoneGroup = { comment: string; stiffiness: number; gravityPower: number; gravityDir: { x: number; y: number; z: number; }; dragForce: number; center: number; hitRadius: number; bones: number[]; colliderGroups: number[]; }; export type Vrm0xCollider = { offset: { x: number; y: number; z: number; }; radius: number; }; export type Vrm0xColliderGroup = { node: number; colliders: Vrm0xCollider[]; }; export type Vrm0xMaterialProperty = { name: string; renderQueue: number; shader: string; floatProperties: { _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; }; vectorProperties: { _Color: Array4; _ShadeColor: Array3; _MainTex: Array4; _ShadeTexture: Array4; _BumpMap: Array4; _ReceiveShadowTexture: Array4; _ShadingGradeTexture: Array4; _SphereAdd: Array4; _EmissionColor: Array3; _EmissionMap: Array4; _OutlineWidthTexture: Array4; _OutlineColor: Array4; _RimColor: Array3; }; textureProperties: { _MainTex: number; _ShadeTexture: number; _BumpMap: number; _SphereAdd: number; _EmissionMap: number; _OutlineWidthTexture: number; _ReceiveShadowTexture: number; _RimTexture: number; _ShadingGradeTexture: number; _UvAnimMaskTexture: number; }; }; export interface VRM0x_Extension { exporterVersion: string; meta: { version: string; author: string; contactInformation: string; reference: string; title: string; texture: 30; allowedUserName: string; violentUsageName: string; sexualUsageName: string; commercialUsageName: string; otherPermissionUrl: string; licenseName: string; otherLicenseUrl: string; }; humanoid: { humanBones: Vrm0xHumanBone[]; armStretch: number; legStretch: number; upperArmTwist: number; lowerArmTwist: number; upperLegTwist: number; lowerLegTwist: number; feetSpacing: number; hasTranslationDoF: false; }; firstPerson: { firstPersonBone: number; firstPersonBoneOffset: { x: number; y: number; z: number; }; meshAnnotations: []; lookAtTypeName: string; lookAtHorizontalInner: Vrm0xLookAt; lookAtHorizontalOuter: Vrm0xLookAt; lookAtVerticalDown: Vrm0xLookAt; lookAtVerticalUP: Vrm0xLookAt; }; blendShapeMaster: { blendShapeGroups: Vrm0xBlendShapeGroup[]; }; secondaryAnimation: { boneGroups: Vrm0xBoneGroup[]; colliderGroups: Vrm0xColliderGroup[]; }; materialProperties: Vrm0xMaterialProperty[]; } export interface Vrm0x extends RnM2 { extensions: { VRM: VRM0x_Extension; }; }