diff --git a/.gitignore b/.gitignore index 4334926cd..4dad1b444 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /packages/*/ts*/ /packages/*/types /packages/*/temp +tsdoc-metadata.json \ No newline at end of file diff --git a/api-extractor.base.json b/api-extractor.base.json new file mode 100644 index 000000000..e958d49ea --- /dev/null +++ b/api-extractor.base.json @@ -0,0 +1,456 @@ +/** + * Config file for API Extractor. For more info, please visit: https://api-extractor.com + */ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + + /** + * Optionally specifies another JSON config file that this file extends from. This provides a way for + * standard settings to be shared across multiple projects. + * + * If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains + * the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be + * resolved using NodeJS require(). + * + * SUPPORTED TOKENS: none + * DEFAULT VALUE: "" + */ + // "extends": "./shared/api-extractor-base.json" + // "extends": "my-package/include/api-extractor-base.json" + + /** + * Determines the "" token that can be used with other config file settings. The project folder + * typically contains the tsconfig.json and package.json config files, but the path is user-defined. + * + * The path is resolved relative to the folder of the config file that contains the setting. + * + * The default value for "projectFolder" is the token "", which means the folder is determined by traversing + * parent folders, starting from the folder containing api-extractor.json, and stopping at the first folder + * that contains a tsconfig.json file. If a tsconfig.json file cannot be found in this way, then an error + * will be reported. + * + * SUPPORTED TOKENS: + * DEFAULT VALUE: "" + */ + // "projectFolder": "..", + + /** + * (REQUIRED) Specifies the .d.ts file to be used as the starting point for analysis. API Extractor + * analyzes the symbols exported by this module. + * + * The file extension must be ".d.ts" and not ".ts". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + */ + "mainEntryPointFilePath": "/types/index.d.ts", + + /** + * A list of NPM package names whose exports should be treated as part of this package. + * + * For example, suppose that Webpack is used to generate a distributed bundle for the project "library1", + * and another NPM package "library2" is embedded in this bundle. Some types from library2 may become part + * of the exported API for library1, but by default API Extractor would generate a .d.ts rollup that explicitly + * imports library2. To avoid this, we can specify: + * + * "bundledPackages": [ "library2" ], + * + * This would direct API Extractor to embed those types directly in the .d.ts rollup, as if they had been + * local files for library1. + */ + "bundledPackages": [ + "@pixiv/three-vrm-core", + "@pixiv/three-vrm-materials-hdr-emissive-multiplier", + "@pixiv/three-vrm-materials-mtoon", + "@pixiv/three-vrm-materials-v0compat", + "@pixiv/three-vrm-node-constraint", + "@pixiv/three-vrm-springbone", + "@pixiv/three-vrm", + "@pixiv/types-vrm-0.0", + "@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0", + "@pixiv/types-vrmc-materials-mtoon-1.0", + "@pixiv/types-vrmc-node-constraint-1.0", + "@pixiv/types-vrmc-springbone-1.0", + "@pixiv/types-vrmc-vrm-1.0" + ], + + /** + * Specifies what type of newlines API Extractor should use when writing output files. By default, the output files + * will be written with Windows-style newlines. To use POSIX-style newlines, specify "lf" instead. + * To use the OS's default newline kind, specify "os". + * + * DEFAULT VALUE: "crlf" + */ + // "newlineKind": "crlf", + + /** + * Set to true when invoking API Extractor's test harness. When `testMode` is true, the `toolVersion` field in the + * .api.json file is assigned an empty string to prevent spurious diffs in output files tracked for tests. + * + * DEFAULT VALUE: "false" + */ + // "testMode": false, + + /** + * Specifies how API Extractor sorts members of an enum when generating the .api.json file. By default, the output + * files will be sorted alphabetically, which is "by-name". To keep the ordering in the source code, specify + * "preserve". + * + * DEFAULT VALUE: "by-name" + */ + // "enumMemberOrder": "by-name", + + /** + * Determines how the TypeScript compiler engine will be invoked by API Extractor. + */ + "compiler": { + /** + * Specifies the path to the tsconfig.json file to be used by API Extractor when analyzing the project. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * Note: This setting will be ignored if "overrideTsconfig" is used. + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/tsconfig.json" + */ + // "tsconfigFilePath": "/tsconfig.json", + /** + * Provides a compiler configuration that will be used instead of reading the tsconfig.json file from disk. + * The object must conform to the TypeScript tsconfig schema: + * + * http://json.schemastore.org/tsconfig + * + * If omitted, then the tsconfig.json file will be read from the "projectFolder". + * + * DEFAULT VALUE: no overrideTsconfig section + */ + // "overrideTsconfig": { + // . . . + // } + /** + * This option causes the compiler to be invoked with the --skipLibCheck option. This option is not recommended + * and may cause API Extractor to produce incomplete or incorrect declarations, but it may be required when + * dependencies contain declarations that are incompatible with the TypeScript engine that API Extractor uses + * for its analysis. Where possible, the underlying issue should be fixed rather than relying on skipLibCheck. + * + * DEFAULT VALUE: false + */ + // "skipLibCheck": true, + }, + + /** + * Configures how the API report file (*.api.md) will be generated. + */ + "apiReport": { + /** + * (REQUIRED) Whether to generate an API report. + */ + "enabled": true, + + /** + * The filename for the API report files. It will be combined with "reportFolder" or "reportTempFolder" to produce + * a full file path. + * + * The file extension should be ".api.md", and the string should not contain a path separator such as "\" or "/". + * + * SUPPORTED TOKENS: , + * DEFAULT VALUE: ".api.md" + */ + "reportFileName": ".api.md", + + /** + * Specifies the folder where the API report file is written. The file name portion is determined by + * the "reportFileName" setting. + * + * The API report file is normally tracked by Git. Changes to it can be used to trigger a branch policy, + * e.g. for an API review. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/" + */ + "reportFolder": "" + + /** + * Specifies the folder where the temporary report file is written. The file name portion is determined by + * the "reportFileName" setting. + * + * After the temporary file is written to disk, it is compared with the file in the "reportFolder". + * If they are different, a production build will fail. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/" + */ + // "reportTempFolder": "/temp/", + + /** + * Whether "forgotten exports" should be included in the API report file. Forgotten exports are declarations + * flagged with `ae-forgotten-export` warnings. See https://api-extractor.com/pages/messages/ae-forgotten-export/ to + * learn more. + * + * DEFAULT VALUE: "false" + */ + // "includeForgottenExports": false + }, + + /** + * Configures how the doc model file (*.api.json) will be generated. + */ + "docModel": { + /** + * (REQUIRED) Whether to generate a doc model file. + */ + "enabled": false + + /** + * The output path for the doc model file. The file extension should be ".api.json". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/.api.json" + */ + // "apiJsonFilePath": "/temp/.api.json", + + /** + * Whether "forgotten exports" should be included in the doc model file. Forgotten exports are declarations + * flagged with `ae-forgotten-export` warnings. See https://api-extractor.com/pages/messages/ae-forgotten-export/ to + * learn more. + * + * DEFAULT VALUE: "false" + */ + // "includeForgottenExports": false, + + /** + * The base URL where the project's source code can be viewed on a website such as GitHub or + * Azure DevOps. This URL path corresponds to the `` path on disk. + * + * This URL is concatenated with the file paths serialized to the doc model to produce URL file paths to individual API items. + * For example, if the `projectFolderUrl` is "https://github.com/microsoft/rushstack/tree/main/apps/api-extractor" and an API + * item's file path is "api/ExtractorConfig.ts", the full URL file path would be + * "https://github.com/microsoft/rushstack/tree/main/apps/api-extractor/api/ExtractorConfig.js". + * + * Can be omitted if you don't need source code links in your API documentation reference. + * + * SUPPORTED TOKENS: none + * DEFAULT VALUE: "" + */ + // "projectFolderUrl": "http://github.com/path/to/your/projectFolder" + }, + + /** + * Configures how the .d.ts rollup file will be generated. + */ + "dtsRollup": { + /** + * (REQUIRED) Whether to generate the .d.ts rollup file. + */ + "enabled": true, + + /** + * Specifies the output path for a .d.ts rollup file to be generated without any trimming. + * This file will include all declarations that are exported by the main entry point. + * + * If the path is an empty string, then this file will not be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/dist/.d.ts" + */ + "untrimmedFilePath": "/lib/index.d.ts" + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for an "alpha" release. + * This file will include only declarations that are marked as "@public", "@beta", or "@alpha". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "alphaTrimmedFilePath": "/dist/-alpha.d.ts", + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "beta" release. + * This file will include only declarations that are marked as "@public" or "@beta". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "betaTrimmedFilePath": "/dist/-beta.d.ts", + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "public" release. + * This file will include only declarations that are marked as "@public". + * + * If the path is an empty string, then this file will not be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "publicTrimmedFilePath": "/dist/-public.d.ts", + + /** + * When a declaration is trimmed, by default it will be replaced by a code comment such as + * "Excluded from this release type: exampleMember". Set "omitTrimmingComments" to true to remove the + * declaration completely. + * + * DEFAULT VALUE: false + */ + // "omitTrimmingComments": true + }, + + /** + * Configures how the tsdoc-metadata.json file will be generated. + */ + "tsdocMetadata": { + /** + * Whether to generate the tsdoc-metadata.json file. + * + * DEFAULT VALUE: true + */ + // "enabled": true, + /** + * Specifies where the TSDoc metadata file should be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * The default value is "", which causes the path to be automatically inferred from the "tsdocMetadata", + * "typings" or "main" fields of the project's package.json. If none of these fields are set, the lookup + * falls back to "tsdoc-metadata.json" in the package folder. + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "tsdocMetadataFilePath": "/dist/tsdoc-metadata.json" + }, + + /** + * Configures how API Extractor reports error and warning messages produced during analysis. + * + * There are three sources of messages: compiler messages, API Extractor messages, and TSDoc messages. + */ + "messages": { + /** + * Configures handling of diagnostic messages reported by the TypeScript compiler engine while analyzing + * the input .d.ts files. + * + * TypeScript message identifiers start with "TS" followed by an integer. For example: "TS2551" + * + * DEFAULT VALUE: A single "default" entry with logLevel=warning. + */ + "compilerMessageReporting": { + /** + * Configures the default routing for messages that don't match an explicit rule in this table. + */ + "default": { + /** + * Specifies whether the message should be written to the the tool's output log. Note that + * the "addToApiReportFile" property may supersede this option. + * + * Possible values: "error", "warning", "none" + * + * Errors cause the build to fail and return a nonzero exit code. Warnings cause a production build fail + * and return a nonzero exit code. For a non-production build (e.g. when "api-extractor run" includes + * the "--local" option), the warning is displayed but the build will not fail. + * + * DEFAULT VALUE: "warning" + */ + "logLevel": "warning" + + /** + * When addToApiReportFile is true: If API Extractor is configured to write an API report file (.api.md), + * then the message will be written inside that file; otherwise, the message is instead logged according to + * the "logLevel" option. + * + * DEFAULT VALUE: false + */ + // "addToApiReportFile": false + } + + // "TS2551": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + }, + + /** + * Configures handling of messages reported by API Extractor during its analysis. + * + * API Extractor message identifiers start with "ae-". For example: "ae-extra-release-tag" + * + * DEFAULT VALUE: See api-extractor-defaults.json for the complete table of extractorMessageReporting mappings + */ + "extractorMessageReporting": { + "default": { + "logLevel": "warning", + "addToApiReportFile": false + }, + + "ae-missing-release-tag": { + "logLevel": "none" + }, + + "ae-unresolved-link": { + "logLevel": "none" + }, + + "ae-forgotten-export": { + "logLevel": "error" + } + + // + // . . . + }, + + /** + * Configures handling of messages reported by the TSDoc parser when analyzing code comments. + * + * TSDoc message identifiers start with "tsdoc-". For example: "tsdoc-link-tag-unescaped-text" + * + * DEFAULT VALUE: A single "default" entry with logLevel=warning. + */ + "tsdocMessageReporting": { + "default": { + "logLevel": "warning" + }, + + "tsdoc-undefined-tag": { + "logLevel": "none" + }, + + "tsdoc-param-tag-missing-hyphen": { + "logLevel": "none" + } + + // "tsdoc-link-tag-unescaped-text": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + } + } +} diff --git a/packages/three-vrm-core/api-extractor.json b/packages/three-vrm-core/api-extractor.json new file mode 100644 index 000000000..663b48c3c --- /dev/null +++ b/packages/three-vrm-core/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} \ No newline at end of file diff --git a/packages/three-vrm-core/package.json b/packages/three-vrm-core/package.json index 1ed181423..3108bf173 100644 --- a/packages/three-vrm-core/package.json +++ b/packages/three-vrm-core/package.json @@ -12,7 +12,7 @@ ], "main": "lib/three-vrm-core.js", "module": "lib/three-vrm-core.module.js", - "types": "types/index.d.ts", + "types": "lib/index.d.ts", "typesVersions": { "<3.9": { "*": [ @@ -32,7 +32,7 @@ "build": "yarn build-dev && yarn build-prod && yarn build-types", "build-dev": "cross-env NODE_ENV=development rollup -c", "build-prod": "cross-env NODE_ENV=production rollup -c", - "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run --local && downlevel-dts types ts3.4/types && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "test": "jest", "lint": "eslint \"src/**/*.{ts,tsx}\" && yarn lint-examples && prettier \"src/**/*.{ts,tsx}\" --check", diff --git a/packages/three-vrm-core/src/lookAt/VRMLookAt.ts b/packages/three-vrm-core/src/lookAt/VRMLookAt.ts index d24898c11..95c6cfbbd 100644 --- a/packages/three-vrm-core/src/lookAt/VRMLookAt.ts +++ b/packages/three-vrm-core/src/lookAt/VRMLookAt.ts @@ -73,9 +73,6 @@ export class VRMLookAt { return this._yaw; } - /** - * Its current angle around Y axis, in degree. - */ public set yaw(value: number) { this._yaw = value; this._needsUpdate = true; @@ -93,16 +90,13 @@ export class VRMLookAt { return this._pitch; } - /** - * Its current angle around X axis, in degree. - */ public set pitch(value: number) { this._pitch = value; this._needsUpdate = true; } /** - * Specifies that angles need to be applied to its [@link applier]. + * Specifies that angles need to be applied to its {@link applier}. */ protected _needsUpdate: boolean; diff --git a/packages/three-vrm-core/three-vrm-core.api.md b/packages/three-vrm-core/three-vrm-core.api.md new file mode 100644 index 000000000..983931405 --- /dev/null +++ b/packages/three-vrm-core/three-vrm-core.api.md @@ -0,0 +1,662 @@ +## API Report File for "@pixiv/three-vrm-core" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import * as THREE_2 from 'three'; + +// @public +export interface VRM0Meta { + allowedUserName?: 'Everyone' | 'ExplicitlyLicensedPerson' | 'OnlyAuthor'; + author?: string; + commercialUssageName?: 'Allow' | 'Disallow'; + contactInformation?: string; + licenseName?: 'CC0' | 'CC_BY' | 'CC_BY_NC' | 'CC_BY_NC_ND' | 'CC_BY_NC_SA' | 'CC_BY_ND' | 'CC_BY_SA' | 'Other' | 'Redistribution_Prohibited'; + metaVersion: '0'; + otherLicenseUrl?: string; + otherPermissionUrl?: string; + reference?: string; + sexualUssageName?: 'Allow' | 'Disallow'; + texture?: THREE_2.Texture; + title?: string; + version?: string; + violentUssageName?: 'Allow' | 'Disallow'; +} + +// @public +export interface VRM1Meta { + allowAntisocialOrHateUsage?: boolean; + allowExcessivelySexualUsage?: boolean; + allowExcessivelyViolentUsage?: boolean; + allowPoliticalOrReligiousUsage?: boolean; + allowRedistribution?: boolean; + authors: string[]; + avatarPermission?: 'onlyAuthor' | 'onlySeparatelyLicensedPerson' | 'everyone'; + commercialUsage?: 'personalNonProfit' | 'personalProfit' | 'corporation'; + contactInformation?: string; + copyrightInformation?: string; + creditNotation?: 'required' | 'unnecessary'; + licenseUrl: string; + metaVersion: '1'; + modification?: 'prohibited' | 'allowModification' | 'allowModificationRedistribution'; + name: string; + otherLicenseUrl?: string; + references?: string[]; + thirdPartyLicenses?: string; + thumbnailImage?: HTMLImageElement; + version?: string; +} + +// @public +export class VRMCore { + constructor(params: VRMCoreParameters); + readonly expressionManager?: VRMExpressionManager; + readonly firstPerson?: VRMFirstPerson; + readonly humanoid: VRMHumanoid; + readonly lookAt?: VRMLookAt; + readonly meta: VRMMeta; + readonly scene: THREE_2.Group; + update(delta: number): void; +} + +// @public (undocumented) +export class VRMCoreLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMCoreLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + readonly expressionPlugin: VRMExpressionLoaderPlugin; + // (undocumented) + readonly firstPersonPlugin: VRMFirstPersonLoaderPlugin; + // (undocumented) + readonly humanoidPlugin: VRMHumanoidLoaderPlugin; + // (undocumented) + readonly lookAtPlugin: VRMLookAtLoaderPlugin; + // (undocumented) + readonly metaPlugin: VRMMetaLoaderPlugin; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMCoreLoaderPluginOptions { + // (undocumented) + autoUpdateHumanBones?: boolean; + // (undocumented) + expressionPlugin?: VRMExpressionLoaderPlugin; + // (undocumented) + firstPersonPlugin?: VRMFirstPersonLoaderPlugin; + helperRoot?: THREE.Object3D; + // (undocumented) + humanoidPlugin?: VRMHumanoidLoaderPlugin; + // (undocumented) + lookAtPlugin?: VRMLookAtLoaderPlugin; + // (undocumented) + metaPlugin?: VRMMetaLoaderPlugin; +} + +// @public +export interface VRMCoreParameters { + // (undocumented) + expressionManager?: VRMExpressionManager; + // (undocumented) + firstPerson?: VRMFirstPerson; + // (undocumented) + humanoid: VRMHumanoid; + // (undocumented) + lookAt?: VRMLookAt; + // (undocumented) + meta: VRMMeta; + // (undocumented) + scene: THREE.Group; +} + +// @public (undocumented) +export class VRMExpression extends THREE_2.Object3D { + constructor(expressionName: string); + // (undocumented) + addBind(bind: VRMExpressionBind): void; + applyWeight(options?: { + multiplier?: number; + }): void; + clearAppliedWeight(): void; + expressionName: string; + isBinary: boolean; + overrideBlink: VRMExpressionOverrideType; + get overrideBlinkAmount(): number; + overrideLookAt: VRMExpressionOverrideType; + get overrideLookAtAmount(): number; + overrideMouth: VRMExpressionOverrideType; + get overrideMouthAmount(): number; + // (undocumented) + readonly type: string | 'VRMExpression'; + weight: number; +} + +// @public (undocumented) +export interface VRMExpressionBind { + applyWeight(weight: number): void; + clearAppliedWeight(): void; +} + +// @public +export class VRMExpressionLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; + // Warning: (ae-forgotten-export) The symbol "V0VRM" needs to be exported by the entry point index.d.ts + // + // (undocumented) + static readonly v0v1PresetNameMap: { + [v0Name in V0VRM.BlendShapePresetName]?: VRMExpressionPresetName; + }; +} + +// @public (undocumented) +export class VRMExpressionManager { + constructor(); + blinkExpressionNames: string[]; + clone(): VRMExpressionManager; + copy(source: VRMExpressionManager): this; + get customExpressionMap(): { + [name: string]: VRMExpression; + }; + // (undocumented) + get expressionMap(): { + [name: string]: VRMExpression; + }; + // (undocumented) + get expressions(): VRMExpression[]; + getExpression(name: VRMExpressionPresetName | string): VRMExpression | null; + getExpressionTrackName(name: VRMExpressionPresetName | string): string | null; + getValue(name: VRMExpressionPresetName | string): number | null; + lookAtExpressionNames: string[]; + mouthExpressionNames: string[]; + get presetExpressionMap(): { + [name in VRMExpressionPresetName]?: VRMExpression; + }; + registerExpression(expression: VRMExpression): void; + setValue(name: VRMExpressionPresetName | string, weight: number): void; + unregisterExpression(expression: VRMExpression): void; + update(): void; +} + +// @public +export class VRMExpressionMaterialColorBind implements VRMExpressionBind { + constructor({ material, type, targetValue, }: { + material: THREE_2.Material; + type: VRMExpressionMaterialColorType; + targetValue: THREE_2.Color; + }); + // (undocumented) + applyWeight(weight: number): void; + // (undocumented) + clearAppliedWeight(): void; + readonly material: THREE_2.Material; + readonly targetValue: THREE_2.Color; + readonly type: VRMExpressionMaterialColorType; +} + +// @public (undocumented) +export const VRMExpressionMaterialColorType: { + readonly Color: "color"; + readonly EmissionColor: "emissionColor"; + readonly ShadeColor: "shadeColor"; + readonly MatcapColor: "matcapColor"; + readonly RimColor: "rimColor"; + readonly OutlineColor: "outlineColor"; +}; + +// @public (undocumented) +export type VRMExpressionMaterialColorType = typeof VRMExpressionMaterialColorType[keyof typeof VRMExpressionMaterialColorType]; + +// @public +export class VRMExpressionMorphTargetBind implements VRMExpressionBind { + constructor({ primitives, index, weight, }: { + primitives: THREE_2.Mesh[]; + index: number; + weight: number; + }); + // (undocumented) + applyWeight(weight: number): void; + // (undocumented) + clearAppliedWeight(): void; + readonly index: number; + readonly primitives: THREE_2.Mesh[]; + readonly weight: number; +} + +// @public (undocumented) +export const VRMExpressionOverrideType: { + readonly None: "none"; + readonly Block: "block"; + readonly Blend: "blend"; +}; + +// @public (undocumented) +export type VRMExpressionOverrideType = typeof VRMExpressionOverrideType[keyof typeof VRMExpressionOverrideType]; + +// @public (undocumented) +export const VRMExpressionPresetName: { + readonly Aa: "aa"; + readonly Ih: "ih"; + readonly Ou: "ou"; + readonly Ee: "ee"; + readonly Oh: "oh"; + readonly Blink: "blink"; + readonly Happy: "happy"; + readonly Angry: "angry"; + readonly Sad: "sad"; + readonly Relaxed: "relaxed"; + readonly LookUp: "lookUp"; + readonly Surprised: "surprised"; + readonly LookDown: "lookDown"; + readonly LookLeft: "lookLeft"; + readonly LookRight: "lookRight"; + readonly BlinkLeft: "blinkLeft"; + readonly BlinkRight: "blinkRight"; + readonly Neutral: "neutral"; +}; + +// @public (undocumented) +export type VRMExpressionPresetName = typeof VRMExpressionPresetName[keyof typeof VRMExpressionPresetName]; + +// @public +export class VRMExpressionTextureTransformBind implements VRMExpressionBind { + constructor({ material, scale, offset, }: { + material: THREE_2.Material; + scale: THREE_2.Vector2; + offset: THREE_2.Vector2; + }); + // (undocumented) + applyWeight(weight: number): void; + // (undocumented) + clearAppliedWeight(): void; + readonly material: THREE_2.Material; + readonly offset: THREE_2.Vector2; + readonly scale: THREE_2.Vector2; +} + +// @public (undocumented) +export class VRMFirstPerson { + constructor(humanoid: VRMHumanoid, meshAnnotations: VRMFirstPersonMeshAnnotation[]); + clone(): VRMFirstPerson; + copy(source: VRMFirstPerson): this; + static readonly DEFAULT_FIRSTPERSON_ONLY_LAYER = 9; + static readonly DEFAULT_THIRDPERSON_ONLY_LAYER = 10; + get firstPersonOnlyLayer(): number; + readonly humanoid: VRMHumanoid; + // (undocumented) + meshAnnotations: VRMFirstPersonMeshAnnotation[]; + setup({ firstPersonOnlyLayer, thirdPersonOnlyLayer, }?: { + firstPersonOnlyLayer?: number | undefined; + thirdPersonOnlyLayer?: number | undefined; + }): void; + get thirdPersonOnlyLayer(): number; +} + +// @public +export class VRMFirstPersonLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMFirstPersonMeshAnnotation { + // (undocumented) + meshes: THREE.Mesh[]; + // (undocumented) + type: VRMFirstPersonMeshAnnotationType; +} + +// @public (undocumented) +export const VRMFirstPersonMeshAnnotationType: { + readonly Auto: "auto"; + readonly Both: "both"; + readonly ThirdPersonOnly: "thirdPersonOnly"; + readonly FirstPersonOnly: "firstPersonOnly"; +}; + +// @public (undocumented) +export type VRMFirstPersonMeshAnnotationType = typeof VRMFirstPersonMeshAnnotationType[keyof typeof VRMFirstPersonMeshAnnotationType]; + +// @public +export interface VRMHumanBone { + node: THREE_2.Object3D; +} + +// @public +export const VRMHumanBoneList: VRMHumanBoneName[]; + +// @public +export const VRMHumanBoneName: { + readonly Hips: "hips"; + readonly Spine: "spine"; + readonly Chest: "chest"; + readonly UpperChest: "upperChest"; + readonly Neck: "neck"; + readonly Head: "head"; + readonly LeftEye: "leftEye"; + readonly RightEye: "rightEye"; + readonly Jaw: "jaw"; + readonly LeftUpperLeg: "leftUpperLeg"; + readonly LeftLowerLeg: "leftLowerLeg"; + readonly LeftFoot: "leftFoot"; + readonly LeftToes: "leftToes"; + readonly RightUpperLeg: "rightUpperLeg"; + readonly RightLowerLeg: "rightLowerLeg"; + readonly RightFoot: "rightFoot"; + readonly RightToes: "rightToes"; + readonly LeftShoulder: "leftShoulder"; + readonly LeftUpperArm: "leftUpperArm"; + readonly LeftLowerArm: "leftLowerArm"; + readonly LeftHand: "leftHand"; + readonly RightShoulder: "rightShoulder"; + readonly RightUpperArm: "rightUpperArm"; + readonly RightLowerArm: "rightLowerArm"; + readonly RightHand: "rightHand"; + readonly LeftThumbMetacarpal: "leftThumbMetacarpal"; + readonly LeftThumbProximal: "leftThumbProximal"; + readonly LeftThumbDistal: "leftThumbDistal"; + readonly LeftIndexProximal: "leftIndexProximal"; + readonly LeftIndexIntermediate: "leftIndexIntermediate"; + readonly LeftIndexDistal: "leftIndexDistal"; + readonly LeftMiddleProximal: "leftMiddleProximal"; + readonly LeftMiddleIntermediate: "leftMiddleIntermediate"; + readonly LeftMiddleDistal: "leftMiddleDistal"; + readonly LeftRingProximal: "leftRingProximal"; + readonly LeftRingIntermediate: "leftRingIntermediate"; + readonly LeftRingDistal: "leftRingDistal"; + readonly LeftLittleProximal: "leftLittleProximal"; + readonly LeftLittleIntermediate: "leftLittleIntermediate"; + readonly LeftLittleDistal: "leftLittleDistal"; + readonly RightThumbMetacarpal: "rightThumbMetacarpal"; + readonly RightThumbProximal: "rightThumbProximal"; + readonly RightThumbDistal: "rightThumbDistal"; + readonly RightIndexProximal: "rightIndexProximal"; + readonly RightIndexIntermediate: "rightIndexIntermediate"; + readonly RightIndexDistal: "rightIndexDistal"; + readonly RightMiddleProximal: "rightMiddleProximal"; + readonly RightMiddleIntermediate: "rightMiddleIntermediate"; + readonly RightMiddleDistal: "rightMiddleDistal"; + readonly RightRingProximal: "rightRingProximal"; + readonly RightRingIntermediate: "rightRingIntermediate"; + readonly RightRingDistal: "rightRingDistal"; + readonly RightLittleProximal: "rightLittleProximal"; + readonly RightLittleIntermediate: "rightLittleIntermediate"; + readonly RightLittleDistal: "rightLittleDistal"; +}; + +// @public (undocumented) +export type VRMHumanBoneName = typeof VRMHumanBoneName[keyof typeof VRMHumanBoneName]; + +// @public +export const VRMHumanBoneParentMap: { + [bone in VRMHumanBoneName]: VRMHumanBoneName | null; +}; + +// @public +export type VRMHumanBones = { + [name in VRMHumanBoneName]?: VRMHumanBone; +} & { + [name in VRMRequiredHumanBoneName]: VRMHumanBone; +}; + +// @public +export class VRMHumanoid { + constructor(humanBones: VRMHumanBones, options?: { + autoUpdateHumanBones?: boolean; + }); + autoUpdateHumanBones: boolean; + clone(): VRMHumanoid; + copy(source: VRMHumanoid): this; + // @deprecated (undocumented) + getAbsolutePose(): VRMPose; + // @deprecated (undocumented) + getBone(name: VRMHumanBoneName): VRMHumanBone | undefined; + // @deprecated (undocumented) + getBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; + getNormalizedAbsolutePose(): VRMPose; + getNormalizedBone(name: VRMHumanBoneName): VRMHumanBone | undefined; + getNormalizedBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; + getNormalizedPose(): VRMPose; + // @deprecated (undocumented) + getPose(): VRMPose; + getRawAbsolutePose(): VRMPose; + getRawBone(name: VRMHumanBoneName): VRMHumanBone | undefined; + getRawBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; + getRawPose(): VRMPose; + get humanBones(): VRMHumanBones; + get normalizedHumanBones(): VRMHumanBones; + get normalizedHumanBonesRoot(): THREE_2.Object3D; + get normalizedRestPose(): VRMPose; + get rawHumanBones(): VRMHumanBones; + get rawRestPose(): VRMPose; + resetNormalizedPose(): void; + // @deprecated (undocumented) + resetPose(): void; + resetRawPose(): void; + // @deprecated (undocumented) + get restPose(): VRMPose; + setNormalizedPose(poseObject: VRMPose): void; + // @deprecated (undocumented) + setPose(poseObject: VRMPose): void; + setRawPose(poseObject: VRMPose): void; + update(): void; +} + +// @public (undocumented) +export class VRMHumanoidHelper extends THREE_2.Group { + constructor(humanoid: VRMHumanoid); + // (undocumented) + dispose(): void; + // (undocumented) + updateMatrixWorld(force: boolean): void; + // (undocumented) + readonly vrmHumanoid: VRMHumanoid; +} + +// @public +export class VRMHumanoidLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMHumanoidLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + autoUpdateHumanBones?: boolean; + helperRoot?: THREE.Object3D; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMHumanoidLoaderPluginOptions { + autoUpdateHumanBones?: boolean; + helperRoot?: THREE.Object3D; +} + +// @public +export class VRMLookAt { + constructor(humanoid: VRMHumanoid, applier: VRMLookAtApplier); + applier: VRMLookAtApplier; + autoUpdate: boolean; + clone(): VRMLookAt; + copy(source: VRMLookAt): this; + // @deprecated (undocumented) + get euler(): THREE_2.Euler; + // (undocumented) + static readonly EULER_ORDER = "YXZ"; + faceFront: THREE_2.Vector3; + getEuler(target: THREE_2.Euler): THREE_2.Euler; + getFaceFrontQuaternion(target: THREE_2.Quaternion): THREE_2.Quaternion; + getLookAtWorldDirection(target: THREE_2.Vector3): THREE_2.Vector3; + getLookAtWorldPosition(target: THREE_2.Vector3): THREE_2.Vector3; + getLookAtWorldQuaternion(target: THREE_2.Quaternion): THREE_2.Quaternion; + readonly humanoid: VRMHumanoid; + lookAt(position: THREE_2.Vector3): void; + protected _needsUpdate: boolean; + offsetFromHeadBone: THREE_2.Vector3; + get pitch(): number; + set pitch(value: number); + protected _pitch: number; + reset(): void; + target?: THREE_2.Object3D | null; + update(delta: number): void; + get yaw(): number; + set yaw(value: number); + protected _yaw: number; +} + +// @public +export interface VRMLookAtApplier { + applyYawPitch: (yaw: number, pitch: number) => void; + // @deprecated (undocumented) + lookAt: (euler: THREE_2.Euler) => void; +} + +// @public +export class VRMLookAtBoneApplier implements VRMLookAtApplier { + constructor(humanoid: VRMHumanoid, rangeMapHorizontalInner: VRMLookAtRangeMap, rangeMapHorizontalOuter: VRMLookAtRangeMap, rangeMapVerticalDown: VRMLookAtRangeMap, rangeMapVerticalUp: VRMLookAtRangeMap); + applyYawPitch(yaw: number, pitch: number): void; + faceFront: THREE_2.Vector3; + readonly humanoid: VRMHumanoid; + // @deprecated (undocumented) + lookAt(euler: THREE_2.Euler): void; + rangeMapHorizontalInner: VRMLookAtRangeMap; + rangeMapHorizontalOuter: VRMLookAtRangeMap; + rangeMapVerticalDown: VRMLookAtRangeMap; + rangeMapVerticalUp: VRMLookAtRangeMap; + static readonly type = "bone"; +} + +// @public +export class VRMLookAtExpressionApplier implements VRMLookAtApplier { + constructor(expressions: VRMExpressionManager, rangeMapHorizontalInner: VRMLookAtRangeMap, rangeMapHorizontalOuter: VRMLookAtRangeMap, rangeMapVerticalDown: VRMLookAtRangeMap, rangeMapVerticalUp: VRMLookAtRangeMap); + applyYawPitch(yaw: number, pitch: number): void; + readonly expressions: VRMExpressionManager; + // @deprecated (undocumented) + lookAt(euler: THREE_2.Euler): void; + rangeMapHorizontalInner: VRMLookAtRangeMap; + rangeMapHorizontalOuter: VRMLookAtRangeMap; + rangeMapVerticalDown: VRMLookAtRangeMap; + rangeMapVerticalUp: VRMLookAtRangeMap; + static readonly type = "expression"; +} + +// @public (undocumented) +export class VRMLookAtHelper extends THREE_2.Group { + constructor(lookAt: VRMLookAt); + // (undocumented) + dispose(): void; + // (undocumented) + updateMatrixWorld(force: boolean): void; + // (undocumented) + readonly vrmLookAt: VRMLookAt; +} + +// @public +export class VRMLookAtLoaderPlugin implements GLTFLoaderPlugin { + // Warning: (ae-forgotten-export) The symbol "VRMLookAtLoaderPluginOptions" needs to be exported by the entry point index.d.ts + constructor(parser: GLTFParser, options?: VRMLookAtLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + helperRoot?: THREE.Object3D; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export class VRMLookAtRangeMap { + constructor(inputMaxValue: number, outputScale: number); + inputMaxValue: number; + map(src: number): number; + outputScale: number; +} + +// @public +export const VRMLookAtTypeName: { + Bone: string; + Expression: string; +}; + +// @public (undocumented) +export type VRMLookAtTypeName = typeof VRMLookAtTypeName[keyof typeof VRMLookAtTypeName]; + +// @public +export type VRMMeta = VRM0Meta | VRM1Meta; + +// @public +export interface VRMMetaImporterOptions { + acceptLicenseUrls?: string[]; + acceptV0Meta?: boolean; + needThumbnailImage?: boolean; +} + +// @public +export class VRMMetaLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMMetaImporterOptions); + acceptLicenseUrls: string[]; + acceptV0Meta: boolean; + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + get name(): string; + needThumbnailImage: boolean; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public +export type VRMPose = { + [boneName in VRMHumanBoneName]?: VRMPoseTransform; +}; + +// @public +export interface VRMPoseTransform { + position?: [number, number, number]; + rotation?: [number, number, number, number]; +} + +// @public (undocumented) +export const VRMRequiredHumanBoneName: { + readonly Hips: "hips"; + readonly Spine: "spine"; + readonly Head: "head"; + readonly LeftUpperLeg: "leftUpperLeg"; + readonly LeftLowerLeg: "leftLowerLeg"; + readonly LeftFoot: "leftFoot"; + readonly RightUpperLeg: "rightUpperLeg"; + readonly RightLowerLeg: "rightLowerLeg"; + readonly RightFoot: "rightFoot"; + readonly LeftUpperArm: "leftUpperArm"; + readonly LeftLowerArm: "leftLowerArm"; + readonly LeftHand: "leftHand"; + readonly RightUpperArm: "rightUpperArm"; + readonly RightLowerArm: "rightLowerArm"; + readonly RightHand: "rightHand"; +}; + +// @public (undocumented) +export type VRMRequiredHumanBoneName = typeof VRMRequiredHumanBoneName[keyof typeof VRMRequiredHumanBoneName]; + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/three-vrm-materials-hdr-emissive-multiplier/api-extractor.json b/packages/three-vrm-materials-hdr-emissive-multiplier/api-extractor.json new file mode 100644 index 000000000..663b48c3c --- /dev/null +++ b/packages/three-vrm-materials-hdr-emissive-multiplier/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} \ No newline at end of file diff --git a/packages/three-vrm-materials-hdr-emissive-multiplier/package.json b/packages/three-vrm-materials-hdr-emissive-multiplier/package.json index e6b7882b5..014c4eeff 100644 --- a/packages/three-vrm-materials-hdr-emissive-multiplier/package.json +++ b/packages/three-vrm-materials-hdr-emissive-multiplier/package.json @@ -12,7 +12,7 @@ ], "main": "lib/three-vrm-materials-hdr-emissive-multiplier.js", "module": "lib/three-vrm-materials-hdr-emissive-multiplier.module.js", - "types": "types/index.d.ts", + "types": "lib/index.d.ts", "typesVersions": { "<3.9": { "*": [ @@ -28,7 +28,7 @@ "build": "yarn build-dev && yarn build-prod && yarn build-types", "build-dev": "cross-env NODE_ENV=development rollup -c", "build-prod": "cross-env NODE_ENV=production rollup -c", - "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run --local && downlevel-dts types ts3.4/types && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "lint": "eslint \"src/**/*.{ts,tsx}\" && yarn lint-examples && prettier \"src/**/*.{ts,tsx}\" --check", "lint-examples": "eslint \"examples/**/*.{ts,tsx,js,html}\" --rule \"padded-blocks: error\"", diff --git a/packages/three-vrm-materials-hdr-emissive-multiplier/three-vrm-materials-hdr-emissive-multiplier.api.md b/packages/three-vrm-materials-hdr-emissive-multiplier/three-vrm-materials-hdr-emissive-multiplier.api.md new file mode 100644 index 000000000..4dfd21c1f --- /dev/null +++ b/packages/three-vrm-materials-hdr-emissive-multiplier/three-vrm-materials-hdr-emissive-multiplier.api.md @@ -0,0 +1,27 @@ +## API Report File for "@pixiv/three-vrm-materials-hdr-emissive-multiplier" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; + +// @public (undocumented) +export class VRMMaterialsHDREmissiveMultiplierLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser); + // (undocumented) + extendMaterialParams(materialIndex: number, materialParams: { + [key: string]: any; + }): Promise; + // (undocumented) + static EXTENSION_NAME: "VRMC_materials_hdr_emissiveMultiplier"; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/three-vrm-materials-mtoon/api-extractor.json b/packages/three-vrm-materials-mtoon/api-extractor.json new file mode 100644 index 000000000..663b48c3c --- /dev/null +++ b/packages/three-vrm-materials-mtoon/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} \ No newline at end of file diff --git a/packages/three-vrm-materials-mtoon/package.json b/packages/three-vrm-materials-mtoon/package.json index a12700480..58579723c 100644 --- a/packages/three-vrm-materials-mtoon/package.json +++ b/packages/three-vrm-materials-mtoon/package.json @@ -12,7 +12,7 @@ ], "main": "lib/three-vrm-materials-mtoon.js", "module": "lib/three-vrm-materials-mtoon.module.js", - "types": "types/index.d.ts", + "types": "lib/index.d.ts", "typesVersions": { "<3.9": { "*": [ @@ -28,7 +28,7 @@ "build": "yarn build-dev && yarn build-prod && yarn build-types", "build-dev": "cross-env NODE_ENV=development rollup -c", "build-prod": "cross-env NODE_ENV=production rollup -c", - "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run --local && downlevel-dts types ts3.4/types && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "lint": "eslint \"src/**/*.{ts,tsx}\" && yarn lint-examples && prettier \"src/**/*.{ts,tsx}\" --check", "lint-examples": "eslint \"examples/**/*.{ts,tsx,js,html}\" --rule \"padded-blocks: error\"", diff --git a/packages/three-vrm-materials-mtoon/src/MToonMaterial.ts b/packages/three-vrm-materials-mtoon/src/MToonMaterial.ts index c0236287a..fcadf96c8 100644 --- a/packages/three-vrm-materials-mtoon/src/MToonMaterial.ts +++ b/packages/three-vrm-materials-mtoon/src/MToonMaterial.ts @@ -309,12 +309,6 @@ export class MToonMaterial extends THREE.ShaderMaterial { return this._v0CompatShade; } - /** - * There is a line of the shader called "comment out if you want to PBR absolutely" in VRM0.0 MToon. - * When this is true, the material enables the line to make it compatible with the legacy rendering of VRM. - * Usually not recommended to turn this on. - * `false` by default. - */ set v0CompatShade(v: boolean) { this._v0CompatShade = v; @@ -333,12 +327,6 @@ export class MToonMaterial extends THREE.ShaderMaterial { return this._debugMode; } - /** - * Debug mode for the material. - * You can visualize several components for diagnosis using debug mode. - * - * See: {@link MToonMaterialDebugMode} - */ set debugMode(m: MToonMaterialDebugMode) { this._debugMode = m; @@ -556,7 +544,7 @@ export class MToonMaterial extends THREE.ShaderMaterial { /** * Upload uniforms that need to upload but doesn't automatically because of reasons. - * Intended to be called via {@link constructor} and {@link update}. + * Intended to be called via {@link MToonMaterial}'s constructor and {@link update}. */ private _uploadUniformsWorkaround(): void { // workaround: since opacity is defined as a property in THREE.Material diff --git a/packages/three-vrm-materials-mtoon/three-vrm-materials-mtoon.api.md b/packages/three-vrm-materials-mtoon/three-vrm-materials-mtoon.api.md new file mode 100644 index 000000000..135ceb128 --- /dev/null +++ b/packages/three-vrm-materials-mtoon/three-vrm-materials-mtoon.api.md @@ -0,0 +1,295 @@ +## API Report File for "@pixiv/three-vrm-materials-mtoon" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import type { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import type { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import * as THREE_2 from 'three'; + +// @public +export class MToonMaterial extends THREE_2.ShaderMaterial { + constructor(parameters?: MToonMaterialParameters); + // (undocumented) + get color(): THREE_2.Color; + set color(value: THREE_2.Color); + // (undocumented) + copy(source: this): this; + get debugMode(): MToonMaterialDebugMode; + set debugMode(m: MToonMaterialDebugMode); + // (undocumented) + get emissive(): THREE_2.Color; + set emissive(value: THREE_2.Color); + // (undocumented) + get emissiveIntensity(): number; + set emissiveIntensity(value: number); + // (undocumented) + get emissiveMap(): THREE_2.Texture | null; + set emissiveMap(value: THREE_2.Texture | null); + fog: boolean; + // (undocumented) + get giEqualizationFactor(): number; + set giEqualizationFactor(value: number); + get ignoreVertexColor(): boolean; + set ignoreVertexColor(value: boolean); + get isMToonMaterial(): true; + // (undocumented) + get isOutline(): boolean; + set isOutline(b: boolean); + // (undocumented) + get map(): THREE_2.Texture | null; + set map(value: THREE_2.Texture | null); + // (undocumented) + get matcapFactor(): THREE_2.Color; + set matcapFactor(value: THREE_2.Color); + // (undocumented) + get matcapTexture(): THREE_2.Texture | null; + set matcapTexture(value: THREE_2.Texture | null); + // (undocumented) + get normalMap(): THREE_2.Texture | null; + set normalMap(value: THREE_2.Texture | null); + normalMapType: 0; + // (undocumented) + get normalScale(): THREE_2.Vector2; + set normalScale(value: THREE_2.Vector2); + // (undocumented) + get outlineColorFactor(): THREE_2.Color; + set outlineColorFactor(value: THREE_2.Color); + // (undocumented) + get outlineLightingMixFactor(): number; + set outlineLightingMixFactor(value: number); + // (undocumented) + get outlineWidthFactor(): number; + set outlineWidthFactor(value: number); + // (undocumented) + get outlineWidthMode(): MToonMaterialOutlineWidthMode; + set outlineWidthMode(m: MToonMaterialOutlineWidthMode); + // (undocumented) + get outlineWidthMultiplyTexture(): THREE_2.Texture | null; + set outlineWidthMultiplyTexture(value: THREE_2.Texture | null); + // (undocumented) + get parametricRimColorFactor(): THREE_2.Color; + set parametricRimColorFactor(value: THREE_2.Color); + // (undocumented) + get parametricRimFresnelPowerFactor(): number; + set parametricRimFresnelPowerFactor(value: number); + // (undocumented) + get parametricRimLiftFactor(): number; + set parametricRimLiftFactor(value: number); + // (undocumented) + get rimLightingMixFactor(): number; + set rimLightingMixFactor(value: number); + // (undocumented) + get rimMultiplyTexture(): THREE_2.Texture | null; + set rimMultiplyTexture(value: THREE_2.Texture | null); + // (undocumented) + get shadeColorFactor(): THREE_2.Color; + set shadeColorFactor(value: THREE_2.Color); + // (undocumented) + get shadeMultiplyTexture(): THREE_2.Texture | null; + set shadeMultiplyTexture(value: THREE_2.Texture | null); + // (undocumented) + get shadingShiftFactor(): number; + set shadingShiftFactor(value: number); + // (undocumented) + get shadingShiftTexture(): THREE_2.Texture | null; + set shadingShiftTexture(value: THREE_2.Texture | null); + // (undocumented) + get shadingShiftTextureScale(): number; + set shadingShiftTextureScale(value: number); + // (undocumented) + get shadingToonyFactor(): number; + set shadingToonyFactor(value: number); + // (undocumented) + uniforms: { + litFactor: THREE_2.IUniform; + alphaTest: THREE_2.IUniform; + opacity: THREE_2.IUniform; + map: THREE_2.IUniform; + mapUvTransform: THREE_2.IUniform; + normalMap: THREE_2.IUniform; + normalMapUvTransform: THREE_2.IUniform; + normalScale: THREE_2.IUniform; + emissive: THREE_2.IUniform; + emissiveIntensity: THREE_2.IUniform; + emissiveMap: THREE_2.IUniform; + emissiveMapUvTransform: THREE_2.IUniform; + shadeColorFactor: THREE_2.IUniform; + shadeMultiplyTexture: THREE_2.IUniform; + shadeMultiplyTextureUvTransform: THREE_2.IUniform; + shadingShiftFactor: THREE_2.IUniform; + shadingShiftTexture: THREE_2.IUniform; + shadingShiftTextureUvTransform: THREE_2.IUniform; + shadingShiftTextureScale: THREE_2.IUniform; + shadingToonyFactor: THREE_2.IUniform; + giEqualizationFactor: THREE_2.IUniform; + matcapFactor: THREE_2.IUniform; + matcapTexture: THREE_2.IUniform; + matcapTextureUvTransform: THREE_2.IUniform; + parametricRimColorFactor: THREE_2.IUniform; + rimMultiplyTexture: THREE_2.IUniform; + rimMultiplyTextureUvTransform: THREE_2.IUniform; + rimLightingMixFactor: THREE_2.IUniform; + parametricRimFresnelPowerFactor: THREE_2.IUniform; + parametricRimLiftFactor: THREE_2.IUniform; + outlineWidthMultiplyTexture: THREE_2.IUniform; + outlineWidthMultiplyTextureUvTransform: THREE_2.IUniform; + outlineWidthFactor: THREE_2.IUniform; + outlineColorFactor: THREE_2.IUniform; + outlineLightingMixFactor: THREE_2.IUniform; + uvAnimationMaskTexture: THREE_2.IUniform; + uvAnimationMaskTextureUvTransform: THREE_2.IUniform; + uvAnimationScrollXOffset: THREE_2.IUniform; + uvAnimationScrollYOffset: THREE_2.IUniform; + uvAnimationRotationPhase: THREE_2.IUniform; + }; + update(delta: number): void; + // (undocumented) + get uvAnimationMaskTexture(): THREE_2.Texture | null; + set uvAnimationMaskTexture(value: THREE_2.Texture | null); + // (undocumented) + get uvAnimationRotationPhase(): number; + set uvAnimationRotationPhase(value: number); + // (undocumented) + uvAnimationRotationSpeedFactor: number; + // (undocumented) + get uvAnimationScrollXOffset(): number; + set uvAnimationScrollXOffset(value: number); + // (undocumented) + uvAnimationScrollXSpeedFactor: number; + // (undocumented) + get uvAnimationScrollYOffset(): number; + set uvAnimationScrollYOffset(value: number); + // (undocumented) + uvAnimationScrollYSpeedFactor: number; + get v0CompatShade(): boolean; + set v0CompatShade(v: boolean); +} + +// @public +export const MToonMaterialDebugMode: { + readonly None: "none"; + readonly Normal: "normal"; + readonly LitShadeRate: "litShadeRate"; + readonly UV: "uv"; +}; + +// @public (undocumented) +export type MToonMaterialDebugMode = typeof MToonMaterialDebugMode[keyof typeof MToonMaterialDebugMode]; + +// @public (undocumented) +export class MToonMaterialLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: MToonMaterialLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + beforeRoot(): Promise; + debugMode: MToonMaterialDebugMode; + // (undocumented) + extendMaterialParams(materialIndex: number, materialParams: MToonMaterialParameters): Promise | null; + // (undocumented) + static EXTENSION_NAME: string; + // (undocumented) + getMaterialType(materialIndex: number): typeof THREE_2.Material | null; + // (undocumented) + loadMesh(meshIndex: number): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; + renderOrderOffset: number; + v0CompatShade: boolean; +} + +// @public (undocumented) +export interface MToonMaterialLoaderPluginOptions { + debugMode?: MToonMaterialDebugMode; + renderOrderOffset?: number; + v0CompatShade?: boolean; +} + +// @public (undocumented) +export const MToonMaterialOutlineWidthMode: { + readonly None: "none"; + readonly WorldCoordinates: "worldCoordinates"; + readonly ScreenCoordinates: "screenCoordinates"; +}; + +// @public (undocumented) +export type MToonMaterialOutlineWidthMode = typeof MToonMaterialOutlineWidthMode[keyof typeof MToonMaterialOutlineWidthMode]; + +// @public (undocumented) +export interface MToonMaterialParameters extends THREE.ShaderMaterialParameters { + // (undocumented) + color?: THREE.Color; + debugMode?: MToonMaterialDebugMode; + // (undocumented) + emissive?: THREE.Color; + // (undocumented) + emissiveIntensity?: number; + // (undocumented) + emissiveMap?: THREE.Texture; + fog?: boolean; + // (undocumented) + giEqualizationFactor?: number; + ignoreVertexColor?: boolean; + isOutline?: boolean; + // (undocumented) + map?: THREE.Texture; + // (undocumented) + matcapFactor?: THREE.Color; + // (undocumented) + matcapTexture?: THREE.Texture; + // (undocumented) + normalMap?: THREE.Texture; + // (undocumented) + normalScale?: THREE.Vector2; + // (undocumented) + outlineColorFactor?: THREE.Color; + // (undocumented) + outlineLightingMixFactor?: number; + // (undocumented) + outlineWidthFactor?: number; + // (undocumented) + outlineWidthMode?: MToonMaterialOutlineWidthMode; + // (undocumented) + outlineWidthMultiplyTexture?: THREE.Texture; + // (undocumented) + parametricRimColorFactor?: THREE.Color; + // (undocumented) + parametricRimFresnelPowerFactor?: number; + // (undocumented) + parametricRimLiftFactor?: number; + // (undocumented) + rimLightingMixFactor?: number; + // (undocumented) + rimMultiplyTexture?: THREE.Texture; + // (undocumented) + shadeColorFactor?: THREE.Color; + // (undocumented) + shadeMultiplyTexture?: THREE.Texture; + // (undocumented) + shadingShiftFactor?: number; + // (undocumented) + shadingShiftTexture?: THREE.Texture; + // (undocumented) + shadingShiftTextureScale?: number; + // (undocumented) + shadingToonyFactor?: number; + transparentWithZWrite?: boolean; + // (undocumented) + uvAnimationMaskTexture?: THREE.Texture; + // (undocumented) + uvAnimationRotationSpeedFactor?: number; + // (undocumented) + uvAnimationScrollXSpeedFactor?: number; + // (undocumented) + uvAnimationScrollYSpeedFactor?: number; + v0CompatShade?: boolean; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/three-vrm-materials-v0compat/api-extractor.json b/packages/three-vrm-materials-v0compat/api-extractor.json new file mode 100644 index 000000000..663b48c3c --- /dev/null +++ b/packages/three-vrm-materials-v0compat/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} \ No newline at end of file diff --git a/packages/three-vrm-materials-v0compat/package.json b/packages/three-vrm-materials-v0compat/package.json index 9c6d37f4a..1742de15e 100644 --- a/packages/three-vrm-materials-v0compat/package.json +++ b/packages/three-vrm-materials-v0compat/package.json @@ -12,7 +12,7 @@ ], "main": "lib/three-vrm-materials-v0compat.js", "module": "lib/three-vrm-materials-v0compat.module.js", - "types": "types/index.d.ts", + "types": "lib/index.d.ts", "typesVersions": { "<3.9": { "*": [ @@ -28,7 +28,7 @@ "build": "yarn build-dev && yarn build-prod && yarn build-types", "build-dev": "cross-env NODE_ENV=development rollup -c", "build-prod": "cross-env NODE_ENV=production rollup -c", - "build-types": "tsc --project ./tsconfig.build-types.json && downlevel-dts types ts3.4/types", + "build-types": "tsc --project ./tsconfig.build-types.json && api-extractor run --local && downlevel-dts types ts3.4/types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier \"src/**/*.{ts,tsx}\" --check", "lint-fix": "eslint \"src/**/*.{ts,tsx}\" --fix && prettier \"src/**/*.{ts,tsx}\" --write" diff --git a/packages/three-vrm-materials-v0compat/three-vrm-materials-v0compat.api.md b/packages/three-vrm-materials-v0compat/three-vrm-materials-v0compat.api.md new file mode 100644 index 000000000..49ee5c978 --- /dev/null +++ b/packages/three-vrm-materials-v0compat/three-vrm-materials-v0compat.api.md @@ -0,0 +1,23 @@ +## API Report File for "@pixiv/three-vrm-materials-v0compat" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import type { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import type { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; + +// @public (undocumented) +export class VRMMaterialsV0CompatPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser); + // (undocumented) + beforeRoot(): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/three-vrm-node-constraint/api-extractor.json b/packages/three-vrm-node-constraint/api-extractor.json new file mode 100644 index 000000000..663b48c3c --- /dev/null +++ b/packages/three-vrm-node-constraint/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} \ No newline at end of file diff --git a/packages/three-vrm-node-constraint/package.json b/packages/three-vrm-node-constraint/package.json index 8f50fb8ad..bd7e87be2 100644 --- a/packages/three-vrm-node-constraint/package.json +++ b/packages/three-vrm-node-constraint/package.json @@ -12,7 +12,7 @@ ], "main": "lib/three-vrm-node-constraint.js", "module": "lib/three-vrm-node-constraint.module.js", - "types": "types/index.d.ts", + "types": "lib/index.d.ts", "typesVersions": { "<3.9": { "*": [ @@ -28,7 +28,7 @@ "build": "yarn build-dev && yarn build-prod && yarn build-types", "build-dev": "cross-env NODE_ENV=development rollup -c", "build-prod": "cross-env NODE_ENV=production rollup -c", - "build-types": "tsc --project ./tsconfig.build-types.json && downlevel-dts types ts3.4/types", + "build-types": "tsc --project ./tsconfig.build-types.json && api-extractor run --local && downlevel-dts types ts3.4/types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "test": "jest", "lint": "eslint \"src/**/*.{ts,tsx}\" && yarn lint-examples && prettier \"src/**/*.{ts,tsx}\" --check", diff --git a/packages/three-vrm-node-constraint/src/VRMAimConstraint.ts b/packages/three-vrm-node-constraint/src/VRMAimConstraint.ts index 045d540c8..06f0bdb5e 100644 --- a/packages/three-vrm-node-constraint/src/VRMAimConstraint.ts +++ b/packages/three-vrm-node-constraint/src/VRMAimConstraint.ts @@ -24,9 +24,6 @@ export class VRMAimConstraint extends VRMNodeConstraint { return this._aimAxis; } - /** - * The aim axis of the constraint. - */ public set aimAxis(aimAxis: 'PositiveX' | 'NegativeX' | 'PositiveY' | 'NegativeY' | 'PositiveZ' | 'NegativeZ') { this._aimAxis = aimAxis; this._v3AimAxis.set( diff --git a/packages/three-vrm-node-constraint/src/VRMRollConstraint.ts b/packages/three-vrm-node-constraint/src/VRMRollConstraint.ts index 4bd58a487..352787c71 100644 --- a/packages/three-vrm-node-constraint/src/VRMRollConstraint.ts +++ b/packages/three-vrm-node-constraint/src/VRMRollConstraint.ts @@ -19,9 +19,6 @@ export class VRMRollConstraint extends VRMNodeConstraint { return this._rollAxis; } - /** - * The roll axis of the constraint. - */ public set rollAxis(rollAxis: 'X' | 'Y' | 'Z') { this._rollAxis = rollAxis; this._v3RollAxis.set(rollAxis === 'X' ? 1.0 : 0.0, rollAxis === 'Y' ? 1.0 : 0.0, rollAxis === 'Z' ? 1.0 : 0.0); diff --git a/packages/three-vrm-node-constraint/three-vrm-node-constraint.api.md b/packages/three-vrm-node-constraint/three-vrm-node-constraint.api.md new file mode 100644 index 000000000..f3d0dbf05 --- /dev/null +++ b/packages/three-vrm-node-constraint/three-vrm-node-constraint.api.md @@ -0,0 +1,110 @@ +## API Report File for "@pixiv/three-vrm-node-constraint" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import type { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import type { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import * as THREE_2 from 'three'; + +// @public +export class VRMAimConstraint extends VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + get aimAxis(): 'PositiveX' | 'NegativeX' | 'PositiveY' | 'NegativeY' | 'PositiveZ' | 'NegativeZ'; + set aimAxis(aimAxis: 'PositiveX' | 'NegativeX' | 'PositiveY' | 'NegativeY' | 'PositiveZ' | 'NegativeZ'); + // (undocumented) + get dependencies(): Set>; + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// @public +export abstract class VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + // (undocumented) + abstract get dependencies(): Set; + destination: THREE_2.Object3D; + abstract setInitState(): void; + source: THREE_2.Object3D; + abstract update(): void; + weight: number; +} + +// @public (undocumented) +export class VRMNodeConstraintHelper extends THREE_2.Group { + constructor(constraint: VRMNodeConstraint); + // (undocumented) + readonly constraint: VRMNodeConstraint; + // (undocumented) + updateMatrixWorld(force?: boolean): void; +} + +// @public (undocumented) +export class VRMNodeConstraintLoaderPlugin implements GLTFLoaderPlugin { + // Warning: (ae-forgotten-export) The symbol "VRMNodeConstraintLoaderPluginOptions" needs to be exported by the entry point index.d.ts + constructor(parser: GLTFParser, options?: VRMNodeConstraintLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + static readonly EXTENSION_NAME = "VRMC_node_constraint"; + helperRoot?: THREE_2.Object3D; + protected _import(gltf: GLTF): Promise; + // (undocumented) + protected _importAimConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], aimConstraintDef: ConstraintSchema.AimConstraint): VRMAimConstraint; + // Warning: (ae-forgotten-export) The symbol "ConstraintSchema" needs to be exported by the entry point index.d.ts + // + // (undocumented) + protected _importRollConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], rollConstraintDef: ConstraintSchema.RollConstraint): VRMRollConstraint; + // (undocumented) + protected _importRotationConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], rotationConstraintDef: ConstraintSchema.RotationConstraint): VRMRotationConstraint; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export class VRMNodeConstraintManager { + // (undocumented) + addConstraint(constraint: VRMNodeConstraint): void; + // (undocumented) + get constraints(): Set; + // (undocumented) + deleteConstraint(constraint: VRMNodeConstraint): void; + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// @public +export class VRMRollConstraint extends VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + // (undocumented) + get dependencies(): Set>; + get rollAxis(): 'X' | 'Y' | 'Z'; + set rollAxis(rollAxis: 'X' | 'Y' | 'Z'); + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// @public +export class VRMRotationConstraint extends VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + // (undocumented) + get dependencies(): Set>; + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/three-vrm-springbone/api-extractor.json b/packages/three-vrm-springbone/api-extractor.json new file mode 100644 index 000000000..663b48c3c --- /dev/null +++ b/packages/three-vrm-springbone/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} \ No newline at end of file diff --git a/packages/three-vrm-springbone/package.json b/packages/three-vrm-springbone/package.json index 226c33b9f..bec184efb 100644 --- a/packages/three-vrm-springbone/package.json +++ b/packages/three-vrm-springbone/package.json @@ -12,7 +12,7 @@ ], "main": "lib/three-vrm-springbone.js", "module": "lib/three-vrm-springbone.module.js", - "types": "types/index.d.ts", + "types": "lib/index.d.ts", "typesVersions": { "<3.9": { "*": [ @@ -28,7 +28,7 @@ "build": "yarn build-dev && yarn build-prod && yarn build-types", "build-dev": "cross-env NODE_ENV=development rollup -c", "build-prod": "cross-env NODE_ENV=production rollup -c", - "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run --local && downlevel-dts types ts3.4/types && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "test": "jest", "lint": "eslint \"src/**/*.{ts,tsx}\" && yarn lint-examples && prettier \"src/**/*.{ts,tsx}\" --check", diff --git a/packages/three-vrm-springbone/three-vrm-springbone.api.md b/packages/three-vrm-springbone/three-vrm-springbone.api.md new file mode 100644 index 000000000..22c38154c --- /dev/null +++ b/packages/three-vrm-springbone/three-vrm-springbone.api.md @@ -0,0 +1,156 @@ +## API Report File for "@pixiv/three-vrm-springbone" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import type { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import type { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import * as THREE_2 from 'three'; + +// @public +export class VRMSpringBoneCollider extends THREE_2.Object3D { + constructor(shape: VRMSpringBoneColliderShape); + readonly shape: VRMSpringBoneColliderShape; +} + +// @public +export interface VRMSpringBoneColliderGroup { + colliders: VRMSpringBoneCollider[]; + name?: string; +} + +// @public (undocumented) +export class VRMSpringBoneColliderHelper extends THREE_2.Group { + constructor(collider: VRMSpringBoneCollider); + // (undocumented) + readonly collider: VRMSpringBoneCollider; + // (undocumented) + dispose(): void; + // (undocumented) + updateMatrixWorld(force: boolean): void; +} + +// @public +export abstract class VRMSpringBoneColliderShape { + abstract calculateCollision(colliderMatrix: THREE.Matrix4, objectPosition: THREE.Vector3, objectRadius: number, target: THREE.Vector3): number; + abstract get type(): string; +} + +// @public (undocumented) +export class VRMSpringBoneColliderShapeCapsule extends VRMSpringBoneColliderShape { + constructor(params?: { + radius?: number; + offset?: THREE_2.Vector3; + tail?: THREE_2.Vector3; + }); + // (undocumented) + calculateCollision(colliderMatrix: THREE_2.Matrix4, objectPosition: THREE_2.Vector3, objectRadius: number, target: THREE_2.Vector3): number; + offset: THREE_2.Vector3; + radius: number; + tail: THREE_2.Vector3; + // (undocumented) + get type(): 'capsule'; +} + +// @public (undocumented) +export class VRMSpringBoneColliderShapeSphere extends VRMSpringBoneColliderShape { + constructor(params?: { + radius?: number; + offset?: THREE_2.Vector3; + }); + // (undocumented) + calculateCollision(colliderMatrix: THREE_2.Matrix4, objectPosition: THREE_2.Vector3, objectRadius: number, target: THREE_2.Vector3): number; + offset: THREE_2.Vector3; + radius: number; + // (undocumented) + get type(): 'sphere'; +} + +// @public +export class VRMSpringBoneJoint { + constructor(bone: THREE_2.Object3D, child: THREE_2.Object3D | null, settings?: Partial, colliderGroups?: VRMSpringBoneColliderGroup[]); + readonly bone: THREE_2.Object3D; + // (undocumented) + get center(): THREE_2.Object3D | null; + set center(center: THREE_2.Object3D | null); + readonly child: THREE_2.Object3D | null; + colliderGroups: VRMSpringBoneColliderGroup[]; + // (undocumented) + get initialLocalChildPosition(): THREE_2.Vector3; + reset(): void; + setInitState(): void; + settings: VRMSpringBoneJointSettings; + update(delta: number): void; +} + +// @public (undocumented) +export class VRMSpringBoneJointHelper extends THREE_2.Group { + constructor(springBone: VRMSpringBoneJoint); + // (undocumented) + dispose(): void; + // (undocumented) + readonly springBone: VRMSpringBoneJoint; + // (undocumented) + updateMatrixWorld(force: boolean): void; +} + +// @public (undocumented) +export interface VRMSpringBoneJointSettings { + // (undocumented) + dragForce: number; + // (undocumented) + gravityDir: THREE.Vector3; + // (undocumented) + gravityPower: number; + hitRadius: number; + // (undocumented) + stiffness: number; +} + +// @public (undocumented) +export class VRMSpringBoneLoaderPlugin implements GLTFLoaderPlugin { + // Warning: (ae-forgotten-export) The symbol "VRMSpringBoneLoaderPluginOptions" needs to be exported by the entry point index.d.ts + constructor(parser: GLTFParser, options?: VRMSpringBoneLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + colliderHelperRoot?: THREE_2.Object3D; + // (undocumented) + static readonly EXTENSION_NAME = "VRMC_springBone"; + jointHelperRoot?: THREE_2.Object3D; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export class VRMSpringBoneManager { + // (undocumented) + addJoint(joint: VRMSpringBoneJoint): void; + // @deprecated (undocumented) + addSpringBone(joint: VRMSpringBoneJoint): void; + // (undocumented) + get colliderGroups(): VRMSpringBoneColliderGroup[]; + // (undocumented) + get colliders(): VRMSpringBoneCollider[]; + // (undocumented) + deleteJoint(joint: VRMSpringBoneJoint): void; + // @deprecated (undocumented) + deleteSpringBone(joint: VRMSpringBoneJoint): void; + // (undocumented) + get joints(): Set; + // (undocumented) + reset(): void; + // (undocumented) + setInitState(): void; + // @deprecated (undocumented) + get springBones(): Set; + // (undocumented) + update(delta: number): void; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/three-vrm/api-extractor.json b/packages/three-vrm/api-extractor.json index 51134e26a..663b48c3c 100644 --- a/packages/three-vrm/api-extractor.json +++ b/packages/three-vrm/api-extractor.json @@ -1,432 +1,4 @@ -/** - * Config file for API Extractor. For more info, please visit: https://api-extractor.com - */ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - /** - * Optionally specifies another JSON config file that this file extends from. This provides a way for - * standard settings to be shared across multiple projects. - * - * If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains - * the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be - * resolved using NodeJS require(). - * - * SUPPORTED TOKENS: none - * DEFAULT VALUE: "" - */ - // "extends": "./shared/api-extractor-base.json" - // "extends": "my-package/include/api-extractor-base.json" - - /** - * Determines the "" token that can be used with other config file settings. The project folder - * typically contains the tsconfig.json and package.json config files, but the path is user-defined. - * - * The path is resolved relative to the folder of the config file that contains the setting. - * - * The default value for "projectFolder" is the token "", which means the folder is determined by traversing - * parent folders, starting from the folder containing api-extractor.json, and stopping at the first folder - * that contains a tsconfig.json file. If a tsconfig.json file cannot be found in this way, then an error - * will be reported. - * - * SUPPORTED TOKENS: - * DEFAULT VALUE: "" - */ - // "projectFolder": "..", - - /** - * (REQUIRED) Specifies the .d.ts file to be used as the starting point for analysis. API Extractor - * analyzes the symbols exported by this module. - * - * The file extension must be ".d.ts" and not ".ts". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - */ - "mainEntryPointFilePath": "/types/index.d.ts", - - /** - * A list of NPM package names whose exports should be treated as part of this package. - * - * For example, suppose that Webpack is used to generate a distributed bundle for the project "library1", - * and another NPM package "library2" is embedded in this bundle. Some types from library2 may become part - * of the exported API for library1, but by default API Extractor would generate a .d.ts rollup that explicitly - * imports library2. To avoid this, we can specify: - * - * "bundledPackages": [ "library2" ], - * - * This would direct API Extractor to embed those types directly in the .d.ts rollup, as if they had been - * local files for library1. - */ - "bundledPackages": [ - "@pixiv/three-vrm-core", - "@pixiv/three-vrm-materials-mtoon", - "@pixiv/three-vrm-node-constraint", - "@pixiv/three-vrm-springbone" - ], - - /** - * Specifies what type of newlines API Extractor should use when writing output files. By default, the output files - * will be written with Windows-style newlines. To use POSIX-style newlines, specify "lf" instead. - * To use the OS's default newline kind, specify "os". - * - * DEFAULT VALUE: "crlf" - */ - // "newlineKind": "crlf", - - /** - * Set to true when invoking API Extractor's test harness. When `testMode` is true, the `toolVersion` field in the - * .api.json file is assigned an empty string to prevent spurious diffs in output files tracked for tests. - * - * DEFAULT VALUE: "false" - */ - // "testMode": false, - - /** - * Specifies how API Extractor sorts members of an enum when generating the .api.json file. By default, the output - * files will be sorted alphabetically, which is "by-name". To keep the ordering in the source code, specify - * "preserve". - * - * DEFAULT VALUE: "by-name" - */ - // "enumMemberOrder": "by-name", - - /** - * Determines how the TypeScript compiler engine will be invoked by API Extractor. - */ - "compiler": { - /** - * Specifies the path to the tsconfig.json file to be used by API Extractor when analyzing the project. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * Note: This setting will be ignored if "overrideTsconfig" is used. - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/tsconfig.json" - */ - // "tsconfigFilePath": "/tsconfig.json", - /** - * Provides a compiler configuration that will be used instead of reading the tsconfig.json file from disk. - * The object must conform to the TypeScript tsconfig schema: - * - * http://json.schemastore.org/tsconfig - * - * If omitted, then the tsconfig.json file will be read from the "projectFolder". - * - * DEFAULT VALUE: no overrideTsconfig section - */ - // "overrideTsconfig": { - // . . . - // } - /** - * This option causes the compiler to be invoked with the --skipLibCheck option. This option is not recommended - * and may cause API Extractor to produce incomplete or incorrect declarations, but it may be required when - * dependencies contain declarations that are incompatible with the TypeScript engine that API Extractor uses - * for its analysis. Where possible, the underlying issue should be fixed rather than relying on skipLibCheck. - * - * DEFAULT VALUE: false - */ - // "skipLibCheck": true, - }, - - /** - * Configures how the API report file (*.api.md) will be generated. - */ - "apiReport": { - /** - * (REQUIRED) Whether to generate an API report. - */ - "enabled": true, - - /** - * The filename for the API report files. It will be combined with "reportFolder" or "reportTempFolder" to produce - * a full file path. - * - * The file extension should be ".api.md", and the string should not contain a path separator such as "\" or "/". - * - * SUPPORTED TOKENS: , - * DEFAULT VALUE: ".api.md" - */ - "reportFileName": ".api.md", - - /** - * Specifies the folder where the API report file is written. The file name portion is determined by - * the "reportFileName" setting. - * - * The API report file is normally tracked by Git. Changes to it can be used to trigger a branch policy, - * e.g. for an API review. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/" - */ - "reportFolder": "" - - /** - * Specifies the folder where the temporary report file is written. The file name portion is determined by - * the "reportFileName" setting. - * - * After the temporary file is written to disk, it is compared with the file in the "reportFolder". - * If they are different, a production build will fail. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/" - */ - // "reportTempFolder": "/temp/", - - /** - * Whether "forgotten exports" should be included in the API report file. Forgotten exports are declarations - * flagged with `ae-forgotten-export` warnings. See https://api-extractor.com/pages/messages/ae-forgotten-export/ to - * learn more. - * - * DEFAULT VALUE: "false" - */ - // "includeForgottenExports": false - }, - - /** - * Configures how the doc model file (*.api.json) will be generated. - */ - "docModel": { - /** - * (REQUIRED) Whether to generate a doc model file. - */ - "enabled": false - - /** - * The output path for the doc model file. The file extension should be ".api.json". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/.api.json" - */ - // "apiJsonFilePath": "/temp/.api.json", - - /** - * Whether "forgotten exports" should be included in the doc model file. Forgotten exports are declarations - * flagged with `ae-forgotten-export` warnings. See https://api-extractor.com/pages/messages/ae-forgotten-export/ to - * learn more. - * - * DEFAULT VALUE: "false" - */ - // "includeForgottenExports": false, - - /** - * The base URL where the project's source code can be viewed on a website such as GitHub or - * Azure DevOps. This URL path corresponds to the `` path on disk. - * - * This URL is concatenated with the file paths serialized to the doc model to produce URL file paths to individual API items. - * For example, if the `projectFolderUrl` is "https://github.com/microsoft/rushstack/tree/main/apps/api-extractor" and an API - * item's file path is "api/ExtractorConfig.ts", the full URL file path would be - * "https://github.com/microsoft/rushstack/tree/main/apps/api-extractor/api/ExtractorConfig.js". - * - * Can be omitted if you don't need source code links in your API documentation reference. - * - * SUPPORTED TOKENS: none - * DEFAULT VALUE: "" - */ - // "projectFolderUrl": "http://github.com/path/to/your/projectFolder" - }, - - /** - * Configures how the .d.ts rollup file will be generated. - */ - "dtsRollup": { - /** - * (REQUIRED) Whether to generate the .d.ts rollup file. - */ - "enabled": true, - - /** - * Specifies the output path for a .d.ts rollup file to be generated without any trimming. - * This file will include all declarations that are exported by the main entry point. - * - * If the path is an empty string, then this file will not be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/dist/.d.ts" - */ - "untrimmedFilePath": "/lib/.d.ts" - - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for an "alpha" release. - * This file will include only declarations that are marked as "@public", "@beta", or "@alpha". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "alphaTrimmedFilePath": "/dist/-alpha.d.ts", - - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "beta" release. - * This file will include only declarations that are marked as "@public" or "@beta". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "betaTrimmedFilePath": "/dist/-beta.d.ts", - - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "public" release. - * This file will include only declarations that are marked as "@public". - * - * If the path is an empty string, then this file will not be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "publicTrimmedFilePath": "/dist/-public.d.ts", - - /** - * When a declaration is trimmed, by default it will be replaced by a code comment such as - * "Excluded from this release type: exampleMember". Set "omitTrimmingComments" to true to remove the - * declaration completely. - * - * DEFAULT VALUE: false - */ - // "omitTrimmingComments": true - }, - - /** - * Configures how the tsdoc-metadata.json file will be generated. - */ - "tsdocMetadata": { - /** - * Whether to generate the tsdoc-metadata.json file. - * - * DEFAULT VALUE: true - */ - // "enabled": true, - /** - * Specifies where the TSDoc metadata file should be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * The default value is "", which causes the path to be automatically inferred from the "tsdocMetadata", - * "typings" or "main" fields of the project's package.json. If none of these fields are set, the lookup - * falls back to "tsdoc-metadata.json" in the package folder. - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "tsdocMetadataFilePath": "/dist/tsdoc-metadata.json" - }, - - /** - * Configures how API Extractor reports error and warning messages produced during analysis. - * - * There are three sources of messages: compiler messages, API Extractor messages, and TSDoc messages. - */ - "messages": { - /** - * Configures handling of diagnostic messages reported by the TypeScript compiler engine while analyzing - * the input .d.ts files. - * - * TypeScript message identifiers start with "TS" followed by an integer. For example: "TS2551" - * - * DEFAULT VALUE: A single "default" entry with logLevel=warning. - */ - "compilerMessageReporting": { - /** - * Configures the default routing for messages that don't match an explicit rule in this table. - */ - "default": { - /** - * Specifies whether the message should be written to the the tool's output log. Note that - * the "addToApiReportFile" property may supersede this option. - * - * Possible values: "error", "warning", "none" - * - * Errors cause the build to fail and return a nonzero exit code. Warnings cause a production build fail - * and return a nonzero exit code. For a non-production build (e.g. when "api-extractor run" includes - * the "--local" option), the warning is displayed but the build will not fail. - * - * DEFAULT VALUE: "warning" - */ - "logLevel": "warning" - - /** - * When addToApiReportFile is true: If API Extractor is configured to write an API report file (.api.md), - * then the message will be written inside that file; otherwise, the message is instead logged according to - * the "logLevel" option. - * - * DEFAULT VALUE: false - */ - // "addToApiReportFile": false - } - - // "TS2551": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - }, - - /** - * Configures handling of messages reported by API Extractor during its analysis. - * - * API Extractor message identifiers start with "ae-". For example: "ae-extra-release-tag" - * - * DEFAULT VALUE: See api-extractor-defaults.json for the complete table of extractorMessageReporting mappings - */ - "extractorMessageReporting": { - "default": { - "logLevel": "warning" - // "addToApiReportFile": false - } - - // "ae-extra-release-tag": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - }, - - /** - * Configures handling of messages reported by the TSDoc parser when analyzing code comments. - * - * TSDoc message identifiers start with "tsdoc-". For example: "tsdoc-link-tag-unescaped-text" - * - * DEFAULT VALUE: A single "default" entry with logLevel=warning. - */ - "tsdocMessageReporting": { - "default": { - "logLevel": "warning" - // "addToApiReportFile": false - } - - // "tsdoc-link-tag-unescaped-text": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - } - } -} + "extends": "../../api-extractor.base.json" +} \ No newline at end of file diff --git a/packages/three-vrm/package.json b/packages/three-vrm/package.json index 1b81a60e9..2d34bba83 100644 --- a/packages/three-vrm/package.json +++ b/packages/three-vrm/package.json @@ -12,7 +12,7 @@ ], "main": "lib/three-vrm.js", "module": "lib/three-vrm.module.js", - "types": "lib/three-vrm.d.ts", + "types": "lib/index.d.ts", "typesVersions": { "<3.9": { "*": [ @@ -32,7 +32,7 @@ "build": "yarn build-dev && yarn build-prod && yarn build-types", "build-dev": "cross-env NODE_ENV=development rollup -c", "build-prod": "cross-env NODE_ENV=production rollup -c", - "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run --local && downlevel-dts types ts3.4/types && rm -rf types", + "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run --local && downlevel-dts types ts3.4/types && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "test": "echo There is no test for three-vrm", "lint": "eslint \"src/**/*.{ts,tsx}\" && yarn lint-examples && prettier \"src/**/*.{ts,tsx}\" --check", diff --git a/packages/three-vrm/three-vrm.api.md b/packages/three-vrm/three-vrm.api.md index cb01df845..a23a16885 100644 --- a/packages/three-vrm/three-vrm.api.md +++ b/packages/three-vrm/three-vrm.api.md @@ -1,1287 +1,1291 @@ -## API Report File for "@pixiv/three-vrm" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts - -import type * as ConstraintSchema from '@pixiv/types-vrmc-node-constraint-1.0'; -import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js'; -import { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; -import { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; -import * as THREE_2 from 'three'; -import type * as V0VRM from '@pixiv/types-vrm-0.0'; -import { VRMMaterialsHDREmissiveMultiplierLoaderPlugin } from '@pixiv/three-vrm-materials-hdr-emissive-multiplier'; -import { VRMMaterialsV0CompatPlugin } from '@pixiv/three-vrm-materials-v0compat'; - -// @public -export class MToonMaterial extends THREE_2.ShaderMaterial { - constructor(parameters?: MToonMaterialParameters); - // (undocumented) - get color(): THREE_2.Color; - set color(value: THREE_2.Color); - // (undocumented) - copy(source: this): this; - get debugMode(): MToonMaterialDebugMode; - set debugMode(m: MToonMaterialDebugMode); - // (undocumented) - get emissive(): THREE_2.Color; - set emissive(value: THREE_2.Color); - // (undocumented) - get emissiveIntensity(): number; - set emissiveIntensity(value: number); - // (undocumented) - get emissiveMap(): THREE_2.Texture | null; - set emissiveMap(value: THREE_2.Texture | null); - fog: boolean; - // (undocumented) - get giEqualizationFactor(): number; - set giEqualizationFactor(value: number); - get ignoreVertexColor(): boolean; - set ignoreVertexColor(value: boolean); - get isMToonMaterial(): true; - // (undocumented) - get isOutline(): boolean; - set isOutline(b: boolean); - // (undocumented) - get map(): THREE_2.Texture | null; - set map(value: THREE_2.Texture | null); - // (undocumented) - get matcapFactor(): THREE_2.Color; - set matcapFactor(value: THREE_2.Color); - // (undocumented) - get matcapTexture(): THREE_2.Texture | null; - set matcapTexture(value: THREE_2.Texture | null); - // (undocumented) - get normalMap(): THREE_2.Texture | null; - set normalMap(value: THREE_2.Texture | null); - normalMapType: 0; - // (undocumented) - get normalScale(): THREE_2.Vector2; - set normalScale(value: THREE_2.Vector2); - // (undocumented) - get outlineColorFactor(): THREE_2.Color; - set outlineColorFactor(value: THREE_2.Color); - // (undocumented) - get outlineLightingMixFactor(): number; - set outlineLightingMixFactor(value: number); - // (undocumented) - get outlineWidthFactor(): number; - set outlineWidthFactor(value: number); - // (undocumented) - get outlineWidthMode(): MToonMaterialOutlineWidthMode; - set outlineWidthMode(m: MToonMaterialOutlineWidthMode); - // (undocumented) - get outlineWidthMultiplyTexture(): THREE_2.Texture | null; - set outlineWidthMultiplyTexture(value: THREE_2.Texture | null); - // (undocumented) - get parametricRimColorFactor(): THREE_2.Color; - set parametricRimColorFactor(value: THREE_2.Color); - // (undocumented) - get parametricRimFresnelPowerFactor(): number; - set parametricRimFresnelPowerFactor(value: number); - // (undocumented) - get parametricRimLiftFactor(): number; - set parametricRimLiftFactor(value: number); - // (undocumented) - get rimLightingMixFactor(): number; - set rimLightingMixFactor(value: number); - // (undocumented) - get rimMultiplyTexture(): THREE_2.Texture | null; - set rimMultiplyTexture(value: THREE_2.Texture | null); - // (undocumented) - get shadeColorFactor(): THREE_2.Color; - set shadeColorFactor(value: THREE_2.Color); - // (undocumented) - get shadeMultiplyTexture(): THREE_2.Texture | null; - set shadeMultiplyTexture(value: THREE_2.Texture | null); - // (undocumented) - get shadingShiftFactor(): number; - set shadingShiftFactor(value: number); - // (undocumented) - get shadingShiftTexture(): THREE_2.Texture | null; - set shadingShiftTexture(value: THREE_2.Texture | null); - // (undocumented) - get shadingShiftTextureScale(): number; - set shadingShiftTextureScale(value: number); - // (undocumented) - get shadingToonyFactor(): number; - set shadingToonyFactor(value: number); - // (undocumented) - uniforms: { - litFactor: THREE_2.IUniform; - alphaTest: THREE_2.IUniform; - opacity: THREE_2.IUniform; - map: THREE_2.IUniform; - mapUvTransform: THREE_2.IUniform; - normalMap: THREE_2.IUniform; - normalMapUvTransform: THREE_2.IUniform; - normalScale: THREE_2.IUniform; - emissive: THREE_2.IUniform; - emissiveIntensity: THREE_2.IUniform; - emissiveMap: THREE_2.IUniform; - emissiveMapUvTransform: THREE_2.IUniform; - shadeColorFactor: THREE_2.IUniform; - shadeMultiplyTexture: THREE_2.IUniform; - shadeMultiplyTextureUvTransform: THREE_2.IUniform; - shadingShiftFactor: THREE_2.IUniform; - shadingShiftTexture: THREE_2.IUniform; - shadingShiftTextureUvTransform: THREE_2.IUniform; - shadingShiftTextureScale: THREE_2.IUniform; - shadingToonyFactor: THREE_2.IUniform; - giEqualizationFactor: THREE_2.IUniform; - matcapFactor: THREE_2.IUniform; - matcapTexture: THREE_2.IUniform; - matcapTextureUvTransform: THREE_2.IUniform; - parametricRimColorFactor: THREE_2.IUniform; - rimMultiplyTexture: THREE_2.IUniform; - rimMultiplyTextureUvTransform: THREE_2.IUniform; - rimLightingMixFactor: THREE_2.IUniform; - parametricRimFresnelPowerFactor: THREE_2.IUniform; - parametricRimLiftFactor: THREE_2.IUniform; - outlineWidthMultiplyTexture: THREE_2.IUniform; - outlineWidthMultiplyTextureUvTransform: THREE_2.IUniform; - outlineWidthFactor: THREE_2.IUniform; - outlineColorFactor: THREE_2.IUniform; - outlineLightingMixFactor: THREE_2.IUniform; - uvAnimationMaskTexture: THREE_2.IUniform; - uvAnimationMaskTextureUvTransform: THREE_2.IUniform; - uvAnimationScrollXOffset: THREE_2.IUniform; - uvAnimationScrollYOffset: THREE_2.IUniform; - uvAnimationRotationPhase: THREE_2.IUniform; - }; - update(delta: number): void; - // (undocumented) - get uvAnimationMaskTexture(): THREE_2.Texture | null; - set uvAnimationMaskTexture(value: THREE_2.Texture | null); - // (undocumented) - get uvAnimationRotationPhase(): number; - set uvAnimationRotationPhase(value: number); - // (undocumented) - uvAnimationRotationSpeedFactor: number; - // (undocumented) - get uvAnimationScrollXOffset(): number; - set uvAnimationScrollXOffset(value: number); - // (undocumented) - uvAnimationScrollXSpeedFactor: number; - // (undocumented) - get uvAnimationScrollYOffset(): number; - set uvAnimationScrollYOffset(value: number); - // (undocumented) - uvAnimationScrollYSpeedFactor: number; - get v0CompatShade(): boolean; - set v0CompatShade(v: boolean); -} - -// @public -export const MToonMaterialDebugMode: { - readonly None: "none"; - readonly Normal: "normal"; - readonly LitShadeRate: "litShadeRate"; - readonly UV: "uv"; -}; - -// @public (undocumented) -export type MToonMaterialDebugMode = typeof MToonMaterialDebugMode[keyof typeof MToonMaterialDebugMode]; - -// @public (undocumented) -export class MToonMaterialLoaderPlugin implements GLTFLoaderPlugin { - constructor(parser: GLTFParser, options?: MToonMaterialLoaderPluginOptions); - // (undocumented) - afterRoot(gltf: GLTF): Promise; - // (undocumented) - beforeRoot(): Promise; - debugMode: MToonMaterialDebugMode; - // (undocumented) - extendMaterialParams(materialIndex: number, materialParams: MToonMaterialParameters): Promise | null; - // (undocumented) - static EXTENSION_NAME: string; - // (undocumented) - getMaterialType(materialIndex: number): typeof THREE_2.Material | null; - // (undocumented) - loadMesh(meshIndex: number): Promise; - // (undocumented) - get name(): string; - // (undocumented) - readonly parser: GLTFParser; - renderOrderOffset: number; - v0CompatShade: boolean; -} - -// @public (undocumented) -export interface MToonMaterialLoaderPluginOptions { - debugMode?: MToonMaterialDebugMode; - renderOrderOffset?: number; - v0CompatShade?: boolean; -} - -// @public (undocumented) -export const MToonMaterialOutlineWidthMode: { - readonly None: "none"; - readonly WorldCoordinates: "worldCoordinates"; - readonly ScreenCoordinates: "screenCoordinates"; -}; - -// @public (undocumented) -export type MToonMaterialOutlineWidthMode = typeof MToonMaterialOutlineWidthMode[keyof typeof MToonMaterialOutlineWidthMode]; - -// @public (undocumented) -export interface MToonMaterialParameters extends THREE.ShaderMaterialParameters { - // (undocumented) - color?: THREE.Color; - debugMode?: MToonMaterialDebugMode; - // (undocumented) - emissive?: THREE.Color; - // (undocumented) - emissiveIntensity?: number; - // (undocumented) - emissiveMap?: THREE.Texture; - fog?: boolean; - // (undocumented) - giEqualizationFactor?: number; - ignoreVertexColor?: boolean; - isOutline?: boolean; - // (undocumented) - map?: THREE.Texture; - // (undocumented) - matcapFactor?: THREE.Color; - // (undocumented) - matcapTexture?: THREE.Texture; - // (undocumented) - normalMap?: THREE.Texture; - // (undocumented) - normalScale?: THREE.Vector2; - // (undocumented) - outlineColorFactor?: THREE.Color; - // (undocumented) - outlineLightingMixFactor?: number; - // (undocumented) - outlineWidthFactor?: number; - // (undocumented) - outlineWidthMode?: MToonMaterialOutlineWidthMode; - // (undocumented) - outlineWidthMultiplyTexture?: THREE.Texture; - // (undocumented) - parametricRimColorFactor?: THREE.Color; - // (undocumented) - parametricRimFresnelPowerFactor?: number; - // (undocumented) - parametricRimLiftFactor?: number; - // (undocumented) - rimLightingMixFactor?: number; - // (undocumented) - rimMultiplyTexture?: THREE.Texture; - // (undocumented) - shadeColorFactor?: THREE.Color; - // (undocumented) - shadeMultiplyTexture?: THREE.Texture; - // (undocumented) - shadingShiftFactor?: number; - // (undocumented) - shadingShiftTexture?: THREE.Texture; - // (undocumented) - shadingShiftTextureScale?: number; - // (undocumented) - shadingToonyFactor?: number; - transparentWithZWrite?: boolean; - // (undocumented) - uvAnimationMaskTexture?: THREE.Texture; - // (undocumented) - uvAnimationRotationSpeedFactor?: number; - // (undocumented) - uvAnimationScrollXSpeedFactor?: number; - // (undocumented) - uvAnimationScrollYSpeedFactor?: number; - v0CompatShade?: boolean; -} - -// @public -export class VRM extends VRMCore { - constructor(params: VRMParameters); - readonly materials?: THREE_2.Material[]; - readonly nodeConstraintManager?: VRMNodeConstraintManager; - readonly springBoneManager?: VRMSpringBoneManager; - update(delta: number): void; -} - -// @public -export interface VRM0Meta { - allowedUserName?: 'Everyone' | 'ExplicitlyLicensedPerson' | 'OnlyAuthor'; - author?: string; - commercialUssageName?: 'Allow' | 'Disallow'; - contactInformation?: string; - licenseName?: 'CC0' | 'CC_BY' | 'CC_BY_NC' | 'CC_BY_NC_ND' | 'CC_BY_NC_SA' | 'CC_BY_ND' | 'CC_BY_SA' | 'Other' | 'Redistribution_Prohibited'; - metaVersion: '0'; - otherLicenseUrl?: string; - otherPermissionUrl?: string; - reference?: string; - sexualUssageName?: 'Allow' | 'Disallow'; - texture?: THREE_2.Texture; - title?: string; - version?: string; - violentUssageName?: 'Allow' | 'Disallow'; -} - -// @public -export interface VRM1Meta { - allowAntisocialOrHateUsage?: boolean; - allowExcessivelySexualUsage?: boolean; - allowExcessivelyViolentUsage?: boolean; - allowPoliticalOrReligiousUsage?: boolean; - allowRedistribution?: boolean; - authors: string[]; - avatarPermission?: 'onlyAuthor' | 'onlySeparatelyLicensedPerson' | 'everyone'; - commercialUsage?: 'personalNonProfit' | 'personalProfit' | 'corporation'; - contactInformation?: string; - copyrightInformation?: string; - creditNotation?: 'required' | 'unnecessary'; - licenseUrl: string; - metaVersion: '1'; - modification?: 'prohibited' | 'allowModification' | 'allowModificationRedistribution'; - name: string; - otherLicenseUrl?: string; - references?: string[]; - thirdPartyLicenses?: string; - thumbnailImage?: HTMLImageElement; - version?: string; -} - -// @public -export class VRMAimConstraint extends VRMNodeConstraint { - constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); - get aimAxis(): 'PositiveX' | 'NegativeX' | 'PositiveY' | 'NegativeY' | 'PositiveZ' | 'NegativeZ'; - set aimAxis(aimAxis: 'PositiveX' | 'NegativeX' | 'PositiveY' | 'NegativeY' | 'PositiveZ' | 'NegativeZ'); - // (undocumented) - get dependencies(): Set>; - // (undocumented) - setInitState(): void; - // (undocumented) - update(): void; -} - -// @public -export class VRMCore { - constructor(params: VRMCoreParameters); - readonly expressionManager?: VRMExpressionManager; - readonly firstPerson?: VRMFirstPerson; - readonly humanoid: VRMHumanoid; - readonly lookAt?: VRMLookAt; - readonly meta: VRMMeta; - readonly scene: THREE_2.Group; - update(delta: number): void; -} - -// @public (undocumented) -export class VRMCoreLoaderPlugin implements GLTFLoaderPlugin { - constructor(parser: GLTFParser, options?: VRMCoreLoaderPluginOptions); - // (undocumented) - afterRoot(gltf: GLTF): Promise; - // (undocumented) - readonly expressionPlugin: VRMExpressionLoaderPlugin; - // (undocumented) - readonly firstPersonPlugin: VRMFirstPersonLoaderPlugin; - // (undocumented) - readonly humanoidPlugin: VRMHumanoidLoaderPlugin; - // (undocumented) - readonly lookAtPlugin: VRMLookAtLoaderPlugin; - // (undocumented) - readonly metaPlugin: VRMMetaLoaderPlugin; - // (undocumented) - get name(): string; - // (undocumented) - readonly parser: GLTFParser; -} - -// @public (undocumented) -export interface VRMCoreLoaderPluginOptions { - // (undocumented) - autoUpdateHumanBones?: boolean; - // (undocumented) - expressionPlugin?: VRMExpressionLoaderPlugin; - // (undocumented) - firstPersonPlugin?: VRMFirstPersonLoaderPlugin; - helperRoot?: THREE.Object3D; - // (undocumented) - humanoidPlugin?: VRMHumanoidLoaderPlugin; - // (undocumented) - lookAtPlugin?: VRMLookAtLoaderPlugin; - // (undocumented) - metaPlugin?: VRMMetaLoaderPlugin; -} - -// @public -export interface VRMCoreParameters { - // (undocumented) - expressionManager?: VRMExpressionManager; - // (undocumented) - firstPerson?: VRMFirstPerson; - // (undocumented) - humanoid: VRMHumanoid; - // (undocumented) - lookAt?: VRMLookAt; - // (undocumented) - meta: VRMMeta; - // (undocumented) - scene: THREE.Group; -} - -// @public (undocumented) -export class VRMExpression extends THREE_2.Object3D { - constructor(expressionName: string); - // (undocumented) - addBind(bind: VRMExpressionBind): void; - applyWeight(options?: { - multiplier?: number; - }): void; - clearAppliedWeight(): void; - expressionName: string; - isBinary: boolean; - overrideBlink: VRMExpressionOverrideType; - get overrideBlinkAmount(): number; - overrideLookAt: VRMExpressionOverrideType; - get overrideLookAtAmount(): number; - overrideMouth: VRMExpressionOverrideType; - get overrideMouthAmount(): number; - // (undocumented) - readonly type: string | 'VRMExpression'; - weight: number; -} - -// @public (undocumented) -export interface VRMExpressionBind { - applyWeight(weight: number): void; - clearAppliedWeight(): void; -} - -// @public -export class VRMExpressionLoaderPlugin implements GLTFLoaderPlugin { - constructor(parser: GLTFParser); - // (undocumented) - afterRoot(gltf: GLTF): Promise; - // (undocumented) - get name(): string; - // (undocumented) - readonly parser: GLTFParser; - // (undocumented) - static readonly v0v1PresetNameMap: { - [v0Name in V0VRM.BlendShapePresetName]?: VRMExpressionPresetName; - }; -} - -// @public (undocumented) -export class VRMExpressionManager { - constructor(); - blinkExpressionNames: string[]; - clone(): VRMExpressionManager; - copy(source: VRMExpressionManager): this; - get customExpressionMap(): { - [name: string]: VRMExpression; - }; - // (undocumented) - get expressionMap(): { - [name: string]: VRMExpression; - }; - // (undocumented) - get expressions(): VRMExpression[]; - getExpression(name: VRMExpressionPresetName | string): VRMExpression | null; - getExpressionTrackName(name: VRMExpressionPresetName | string): string | null; - getValue(name: VRMExpressionPresetName | string): number | null; - lookAtExpressionNames: string[]; - mouthExpressionNames: string[]; - get presetExpressionMap(): { - [name in VRMExpressionPresetName]?: VRMExpression; - }; - registerExpression(expression: VRMExpression): void; - setValue(name: VRMExpressionPresetName | string, weight: number): void; - unregisterExpression(expression: VRMExpression): void; - update(): void; -} - -// @public -export class VRMExpressionMaterialColorBind implements VRMExpressionBind { - constructor({ material, type, targetValue, }: { - material: THREE_2.Material; - type: VRMExpressionMaterialColorType; - targetValue: THREE_2.Color; - }); - // (undocumented) - applyWeight(weight: number): void; - // (undocumented) - clearAppliedWeight(): void; - readonly material: THREE_2.Material; - readonly targetValue: THREE_2.Color; - readonly type: VRMExpressionMaterialColorType; -} - -// @public (undocumented) -export const VRMExpressionMaterialColorType: { - readonly Color: "color"; - readonly EmissionColor: "emissionColor"; - readonly ShadeColor: "shadeColor"; - readonly MatcapColor: "matcapColor"; - readonly RimColor: "rimColor"; - readonly OutlineColor: "outlineColor"; -}; - -// @public (undocumented) -export type VRMExpressionMaterialColorType = typeof VRMExpressionMaterialColorType[keyof typeof VRMExpressionMaterialColorType]; - -// @public -export class VRMExpressionMorphTargetBind implements VRMExpressionBind { - constructor({ primitives, index, weight, }: { - primitives: THREE_2.Mesh[]; - index: number; - weight: number; - }); - // (undocumented) - applyWeight(weight: number): void; - // (undocumented) - clearAppliedWeight(): void; - readonly index: number; - readonly primitives: THREE_2.Mesh[]; - readonly weight: number; -} - -// @public (undocumented) -export const VRMExpressionOverrideType: { - readonly None: "none"; - readonly Block: "block"; - readonly Blend: "blend"; -}; - -// @public (undocumented) -export type VRMExpressionOverrideType = typeof VRMExpressionOverrideType[keyof typeof VRMExpressionOverrideType]; - -// @public (undocumented) -export const VRMExpressionPresetName: { - readonly Aa: "aa"; - readonly Ih: "ih"; - readonly Ou: "ou"; - readonly Ee: "ee"; - readonly Oh: "oh"; - readonly Blink: "blink"; - readonly Happy: "happy"; - readonly Angry: "angry"; - readonly Sad: "sad"; - readonly Relaxed: "relaxed"; - readonly LookUp: "lookUp"; - readonly Surprised: "surprised"; - readonly LookDown: "lookDown"; - readonly LookLeft: "lookLeft"; - readonly LookRight: "lookRight"; - readonly BlinkLeft: "blinkLeft"; - readonly BlinkRight: "blinkRight"; - readonly Neutral: "neutral"; -}; - -// @public (undocumented) -export type VRMExpressionPresetName = typeof VRMExpressionPresetName[keyof typeof VRMExpressionPresetName]; - -// @public -export class VRMExpressionTextureTransformBind implements VRMExpressionBind { - constructor({ material, scale, offset, }: { - material: THREE_2.Material; - scale: THREE_2.Vector2; - offset: THREE_2.Vector2; - }); - // (undocumented) - applyWeight(weight: number): void; - // (undocumented) - clearAppliedWeight(): void; - readonly material: THREE_2.Material; - readonly offset: THREE_2.Vector2; - readonly scale: THREE_2.Vector2; -} - -// @public (undocumented) -export class VRMFirstPerson { - constructor(humanoid: VRMHumanoid, meshAnnotations: VRMFirstPersonMeshAnnotation[]); - clone(): VRMFirstPerson; - copy(source: VRMFirstPerson): this; - static readonly DEFAULT_FIRSTPERSON_ONLY_LAYER = 9; - static readonly DEFAULT_THIRDPERSON_ONLY_LAYER = 10; - get firstPersonOnlyLayer(): number; - readonly humanoid: VRMHumanoid; - // (undocumented) - meshAnnotations: VRMFirstPersonMeshAnnotation[]; - setup({ firstPersonOnlyLayer, thirdPersonOnlyLayer, }?: { - firstPersonOnlyLayer?: number | undefined; - thirdPersonOnlyLayer?: number | undefined; - }): void; - get thirdPersonOnlyLayer(): number; -} - -// @public -export class VRMFirstPersonLoaderPlugin implements GLTFLoaderPlugin { - constructor(parser: GLTFParser); - // (undocumented) - afterRoot(gltf: GLTF): Promise; - // (undocumented) - get name(): string; - // (undocumented) - readonly parser: GLTFParser; -} - -// @public (undocumented) -export interface VRMFirstPersonMeshAnnotation { - // (undocumented) - meshes: THREE.Mesh[]; - // (undocumented) - type: VRMFirstPersonMeshAnnotationType; -} - -// @public (undocumented) -export const VRMFirstPersonMeshAnnotationType: { - readonly Auto: "auto"; - readonly Both: "both"; - readonly ThirdPersonOnly: "thirdPersonOnly"; - readonly FirstPersonOnly: "firstPersonOnly"; -}; - -// @public (undocumented) -export type VRMFirstPersonMeshAnnotationType = typeof VRMFirstPersonMeshAnnotationType[keyof typeof VRMFirstPersonMeshAnnotationType]; - -// @public -export interface VRMHumanBone { - node: THREE_2.Object3D; -} - -// @public -export const VRMHumanBoneList: VRMHumanBoneName[]; - -// @public -export const VRMHumanBoneName: { - readonly Hips: "hips"; - readonly Spine: "spine"; - readonly Chest: "chest"; - readonly UpperChest: "upperChest"; - readonly Neck: "neck"; - readonly Head: "head"; - readonly LeftEye: "leftEye"; - readonly RightEye: "rightEye"; - readonly Jaw: "jaw"; - readonly LeftUpperLeg: "leftUpperLeg"; - readonly LeftLowerLeg: "leftLowerLeg"; - readonly LeftFoot: "leftFoot"; - readonly LeftToes: "leftToes"; - readonly RightUpperLeg: "rightUpperLeg"; - readonly RightLowerLeg: "rightLowerLeg"; - readonly RightFoot: "rightFoot"; - readonly RightToes: "rightToes"; - readonly LeftShoulder: "leftShoulder"; - readonly LeftUpperArm: "leftUpperArm"; - readonly LeftLowerArm: "leftLowerArm"; - readonly LeftHand: "leftHand"; - readonly RightShoulder: "rightShoulder"; - readonly RightUpperArm: "rightUpperArm"; - readonly RightLowerArm: "rightLowerArm"; - readonly RightHand: "rightHand"; - readonly LeftThumbMetacarpal: "leftThumbMetacarpal"; - readonly LeftThumbProximal: "leftThumbProximal"; - readonly LeftThumbDistal: "leftThumbDistal"; - readonly LeftIndexProximal: "leftIndexProximal"; - readonly LeftIndexIntermediate: "leftIndexIntermediate"; - readonly LeftIndexDistal: "leftIndexDistal"; - readonly LeftMiddleProximal: "leftMiddleProximal"; - readonly LeftMiddleIntermediate: "leftMiddleIntermediate"; - readonly LeftMiddleDistal: "leftMiddleDistal"; - readonly LeftRingProximal: "leftRingProximal"; - readonly LeftRingIntermediate: "leftRingIntermediate"; - readonly LeftRingDistal: "leftRingDistal"; - readonly LeftLittleProximal: "leftLittleProximal"; - readonly LeftLittleIntermediate: "leftLittleIntermediate"; - readonly LeftLittleDistal: "leftLittleDistal"; - readonly RightThumbMetacarpal: "rightThumbMetacarpal"; - readonly RightThumbProximal: "rightThumbProximal"; - readonly RightThumbDistal: "rightThumbDistal"; - readonly RightIndexProximal: "rightIndexProximal"; - readonly RightIndexIntermediate: "rightIndexIntermediate"; - readonly RightIndexDistal: "rightIndexDistal"; - readonly RightMiddleProximal: "rightMiddleProximal"; - readonly RightMiddleIntermediate: "rightMiddleIntermediate"; - readonly RightMiddleDistal: "rightMiddleDistal"; - readonly RightRingProximal: "rightRingProximal"; - readonly RightRingIntermediate: "rightRingIntermediate"; - readonly RightRingDistal: "rightRingDistal"; - readonly RightLittleProximal: "rightLittleProximal"; - readonly RightLittleIntermediate: "rightLittleIntermediate"; - readonly RightLittleDistal: "rightLittleDistal"; -}; - -// @public (undocumented) -export type VRMHumanBoneName = typeof VRMHumanBoneName[keyof typeof VRMHumanBoneName]; - -// @public -export const VRMHumanBoneParentMap: { - [bone in VRMHumanBoneName]: VRMHumanBoneName | null; -}; - -// @public -export type VRMHumanBones = { - [name in VRMHumanBoneName]?: VRMHumanBone; -} & { - [name in VRMRequiredHumanBoneName]: VRMHumanBone; -}; - -// @public -export class VRMHumanoid { - constructor(humanBones: VRMHumanBones, options?: { - autoUpdateHumanBones?: boolean; - }); - autoUpdateHumanBones: boolean; - clone(): VRMHumanoid; - copy(source: VRMHumanoid): this; - // @deprecated (undocumented) - getAbsolutePose(): VRMPose; - // @deprecated (undocumented) - getBone(name: VRMHumanBoneName): VRMHumanBone | undefined; - // @deprecated (undocumented) - getBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; - getNormalizedAbsolutePose(): VRMPose; - getNormalizedBone(name: VRMHumanBoneName): VRMHumanBone | undefined; - getNormalizedBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; - getNormalizedPose(): VRMPose; - // @deprecated (undocumented) - getPose(): VRMPose; - getRawAbsolutePose(): VRMPose; - getRawBone(name: VRMHumanBoneName): VRMHumanBone | undefined; - getRawBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; - getRawPose(): VRMPose; - get humanBones(): VRMHumanBones; - get normalizedHumanBones(): VRMHumanBones; - get normalizedHumanBonesRoot(): THREE_2.Object3D; - get normalizedRestPose(): VRMPose; - get rawHumanBones(): VRMHumanBones; - get rawRestPose(): VRMPose; - resetNormalizedPose(): void; - // @deprecated (undocumented) - resetPose(): void; - resetRawPose(): void; - // @deprecated (undocumented) - get restPose(): VRMPose; - setNormalizedPose(poseObject: VRMPose): void; - // @deprecated (undocumented) - setPose(poseObject: VRMPose): void; - setRawPose(poseObject: VRMPose): void; - update(): void; -} - -// @public (undocumented) -export class VRMHumanoidHelper extends THREE_2.Group { - constructor(humanoid: VRMHumanoid); - // (undocumented) - dispose(): void; - // (undocumented) - updateMatrixWorld(force: boolean): void; - // (undocumented) - readonly vrmHumanoid: VRMHumanoid; -} - -// @public -export class VRMHumanoidLoaderPlugin implements GLTFLoaderPlugin { - constructor(parser: GLTFParser, options?: VRMHumanoidLoaderPluginOptions); - // (undocumented) - afterRoot(gltf: GLTF): Promise; - // (undocumented) - autoUpdateHumanBones?: boolean; - helperRoot?: THREE.Object3D; - // (undocumented) - get name(): string; - // (undocumented) - readonly parser: GLTFParser; -} - -// @public (undocumented) -export interface VRMHumanoidLoaderPluginOptions { - autoUpdateHumanBones?: boolean; - helperRoot?: THREE.Object3D; -} - -// @public (undocumented) -export class VRMLoaderPlugin implements GLTFLoaderPlugin { - constructor(parser: GLTFParser, options?: VRMLoaderPluginOptions); - // (undocumented) - afterRoot(gltf: GLTF): Promise; - // (undocumented) - beforeRoot(): Promise; - // (undocumented) - readonly expressionPlugin: VRMExpressionLoaderPlugin; - // (undocumented) - extendMaterialParams(materialIndex: number, materialParams: { - [key: string]: any; - }): Promise; - // (undocumented) - readonly firstPersonPlugin: VRMFirstPersonLoaderPlugin; - // (undocumented) - getMaterialType(materialIndex: number): typeof THREE_2.Material | null; - // (undocumented) - readonly humanoidPlugin: VRMHumanoidLoaderPlugin; - // (undocumented) - loadMesh(meshIndex: number): Promise; - // (undocumented) - readonly lookAtPlugin: VRMLookAtLoaderPlugin; - // (undocumented) - readonly materialsHDREmissiveMultiplierPlugin: VRMMaterialsHDREmissiveMultiplierLoaderPlugin; - // (undocumented) - readonly materialsV0CompatPlugin: VRMMaterialsV0CompatPlugin; - // (undocumented) - readonly metaPlugin: VRMMetaLoaderPlugin; - // (undocumented) - readonly mtoonMaterialPlugin: MToonMaterialLoaderPlugin; - // (undocumented) - get name(): string; - // (undocumented) - readonly nodeConstraintPlugin: VRMNodeConstraintLoaderPlugin; - // (undocumented) - readonly parser: GLTFParser; - // (undocumented) - readonly springBonePlugin: VRMSpringBoneLoaderPlugin; -} - -// @public (undocumented) -export interface VRMLoaderPluginOptions { - autoUpdateHumanBones?: boolean; - // (undocumented) - expressionPlugin?: VRMExpressionLoaderPlugin; - // (undocumented) - firstPersonPlugin?: VRMFirstPersonLoaderPlugin; - helperRoot?: THREE_2.Object3D; - // (undocumented) - humanoidPlugin?: VRMHumanoidLoaderPlugin; - // (undocumented) - lookAtPlugin?: VRMLookAtLoaderPlugin; - // (undocumented) - materialsHDREmissiveMultiplierPlugin?: VRMMaterialsHDREmissiveMultiplierLoaderPlugin; - // (undocumented) - materialsV0CompatPlugin?: VRMMaterialsV0CompatPlugin; - // (undocumented) - metaPlugin?: VRMMetaLoaderPlugin; - // (undocumented) - mtoonMaterialPlugin?: MToonMaterialLoaderPlugin; - // (undocumented) - nodeConstraintPlugin?: VRMNodeConstraintLoaderPlugin; - // (undocumented) - springBonePlugin?: VRMSpringBoneLoaderPlugin; -} - -// @public -export class VRMLookAt { - constructor(humanoid: VRMHumanoid, applier: VRMLookAtApplier); - applier: VRMLookAtApplier; - autoUpdate: boolean; - clone(): VRMLookAt; - copy(source: VRMLookAt): this; - // @deprecated (undocumented) - get euler(): THREE_2.Euler; - // (undocumented) - static readonly EULER_ORDER = "YXZ"; - faceFront: THREE_2.Vector3; - getEuler(target: THREE_2.Euler): THREE_2.Euler; - getFaceFrontQuaternion(target: THREE_2.Quaternion): THREE_2.Quaternion; - getLookAtWorldDirection(target: THREE_2.Vector3): THREE_2.Vector3; - getLookAtWorldPosition(target: THREE_2.Vector3): THREE_2.Vector3; - getLookAtWorldQuaternion(target: THREE_2.Quaternion): THREE_2.Quaternion; - readonly humanoid: VRMHumanoid; - lookAt(position: THREE_2.Vector3): void; - protected _needsUpdate: boolean; - offsetFromHeadBone: THREE_2.Vector3; - get pitch(): number; - set pitch(value: number); - protected _pitch: number; - reset(): void; - target?: THREE_2.Object3D | null; - update(delta: number): void; - get yaw(): number; - set yaw(value: number); - protected _yaw: number; -} - -// @public -export interface VRMLookAtApplier { - applyYawPitch: (yaw: number, pitch: number) => void; - // @deprecated (undocumented) - lookAt: (euler: THREE_2.Euler) => void; -} - -// @public -export class VRMLookAtBoneApplier implements VRMLookAtApplier { - constructor(humanoid: VRMHumanoid, rangeMapHorizontalInner: VRMLookAtRangeMap, rangeMapHorizontalOuter: VRMLookAtRangeMap, rangeMapVerticalDown: VRMLookAtRangeMap, rangeMapVerticalUp: VRMLookAtRangeMap); - applyYawPitch(yaw: number, pitch: number): void; - faceFront: THREE_2.Vector3; - readonly humanoid: VRMHumanoid; - // @deprecated (undocumented) - lookAt(euler: THREE_2.Euler): void; - rangeMapHorizontalInner: VRMLookAtRangeMap; - rangeMapHorizontalOuter: VRMLookAtRangeMap; - rangeMapVerticalDown: VRMLookAtRangeMap; - rangeMapVerticalUp: VRMLookAtRangeMap; - static readonly type = "bone"; -} - -// @public -export class VRMLookAtExpressionApplier implements VRMLookAtApplier { - constructor(expressions: VRMExpressionManager, rangeMapHorizontalInner: VRMLookAtRangeMap, rangeMapHorizontalOuter: VRMLookAtRangeMap, rangeMapVerticalDown: VRMLookAtRangeMap, rangeMapVerticalUp: VRMLookAtRangeMap); - applyYawPitch(yaw: number, pitch: number): void; - readonly expressions: VRMExpressionManager; - // @deprecated (undocumented) - lookAt(euler: THREE_2.Euler): void; - rangeMapHorizontalInner: VRMLookAtRangeMap; - rangeMapHorizontalOuter: VRMLookAtRangeMap; - rangeMapVerticalDown: VRMLookAtRangeMap; - rangeMapVerticalUp: VRMLookAtRangeMap; - static readonly type = "expression"; -} - -// @public (undocumented) -export class VRMLookAtHelper extends THREE_2.Group { - constructor(lookAt: VRMLookAt); - // (undocumented) - dispose(): void; - // (undocumented) - updateMatrixWorld(force: boolean): void; - // (undocumented) - readonly vrmLookAt: VRMLookAt; -} - -// @public -export class VRMLookAtLoaderPlugin implements GLTFLoaderPlugin { - // Warning: (ae-forgotten-export) The symbol "VRMLookAtLoaderPluginOptions" needs to be exported by the entry point index.d.ts - constructor(parser: GLTFParser, options?: VRMLookAtLoaderPluginOptions); - // (undocumented) - afterRoot(gltf: GLTF): Promise; - helperRoot?: THREE.Object3D; - // (undocumented) - get name(): string; - // (undocumented) - readonly parser: GLTFParser; -} - -// @public (undocumented) -export class VRMLookAtRangeMap { - constructor(inputMaxValue: number, outputScale: number); - inputMaxValue: number; - map(src: number): number; - outputScale: number; -} - -// @public -export const VRMLookAtTypeName: { - Bone: string; - Expression: string; -}; - -// @public (undocumented) -export type VRMLookAtTypeName = typeof VRMLookAtTypeName[keyof typeof VRMLookAtTypeName]; - -// @public -export type VRMMeta = VRM0Meta | VRM1Meta; - -// @public -export interface VRMMetaImporterOptions { - acceptLicenseUrls?: string[]; - acceptV0Meta?: boolean; - needThumbnailImage?: boolean; -} - -// @public -export class VRMMetaLoaderPlugin implements GLTFLoaderPlugin { - constructor(parser: GLTFParser, options?: VRMMetaImporterOptions); - acceptLicenseUrls: string[]; - acceptV0Meta: boolean; - // (undocumented) - afterRoot(gltf: GLTF): Promise; - // (undocumented) - get name(): string; - needThumbnailImage: boolean; - // (undocumented) - readonly parser: GLTFParser; -} - -// @public -export abstract class VRMNodeConstraint { - constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); - // (undocumented) - abstract get dependencies(): Set; - destination: THREE_2.Object3D; - abstract setInitState(): void; - source: THREE_2.Object3D; - abstract update(): void; - weight: number; -} - -// @public (undocumented) -export class VRMNodeConstraintHelper extends THREE_2.Group { - constructor(constraint: VRMNodeConstraint); - // (undocumented) - readonly constraint: VRMNodeConstraint; - // (undocumented) - updateMatrixWorld(force?: boolean): void; -} - -// @public (undocumented) -export class VRMNodeConstraintLoaderPlugin implements GLTFLoaderPlugin { - // Warning: (ae-forgotten-export) The symbol "VRMNodeConstraintLoaderPluginOptions" needs to be exported by the entry point index.d.ts - constructor(parser: GLTFParser, options?: VRMNodeConstraintLoaderPluginOptions); - // (undocumented) - afterRoot(gltf: GLTF): Promise; - // (undocumented) - static readonly EXTENSION_NAME = "VRMC_node_constraint"; - helperRoot?: THREE_2.Object3D; - protected _import(gltf: GLTF): Promise; - // (undocumented) - protected _importAimConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], aimConstraintDef: ConstraintSchema.AimConstraint): VRMAimConstraint; - // (undocumented) - protected _importRollConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], rollConstraintDef: ConstraintSchema.RollConstraint): VRMRollConstraint; - // (undocumented) - protected _importRotationConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], rotationConstraintDef: ConstraintSchema.RotationConstraint): VRMRotationConstraint; - // (undocumented) - get name(): string; - // (undocumented) - readonly parser: GLTFParser; -} - -// @public (undocumented) -export class VRMNodeConstraintManager { - // (undocumented) - addConstraint(constraint: VRMNodeConstraint): void; - // (undocumented) - get constraints(): Set; - // (undocumented) - deleteConstraint(constraint: VRMNodeConstraint): void; - // (undocumented) - setInitState(): void; - // (undocumented) - update(): void; -} - -// @public -export interface VRMParameters extends VRMCoreParameters { - // (undocumented) - materials?: THREE.Material[]; - // (undocumented) - nodeConstraintManager?: VRMNodeConstraintManager; - // (undocumented) - springBoneManager?: VRMSpringBoneManager; -} - -// @public -export type VRMPose = { - [boneName in VRMHumanBoneName]?: VRMPoseTransform; -}; - -// @public -export interface VRMPoseTransform { - position?: [number, number, number]; - rotation?: [number, number, number, number]; -} - -// @public (undocumented) -export const VRMRequiredHumanBoneName: { - readonly Hips: "hips"; - readonly Spine: "spine"; - readonly Head: "head"; - readonly LeftUpperLeg: "leftUpperLeg"; - readonly LeftLowerLeg: "leftLowerLeg"; - readonly LeftFoot: "leftFoot"; - readonly RightUpperLeg: "rightUpperLeg"; - readonly RightLowerLeg: "rightLowerLeg"; - readonly RightFoot: "rightFoot"; - readonly LeftUpperArm: "leftUpperArm"; - readonly LeftLowerArm: "leftLowerArm"; - readonly LeftHand: "leftHand"; - readonly RightUpperArm: "rightUpperArm"; - readonly RightLowerArm: "rightLowerArm"; - readonly RightHand: "rightHand"; -}; - -// @public (undocumented) -export type VRMRequiredHumanBoneName = typeof VRMRequiredHumanBoneName[keyof typeof VRMRequiredHumanBoneName]; - -// @public -export class VRMRollConstraint extends VRMNodeConstraint { - constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); - // (undocumented) - get dependencies(): Set>; - get rollAxis(): 'X' | 'Y' | 'Z'; - set rollAxis(rollAxis: 'X' | 'Y' | 'Z'); - // (undocumented) - setInitState(): void; - // (undocumented) - update(): void; -} - -// @public -export class VRMRotationConstraint extends VRMNodeConstraint { - constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); - // (undocumented) - get dependencies(): Set>; - // (undocumented) - setInitState(): void; - // (undocumented) - update(): void; -} - -// @public -export class VRMSpringBoneCollider extends THREE_2.Object3D { - constructor(shape: VRMSpringBoneColliderShape); - readonly shape: VRMSpringBoneColliderShape; -} - -// @public -export interface VRMSpringBoneColliderGroup { - colliders: VRMSpringBoneCollider[]; - name?: string; -} - -// @public (undocumented) -export class VRMSpringBoneColliderHelper extends THREE_2.Group { - constructor(collider: VRMSpringBoneCollider); - // (undocumented) - readonly collider: VRMSpringBoneCollider; - // (undocumented) - dispose(): void; - // (undocumented) - updateMatrixWorld(force: boolean): void; -} - -// @public -export abstract class VRMSpringBoneColliderShape { - abstract calculateCollision(colliderMatrix: THREE.Matrix4, objectPosition: THREE.Vector3, objectRadius: number, target: THREE.Vector3): number; - abstract get type(): string; -} - -// @public (undocumented) -export class VRMSpringBoneColliderShapeCapsule extends VRMSpringBoneColliderShape { - constructor(params?: { - radius?: number; - offset?: THREE_2.Vector3; - tail?: THREE_2.Vector3; - }); - // (undocumented) - calculateCollision(colliderMatrix: THREE_2.Matrix4, objectPosition: THREE_2.Vector3, objectRadius: number, target: THREE_2.Vector3): number; - offset: THREE_2.Vector3; - radius: number; - tail: THREE_2.Vector3; - // (undocumented) - get type(): 'capsule'; -} - -// @public (undocumented) -export class VRMSpringBoneColliderShapeSphere extends VRMSpringBoneColliderShape { - constructor(params?: { - radius?: number; - offset?: THREE_2.Vector3; - }); - // (undocumented) - calculateCollision(colliderMatrix: THREE_2.Matrix4, objectPosition: THREE_2.Vector3, objectRadius: number, target: THREE_2.Vector3): number; - offset: THREE_2.Vector3; - radius: number; - // (undocumented) - get type(): 'sphere'; -} - -// @public -export class VRMSpringBoneJoint { - constructor(bone: THREE_2.Object3D, child: THREE_2.Object3D | null, settings?: Partial, colliderGroups?: VRMSpringBoneColliderGroup[]); - readonly bone: THREE_2.Object3D; - // (undocumented) - get center(): THREE_2.Object3D | null; - set center(center: THREE_2.Object3D | null); - readonly child: THREE_2.Object3D | null; - colliderGroups: VRMSpringBoneColliderGroup[]; - // (undocumented) - get initialLocalChildPosition(): THREE_2.Vector3; - reset(): void; - setInitState(): void; - settings: VRMSpringBoneJointSettings; - update(delta: number): void; -} - -// @public (undocumented) -export class VRMSpringBoneJointHelper extends THREE_2.Group { - constructor(springBone: VRMSpringBoneJoint); - // (undocumented) - dispose(): void; - // (undocumented) - readonly springBone: VRMSpringBoneJoint; - // (undocumented) - updateMatrixWorld(force: boolean): void; -} - -// @public (undocumented) -export interface VRMSpringBoneJointSettings { - // (undocumented) - dragForce: number; - // (undocumented) - gravityDir: THREE.Vector3; - // (undocumented) - gravityPower: number; - hitRadius: number; - // (undocumented) - stiffness: number; -} - -// @public (undocumented) -export class VRMSpringBoneLoaderPlugin implements GLTFLoaderPlugin { - // Warning: (ae-forgotten-export) The symbol "VRMSpringBoneLoaderPluginOptions" needs to be exported by the entry point index.d.ts - constructor(parser: GLTFParser, options?: VRMSpringBoneLoaderPluginOptions); - // (undocumented) - afterRoot(gltf: GLTF): Promise; - colliderHelperRoot?: THREE_2.Object3D; - // (undocumented) - static readonly EXTENSION_NAME = "VRMC_springBone"; - jointHelperRoot?: THREE_2.Object3D; - // (undocumented) - get name(): string; - // (undocumented) - readonly parser: GLTFParser; -} - -// @public (undocumented) -export class VRMSpringBoneManager { - // (undocumented) - addJoint(joint: VRMSpringBoneJoint): void; - // @deprecated (undocumented) - addSpringBone(joint: VRMSpringBoneJoint): void; - // (undocumented) - get colliderGroups(): VRMSpringBoneColliderGroup[]; - // (undocumented) - get colliders(): VRMSpringBoneCollider[]; - // (undocumented) - deleteJoint(joint: VRMSpringBoneJoint): void; - // @deprecated (undocumented) - deleteSpringBone(joint: VRMSpringBoneJoint): void; - // (undocumented) - get joints(): Set; - // (undocumented) - reset(): void; - // (undocumented) - setInitState(): void; - // @deprecated (undocumented) - get springBones(): Set; - // (undocumented) - update(delta: number): void; -} - -// @public (undocumented) -export class VRMUtils { - // Warning: (ae-forgotten-export) The symbol "deepDispose" needs to be exported by the entry point index.d.ts - // - // (undocumented) - static deepDispose: typeof deepDispose; - // Warning: (ae-forgotten-export) The symbol "removeUnnecessaryJoints" needs to be exported by the entry point index.d.ts - // - // (undocumented) - static removeUnnecessaryJoints: typeof removeUnnecessaryJoints; - // Warning: (ae-forgotten-export) The symbol "removeUnnecessaryVertices" needs to be exported by the entry point index.d.ts - // - // (undocumented) - static removeUnnecessaryVertices: typeof removeUnnecessaryVertices; - // Warning: (ae-forgotten-export) The symbol "rotateVRM0" needs to be exported by the entry point index.d.ts - // - // (undocumented) - static rotateVRM0: typeof rotateVRM0; -} - -// (No @packageDocumentation comment for this package) - -``` +## API Report File for "@pixiv/three-vrm" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import * as THREE_2 from 'three'; + +// @public +export class MToonMaterial extends THREE_2.ShaderMaterial { + constructor(parameters?: MToonMaterialParameters); + // (undocumented) + get color(): THREE_2.Color; + set color(value: THREE_2.Color); + // (undocumented) + copy(source: this): this; + get debugMode(): MToonMaterialDebugMode; + set debugMode(m: MToonMaterialDebugMode); + // (undocumented) + get emissive(): THREE_2.Color; + set emissive(value: THREE_2.Color); + // (undocumented) + get emissiveIntensity(): number; + set emissiveIntensity(value: number); + // (undocumented) + get emissiveMap(): THREE_2.Texture | null; + set emissiveMap(value: THREE_2.Texture | null); + fog: boolean; + // (undocumented) + get giEqualizationFactor(): number; + set giEqualizationFactor(value: number); + get ignoreVertexColor(): boolean; + set ignoreVertexColor(value: boolean); + get isMToonMaterial(): true; + // (undocumented) + get isOutline(): boolean; + set isOutline(b: boolean); + // (undocumented) + get map(): THREE_2.Texture | null; + set map(value: THREE_2.Texture | null); + // (undocumented) + get matcapFactor(): THREE_2.Color; + set matcapFactor(value: THREE_2.Color); + // (undocumented) + get matcapTexture(): THREE_2.Texture | null; + set matcapTexture(value: THREE_2.Texture | null); + // (undocumented) + get normalMap(): THREE_2.Texture | null; + set normalMap(value: THREE_2.Texture | null); + normalMapType: 0; + // (undocumented) + get normalScale(): THREE_2.Vector2; + set normalScale(value: THREE_2.Vector2); + // (undocumented) + get outlineColorFactor(): THREE_2.Color; + set outlineColorFactor(value: THREE_2.Color); + // (undocumented) + get outlineLightingMixFactor(): number; + set outlineLightingMixFactor(value: number); + // (undocumented) + get outlineWidthFactor(): number; + set outlineWidthFactor(value: number); + // (undocumented) + get outlineWidthMode(): MToonMaterialOutlineWidthMode; + set outlineWidthMode(m: MToonMaterialOutlineWidthMode); + // (undocumented) + get outlineWidthMultiplyTexture(): THREE_2.Texture | null; + set outlineWidthMultiplyTexture(value: THREE_2.Texture | null); + // (undocumented) + get parametricRimColorFactor(): THREE_2.Color; + set parametricRimColorFactor(value: THREE_2.Color); + // (undocumented) + get parametricRimFresnelPowerFactor(): number; + set parametricRimFresnelPowerFactor(value: number); + // (undocumented) + get parametricRimLiftFactor(): number; + set parametricRimLiftFactor(value: number); + // (undocumented) + get rimLightingMixFactor(): number; + set rimLightingMixFactor(value: number); + // (undocumented) + get rimMultiplyTexture(): THREE_2.Texture | null; + set rimMultiplyTexture(value: THREE_2.Texture | null); + // (undocumented) + get shadeColorFactor(): THREE_2.Color; + set shadeColorFactor(value: THREE_2.Color); + // (undocumented) + get shadeMultiplyTexture(): THREE_2.Texture | null; + set shadeMultiplyTexture(value: THREE_2.Texture | null); + // (undocumented) + get shadingShiftFactor(): number; + set shadingShiftFactor(value: number); + // (undocumented) + get shadingShiftTexture(): THREE_2.Texture | null; + set shadingShiftTexture(value: THREE_2.Texture | null); + // (undocumented) + get shadingShiftTextureScale(): number; + set shadingShiftTextureScale(value: number); + // (undocumented) + get shadingToonyFactor(): number; + set shadingToonyFactor(value: number); + // (undocumented) + uniforms: { + litFactor: THREE_2.IUniform; + alphaTest: THREE_2.IUniform; + opacity: THREE_2.IUniform; + map: THREE_2.IUniform; + mapUvTransform: THREE_2.IUniform; + normalMap: THREE_2.IUniform; + normalMapUvTransform: THREE_2.IUniform; + normalScale: THREE_2.IUniform; + emissive: THREE_2.IUniform; + emissiveIntensity: THREE_2.IUniform; + emissiveMap: THREE_2.IUniform; + emissiveMapUvTransform: THREE_2.IUniform; + shadeColorFactor: THREE_2.IUniform; + shadeMultiplyTexture: THREE_2.IUniform; + shadeMultiplyTextureUvTransform: THREE_2.IUniform; + shadingShiftFactor: THREE_2.IUniform; + shadingShiftTexture: THREE_2.IUniform; + shadingShiftTextureUvTransform: THREE_2.IUniform; + shadingShiftTextureScale: THREE_2.IUniform; + shadingToonyFactor: THREE_2.IUniform; + giEqualizationFactor: THREE_2.IUniform; + matcapFactor: THREE_2.IUniform; + matcapTexture: THREE_2.IUniform; + matcapTextureUvTransform: THREE_2.IUniform; + parametricRimColorFactor: THREE_2.IUniform; + rimMultiplyTexture: THREE_2.IUniform; + rimMultiplyTextureUvTransform: THREE_2.IUniform; + rimLightingMixFactor: THREE_2.IUniform; + parametricRimFresnelPowerFactor: THREE_2.IUniform; + parametricRimLiftFactor: THREE_2.IUniform; + outlineWidthMultiplyTexture: THREE_2.IUniform; + outlineWidthMultiplyTextureUvTransform: THREE_2.IUniform; + outlineWidthFactor: THREE_2.IUniform; + outlineColorFactor: THREE_2.IUniform; + outlineLightingMixFactor: THREE_2.IUniform; + uvAnimationMaskTexture: THREE_2.IUniform; + uvAnimationMaskTextureUvTransform: THREE_2.IUniform; + uvAnimationScrollXOffset: THREE_2.IUniform; + uvAnimationScrollYOffset: THREE_2.IUniform; + uvAnimationRotationPhase: THREE_2.IUniform; + }; + update(delta: number): void; + // (undocumented) + get uvAnimationMaskTexture(): THREE_2.Texture | null; + set uvAnimationMaskTexture(value: THREE_2.Texture | null); + // (undocumented) + get uvAnimationRotationPhase(): number; + set uvAnimationRotationPhase(value: number); + // (undocumented) + uvAnimationRotationSpeedFactor: number; + // (undocumented) + get uvAnimationScrollXOffset(): number; + set uvAnimationScrollXOffset(value: number); + // (undocumented) + uvAnimationScrollXSpeedFactor: number; + // (undocumented) + get uvAnimationScrollYOffset(): number; + set uvAnimationScrollYOffset(value: number); + // (undocumented) + uvAnimationScrollYSpeedFactor: number; + get v0CompatShade(): boolean; + set v0CompatShade(v: boolean); +} + +// @public +export const MToonMaterialDebugMode: { + readonly None: "none"; + readonly Normal: "normal"; + readonly LitShadeRate: "litShadeRate"; + readonly UV: "uv"; +}; + +// @public (undocumented) +export type MToonMaterialDebugMode = typeof MToonMaterialDebugMode[keyof typeof MToonMaterialDebugMode]; + +// @public (undocumented) +export class MToonMaterialLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: MToonMaterialLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + beforeRoot(): Promise; + debugMode: MToonMaterialDebugMode; + // (undocumented) + extendMaterialParams(materialIndex: number, materialParams: MToonMaterialParameters): Promise | null; + // (undocumented) + static EXTENSION_NAME: string; + // (undocumented) + getMaterialType(materialIndex: number): typeof THREE_2.Material | null; + // (undocumented) + loadMesh(meshIndex: number): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; + renderOrderOffset: number; + v0CompatShade: boolean; +} + +// @public (undocumented) +export interface MToonMaterialLoaderPluginOptions { + debugMode?: MToonMaterialDebugMode; + renderOrderOffset?: number; + v0CompatShade?: boolean; +} + +// @public (undocumented) +export const MToonMaterialOutlineWidthMode: { + readonly None: "none"; + readonly WorldCoordinates: "worldCoordinates"; + readonly ScreenCoordinates: "screenCoordinates"; +}; + +// @public (undocumented) +export type MToonMaterialOutlineWidthMode = typeof MToonMaterialOutlineWidthMode[keyof typeof MToonMaterialOutlineWidthMode]; + +// @public (undocumented) +export interface MToonMaterialParameters extends THREE.ShaderMaterialParameters { + // (undocumented) + color?: THREE.Color; + debugMode?: MToonMaterialDebugMode; + // (undocumented) + emissive?: THREE.Color; + // (undocumented) + emissiveIntensity?: number; + // (undocumented) + emissiveMap?: THREE.Texture; + fog?: boolean; + // (undocumented) + giEqualizationFactor?: number; + ignoreVertexColor?: boolean; + isOutline?: boolean; + // (undocumented) + map?: THREE.Texture; + // (undocumented) + matcapFactor?: THREE.Color; + // (undocumented) + matcapTexture?: THREE.Texture; + // (undocumented) + normalMap?: THREE.Texture; + // (undocumented) + normalScale?: THREE.Vector2; + // (undocumented) + outlineColorFactor?: THREE.Color; + // (undocumented) + outlineLightingMixFactor?: number; + // (undocumented) + outlineWidthFactor?: number; + // (undocumented) + outlineWidthMode?: MToonMaterialOutlineWidthMode; + // (undocumented) + outlineWidthMultiplyTexture?: THREE.Texture; + // (undocumented) + parametricRimColorFactor?: THREE.Color; + // (undocumented) + parametricRimFresnelPowerFactor?: number; + // (undocumented) + parametricRimLiftFactor?: number; + // (undocumented) + rimLightingMixFactor?: number; + // (undocumented) + rimMultiplyTexture?: THREE.Texture; + // (undocumented) + shadeColorFactor?: THREE.Color; + // (undocumented) + shadeMultiplyTexture?: THREE.Texture; + // (undocumented) + shadingShiftFactor?: number; + // (undocumented) + shadingShiftTexture?: THREE.Texture; + // (undocumented) + shadingShiftTextureScale?: number; + // (undocumented) + shadingToonyFactor?: number; + transparentWithZWrite?: boolean; + // (undocumented) + uvAnimationMaskTexture?: THREE.Texture; + // (undocumented) + uvAnimationRotationSpeedFactor?: number; + // (undocumented) + uvAnimationScrollXSpeedFactor?: number; + // (undocumented) + uvAnimationScrollYSpeedFactor?: number; + v0CompatShade?: boolean; +} + +// @public +export class VRM extends VRMCore { + constructor(params: VRMParameters); + readonly materials?: THREE_2.Material[]; + readonly nodeConstraintManager?: VRMNodeConstraintManager; + readonly springBoneManager?: VRMSpringBoneManager; + update(delta: number): void; +} + +// @public +export interface VRM0Meta { + allowedUserName?: 'Everyone' | 'ExplicitlyLicensedPerson' | 'OnlyAuthor'; + author?: string; + commercialUssageName?: 'Allow' | 'Disallow'; + contactInformation?: string; + licenseName?: 'CC0' | 'CC_BY' | 'CC_BY_NC' | 'CC_BY_NC_ND' | 'CC_BY_NC_SA' | 'CC_BY_ND' | 'CC_BY_SA' | 'Other' | 'Redistribution_Prohibited'; + metaVersion: '0'; + otherLicenseUrl?: string; + otherPermissionUrl?: string; + reference?: string; + sexualUssageName?: 'Allow' | 'Disallow'; + texture?: THREE_2.Texture; + title?: string; + version?: string; + violentUssageName?: 'Allow' | 'Disallow'; +} + +// @public +export interface VRM1Meta { + allowAntisocialOrHateUsage?: boolean; + allowExcessivelySexualUsage?: boolean; + allowExcessivelyViolentUsage?: boolean; + allowPoliticalOrReligiousUsage?: boolean; + allowRedistribution?: boolean; + authors: string[]; + avatarPermission?: 'onlyAuthor' | 'onlySeparatelyLicensedPerson' | 'everyone'; + commercialUsage?: 'personalNonProfit' | 'personalProfit' | 'corporation'; + contactInformation?: string; + copyrightInformation?: string; + creditNotation?: 'required' | 'unnecessary'; + licenseUrl: string; + metaVersion: '1'; + modification?: 'prohibited' | 'allowModification' | 'allowModificationRedistribution'; + name: string; + otherLicenseUrl?: string; + references?: string[]; + thirdPartyLicenses?: string; + thumbnailImage?: HTMLImageElement; + version?: string; +} + +// @public +export class VRMAimConstraint extends VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + get aimAxis(): 'PositiveX' | 'NegativeX' | 'PositiveY' | 'NegativeY' | 'PositiveZ' | 'NegativeZ'; + set aimAxis(aimAxis: 'PositiveX' | 'NegativeX' | 'PositiveY' | 'NegativeY' | 'PositiveZ' | 'NegativeZ'); + // (undocumented) + get dependencies(): Set>; + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// @public +export class VRMCore { + constructor(params: VRMCoreParameters); + readonly expressionManager?: VRMExpressionManager; + readonly firstPerson?: VRMFirstPerson; + readonly humanoid: VRMHumanoid; + readonly lookAt?: VRMLookAt; + readonly meta: VRMMeta; + readonly scene: THREE_2.Group; + update(delta: number): void; +} + +// @public (undocumented) +export class VRMCoreLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMCoreLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + readonly expressionPlugin: VRMExpressionLoaderPlugin; + // (undocumented) + readonly firstPersonPlugin: VRMFirstPersonLoaderPlugin; + // (undocumented) + readonly humanoidPlugin: VRMHumanoidLoaderPlugin; + // (undocumented) + readonly lookAtPlugin: VRMLookAtLoaderPlugin; + // (undocumented) + readonly metaPlugin: VRMMetaLoaderPlugin; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMCoreLoaderPluginOptions { + // (undocumented) + autoUpdateHumanBones?: boolean; + // (undocumented) + expressionPlugin?: VRMExpressionLoaderPlugin; + // (undocumented) + firstPersonPlugin?: VRMFirstPersonLoaderPlugin; + helperRoot?: THREE.Object3D; + // (undocumented) + humanoidPlugin?: VRMHumanoidLoaderPlugin; + // (undocumented) + lookAtPlugin?: VRMLookAtLoaderPlugin; + // (undocumented) + metaPlugin?: VRMMetaLoaderPlugin; +} + +// @public +export interface VRMCoreParameters { + // (undocumented) + expressionManager?: VRMExpressionManager; + // (undocumented) + firstPerson?: VRMFirstPerson; + // (undocumented) + humanoid: VRMHumanoid; + // (undocumented) + lookAt?: VRMLookAt; + // (undocumented) + meta: VRMMeta; + // (undocumented) + scene: THREE.Group; +} + +// @public (undocumented) +export class VRMExpression extends THREE_2.Object3D { + constructor(expressionName: string); + // (undocumented) + addBind(bind: VRMExpressionBind): void; + applyWeight(options?: { + multiplier?: number; + }): void; + clearAppliedWeight(): void; + expressionName: string; + isBinary: boolean; + overrideBlink: VRMExpressionOverrideType; + get overrideBlinkAmount(): number; + overrideLookAt: VRMExpressionOverrideType; + get overrideLookAtAmount(): number; + overrideMouth: VRMExpressionOverrideType; + get overrideMouthAmount(): number; + // (undocumented) + readonly type: string | 'VRMExpression'; + weight: number; +} + +// @public (undocumented) +export interface VRMExpressionBind { + applyWeight(weight: number): void; + clearAppliedWeight(): void; +} + +// @public +export class VRMExpressionLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; + // Warning: (ae-forgotten-export) The symbol "V0VRM" needs to be exported by the entry point index.d.ts + // + // (undocumented) + static readonly v0v1PresetNameMap: { + [v0Name in V0VRM.BlendShapePresetName]?: VRMExpressionPresetName; + }; +} + +// @public (undocumented) +export class VRMExpressionManager { + constructor(); + blinkExpressionNames: string[]; + clone(): VRMExpressionManager; + copy(source: VRMExpressionManager): this; + get customExpressionMap(): { + [name: string]: VRMExpression; + }; + // (undocumented) + get expressionMap(): { + [name: string]: VRMExpression; + }; + // (undocumented) + get expressions(): VRMExpression[]; + getExpression(name: VRMExpressionPresetName | string): VRMExpression | null; + getExpressionTrackName(name: VRMExpressionPresetName | string): string | null; + getValue(name: VRMExpressionPresetName | string): number | null; + lookAtExpressionNames: string[]; + mouthExpressionNames: string[]; + get presetExpressionMap(): { + [name in VRMExpressionPresetName]?: VRMExpression; + }; + registerExpression(expression: VRMExpression): void; + setValue(name: VRMExpressionPresetName | string, weight: number): void; + unregisterExpression(expression: VRMExpression): void; + update(): void; +} + +// @public +export class VRMExpressionMaterialColorBind implements VRMExpressionBind { + constructor({ material, type, targetValue, }: { + material: THREE_2.Material; + type: VRMExpressionMaterialColorType; + targetValue: THREE_2.Color; + }); + // (undocumented) + applyWeight(weight: number): void; + // (undocumented) + clearAppliedWeight(): void; + readonly material: THREE_2.Material; + readonly targetValue: THREE_2.Color; + readonly type: VRMExpressionMaterialColorType; +} + +// @public (undocumented) +export const VRMExpressionMaterialColorType: { + readonly Color: "color"; + readonly EmissionColor: "emissionColor"; + readonly ShadeColor: "shadeColor"; + readonly MatcapColor: "matcapColor"; + readonly RimColor: "rimColor"; + readonly OutlineColor: "outlineColor"; +}; + +// @public (undocumented) +export type VRMExpressionMaterialColorType = typeof VRMExpressionMaterialColorType[keyof typeof VRMExpressionMaterialColorType]; + +// @public +export class VRMExpressionMorphTargetBind implements VRMExpressionBind { + constructor({ primitives, index, weight, }: { + primitives: THREE_2.Mesh[]; + index: number; + weight: number; + }); + // (undocumented) + applyWeight(weight: number): void; + // (undocumented) + clearAppliedWeight(): void; + readonly index: number; + readonly primitives: THREE_2.Mesh[]; + readonly weight: number; +} + +// @public (undocumented) +export const VRMExpressionOverrideType: { + readonly None: "none"; + readonly Block: "block"; + readonly Blend: "blend"; +}; + +// @public (undocumented) +export type VRMExpressionOverrideType = typeof VRMExpressionOverrideType[keyof typeof VRMExpressionOverrideType]; + +// @public (undocumented) +export const VRMExpressionPresetName: { + readonly Aa: "aa"; + readonly Ih: "ih"; + readonly Ou: "ou"; + readonly Ee: "ee"; + readonly Oh: "oh"; + readonly Blink: "blink"; + readonly Happy: "happy"; + readonly Angry: "angry"; + readonly Sad: "sad"; + readonly Relaxed: "relaxed"; + readonly LookUp: "lookUp"; + readonly Surprised: "surprised"; + readonly LookDown: "lookDown"; + readonly LookLeft: "lookLeft"; + readonly LookRight: "lookRight"; + readonly BlinkLeft: "blinkLeft"; + readonly BlinkRight: "blinkRight"; + readonly Neutral: "neutral"; +}; + +// @public (undocumented) +export type VRMExpressionPresetName = typeof VRMExpressionPresetName[keyof typeof VRMExpressionPresetName]; + +// @public +export class VRMExpressionTextureTransformBind implements VRMExpressionBind { + constructor({ material, scale, offset, }: { + material: THREE_2.Material; + scale: THREE_2.Vector2; + offset: THREE_2.Vector2; + }); + // (undocumented) + applyWeight(weight: number): void; + // (undocumented) + clearAppliedWeight(): void; + readonly material: THREE_2.Material; + readonly offset: THREE_2.Vector2; + readonly scale: THREE_2.Vector2; +} + +// @public (undocumented) +export class VRMFirstPerson { + constructor(humanoid: VRMHumanoid, meshAnnotations: VRMFirstPersonMeshAnnotation[]); + clone(): VRMFirstPerson; + copy(source: VRMFirstPerson): this; + static readonly DEFAULT_FIRSTPERSON_ONLY_LAYER = 9; + static readonly DEFAULT_THIRDPERSON_ONLY_LAYER = 10; + get firstPersonOnlyLayer(): number; + readonly humanoid: VRMHumanoid; + // (undocumented) + meshAnnotations: VRMFirstPersonMeshAnnotation[]; + setup({ firstPersonOnlyLayer, thirdPersonOnlyLayer, }?: { + firstPersonOnlyLayer?: number | undefined; + thirdPersonOnlyLayer?: number | undefined; + }): void; + get thirdPersonOnlyLayer(): number; +} + +// @public +export class VRMFirstPersonLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMFirstPersonMeshAnnotation { + // (undocumented) + meshes: THREE.Mesh[]; + // (undocumented) + type: VRMFirstPersonMeshAnnotationType; +} + +// @public (undocumented) +export const VRMFirstPersonMeshAnnotationType: { + readonly Auto: "auto"; + readonly Both: "both"; + readonly ThirdPersonOnly: "thirdPersonOnly"; + readonly FirstPersonOnly: "firstPersonOnly"; +}; + +// @public (undocumented) +export type VRMFirstPersonMeshAnnotationType = typeof VRMFirstPersonMeshAnnotationType[keyof typeof VRMFirstPersonMeshAnnotationType]; + +// @public +export interface VRMHumanBone { + node: THREE_2.Object3D; +} + +// @public +export const VRMHumanBoneList: VRMHumanBoneName[]; + +// @public +export const VRMHumanBoneName: { + readonly Hips: "hips"; + readonly Spine: "spine"; + readonly Chest: "chest"; + readonly UpperChest: "upperChest"; + readonly Neck: "neck"; + readonly Head: "head"; + readonly LeftEye: "leftEye"; + readonly RightEye: "rightEye"; + readonly Jaw: "jaw"; + readonly LeftUpperLeg: "leftUpperLeg"; + readonly LeftLowerLeg: "leftLowerLeg"; + readonly LeftFoot: "leftFoot"; + readonly LeftToes: "leftToes"; + readonly RightUpperLeg: "rightUpperLeg"; + readonly RightLowerLeg: "rightLowerLeg"; + readonly RightFoot: "rightFoot"; + readonly RightToes: "rightToes"; + readonly LeftShoulder: "leftShoulder"; + readonly LeftUpperArm: "leftUpperArm"; + readonly LeftLowerArm: "leftLowerArm"; + readonly LeftHand: "leftHand"; + readonly RightShoulder: "rightShoulder"; + readonly RightUpperArm: "rightUpperArm"; + readonly RightLowerArm: "rightLowerArm"; + readonly RightHand: "rightHand"; + readonly LeftThumbMetacarpal: "leftThumbMetacarpal"; + readonly LeftThumbProximal: "leftThumbProximal"; + readonly LeftThumbDistal: "leftThumbDistal"; + readonly LeftIndexProximal: "leftIndexProximal"; + readonly LeftIndexIntermediate: "leftIndexIntermediate"; + readonly LeftIndexDistal: "leftIndexDistal"; + readonly LeftMiddleProximal: "leftMiddleProximal"; + readonly LeftMiddleIntermediate: "leftMiddleIntermediate"; + readonly LeftMiddleDistal: "leftMiddleDistal"; + readonly LeftRingProximal: "leftRingProximal"; + readonly LeftRingIntermediate: "leftRingIntermediate"; + readonly LeftRingDistal: "leftRingDistal"; + readonly LeftLittleProximal: "leftLittleProximal"; + readonly LeftLittleIntermediate: "leftLittleIntermediate"; + readonly LeftLittleDistal: "leftLittleDistal"; + readonly RightThumbMetacarpal: "rightThumbMetacarpal"; + readonly RightThumbProximal: "rightThumbProximal"; + readonly RightThumbDistal: "rightThumbDistal"; + readonly RightIndexProximal: "rightIndexProximal"; + readonly RightIndexIntermediate: "rightIndexIntermediate"; + readonly RightIndexDistal: "rightIndexDistal"; + readonly RightMiddleProximal: "rightMiddleProximal"; + readonly RightMiddleIntermediate: "rightMiddleIntermediate"; + readonly RightMiddleDistal: "rightMiddleDistal"; + readonly RightRingProximal: "rightRingProximal"; + readonly RightRingIntermediate: "rightRingIntermediate"; + readonly RightRingDistal: "rightRingDistal"; + readonly RightLittleProximal: "rightLittleProximal"; + readonly RightLittleIntermediate: "rightLittleIntermediate"; + readonly RightLittleDistal: "rightLittleDistal"; +}; + +// @public (undocumented) +export type VRMHumanBoneName = typeof VRMHumanBoneName[keyof typeof VRMHumanBoneName]; + +// @public +export const VRMHumanBoneParentMap: { + [bone in VRMHumanBoneName]: VRMHumanBoneName | null; +}; + +// @public +export type VRMHumanBones = { + [name in VRMHumanBoneName]?: VRMHumanBone; +} & { + [name in VRMRequiredHumanBoneName]: VRMHumanBone; +}; + +// @public +export class VRMHumanoid { + constructor(humanBones: VRMHumanBones, options?: { + autoUpdateHumanBones?: boolean; + }); + autoUpdateHumanBones: boolean; + clone(): VRMHumanoid; + copy(source: VRMHumanoid): this; + // @deprecated (undocumented) + getAbsolutePose(): VRMPose; + // @deprecated (undocumented) + getBone(name: VRMHumanBoneName): VRMHumanBone | undefined; + // @deprecated (undocumented) + getBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; + getNormalizedAbsolutePose(): VRMPose; + getNormalizedBone(name: VRMHumanBoneName): VRMHumanBone | undefined; + getNormalizedBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; + getNormalizedPose(): VRMPose; + // @deprecated (undocumented) + getPose(): VRMPose; + getRawAbsolutePose(): VRMPose; + getRawBone(name: VRMHumanBoneName): VRMHumanBone | undefined; + getRawBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; + getRawPose(): VRMPose; + get humanBones(): VRMHumanBones; + get normalizedHumanBones(): VRMHumanBones; + get normalizedHumanBonesRoot(): THREE_2.Object3D; + get normalizedRestPose(): VRMPose; + get rawHumanBones(): VRMHumanBones; + get rawRestPose(): VRMPose; + resetNormalizedPose(): void; + // @deprecated (undocumented) + resetPose(): void; + resetRawPose(): void; + // @deprecated (undocumented) + get restPose(): VRMPose; + setNormalizedPose(poseObject: VRMPose): void; + // @deprecated (undocumented) + setPose(poseObject: VRMPose): void; + setRawPose(poseObject: VRMPose): void; + update(): void; +} + +// @public (undocumented) +export class VRMHumanoidHelper extends THREE_2.Group { + constructor(humanoid: VRMHumanoid); + // (undocumented) + dispose(): void; + // (undocumented) + updateMatrixWorld(force: boolean): void; + // (undocumented) + readonly vrmHumanoid: VRMHumanoid; +} + +// @public +export class VRMHumanoidLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMHumanoidLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + autoUpdateHumanBones?: boolean; + helperRoot?: THREE.Object3D; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMHumanoidLoaderPluginOptions { + autoUpdateHumanBones?: boolean; + helperRoot?: THREE.Object3D; +} + +// @public (undocumented) +export class VRMLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + beforeRoot(): Promise; + // (undocumented) + readonly expressionPlugin: VRMExpressionLoaderPlugin; + // (undocumented) + extendMaterialParams(materialIndex: number, materialParams: { + [key: string]: any; + }): Promise; + // (undocumented) + readonly firstPersonPlugin: VRMFirstPersonLoaderPlugin; + // (undocumented) + getMaterialType(materialIndex: number): typeof THREE_2.Material | null; + // (undocumented) + readonly humanoidPlugin: VRMHumanoidLoaderPlugin; + // (undocumented) + loadMesh(meshIndex: number): Promise; + // (undocumented) + readonly lookAtPlugin: VRMLookAtLoaderPlugin; + // Warning: (ae-forgotten-export) The symbol "VRMMaterialsHDREmissiveMultiplierLoaderPlugin" needs to be exported by the entry point index.d.ts + // + // (undocumented) + readonly materialsHDREmissiveMultiplierPlugin: VRMMaterialsHDREmissiveMultiplierLoaderPlugin; + // Warning: (ae-forgotten-export) The symbol "VRMMaterialsV0CompatPlugin" needs to be exported by the entry point index.d.ts + // + // (undocumented) + readonly materialsV0CompatPlugin: VRMMaterialsV0CompatPlugin; + // (undocumented) + readonly metaPlugin: VRMMetaLoaderPlugin; + // (undocumented) + readonly mtoonMaterialPlugin: MToonMaterialLoaderPlugin; + // (undocumented) + get name(): string; + // (undocumented) + readonly nodeConstraintPlugin: VRMNodeConstraintLoaderPlugin; + // (undocumented) + readonly parser: GLTFParser; + // (undocumented) + readonly springBonePlugin: VRMSpringBoneLoaderPlugin; +} + +// @public (undocumented) +export interface VRMLoaderPluginOptions { + autoUpdateHumanBones?: boolean; + // (undocumented) + expressionPlugin?: VRMExpressionLoaderPlugin; + // (undocumented) + firstPersonPlugin?: VRMFirstPersonLoaderPlugin; + helperRoot?: THREE_2.Object3D; + // (undocumented) + humanoidPlugin?: VRMHumanoidLoaderPlugin; + // (undocumented) + lookAtPlugin?: VRMLookAtLoaderPlugin; + // (undocumented) + materialsHDREmissiveMultiplierPlugin?: VRMMaterialsHDREmissiveMultiplierLoaderPlugin; + // (undocumented) + materialsV0CompatPlugin?: VRMMaterialsV0CompatPlugin; + // (undocumented) + metaPlugin?: VRMMetaLoaderPlugin; + // (undocumented) + mtoonMaterialPlugin?: MToonMaterialLoaderPlugin; + // (undocumented) + nodeConstraintPlugin?: VRMNodeConstraintLoaderPlugin; + // (undocumented) + springBonePlugin?: VRMSpringBoneLoaderPlugin; +} + +// @public +export class VRMLookAt { + constructor(humanoid: VRMHumanoid, applier: VRMLookAtApplier); + applier: VRMLookAtApplier; + autoUpdate: boolean; + clone(): VRMLookAt; + copy(source: VRMLookAt): this; + // @deprecated (undocumented) + get euler(): THREE_2.Euler; + // (undocumented) + static readonly EULER_ORDER = "YXZ"; + faceFront: THREE_2.Vector3; + getEuler(target: THREE_2.Euler): THREE_2.Euler; + getFaceFrontQuaternion(target: THREE_2.Quaternion): THREE_2.Quaternion; + getLookAtWorldDirection(target: THREE_2.Vector3): THREE_2.Vector3; + getLookAtWorldPosition(target: THREE_2.Vector3): THREE_2.Vector3; + getLookAtWorldQuaternion(target: THREE_2.Quaternion): THREE_2.Quaternion; + readonly humanoid: VRMHumanoid; + lookAt(position: THREE_2.Vector3): void; + protected _needsUpdate: boolean; + offsetFromHeadBone: THREE_2.Vector3; + get pitch(): number; + set pitch(value: number); + protected _pitch: number; + reset(): void; + target?: THREE_2.Object3D | null; + update(delta: number): void; + get yaw(): number; + set yaw(value: number); + protected _yaw: number; +} + +// @public +export interface VRMLookAtApplier { + applyYawPitch: (yaw: number, pitch: number) => void; + // @deprecated (undocumented) + lookAt: (euler: THREE_2.Euler) => void; +} + +// @public +export class VRMLookAtBoneApplier implements VRMLookAtApplier { + constructor(humanoid: VRMHumanoid, rangeMapHorizontalInner: VRMLookAtRangeMap, rangeMapHorizontalOuter: VRMLookAtRangeMap, rangeMapVerticalDown: VRMLookAtRangeMap, rangeMapVerticalUp: VRMLookAtRangeMap); + applyYawPitch(yaw: number, pitch: number): void; + faceFront: THREE_2.Vector3; + readonly humanoid: VRMHumanoid; + // @deprecated (undocumented) + lookAt(euler: THREE_2.Euler): void; + rangeMapHorizontalInner: VRMLookAtRangeMap; + rangeMapHorizontalOuter: VRMLookAtRangeMap; + rangeMapVerticalDown: VRMLookAtRangeMap; + rangeMapVerticalUp: VRMLookAtRangeMap; + static readonly type = "bone"; +} + +// @public +export class VRMLookAtExpressionApplier implements VRMLookAtApplier { + constructor(expressions: VRMExpressionManager, rangeMapHorizontalInner: VRMLookAtRangeMap, rangeMapHorizontalOuter: VRMLookAtRangeMap, rangeMapVerticalDown: VRMLookAtRangeMap, rangeMapVerticalUp: VRMLookAtRangeMap); + applyYawPitch(yaw: number, pitch: number): void; + readonly expressions: VRMExpressionManager; + // @deprecated (undocumented) + lookAt(euler: THREE_2.Euler): void; + rangeMapHorizontalInner: VRMLookAtRangeMap; + rangeMapHorizontalOuter: VRMLookAtRangeMap; + rangeMapVerticalDown: VRMLookAtRangeMap; + rangeMapVerticalUp: VRMLookAtRangeMap; + static readonly type = "expression"; +} + +// @public (undocumented) +export class VRMLookAtHelper extends THREE_2.Group { + constructor(lookAt: VRMLookAt); + // (undocumented) + dispose(): void; + // (undocumented) + updateMatrixWorld(force: boolean): void; + // (undocumented) + readonly vrmLookAt: VRMLookAt; +} + +// @public +export class VRMLookAtLoaderPlugin implements GLTFLoaderPlugin { + // Warning: (ae-forgotten-export) The symbol "VRMLookAtLoaderPluginOptions" needs to be exported by the entry point index.d.ts + constructor(parser: GLTFParser, options?: VRMLookAtLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + helperRoot?: THREE.Object3D; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export class VRMLookAtRangeMap { + constructor(inputMaxValue: number, outputScale: number); + inputMaxValue: number; + map(src: number): number; + outputScale: number; +} + +// @public +export const VRMLookAtTypeName: { + Bone: string; + Expression: string; +}; + +// @public (undocumented) +export type VRMLookAtTypeName = typeof VRMLookAtTypeName[keyof typeof VRMLookAtTypeName]; + +// @public +export type VRMMeta = VRM0Meta | VRM1Meta; + +// @public +export interface VRMMetaImporterOptions { + acceptLicenseUrls?: string[]; + acceptV0Meta?: boolean; + needThumbnailImage?: boolean; +} + +// @public +export class VRMMetaLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMMetaImporterOptions); + acceptLicenseUrls: string[]; + acceptV0Meta: boolean; + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + get name(): string; + needThumbnailImage: boolean; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public +export abstract class VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + // (undocumented) + abstract get dependencies(): Set; + destination: THREE_2.Object3D; + abstract setInitState(): void; + source: THREE_2.Object3D; + abstract update(): void; + weight: number; +} + +// @public (undocumented) +export class VRMNodeConstraintHelper extends THREE_2.Group { + constructor(constraint: VRMNodeConstraint); + // (undocumented) + readonly constraint: VRMNodeConstraint; + // (undocumented) + updateMatrixWorld(force?: boolean): void; +} + +// @public (undocumented) +export class VRMNodeConstraintLoaderPlugin implements GLTFLoaderPlugin { + // Warning: (ae-forgotten-export) The symbol "VRMNodeConstraintLoaderPluginOptions" needs to be exported by the entry point index.d.ts + constructor(parser: GLTFParser, options?: VRMNodeConstraintLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + static readonly EXTENSION_NAME = "VRMC_node_constraint"; + helperRoot?: THREE_2.Object3D; + protected _import(gltf: GLTF): Promise; + // (undocumented) + protected _importAimConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], aimConstraintDef: ConstraintSchema.AimConstraint): VRMAimConstraint; + // Warning: (ae-forgotten-export) The symbol "ConstraintSchema" needs to be exported by the entry point index.d.ts + // + // (undocumented) + protected _importRollConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], rollConstraintDef: ConstraintSchema.RollConstraint): VRMRollConstraint; + // (undocumented) + protected _importRotationConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], rotationConstraintDef: ConstraintSchema.RotationConstraint): VRMRotationConstraint; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export class VRMNodeConstraintManager { + // (undocumented) + addConstraint(constraint: VRMNodeConstraint): void; + // (undocumented) + get constraints(): Set; + // (undocumented) + deleteConstraint(constraint: VRMNodeConstraint): void; + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// @public +export interface VRMParameters extends VRMCoreParameters { + // (undocumented) + materials?: THREE.Material[]; + // (undocumented) + nodeConstraintManager?: VRMNodeConstraintManager; + // (undocumented) + springBoneManager?: VRMSpringBoneManager; +} + +// @public +export type VRMPose = { + [boneName in VRMHumanBoneName]?: VRMPoseTransform; +}; + +// @public +export interface VRMPoseTransform { + position?: [number, number, number]; + rotation?: [number, number, number, number]; +} + +// @public (undocumented) +export const VRMRequiredHumanBoneName: { + readonly Hips: "hips"; + readonly Spine: "spine"; + readonly Head: "head"; + readonly LeftUpperLeg: "leftUpperLeg"; + readonly LeftLowerLeg: "leftLowerLeg"; + readonly LeftFoot: "leftFoot"; + readonly RightUpperLeg: "rightUpperLeg"; + readonly RightLowerLeg: "rightLowerLeg"; + readonly RightFoot: "rightFoot"; + readonly LeftUpperArm: "leftUpperArm"; + readonly LeftLowerArm: "leftLowerArm"; + readonly LeftHand: "leftHand"; + readonly RightUpperArm: "rightUpperArm"; + readonly RightLowerArm: "rightLowerArm"; + readonly RightHand: "rightHand"; +}; + +// @public (undocumented) +export type VRMRequiredHumanBoneName = typeof VRMRequiredHumanBoneName[keyof typeof VRMRequiredHumanBoneName]; + +// @public +export class VRMRollConstraint extends VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + // (undocumented) + get dependencies(): Set>; + get rollAxis(): 'X' | 'Y' | 'Z'; + set rollAxis(rollAxis: 'X' | 'Y' | 'Z'); + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// @public +export class VRMRotationConstraint extends VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + // (undocumented) + get dependencies(): Set>; + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// @public +export class VRMSpringBoneCollider extends THREE_2.Object3D { + constructor(shape: VRMSpringBoneColliderShape); + readonly shape: VRMSpringBoneColliderShape; +} + +// @public +export interface VRMSpringBoneColliderGroup { + colliders: VRMSpringBoneCollider[]; + name?: string; +} + +// @public (undocumented) +export class VRMSpringBoneColliderHelper extends THREE_2.Group { + constructor(collider: VRMSpringBoneCollider); + // (undocumented) + readonly collider: VRMSpringBoneCollider; + // (undocumented) + dispose(): void; + // (undocumented) + updateMatrixWorld(force: boolean): void; +} + +// @public +export abstract class VRMSpringBoneColliderShape { + abstract calculateCollision(colliderMatrix: THREE.Matrix4, objectPosition: THREE.Vector3, objectRadius: number, target: THREE.Vector3): number; + abstract get type(): string; +} + +// @public (undocumented) +export class VRMSpringBoneColliderShapeCapsule extends VRMSpringBoneColliderShape { + constructor(params?: { + radius?: number; + offset?: THREE_2.Vector3; + tail?: THREE_2.Vector3; + }); + // (undocumented) + calculateCollision(colliderMatrix: THREE_2.Matrix4, objectPosition: THREE_2.Vector3, objectRadius: number, target: THREE_2.Vector3): number; + offset: THREE_2.Vector3; + radius: number; + tail: THREE_2.Vector3; + // (undocumented) + get type(): 'capsule'; +} + +// @public (undocumented) +export class VRMSpringBoneColliderShapeSphere extends VRMSpringBoneColliderShape { + constructor(params?: { + radius?: number; + offset?: THREE_2.Vector3; + }); + // (undocumented) + calculateCollision(colliderMatrix: THREE_2.Matrix4, objectPosition: THREE_2.Vector3, objectRadius: number, target: THREE_2.Vector3): number; + offset: THREE_2.Vector3; + radius: number; + // (undocumented) + get type(): 'sphere'; +} + +// @public +export class VRMSpringBoneJoint { + constructor(bone: THREE_2.Object3D, child: THREE_2.Object3D | null, settings?: Partial, colliderGroups?: VRMSpringBoneColliderGroup[]); + readonly bone: THREE_2.Object3D; + // (undocumented) + get center(): THREE_2.Object3D | null; + set center(center: THREE_2.Object3D | null); + readonly child: THREE_2.Object3D | null; + colliderGroups: VRMSpringBoneColliderGroup[]; + // (undocumented) + get initialLocalChildPosition(): THREE_2.Vector3; + reset(): void; + setInitState(): void; + settings: VRMSpringBoneJointSettings; + update(delta: number): void; +} + +// @public (undocumented) +export class VRMSpringBoneJointHelper extends THREE_2.Group { + constructor(springBone: VRMSpringBoneJoint); + // (undocumented) + dispose(): void; + // (undocumented) + readonly springBone: VRMSpringBoneJoint; + // (undocumented) + updateMatrixWorld(force: boolean): void; +} + +// @public (undocumented) +export interface VRMSpringBoneJointSettings { + // (undocumented) + dragForce: number; + // (undocumented) + gravityDir: THREE.Vector3; + // (undocumented) + gravityPower: number; + hitRadius: number; + // (undocumented) + stiffness: number; +} + +// @public (undocumented) +export class VRMSpringBoneLoaderPlugin implements GLTFLoaderPlugin { + // Warning: (ae-forgotten-export) The symbol "VRMSpringBoneLoaderPluginOptions" needs to be exported by the entry point index.d.ts + constructor(parser: GLTFParser, options?: VRMSpringBoneLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + colliderHelperRoot?: THREE_2.Object3D; + // (undocumented) + static readonly EXTENSION_NAME = "VRMC_springBone"; + jointHelperRoot?: THREE_2.Object3D; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export class VRMSpringBoneManager { + // (undocumented) + addJoint(joint: VRMSpringBoneJoint): void; + // @deprecated (undocumented) + addSpringBone(joint: VRMSpringBoneJoint): void; + // (undocumented) + get colliderGroups(): VRMSpringBoneColliderGroup[]; + // (undocumented) + get colliders(): VRMSpringBoneCollider[]; + // (undocumented) + deleteJoint(joint: VRMSpringBoneJoint): void; + // @deprecated (undocumented) + deleteSpringBone(joint: VRMSpringBoneJoint): void; + // (undocumented) + get joints(): Set; + // (undocumented) + reset(): void; + // (undocumented) + setInitState(): void; + // @deprecated (undocumented) + get springBones(): Set; + // (undocumented) + update(delta: number): void; +} + +// @public (undocumented) +export class VRMUtils { + // Warning: (ae-forgotten-export) The symbol "deepDispose" needs to be exported by the entry point index.d.ts + // + // (undocumented) + static deepDispose: typeof deepDispose; + // Warning: (ae-forgotten-export) The symbol "removeUnnecessaryJoints" needs to be exported by the entry point index.d.ts + // + // (undocumented) + static removeUnnecessaryJoints: typeof removeUnnecessaryJoints; + // Warning: (ae-forgotten-export) The symbol "removeUnnecessaryVertices" needs to be exported by the entry point index.d.ts + // + // (undocumented) + static removeUnnecessaryVertices: typeof removeUnnecessaryVertices; + // Warning: (ae-forgotten-export) The symbol "rotateVRM0" needs to be exported by the entry point index.d.ts + // + // (undocumented) + static rotateVRM0: typeof rotateVRM0; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/types-vrm-0.0/api-extractor.json b/packages/types-vrm-0.0/api-extractor.json new file mode 100644 index 000000000..663b48c3c --- /dev/null +++ b/packages/types-vrm-0.0/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} \ No newline at end of file diff --git a/packages/types-vrm-0.0/package.json b/packages/types-vrm-0.0/package.json index 439fc4551..f1f7d6a28 100644 --- a/packages/types-vrm-0.0/package.json +++ b/packages/types-vrm-0.0/package.json @@ -10,7 +10,7 @@ "LICENSE" ], "main": "", - "types": "types/index.d.ts", + "types": "lib/index.d.ts", "typesVersions": { "<3.9": { "*": [ @@ -22,7 +22,7 @@ "version": "yarn all", "all": "yarn lint && yarn clean && yarn build && yarn docs", "clean": "rimraf docs/ ts*/ types/", - "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run --local && downlevel-dts types ts3.4/types && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier \"src/**/*.{ts,tsx}\" --check", "lint-fix": "eslint \"src/**/*.{ts,tsx}\" --fix && prettier \"src/**/*.{ts,tsx}\" --write" diff --git a/packages/types-vrm-0.0/types-vrm-0.0.api.md b/packages/types-vrm-0.0/types-vrm-0.0.api.md new file mode 100644 index 000000000..7d3a436b9 --- /dev/null +++ b/packages/types-vrm-0.0/types-vrm-0.0.api.md @@ -0,0 +1,214 @@ +## API Report File for "@pixiv/types-vrm-0.0" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +// @public +export interface BlendShape { + // (undocumented) + blendShapeGroups?: BlendShapeGroup[]; +} + +// @public (undocumented) +export interface BlendShapeBind { + // (undocumented) + index?: number; + // (undocumented) + mesh?: number; + weight?: number; +} + +// @public (undocumented) +export interface BlendShapeGroup { + binds?: BlendShapeBind[]; + isBinary?: boolean; + materialValues?: BlendShapeMaterialbind[]; + name?: string; + presetName?: BlendShapePresetName; +} + +// @public (undocumented) +export interface BlendShapeMaterialbind { + // (undocumented) + materialName?: string; + // (undocumented) + propertyName?: string; + // (undocumented) + targetValue?: number[]; +} + +// @public +export type BlendShapePresetName = 'a' | 'angry' | 'blink' | 'blink_l' | 'blink_r' | 'e' | 'fun' | 'i' | 'joy' | 'lookdown' | 'lookleft' | 'lookright' | 'lookup' | 'neutral' | 'o' | 'sorrow' | 'u' | 'unknown'; + +// @public (undocumented) +export interface FirstPerson { + firstPersonBone?: number; + firstPersonBoneOffset?: Vector3; + // (undocumented) + lookAtHorizontalInner?: FirstPersonDegreeMap; + // (undocumented) + lookAtHorizontalOuter?: FirstPersonDegreeMap; + lookAtTypeName?: 'Bone' | 'BlendShape'; + // (undocumented) + lookAtVerticalDown?: FirstPersonDegreeMap; + // (undocumented) + lookAtVerticalUp?: FirstPersonDegreeMap; + meshAnnotations?: FirstPersonMeshAnnotation[]; +} + +// @public +export interface FirstPersonDegreeMap { + curve?: number[]; + xRange?: number; + yRange?: number; +} + +// @public (undocumented) +export interface FirstPersonMeshAnnotation { + // (undocumented) + firstPersonFlag?: string; + // (undocumented) + mesh?: number; +} + +// @public (undocumented) +export interface Humanoid { + armStretch?: number; + feetSpacing?: number; + hasTranslationDoF?: boolean; + // (undocumented) + humanBones?: HumanoidBone[]; + legStretch?: number; + lowerArmTwist?: number; + lowerLegTwist?: number; + upperArmTwist?: number; + upperLegTwist?: number; +} + +// @public (undocumented) +export interface HumanoidBone { + axisLength?: number; + bone?: HumanoidBoneName; + center?: Vector3; + max?: Vector3; + min?: Vector3; + node?: number; + useDefaultValues?: boolean; +} + +// @public +export type HumanoidBoneName = 'chest' | 'head' | 'hips' | 'jaw' | 'leftEye' | 'leftFoot' | 'leftHand' | 'leftIndexDistal' | 'leftIndexIntermediate' | 'leftIndexProximal' | 'leftLittleDistal' | 'leftLittleIntermediate' | 'leftLittleProximal' | 'leftLowerArm' | 'leftLowerLeg' | 'leftMiddleDistal' | 'leftMiddleIntermediate' | 'leftMiddleProximal' | 'leftRingDistal' | 'leftRingIntermediate' | 'leftRingProximal' | 'leftShoulder' | 'leftThumbDistal' | 'leftThumbIntermediate' | 'leftThumbProximal' | 'leftToes' | 'leftUpperArm' | 'leftUpperLeg' | 'neck' | 'rightEye' | 'rightFoot' | 'rightHand' | 'rightIndexDistal' | 'rightIndexIntermediate' | 'rightIndexProximal' | 'rightLittleDistal' | 'rightLittleIntermediate' | 'rightLittleProximal' | 'rightLowerArm' | 'rightLowerLeg' | 'rightMiddleDistal' | 'rightMiddleIntermediate' | 'rightMiddleProximal' | 'rightRingDistal' | 'rightRingIntermediate' | 'rightRingProximal' | 'rightShoulder' | 'rightThumbDistal' | 'rightThumbIntermediate' | 'rightThumbProximal' | 'rightToes' | 'rightUpperArm' | 'rightUpperLeg' | 'spine' | 'upperChest'; + +// @public (undocumented) +export interface Material { + // (undocumented) + floatProperties?: { + [key: string]: any; + }; + // (undocumented) + keywordMap?: { + [key: string]: any; + }; + // (undocumented) + name?: string; + // (undocumented) + renderQueue?: number; + // (undocumented) + shader?: string; + // (undocumented) + tagMap?: { + [key: string]: any; + }; + // (undocumented) + textureProperties?: { + [key: string]: any; + }; + // (undocumented) + vectorProperties?: { + [key: string]: any; + }; +} + +// @public (undocumented) +export interface Meta { + allowedUserName?: 'OnlyAuthor' | 'ExplicitlyLicensedPerson' | 'Everyone'; + author?: string; + commercialUssageName?: 'Disallow' | 'Allow'; + contactInformation?: string; + licenseName?: 'Redistribution_Prohibited' | 'CC0' | 'CC_BY' | 'CC_BY_NC' | 'CC_BY_SA' | 'CC_BY_NC_SA' | 'CC_BY_ND' | 'CC_BY_NC_ND' | 'Other'; + otherLicenseUrl?: string; + otherPermissionUrl?: string; + reference?: string; + sexualUssageName?: 'Disallow' | 'Allow'; + texture?: number; + title?: string; + version?: string; + violentUssageName?: 'Disallow' | 'Allow'; +} + +// @public +export interface SecondaryAnimation { + // (undocumented) + boneGroups?: SecondaryAnimationSpring[]; + // (undocumented) + colliderGroups?: SecondaryAnimationColliderGroup[]; +} + +// @public (undocumented) +export interface SecondaryAnimationCollider { + offset?: Vector3; + radius?: number; +} + +// @public (undocumented) +export interface SecondaryAnimationColliderGroup { + // (undocumented) + colliders?: SecondaryAnimationCollider[]; + node?: number; +} + +// @public (undocumented) +export interface SecondaryAnimationSpring { + bones?: number[]; + center?: number; + colliderGroups?: number[]; + comment?: string; + dragForce?: number; + gravityDir?: Vector3; + gravityPower?: number; + hitRadius?: number; + stiffiness?: number; +} + +// @public (undocumented) +export interface Vector3 { + // (undocumented) + x?: number; + // (undocumented) + y?: number; + // (undocumented) + z?: number; +} + +// @public +export interface VRM { + // (undocumented) + blendShapeMaster?: BlendShape; + exporterVersion?: string; + // (undocumented) + firstPerson?: FirstPerson; + // (undocumented) + humanoid?: Humanoid; + // (undocumented) + materialProperties?: Material[]; + // (undocumented) + meta?: Meta; + // (undocumented) + secondaryAnimation?: SecondaryAnimation; + specVersion?: '0.0'; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/api-extractor.json b/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/api-extractor.json new file mode 100644 index 000000000..663b48c3c --- /dev/null +++ b/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} \ No newline at end of file diff --git a/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/package.json b/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/package.json index 8b3dbce94..06586719e 100644 --- a/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/package.json +++ b/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/package.json @@ -10,7 +10,7 @@ "LICENSE" ], "main": "", - "types": "types/index.d.ts", + "types": "lib/index.d.ts", "typesVersions": { "<3.9": { "*": [ @@ -22,7 +22,7 @@ "version": "yarn all", "all": "yarn lint && yarn clean && yarn build && yarn docs", "clean": "rimraf docs/ ts*/ types/", - "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run --local && downlevel-dts types ts3.4/types && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier \"src/**/*.{ts,tsx}\" --check", "lint-fix": "eslint \"src/**/*.{ts,tsx}\" --fix && prettier \"src/**/*.{ts,tsx}\" --write" diff --git a/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/types-vrmc-materials-hdr-emissive-multiplier-1.0.api.md b/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/types-vrmc-materials-hdr-emissive-multiplier-1.0.api.md new file mode 100644 index 000000000..45e661223 --- /dev/null +++ b/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/types-vrmc-materials-hdr-emissive-multiplier-1.0.api.md @@ -0,0 +1,14 @@ +## API Report File for "@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +// @public +export interface VRMCMaterialsHDREmissiveMultiplier { + emissiveMultiplier: number; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/types-vrmc-materials-mtoon-1.0/api-extractor.json b/packages/types-vrmc-materials-mtoon-1.0/api-extractor.json new file mode 100644 index 000000000..663b48c3c --- /dev/null +++ b/packages/types-vrmc-materials-mtoon-1.0/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} \ No newline at end of file diff --git a/packages/types-vrmc-materials-mtoon-1.0/package.json b/packages/types-vrmc-materials-mtoon-1.0/package.json index 6a99228bc..6f5cfe1c7 100644 --- a/packages/types-vrmc-materials-mtoon-1.0/package.json +++ b/packages/types-vrmc-materials-mtoon-1.0/package.json @@ -10,7 +10,7 @@ "LICENSE" ], "main": "", - "types": "types/index.d.ts", + "types": "lib/index.d.ts", "typesVersions": { "<3.9": { "*": [ @@ -22,7 +22,7 @@ "version": "yarn all", "all": "yarn lint && yarn clean && yarn build && yarn docs", "clean": "rimraf docs/ ts*/ types/", - "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run --local && downlevel-dts types ts3.4/types && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier \"src/**/*.{ts,tsx}\" --check", "lint-fix": "eslint \"src/**/*.{ts,tsx}\" --fix && prettier \"src/**/*.{ts,tsx}\" --write" diff --git a/packages/types-vrmc-materials-mtoon-1.0/types-vrmc-materials-mtoon-1.0.api.md b/packages/types-vrmc-materials-mtoon-1.0/types-vrmc-materials-mtoon-1.0.api.md new file mode 100644 index 000000000..3a711c6ff --- /dev/null +++ b/packages/types-vrmc-materials-mtoon-1.0/types-vrmc-materials-mtoon-1.0.api.md @@ -0,0 +1,83 @@ +## API Report File for "@pixiv/types-vrmc-materials-mtoon-1.0" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +// @public (undocumented) +export type MaterialsMToonOutlineWidthMode = 'none' | 'worldCoordinates' | 'screenCoordinates'; + +// @public (undocumented) +export interface MaterialsMToonShadingShiftTextureInfo extends MaterialsMToonTextureInfo { + scale?: number; +} + +// @public (undocumented) +export interface MaterialsMToonTextureInfo { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + index: number; + texCoord?: number; +} + +// @public (undocumented) +export interface VRMCMaterialsMToon { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + // (undocumented) + giEqualizationFactor?: number; + // (undocumented) + matcapFactor?: number[]; + matcapTexture?: MaterialsMToonTextureInfo; + // (undocumented) + outlineColorFactor?: number[]; + // (undocumented) + outlineLightingMixFactor?: number; + // (undocumented) + outlineWidthFactor?: number; + outlineWidthMode?: MaterialsMToonOutlineWidthMode; + // (undocumented) + outlineWidthMultiplyTexture?: MaterialsMToonTextureInfo; + parametricRimColorFactor?: number[]; + // (undocumented) + parametricRimFresnelPowerFactor?: number; + // (undocumented) + parametricRimLiftFactor?: number; + // (undocumented) + renderQueueOffsetNumber?: number; + // (undocumented) + rimLightingMixFactor?: number; + // (undocumented) + rimMultiplyTexture?: MaterialsMToonTextureInfo; + // (undocumented) + shadeColorFactor?: number[]; + // (undocumented) + shadeMultiplyTexture?: MaterialsMToonTextureInfo; + shadingShiftFactor?: number; + // (undocumented) + shadingShiftTexture?: MaterialsMToonShadingShiftTextureInfo; + // (undocumented) + shadingToonyFactor?: number; + specVersion: '1.0' | '1.0-beta'; + transparentWithZWrite?: boolean; + // (undocumented) + uvAnimationMaskTexture?: MaterialsMToonTextureInfo; + // (undocumented) + uvAnimationRotationSpeedFactor?: number; + // (undocumented) + uvAnimationScrollXSpeedFactor?: number; + // (undocumented) + uvAnimationScrollYSpeedFactor?: number; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/types-vrmc-node-constraint-1.0/api-extractor.json b/packages/types-vrmc-node-constraint-1.0/api-extractor.json new file mode 100644 index 000000000..663b48c3c --- /dev/null +++ b/packages/types-vrmc-node-constraint-1.0/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} \ No newline at end of file diff --git a/packages/types-vrmc-node-constraint-1.0/package.json b/packages/types-vrmc-node-constraint-1.0/package.json index 9b3e32f99..d6cfa2342 100644 --- a/packages/types-vrmc-node-constraint-1.0/package.json +++ b/packages/types-vrmc-node-constraint-1.0/package.json @@ -10,7 +10,7 @@ "LICENSE" ], "main": "", - "types": "types/index.d.ts", + "types": "lib/index.d.ts", "typesVersions": { "<3.9": { "*": [ @@ -22,7 +22,7 @@ "version": "yarn all", "all": "yarn lint && yarn clean && yarn build && yarn docs", "clean": "rimraf docs/ ts*/ types/", - "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run --local && downlevel-dts types ts3.4/types && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier \"src/**/*.{ts,tsx}\" --check", "lint-fix": "eslint \"src/**/*.{ts,tsx}\" --fix && prettier \"src/**/*.{ts,tsx}\" --write" diff --git a/packages/types-vrmc-node-constraint-1.0/types-vrmc-node-constraint-1.0.api.md b/packages/types-vrmc-node-constraint-1.0/types-vrmc-node-constraint-1.0.api.md new file mode 100644 index 000000000..029409b21 --- /dev/null +++ b/packages/types-vrmc-node-constraint-1.0/types-vrmc-node-constraint-1.0.api.md @@ -0,0 +1,76 @@ +## API Report File for "@pixiv/types-vrmc-node-constraint-1.0" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +// @public +export interface AimConstraint { + aimAxis: 'PositiveX' | 'NegativeX' | 'PositiveY' | 'NegativeY' | 'PositiveZ' | 'NegativeZ'; + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + source: number; + weight?: number; +} + +// @public +export interface Constraint { + // (undocumented) + aim?: AimConstraint; + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + // (undocumented) + roll?: RollConstraint; + // (undocumented) + rotation?: RotationConstraint; +} + +// @public +export interface RollConstraint { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + rollAxis: 'X' | 'Y' | 'Z'; + source: number; + weight?: number; +} + +// @public +export interface RotationConstraint { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + source: number; + weight?: number; +} + +// @public +export interface VRMCNodeConstraint { + // (undocumented) + constraint: Constraint; + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + specVersion: '1.0' | '1.0-beta'; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/types-vrmc-springbone-1.0/api-extractor.json b/packages/types-vrmc-springbone-1.0/api-extractor.json new file mode 100644 index 000000000..663b48c3c --- /dev/null +++ b/packages/types-vrmc-springbone-1.0/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} \ No newline at end of file diff --git a/packages/types-vrmc-springbone-1.0/package.json b/packages/types-vrmc-springbone-1.0/package.json index 9cea06c31..b33436af3 100644 --- a/packages/types-vrmc-springbone-1.0/package.json +++ b/packages/types-vrmc-springbone-1.0/package.json @@ -10,7 +10,7 @@ "LICENSE" ], "main": "", - "types": "types/index.d.ts", + "types": "lib/index.d.ts", "typesVersions": { "<3.9": { "*": [ @@ -22,7 +22,7 @@ "version": "yarn all", "all": "yarn lint && yarn clean && yarn build && yarn docs", "clean": "rimraf docs/ ts*/ types/", - "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run --local && downlevel-dts types ts3.4/types && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier \"src/**/*.{ts,tsx}\" --check", "lint-fix": "eslint \"src/**/*.{ts,tsx}\" --fix && prettier \"src/**/*.{ts,tsx}\" --write" diff --git a/packages/types-vrmc-springbone-1.0/types-vrmc-springbone-1.0.api.md b/packages/types-vrmc-springbone-1.0/types-vrmc-springbone-1.0.api.md new file mode 100644 index 000000000..c24f4253a --- /dev/null +++ b/packages/types-vrmc-springbone-1.0/types-vrmc-springbone-1.0.api.md @@ -0,0 +1,108 @@ +## API Report File for "@pixiv/types-vrmc-springbone-1.0" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +// @public +export interface SpringBoneCollider { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + // (undocumented) + node?: number; + // (undocumented) + shape?: SpringBoneColliderShape; +} + +// @public (undocumented) +export interface SpringBoneColliderCapsule { + offset?: [number, number, number]; + radius?: number; + tail?: [number, number, number]; +} + +// @public +export interface SpringBoneColliderGroup { + // (undocumented) + colliders?: number[]; + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + // (undocumented) + name?: string; +} + +// @public +export interface SpringBoneColliderShape { + // (undocumented) + capsule?: SpringBoneColliderCapsule; + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + // (undocumented) + sphere?: SpringBoneColliderSphere; +} + +// @public (undocumented) +export interface SpringBoneColliderSphere { + offset?: [number, number, number]; + radius?: number; +} + +// @public +export interface SpringBoneJoint { + dragForce: number; + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + gravityDir?: [number, number, number]; + gravityPower: number; + hitRadius: number; + node: number; + stiffness: number; +} + +// @public +export interface SpringBoneSpring { + center?: number; + colliderGroups?: number[]; + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + joints: SpringBoneJoint[]; + name?: string; +} + +// @public +export interface VRMCSpringBone { + colliderGroups?: SpringBoneColliderGroup[]; + colliders?: SpringBoneCollider[]; + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + specVersion: '1.0' | '1.0-beta'; + springs?: SpringBoneSpring[]; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/types-vrmc-vrm-1.0/api-extractor.json b/packages/types-vrmc-vrm-1.0/api-extractor.json new file mode 100644 index 000000000..663b48c3c --- /dev/null +++ b/packages/types-vrmc-vrm-1.0/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} \ No newline at end of file diff --git a/packages/types-vrmc-vrm-1.0/package.json b/packages/types-vrmc-vrm-1.0/package.json index 8a880e523..ae018b8cb 100644 --- a/packages/types-vrmc-vrm-1.0/package.json +++ b/packages/types-vrmc-vrm-1.0/package.json @@ -10,7 +10,7 @@ "LICENSE" ], "main": "", - "types": "types/index.d.ts", + "types": "lib/index.d.ts", "typesVersions": { "<3.9": { "*": [ @@ -22,7 +22,7 @@ "version": "yarn all", "all": "yarn lint && yarn clean && yarn build && yarn docs", "clean": "rimraf docs/ ts*/ types/", - "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run --local && downlevel-dts types ts3.4/types && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier \"src/**/*.{ts,tsx}\" --check", "lint-fix": "eslint \"src/**/*.{ts,tsx}\" --fix && prettier \"src/**/*.{ts,tsx}\" --write" diff --git a/packages/types-vrmc-vrm-1.0/types-vrmc-vrm-1.0.api.md b/packages/types-vrmc-vrm-1.0/types-vrmc-vrm-1.0.api.md new file mode 100644 index 000000000..87b7699e5 --- /dev/null +++ b/packages/types-vrmc-vrm-1.0/types-vrmc-vrm-1.0.api.md @@ -0,0 +1,219 @@ +## API Report File for "@pixiv/types-vrmc-vrm-1.0" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +// @public +export interface Expression { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + isBinary?: boolean; + materialColorBinds?: ExpressionMaterialColorBind[]; + morphTargetBinds?: ExpressionMorphTargetBind[]; + name?: string; + overrideBlink?: ExpressionOverrideType; + overrideLookAt?: ExpressionOverrideType; + overrideMouth?: ExpressionOverrideType; + preset: ExpressionPresetName; + textureTransformBinds?: ExpressionTextureTransformBind[]; +} + +// @public (undocumented) +export interface ExpressionMaterialColorBind { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + material: number; + targetValue: [number, number, number, number]; + // (undocumented) + type: ExpressionMaterialColorType; +} + +// @public (undocumented) +export type ExpressionMaterialColorType = 'color' | 'emissionColor' | 'shadeColor' | 'matcapColor' | 'rimColor' | 'outlineColor'; + +// @public +export interface ExpressionMorphTargetBind { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + index: number; + node: number; + weight: number; +} + +// @public (undocumented) +export type ExpressionOverrideType = 'none' | 'block' | 'blend'; + +// @public (undocumented) +export type ExpressionPresetName = 'happy' | 'angry' | 'sad' | 'relaxed' | 'surprised' | 'aa' | 'ih' | 'ou' | 'ee' | 'oh' | 'blink' | 'blinkLeft' | 'blinkRight' | 'lookUp' | 'lookDown' | 'lookLeft' | 'lookRight' | 'neutral'; + +// @public (undocumented) +export interface Expressions { + // (undocumented) + custom?: { + [key: string]: Expression; + }; + // (undocumented) + preset?: { + [preset in ExpressionPresetName]?: Expression; + }; +} + +// @public (undocumented) +export interface ExpressionTextureTransformBind { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + material: number; + offset?: [number, number]; + scale?: [number, number]; +} + +// @public +export interface FirstPerson { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + meshAnnotations?: FirstPersonMeshAnnotation[]; +} + +// @public +export interface FirstPersonMeshAnnotation { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + node: number; + type: 'auto' | 'both' | 'thirdPersonOnly' | 'firstPersonOnly'; +} + +// @public +export interface Humanoid { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + // (undocumented) + humanBones: HumanoidHumanBones; +} + +// @public +export interface HumanoidHumanBone { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + node: number; +} + +// @public (undocumented) +export type HumanoidHumanBoneName = 'hips' | 'spine' | 'chest' | 'upperChest' | 'neck' | 'head' | 'leftEye' | 'rightEye' | 'jaw' | 'leftUpperLeg' | 'leftLowerLeg' | 'leftFoot' | 'leftToes' | 'rightUpperLeg' | 'rightLowerLeg' | 'rightFoot' | 'rightToes' | 'leftShoulder' | 'leftUpperArm' | 'leftLowerArm' | 'leftHand' | 'rightShoulder' | 'rightUpperArm' | 'rightLowerArm' | 'rightHand' | 'leftThumbMetacarpal' | 'leftThumbProximal' | 'leftThumbDistal' | 'leftIndexProximal' | 'leftIndexIntermediate' | 'leftIndexDistal' | 'leftMiddleProximal' | 'leftMiddleIntermediate' | 'leftMiddleDistal' | 'leftRingProximal' | 'leftRingIntermediate' | 'leftRingDistal' | 'leftLittleProximal' | 'leftLittleIntermediate' | 'leftLittleDistal' | 'rightThumbMetacarpal' | 'rightThumbProximal' | 'rightThumbDistal' | 'rightIndexProximal' | 'rightIndexIntermediate' | 'rightIndexDistal' | 'rightMiddleProximal' | 'rightMiddleIntermediate' | 'rightMiddleDistal' | 'rightRingProximal' | 'rightRingIntermediate' | 'rightRingDistal' | 'rightLittleProximal' | 'rightLittleIntermediate' | 'rightLittleDistal'; + +// @public +export type HumanoidHumanBones = { + [key in HumanoidHumanBoneName]: HumanoidHumanBone; +}; + +// @public +export interface LookAt { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + offsetFromHeadBone?: number[]; + rangeMapHorizontalInner?: LookAtRangeMap; + rangeMapHorizontalOuter?: LookAtRangeMap; + rangeMapVerticalDown?: LookAtRangeMap; + rangeMapVerticalUp?: LookAtRangeMap; + // (undocumented) + type?: 'bone' | 'expression'; +} + +// @public +export interface LookAtRangeMap { + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + inputMaxValue?: number; + outputScale?: number; +} + +// @public (undocumented) +export interface Meta { + allowAntisocialOrHateUsage?: boolean; + allowExcessivelySexualUsage?: boolean; + allowExcessivelyViolentUsage?: boolean; + allowPoliticalOrReligiousUsage?: boolean; + allowRedistribution?: boolean; + authors: string[]; + avatarPermission?: 'onlyAuthor' | 'onlySeparatelyLicensedPerson' | 'everyone'; + commercialUsage?: 'personalNonProfit' | 'personalProfit' | 'corporation'; + contactInformation?: string; + copyrightInformation?: string; + creditNotation?: 'required' | 'unnecessary'; + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + licenseUrl: string; + modification?: 'prohibited' | 'allowModification' | 'allowModificationRedistribution'; + name: string; + otherLicenseUrl?: string; + references?: string[]; + thirdPartyLicenses?: string; + thumbnailImage?: number; + version?: string; +} + +// @public (undocumented) +export interface VRMCVRM { + // (undocumented) + expressions?: Expressions; + // (undocumented) + extensions?: { + [name: string]: any; + }; + // (undocumented) + extras?: any; + firstPerson?: FirstPerson; + // (undocumented) + humanoid: Humanoid; + lookAt?: LookAt; + meta: Meta; + specVersion: '1.0' | '1.0-beta'; +} + +// (No @packageDocumentation comment for this package) + +```