@hybridlabor-api/aos 4.3.0 → 4.4.1
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/.claude/hooks/memb-inject.mjs +127 -0
- package/.claude/settings.json +10 -0
- package/README.de.md +0 -2
- package/README.md +0 -2
- package/README.pt.md +0 -2
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/docs/skills_table.md +0 -2
- package/installer.js +62 -10
- package/package.json +16 -2
- package/skills/global_config/aos-project-init/SKILL.md +194 -0
- package/skills/global_config/aos-project-init/assets/AGENTS.template.md +56 -0
- package/skills/global_config/aos-project-init/scripts/aos-project-doctor.mjs +137 -0
- package/skills/global_config/aos-setup/SKILL.md +231 -0
- package/skills/global_config/aos-setup/scripts/aos-doctor.mjs +287 -0
- package/skills/global_config/ask-tim/SKILL.md +2 -2
- package/assets/Give_AI_Agents_Control_of_Creative_Software.mp4 +0 -0
- package/mcps/RhinoMCP/connector/icon-dark.png +0 -3
- package/mcps/RhinoMCP/connector/icon-light.png +0 -3
- package/mcps/RhinoMCP/connector/screenshots/casa-rhino.png +0 -3
- package/mcps/RhinoMCP/docs/assets/css/custom.css +0 -640
- package/mcps/RhinoMCP/docs/content/_index.md +0 -88
- package/mcps/RhinoMCP/docs/content/docs/_index.md +0 -35
- package/mcps/RhinoMCP/docs/content/docs/advanced/_index.md +0 -37
- package/mcps/RhinoMCP/docs/content/docs/advanced/bulk-file-processing.md +0 -70
- package/mcps/RhinoMCP/docs/content/docs/advanced/headless-render-farm.md +0 -60
- package/mcps/RhinoMCP/docs/content/docs/advanced/make-this-parametric.md +0 -56
- package/mcps/RhinoMCP/docs/content/docs/advanced/sketch-to-model.md +0 -58
- package/mcps/RhinoMCP/docs/content/docs/advanced/upgrade-gh1-to-gh2.md +0 -51
- package/mcps/RhinoMCP/docs/content/docs/developers/_index.md +0 -39
- package/mcps/RhinoMCP/docs/content/docs/developers/dev-troubleshooting.md +0 -15
- package/mcps/RhinoMCP/docs/content/docs/developers/plugin-prototyping.md +0 -56
- package/mcps/RhinoMCP/docs/content/docs/developers/upgrade-gh1-to-gh2.md +0 -98
- package/mcps/RhinoMCP/docs/content/docs/developers/upgrade-to-netcore.md +0 -53
- package/mcps/RhinoMCP/docs/content/docs/developers/windows-to-cross-platform.md +0 -58
- package/mcps/RhinoMCP/docs/content/docs/developers/wpf-to-eto.md +0 -64
- package/mcps/RhinoMCP/docs/content/docs/getting-started/_index.md +0 -45
- package/mcps/RhinoMCP/docs/content/docs/getting-started/cc-plugin.md +0 -116
- package/mcps/RhinoMCP/docs/content/docs/getting-started/connector.md +0 -65
- package/mcps/RhinoMCP/docs/content/docs/getting-started/copilot.md +0 -61
- package/mcps/RhinoMCP/docs/content/docs/getting-started/lm-studio.md +0 -62
- package/mcps/RhinoMCP/docs/content/docs/troubleshooting.md +0 -66
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/_index.md +0 -39
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/_index.md +0 -25
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/build-grasshopper.md +0 -26
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/generate-variations.md +0 -25
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/inspect-and-report.md +0 -26
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/layers.md +0 -28
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/model-from-image.md +0 -27
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/recipes.md +0 -178
- package/mcps/RhinoMCP/docs/data/icons.yaml +0 -3
- package/mcps/RhinoMCP/docs/go.mod +0 -5
- package/mcps/RhinoMCP/docs/go.sum +0 -4
- package/mcps/RhinoMCP/docs/hugo.yaml +0 -78
- package/mcps/RhinoMCP/docs/layouts/_partials/sidebar.html +0 -333
- package/mcps/RhinoMCP/docs/layouts/docs/list.html +0 -29
- package/mcps/RhinoMCP/docs/layouts/docs/single.html +0 -29
- package/mcps/RhinoMCP/docs/layouts/partials/custom/head-end.html +0 -3
- package/mcps/RhinoMCP/docs/layouts/shortcodes/download-asset.html +0 -21
- package/mcps/RhinoMCP/docs/layouts/shortcodes/github.html +0 -21
- package/mcps/RhinoMCP/docs/layouts/shortcodes/prompt.html +0 -23
- package/mcps/RhinoMCP/docs/layouts/shortcodes/yak.html +0 -21
- package/mcps/RhinoMCP/docs/static/developer/sel-arc.png +0 -3
- package/mcps/RhinoMCP/docs/static/developer/voxelizer-gh2-conversion.png +0 -3
- package/mcps/RhinoMCP/docs/static/examples/ai-kettle.png +0 -3
- package/mcps/RhinoMCP/docs/static/examples/casa_rhino_shapes.png +0 -3
- package/mcps/RhinoMCP/docs/static/examples/kettle.jpg +0 -0
- package/mcps/RhinoMCP/docs/static/examples/raygun-layers.png +0 -3
- package/mcps/RhinoMCP/docs/static/examples/raygun-thumbnail.png +0 -3
- package/mcps/RhinoMCP/docs/static/examples/twisty-tower-gh.png +0 -3
- package/mcps/RhinoMCP/docs/static/favicon.svg +0 -26
- package/mcps/RhinoMCP/docs/static/images/landing-dark.png +0 -3
- package/mcps/RhinoMCP/docs/static/images/landing.png +0 -3
- package/mcps/RhinoMCP/docs/static/images/logo-dark.svg +0 -26
- package/mcps/RhinoMCP/docs/static/images/logo.svg +0 -26
- package/mcps/RhinoMCP/docs/static/local-llm.png +0 -3
- package/mcps/RhinoMCP/rhino/plugin/icon.png +0 -3
- package/mcps/RhinoMCP/tests/Acp.Tests/Acp.Tests.csproj +0 -29
- package/mcps/RhinoMCP/tests/Acp.Tests/CoverageTests.cs +0 -52
- package/mcps/RhinoMCP/tests/Acp.Tests/Fakes.cs +0 -90
- package/mcps/RhinoMCP/tests/Acp.Tests/GlobalUsings.cs +0 -1
- package/mcps/RhinoMCP/tests/Acp.Tests/LoopbackTests.cs +0 -59
- package/mcps/RhinoMCP/tests/Acp.Tests/RobustnessTests.cs +0 -124
- package/mcps/RhinoMCP/tests/Acp.Tests/SerializationTests.cs +0 -94
- package/mcps/RhinoMCP/tests/Integration.Tests/AdoptedSlotTests.cs +0 -136
- package/mcps/RhinoMCP/tests/Integration.Tests/AutoSpawnNotificationTests.cs +0 -63
- package/mcps/RhinoMCP/tests/Integration.Tests/CloseSlotAgentTests.cs +0 -56
- package/mcps/RhinoMCP/tests/Integration.Tests/CloseSlotTests.cs +0 -37
- package/mcps/RhinoMCP/tests/Integration.Tests/DocLifecycleTests.cs +0 -42
- package/mcps/RhinoMCP/tests/Integration.Tests/GlobalUsings.cs +0 -3
- package/mcps/RhinoMCP/tests/Integration.Tests/GrasshopperStartTests.cs +0 -56
- package/mcps/RhinoMCP/tests/Integration.Tests/Harness/ReturnResult.cs +0 -28
- package/mcps/RhinoMCP/tests/Integration.Tests/Harness/RhinoMcpFixture.cs +0 -90
- package/mcps/RhinoMCP/tests/Integration.Tests/Harness/RhinoMcpRouter.cs +0 -111
- package/mcps/RhinoMCP/tests/Integration.Tests/Harness/RhinoRouterPaths.cs +0 -83
- package/mcps/RhinoMCP/tests/Integration.Tests/Harness/RouterFixture.cs +0 -50
- package/mcps/RhinoMCP/tests/Integration.Tests/Integration.Tests.csproj +0 -31
- package/mcps/RhinoMCP/tests/Integration.Tests/ListSlotsShapeTests.cs +0 -55
- package/mcps/RhinoMCP/tests/Integration.Tests/ListSlotsTests.cs +0 -19
- package/mcps/RhinoMCP/tests/Integration.Tests/MacSharedProcessTests.cs +0 -87
- package/mcps/RhinoMCP/tests/Integration.Tests/MultiRouterTests.cs +0 -74
- package/mcps/RhinoMCP/tests/Integration.Tests/PluginToolTests.cs +0 -115
- package/mcps/RhinoMCP/tests/Integration.Tests/README.md +0 -35
- package/mcps/RhinoMCP/tests/Integration.Tests/RhinoCrashHandlingTests.cs +0 -107
- package/mcps/RhinoMCP/tests/Integration.Tests/SlotReapingTests.cs +0 -84
- package/mcps/RhinoMCP/tests/Integration.Tests/SpawnErrorTests.cs +0 -52
- package/mcps/RhinoMCP/tests/Integration.Tests/SpawnSlotTests.cs +0 -66
- package/mcps/RhinoMCP/tests/Integration.Tests/ToolDispatchBySlotTests.cs +0 -53
- package/mcps/RhinoMCP/tests/Integration.Tests/WindowsProcessIsolationTests.cs +0 -62
- package/mcps/RhinoMCP/tests/Router.Tests/CodegenTests.cs +0 -125
- package/mcps/RhinoMCP/tests/Router.Tests/ReturnResultTests.cs +0 -90
- package/mcps/RhinoMCP/tests/Router.Tests/RhinoCrashReportFinderTests.cs +0 -207
- package/mcps/RhinoMCP/tests/Router.Tests/RhinoLocatorOverrideTests.cs +0 -61
- package/mcps/RhinoMCP/tests/Router.Tests/RhinoLocatorTests.cs +0 -38
- package/mcps/RhinoMCP/tests/Router.Tests/RhinoManagerResolutionTests.cs +0 -151
- package/mcps/RhinoMCP/tests/Router.Tests/Router.Tests.csproj +0 -31
- package/mcps/RhinoMCP/tests/Router.Tests/RouterConfigTests.cs +0 -92
- package/mcps/RhinoMCP/tests/Router.Tests/SlotStoreLaunchingAbsenceTests.cs +0 -70
- package/mcps/RhinoMCP/tests/Router.Tests/SlotStorePortReservationTests.cs +0 -92
- package/mcps/RhinoMCP/tests/Router.Tests/SpawnDiagnosticsTests.cs +0 -100
- package/mcps/RhinoMCP/tests/Router.Tests/SpawnSlotToolDiagnoseTests.cs +0 -66
- package/mcps/RhinoMCP/tests/Server.Tests/McpConfigEditTests.cs +0 -223
- package/mcps/RhinoMCP/tests/Server.Tests/ParameterBinderTests.cs +0 -208
- package/mcps/RhinoMCP/tests/Server.Tests/ProtocolTests.cs +0 -200
- package/mcps/RhinoMCP/tests/Server.Tests/ResourceRegistryTests.cs +0 -218
- package/mcps/RhinoMCP/tests/Server.Tests/ResultUnwrapperTests.cs +0 -53
- package/mcps/RhinoMCP/tests/Server.Tests/SchemaBuilderTests.cs +0 -166
- package/mcps/RhinoMCP/tests/Server.Tests/Server.Tests.csproj +0 -40
- package/mcps/RhinoMCP/tests/StreamJson.Tests/AcpMessageMapperTests.cs +0 -82
- package/mcps/RhinoMCP/tests/StreamJson.Tests/AgentPromptsTests.cs +0 -56
- package/mcps/RhinoMCP/tests/StreamJson.Tests/AgentRegistryOverlayTests.cs +0 -88
- package/mcps/RhinoMCP/tests/StreamJson.Tests/AgentRegistryResolutionTests.cs +0 -152
- package/mcps/RhinoMCP/tests/StreamJson.Tests/AgentRunnerTurnTests.cs +0 -149
- package/mcps/RhinoMCP/tests/StreamJson.Tests/ClaudeStreamJsonParserTests.cs +0 -118
- package/mcps/RhinoMCP/tests/StreamJson.Tests/CodexStreamJsonParserTests.cs +0 -100
- package/mcps/RhinoMCP/tests/StreamJson.Tests/ConversationStorePruneTests.cs +0 -94
- package/mcps/RhinoMCP/tests/StreamJson.Tests/ConversationStoreRoundTripTests.cs +0 -70
- package/mcps/RhinoMCP/tests/StreamJson.Tests/ConversationTests.cs +0 -153
- package/mcps/RhinoMCP/tests/StreamJson.Tests/ConversationUsageTests.cs +0 -56
- package/mcps/RhinoMCP/tests/StreamJson.Tests/GlobalUsings.cs +0 -12
- package/mcps/RhinoMCP/tests/StreamJson.Tests/Shims.cs +0 -93
- package/mcps/RhinoMCP/tests/StreamJson.Tests/StreamJson.Tests.csproj +0 -56
- package/mcps/RhinoMCP/tests/StreamJson.Tests/StreamJsonAgentLoopbackTests.cs +0 -75
- package/mcps/RhinoMCP/tests/StreamJson.Tests/StreamJsonParserEdgeCaseTests.cs +0 -128
- package/mcps/RhinoMCP/tests/StreamJson.Tests/TokenUsageTests.cs +0 -40
- package/mcps/RhinoMCP/tests/launcher/launcher.test.mjs +0 -461
- package/mcps/RhinoMCP/tests/launcher/package.json +0 -8
- package/mcps/ae-mcp/docs/demo.png +0 -0
- package/mcps/ae-mcp/docs/demo1.png +0 -0
- package/mcps/ae-mcp/docs/demo3.png +0 -0
- package/mcps/ae-mcp/docs/video.png +0 -0
- package/mcps/after-effects-mcp/assets/MCP Auto Bridge.png +0 -0
- package/mcps/bdb-remoteos-mcp/tests/__init__.py +0 -1
- package/mcps/bdb-remoteos-mcp/tests/mock_incus.py +0 -60
- package/mcps/bdb-remoteos-mcp/tests/test_mcp_server.py +0 -27
- package/mcps/bdb-remoteos-mcp/tests/test_security_redteam.py +0 -349
- package/mcps/bdb-remoteos-mcp/tests/test_webhook.py +0 -61
- package/mcps/blender-mcp/assets/addon-instructions.png +0 -0
- package/mcps/blender-mcp/assets/hammer-icon.png +0 -0
- package/mcps/blender-mcp-server/docs/architecture.md +0 -209
- package/mcps/blender-mcp-server/docs/images/demo_render.png +0 -0
- package/mcps/blender-mcp-server/docs/python-execute-design.md +0 -515
- package/mcps/blender-mcp-server/tests/__init__.py +0 -0
- package/mcps/blender-mcp-server/tests/test_addon.py +0 -953
- package/mcps/blender-mcp-server/tests/test_server.py +0 -364
- package/mcps/davinci-mcp-professional/docs/README.md +0 -67
- package/mcps/davinci-mcp-professional/docs/html/README_8md.html +0 -113
- package/mcps/davinci-mcp-professional/docs/html/____init_____8py.html +0 -126
- package/mcps/davinci-mcp-professional/docs/html/____init_____8py.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/____init_____8py_source.html +0 -125
- package/mcps/davinci-mcp-professional/docs/html/__version_8py.html +0 -130
- package/mcps/davinci-mcp-professional/docs/html/__version_8py.js +0 -9
- package/mcps/davinci-mcp-professional/docs/html/__version_8py_source.html +0 -130
- package/mcps/davinci-mcp-professional/docs/html/annotated.html +0 -123
- package/mcps/davinci-mcp-professional/docs/html/annotated_dup.js +0 -21
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveClient-members.html +0 -131
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveClient.html +0 -706
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveClient.js +0 -26
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError.html +0 -143
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__coll__graph.map +0 -7
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__inherit__graph.map +0 -7
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError.html +0 -143
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__coll__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__inherit__graph.map +0 -9
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError.html +0 -143
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__coll__graph.map +0 -7
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__inherit__graph.map +0 -7
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1server_1_1DaVinciMCPServer-members.html +0 -115
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1server_1_1DaVinciMCPServer.html +0 -325
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1server_1_1DaVinciMCPServer.js +0 -10
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool-members.html +0 -110
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool.html +0 -188
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__coll__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__inherit__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject-members.html +0 -113
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject.html +0 -248
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject.js +0 -8
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager-members.html +0 -113
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager.html +0 -252
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager.js +0 -8
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__coll__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__inherit__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__coll__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__inherit__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp-members.html +0 -115
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp.html +0 -288
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp.js +0 -10
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__coll__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__inherit__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline-members.html +0 -110
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline.html +0 -188
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__coll__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__inherit__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classes.html +0 -111
- package/mcps/davinci-mcp-professional/docs/html/cli_8py.html +0 -135
- package/mcps/davinci-mcp-professional/docs/html/cli_8py.js +0 -11
- package/mcps/davinci-mcp-professional/docs/html/cli_8py_source.html +0 -249
- package/mcps/davinci-mcp-professional/docs/html/clipboard.js +0 -61
- package/mcps/davinci-mcp-professional/docs/html/cookie.js +0 -58
- package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe.html +0 -127
- package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe_dep.map +0 -4
- package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe_dep.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe_dep.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603.html +0 -128
- package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603_dep.map +0 -4
- package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603_dep.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603_dep.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef.html +0 -127
- package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef_dep.map +0 -4
- package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef_dep.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef_dep.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/dir_f94b29b73815c35a8351f4403bcc4f74.html +0 -129
- package/mcps/davinci-mcp-professional/docs/html/dir_f94b29b73815c35a8351f4403bcc4f74.js +0 -12
- package/mcps/davinci-mcp-professional/docs/html/doxygen.css +0 -2540
- package/mcps/davinci-mcp-professional/docs/html/doxygen.svg +0 -28
- package/mcps/davinci-mcp-professional/docs/html/doxygen_crawl.html +0 -170
- package/mcps/davinci-mcp-professional/docs/html/dynsections.js +0 -198
- package/mcps/davinci-mcp-professional/docs/html/files.html +0 -123
- package/mcps/davinci-mcp-professional/docs/html/files_dup.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/functions.html +0 -190
- package/mcps/davinci-mcp-professional/docs/html/functions_func.html +0 -184
- package/mcps/davinci-mcp-professional/docs/html/functions_vars.html +0 -110
- package/mcps/davinci-mcp-professional/docs/html/graph_legend.html +0 -165
- package/mcps/davinci-mcp-professional/docs/html/graph_legend.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/graph_legend.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/hierarchy.html +0 -123
- package/mcps/davinci-mcp-professional/docs/html/hierarchy.js +0 -18
- package/mcps/davinci-mcp-professional/docs/html/index.html +0 -200
- package/mcps/davinci-mcp-professional/docs/html/index.js +0 -9
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_0.map +0 -3
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_0.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_0.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_1.map +0 -3
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_1.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_1.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_2.map +0 -9
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_2.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_2.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_3.map +0 -13
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_3.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_3.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/inherits.html +0 -145
- package/mcps/davinci-mcp-professional/docs/html/jquery.js +0 -204
- package/mcps/davinci-mcp-professional/docs/html/menu.js +0 -131
- package/mcps/davinci-mcp-professional/docs/html/menudata.js +0 -73
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp.html +0 -209
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp.js +0 -34
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1__version.html +0 -260
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1cli.html +0 -303
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1resolve__client.html +0 -147
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1resolve__client.js +0 -8
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1resources.html +0 -140
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1server.html +0 -144
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1server.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1tools.html +0 -140
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1types.html +0 -216
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1types.js +0 -13
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1utils.html +0 -155
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1utils.js +0 -11
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1utils_1_1platform.html +0 -232
- package/mcps/davinci-mcp-professional/docs/html/namespacemembers.html +0 -173
- package/mcps/davinci-mcp-professional/docs/html/namespacemembers_func.html +0 -114
- package/mcps/davinci-mcp-professional/docs/html/namespacemembers_vars.html +0 -121
- package/mcps/davinci-mcp-professional/docs/html/namespaces.html +0 -119
- package/mcps/davinci-mcp-professional/docs/html/namespaces_dup.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/navtree.css +0 -327
- package/mcps/davinci-mcp-professional/docs/html/navtree.js +0 -901
- package/mcps/davinci-mcp-professional/docs/html/navtreedata.js +0 -68
- package/mcps/davinci-mcp-professional/docs/html/navtreeindex0.js +0 -212
- package/mcps/davinci-mcp-professional/docs/html/platform_8py.html +0 -130
- package/mcps/davinci-mcp-professional/docs/html/platform_8py.js +0 -8
- package/mcps/davinci-mcp-professional/docs/html/platform_8py_source.html +0 -245
- package/mcps/davinci-mcp-professional/docs/html/resolve__client_8py.html +0 -132
- package/mcps/davinci-mcp-professional/docs/html/resolve__client_8py.js +0 -8
- package/mcps/davinci-mcp-professional/docs/html/resolve__client_8py_source.html +0 -501
- package/mcps/davinci-mcp-professional/docs/html/resources_2____init_____8py.html +0 -125
- package/mcps/davinci-mcp-professional/docs/html/resources_2____init_____8py.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/resources_2____init_____8py_source.html +0 -169
- package/mcps/davinci-mcp-professional/docs/html/search/all_0.js +0 -22
- package/mcps/davinci-mcp-professional/docs/html/search/all_1.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/all_10.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/all_11.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/all_12.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/all_13.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/all_2.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/all_3.js +0 -15
- package/mcps/davinci-mcp-professional/docs/html/search/all_4.js +0 -26
- package/mcps/davinci-mcp-professional/docs/html/search/all_5.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/all_6.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/search/all_7.js +0 -25
- package/mcps/davinci-mcp-professional/docs/html/search/all_8.js +0 -7
- package/mcps/davinci-mcp-professional/docs/html/search/all_9.js +0 -9
- package/mcps/davinci-mcp-professional/docs/html/search/all_a.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/search/all_b.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/search/all_c.js +0 -9
- package/mcps/davinci-mcp-professional/docs/html/search/all_d.js +0 -10
- package/mcps/davinci-mcp-professional/docs/html/search/all_e.js +0 -11
- package/mcps/davinci-mcp-professional/docs/html/search/all_f.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/classes_0.js +0 -13
- package/mcps/davinci-mcp-professional/docs/html/search/files_0.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/files_1.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/files_2.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/files_3.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/files_4.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/files_5.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/functions_0.js +0 -9
- package/mcps/davinci-mcp-professional/docs/html/search/functions_1.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/functions_2.js +0 -10
- package/mcps/davinci-mcp-professional/docs/html/search/functions_3.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/functions_4.js +0 -25
- package/mcps/davinci-mcp-professional/docs/html/search/functions_5.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/search/functions_6.js +0 -7
- package/mcps/davinci-mcp-professional/docs/html/search/functions_7.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/functions_8.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/functions_9.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/functions_a.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/functions_b.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/search/namespaces_0.js +0 -13
- package/mcps/davinci-mcp-professional/docs/html/search/pages_0.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/pages_1.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/search/pages_2.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/pages_3.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/pages_4.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/pages_5.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/pages_6.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/pages_7.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/pages_8.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/pages_9.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/pages_a.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/search/pages_b.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/pages_c.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/pages_d.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/search.css +0 -377
- package/mcps/davinci-mcp-professional/docs/html/search/search.js +0 -708
- package/mcps/davinci-mcp-professional/docs/html/search/searchdata.js +0 -33
- package/mcps/davinci-mcp-professional/docs/html/search/variables_0.js +0 -14
- package/mcps/davinci-mcp-professional/docs/html/search/variables_1.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/variables_2.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/variables_3.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/variables_4.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/variables_5.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/variables_6.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/variables_7.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/variables_8.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/variables_9.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/server_8py.html +0 -129
- package/mcps/davinci-mcp-professional/docs/html/server_8py.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/server_8py_source.html +0 -318
- package/mcps/davinci-mcp-professional/docs/html/tabs.css +0 -1
- package/mcps/davinci-mcp-professional/docs/html/tools_2____init_____8py.html +0 -125
- package/mcps/davinci-mcp-professional/docs/html/tools_2____init_____8py.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/tools_2____init_____8py_source.html +0 -253
- package/mcps/davinci-mcp-professional/docs/html/types_8py.html +0 -137
- package/mcps/davinci-mcp-professional/docs/html/types_8py.js +0 -13
- package/mcps/davinci-mcp-professional/docs/html/types_8py_source.html +0 -309
- package/mcps/davinci-mcp-professional/docs/html/utils_2____init_____8py.html +0 -125
- package/mcps/davinci-mcp-professional/docs/html/utils_2____init_____8py.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/utils_2____init_____8py_source.html +0 -123
- package/mcps/davinci-mcp-professional/tests/README.md +0 -49
- package/mcps/davinci-mcp-professional/tests/__init__.py +0 -1
- package/mcps/davinci-mcp-professional/tests/conftest.py +0 -75
- package/mcps/davinci-mcp-professional/tests/test_security.py +0 -251
- package/mcps/davinci-resolve-mcp/docs/README.md +0 -56
- package/mcps/davinci-resolve-mcp/docs/SKILL.md +0 -1635
- package/mcps/davinci-resolve-mcp/docs/authoring/fuse-dctl-authoring.md +0 -242
- package/mcps/davinci-resolve-mcp/docs/authoring/script-plugin-authoring.md +0 -195
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/README.md +0 -152
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/category-patterns.md +0 -780
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/controls.md +0 -259
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/format.md +0 -568
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/gotchas.md +0 -168
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/thumbnails.md +0 -106
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Blur.setting +0 -46
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Color Tint.setting +0 -78
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Cross Dissolve.setting +0 -57
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Fade Title.setting +0 -111
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Glow.setting +0 -55
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Gradient.setting +0 -52
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Iris.setting +0 -127
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Lower Third.setting +0 -192
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Noise.setting +0 -74
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Solid Color.setting +0 -55
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Title.setting +0 -105
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Vignette.setting +0 -98
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Wipe.setting +0 -98
- package/mcps/davinci-resolve-mcp/docs/contributing.md +0 -82
- package/mcps/davinci-resolve-mcp/docs/guides/color-decision-guide.md +0 -427
- package/mcps/davinci-resolve-mcp/docs/guides/control-panel.md +0 -234
- package/mcps/davinci-resolve-mcp/docs/guides/editorial-decision-guide.md +0 -165
- package/mcps/davinci-resolve-mcp/docs/guides/media-analysis-guide.md +0 -763
- package/mcps/davinci-resolve-mcp/docs/guides/multicam-setup-guide.md +0 -138
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/01-overview.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/02-review-bin-grid.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/03-clip-detail.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/04-transcript.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/05-shot-detail.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/06-inventory.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/07-diagnostics-resolve.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/08-preferences-analysis.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/09-ai-console.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/10-history.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/11-edit-plans.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/install.md +0 -208
- package/mcps/davinci-resolve-mcp/docs/integrations/workflow-integrations.md +0 -120
- package/mcps/davinci-resolve-mcp/docs/kernels/README.md +0 -28
- package/mcps/davinci-resolve-mcp/docs/kernels/audio-fairlight-kernel.md +0 -86
- package/mcps/davinci-resolve-mcp/docs/kernels/color-grade-kernel.md +0 -103
- package/mcps/davinci-resolve-mcp/docs/kernels/extension-authoring-kernel.md +0 -101
- package/mcps/davinci-resolve-mcp/docs/kernels/fusion-composition-kernel.md +0 -121
- package/mcps/davinci-resolve-mcp/docs/kernels/media-pool-ingest-kernel.md +0 -147
- package/mcps/davinci-resolve-mcp/docs/kernels/project-lifecycle-kernel.md +0 -120
- package/mcps/davinci-resolve-mcp/docs/kernels/render-deliver-kernel.md +0 -92
- package/mcps/davinci-resolve-mcp/docs/kernels/review-annotation-kernel.md +0 -110
- package/mcps/davinci-resolve-mcp/docs/kernels/timeline-conform-interchange-kernel.md +0 -102
- package/mcps/davinci-resolve-mcp/docs/kernels/timeline-edit-kernel.md +0 -189
- package/mcps/davinci-resolve-mcp/docs/notes/codec-plugin-notes.md +0 -136
- package/mcps/davinci-resolve-mcp/docs/notes/dctl-notes.md +0 -234
- package/mcps/davinci-resolve-mcp/docs/notes/fusion-template-notes.md +0 -136
- package/mcps/davinci-resolve-mcp/docs/notes/lut-notes.md +0 -136
- package/mcps/davinci-resolve-mcp/docs/notes/openfx-notes.md +0 -120
- package/mcps/davinci-resolve-mcp/docs/process/release-process.md +0 -180
- package/mcps/davinci-resolve-mcp/docs/reference/api-coverage.md +0 -521
- package/mcps/davinci-resolve-mcp/docs/reference/api-limitations.md +0 -259
- package/mcps/davinci-resolve-mcp/docs/reference/readwrite-symmetry.md +0 -25
- package/mcps/davinci-resolve-mcp/docs/reference/resolve_scripting_api.txt +0 -1024
- package/mcps/davinci-resolve-mcp/tests/_error_envelope_helpers.py +0 -35
- package/mcps/davinci-resolve-mcp/tests/benchmark_server.py +0 -270
- package/mcps/davinci-resolve-mcp/tests/create_test_timeline.py +0 -177
- package/mcps/davinci-resolve-mcp/tests/live_api_gap_verification.py +0 -274
- package/mcps/davinci-resolve-mcp/tests/live_audio_fairlight_validation.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/live_auto_sync_settings_check.py +0 -76
- package/mcps/davinci-resolve-mcp/tests/live_color_grade_validation.py +0 -89
- package/mcps/davinci-resolve-mcp/tests/live_delete_governance_check.py +0 -71
- package/mcps/davinci-resolve-mcp/tests/live_duplicate_clips_validation.py +0 -831
- package/mcps/davinci-resolve-mcp/tests/live_edit_engine_validation.py +0 -277
- package/mcps/davinci-resolve-mcp/tests/live_enum_settings_check.py +0 -89
- package/mcps/davinci-resolve-mcp/tests/live_extension_authoring_validation.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/live_fuse_diagnose.py +0 -230
- package/mcps/davinci-resolve-mcp/tests/live_fuse_smoke.py +0 -250
- package/mcps/davinci-resolve-mcp/tests/live_fusion_composition_validation.py +0 -82
- package/mcps/davinci-resolve-mcp/tests/live_fusion_keyframe_validation.py +0 -116
- package/mcps/davinci-resolve-mcp/tests/live_fusion_mask_title_validation.py +0 -286
- package/mcps/davinci-resolve-mcp/tests/live_marker_validation.py +0 -439
- package/mcps/davinci-resolve-mcp/tests/live_media_pool_ingest_validation.py +0 -98
- package/mcps/davinci-resolve-mcp/tests/live_metadata_field_inventory_validation.py +0 -379
- package/mcps/davinci-resolve-mcp/tests/live_metadata_publish_validation.py +0 -192
- package/mcps/davinci-resolve-mcp/tests/live_multicam_setup_validation.py +0 -198
- package/mcps/davinci-resolve-mcp/tests/live_path_probe.py +0 -119
- package/mcps/davinci-resolve-mcp/tests/live_project_lifecycle_validation.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/live_render_deliver_validation.py +0 -82
- package/mcps/davinci-resolve-mcp/tests/live_review_annotation_validation.py +0 -91
- package/mcps/davinci-resolve-mcp/tests/live_script_smoke.py +0 -141
- package/mcps/davinci-resolve-mcp/tests/live_sync_event_validation.py +0 -165
- package/mcps/davinci-resolve-mcp/tests/live_timeline_conform_validation.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/live_v233_validation.py +0 -282
- package/mcps/davinci-resolve-mcp/tests/test-after-restart.bat +0 -83
- package/mcps/davinci-resolve-mcp/tests/test-after-restart.sh +0 -87
- package/mcps/davinci-resolve-mcp/tests/test_action_help.py +0 -47
- package/mcps/davinci-resolve-mcp/tests/test_action_list_drift.py +0 -163
- package/mcps/davinci-resolve-mcp/tests/test_ai_console_dispatch.py +0 -91
- package/mcps/davinci-resolve-mcp/tests/test_analysis_caps.py +0 -210
- package/mcps/davinci-resolve-mcp/tests/test_analysis_runs.py +0 -157
- package/mcps/davinci-resolve-mcp/tests/test_analysis_store.py +0 -366
- package/mcps/davinci-resolve-mcp/tests/test_api_limitations_doc.py +0 -56
- package/mcps/davinci-resolve-mcp/tests/test_api_truth.py +0 -64
- package/mcps/davinci-resolve-mcp/tests/test_api_truth_mitigations.py +0 -45
- package/mcps/davinci-resolve-mcp/tests/test_append_clip_infos_result_handling.py +0 -679
- package/mcps/davinci-resolve-mcp/tests/test_audio_fairlight_probe.py +0 -216
- package/mcps/davinci-resolve-mcp/tests/test_auto_run.py +0 -76
- package/mcps/davinci-resolve-mcp/tests/test_auto_sync_audio.py +0 -171
- package/mcps/davinci-resolve-mcp/tests/test_batch_cli.py +0 -253
- package/mcps/davinci-resolve-mcp/tests/test_brain_edits.py +0 -218
- package/mcps/davinci-resolve-mcp/tests/test_bridge_metrics.py +0 -52
- package/mcps/davinci-resolve-mcp/tests/test_bulk_match_to_hero.py +0 -219
- package/mcps/davinci-resolve-mcp/tests/test_caps_events_and_history.py +0 -147
- package/mcps/davinci-resolve-mcp/tests/test_caps_integration.py +0 -315
- package/mcps/davinci-resolve-mcp/tests/test_cdl_and_install_config.py +0 -372
- package/mcps/davinci-resolve-mcp/tests/test_clip_query.py +0 -57
- package/mcps/davinci-resolve-mcp/tests/test_cloud_settings.py +0 -62
- package/mcps/davinci-resolve-mcp/tests/test_color_grade_probe.py +0 -230
- package/mcps/davinci-resolve-mcp/tests/test_confirm_token.py +0 -85
- package/mcps/davinci-resolve-mcp/tests/test_confirm_token_preferences.py +0 -22
- package/mcps/davinci-resolve-mcp/tests/test_contracts.py +0 -81
- package/mcps/davinci-resolve-mcp/tests/test_create_subtitles_settings.py +0 -111
- package/mcps/davinci-resolve-mcp/tests/test_custom_timeline.py +0 -137
- package/mcps/davinci-resolve-mcp/tests/test_cut_executor.py +0 -87
- package/mcps/davinci-resolve-mcp/tests/test_cut_ir.py +0 -82
- package/mcps/davinci-resolve-mcp/tests/test_dashboard_transport.py +0 -47
- package/mcps/davinci-resolve-mcp/tests/test_deep_vision.py +0 -311
- package/mcps/davinci-resolve-mcp/tests/test_description_xml_shape.py +0 -71
- package/mcps/davinci-resolve-mcp/tests/test_destructive_decorator_coverage.py +0 -92
- package/mcps/davinci-resolve-mcp/tests/test_destructive_hook.py +0 -245
- package/mcps/davinci-resolve-mcp/tests/test_destructive_registry_drift.py +0 -108
- package/mcps/davinci-resolve-mcp/tests/test_edit_engine.py +0 -574
- package/mcps/davinci-resolve-mcp/tests/test_embeddings.py +0 -302
- package/mcps/davinci-resolve-mcp/tests/test_entities.py +0 -225
- package/mcps/davinci-resolve-mcp/tests/test_error_envelope.py +0 -179
- package/mcps/davinci-resolve-mcp/tests/test_exhaustive_wave_a.py +0 -101
- package/mcps/davinci-resolve-mcp/tests/test_extension_authoring_probe.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/test_extract_frames.py +0 -42
- package/mcps/davinci-resolve-mcp/tests/test_extract_source_frame_ranges.py +0 -129
- package/mcps/davinci-resolve-mcp/tests/test_failure_tracker.py +0 -103
- package/mcps/davinci-resolve-mcp/tests/test_fuse_dctl_authoring.py +0 -596
- package/mcps/davinci-resolve-mcp/tests/test_fusion_comp_targeting.py +0 -269
- package/mcps/davinci-resolve-mcp/tests/test_fusion_composition_probe.py +0 -156
- package/mcps/davinci-resolve-mcp/tests/test_fusion_group_settings.py +0 -284
- package/mcps/davinci-resolve-mcp/tests/test_fusion_mask_title.py +0 -205
- package/mcps/davinci-resolve-mcp/tests/test_fusion_node_ops.py +0 -212
- package/mcps/davinci-resolve-mcp/tests/test_governance_identity.py +0 -155
- package/mcps/davinci-resolve-mcp/tests/test_grade_evidence_base.py +0 -132
- package/mcps/davinci-resolve-mcp/tests/test_import.py +0 -153
- package/mcps/davinci-resolve-mcp/tests/test_improvements.py +0 -334
- package/mcps/davinci-resolve-mcp/tests/test_inventory_exclude_bins.py +0 -139
- package/mcps/davinci-resolve-mcp/tests/test_live_api.py +0 -315
- package/mcps/davinci-resolve-mcp/tests/test_marker_params.py +0 -234
- package/mcps/davinci-resolve-mcp/tests/test_mcp_prompts.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/test_mcp_resources.py +0 -117
- package/mcps/davinci-resolve-mcp/tests/test_mcp_transport.py +0 -74
- package/mcps/davinci-resolve-mcp/tests/test_media_analysis.py +0 -4637
- package/mcps/davinci-resolve-mcp/tests/test_media_pool_append_verification.py +0 -153
- package/mcps/davinci-resolve-mcp/tests/test_media_pool_changes.py +0 -105
- package/mcps/davinci-resolve-mcp/tests/test_media_pool_delete_governance.py +0 -69
- package/mcps/davinci-resolve-mcp/tests/test_media_pool_ingest_probe.py +0 -546
- package/mcps/davinci-resolve-mcp/tests/test_media_pool_walk.py +0 -79
- package/mcps/davinci-resolve-mcp/tests/test_multicam_setup.py +0 -178
- package/mcps/davinci-resolve-mcp/tests/test_object_inspection.py +0 -140
- package/mcps/davinci-resolve-mcp/tests/test_open_control_panel.py +0 -172
- package/mcps/davinci-resolve-mcp/tests/test_p1_param_validation.py +0 -57
- package/mcps/davinci-resolve-mcp/tests/test_p1_whitelist_and_delete.py +0 -81
- package/mcps/davinci-resolve-mcp/tests/test_page_lock.py +0 -52
- package/mcps/davinci-resolve-mcp/tests/test_panel_docs_drift.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/test_partial_success_manifest.py +0 -113
- package/mcps/davinci-resolve-mcp/tests/test_persistence_safety.py +0 -147
- package/mcps/davinci-resolve-mcp/tests/test_prefer_handle.py +0 -89
- package/mcps/davinci-resolve-mcp/tests/test_project_cleanup.py +0 -111
- package/mcps/davinci-resolve-mcp/tests/test_project_lifecycle_probe.py +0 -256
- package/mcps/davinci-resolve-mcp/tests/test_project_lint.py +0 -79
- package/mcps/davinci-resolve-mcp/tests/test_project_spec.py +0 -246
- package/mcps/davinci-resolve-mcp/tests/test_propose_grade.py +0 -116
- package/mcps/davinci-resolve-mcp/tests/test_provenance.py +0 -88
- package/mcps/davinci-resolve-mcp/tests/test_readback.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/test_readwrite_audit.py +0 -43
- package/mcps/davinci-resolve-mcp/tests/test_reel_name_writeback.py +0 -149
- package/mcps/davinci-resolve-mcp/tests/test_render_deliver_probe.py +0 -250
- package/mcps/davinci-resolve-mcp/tests/test_resolve20_api.py +0 -282
- package/mcps/davinci-resolve-mcp/tests/test_resolve21_actions.py +0 -386
- package/mcps/davinci-resolve-mcp/tests/test_resolve_ai_governance.py +0 -92
- package/mcps/davinci-resolve-mcp/tests/test_resolve_ai_ledger.py +0 -89
- package/mcps/davinci-resolve-mcp/tests/test_resolve_busy.py +0 -134
- package/mcps/davinci-resolve-mcp/tests/test_review_annotation_probe.py +0 -162
- package/mcps/davinci-resolve-mcp/tests/test_sampling_modes.py +0 -293
- package/mcps/davinci-resolve-mcp/tests/test_script_plugin.py +0 -750
- package/mcps/davinci-resolve-mcp/tests/test_shot_relationships.py +0 -254
- package/mcps/davinci-resolve-mcp/tests/test_spec_lint_wiring.py +0 -311
- package/mcps/davinci-resolve-mcp/tests/test_static_undefined_names.py +0 -45
- package/mcps/davinci-resolve-mcp/tests/test_structural_diff.py +0 -67
- package/mcps/davinci-resolve-mcp/tests/test_sync_detection.py +0 -213
- package/mcps/davinci-resolve-mcp/tests/test_thumbnail_image.py +0 -55
- package/mcps/davinci-resolve-mcp/tests/test_timeline_brain_db.py +0 -230
- package/mcps/davinci-resolve-mcp/tests/test_timeline_conform_probe.py +0 -229
- package/mcps/davinci-resolve-mcp/tests/test_timeline_editorial_helpers.py +0 -88
- package/mcps/davinci-resolve-mcp/tests/test_timeline_export_enum.py +0 -59
- package/mcps/davinci-resolve-mcp/tests/test_timeline_kernel_probe.py +0 -70
- package/mcps/davinci-resolve-mcp/tests/test_timeline_title_text_utils.py +0 -64
- package/mcps/davinci-resolve-mcp/tests/test_timeline_versioning.py +0 -419
- package/mcps/davinci-resolve-mcp/tests/test_tool_choice_hint.py +0 -42
- package/mcps/davinci-resolve-mcp/tests/test_tool_exposure.py +0 -159
- package/mcps/davinci-resolve-mcp/tests/test_tool_registration.py +0 -91
- package/mcps/davinci-resolve-mcp/tests/test_transcript_read.py +0 -74
- package/mcps/davinci-resolve-mcp/tests/test_update_check.py +0 -171
- package/mcps/davinci-resolve-mcp/tests/test_update_hardening.py +0 -171
- package/mcps/davinci-resolve-mcp/tests/test_update_history.py +0 -116
- package/mcps/davinci-resolve-mcp/tests/test_v232_helpers.py +0 -265
- package/mcps/davinci-resolve-mcp/tests/test_v233_helpers.py +0 -307
- package/mcps/davinci-resolve-mcp/tests/test_validation_guards.py +0 -108
- package/mcps/davinci-resolve-mcp/tests/test_verification_stats.py +0 -32
- package/mcps/davinci-resolve-mcp/tests/test_waveb_p2_p3.py +0 -65
- package/mcps/golem-rhino-mcp/Nexus-AI-Agents.png +0 -0
- package/mcps/golem-rhino-mcp/docs/ARCHITECTURE.md +0 -277
- package/mcps/golem-rhino-mcp/docs/PROTOCOL.md +0 -247
- package/mcps/golem-rhino-mcp/docs/TOOL_REFERENCE.md +0 -1571
- package/mcps/golem-rhino-mcp/docs/TROUBLESHOOTING.md +0 -396
- package/mcps/golem-rhino-mcp/mcp_server/Screenshot 2026-03-20 at 18.33.06.png +0 -0
- package/mcps/golem-rhino-mcp/mcp_server/Screenshot 2026-03-21 at 1.43.01.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CAIO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CEO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CFO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CHRO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CISO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CLO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CMO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/COO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CPO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CRO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CTO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/king-hippo.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/tier-0-csuite.png +0 -0
- package/mcps/golem-rhino-mcp/screenshots/city_monument.png +0 -0
- package/mcps/golem-rhino-mcp/screenshots/city_skyline.png +0 -0
- package/mcps/golem-rhino-mcp/screenshots/city_street.png +0 -0
- package/mcps/golem-rhino-mcp/screenshots/city_wide.png +0 -0
- package/mcps/golem-rhino-mcp/tests/__init__.py +0 -0
- package/mcps/golem-rhino-mcp/tests/conftest.py +0 -150
- package/mcps/golem-rhino-mcp/tests/test_connection.py +0 -543
- package/mcps/golem-rhino-mcp/tests/test_integration.py +0 -344
- package/mcps/golem-rhino-mcp/tests/test_models.py +0 -749
- package/mcps/golem-rhino-mcp/tests/test_protocol.py +0 -334
- package/mcps/golem-rhino-mcp/tests/test_tools_mock.py +0 -689
- package/mcps/tdmcp/.github/social-preview.png +0 -0
- package/mcps/tdmcp/docs/.vitepress/config.ts +0 -397
- package/mcps/tdmcp/docs/AI_PARTY_LLM_TRAINING_PLAN.md +0 -118
- package/mcps/tdmcp/docs/AI_PARTY_POC.md +0 -142
- package/mcps/tdmcp/docs/AI_PARTY_POC_PLAN.md +0 -112
- package/mcps/tdmcp/docs/CREATIVE_RAG.md +0 -346
- package/mcps/tdmcp/docs/DEPLOYMENT.md +0 -113
- package/mcps/tdmcp/docs/PROJECT_RAG.md +0 -477
- package/mcps/tdmcp/docs/ROADMAP.md +0 -1346
- package/mcps/tdmcp/docs/guide/ai-controlled-party.md +0 -215
- package/mcps/tdmcp/docs/guide/body-tracking.md +0 -169
- package/mcps/tdmcp/docs/guide/codex.md +0 -107
- package/mcps/tdmcp/docs/guide/components.md +0 -126
- package/mcps/tdmcp/docs/guide/dashboard-foh.md +0 -93
- package/mcps/tdmcp/docs/guide/faq.md +0 -62
- package/mcps/tdmcp/docs/guide/first-visual.md +0 -76
- package/mcps/tdmcp/docs/guide/generators.md +0 -230
- package/mcps/tdmcp/docs/guide/glossary.md +0 -123
- package/mcps/tdmcp/docs/guide/install.md +0 -200
- package/mcps/tdmcp/docs/guide/local-copilot.md +0 -154
- package/mcps/tdmcp/docs/guide/lops-integration.md +0 -133
- package/mcps/tdmcp/docs/guide/mcp-resources.md +0 -96
- package/mcps/tdmcp/docs/guide/mediapipe-adapters.md +0 -90
- package/mcps/tdmcp/docs/guide/physical-installations.md +0 -129
- package/mcps/tdmcp/docs/guide/prompt-cookbook.md +0 -2285
- package/mcps/tdmcp/docs/guide/recipes.md +0 -72
- package/mcps/tdmcp/docs/guide/session-profile.md +0 -90
- package/mcps/tdmcp/docs/guide/shader-park.md +0 -94
- package/mcps/tdmcp/docs/guide/show-timelines.md +0 -125
- package/mcps/tdmcp/docs/guide/troubleshooting.md +0 -121
- package/mcps/tdmcp/docs/guide/what-is-tdmcp.md +0 -62
- package/mcps/tdmcp/docs/index.md +0 -49
- package/mcps/tdmcp/docs/privacy.md +0 -85
- package/mcps/tdmcp/docs/pt/CREATIVE_RAG.md +0 -370
- package/mcps/tdmcp/docs/pt/PROJECT_RAG.md +0 -420
- package/mcps/tdmcp/docs/pt/guide/ai-controlled-party.md +0 -218
- package/mcps/tdmcp/docs/pt/guide/body-tracking.md +0 -175
- package/mcps/tdmcp/docs/pt/guide/codex.md +0 -113
- package/mcps/tdmcp/docs/pt/guide/components.md +0 -129
- package/mcps/tdmcp/docs/pt/guide/dashboard-foh.md +0 -95
- package/mcps/tdmcp/docs/pt/guide/faq.md +0 -62
- package/mcps/tdmcp/docs/pt/guide/first-visual.md +0 -81
- package/mcps/tdmcp/docs/pt/guide/generators.md +0 -243
- package/mcps/tdmcp/docs/pt/guide/glossary.md +0 -127
- package/mcps/tdmcp/docs/pt/guide/install.md +0 -196
- package/mcps/tdmcp/docs/pt/guide/local-copilot.md +0 -164
- package/mcps/tdmcp/docs/pt/guide/lops-integration.md +0 -143
- package/mcps/tdmcp/docs/pt/guide/mcp-resources.md +0 -96
- package/mcps/tdmcp/docs/pt/guide/mediapipe-adapters.md +0 -93
- package/mcps/tdmcp/docs/pt/guide/physical-installations.md +0 -135
- package/mcps/tdmcp/docs/pt/guide/prompt-cookbook.md +0 -2342
- package/mcps/tdmcp/docs/pt/guide/recipes.md +0 -59
- package/mcps/tdmcp/docs/pt/guide/session-profile.md +0 -92
- package/mcps/tdmcp/docs/pt/guide/shader-park.md +0 -95
- package/mcps/tdmcp/docs/pt/guide/show-timelines.md +0 -128
- package/mcps/tdmcp/docs/pt/guide/troubleshooting.md +0 -109
- package/mcps/tdmcp/docs/pt/guide/what-is-tdmcp.md +0 -61
- package/mcps/tdmcp/docs/pt/index.md +0 -49
- package/mcps/tdmcp/docs/pt/privacy.md +0 -91
- package/mcps/tdmcp/docs/pt/reference/architecture.md +0 -178
- package/mcps/tdmcp/docs/pt/reference/environment.md +0 -70
- package/mcps/tdmcp/docs/public/favicon.svg +0 -12
- package/mcps/tdmcp/docs/public/logo-400.png +0 -0
- package/mcps/tdmcp/docs/public/og-image.jpg +0 -0
- package/mcps/tdmcp/docs/public/robots.txt +0 -4
- package/mcps/tdmcp/docs/reference/API_STABILITY.md +0 -116
- package/mcps/tdmcp/docs/reference/architecture.md +0 -191
- package/mcps/tdmcp/docs/reference/bridge-api.md +0 -155
- package/mcps/tdmcp/docs/reference/cli.md +0 -288
- package/mcps/tdmcp/docs/reference/coverage-harness.md +0 -61
- package/mcps/tdmcp/docs/reference/environment.md +0 -116
- package/mcps/tdmcp/docs/reference/packages.md +0 -98
- package/mcps/tdmcp/docs/reference/tool-contract.md +0 -74
- package/mcps/tdmcp/docs/superpowers/plans/2026-05-29-shader-park-animus-integrations.md +0 -76
- package/mcps/tdmcp/docs/superpowers/plans/2026-06-02-doctor-fix-textport-auto-install.md +0 -131
- package/mcps/tdmcp/docs/superpowers/plans/2026-06-06-body-bubbles.md +0 -138
- package/mcps/tdmcp/docs/superpowers/plans/2026-06-08-deep-doppelganger-implementation.md +0 -201
- package/mcps/tdmcp/docs/superpowers/plans/2026-06-10-ai-party-ollama-integration.md +0 -55
- package/mcps/tdmcp/docs/superpowers/plans/2026-06-24-kinect-wall-harp-calibration-wizard.md +0 -53
- package/mcps/tdmcp/docs/superpowers/plans/2026-06-24-kinect-wall-harp-external-kinect.md +0 -286
- package/mcps/tdmcp/docs/superpowers/specs/2026-05-31-create-vector-lines-design.md +0 -308
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-01-ai-controlled-party-plan.md +0 -461
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-04-ai-party-ui24r-scene-arming-design.md +0 -296
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-08-ai-controlled-party-producer-poc.md +0 -232
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-08-deep-doppelganger-design.md +0 -136
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-10-hermes-ai-party-poc.md +0 -383
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-23-kinect-wall-harp-design.md +0 -340
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-24-kinect-environment-diagnostic-design.md +0 -151
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-24-kinect-wall-harp-external-kinect-design.md +0 -104
- package/mcps/tdmcp/training/showintent/data/curated/.gitkeep +0 -1
- package/mcps/tdmcp/training/showintent/data/curated/curated-approved.jsonl +0 -1
- package/mcps/tdmcp/training/showintent/data/curation_template.csv +0 -1
- package/mcps/tdmcp/training/showintent/data/generated/.gitkeep +0 -1
- package/mcps/tdmcp/training/showintent/data/generated/showintent-synthetic.jsonl +0 -2000
- package/mcps/tdmcp/training/showintent/data/raw/.gitkeep +0 -1
- package/mcps/tdmcp/training/showintent/data/splits/.gitkeep +0 -1
- package/mcps/tdmcp/training/showintent/data/splits/train-compact.jsonl +0 -1800
- package/mcps/tdmcp/training/showintent/data/splits/train.jsonl +0 -1800
- package/mcps/tdmcp/training/showintent/data/splits/validation-compact.jsonl +0 -200
- package/mcps/tdmcp/training/showintent/data/splits/validation.jsonl +0 -200
- package/mcps/touchdesigner-mcp/assets/import.png +0 -0
- package/mcps/touchdesigner-mcp/assets/nodes_list.png +0 -0
- package/mcps/touchdesigner-mcp/assets/particle_on_youtube.png +0 -0
- package/mcps/touchdesigner-mcp/assets/textport.png +0 -0
- package/mcps/touchdesigner-mcp/assets/tutorial.png +0 -0
- package/mcps/touchdesigner-mcp/assets/tutorial_docker.png +0 -0
- package/mcps/touchdesigner-mcp/docs/architecture.md +0 -1245
- package/mcps/touchdesigner-mcp/docs/development.ja.md +0 -197
- package/mcps/touchdesigner-mcp/docs/development.md +0 -212
- package/mcps/touchdesigner-mcp/docs/installation.ja.md +0 -370
- package/mcps/touchdesigner-mcp/docs/installation.md +0 -406
- package/mcps/unreal_mcp/Public/icon.png +0 -0
- package/mcps/unreal_mcp/docs/Engine-API-Reference.md +0 -2251
- package/mcps/unreal_mcp/docs/Roadmap.md +0 -2269
- package/mcps/unreal_mcp/docs/editor-plugin-extension.md +0 -373
- package/mcps/unreal_mcp/docs/handler-mapping.md +0 -1170
- package/mcps/unreal_mcp/docs/native-automation-progress.md +0 -431
- package/mcps/unreal_mcp/docs/testing-guide.md +0 -149
- package/mcps/unreal_mcp/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/Domains/Test/McpAutomationBridge_TestHandlers.cpp +0 -74
- package/mcps/unreal_mcp/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/Tests/McpCustomHandlerAliasTests.cpp +0 -191
- package/mcps/unreal_mcp/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/Tests/McpEnvironmentSnapshotSchemaTests.cpp +0 -192
- package/mcps/unreal_mcp/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/Tests/McpPropertyReflectionImportTests.cpp +0 -269
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAcpClientProtocolAutomation.cpp +0 -152
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAcpProtocolTestHelpers.cpp +0 -136
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAcpProtocolTestHelpers.h +0 -49
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAutomationTestDelegates.h +0 -12
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAutomationTests.cpp +0 -34
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAutomationWidgetHelpers.cpp +0 -116
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAutomationWidgetHelpers.h +0 -15
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentFakeAcpScript.cpp +0 -76
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelAutomation.h +0 -35
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelAutomationFixture.cpp +0 -118
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelHistoryChecks.cpp +0 -162
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelLayoutChecks.cpp +0 -158
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelTranscriptChecks.cpp +0 -117
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentStudioKitAutomationChecks.cpp +0 -155
- package/mcps/unreal_mcp/tests/AGENTS.md +0 -73
- package/mcps/unreal_mcp/tests/expectation-utils.mjs +0 -29
- package/mcps/unreal_mcp/tests/heartbeat-progress.test.mjs +0 -143
- package/mcps/unreal_mcp/tests/integration/get_ai_info_characterization.mjs +0 -216
- package/mcps/unreal_mcp/tests/integration.mjs +0 -94
- package/mcps/unreal_mcp/tests/mcp-tools/core/control-actor.test.mjs +0 -114
- package/mcps/unreal_mcp/tests/mcp-tools/core/control-editor.test.mjs +0 -86
- package/mcps/unreal_mcp/tests/mcp-tools/core/inspect.test.mjs +0 -85
- package/mcps/unreal_mcp/tests/mcp-tools/core/manage-asset.test.mjs +0 -302
- package/mcps/unreal_mcp/tests/mcp-tools/core/manage-blueprint.test.mjs +0 -331
- package/mcps/unreal_mcp/tests/mcp-tools/core/manage-level.test.mjs +0 -73
- package/mcps/unreal_mcp/tests/mcp-tools/core/manage-tools.test.mjs +0 -30
- package/mcps/unreal_mcp/tests/mcp-tools/core/system-control.test.mjs +0 -205
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/animation-physics.test.mjs +0 -277
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-ai.test.mjs +0 -299
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-character.test.mjs +0 -85
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-combat.test.mjs +0 -106
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-effect.test.mjs +0 -108
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-gas.test.mjs +0 -96
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-interaction.test.mjs +0 -122
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-inventory.test.mjs +0 -146
- package/mcps/unreal_mcp/tests/mcp-tools/utility/behavior-tree-get-tree.test.mjs +0 -233
- package/mcps/unreal_mcp/tests/mcp-tools/utility/manage-audio.test.mjs +0 -160
- package/mcps/unreal_mcp/tests/mcp-tools/utility/manage-behavior-tree.test.mjs +0 -223
- package/mcps/unreal_mcp/tests/mcp-tools/utility/manage-networking.test.mjs +0 -635
- package/mcps/unreal_mcp/tests/mcp-tools/utility/manage-sequence.test.mjs +0 -95
- package/mcps/unreal_mcp/tests/mcp-tools/world/build-environment.test.mjs +0 -282
- package/mcps/unreal_mcp/tests/mcp-tools/world/manage-geometry.test.mjs +0 -130
- package/mcps/unreal_mcp/tests/mcp-tools/world/manage-level-structure.test.mjs +0 -149
- package/mcps/unreal_mcp/tests/mcp-tools/world/manage-pcg.test.mjs +0 -471
- package/mcps/unreal_mcp/tests/mcp-tools/world/rendering-cases.cjs +0 -775
- package/mcps/unreal_mcp/tests/mcp-tools/world/rendering.test.mjs +0 -15
- package/mcps/unreal_mcp/tests/native-mcp-parity-audit.mjs +0 -260
- package/mcps/unreal_mcp/tests/native-mcp-source-parser.mjs +0 -229
- package/mcps/unreal_mcp/tests/native-mcp-typescript-parity-parser.mjs +0 -121
- package/mcps/unreal_mcp/tests/parameter-audit-cli.mjs +0 -23
- package/mcps/unreal_mcp/tests/parameter-audit-context.mjs +0 -14
- package/mcps/unreal_mcp/tests/parameter-audit-coverage.mjs +0 -164
- package/mcps/unreal_mcp/tests/parameter-audit-schema.mjs +0 -190
- package/mcps/unreal_mcp/tests/parameter-audit-suites.mjs +0 -218
- package/mcps/unreal_mcp/tests/parameter-combination-audit.mjs +0 -37
- package/mcps/unreal_mcp/tests/test-runner-response-utils.mjs +0 -132
- package/mcps/unreal_mcp/tests/test-runner.mjs +0 -1798
- package/mcps/unreal_mcp/tests/unit/automation/bridge_host_validation.test.ts +0 -165
- package/mcps/unreal_mcp/tests/unit/config.test.ts +0 -205
- package/mcps/unreal_mcp/tests/unit/native_mcp_parity_audit.test.ts +0 -281
- package/mcps/unreal_mcp/tests/unit/native_mcp_parity_comment_filtering.test.ts +0 -175
- package/mcps/unreal_mcp/tests/unit/parameter_audit_schema.test.ts +0 -273
- package/mcps/unreal_mcp/tests/unit/plugin/automation_event_stream_contracts.test.ts +0 -195
- package/mcps/unreal_mcp/tests/unit/plugin/environment_asset_name_contracts.test.ts +0 -115
- package/mcps/unreal_mcp/tests/unit/plugin/environment_build_adapter_contracts.test.ts +0 -377
- package/mcps/unreal_mcp/tests/unit/plugin/environment_snapshot_path_contracts.test.ts +0 -122
- package/mcps/unreal_mcp/tests/unit/plugin/handler_routing_contracts.test.ts +0 -120
- package/mcps/unreal_mcp/tests/unit/plugin/level_lighting_contracts.test.ts +0 -125
- package/mcps/unreal_mcp/tests/unit/plugin/plugin_manifest_contracts.test.ts +0 -154
- package/mcps/unreal_mcp/tests/unit/plugin/plugin_packaging_contracts.test.ts +0 -124
- package/mcps/unreal_mcp/tests/unit/plugin/runtime_behavior_contracts.test.ts +0 -372
- package/mcps/unreal_mcp/tests/unit/plugin/security_contracts.test.ts +0 -81
- package/mcps/unreal_mcp/tests/unit/plugin/source_structure.test.ts +0 -101
- package/mcps/unreal_mcp/tests/unit/plugin/source_structure_contracts.test.ts +0 -103
- package/mcps/unreal_mcp/tests/unit/plugin/websocket_origin_contracts.test.ts +0 -25
- package/mcps/unreal_mcp/tests/unit/server_shutdown_contracts.test.ts +0 -33
- package/mcps/unreal_mcp/tests/unit/source_structure.test.ts +0 -79
- package/mcps/unreal_mcp/tests/unit/test_runner.test.ts +0 -342
- package/mcps/unreal_mcp/tests/unit/test_runner_response_utils.test.ts +0 -105
- package/mcps/unreal_mcp/tests/unit/tools/asset_handlers_security.test.ts +0 -246
- package/mcps/unreal_mcp/tests/unit/tools/behavior_tree_get_tree.test.ts +0 -20
- package/mcps/unreal_mcp/tests/unit/tools/blueprint_handlers.test.ts +0 -122
- package/mcps/unreal_mcp/tests/unit/tools/editor.test.ts +0 -56
- package/mcps/unreal_mcp/tests/unit/tools/handler_structure.test.ts +0 -59
- package/mcps/unreal_mcp/tests/unit/tools/inspect_handlers.test.ts +0 -231
- package/mcps/unreal_mcp/tests/unit/tools/level.test.ts +0 -56
- package/mcps/unreal_mcp/tests/unit/tools/level_security.test.ts +0 -45
- package/mcps/unreal_mcp/tests/unit/tools/lighting_timeout_propagation.test.ts +0 -123
- package/mcps/windows-computer-use-mcp/cua-reports/app-1781542686.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/bridge-1781542694.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/bridge-ok-1781442393.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/bridge-ok-1781442915.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/bridge-snap-1781444105.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/bridge-snap-1781444214.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/bridge-snap-1781457035.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781440024.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781440234.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781442383.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781442906.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781444096.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781444209.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781457029.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/dashboard-1781542713.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/help-1781542738.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/logging-1781542722.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-dashboard-1781444225.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-dashboard-1781457051.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-help-1781444245.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-help-1781457075.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-logging-1781444232.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-logging-1781457059.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-settings-1781444239.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-settings-1781457067.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/settings-1781542730.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav-dashboard-1781442925.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav-help-1781442941.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav-logging-1781442930.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav-settings-1781442936.png +0 -0
- package/mcps/windows-computer-use-mcp/docs/ARCHITECTURE.md +0 -46
- package/mcps/windows-computer-use-mcp/docs/ASSESSMENT_BY_CURSOR_2026-06-14_CUA_NSIS.md +0 -383
- package/mcps/windows-computer-use-mcp/docs/AUTOMATION_ASSERT_SPEC.md +0 -202
- package/mcps/windows-computer-use-mcp/docs/CUA_PARITY.md +0 -39
- package/mcps/windows-computer-use-mcp/docs/DEVELOPMENT.md +0 -51
- package/mcps/windows-computer-use-mcp/docs/MEMOPS_CUA.md +0 -147
- package/mcps/windows-computer-use-mcp/docs/PRD.md +0 -93
- package/mcps/windows-computer-use-mcp/docs/README.md +0 -34
- package/mcps/windows-computer-use-mcp/docs/ROADMAP.md +0 -142
- package/mcps/windows-computer-use-mcp/docs/SAFETY.md +0 -138
- package/mcps/windows-computer-use-mcp/docs/TESTING.md +0 -90
- package/mcps/windows-computer-use-mcp/docs/TOOLS.md +0 -80
- package/mcps/windows-computer-use-mcp/docs/TOOL_DOCSTRING_STANDARD.md +0 -538
- package/mcps/windows-computer-use-mcp/docs/_stale/AHK_VS_PYWINAUTO_COMPARISON.md +0 -353
- package/mcps/windows-computer-use-mcp/docs/_stale/ASSESSMENT.md +0 -54
- package/mcps/windows-computer-use-mcp/docs/_stale/ASSESSMENT_2026-06-08.md +0 -309
- package/mcps/windows-computer-use-mcp/docs/_stale/COMPLETE_DOCUMENTATION_STRUCTURE.md +0 -5
- package/mcps/windows-computer-use-mcp/docs/_stale/CUA_ASSISTANT_TODO.md +0 -84
- package/mcps/windows-computer-use-mcp/docs/_stale/CUA_PARITY_ROADMAP.md +0 -81
- package/mcps/windows-computer-use-mcp/docs/_stale/CUA_ROADMAP.md +0 -306
- package/mcps/windows-computer-use-mcp/docs/_stale/DESKTOP_APP.md +0 -125
- package/mcps/windows-computer-use-mcp/docs/_stale/DOCUMENTATION_INDEX.md +0 -59
- package/mcps/windows-computer-use-mcp/docs/_stale/GLAMA_AI_CRITICISM_ANALYSIS.md +0 -259
- package/mcps/windows-computer-use-mcp/docs/_stale/GLAMA_AI_PLATFORM.md +0 -175
- package/mcps/windows-computer-use-mcp/docs/_stale/GLAMA_AI_RESCAN_GUIDE.md +0 -216
- package/mcps/windows-computer-use-mcp/docs/_stale/GOLD_STATUS_ACHIEVEMENT.md +0 -197
- package/mcps/windows-computer-use-mcp/docs/_stale/LLM_REPO_CONTEXT.md +0 -7
- package/mcps/windows-computer-use-mcp/docs/_stale/MCP_PRODUCTION_CHECKLIST.md +0 -105
- package/mcps/windows-computer-use-mcp/docs/_stale/OFFICE_BACKGROUND_MATRIX.md +0 -19
- package/mcps/windows-computer-use-mcp/docs/_stale/OPERATOR_PROTOCOL.md +0 -37
- package/mcps/windows-computer-use-mcp/docs/_stale/ORGANIZATION_SUMMARY.md +0 -305
- package/mcps/windows-computer-use-mcp/docs/_stale/RENAME-TO-AUTOMATION-MCP.md +0 -191
- package/mcps/windows-computer-use-mcp/docs/_stale/STATUS_REPORT.md +0 -288
- package/mcps/windows-computer-use-mcp/docs/_stale/TARGETS_PAGE_SKETCH.md +0 -977
- package/mcps/windows-computer-use-mcp/docs/_stale/TOOL_DOCSTRING_MIGRATION.md +0 -365
- package/mcps/windows-computer-use-mcp/docs/_stale/USAGE_SCENARIOS.md +0 -697
- package/mcps/windows-computer-use-mcp/docs/_stale/desktop-state-tool.md +0 -464
- package/mcps/windows-computer-use-mcp/docs/_stale/development/README.md +0 -18
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/AI_DEVELOPMENT_RULES.md +0 -928
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/AI_DEVELOPMENT_TOOLS_COMPARISON.md +0 -364
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/BULLETPROOF_MCP_GUIDE.md +0 -793
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/DEBUGGING_LESSONS_LEARNED.md +0 -635
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/DEVELOPMENT_PAIN_POINTS.md +0 -699
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/FILE_VALIDATION_COMPLETE.md +0 -410
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/FILE_VALIDATION_GUIDE.md +0 -575
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/LINK_PARSER_FIX.md +0 -769
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/MCP_SYNC_DEBUGGING_GUIDE.md +0 -512
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/PYTHON_DEPENDENCY_HELL_FIX.md +0 -568
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/PYTHON_SNIPPETS_USAGE_GUIDE.md +0 -717
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/README.md +0 -25
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/SYNC_HEALTH_IMPROVEMENTS_SUMMARY.md +0 -496
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/SYNC_HEALTH_INTEGRATION.md +0 -381
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/SYSTEMATIC_PROJECT_UPDATES.md +0 -532
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/mcp-prompt-templates-vs-docstrings.md +0 -657
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/mcp-tool-docstring-best-practices.md +0 -439
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/mcp-tool-documentation-standards.md +0 -1153
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/CI_CD_GLAMA_OPTIMIZATION_GUIDE.md +0 -850
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_AI_CRITICISM_ANALYSIS.md +0 -259
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_AI_OPTIMIZATION_SUMMARY.md +0 -204
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_AI_PLATFORM.md +0 -175
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_AI_RESCAN_GUIDE.md +0 -216
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_GITHUB_APP_SETUP.md +0 -199
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_INTEGRATION.md +0 -181
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_RESCAN_EMAIL.txt +0 -43
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GOLD_STATUS_ACHIEVEMENT.md +0 -197
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GOLD_STATUS_UPDATE_2025_10_08.md +0 -378
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/README.md +0 -632
- package/mcps/windows-computer-use-mcp/docs/_stale/legacy/requirements-fastmcp.txt +0 -8
- package/mcps/windows-computer-use-mcp/docs/_stale/legacy/requirements_minimal.txt +0 -4
- package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/CLAUDE_DESKTOP_DEBUGGING.md +0 -561
- package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/CONTAINERIZATION_GUIDELINES.md +0 -707
- package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/MCP_PRODUCTION_CHECKLIST.md +0 -101
- package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/MONITORING_STACK_DEPLOYMENT.md +0 -532
- package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/README.md +0 -266
- package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/TROUBLESHOOTING_FASTMCP_2.12.md +0 -670
- package/mcps/windows-computer-use-mcp/docs/_stale/mcpb-packaging/MCPB_BUILDING_GUIDE.md +0 -1921
- package/mcps/windows-computer-use-mcp/docs/_stale/mcpb-packaging/MCPB_IMPLEMENTATION_SUMMARY.md +0 -387
- package/mcps/windows-computer-use-mcp/docs/_stale/mcpb-packaging/PYPI_PUBLISHING_GUIDE.md +0 -789
- package/mcps/windows-computer-use-mcp/docs/_stale/mcpb-packaging/README.md +0 -404
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/COMMUNITY_AND_SUPPORT.md +0 -976
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/LANGUAGE_SERVER_PROTOCOL_EXPLAINED.md +0 -416
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/MCP_TOOL_CORRUPTION_ISSUE.md +0 -279
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NOTEPADPP_ALTERNATIVES.md +0 -308
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NOTEPADPP_COLOR_FIX_2025_10_08.md +0 -187
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NOTEPADPP_COMPLETE_GUIDE.md +0 -1259
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NOTEPADPP_NUCLEAR_REINSTALL_2025_10_08.md +0 -196
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NPP_WHITE_ON_WHITE_BATTLE_PLAN.md +0 -336
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/PLUGIN_ECOSYSTEM_COMPREHENSIVE.md +0 -887
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/README.md +0 -472
- package/mcps/windows-computer-use-mcp/docs/_stale/repository-protection/BACKUP_AND_RECOVERY_GUIDE.md +0 -455
- package/mcps/windows-computer-use-mcp/docs/_stale/repository-protection/BRANCH_PROTECTION_SETTINGS.md +0 -236
- package/mcps/windows-computer-use-mcp/docs/_stale/repository-protection/BRANCH_STRATEGY_AND_AI_WORKFLOW.md +0 -616
- package/mcps/windows-computer-use-mcp/docs/_stale/repository-protection/README.md +0 -333
- package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_COPY_TO_OTHER_REPOS.md +0 -159
- package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_GUIDE.md +0 -632
- package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_INSTALL_AND_TEST.md +0 -569
- package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_NEXT_STEPS.md +0 -351
- package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_QUICK_INSTALL.md +0 -195
- package/mcps/windows-computer-use-mcp/docs/_stale/state-tool-implementation.md +0 -498
- package/mcps/windows-computer-use-mcp/docs/composing-with-playwright.md +0 -55
- package/mcps/windows-computer-use-mcp/docs/cua-nsis-certification.md +0 -101
- package/mcps/windows-computer-use-mcp/docs/ocr.md +0 -107
- package/mcps/windows-computer-use-mcp/docs/py-stack.md +0 -47
- package/mcps/windows-computer-use-mcp/native/icons/icon.png +0 -0
- package/mcps/windows-computer-use-mcp/screenshot_demo.png +0 -0
- package/mcps/windows-computer-use-mcp/src/windows_computer_use_mcp/templates/vroidstudio/default/export_complete_toast.png +0 -0
- package/mcps/windows-computer-use-mcp/src/windows_computer_use_mcp/templates/vroidstudio/default/export_dialog_title.png +0 -0
- package/mcps/windows-computer-use-mcp/src/windows_computer_use_mcp/templates/vroidstudio/default/file_dialog_path_field.png +0 -0
- package/mcps/windows-computer-use-mcp/src/windows_computer_use_mcp/templates/vroidstudio/default/sample_tile_female.png +0 -0
- package/mcps/windows-computer-use-mcp/tests/README.md +0 -155
- package/mcps/windows-computer-use-mcp/tests/__init__.py +0 -1
- package/mcps/windows-computer-use-mcp/tests/conftest.py +0 -281
- package/mcps/windows-computer-use-mcp/tests/conftest_env.py +0 -116
- package/mcps/windows-computer-use-mcp/tests/e2e/conftest.py +0 -96
- package/mcps/windows-computer-use-mcp/tests/e2e/test_libreoffice_cua_loop.py +0 -72
- package/mcps/windows-computer-use-mcp/tests/test_app_integration.py +0 -83
- package/mcps/windows-computer-use-mcp/tests/test_app_profiles.py +0 -28
- package/mcps/windows-computer-use-mcp/tests/test_automation_assert.py +0 -185
- package/mcps/windows-computer-use-mcp/tests/test_automation_dialog.py +0 -43
- package/mcps/windows-computer-use-mcp/tests/test_automation_elements.py +0 -138
- package/mcps/windows-computer-use-mcp/tests/test_automation_keyboard.py +0 -57
- package/mcps/windows-computer-use-mcp/tests/test_automation_mouse.py +0 -57
- package/mcps/windows-computer-use-mcp/tests/test_automation_shortcut.py +0 -41
- package/mcps/windows-computer-use-mcp/tests/test_automation_task.py +0 -115
- package/mcps/windows-computer-use-mcp/tests/test_automation_windows.py +0 -105
- package/mcps/windows-computer-use-mcp/tests/test_cameras_api.py +0 -43
- package/mcps/windows-computer-use-mcp/tests/test_cua_parity.py +0 -51
- package/mcps/windows-computer-use-mcp/tests/test_dependency_failures.py +0 -39
- package/mcps/windows-computer-use-mcp/tests/test_desktop_state.py +0 -99
- package/mcps/windows-computer-use-mcp/tests/test_face_recognition.py +0 -238
- package/mcps/windows-computer-use-mcp/tests/test_face_recognition_api.py +0 -161
- package/mcps/windows-computer-use-mcp/tests/test_images/README.md +0 -28
- package/mcps/windows-computer-use-mcp/tests/test_mission.py +0 -42
- package/mcps/windows-computer-use-mcp/tests/test_portmanteau_windows_mock.py +0 -173
- package/mcps/windows-computer-use-mcp/tests/test_portmanteau_windows_real.py +0 -139
- package/mcps/windows-computer-use-mcp/tests/test_retry.py +0 -26
- package/mcps/windows-computer-use-mcp/tests/test_safety_api.py +0 -24
- package/mcps/windows-computer-use-mcp/tests/test_template_library.py +0 -53
- package/mcps/windows-computer-use-mcp/tests/test_utils.py +0 -185
- package/mcps/windows-computer-use-mcp/web_sota/src-tauri/icons/icon.png +0 -0
- package/skills/global_config/google-sheets-automation/SKILL.md +0 -150
- package/skills/global_config/senior-fullstack/SKILL.md +0 -221
- package/skills/global_config/senior-fullstack/references/architecture_patterns.md +0 -103
- package/skills/global_config/senior-fullstack/references/development_workflows.md +0 -103
- package/skills/global_config/senior-fullstack/references/tech_stack_guide.md +0 -103
- package/skills/global_config/senior-fullstack/scripts/code_quality_analyzer.py +0 -114
- package/skills/global_config/senior-fullstack/scripts/fullstack_scaffolder.py +0 -114
- package/skills/global_config/senior-fullstack/scripts/project_scaffolder.py +0 -114
|
@@ -1,2251 +0,0 @@
|
|
|
1
|
-
# Unreal Engine 5.x API Reference for MCP Implementation
|
|
2
|
-
|
|
3
|
-
This document provides key engine API information to guide implementation of the MCP roadmap.
|
|
4
|
-
|
|
5
|
-
Paths below use `<UE_ROOT>` as the Unreal Engine installation root, for example `/data/UnrealEngine` or `C:/Program Files/Epic Games/UE_5.6`.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Geometry & Mesh Creation
|
|
10
|
-
|
|
11
|
-
### Plugin Location
|
|
12
|
-
`<UE_ROOT>/Engine/Plugins/Runtime/GeometryScripting/`
|
|
13
|
-
|
|
14
|
-
### Key Headers
|
|
15
|
-
| File | Purpose |
|
|
16
|
-
|------|---------|
|
|
17
|
-
| `GeometryScript/MeshPrimitiveFunctions.h` | Primitives (Box, Sphere, Cylinder, etc.) |
|
|
18
|
-
| `GeometryScript/MeshBooleanFunctions.h` | Boolean operations (Union, Difference, Intersection) |
|
|
19
|
-
| `GeometryScript/MeshModelingFunctions.h` | Modeling ops (Extrude, Bevel, etc.) |
|
|
20
|
-
| `GeometryScript/MeshDeformFunctions.h` | Deformers (Bend, Twist, etc.) |
|
|
21
|
-
| `GeometryScript/MeshRemeshFunctions.h` | Remeshing, simplification |
|
|
22
|
-
| `GeometryScript/MeshUVFunctions.h` | UV operations |
|
|
23
|
-
| `GeometryScript/CollisionFunctions.h` | Collision generation |
|
|
24
|
-
| `GeometryScript/MeshSubdivideFunctions.h` | Subdivision |
|
|
25
|
-
| `GeometryScript/MeshNormalsFunctions.h` | Normal operations |
|
|
26
|
-
|
|
27
|
-
### Core Types
|
|
28
|
-
```cpp
|
|
29
|
-
// Dynamic mesh container
|
|
30
|
-
UDynamicMesh* TargetMesh;
|
|
31
|
-
|
|
32
|
-
// Primitive options
|
|
33
|
-
FGeometryScriptPrimitiveOptions Options;
|
|
34
|
-
Options.PolygroupMode = EGeometryScriptPrimitivePolygroupMode::PerFace;
|
|
35
|
-
Options.UVMode = EGeometryScriptPrimitiveUVMode::Uniform;
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### Usage Pattern
|
|
39
|
-
All functions are BlueprintCallable static methods in `UGeometryScript*` classes:
|
|
40
|
-
```cpp
|
|
41
|
-
UGeometryScriptLibrary_MeshPrimitiveFunctions::AppendBox(
|
|
42
|
-
TargetMesh,
|
|
43
|
-
Options,
|
|
44
|
-
FTransform::Identity,
|
|
45
|
-
Width, Height, Depth,
|
|
46
|
-
WidthSegments, HeightSegments, DepthSegments
|
|
47
|
-
);
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## Skeletal Mesh & Rigging
|
|
53
|
-
|
|
54
|
-
### Key Headers
|
|
55
|
-
| File | Purpose |
|
|
56
|
-
|------|---------|
|
|
57
|
-
| `Runtime/Engine/Classes/Engine/SkeletalMesh.h` | Skeletal mesh asset |
|
|
58
|
-
| `Runtime/Engine/Classes/Animation/Skeleton.h` | USkeleton definition |
|
|
59
|
-
| `Runtime/Engine/Classes/PhysicsEngine/PhysicsAsset.h` | Physics asset |
|
|
60
|
-
| `Runtime/Engine/Classes/Animation/MorphTarget.h` | Morph targets |
|
|
61
|
-
| `Runtime/Engine/Classes/Engine/SkeletalMeshSocket.h` | Sockets |
|
|
62
|
-
|
|
63
|
-
### Skeleton & Bone Operations
|
|
64
|
-
```cpp
|
|
65
|
-
USkeleton* Skeleton;
|
|
66
|
-
|
|
67
|
-
// Add virtual bone (runtime reference bone)
|
|
68
|
-
Skeleton->AddNewVirtualBone(SourceBoneName, TargetBoneName, VirtualBoneName);
|
|
69
|
-
|
|
70
|
-
// Get bone info
|
|
71
|
-
int32 BoneIndex = Skeleton->GetReferenceSkeleton().FindBoneIndex(BoneName);
|
|
72
|
-
FTransform BoneTransform = Skeleton->GetReferenceSkeleton().GetRefBonePose()[BoneIndex];
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### Physics Asset
|
|
76
|
-
```cpp
|
|
77
|
-
UPhysicsAsset* PhysAsset;
|
|
78
|
-
|
|
79
|
-
// Add body (capsule, sphere, box, convex)
|
|
80
|
-
int32 BodyIndex = PhysAsset->FindBodyIndex(BoneName);
|
|
81
|
-
FKAggregateGeom& AggGeom = PhysAsset->SkeletalBodySetups[BodyIndex]->AggGeom;
|
|
82
|
-
AggGeom.SphereElems.Add(FKSphereElem(Radius));
|
|
83
|
-
AggGeom.BoxElems.Add(FKBoxElem(X, Y, Z));
|
|
84
|
-
AggGeom.SphylElems.Add(FKSphylElem(Radius, Length)); // Capsule
|
|
85
|
-
|
|
86
|
-
// Add constraint
|
|
87
|
-
int32 ConstraintIndex = PhysAsset->FindConstraintIndex(BoneName);
|
|
88
|
-
FConstraintInstance& Constraint = PhysAsset->ConstraintSetup[ConstraintIndex]->DefaultInstance;
|
|
89
|
-
Constraint.SetAngularSwing1Limit(EAngularConstraintMotion::ACM_Limited, Angle);
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### Morph Targets
|
|
93
|
-
```cpp
|
|
94
|
-
UMorphTarget* MorphTarget;
|
|
95
|
-
FMorphTargetDelta Delta;
|
|
96
|
-
Delta.PositionDelta = FVector3f(X, Y, Z);
|
|
97
|
-
Delta.TangentZDelta = FVector3f(0, 0, 1);
|
|
98
|
-
Delta.SourceIdx = VertexIndex;
|
|
99
|
-
MorphTarget->PopulateDeltas(Deltas, LODIndex, BaseMesh);
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
---
|
|
103
|
-
|
|
104
|
-
## Material Authoring
|
|
105
|
-
|
|
106
|
-
### Key Headers
|
|
107
|
-
| File | Purpose |
|
|
108
|
-
|------|---------|
|
|
109
|
-
| `Runtime/Engine/Public/Materials/Material.h` | UMaterial class |
|
|
110
|
-
| `Runtime/Engine/Public/Materials/MaterialExpression.h` | Base expression class |
|
|
111
|
-
| `Runtime/Engine/Public/Materials/MaterialInstance.h` | Material instances |
|
|
112
|
-
| `Editor/MaterialEditor/Public/MaterialEditingLibrary.h` | High-level editor API |
|
|
113
|
-
|
|
114
|
-
### Core API (UMaterialEditingLibrary)
|
|
115
|
-
```cpp
|
|
116
|
-
// Create expression node
|
|
117
|
-
UMaterialExpression* Expr = UMaterialEditingLibrary::CreateMaterialExpression(
|
|
118
|
-
Material,
|
|
119
|
-
UMaterialExpressionTextureSample::StaticClass(),
|
|
120
|
-
NodePosX, NodePosY
|
|
121
|
-
);
|
|
122
|
-
|
|
123
|
-
// Connect nodes
|
|
124
|
-
UMaterialEditingLibrary::ConnectMaterialExpressions(
|
|
125
|
-
FromExpr, "RGB",
|
|
126
|
-
ToExpr, "A"
|
|
127
|
-
);
|
|
128
|
-
|
|
129
|
-
// Connect to material property
|
|
130
|
-
UMaterialEditingLibrary::ConnectMaterialProperty(
|
|
131
|
-
Expr, "RGB",
|
|
132
|
-
EMaterialProperty::MP_BaseColor
|
|
133
|
-
);
|
|
134
|
-
|
|
135
|
-
// Recompile
|
|
136
|
-
UMaterialEditingLibrary::RecompileMaterial(Material);
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
### Expression Types
|
|
140
|
-
- `UMaterialExpressionTextureSample`
|
|
141
|
-
- `UMaterialExpressionScalarParameter`
|
|
142
|
-
- `UMaterialExpressionVectorParameter`
|
|
143
|
-
- `UMaterialExpressionAdd`, `Multiply`, `Lerp`, etc.
|
|
144
|
-
- `UMaterialExpressionStaticSwitchParameter`
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Texture Generation & Processing
|
|
149
|
-
|
|
150
|
-
### Key Headers
|
|
151
|
-
| File | Purpose |
|
|
152
|
-
|------|---------|
|
|
153
|
-
| `Runtime/Engine/Classes/Engine/Texture2D.h` | 2D textures |
|
|
154
|
-
| `Runtime/Engine/Classes/Engine/TextureRenderTarget2D.h` | Render targets |
|
|
155
|
-
| `Runtime/Engine/Classes/Engine/CanvasRenderTarget2D.h` | Canvas rendering |
|
|
156
|
-
| `Runtime/Engine/Public/ImageUtils.h` | Image utilities |
|
|
157
|
-
|
|
158
|
-
### Texture Creation
|
|
159
|
-
```cpp
|
|
160
|
-
// Create transient texture
|
|
161
|
-
UTexture2D* Texture = UTexture2D::CreateTransient(Width, Height, PF_B8G8R8A8);
|
|
162
|
-
Texture->UpdateResource();
|
|
163
|
-
|
|
164
|
-
// Lock and write pixel data
|
|
165
|
-
FTexture2DMipMap& Mip = Texture->GetPlatformData()->Mips[0];
|
|
166
|
-
void* Data = Mip.BulkData.Lock(LOCK_READ_WRITE);
|
|
167
|
-
FMemory::Memcpy(Data, PixelData, DataSize);
|
|
168
|
-
Mip.BulkData.Unlock();
|
|
169
|
-
Texture->UpdateResource();
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### Render Target Operations
|
|
173
|
-
```cpp
|
|
174
|
-
UTextureRenderTarget2D* RenderTarget = NewObject<UTextureRenderTarget2D>();
|
|
175
|
-
RenderTarget->InitAutoFormat(Width, Height);
|
|
176
|
-
RenderTarget->UpdateResourceImmediate();
|
|
177
|
-
|
|
178
|
-
// Read pixels
|
|
179
|
-
TArray<FColor> Pixels;
|
|
180
|
-
FRenderTarget* RT = RenderTarget->GameThread_GetRenderTargetResource();
|
|
181
|
-
RT->ReadPixels(Pixels);
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
### Texture Settings
|
|
185
|
-
```cpp
|
|
186
|
-
Texture->CompressionSettings = TC_Default; // TC_Normalmap, TC_Masks, etc.
|
|
187
|
-
Texture->LODGroup = TEXTUREGROUP_World;
|
|
188
|
-
Texture->SRGB = true;
|
|
189
|
-
Texture->Filter = TF_Bilinear;
|
|
190
|
-
Texture->AddressX = TA_Wrap;
|
|
191
|
-
Texture->AddressY = TA_Wrap;
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
---
|
|
195
|
-
|
|
196
|
-
## Complete Animation System
|
|
197
|
-
|
|
198
|
-
### Key Headers
|
|
199
|
-
| File | Purpose |
|
|
200
|
-
|------|---------|
|
|
201
|
-
| `Runtime/Engine/Classes/Animation/AnimSequence.h` | Animation sequences |
|
|
202
|
-
| `Runtime/Engine/Classes/Animation/AnimMontage.h` | Montages |
|
|
203
|
-
| `Runtime/Engine/Classes/Animation/BlendSpace.h` | Blend spaces |
|
|
204
|
-
| `Runtime/Engine/Classes/Animation/AnimBlueprint.h` | Anim blueprints |
|
|
205
|
-
| `Plugins/Animation/ControlRig/Source/ControlRig/Public/ControlRig.h` | Control Rig |
|
|
206
|
-
| `Plugins/Animation/IKRig/Source/IKRig/Public/IKRig.h` | IK Rig |
|
|
207
|
-
| `Plugins/Animation/IKRig/Source/IKRig/Public/Retargeter/IKRetargeter.h` | Retargeting |
|
|
208
|
-
|
|
209
|
-
### Animation Sequence Keyframes
|
|
210
|
-
```cpp
|
|
211
|
-
UAnimSequence* AnimSeq;
|
|
212
|
-
IAnimationDataController& Controller = AnimSeq->GetController();
|
|
213
|
-
|
|
214
|
-
// Add bone track
|
|
215
|
-
Controller.AddBoneCurve(BoneName);
|
|
216
|
-
|
|
217
|
-
// Set keyframe
|
|
218
|
-
FTransform Transform(Rotation, Location, Scale);
|
|
219
|
-
Controller.SetBoneTrackKeys(BoneName, {Location}, {Rotation}, {Scale});
|
|
220
|
-
|
|
221
|
-
// Add notify
|
|
222
|
-
FAnimNotifyEvent& Notify = AnimSeq->Notifies.AddDefaulted_GetRef();
|
|
223
|
-
Notify.NotifyName = NotifyName;
|
|
224
|
-
Notify.SetTime(TimeInSeconds);
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
### Blend Space
|
|
228
|
-
```cpp
|
|
229
|
-
UBlendSpace* BlendSpace;
|
|
230
|
-
|
|
231
|
-
// Add sample
|
|
232
|
-
FBlendSample Sample;
|
|
233
|
-
Sample.Animation = AnimSequence;
|
|
234
|
-
Sample.SampleValue = FVector(X, Y, 0);
|
|
235
|
-
BlendSpace->AddSample(Sample);
|
|
236
|
-
|
|
237
|
-
// Configure axes
|
|
238
|
-
BlendSpace->GetBlendParameter(0).DisplayName = "Speed";
|
|
239
|
-
BlendSpace->GetBlendParameter(0).Min = 0.f;
|
|
240
|
-
BlendSpace->GetBlendParameter(0).Max = 600.f;
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
### Control Rig
|
|
244
|
-
```cpp
|
|
245
|
-
UControlRig* ControlRig;
|
|
246
|
-
|
|
247
|
-
// Add control
|
|
248
|
-
FRigControlElement* Control = ControlRig->FindControl(ControlName);
|
|
249
|
-
Control->Settings.ControlType = ERigControlType::Transform;
|
|
250
|
-
|
|
251
|
-
// Set control value
|
|
252
|
-
ControlRig->SetControlValue(ControlName, FRigControlValue::Make<FTransform>(Transform));
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
### IK Retargeting
|
|
256
|
-
```cpp
|
|
257
|
-
UIKRetargeter* Retargeter;
|
|
258
|
-
|
|
259
|
-
// Set source/target IK rigs
|
|
260
|
-
Retargeter->SetSourceIKRig(SourceIKRig);
|
|
261
|
-
Retargeter->SetTargetIKRig(TargetIKRig);
|
|
262
|
-
|
|
263
|
-
// Map chains
|
|
264
|
-
Retargeter->SetChainMapping(SourceChainName, TargetChainName);
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
---
|
|
268
|
-
|
|
269
|
-
## Complete Audio System
|
|
270
|
-
|
|
271
|
-
### Key Headers
|
|
272
|
-
| File | Purpose |
|
|
273
|
-
|------|---------|
|
|
274
|
-
| `Runtime/Engine/Classes/Sound/SoundCue.h` | Sound cue graph |
|
|
275
|
-
| `Runtime/Engine/Classes/Sound/SoundNode*.h` | Sound nodes (Mixer, Random, etc.) |
|
|
276
|
-
| `Runtime/Engine/Classes/Sound/SoundAttenuation.h` | Attenuation settings |
|
|
277
|
-
| `Runtime/Engine/Classes/Sound/SoundConcurrency.h` | Concurrency settings |
|
|
278
|
-
| `Runtime/Engine/Classes/Sound/SoundMix.h` | Sound mix presets |
|
|
279
|
-
| `Runtime/Engine/Classes/Sound/SoundSubmix.h` | Submix routing |
|
|
280
|
-
| `Runtime/Engine/Classes/Sound/ReverbEffect.h` | Reverb effects |
|
|
281
|
-
| `Runtime/Engine/Classes/Sound/AudioVolume.h` | Audio volumes |
|
|
282
|
-
| `Plugins/Runtime/Metasound/Source/MetasoundEngine/Public/*.h` | MetaSounds |
|
|
283
|
-
|
|
284
|
-
### Sound Cue Creation
|
|
285
|
-
```cpp
|
|
286
|
-
USoundCue* SoundCue = NewObject<USoundCue>();
|
|
287
|
-
|
|
288
|
-
// Add nodes
|
|
289
|
-
USoundNodeWavePlayer* WavePlayer = SoundCue->ConstructSoundNode<USoundNodeWavePlayer>();
|
|
290
|
-
WavePlayer->SetSoundWave(SoundWave);
|
|
291
|
-
|
|
292
|
-
USoundNodeRandom* RandomNode = SoundCue->ConstructSoundNode<USoundNodeRandom>();
|
|
293
|
-
RandomNode->ChildNodes.Add(WavePlayer);
|
|
294
|
-
|
|
295
|
-
USoundNodeMixer* MixerNode = SoundCue->ConstructSoundNode<USoundNodeMixer>();
|
|
296
|
-
MixerNode->InputVolume.Add(1.0f);
|
|
297
|
-
|
|
298
|
-
// Set first node (output)
|
|
299
|
-
SoundCue->FirstNode = MixerNode;
|
|
300
|
-
SoundCue->CompileSoundNodesFromGraphNodes();
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
### Sound Node Types
|
|
304
|
-
- `USoundNodeWavePlayer` - Play sound wave
|
|
305
|
-
- `USoundNodeRandom` - Random selection
|
|
306
|
-
- `USoundNodeMixer` - Mix multiple sources
|
|
307
|
-
- `USoundNodeAttenuation` - Distance attenuation
|
|
308
|
-
- `USoundNodeLooping` - Loop control
|
|
309
|
-
- `USoundNodeDelay` - Time delay
|
|
310
|
-
- `USoundNodeModulator` - Pitch/volume modulation
|
|
311
|
-
- `USoundNodeConcatenator` - Sequential playback
|
|
312
|
-
|
|
313
|
-
### Attenuation & Concurrency
|
|
314
|
-
```cpp
|
|
315
|
-
USoundAttenuation* Attenuation = NewObject<USoundAttenuation>();
|
|
316
|
-
Attenuation->Attenuation.DistanceAlgorithm = EAttenuationDistanceModel::Linear;
|
|
317
|
-
Attenuation->Attenuation.AttenuationShapeExtents = FVector(400.f);
|
|
318
|
-
Attenuation->Attenuation.FalloffDistance = 3600.f;
|
|
319
|
-
|
|
320
|
-
USoundConcurrency* Concurrency = NewObject<USoundConcurrency>();
|
|
321
|
-
Concurrency->Concurrency.MaxCount = 8;
|
|
322
|
-
Concurrency->Concurrency.ResolutionRule = EMaxConcurrentResolutionRule::StopLowestPriority;
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
---
|
|
326
|
-
|
|
327
|
-
## Complete Niagara VFX System
|
|
328
|
-
|
|
329
|
-
### Plugin Location
|
|
330
|
-
`<UE_ROOT>/Engine/Plugins/FX/Niagara/`
|
|
331
|
-
|
|
332
|
-
### Key Headers
|
|
333
|
-
| File | Purpose |
|
|
334
|
-
|------|---------|
|
|
335
|
-
| `Niagara/Public/NiagaraSystem.h` | System asset |
|
|
336
|
-
| `Niagara/Public/NiagaraEmitter.h` | Emitter definition |
|
|
337
|
-
| `Niagara/Public/NiagaraScript.h` | Module scripts |
|
|
338
|
-
| `Niagara/Public/NiagaraDataInterface*.h` | Data interfaces |
|
|
339
|
-
| `Niagara/Public/NiagaraComponent.h` | Component |
|
|
340
|
-
| `Niagara/Public/NiagaraParameterStore.h` | Parameters |
|
|
341
|
-
|
|
342
|
-
### System & Emitter Creation
|
|
343
|
-
```cpp
|
|
344
|
-
UNiagaraSystem* System = NewObject<UNiagaraSystem>();
|
|
345
|
-
|
|
346
|
-
// Add emitter
|
|
347
|
-
UNiagaraEmitter* Emitter = NewObject<UNiagaraEmitter>();
|
|
348
|
-
System->AddEmitterHandle(*Emitter, EmitterName);
|
|
349
|
-
|
|
350
|
-
// Configure emitter
|
|
351
|
-
Emitter->SimTarget = ENiagaraSimTarget::CPUSim; // or GPUComputeSim
|
|
352
|
-
Emitter->bLocalSpace = false;
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
### Parameter Access
|
|
356
|
-
```cpp
|
|
357
|
-
UNiagaraComponent* NiagaraComp;
|
|
358
|
-
|
|
359
|
-
// Set parameters
|
|
360
|
-
NiagaraComp->SetVariableFloat(FName("SpawnRate"), 100.f);
|
|
361
|
-
NiagaraComp->SetVariableVec3(FName("Velocity"), FVector(0, 0, 100));
|
|
362
|
-
NiagaraComp->SetVariableLinearColor(FName("Color"), FLinearColor::Red);
|
|
363
|
-
NiagaraComp->SetVariableObject(FName("Mesh"), StaticMesh);
|
|
364
|
-
```
|
|
365
|
-
|
|
366
|
-
### Data Interfaces
|
|
367
|
-
- `UNiagaraDataInterfaceMesh` - Static mesh sampling
|
|
368
|
-
- `UNiagaraDataInterfaceSkeletalMesh` - Skeletal mesh sampling
|
|
369
|
-
- `UNiagaraDataInterfaceTexture` - Texture sampling
|
|
370
|
-
- `UNiagaraDataInterfaceAudioSpectrum` - Audio reactive
|
|
371
|
-
- `UNiagaraDataInterfaceVolumeTexture` - 3D volumes
|
|
372
|
-
- `UNiagaraDataInterfaceRenderTarget2D` - Render target output
|
|
373
|
-
|
|
374
|
-
---
|
|
375
|
-
|
|
376
|
-
## Gameplay Ability System (GAS)
|
|
377
|
-
|
|
378
|
-
### Plugin Location
|
|
379
|
-
`<UE_ROOT>/Engine/Plugins/Runtime/GameplayAbilities/`
|
|
380
|
-
|
|
381
|
-
### Key Headers
|
|
382
|
-
| File | Purpose |
|
|
383
|
-
|------|---------|
|
|
384
|
-
| `AbilitySystemComponent.h` | Main interface for GAS |
|
|
385
|
-
| `Abilities/GameplayAbility.h` | Ability logic definition |
|
|
386
|
-
| `GameplayEffect.h` | Effect spec and modifiers |
|
|
387
|
-
| `AttributeSet.h` | Attribute management |
|
|
388
|
-
| `GameplayAbilitySpec.h` | Ability granting structs |
|
|
389
|
-
|
|
390
|
-
### Core API Patterns
|
|
391
|
-
|
|
392
|
-
**Granting Abilities:**
|
|
393
|
-
```cpp
|
|
394
|
-
FGameplayAbilitySpec Spec(AbilityClass, Level, InputID, SourceObject);
|
|
395
|
-
FGameplayAbilitySpecHandle Handle = ASC->GiveAbility(Spec);
|
|
396
|
-
```
|
|
397
|
-
|
|
398
|
-
**Applying Effects:**
|
|
399
|
-
```cpp
|
|
400
|
-
FGameplayEffectSpecHandle SpecHandle = ASC->MakeOutgoingSpec(EffectClass, Level, Context);
|
|
401
|
-
FActiveGameplayEffectHandle ActiveHandle = ASC->ApplyGameplayEffectSpecToTarget(*SpecHandle.Data.Get(), TargetASC);
|
|
402
|
-
```
|
|
403
|
-
|
|
404
|
-
**Attribute Access:**
|
|
405
|
-
```cpp
|
|
406
|
-
float Value = ASC->GetNumericAttribute(Attribute);
|
|
407
|
-
ASC->SetNumericAttributeBase(Attribute, NewValue);
|
|
408
|
-
```
|
|
409
|
-
|
|
410
|
-
### Replication Modes
|
|
411
|
-
- `Minimal` - Tags/attributes only (AI)
|
|
412
|
-
- `Mixed` - Full for owners, minimal for others (players)
|
|
413
|
-
- `Full` - Full for all
|
|
414
|
-
|
|
415
|
-
---
|
|
416
|
-
|
|
417
|
-
## Character & Movement System
|
|
418
|
-
|
|
419
|
-
### Key Headers
|
|
420
|
-
| File | Purpose |
|
|
421
|
-
|------|---------|
|
|
422
|
-
| `Runtime/Engine/Classes/GameFramework/Character.h` | Base character |
|
|
423
|
-
| `Runtime/Engine/Classes/GameFramework/CharacterMovementComponent.h` | Movement component |
|
|
424
|
-
| `Runtime/Engine/Classes/GameFramework/CharacterMovementReplication.h` | Network movement |
|
|
425
|
-
| `Runtime/Engine/Classes/GameFramework/RootMotionSource.h` | Root motion |
|
|
426
|
-
|
|
427
|
-
### Character Movement Configuration
|
|
428
|
-
```cpp
|
|
429
|
-
UCharacterMovementComponent* CMC = Character->GetCharacterMovement();
|
|
430
|
-
|
|
431
|
-
// Basic movement settings
|
|
432
|
-
CMC->MaxWalkSpeed = 600.f;
|
|
433
|
-
CMC->MaxWalkSpeedCrouched = 300.f;
|
|
434
|
-
CMC->JumpZVelocity = 420.f;
|
|
435
|
-
CMC->AirControl = 0.2f;
|
|
436
|
-
CMC->GravityScale = 1.0f;
|
|
437
|
-
CMC->BrakingDecelerationWalking = 2048.f;
|
|
438
|
-
|
|
439
|
-
// Ground settings
|
|
440
|
-
CMC->GroundFriction = 8.f;
|
|
441
|
-
CMC->MaxStepHeight = 45.f;
|
|
442
|
-
CMC->SetWalkableFloorAngle(45.f);
|
|
443
|
-
|
|
444
|
-
// Flying/Swimming
|
|
445
|
-
CMC->MaxFlySpeed = 600.f;
|
|
446
|
-
CMC->MaxSwimSpeed = 300.f;
|
|
447
|
-
CMC->BuoyancyCoefficient = 1.f;
|
|
448
|
-
```
|
|
449
|
-
|
|
450
|
-
### Custom Movement Modes
|
|
451
|
-
```cpp
|
|
452
|
-
// Add custom mode
|
|
453
|
-
CMC->SetMovementMode(MOVE_Custom, CustomModeIndex);
|
|
454
|
-
|
|
455
|
-
// In tick
|
|
456
|
-
void UMyMovementComponent::PhysCustom(float DeltaTime, int32 Iterations)
|
|
457
|
-
{
|
|
458
|
-
// Custom physics logic
|
|
459
|
-
}
|
|
460
|
-
```
|
|
461
|
-
|
|
462
|
-
### Root Motion
|
|
463
|
-
```cpp
|
|
464
|
-
// Apply root motion source
|
|
465
|
-
FRootMotionSource_ConstantForce* RMS = new FRootMotionSource_ConstantForce();
|
|
466
|
-
RMS->InstanceName = "Jump";
|
|
467
|
-
RMS->AccumulateMode = ERootMotionAccumulateMode::Override;
|
|
468
|
-
RMS->Priority = 5;
|
|
469
|
-
RMS->Force = FVector(0, 0, 1000);
|
|
470
|
-
RMS->Duration = 0.5f;
|
|
471
|
-
CMC->ApplyRootMotionSource(RMS);
|
|
472
|
-
```
|
|
473
|
-
|
|
474
|
-
---
|
|
475
|
-
|
|
476
|
-
## Combat & Weapons System
|
|
477
|
-
|
|
478
|
-
### Key Headers
|
|
479
|
-
| File | Purpose |
|
|
480
|
-
|------|---------|
|
|
481
|
-
| `Runtime/Engine/Classes/GameFramework/DamageType.h` | Damage type |
|
|
482
|
-
| `Runtime/Engine/Classes/GameFramework/ProjectileMovementComponent.h` | Projectiles |
|
|
483
|
-
| `Runtime/Engine/Classes/Engine/HitResult.h` | Hit detection |
|
|
484
|
-
| `Runtime/Engine/Classes/Kismet/KismetSystemLibrary.h` | Trace functions |
|
|
485
|
-
|
|
486
|
-
### Damage System
|
|
487
|
-
```cpp
|
|
488
|
-
// Apply damage
|
|
489
|
-
UGameplayStatics::ApplyDamage(
|
|
490
|
-
TargetActor,
|
|
491
|
-
DamageAmount,
|
|
492
|
-
InstigatorController,
|
|
493
|
-
DamageCauser,
|
|
494
|
-
UDamageType::StaticClass()
|
|
495
|
-
);
|
|
496
|
-
|
|
497
|
-
// Point damage (with hit info)
|
|
498
|
-
UGameplayStatics::ApplyPointDamage(
|
|
499
|
-
TargetActor,
|
|
500
|
-
DamageAmount,
|
|
501
|
-
ShotDirection,
|
|
502
|
-
HitResult,
|
|
503
|
-
InstigatorController,
|
|
504
|
-
DamageCauser,
|
|
505
|
-
UDamageType::StaticClass()
|
|
506
|
-
);
|
|
507
|
-
|
|
508
|
-
// Radial damage
|
|
509
|
-
UGameplayStatics::ApplyRadialDamage(
|
|
510
|
-
World,
|
|
511
|
-
BaseDamage,
|
|
512
|
-
Origin,
|
|
513
|
-
DamageRadius,
|
|
514
|
-
UDamageType::StaticClass(),
|
|
515
|
-
IgnoreActors,
|
|
516
|
-
DamageCauser,
|
|
517
|
-
InstigatorController,
|
|
518
|
-
bDoFullDamage
|
|
519
|
-
);
|
|
520
|
-
```
|
|
521
|
-
|
|
522
|
-
### Projectile Movement
|
|
523
|
-
```cpp
|
|
524
|
-
UProjectileMovementComponent* Projectile;
|
|
525
|
-
|
|
526
|
-
Projectile->InitialSpeed = 3000.f;
|
|
527
|
-
Projectile->MaxSpeed = 3000.f;
|
|
528
|
-
Projectile->bRotationFollowsVelocity = true;
|
|
529
|
-
Projectile->bShouldBounce = false;
|
|
530
|
-
Projectile->ProjectileGravityScale = 0.f;
|
|
531
|
-
Projectile->HomingTargetComponent = Target;
|
|
532
|
-
Projectile->HomingAccelerationMagnitude = 10000.f;
|
|
533
|
-
```
|
|
534
|
-
|
|
535
|
-
### Hit Detection (Traces)
|
|
536
|
-
```cpp
|
|
537
|
-
// Line trace
|
|
538
|
-
FHitResult Hit;
|
|
539
|
-
bool bHit = UKismetSystemLibrary::LineTraceSingle(
|
|
540
|
-
World,
|
|
541
|
-
Start,
|
|
542
|
-
End,
|
|
543
|
-
ETraceTypeQuery::TraceTypeQuery1,
|
|
544
|
-
false, // bTraceComplex
|
|
545
|
-
IgnoreActors,
|
|
546
|
-
EDrawDebugTrace::ForDuration,
|
|
547
|
-
Hit,
|
|
548
|
-
true // bIgnoreSelf
|
|
549
|
-
);
|
|
550
|
-
|
|
551
|
-
// Sphere trace
|
|
552
|
-
UKismetSystemLibrary::SphereTraceSingle(...);
|
|
553
|
-
|
|
554
|
-
// Capsule trace
|
|
555
|
-
UKismetSystemLibrary::CapsuleTraceSingle(...);
|
|
556
|
-
```
|
|
557
|
-
|
|
558
|
-
---
|
|
559
|
-
|
|
560
|
-
## AI System
|
|
561
|
-
|
|
562
|
-
### Key Headers
|
|
563
|
-
| File | Purpose |
|
|
564
|
-
|------|---------|
|
|
565
|
-
| `BehaviorTree/BehaviorTree.h` | BT asset definition |
|
|
566
|
-
| `BehaviorTree/BTTaskNode.h` | Task base class |
|
|
567
|
-
| `BehaviorTree/BTDecorator.h` | Decorator base class |
|
|
568
|
-
| `BehaviorTree/BTService.h` | Service base class |
|
|
569
|
-
| `BehaviorTree/BlackboardComponent.h` | Blackboard runtime |
|
|
570
|
-
| `EnvironmentQuery/EnvQuery.h` | EQS query asset |
|
|
571
|
-
| `Perception/AIPerceptionComponent.h` | Perception component |
|
|
572
|
-
|
|
573
|
-
### BT Node Implementation Pattern
|
|
574
|
-
```cpp
|
|
575
|
-
// Task execution
|
|
576
|
-
virtual EBTNodeResult::Type ExecuteTask(
|
|
577
|
-
UBehaviorTreeComponent& OwnerComp,
|
|
578
|
-
uint8* NodeMemory
|
|
579
|
-
) override;
|
|
580
|
-
|
|
581
|
-
// Decorator condition
|
|
582
|
-
virtual bool CalculateRawConditionValue(
|
|
583
|
-
UBehaviorTreeComponent& OwnerComp,
|
|
584
|
-
uint8* NodeMemory
|
|
585
|
-
) const override;
|
|
586
|
-
```
|
|
587
|
-
|
|
588
|
-
### Perception Config
|
|
589
|
-
```cpp
|
|
590
|
-
UAISenseConfig_Sight* SightConfig = NewObject<UAISenseConfig_Sight>();
|
|
591
|
-
SightConfig->SightRadius = 3000.f;
|
|
592
|
-
SightConfig->LoseSightRadius = 3500.f;
|
|
593
|
-
SightConfig->PeripheralVisionAngleDegrees = 90.f;
|
|
594
|
-
PerceptionComponent->ConfigureSense(*SightConfig);
|
|
595
|
-
```
|
|
596
|
-
|
|
597
|
-
### State Tree (UE5.3+)
|
|
598
|
-
Located at: `Plugins/Runtime/StateTree/`
|
|
599
|
-
- Uses struct-based tasks (`FStateTreeTaskBase`) for performance
|
|
600
|
-
- `FStateTreeExecutionContext` handles runtime
|
|
601
|
-
|
|
602
|
-
---
|
|
603
|
-
|
|
604
|
-
## Inventory & Items System
|
|
605
|
-
|
|
606
|
-
### Key Headers
|
|
607
|
-
| File | Purpose |
|
|
608
|
-
|------|---------|
|
|
609
|
-
| `Runtime/Engine/Classes/Engine/DataTable.h` | Item data tables |
|
|
610
|
-
| `Runtime/Engine/Classes/Engine/DataAsset.h` | Item data assets |
|
|
611
|
-
| `Runtime/Engine/Classes/GameFramework/Actor.h` | Pickup actors |
|
|
612
|
-
| `Runtime/Engine/Classes/Components/ActorComponent.h` | Inventory component base |
|
|
613
|
-
|
|
614
|
-
### Item Definition Pattern (Data Asset)
|
|
615
|
-
```cpp
|
|
616
|
-
UCLASS()
|
|
617
|
-
class UItemDataAsset : public UPrimaryDataAsset
|
|
618
|
-
{
|
|
619
|
-
UPROPERTY(EditDefaultsOnly)
|
|
620
|
-
FName ItemID;
|
|
621
|
-
|
|
622
|
-
UPROPERTY(EditDefaultsOnly)
|
|
623
|
-
FText DisplayName;
|
|
624
|
-
|
|
625
|
-
UPROPERTY(EditDefaultsOnly)
|
|
626
|
-
UTexture2D* Icon;
|
|
627
|
-
|
|
628
|
-
UPROPERTY(EditDefaultsOnly)
|
|
629
|
-
int32 MaxStackSize = 1;
|
|
630
|
-
|
|
631
|
-
// For Asset Manager
|
|
632
|
-
virtual FPrimaryAssetId GetPrimaryAssetId() const override
|
|
633
|
-
{
|
|
634
|
-
return FPrimaryAssetId("Item", GetFName());
|
|
635
|
-
}
|
|
636
|
-
};
|
|
637
|
-
```
|
|
638
|
-
|
|
639
|
-
### Inventory Component Pattern
|
|
640
|
-
```cpp
|
|
641
|
-
UCLASS()
|
|
642
|
-
class UInventoryComponent : public UActorComponent
|
|
643
|
-
{
|
|
644
|
-
UPROPERTY(Replicated)
|
|
645
|
-
TArray<FInventorySlot> Slots;
|
|
646
|
-
|
|
647
|
-
UFUNCTION(BlueprintCallable)
|
|
648
|
-
bool AddItem(UItemDataAsset* Item, int32 Count);
|
|
649
|
-
|
|
650
|
-
UFUNCTION(BlueprintCallable)
|
|
651
|
-
bool RemoveItem(UItemDataAsset* Item, int32 Count);
|
|
652
|
-
|
|
653
|
-
UFUNCTION(BlueprintCallable)
|
|
654
|
-
int32 GetItemCount(UItemDataAsset* Item) const;
|
|
655
|
-
};
|
|
656
|
-
```
|
|
657
|
-
|
|
658
|
-
### Asset Manager (Loading Items)
|
|
659
|
-
```cpp
|
|
660
|
-
UAssetManager& AM = UAssetManager::Get();
|
|
661
|
-
|
|
662
|
-
// Get all items
|
|
663
|
-
TArray<FPrimaryAssetId> ItemIds;
|
|
664
|
-
AM.GetPrimaryAssetIdList(FPrimaryAssetType("Item"), ItemIds);
|
|
665
|
-
|
|
666
|
-
// Async load
|
|
667
|
-
AM.LoadPrimaryAssets(ItemIds, TArray<FName>(),
|
|
668
|
-
FStreamableDelegate::CreateLambda([](){ /* Loaded */ }));
|
|
669
|
-
```
|
|
670
|
-
|
|
671
|
-
---
|
|
672
|
-
|
|
673
|
-
## Interaction System
|
|
674
|
-
|
|
675
|
-
### Key Headers
|
|
676
|
-
| File | Purpose |
|
|
677
|
-
|------|---------|
|
|
678
|
-
| `Runtime/Engine/Classes/Components/PrimitiveComponent.h` | Collision for interaction |
|
|
679
|
-
| `Runtime/Engine/Classes/GameFramework/Actor.h` | Interactable actors |
|
|
680
|
-
| `Runtime/Engine/Classes/Kismet/GameplayStatics.h` | Trace utilities |
|
|
681
|
-
|
|
682
|
-
### Interactable Interface Pattern
|
|
683
|
-
```cpp
|
|
684
|
-
UINTERFACE(MinimalAPI, BlueprintType)
|
|
685
|
-
class UInteractableInterface : public UInterface
|
|
686
|
-
{
|
|
687
|
-
GENERATED_BODY()
|
|
688
|
-
};
|
|
689
|
-
|
|
690
|
-
class IInteractableInterface
|
|
691
|
-
{
|
|
692
|
-
GENERATED_BODY()
|
|
693
|
-
public:
|
|
694
|
-
UFUNCTION(BlueprintNativeEvent, BlueprintCallable)
|
|
695
|
-
bool CanInteract(AActor* Interactor) const;
|
|
696
|
-
|
|
697
|
-
UFUNCTION(BlueprintNativeEvent, BlueprintCallable)
|
|
698
|
-
void OnInteract(AActor* Interactor);
|
|
699
|
-
|
|
700
|
-
UFUNCTION(BlueprintNativeEvent, BlueprintCallable)
|
|
701
|
-
FText GetInteractionPrompt() const;
|
|
702
|
-
};
|
|
703
|
-
```
|
|
704
|
-
|
|
705
|
-
### Interaction Component Pattern
|
|
706
|
-
```cpp
|
|
707
|
-
UCLASS()
|
|
708
|
-
class UInteractionComponent : public UActorComponent
|
|
709
|
-
{
|
|
710
|
-
UPROPERTY(EditDefaultsOnly)
|
|
711
|
-
float InteractionRange = 300.f;
|
|
712
|
-
|
|
713
|
-
UPROPERTY(EditDefaultsOnly)
|
|
714
|
-
TEnumAsByte<ECollisionChannel> TraceChannel;
|
|
715
|
-
|
|
716
|
-
UFUNCTION(BlueprintCallable)
|
|
717
|
-
AActor* GetFocusedInteractable();
|
|
718
|
-
|
|
719
|
-
UFUNCTION(BlueprintCallable)
|
|
720
|
-
bool TryInteract();
|
|
721
|
-
|
|
722
|
-
private:
|
|
723
|
-
void PerformInteractionTrace();
|
|
724
|
-
};
|
|
725
|
-
```
|
|
726
|
-
|
|
727
|
-
### Trace-Based Detection
|
|
728
|
-
```cpp
|
|
729
|
-
FHitResult Hit;
|
|
730
|
-
FVector Start = Camera->GetComponentLocation();
|
|
731
|
-
FVector End = Start + Camera->GetForwardVector() * InteractionRange;
|
|
732
|
-
|
|
733
|
-
bool bHit = GetWorld()->LineTraceSingleByChannel(
|
|
734
|
-
Hit, Start, End, ECC_Visibility
|
|
735
|
-
);
|
|
736
|
-
|
|
737
|
-
if (bHit && Hit.GetActor()->Implements<UInteractableInterface>())
|
|
738
|
-
{
|
|
739
|
-
IInteractableInterface::Execute_OnInteract(Hit.GetActor(), this);
|
|
740
|
-
}
|
|
741
|
-
```
|
|
742
|
-
|
|
743
|
-
---
|
|
744
|
-
|
|
745
|
-
## UMG Widget System
|
|
746
|
-
|
|
747
|
-
### Key Headers
|
|
748
|
-
| File | Purpose |
|
|
749
|
-
|------|---------|
|
|
750
|
-
| `Runtime/UMG/Public/Blueprint/UserWidget.h` | Base widget class |
|
|
751
|
-
| `Runtime/UMG/Public/Blueprint/WidgetTree.h` | Widget hierarchy |
|
|
752
|
-
| `Runtime/UMG/Public/Components/CanvasPanel.h` | Absolute layout |
|
|
753
|
-
| `Runtime/UMG/Public/Components/Button.h` | Button widget |
|
|
754
|
-
| `Runtime/UMG/Public/Components/TextBlock.h` | Text display |
|
|
755
|
-
| `Editor/UMGEditor/Public/WidgetBlueprint.h` | Widget BP asset |
|
|
756
|
-
|
|
757
|
-
### Widget Creation Pattern
|
|
758
|
-
```cpp
|
|
759
|
-
// Create widget from class
|
|
760
|
-
UUserWidget* Widget = CreateWidget<UUserWidget>(GetWorld(), WidgetClass);
|
|
761
|
-
Widget->AddToViewport();
|
|
762
|
-
|
|
763
|
-
// Create primitive widget programmatically
|
|
764
|
-
UButton* Button = WidgetTree->ConstructWidget<UButton>(UButton::StaticClass());
|
|
765
|
-
UCanvasPanelSlot* Slot = MyCanvas->AddChildToCanvas(Button);
|
|
766
|
-
Slot->SetPosition(FVector2D(100.f, 100.f));
|
|
767
|
-
Slot->SetAnchors(FAnchors(0.5f, 0.5f));
|
|
768
|
-
```
|
|
769
|
-
|
|
770
|
-
### Animation API
|
|
771
|
-
```cpp
|
|
772
|
-
Widget->PlayAnimation(Animation);
|
|
773
|
-
Widget->PlayAnimationForward(Animation);
|
|
774
|
-
Widget->StopAnimation(Animation);
|
|
775
|
-
Widget->IsAnimationPlaying(Animation);
|
|
776
|
-
```
|
|
777
|
-
|
|
778
|
-
---
|
|
779
|
-
|
|
780
|
-
## Networking & Replication
|
|
781
|
-
|
|
782
|
-
### Key Headers
|
|
783
|
-
| File | Purpose |
|
|
784
|
-
|------|---------|
|
|
785
|
-
| `GameFramework/Actor.h` | Actor replication |
|
|
786
|
-
| `Engine/ActorChannel.h` | Actor channel |
|
|
787
|
-
| `Net/UnrealNetwork.h` | Replication macros |
|
|
788
|
-
| `ReplicationGraph/ReplicationGraph.h` | Scalable replication |
|
|
789
|
-
|
|
790
|
-
### Property Replication
|
|
791
|
-
```cpp
|
|
792
|
-
// Header
|
|
793
|
-
UPROPERTY(ReplicatedUsing = OnRep_Health)
|
|
794
|
-
float Health;
|
|
795
|
-
|
|
796
|
-
UFUNCTION()
|
|
797
|
-
void OnRep_Health();
|
|
798
|
-
|
|
799
|
-
// Implementation
|
|
800
|
-
void AMyActor::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
|
|
801
|
-
{
|
|
802
|
-
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
|
|
803
|
-
DOREPLIFETIME(AMyActor, Health);
|
|
804
|
-
DOREPLIFETIME_CONDITION(AMyActor, PrivateData, COND_OwnerOnly);
|
|
805
|
-
}
|
|
806
|
-
```
|
|
807
|
-
|
|
808
|
-
### RPC Declaration
|
|
809
|
-
```cpp
|
|
810
|
-
UFUNCTION(Server, Reliable, WithValidation)
|
|
811
|
-
void ServerDoAction();
|
|
812
|
-
|
|
813
|
-
UFUNCTION(Client, Unreliable)
|
|
814
|
-
void ClientNotify();
|
|
815
|
-
|
|
816
|
-
UFUNCTION(NetMulticast, Reliable)
|
|
817
|
-
void MulticastEffect();
|
|
818
|
-
```
|
|
819
|
-
|
|
820
|
-
---
|
|
821
|
-
|
|
822
|
-
## Game Framework
|
|
823
|
-
|
|
824
|
-
### Key Headers
|
|
825
|
-
| File | Purpose |
|
|
826
|
-
|------|---------|
|
|
827
|
-
| `Runtime/Engine/Classes/GameFramework/GameModeBase.h` | Game mode |
|
|
828
|
-
| `Runtime/Engine/Classes/GameFramework/GameStateBase.h` | Game state |
|
|
829
|
-
| `Runtime/Engine/Classes/GameFramework/PlayerController.h` | Player controller |
|
|
830
|
-
| `Runtime/Engine/Classes/GameFramework/PlayerState.h` | Player state |
|
|
831
|
-
| `Runtime/Engine/Classes/Engine/GameInstance.h` | Game instance |
|
|
832
|
-
| `Runtime/Engine/Classes/GameFramework/GameSession.h` | Session management |
|
|
833
|
-
|
|
834
|
-
### Game Mode Configuration
|
|
835
|
-
```cpp
|
|
836
|
-
AGameModeBase* GameMode;
|
|
837
|
-
|
|
838
|
-
// Class defaults
|
|
839
|
-
GameMode->DefaultPawnClass = AMyCharacter::StaticClass();
|
|
840
|
-
GameMode->PlayerControllerClass = AMyPlayerController::StaticClass();
|
|
841
|
-
GameMode->PlayerStateClass = AMyPlayerState::StaticClass();
|
|
842
|
-
GameMode->GameStateClass = AMyGameState::StaticClass();
|
|
843
|
-
GameMode->HUDClass = AMyHUD::StaticClass();
|
|
844
|
-
|
|
845
|
-
// Spawn control
|
|
846
|
-
GameMode->bStartPlayersAsSpectators = false;
|
|
847
|
-
GameMode->bPauseable = true;
|
|
848
|
-
```
|
|
849
|
-
|
|
850
|
-
### Game Instance Subsystems
|
|
851
|
-
```cpp
|
|
852
|
-
UGameInstance* GI = GetGameInstance();
|
|
853
|
-
|
|
854
|
-
// Get subsystem
|
|
855
|
-
UMySubsystem* Subsystem = GI->GetSubsystem<UMySubsystem>();
|
|
856
|
-
|
|
857
|
-
// Travel to level
|
|
858
|
-
GI->GetWorld()->ServerTravel("/Game/Maps/NewLevel");
|
|
859
|
-
```
|
|
860
|
-
|
|
861
|
-
---
|
|
862
|
-
|
|
863
|
-
## Sessions & Local Multiplayer
|
|
864
|
-
|
|
865
|
-
### Key Headers
|
|
866
|
-
| File | Purpose |
|
|
867
|
-
|------|---------|
|
|
868
|
-
| `Runtime/Engine/Classes/GameFramework/GameSession.h` | Session base |
|
|
869
|
-
| `Runtime/Engine/Classes/Engine/LocalPlayer.h` | Local player |
|
|
870
|
-
| `Runtime/Engine/Classes/GameFramework/PlayerController.h` | Player input |
|
|
871
|
-
| `Runtime/Engine/Classes/Engine/GameViewportClient.h` | Split screen |
|
|
872
|
-
|
|
873
|
-
### Local Multiplayer (Split Screen)
|
|
874
|
-
```cpp
|
|
875
|
-
UGameViewportClient* Viewport = GetWorld()->GetGameViewport();
|
|
876
|
-
|
|
877
|
-
// Enable split screen
|
|
878
|
-
Viewport->SetForceDisableSplitscreen(false);
|
|
879
|
-
Viewport->MaxSplitscreenPlayers = 4;
|
|
880
|
-
|
|
881
|
-
// Create local player
|
|
882
|
-
ULocalPlayer* NewPlayer = GEngine->CreateLocalPlayer(
|
|
883
|
-
GetWorld(),
|
|
884
|
-
ControllerId,
|
|
885
|
-
ErrorMessage,
|
|
886
|
-
true // bSpawnPlayerController
|
|
887
|
-
);
|
|
888
|
-
|
|
889
|
-
// Remove local player
|
|
890
|
-
GEngine->RemoveLocalPlayer(GetWorld(), LocalPlayer);
|
|
891
|
-
```
|
|
892
|
-
|
|
893
|
-
### Input Mode Per Player
|
|
894
|
-
```cpp
|
|
895
|
-
APlayerController* PC = GetPlayerController(0);
|
|
896
|
-
|
|
897
|
-
// Game only
|
|
898
|
-
FInputModeGameOnly InputMode;
|
|
899
|
-
PC->SetInputMode(InputMode);
|
|
900
|
-
|
|
901
|
-
// UI only
|
|
902
|
-
FInputModeUIOnly UIMode;
|
|
903
|
-
UIMode.SetWidgetToFocus(Widget->TakeWidget());
|
|
904
|
-
PC->SetInputMode(UIMode);
|
|
905
|
-
|
|
906
|
-
// Game and UI
|
|
907
|
-
FInputModeGameAndUI MixedMode;
|
|
908
|
-
MixedMode.SetHideCursorDuringCapture(false);
|
|
909
|
-
PC->SetInputMode(MixedMode);
|
|
910
|
-
```
|
|
911
|
-
|
|
912
|
-
### Session Handling (LAN)
|
|
913
|
-
```cpp
|
|
914
|
-
AGameSession* Session = GetWorld()->GetAuthGameMode()->GameSession;
|
|
915
|
-
|
|
916
|
-
// Register player
|
|
917
|
-
Session->RegisterPlayer(NewPlayer, UniqueId, bWasFromInvite);
|
|
918
|
-
|
|
919
|
-
// Unregister player
|
|
920
|
-
Session->UnregisterPlayer(ExitingPlayer);
|
|
921
|
-
|
|
922
|
-
// Kick player
|
|
923
|
-
Session->KickPlayer(PlayerToKick, KickReason);
|
|
924
|
-
```
|
|
925
|
-
|
|
926
|
-
---
|
|
927
|
-
|
|
928
|
-
## World Structure & Volumes
|
|
929
|
-
|
|
930
|
-
### Key Headers
|
|
931
|
-
| File | Purpose |
|
|
932
|
-
|------|---------|
|
|
933
|
-
| `Runtime/Engine/Public/WorldPartition/*.h` | World Partition |
|
|
934
|
-
| `Runtime/Engine/Classes/Engine/LevelStreaming.h` | Level streaming |
|
|
935
|
-
| `Runtime/Engine/Classes/Engine/BlockingVolume.h` | Blocking volume |
|
|
936
|
-
| `Runtime/Engine/Classes/Engine/TriggerVolume.h` | Trigger volume |
|
|
937
|
-
| `Runtime/Engine/Classes/Engine/PostProcessVolume.h` | Post process |
|
|
938
|
-
| `Runtime/Engine/Classes/Sound/AudioVolume.h` | Audio volume |
|
|
939
|
-
| `Runtime/Engine/Classes/GameFramework/PhysicsVolume.h` | Physics volume |
|
|
940
|
-
|
|
941
|
-
### World Partition
|
|
942
|
-
```cpp
|
|
943
|
-
UWorldPartition* WP = World->GetWorldPartition();
|
|
944
|
-
|
|
945
|
-
// Data layers
|
|
946
|
-
UDataLayerAsset* DataLayer;
|
|
947
|
-
WP->SetDataLayerRuntimeState(DataLayer, EDataLayerRuntimeState::Activated);
|
|
948
|
-
|
|
949
|
-
// Streaming sources
|
|
950
|
-
WP->AddStreamingSource(StreamingSource);
|
|
951
|
-
```
|
|
952
|
-
|
|
953
|
-
### Level Streaming
|
|
954
|
-
```cpp
|
|
955
|
-
// Load level
|
|
956
|
-
ULevelStreamingDynamic* StreamingLevel = ULevelStreamingDynamic::LoadLevelInstance(
|
|
957
|
-
World,
|
|
958
|
-
LevelName,
|
|
959
|
-
Location,
|
|
960
|
-
Rotation,
|
|
961
|
-
bSucceeded
|
|
962
|
-
);
|
|
963
|
-
|
|
964
|
-
// Unload
|
|
965
|
-
StreamingLevel->SetShouldBeLoaded(false);
|
|
966
|
-
StreamingLevel->SetShouldBeVisible(false);
|
|
967
|
-
```
|
|
968
|
-
|
|
969
|
-
### Volume Types
|
|
970
|
-
```cpp
|
|
971
|
-
// Post Process Volume
|
|
972
|
-
APostProcessVolume* PPV;
|
|
973
|
-
PPV->Settings.bOverride_BloomIntensity = true;
|
|
974
|
-
PPV->Settings.BloomIntensity = 0.5f;
|
|
975
|
-
PPV->bUnbound = true; // Affects entire world
|
|
976
|
-
PPV->BlendWeight = 1.0f;
|
|
977
|
-
|
|
978
|
-
// Audio Volume
|
|
979
|
-
AAudioVolume* AudioVol;
|
|
980
|
-
AudioVol->Settings.bApplyReverb = true;
|
|
981
|
-
AudioVol->Settings.ReverbEffect = ReverbAsset;
|
|
982
|
-
AudioVol->Settings.InteriorSettings.bIsWorldSettings = true;
|
|
983
|
-
|
|
984
|
-
// Physics Volume
|
|
985
|
-
APhysicsVolume* PhysVol;
|
|
986
|
-
PhysVol->FluidFriction = 0.3f;
|
|
987
|
-
PhysVol->bWaterVolume = true;
|
|
988
|
-
PhysVol->TerminalVelocity = 4000.f;
|
|
989
|
-
```
|
|
990
|
-
|
|
991
|
-
---
|
|
992
|
-
|
|
993
|
-
## Navigation System
|
|
994
|
-
|
|
995
|
-
### Key Headers
|
|
996
|
-
| File | Purpose |
|
|
997
|
-
|------|---------|
|
|
998
|
-
| `Runtime/NavigationSystem/Public/NavigationSystem.h` | Nav system |
|
|
999
|
-
| `Runtime/NavigationSystem/Public/NavigationData.h` | Nav data base |
|
|
1000
|
-
| `Runtime/NavigationSystem/Public/NavMesh/RecastNavMesh.h` | Recast nav mesh |
|
|
1001
|
-
| `Runtime/NavigationSystem/Public/NavAreas/NavArea.h` | Nav areas |
|
|
1002
|
-
| `Runtime/AIModule/Classes/Navigation/NavLinkProxy.h` | Nav links |
|
|
1003
|
-
|
|
1004
|
-
### Navigation Mesh
|
|
1005
|
-
```cpp
|
|
1006
|
-
UNavigationSystemV1* NavSys = FNavigationSystem::GetCurrent<UNavigationSystemV1>(World);
|
|
1007
|
-
|
|
1008
|
-
// Rebuild navigation
|
|
1009
|
-
NavSys->Build();
|
|
1010
|
-
|
|
1011
|
-
// Query path
|
|
1012
|
-
FPathFindingQuery Query;
|
|
1013
|
-
Query.StartLocation = Start;
|
|
1014
|
-
Query.EndLocation = End;
|
|
1015
|
-
FPathFindingResult Result = NavSys->FindPathSync(Query);
|
|
1016
|
-
```
|
|
1017
|
-
|
|
1018
|
-
### Nav Modifiers
|
|
1019
|
-
```cpp
|
|
1020
|
-
// Nav area costs
|
|
1021
|
-
ARecastNavMesh* NavMesh = Cast<ARecastNavMesh>(NavSys->GetDefaultNavDataInstance());
|
|
1022
|
-
NavMesh->SetAreaCost(NavAreaClass, Cost);
|
|
1023
|
-
|
|
1024
|
-
// Nav link
|
|
1025
|
-
ANavLinkProxy* Link;
|
|
1026
|
-
Link->GetSmartLinkComp()->SetLinkData(Start, End, ENavLinkDirection::BothWays);
|
|
1027
|
-
```
|
|
1028
|
-
|
|
1029
|
-
---
|
|
1030
|
-
|
|
1031
|
-
## Spline System
|
|
1032
|
-
|
|
1033
|
-
### Key Headers
|
|
1034
|
-
| File | Purpose |
|
|
1035
|
-
|------|---------|
|
|
1036
|
-
| `Runtime/Engine/Classes/Components/SplineComponent.h` | Spline component |
|
|
1037
|
-
| `Runtime/Engine/Classes/Components/SplineMeshComponent.h` | Spline mesh |
|
|
1038
|
-
| `Runtime/Landscape/Classes/LandscapeSplineActor.h` | Landscape splines |
|
|
1039
|
-
|
|
1040
|
-
### Spline Component
|
|
1041
|
-
```cpp
|
|
1042
|
-
USplineComponent* Spline;
|
|
1043
|
-
|
|
1044
|
-
// Add/modify points
|
|
1045
|
-
Spline->AddSplinePoint(Location, ESplineCoordinateSpace::World);
|
|
1046
|
-
Spline->SetSplinePointType(Index, ESplinePointType::Curve);
|
|
1047
|
-
Spline->SetTangentAtSplinePoint(Index, Tangent, ESplineCoordinateSpace::World);
|
|
1048
|
-
|
|
1049
|
-
// Query spline
|
|
1050
|
-
FVector Location = Spline->GetLocationAtDistanceAlongSpline(Distance, ESplineCoordinateSpace::World);
|
|
1051
|
-
FRotator Rotation = Spline->GetRotationAtDistanceAlongSpline(Distance, ESplineCoordinateSpace::World);
|
|
1052
|
-
float Length = Spline->GetSplineLength();
|
|
1053
|
-
|
|
1054
|
-
// Spline settings
|
|
1055
|
-
Spline->SetClosedLoop(true);
|
|
1056
|
-
Spline->Duration = 1.0f; // For timeline-based movement
|
|
1057
|
-
```
|
|
1058
|
-
|
|
1059
|
-
### Spline Mesh Component
|
|
1060
|
-
```cpp
|
|
1061
|
-
USplineMeshComponent* SplineMesh;
|
|
1062
|
-
|
|
1063
|
-
// Set mesh and spline segment
|
|
1064
|
-
SplineMesh->SetStaticMesh(Mesh);
|
|
1065
|
-
SplineMesh->SetStartAndEnd(StartPos, StartTangent, EndPos, EndTangent);
|
|
1066
|
-
SplineMesh->SetForwardAxis(ESplineMeshAxis::X);
|
|
1067
|
-
|
|
1068
|
-
// Deformation
|
|
1069
|
-
SplineMesh->SetStartScale(FVector2D(1.0f, 1.0f));
|
|
1070
|
-
SplineMesh->SetEndScale(FVector2D(1.5f, 1.5f));
|
|
1071
|
-
```
|
|
1072
|
-
|
|
1073
|
-
---
|
|
1074
|
-
|
|
1075
|
-
## PCG Framework
|
|
1076
|
-
|
|
1077
|
-
### Plugin Location
|
|
1078
|
-
`<UE_ROOT>/Engine/Plugins/PCG/`
|
|
1079
|
-
|
|
1080
|
-
### Key Headers
|
|
1081
|
-
| File | Purpose |
|
|
1082
|
-
|------|---------|
|
|
1083
|
-
| `PCGGraph.h` | Graph definition |
|
|
1084
|
-
| `PCGNode.h` | Node instance |
|
|
1085
|
-
| `PCGSettings.h` | Node configuration |
|
|
1086
|
-
| `PCGPoint.h` | FPCGPoint struct |
|
|
1087
|
-
| `PCGSubsystem.h` | Execution scheduling |
|
|
1088
|
-
| `Helpers/PCGPointHelpers.h` | Point operations |
|
|
1089
|
-
|
|
1090
|
-
### Core Data Flow
|
|
1091
|
-
```
|
|
1092
|
-
UPCGGraph → UPCGNode → UPCGSettings
|
|
1093
|
-
↓
|
|
1094
|
-
FPCGPoint data
|
|
1095
|
-
↓
|
|
1096
|
-
UPCGStaticMeshSpawner (output)
|
|
1097
|
-
```
|
|
1098
|
-
|
|
1099
|
-
### Built-in Node Types
|
|
1100
|
-
- **Samplers**: `UPCGSurfaceSamplerSettings`, `UPCGVolumeSamplerSettings`
|
|
1101
|
-
- **Filters**: `UPCGDensityFilterSettings`, `UPCGFilterByAttributeSettings`
|
|
1102
|
-
- **Spawners**: `UPCGStaticMeshSpawnerSettings`, `UPCGSpawnActorSettings`
|
|
1103
|
-
|
|
1104
|
-
---
|
|
1105
|
-
|
|
1106
|
-
## Landscape & Foliage
|
|
1107
|
-
|
|
1108
|
-
### Key Headers
|
|
1109
|
-
| File | Purpose |
|
|
1110
|
-
|------|---------|
|
|
1111
|
-
| `Landscape/Classes/Landscape.h` | Main landscape actor |
|
|
1112
|
-
| `Landscape/Classes/LandscapeProxy.h` | Base/streaming proxy |
|
|
1113
|
-
| `Landscape/Classes/LandscapeComponent.h` | Grid component |
|
|
1114
|
-
| `Landscape/Public/LandscapeEdit.h` | Editing APIs |
|
|
1115
|
-
| `Foliage/Public/InstancedFoliageActor.h` | Foliage manager |
|
|
1116
|
-
| `Foliage/Public/FoliageType.h` | Foliage configuration |
|
|
1117
|
-
|
|
1118
|
-
### Heightmap Import/Export
|
|
1119
|
-
```cpp
|
|
1120
|
-
ALandscapeProxy::Import(...);
|
|
1121
|
-
ALandscapeProxy::LandscapeExportHeightmapToRenderTarget(...);
|
|
1122
|
-
ALandscapeProxy::LandscapeImportHeightmapFromRenderTarget(...);
|
|
1123
|
-
```
|
|
1124
|
-
|
|
1125
|
-
### Sculpting/Painting
|
|
1126
|
-
```cpp
|
|
1127
|
-
// Via FLandscapeEditDataInterface
|
|
1128
|
-
FLandscapeEditDataInterface Interface(...);
|
|
1129
|
-
Interface.SetHeightData(...); // Sculpting
|
|
1130
|
-
Interface.SetAlphaData(...); // Layer painting
|
|
1131
|
-
```
|
|
1132
|
-
|
|
1133
|
-
### Foliage Spawning
|
|
1134
|
-
```cpp
|
|
1135
|
-
AInstancedFoliageActor* FoliageActor = ...;
|
|
1136
|
-
FoliageActor->AddInstances(FoliageType, Instances);
|
|
1137
|
-
```
|
|
1138
|
-
|
|
1139
|
-
---
|
|
1140
|
-
|
|
1141
|
-
## Advanced Lighting & Rendering
|
|
1142
|
-
|
|
1143
|
-
### Key Headers
|
|
1144
|
-
| File | Purpose |
|
|
1145
|
-
|------|---------|
|
|
1146
|
-
| `Runtime/Engine/Classes/Components/LightComponent.h` | Light base |
|
|
1147
|
-
| `Runtime/Engine/Classes/Components/SkyLightComponent.h` | Sky light |
|
|
1148
|
-
| `Runtime/Engine/Classes/Components/SkyAtmosphereComponent.h` | Sky atmosphere |
|
|
1149
|
-
| `Runtime/Engine/Classes/Components/VolumetricCloudComponent.h` | Volumetric clouds |
|
|
1150
|
-
| `Runtime/Engine/Classes/Components/ReflectionCaptureComponent.h` | Reflections |
|
|
1151
|
-
| `Runtime/Engine/Classes/Engine/ExponentialHeightFog.h` | Height fog |
|
|
1152
|
-
| `Runtime/Renderer/Public/PostProcess/*.h` | Post processing |
|
|
1153
|
-
|
|
1154
|
-
### Lumen Configuration
|
|
1155
|
-
```cpp
|
|
1156
|
-
// Project settings for Lumen GI
|
|
1157
|
-
URendererSettings* Settings = GetMutableDefault<URendererSettings>();
|
|
1158
|
-
Settings->DynamicGlobalIlluminationMethod = EDynamicGlobalIlluminationMethod::Lumen;
|
|
1159
|
-
Settings->ReflectionMethod = EReflectionMethod::Lumen;
|
|
1160
|
-
|
|
1161
|
-
// Per-component settings
|
|
1162
|
-
UPrimitiveComponent* Comp;
|
|
1163
|
-
Comp->bVisibleInRayTracing = true;
|
|
1164
|
-
Comp->bAffectDynamicIndirectLighting = true;
|
|
1165
|
-
```
|
|
1166
|
-
|
|
1167
|
-
### Sky Atmosphere
|
|
1168
|
-
```cpp
|
|
1169
|
-
USkyAtmosphereComponent* SkyAtmo;
|
|
1170
|
-
SkyAtmo->SetRayleighScattering(FLinearColor(0.175287f, 0.409607f, 1.0f));
|
|
1171
|
-
SkyAtmo->SetMieScattering(FLinearColor(0.003996f, 0.003996f, 0.003996f));
|
|
1172
|
-
SkyAtmo->SetAtmosphereHeight(60.f); // km
|
|
1173
|
-
SkyAtmo->SetSunDiskColorScale(FLinearColor::White);
|
|
1174
|
-
```
|
|
1175
|
-
|
|
1176
|
-
### Volumetric Clouds
|
|
1177
|
-
```cpp
|
|
1178
|
-
UVolumetricCloudComponent* Clouds;
|
|
1179
|
-
Clouds->SetLayerBottomAltitude(5.f); // km
|
|
1180
|
-
Clouds->SetLayerHeight(10.f);
|
|
1181
|
-
Clouds->SetTracingStartMaxDistance(350.f);
|
|
1182
|
-
Clouds->SetPlanetRadius(6360.f);
|
|
1183
|
-
```
|
|
1184
|
-
|
|
1185
|
-
### Reflection Capture
|
|
1186
|
-
```cpp
|
|
1187
|
-
// Sphere reflection
|
|
1188
|
-
USphereReflectionCaptureComponent* Sphere;
|
|
1189
|
-
Sphere->SetInfluenceRadius(3000.f);
|
|
1190
|
-
Sphere->Brightness = 1.0f;
|
|
1191
|
-
|
|
1192
|
-
// Box reflection (for interiors)
|
|
1193
|
-
UBoxReflectionCaptureComponent* Box;
|
|
1194
|
-
Box->SetBoxTransitionDistance(100.f);
|
|
1195
|
-
```
|
|
1196
|
-
|
|
1197
|
-
---
|
|
1198
|
-
|
|
1199
|
-
## Sequencer & Cinematics
|
|
1200
|
-
|
|
1201
|
-
### Key Headers
|
|
1202
|
-
| File | Purpose |
|
|
1203
|
-
|------|---------|
|
|
1204
|
-
| `LevelSequence/Public/LevelSequence.h` | Sequence asset |
|
|
1205
|
-
| `MovieScene/Public/MovieScene.h` | Data container |
|
|
1206
|
-
| `MovieScene/Public/MovieSceneTrack.h` | Track base |
|
|
1207
|
-
| `MovieScene/Public/MovieSceneSection.h` | Section base |
|
|
1208
|
-
| `MovieScene/Public/Channels/MovieSceneFloatChannel.h` | Keyframes |
|
|
1209
|
-
| `MovieRenderPipelineCore/Public/MoviePipeline.h` | MRQ |
|
|
1210
|
-
| `TakeRecorder/Public/Recorder/TakeRecorderSubsystem.h` | Recording |
|
|
1211
|
-
|
|
1212
|
-
### Track/Section Creation
|
|
1213
|
-
```cpp
|
|
1214
|
-
// Add track
|
|
1215
|
-
UMovieSceneTrack* Track = MovieScene->AddTrack(UMovieSceneAudioTrack::StaticClass());
|
|
1216
|
-
|
|
1217
|
-
// Add section
|
|
1218
|
-
UMovieSceneSection* Section = Track->CreateNewSection();
|
|
1219
|
-
Track->AddSection(*Section);
|
|
1220
|
-
Section->SetRange(TRange<FFrameNumber>::Inclusive(Start, End));
|
|
1221
|
-
```
|
|
1222
|
-
|
|
1223
|
-
### Keyframe Manipulation
|
|
1224
|
-
```cpp
|
|
1225
|
-
FMovieSceneChannelProxy& Proxy = Section->GetChannelProxy();
|
|
1226
|
-
FMovieSceneFloatChannel* Channel = Proxy.GetChannel<FMovieSceneFloatChannel>(0);
|
|
1227
|
-
Channel->AddCubicKey(FrameNumber, Value, RCTM_Auto);
|
|
1228
|
-
```
|
|
1229
|
-
|
|
1230
|
-
### Movie Render Queue
|
|
1231
|
-
```cpp
|
|
1232
|
-
UMoviePipelineQueueEngineSubsystem* Subsystem = ...;
|
|
1233
|
-
UMoviePipelineExecutorJob* Job = Subsystem->AllocateJob(Sequence);
|
|
1234
|
-
// Configure settings
|
|
1235
|
-
Subsystem->RenderJob(Job);
|
|
1236
|
-
```
|
|
1237
|
-
|
|
1238
|
-
---
|
|
1239
|
-
|
|
1240
|
-
## Data & Persistence
|
|
1241
|
-
|
|
1242
|
-
### Key Headers
|
|
1243
|
-
| File | Purpose |
|
|
1244
|
-
|------|---------|
|
|
1245
|
-
| `Runtime/Engine/Classes/GameFramework/SaveGame.h` | Save game base |
|
|
1246
|
-
| `Runtime/Engine/Classes/Engine/DataTable.h` | Data tables |
|
|
1247
|
-
| `Runtime/Engine/Classes/Engine/CompositeDataTable.h` | Composite tables |
|
|
1248
|
-
| `Runtime/Engine/Classes/Curves/CurveFloat.h` | Float curves |
|
|
1249
|
-
| `Runtime/Engine/Classes/Curves/CurveVector.h` | Vector curves |
|
|
1250
|
-
| `Runtime/Engine/Classes/Engine/DataAsset.h` | Data assets |
|
|
1251
|
-
|
|
1252
|
-
### Save Game System
|
|
1253
|
-
```cpp
|
|
1254
|
-
// Create and save
|
|
1255
|
-
UMySaveGame* SaveGame = Cast<UMySaveGame>(
|
|
1256
|
-
UGameplayStatics::CreateSaveGameObject(UMySaveGame::StaticClass())
|
|
1257
|
-
);
|
|
1258
|
-
SaveGame->PlayerLocation = Player->GetActorLocation();
|
|
1259
|
-
SaveGame->Health = HealthComponent->GetHealth();
|
|
1260
|
-
UGameplayStatics::SaveGameToSlot(SaveGame, "Slot1", 0);
|
|
1261
|
-
|
|
1262
|
-
// Load
|
|
1263
|
-
UMySaveGame* LoadedGame = Cast<UMySaveGame>(
|
|
1264
|
-
UGameplayStatics::LoadGameFromSlot("Slot1", 0)
|
|
1265
|
-
);
|
|
1266
|
-
|
|
1267
|
-
// Async save/load
|
|
1268
|
-
UGameplayStatics::AsyncSaveGameToSlot(SaveGame, "Slot1", 0, OnComplete);
|
|
1269
|
-
UGameplayStatics::AsyncLoadGameFromSlot("Slot1", 0, OnComplete);
|
|
1270
|
-
```
|
|
1271
|
-
|
|
1272
|
-
### Data Tables
|
|
1273
|
-
```cpp
|
|
1274
|
-
// Access row
|
|
1275
|
-
UDataTable* Table;
|
|
1276
|
-
FMyRowStruct* Row = Table->FindRow<FMyRowStruct>(RowName, ContextString);
|
|
1277
|
-
|
|
1278
|
-
// Get all rows
|
|
1279
|
-
TArray<FMyRowStruct*> AllRows;
|
|
1280
|
-
Table->GetAllRows(ContextString, AllRows);
|
|
1281
|
-
|
|
1282
|
-
// Add row at runtime
|
|
1283
|
-
FMyRowStruct NewRow;
|
|
1284
|
-
NewRow.Value = 100;
|
|
1285
|
-
Table->AddRow(RowName, NewRow);
|
|
1286
|
-
```
|
|
1287
|
-
|
|
1288
|
-
### Curves
|
|
1289
|
-
```cpp
|
|
1290
|
-
UCurveFloat* Curve;
|
|
1291
|
-
|
|
1292
|
-
// Add key
|
|
1293
|
-
FKeyHandle Handle = Curve->FloatCurve.AddKey(Time, Value);
|
|
1294
|
-
|
|
1295
|
-
// Set interpolation
|
|
1296
|
-
Curve->FloatCurve.SetKeyInterpMode(Handle, RCIM_Cubic);
|
|
1297
|
-
Curve->FloatCurve.SetKeyTangentMode(Handle, RCTM_Auto);
|
|
1298
|
-
|
|
1299
|
-
// Evaluate
|
|
1300
|
-
float Result = Curve->GetFloatValue(Time);
|
|
1301
|
-
```
|
|
1302
|
-
|
|
1303
|
-
---
|
|
1304
|
-
|
|
1305
|
-
## Build & Deployment
|
|
1306
|
-
|
|
1307
|
-
### Key Headers
|
|
1308
|
-
| File | Purpose |
|
|
1309
|
-
|------|---------|
|
|
1310
|
-
| `Programs/UnrealBuildTool/` | UBT source |
|
|
1311
|
-
| `Programs/AutomationTool/` | UAT source |
|
|
1312
|
-
| `Developer/DesktopPlatform/Public/DesktopPlatformModule.h` | Platform utilities |
|
|
1313
|
-
|
|
1314
|
-
### Build Automation (via Commandlet)
|
|
1315
|
-
```cpp
|
|
1316
|
-
// Run from command line
|
|
1317
|
-
UnrealEditor-Cmd.exe MyProject.uproject -run=Cook -TargetPlatform=Windows
|
|
1318
|
-
|
|
1319
|
-
// Package project
|
|
1320
|
-
RunUAT.bat BuildCookRun -project=MyProject.uproject -platform=Win64 -clientconfig=Shipping -cook -stage -pak -archive
|
|
1321
|
-
```
|
|
1322
|
-
|
|
1323
|
-
### Project Settings Access
|
|
1324
|
-
```cpp
|
|
1325
|
-
// Platform settings
|
|
1326
|
-
UAndroidRuntimeSettings* AndroidSettings = GetMutableDefault<UAndroidRuntimeSettings>();
|
|
1327
|
-
UWindowsTargetSettings* WindowsSettings = GetMutableDefault<UWindowsTargetSettings>();
|
|
1328
|
-
|
|
1329
|
-
// Packaging settings
|
|
1330
|
-
UProjectPackagingSettings* PackSettings = GetMutableDefault<UProjectPackagingSettings>();
|
|
1331
|
-
PackSettings->BuildConfiguration = EProjectPackagingBuildConfigurations::PPBC_Shipping;
|
|
1332
|
-
PackSettings->bCompressed = true;
|
|
1333
|
-
```
|
|
1334
|
-
|
|
1335
|
-
### Build Configuration
|
|
1336
|
-
```cpp
|
|
1337
|
-
// Via command line or DefaultGame.ini
|
|
1338
|
-
[/Script/UnrealEd.ProjectPackagingSettings]
|
|
1339
|
-
BuildConfiguration=PPBC_Shipping
|
|
1340
|
-
bCompressed=true
|
|
1341
|
-
BlueprintNativizationMethod=Disabled
|
|
1342
|
-
```
|
|
1343
|
-
|
|
1344
|
-
---
|
|
1345
|
-
|
|
1346
|
-
## Testing & Quality
|
|
1347
|
-
|
|
1348
|
-
### Key Headers
|
|
1349
|
-
| File | Purpose |
|
|
1350
|
-
|------|---------|
|
|
1351
|
-
| `Runtime/Core/Public/Misc/AutomationTest.h` | Test framework base |
|
|
1352
|
-
| `Developer/AutomationController/Public/IAutomationControllerManager.h` | Test controller |
|
|
1353
|
-
| `Developer/FunctionalTesting/Classes/FunctionalTest.h` | Functional tests |
|
|
1354
|
-
|
|
1355
|
-
### Automation Test Definition
|
|
1356
|
-
```cpp
|
|
1357
|
-
IMPLEMENT_SIMPLE_AUTOMATION_TEST(FMyTest, "Project.Category.TestName",
|
|
1358
|
-
EAutomationTestFlags::EditorContext | EAutomationTestFlags::ProductFilter)
|
|
1359
|
-
|
|
1360
|
-
bool FMyTest::RunTest(const FString& Parameters)
|
|
1361
|
-
{
|
|
1362
|
-
// Arrange
|
|
1363
|
-
int32 A = 5;
|
|
1364
|
-
int32 B = 3;
|
|
1365
|
-
|
|
1366
|
-
// Act
|
|
1367
|
-
int32 Result = A + B;
|
|
1368
|
-
|
|
1369
|
-
// Assert
|
|
1370
|
-
TestEqual(TEXT("Addition works"), Result, 8);
|
|
1371
|
-
|
|
1372
|
-
return true;
|
|
1373
|
-
}
|
|
1374
|
-
```
|
|
1375
|
-
|
|
1376
|
-
### Complex/Latent Tests
|
|
1377
|
-
```cpp
|
|
1378
|
-
IMPLEMENT_COMPLEX_AUTOMATION_TEST(FMyComplexTest, "Project.Complex.Test",
|
|
1379
|
-
EAutomationTestFlags::EditorContext | EAutomationTestFlags::ProductFilter)
|
|
1380
|
-
|
|
1381
|
-
void FMyComplexTest::GetTests(TArray<FString>& OutBeautifiedNames,
|
|
1382
|
-
TArray<FString>& OutTestCommands) const
|
|
1383
|
-
{
|
|
1384
|
-
OutBeautifiedNames.Add("TestCase1");
|
|
1385
|
-
OutTestCommands.Add("Param1");
|
|
1386
|
-
OutBeautifiedNames.Add("TestCase2");
|
|
1387
|
-
OutTestCommands.Add("Param2");
|
|
1388
|
-
}
|
|
1389
|
-
|
|
1390
|
-
bool FMyComplexTest::RunTest(const FString& Parameters)
|
|
1391
|
-
{
|
|
1392
|
-
// Parameters contains the test command
|
|
1393
|
-
return true;
|
|
1394
|
-
}
|
|
1395
|
-
```
|
|
1396
|
-
|
|
1397
|
-
### Functional Tests (In-World)
|
|
1398
|
-
```cpp
|
|
1399
|
-
UCLASS()
|
|
1400
|
-
class AFunctionalTest_MyFeature : public AFunctionalTest
|
|
1401
|
-
{
|
|
1402
|
-
virtual void PrepareTest() override;
|
|
1403
|
-
virtual void StartTest() override;
|
|
1404
|
-
|
|
1405
|
-
// Call when done
|
|
1406
|
-
void OnTestComplete()
|
|
1407
|
-
{
|
|
1408
|
-
FinishTest(EFunctionalTestResult::Succeeded, "Test passed");
|
|
1409
|
-
}
|
|
1410
|
-
};
|
|
1411
|
-
```
|
|
1412
|
-
|
|
1413
|
-
### Running Tests
|
|
1414
|
-
```bash
|
|
1415
|
-
# Command line
|
|
1416
|
-
UnrealEditor-Cmd.exe MyProject.uproject -ExecCmds="Automation RunTests Project"
|
|
1417
|
-
|
|
1418
|
-
# Gauntlet (CI)
|
|
1419
|
-
RunUAT.bat RunUnreal -project=MyProject -test=Project.Category -platform=Win64
|
|
1420
|
-
```
|
|
1421
|
-
|
|
1422
|
-
---
|
|
1423
|
-
|
|
1424
|
-
## Editor Utilities
|
|
1425
|
-
|
|
1426
|
-
### Key Headers
|
|
1427
|
-
| File | Purpose |
|
|
1428
|
-
|------|---------|
|
|
1429
|
-
| `Editor/Blutility/Classes/EditorUtilityWidget.h` | Editor utility widget |
|
|
1430
|
-
| `Editor/Blutility/Classes/EditorUtilityBlueprint.h` | Editor utility BP |
|
|
1431
|
-
| `Editor/Blutility/Classes/AssetActionUtility.h` | Asset actions |
|
|
1432
|
-
| `Editor/Blutility/Classes/ActorActionUtility.h` | Actor actions |
|
|
1433
|
-
| `Editor/Blutility/Classes/EditorUtilityTask.h` | Background tasks |
|
|
1434
|
-
|
|
1435
|
-
### Editor Utility Widget
|
|
1436
|
-
```cpp
|
|
1437
|
-
UEditorUtilityWidget* Widget;
|
|
1438
|
-
|
|
1439
|
-
// Run from C++
|
|
1440
|
-
UEditorUtilitySubsystem* Subsystem = GEditor->GetEditorSubsystem<UEditorUtilitySubsystem>();
|
|
1441
|
-
Subsystem->SpawnAndRegisterTab(WidgetBlueprint);
|
|
1442
|
-
```
|
|
1443
|
-
|
|
1444
|
-
### Asset/Actor Actions
|
|
1445
|
-
```cpp
|
|
1446
|
-
// Asset action (right-click menu)
|
|
1447
|
-
UCLASS()
|
|
1448
|
-
class UMyAssetAction : public UAssetActionUtility
|
|
1449
|
-
{
|
|
1450
|
-
UFUNCTION(CallInEditor, Category = "MyTools")
|
|
1451
|
-
void ProcessSelectedAssets();
|
|
1452
|
-
};
|
|
1453
|
-
|
|
1454
|
-
// Actor action (right-click on actors)
|
|
1455
|
-
UCLASS()
|
|
1456
|
-
class UMyActorAction : public UActorActionUtility
|
|
1457
|
-
{
|
|
1458
|
-
UFUNCTION(CallInEditor, Category = "MyTools")
|
|
1459
|
-
void ProcessSelectedActors();
|
|
1460
|
-
};
|
|
1461
|
-
```
|
|
1462
|
-
|
|
1463
|
-
### Editor Utility Task (Background)
|
|
1464
|
-
```cpp
|
|
1465
|
-
UCLASS()
|
|
1466
|
-
class UMyEditorTask : public UEditorUtilityTask
|
|
1467
|
-
{
|
|
1468
|
-
virtual void BeginExecution() override;
|
|
1469
|
-
virtual void EndExecution(EEditorScriptExecutionResult Result) override;
|
|
1470
|
-
|
|
1471
|
-
// Use FinishExecutingTask() when done
|
|
1472
|
-
};
|
|
1473
|
-
```
|
|
1474
|
-
|
|
1475
|
-
---
|
|
1476
|
-
|
|
1477
|
-
## Additional Gameplay Systems
|
|
1478
|
-
|
|
1479
|
-
### Key Headers
|
|
1480
|
-
| File | Purpose |
|
|
1481
|
-
|------|---------|
|
|
1482
|
-
| `Runtime/Engine/Classes/Components/TimelineComponent.h` | Timeline component |
|
|
1483
|
-
| `Runtime/Engine/Classes/Engine/DirectionalLightComponent.h` | Sun for time of day |
|
|
1484
|
-
| `Runtime/Engine/Public/SubtitleManager.h` | Subtitle display |
|
|
1485
|
-
| `Runtime/Engine/Classes/Kismet/GameplayStatics.h` | General gameplay |
|
|
1486
|
-
|
|
1487
|
-
### Quest System Pattern (Custom)
|
|
1488
|
-
```cpp
|
|
1489
|
-
USTRUCT(BlueprintType)
|
|
1490
|
-
struct FQuestObjective
|
|
1491
|
-
{
|
|
1492
|
-
UPROPERTY(EditDefaultsOnly)
|
|
1493
|
-
FName ObjectiveID;
|
|
1494
|
-
|
|
1495
|
-
UPROPERTY(EditDefaultsOnly)
|
|
1496
|
-
FText Description;
|
|
1497
|
-
|
|
1498
|
-
UPROPERTY(BlueprintReadWrite)
|
|
1499
|
-
int32 CurrentProgress = 0;
|
|
1500
|
-
|
|
1501
|
-
UPROPERTY(EditDefaultsOnly)
|
|
1502
|
-
int32 RequiredProgress = 1;
|
|
1503
|
-
|
|
1504
|
-
bool IsComplete() const { return CurrentProgress >= RequiredProgress; }
|
|
1505
|
-
};
|
|
1506
|
-
|
|
1507
|
-
UCLASS()
|
|
1508
|
-
class UQuestDataAsset : public UPrimaryDataAsset
|
|
1509
|
-
{
|
|
1510
|
-
UPROPERTY(EditDefaultsOnly)
|
|
1511
|
-
FName QuestID;
|
|
1512
|
-
|
|
1513
|
-
UPROPERTY(EditDefaultsOnly)
|
|
1514
|
-
TArray<FQuestObjective> Objectives;
|
|
1515
|
-
|
|
1516
|
-
UPROPERTY(EditDefaultsOnly)
|
|
1517
|
-
TArray<UQuestDataAsset*> Prerequisites;
|
|
1518
|
-
};
|
|
1519
|
-
```
|
|
1520
|
-
|
|
1521
|
-
### Time of Day System
|
|
1522
|
-
```cpp
|
|
1523
|
-
// Rotate directional light for sun
|
|
1524
|
-
ADirectionalLight* Sun;
|
|
1525
|
-
FRotator SunRotation = FRotator(-45.f + (TimeOfDay * 180.f / 24.f), 0.f, 0.f);
|
|
1526
|
-
Sun->SetActorRotation(SunRotation);
|
|
1527
|
-
|
|
1528
|
-
// Update sky atmosphere
|
|
1529
|
-
USkyAtmosphereComponent* SkyAtmo;
|
|
1530
|
-
SkyAtmo->SetAtmosphereSunLight(Sun);
|
|
1531
|
-
SkyAtmo->MarkRenderStateDirty();
|
|
1532
|
-
|
|
1533
|
-
// Update sky light (recapture)
|
|
1534
|
-
USkyLightComponent* SkyLight;
|
|
1535
|
-
SkyLight->RecaptureSky();
|
|
1536
|
-
```
|
|
1537
|
-
|
|
1538
|
-
### Dialogue System Pattern
|
|
1539
|
-
```cpp
|
|
1540
|
-
USTRUCT(BlueprintType)
|
|
1541
|
-
struct FDialogueNode
|
|
1542
|
-
{
|
|
1543
|
-
UPROPERTY(EditDefaultsOnly)
|
|
1544
|
-
FText SpeakerName;
|
|
1545
|
-
|
|
1546
|
-
UPROPERTY(EditDefaultsOnly)
|
|
1547
|
-
FText DialogueText;
|
|
1548
|
-
|
|
1549
|
-
UPROPERTY(EditDefaultsOnly)
|
|
1550
|
-
USoundWave* VoiceOver;
|
|
1551
|
-
|
|
1552
|
-
UPROPERTY(EditDefaultsOnly)
|
|
1553
|
-
TArray<FDialogueChoice> Choices;
|
|
1554
|
-
|
|
1555
|
-
UPROPERTY(EditDefaultsOnly)
|
|
1556
|
-
FName NextNodeID; // If no choices
|
|
1557
|
-
};
|
|
1558
|
-
```
|
|
1559
|
-
|
|
1560
|
-
### Subtitle Manager
|
|
1561
|
-
```cpp
|
|
1562
|
-
FSubtitleManager* SubMgr = FSubtitleManager::GetSubtitleManager();
|
|
1563
|
-
|
|
1564
|
-
// Display subtitle
|
|
1565
|
-
FSubtitle Sub;
|
|
1566
|
-
Sub.Priority = 0;
|
|
1567
|
-
Sub.Text = LOCTEXT("Subtitle", "Hello, world!");
|
|
1568
|
-
Sub.StartTime = 0.f;
|
|
1569
|
-
Sub.EndTime = 3.f;
|
|
1570
|
-
SubMgr->DisplaySubtitle(this, {Sub}, Duration);
|
|
1571
|
-
```
|
|
1572
|
-
|
|
1573
|
-
---
|
|
1574
|
-
|
|
1575
|
-
## Third-Party Plugin Integration
|
|
1576
|
-
|
|
1577
|
-
### Quixel Bridge (Megascans)
|
|
1578
|
-
**Location**: `Plugins/Bridge/`
|
|
1579
|
-
```cpp
|
|
1580
|
-
// Assets imported via Bridge app automatically
|
|
1581
|
-
// Access imported asset data:
|
|
1582
|
-
UMSAssetImportData* ImportData = Cast<UMSAssetImportData>(
|
|
1583
|
-
Asset->GetAssetImportData()
|
|
1584
|
-
);
|
|
1585
|
-
```
|
|
1586
|
-
|
|
1587
|
-
### MetaHuman
|
|
1588
|
-
**Location**: `Plugins/Runtime/MetaHumans/`
|
|
1589
|
-
```cpp
|
|
1590
|
-
// MetaHuman Blueprint components
|
|
1591
|
-
UMetaHumanComponent* MetaHuman;
|
|
1592
|
-
MetaHuman->SetLODLevel(0); // 0 = highest quality
|
|
1593
|
-
|
|
1594
|
-
// DNA integration for procedural heads
|
|
1595
|
-
// Requires RigLogic plugin
|
|
1596
|
-
```
|
|
1597
|
-
|
|
1598
|
-
### Audio Middleware (Wwise/FMOD Integration Pattern)
|
|
1599
|
-
```cpp
|
|
1600
|
-
// Wwise (separate plugin)
|
|
1601
|
-
#include "AkGameplayStatics.h"
|
|
1602
|
-
UAkGameplayStatics::PostEvent(SoundEvent, Actor);
|
|
1603
|
-
UAkGameplayStatics::SetRTPCValue(RTPCName, Value, Actor);
|
|
1604
|
-
UAkGameplayStatics::SetState(StateGroup, State);
|
|
1605
|
-
UAkGameplayStatics::SetSwitch(SwitchGroup, SwitchState, Actor);
|
|
1606
|
-
|
|
1607
|
-
// FMOD (separate plugin)
|
|
1608
|
-
#include "FMODBlueprintStatics.h"
|
|
1609
|
-
UFMODBlueprintStatics::PlayEvent2D(Event, bAutoPlay);
|
|
1610
|
-
UFMODBlueprintStatics::SetGlobalParameterByName(Name, Value);
|
|
1611
|
-
```
|
|
1612
|
-
|
|
1613
|
-
### Live Link (MoCap/Animation)
|
|
1614
|
-
**Location**: `Plugins/Animation/LiveLink/`
|
|
1615
|
-
```cpp
|
|
1616
|
-
ILiveLinkClient* Client = &IModularFeatures::Get().GetModularFeature<ILiveLinkClient>(
|
|
1617
|
-
ILiveLinkClient::ModularFeatureName
|
|
1618
|
-
);
|
|
1619
|
-
|
|
1620
|
-
// Available sources
|
|
1621
|
-
TArray<FGuid> SourceGuids = Client->GetSources();
|
|
1622
|
-
|
|
1623
|
-
// Evaluate frame
|
|
1624
|
-
FLiveLinkSubjectFrameData FrameData;
|
|
1625
|
-
Client->EvaluateFrame_AnyThread(SubjectName, ULiveLinkAnimationRole::StaticClass(), FrameData);
|
|
1626
|
-
|
|
1627
|
-
// Get skeleton data
|
|
1628
|
-
const FLiveLinkSkeletonStaticData* StaticData = FrameData.StaticData.Cast<FLiveLinkSkeletonStaticData>();
|
|
1629
|
-
const FLiveLinkAnimationFrameData* FrameAnimData = FrameData.FrameData.Cast<FLiveLinkAnimationFrameData>();
|
|
1630
|
-
```
|
|
1631
|
-
|
|
1632
|
-
---
|
|
1633
|
-
|
|
1634
|
-
## Virtual Production
|
|
1635
|
-
|
|
1636
|
-
### Key Locations
|
|
1637
|
-
- nDisplay: `Plugins/Runtime/nDisplay/`
|
|
1638
|
-
- Live Link: `Plugins/Animation/LiveLink/`
|
|
1639
|
-
- DMX: `Plugins/VirtualProduction/DMX/`
|
|
1640
|
-
- Stage Monitoring: `Plugins/VirtualProduction/StageMonitoring/`
|
|
1641
|
-
|
|
1642
|
-
### Key Headers
|
|
1643
|
-
| File | Purpose |
|
|
1644
|
-
|------|---------|
|
|
1645
|
-
| `nDisplay/Source/DisplayCluster/Public/DisplayClusterRootActor.h` | nDisplay root |
|
|
1646
|
-
| `nDisplay/Source/DisplayClusterConfiguration/Public/DisplayClusterConfigurationTypes_ICVFX.h` | ICVFX config |
|
|
1647
|
-
| `LiveLink/Source/LiveLink/Public/LiveLinkClient.h` | Live Link client |
|
|
1648
|
-
| `DMXRuntime/Public/Library/DMXLibrary.h` | DMX library |
|
|
1649
|
-
| `StageMonitor/Public/IStageMonitor.h` | Stage monitoring |
|
|
1650
|
-
|
|
1651
|
-
### nDisplay
|
|
1652
|
-
```cpp
|
|
1653
|
-
ADisplayClusterRootActor* RootActor;
|
|
1654
|
-
|
|
1655
|
-
// Get managers via module
|
|
1656
|
-
IDisplayCluster& Cluster = IDisplayCluster::Get();
|
|
1657
|
-
IDisplayClusterRenderManager* RenderMgr = Cluster.GetRenderMgr();
|
|
1658
|
-
IDisplayClusterClusterManager* ClusterMgr = Cluster.GetClusterMgr();
|
|
1659
|
-
|
|
1660
|
-
// Configuration data
|
|
1661
|
-
UDisplayClusterConfigurationData* Config = RootActor->GetConfigData();
|
|
1662
|
-
```
|
|
1663
|
-
|
|
1664
|
-
### ICVFX (In-Camera VFX)
|
|
1665
|
-
```cpp
|
|
1666
|
-
// Access ICVFX camera settings
|
|
1667
|
-
FDisplayClusterConfigurationICVFX_CameraSettings& CamSettings =
|
|
1668
|
-
Config->StageSettings.DefaultCamera;
|
|
1669
|
-
|
|
1670
|
-
CamSettings.bEnable = true;
|
|
1671
|
-
CamSettings.RenderSettings.GenerateMips.bAutoGenerateMips = true;
|
|
1672
|
-
|
|
1673
|
-
// Light cards
|
|
1674
|
-
Config->StageSettings.Lightcard.bEnable = true;
|
|
1675
|
-
```
|
|
1676
|
-
|
|
1677
|
-
### Live Link
|
|
1678
|
-
```cpp
|
|
1679
|
-
ILiveLinkClient* Client = &IModularFeatures::Get().GetModularFeature<ILiveLinkClient>(
|
|
1680
|
-
ILiveLinkClient::ModularFeatureName
|
|
1681
|
-
);
|
|
1682
|
-
|
|
1683
|
-
// Get subject data
|
|
1684
|
-
FLiveLinkSubjectFrameData FrameData;
|
|
1685
|
-
Client->EvaluateFrame_AnyThread(SubjectName, Role, FrameData);
|
|
1686
|
-
|
|
1687
|
-
// Push data from custom source
|
|
1688
|
-
Client->PushSubjectFrameData_AnyThread(SubjectKey, MoveTemp(FrameData));
|
|
1689
|
-
```
|
|
1690
|
-
|
|
1691
|
-
### DMX
|
|
1692
|
-
```cpp
|
|
1693
|
-
UDMXLibrary* Library;
|
|
1694
|
-
|
|
1695
|
-
// Get fixture patches
|
|
1696
|
-
TArray<UDMXEntityFixturePatch*> Patches = Library->GetEntitiesTypeCast<UDMXEntityFixturePatch>();
|
|
1697
|
-
|
|
1698
|
-
// Send DMX
|
|
1699
|
-
for (UDMXEntityFixturePatch* Patch : Patches)
|
|
1700
|
-
{
|
|
1701
|
-
TMap<int32, uint8> ChannelValues;
|
|
1702
|
-
ChannelValues.Add(1, 255); // Channel 1 = 255
|
|
1703
|
-
Patch->SendDMX(ChannelValues);
|
|
1704
|
-
}
|
|
1705
|
-
```
|
|
1706
|
-
|
|
1707
|
-
---
|
|
1708
|
-
|
|
1709
|
-
## XR (VR/AR/MR)
|
|
1710
|
-
|
|
1711
|
-
### Key Headers
|
|
1712
|
-
| File | Purpose |
|
|
1713
|
-
|------|---------|
|
|
1714
|
-
| `Runtime/HeadMountedDisplay/Public/IXRTrackingSystem.h` | XR tracking |
|
|
1715
|
-
| `Runtime/HeadMountedDisplay/Public/MotionControllerComponent.h` | Motion controllers |
|
|
1716
|
-
| `Plugins/Runtime/OpenXR/Source/OpenXRHMD/Public/*.h` | OpenXR |
|
|
1717
|
-
| `Runtime/HeadMountedDisplay/Public/XRMotionControllerBase.h` | Controller base |
|
|
1718
|
-
|
|
1719
|
-
### XR Tracking
|
|
1720
|
-
```cpp
|
|
1721
|
-
IXRTrackingSystem* XRSystem = GEngine->XRSystem.Get();
|
|
1722
|
-
|
|
1723
|
-
// Get HMD position/rotation
|
|
1724
|
-
FQuat Orientation;
|
|
1725
|
-
FVector Position;
|
|
1726
|
-
XRSystem->GetCurrentPose(IXRTrackingSystem::HMDDeviceId, Orientation, Position);
|
|
1727
|
-
|
|
1728
|
-
// Check XR enabled
|
|
1729
|
-
bool bIsXR = XRSystem && XRSystem->IsHeadTrackingAllowed();
|
|
1730
|
-
```
|
|
1731
|
-
|
|
1732
|
-
### Motion Controllers
|
|
1733
|
-
```cpp
|
|
1734
|
-
UMotionControllerComponent* LeftHand;
|
|
1735
|
-
LeftHand->MotionSource = FXRMotionControllerBase::LeftHandSourceId;
|
|
1736
|
-
LeftHand->bDisplayDeviceModel = true;
|
|
1737
|
-
|
|
1738
|
-
// Get grip/aim pose
|
|
1739
|
-
FVector GripLocation = LeftHand->GetComponentLocation();
|
|
1740
|
-
FRotator GripRotation = LeftHand->GetComponentRotation();
|
|
1741
|
-
```
|
|
1742
|
-
|
|
1743
|
-
### OpenXR Actions
|
|
1744
|
-
```cpp
|
|
1745
|
-
// Via Enhanced Input (recommended)
|
|
1746
|
-
UInputAction* GrabAction;
|
|
1747
|
-
// Bind to XR controller input in Input Mapping Context
|
|
1748
|
-
```
|
|
1749
|
-
|
|
1750
|
-
---
|
|
1751
|
-
|
|
1752
|
-
## Online Services
|
|
1753
|
-
|
|
1754
|
-
### Plugin Location
|
|
1755
|
-
`Plugins/Online/OnlineSubsystem*/`
|
|
1756
|
-
|
|
1757
|
-
### Key Headers
|
|
1758
|
-
| File | Purpose |
|
|
1759
|
-
|------|---------|
|
|
1760
|
-
| `Runtime/Online/OnlineSubsystem/Public/OnlineSubsystem.h` | OSS base |
|
|
1761
|
-
| `Runtime/Online/OnlineSubsystem/Public/Interfaces/*.h` | All interfaces |
|
|
1762
|
-
| `Plugins/Online/OnlineSubsystemEOS/Public/*.h` | Epic Online Services |
|
|
1763
|
-
|
|
1764
|
-
### Online Subsystem Access
|
|
1765
|
-
```cpp
|
|
1766
|
-
IOnlineSubsystem* OSS = IOnlineSubsystem::Get();
|
|
1767
|
-
|
|
1768
|
-
// Session interface
|
|
1769
|
-
IOnlineSessionPtr Sessions = OSS->GetSessionInterface();
|
|
1770
|
-
|
|
1771
|
-
// Friends interface
|
|
1772
|
-
IOnlineFriendsPtr Friends = OSS->GetFriendsInterface();
|
|
1773
|
-
|
|
1774
|
-
// Leaderboards
|
|
1775
|
-
IOnlineLeaderboardsPtr Leaderboards = OSS->GetLeaderboardsInterface();
|
|
1776
|
-
|
|
1777
|
-
// Achievements
|
|
1778
|
-
IOnlineAchievementsPtr Achievements = OSS->GetAchievementsInterface();
|
|
1779
|
-
```
|
|
1780
|
-
|
|
1781
|
-
### Session Management
|
|
1782
|
-
```cpp
|
|
1783
|
-
IOnlineSessionPtr Sessions = OSS->GetSessionInterface();
|
|
1784
|
-
|
|
1785
|
-
// Create session
|
|
1786
|
-
FOnlineSessionSettings Settings;
|
|
1787
|
-
Settings.bIsLANMatch = false;
|
|
1788
|
-
Settings.NumPublicConnections = 4;
|
|
1789
|
-
Settings.bShouldAdvertise = true;
|
|
1790
|
-
Sessions->CreateSession(LocalPlayerNum, SessionName, Settings);
|
|
1791
|
-
|
|
1792
|
-
// Find sessions
|
|
1793
|
-
TSharedRef<FOnlineSessionSearch> Search = MakeShared<FOnlineSessionSearch>();
|
|
1794
|
-
Search->MaxSearchResults = 20;
|
|
1795
|
-
Sessions->FindSessions(LocalPlayerNum, Search);
|
|
1796
|
-
|
|
1797
|
-
// Join session
|
|
1798
|
-
Sessions->JoinSession(LocalPlayerNum, SessionName, SearchResult);
|
|
1799
|
-
```
|
|
1800
|
-
|
|
1801
|
-
---
|
|
1802
|
-
|
|
1803
|
-
## AI & NPC Plugins
|
|
1804
|
-
|
|
1805
|
-
### Mass Entity/AI (Crowd Simulation)
|
|
1806
|
-
**Location**: `Plugins/Runtime/MassGameplay/`
|
|
1807
|
-
|
|
1808
|
-
### Key Concepts
|
|
1809
|
-
| Concept | Description |
|
|
1810
|
-
|---------|-------------|
|
|
1811
|
-
| `FMassFragment` | Data component (struct) |
|
|
1812
|
-
| `UMassProcessor` | System that operates on fragments |
|
|
1813
|
-
| `FMassEntityHandle` | Lightweight entity reference |
|
|
1814
|
-
| `UMassEntityConfigAsset` | Entity template |
|
|
1815
|
-
|
|
1816
|
-
### Mass Entity Creation
|
|
1817
|
-
```cpp
|
|
1818
|
-
UMassEntitySubsystem* EntitySubsystem = World->GetSubsystem<UMassEntitySubsystem>();
|
|
1819
|
-
|
|
1820
|
-
// Create archetype
|
|
1821
|
-
FMassArchetypeHandle Archetype = EntitySubsystem->CreateArchetype(
|
|
1822
|
-
{FTransformFragment::StaticStruct(), FAgentFragment::StaticStruct()},
|
|
1823
|
-
FMassArchetypeSharedFragmentValues()
|
|
1824
|
-
);
|
|
1825
|
-
|
|
1826
|
-
// Spawn entities
|
|
1827
|
-
TArray<FMassEntityHandle> Entities;
|
|
1828
|
-
EntitySubsystem->BatchCreateEntities(Archetype, 1000, Entities);
|
|
1829
|
-
|
|
1830
|
-
// Set fragment data
|
|
1831
|
-
for (FMassEntityHandle& Entity : Entities)
|
|
1832
|
-
{
|
|
1833
|
-
FTransformFragment& Transform = EntitySubsystem->GetFragmentDataChecked<FTransformFragment>(Entity);
|
|
1834
|
-
Transform.SetTransform(FTransform::Identity);
|
|
1835
|
-
}
|
|
1836
|
-
```
|
|
1837
|
-
|
|
1838
|
-
### Mass Processor Pattern
|
|
1839
|
-
```cpp
|
|
1840
|
-
UCLASS()
|
|
1841
|
-
class UMyMassProcessor : public UMassProcessor
|
|
1842
|
-
{
|
|
1843
|
-
protected:
|
|
1844
|
-
virtual void ConfigureQueries() override
|
|
1845
|
-
{
|
|
1846
|
-
EntityQuery.AddRequirement<FTransformFragment>(EMassFragmentAccess::ReadWrite);
|
|
1847
|
-
EntityQuery.AddRequirement<FVelocityFragment>(EMassFragmentAccess::ReadOnly);
|
|
1848
|
-
}
|
|
1849
|
-
|
|
1850
|
-
virtual void Execute(FMassEntityManager& EntityManager, FMassExecutionContext& Context) override
|
|
1851
|
-
{
|
|
1852
|
-
EntityQuery.ForEachEntityChunk(EntityManager, Context,
|
|
1853
|
-
[](FMassExecutionContext& Context)
|
|
1854
|
-
{
|
|
1855
|
-
// Process entities in chunk
|
|
1856
|
-
});
|
|
1857
|
-
}
|
|
1858
|
-
};
|
|
1859
|
-
```
|
|
1860
|
-
|
|
1861
|
-
---
|
|
1862
|
-
|
|
1863
|
-
## Streaming & Distribution
|
|
1864
|
-
|
|
1865
|
-
### Pixel Streaming
|
|
1866
|
-
**Location**: `Plugins/Media/PixelStreaming/`
|
|
1867
|
-
```cpp
|
|
1868
|
-
// Enable via project settings or command line
|
|
1869
|
-
// -PixelStreamingIP=0.0.0.0 -PixelStreamingPort=8888
|
|
1870
|
-
|
|
1871
|
-
// Blueprint functions
|
|
1872
|
-
UPixelStreamingBlueprints::SendPixelStreamingResponse(Response);
|
|
1873
|
-
UPixelStreamingBlueprints::GetPlayerCount();
|
|
1874
|
-
|
|
1875
|
-
// Input component
|
|
1876
|
-
UPixelStreamingInputComponent* PSInput;
|
|
1877
|
-
PSInput->SetMouseModeEnabled(true);
|
|
1878
|
-
PSInput->SetTouchEventsEnabled(true);
|
|
1879
|
-
```
|
|
1880
|
-
|
|
1881
|
-
### Remote Control API
|
|
1882
|
-
**Location**: `Plugins/VirtualProduction/RemoteControl/`
|
|
1883
|
-
```cpp
|
|
1884
|
-
// Expose property
|
|
1885
|
-
URemoteControlPreset* Preset;
|
|
1886
|
-
Preset->ExposeProperty(Object, PropertyName, DisplayName);
|
|
1887
|
-
|
|
1888
|
-
// Expose function
|
|
1889
|
-
Preset->ExposeFunction(Object, FunctionName, DisplayName);
|
|
1890
|
-
|
|
1891
|
-
// Web server runs on port 30010 by default
|
|
1892
|
-
// REST API: /remote/object/{ObjectPath}/property/{PropertyName}
|
|
1893
|
-
```
|
|
1894
|
-
|
|
1895
|
-
---
|
|
1896
|
-
|
|
1897
|
-
## Utility Plugins
|
|
1898
|
-
|
|
1899
|
-
### Python Scripting
|
|
1900
|
-
**Location**: `Plugins/Experimental/PythonScriptPlugin/`
|
|
1901
|
-
```cpp
|
|
1902
|
-
// Execute Python from C++
|
|
1903
|
-
IPythonScriptPlugin& Python = FModuleManager::LoadModuleChecked<IPythonScriptPlugin>("PythonScriptPlugin");
|
|
1904
|
-
Python.ExecPythonCommand(TEXT("print('Hello from Python')"));
|
|
1905
|
-
|
|
1906
|
-
// Execute script file
|
|
1907
|
-
Python.ExecPythonScript(TEXT("/Game/Scripts/my_script.py"));
|
|
1908
|
-
```
|
|
1909
|
-
|
|
1910
|
-
### Python in Editor (unreal module)
|
|
1911
|
-
```python
|
|
1912
|
-
import unreal
|
|
1913
|
-
|
|
1914
|
-
# Get selected actors
|
|
1915
|
-
selected = unreal.EditorLevelLibrary.get_selected_level_actors()
|
|
1916
|
-
|
|
1917
|
-
# Spawn actor
|
|
1918
|
-
actor = unreal.EditorLevelLibrary.spawn_actor_from_class(
|
|
1919
|
-
unreal.StaticMeshActor,
|
|
1920
|
-
unreal.Vector(0, 0, 0)
|
|
1921
|
-
)
|
|
1922
|
-
|
|
1923
|
-
# Modify properties
|
|
1924
|
-
actor.set_actor_label("MyActor")
|
|
1925
|
-
actor.static_mesh_component.set_static_mesh(mesh)
|
|
1926
|
-
|
|
1927
|
-
# Asset operations
|
|
1928
|
-
unreal.EditorAssetLibrary.duplicate_asset("/Game/Source", "/Game/Dest")
|
|
1929
|
-
```
|
|
1930
|
-
|
|
1931
|
-
---
|
|
1932
|
-
|
|
1933
|
-
## Accessibility System
|
|
1934
|
-
|
|
1935
|
-
### Key Headers
|
|
1936
|
-
| File | Purpose |
|
|
1937
|
-
|------|---------|
|
|
1938
|
-
| `Runtime/Engine/Public/SubtitleManager.h` | Subtitle display |
|
|
1939
|
-
| `Runtime/Slate/Public/Widgets/Accessibility/*.h` | Accessible widgets |
|
|
1940
|
-
| `Runtime/ApplicationCore/Public/GenericPlatform/GenericPlatformApplicationMisc.h` | Screen reader |
|
|
1941
|
-
|
|
1942
|
-
### Colorblind Filters
|
|
1943
|
-
```cpp
|
|
1944
|
-
// Project settings or console variables
|
|
1945
|
-
r.Color.Colorblind.Mode = 1 // 0=Off, 1=Deuteranope, 2=Protanope, 3=Tritanope
|
|
1946
|
-
r.Color.Colorblind.Severity = 1.0 // 0.0 to 1.0
|
|
1947
|
-
```
|
|
1948
|
-
|
|
1949
|
-
### Subtitle System
|
|
1950
|
-
```cpp
|
|
1951
|
-
FSubtitleManager* SubMgr = FSubtitleManager::GetSubtitleManager();
|
|
1952
|
-
|
|
1953
|
-
// Configure subtitle options
|
|
1954
|
-
SubMgr->SetSubtitleBackgroundBrush(BackgroundBrush);
|
|
1955
|
-
SubMgr->SetSubtitleTextSize(24.f);
|
|
1956
|
-
|
|
1957
|
-
// Display subtitles
|
|
1958
|
-
TArray<FSubtitle> Subtitles;
|
|
1959
|
-
FSubtitle Sub;
|
|
1960
|
-
Sub.Text = LOCTEXT("Line1", "Hello, player!");
|
|
1961
|
-
Sub.StartTime = 0.f;
|
|
1962
|
-
Sub.EndTime = 3.f;
|
|
1963
|
-
Subtitles.Add(Sub);
|
|
1964
|
-
|
|
1965
|
-
SubMgr->DisplaySubtitle(OwningActor, Subtitles, Duration);
|
|
1966
|
-
```
|
|
1967
|
-
|
|
1968
|
-
### Accessibility Settings Pattern
|
|
1969
|
-
```cpp
|
|
1970
|
-
UCLASS(Config=Game)
|
|
1971
|
-
class UAccessibilitySettings : public UDeveloperSettings
|
|
1972
|
-
{
|
|
1973
|
-
UPROPERTY(Config, EditAnywhere)
|
|
1974
|
-
bool bEnableSubtitles = true;
|
|
1975
|
-
|
|
1976
|
-
UPROPERTY(Config, EditAnywhere)
|
|
1977
|
-
float SubtitleScale = 1.0f;
|
|
1978
|
-
|
|
1979
|
-
UPROPERTY(Config, EditAnywhere)
|
|
1980
|
-
bool bHighContrastMode = false;
|
|
1981
|
-
|
|
1982
|
-
UPROPERTY(Config, EditAnywhere)
|
|
1983
|
-
EColorBlindMode ColorBlindMode = EColorBlindMode::Off;
|
|
1984
|
-
|
|
1985
|
-
UPROPERTY(Config, EditAnywhere)
|
|
1986
|
-
bool bReducedMotion = false;
|
|
1987
|
-
};
|
|
1988
|
-
```
|
|
1989
|
-
|
|
1990
|
-
### Input Remapping
|
|
1991
|
-
```cpp
|
|
1992
|
-
// Enhanced Input supports runtime rebinding
|
|
1993
|
-
UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(PC);
|
|
1994
|
-
|
|
1995
|
-
// Get all mappings
|
|
1996
|
-
TArray<FEnhancedActionKeyMapping> Mappings;
|
|
1997
|
-
Subsystem->GetAllPlayerMappableActionKeyMappings(Mappings);
|
|
1998
|
-
|
|
1999
|
-
// Remap action
|
|
2000
|
-
Subsystem->AddPlayerMappedKey(ActionName, NewKey);
|
|
2001
|
-
```
|
|
2002
|
-
|
|
2003
|
-
---
|
|
2004
|
-
|
|
2005
|
-
## Modding & UGC System
|
|
2006
|
-
|
|
2007
|
-
### Key Headers
|
|
2008
|
-
| File | Purpose |
|
|
2009
|
-
|------|---------|
|
|
2010
|
-
| `Runtime/PakFile/Public/IPlatformFilePak.h` | Pak file interface |
|
|
2011
|
-
| `Runtime/Core/Public/Misc/Paths.h` | Content paths |
|
|
2012
|
-
| `Runtime/AssetRegistry/Public/AssetRegistry/IAssetRegistry.h` | Asset discovery |
|
|
2013
|
-
|
|
2014
|
-
### Pak File Loading
|
|
2015
|
-
```cpp
|
|
2016
|
-
// Mount additional pak file
|
|
2017
|
-
FPakPlatformFile* PakPlatform = static_cast<FPakPlatformFile*>(
|
|
2018
|
-
FPlatformFileManager::Get().GetPlatformFile()
|
|
2019
|
-
);
|
|
2020
|
-
|
|
2021
|
-
bool bMounted = PakPlatform->Mount(
|
|
2022
|
-
*PakFilePath,
|
|
2023
|
-
0, // Priority
|
|
2024
|
-
*MountPoint,
|
|
2025
|
-
false // bLoadIndex
|
|
2026
|
-
);
|
|
2027
|
-
|
|
2028
|
-
// After mounting, assets are accessible via /Game/Mods/...
|
|
2029
|
-
```
|
|
2030
|
-
|
|
2031
|
-
### Dynamic Asset Loading
|
|
2032
|
-
```cpp
|
|
2033
|
-
// Scan for new assets
|
|
2034
|
-
IAssetRegistry& AssetRegistry = FModuleManager::LoadModuleChecked<FAssetRegistryModule>("AssetRegistry").Get();
|
|
2035
|
-
AssetRegistry.ScanPathsSynchronous({"/Game/Mods/"}, true);
|
|
2036
|
-
|
|
2037
|
-
// Find assets in mod folder
|
|
2038
|
-
TArray<FAssetData> ModAssets;
|
|
2039
|
-
AssetRegistry.GetAssetsByPath(FName("/Game/Mods"), ModAssets, true);
|
|
2040
|
-
|
|
2041
|
-
// Load asset
|
|
2042
|
-
UObject* Asset = ModAssets[0].GetAsset();
|
|
2043
|
-
```
|
|
2044
|
-
|
|
2045
|
-
### Mod Manifest Pattern
|
|
2046
|
-
```cpp
|
|
2047
|
-
USTRUCT(BlueprintType)
|
|
2048
|
-
struct FModManifest
|
|
2049
|
-
{
|
|
2050
|
-
UPROPERTY()
|
|
2051
|
-
FString ModName;
|
|
2052
|
-
|
|
2053
|
-
UPROPERTY()
|
|
2054
|
-
FString Version;
|
|
2055
|
-
|
|
2056
|
-
UPROPERTY()
|
|
2057
|
-
FString Author;
|
|
2058
|
-
|
|
2059
|
-
UPROPERTY()
|
|
2060
|
-
TArray<FString> Dependencies;
|
|
2061
|
-
|
|
2062
|
-
UPROPERTY()
|
|
2063
|
-
FString EntryPointClass; // Blueprint class to spawn
|
|
2064
|
-
};
|
|
2065
|
-
|
|
2066
|
-
// Load manifest from JSON in pak
|
|
2067
|
-
FString ManifestPath = FPaths::Combine(ModMountPoint, TEXT("manifest.json"));
|
|
2068
|
-
FString JsonString;
|
|
2069
|
-
FFileHelper::LoadFileToString(JsonString, *ManifestPath);
|
|
2070
|
-
FJsonObjectConverter::JsonObjectStringToUStruct(JsonString, &Manifest);
|
|
2071
|
-
```
|
|
2072
|
-
|
|
2073
|
-
### Steam Workshop Integration Pattern
|
|
2074
|
-
```cpp
|
|
2075
|
-
// Via Online Subsystem Steam
|
|
2076
|
-
IOnlineSubsystem* OSS = IOnlineSubsystem::Get(STEAM_SUBSYSTEM);
|
|
2077
|
-
if (OSS)
|
|
2078
|
-
{
|
|
2079
|
-
// Workshop item operations via SteamAPI
|
|
2080
|
-
// Requires Steamworks SDK integration
|
|
2081
|
-
}
|
|
2082
|
-
```
|
|
2083
|
-
|
|
2084
|
-
---
|
|
2085
|
-
|
|
2086
|
-
## Chaos Physics (Destruction, Vehicles, Cloth)
|
|
2087
|
-
|
|
2088
|
-
### Key Headers
|
|
2089
|
-
| File | Purpose |
|
|
2090
|
-
|------|---------|
|
|
2091
|
-
| `Runtime/Experimental/Chaos/Public/GeometryCollection/GeometryCollection.h` | Core destruction data structure |
|
|
2092
|
-
| `Runtime/Experimental/GeometryCollectionEngine/Public/GeometryCollection/GeometryCollectionActor.h` | Actor wrapper for destruction |
|
|
2093
|
-
| `Runtime/Experimental/GeometryCollectionEngine/Public/GeometryCollection/GeometryCollectionComponent.h` | Simulation and damage handling |
|
|
2094
|
-
| `Plugins/Experimental/Fracture/Source/FractureEngine/Public/FractureEngineFracturing.h` | Fracturing operations API |
|
|
2095
|
-
| `Plugins/Experimental/ChaosVehiclesPlugin/Source/ChaosVehicles/Public/ChaosWheeledVehicleMovementComponent.h` | Vehicle movement |
|
|
2096
|
-
| `Runtime/ClothingSystemRuntimeCommon/Public/ClothingAsset.h` | Cloth asset definition |
|
|
2097
|
-
| `Runtime/Experimental/FieldSystem/Source/FieldSystemEngine/Public/Field/FieldSystemComponent.h` | Physics fields/forces |
|
|
2098
|
-
|
|
2099
|
-
### Geometry Collection & Destruction
|
|
2100
|
-
```cpp
|
|
2101
|
-
// Core components
|
|
2102
|
-
UGeometryCollection* Collection; // Rest state and hierarchy
|
|
2103
|
-
UGeometryCollectionComponent* Comp; // Manages simulation
|
|
2104
|
-
|
|
2105
|
-
// Triggering destruction via Strain
|
|
2106
|
-
Comp->ApplyExternalStrain(ItemIndex, Location, Radius, PropagationDepth, PropagationFactor, Strain);
|
|
2107
|
-
|
|
2108
|
-
// Triggering via Physics Fields
|
|
2109
|
-
Comp->ApplyPhysicsField(bEnabled, TargetType, MetaData, FieldNode);
|
|
2110
|
-
|
|
2111
|
-
// Anchoring pieces (static foundation)
|
|
2112
|
-
Comp->SetAnchoredByIndex(Index, bAnchored);
|
|
2113
|
-
Comp->SetAnchoredByBox(Box, bAnchored);
|
|
2114
|
-
```
|
|
2115
|
-
|
|
2116
|
-
### Fracturing API (FFractureEngineFracturing)
|
|
2117
|
-
```cpp
|
|
2118
|
-
// Fracturing methods - all static functions
|
|
2119
|
-
FFractureEngineFracturing::VoronoiFracture(...); // Point-based fracturing
|
|
2120
|
-
FFractureEngineFracturing::PlaneCutter(...); // Slicing by planes
|
|
2121
|
-
FFractureEngineFracturing::SliceCutter(...); // Uniform slicing
|
|
2122
|
-
FFractureEngineFracturing::BrickCutter(...); // Brick-like patterns
|
|
2123
|
-
FFractureEngineFracturing::MeshCutter(...); // Custom mesh "cookie cutter"
|
|
2124
|
-
```
|
|
2125
|
-
|
|
2126
|
-
### Chaos Vehicles
|
|
2127
|
-
```cpp
|
|
2128
|
-
UChaosWheeledVehicleMovementComponent* VehicleComp;
|
|
2129
|
-
|
|
2130
|
-
// Wheel setup
|
|
2131
|
-
TArray<FChaosWheelSetup> WheelSetups;
|
|
2132
|
-
|
|
2133
|
-
// Mechanical configuration structs
|
|
2134
|
-
FVehicleEngineConfig Engine; // Torque curves, max RPM, MOI
|
|
2135
|
-
FVehicleDifferentialConfig Diff; // AWD/FWD/RWD splits
|
|
2136
|
-
FVehicleTransmissionConfig Trans; // Automatic/Manual, gear ratios
|
|
2137
|
-
FVehicleSteeringConfig Steering; // Ackermann, Angle Ratio modes
|
|
2138
|
-
|
|
2139
|
-
// Initialize physics vehicle
|
|
2140
|
-
VehicleComp->CreatePhysicsVehicle(); // Creates UChaosWheeledVehicleSimulation
|
|
2141
|
-
```
|
|
2142
|
-
|
|
2143
|
-
### Chaos Cloth
|
|
2144
|
-
```cpp
|
|
2145
|
-
// Cloth asset binding
|
|
2146
|
-
UClothingAssetCommon* ClothAsset;
|
|
2147
|
-
ClothAsset->BindToSkeletalMesh(SkeletalMesh, LODIndex, SectionIndex);
|
|
2148
|
-
|
|
2149
|
-
// Configuration via ClothConfigs map
|
|
2150
|
-
TMap<FName, TObjectPtr<UClothConfigBase>> ClothConfigs;
|
|
2151
|
-
|
|
2152
|
-
// Chaos-specific config (from ChaosCloth plugin)
|
|
2153
|
-
UChaosClothConfig* Config;
|
|
2154
|
-
Config->Damping;
|
|
2155
|
-
Config->Stiffness;
|
|
2156
|
-
Config->CollisionThickness;
|
|
2157
|
-
Config->GravityScale;
|
|
2158
|
-
```
|
|
2159
|
-
|
|
2160
|
-
### Field System (Forces & Impulses)
|
|
2161
|
-
```cpp
|
|
2162
|
-
UFieldSystemComponent* FieldComp;
|
|
2163
|
-
|
|
2164
|
-
// Persistent fields (long-running forces like gravity wells)
|
|
2165
|
-
FieldComp->AddPersistentField(bEnabled, TargetType, MetaData, FieldNode);
|
|
2166
|
-
|
|
2167
|
-
// Transient fields (one-shot impulses like explosions)
|
|
2168
|
-
FieldComp->ApplyPhysicsField(bEnabled, TargetType, MetaData, FieldNode);
|
|
2169
|
-
|
|
2170
|
-
// Specific helpers
|
|
2171
|
-
FieldComp->ApplyRadialForce(Location, Radius, Strength);
|
|
2172
|
-
FieldComp->ApplyRadialVectorFalloffForce(Location, Radius, Strength);
|
|
2173
|
-
FieldComp->ApplyLinearForce(Direction, Strength);
|
|
2174
|
-
FieldComp->ApplyStayDynamicField(Location, Radius); // Force kinematic → dynamic
|
|
2175
|
-
```
|
|
2176
|
-
|
|
2177
|
-
---
|
|
2178
|
-
|
|
2179
|
-
## Implementation Notes
|
|
2180
|
-
|
|
2181
|
-
### Editor vs Runtime
|
|
2182
|
-
- Most creation APIs require Editor module (`WITH_EDITOR`)
|
|
2183
|
-
- Runtime modification uses different patterns (e.g., `UMaterialInstanceDynamic`)
|
|
2184
|
-
|
|
2185
|
-
### Thread Safety
|
|
2186
|
-
- Most UObject operations must be on Game Thread
|
|
2187
|
-
- Use `AsyncTask(ENamedThreads::GameThread, ...)` for thread-safe operations
|
|
2188
|
-
|
|
2189
|
-
### Garbage Collection
|
|
2190
|
-
- Use `UPROPERTY()` for UObject references
|
|
2191
|
-
- Use `TWeakObjectPtr<>` for non-owning references
|
|
2192
|
-
- Use `AddToRoot()` for temporary prevention of GC
|
|
2193
|
-
|
|
2194
|
-
### Error Handling Pattern
|
|
2195
|
-
```cpp
|
|
2196
|
-
if (!IsValid(Object))
|
|
2197
|
-
{
|
|
2198
|
-
UE_LOG(LogMCP, Error, TEXT("Invalid object"));
|
|
2199
|
-
return FGeometryScriptResult::Error("Invalid object");
|
|
2200
|
-
}
|
|
2201
|
-
```
|
|
2202
|
-
|
|
2203
|
-
---
|
|
2204
|
-
|
|
2205
|
-
## Quick Reference: Module Dependencies
|
|
2206
|
-
|
|
2207
|
-
| Feature Area | Required Modules |
|
|
2208
|
-
|--------------|------------------|
|
|
2209
|
-
| Geometry | GeometryScriptingCore |
|
|
2210
|
-
| Skeletal Mesh | Engine, SkeletalMeshUtilitiesCommon |
|
|
2211
|
-
| Material Authoring | Engine, MaterialEditor (Editor) |
|
|
2212
|
-
| Texture Authoring | Engine, ImageCore |
|
|
2213
|
-
| Animation Authoring | Engine, ControlRig, IKRig |
|
|
2214
|
-
| Audio Authoring | Engine, AudioMixer, MetasoundEngine |
|
|
2215
|
-
| Niagara Authoring | Niagara, NiagaraCore |
|
|
2216
|
-
| GAS | GameplayAbilities, GameplayTags |
|
|
2217
|
-
| Character | Engine |
|
|
2218
|
-
| Combat | Engine |
|
|
2219
|
-
| AI | AIModule, StateTreeModule |
|
|
2220
|
-
| Inventory | Engine, AssetRegistry |
|
|
2221
|
-
| Interaction | Engine |
|
|
2222
|
-
| UMG | UMG, UMGEditor (Editor) |
|
|
2223
|
-
| Networking | Engine (NetDriver) |
|
|
2224
|
-
| Game Framework | Engine |
|
|
2225
|
-
| Sessions | Engine |
|
|
2226
|
-
| World and Volumes | Engine, WorldPartitionEditor (Editor) |
|
|
2227
|
-
| Navigation | NavigationSystem, AIModule |
|
|
2228
|
-
| Splines | Engine |
|
|
2229
|
-
| PCG | PCG |
|
|
2230
|
-
| Landscape and Foliage | Landscape, Foliage |
|
|
2231
|
-
| Lighting and Rendering | Engine, Renderer |
|
|
2232
|
-
| Sequencer | LevelSequence, MovieScene, MovieRenderPipelineCore |
|
|
2233
|
-
| Data | Engine |
|
|
2234
|
-
| Build | DesktopPlatform, TargetPlatform |
|
|
2235
|
-
| Testing | AutomationController, FunctionalTesting |
|
|
2236
|
-
| Editor Utilities | Blutility (Editor) |
|
|
2237
|
-
| Gameplay | Engine |
|
|
2238
|
-
| Plugins | Bridge, LiveLink, (External: Wwise, FMOD) |
|
|
2239
|
-
| Virtual Production | DisplayCluster, LiveLink, DMXRuntime |
|
|
2240
|
-
| XR | HeadMountedDisplay, OpenXRHMD |
|
|
2241
|
-
| Mass AI | MassEntity, MassGameplay |
|
|
2242
|
-
| Online | OnlineSubsystem, OnlineSubsystemUtils |
|
|
2243
|
-
| Streaming | PixelStreaming, RemoteControl |
|
|
2244
|
-
| Utility | PythonScriptPlugin |
|
|
2245
|
-
| Chaos Physics | Chaos, GeometryCollectionEngine, ChaosVehicles, ChaosCloth, FieldSystemEngine |
|
|
2246
|
-
| Accessibility | Engine, Slate |
|
|
2247
|
-
| Modding | PakFile, AssetRegistry |
|
|
2248
|
-
|
|
2249
|
-
---
|
|
2250
|
-
|
|
2251
|
-
*Document generated from UE 5.6 source analysis for MCP implementation guidance.*
|