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.
- package/dist/tools/animation.js +9 -0
- package/dist/tools/animation.js.map +1 -1
- package/dist/tools/niagara.js +50 -0
- package/dist/tools/niagara.js.map +1 -1
- package/dist/tools/project.js +80 -1
- package/dist/tools/project.js.map +1 -1
- package/dist/ue-mcp.default.yml +68 -0
- package/package.json +1 -1
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AnimationHandlers.cpp +225 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AnimationHandlers.h +7 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/NiagaraHandlers.cpp +426 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/NiagaraHandlers.h +7 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/UE_MCP_Bridge.Build.cs +1 -0
- package/plugin/ue_mcp_bridge/UE_MCP_Bridge.uplugin +4 -0
package/dist/tools/animation.js
CHANGED
|
@@ -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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"}
|
package/dist/tools/niagara.js
CHANGED
|
@@ -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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"niagara.js","sourceRoot":"","sources":["../../src/tools/niagara.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/project.js
CHANGED
|
@@ -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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"}
|
package/dist/ue-mcp.default.yml
CHANGED
|
@@ -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
|
@@ -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
|
};
|