@aura3d/engine 1.0.2 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +331 -16
- package/dist/animation/AnimationClipEvents.d.ts +57 -0
- package/dist/animation/AnimationClipEvents.d.ts.map +1 -0
- package/dist/animation/AnimationClipEvents.js +171 -0
- package/dist/animation/AnimationClipEvents.js.map +1 -0
- package/dist/animation/AnimationClipRegistry.d.ts +76 -0
- package/dist/animation/AnimationClipRegistry.d.ts.map +1 -0
- package/dist/animation/AnimationClipRegistry.js +130 -0
- package/dist/animation/AnimationClipRegistry.js.map +1 -0
- package/dist/animation/AnimationController.d.ts +168 -0
- package/dist/animation/AnimationController.d.ts.map +1 -0
- package/dist/animation/AnimationController.js +619 -0
- package/dist/animation/AnimationController.js.map +1 -0
- package/dist/animation/HumanoidRetargeting.d.ts +76 -0
- package/dist/animation/HumanoidRetargeting.d.ts.map +1 -0
- package/dist/animation/HumanoidRetargeting.js +331 -0
- package/dist/animation/HumanoidRetargeting.js.map +1 -0
- package/dist/animation/browser-index.d.ts +18 -0
- package/dist/animation/browser-index.d.ts.map +1 -1
- package/dist/animation/browser-index.js +13 -0
- package/dist/animation/browser-index.js.map +1 -1
- package/dist/animation/index.d.ts +16 -1
- package/dist/animation/index.d.ts.map +1 -1
- package/dist/animation/index.js +11 -1
- package/dist/animation/index.js.map +1 -1
- package/dist/animation/threejs-compatibility/AnimationDiagnostics.d.ts.map +1 -1
- package/dist/animation/threejs-compatibility/AnimationDiagnostics.js +3 -5
- package/dist/animation/threejs-compatibility/AnimationDiagnostics.js.map +1 -1
- package/dist/assets/GLTFAnimationRuntime.js +1 -1
- package/dist/assets/GLTFLoader.js +1 -1
- package/dist/aura3d-cli/cli.js +194 -8
- package/dist/aura3d-cli/cli.js.map +1 -1
- package/dist/aura3d-cli/index.d.ts +280 -3
- package/dist/aura3d-cli/index.d.ts.map +1 -1
- package/dist/aura3d-cli/index.js +886 -4
- package/dist/aura3d-cli/index.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge.d.ts +95 -0
- package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -0
- package/dist/aura3d-cli/pull-bridge.js +247 -0
- package/dist/aura3d-cli/pull-bridge.js.map +1 -0
- package/dist/create-aura3d/index.d.ts +1 -1
- package/dist/create-aura3d/index.d.ts.map +1 -1
- package/dist/create-aura3d/index.js +9 -2
- package/dist/create-aura3d/index.js.map +1 -1
- package/dist/editor-runtime/ProjectSerializer.d.ts +74 -1
- package/dist/editor-runtime/ProjectSerializer.d.ts.map +1 -1
- package/dist/editor-runtime/ProjectSerializer.js +123 -6
- package/dist/editor-runtime/ProjectSerializer.js.map +1 -1
- package/dist/editor-runtime/TimelineModel.d.ts +18 -0
- package/dist/editor-runtime/TimelineModel.d.ts.map +1 -1
- package/dist/editor-runtime/TimelineModel.js +67 -3
- package/dist/editor-runtime/TimelineModel.js.map +1 -1
- package/dist/editor-runtime/TimelineRuntimeBridge.d.ts +98 -0
- package/dist/editor-runtime/TimelineRuntimeBridge.d.ts.map +1 -0
- package/dist/editor-runtime/TimelineRuntimeBridge.js +186 -0
- package/dist/editor-runtime/TimelineRuntimeBridge.js.map +1 -0
- package/dist/editor-runtime/index.d.ts +3 -1
- package/dist/editor-runtime/index.d.ts.map +1 -1
- package/dist/editor-runtime/index.js +1 -0
- package/dist/editor-runtime/index.js.map +1 -1
- package/dist/engine/agent-api/AnimationController.d.ts +607 -0
- package/dist/engine/agent-api/AnimationController.d.ts.map +1 -0
- package/dist/engine/agent-api/AnimationController.js +2192 -0
- package/dist/engine/agent-api/AnimationController.js.map +1 -0
- package/dist/engine/agent-api/AssetEvidence.d.ts +88 -0
- package/dist/engine/agent-api/AssetEvidence.d.ts.map +1 -0
- package/dist/engine/agent-api/AssetEvidence.js +157 -0
- package/dist/engine/agent-api/AssetEvidence.js.map +1 -0
- package/dist/engine/agent-api/AuraAppHandle.d.ts +55 -0
- package/dist/engine/agent-api/AuraAppHandle.d.ts.map +1 -0
- package/dist/engine/agent-api/AuraAppHandle.js +15 -0
- package/dist/engine/agent-api/AuraAppHandle.js.map +1 -0
- package/dist/engine/agent-api/AuraVoiceBridge.d.ts +96 -0
- package/dist/engine/agent-api/AuraVoiceBridge.d.ts.map +1 -0
- package/dist/engine/agent-api/AuraVoiceBridge.js +370 -0
- package/dist/engine/agent-api/AuraVoiceBridge.js.map +1 -0
- package/dist/engine/agent-api/CartoonDirector.d.ts +95 -0
- package/dist/engine/agent-api/CartoonDirector.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonDirector.js +342 -0
- package/dist/engine/agent-api/CartoonDirector.js.map +1 -0
- package/dist/engine/agent-api/CartoonPerformance.d.ts +149 -0
- package/dist/engine/agent-api/CartoonPerformance.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonPerformance.js +317 -0
- package/dist/engine/agent-api/CartoonPerformance.js.map +1 -0
- package/dist/engine/agent-api/CartoonRenderQueue.d.ts +132 -0
- package/dist/engine/agent-api/CartoonRenderQueue.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonRenderQueue.js +385 -0
- package/dist/engine/agent-api/CartoonRenderQueue.js.map +1 -0
- package/dist/engine/agent-api/CharacterAssembly.d.ts +126 -0
- package/dist/engine/agent-api/CharacterAssembly.d.ts.map +1 -0
- package/dist/engine/agent-api/CharacterAssembly.js +280 -0
- package/dist/engine/agent-api/CharacterAssembly.js.map +1 -0
- package/dist/engine/agent-api/DialoguePerformance.d.ts +150 -0
- package/dist/engine/agent-api/DialoguePerformance.d.ts.map +1 -0
- package/dist/engine/agent-api/DialoguePerformance.js +335 -0
- package/dist/engine/agent-api/DialoguePerformance.js.map +1 -0
- package/dist/engine/agent-api/FrameLoop.d.ts +70 -0
- package/dist/engine/agent-api/FrameLoop.d.ts.map +1 -0
- package/dist/engine/agent-api/FrameLoop.js +165 -0
- package/dist/engine/agent-api/FrameLoop.js.map +1 -0
- package/dist/engine/agent-api/GameAssetValidation.d.ts +279 -0
- package/dist/engine/agent-api/GameAssetValidation.d.ts.map +1 -0
- package/dist/engine/agent-api/GameAssetValidation.js +719 -0
- package/dist/engine/agent-api/GameAssetValidation.js.map +1 -0
- package/dist/engine/agent-api/GameEvidence.d.ts +148 -0
- package/dist/engine/agent-api/GameEvidence.d.ts.map +1 -0
- package/dist/engine/agent-api/GameEvidence.js +269 -0
- package/dist/engine/agent-api/GameEvidence.js.map +1 -0
- package/dist/engine/agent-api/GameRuntime.d.ts +931 -0
- package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -0
- package/dist/engine/agent-api/GameRuntime.js +2229 -0
- package/dist/engine/agent-api/GameRuntime.js.map +1 -0
- package/dist/engine/agent-api/GameSceneBridge.d.ts +54 -0
- package/dist/engine/agent-api/GameSceneBridge.d.ts.map +1 -0
- package/dist/engine/agent-api/GameSceneBridge.js +110 -0
- package/dist/engine/agent-api/GameSceneBridge.js.map +1 -0
- package/dist/engine/agent-api/PromptAnimationContract.d.ts +278 -0
- package/dist/engine/agent-api/PromptAnimationContract.d.ts.map +1 -0
- package/dist/engine/agent-api/PromptAnimationContract.js +238 -0
- package/dist/engine/agent-api/PromptAnimationContract.js.map +1 -0
- package/dist/engine/agent-api/PromptAnimationEvidence.d.ts +183 -0
- package/dist/engine/agent-api/PromptAnimationEvidence.d.ts.map +1 -0
- package/dist/engine/agent-api/PromptAnimationEvidence.js +454 -0
- package/dist/engine/agent-api/PromptAnimationEvidence.js.map +1 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +100 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.js +36 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -0
- package/dist/engine/agent-api/ShotTimeline.d.ts +179 -0
- package/dist/engine/agent-api/ShotTimeline.d.ts.map +1 -0
- package/dist/engine/agent-api/ShotTimeline.js +264 -0
- package/dist/engine/agent-api/ShotTimeline.js.map +1 -0
- package/dist/engine/agent-api/VisemeController.d.ts +89 -0
- package/dist/engine/agent-api/VisemeController.d.ts.map +1 -0
- package/dist/engine/agent-api/VisemeController.js +207 -0
- package/dist/engine/agent-api/VisemeController.js.map +1 -0
- package/dist/engine/agent-api/game-kits/fighting.d.ts +123 -0
- package/dist/engine/agent-api/game-kits/fighting.d.ts.map +1 -0
- package/dist/engine/agent-api/game-kits/fighting.js +483 -0
- package/dist/engine/agent-api/game-kits/fighting.js.map +1 -0
- package/dist/engine/agent-api/game-kits/index.d.ts +15 -0
- package/dist/engine/agent-api/game-kits/index.d.ts.map +1 -0
- package/dist/engine/agent-api/game-kits/index.js +6 -0
- package/dist/engine/agent-api/game-kits/index.js.map +1 -0
- package/dist/engine/agent-api/humanoid-walk-runtime.d.ts +18 -81
- package/dist/engine/agent-api/humanoid-walk-runtime.d.ts.map +1 -1
- package/dist/engine/agent-api/humanoid-walk-runtime.js +4 -279
- package/dist/engine/agent-api/humanoid-walk-runtime.js.map +1 -1
- package/dist/engine/agent-api/index.d.ts +490 -4
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +759 -1802
- package/dist/engine/agent-api/index.js.map +1 -1
- package/dist/engine/agent-api/particle-fountain-runtime.d.ts +5 -80
- package/dist/engine/agent-api/particle-fountain-runtime.d.ts.map +1 -1
- package/dist/engine/agent-api/particle-fountain-runtime.js +7 -291
- package/dist/engine/agent-api/particle-fountain-runtime.js.map +1 -1
- package/dist/engine/agent-api/product-viewer-runtime.d.ts +17 -107
- package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
- package/dist/engine/agent-api/product-viewer-runtime.js +4 -330
- package/dist/engine/agent-api/product-viewer-runtime.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/physics/CollisionVolumes.d.ts +57 -0
- package/dist/physics/CollisionVolumes.d.ts.map +1 -0
- package/dist/physics/CollisionVolumes.js +159 -0
- package/dist/physics/CollisionVolumes.js.map +1 -0
- package/dist/physics/HitboxWorld.d.ts +229 -0
- package/dist/physics/HitboxWorld.d.ts.map +1 -0
- package/dist/physics/HitboxWorld.js +640 -0
- package/dist/physics/HitboxWorld.js.map +1 -0
- package/dist/physics/KinematicBody.d.ts +157 -0
- package/dist/physics/KinematicBody.d.ts.map +1 -0
- package/dist/physics/KinematicBody.js +405 -0
- package/dist/physics/KinematicBody.js.map +1 -0
- package/dist/physics/KinematicWorld.d.ts +58 -0
- package/dist/physics/KinematicWorld.d.ts.map +1 -0
- package/dist/physics/KinematicWorld.js +246 -0
- package/dist/physics/KinematicWorld.js.map +1 -0
- package/dist/physics/index.d.ts +4 -0
- package/dist/physics/index.d.ts.map +1 -1
- package/dist/physics/index.js +4 -0
- package/dist/physics/index.js.map +1 -1
- package/dist/rendering/ForwardPass.js +2 -2
- package/dist/rendering/ShaderLibrary.js +2 -2
- package/dist/rendering/SkinnedLitMaterial.js +3 -3
- package/dist/rendering/SkinnedUnlitMaterial.js +3 -3
- package/dist/scene/Renderable.js +2 -2
- package/dist/scripting/VisualGraph.d.ts +2 -1
- package/dist/scripting/VisualGraph.d.ts.map +1 -1
- package/dist/scripting/VisualGraph.js +118 -1
- package/dist/scripting/VisualGraph.js.map +1 -1
- package/dist/scripting/VisualGraphContext.d.ts +123 -0
- package/dist/scripting/VisualGraphContext.d.ts.map +1 -0
- package/dist/scripting/VisualGraphContext.js +2 -0
- package/dist/scripting/VisualGraphContext.js.map +1 -0
- package/dist/scripting/VisualGraphExecutor.d.ts +6 -1
- package/dist/scripting/VisualGraphExecutor.d.ts.map +1 -1
- package/dist/scripting/VisualGraphExecutor.js +364 -7
- package/dist/scripting/VisualGraphExecutor.js.map +1 -1
- package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
- package/dist/scripting/VisualNodeCatalog.d.ts.map +1 -1
- package/dist/scripting/VisualNodeCatalog.js +61 -1
- package/dist/scripting/VisualNodeCatalog.js.map +1 -1
- package/dist/scripting/index.d.ts +1 -0
- package/dist/scripting/index.d.ts.map +1 -1
- package/dist/scripting/index.js.map +1 -1
- package/package.json +193 -121
- package/templates/product-viewer/src/main.ts +1 -0
- package/dist/three-compat/ThreeApiInventory.d.ts +0 -18
- package/dist/three-compat/ThreeApiInventory.d.ts.map +0 -1
- package/dist/three-compat/ThreeApiInventory.js +0 -99
- package/dist/three-compat/ThreeApiInventory.js.map +0 -1
- package/dist/three-compat/ThreeCompatibilityMatrix.d.ts +0 -30
- package/dist/three-compat/ThreeCompatibilityMatrix.d.ts.map +0 -1
- package/dist/three-compat/ThreeCompatibilityMatrix.js +0 -69
- package/dist/three-compat/ThreeCompatibilityMatrix.js.map +0 -1
- package/dist/three-compat/animation/index.d.ts +0 -3
- package/dist/three-compat/animation/index.d.ts.map +0 -1
- package/dist/three-compat/animation/index.js +0 -2
- package/dist/three-compat/animation/index.js.map +0 -1
- package/dist/three-compat/cameras/index.d.ts +0 -24
- package/dist/three-compat/cameras/index.d.ts.map +0 -1
- package/dist/three-compat/cameras/index.js +0 -44
- package/dist/three-compat/cameras/index.js.map +0 -1
- package/dist/three-compat/controls/index.d.ts +0 -3
- package/dist/three-compat/controls/index.d.ts.map +0 -1
- package/dist/three-compat/controls/index.js +0 -2
- package/dist/three-compat/controls/index.js.map +0 -1
- package/dist/three-compat/core/Object3DCompat.d.ts +0 -62
- package/dist/three-compat/core/Object3DCompat.d.ts.map +0 -1
- package/dist/three-compat/core/Object3DCompat.js +0 -112
- package/dist/three-compat/core/Object3DCompat.js.map +0 -1
- package/dist/three-compat/core/RaycasterCompat.d.ts +0 -18
- package/dist/three-compat/core/RaycasterCompat.d.ts.map +0 -1
- package/dist/three-compat/core/RaycasterCompat.js +0 -28
- package/dist/three-compat/core/RaycasterCompat.js.map +0 -1
- package/dist/three-compat/core/SceneCompat.d.ts +0 -8
- package/dist/three-compat/core/SceneCompat.d.ts.map +0 -1
- package/dist/three-compat/core/SceneCompat.js +0 -8
- package/dist/three-compat/core/SceneCompat.js.map +0 -1
- package/dist/three-compat/geometries/index.d.ts +0 -67
- package/dist/three-compat/geometries/index.d.ts.map +0 -1
- package/dist/three-compat/geometries/index.js +0 -114
- package/dist/three-compat/geometries/index.js.map +0 -1
- package/dist/three-compat/helpers/index.d.ts +0 -40
- package/dist/three-compat/helpers/index.d.ts.map +0 -1
- package/dist/three-compat/helpers/index.js +0 -129
- package/dist/three-compat/helpers/index.js.map +0 -1
- package/dist/three-compat/index.d.ts +0 -32
- package/dist/three-compat/index.d.ts.map +0 -1
- package/dist/three-compat/index.js +0 -22
- package/dist/three-compat/index.js.map +0 -1
- package/dist/three-compat/lights/index.d.ts +0 -35
- package/dist/three-compat/lights/index.d.ts.map +0 -1
- package/dist/three-compat/lights/index.js +0 -39
- package/dist/three-compat/lights/index.js.map +0 -1
- package/dist/three-compat/loaders/index.d.ts +0 -54
- package/dist/three-compat/loaders/index.d.ts.map +0 -1
- package/dist/three-compat/loaders/index.js +0 -79
- package/dist/three-compat/loaders/index.js.map +0 -1
- package/dist/three-compat/materials/index.d.ts +0 -70
- package/dist/three-compat/materials/index.d.ts.map +0 -1
- package/dist/three-compat/materials/index.js +0 -85
- package/dist/three-compat/materials/index.js.map +0 -1
- package/dist/three-compat/math/index.d.ts +0 -34
- package/dist/three-compat/math/index.d.ts.map +0 -1
- package/dist/three-compat/math/index.js +0 -90
- package/dist/three-compat/math/index.js.map +0 -1
- package/dist/three-compat/migration/CompatibilityWarnings.d.ts +0 -6
- package/dist/three-compat/migration/CompatibilityWarnings.d.ts.map +0 -1
- package/dist/three-compat/migration/CompatibilityWarnings.js +0 -8
- package/dist/three-compat/migration/CompatibilityWarnings.js.map +0 -1
- package/dist/three-compat/migration/ImportMap.d.ts +0 -2
- package/dist/three-compat/migration/ImportMap.d.ts.map +0 -1
- package/dist/three-compat/migration/ImportMap.js +0 -10
- package/dist/three-compat/migration/ImportMap.js.map +0 -1
- package/dist/three-compat/migration/ThreeToA3DAdapter.d.ts +0 -8
- package/dist/three-compat/migration/ThreeToA3DAdapter.d.ts.map +0 -1
- package/dist/three-compat/migration/ThreeToA3DAdapter.js +0 -20
- package/dist/three-compat/migration/ThreeToA3DAdapter.js.map +0 -1
- package/dist/three-compat/postprocessing/index.d.ts +0 -2
- package/dist/three-compat/postprocessing/index.d.ts.map +0 -1
- package/dist/three-compat/postprocessing/index.js +0 -2
- package/dist/three-compat/postprocessing/index.js.map +0 -1
- package/dist/three-compat/render-targets/index.d.ts +0 -17
- package/dist/three-compat/render-targets/index.d.ts.map +0 -1
- package/dist/three-compat/render-targets/index.js +0 -29
- package/dist/three-compat/render-targets/index.js.map +0 -1
- package/dist/three-compat/shaders/index.d.ts +0 -3
- package/dist/three-compat/shaders/index.d.ts.map +0 -1
- package/dist/three-compat/shaders/index.js +0 -3
- package/dist/three-compat/shaders/index.js.map +0 -1
- package/dist/three-compat/textures/index.d.ts +0 -19
- package/dist/three-compat/textures/index.d.ts.map +0 -1
- package/dist/three-compat/textures/index.js +0 -24
- package/dist/three-compat/textures/index.js.map +0 -1
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import { createGameAssetValidationIssue, gameAssetValidationContractVersion, isAuraGameModelAssetRef } from "./GameAssetValidation.js";
|
|
2
|
+
const defaultAttachmentRoles = [
|
|
3
|
+
"hair",
|
|
4
|
+
"face",
|
|
5
|
+
"top",
|
|
6
|
+
"bottom",
|
|
7
|
+
"full-outfit",
|
|
8
|
+
"shoes",
|
|
9
|
+
"gloves",
|
|
10
|
+
"cape",
|
|
11
|
+
"accessory",
|
|
12
|
+
"weapon"
|
|
13
|
+
];
|
|
14
|
+
export function defineCharacterAssemblyPlan(plan) {
|
|
15
|
+
return plan;
|
|
16
|
+
}
|
|
17
|
+
export function characterAssemblyPart(asset, role, options = {}) {
|
|
18
|
+
return {
|
|
19
|
+
...options,
|
|
20
|
+
asset,
|
|
21
|
+
role
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function createCharacterAssemblyPlan(input) {
|
|
25
|
+
const baseBody = normalizeBaseBody(input.baseBody);
|
|
26
|
+
const hair = (input.hair ?? []).map((part) => normalizePart(part, "hair"));
|
|
27
|
+
const clothing = (input.clothing ?? []).map((part) => normalizePart(part, part.role ?? "top"));
|
|
28
|
+
const accessories = (input.accessories ?? []).map((part) => normalizePart(part, part.role ?? "accessory"));
|
|
29
|
+
const extraParts = (input.parts ?? []).map((part) => normalizePart(part, part.role ?? "prop"));
|
|
30
|
+
const parts = [...hair, ...clothing, ...accessories, ...extraParts];
|
|
31
|
+
return {
|
|
32
|
+
kind: "aura-character-assembly-plan",
|
|
33
|
+
contractId: gameAssetValidationContractVersion,
|
|
34
|
+
exportName: input.exportName,
|
|
35
|
+
baseBody,
|
|
36
|
+
parts,
|
|
37
|
+
palette: input.palette,
|
|
38
|
+
scale: input.scale ?? 1,
|
|
39
|
+
orientation: {
|
|
40
|
+
upAxis: input.orientation?.upAxis ?? "y",
|
|
41
|
+
forwardAxis: input.orientation?.forwardAxis ?? "z",
|
|
42
|
+
unitScale: input.orientation?.unitScale ?? 1,
|
|
43
|
+
pivot: input.orientation?.pivot ?? "feet",
|
|
44
|
+
origin: input.orientation?.origin,
|
|
45
|
+
notes: input.orientation?.notes
|
|
46
|
+
},
|
|
47
|
+
attachmentRules: input.attachmentRules ?? [],
|
|
48
|
+
gameplay: input.gameplay,
|
|
49
|
+
notes: input.notes,
|
|
50
|
+
generatedAt: input.generatedAt
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export function validateCharacterAssemblyPlan(plan, policy = {}) {
|
|
54
|
+
const checks = [];
|
|
55
|
+
const issues = [];
|
|
56
|
+
const parts = [plan.baseBody, ...plan.parts];
|
|
57
|
+
const requireAttachmentForRoles = policy.requireAttachmentForRoles ?? defaultAttachmentRoles;
|
|
58
|
+
addCheck(checkExportName(plan), checks, issues);
|
|
59
|
+
addCheck(checkBody(plan), checks, issues);
|
|
60
|
+
addCheck(checkAssemblyScale(plan, policy), checks, issues);
|
|
61
|
+
addCheck(checkAssemblyOrientation(plan, policy), checks, issues);
|
|
62
|
+
if (policy.requireBodyBounds)
|
|
63
|
+
addCheck(checkBodyBounds(plan), checks, issues);
|
|
64
|
+
for (const part of parts) {
|
|
65
|
+
addCheck(checkTypedPart(part), checks, issues);
|
|
66
|
+
if (part.required)
|
|
67
|
+
addCheck(checkRequiredPart(part), checks, issues);
|
|
68
|
+
if (part.readiness?.bounds || part.bounds)
|
|
69
|
+
addCheck(checkPartBounds(part), checks, issues);
|
|
70
|
+
if (part.readiness?.materials?.some((material) => material.visible === false || material.opacity === 0)) {
|
|
71
|
+
addCheck({
|
|
72
|
+
id: `part.${partLabel(part)}.material-visible`,
|
|
73
|
+
status: "fail",
|
|
74
|
+
assetId: part.asset.id,
|
|
75
|
+
message: `Character part "${partLabel(part)}" has invisible materials.`
|
|
76
|
+
}, checks, issues);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
for (const part of plan.parts) {
|
|
80
|
+
if (!requireAttachmentForRoles.includes(part.role))
|
|
81
|
+
continue;
|
|
82
|
+
addCheck(checkAttachment(plan, part, policy.maxAccessoryGap), checks, issues);
|
|
83
|
+
}
|
|
84
|
+
const errors = issues.filter((issue) => issue.severity === "error").length;
|
|
85
|
+
const warnings = issues.filter((issue) => issue.severity === "warning").length;
|
|
86
|
+
return {
|
|
87
|
+
kind: "aura-character-assembly-validation-report",
|
|
88
|
+
contractId: gameAssetValidationContractVersion,
|
|
89
|
+
plan,
|
|
90
|
+
ready: errors === 0,
|
|
91
|
+
summary: {
|
|
92
|
+
status: errors > 0 ? "fail" : warnings > 0 ? "warn" : "pass",
|
|
93
|
+
exportName: plan.exportName,
|
|
94
|
+
typedAssets: parts.filter((part) => isAuraGameModelAssetRef(part.asset)).length,
|
|
95
|
+
totalParts: parts.length,
|
|
96
|
+
requiredParts: parts.filter((part) => part.required).length,
|
|
97
|
+
attachedParts: plan.parts.filter((part) => Boolean(part.attachment) || hasPlanAttachment(plan, part)).length,
|
|
98
|
+
paletteColors: countPaletteColors(plan.palette),
|
|
99
|
+
errors,
|
|
100
|
+
warnings
|
|
101
|
+
},
|
|
102
|
+
checks,
|
|
103
|
+
issues
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
export function collectCharacterAssemblyAssets(plan) {
|
|
107
|
+
return [plan.baseBody.asset, ...plan.parts.map((part) => part.asset)];
|
|
108
|
+
}
|
|
109
|
+
function normalizeBaseBody(baseBody) {
|
|
110
|
+
if (isAssemblyPart(baseBody)) {
|
|
111
|
+
return {
|
|
112
|
+
...baseBody,
|
|
113
|
+
role: "base-body",
|
|
114
|
+
required: true
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
role: "base-body",
|
|
119
|
+
asset: baseBody,
|
|
120
|
+
required: true
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
function normalizePart(input, fallbackRole) {
|
|
124
|
+
return {
|
|
125
|
+
...input,
|
|
126
|
+
role: input.role ?? fallbackRole
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function isAssemblyPart(value) {
|
|
130
|
+
return Boolean(value.asset);
|
|
131
|
+
}
|
|
132
|
+
function checkExportName(plan) {
|
|
133
|
+
const valid = /^[a-zA-Z0-9][a-zA-Z0-9._-]*$/.test(plan.exportName);
|
|
134
|
+
return {
|
|
135
|
+
id: "assembly.export-name",
|
|
136
|
+
status: valid ? "pass" : "fail",
|
|
137
|
+
message: valid
|
|
138
|
+
? `Character export name "${plan.exportName}" is valid.`
|
|
139
|
+
: "Character export name must be stable and file-safe; use letters, numbers, dots, underscores, or dashes."
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
function checkBody(plan) {
|
|
143
|
+
const valid = isAuraGameModelAssetRef(plan.baseBody.asset);
|
|
144
|
+
return {
|
|
145
|
+
id: "assembly.base-body",
|
|
146
|
+
status: valid ? "pass" : "fail",
|
|
147
|
+
assetId: plan.baseBody.asset.id,
|
|
148
|
+
message: valid
|
|
149
|
+
? "Character assembly has a typed base body asset."
|
|
150
|
+
: "Character assembly is missing a typed base body asset."
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
function checkAssemblyScale(plan, policy) {
|
|
154
|
+
const minScale = policy.minScale ?? 0.05;
|
|
155
|
+
const maxScale = policy.maxScale ?? 20;
|
|
156
|
+
const valid = Number.isFinite(plan.scale) && plan.scale >= minScale && plan.scale <= maxScale;
|
|
157
|
+
return {
|
|
158
|
+
id: "assembly.scale",
|
|
159
|
+
status: valid ? "pass" : "fail",
|
|
160
|
+
message: valid
|
|
161
|
+
? `Character assembly scale is ${plan.scale}.`
|
|
162
|
+
: `Character assembly scale is ${plan.scale}; expected ${minScale} to ${maxScale}.`,
|
|
163
|
+
metrics: { scale: plan.scale, minScale, maxScale }
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
function checkAssemblyOrientation(plan, policy) {
|
|
167
|
+
const expectedUp = policy.expectedUpAxis ?? "y";
|
|
168
|
+
const allowedForward = policy.allowedForwardAxes ?? ["z", "-z"];
|
|
169
|
+
const valid = plan.orientation.upAxis === expectedUp && allowedForward.includes(plan.orientation.forwardAxis);
|
|
170
|
+
return {
|
|
171
|
+
id: "assembly.orientation",
|
|
172
|
+
status: valid ? "pass" : "fail",
|
|
173
|
+
message: valid
|
|
174
|
+
? `Character assembly orientation is ${plan.orientation.upAxis}-up and ${plan.orientation.forwardAxis}-forward.`
|
|
175
|
+
: `Character assembly orientation is ${plan.orientation.upAxis}-up and ${plan.orientation.forwardAxis}-forward; expected ${expectedUp}-up and one of ${allowedForward.join(", ")}.`
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
function checkBodyBounds(plan) {
|
|
179
|
+
const bounds = plan.baseBody.bounds ?? plan.baseBody.readiness?.bounds;
|
|
180
|
+
return {
|
|
181
|
+
id: "assembly.base-body-bounds",
|
|
182
|
+
status: bounds ? "pass" : "fail",
|
|
183
|
+
assetId: plan.baseBody.asset.id,
|
|
184
|
+
message: bounds ? "Base body bounds are available." : "Base body bounds are required for assembly validation."
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
function checkTypedPart(part) {
|
|
188
|
+
const valid = isAuraGameModelAssetRef(part.asset);
|
|
189
|
+
return {
|
|
190
|
+
id: `part.${partLabel(part)}.typed-ref`,
|
|
191
|
+
status: valid ? "pass" : "fail",
|
|
192
|
+
assetId: part.asset.id,
|
|
193
|
+
message: valid
|
|
194
|
+
? `Character part "${partLabel(part)}" uses a typed model asset.`
|
|
195
|
+
: `Character part "${partLabel(part)}" must use a typed model asset.`
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
function checkRequiredPart(part) {
|
|
199
|
+
return {
|
|
200
|
+
id: `part.${partLabel(part)}.required`,
|
|
201
|
+
status: part.asset ? "pass" : "fail",
|
|
202
|
+
assetId: part.asset.id,
|
|
203
|
+
message: part.asset ? `Required character part "${partLabel(part)}" is present.` : `Required character part "${partLabel(part)}" is missing.`
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
function checkPartBounds(part) {
|
|
207
|
+
const bounds = part.bounds ?? part.readiness?.bounds;
|
|
208
|
+
const size = bounds?.size ?? [0, 0, 0];
|
|
209
|
+
const valid = size.every((value) => Number.isFinite(value) && value >= 0);
|
|
210
|
+
return {
|
|
211
|
+
id: `part.${partLabel(part)}.bounds`,
|
|
212
|
+
status: valid ? "pass" : "fail",
|
|
213
|
+
assetId: part.asset.id,
|
|
214
|
+
message: valid ? `Character part "${partLabel(part)}" has valid bounds.` : `Character part "${partLabel(part)}" has invalid bounds.`
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
function checkAttachment(plan, part, maxAccessoryGap) {
|
|
218
|
+
const attachment = part.attachment ?? findPlanAttachment(plan, part);
|
|
219
|
+
if (!attachment) {
|
|
220
|
+
return {
|
|
221
|
+
id: `part.${partLabel(part)}.attachment`,
|
|
222
|
+
status: "fail",
|
|
223
|
+
assetId: part.asset.id,
|
|
224
|
+
message: `Character part "${partLabel(part)}" has no attachment rule and may float.`
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
if (attachment.allowFloating) {
|
|
228
|
+
return {
|
|
229
|
+
id: `part.${partLabel(part)}.attachment`,
|
|
230
|
+
status: "warn",
|
|
231
|
+
assetId: part.asset.id,
|
|
232
|
+
message: `Character part "${partLabel(part)}" explicitly allows floating.`
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
if (maxAccessoryGap !== undefined && attachment.maxGap !== undefined && attachment.maxGap > maxAccessoryGap) {
|
|
236
|
+
return {
|
|
237
|
+
id: `part.${partLabel(part)}.attachment-gap`,
|
|
238
|
+
status: "fail",
|
|
239
|
+
assetId: part.asset.id,
|
|
240
|
+
message: `Character part "${partLabel(part)}" max gap ${attachment.maxGap} exceeds ${maxAccessoryGap}.`
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
return {
|
|
244
|
+
id: `part.${partLabel(part)}.attachment`,
|
|
245
|
+
status: "pass",
|
|
246
|
+
assetId: part.asset.id,
|
|
247
|
+
message: `Character part "${partLabel(part)}" attaches to ${attachment.socket}.`
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
function addCheck(check, checks, issues) {
|
|
251
|
+
checks.push(check);
|
|
252
|
+
if (check.status === "fail") {
|
|
253
|
+
issues.push(createGameAssetValidationIssue("error", check.id, check.message, { assetId: check.assetId }));
|
|
254
|
+
}
|
|
255
|
+
if (check.status === "warn" || check.status === "missing") {
|
|
256
|
+
issues.push(createGameAssetValidationIssue("warning", check.id, check.message, { assetId: check.assetId }));
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
function partLabel(part) {
|
|
260
|
+
return part.name ?? `${part.role}:${part.asset.id}`;
|
|
261
|
+
}
|
|
262
|
+
function findPlanAttachment(plan, part) {
|
|
263
|
+
return plan.attachmentRules.find((rule) => rule.parentPartName === part.name || rule.parentRole === part.role);
|
|
264
|
+
}
|
|
265
|
+
function hasPlanAttachment(plan, part) {
|
|
266
|
+
return Boolean(findPlanAttachment(plan, part));
|
|
267
|
+
}
|
|
268
|
+
function countPaletteColors(palette) {
|
|
269
|
+
if (!palette)
|
|
270
|
+
return 0;
|
|
271
|
+
return Object.values(palette).filter(Boolean).length;
|
|
272
|
+
}
|
|
273
|
+
export const characterAssembly = {
|
|
274
|
+
definePlan: defineCharacterAssemblyPlan,
|
|
275
|
+
createPlan: createCharacterAssemblyPlan,
|
|
276
|
+
part: characterAssemblyPart,
|
|
277
|
+
validatePlan: validateCharacterAssemblyPlan,
|
|
278
|
+
collectAssets: collectCharacterAssemblyAssets
|
|
279
|
+
};
|
|
280
|
+
//# sourceMappingURL=CharacterAssembly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharacterAssembly.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CharacterAssembly.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { type PromptAnimationArtifactBase, type PromptAnimationFrameRate, type PromptAnimationId, type PromptAnimationLanguageCode, type PromptAnimationSeconds, type PromptAnimationValidationIssue } from "./PromptAnimationContract.js";
|
|
2
|
+
export type DialogueEmotion = "neutral" | "happy" | "excited" | "curious" | "concerned" | "sad" | "surprised" | "whisper" | "shout";
|
|
3
|
+
export type DialogueDeliveryDirection = "natural" | "slow" | "fast" | "sing-song" | "deadpan" | "dramatic";
|
|
4
|
+
export interface DialogueWordTiming {
|
|
5
|
+
readonly word: string;
|
|
6
|
+
readonly startTime: PromptAnimationSeconds;
|
|
7
|
+
readonly endTime: PromptAnimationSeconds;
|
|
8
|
+
readonly confidence?: number | undefined;
|
|
9
|
+
}
|
|
10
|
+
export interface DialogueLine {
|
|
11
|
+
readonly lineId: PromptAnimationId;
|
|
12
|
+
readonly speakerId: PromptAnimationId;
|
|
13
|
+
readonly text: string;
|
|
14
|
+
readonly language: PromptAnimationLanguageCode;
|
|
15
|
+
readonly audioFile?: string | undefined;
|
|
16
|
+
readonly startTime: PromptAnimationSeconds;
|
|
17
|
+
readonly endTime: PromptAnimationSeconds;
|
|
18
|
+
readonly wordTimings?: readonly DialogueWordTiming[] | undefined;
|
|
19
|
+
readonly emotion: DialogueEmotion | string;
|
|
20
|
+
readonly delivery: DialogueDeliveryDirection | string;
|
|
21
|
+
readonly direction?: string | undefined;
|
|
22
|
+
}
|
|
23
|
+
export interface DialogueTrackArtifact extends PromptAnimationArtifactBase<"dialogue-track"> {
|
|
24
|
+
readonly language: PromptAnimationLanguageCode;
|
|
25
|
+
readonly duration: PromptAnimationSeconds;
|
|
26
|
+
readonly lines: readonly DialogueLine[];
|
|
27
|
+
}
|
|
28
|
+
export interface CaptionCue {
|
|
29
|
+
readonly captionId: PromptAnimationId;
|
|
30
|
+
readonly lineId?: PromptAnimationId | undefined;
|
|
31
|
+
readonly shotId?: PromptAnimationId | undefined;
|
|
32
|
+
readonly sceneId?: PromptAnimationId | undefined;
|
|
33
|
+
readonly text: string;
|
|
34
|
+
readonly language: PromptAnimationLanguageCode;
|
|
35
|
+
readonly startTime: PromptAnimationSeconds;
|
|
36
|
+
readonly endTime: PromptAnimationSeconds;
|
|
37
|
+
readonly speakerId?: PromptAnimationId | undefined;
|
|
38
|
+
readonly lineSafe: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface CaptionTrackArtifact extends PromptAnimationArtifactBase<"caption-track"> {
|
|
41
|
+
readonly language: PromptAnimationLanguageCode;
|
|
42
|
+
readonly cues: readonly CaptionCue[];
|
|
43
|
+
}
|
|
44
|
+
export type AudioStemRole = "narration" | "dialogue" | "music" | "ambience" | "sfx";
|
|
45
|
+
export interface AudioStem {
|
|
46
|
+
readonly id: PromptAnimationId;
|
|
47
|
+
readonly role: AudioStemRole;
|
|
48
|
+
readonly path: string;
|
|
49
|
+
readonly startTime: PromptAnimationSeconds;
|
|
50
|
+
readonly duration: PromptAnimationSeconds;
|
|
51
|
+
readonly gainDb?: number | undefined;
|
|
52
|
+
readonly ducking?: "none" | "under-dialogue" | "under-narration" | undefined;
|
|
53
|
+
readonly language?: PromptAnimationLanguageCode | undefined;
|
|
54
|
+
}
|
|
55
|
+
export interface AudioStemManifestArtifact extends PromptAnimationArtifactBase<"audio-stems"> {
|
|
56
|
+
readonly duration: PromptAnimationSeconds;
|
|
57
|
+
readonly stems: readonly AudioStem[];
|
|
58
|
+
}
|
|
59
|
+
export interface DubMapEntry {
|
|
60
|
+
readonly originalStoryboardId?: PromptAnimationId | undefined;
|
|
61
|
+
readonly dubbedStoryboardId?: PromptAnimationId | undefined;
|
|
62
|
+
readonly originalStoryboardSceneId?: PromptAnimationId | undefined;
|
|
63
|
+
readonly dubbedStoryboardSceneId?: PromptAnimationId | undefined;
|
|
64
|
+
readonly originalLineId: PromptAnimationId;
|
|
65
|
+
readonly dubbedLineId: PromptAnimationId;
|
|
66
|
+
readonly originalCaptionId?: PromptAnimationId | undefined;
|
|
67
|
+
readonly dubbedCaptionId?: PromptAnimationId | undefined;
|
|
68
|
+
readonly originalCharacterId?: PromptAnimationId | undefined;
|
|
69
|
+
readonly dubbedCharacterId?: PromptAnimationId | undefined;
|
|
70
|
+
readonly originalSpeakerId: PromptAnimationId;
|
|
71
|
+
readonly dubbedSpeakerId: PromptAnimationId;
|
|
72
|
+
readonly originalLanguage: PromptAnimationLanguageCode;
|
|
73
|
+
readonly dubbedLanguage: PromptAnimationLanguageCode;
|
|
74
|
+
readonly originalShotId?: PromptAnimationId | undefined;
|
|
75
|
+
readonly dubbedShotId?: PromptAnimationId | undefined;
|
|
76
|
+
readonly originalSceneId?: PromptAnimationId | undefined;
|
|
77
|
+
readonly dubbedSceneId?: PromptAnimationId | undefined;
|
|
78
|
+
}
|
|
79
|
+
export interface DubMapArtifact extends PromptAnimationArtifactBase<"dub-map"> {
|
|
80
|
+
readonly sourceLanguage: PromptAnimationLanguageCode;
|
|
81
|
+
readonly targetLanguage: PromptAnimationLanguageCode;
|
|
82
|
+
readonly entries: readonly DubMapEntry[];
|
|
83
|
+
}
|
|
84
|
+
export interface DialogueTimingReport {
|
|
85
|
+
readonly lineCount: number;
|
|
86
|
+
readonly missingAudioFiles: readonly PromptAnimationId[];
|
|
87
|
+
readonly missingWordTimings: readonly PromptAnimationId[];
|
|
88
|
+
readonly missingCaptions: readonly PromptAnimationId[];
|
|
89
|
+
readonly captionDriftFrames: number;
|
|
90
|
+
readonly maxAllowedDriftFrames: number;
|
|
91
|
+
readonly issues: readonly PromptAnimationValidationIssue[];
|
|
92
|
+
}
|
|
93
|
+
export interface CaptionTimingProofLine {
|
|
94
|
+
readonly lineId: PromptAnimationId;
|
|
95
|
+
readonly captionId?: PromptAnimationId | undefined;
|
|
96
|
+
readonly startDriftFrames: number;
|
|
97
|
+
readonly endDriftFrames: number;
|
|
98
|
+
readonly maxDriftFrames: number;
|
|
99
|
+
readonly status: "pass" | "fail" | "missing";
|
|
100
|
+
}
|
|
101
|
+
export interface CaptionTimingProof {
|
|
102
|
+
readonly status: "pass" | "fail";
|
|
103
|
+
readonly frameRate: PromptAnimationFrameRate;
|
|
104
|
+
readonly maxAllowedDriftFrames: number;
|
|
105
|
+
readonly lineCount: number;
|
|
106
|
+
readonly cueCount: number;
|
|
107
|
+
readonly coveredLineIds: readonly PromptAnimationId[];
|
|
108
|
+
readonly missingLineIds: readonly PromptAnimationId[];
|
|
109
|
+
readonly orphanCaptionIds: readonly PromptAnimationId[];
|
|
110
|
+
readonly maxDriftFrames: number;
|
|
111
|
+
readonly lines: readonly CaptionTimingProofLine[];
|
|
112
|
+
readonly issues: readonly PromptAnimationValidationIssue[];
|
|
113
|
+
}
|
|
114
|
+
export declare function defineDialogueTrack<const TTrack extends DialogueTrackArtifact>(track: TTrack): TTrack;
|
|
115
|
+
export declare function defineCaptionTrack<const TTrack extends CaptionTrackArtifact>(track: TTrack): TTrack;
|
|
116
|
+
export declare function defineAudioStemManifest<const TManifest extends AudioStemManifestArtifact>(manifest: TManifest): TManifest;
|
|
117
|
+
export declare function defineDubMap<const TDubMap extends DubMapArtifact>(dubMap: TDubMap): TDubMap;
|
|
118
|
+
export declare function createDialogueTrack(input: {
|
|
119
|
+
readonly episodeId: PromptAnimationId;
|
|
120
|
+
readonly language: PromptAnimationLanguageCode;
|
|
121
|
+
readonly lines: readonly DialogueLine[];
|
|
122
|
+
readonly duration?: PromptAnimationSeconds | undefined;
|
|
123
|
+
readonly generatedAt?: string | undefined;
|
|
124
|
+
}): DialogueTrackArtifact;
|
|
125
|
+
export declare function createAudioStemManifest(input: {
|
|
126
|
+
readonly episodeId: PromptAnimationId;
|
|
127
|
+
readonly stems: readonly AudioStem[];
|
|
128
|
+
readonly duration?: PromptAnimationSeconds | undefined;
|
|
129
|
+
readonly generatedAt?: string | undefined;
|
|
130
|
+
}): AudioStemManifestArtifact;
|
|
131
|
+
export declare function lineSafeCaptionText(text: string, maxLineLength?: number): string;
|
|
132
|
+
export declare function deriveCaptionTrackFromDialogue(dialogue: DialogueTrackArtifact, options?: {
|
|
133
|
+
readonly maxLineLength?: number | undefined;
|
|
134
|
+
readonly captionIdByLineId?: Record<string, PromptAnimationId> | undefined;
|
|
135
|
+
readonly shotByLineId?: Record<string, PromptAnimationId> | undefined;
|
|
136
|
+
readonly sceneByLineId?: Record<string, PromptAnimationId> | undefined;
|
|
137
|
+
readonly generatedAt?: string | undefined;
|
|
138
|
+
}): CaptionTrackArtifact;
|
|
139
|
+
export declare function dialogueLineAtTime(dialogue: DialogueTrackArtifact, time: PromptAnimationSeconds, speakerId?: PromptAnimationId): DialogueLine | undefined;
|
|
140
|
+
export declare function captionCueAtTime(captions: CaptionTrackArtifact, time: PromptAnimationSeconds, speakerId?: PromptAnimationId): CaptionCue | undefined;
|
|
141
|
+
export declare function captionCuesForShot(captions: CaptionTrackArtifact, shotId: PromptAnimationId): readonly CaptionCue[];
|
|
142
|
+
export declare function createCaptionTimingProof(dialogue: DialogueTrackArtifact, captions: CaptionTrackArtifact, options?: {
|
|
143
|
+
readonly frameRate?: PromptAnimationFrameRate | undefined;
|
|
144
|
+
readonly maxAllowedDriftFrames?: number | undefined;
|
|
145
|
+
}): CaptionTimingProof;
|
|
146
|
+
export declare function validateDialogueTrack(dialogue: DialogueTrackArtifact): readonly PromptAnimationValidationIssue[];
|
|
147
|
+
export declare function validateCaptionTrack(captions: CaptionTrackArtifact): readonly PromptAnimationValidationIssue[];
|
|
148
|
+
export declare function validateAudioStemManifest(manifest: AudioStemManifestArtifact): readonly PromptAnimationValidationIssue[];
|
|
149
|
+
export declare function createDialogueTimingReport(dialogue: DialogueTrackArtifact, captions?: CaptionTrackArtifact, frameRate?: PromptAnimationFrameRate, maxTimingDriftFrames?: number): DialogueTimingReport;
|
|
150
|
+
//# sourceMappingURL=DialoguePerformance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialoguePerformance.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/DialoguePerformance.ts"],"names":[],"mappings":"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"}
|