ue-mcp 0.7.13 → 0.7.15

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.
@@ -41,6 +41,11 @@ export const animationTool = categoryTool("animation", "Animation assets, skelet
41
41
  create_ik_retargeter: bp("Create IKRetargeter asset. Params: name, packagePath?, sourceRig?, targetRig?", "create_ik_retargeter"),
42
42
  set_anim_blueprint_skeleton: bp("Set target skeleton on AnimBP. Params: assetPath, skeletonPath", "set_anim_blueprint_skeleton"),
43
43
  read_bone_track: bp("Read bone transform samples from AnimSequence. Params: assetPath, boneName, frames?: [int]", "read_bone_track"),
44
+ create_pose_search_database: bp("Create a PoseSearchDatabase asset (motion matching). Params: name, packagePath?, schemaPath?", "create_pose_search_database"),
45
+ set_pose_search_schema: bp("Set the Schema on an existing PoseSearchDatabase. Params: assetPath, schemaPath", "set_pose_search_schema", (p) => ({ assetPath: p.assetPath, schemaPath: p.schemaPath })),
46
+ add_pose_search_sequence: bp("Append an AnimSequence/AnimComposite/AnimMontage/BlendSpace to a PoseSearchDatabase. Params: assetPath, sequencePath", "add_pose_search_sequence", (p) => ({ assetPath: p.assetPath, sequencePath: p.sequencePath })),
47
+ build_pose_search_index: bp("Build (or rebuild) the search index. Params: assetPath, wait? (default true)", "build_pose_search_index", (p) => ({ assetPath: p.assetPath, wait: p.wait })),
48
+ read_pose_search_database: bp("Inspect a PoseSearchDatabase: schema, animation entries, cost biases, tags. Params: assetPath", "read_pose_search_database", (p) => ({ assetPath: p.assetPath })),
44
49
  }, undefined, {
45
50
  assetPath: z.string().optional(),
46
51
  directory: z.string().optional(),
@@ -107,5 +112,9 @@ export const animationTool = categoryTool("animation", "Animation assets, skelet
107
112
  rotation: Quat.optional(),
108
113
  scale: Vec3.optional(),
109
114
  })).optional(),
115
+ // PoseSearch (v0.7.15)
116
+ schemaPath: z.string().optional().describe("Path to a UPoseSearchSchema asset"),
117
+ sequencePath: z.string().optional().describe("Animation asset path to add to a PoseSearchDatabase"),
118
+ wait: z.boolean().optional().describe("build_pose_search_index: block until the async build resolves (default true)"),
110
119
  });
111
120
  //# sourceMappingURL=animation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animation.js","sourceRoot":"","sources":["../../src/tools/animation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"animation.js","sourceRoot":"","sources":["../../src/tools/animation.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,48 @@ export const niagaraTool = categoryTool("niagara", "Niagara VFX: systems, emitte
21
21
  create_system_from_spec: bp("Declaratively create a system + emitters. Params: name, packagePath?, emitters?:[{path}]", "create_niagara_system_from_spec"),
22
22
  get_compiled_hlsl: bp("Read GPU compute script info for an emitter. Params: systemPath, emitterName?, emitterIndex?", "get_niagara_compiled_hlsl"),
23
23
  list_system_parameters: bp("List user-exposed system parameters. Params: systemPath", "list_niagara_system_parameters"),
24
+ list_module_inputs: bp("List modules + their input pins for an emitter. Params: systemPath, emitterName?, emitterIndex?, stackContext? (ParticleSpawn|ParticleUpdate|EmitterSpawn|EmitterUpdate|all — default all)", "list_niagara_module_inputs"),
25
+ set_module_input: bp("Set literal default on a module input pin. Params: systemPath, moduleName, inputName, value, emitterName?, emitterIndex?, stackContext?", "set_niagara_module_input"),
26
+ list_static_switches: bp("List static switch inputs on a module. Params: systemPath, moduleName, emitterName?, emitterIndex?, stackContext?", "list_niagara_static_switches"),
27
+ set_static_switch: bp("Set static switch value on a module's function call node. Params: systemPath, moduleName, switchName, value, emitterName?, emitterIndex?, stackContext?", "set_niagara_static_switch"),
28
+ create_module_from_hlsl: bp("Create a NiagaraScript module backed by a custom HLSL node. Params: name, hlsl, packagePath?, inputs?:[{name,type}], outputs?:[{name,type}]", "create_niagara_module_from_hlsl"),
29
+ batch: {
30
+ description: "Run a sequence of niagara operations against the bridge in order. Fails fast on the first error (returns results up to that point + error). Params: ops:[{action, params}] where action is any niagara subaction listed above.",
31
+ handler: async (ctx, params) => {
32
+ const opsUnknown = params.ops;
33
+ if (!Array.isArray(opsUnknown))
34
+ throw new Error("'ops' must be an array of {action, params}");
35
+ const results = [];
36
+ for (let i = 0; i < opsUnknown.length; i++) {
37
+ const op = opsUnknown[i];
38
+ const action = op?.action;
39
+ if (!action) {
40
+ results.push({ action: "(missing)", error: `ops[${i}] missing 'action'` });
41
+ return { results, stoppedAt: i };
42
+ }
43
+ const spec = niagaraTool.actions[action];
44
+ if (!spec) {
45
+ results.push({ action, error: `Unknown niagara action '${action}'` });
46
+ return { results, stoppedAt: i };
47
+ }
48
+ if (action === "batch") {
49
+ results.push({ action, error: "nested batch not allowed" });
50
+ return { results, stoppedAt: i };
51
+ }
52
+ try {
53
+ const subParams = { ...(op.params ?? {}), action };
54
+ const result = await spec.handler?.(ctx, subParams)
55
+ ?? (spec.bridge ? await ctx.bridge.call(spec.bridge, spec.mapParams ? spec.mapParams(subParams) : (() => { const { action: _, ...r } = subParams; return r; })(), spec.timeoutMs) : undefined);
56
+ results.push({ action, result });
57
+ }
58
+ catch (e) {
59
+ results.push({ action, error: e.message });
60
+ return { results, stoppedAt: i };
61
+ }
62
+ }
63
+ return { results, stoppedAt: null };
64
+ },
65
+ },
24
66
  }, undefined, {
25
67
  assetPath: z.string().optional(), actorLabel: z.string().optional(),
26
68
  directory: z.string().optional(), recursive: z.boolean().optional(),
@@ -41,5 +83,13 @@ export const niagaraTool = categoryTool("niagara", "Niagara VFX: systems, emitte
41
83
  propertyName: z.string().optional(),
42
84
  emitters: z.array(z.record(z.unknown())).optional().describe("Spec: [{path:'/Game/VFX/E_Fire'}]"),
43
85
  onConflict: z.string().optional().describe("skip|error when asset exists"),
86
+ moduleName: z.string().optional().describe("For module input / static switch ops: name of the module function call node"),
87
+ inputName: z.string().optional().describe("For set_module_input: module input pin name"),
88
+ switchName: z.string().optional().describe("For set_static_switch: static switch input name"),
89
+ stackContext: z.string().optional().describe("ParticleSpawn|ParticleUpdate|EmitterSpawn|EmitterUpdate|all (default all)"),
90
+ hlsl: z.string().optional().describe("For create_module_from_hlsl: HLSL body"),
91
+ inputs: z.array(z.record(z.unknown())).optional().describe("For create_module_from_hlsl: [{name, type}]"),
92
+ outputs: z.array(z.record(z.unknown())).optional().describe("For create_module_from_hlsl: [{name, type}]"),
93
+ ops: z.array(z.record(z.unknown())).optional().describe("For batch: [{action, params}]"),
44
94
  });
45
95
  //# sourceMappingURL=niagara.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"niagara.js","sourceRoot":"","sources":["../../src/tools/niagara.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"niagara.js","sourceRoot":"","sources":["../../src/tools/niagara.ts"],"names":[],"mappings":"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"}
@@ -341,6 +341,83 @@ export const projectTool = categoryTool("project", "Project status, config INI f
341
341
  return { engineRoot, moduleCount: modules.length, modules };
342
342
  },
343
343
  },
