ue-mcp 1.1.15 → 1.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/tool-counts.json +5 -5
- package/dist/tools/audio.d.ts +15 -0
- package/dist/tools/audio.js +123 -10
- package/dist/tools/audio.js.map +1 -1
- package/dist/ue-mcp.default.yml +182 -8
- package/package.json +2 -2
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AudioHandlers.cpp +35 -28
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AudioHandlers.h +38 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AudioHandlers_MetaSound.cpp +675 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AudioHandlers_Mixing.cpp +467 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AudioHandlers_SoundCue.cpp +329 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/UE_MCP_Bridge.Build.cs +6 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# UE-MCP
|
|
2
2
|
|
|
3
|
-
**Unreal Engine Model Context Protocol Server** - gives AI assistants deep read/write access to the Unreal Editor through <!-- count:tools -->23<!-- /count --> category tools covering <!-- count:actions -->
|
|
3
|
+
**Unreal Engine Model Context Protocol Server** - gives AI assistants deep read/write access to the Unreal Editor through <!-- count:tools -->23<!-- /count --> category tools covering <!-- count:actions -->711+<!-- /count --> actions, plus a YAML flow engine for multi-step workflows.
|
|
4
4
|
|
|
5
5
|
```mermaid
|
|
6
6
|
flowchart LR
|
package/dist/tool-counts.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"tools": 23,
|
|
3
|
-
"actions":
|
|
4
|
-
"bridgeActions":
|
|
3
|
+
"actions": 711,
|
|
4
|
+
"bridgeActions": 677,
|
|
5
5
|
"localActions": 34,
|
|
6
6
|
"perTool": {
|
|
7
7
|
"project": 32,
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"pcg": 19,
|
|
15
15
|
"foliage": 5,
|
|
16
16
|
"niagara": 28,
|
|
17
|
-
"audio":
|
|
17
|
+
"audio": 35,
|
|
18
18
|
"widget": 27,
|
|
19
19
|
"editor": 66,
|
|
20
20
|
"reflection": 11,
|
|
@@ -30,6 +30,6 @@
|
|
|
30
30
|
},
|
|
31
31
|
"nativeToolsets": 52,
|
|
32
32
|
"nativeToolActions": 830,
|
|
33
|
-
"generatedAt": "2026-07-
|
|
34
|
-
"version": "1.1.
|
|
33
|
+
"generatedAt": "2026-07-13T23:04:37.450Z",
|
|
34
|
+
"version": "1.1.16"
|
|
35
35
|
}
|
package/dist/tools/audio.d.ts
CHANGED
|
@@ -1,2 +1,17 @@
|
|
|
1
1
|
import { type ToolDef } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Audio: the full UE5 audio stack, authored end-to-end through the bridge.
|
|
4
|
+
*
|
|
5
|
+
* - Assets + playback (import, cue/metasound creation, play, ambient).
|
|
6
|
+
* - MetaSound graph authoring (nodes, inputs/outputs, connections, defaults) via
|
|
7
|
+
* the MetaSound Builder subsystem - the modern UE5 audio graph.
|
|
8
|
+
* - SoundCue graph authoring (wave player, mixer, random, modulator, ...).
|
|
9
|
+
* - Mixing + routing: submixes and submix effect chains, sound classes, sound
|
|
10
|
+
* mixes, concurrency.
|
|
11
|
+
* - Spatialization: attenuation assets, and assigning submix/class/attenuation/
|
|
12
|
+
* concurrency onto sounds.
|
|
13
|
+
*
|
|
14
|
+
* Nothing here creates an empty placeholder: every asset is authorable to a
|
|
15
|
+
* working state through these actions.
|
|
16
|
+
*/
|
|
2
17
|
export declare const audioTool: ToolDef;
|
package/dist/tools/audio.js
CHANGED
|
@@ -1,14 +1,66 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { categoryTool, bp } from "../types.js";
|
|
3
3
|
import { Vec3 } from "../schemas.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Audio: the full UE5 audio stack, authored end-to-end through the bridge.
|
|
6
|
+
*
|
|
7
|
+
* - Assets + playback (import, cue/metasound creation, play, ambient).
|
|
8
|
+
* - MetaSound graph authoring (nodes, inputs/outputs, connections, defaults) via
|
|
9
|
+
* the MetaSound Builder subsystem - the modern UE5 audio graph.
|
|
10
|
+
* - SoundCue graph authoring (wave player, mixer, random, modulator, ...).
|
|
11
|
+
* - Mixing + routing: submixes and submix effect chains, sound classes, sound
|
|
12
|
+
* mixes, concurrency.
|
|
13
|
+
* - Spatialization: attenuation assets, and assigning submix/class/attenuation/
|
|
14
|
+
* concurrency onto sounds.
|
|
15
|
+
*
|
|
16
|
+
* Nothing here creates an empty placeholder: every asset is authorable to a
|
|
17
|
+
* working state through these actions.
|
|
18
|
+
*/
|
|
19
|
+
export const audioTool = categoryTool("audio", "Audio: sound assets, playback, MetaSound + SoundCue graph authoring, submixes/effects, sound classes/mixes, attenuation, concurrency, spatialization.", {
|
|
20
|
+
// ── Assets + playback ──────────────────────────────────────────────
|
|
21
|
+
list: bp("List sound assets (SoundWave, SoundCue, MetaSoundSource). Params: directory?, recursive?", "list_sound_assets"),
|
|
22
|
+
import_audio: bp("Import a WAV/OGG/FLAC file as a USoundWave. Returns durationSeconds, numChannels, looping. Params: filePath, name?, packagePath? (default /Game/Audio), looping?, replaceExisting? (default true)", "import_audio", (p) => ({ filePath: p.filePath, name: p.name, packagePath: p.packagePath, looping: p.looping, replaceExisting: p.replaceExisting })),
|
|
23
|
+
play_at_location: bp("Play a sound in the editor world. Params: soundPath, location, volumeMultiplier?, pitchMultiplier?", "play_sound_at_location"),
|
|
24
|
+
spawn_ambient: bp("Place an AmbientSound actor. Params: soundPath, location, label?", "spawn_ambient_sound"),
|
|
25
|
+
// ── MetaSound ──────────────────────────────────────────────────────
|
|
26
|
+
metasound_author: bp("PREFERRED: stamp a whole MetaSound graph in ONE call from a declarative spec (avoids dozens of add_node/connect round-trips). Params: name, packagePath?, format? ('mono'|'stereo'), oneShot?, onConflict?, inputs? [{name,dataType,default?}], outputs? [{name,dataType}], nodes? [{id,class,namespace?,variant?,majorVersion?,inputs?:{vertex:value}}], connections? [{from,to}]. Endpoints are 'nodeId:vertex', or special heads 'input:<name>', 'output:<name>', 'audioOut:<channel>'. Each element reports its own ok/error; builds + saves at the end.", "metasound_author", (p) => ({ name: p.name, packagePath: p.packagePath, format: p.format, oneShot: p.oneShot, onConflict: p.onConflict, inputs: p.inputs, outputs: p.outputs, nodes: p.nodes, connections: p.connections })),
|
|
27
|
+
create_metasound: bp("Create an empty MetaSoundSource and open a builder session for INCREMENTAL authoring (add_node/connect/...). For a whole graph at once prefer metasound_author. Params: name, packagePath? (default /Game/Audio/MetaSounds), format? ('mono'|'stereo'), oneShot?. Returns assetPath.", "create_metasound_source", (p) => ({ name: p.name, packagePath: p.packagePath, format: p.format, oneShot: p.oneShot, onConflict: p.onConflict })),
|
|
28
|
+
metasound_list_node_classes: bp("List common MetaSound node classes to add (name, namespace, variant, notes). Params: filter? (substring).", "metasound_list_node_classes", (p) => ({ filter: p.filter })),
|
|
29
|
+
metasound_get_graph: bp("Report a MetaSound's builder-session state (active builder, audio outputs, oneShot). Params: assetPath.", "metasound_get_graph", (p) => ({ assetPath: p.assetPath ?? p.metasoundPath })),
|
|
30
|
+
metasound_add_node: bp("Add a node to a MetaSound graph by registered class name. Returns nodeId (+ input/output counts). Params: assetPath, nodeClassName (e.g. 'Sine'), nodeNamespace? (default 'UE'), nodeVariant? (e.g. 'Audio'), majorVersion? (default 1).", "metasound_add_node", (p) => ({ assetPath: p.assetPath ?? p.metasoundPath, nodeClassName: p.nodeClassName, nodeNamespace: p.nodeNamespace, nodeVariant: p.nodeVariant, majorVersion: p.majorVersion })),
|
|
31
|
+
metasound_add_input: bp("Add a graph input to a MetaSound. Params: assetPath, name, dataType ('Float'|'Int32'|'Bool'|'String'|'Trigger'|'Audio'|'Time'|...), defaultValue?.", "metasound_add_graph_input", (p) => ({ assetPath: p.assetPath ?? p.metasoundPath, name: p.name, dataType: p.dataType, defaultValue: p.defaultValue })),
|
|
32
|
+
metasound_add_output: bp("Add a graph output to a MetaSound. Params: assetPath, name, dataType.", "metasound_add_graph_output", (p) => ({ assetPath: p.assetPath ?? p.metasoundPath, name: p.name, dataType: p.dataType })),
|
|
33
|
+
metasound_connect: bp("Connect one node's output vertex to another node's input vertex. Params: assetPath, fromNodeId, fromOutput (vertex name), toNodeId, toInput (vertex name).", "metasound_connect", (p) => ({ assetPath: p.assetPath ?? p.metasoundPath, fromNodeId: p.fromNodeId, fromOutput: p.fromOutput, toNodeId: p.toNodeId, toInput: p.toInput })),
|
|
34
|
+
metasound_connect_input: bp("Connect a graph input to a node input vertex. Params: assetPath, graphInput (name), toNodeId, toInput (vertex name).", "metasound_connect_graph_input", (p) => ({ assetPath: p.assetPath ?? p.metasoundPath, graphInput: p.graphInput, toNodeId: p.toNodeId, toInput: p.toInput })),
|
|
35
|
+
metasound_connect_output: bp("Connect a node output vertex to a graph output. Params: assetPath, fromNodeId, fromOutput (vertex name), graphOutput (name).", "metasound_connect_graph_output", (p) => ({ assetPath: p.assetPath ?? p.metasoundPath, fromNodeId: p.fromNodeId, fromOutput: p.fromOutput, graphOutput: p.graphOutput })),
|
|
36
|
+
metasound_connect_audio_out: bp("Connect a node output vertex to the source's audio output. Params: assetPath, fromNodeId, fromOutput (vertex name, must be Audio type), channel? (0=left/mono, 1=right; default 0).", "metasound_connect_audio_out", (p) => ({ assetPath: p.assetPath ?? p.metasoundPath, fromNodeId: p.fromNodeId, fromOutput: p.fromOutput, channel: p.channel })),
|
|
37
|
+
metasound_set_default: bp("Set a default value on a node input vertex, or on a graph input. Params: assetPath, value (required), dataType? (Float|Int32|Bool|String hint), then EITHER (nodeId + inputName) OR graphInput.", "metasound_set_input_default", (p) => ({ assetPath: p.assetPath ?? p.metasoundPath, value: p.value, dataType: p.dataType, nodeId: p.nodeId, inputName: p.inputName, graphInput: p.graphInput })),
|
|
38
|
+
metasound_build: bp("Write the builder document to the MetaSound asset and save. Call after authoring. Params: assetPath.", "metasound_build", (p) => ({ assetPath: p.assetPath ?? p.metasoundPath })),
|
|
39
|
+
// ── SoundCue graph ─────────────────────────────────────────────────
|
|
40
|
+
cue_author: bp("PREFERRED: create a SoundCue and stamp its whole node tree in ONE call. Params: name, packagePath?, onConflict?, nodes [{id,type,soundWavePath?,properties?}], connections [{parent,child,index?}] (omit parent => root), root? (nodeId). Each element reports ok/error; links + saves at the end.", "soundcue_author", (p) => ({ name: p.name, packagePath: p.packagePath, onConflict: p.onConflict, nodes: p.nodes, connections: p.connections, root: p.root })),
|
|
41
|
+
create_cue: bp("Create a SoundCue, optionally seeded from a wave. For a whole graph prefer cue_author. Params: name, packagePath?, soundWavePath?.", "create_sound_cue"),
|
|
42
|
+
cue_add_node: bp("Add a node to a SoundCue graph. Returns nodeId. Params: cuePath, nodeType ('wave_player'|'mixer'|'random'|'modulator'|'attenuation'|'looping'|'concatenator'|'delay'|'switch'), soundWavePath? (wave_player), properties? (node-specific fields).", "soundcue_add_node", (p) => ({ cuePath: p.cuePath ?? p.assetPath, nodeType: p.nodeType, soundWavePath: p.soundWavePath, properties: p.properties })),
|
|
43
|
+
cue_connect: bp("Connect a SoundCue node as a child of another (or as the cue root). Params: cuePath, parentNodeId (omit for root), childNodeId, childIndex? (default append).", "soundcue_connect", (p) => ({ cuePath: p.cuePath ?? p.assetPath, parentNodeId: p.parentNodeId, childNodeId: p.childNodeId, childIndex: p.childIndex })),
|
|
44
|
+
cue_get_graph: bp("Read a SoundCue node graph: nodes (id, type, children) and root. Params: cuePath.", "soundcue_get_graph", (p) => ({ cuePath: p.cuePath ?? p.assetPath })),
|
|
45
|
+
// ── Mixing + routing ───────────────────────────────────────────────
|
|
46
|
+
create_submix: bp("Create a USoundSubmix, optionally parented. Params: name, packagePath? (default /Game/Audio/Submixes), parentPath?, outputVolume?, wetLevel?, dryLevel?.", "create_submix", (p) => ({ name: p.name, packagePath: p.packagePath, parentPath: p.parentPath, outputVolume: p.outputVolume, wetLevel: p.wetLevel, dryLevel: p.dryLevel, onConflict: p.onConflict })),
|
|
47
|
+
set_submix_parent: bp("Reparent a submix (sets ParentSubmix, updating both ends). Params: submixPath, parentPath (empty detaches to root).", "set_submix_parent", (p) => ({ submixPath: p.submixPath, parentPath: p.parentPath })),
|
|
48
|
+
add_submix_effect: bp("Append a submix effect preset to a submix's effect chain (creates the preset asset). Params: submixPath, effectType ('reverb'|'eq'|'dynamics'|'filter'|'delay'), name?, packagePath?, settings? (effect Settings struct as JSON).", "add_submix_effect", (p) => ({ submixPath: p.submixPath, effectType: p.effectType, name: p.name, packagePath: p.packagePath, settings: p.settings })),
|
|
49
|
+
create_sound_class: bp("Create a USoundClass, optionally parented, with properties. Params: name, packagePath? (default /Game/Audio/SoundClasses), parentPath?, properties? (FSoundClassProperties JSON: Volume, Pitch, bIsUISound, ...).", "create_sound_class", (p) => ({ name: p.name, packagePath: p.packagePath, parentPath: p.parentPath, properties: p.properties, onConflict: p.onConflict })),
|
|
50
|
+
create_sound_mix: bp("Create a USoundMix with sound-class adjusters. Params: name, packagePath? (default /Game/Audio/SoundMixes), adjusters? ([{soundClassPath, volumeAdjuster?, pitchAdjuster?, applyToChildren?}]), fadeInTime?, fadeOutTime?.", "create_sound_mix", (p) => ({ name: p.name, packagePath: p.packagePath, adjusters: p.adjusters, fadeInTime: p.fadeInTime, fadeOutTime: p.fadeOutTime, onConflict: p.onConflict })),
|
|
51
|
+
create_concurrency: bp("Create a USoundConcurrency asset. Params: name, packagePath? (default /Game/Audio/Concurrency), maxCount?, limitToOwner?, resolutionRule? (e.g. 'StopFarthestThenOldest'), volumeScale?.", "create_concurrency", (p) => ({ name: p.name, packagePath: p.packagePath, maxCount: p.maxCount, limitToOwner: p.limitToOwner, resolutionRule: p.resolutionRule, volumeScale: p.volumeScale, onConflict: p.onConflict })),
|
|
52
|
+
// ── Spatialization ─────────────────────────────────────────────────
|
|
53
|
+
create_attenuation: bp("Create a USoundAttenuation asset. Params: name, packagePath? (default /Game/Audio/Attenuation), settings? (FSoundAttenuationSettings JSON), plus shortcuts: falloffDistance?, spatialize?, enableOcclusion?.", "create_attenuation", (p) => ({ name: p.name, packagePath: p.packagePath, settings: p.settings, falloffDistance: p.falloffDistance, spatialize: p.spatialize, enableOcclusion: p.enableOcclusion, onConflict: p.onConflict })),
|
|
54
|
+
// ── Assign routing onto a sound ────────────────────────────────────
|
|
55
|
+
set_sound_submix: bp("Set a sound's base submix (routing target). Params: soundPath, submixPath (empty detaches).", "set_sound_submix", (p) => ({ soundPath: p.soundPath ?? p.assetPath, submixPath: p.submixPath })),
|
|
56
|
+
add_sound_submix_send: bp("Add a submix send to a sound. Params: soundPath, submixPath, sendLevel? (default 1.0).", "add_sound_submix_send", (p) => ({ soundPath: p.soundPath ?? p.assetPath, submixPath: p.submixPath, sendLevel: p.sendLevel })),
|
|
57
|
+
set_sound_class: bp("Assign a sound class to a sound. Params: soundPath, soundClassPath.", "set_sound_class", (p) => ({ soundPath: p.soundPath ?? p.assetPath, soundClassPath: p.soundClassPath })),
|
|
58
|
+
set_sound_attenuation: bp("Attach an attenuation asset to a sound. Params: soundPath, attenuationPath (empty clears).", "set_sound_attenuation", (p) => ({ soundPath: p.soundPath ?? p.assetPath, attenuationPath: p.attenuationPath })),
|
|
59
|
+
set_sound_concurrency: bp("Attach a concurrency asset to a sound. Params: soundPath, concurrencyPath (empty clears).", "set_sound_concurrency", (p) => ({ soundPath: p.soundPath ?? p.assetPath, concurrencyPath: p.concurrencyPath })),
|
|
60
|
+
// ── Generic property set (any audio asset) ─────────────────────────
|
|
61
|
+
set_property: bp("Set any UPROPERTY on an audio asset by (dotted) name, value as JSON. Handles nested structs, arrays, object refs. Params: assetPath, propertyName, value.", "set_audio_property", (p) => ({ assetPath: p.assetPath, propertyName: p.propertyName, value: p.value })),
|
|
11
62
|
}, undefined, {
|
|
63
|
+
// shared / assets
|
|
12
64
|
directory: z.string().optional(), recursive: z.boolean().optional(),
|
|
13
65
|
soundPath: z.string().optional(),
|
|
14
66
|
location: Vec3.optional(),
|
|
@@ -17,9 +69,70 @@ export const audioTool = categoryTool("audio", "Audio: sound assets, playback, a
|
|
|
17
69
|
label: z.string().optional(),
|
|
18
70
|
name: z.string().optional(),
|
|
19
71
|
packagePath: z.string().optional(),
|
|
72
|
+
onConflict: z.string().optional().describe("skip|replace|rename when the asset name exists"),
|
|
20
73
|
soundWavePath: z.string().optional(),
|
|
21
|
-
filePath: z.string().optional().describe("import_audio: path to a WAV/OGG/FLAC file
|
|
22
|
-
looping: z.boolean().optional().describe("import_audio: set SoundWave bLooping
|
|
23
|
-
replaceExisting: z.boolean().optional().describe("import_audio: replace an existing asset (default true)
|
|
74
|
+
filePath: z.string().optional().describe("import_audio: path to a WAV/OGG/FLAC file"),
|
|
75
|
+
looping: z.boolean().optional().describe("import_audio: set SoundWave bLooping"),
|
|
76
|
+
replaceExisting: z.boolean().optional().describe("import_audio: replace an existing asset (default true)"),
|
|
77
|
+
assetPath: z.string().optional(),
|
|
78
|
+
propertyName: z.string().optional(),
|
|
79
|
+
value: z.any().optional().describe("JSON value for set_default / set_property"),
|
|
80
|
+
// metasound
|
|
81
|
+
metasoundPath: z.string().optional(),
|
|
82
|
+
format: z.string().optional().describe("create_metasound: 'mono' | 'stereo'"),
|
|
83
|
+
oneShot: z.boolean().optional(),
|
|
84
|
+
filter: z.string().optional(),
|
|
85
|
+
nodeClassName: z.string().optional(),
|
|
86
|
+
nodeNamespace: z.string().optional(),
|
|
87
|
+
nodeVariant: z.string().optional(),
|
|
88
|
+
majorVersion: z.number().optional(),
|
|
89
|
+
dataType: z.string().optional().describe("MetaSound data type: Float, Int32, Bool, String, Trigger, Audio, Time, ..."),
|
|
90
|
+
defaultValue: z.any().optional(),
|
|
91
|
+
fromNodeId: z.string().optional(),
|
|
92
|
+
fromOutput: z.string().optional(),
|
|
93
|
+
toNodeId: z.string().optional(),
|
|
94
|
+
toInput: z.string().optional(),
|
|
95
|
+
graphInput: z.string().optional(),
|
|
96
|
+
graphOutput: z.string().optional(),
|
|
97
|
+
channel: z.number().optional(),
|
|
98
|
+
nodeId: z.string().optional(),
|
|
99
|
+
inputName: z.string().optional(),
|
|
100
|
+
// one-shot declarative graph authoring (metasound_author / cue_author)
|
|
101
|
+
inputs: z.array(z.any()).optional().describe("metasound_author: [{name,dataType,default?}]"),
|
|
102
|
+
outputs: z.array(z.any()).optional().describe("metasound_author: [{name,dataType}]"),
|
|
103
|
+
nodes: z.array(z.any()).optional().describe("author: node specs"),
|
|
104
|
+
connections: z.array(z.any()).optional().describe("author: connection specs"),
|
|
105
|
+
root: z.string().optional().describe("cue_author: explicit root nodeId"),
|
|
106
|
+
// soundcue graph
|
|
107
|
+
cuePath: z.string().optional(),
|
|
108
|
+
nodeType: z.string().optional(),
|
|
109
|
+
properties: z.record(z.any()).optional(),
|
|
110
|
+
parentNodeId: z.string().optional(),
|
|
111
|
+
childNodeId: z.string().optional(),
|
|
112
|
+
childIndex: z.number().optional(),
|
|
113
|
+
// mixing / routing
|
|
114
|
+
parentPath: z.string().optional(),
|
|
115
|
+
outputVolume: z.number().optional(),
|
|
116
|
+
wetLevel: z.number().optional(),
|
|
117
|
+
dryLevel: z.number().optional(),
|
|
118
|
+
submixPath: z.string().optional(),
|
|
119
|
+
effectType: z.string().optional(),
|
|
120
|
+
settings: z.record(z.any()).optional(),
|
|
121
|
+
adjusters: z.array(z.any()).optional(),
|
|
122
|
+
fadeInTime: z.number().optional(),
|
|
123
|
+
fadeOutTime: z.number().optional(),
|
|
124
|
+
maxCount: z.number().optional(),
|
|
125
|
+
limitToOwner: z.boolean().optional(),
|
|
126
|
+
resolutionRule: z.string().optional(),
|
|
127
|
+
volumeScale: z.number().optional(),
|
|
128
|
+
// spatialization
|
|
129
|
+
falloffDistance: z.number().optional(),
|
|
130
|
+
spatialize: z.boolean().optional(),
|
|
131
|
+
enableOcclusion: z.boolean().optional(),
|
|
132
|
+
// assignment
|
|
133
|
+
soundClassPath: z.string().optional(),
|
|
134
|
+
attenuationPath: z.string().optional(),
|
|
135
|
+
concurrencyPath: z.string().optional(),
|
|
136
|
+
sendLevel: z.number().optional(),
|
|
24
137
|
});
|
|
25
138
|
//# sourceMappingURL=audio.js.map
|
package/dist/tools/audio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/tools/audio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,EAAE,EAAgB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,CAAC,MAAM,SAAS,GAAY,YAAY,CAC5C,OAAO,EACP,uEAAuE,EACvE;IACE,IAAI,EAAe,EAAE,CAAC,mDAAmD,EAAE,mBAAmB,CAAC;IAC/F,YAAY,EAAO,EAAE,CAAC,0MAA0M,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IACtX,gBAAgB,EAAG,EAAE,CAAC,8EAA8E,EAAE,wBAAwB,CAAC;IAC/H,aAAa,EAAM,EAAE,CAAC,0DAA0D,EAAE,qBAAqB,CAAC;IACxG,UAAU,EAAS,EAAE,CAAC,6DAA6D,EAAE,kBAAkB,CAAC;IACxG,gBAAgB,EAAG,EAAE,CAAC,oDAAoD,EAAE,yBAAyB,CAAC;CACvG,EACD,SAAS,EACT;IACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;IACzB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IAC5F,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACvF,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;CAClH,CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/tools/audio.ts"],"names":[],"mappings":"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"}
|
package/dist/ue-mcp.default.yml
CHANGED
|
@@ -2594,39 +2594,213 @@ tasks:
|
|
|
2594
2594
|
audio.list:
|
|
2595
2595
|
class_path: ue-mcp.bridge
|
|
2596
2596
|
group: audio
|
|
2597
|
-
description: "List sound assets. Params: directory?, recursive?"
|
|
2597
|
+
description: "List sound assets (SoundWave, SoundCue, MetaSoundSource). Params: directory?, recursive?"
|
|
2598
2598
|
options:
|
|
2599
2599
|
method: list_sound_assets
|
|
2600
2600
|
audio.import_audio:
|
|
2601
2601
|
class_path: ue-mcp.bridge
|
|
2602
2602
|
group: audio
|
|
2603
|
-
description: "Import a WAV/OGG/FLAC file as a USoundWave. Returns durationSeconds, numChannels, looping. Params: filePath, name?, packagePath? (default /Game/Audio), looping?, replaceExisting? (default true)
|
|
2603
|
+
description: "Import a WAV/OGG/FLAC file as a USoundWave. Returns durationSeconds, numChannels, looping. Params: filePath, name?, packagePath? (default /Game/Audio), looping?, replaceExisting? (default true)"
|
|
2604
2604
|
options:
|
|
2605
2605
|
method: import_audio
|
|
2606
2606
|
audio.play_at_location:
|
|
2607
2607
|
class_path: ue-mcp.bridge
|
|
2608
2608
|
group: audio
|
|
2609
|
-
description: "Play sound. Params: soundPath, location, volumeMultiplier?, pitchMultiplier?"
|
|
2609
|
+
description: "Play a sound in the editor world. Params: soundPath, location, volumeMultiplier?, pitchMultiplier?"
|
|
2610
2610
|
options:
|
|
2611
2611
|
method: play_sound_at_location
|
|
2612
2612
|
audio.spawn_ambient:
|
|
2613
2613
|
class_path: ue-mcp.bridge
|
|
2614
2614
|
group: audio
|
|
2615
|
-
description: "Place
|
|
2615
|
+
description: "Place an AmbientSound actor. Params: soundPath, location, label?"
|
|
2616
2616
|
options:
|
|
2617
2617
|
method: spawn_ambient_sound
|
|
2618
|
-
audio.
|
|
2618
|
+
audio.metasound_author:
|
|
2619
2619
|
class_path: ue-mcp.bridge
|
|
2620
2620
|
group: audio
|
|
2621
|
-
description: "
|
|
2621
|
+
description: "PREFERRED: stamp a whole MetaSound graph in ONE call from a declarative spec (avoids dozens of add_node/connect round-trips). Params: name, packagePath?, format? ('mono'|'stereo'), oneShot?, onConflict?, inputs? [{name,dataType,default?}], outputs? [{name,dataType}], nodes? [{id,class,namespace?,variant?,majorVersion?,inputs?:{vertex:value}}], connections? [{from,to}]. Endpoints are 'nodeId:vertex', or special heads 'input:<name>', 'output:<name>', 'audioOut:<channel>'. Each element reports its own ok/error; builds + saves at the end."
|
|
2622
2622
|
options:
|
|
2623
|
-
method:
|
|
2623
|
+
method: metasound_author
|
|
2624
2624
|
audio.create_metasound:
|
|
2625
2625
|
class_path: ue-mcp.bridge
|
|
2626
2626
|
group: audio
|
|
2627
|
-
description: "Create MetaSoundSource. Params: name, packagePath?"
|
|
2627
|
+
description: "Create an empty MetaSoundSource and open a builder session for INCREMENTAL authoring (add_node/connect/...). For a whole graph at once prefer metasound_author. Params: name, packagePath? (default /Game/Audio/MetaSounds), format? ('mono'|'stereo'), oneShot?. Returns assetPath."
|
|
2628
2628
|
options:
|
|
2629
2629
|
method: create_metasound_source
|
|
2630
|
+
audio.metasound_list_node_classes:
|
|
2631
|
+
class_path: ue-mcp.bridge
|
|
2632
|
+
group: audio
|
|
2633
|
+
description: "List common MetaSound node classes to add (name, namespace, variant, notes). Params: filter? (substring)."
|
|
2634
|
+
options:
|
|
2635
|
+
method: metasound_list_node_classes
|
|
2636
|
+
audio.metasound_get_graph:
|
|
2637
|
+
class_path: ue-mcp.bridge
|
|
2638
|
+
group: audio
|
|
2639
|
+
description: "Report a MetaSound's builder-session state (active builder, audio outputs, oneShot). Params: assetPath."
|
|
2640
|
+
options:
|
|
2641
|
+
method: metasound_get_graph
|
|
2642
|
+
audio.metasound_add_node:
|
|
2643
|
+
class_path: ue-mcp.bridge
|
|
2644
|
+
group: audio
|
|
2645
|
+
description: "Add a node to a MetaSound graph by registered class name. Returns nodeId (+ input/output counts). Params: assetPath, nodeClassName (e.g. 'Sine'), nodeNamespace? (default 'UE'), nodeVariant? (e.g. 'Audio'), majorVersion? (default 1)."
|
|
2646
|
+
options:
|
|
2647
|
+
method: metasound_add_node
|
|
2648
|
+
audio.metasound_add_input:
|
|
2649
|
+
class_path: ue-mcp.bridge
|
|
2650
|
+
group: audio
|
|
2651
|
+
description: "Add a graph input to a MetaSound. Params: assetPath, name, dataType ('Float'|'Int32'|'Bool'|'String'|'Trigger'|'Audio'|'Time'|...), defaultValue?."
|
|
2652
|
+
options:
|
|
2653
|
+
method: metasound_add_graph_input
|
|
2654
|
+
audio.metasound_add_output:
|
|
2655
|
+
class_path: ue-mcp.bridge
|
|
2656
|
+
group: audio
|
|
2657
|
+
description: "Add a graph output to a MetaSound. Params: assetPath, name, dataType."
|
|
2658
|
+
options:
|
|
2659
|
+
method: metasound_add_graph_output
|
|
2660
|
+
audio.metasound_connect:
|
|
2661
|
+
class_path: ue-mcp.bridge
|
|
2662
|
+
group: audio
|
|
2663
|
+
description: "Connect one node's output vertex to another node's input vertex. Params: assetPath, fromNodeId, fromOutput (vertex name), toNodeId, toInput (vertex name)."
|
|
2664
|
+
options:
|
|
2665
|
+
method: metasound_connect
|
|
2666
|
+
audio.metasound_connect_input:
|
|
2667
|
+
class_path: ue-mcp.bridge
|
|
2668
|
+
group: audio
|
|
2669
|
+
description: "Connect a graph input to a node input vertex. Params: assetPath, graphInput (name), toNodeId, toInput (vertex name)."
|
|
2670
|
+
options:
|
|
2671
|
+
method: metasound_connect_graph_input
|
|
2672
|
+
audio.metasound_connect_output:
|
|
2673
|
+
class_path: ue-mcp.bridge
|
|
2674
|
+
group: audio
|
|
2675
|
+
description: "Connect a node output vertex to a graph output. Params: assetPath, fromNodeId, fromOutput (vertex name), graphOutput (name)."
|
|
2676
|
+
options:
|
|
2677
|
+
method: metasound_connect_graph_output
|
|
2678
|
+
audio.metasound_connect_audio_out:
|
|
2679
|
+
class_path: ue-mcp.bridge
|
|
2680
|
+
group: audio
|
|
2681
|
+
description: "Connect a node output vertex to the source's audio output. Params: assetPath, fromNodeId, fromOutput (vertex name, must be Audio type), channel? (0=left/mono, 1=right; default 0)."
|
|
2682
|
+
options:
|
|
2683
|
+
method: metasound_connect_audio_out
|
|
2684
|
+
audio.metasound_set_default:
|
|
2685
|
+
class_path: ue-mcp.bridge
|
|
2686
|
+
group: audio
|
|
2687
|
+
description: "Set a default value on a node input vertex, or on a graph input. Params: assetPath, value (required), dataType? (Float|Int32|Bool|String hint), then EITHER (nodeId + inputName) OR graphInput."
|
|
2688
|
+
options:
|
|
2689
|
+
method: metasound_set_input_default
|
|
2690
|
+
audio.metasound_build:
|
|
2691
|
+
class_path: ue-mcp.bridge
|
|
2692
|
+
group: audio
|
|
2693
|
+
description: "Write the builder document to the MetaSound asset and save. Call after authoring. Params: assetPath."
|
|
2694
|
+
options:
|
|
2695
|
+
method: metasound_build
|
|
2696
|
+
audio.cue_author:
|
|
2697
|
+
class_path: ue-mcp.bridge
|
|
2698
|
+
group: audio
|
|
2699
|
+
description: "PREFERRED: create a SoundCue and stamp its whole node tree in ONE call. Params: name, packagePath?, onConflict?, nodes [{id,type,soundWavePath?,properties?}], connections [{parent,child,index?}] (omit parent => root), root? (nodeId). Each element reports ok/error; links + saves at the end."
|
|
2700
|
+
options:
|
|
2701
|
+
method: soundcue_author
|
|
2702
|
+
audio.create_cue:
|
|
2703
|
+
class_path: ue-mcp.bridge
|
|
2704
|
+
group: audio
|
|
2705
|
+
description: "Create a SoundCue, optionally seeded from a wave. For a whole graph prefer cue_author. Params: name, packagePath?, soundWavePath?."
|
|
2706
|
+
options:
|
|
2707
|
+
method: create_sound_cue
|
|
2708
|
+
audio.cue_add_node:
|
|
2709
|
+
class_path: ue-mcp.bridge
|
|
2710
|
+
group: audio
|
|
2711
|
+
description: "Add a node to a SoundCue graph. Returns nodeId. Params: cuePath, nodeType ('wave_player'|'mixer'|'random'|'modulator'|'attenuation'|'looping'|'concatenator'|'delay'|'switch'), soundWavePath? (wave_player), properties? (node-specific fields)."
|
|
2712
|
+
options:
|
|
2713
|
+
method: soundcue_add_node
|
|
2714
|
+
audio.cue_connect:
|
|
2715
|
+
class_path: ue-mcp.bridge
|
|
2716
|
+
group: audio
|
|
2717
|
+
description: "Connect a SoundCue node as a child of another (or as the cue root). Params: cuePath, parentNodeId (omit for root), childNodeId, childIndex? (default append)."
|
|
2718
|
+
options:
|
|
2719
|
+
method: soundcue_connect
|
|
2720
|
+
audio.cue_get_graph:
|
|
2721
|
+
class_path: ue-mcp.bridge
|
|
2722
|
+
group: audio
|
|
2723
|
+
description: "Read a SoundCue node graph: nodes (id, type, children) and root. Params: cuePath."
|
|
2724
|
+
options:
|
|
2725
|
+
method: soundcue_get_graph
|
|
2726
|
+
audio.create_submix:
|
|
2727
|
+
class_path: ue-mcp.bridge
|
|
2728
|
+
group: audio
|
|
2729
|
+
description: "Create a USoundSubmix, optionally parented. Params: name, packagePath? (default /Game/Audio/Submixes), parentPath?, outputVolume?, wetLevel?, dryLevel?."
|
|
2730
|
+
options:
|
|
2731
|
+
method: create_submix
|
|
2732
|
+
audio.set_submix_parent:
|
|
2733
|
+
class_path: ue-mcp.bridge
|
|
2734
|
+
group: audio
|
|
2735
|
+
description: "Reparent a submix (sets ParentSubmix, updating both ends). Params: submixPath, parentPath (empty detaches to root)."
|
|
2736
|
+
options:
|
|
2737
|
+
method: set_submix_parent
|
|
2738
|
+
audio.add_submix_effect:
|
|
2739
|
+
class_path: ue-mcp.bridge
|
|
2740
|
+
group: audio
|
|
2741
|
+
description: "Append a submix effect preset to a submix's effect chain (creates the preset asset). Params: submixPath, effectType ('reverb'|'eq'|'dynamics'|'filter'|'delay'), name?, packagePath?, settings? (effect Settings struct as JSON)."
|
|
2742
|
+
options:
|
|
2743
|
+
method: add_submix_effect
|
|
2744
|
+
audio.create_sound_class:
|
|
2745
|
+
class_path: ue-mcp.bridge
|
|
2746
|
+
group: audio
|
|
2747
|
+
description: "Create a USoundClass, optionally parented, with properties. Params: name, packagePath? (default /Game/Audio/SoundClasses), parentPath?, properties? (FSoundClassProperties JSON: Volume, Pitch, bIsUISound, ...)."
|
|
2748
|
+
options:
|
|
2749
|
+
method: create_sound_class
|
|
2750
|
+
audio.create_sound_mix:
|
|
2751
|
+
class_path: ue-mcp.bridge
|
|
2752
|
+
group: audio
|
|
2753
|
+
description: "Create a USoundMix with sound-class adjusters. Params: name, packagePath? (default /Game/Audio/SoundMixes), adjusters? ([{soundClassPath, volumeAdjuster?, pitchAdjuster?, applyToChildren?}]), fadeInTime?, fadeOutTime?."
|
|
2754
|
+
options:
|
|
2755
|
+
method: create_sound_mix
|
|
2756
|
+
audio.create_concurrency:
|
|
2757
|
+
class_path: ue-mcp.bridge
|
|
2758
|
+
group: audio
|
|
2759
|
+
description: "Create a USoundConcurrency asset. Params: name, packagePath? (default /Game/Audio/Concurrency), maxCount?, limitToOwner?, resolutionRule? (e.g. 'StopFarthestThenOldest'), volumeScale?."
|
|
2760
|
+
options:
|
|
2761
|
+
method: create_concurrency
|
|
2762
|
+
audio.create_attenuation:
|
|
2763
|
+
class_path: ue-mcp.bridge
|
|
2764
|
+
group: audio
|
|
2765
|
+
description: "Create a USoundAttenuation asset. Params: name, packagePath? (default /Game/Audio/Attenuation), settings? (FSoundAttenuationSettings JSON), plus shortcuts: falloffDistance?, spatialize?, enableOcclusion?."
|
|
2766
|
+
options:
|
|
2767
|
+
method: create_attenuation
|
|
2768
|
+
audio.set_sound_submix:
|
|
2769
|
+
class_path: ue-mcp.bridge
|
|
2770
|
+
group: audio
|
|
2771
|
+
description: "Set a sound's base submix (routing target). Params: soundPath, submixPath (empty detaches)."
|
|
2772
|
+
options:
|
|
2773
|
+
method: set_sound_submix
|
|
2774
|
+
audio.add_sound_submix_send:
|
|
2775
|
+
class_path: ue-mcp.bridge
|
|
2776
|
+
group: audio
|
|
2777
|
+
description: "Add a submix send to a sound. Params: soundPath, submixPath, sendLevel? (default 1.0)."
|
|
2778
|
+
options:
|
|
2779
|
+
method: add_sound_submix_send
|
|
2780
|
+
audio.set_sound_class:
|
|
2781
|
+
class_path: ue-mcp.bridge
|
|
2782
|
+
group: audio
|
|
2783
|
+
description: "Assign a sound class to a sound. Params: soundPath, soundClassPath."
|
|
2784
|
+
options:
|
|
2785
|
+
method: set_sound_class
|
|
2786
|
+
audio.set_sound_attenuation:
|
|
2787
|
+
class_path: ue-mcp.bridge
|
|
2788
|
+
group: audio
|
|
2789
|
+
description: "Attach an attenuation asset to a sound. Params: soundPath, attenuationPath (empty clears)."
|
|
2790
|
+
options:
|
|
2791
|
+
method: set_sound_attenuation
|
|
2792
|
+
audio.set_sound_concurrency:
|
|
2793
|
+
class_path: ue-mcp.bridge
|
|
2794
|
+
group: audio
|
|
2795
|
+
description: "Attach a concurrency asset to a sound. Params: soundPath, concurrencyPath (empty clears)."
|
|
2796
|
+
options:
|
|
2797
|
+
method: set_sound_concurrency
|
|
2798
|
+
audio.set_property:
|
|
2799
|
+
class_path: ue-mcp.bridge
|
|
2800
|
+
group: audio
|
|
2801
|
+
description: "Set any UPROPERTY on an audio asset by (dotted) name, value as JSON. Handles nested structs, arrays, object refs. Params: assetPath, propertyName, value."
|
|
2802
|
+
options:
|
|
2803
|
+
method: set_audio_property
|
|
2630
2804
|
|
|
2631
2805
|
# ── widget ──
|
|
2632
2806
|
widget.read_tree:
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ue-mcp",
|
|
3
|
-
"version": "1.1.
|
|
4
|
-
"description": "Unreal Engine MCP server - 23 tools,
|
|
3
|
+
"version": "1.1.16",
|
|
4
|
+
"description": "Unreal Engine MCP server - 23 tools, 711+ actions for AI-driven editor control",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"exports": {
|
|
@@ -30,6 +30,41 @@ void FAudioHandlers::RegisterHandlers(FMCPHandlerRegistry& Registry)
|
|
|
30
30
|
Registry.RegisterHandler(TEXT("create_metasound_source"), &CreateMetaSoundSource);
|
|
31
31
|
Registry.RegisterHandler(TEXT("play_sound_at_location"), &PlaySoundAtLocation);
|
|
32
32
|
Registry.RegisterHandler(TEXT("spawn_ambient_sound"), &SpawnAmbientSound);
|
|
33
|
+
|
|
34
|
+
// MetaSound graph authoring (AudioHandlers_MetaSound.cpp)
|
|
35
|
+
Registry.RegisterHandler(TEXT("metasound_author"), &MetaSoundAuthor);
|
|
36
|
+
Registry.RegisterHandler(TEXT("metasound_list_node_classes"), &MetaSoundListNodeClasses);
|
|
37
|
+
Registry.RegisterHandler(TEXT("metasound_get_graph"), &MetaSoundGetGraph);
|
|
38
|
+
Registry.RegisterHandler(TEXT("metasound_add_node"), &MetaSoundAddNode);
|
|
39
|
+
Registry.RegisterHandler(TEXT("metasound_add_graph_input"), &MetaSoundAddGraphInput);
|
|
40
|
+
Registry.RegisterHandler(TEXT("metasound_add_graph_output"), &MetaSoundAddGraphOutput);
|
|
41
|
+
Registry.RegisterHandler(TEXT("metasound_connect"), &MetaSoundConnect);
|
|
42
|
+
Registry.RegisterHandler(TEXT("metasound_connect_graph_input"), &MetaSoundConnectGraphInput);
|
|
43
|
+
Registry.RegisterHandler(TEXT("metasound_connect_graph_output"), &MetaSoundConnectGraphOutput);
|
|
44
|
+
Registry.RegisterHandler(TEXT("metasound_connect_audio_out"), &MetaSoundConnectAudioOut);
|
|
45
|
+
Registry.RegisterHandler(TEXT("metasound_set_input_default"), &MetaSoundSetInputDefault);
|
|
46
|
+
Registry.RegisterHandler(TEXT("metasound_build"), &MetaSoundBuild);
|
|
47
|
+
|
|
48
|
+
// SoundCue graph authoring (AudioHandlers_SoundCue.cpp)
|
|
49
|
+
Registry.RegisterHandler(TEXT("soundcue_author"), &SoundCueAuthor);
|
|
50
|
+
Registry.RegisterHandler(TEXT("soundcue_add_node"), &SoundCueAddNode);
|
|
51
|
+
Registry.RegisterHandler(TEXT("soundcue_connect"), &SoundCueConnect);
|
|
52
|
+
Registry.RegisterHandler(TEXT("soundcue_get_graph"), &SoundCueGetGraph);
|
|
53
|
+
|
|
54
|
+
// Mixing + routing + spatialization (AudioHandlers_Mixing.cpp)
|
|
55
|
+
Registry.RegisterHandler(TEXT("create_submix"), &CreateSubmix);
|
|
56
|
+
Registry.RegisterHandler(TEXT("set_submix_parent"), &SetSubmixParent);
|
|
57
|
+
Registry.RegisterHandler(TEXT("add_submix_effect"), &AddSubmixEffect);
|
|
58
|
+
Registry.RegisterHandler(TEXT("create_sound_class"), &CreateSoundClass);
|
|
59
|
+
Registry.RegisterHandler(TEXT("create_sound_mix"), &CreateSoundMix);
|
|
60
|
+
Registry.RegisterHandler(TEXT("create_concurrency"), &CreateConcurrency);
|
|
61
|
+
Registry.RegisterHandler(TEXT("create_attenuation"), &CreateAttenuation);
|
|
62
|
+
Registry.RegisterHandler(TEXT("set_sound_submix"), &SetSoundSubmix);
|
|
63
|
+
Registry.RegisterHandler(TEXT("add_sound_submix_send"), &AddSoundSubmixSend);
|
|
64
|
+
Registry.RegisterHandler(TEXT("set_sound_class"), &SetSoundClass);
|
|
65
|
+
Registry.RegisterHandler(TEXT("set_sound_attenuation"), &SetSoundAttenuation);
|
|
66
|
+
Registry.RegisterHandler(TEXT("set_sound_concurrency"), &SetSoundConcurrency);
|
|
67
|
+
Registry.RegisterHandler(TEXT("set_audio_property"), &SetAudioProperty);
|
|
33
68
|
}
|
|
34
69
|
|
|
35
70
|
// #664: import a WAV/OGG/FLAC file as a USoundWave. Passing a null factory lets
|
|
@@ -172,34 +207,6 @@ TSharedPtr<FJsonValue> FAudioHandlers::CreateSoundCue(const TSharedPtr<FJsonObje
|
|
|
172
207
|
return MCPResult(Result);
|
|
173
208
|
}
|
|
174
209
|
|
|
175
|
-
TSharedPtr<FJsonValue> FAudioHandlers::CreateMetaSoundSource(const TSharedPtr<FJsonObject>& Params)
|
|
176
|
-
{
|
|
177
|
-
FString Name;
|
|
178
|
-
if (auto Err = RequireString(Params, TEXT("name"), Name)) return Err;
|
|
179
|
-
|
|
180
|
-
FString PackagePath = OptionalString(Params, TEXT("packagePath"), TEXT("/Game/Audio/MetaSounds"));
|
|
181
|
-
const FString OnConflict = OptionalString(Params, TEXT("onConflict"), TEXT("skip"));
|
|
182
|
-
|
|
183
|
-
UClass* MetaSoundSourceClass = FindObject<UClass>(nullptr, TEXT("/Script/MetasoundEngine.MetaSoundSource"));
|
|
184
|
-
if (!MetaSoundSourceClass)
|
|
185
|
-
{
|
|
186
|
-
return MCPError(TEXT("MetaSoundSource class not found. Enable MetaSound plugin."));
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
auto Created = MCPCreateAssetIdempotent<UObject>(Name, PackagePath, OnConflict, TEXT("MetaSoundSource"), MetaSoundSourceClass, nullptr);
|
|
190
|
-
if (Created.EarlyReturn) return Created.EarlyReturn;
|
|
191
|
-
|
|
192
|
-
UEditorAssetLibrary::SaveAsset(Created.Asset->GetPathName());
|
|
193
|
-
|
|
194
|
-
auto Result = MCPSuccess();
|
|
195
|
-
MCPSetCreated(Result);
|
|
196
|
-
Result->SetStringField(TEXT("path"), Created.Asset->GetPathName());
|
|
197
|
-
Result->SetStringField(TEXT("name"), Name);
|
|
198
|
-
MCPSetDeleteAssetRollback(Result, Created.Asset->GetPathName());
|
|
199
|
-
|
|
200
|
-
return MCPResult(Result);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
210
|
TSharedPtr<FJsonValue> FAudioHandlers::PlaySoundAtLocation(const TSharedPtr<FJsonObject>& Params)
|
|
204
211
|
{
|
|
205
212
|
// Get required sound asset path
|
|
@@ -10,6 +10,7 @@ public:
|
|
|
10
10
|
static void RegisterHandlers(class FMCPHandlerRegistry& Registry);
|
|
11
11
|
|
|
12
12
|
private:
|
|
13
|
+
// ── Assets + playback ──────────────────────────────────────────────
|
|
13
14
|
static TSharedPtr<FJsonValue> ListSoundAssets(const TSharedPtr<FJsonObject>& Params);
|
|
14
15
|
// #664: import a WAV/OGG file as a USoundWave asset.
|
|
15
16
|
static TSharedPtr<FJsonValue> ImportAudio(const TSharedPtr<FJsonObject>& Params);
|
|
@@ -17,4 +18,41 @@ private:
|
|
|
17
18
|
static TSharedPtr<FJsonValue> CreateMetaSoundSource(const TSharedPtr<FJsonObject>& Params);
|
|
18
19
|
static TSharedPtr<FJsonValue> PlaySoundAtLocation(const TSharedPtr<FJsonObject>& Params);
|
|
19
20
|
static TSharedPtr<FJsonValue> SpawnAmbientSound(const TSharedPtr<FJsonObject>& Params);
|
|
21
|
+
|
|
22
|
+
// ── MetaSound graph authoring (AudioHandlers_MetaSound.cpp) ─────────
|
|
23
|
+
// One-shot: stamp a whole graph (nodes/connections/inputs/outputs) in one call.
|
|
24
|
+
static TSharedPtr<FJsonValue> MetaSoundAuthor(const TSharedPtr<FJsonObject>& Params);
|
|
25
|
+
static TSharedPtr<FJsonValue> MetaSoundListNodeClasses(const TSharedPtr<FJsonObject>& Params);
|
|
26
|
+
static TSharedPtr<FJsonValue> MetaSoundGetGraph(const TSharedPtr<FJsonObject>& Params);
|
|
27
|
+
static TSharedPtr<FJsonValue> MetaSoundAddNode(const TSharedPtr<FJsonObject>& Params);
|
|
28
|
+
static TSharedPtr<FJsonValue> MetaSoundAddGraphInput(const TSharedPtr<FJsonObject>& Params);
|
|
29
|
+
static TSharedPtr<FJsonValue> MetaSoundAddGraphOutput(const TSharedPtr<FJsonObject>& Params);
|
|
30
|
+
static TSharedPtr<FJsonValue> MetaSoundConnect(const TSharedPtr<FJsonObject>& Params);
|
|
31
|
+
static TSharedPtr<FJsonValue> MetaSoundConnectGraphInput(const TSharedPtr<FJsonObject>& Params);
|
|
32
|
+
static TSharedPtr<FJsonValue> MetaSoundConnectGraphOutput(const TSharedPtr<FJsonObject>& Params);
|
|
33
|
+
static TSharedPtr<FJsonValue> MetaSoundConnectAudioOut(const TSharedPtr<FJsonObject>& Params);
|
|
34
|
+
static TSharedPtr<FJsonValue> MetaSoundSetInputDefault(const TSharedPtr<FJsonObject>& Params);
|
|
35
|
+
static TSharedPtr<FJsonValue> MetaSoundBuild(const TSharedPtr<FJsonObject>& Params);
|
|
36
|
+
|
|
37
|
+
// ── SoundCue graph authoring (AudioHandlers_SoundCue.cpp) ───────────
|
|
38
|
+
// One-shot: stamp a whole cue tree (nodes + connections + root) in one call.
|
|
39
|
+
static TSharedPtr<FJsonValue> SoundCueAuthor(const TSharedPtr<FJsonObject>& Params);
|
|
40
|
+
static TSharedPtr<FJsonValue> SoundCueAddNode(const TSharedPtr<FJsonObject>& Params);
|
|
41
|
+
static TSharedPtr<FJsonValue> SoundCueConnect(const TSharedPtr<FJsonObject>& Params);
|
|
42
|
+
static TSharedPtr<FJsonValue> SoundCueGetGraph(const TSharedPtr<FJsonObject>& Params);
|
|
43
|
+
|
|
44
|
+
// ── Mixing + routing + spatialization (AudioHandlers_Mixing.cpp) ────
|
|
45
|
+
static TSharedPtr<FJsonValue> CreateSubmix(const TSharedPtr<FJsonObject>& Params);
|
|
46
|
+
static TSharedPtr<FJsonValue> SetSubmixParent(const TSharedPtr<FJsonObject>& Params);
|
|
47
|
+
static TSharedPtr<FJsonValue> AddSubmixEffect(const TSharedPtr<FJsonObject>& Params);
|
|
48
|
+
static TSharedPtr<FJsonValue> CreateSoundClass(const TSharedPtr<FJsonObject>& Params);
|
|
49
|
+
static TSharedPtr<FJsonValue> CreateSoundMix(const TSharedPtr<FJsonObject>& Params);
|
|
50
|
+
static TSharedPtr<FJsonValue> CreateConcurrency(const TSharedPtr<FJsonObject>& Params);
|
|
51
|
+
static TSharedPtr<FJsonValue> CreateAttenuation(const TSharedPtr<FJsonObject>& Params);
|
|
52
|
+
static TSharedPtr<FJsonValue> SetSoundSubmix(const TSharedPtr<FJsonObject>& Params);
|
|
53
|
+
static TSharedPtr<FJsonValue> AddSoundSubmixSend(const TSharedPtr<FJsonObject>& Params);
|
|
54
|
+
static TSharedPtr<FJsonValue> SetSoundClass(const TSharedPtr<FJsonObject>& Params);
|
|
55
|
+
static TSharedPtr<FJsonValue> SetSoundAttenuation(const TSharedPtr<FJsonObject>& Params);
|
|
56
|
+
static TSharedPtr<FJsonValue> SetSoundConcurrency(const TSharedPtr<FJsonObject>& Params);
|
|
57
|
+
static TSharedPtr<FJsonValue> SetAudioProperty(const TSharedPtr<FJsonObject>& Params);
|
|
20
58
|
};
|