import type { IVRMMaterialProperty } from './vrm-interfaces'; export declare type IVCIVector3 = [number, number, number]; export interface IVCIColliderDetail { type: 'box' | string; center: IVCIVector3; shape: IVCIVector3; grabable: boolean; useGravity: boolean; isTrigger: boolean; } /** * meshes.extensions.VCAST_vci_collider */ export interface IVCICollider { colliders: IVCIColliderDetail[]; } export interface IVCIRigidbodyDetail { mass: number; drag: number; angularDrag: number; useGravity: boolean; isKinematic: boolean; freezePositionX: boolean; freezePositionY: boolean; freezePositionZ: boolean; freezeRotationX: boolean; freezeRotationY: boolean; freezeRotationZ: boolean; } /** * meshes.extensions.VCAST_vci_rigidbody */ export interface IVCIRigidbody { rigidBodies: IVCIRigidbodyDetail[]; } /** * meshes.extensions.VCAST_vci_item */ export interface IVCIItem { grabbable: boolean; scalable: boolean; uniformScaling: boolean; groupId: number; } /** * extensions.VCAST_vci_meta */ export interface IVCIMeta { exporterVCIVersion: string; specVersion: string; title: string; version: string; authori: string; contactInformation?: string; reference?: string; description?: string; thumbnail?: number; modelDataLicenseType: string; modelDataOtherLicenseUrl?: string; scriptLicenseType: string; scriptOtherLicenseUrl?: string; scriptWriteProtected: boolean; scriptEnableDebugging: boolean; scriptFormat: 'luaText' | string; } /** * extensions.VCAST_vci_embedded_script */ export interface IVCIEmbeddedScript { scripts: IVCIEmbeddedScriptDetail[]; entryPoint: number; } export interface IVCIEmbeddedScriptDetail { name: string; mimeType: 'x_application_lua' | string; targetEngine: 'moonsharp' | string; source: number; } /** * extensions.VCAST_vci_material_unity * * VRM.materialProperties と同等 */ export interface IVCIMaterialUnity { materials: IVRMMaterialProperty[]; }