344
+ search_engine_cpp: {
345
+ description: "Search engine .h/.cpp/.inl files across Runtime/Editor/Developer/Plugins. Params: query, tree? (Runtime|Editor|Developer|Plugins|all — default Runtime), subdirectory?, maxResults? (default 500)",
346
+ handler: async (ctx, p) => {
347
+ ctx.project.ensureLoaded();
348
+ const resolvedEngineRoot = findEngineInstall(ctx.project.engineAssociation ?? null);
349
+ if (!resolvedEngineRoot)
350
+ throw new Error("Could not resolve engine install path");
351
+ const engineRoot = resolvedEngineRoot;
352
+ const query = p.query?.toLowerCase();
353
+ if (!query)
354
+ throw new Error("Missing required parameter 'query'");
355
+ const tree = p.tree ?? "Runtime";
356
+ const maxResults = p.maxResults ?? 500;
357
+ const subdir = p.subdirectory;
358
+ const engineSource = path.join(engineRoot, "Engine", "Source");
359
+ const roots = [];
360
+ if (tree === "all") {
361
+ for (const t of ["Runtime", "Editor", "Developer"]) {
362
+ const d = path.join(engineSource, t);
363
+ if (fs.existsSync(d))
364
+ roots.push(d);
365
+ }
366
+ const pluginsDir = path.join(engineRoot, "Engine", "Plugins");
367
+ if (fs.existsSync(pluginsDir))
368
+ roots.push(pluginsDir);
369
+ }
370
+ else if (tree === "Plugins") {
371
+ const d = path.join(engineRoot, "Engine", "Plugins");
372
+ if (!fs.existsSync(d))
373
+ throw new Error(`Engine plugins dir not found: ${d}`);
374
+ roots.push(d);
375
+ }
376
+ else {
377
+ const d = path.join(engineSource, tree);
378
+ if (!fs.existsSync(d))
379
+ throw new Error(`Engine tree '${tree}' not found: ${d}`);
380
+ roots.push(subdir ? path.join(d, subdir) : d);
381
+ }
382
+ const results = [];
383
+ function scan(dir) {
384
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
385
+ if (results.length >= maxResults)
386
+ return true;
387
+ const full = path.join(dir, entry.name);
388
+ if (entry.isDirectory()) {
389
+ if (entry.name === "Intermediate" || entry.name === "Binaries")
390
+ continue;
391
+ if (scan(full))
392
+ return true;
393
+ }
394
+ else if (/\.(h|cpp|inl)$/i.test(entry.name)) {
395
+ let content;
396
+ try {
397
+ content = fs.readFileSync(full, "utf-8");
398
+ }
399
+ catch {
400
+ continue;
401
+ }
402
+ const lines = content.split(/\r?\n/);
403
+ for (let i = 0; i < lines.length; i++) {
404
+ if (lines[i].toLowerCase().includes(query)) {
405
+ results.push({ file: path.relative(engineRoot, full).replace(/\\/g, "/"), line: i + 1, content: lines[i].trimEnd() });
406
+ if (results.length >= maxResults)
407
+ return true;
408
+ }
409
+ }
410
+ }
411
+ }
412
+ return false;
413
+ }
414
+ for (const r of roots) {
415
+ if (scan(r))
416
+ break;
417
+ }
418
+ return { query: p.query, tree, subdirectory: subdir ?? "(root)", engineRoot, resultCount: results.length, results };
419
+ },
420
+ },
344
421
  set_config: bp("Write to INI. Params: configName, section, key, value", "set_config"),
345
422
  build: bp("Build C++ project. Params: configuration?, platform?, clean?", "build_project"),
346
423
  generate_project_files: bp("Generate IDE project files (Visual Studio, Xcode, etc.)", "generate_project_files"),
@@ -483,7 +560,9 @@ export const projectTool = categoryTool("project", "Project status, config INI f
483
560
  platform: z.string().optional().describe("Target platform: Win64, Linux, Mac"),
484
561
  clean: z.boolean().optional().describe("Clean build"),
485
562
  symbol: z.string().optional().describe("Symbol name for find_engine_symbol"),
486
- maxResults: z.number().optional().describe("Cap on find_engine_symbol hits (default 100)"),
563
+ maxResults: z.number().optional().describe("Cap on find_engine_symbol / search_engine_cpp hits (default 100 / 500)"),
564
+ tree: z.string().optional().describe("For search_engine_cpp: Runtime|Editor|Developer|Plugins|all (default Runtime)"),
565
+ subdirectory: z.string().optional().describe("For search_engine_cpp: subdirectory within the chosen tree"),
487
566
  // v0.7.13 — native C++ authoring
488
567
  className: z.string().optional().describe("For create_cpp_class: new class name (no A/U prefix — handled by parent type)"),
489
568
  parentClass: z.string().optional().describe("For create_cpp_class: parent UClass. Short native names ('Actor') or /Script/<Module>.<Class> paths work. Default UObject."),
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,10 @@ tasks:
59
59
  class_path: project.list_engine_modules
60
60
  group: project
61
61
  description: List modules in Engine/Source/Runtime
62
+ project.search_engine_cpp:
63
+ class_path: project.search_engine_cpp
64
+ group: project
65
+ description: "Search engine .h/.cpp/.inl files across Runtime/Editor/Developer/Plugins. Params: query, tree? (Runtime|Editor|Developer|Plugins|all — default Runtime), subdirectory?, maxResults? (default 500)"
62
66
  project.set_config:
63
67
  class_path: ue-mcp.bridge
64
68
  group: project
@@ -1109,6 +1113,36 @@ tasks:
1109
1113
  description: "Read bone transform samples from AnimSequence. Params: assetPath, boneName, frames?: [int]"
1110
1114
  options:
1111
1115
  method: read_bone_track
1116
+ animation.create_pose_search_database:
1117
+ class_path: ue-mcp.bridge
1118
+ group: animation
1119
+ description: "Create a PoseSearchDatabase asset (motion matching). Params: name, packagePath?, schemaPath?"
1120
+ options:
1121
+ method: create_pose_search_database
1122
+ animation.set_pose_search_schema:
1123
+ class_path: ue-mcp.bridge
1124
+ group: animation
1125
+ description: "Set the Schema on an existing PoseSearchDatabase. Params: assetPath, schemaPath"
1126
+ options:
1127
+ method: set_pose_search_schema
1128
+ animation.add_pose_search_sequence:
1129
+ class_path: ue-mcp.bridge
1130
+ group: animation
1131
+ description: "Append an AnimSequence/AnimComposite/AnimMontage/BlendSpace to a PoseSearchDatabase. Params: assetPath, sequencePath"
1132
+ options:
1133
+ method: add_pose_search_sequence
1134
+ animation.build_pose_search_index:
1135
+ class_path: ue-mcp.bridge
1136
+ group: animation
1137
+ description: "Build (or rebuild) the search index. Params: assetPath, wait? (default true)"
1138
+ options:
1139
+ method: build_pose_search_index
1140
+ animation.read_pose_search_database:
1141
+ class_path: ue-mcp.bridge
1142
+ group: animation
1143
+ description: "Inspect a PoseSearchDatabase: schema, animation entries, cost biases, tags. Params: assetPath"
1144
+ options:
1145
+ method: read_pose_search_database
1112
1146
 
1113
1147
  # ── landscape ──
1114
1148
  landscape.get_info:
@@ -1405,6 +1439,40 @@ tasks:
1405
1439
  description: "List user-exposed system parameters. Params: systemPath"
1406
1440
  options:
1407
1441
  method: list_niagara_system_parameters
1442
+ niagara.list_module_inputs:
1443
+ class_path: ue-mcp.bridge
1444
+ group: niagara
1445
+ description: "List modules + their input pins for an emitter. Params: systemPath, emitterName?, emitterIndex?, stackContext? (ParticleSpawn|ParticleUpdate|EmitterSpawn|EmitterUpdate|all — default all)"
1446
+ options:
1447
+ method: list_niagara_module_inputs
1448
+ niagara.set_module_input:
1449
+ class_path: ue-mcp.bridge
1450
+ group: niagara
1451
+ description: "Set literal default on a module input pin. Params: systemPath, moduleName, inputName, value, emitterName?, emitterIndex?, stackContext?"
1452
+ options:
1453
+ method: set_niagara_module_input
1454
+ niagara.list_static_switches:
1455
+ class_path: ue-mcp.bridge
1456
+ group: niagara
1457
+ description: "List static switch inputs on a module. Params: systemPath, moduleName, emitterName?, emitterIndex?, stackContext?"
1458
+ options:
1459
+ method: list_niagara_static_switches
1460
+ niagara.set_static_switch:
1461
+ class_path: ue-mcp.bridge
1462
+ group: niagara
1463
+ description: "Set static switch value on a module's function call node. Params: systemPath, moduleName, switchName, value, emitterName?, emitterIndex?, stackContext?"
1464
+ options:
1465
+ method: set_niagara_static_switch
1466
+ niagara.create_module_from_hlsl:
1467
+ class_path: ue-mcp.bridge
1468
+ group: niagara
1469
+ description: "Create a NiagaraScript module backed by a custom HLSL node. Params: name, hlsl, packagePath?, inputs?:[{name,type}], outputs?:[{name,type}]"
1470
+ options:
1471
+ method: create_niagara_module_from_hlsl
1472
+ niagara.batch:
1473
+ class_path: niagara.batch
1474
+ group: niagara
1475
+ description: "Run a sequence of niagara operations against the bridge in order. Fails fast on the first error (returns results up to that point + error). Params: ops:[{action, params}] where action is any niagara subaction listed above."
1408
1476
 
1409
1477
  # ── audio ──
1410
1478
  audio.list:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ue-mcp",
3
- "version": "0.7.13",
3
+ "version": "0.7.15",
4
4
  "description": "Unreal Engine MCP server — 19 tools, 300+ actions for AI-driven editor control",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -11,6 +11,9 @@
11
11
  #include "Animation/AnimBlueprint.h"
12
12
  #include "Animation/BlendSpace.h"
13
13
  #include "Animation/AnimComposite.h"
14
+ #include "PoseSearch/PoseSearchDatabase.h"
15
+ #include "PoseSearch/PoseSearchSchema.h"
16
+ #include "PoseSearch/PoseSearchDerivedData.h"
14
17
  #include "Animation/AnimBlueprintGeneratedClass.h"
15
18
  #include "Animation/AnimNotifies/AnimNotify.h"
16
19
  #include "PhysicsEngine/PhysicsAsset.h"
@@ -113,6 +116,13 @@ void FAnimationHandlers::RegisterHandlers(FMCPHandlerRegistry& Registry)
113
116
  Registry.RegisterHandler(TEXT("create_ik_retargeter"), &CreateIKRetargeter);
114
117
  Registry.RegisterHandler(TEXT("set_anim_blueprint_skeleton"), &SetAnimBlueprintSkeleton);
115
118
  Registry.RegisterHandler(TEXT("read_bone_track"), &ReadBoneTrack);
119
+
120
+ // v0.7.15 — PoseSearch (motion matching)
121
+ Registry.RegisterHandler(TEXT("create_pose_search_database"), &CreatePoseSearchDatabase);
122
+ Registry.RegisterHandler(TEXT("set_pose_search_schema"), &SetPoseSearchSchema);
123
+ Registry.RegisterHandler(TEXT("add_pose_search_sequence"), &AddPoseSearchSequence);
124
+ Registry.RegisterHandler(TEXT("build_pose_search_index"), &BuildPoseSearchIndex);
125
+ Registry.RegisterHandler(TEXT("read_pose_search_database"), &ReadPoseSearchDatabase);
116
126
  }
