消消方块阵换皮表情
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3378 lines
163 KiB

1 week ago
declare module "cc/editor/2d-misc" {
export function earcut(datas: number[], holeIndices: number[] | null, dim: number): number[];
export {};
}
declare module "cc/editor/animation-clip-migration" {
export import AnimationClipLegacyData = AnimationClip._legacy.AnimationClipLegacyData;
import { AnimationClip } from "cc";
export {};
}
declare module "cc/editor/color-utils" {
export function linearToSrgb8Bit(x: number): number;
export function srgbToLinear(x: number): number;
export {};
}
declare module "cc/editor/custom-pipeline" {
export function reindexEdgeList(el: (OutE | OutEP)[], u: number): void;
export function removeAllEdgesFromList(edges: Set<Edge>, el: OutEP[], v: vertex_descriptor): void;
export function getPath(g: ReferenceGraph & NamedGraph, v: vertex_descriptor | null): string;
export function findRelative(g: ParentGraph, v: vertex_descriptor | null, path: string): vertex_descriptor | null;
export function depthFirstSearch(g: IncidenceGraph & VertexListGraph, visitor: GraphVisitor, color: MutableVertexPropertyMap<GraphColor>, startVertex?: vertex_descriptor | null): void;
export function depthFirstVisit(g: IncidenceGraph, u: vertex_descriptor, visitor: GraphVisitor, color: MutableVertexPropertyMap<GraphColor>, func?: TerminatorFunc): void;
/****************************************************************************
Copyright (c) 2021-2023 Xiamen Yaji Software Co., Ltd.
http://www.cocos.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
****************************************************************************/
export const enum directional {
undirected = 0,
directed = 1,
bidirectional = 2
}
export const enum parallel {
disallow = 0,
allow = 1
}
export const enum traversal {
none = 0,
incidence = 1,
bidirectional = 2,
adjacency = 4,
vertex_list = 8,
edge_list = 16
}
export interface Vertex {
nullVertex(): Vertex | null;
}
export type vertex_descriptor = number | Vertex;
export interface Edge {
getProperty(): unknown;
source: vertex_descriptor;
target: vertex_descriptor;
}
export class ED {
constructor(source: vertex_descriptor, target: vertex_descriptor);
equals(rhs: ED): boolean;
source: vertex_descriptor;
target: vertex_descriptor;
}
export class EPD {
constructor(source: vertex_descriptor, target: vertex_descriptor, edge: Edge);
equals(rhs: EPD): boolean;
source: vertex_descriptor;
target: vertex_descriptor;
readonly edge: Edge;
}
export type edge_descriptor = ED | EPD;
export class OutE {
constructor(target: vertex_descriptor);
equals(rhs: OutE): boolean;
target: vertex_descriptor;
}
export class OutEP {
constructor(target: vertex_descriptor, edge: Edge);
equals(rhs: OutEP): boolean;
getProperty(): unknown;
target: vertex_descriptor;
readonly edge: Edge;
}
export class OutEI implements IterableIterator<ED> {
constructor(iterator: IterableIterator<OutE>, source: vertex_descriptor);
[Symbol.iterator](): OutEI;
next(): IteratorResult<ED>;
readonly iterator: IterableIterator<OutE>;
readonly source: vertex_descriptor;
}
export class OutEPI implements IterableIterator<EPD> {
constructor(iterator: IterableIterator<OutEP>, source: vertex_descriptor);
[Symbol.iterator](): OutEPI;
next(): IteratorResult<EPD>;
readonly iterator: IterableIterator<OutEP>;
readonly source: vertex_descriptor;
}
export type out_edge_iterator = OutEI | OutEPI;
export class InEI implements IterableIterator<ED> {
constructor(iterator: IterableIterator<OutE>, source: vertex_descriptor);
[Symbol.iterator](): InEI;
next(): IteratorResult<ED>;
readonly iterator: IterableIterator<OutE>;
readonly source: vertex_descriptor;
}
export class InEPI implements IterableIterator<EPD> {
constructor(iterator: IterableIterator<OutEP>, source: vertex_descriptor);
[Symbol.iterator](): InEPI;
next(): IteratorResult<EPD>;
readonly iterator: IterableIterator<OutEP>;
readonly source: vertex_descriptor;
}
export type in_edge_iterator = InEI | InEPI;
export interface Graph {
readonly N: number | null;
}
export interface IncidenceGraph extends Graph {
edge(u: vertex_descriptor, v: vertex_descriptor): boolean;
source(e: edge_descriptor): vertex_descriptor;
target(e: edge_descriptor): vertex_descriptor;
/** Return out edge iterator of the vertex */
oe(v: vertex_descriptor): out_edge_iterator;
/** Return out degree of the vertex */
od(v: vertex_descriptor): number;
}
export interface BidirectionalGraph extends IncidenceGraph {
/** Return in edge iterator of the vertex */
ie(v: vertex_descriptor): in_edge_iterator;
/** Return in degree of the vertex */
id(v: vertex_descriptor): number;
/** Return degree of the vertex */
d(v: vertex_descriptor): number;
}
export class AdjI implements IterableIterator<vertex_descriptor> {
constructor(graph: IncidenceGraph, iterator: OutEI);
[Symbol.iterator](): AdjI;
next(): IteratorResult<vertex_descriptor>;
readonly graph: IncidenceGraph;
readonly iterator: OutEI;
}
export class AdjPI implements IterableIterator<vertex_descriptor> {
constructor(graph: IncidenceGraph, iterator: OutEPI);
[Symbol.iterator](): AdjPI;
next(): IteratorResult<vertex_descriptor>;
readonly graph: IncidenceGraph;
readonly iterator: OutEPI;
}
export type adjacency_iterator = AdjI | AdjPI;
export interface AdjacencyGraph extends Graph {
/** Return adjacenct vertex iterator */
adj(v: vertex_descriptor): adjacency_iterator;
}
export interface VertexListGraph extends Graph {
/** Return vertex iterator */
v(): IterableIterator<vertex_descriptor>;
/** Return number of vertices */
nv(): number;
}
export interface EdgeListGraph extends Graph {
/** Return number of edges */
ne(): number;
source(e: edge_descriptor): vertex_descriptor;
target(e: edge_descriptor): vertex_descriptor;
}
export interface MutableGraph extends Graph {
addVertex(...args: any[]): vertex_descriptor;
addEdge(u: vertex_descriptor, v: vertex_descriptor, p?: unknown): edge_descriptor | null;
}
export interface PropertyMap {
get(x: vertex_descriptor | edge_descriptor): unknown;
}
export interface MutableVertexPropertyMap<T> extends PropertyMap {
put(x: vertex_descriptor, value: T): void;
}
export interface PropertyGraph extends Graph {
}
export interface NamedGraph extends Graph {
vertexName(v: vertex_descriptor): string;
}
export interface ComponentGraph extends Graph {
}
export interface PolymorphicGraph extends Graph {
/** Checks if a vertex currently holds a given type */
h(id: number, v: vertex_descriptor): boolean;
/** Returns the zero-based index of the alternative held by the vertex */
w(v: vertex_descriptor): number;
object(v: vertex_descriptor): unknown;
value(id: number, v: vertex_descriptor): unknown;
visitVertex(visitor: unknown, v: vertex_descriptor): void;
}
export type reference_descriptor = ED | EPD;
export type child_iterator = OutEI | OutEPI;
export type parent_iterator = InEI | InEPI;
export interface ReferenceGraph extends Graph {
reference(u: vertex_descriptor, v: vertex_descriptor): boolean;
parent(e: reference_descriptor): vertex_descriptor;
child(e: reference_descriptor): vertex_descriptor;
children(v: vertex_descriptor): child_iterator;
numChildren(v: vertex_descriptor): number;
getParent(v: vertex_descriptor): vertex_descriptor | null;
}
export interface MutableReferenceGraph extends ReferenceGraph {
addReference(u: vertex_descriptor, v: vertex_descriptor, p?: unknown): reference_descriptor | null;
}
export interface ParentGraph extends ReferenceGraph, NamedGraph {
locateChild(v: vertex_descriptor | null, name: string): vertex_descriptor | null;
}
export interface AddressableGraph extends ParentGraph {
locate(absPath: string): vertex_descriptor | null;
locateRelative(path: string, start?: vertex_descriptor | null): vertex_descriptor | null;
path(v: vertex_descriptor): string;
}
export interface UuidGraph<Key> extends Graph {
contains(key: Key): boolean;
vertex(key: Key): vertex_descriptor;
find(key: Key): vertex_descriptor | null;
}
export interface TerminatorFunc {
terminate(v: vertex_descriptor, g: IncidenceGraph): boolean;
}
export interface GraphVisitor {
initializeVertex(v: vertex_descriptor, g: IncidenceGraph): void;
startVertex(v: vertex_descriptor, g: IncidenceGraph): void;
discoverVertex(v: vertex_descriptor, g: IncidenceGraph): void;
examineEdge(e: edge_descriptor, g: IncidenceGraph): void;
treeEdge(e: edge_descriptor, g: IncidenceGraph): void;
backEdge(e: edge_descriptor, g: IncidenceGraph): void;
forwardOrCrossEdge(e: edge_descriptor, g: IncidenceGraph): void;
finishEdge(e: edge_descriptor, g: IncidenceGraph): void;
finishVertex(v: vertex_descriptor, g: IncidenceGraph): void;
}
export enum GraphColor {
WHITE = 0,
GRAY = 1,
GREEN = 2,
RED = 3,
BLACK = 4
}
export class DefaultVisitor implements GraphVisitor {
initializeVertex(v: vertex_descriptor, g: IncidenceGraph): void;
startVertex(v: vertex_descriptor, g: IncidenceGraph): void;
discoverVertex(v: vertex_descriptor, g: IncidenceGraph): void;
examineEdge(e: edge_descriptor, g: IncidenceGraph): void;
treeEdge(e: edge_descriptor, g: IncidenceGraph): void;
backEdge(e: edge_descriptor, g: IncidenceGraph): void;
forwardOrCrossEdge(e: edge_descriptor, g: IncidenceGraph): void;
finishEdge(e: edge_descriptor, g: IncidenceGraph): void;
finishVertex(v: vertex_descriptor, g: IncidenceGraph): void;
}
export class ReferenceGraphView<BaseGraph extends ReferenceGraph & VertexListGraph> implements IncidenceGraph, VertexListGraph {
constructor(g: BaseGraph);
readonly N: number | null;
edge(u: vertex_descriptor, v: vertex_descriptor): boolean;
source(e: edge_descriptor): vertex_descriptor;
target(e: edge_descriptor): vertex_descriptor;
oe(v: vertex_descriptor): out_edge_iterator;
od(v: vertex_descriptor): number;
v(): IterableIterator<vertex_descriptor>;
nv(): number;
g: BaseGraph;
}
export function getLayoutGraphValueName(e: LayoutGraphValue): string;
export function getLayoutGraphDataValueName(e: LayoutGraphDataValue): string;
export function saveDescriptor(a: rendering.OutputArchive, v: Descriptor): void;
export function loadDescriptor(a: rendering.InputArchive, v: Descriptor): void;
export function saveDescriptorBlock(a: rendering.OutputArchive, v: DescriptorBlock): void;
export function loadDescriptorBlock(a: rendering.InputArchive, v: DescriptorBlock): void;
export function saveDescriptorBlockFlattened(a: rendering.OutputArchive, v: DescriptorBlockFlattened): void;
export function loadDescriptorBlockFlattened(a: rendering.InputArchive, v: DescriptorBlockFlattened): void;
export function saveDescriptorBlockIndex(a: rendering.OutputArchive, v: DescriptorBlockIndex): void;
export function loadDescriptorBlockIndex(a: rendering.InputArchive, v: DescriptorBlockIndex): void;
export function saveDescriptorGroupBlockIndex(a: rendering.OutputArchive, v: DescriptorGroupBlockIndex): void;
export function loadDescriptorGroupBlockIndex(a: rendering.InputArchive, v: DescriptorGroupBlockIndex): void;
export function saveDescriptorDB(a: rendering.OutputArchive, v: DescriptorDB): void;
export function loadDescriptorDB(a: rendering.InputArchive, v: DescriptorDB): void;
export function saveRenderPhase(a: rendering.OutputArchive, v: RenderPhase): void;
export function loadRenderPhase(a: rendering.InputArchive, v: RenderPhase): void;
export function saveLayoutGraph(a: rendering.OutputArchive, g: LayoutGraph): void;
export function loadLayoutGraph(a: rendering.InputArchive, g: LayoutGraph): void;
export function saveUniformData(a: rendering.OutputArchive, v: UniformData): void;
export function loadUniformData(a: rendering.InputArchive, v: UniformData): void;
export function saveUniformBlockData(a: rendering.OutputArchive, v: UniformBlockData): void;
export function loadUniformBlockData(a: rendering.InputArchive, v: UniformBlockData): void;
export function saveDescriptorData(a: rendering.OutputArchive, v: DescriptorData): void;
export function loadDescriptorData(a: rendering.InputArchive, v: DescriptorData): void;
export function saveDescriptorBlockData(a: rendering.OutputArchive, v: DescriptorBlockData): void;
export function loadDescriptorBlockData(a: rendering.InputArchive, v: DescriptorBlockData): void;
export function saveDescriptorSetLayoutData(a: rendering.OutputArchive, v: DescriptorSetLayoutData): void;
export function loadDescriptorSetLayoutData(a: rendering.InputArchive, v: DescriptorSetLayoutData): void;
export function saveDescriptorSetData(a: rendering.OutputArchive, v: DescriptorSetData): void;
export function loadDescriptorSetData(a: rendering.InputArchive, v: DescriptorSetData): void;
export function savePipelineLayoutData(a: rendering.OutputArchive, v: PipelineLayoutData): void;
export function loadPipelineLayoutData(a: rendering.InputArchive, v: PipelineLayoutData): void;
export function saveShaderBindingData(a: rendering.OutputArchive, v: ShaderBindingData): void;
export function loadShaderBindingData(a: rendering.InputArchive, v: ShaderBindingData): void;
export function saveShaderLayoutData(a: rendering.OutputArchive, v: ShaderLayoutData): void;
export function loadShaderLayoutData(a: rendering.InputArchive, v: ShaderLayoutData): void;
export function saveTechniqueData(a: rendering.OutputArchive, v: TechniqueData): void;
export function loadTechniqueData(a: rendering.InputArchive, v: TechniqueData): void;
export function saveEffectData(a: rendering.OutputArchive, v: EffectData): void;
export function loadEffectData(a: rendering.InputArchive, v: EffectData): void;
export function saveShaderProgramData(a: rendering.OutputArchive, v: ShaderProgramData): void;
export function loadShaderProgramData(a: rendering.InputArchive, v: ShaderProgramData): void;
export function saveRenderStageData(a: rendering.OutputArchive, v: RenderStageData): void;
export function loadRenderStageData(a: rendering.InputArchive, v: RenderStageData): void;
export function saveRenderPhaseData(a: rendering.OutputArchive, v: RenderPhaseData): void;
export function loadRenderPhaseData(a: rendering.InputArchive, v: RenderPhaseData): void;
export function saveLayoutGraphData(a: rendering.OutputArchive, g: LayoutGraphData): void;
export function loadLayoutGraphData(a: rendering.InputArchive, g: LayoutGraphData): void;
export const enum LayoutType {
VULKAN = 0,
WEBGPU = 1
}
export class Layout {
static type: LayoutType;
static isWebGPU: boolean;
}
export const enum DescriptorTypeOrder {
UNIFORM_BUFFER = 0,
DYNAMIC_UNIFORM_BUFFER = 1,
SAMPLER_TEXTURE = 2,
SAMPLER = 3,
TEXTURE = 4,
STORAGE_BUFFER = 5,
DYNAMIC_STORAGE_BUFFER = 6,
STORAGE_IMAGE = 7,
INPUT_ATTACHMENT = 8
}
export class Descriptor {
constructor(type?: gfx.Type);
reset(type: gfx.Type): void;
type: gfx.Type;
count: number;
}
export class DescriptorBlock {
reset(): void;
readonly descriptors: Map<string, Descriptor>;
readonly uniformBlocks: Map<string, gfx.UniformBlock>;
capacity: number;
count: number;
}
export class DescriptorBlockFlattened {
reset(): void;
readonly descriptorNames: string[];
readonly uniformBlockNames: string[];
readonly descriptors: Descriptor[];
readonly uniformBlocks: gfx.UniformBlock[];
capacity: number;
count: number;
}
export class DescriptorBlockIndex {
constructor(updateFrequency?: rendering.UpdateFrequency, parameterType?: rendering.ParameterType, descriptorType?: DescriptorTypeOrder, visibility?: gfx.ShaderStageFlagBit);
updateFrequency: rendering.UpdateFrequency;
parameterType: rendering.ParameterType;
descriptorType: DescriptorTypeOrder;
visibility: gfx.ShaderStageFlagBit;
}
export class DescriptorGroupBlockIndex {
constructor(updateFrequency?: rendering.UpdateFrequency, parameterType?: rendering.ParameterType, descriptorType?: DescriptorTypeOrder, visibility?: gfx.ShaderStageFlagBit, accessType?: gfx.MemoryAccessBit, viewDimension?: gfx.ViewDimension, sampleType?: gfx.SampleType, format?: gfx.Format);
updateFrequency: rendering.UpdateFrequency;
parameterType: rendering.ParameterType;
descriptorType: DescriptorTypeOrder;
visibility: gfx.ShaderStageFlagBit;
accessType: gfx.MemoryAccessBit;
viewDimension: gfx.ViewDimension;
sampleType: gfx.SampleType;
format: gfx.Format;
}
export class DescriptorDB {
reset(): void;
readonly blocks: Map<string, DescriptorBlock>;
readonly groupBlocks: Map<string, DescriptorBlock>;
}
export class RenderPhase {
reset(): void;
readonly shaders: Set<string>;
}
export const enum RenderPassType {
SINGLE_RENDER_PASS = 0,
RENDER_PASS = 1,
RENDER_SUBPASS = 2
}
export const enum LayoutGraphValue {
RenderStage = 0,
RenderPhase = 1
}
export interface LayoutGraphValueType {
[LayoutGraphValue.RenderStage]: RenderPassType;
[LayoutGraphValue.RenderPhase]: RenderPhase;
}
export interface LayoutGraphVisitor {
renderStage(value: RenderPassType): unknown;
renderPhase(value: RenderPhase): unknown;
}
export type LayoutGraphObject = RenderPassType | RenderPhase;
export class LayoutGraphVertex {
readonly id: LayoutGraphValue;
readonly object: LayoutGraphObject;
constructor(id: LayoutGraphValue, object: LayoutGraphObject);
/** Out edge list */
readonly o: OutE[];
/** In edge list */
readonly i: OutE[];
/** Polymorphic object Id */
readonly t: LayoutGraphValue;
/** Polymorphic object */
j: LayoutGraphObject;
}
export const enum LayoutGraphComponent {
Name = 0,
Descriptors = 1
}
export interface LayoutGraphComponentType {
[LayoutGraphComponent.Name]: string;
[LayoutGraphComponent.Descriptors]: DescriptorDB;
}
export class LayoutGraph implements BidirectionalGraph, AdjacencyGraph, VertexListGraph, MutableGraph, PropertyGraph, NamedGraph, ComponentGraph, PolymorphicGraph, ReferenceGraph, MutableReferenceGraph, AddressableGraph {
/** null vertex descriptor */
readonly N = 4294967295;
edge(u: number, v: number): boolean;
source(e: ED): number;
target(e: ED): number;
oe(v: number): OutEI;
od(v: number): number;
ie(v: number): InEI;
id(v: number): number;
d(v: number): number;
adj(v: number): AdjI;
v(): IterableIterator<number>;
nv(): number;
ne(): number;
clear(): void;
addVertex<T extends LayoutGraphValue>(id: T, object: LayoutGraphValueType[T], name: string, descriptors: DescriptorDB, u?: number): number;
addEdge(u: number, v: number): ED | null;
vertexName(v: number): string;
getName(v: number): string;
getDescriptors(v: number): DescriptorDB;
h(id: LayoutGraphValue, v: number): boolean;
w(v: number): LayoutGraphValue;
object(v: number): LayoutGraphObject;
value<T extends LayoutGraphValue>(id: T, v: number): LayoutGraphValueType[T];
visitVertex(visitor: LayoutGraphVisitor, v: number): unknown;
j<T extends LayoutGraphObject>(v: number): T;
reference(u: number, v: number): boolean;
parent(e: ED): number;
child(e: ED): number;
children(v: number): OutEI;
numChildren(v: number): number;
getParent(v: number): number;
addReference(u: number, v: number): ED | null;
locateChild(u: number, name: string): number;
locate(absPath: string): number;
locateRelative(path: string, start?: number): number;
path(v: number): string;
readonly x: LayoutGraphVertex[];
readonly _names: string[];
readonly _descriptors: DescriptorDB[];
}
export class UniformData {
constructor(uniformID?: number, uniformType?: gfx.Type, offset?: number);
reset(uniformID: number, uniformType: gfx.Type, offset: number): void;
uniformID: number;
uniformType: gfx.Type;
offset: number;
size: number;
}
export class UniformBlockData {
reset(): void;
bufferSize: number;
readonly uniforms: UniformData[];
}
export class DescriptorData {
constructor(descriptorID?: number, type?: gfx.Type, count?: number);
reset(descriptorID: number, type: gfx.Type, count: number): void;
descriptorID: number;
type: gfx.Type;
count: number;
}
export class DescriptorBlockData {
constructor(type?: DescriptorTypeOrder, visibility?: gfx.ShaderStageFlagBit, capacity?: number, accessType?: gfx.MemoryAccessBit, viewDimension?: gfx.ViewDimension, sampleType?: gfx.SampleType, format?: gfx.Format);
reset(type: DescriptorTypeOrder, visibility: gfx.ShaderStageFlagBit, capacity: number, accessType: gfx.MemoryAccessBit, viewDimension: gfx.ViewDimension, sampleType: gfx.SampleType, format: gfx.Format): void;
type: DescriptorTypeOrder;
visibility: gfx.ShaderStageFlagBit;
offset: number;
capacity: number;
accessType: gfx.MemoryAccessBit;
viewDimension: gfx.ViewDimension;
sampleType: gfx.SampleType;
format: gfx.Format;
readonly descriptors: DescriptorData[];
}
export class DescriptorSetLayoutData {
constructor(slot?: number, capacity?: number, descriptorBlocks?: DescriptorBlockData[], uniformBlocks?: Map<number, gfx.UniformBlock>, bindingMap?: Map<number, number>);
reset(slot: number, capacity: number): void;
slot: number;
capacity: number;
uniformBlockCapacity: number;
samplerTextureCapacity: number;
readonly descriptorBlocks: DescriptorBlockData[];
readonly uniformBlocks: Map<number, gfx.UniformBlock>;
readonly bindingMap: Map<number, number>;
}
export class DescriptorSetData {
constructor(descriptorSetLayoutData?: DescriptorSetLayoutData, descriptorSetLayout?: gfx.DescriptorSetLayout | null, descriptorSet?: gfx.DescriptorSet | null);
reset(descriptorSetLayout: gfx.DescriptorSetLayout | null, descriptorSet: gfx.DescriptorSet | null): void;
readonly descriptorSetLayoutData: DescriptorSetLayoutData;
readonly descriptorSetLayoutInfo: gfx.DescriptorSetLayoutInfo;
descriptorSetLayout: gfx.DescriptorSetLayout | null;
descriptorSet: gfx.DescriptorSet | null;
}
export class PipelineLayoutData {
reset(): void;
getSets(): Map<rendering.UpdateFrequency, DescriptorSetData>;
getSet(frequency: rendering.UpdateFrequency): DescriptorSetData | undefined;
readonly descriptorSets: Map<rendering.UpdateFrequency, DescriptorSetData>;
readonly descriptorGroups: Map<rendering.UpdateFrequency, DescriptorSetData>;
}
export class ShaderBindingData {
reset(): void;
readonly descriptorBindings: Map<number, number>;
}
export class ShaderLayoutData {
reset(): void;
readonly layoutData: Map<rendering.UpdateFrequency, DescriptorSetLayoutData>;
readonly bindingData: Map<rendering.UpdateFrequency, ShaderBindingData>;
}
export class TechniqueData {
reset(): void;
readonly passes: ShaderLayoutData[];
}
export class EffectData {
reset(): void;
readonly techniques: Map<string, TechniqueData>;
}
export class ShaderProgramData {
reset(): void;
readonly layout: PipelineLayoutData;
pipelineLayout: gfx.PipelineLayout | null;
}
export class RenderStageData {
reset(): void;
readonly descriptorVisibility: Map<number, gfx.ShaderStageFlagBit>;
}
export class RenderPhaseData {
reset(): void;
rootSignature: string;
readonly shaderPrograms: ShaderProgramData[];
readonly shaderIndex: Map<string, number>;
pipelineLayout: gfx.PipelineLayout | null;
}
export const enum LayoutGraphDataValue {
RenderStage = 0,
RenderPhase = 1
}
export interface LayoutGraphDataValueType {
[LayoutGraphDataValue.RenderStage]: RenderStageData;
[LayoutGraphDataValue.RenderPhase]: RenderPhaseData;
}
export interface LayoutGraphDataVisitor {
renderStage(value: RenderStageData): unknown;
renderPhase(value: RenderPhaseData): unknown;
}
export type LayoutGraphDataObject = RenderStageData | RenderPhaseData;
export class LayoutGraphDataVertex {
readonly id: LayoutGraphDataValue;
readonly object: LayoutGraphDataObject;
constructor(id: LayoutGraphDataValue, object: LayoutGraphDataObject);
/** Out edge list */
readonly o: OutE[];
/** In edge list */
readonly i: OutE[];
/** Polymorphic object Id */
readonly t: LayoutGraphDataValue;
/** Polymorphic object */
j: LayoutGraphDataObject;
}
export const enum LayoutGraphDataComponent {
Name = 0,
Update = 1,
Layout = 2
}
export interface LayoutGraphDataComponentType {
[LayoutGraphDataComponent.Name]: string;
[LayoutGraphDataComponent.Update]: rendering.UpdateFrequency;
[LayoutGraphDataComponent.Layout]: PipelineLayoutData;
}
export class LayoutGraphData implements BidirectionalGraph, AdjacencyGraph, VertexListGraph, MutableGraph, PropertyGraph, NamedGraph, ComponentGraph, PolymorphicGraph, ReferenceGraph, MutableReferenceGraph, AddressableGraph {
/** null vertex descriptor */
readonly N = 4294967295;
edge(u: number, v: number): boolean;
source(e: ED): number;
target(e: ED): number;
oe(v: number): OutEI;
od(v: number): number;
ie(v: number): InEI;
id(v: number): number;
d(v: number): number;
adj(v: number): AdjI;
v(): IterableIterator<number>;
nv(): number;
ne(): number;
clear(): void;
addVertex<T extends LayoutGraphDataValue>(id: T, object: LayoutGraphDataValueType[T], name: string, update: rendering.UpdateFrequency, layout: PipelineLayoutData, u?: number): number;
addEdge(u: number, v: number): ED | null;
vertexName(v: number): string;
getName(v: number): string;
getUpdate(v: number): rendering.UpdateFrequency;
setUpdate(v: number, value: rendering.UpdateFrequency): void;
getLayout(v: number): PipelineLayoutData;
h(id: LayoutGraphDataValue, v: number): boolean;
w(v: number): LayoutGraphDataValue;
object(v: number): LayoutGraphDataObject;
value<T extends LayoutGraphDataValue>(id: T, v: number): LayoutGraphDataValueType[T];
visitVertex(visitor: LayoutGraphDataVisitor, v: number): unknown;
j<T extends LayoutGraphDataObject>(v: number): T;
reference(u: number, v: number): boolean;
parent(e: ED): number;
child(e: ED): number;
children(v: number): OutEI;
numChildren(v: number): number;
getParent(v: number): number;
addReference(u: number, v: number): ED | null;
locateChild(u: number, name: string): number;
locate(absPath: string): number;
locateRelative(path: string, start?: number): number;
path(v: number): string;
readonly x: LayoutGraphDataVertex[];
readonly _names: string[];
readonly _updateFrequencies: rendering.UpdateFrequency[];
readonly _layouts: PipelineLayoutData[];
readonly valueNames: string[];
readonly attributeIndex: Map<string, number>;
readonly constantIndex: Map<string, number>;
readonly shaderLayoutIndex: Map<string, number>;
readonly effects: Map<string, EffectData>;
constantMacros: string;
}
export class LayoutGraphObjectPool {
constructor(renderCommon: rendering.RenderCommonObjectPool);
reset(): void;
createLayout(): Layout;
createDescriptor(type?: gfx.Type): Descriptor;
createDescriptorBlock(): DescriptorBlock;
createDescriptorBlockFlattened(): DescriptorBlockFlattened;
createDescriptorBlockIndex(updateFrequency?: rendering.UpdateFrequency, parameterType?: rendering.ParameterType, descriptorType?: DescriptorTypeOrder, visibility?: gfx.ShaderStageFlagBit): DescriptorBlockIndex;
createDescriptorGroupBlockIndex(updateFrequency?: rendering.UpdateFrequency, parameterType?: rendering.ParameterType, descriptorType?: DescriptorTypeOrder, visibility?: gfx.ShaderStageFlagBit, accessType?: gfx.MemoryAccessBit, viewDimension?: gfx.ViewDimension, sampleType?: gfx.SampleType, format?: gfx.Format): DescriptorGroupBlockIndex;
createDescriptorDB(): DescriptorDB;
createRenderPhase(): RenderPhase;
createLayoutGraph(): LayoutGraph;
createUniformData(uniformID?: number, uniformType?: gfx.Type, offset?: number): UniformData;
createUniformBlockData(): UniformBlockData;
createDescriptorData(descriptorID?: number, type?: gfx.Type, count?: number): DescriptorData;
createDescriptorBlockData(type?: DescriptorTypeOrder, visibility?: gfx.ShaderStageFlagBit, capacity?: number, accessType?: gfx.MemoryAccessBit, viewDimension?: gfx.ViewDimension, sampleType?: gfx.SampleType, format?: gfx.Format): DescriptorBlockData;
createDescriptorSetLayoutData(slot?: number, capacity?: number): DescriptorSetLayoutData;
createDescriptorSetData(descriptorSetLayout?: gfx.DescriptorSetLayout | null, descriptorSet?: gfx.DescriptorSet | null): DescriptorSetData;
createPipelineLayoutData(): PipelineLayoutData;
createShaderBindingData(): ShaderBindingData;
createShaderLayoutData(): ShaderLayoutData;
createTechniqueData(): TechniqueData;
createEffectData(): EffectData;
createShaderProgramData(): ShaderProgramData;
createRenderStageData(): RenderStageData;
createRenderPhaseData(): RenderPhaseData;
createLayoutGraphData(): LayoutGraphData;
readonly renderCommon: rendering.RenderCommonObjectPool;
}
export function getGfxDescriptorType(type: DescriptorTypeOrder): gfx.DescriptorType;
export function getDescriptorTypeOrder(type: gfx.DescriptorType): DescriptorTypeOrder;
export function getCustomPassID(lg: LayoutGraphData, name: string | undefined): number;
export function getCustomSubpassID(lg: LayoutGraphData, passID: number, name: string): number;
export function getCustomPhaseID(lg: LayoutGraphData, subpassOrPassID: number, name: string | number | undefined): number;
export function getUniformBlockSize(blockMembers: Array<gfx.Uniform>): number;
export function sortDescriptorBlocks<T>(lhs: [
string,
T
], rhs: [
string,
T
]): number;
export function sortDescriptorGroupBlocks<T>(lhs: [
string,
T
], rhs: [
string,
T
]): number;
export function getOrCreateDescriptorID(lg: LayoutGraphData, name: string): number;
export function createGfxDescriptorSetsAndPipelines(device: gfx.Device | null, g: LayoutGraphData): void;
export function makeDescriptorSetLayoutData(lg: LayoutGraphData, rate: rendering.UpdateFrequency, set: number, descriptors: EffectAsset.IDescriptorInfo): DescriptorSetLayoutData;
export function initializeDescriptorSetLayoutInfo(layoutData: DescriptorSetLayoutData, info: gfx.DescriptorSetLayoutInfo): void;
export function populatePipelineLayoutInfo(layout: PipelineLayoutData, rate: rendering.UpdateFrequency, info: gfx.PipelineLayoutInfo): void;
export function generateConstantMacros(device: gfx.Device, constantMacros: string): void;
export function initializeLayoutGraphData(device: gfx.Device, lg: LayoutGraphData): void;
export function terminateLayoutGraphData(lg: LayoutGraphData): void;
export function getEmptyDescriptorSetLayout(): gfx.DescriptorSetLayout;
export function getEmptyPipelineLayout(): gfx.PipelineLayout;
export function getOrCreateDescriptorSetLayout(lg: LayoutGraphData, subpassOrPassID: number, phaseID: number, rate: rendering.UpdateFrequency): gfx.DescriptorSetLayout;
export function getDescriptorSetLayout(lg: LayoutGraphData, subpassOrPassID: number, phaseID: number, rate: rendering.UpdateFrequency): gfx.DescriptorSetLayout | null;
export function getProgramID(lg: LayoutGraphData, phaseID: number, programName: string): number;
export function getDescriptorNameID(lg: LayoutGraphData, name: string): number;
export function getDescriptorName(lg: LayoutGraphData, nameID: number): string;
export function getPerPassDescriptorSetLayoutData(lg: LayoutGraphData, subpassOrPassID: number): DescriptorSetLayoutData | null;
export function getPerPhaseDescriptorSetLayoutData(lg: LayoutGraphData, phaseID: number): DescriptorSetLayoutData | null;
export function getPerBatchDescriptorSetLayoutData(lg: LayoutGraphData, phaseID: number, programID: number): DescriptorSetLayoutData | null;
export function getPerInstanceDescriptorSetLayoutData(lg: LayoutGraphData, phaseID: number, programID: number): DescriptorSetLayoutData | null;
export function getBinding(layout: DescriptorSetLayoutData, nameID: number): number;
export const INVALID_ID = 4294967295;
export const ENABLE_SUBPASS = true;
export const DEFAULT_UNIFORM_COUNTS: Map<string, number>;
export const DYNAMIC_UNIFORM_BLOCK: Set<string>;
export function getLayoutGraphDataVersion(): number;
export function getOrCreateConstantID(lg: LayoutGraphData, name: string): number;
export function buildLayoutGraphData(lg: LayoutGraph, lgData: LayoutGraphData): void;
export function printLayoutGraphData(g: LayoutGraphData): string;
export class PrintVisitor extends DefaultVisitor {
discoverVertex(u: number, g: LayoutGraphData): void;
finishVertex(v: number, g: LayoutGraphData): void;
space: string;
oss: string;
}
export class VisibilityIndex {
constructor(updateFrequency?: rendering.UpdateFrequency, parameterType?: rendering.ParameterType, descriptorType?: DescriptorTypeOrder);
updateFrequency: rendering.UpdateFrequency;
parameterType: rendering.ParameterType;
descriptorType: DescriptorTypeOrder;
}
export class VisibilityBlock {
mergeVisibility(name: string, vis: gfx.ShaderStageFlagBit): void;
getVisibility(name: string): gfx.ShaderStageFlagBit;
descriptors: Map<string, gfx.ShaderStageFlagBit>;
}
export class VisibilityDB {
getBlock(index: VisibilityIndex): VisibilityBlock;
blocks: Map<string, VisibilityBlock>;
}
export class VisibilityPass {
getPhase(phaseName: string): VisibilityDB;
phases: Map<string, VisibilityDB>;
}
export class VisibilityGraph {
getPass(passName: string): VisibilityPass;
mergeEffect(asset: EffectAsset): void;
passes: Map<string, VisibilityPass>;
}
export class LayoutGraphInfo {
constructor(visg: VisibilityGraph);
lg: LayoutGraph;
visg: VisibilityGraph;
readonly enableDebug = false;
addEffect(asset: EffectAsset): void;
build(): number;
print(): string;
}
export class BinaryOutputArchive implements rendering.OutputArchive {
constructor();
b(value: boolean): void;
n(value: number): void;
s(value: string): void;
reserve(requiredSize: number): void;
get data(): ArrayBuffer;
capacity: number;
size: number;
buffer: Uint8Array;
dataView: DataView;
}
export class BinaryInputArchive implements rendering.InputArchive {
constructor(data: ArrayBuffer, byteOffset?: number);
b(): boolean;
n(): number;
s(): string;
offset: number;
dataView: DataView;
}
export import saveLightInfo = rendering.saveLightInfo;
export import loadLightInfo = rendering.loadLightInfo;
export import saveResolvePair = rendering.saveResolvePair;
export import loadResolvePair = rendering.loadResolvePair;
export import saveCopyPair = rendering.saveCopyPair;
export import loadCopyPair = rendering.loadCopyPair;
export import saveMovePair = rendering.saveMovePair;
export import loadMovePair = rendering.loadMovePair;
export import savePipelineStatistics = rendering.savePipelineStatistics;
export import loadPipelineStatistics = rendering.loadPipelineStatistics;
export import UpdateFrequency = rendering.UpdateFrequency;
export import ParameterType = rendering.ParameterType;
export import ResourceResidency = rendering.ResourceResidency;
export import QueueHint = rendering.QueueHint;
export import ResourceDimension = rendering.ResourceDimension;
export import ResourceFlags = rendering.ResourceFlags;
export import TaskType = rendering.TaskType;
export import SceneFlags = rendering.SceneFlags;
export import LightingMode = rendering.LightingMode;
export import AttachmentType = rendering.AttachmentType;
export import AccessType = rendering.AccessType;
export import ClearValueType = rendering.ClearValueType;
export import LightInfo = rendering.LightInfo;
export import ResolveFlags = rendering.ResolveFlags;
export import ResolvePair = rendering.ResolvePair;
export import CopyPair = rendering.CopyPair;
export import UploadPair = rendering.UploadPair;
export import MovePair = rendering.MovePair;
export import PipelineStatistics = rendering.PipelineStatistics;
export import RenderCommonObjectPool = rendering.RenderCommonObjectPool;
export import OutputArchive = rendering.OutputArchive;
export import InputArchive = rendering.InputArchive;
import { rendering, gfx, EffectAsset } from "cc";
export {};
}
declare module "cc/editor/embedded-player" {
export const embeddedPlayerCountTag: unique symbol;
export const getEmbeddedPlayersTag: unique symbol;
export const addEmbeddedPlayerTag: unique symbol;
export const removeEmbeddedPlayerTag: unique symbol;
export const clearEmbeddedPlayersTag: unique symbol;
export class EmbeddedPlayer extends ___private._cocos_core_data_editor_extendable__EditorExtendable {
/**
* @en
* Begin time, in seconds.
* @zh
*
*/
begin: number;
/**
* @en
* End time, in seconds.
* @zh
*
*/
end: number;
/**
* @en
* Whether the speed of this embedded player should be reconciled with the host animation clip.
* @zh
* 宿
*/
reconciledSpeed: boolean;
/**
* @en
* Player of the embedded player.
* @zh
*
*/
playable: EmbeddedPlayable | null;
}
export abstract class EmbeddedPlayable {
/**
* @en
* Instantiates this sub region.
* @zh
*
* @param root The root node of animation context.
* @internal
*/
abstract instantiate(root: Node): ___private._cocos_animation_embedded_player_embedded_player__EmbeddedPlayableState | null;
}
/**
* @en
* The embedded particle system playable. The players play particle system on a embedded player.
* @zh
*
*/
export class EmbeddedParticleSystemPlayable extends EmbeddedPlayable {
/**
* @en
* Path to the node where particle system inhabits, relative from animation context root.
* @zh
*
*/
path: string;
instantiate(root: Node): ___private._cocos_animation_embedded_player_embedded_particle_system_player__EmbeddedParticleSystemPlayableState | null;
}
/**
* @en
* The embedded animation clip playable. The playable play animation clip on a embedded player.
* @zh
*
*/
export class EmbeddedAnimationClipPlayable extends EmbeddedPlayable {
/**
* @en
* Path to the node onto which the animation clip would be played, relative from animation context root.
* @zh
*
*/
path: string;
/**
* @en
* The animation clip to play.
* @zh
*
*/
clip: AnimationClip | null;
instantiate(root: Node): ___private._cocos_animation_embedded_player_embedded_animation_clip_player__EmbeddedAnimationClipPlayableState | null;
}
import { __private as ___private, Node, AnimationClip } from "cc";
export {};
}
declare module "cc/editor/exotic-animation" {
export const exoticAnimationTag: unique symbol;
/**
* Animation that:
* - does not exposed by users;
* - does not compatible with regular animation;
* - non-editable;
* - currently only generated imported from model file.
*/
export class ExoticAnimation {
createEvaluator(binder: ___private._cocos_animation_tracks_track__Binder): ___private._cocos_animation_exotic_animation_exotic_animation__ExoticTrsAnimationEvaluator;
createEvaluatorForAnimationGraph(context: ____private._cocos_animation_marionette_animation_graph_animation_clip_binding__AnimationClipGraphBindingContext): ___private._cocos_animation_exotic_animation_exotic_animation__ExoticTrsAGEvaluation;
addNodeAnimation(path: string): ___private._cocos_animation_exotic_animation_exotic_animation__ExoticNodeAnimation;
collectAnimatedJoints(): string[];
split(from: number, to: number): ExoticAnimation;
/**
* @internal
*/
toHashString(): string;
}
/**
* @en
* A real array track animates a real array attribute of target(such as morph weights of mesh renderer).
* Every element in the array is corresponding to a real channel.
* @zh
*
*
*/
export class RealArrayTrack extends animation.Track {
/**
* @en The number of elements in the array which this track produces.
* If you increased the count, there will be new empty real channels appended.
* Otherwise if you decreased the count, the last specified number channels would be removed.
* @zh
*
*/
get elementCount(): number;
set elementCount(value: number);
/**
* @en The channels of the track.
* @zh
*/
channels(): ___private._cocos_animation_tracks_track__RealChannel[];
/**
* @internal
*/
[___private._cocos_animation_define__createEvalSymbol](): ___private._cocos_animation_tracks_array_track__RealArrayTrackEval;
}
/**
* Tag to access the additive settings associated on animation clip.
*/
export const additiveSettingsTag: unique symbol;
export class AnimationClipAdditiveSettings {
enabled: boolean;
refClip: AnimationClip | null;
}
import { AnimationMask, __private as ____private } from "cc/editor/new-gen-anim";
import { __private as ___private, Node, animation, AnimationClip } from "cc";
export {};
}
declare module "cc/editor/lod-group-utils" {
export class LODGroupEditorUtility {
/**
* @en Get the lod level used under the current camera, -1 indicates no lod is used.
* @zh 使LOD-1 lod被使用
* @param lodGroup current LOD Group component.
* @param camera current perspective camera.
* @returns visible LOD index in lodGroup.
*/
static getVisibleLOD(lodGroup: LODGroup, camera: renderer.scene.Camera): number;
/**
* @en Get the percentage of objects used on the screen under the current camera.
* @zh
* @param lodGroup current LOD Group component
* @param camera current perspective camera
* @returns height of current lod group relative to camera position in screen space, aka. relativeHeight
*/
static getRelativeHeight(lodGroup: LODGroup, camera: renderer.scene.Camera): number | null;
}
import { LODGroup, renderer } from "cc";
export {};
}
declare module "cc/editor/macro" {
export { macro, Macro } from "cc";
export {};
}
declare module "cc/editor/material" {
export class RasterizerStateEditor extends gfx.RasterizerState {
isDiscard: boolean;
polygonMode: gfx.PolygonMode;
shadeModel: gfx.ShadeModel;
cullMode: gfx.CullMode;
isFrontFaceCCW: boolean;
depthBias: number;
depthBiasClamp: number;
depthBiasSlop: number;
isDepthClip: boolean;
isMultisample: boolean;
lineWidth: number;
}
export class DepthStencilStateEditor extends gfx.DepthStencilState {
depthTest: boolean;
depthWrite: boolean;
depthFunc: gfx.ComparisonFunc;
stencilTestFront: boolean;
stencilFuncFront: gfx.ComparisonFunc;
stencilReadMaskFront: number;
stencilWriteMaskFront: number;
stencilFailOpFront: gfx.StencilOp;
stencilZFailOpFront: gfx.StencilOp;
stencilPassOpFront: gfx.StencilOp;
stencilRefFront: number;
stencilTestBack: boolean;
stencilFuncBack: gfx.ComparisonFunc;
stencilReadMaskBack: number;
stencilWriteMaskBack: number;
stencilFailOpBack: gfx.StencilOp;
stencilZFailOpBack: gfx.StencilOp;
stencilPassOpBack: gfx.StencilOp;
stencilRefBack: number;
}
export class BlendTargetEditor extends gfx.BlendTarget {
blend: boolean;
blendSrc: gfx.BlendFactor;
blendDst: gfx.BlendFactor;
blendEq: gfx.BlendOp;
blendSrcAlpha: gfx.BlendFactor;
blendDstAlpha: gfx.BlendFactor;
blendAlphaEq: gfx.BlendOp;
blendColorMask: gfx.ColorMask;
}
export class BlendStateEditor {
isA2C: boolean;
isIndepend: boolean;
blendColor: math.Color;
targets: BlendTargetEditor[];
init(blendState: any): void;
}
export class PassStatesEditor implements EffectAsset.IPassStates {
priority: number;
primitive: gfx.PrimitiveMode;
stage: pipeline.RenderPassStage;
rasterizerState: RasterizerStateEditor;
depthStencilState: DepthStencilStateEditor;
blendState: any;
dynamics: never[];
customizations: never[];
phase: string;
}
import { gfx, math, pipeline, EffectAsset } from "cc";
export {};
}
declare module "cc/editor/new-gen-anim" {
export function blend1D(weights: number[], thresholds: readonly number[], value: number): void;
/**
* Blends given samples using simple directional algorithm.
* @param weights Result weights of each sample.
* @param samples Every samples' parameter.
* @param input Input parameter.
*/
export const blendSimpleDirectional: (weights: number[], samples: readonly math.Vec2[], input: Readonly<math.Vec2>) => void;
/**
* Validates the samples if they satisfied the requirements of simple directional algorithm.
* @param samples Samples to validate.
* @returns Issues the samples containing.
*/
export function validateSimpleDirectionalSamples(samples: ReadonlyArray<math.Vec2>): SimpleDirectionalSampleIssue[];
/**
* Simple directional issue representing some samples have same(or very similar) direction.
*/
export class SimpleDirectionalIssueSameDirection {
samples: readonly number[];
constructor(samples: readonly number[]);
}
export type SimpleDirectionalSampleIssue = SimpleDirectionalIssueSameDirection;
export function viewVariableBindings(animationGraph: AnimationGraph): Generator<VariableBindingView>;
export interface VariableBindingView {
/**
* The current bounded variable name.
*/
readonly name: string;
/**
* The acceptable types of this binding.
*/
readonly acceptableTypes: animation.VariableType[];
/**
* Rebinds this binding to new variable.
* @param _newVariableName
*/
rebind(_newVariableName: string): void;
/**
* Unbinds the variable.
*/
unbind(): void;
}
export class MotionPreviewer extends ___private._editor_src_marionette_preview__AnimationGraphPartialPreviewer {
get timelineStats(): Readonly<MotionPreviewerTimelineStats>;
/**
* Gets an iterable to the weights of each motion(that has runtime ID).
*/
queryWeights(): Iterable<[
__private._cocos_animation_marionette_graph_debug__RuntimeID,
number
]>;
setMotion(motion: Motion): void;
setTime(time: number): void;
updateVariable(id: string, value: animation.Value_experimental): void;
protected doEvaluate(context: __private._cocos_animation_marionette_animation_graph_context__AnimationGraphEvaluationContext): ___private._cocos_animation_core_pose__Pose;
}
export class TransitionPreviewer extends ___private._editor_src_marionette_preview__AnimationGraphPartialPreviewer {
constructor(root: Node);
destroy(): void;
get timelineStats(): Readonly<TransitionPreviewerTimelineStats>;
setSourceMotion(motion: Motion): void;
setTargetMotion(motion: Motion): void;
setTransitionDuration(value: number): void;
setRelativeTransitionDuration(value: boolean): void;
calculateTransitionDurationFromTimelineLength(value: number): number;
setExitTimes(value: number): void;
setExitTimeEnabled(value: boolean): void;
setDestinationStart(value: number): void;
setRelativeDestinationStart(value: boolean): void;
calculateExitTimesFromTimelineLength(value: number): number;
updateVariable(id: string, value: animation.Value_experimental): void;
/**
*
* @param time Player time, in seconds.
*/
setTime(time: number): void;
protected doEvaluate(context: __private._cocos_animation_marionette_animation_graph_context__AnimationGraphEvaluationContext): ___private._cocos_animation_core_pose__Pose;
}
export interface MotionPreviewerTimelineStats {
timeLineLength: number;
}
export interface TransitionPreviewerTimelineStats {
timeLineLength: number;
sourceMotionStart: number;
sourceMotionRepeatCount: number;
sourceMotionDuration: number;
targetMotionStart: number;
targetMotionRepeatCount: number;
targetMotionDuration: number;
exitTimesStart: number;
exitTimesLength: number;
transitionDurationStart: number;
transitionDurationLength: number;
}
/**
* Clones a state into same state machine.
* @param stateMachine The state machine within which the motion state locates.
* @param state The state.
* @param includeTransitions If true, transitions are also cloned.
* @returns The newly created state.
*
* For each editor extras object attached on animation-graph-specific objects,
* if the editor extras object has a method called `clone`,
* that method would be called to perform a clone operation on that editor extras object.
* The return value would be used as the clone result.
* The method `clone` has the signature: `(host: EditorExtendableObject) => unknown`.
* Otherwise, if no `clone` method provide, the new editor extras would be set to undefined.
*/
export function cloneState<TState extends MotionState | EmptyState | SubStateMachine | ProceduralPoseState>(stateMachine: StateMachine, state: TState, includeTransitions: boolean): TState;
/**
* Clones a state into maybe another state machine.
* @param stateMachine The state machine within which the motion state locates.
* @param state The state.
* @param targetStateMachine Target state machine
* @returns The newly created state.
*
* For each editor extras object attached on animation-graph-specific objects,
* if the editor extras object has a method called `clone`,
* that method would be called to perform a clone operation on that editor extras object.
* The return value would be used as the clone result.
* The method `clone` has the signature: `(host: EditorExtendableObject) => unknown`.
* Otherwise, if no `clone` method provide, the new editor extras would be set to undefined.
*/
export function cloneState(stateMachine: StateMachine, state: MotionState | EmptyState | SubStateMachine | ProceduralPoseState, targetStateMachine: StateMachine): SubStateMachine;
/**
* Turns a motion state into a new sub state machine.
* @param stateMachine The state machine within which the motion state locates.
* @param state The motion state.
* @returns The newly created sub state machine.
*/
export function turnMotionStateIntoSubStateMachine(stateMachine: StateMachine, state: MotionState): SubStateMachine;
export function visitAnimationClips(animationGraph: AnimationGraph): Generator<AnimationClip>;
export function visitAnimationClipsInController(animationController: animation.AnimationController): Generator<AnimationClip>;
export function visitAnimationGraphEditorExtras(animationGraph: AnimationGraph): Generator<___private._cocos_core_data_editor_extras_tag__EditorExtendableObject>;
export function getVariableValueAttributes(variableDescription: VariableDescription): unknown;
export class InvalidTransitionError extends Error {
constructor(type: "to-entry" | "to-any" | "from-exit");
}
export class VariableNotDefinedError extends Error {
constructor(name: string);
}
export class AnimationGraph extends __private._cocos_animation_marionette_animation_graph_like__AnimationGraphLike implements animation.AnimationGraphRunTime {
readonly __brand: "AnimationGraph";
constructor();
onLoaded(): void;
get layers(): readonly Layer[];
get variables(): Iterable<[
string,
VariableDescription
]>;
/**
* Adds a layer.
* @returns The new layer.
*/
addLayer(): Layer;
/**
* Removes a layer.
* @param index Index to the layer to remove.
*/
removeLayer(index: number): void;
/**
* Adjusts the layer's order.
* @param index
* @param newIndex
*/
moveLayer(index: number, newIndex: number): void;
/**
* Adds a variable into this graph.
* @param name The variable's name.
* @param type The variable's type.
* @param initialValue Initial value.
*/
addVariable<TVariableType extends animation.VariableType>(name: string, type: TVariableType, initialValue?: __private._cocos_animation_marionette_variable_basic__VariableTypeValueTypeMap[TVariableType]): VariableDescription;
removeVariable(name: string): void;
getVariable(name: string): VariableDescription | undefined;
/**
* @zh
*
*
* @en Renames an variable. Note, this won't changes any reference to the variable.
* If the original name of the variable doesn't exists or
* the new name has already existed, this method won't do anything.
* The variable's order in the graph is also retained.
* @param name @zh @en The name of the variable to be renamed.
* @param newName @zh @en New name.
*/
renameVariable(name: string, newName: string): void;
}
export function isAnimationTransition(transition: Transition): transition is AnimationTransition;
export class StateMachine extends ___private._cocos_core_data_editor_extendable__EditorExtendable {
/**
* @internal
*/
_allowEmptyStates: boolean;
/**
* // TODO: HACK
* @internal
*/
__callOnAfterDeserializeRecursive(): void;
constructor(allowEmptyStates?: boolean);
[___private._cocos_serialization_deserialize_symbols__onAfterDeserializedTag](): void;
get allowEmptyStates(): boolean;
/**
* The entry state.
*/
get entryState(): State;
/**
* The exit state.
*/
get exitState(): State;
/**
* The any state.
*/
get anyState(): State;
/**
* Gets an iterator to all states within this graph.
* @returns The iterator.
*/
states(): Iterable<State>;
/**
* Gets an iterator to all transitions within this graph.
* @returns The iterator.
*/
transitions(): Iterable<__private._cocos_animation_marionette_animation_graph__Transition>;
/**
* Gets the transitions between specified states.
* @param from Transition source.
* @param to Transition target.
* @returns Iterator to the transitions
*/
getTransitionsBetween(from: State, to: State): Iterable<__private._cocos_animation_marionette_animation_graph__Transition>;
/**
* @en
* Gets all transitions outgoing from specified state.
* @zh
*
* @param from @en The state. @zh
* @returns @en Iterable to result transitions, in priority order. @zh
*/
getOutgoings(from: State): Iterable<__private._cocos_animation_marionette_animation_graph__Transition>;
/**
* Gets all incoming transitions of specified state.
* @param to The state.
* @returns Result transitions.
*/
getIncomings(to: State): Iterable<__private._cocos_animation_marionette_animation_graph__Transition>;
/**
* Adds a motion state into this state machine.
* @returns The newly created motion.
*/
addMotion(): MotionState;
/**
* Adds a sub state machine into this state machine.
* @returns The newly created state machine.
*/
addSubStateMachine(): SubStateMachine;
/**
* Adds an empty state into this state machine.
* @returns The newly created empty state.
*/
addEmpty(): EmptyState;
/**
* @zh 姿
* @en Adds an pose state into this state machine.
* @returns @zh 姿 @en The newly created pose state.
*/
addProceduralPoseState(): __private._cocos_animation_marionette_animation_graph__ProceduralPoseState;
/**
* Removes specified state from this state machine.
* @param state The state to remove.
*/
remove(state: State): void;
/**
* Connect two states.
* @param from Source state.
* @param to Target state.
* @param condition The transition condition.
*/
connect(from: MotionState, to: State, conditions?: Condition[]): AnimationTransition;
/**
* Connect two states.
* @param from Source state.
* @param to Target state.
* @param condition The transition condition.
*/
connect(from: EmptyState, to: State, conditions?: Condition[]): EmptyStateTransition;
/**
* Connect two states.
* @param from Source state.
* @param to Target state.
* @param condition The transition condition.
*/
connect(from: __private._cocos_animation_marionette_animation_graph__ProceduralPoseState, to: State, conditions?: Condition[]): __private._cocos_animation_marionette_animation_graph__ProceduralPoseTransition;
/**
* Connect two states.
* @param from Source state.
* @param to Target state.
* @param condition The transition condition.
* @throws `InvalidTransitionError` if:
* - the target state is entry or any, or
* - the source state is exit.
*/
connect(from: State, to: State, conditions?: Condition[]): Transition;
disconnect(from: State, to: State): void;
removeTransition(removal: __private._cocos_animation_marionette_animation_graph__Transition): void;
eraseOutgoings(from: State): void;
eraseIncomings(to: State): void;
eraseTransitionsIncludes(state: State): void;
/**
* @en
* Adjusts the priority of a transition.
*
* To demonstrate, one can imagine a transition array sorted by their priority.
* - If `diff` is zero, nothing's gonna happen.
* - Negative `diff` raises the priority:
* `diff` number of transitions originally having higher priority than `adjusting`
* will then have lower priority than `adjusting`.
* - Positive `diff` reduce the priority:
* `|diff|` number of transitions originally having lower priority than `adjusting`
* will then have higher priority than `adjusting`.
*
* If the number of transitions indicated by `diff`
* is more than the actual one, the actual number would be taken.
* @zh
*
*
*
* - `diff` 0
* - `diff` `adjusting` `diff` `adjusting`
* - `diff` `adjusting` `|diff|` `adjusting`
*
* `diff` 使
*
* @param adjusting @en The transition to adjust the priority. @zh
* @param diff @en Indicates how to adjust the priority. @zh
*/
adjustTransitionPriority(adjusting: __private._cocos_animation_marionette_animation_graph__Transition, diff: number): void;
copyTo(that: StateMachine): void;
clone(): StateMachine;
}
export class SubStateMachine extends __private._cocos_animation_marionette_state_machine_state__InteractiveState {
constructor(allowEmptyStates?: boolean);
get stateMachine(): StateMachine;
copyTo(that: SubStateMachine): void;
}
export class EmptyStateTransition extends __private._cocos_animation_marionette_animation_graph__DurationalTransition {
/**
* The transition duration, in seconds.
*/
duration: number;
copyTo(that: EmptyStateTransition): void;
}
export class EmptyState extends State {
__brand: "EmptyState";
}
export type ProceduralPoseState = __private._cocos_animation_marionette_animation_graph__ProceduralPoseState;
export const ProceduralPoseState: typeof __private._cocos_animation_marionette_animation_graph__ProceduralPoseState;
export type ProceduralPoseTransition = __private._cocos_animation_marionette_animation_graph__ProceduralPoseTransition;
export const ProceduralPoseTransition: typeof __private._cocos_animation_marionette_animation_graph__ProceduralPoseTransition;
export type Transition = Omit<__private._cocos_animation_marionette_animation_graph__Transition, "from" | "to"> & {
readonly from: __private._cocos_animation_marionette_animation_graph__Transition["from"];
readonly to: __private._cocos_animation_marionette_animation_graph__Transition["to"];
};
export type AnimationTransition = Omit<__private._cocos_animation_marionette_animation_graph__AnimationTransition, "from" | "to"> & {
readonly from: __private._cocos_animation_marionette_animation_graph__AnimationTransition["from"];
readonly to: __private._cocos_animation_marionette_animation_graph__AnimationTransition["to"];
};
export class Layer implements __private._cocos_animation_marionette_ownership__OwnedBy<AnimationGraph> {
[__private._cocos_animation_marionette_ownership__ownerSymbol]: AnimationGraph | undefined;
name: string;
weight: number;
mask: AnimationMask | null;
additive: boolean;
/**
* // TODO: HACK
* @internal
*/
__callOnAfterDeserializeRecursive(): void;
stashes(): Iterable<Readonly<[
string,
__private._cocos_animation_marionette_animation_graph__PoseGraphStash
]>>;
getStash(id: string): __private._cocos_animation_marionette_animation_graph__PoseGraphStash | undefined;
addStash(id: string): __private._cocos_animation_marionette_animation_graph__PoseGraphStash;
removeStash(id: string): void;
renameStash(id: string, newId: string): void;
/**
* @marked_as_engine_private
*/
constructor();
get stateMachine(): StateMachine;
}
export class State extends ___private._cocos_core_data_editor_extendable__EditorExtendable implements __private._cocos_animation_marionette_ownership__OwnedBy<Layer | StateMachine> {
[__private._cocos_animation_marionette_ownership__ownerSymbol]: StateMachine | undefined;
name: string;
[__private._cocos_animation_marionette_state_machine_state__outgoingsSymbol]: __private._cocos_animation_marionette_animation_graph__TransitionInternal[];
[__private._cocos_animation_marionette_state_machine_state__incomingsSymbol]: __private._cocos_animation_marionette_animation_graph__TransitionInternal[];
constructor();
copyTo(that: State): void;
}
/**
* @zh
* @en Describes a binary condition, there are two operands with numeric type.
*/
export class BinaryCondition implements Condition {
static readonly Operator: typeof __private._cocos_animation_marionette_state_machine_condition_binary_condition__BinaryOperator;
/**
* @zh
*
* @en
* Operator.
*/
operator: __private._cocos_animation_marionette_state_machine_condition_binary_condition__BinaryOperator;
/**
* @zh
*
* @en
* Left operand value.
*/
lhs: number;
/**
* @zh
*
* @en
* Left operand binding.
*/
lhsBinding: __private._cocos_animation_marionette_state_machine_condition_binary_condition__LhsBinding;
/**
* @zh
*
* @en
* Right operand value.
*/
rhs: number;
clone(): BinaryCondition;
[__private._cocos_animation_marionette_create_eval__createEval](context: __private._cocos_animation_marionette_state_machine_condition_condition_base__ConditionBindingContext): __private._cocos_animation_marionette_state_machine_condition_binary_condition__BinaryConditionEval;
}
export namespace BinaryCondition {
export type Operator = __private._cocos_animation_marionette_state_machine_condition_binary_condition__BinaryOperator;
}
export class UnaryCondition implements Condition {
static readonly Operator: typeof __private._cocos_animation_marionette_state_machine_condition_unary_condition__UnaryOperator;
operator: __private._cocos_animation_marionette_state_machine_condition_unary_condition__UnaryOperator;
operand: BindableBoolean;
clone(): UnaryCondition;
[__private._cocos_animation_marionette_create_eval__createEval](context: __private._cocos_animation_marionette_state_machine_condition_condition_base__ConditionBindingContext): __private._cocos_animation_marionette_state_machine_condition_unary_condition__UnaryConditionEval;
}
export namespace UnaryCondition {
export type Operator = __private._cocos_animation_marionette_state_machine_condition_unary_condition__UnaryOperator;
}
export class TriggerCondition implements Condition {
trigger: string;
clone(): TriggerCondition;
[__private._cocos_animation_marionette_create_eval__createEval](context: __private._cocos_animation_marionette_state_machine_condition_condition_base__ConditionBindingContext): __private._cocos_animation_marionette_state_machine_condition_condition_base__ConditionEval;
}
export interface Condition {
clone(): Condition;
[__private._cocos_animation_marionette_create_eval__createEval](context: __private._cocos_animation_marionette_animation_graph_context__AnimationGraphBindingContext): __private._cocos_animation_marionette_state_machine_condition_condition_base__ConditionEval;
}
/**
* @zh
* TC Transition Condition
*
* @en Describes a value binding in transition condition,
* for example, the binding on binary condition's left hand operand.
* The prefix "TC" is abbr of `Transition Condition`.
*/
export abstract class TCBinding<TValueType extends TCBindingValueType> {
/**
* @zh
*
* @en
* Gets the binding value type.
*/
abstract getValueType(): TValueType;
abstract bind(context: __private._cocos_animation_marionette_state_machine_condition_condition_base__ConditionBindingContext): __private._cocos_animation_marionette_state_machine_condition_binding_binding__TCBindingEvaluation<TValueType> | undefined;
}
/**
* @zh
*
* @en
* Describes the type of value providing by a transition condition binding.
*/
export enum TCBindingValueType {
FLOAT = 0,
INTEGER = 3
}
/**
* @zh
* @zh Gets the type info of specified (transition condition)binding class.
* @param constructor @zh @en The binding class's constructor.
* @returns @zh @en Type info.
*/
export function getTCBindingTypeInfo(constructor: ___private.__types_globals__Constructor<TCBinding<number>>): Readonly<TCBindingTypeInfo> | undefined;
export enum TCBindingTransitionSourceFilter {
/** Motion states. */
MOTION = 1,
/** Pose states. */
POSE = 2,
/** Empty states. */
EMPTY = 4,
/** All states having weight concept. */
WEIGHTED = 7
}
/**
* @zh
*
* @en
* Describes the type info of a (transition condition)binding class.
*/
export interface TCBindingTypeInfo {
/**
* @zh
*
* @en
* The creation menu info of this binding class.
*/
menu?: string;
/**
* @zh
*
* @en
* All value types that this binding can provides.
*/
provisions?: readonly TCBindingValueType[];
/**
* @zh
*
* @en
* If defined, represents the type(s) of the transition source state supported by this type of binding.
*/
transitionSourceFilter?: TCBindingTransitionSourceFilter;
}
export type VariableDescription = __private._cocos_animation_marionette_variable_primitive_variable__PlainVariable | __private._cocos_animation_marionette_variable_vec3_variable__Vec3Variable | __private._cocos_animation_marionette_variable_quat_variable__QuatVariable | __private._cocos_animation_marionette_variable_trigger_variable__TriggerVariable;
/**
* @en The reset mode of boolean variables. It indicates when to reset the variable as `false`.
* @zh `false`
*/
export enum TriggerResetMode {
/**
* @en The variable is reset when it's consumed by animation transition.
* @zh
*/
AFTER_CONSUMED = 0,
/**
* @en The variable is reset in next frame or when it's consumed by animation transition.
* @zh
*/
NEXT_FRAME_OR_AFTER_CONSUMED = 1
}
export class MotionState extends __private._cocos_animation_marionette_state_machine_state__InteractiveState {
motion: Motion | null;
speed: number;
/**
* Should be float.
*/
speedMultiplier: string;
speedMultiplierEnabled: boolean;
/**
* @zh
* @en State entered event binding. The event bound here will be triggered
* when the state machine starts to transition into this state.
*/
transitionInEventBinding: __private._cocos_animation_marionette_event_event_binding__AnimationGraphEventBinding;
/**
* @zh
* @en State left event binding. The event bound here will be triggered
* when the state machine starts to transition out from this state.
*/
transitionOutEventBinding: __private._cocos_animation_marionette_event_event_binding__AnimationGraphEventBinding;
/**
* // TODO: HACK
* @internal
*/
__callOnAfterDeserializeRecursive(): void;
copyTo(that: MotionState): MotionState;
}
export class BindableNumber implements __private._cocos_animation_marionette_parametric__Bindable<number> {
variable: string;
value: number;
constructor(value?: number);
clone(): __private._cocos_animation_marionette_parametric__Bindable<number>;
}
export class BindableBoolean implements __private._cocos_animation_marionette_parametric__Bindable<boolean> {
variable: string;
value: boolean;
constructor(value?: boolean);
clone(): __private._cocos_animation_marionette_parametric__Bindable<boolean>;
}
export class AnimationMask extends Asset {
get joints(): Iterable<__private._cocos_animation_marionette_animation_mask__JointMaskInfo>;
set joints(value: Iterable<__private._cocos_animation_marionette_animation_mask__JointMaskInfo>);
/**
* @zh
*
* @en Add a joint mask item.
* Already existing joint mask with same path item will be replaced.
* @param path @zh @en The joint's path.
* @param enabled @zh @en Whether to enable the joint.
*/
addJoint(path: string, enabled: boolean): void;
removeJoint(removal: string): void;
clear(): void;
filterDisabledNodes(root: Node): Set<Node>;
isExcluded(path: string): boolean;
}
export namespace AnimationMask {
export type JointMaskInfo = __private._cocos_animation_marionette_animation_mask__JointMaskInfo_;
}
export class AnimationGraphVariant extends __private._cocos_animation_marionette_animation_graph_like__AnimationGraphLike implements animation.AnimationGraphVariantRunTime {
__brand: "AnimationGraphVariant";
get original(): AnimationGraph | null;
set original(value: AnimationGraph | null);
get clipOverrides(): __private._cocos_animation_marionette_animation_graph_variant__ClipOverrideMap;
}
/**
* @zh
* 姿
* @en
* Pose graph.
*/
export class PoseGraph extends ___private._cocos_core_data_editor_extendable__EditorExtendable {
constructor();
/**
* @zh 姿
* @en The pose graph's output node.
*/
get outputNode(): __private._cocos_animation_marionette_pose_graph_graph_output_node__PoseGraphOutputNode;
/**
* // TODO: HACK
* @internal
*/
__callOnAfterDeserializeRecursive(): void;
/**
* @zh
* @en Gets all nodes.
* @returns @zh @en The iterator to iterate all nodes.
*/
nodes(): IterableIterator<poseGraphOp.Node>;
/**
* @zh
* @en Adds a node into graph.
* @param node @zh @en Node to add.
* @returns `node`
*
* @note
* @zh
* @en Note, the node to add should be "freestanding",
* means it should not been already in any graph. Otherwise, an exception would be thrown.
*/
addNode<TNode extends poseGraphOp.Node>(node: TNode): TNode;
/**
* @zh
* @en Removes specified node from the graph.
* @param removal @zh @en The node to remove.
*
* @note
* @zh
* @en If the removal node is not within graph or is the output node of graph,
* this method takes no effect.
*/
removeNode(removal: poseGraphOp.Node): void;
/**
* @zh
* 姿
* @en
* Gets the specified node's shell in pose graph.
* @internal
*/
getShell(node: poseGraphOp.Node): __private._cocos_animation_marionette_pose_graph_foundation_node_shell__PoseGraphNodeShell | undefined;
}
export type EnterNodeInfo = {
type: "animation-blend";
target: AnimationBlend;
} | {
type: "state-machine";
target: StateMachine;
} | {
type: "stash";
stashName: string;
};
export abstract class Motion extends ___private._cocos_core_data_editor_extendable__EditorExtendable {
abstract [__private._cocos_animation_marionette_create_eval__createEval](context: __private._cocos_animation_marionette_animation_graph_context__AnimationGraphBindingContext, ignoreEmbeddedPlayers: boolean): MotionEval | null;
abstract clone(): Motion;
/**
* // TODO: HACK
* @internal
*/
__callOnAfterDeserializeRecursive(): void;
}
export interface MotionEval {
/**
* The runtime ID. Maybe invalid.
*/
readonly runtimeId?: __private._cocos_animation_marionette_graph_debug__RuntimeID;
/**
* The duration of this motion. If it's a clip motion.
* It should be $duration_{clip} / speed_{clip}$.
*/
readonly duration: number;
getClipStatuses(baseWeight: number): Iterator<animation.ClipStatus>;
overrideClips(context: __private._cocos_animation_marionette_animation_graph_context__AnimationGraphBindingContext): void;
createPort(): MotionPort;
}
export interface MotionPort {
evaluate(progress: number, context: __private._cocos_animation_marionette_animation_graph_context__AnimationGraphEvaluationContext): ___private._cocos_animation_core_pose__Pose;
reenter(): void;
}
export class ClipMotion extends Motion {
clip: AnimationClip | null;
[__private._cocos_animation_marionette_create_eval__createEval](context: __private._cocos_animation_marionette_animation_graph_context__AnimationGraphBindingContext, ignoreEmbeddedPlayers: boolean): __private._cocos_animation_marionette_motion_clip_motion__ClipMotionEval | null;
clone(): ClipMotion;
}
export abstract class AnimationBlend extends Motion {
name: string;
copyTo(that: AnimationBlend): void;
}
export class AnimationBlend1D extends AnimationBlend {
static Item: typeof __private._cocos_animation_marionette_motion_animation_blend_1d__AnimationBlend1DItem;
param: BindableNumber;
get items(): Iterable<__private._cocos_animation_marionette_motion_animation_blend_1d__AnimationBlend1DItem>;
set items(value: Iterable<__private._cocos_animation_marionette_motion_animation_blend_1d__AnimationBlend1DItem>);
clone(): AnimationBlend1D;
[__private._cocos_animation_marionette_create_eval__createEval](context: __private._cocos_animation_marionette_animation_graph_context__AnimationGraphBindingContext, ignoreEmbeddedPlayers: boolean): any;
}
export namespace AnimationBlend1D {
export type Item = __private._cocos_animation_marionette_motion_animation_blend_1d__AnimationBlend1DItem;
}
export class AnimationBlend2D extends AnimationBlend {
static Algorithm: typeof __private._cocos_animation_marionette_motion_animation_blend_2d__Algorithm;
static Item: typeof __private._cocos_animation_marionette_motion_animation_blend_2d__AnimationBlend2DItem;
get algorithm(): __private._cocos_animation_marionette_motion_animation_blend_2d__Algorithm;
set algorithm(value: __private._cocos_animation_marionette_motion_animation_blend_2d__Algorithm);
paramX: BindableNumber;
paramY: BindableNumber;
get items(): Iterable<__private._cocos_animation_marionette_motion_animation_blend_2d__AnimationBlend2DItem>;
set items(items: Iterable<__private._cocos_animation_marionette_motion_animation_blend_2d__AnimationBlend2DItem>);
/**
* // TODO: HACK
* @internal
*/
__callOnAfterDeserializeRecursive(): void;
clone(): AnimationBlend2D;
[__private._cocos_animation_marionette_create_eval__createEval](context: __private._cocos_animation_marionette_animation_graph_context__AnimationGraphBindingContext, ignoreEmbeddedPlayers: boolean): __private._cocos_animation_marionette_motion_animation_blend__AnimationBlendEval;
}
export namespace AnimationBlend2D {
export type Algorithm = typeof __private._cocos_animation_marionette_motion_animation_blend_2d__Algorithm;
export type Item = __private._cocos_animation_marionette_motion_animation_blend_2d__AnimationBlend2DItem;
}
export class AnimationBlendDirect extends AnimationBlend {
static Item: typeof __private._cocos_animation_marionette_motion_animation_blend_direct__AnimationBlendDirectItem;
get items(): __private._cocos_animation_marionette_motion_animation_blend_direct__AnimationBlendDirectItem[];
set items(value: __private._cocos_animation_marionette_motion_animation_blend_direct__AnimationBlendDirectItem[]);
clone(): AnimationBlendDirect;
[__private._cocos_animation_marionette_create_eval__createEval](context: __private._cocos_animation_marionette_animation_graph_context__AnimationGraphBindingContext, ignoreEmbeddedPlayers: boolean): __private._cocos_animation_marionette_motion_animation_blend_direct__AnimationBlendDirectEval;
}
export namespace AnimationBlendDirect {
export type Item = __private._cocos_animation_marionette_motion_animation_blend_direct__AnimationBlendDirectItem;
}
export namespace poseGraphOp {
export function getInputKeys(node: Node): readonly import("../foundation/node-shell").NodeInputPath[];
export function isValidInputKey(node: Node, key: InputKey): boolean;
export function getInputMetadata(node: Node, key: InputKey): Readonly<InputMetadata> | undefined;
export function getInputConstantValue(node: Node, key: InputKey): unknown;
export function getInputBinding(graph: PoseGraph, node: Node, key: InputKey): Readonly<{
producer: Node;
outputIndex: number;
}> | undefined;
export function getInputInsertInfos(node: Node): Readonly<Record<string, {
displayName: string;
}>>;
export function insertInput(graph: PoseGraph, node: Node, insertId: InputInsertId): void;
export function deleteInput(graph: PoseGraph, node: Node, key: InputKey): void;
export function getOutputType(node: Node, outputId: OutputKey): PoseGraphType;
export function connectNode(graph: PoseGraph, node: Node, key: InputKey, producer: Node, outputKey?: OutputKey): void;
export function disconnectNode(graph: PoseGraph, node: Node, key: InputKey): void;
export function connectOutputNode(graph: PoseGraph, producer: __private._cocos_animation_marionette_pose_graph_pose_node__PoseNode): void;
export function hasInputBinding(graph: PoseGraph, node: Node, key: InputKey, producerNode: Node, producerOutputKey: OutputKey): boolean;
export function isWellFormedInputKey(test: unknown): test is InputKey;
export type InputKey = __private._cocos_animation_marionette_pose_graph_foundation_node_shell__NodeInputPath;
export type InputDisplayName = string | [
string,
Record<string, string | number>
];
export interface InputMetadata {
type: PoseGraphType;
displayName?: InputDisplayName;
deletable?: boolean;
insertPoint?: boolean;
}
export type InputInsertId = string;
export type OutputKey = number;
/**
* @zh
* 姿
* @en
* Class of node in pose graph.
*/
export class Node extends ___private._cocos_core_data_editor_extendable__EditorExtendable {
/**
* @internal Temporarily hack for deserialization callback.
*/
__callOnAfterDeserializeRecursive?(): void;
/**
* @zh
*
* @en
* Gets title of this node.
* @returns @zh
* - `string`
* - `undefined`
* - i18n
* @en
* - If `string` is returned, then use the string as title.
* - Otherwise, if `undefined` is returned, then the title is not defined.
* - Otherwise, the returned value is the parametric representation of title.
*/
getTitle?(): string | [
string,
Record<string, string>
] | undefined;
/**
* @zh
*
* @en
* Gets enter info of this node.
*/
getEnterInfo?(): EnterNodeInfo | undefined;
}
export enum PoseGraphType {
FLOAT = 0,
INTEGER = 1,
BOOLEAN = 2,
VEC3 = 3,
QUAT = 4,
POSE = 5
}
export const getOutputKeys: (node: Node) => readonly OutputKey[];
}
export function getCreatePoseGraphNodeEntries(classConstructor: ___private._editor_src_marionette_pose_graph_editor_api__Constructor<poseGraphOp.Node>, createNodeContext: PoseGraphCreateNodeContext): Iterable<PoseGraphCreateNodeEntry>;
export function createPoseGraphNode(classConstructor: ___private._editor_src_marionette_pose_graph_editor_api__Constructor<poseGraphOp.Node>, arg: unknown): poseGraphOp.Node;
export function getNodeAppearanceOptions(node: poseGraphOp.Node): PoseGraphNodeAppearanceOptions | undefined;
export function getInputConventionalI18nInfo(inputKey: poseGraphOp.InputKey): [
string,
Record<string, string | number>?
];
export function getInputDefaultDisplayName(inputKey: poseGraphOp.InputKey): string;
export function getPoseGraphNodeInputAttrs(node: poseGraphOp.Node, inputKey: poseGraphOp.InputKey): {
[attributeName: string]: any;
};
export function copyPoseGraphNodes(poseGraph: PoseGraph, nodes: poseGraphOp.Node[], options?: CopyPoseGraphNodesOptions): ___private._editor_src_marionette_pose_graph_editor_api__PoseGraphNodesCopyInfo;
export function copyStateMachineAsPoseGraphNode(stateMachine: StateMachine): ___private._editor_src_marionette_pose_graph_editor_api__PoseGraphNodesCopyInfo;
export function pastePoseGraphNodes(poseGraph: PoseGraph, copyInfo: ___private._editor_src_marionette_pose_graph_editor_api__PoseGraphNodesCopyInfo, options?: PastePoseGraphNodesOptions): {
addedNodes: poseGraphOp.Node[];
};
/**
* Stash specified pose graph.
*
* Creates a stash, then move all contents in the pose graph into the stash.
* Then, create a "PoseNodeUseStashedPose" node to reference the newly created stash.
*
* @param layer The layer that the pose graph belongs to.
* @param poseGraph The pose graph to stash.
* @param newStashId Id of the newStash.
* @returns The stash operation result, or undefined if error occurred.
*/
export function stashPoseGraph(layer: Layer, poseGraph: PoseGraph, newStashId: string): StashPoseGraphResult | undefined;
export function visitStashReferences(layer: Layer, stashId: string): Generator<StashReference>;
export interface PoseGraphCreateNodeEntry {
category?: string;
subMenu?: string;
arg: unknown;
}
export interface PoseGraphCreateNodeContext {
animationGraph: AnimationGraph;
layerIndex: number;
}
/**
* @zh
* @en Describes the editor appearance of a type of nodes.
*/
export interface PoseGraphNodeAppearanceOptions {
/**
* @zh
* # `"#FF00FF"`
* @en
* Theme color. Currently should be a color hex string starting with "#", for example: `"#FF00FF"`.
*/
themeColor?: `#${string}`;
/**
* @zh
* `true` 使
* @en
* If `true`, indicates editor should show this type of nodes in "inline" style if possible.
*/
inline?: boolean;
}
export interface CopyPoseGraphNodesOptions {
copyOutputNodeEditorExtras?: boolean;
}
export interface pastePoseGraphNodesResult {
addedNodes: poseGraphOp.Node[];
}
export interface PastePoseGraphNodesOptions {
outputNodeBindingRedirect?: {
consumerNode: __private._cocos_animation_marionette_pose_graph_pose_node__PoseNode;
inputKey: poseGraphOp.InputKey;
};
}
export interface StashPoseGraphResult {
/**
* Newly created stash.
*/
stash: __private._cocos_animation_marionette_animation_graph__PoseGraphStash;
/**
* The `PoseNodeUseStashedPose` node added into the graph.
*/
useStashNode: poseGraphOp.Node;
}
export interface StashReference {
location: ___private._editor_src_marionette_visit_visit_pose_node__PoseNodeLocation;
alterReference(newStashName: string): void;
}
/**
* Query all asset drag handlers.
*/
export function getPoseGraphAssetDragHandlersMap(): Generator<[
Constructor<Asset>,
PoseGraphAssetDragHandlersInfo
]>;
export function createPoseNodeOnAssetDrag(asset: Asset, handlerId: string): poseGraphOp.Node | undefined;
/**
* In pose graph, describes the drag handling info for an asset type.
*/
export type PoseGraphAssetDragHandlersInfo = {
/**
* All handlers handling dragging on this asset type. The key is handler id.
*/
handlers: Record<string, {
/**
* The handler's display name.
*/
displayName: string;
}>;
};
export import Value = animation.Value_experimental;
export import VariableType = animation.VariableType;
export namespace __private {
/**
* This module contains utilities to marry animation clip with animation graph.
*
* A typical workflow is:
*
* At initial, an animation clip is bound to animation graph in `AnimationClipGraphBindingContext`,
* an `AnimationClipAGEvaluation` is created after this phase to track the evaluation.
*
* Then at each frame, `AnimationClipAGEvaluation.evaluate()` is called,
* passed with the current `AnimationClipGraphEvaluationContext`.
* The evaluation context gives the pose that need to be filled,
* then animation clip emplaces sampled animation data into the pose.
*/
/**
* The context in which animation clips can be bound in an animation graph.
*/
export interface _cocos_animation_marionette_animation_graph_animation_clip_binding__AnimationClipGraphBindingContext {
/**
* The root node. This should be the animation controller's host node.
*/
origin: Node;
/**
* Binds a scene node transform into animation graph.
* @param path Path to the scene node from `origin`.
* @returns The transform handle if successfully bound, `null` otherwise.
*/
bindTransform(path: string): ___private._cocos_animation_core_animation_handle__TransformHandle | null;
/**
* Binds an auxiliary curve.
* @param curveName Curve name.
*/
bindAuxiliaryCurve(curveName: string): ___private._cocos_animation_core_animation_handle__AuxiliaryCurveHandle;
}
export type _cocos_animation_marionette_graph_debug__RuntimeID = number;
/**
* @zh
* 姿
*
* @en
* Represents the space of input transforms(including whole transform or individual position or rotation)
* accepted by certain pose graph nodes.
*/
export enum _cocos_animation_marionette_pose_graph_pose_nodes_transform_space__TransformSpace {
/**
* @zh
* @en Indicates the transform is described in world space.
*/
WORLD = 0,
/**
* @zh
* @en Indicates the transform is described in local space of the node
* to which the animation graph's belonging component(ie. the animation controller) is attached.
*/
COMPONENT = 1,
/**
* @zh
* @en Indicates the transform is described in local space of the applying node(bone).
*/
PARENT = 2,
/**
* @zh
* @en Indicates the transform is described in local space of the applying node(bone).
*/
LOCAL = 3
}
export class _cocos_animation_marionette_animation_graph_context__AnimationGraphEvaluationContext {
constructor(transformCount: number, metaValueCount: number, parentTable: readonly number[], componentNode: Node);
destroy(): void;
get allocatedPoseCount(): number;
get parentTable(): readonly number[];
pushDefaultedPose(): ___private._cocos_animation_core_pose__Pose;
pushDefaultedPoseInComponentSpace(): ___private._cocos_animation_core_pose__Pose;
pushZeroDeltaPose(): ___private._cocos_animation_core_pose__Pose;
pushDuplicatedPose(src: ___private._cocos_animation_core_pose__Pose): ___private._cocos_animation_core_pose__Pose;
popPose(): void;
/**
* @internal
*/
get _stackSize_debugging(): number;
/**
* @internal
*/
_isStackTopPose_debugging(pose: ___private._cocos_animation_core_pose__Pose): boolean;
/** @internal */
_poseTransformsSpaceLocalToComponent(pose: ___private._cocos_animation_core_pose__Pose): void;
/** @internal */
_poseTransformsSpaceComponentToLocal(pose: ___private._cocos_animation_core_pose__Pose): void;
_convertPoseSpaceTransformToTargetSpace(transform: ___private._cocos_animation_core_transform__Transform, outTransformSpace: _cocos_animation_marionette_pose_graph_pose_nodes_transform_space__TransformSpace, pose: ___private._cocos_animation_core_pose__Pose, poseTransformIndex: number): ___private._cocos_animation_core_transform__Transform;
_convertTransformToPoseTransformSpace(transform: ___private._cocos_animation_core_transform__Transform, transformSpace: _cocos_animation_marionette_pose_graph_pose_nodes_transform_space__TransformSpace, pose: ___private._cocos_animation_core_pose__Pose, poseTransformIndex: number): ___private._cocos_animation_core_transform__Transform;
}
export class _cocos_animation_marionette_animation_graph_context__AuxiliaryCurveRegistry {
names(): IterableIterator<string>;
has(name: string): boolean;
get(name: string): number;
set(name: string, value: number): void;
}
export class _cocos_animation_marionette_animation_graph_context__TransformHandleInternal implements ___private._cocos_animation_core_animation_handle__TransformHandle {
__brand: ___private._cocos_animation_core_animation_handle__TransformHandle["__brand"];
constructor(host: _cocos_animation_marionette_animation_graph_context__AnimationGraphPoseLayoutMaintainer, index: number);
index: number;
destroy(): void;
}
export class _cocos_animation_marionette_animation_graph_context__AuxiliaryCurveHandleInternal implements ___private._cocos_animation_core_animation_handle__AuxiliaryCurveHandle {
constructor(host: _cocos_animation_marionette_animation_graph_context__AnimationGraphPoseLayoutMaintainer, index: number);
__brand: ___private._cocos_animation_core_animation_handle__AuxiliaryCurveHandle["__brand"];
index: number;
destroy(): void;
}
export interface _cocos_animation_marionette_pose_graph_stash_runtime_stash__PoseStashAllocator {
allocatePose(): ___private._cocos_animation_core_pose__Pose;
destroyPose(pose: ___private._cocos_animation_core_pose__Pose): void;
}
export class _cocos_animation_marionette_animation_graph_context__DeferredPoseStashAllocator implements _cocos_animation_marionette_pose_graph_stash_runtime_stash__PoseStashAllocator {
get allocatedPoseCount(): number;
/** @internal */
_reset(transformCount: number, auxiliaryCurveCount: number): void;
allocatePose(): ___private._cocos_animation_core_pose__Pose;
destroyPose(pose: ___private._cocos_animation_core_pose__Pose): void;
}
export class _cocos_animation_marionette_animation_graph_context__AnimationGraphPoseLayoutMaintainer {
/**
* @param origin This node and all nodes under this node can be bound.
*/
constructor(origin: Node, auxiliaryCurveRegistry: _cocos_animation_marionette_animation_graph_context__AuxiliaryCurveRegistry);
get transformCount(): number;
get auxiliaryCurveCount(): number;
get auxiliaryCurveRegistry(): {
get(name: string): number;
};
getOrCreateTransformBinding(node: Node): _cocos_animation_marionette_animation_graph_context__TransformHandleInternal | null;
getOrCreateAuxiliaryCurveBinding(name: string): _cocos_animation_marionette_animation_graph_context__AuxiliaryCurveHandleInternal;
createEvaluationContext(): _cocos_animation_marionette_animation_graph_context__AnimationGraphEvaluationContext;
resetPoseStashAllocator(allocator: _cocos_animation_marionette_animation_graph_context__DeferredPoseStashAllocator): void;
createTransformFilter(mask: Readonly<AnimationMask>): ___private._cocos_animation_core_pose__TransformFilter;
fetchDefaultTransforms(transforms: ___private._cocos_animation_core_transform_array__TransformArray): void;
apply(pose: ___private._cocos_animation_core_pose__Pose): void;
startBind(): void;
endBind(): number;
}
export abstract class _cocos_animation_marionette_variable_basic__VarInstanceBase {
readonly type: animation.VariableType;
constructor(type: animation.VariableType);
bind<T, TThis, ExtraArgs extends any[]>(fn: (this: TThis, value: T, ...args: ExtraArgs) => void, thisArg: TThis, ...args: ExtraArgs): animation.Value_experimental;
get value(): animation.Value_experimental;
set value(value: animation.Value_experimental);
protected abstract getValue(): animation.Value_experimental;
protected abstract setValue(value: animation.Value_experimental): void;
}
export type _cocos_animation_marionette_variable_index__VarInstance = _cocos_animation_marionette_variable_basic__VarInstanceBase;
export type _cocos_animation_marionette_animation_graph_context__VarRegistry = Record<string, _cocos_animation_marionette_variable_index__VarInstance>;
export type _cocos_animation_marionette_animation_graph_context__TriggerResetter = (triggerName: string) => void;
/**
* @zh
*
* @en
* Describes how to override animation clips in an animation graph.
*/
export interface _cocos_animation_marionette_clip_overriding__ReadonlyClipOverrideMap {
/**
* @zh
*
* @en
* Gets the overriding animation clip of specified original animation clip.
*
* @param animationClip @zh @en Original animation clip.
*
* @returns @zh `undefined` @en
* The overriding animation clip.
* If the original animation clip should not be overrode, `undefined` should be returned.
*/
get(animationClip: AnimationClip): AnimationClip | undefined;
}
export interface _cocos_animation_marionette_animation_graph_context__EvaluationTimeAuxiliaryCurveView {
get(curveName: string): number;
}
/**
* The update context for animation graph building blocks(state machine/pose node/motion...etc).
*/
export interface _cocos_animation_marionette_animation_graph_context__AnimationGraphUpdateContext {
/**
* Delta time to update.
*/
readonly deltaTime: number;
/**
* Indicative weight of the updating target.
*
* The updating target shall not, for example, weight the result pose by this weight.
*/
readonly indicativeWeight: number;
}
export interface _cocos_animation_marionette_pose_graph_stash_runtime_stash__RuntimeStash {
reenter(): void;
requestUpdate(context: _cocos_animation_marionette_animation_graph_context__AnimationGraphUpdateContext): void;
evaluate(context: _cocos_animation_marionette_animation_graph_context__AnimationGraphEvaluationContext): ___private._cocos_animation_core_pose__Pose | null;
}
export interface _cocos_animation_marionette_pose_graph_stash_runtime_stash__RuntimeStashView {
bindStash(id: string): _cocos_animation_marionette_pose_graph_stash_runtime_stash__RuntimeStash | undefined;
}
export class _cocos_animation_marionette_pose_graph_motion_sync_motion_sync_info__MotionSyncInfo {
group: string;
}
export interface _cocos_animation_marionette_pose_graph_motion_sync_runtime_motion_sync__RuntimeMotionSyncRecord {
notifyRenter(normalizedTime: number): void;
notifyUpdate(deltaTime: number, weight: number): void;
getSyncedEnterTime(): number;
}
export class _cocos_animation_marionette_pose_graph_motion_sync_runtime_motion_sync__RuntimeMotionSyncManager {
register(syncInfo: _cocos_animation_marionette_pose_graph_motion_sync_motion_sync_info__MotionSyncInfo): _cocos_animation_marionette_pose_graph_motion_sync_runtime_motion_sync__RuntimeMotionSyncRecord;
sync(): void;
}
/**
* The binding context of an animation graph.
*/
export class _cocos_animation_marionette_animation_graph_context__AnimationGraphBindingContext {
constructor(origin: Node, poseLayoutMaintainer: _cocos_animation_marionette_animation_graph_context__AnimationGraphPoseLayoutMaintainer, varRegistry: _cocos_animation_marionette_animation_graph_context__VarRegistry, _controller: animation.AnimationController);
/**
* The origin node.
*
* The origin node is the origin from where the animation target start to resolve.
* It's now definitely the node hosting the running animation controller component.
*/
get origin(): Node;
/**
* The animation controller component currently running the animation graph.
*/
get controller(): animation.AnimationController;
/**
* A free function to reset specified trigger.
* @internal This function should only be accessed by the builtin state machine.
*/
get triggerResetter(): _cocos_animation_marionette_animation_graph_context__TriggerResetter;
get clipOverrides(): _cocos_animation_marionette_clip_overriding__ReadonlyClipOverrideMap | undefined;
/**
* Returns if current context expects to have an additive pose.
*/
get additive(): boolean;
bindTransform(bone: string): ___private._cocos_animation_core_animation_handle__TransformHandle | null;
bindTransformByName(bone: string): ___private._cocos_animation_core_animation_handle__TransformHandle | null;
getBoneChildren(bone: string): string[];
getParentBoneNameByName(bone: string): string | null | undefined;
bindAuxiliaryCurve(name: string): ___private._cocos_animation_core_animation_handle__AuxiliaryCurveHandle;
getEvaluationTimeAuxiliaryCurveView(): _cocos_animation_marionette_animation_graph_context__EvaluationTimeAuxiliaryCurveView;
getVar(id: string): _cocos_animation_marionette_variable_index__VarInstance | undefined;
/**
* Pushes the `additive` flag. A later `_popAdditiveFlag` is required to pop the change.
* @internal
*/
_pushAdditiveFlag(additive: boolean): void;
/**
* Undo last `_pushAdditiveFlag`.
* @internal
*/
_popAdditiveFlag(): void;
/** @internal */
_integrityCheck(): boolean;
get stashView(): _cocos_animation_marionette_pose_graph_stash_runtime_stash__RuntimeStashView;
get motionSyncManager(): _cocos_animation_marionette_pose_graph_motion_sync_runtime_motion_sync__RuntimeMotionSyncManager;
/**
* @internal
*/
_setLayerWideContextProperties(stashView: _cocos_animation_marionette_pose_graph_stash_runtime_stash__RuntimeStashView, motionSyncManager: _cocos_animation_marionette_pose_graph_motion_sync_runtime_motion_sync__RuntimeMotionSyncManager): void;
/**
* @internal
*/
_unsetLayerWideContextProperties(): void;
/**
* @internal
*/
_setClipOverrides(clipOverrides: _cocos_animation_marionette_clip_overriding__ReadonlyClipOverrideMap | undefined): void;
}
export interface _cocos_animation_marionette_variable_basic__VariableTypeValueTypeMap {
[animation.VariableType.FLOAT]: number;
[animation.VariableType.INTEGER]: number;
[animation.VariableType.BOOLEAN]: boolean;
[animation.VariableType.TRIGGER]: boolean;
[animation.VariableType.VEC3_experimental]: math.Vec3;
[animation.VariableType.QUAT_experimental]: math.Quat;
}
/**
* @zh `AnimationGraph` `AnimationGraphVariant`
*
* @en The common base class of `AnimationGraph` and `AnimationGraphVariant`
* which exists for special purpose and should not be used otherwise and should not be exported.
*
* @internal This class serves as the editor switch of
* animation graph asset and animation graph variant asset,
* especially as the `graph` property on animation controller component.
*/
export abstract class _cocos_animation_marionette_animation_graph_like__AnimationGraphLike extends Asset {
}
export const _cocos_animation_marionette_ownership__ownerSymbol: unique symbol;
export interface _cocos_animation_marionette_ownership__OwnedBy<T> {
[_cocos_animation_marionette_ownership__ownerSymbol]: T | undefined;
}
export class _cocos_animation_marionette_animation_graph__Transition extends ___private._cocos_core_data_editor_extendable__EditorExtendable implements _cocos_animation_marionette_ownership__OwnedBy<StateMachine>, _cocos_animation_marionette_animation_graph__Transition {
[_cocos_animation_marionette_ownership__ownerSymbol]: StateMachine | undefined;
/**
* The transition source.
*/
from: State;
/**
* The transition target.
*/
to: State;
/**
* The transition condition.
*/
conditions: Condition[];
constructor(from: State, to: State, conditions?: Condition[]);
copyTo(that: _cocos_animation_marionette_animation_graph__Transition): void;
[_cocos_animation_marionette_ownership__ownerSymbol]: StateMachine | undefined;
}
/**
* @zh
* @en Describes the event bindings in animation graph.
*/
export class _cocos_animation_marionette_event_event_binding__AnimationGraphEventBinding {
/**
* @zh
* @en The event name bound.
*/
methodName: string;
/**
* @zh
* @en Tells if there's any event bound to this binding.
*/
get isBound(): boolean;
emit(origin: Node): void;
copyTo(that: _cocos_animation_marionette_event_event_binding__AnimationGraphEventBinding): _cocos_animation_marionette_event_event_binding__AnimationGraphEventBinding;
}
export class _cocos_animation_marionette_animation_graph__ProceduralPoseState extends State {
graph: PoseGraph;
/**
* @zh
* @en State entered event binding. The event bound here will be triggered
* when the state machine starts to transition into this state.
*/
transitionInEventBinding: _cocos_animation_marionette_event_event_binding__AnimationGraphEventBinding;
/**
* @zh
* @en State left event binding. The event bound here will be triggered
* when the state machine starts to transition out from this state.
*/
transitionOutEventBinding: _cocos_animation_marionette_event_event_binding__AnimationGraphEventBinding;
/**
* // TODO: HACK
* @internal
*/
__callOnAfterDeserializeRecursive(): void;
copyTo(that: MotionState): _cocos_animation_marionette_animation_graph__ProceduralPoseState;
}
export class _cocos_animation_marionette_animation_graph__DurationalTransition extends _cocos_animation_marionette_animation_graph__Transition {
/**
* @en The start time of (final) destination motion state when this transition starts.
* Its unit is seconds if `relativeDestinationStart` is `false`,
* Otherwise, its unit is the duration of destination motion state.
* @zh
* `relativeDestinationStart` `false`
*/
destinationStart: number;
/**
* @en Determines the unit of destination start time. See `destinationStart`.
* @zh `destinationStart`
*/
relativeDestinationStart: boolean;
/**
* @zh
* @en Transition start event binding. The event bound here will be triggered on the transition starts.
*/
startEventBinding: _cocos_animation_marionette_event_event_binding__AnimationGraphEventBinding;
/**
* @zh
* @en Transition end event binding. The event bound here will be triggered on the transition ends.
*/
endEventBinding: _cocos_animation_marionette_event_event_binding__AnimationGraphEventBinding;
copyTo(that: _cocos_animation_marionette_animation_graph__DurationalTransition): void;
[_cocos_animation_marionette_ownership__ownerSymbol]: StateMachine | undefined;
}
export class _cocos_animation_marionette_animation_graph__ProceduralPoseTransition extends _cocos_animation_marionette_animation_graph__DurationalTransition {
/**
* The transition duration, in seconds.
*/
duration: number;
copyTo(that: _cocos_animation_marionette_animation_graph__ProceduralPoseTransition): void;
}
export type _cocos_animation_marionette_state_machine_state__StateMachineComponentConstructor<T extends animation.StateMachineComponent> = ___private.__types_globals__Constructor<T>;
export class _cocos_animation_marionette_state_machine_state__InteractiveState extends State {
get components(): Iterable<animation.StateMachineComponent>;
addComponent<T extends animation.StateMachineComponent>(constructor: _cocos_animation_marionette_state_machine_state__StateMachineComponentConstructor<T>): T;
removeComponent(component: animation.StateMachineComponent): void;
instantiateComponents(): animation.StateMachineComponent[];
copyTo(that: _cocos_animation_marionette_state_machine_state__InteractiveState): void;
}
export class _cocos_animation_marionette_animation_graph__AnimationTransition extends _cocos_animation_marionette_animation_graph__DurationalTransition {
/**
* The transition duration.
* The unit of the duration is the real duration of transition source
* if `relativeDuration` is `true` or seconds otherwise.
*/
duration: number;
/**
* Determines the unit of transition duration. See `duration`.
*/
relativeDuration: boolean;
exitConditionEnabled: boolean;
get exitCondition(): number;
set exitCondition(value: number);
copyTo(that: _cocos_animation_marionette_animation_graph__AnimationTransition): void;
}
export class _cocos_animation_marionette_animation_graph__PoseGraphStash extends ___private._cocos_core_data_editor_extendable__EditorExtendable {
graph: PoseGraph;
}
export const _cocos_animation_marionette_state_machine_state__outgoingsSymbol: unique symbol;
export type _cocos_animation_marionette_animation_graph__TransitionInternal = _cocos_animation_marionette_animation_graph__Transition;
export const _cocos_animation_marionette_state_machine_state__incomingsSymbol: unique symbol;
/**
* @zh
* @en Operator used in binary condition.
*/
export enum _cocos_animation_marionette_state_machine_condition_binary_condition__BinaryOperator {
EQUAL_TO = 0,
NOT_EQUAL_TO = 1,
LESS_THAN = 2,
LESS_THAN_OR_EQUAL_TO = 3,
GREATER_THAN = 4,
GREATER_THAN_OR_EQUAL_TO = 5
}
export type _cocos_animation_marionette_state_machine_condition_binary_condition__LhsBinding = TCBinding<TCBindingValueType.FLOAT | TCBindingValueType.INTEGER>;
export const _cocos_animation_marionette_create_eval__createEval: unique symbol;
export type _cocos_animation_marionette_state_machine_condition_condition_base__ConditionBindingContext = _cocos_animation_marionette_animation_graph_context__AnimationGraphBindingContext;
/**
* Describes the context under which a transition condition evaluates.
*/
export interface _cocos_animation_marionette_state_machine_condition_condition_base__ConditionEvaluationContext {
/**
* Weight of current transition's source state.
*/
readonly sourceStateWeight: number;
/**
* The elapsed normalized time of motions in source state.
*/
readonly sourceStateMotionTimeNormalized: number;
}
export interface _cocos_animation_marionette_state_machine_condition_binding_binding__TCBindingValueTypeMap {
[TCBindingValueType.FLOAT]: number;
[TCBindingValueType.INTEGER]: number;
}
/**
* @zh
* @en The evaluation of a float binding in transition condition.
*/
export interface _cocos_animation_marionette_state_machine_condition_binding_binding__TCBindingEvaluation<TValueType extends TCBindingValueType> {
evaluate(context: _cocos_animation_marionette_state_machine_condition_condition_base__ConditionEvaluationContext): _cocos_animation_marionette_state_machine_condition_binding_binding__TCBindingValueTypeMap[TValueType];
}
export type _cocos_animation_marionette_state_machine_condition_binary_condition__lhsBindingEvaluation = _cocos_animation_marionette_state_machine_condition_binding_binding__TCBindingEvaluation<TCBindingValueType.FLOAT | TCBindingValueType.INTEGER>;
export interface _cocos_animation_marionette_state_machine_condition_condition_base__ConditionEval {
/**
* Evaluates this condition.
*/
eval(context: _cocos_animation_marionette_state_machine_condition_condition_base__ConditionEvaluationContext): boolean;
}
export class _cocos_animation_marionette_state_machine_condition_binary_condition__BinaryConditionEval implements _cocos_animation_marionette_state_machine_condition_condition_base__ConditionEval {
constructor(_operator: _cocos_animation_marionette_state_machine_condition_binary_condition__BinaryOperator, lhsValue: number, rhsValue: number, _lhsBindingEvaluation: _cocos_animation_marionette_state_machine_condition_binary_condition__lhsBindingEvaluation | undefined);
/**
* Evaluates this condition.
*/
eval(context: _cocos_animation_marionette_state_machine_condition_condition_base__ConditionEvaluationContext): boolean;
}
export enum _cocos_animation_marionette_state_machine_condition_unary_condition__UnaryOperator {
TRUTHY = 0,
FALSY = 1
}
export class _cocos_animation_marionette_state_machine_condition_unary_condition__UnaryConditionEval implements _cocos_animation_marionette_state_machine_condition_condition_base__ConditionEval {
constructor(operator: _cocos_animation_marionette_state_machine_condition_unary_condition__UnaryOperator, operand: boolean);
reset(value: boolean): void;
setOperand(value: boolean): void;
/**
* Evaluates this condition.
*/
eval(): boolean;
}
export type _cocos_animation_marionette_variable_primitive_variable__PlainVariableType = animation.VariableType.FLOAT | animation.VariableType.INTEGER | animation.VariableType.BOOLEAN;
export const _cocos_animation_marionette_variable_basic__createInstanceTag: unique symbol;
export class _cocos_animation_marionette_variable_primitive_variable__VarInstancePrimitive extends _cocos_animation_marionette_variable_basic__VarInstanceBase {
constructor(type: animation.VariableType, value: animation.Value_experimental);
protected getValue(): animation.Value_experimental;
protected setValue(value: animation.Value_experimental): void;
}
export class _cocos_animation_marionette_variable_primitive_variable__PlainVariable {
constructor(type?: _cocos_animation_marionette_variable_primitive_variable__PlainVariableType);
get type(): _cocos_animation_marionette_variable_primitive_variable__PlainVariableType;
get value(): animation.Value_experimental;
set value(value: animation.Value_experimental);
[_cocos_animation_marionette_variable_basic__createInstanceTag](): _cocos_animation_marionette_variable_primitive_variable__VarInstancePrimitive;
}
export class _cocos_animation_marionette_variable_vec3_variable__VarInstanceVec3 extends _cocos_animation_marionette_variable_basic__VarInstanceBase {
constructor(value: Readonly<math.Vec3>);
protected getValue(): animation.Value_experimental;
protected setValue(value: animation.Value_experimental): void;
}
export interface _cocos_animation_marionette_variable_basic__BasicVariableDescription<TType> {
readonly type: TType;
value: TType extends keyof _cocos_animation_marionette_variable_basic__VariableTypeValueTypeMap ? _cocos_animation_marionette_variable_basic__VariableTypeValueTypeMap[TType] : never;
/**
* @internal
*/
[_cocos_animation_marionette_variable_basic__createInstanceTag](): _cocos_animation_marionette_variable_basic__VarInstanceBase;
}
export class _cocos_animation_marionette_variable_vec3_variable__Vec3Variable implements _cocos_animation_marionette_variable_basic__BasicVariableDescription<animation.VariableType.VEC3_experimental> {
get type(): animation.VariableType.VEC3_experimental;
get value(): Readonly<math.Vec3>;
set value(value: Readonly<math.Vec3>);
[_cocos_animation_marionette_variable_basic__createInstanceTag](): _cocos_animation_marionette_variable_vec3_variable__VarInstanceVec3;
}
export class _cocos_animation_marionette_variable_quat_variable__VarInstanceQuat extends _cocos_animation_marionette_variable_basic__VarInstanceBase {
constructor(value: Readonly<math.Quat>);
protected getValue(): animation.Value_experimental;
protected setValue(value: animation.Value_experimental): void;
}
export class _cocos_animation_marionette_variable_quat_variable__QuatVariable implements _cocos_animation_marionette_variable_basic__BasicVariableDescription<animation.VariableType.QUAT_experimental> {
get type(): animation.VariableType.QUAT_experimental;
get value(): Readonly<math.Quat>;
set value(value: Readonly<math.Quat>);
[_cocos_animation_marionette_variable_basic__createInstanceTag](): _cocos_animation_marionette_variable_quat_variable__VarInstanceQuat;
}
export class _cocos_animation_marionette_variable_trigger_variable__VarInstanceTrigger extends _cocos_animation_marionette_variable_basic__VarInstanceBase {
readonly resetMode: TriggerResetMode;
constructor(value: animation.Value_experimental, resetMode: TriggerResetMode);
protected getValue(): animation.Value_experimental;
protected setValue(value: animation.Value_experimental): void;
}
export class _cocos_animation_marionette_variable_trigger_variable__TriggerVariable implements _cocos_animation_marionette_variable_basic__BasicVariableDescription<animation.VariableType.TRIGGER> {
get type(): animation.VariableType.TRIGGER;
get value(): boolean;
set value(value: boolean);
get resetMode(): TriggerResetMode;
set resetMode(value: TriggerResetMode);
[_cocos_animation_marionette_variable_basic__createInstanceTag](): _cocos_animation_marionette_variable_trigger_variable__VarInstanceTrigger;
}
export interface _cocos_animation_marionette_parametric__Bindable<TValue> {
value: TValue;
variable: string;
clone(): _cocos_animation_marionette_parametric__Bindable<TValue>;
}
export interface _cocos_animation_marionette_animation_mask__JointMaskInfo {
readonly path: string;
enabled: boolean;
}
export type _cocos_animation_marionette_animation_mask__JointMaskInfo_ = _cocos_animation_marionette_animation_mask__JointMaskInfo;
export class _cocos_animation_marionette_animation_graph_variant__ClipOverrideEntry {
original: AnimationClip;
substitution: AnimationClip;
}
export class _cocos_animation_marionette_animation_graph_variant__ClipOverrideMap implements _cocos_animation_marionette_clip_overriding__ReadonlyClipOverrideMap {
get size(): number;
[Symbol.iterator](): IterableIterator<_cocos_animation_marionette_animation_graph_variant__ClipOverrideEntry>;
has(original: AnimationClip): boolean;
get(original: AnimationClip): AnimationClip | undefined;
set(original: AnimationClip, substitution: AnimationClip): void;
delete(original: AnimationClip): void;
clear(): void;
}
/**
* The settle context for animation graph building blocks(state machine/pose node/motion...etc).
*/
export class _cocos_animation_marionette_animation_graph_context__AnimationGraphSettleContext {
constructor(_layoutMaintainer: _cocos_animation_marionette_animation_graph_context__AnimationGraphPoseLayoutMaintainer);
/**
* Gets the number of transforms in pose.
*/
get transformCount(): number;
/**
* Creates a transform filter expressing specified animation mask effect.
* @param mask Animation mask.
* @returns Result transform filter.
*/
createTransformFilter(mask: Readonly<AnimationMask>): ___private._cocos_animation_core_pose__TransformFilter;
}
export enum _cocos_animation_marionette_pose_graph_pose_node__PoseTransformSpaceRequirement {
NO = 0,
LOCAL = 1,
COMPONENT = 2
}
export interface _cocos_animation_marionette_pose_graph_instantiation__PoseNodeDependencyEvaluation {
evaluate(): void;
}
/**
* Base class of all pose nodes.
*
* Pose nodes are nodes in pose graph that yields pose objects.
*/
export abstract class _cocos_animation_marionette_pose_graph_pose_node__PoseNode extends poseGraphOp.Node {
/**
* Starts the bind stage on this pose node.
*
* @param context The bind context.
*
* @note Subclasses shall implement this method to perform some preparing works
* and invoke this method on dependant pose nodes.
*/
abstract bind(context: _cocos_animation_marionette_animation_graph_context__AnimationGraphBindingContext): void;
/**
* Starts the settle stage on this pose node.
*
* @param context The settle context.
*
* @note Subclasses shall implement this method to perform some post-binding works
* and invoke this method on dependant pose nodes.
*
*/
abstract settle(context: _cocos_animation_marionette_animation_graph_context__AnimationGraphSettleContext): void;
/**
* Reenter this pose nodes.
*
* @note Subclasses shall implement this method to perform some state resetting works.
* and invoke this method on dependant pose nodes.
*
* This method would be fired if other pose nodes that depends on this pose node requests a "reset".
* For example, if this pose node is as a node of a pose state.
* When this state is activated, this method is invoked.
*/
abstract reenter(): void;
/**
* Perform the update stage on this pose node.
* This method will directly forward to call `this.doUpdate`.
*
* @param context The update context.
*
* @note Subclasses shall not override this method and should override `doUpdate` instead.
*/
update(context: _cocos_animation_marionette_animation_graph_context__AnimationGraphUpdateContext): void;
/**
* Evaluates this pose node.
* This method will directly forward to call `this.doEvaluate`.
*
* @param context The evaluation context.
*
* @note Subclasses shall not override this method and should override `doEvaluate` instead.
*/
evaluate(context: _cocos_animation_marionette_animation_graph_context__AnimationGraphEvaluationContext, poseTransformSpaceRequirement: _cocos_animation_marionette_pose_graph_pose_node__PoseTransformSpaceRequirement): ___private._cocos_animation_core_pose__Pose;
static evaluateDefaultPose(context: _cocos_animation_marionette_animation_graph_context__AnimationGraphEvaluationContext, poseTransformSpaceRequirement: _cocos_animation_marionette_pose_graph_pose_node__PoseTransformSpaceRequirement): ___private._cocos_animation_core_pose__Pose;
/** @internal */
_setDependencyEvaluation(dependency: _cocos_animation_marionette_pose_graph_instantiation__PoseNodeDependencyEvaluation): void;
/**
* Implement this method to performs the update stage on this pose node.
*
* @param context The update context.
*
* @note Subclasses shall implement this method to perform some updating works.
* and invoke `this.update` on dependant pose nodes.
*/
protected abstract doUpdate(context: _cocos_animation_marionette_animation_graph_context__AnimationGraphUpdateContext): void;
/**
* Implement this method to evaluate this pose node.
*
* @param context The evaluation context.
*
* @returns The result pose.
*/
protected abstract doEvaluate(context: _cocos_animation_marionette_animation_graph_context__AnimationGraphEvaluationContext): ___private._cocos_animation_core_pose__Pose;
/**
* TODO: some nodes access dependencies in reenter(). See: cocos/cocos-engine#15305
*/
protected _forceEvaluateEvaluation(): void;
}
export class _cocos_animation_marionette_pose_graph_graph_output_node__PoseGraphOutputNode extends poseGraphOp.Node {
pose: _cocos_animation_marionette_pose_graph_pose_node__PoseNode | null;
}
/**
* @zh
* 姿
* @en
* Describes the path to a input of a pose graph node.
*
* @internal Internally, the path is stored as an tuple.
* The first element of tuple is always the input's property key.
* There can be an optional second tuple element,
* which represents the input's property's element, if it's an array property.
*/
export type _cocos_animation_marionette_pose_graph_foundation_node_shell__NodeInputPath = readonly [
string
] | readonly [
string,
number
];
/**
* @zh
* @en Describes the binding information between a given node(as consumer) and another node(as producer).
*/
export class _cocos_animation_marionette_pose_graph_foundation_node_shell__PoseGraphNodeInputBinding {
constructor(inputPath: _cocos_animation_marionette_pose_graph_foundation_node_shell__NodeInputPath, producer: poseGraphOp.Node, outputIndex?: number);
/**
* @zh
* @en Input path of consumer node.
*/
get inputPath(): _cocos_animation_marionette_pose_graph_foundation_node_shell__NodeInputPath;
/**
* @zh
* @en The producer node.
*/
get producer(): poseGraphOp.Node;
/**
* @zh
* @en The producer node's output index.
*/
get outputIndex(): number;
}
/**
* @zh 姿
*
*
* 姿
*
* @en Represents the shell of a pose graph node.
*
* The node shell is attached to a node,
* and describes the connections(so called binding) between nodes.
* Shells are manipulated by pose graph and binding system.
* Nodes are imperceptible to their shells.
*/
export class _cocos_animation_marionette_pose_graph_foundation_node_shell__PoseGraphNodeShell extends ___private._cocos_core_data_editor_extendable__EditorExtendable {
/**
* @zh
*
* @en
* Gets all bindings on this node.
* @returns @zh @en The binding objects array.
*/
getBindings(): _cocos_animation_marionette_pose_graph_foundation_node_shell__PoseGraphNodeInputBinding[];
/**
* @zh
*
* @en
* Adds a binding.
* @param inputPath @zh @en Path of the input to bind.
* @param producer @zh @en The producer node.
* @param outputIndex @zh @en Index of the output to bind.
* @note
* @zh
* @en A binding is keyed by the 3-element tuple: input path, producer node and producer output index.
* Redundantly adding a binding takes no effect.
*/
addBinding(inputPath: _cocos_animation_marionette_pose_graph_foundation_node_shell__NodeInputPath, producer: poseGraphOp.Node, outputIndex: number): void;
/**
* @zh
*
* @en
* Deletes the binding on specified input.
* @param inputPath @zh @en Path of the input to unbind.
*/
deleteBinding(inputPath: _cocos_animation_marionette_pose_graph_foundation_node_shell__NodeInputPath): void;
/**
* @zh
*
* `firstIndex`
*
* @en
* Update bindings so that
* for the input bindings having specified property key but having element index less than the specified index,
* substitute them as previous(or next) index's binding.
* @param propertyKey @zh @en The input's property key.
* @param firstIndex @zh @en See description.
* @param forward @en `true`
* @en Substitution direction. `true` means substitute in forward, backward otherwise.
*/
moveArrayElementBindingForward(propertyKey: string, firstIndex: number, forward: boolean): void;
/**
* @zh
*
* @en
* Deletes all the bindings bound to specified producer.
* @param producer @zh @en The producer node.
*/
deleteBindingTo(producer: poseGraphOp.Node): void;
/**
* @zh
*
* @en
* Finds the binding on specified input.
* @param inputPath @zh @en Path of the input to find.
*/
findBinding(inputPath: _cocos_animation_marionette_pose_graph_foundation_node_shell__NodeInputPath): _cocos_animation_marionette_pose_graph_foundation_node_shell__PoseGraphNodeInputBinding | undefined;
}
export const _cocos_animation_marionette_motion_clip_motion__evaluatePortTag: unique symbol;
export class _cocos_animation_marionette_motion_clip_motion__ClipMotionEval implements MotionEval {
/**
* @internal
*/
__DEBUG__ID__?: string;
runtimeId?: number;
constructor(context: _cocos_animation_marionette_animation_graph_context__AnimationGraphBindingContext, clip: AnimationClip, ignoreEmbeddedPlayers: boolean);
get duration(): number;
createPort(): MotionPort;
getClipStatuses(baseWeight: number): Iterator<animation.ClipStatus>;
[_cocos_animation_marionette_motion_clip_motion__evaluatePortTag](progress: number, context: _cocos_animation_marionette_animation_graph_context__AnimationGraphEvaluationContext): ___private._cocos_animation_core_pose__Pose;
overrideClips(context: _cocos_animation_marionette_animation_graph_context__AnimationGraphBindingContext): void;
reenter(): void;
}
export class _cocos_animation_marionette_motion_animation_blend__AnimationBlendItem {
motion: Motion | null;
clone(): _cocos_animation_marionette_motion_animation_blend__AnimationBlendItem;
protected _copyTo(that: _cocos_animation_marionette_motion_animation_blend__AnimationBlendItem): _cocos_animation_marionette_motion_animation_blend__AnimationBlendItem;
}
export class _cocos_animation_marionette_motion_animation_blend_1d__AnimationBlend1DItem extends _cocos_animation_marionette_motion_animation_blend__AnimationBlendItem {
threshold: number;
clone(): _cocos_animation_marionette_motion_animation_blend_1d__AnimationBlend1DItem;
protected _copyTo(that: _cocos_animation_marionette_motion_animation_blend_1d__AnimationBlend1DItem): _cocos_animation_marionette_motion_animation_blend_1d__AnimationBlend1DItem;
}
export enum _cocos_animation_marionette_motion_animation_blend_2d__Algorithm {
SIMPLE_DIRECTIONAL = 0,
FREEFORM_CARTESIAN = 1,
FREEFORM_DIRECTIONAL = 2
}
export class _cocos_animation_marionette_motion_animation_blend_2d__AnimationBlend2DItem extends _cocos_animation_marionette_motion_animation_blend__AnimationBlendItem {
threshold: math.Vec2;
clone(): _cocos_animation_marionette_motion_animation_blend_2d__AnimationBlend2DItem;
protected _copyTo(that: _cocos_animation_marionette_motion_animation_blend_2d__AnimationBlend2DItem): _cocos_animation_marionette_motion_animation_blend_2d__AnimationBlend2DItem;
}
export class _cocos_animation_marionette_motion_animation_blend__AnimationBlendPort implements MotionPort {
constructor(host: _cocos_animation_marionette_motion_animation_blend__AnimationBlendEval, childPorts: readonly (MotionPort | null)[]);
childPorts: readonly (MotionPort | null)[];
evaluate(progress: number, context: _cocos_animation_marionette_animation_graph_context__AnimationGraphEvaluationContext): ___private._cocos_animation_core_pose__Pose;
reenter(): void;
}
export abstract class _cocos_animation_marionette_motion_animation_blend__AnimationBlendEval implements MotionEval {
runtimeId?: number;
constructor(context: _cocos_animation_marionette_animation_graph_context__AnimationGraphBindingContext, ignoreEmbeddedPlayers: boolean, base: AnimationBlend, children: _cocos_animation_marionette_motion_animation_blend__AnimationBlendItem[], inputs: number[]);
createPort(): MotionPort;
get childCount(): number;
getChildWeight(childIndex: number): number;
getChildMotionEval(childIndex: number): MotionEval | null;
get duration(): number;
getClipStatuses(baseWeight: number): Iterator<animation.ClipStatus, any, undefined>;
__evaluatePort(port: _cocos_animation_marionette_motion_animation_blend__AnimationBlendPort, progress: number, context: _cocos_animation_marionette_animation_graph_context__AnimationGraphEvaluationContext): ___private._cocos_animation_core_pose__Pose;
overrideClips(context: _cocos_animation_marionette_animation_graph_context__AnimationGraphBindingContext): void;
setInput(value: number, index: number): void;
protected doEval(): void;
protected abstract eval(_weights: number[], _inputs: readonly number[]): void;
}
export class _cocos_animation_marionette_motion_animation_blend_direct__AnimationBlendDirectItem extends _cocos_animation_marionette_motion_animation_blend__AnimationBlendItem {
weight: BindableNumber;
clone(): _cocos_animation_marionette_motion_animation_blend_direct__AnimationBlendDirectItem;
protected _copyTo(that: _cocos_animation_marionette_motion_animation_blend_direct__AnimationBlendDirectItem): _cocos_animation_marionette_motion_animation_blend_direct__AnimationBlendDirectItem;
}
export class _cocos_animation_marionette_motion_animation_blend_direct__AnimationBlendDirectEval extends _cocos_animation_marionette_motion_animation_blend__AnimationBlendEval {
constructor(...args: ConstructorParameters<typeof _cocos_animation_marionette_motion_animation_blend__AnimationBlendEval>);
protected eval(weights: number[], inputs: readonly number[]): void;
}
}
import { math, animation, Node, __private as ___private, AnimationClip, Asset, Constructor } from "cc";
import { VariableDescription as _VariableDescription, Motion as _Motion, __private as ____private, poseGraphOp as _poseGraphOp, PoseGraph as _PoseGraph } from "cc/editor/new-gen-anim";
export {};
}
declare module "cc/editor/offline-mappings" {
export const effectStructure: {
$techniques: {
$passes: {
depthStencilState: {};
rasterizerState: {};
blendState: {
targets: {}[];
};
properties: {
any: {
sampler: {};
editor: {};
};
};
migrations: {
properties: {
any: {};
};
macros: {
any: {};
};
};
embeddedMacros: {};
}[];
}[];
};
export const isSampler: (type: any) => boolean;
export const typeMap: Record<string, gfx.Type | string>;
export const formatMap: {
bool: gfx.Format;
bvec2: gfx.Format;
bvec3: gfx.Format;
bvec4: gfx.Format;
int: gfx.Format;
ivec2: gfx.Format;
ivec3: gfx.Format;
ivec4: gfx.Format;
uint: gfx.Format;
uvec2: gfx.Format;
uvec3: gfx.Format;
uvec4: gfx.Format;
float: gfx.Format;
vec2: gfx.Format;
vec3: gfx.Format;
vec4: gfx.Format;
int8_t: gfx.Format;
i8vec2: gfx.Format;
i8vec3: gfx.Format;
i8vec4: gfx.Format;
uint8_t: gfx.Format;
u8vec2: gfx.Format;
u8vec3: gfx.Format;
u8vec4: gfx.Format;
int16_t: gfx.Format;
i16vec2: gfx.Format;
i16vec3: gfx.Format;
i16vec4: gfx.Format;
uint16_t: gfx.Format;
u16vec2: gfx.Format;
u16vec3: gfx.Format;
u16vec4: gfx.Format;
float16_t: gfx.Format;
f16vec2: gfx.Format;
f16vec3: gfx.Format;
f16vec4: gfx.Format;
mat2: gfx.Format;
mat3: gfx.Format;
mat4: gfx.Format;
mat2x2: gfx.Format;
mat3x3: gfx.Format;
mat4x4: gfx.Format;
mat2x3: gfx.Format;
mat2x4: gfx.Format;
mat3x2: gfx.Format;
mat3x4: gfx.Format;
mat4x2: gfx.Format;
mat4x3: gfx.Format;
};
export const getFormat: (name: string) => any;
export const getShaderStage: (name: string) => any;
export const getDescriptorType: (name: string) => any;
export const isNormalized: (format: string) => boolean;
export const isPaddedMatrix: (type: any) => boolean;
export const getMemoryAccessFlag: (access: string) => gfx.MemoryAccessBit;
export const passParams: {
NONE: gfx.ColorMask;
R: gfx.ColorMask;
G: gfx.ColorMask;
B: gfx.ColorMask;
A: gfx.ColorMask;
RG: number;
RB: number;
RA: number;
GB: number;
GA: number;
BA: number;
RGB: number;
RGA: number;
RBA: number;
GBA: number;
ALL: gfx.ColorMask;
ADD: gfx.BlendOp;
SUB: gfx.BlendOp;
REV_SUB: gfx.BlendOp;
MIN: gfx.BlendOp;
MAX: gfx.BlendOp;
ZERO: gfx.BlendFactor;
ONE: gfx.BlendFactor;
SRC_ALPHA: gfx.BlendFactor;
DST_ALPHA: gfx.BlendFactor;
ONE_MINUS_SRC_ALPHA: gfx.BlendFactor;
ONE_MINUS_DST_ALPHA: gfx.BlendFactor;
SRC_COLOR: gfx.BlendFactor;
DST_COLOR: gfx.BlendFactor;
ONE_MINUS_SRC_COLOR: gfx.BlendFactor;
ONE_MINUS_DST_COLOR: gfx.BlendFactor;
SRC_ALPHA_SATURATE: gfx.BlendFactor;
CONSTANT_COLOR: gfx.BlendFactor;
ONE_MINUS_CONSTANT_COLOR: gfx.BlendFactor;
CONSTANT_ALPHA: gfx.BlendFactor;
ONE_MINUS_CONSTANT_ALPHA: gfx.BlendFactor;
KEEP: gfx.StencilOp;
REPLACE: gfx.StencilOp;
INCR: gfx.StencilOp;
DECR: gfx.StencilOp;
INVERT: gfx.StencilOp;
INCR_WRAP: gfx.StencilOp;
DECR_WRAP: gfx.StencilOp;
NEVER: gfx.ComparisonFunc;
LESS: gfx.ComparisonFunc;
EQUAL: gfx.ComparisonFunc;
LESS_EQUAL: gfx.ComparisonFunc;
GREATER: gfx.ComparisonFunc;
NOT_EQUAL: gfx.ComparisonFunc;
GREATER_EQUAL: gfx.ComparisonFunc;
ALWAYS: gfx.ComparisonFunc;
FRONT: gfx.CullMode;
BACK: gfx.CullMode;
GOURAND: gfx.ShadeModel;
FLAT: gfx.ShadeModel;
FILL: gfx.PolygonMode;
LINE: gfx.PolygonMode;
POINT: gfx.PolygonMode;
POINT_LIST: gfx.PrimitiveMode;
LINE_LIST: gfx.PrimitiveMode;
LINE_STRIP: gfx.PrimitiveMode;
LINE_LOOP: gfx.PrimitiveMode;
TRIANGLE_LIST: gfx.PrimitiveMode;
TRIANGLE_STRIP: gfx.PrimitiveMode;
TRIANGLE_FAN: gfx.PrimitiveMode;
LINE_LIST_ADJACENCY: gfx.PrimitiveMode;
LINE_STRIP_ADJACENCY: gfx.PrimitiveMode;
TRIANGLE_LIST_ADJACENCY: gfx.PrimitiveMode;
TRIANGLE_STRIP_ADJACENCY: gfx.PrimitiveMode;
TRIANGLE_PATCH_ADJACENCY: gfx.PrimitiveMode;
QUAD_PATCH_LIST: gfx.PrimitiveMode;
ISO_LINE_LIST: gfx.PrimitiveMode;
LINEAR: gfx.Filter;
ANISOTROPIC: gfx.Filter;
WRAP: gfx.Address;
MIRROR: gfx.Address;
CLAMP: gfx.Address;
BORDER: gfx.Address;
LINE_WIDTH: gfx.DynamicStateFlagBit;
DEPTH_BIAS: gfx.DynamicStateFlagBit;
BLEND_CONSTANTS: gfx.DynamicStateFlagBit;
DEPTH_BOUNDS: gfx.DynamicStateFlagBit;
STENCIL_WRITE_MASK: gfx.DynamicStateFlagBit;
STENCIL_COMPARE_MASK: gfx.DynamicStateFlagBit;
TRUE: boolean;
FALSE: boolean;
};
export import Sampler = gfx.Sampler;
export import SamplerInfo = gfx.SamplerInfo;
export import SetIndex = pipeline.SetIndex;
export import RenderPriority = pipeline.RenderPriority;
export import GetTypeSize = gfx.GetTypeSize;
export { murmurhash2_32_gc } from "cc";
import { gfx, pipeline } from "cc";
export {};
}
declare module "cc/editor/particle-system-2d-utils" {
/**
* A png file reader
* @name PNGReader
* @mangle
*/
export class PNGReader {
constructor(data: number[]);
read(bytes: number): number[];
readUInt32(): number;
readUInt16(): number;
decodePixels(data: Uint8Array | number[] | null): Uint8Array;
copyToImageData(imageData: ImageData, pixels: Uint8Array): void;
decodePalette(): Uint8Array;
render(canvas: HTMLCanvasElement): void;
}
/**
* cc.tiffReader is a singleton object, it's a tiff file reader, it can parse byte array to draw into a canvas
* @class
* @name tiffReader
* @mangle
*/
export class TiffReader {
constructor();
getUint8(offset: number): number;
getUint16(offset: number): number;
getUint32(offset: number): number;
checkLittleEndian(): boolean;
hasTowel(): boolean;
getFieldTypeName(fieldType: ___private._cocos_particle_2d_tiff_reader__FieldTypeNamesKey): ___private._cocos_particle_2d_tiff_reader__FieldTypeNamesValue | null;
getFieldTagName(fieldTag: ___private._cocos_particle_2d_tiff_reader__FieldTagNamesKey): ___private._cocos_particle_2d_tiff_reader__FieldTagNamesValue;
getFieldTypeLength(fieldTypeName: ___private._cocos_particle_2d_tiff_reader__FieldTypeNamesValue): number;
getFieldValues(fieldTagName: ___private._cocos_particle_2d_tiff_reader__FieldTagNamesValue, fieldTypeName: ___private._cocos_particle_2d_tiff_reader__FieldTypeNamesValue, typeCount: number, valueOffset: number): string[] | number[];
getBytes(numBytes: number, offset: number): number;
getBits(numBits: number, byteOffset: number, bitOffset: number): {
bits: number;
byteOffset: number;
bitOffset: number;
};
parseFileDirectory(offset: number): void;
clampColorSample(colorSample: number, bitsPerSample: number): number;
reset(): void;
parseTIFF(tiffData: number[], canvas: HTMLCanvasElement): void;
}
export function getImageFormatByData(imgData: any): ImageFormat;
/**
* Image formats
* @enum macro.ImageFormat
*/
export enum ImageFormat {
/**
* @en Image Format:JPG
* @zh 图片格式:JPG
*/
JPG = 0,
/**
* @en Image Format:PNG
* @zh 图片格式:PNG
*/
PNG = 1,
/**
* @en Image Format:TIFF
* @zh 图片格式:TIFF
*/
TIFF = 2,
/**
* @en Image Format:WEBP
* @zh 图片格式:WEBP
*/
WEBP = 3,
/**
* @en Image Format:PVR
* @zh 图片格式:PVR
*/
PVR = 4,
/**
* @en Image Format:ETC
* @zh 图片格式:ETC
*/
ETC = 5,
/**
* @en Image Format:S3TC
* @zh 图片格式:S3TC
*/
S3TC = 6,
/**
* @en Image Format:ATITC
* @zh 图片格式:ATITC
*/
ATITC = 7,
/**
* @en Image Format:TGA
* @zh 图片格式:TGA
*/
TGA = 8,
/**
* @en Image Format:RAWDATA
* @zh 图片格式:RAWDATA
*/
RAWDATA = 9,
/**
* @en Image Format:UNKNOWN
* @zh 图片格式:UNKNOWN
*/
UNKNOWN = 10
}
import { __private as ___private } from "cc";
export {};
}
declare module "cc/editor/populate-internal-constants" {
/**
* Running in Web platform
*/
export const HTML5: boolean;
/**
* Running in native platform (mobile app, desktop app, or simulator).
*/
export const NATIVE: boolean;
/**
* Running in ANDROID platform
*/
export const ANDROID: boolean;
/**
* Running in IOS platform
*/
export const IOS: boolean;
/**
* Running in MAC platform
*/
export const MAC: boolean;
/**
* Running in WINDOWS platform
*/
export const WINDOWS: boolean;
/**
* Running in LINUX platform
*/
export const LINUX: boolean;
/**
* Running in OHOS platform
*/
export const OHOS: boolean;
/**
* Running in OPEN_HARMONY platform
*/
export const OPEN_HARMONY: boolean;
/**
* Running in the Wechat's mini game.
*/
export const WECHAT: boolean;
/**
* Running in the Wechat's mini program.
*/
export const WECHAT_MINI_PROGRAM: boolean;
/**
* Running in the xiaomi's quick game.
*/
export const XIAOMI: boolean;
/**
* Running in the alipay's mini game.
*/
export const ALIPAY: boolean;
/**
* Running in the taobao creative app.
*/
export const TAOBAO: boolean;
/**
* Running in the taobao mini game.
*/
export const TAOBAO_MINIGAME: boolean;
/**
* Running in the ByteDance's mini game.
*/
export const BYTEDANCE: boolean;
/**
* Running in the oppo's quick game.
*/
export const OPPO: boolean;
/**
* Running in the vivo's quick game.
*/
export const VIVO: boolean;
/**
* Running in the huawei's quick game.
*/
export const HUAWEI: boolean;
/**
* Running in the migu's quick game.
*/
export const MIGU: boolean;
/**
* Running in the honor's quick game.
*/
export const HONOR: boolean;
/**
* Running in the cocos runtime.
*/
export const COCOS_RUNTIME: boolean;
/**
* Running in the editor.
*/
export const EDITOR: boolean;
/**
* Run in editor but not in editor preview.
*/
export const EDITOR_NOT_IN_PREVIEW: boolean;
/**
* Preview in browser or simulator.
*/
export const PREVIEW: boolean;
/**
* Running in published project.
*/
export const BUILD: boolean;
/**
* Running in the engine's unit test.
*/
export const TEST: boolean;
/**
* Running debug mode.
*/
export const DEBUG: boolean;
/**
* Running in the server mode.
*/
export const SERVER_MODE: boolean;
/**
* Running in the editor or preview.
*/
export const DEV: boolean;
/**
* Running in mini game.
*/
export const MINIGAME: boolean;
/**
* Running in runtime based environment.
*/
export const RUNTIME_BASED: boolean;
/**
* Support JIT.
*/
export const SUPPORT_JIT: boolean;
/**
* Running in environment where using JSB as the JavaScript interface binding scheme.
*/
export const JSB: boolean;
/**
* This is an internal constant to determine whether pack physx libs.
*/
export const NOT_PACK_PHYSX_LIBS: boolean;
/**
* The network access mode.
* - 0 Client
* - 1 ListenServer
* - 2 HostServer
*/
export const NET_MODE: number;
/**
* Running with webgpu rendering backend.
*/
export const WEBGPU: boolean;
/**
* Native code (wasm/asmjs) bundle mode, 0: asmjs, 1: wasm, 2: both
*/
export const NATIVE_CODE_BUNDLE_MODE: number;
/**
* An internal constant to indicate whether we use wasm assets as minigame subpackage.
* This is useful when we need to reduce code size.
*/
export const WASM_SUBPACKAGE: boolean;
/**
* An internal constant to indicate whether we cull the meshopt wasm module and asm.js module.
*/
export const CULL_MESHOPT: boolean;
/**
* An internal constant to indicate whether we need to load spine wasm/asmjs module manually.
*/
export const LOAD_SPINE_MANUALLY: boolean;
/**
* An internal constant to indicate whether we need to load box2d wasm/asmjs module manually.
*/
export const LOAD_BOX2D_MANUALLY: boolean;
/**
* An internal constant to indicate whether we need to load bullet wasm/asmjs module manually.
*/
export const LOAD_BULLET_MANUALLY: boolean;
/**
* An internal constant to indicate whether we need to load physx wasm/asmjs module manually.
*/
export const LOAD_PHYSX_MANUALLY: boolean;
/**
* An internal constant to indicate whether we're using 3d module.
*/
export const USE_3D: boolean;
/**
* An internal constant to indicate whether we're using ui-skew module.
*/
export const USE_UI_SKEW: boolean;
/**
* An internal constant to indicate whether we're using xr module.
*/
export const USE_XR: boolean;
/**
* An internal constant to indicate whether we're using sorting-2d module.
*/
export const USE_SORTING_2D: boolean;
export {};
}
declare module "cc/editor/reflection-probe" {
export { ReflectionProbeManager } from "cc";
export {};
}
declare module "cc/editor/serialization" {
export class CCON {
constructor(document: unknown, chunks: Uint8Array[]);
get document(): unknown;
get chunks(): Uint8Array[];
}
export function encodeCCONBinary(ccon: CCON): Uint8Array;
export class BufferBuilder {
constructor();
get byteLength(): number;
alignAs(align: number): number;
append(view: ArrayBufferView): number;
get(): Uint8Array;
}
export function decodeCCONBinary(bytes: Uint8Array): CCON;
export function serializeBuiltinValueType(obj: ValueType): ___private._cocos_serialization_compiled_builtin_value_type__ValueTypeData | null;
import { ValueType, __private as ___private } from "cc";
export {};
}