117
127
 
118
128
  TSharedPtr<FJsonValue> FAnimationHandlers::ListAnimAssets(const TSharedPtr<FJsonObject>& Params)
@@ -2906,3 +2916,218 @@ TSharedPtr<FJsonValue> FAnimationHandlers::ReadBoneTrack(const TSharedPtr<FJsonO
2906
2916
  Result->SetArrayField(TEXT("samples"), SamplesArr);
2907
2917
  return MCPResult(Result);
2908
2918
  }
2919
+
2920
+ // ===========================================================================
2921
+ // v0.7.15 — PoseSearch (motion matching)
2922
+ // ===========================================================================
2923
+
2924
+ TSharedPtr<FJsonValue> FAnimationHandlers::CreatePoseSearchDatabase(const TSharedPtr<FJsonObject>& Params)
2925
+ {
2926
+ FString Name;
2927
+ if (auto Err = RequireString(Params, TEXT("name"), Name)) return Err;
2928
+ const FString PackagePath = OptionalString(Params, TEXT("packagePath"), TEXT("/Game/MotionMatching"));
2929
+ const FString SchemaPath = OptionalString(Params, TEXT("schemaPath"), TEXT(""));
2930
+
2931
+ if (auto Hit = MCPCheckAssetExists(PackagePath, Name, OptionalString(Params, TEXT("onConflict"), TEXT("skip")), TEXT("PoseSearchDatabase")))
2932
+ {
2933
+ return Hit;
2934
+ }
2935
+
2936
+ const FString PkgName = PackagePath + TEXT("/") + Name;
2937
+ UPackage* Package = CreatePackage(*PkgName);
2938
+ UPoseSearchDatabase* Database = NewObject<UPoseSearchDatabase>(Package, UPoseSearchDatabase::StaticClass(), *Name, RF_Public | RF_Standalone);
2939
+ if (!Database) return MCPError(TEXT("Failed to create PoseSearchDatabase"));
2940
+
2941
+ if (!SchemaPath.IsEmpty())
2942
+ {
2943
+ UPoseSearchSchema* Schema = Cast<UPoseSearchSchema>(UEditorAssetLibrary::LoadAsset(SchemaPath));
2944
+ if (!Schema) return MCPError(FString::Printf(TEXT("Schema not found: %s"), *SchemaPath));
2945
+ Database->Schema = Schema;
2946
+ }
2947
+
2948
+ FAssetRegistryModule::AssetCreated(Database);
2949
+ Database->MarkPackageDirty();
2950
+ Package->SetDirtyFlag(true);
2951
+ UEditorAssetLibrary::SaveLoadedAsset(Database);
2952
+
2953
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
2954
+ MCPSetCreated(Res);
2955
+ Res->SetStringField(TEXT("path"), Database->GetPathName());
2956
+ Res->SetStringField(TEXT("name"), Name);
2957
+ Res->SetStringField(TEXT("packagePath"), PackagePath);
2958
+ Res->SetStringField(TEXT("schemaPath"), SchemaPath);
2959
+ MCPSetDeleteAssetRollback(Res, Database->GetPathName());
2960
+ return MCPResult(Res);
2961
+ }
2962
+
2963
+ TSharedPtr<FJsonValue> FAnimationHandlers::SetPoseSearchSchema(const TSharedPtr<FJsonObject>& Params)
2964
+ {
2965
+ FString AssetPath;
2966
+ if (auto Err = RequireStringAlt(Params, TEXT("path"), TEXT("assetPath"), AssetPath)) return Err;
2967
+ FString SchemaPath;
2968
+ if (auto Err = RequireString(Params, TEXT("schemaPath"), SchemaPath)) return Err;
2969
+
2970
+ UPoseSearchDatabase* Database = Cast<UPoseSearchDatabase>(UEditorAssetLibrary::LoadAsset(AssetPath));
2971
+ if (!Database) return MCPError(FString::Printf(TEXT("PoseSearchDatabase not found: %s"), *AssetPath));
2972
+
2973
+ UPoseSearchSchema* Schema = Cast<UPoseSearchSchema>(UEditorAssetLibrary::LoadAsset(SchemaPath));
2974
+ if (!Schema) return MCPError(FString::Printf(TEXT("Schema not found: %s"), *SchemaPath));
2975
+
2976
+ const FString PrevSchemaPath = Database->Schema ? Database->Schema->GetPathName() : FString();
2977
+ Database->Modify();
2978
+ Database->Schema = Schema;
2979
+ Database->PostEditChange();
2980
+ UEditorAssetLibrary::SaveLoadedAsset(Database);
2981
+
2982
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
2983
+ MCPSetUpdated(Res);
2984
+ Res->SetStringField(TEXT("path"), AssetPath);
2985
+ Res->SetStringField(TEXT("schemaPath"), SchemaPath);
2986
+ Res->SetStringField(TEXT("previousSchemaPath"), PrevSchemaPath);
2987
+
2988
+ TSharedPtr<FJsonObject> RbPayload = MakeShared<FJsonObject>();
2989
+ RbPayload->SetStringField(TEXT("assetPath"), AssetPath);
2990
+ RbPayload->SetStringField(TEXT("schemaPath"), PrevSchemaPath);
2991
+ if (!PrevSchemaPath.IsEmpty()) MCPSetRollback(Res, TEXT("set_pose_search_schema"), RbPayload);
2992
+ return MCPResult(Res);
2993
+ }
2994
+
2995
+ TSharedPtr<FJsonValue> FAnimationHandlers::AddPoseSearchSequence(const TSharedPtr<FJsonObject>& Params)
2996
+ {
2997
+ FString AssetPath;
2998
+ if (auto Err = RequireStringAlt(Params, TEXT("path"), TEXT("assetPath"), AssetPath)) return Err;
2999
+ FString SequencePath;
3000
+ if (auto Err = RequireString(Params, TEXT("sequencePath"), SequencePath)) return Err;
3001
+
3002
+ UPoseSearchDatabase* Database = Cast<UPoseSearchDatabase>(UEditorAssetLibrary::LoadAsset(AssetPath));
3003
+ if (!Database) return MCPError(FString::Printf(TEXT("PoseSearchDatabase not found: %s"), *AssetPath));
3004
+
3005
+ UObject* AnimAsset = UEditorAssetLibrary::LoadAsset(SequencePath);
3006
+ if (!AnimAsset) return MCPError(FString::Printf(TEXT("Animation asset not found: %s"), *SequencePath));
3007
+
3008
+ // PoseSearch accepts AnimSequence, AnimComposite, AnimMontage, BlendSpace, MultiAnimAsset.
3009
+ if (!AnimAsset->IsA<UAnimSequenceBase>() && !AnimAsset->IsA<UBlendSpace>())
3010
+ {
3011
+ return MCPError(FString::Printf(TEXT("Animation asset type not supported by PoseSearch: %s"), *AnimAsset->GetClass()->GetName()));
3012
+ }
3013
+
3014
+ const int32 PrevCount = Database->GetNumAnimationAssets();
3015
+ FPoseSearchDatabaseAnimationAsset NewEntry;
3016
+ NewEntry.AnimAsset = AnimAsset;
3017
+ Database->Modify();
3018
+ Database->AddAnimationAsset(NewEntry);
3019
+ Database->PostEditChange();
3020
+ UEditorAssetLibrary::SaveLoadedAsset(Database);
3021
+
3022
+ const int32 NewCount = Database->GetNumAnimationAssets();
3023
+
3024
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
3025
+ MCPSetUpdated(Res);
3026
+ Res->SetStringField(TEXT("path"), AssetPath);
3027
+ Res->SetStringField(TEXT("sequencePath"), SequencePath);
3028
+ Res->SetNumberField(TEXT("previousCount"), PrevCount);
3029
+ Res->SetNumberField(TEXT("newCount"), NewCount);
3030
+ Res->SetNumberField(TEXT("addedIndex"), NewCount - 1);
3031
+ return MCPResult(Res);
3032
+ }
3033
+
3034
+ TSharedPtr<FJsonValue> FAnimationHandlers::BuildPoseSearchIndex(const TSharedPtr<FJsonObject>& Params)
3035
+ {
3036
+ FString AssetPath;
3037
+ if (auto Err = RequireStringAlt(Params, TEXT("path"), TEXT("assetPath"), AssetPath)) return Err;
3038
+ const bool bWait = OptionalBool(Params, TEXT("wait"), true);
3039
+
3040
+ UPoseSearchDatabase* Database = Cast<UPoseSearchDatabase>(UEditorAssetLibrary::LoadAsset(AssetPath));
3041
+ if (!Database) return MCPError(FString::Printf(TEXT("PoseSearchDatabase not found: %s"), *AssetPath));
3042
+ if (!Database->Schema) return MCPError(TEXT("Database has no Schema set — call set_pose_search_schema first"));
3043
+ if (Database->GetNumAnimationAssets() == 0) return MCPError(TEXT("Database has no animation assets — call add_pose_search_sequence first"));
3044
+
3045
+ using namespace UE::PoseSearch;
3046
+ const ERequestAsyncBuildFlag Flag = bWait
3047
+ ? (ERequestAsyncBuildFlag::NewRequest | ERequestAsyncBuildFlag::WaitForCompletion)
3048
+ : ERequestAsyncBuildFlag::NewRequest;
3049
+ const EAsyncBuildIndexResult Result = FAsyncPoseSearchDatabasesManagement::RequestAsyncBuildIndex(Database, Flag);
3050
+
3051
+ FString ResultStr;
3052
+ bool bSuccess = false;
3053
+ switch (Result)
3054
+ {
3055
+ case EAsyncBuildIndexResult::Success: ResultStr = TEXT("Success"); bSuccess = true; break;
3056
+ case EAsyncBuildIndexResult::InProgress: ResultStr = TEXT("InProgress"); bSuccess = true; break;
3057
+ case EAsyncBuildIndexResult::Failed: ResultStr = TEXT("Failed"); break;
3058
+ }
3059
+
3060
+ UEditorAssetLibrary::SaveLoadedAsset(Database);
3061
+
3062
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
3063
+ if (bSuccess) MCPSetUpdated(Res);
3064
+ Res->SetBoolField(TEXT("success"), bSuccess);
3065
+ Res->SetStringField(TEXT("path"), AssetPath);
3066
+ Res->SetStringField(TEXT("result"), ResultStr);
3067
+ Res->SetBoolField(TEXT("waitedForCompletion"), bWait);
3068
+ Res->SetNumberField(TEXT("animationAssetCount"), Database->GetNumAnimationAssets());
3069
+ return MCPResult(Res);
3070
+ }
3071
+
3072
+ TSharedPtr<FJsonValue> FAnimationHandlers::ReadPoseSearchDatabase(const TSharedPtr<FJsonObject>& Params)
3073
+ {
3074
+ FString AssetPath;
3075
+ if (auto Err = RequireStringAlt(Params, TEXT("path"), TEXT("assetPath"), AssetPath)) return Err;
3076
+
3077
+ UPoseSearchDatabase* Database = Cast<UPoseSearchDatabase>(UEditorAssetLibrary::LoadAsset(AssetPath));
3078
+ if (!Database) return MCPError(FString::Printf(TEXT("PoseSearchDatabase not found: %s"), *AssetPath));
3079
+
3080
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
3081
+ Res->SetStringField(TEXT("path"), AssetPath);
3082
+ Res->SetStringField(TEXT("name"), Database->GetName());
3083
+ Res->SetStringField(TEXT("schemaPath"), Database->Schema ? Database->Schema->GetPathName() : FString());
3084
+ Res->SetNumberField(TEXT("continuingPoseCostBias"), Database->ContinuingPoseCostBias);
3085
+ Res->SetNumberField(TEXT("baseCostBias"), Database->BaseCostBias);
3086
+ Res->SetNumberField(TEXT("loopingCostBias"), Database->LoopingCostBias);
3087
+ Res->SetNumberField(TEXT("kdTreeQueryNumNeighbors"), Database->KDTreeQueryNumNeighbors);
3088
+
3089
+ const int32 AssetCount = Database->GetNumAnimationAssets();
3090
+ Res->SetNumberField(TEXT("animationAssetCount"), AssetCount);
3091
+
3092
+ TArray<TSharedPtr<FJsonValue>> Animations;
3093
+ for (int32 i = 0; i < AssetCount; ++i)
3094
+ {
3095
+ const FPoseSearchDatabaseAnimationAsset* Entry = Database->GetDatabaseAnimationAsset(i);
3096
+ if (!Entry) continue;
3097
+ TSharedPtr<FJsonObject> A = MakeShared<FJsonObject>();
3098
+ A->SetNumberField(TEXT("index"), i);
3099
+ A->SetStringField(TEXT("assetPath"), Entry->AnimAsset ? Entry->AnimAsset->GetPathName() : FString());
3100
+ A->SetStringField(TEXT("assetClass"), Entry->AnimAsset ? Entry->AnimAsset->GetClass()->GetName() : FString());
3101
+ A->SetBoolField(TEXT("isLooping"), Entry->IsLooping());
3102
+ A->SetBoolField(TEXT("isRootMotionEnabled"), Entry->IsRootMotionEnabled());
3103
+ Animations.Add(MakeShared<FJsonValueObject>(A));
3104
+ }
3105
+ Res->SetArrayField(TEXT("animationAssets"), Animations);
3106
+
3107
+ TArray<TSharedPtr<FJsonValue>> Tags;
3108
+ for (const FName& T : Database->Tags) Tags.Add(MakeShared<FJsonValueString>(T.ToString()));
3109
+ Res->SetArrayField(TEXT("tags"), Tags);
3110
+
3111
+ if (Database->Schema)
3112
+ {
3113
+ TSharedPtr<FJsonObject> SchemaObj = MakeShared<FJsonObject>();
3114
+ SchemaObj->SetStringField(TEXT("path"), Database->Schema->GetPathName());
3115
+ SchemaObj->SetNumberField(TEXT("sampleRate"), Database->Schema->SampleRate);
3116
+ // Channels/Skeletons are private members; use the public GetChannels() accessor
3117
+ // (returns the finalized channel set) and fall back to reflection for Skeletons.
3118
+ SchemaObj->SetNumberField(TEXT("channelCount"), Database->Schema->GetChannels().Num());
3119
+ int32 SkeletonCount = 0;
3120
+ if (FProperty* SkelProp = Database->Schema->GetClass()->FindPropertyByName(TEXT("Skeletons")))
3121
+ {
3122
+ if (FArrayProperty* ArrProp = CastField<FArrayProperty>(SkelProp))
3123
+ {
3124
+ FScriptArrayHelper Helper(ArrProp, ArrProp->ContainerPtrToValuePtr<void>(Database->Schema));
3125
+ SkeletonCount = Helper.Num();
3126
+ }
3127
+ }
3128
+ SchemaObj->SetNumberField(TEXT("skeletonCount"), SkeletonCount);
3129
+ Res->SetObjectField(TEXT("schema"), SchemaObj);
3130
+ }
3131
+
3132
+ return MCPResult(Res);
3133
+ }
@@ -78,4 +78,11 @@ private:
78
78
  static TSharedPtr<FJsonValue> CreateIKRetargeter(const TSharedPtr<FJsonObject>& Params);
79
79
  static TSharedPtr<FJsonValue> SetAnimBlueprintSkeleton(const TSharedPtr<FJsonObject>& Params);
80
80
  static TSharedPtr<FJsonValue> ReadBoneTrack(const TSharedPtr<FJsonObject>& Params);
81
+
82
+ // v0.7.15 — PoseSearch (motion matching)
83
+ static TSharedPtr<FJsonValue> CreatePoseSearchDatabase(const TSharedPtr<FJsonObject>& Params);
84
+ static TSharedPtr<FJsonValue> SetPoseSearchSchema(const TSharedPtr<FJsonObject>& Params);
85
+ static TSharedPtr<FJsonValue> AddPoseSearchSequence(const TSharedPtr<FJsonObject>& Params);
86
+ static TSharedPtr<FJsonValue> BuildPoseSearchIndex(const TSharedPtr<FJsonObject>& Params);
87
+ static TSharedPtr<FJsonValue> ReadPoseSearchDatabase(const TSharedPtr<FJsonObject>& Params);
81
88
  };
@@ -20,11 +20,19 @@
20
20
  #include "NiagaraDataInterface.h"
21
21
  #include "NiagaraScriptSource.h"
22
22
  #include "NiagaraScript.h"
23
+ #include "NiagaraGraph.h"
24
+ #include "NiagaraNodeFunctionCall.h"
25
+ #include "NiagaraNodeCustomHlsl.h"
26
+ #include "NiagaraScriptFactoryNew.h"
27
+ #include "NiagaraEmitterHandle.h"
23
28
  #include "Editor.h"
24
29
  #include "Engine/World.h"
25
30
  #include "EngineUtils.h"
26
31
  #include "GameFramework/Actor.h"
27
32
  #include "Factories/Factory.h"
33
+ #include "EdGraph/EdGraph.h"
34
+ #include "EdGraph/EdGraphPin.h"
35
+ #include "EdGraph/EdGraphNode.h"
28
36
 
29
37
  void FNiagaraHandlers::RegisterHandlers(FMCPHandlerRegistry& Registry)
30
38
  {
@@ -50,6 +58,13 @@ void FNiagaraHandlers::RegisterHandlers(FMCPHandlerRegistry& Registry)
50
58
  Registry.RegisterHandler(TEXT("create_niagara_system_from_spec"), &CreateNiagaraSystemFromSpec);
51
59
  Registry.RegisterHandler(TEXT("get_niagara_compiled_hlsl"), &GetCompiledHLSL);
52
60
  Registry.RegisterHandler(TEXT("list_niagara_system_parameters"), &ListSystemParameters);
61
+
62
+ // v0.7.14 — module inputs, static switches, HLSL modules
63
+ Registry.RegisterHandler(TEXT("list_niagara_module_inputs"), &ListModuleInputs);
64
+ Registry.RegisterHandler(TEXT("set_niagara_module_input"), &SetModuleInput);
65
+ Registry.RegisterHandler(TEXT("list_niagara_static_switches"), &ListStaticSwitches);
66
+ Registry.RegisterHandler(TEXT("set_niagara_static_switch"), &SetStaticSwitch);
67
+ Registry.RegisterHandler(TEXT("create_niagara_module_from_hlsl"), &CreateModuleFromHlsl);
53
68
  }
54
69
 
55
70
  TSharedPtr<FJsonValue> FNiagaraHandlers::ListNiagaraSystems(const TSharedPtr<FJsonObject>& Params)
@@ -1100,3 +1115,414 @@ TSharedPtr<FJsonValue> FNiagaraHandlers::ListSystemParameters(const TSharedPtr<F
1100
1115
  Res->SetNumberField(TEXT("parameterCount"), Arr.Num());
1101
1116
  return MCPResult(Res);
1102
1117
  }
1118
+
1119
+ // ===========================================================================
1120
+ // v0.7.14 — module inputs, static switches, HLSL modules
1121
+ // ===========================================================================
1122
+
1123
+ namespace
1124
+ {
1125
+ struct FScriptSlot
1126
+ {
1127
+ FString Context;
1128
+ UNiagaraScript* Script;
1129
+ };
1130
+
1131
+ void CollectEmitterScripts(FVersionedNiagaraEmitterData* Data, const FString& StackContext, TArray<FScriptSlot>& Out)
1132
+ {
1133
+ const bool bAll = StackContext.IsEmpty() || StackContext.Equals(TEXT("all"), ESearchCase::IgnoreCase);
1134
+ if (!Data) return;
1135
+ if (bAll || StackContext.Equals(TEXT("ParticleSpawn"), ESearchCase::IgnoreCase)) Out.Add({TEXT("ParticleSpawn"), Data->SpawnScriptProps.Script});
1136
+ if (bAll || StackContext.Equals(TEXT("ParticleUpdate"), ESearchCase::IgnoreCase)) Out.Add({TEXT("ParticleUpdate"), Data->UpdateScriptProps.Script});
1137
+ if (bAll || StackContext.Equals(TEXT("EmitterSpawn"), ESearchCase::IgnoreCase)) Out.Add({TEXT("EmitterSpawn"), Data->EmitterSpawnScriptProps.Script});
1138
+ if (bAll || StackContext.Equals(TEXT("EmitterUpdate"), ESearchCase::IgnoreCase)) Out.Add({TEXT("EmitterUpdate"), Data->EmitterUpdateScriptProps.Script});
1139
+ }
1140
+
1141
+ UNiagaraGraph* GraphOfScript(UNiagaraScript* Script)
1142
+ {
1143
+ if (!Script) return nullptr;
1144
+ UNiagaraScriptSource* Src = Cast<UNiagaraScriptSource>(Script->GetLatestSource());
1145
+ return Src ? Src->NodeGraph : nullptr;
1146
+ }
1147
+
1148
+ TSharedPtr<FJsonObject> PinToJson(const UEdGraphPin* Pin)
1149
+ {
1150
+ TSharedPtr<FJsonObject> O = MakeShared<FJsonObject>();
1151
+ O->SetStringField(TEXT("name"), Pin->PinName.ToString());
1152
+ O->SetStringField(TEXT("type"), Pin->PinType.PinCategory.ToString());
1153
+ O->SetStringField(TEXT("subCategory"), Pin->PinType.PinSubCategory.ToString());
1154
+ O->SetStringField(TEXT("defaultValue"), Pin->DefaultValue);
1155
+ O->SetBoolField(TEXT("linked"), Pin->LinkedTo.Num() > 0);
1156
+ return O;
1157
+ }
1158
+ }
1159
+
1160
+ TSharedPtr<FJsonValue> FNiagaraHandlers::ListModuleInputs(const TSharedPtr<FJsonObject>& Params)
1161
+ {
1162
+ FString SystemPath;
1163
+ if (auto Err = RequireString(Params, TEXT("systemPath"), SystemPath)) return Err;
1164
+ FString EmitterName = OptionalString(Params, TEXT("emitterName"), TEXT(""));
1165
+ int32 EmitterIndex = OptionalInt(Params, TEXT("emitterIndex"), 0);
1166
+ FString StackContext = OptionalString(Params, TEXT("stackContext"), TEXT("all"));
1167
+ FString ModuleFilter = OptionalString(Params, TEXT("moduleName"), TEXT(""));
1168
+
1169
+ UNiagaraSystem* System = Cast<UNiagaraSystem>(UEditorAssetLibrary::LoadAsset(SystemPath));
1170
+ if (!System) return MCPError(FString::Printf(TEXT("System not found: %s"), *SystemPath));
1171
+
1172
+ UNiagaraEmitter* Emitter = nullptr;
1173
+ FGuid Version;
1174
+ FVersionedNiagaraEmitterData* Data = ResolveEmitter(System, EmitterName, EmitterIndex, Emitter, Version);
1175
+ if (!Data) return MCPError(TEXT("Emitter not resolved"));
1176
+
1177
+ TArray<FScriptSlot> Scripts;
1178
+ CollectEmitterScripts(Data, StackContext, Scripts);
1179
+
1180
+ TArray<TSharedPtr<FJsonValue>> ModulesArr;
1181
+ for (const FScriptSlot& Slot : Scripts)
1182
+ {
1183
+ UNiagaraGraph* Graph = GraphOfScript(Slot.Script);
1184
+ if (!Graph) continue;
1185
+ for (UEdGraphNode* N : Graph->Nodes)
1186
+ {
1187
+ UNiagaraNodeFunctionCall* FC = Cast<UNiagaraNodeFunctionCall>(N);
1188
+ if (!FC) continue;
1189
+ const FString ModName = FC->GetFunctionName();
1190
+ if (!ModuleFilter.IsEmpty() && !ModName.Equals(ModuleFilter, ESearchCase::IgnoreCase)) continue;
1191
+
1192
+ TSharedPtr<FJsonObject> ModObj = MakeShared<FJsonObject>();
1193
+ ModObj->SetStringField(TEXT("stackContext"), Slot.Context);
1194
+ ModObj->SetStringField(TEXT("moduleName"), ModName);
1195
+ ModObj->SetStringField(TEXT("scriptAsset"), FC->FunctionScript ? FC->FunctionScript->GetPathName() : FString());
1196
+
1197
+ TArray<TSharedPtr<FJsonValue>> Inputs;
1198
+ TArray<TSharedPtr<FJsonValue>> Outputs;
1199
+ for (UEdGraphPin* Pin : FC->Pins)
1200
+ {
1201
+ if (!Pin) continue;
1202
+ if (Pin->Direction == EGPD_Input) Inputs.Add(MakeShared<FJsonValueObject>(PinToJson(Pin)));
1203
+ if (Pin->Direction == EGPD_Output) Outputs.Add(MakeShared<FJsonValueObject>(PinToJson(Pin)));
1204
+ }
1205
+ ModObj->SetArrayField(TEXT("inputs"), Inputs);
1206
+ ModObj->SetArrayField(TEXT("outputs"), Outputs);
1207
+ ModulesArr.Add(MakeShared<FJsonValueObject>(ModObj));
1208
+ }
1209
+ }
1210
+
1211
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
1212
+ Res->SetStringField(TEXT("systemPath"), SystemPath);
1213
+ Res->SetStringField(TEXT("emitter"), Emitter ? Emitter->GetName() : TEXT(""));
1214
+ Res->SetArrayField(TEXT("modules"), ModulesArr);
1215
+ Res->SetNumberField(TEXT("moduleCount"), ModulesArr.Num());
1216
+ return MCPResult(Res);
1217
+ }
1218
+
1219
+ TSharedPtr<FJsonValue> FNiagaraHandlers::SetModuleInput(const TSharedPtr<FJsonObject>& Params)
1220
+ {
1221
+ FString SystemPath;
1222
+ if (auto Err = RequireString(Params, TEXT("systemPath"), SystemPath)) return Err;
1223
+ FString ModuleName;
1224
+ if (auto Err = RequireString(Params, TEXT("moduleName"), ModuleName)) return Err;
1225
+ FString InputName;
1226
+ if (auto Err = RequireString(Params, TEXT("inputName"), InputName)) return Err;
1227
+ FString Value;
1228
+ if (auto Err = RequireString(Params, TEXT("value"), Value)) return Err;
1229
+ FString EmitterName = OptionalString(Params, TEXT("emitterName"), TEXT(""));
1230
+ int32 EmitterIndex = OptionalInt(Params, TEXT("emitterIndex"), 0);
1231
+ FString StackContext = OptionalString(Params, TEXT("stackContext"), TEXT("all"));
1232
+
1233
+ UNiagaraSystem* System = Cast<UNiagaraSystem>(UEditorAssetLibrary::LoadAsset(SystemPath));
1234
+ if (!System) return MCPError(FString::Printf(TEXT("System not found: %s"), *SystemPath));
1235
+
1236
+ UNiagaraEmitter* Emitter = nullptr;
1237
+ FGuid Version;
1238
+ FVersionedNiagaraEmitterData* Data = ResolveEmitter(System, EmitterName, EmitterIndex, Emitter, Version);
1239
+ if (!Data) return MCPError(TEXT("Emitter not resolved"));
1240
+
1241
+ TArray<FScriptSlot> Scripts;
1242
+ CollectEmitterScripts(Data, StackContext, Scripts);
1243
+
1244
+ int32 SetCount = 0;
1245
+ FString PrevValue;
1246
+ FString MatchedContext;
1247
+ TArray<FString> SeenModules;
1248
+ for (const FScriptSlot& Slot : Scripts)
1249
+ {
1250
+ UNiagaraGraph* Graph = GraphOfScript(Slot.Script);
1251
+ if (!Graph) continue;
1252
+ for (UEdGraphNode* N : Graph->Nodes)
1253
+ {
1254
+ UNiagaraNodeFunctionCall* FC = Cast<UNiagaraNodeFunctionCall>(N);
1255
+ if (!FC) continue;
1256
+ SeenModules.AddUnique(FC->GetFunctionName());
1257
+ if (!FC->GetFunctionName().Equals(ModuleName, ESearchCase::IgnoreCase)) continue;
1258
+ for (UEdGraphPin* Pin : FC->Pins)
1259
+ {
1260
+ if (!Pin || Pin->Direction != EGPD_Input) continue;
1261
+ if (Pin->PinName.ToString().Equals(InputName, ESearchCase::IgnoreCase))
1262
+ {
1263
+ if (SetCount == 0) PrevValue = Pin->DefaultValue;
1264
+ FC->Modify();
1265
+ Graph->Modify();
1266
+ Pin->Modify();
1267
+ Pin->DefaultValue = Value;
1268
+ MatchedContext = Slot.Context;
1269
+ ++SetCount;
1270
+ }
1271
+ }
1272
+ if (SetCount > 0) FC->MarkNodeRequiresSynchronization(TEXT("MCP_SetModuleInput"), true);
1273
+ }
1274
+ if (SetCount > 0) Graph->NotifyGraphChanged();
1275
+ }
1276
+
1277
+ if (SetCount == 0)
1278
+ {
1279
+ return MCPError(FString::Printf(TEXT("Module '%s' or input '%s' not found. Modules seen: [%s]"),
1280
+ *ModuleName, *InputName, *FString::Join(SeenModules, TEXT(", "))));
1281
+ }
1282
+
1283
+ Emitter->PostEditChange();
1284
+ UEditorAssetLibrary::SaveLoadedAsset(System);
1285
+
1286
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
1287
+ MCPSetUpdated(Res);
1288
+ Res->SetStringField(TEXT("moduleName"), ModuleName);
1289
+ Res->SetStringField(TEXT("inputName"), InputName);
1290
+ Res->SetStringField(TEXT("value"), Value);
1291
+ Res->SetStringField(TEXT("previousValue"), PrevValue);
1292
+ Res->SetStringField(TEXT("stackContext"), MatchedContext);
1293
+ Res->SetNumberField(TEXT("pinsUpdated"), SetCount);
1294
+ Res->SetStringField(TEXT("note"), TEXT("Writes pin default on the function-call node. Inputs already bound via the stack override map will not observe this change; use the override-map variant in a future patch."));
1295
+
1296
+ // Rollback: restore previous pin default
1297
+ TSharedPtr<FJsonObject> RbPayload = MakeShared<FJsonObject>();
1298
+ RbPayload->SetStringField(TEXT("systemPath"), SystemPath);
1299
+ RbPayload->SetStringField(TEXT("moduleName"), ModuleName);
1300
+ RbPayload->SetStringField(TEXT("inputName"), InputName);
1301
+ RbPayload->SetStringField(TEXT("value"), PrevValue);
1302
+ RbPayload->SetStringField(TEXT("emitterName"), EmitterName);
1303
+ RbPayload->SetNumberField(TEXT("emitterIndex"), EmitterIndex);
1304
+ RbPayload->SetStringField(TEXT("stackContext"), MatchedContext);
1305
+ MCPSetRollback(Res, TEXT("set_niagara_module_input"), RbPayload);
1306
+ return MCPResult(Res);
1307
+ }
1308
+
1309
+ TSharedPtr<FJsonValue> FNiagaraHandlers::ListStaticSwitches(const TSharedPtr<FJsonObject>& Params)
1310
+ {
1311
+ FString SystemPath;
1312
+ if (auto Err = RequireString(Params, TEXT("systemPath"), SystemPath)) return Err;
1313
+ FString ModuleFilter = OptionalString(Params, TEXT("moduleName"), TEXT(""));
1314
+ FString EmitterName = OptionalString(Params, TEXT("emitterName"), TEXT(""));
1315
+ int32 EmitterIndex = OptionalInt(Params, TEXT("emitterIndex"), 0);
1316
+ FString StackContext = OptionalString(Params, TEXT("stackContext"), TEXT("all"));
1317
+
1318
+ UNiagaraSystem* System = Cast<UNiagaraSystem>(UEditorAssetLibrary::LoadAsset(SystemPath));
1319
+ if (!System) return MCPError(FString::Printf(TEXT("System not found: %s"), *SystemPath));
1320
+
1321
+ UNiagaraEmitter* Emitter = nullptr;
1322
+ FGuid Version;
1323
+ FVersionedNiagaraEmitterData* Data = ResolveEmitter(System, EmitterName, EmitterIndex, Emitter, Version);
1324
+ if (!Data) return MCPError(TEXT("Emitter not resolved"));
1325
+
1326
+ TArray<FScriptSlot> Scripts;
1327
+ CollectEmitterScripts(Data, StackContext, Scripts);
1328
+
1329
+ TArray<TSharedPtr<FJsonValue>> ModulesArr;
1330
+ for (const FScriptSlot& Slot : Scripts)
1331
+ {
1332
+ UNiagaraGraph* Graph = GraphOfScript(Slot.Script);
1333
+ if (!Graph) continue;
1334
+ for (UEdGraphNode* N : Graph->Nodes)
1335
+ {
1336
+ UNiagaraNodeFunctionCall* FC = Cast<UNiagaraNodeFunctionCall>(N);
1337
+ if (!FC) continue;
1338
+ const FString ModName = FC->GetFunctionName();
1339
+ if (!ModuleFilter.IsEmpty() && !ModName.Equals(ModuleFilter, ESearchCase::IgnoreCase)) continue;
1340
+
1341
+ TArray<TSharedPtr<FJsonValue>> Switches;
1342
+ UNiagaraGraph* FuncGraph = FC->GetCalledGraph();
1343
+ if (FuncGraph)
1344
+ {
1345
+ const TArray<FNiagaraVariable> SwitchVars = FuncGraph->FindStaticSwitchInputs(false);
1346
+ for (const FNiagaraVariable& Var : SwitchVars)
1347
+ {
1348
+ const FName VarName = Var.GetName();
1349
+ UEdGraphPin* SwitchPin = nullptr;
1350
+ for (UEdGraphPin* Pin : FC->Pins)
1351
+ {
1352
+ if (Pin && Pin->Direction == EGPD_Input && Pin->PinName == VarName) { SwitchPin = Pin; break; }
1353
+ }
1354
+ TSharedPtr<FJsonObject> O = MakeShared<FJsonObject>();
1355
+ O->SetStringField(TEXT("name"), VarName.ToString());
1356
+ O->SetStringField(TEXT("type"), Var.GetType().GetName());
1357
+ O->SetStringField(TEXT("defaultValue"), SwitchPin ? SwitchPin->DefaultValue : FString());
1358
+ O->SetBoolField(TEXT("boundToPin"), SwitchPin != nullptr);
1359
+ Switches.Add(MakeShared<FJsonValueObject>(O));
1360
+ }
1361
+ }
1362
+ if (Switches.Num() == 0) continue;
1363
+ TSharedPtr<FJsonObject> ModObj = MakeShared<FJsonObject>();
1364
+ ModObj->SetStringField(TEXT("stackContext"), Slot.Context);
1365
+ ModObj->SetStringField(TEXT("moduleName"), ModName);
1366
+ ModObj->SetArrayField(TEXT("staticSwitches"), Switches);
1367
+ ModulesArr.Add(MakeShared<FJsonValueObject>(ModObj));
1368
+ }
1369
+ }
1370
+
1371
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
1372
+ Res->SetStringField(TEXT("systemPath"), SystemPath);
1373
+ Res->SetStringField(TEXT("emitter"), Emitter ? Emitter->GetName() : TEXT(""));
1374
+ Res->SetArrayField(TEXT("modules"), ModulesArr);
1375
+ Res->SetNumberField(TEXT("moduleCount"), ModulesArr.Num());
1376
+ return MCPResult(Res);
1377
+ }
1378
+
1379
+ TSharedPtr<FJsonValue> FNiagaraHandlers::SetStaticSwitch(const TSharedPtr<FJsonObject>& Params)
1380
+ {
1381
+ FString SystemPath;
1382
+ if (auto Err = RequireString(Params, TEXT("systemPath"), SystemPath)) return Err;
1383
+ FString ModuleName;
1384
+ if (auto Err = RequireString(Params, TEXT("moduleName"), ModuleName)) return Err;
1385
+ FString SwitchName;
1386
+ if (auto Err = RequireString(Params, TEXT("switchName"), SwitchName)) return Err;
1387
+ FString Value;
1388
+ if (auto Err = RequireString(Params, TEXT("value"), Value)) return Err;
1389
+ FString EmitterName = OptionalString(Params, TEXT("emitterName"), TEXT(""));
1390
+ int32 EmitterIndex = OptionalInt(Params, TEXT("emitterIndex"), 0);
1391
+ FString StackContext = OptionalString(Params, TEXT("stackContext"), TEXT("all"));
1392
+
1393
+ UNiagaraSystem* System = Cast<UNiagaraSystem>(UEditorAssetLibrary::LoadAsset(SystemPath));
1394
+ if (!System) return MCPError(FString::Printf(TEXT("System not found: %s"), *SystemPath));
1395
+
1396
+ UNiagaraEmitter* Emitter = nullptr;
1397
+ FGuid Version;
1398
+ FVersionedNiagaraEmitterData* Data = ResolveEmitter(System, EmitterName, EmitterIndex, Emitter, Version);
1399
+ if (!Data) return MCPError(TEXT("Emitter not resolved"));
1400
+
1401
+ TArray<FScriptSlot> Scripts;
1402
+ CollectEmitterScripts(Data, StackContext, Scripts);
1403
+
1404
+ int32 SetCount = 0;
1405
+ FString PrevValue;
1406
+ FString MatchedContext;
1407
+ for (const FScriptSlot& Slot : Scripts)
1408
+ {
1409
+ UNiagaraGraph* Graph = GraphOfScript(Slot.Script);
1410
+ if (!Graph) continue;
1411
+ for (UEdGraphNode* N : Graph->Nodes)
1412
+ {
1413
+ UNiagaraNodeFunctionCall* FC = Cast<UNiagaraNodeFunctionCall>(N);
1414
+ if (!FC) continue;
1415
+ if (!FC->GetFunctionName().Equals(ModuleName, ESearchCase::IgnoreCase)) continue;
1416
+ // Find the static switch pin by name (FindStaticSwitchInputPin isn't exported, so walk pins).
1417
+ UEdGraphPin* SwitchPin = nullptr;
1418
+ const FName Needle(*SwitchName);
1419
+ for (UEdGraphPin* Pin : FC->Pins)
1420
+ {
1421
+ if (Pin && Pin->Direction == EGPD_Input && Pin->PinName == Needle) { SwitchPin = Pin; break; }
1422
+ }
1423
+ if (!SwitchPin) continue;
1424
+ if (SetCount == 0) PrevValue = SwitchPin->DefaultValue;
1425
+ FC->Modify();
1426
+ Graph->Modify();
1427
+ SwitchPin->Modify();
1428
+ SwitchPin->DefaultValue = Value;
1429
+ FC->MarkNodeRequiresSynchronization(TEXT("MCP_SetStaticSwitch"), true);
1430
+ MatchedContext = Slot.Context;
1431
+ ++SetCount;
1432
+ }
1433
+ if (SetCount > 0) Graph->NotifyGraphChanged();
1434
+ }
1435
+
1436
+ if (SetCount == 0)
1437
+ {
1438
+ return MCPError(FString::Printf(TEXT("Static switch '%s' on module '%s' not found"), *SwitchName, *ModuleName));
1439
+ }
1440
+
1441
+ Emitter->PostEditChange();
1442
+ UEditorAssetLibrary::SaveLoadedAsset(System);
1443
+
1444
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
1445
+ MCPSetUpdated(Res);
1446
+ Res->SetStringField(TEXT("moduleName"), ModuleName);
1447
+ Res->SetStringField(TEXT("switchName"), SwitchName);
1448
+ Res->SetStringField(TEXT("value"), Value);
1449
+ Res->SetStringField(TEXT("previousValue"), PrevValue);
1450
+ Res->SetStringField(TEXT("stackContext"), MatchedContext);
1451
+ Res->SetNumberField(TEXT("pinsUpdated"), SetCount);
1452
+
1453
+ TSharedPtr<FJsonObject> RbPayload = MakeShared<FJsonObject>();
1454
+ RbPayload->SetStringField(TEXT("systemPath"), SystemPath);
1455
+ RbPayload->SetStringField(TEXT("moduleName"), ModuleName);
1456
+ RbPayload->SetStringField(TEXT("switchName"), SwitchName);
1457
+ RbPayload->SetStringField(TEXT("value"), PrevValue);
1458
+ RbPayload->SetStringField(TEXT("emitterName"), EmitterName);
1459
+ RbPayload->SetNumberField(TEXT("emitterIndex"), EmitterIndex);
1460
+ RbPayload->SetStringField(TEXT("stackContext"), MatchedContext);
1461
+ MCPSetRollback(Res, TEXT("set_niagara_static_switch"), RbPayload);
1462
+ return MCPResult(Res);
1463
+ }
1464
+
1465
+ TSharedPtr<FJsonValue> FNiagaraHandlers::CreateModuleFromHlsl(const TSharedPtr<FJsonObject>& Params)
1466
+ {
1467
+ FString Name;
1468
+ if (auto Err = RequireString(Params, TEXT("name"), Name)) return Err;
1469
+ FString Hlsl;
1470
+ if (auto Err = RequireString(Params, TEXT("hlsl"), Hlsl)) return Err;
1471
+ FString PackagePath = OptionalString(Params, TEXT("packagePath"), TEXT("/Game/VFX/Modules"));
1472
+
1473
+ if (auto Hit = MCPCheckAssetExists(PackagePath, Name, OptionalString(Params, TEXT("onConflict"), TEXT("skip")), TEXT("NiagaraScript")))
1474
+ {
1475
+ return Hit;
1476
+ }
1477
+
1478
+ // Use the stock module factory to create a baseline module with Param-map get/set scaffolding,
1479
+ // then add a CustomHLSL node that carries the user's HLSL body.
1480
+ UNiagaraModuleScriptFactory* Factory = NewObject<UNiagaraModuleScriptFactory>();
1481
+ IAssetTools& AssetTools = FModuleManager::LoadModuleChecked<FAssetToolsModule>("AssetTools").Get();
1482
+ UObject* NewObj = AssetTools.CreateAsset(Name, PackagePath, UNiagaraScript::StaticClass(), Factory);
1483
+ UNiagaraScript* Script = Cast<UNiagaraScript>(NewObj);
1484
+ if (!Script) return MCPError(TEXT("Failed to create NiagaraScript"));
1485
+
1486
+ UNiagaraScriptSource* Source = Cast<UNiagaraScriptSource>(Script->GetLatestSource());
1487
+ UNiagaraGraph* Graph = Source ? Source->NodeGraph : nullptr;
1488
+ if (!Graph) return MCPError(TEXT("New module has no graph"));
1489
+
1490
+ // Inject a CustomHLSL node next to the existing Output node.
1491
+ FGraphNodeCreator<UNiagaraNodeCustomHlsl> Creator(*Graph);
1492
+ UNiagaraNodeCustomHlsl* Custom = Creator.CreateNode();
1493
+ Creator.Finalize();
1494
+ // SetCustomHlsl / RebuildSignatureFromPins aren't exported from NiagaraEditor.
1495
+ // Write the CustomHlsl UPROPERTY directly; Niagara's PostEditChange + ReconstructNode
1496
+ // re-parses the HLSL body and regenerates pins.
1497
+ if (FProperty* HlslProp = Custom->GetClass()->FindPropertyByName(TEXT("CustomHlsl")))
1498
+ {
1499
+ if (FStrProperty* SP = CastField<FStrProperty>(HlslProp))
1500
+ {
1501
+ Custom->Modify();
1502
+ SP->SetPropertyValue(SP->ContainerPtrToValuePtr<void>(Custom), Hlsl);
1503
+ }
1504
+ }
1505
+ Custom->ReconstructNode();
1506
+ Custom->PostEditChange();
1507
+
1508
+ // Touch inputs/outputs array for informational echo (the CustomHLSL node manages its own pins via HLSL parsing)
1509
+ const TArray<TSharedPtr<FJsonValue>>* InputsArr = nullptr;
1510
+ Params->TryGetArrayField(TEXT("inputs"), InputsArr);
1511
+ const TArray<TSharedPtr<FJsonValue>>* OutputsArr = nullptr;
1512
+ Params->TryGetArrayField(TEXT("outputs"), OutputsArr);
1513
+
1514
+ Graph->NotifyGraphChanged();
1515
+ Script->MarkPackageDirty();
1516
+ UEditorAssetLibrary::SaveLoadedAsset(Script);
1517
+
1518
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
1519
+ MCPSetCreated(Res);
1520
+ Res->SetStringField(TEXT("path"), Script->GetPathName());
1521
+ Res->SetStringField(TEXT("name"), Name);
1522
+ Res->SetNumberField(TEXT("hlslLength"), Hlsl.Len());
1523
+ Res->SetNumberField(TEXT("requestedInputs"), InputsArr ? InputsArr->Num() : 0);
1524
+ Res->SetNumberField(TEXT("requestedOutputs"), OutputsArr ? OutputsArr->Num() : 0);
1525
+ Res->SetStringField(TEXT("note"), TEXT("Module scaffold created with embedded CustomHLSL node. Pins are auto-derived from the HLSL body — open the asset to confirm signatures."));
1526
+ MCPSetDeleteAssetRollback(Res, Script->GetPathName());
1527
+ return MCPResult(Res);
1528
+ }
@@ -32,4 +32,11 @@ private:
32
32
  static TSharedPtr<FJsonValue> CreateNiagaraSystemFromSpec(const TSharedPtr<FJsonObject>& Params);
33
33
  static TSharedPtr<FJsonValue> GetCompiledHLSL(const TSharedPtr<FJsonObject>& Params);
34
34
  static TSharedPtr<FJsonValue> ListSystemParameters(const TSharedPtr<FJsonObject>& Params);
35
+
36
+ // v0.7.14 — module inputs, static switches, HLSL modules
37
+ static TSharedPtr<FJsonValue> ListModuleInputs(const TSharedPtr<FJsonObject>& Params);
38
+ static TSharedPtr<FJsonValue> SetModuleInput(const TSharedPtr<FJsonObject>& Params);
39
+ static TSharedPtr<FJsonValue> ListStaticSwitches(const TSharedPtr<FJsonObject>& Params);
40
+ static TSharedPtr<FJsonValue> SetStaticSwitch(const TSharedPtr<FJsonObject>& Params);
41
+ static TSharedPtr<FJsonValue> CreateModuleFromHlsl(const TSharedPtr<FJsonObject>& Params);
35
42
  };
@@ -59,6 +59,7 @@ public class UE_MCP_Bridge : ModuleRules
59
59
  "Niagara",
60
60
  "NiagaraEditor",
61
61
  "PCG",
62
+ "PoseSearch",
62
63
  "PropertyEditor",
63
64
  "PythonScriptPlugin",
64
65
  "Sequencer",
@@ -58,6 +58,10 @@
58
58
  {
59
59
  "Name": "ControlRig",
60
60
  "Enabled": true
61
+ },
62
+ {
63
+ "Name": "PoseSearch",
64
+ "Enabled": true
61
65
  }
62
66
  ]
63
67
  }