Agent skill

Unreal Animation Montage

by kevinpbuckley in kevinpbuckley/VibeUE

Creates and edits Unreal Engine Animation Montages through AnimMontageService: sections, slots, segments, branching points, notifies and blend settings.

MITAuto-check passedGame Development

Install Unreal Animation Montage

skills CLI
$ npx skills add kevinpbuckley/VibeUE --skill animation-montage -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install kevinpbuckley/VibeUE animation-montage --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/kevinpbuckley/VibeUE.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Content/Skills/animation-montage .claude/skills/animation-montage && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
animation-montage
GitHub stars
730
Token cost
~3.6k tokens
SKILL.md length
504 words
Files
2 (incl. scripts)
Skills in repo
39
Repo updated
First seen
Licence
MIT

At a glance

Creates and edits Unreal Engine Animation Montages through AnimMontageService: sections, slots, segments, branching points, notifies and blend settings.

  • Creating a montage from an animation or as an empty asset
  • SKILL.md covers Quick Reference - Python API, IMPORTANT: Asset Path Format, IMPORTANT: Return Struct Field… and Key Workflows, plus 2 more sections
  • Adding sections and linking them for combo or flow control
  • Setting up slot tracks and animation segments

What it does

This skill covers creating and editing Unreal Engine Animation Montages through the AnimMontageService Python API: making a montage from an animation or as an empty asset, managing sections and linking them for combos and flow control, slot tracks and animation segments, notifies, blend in and out settings, and branching points for frame-accurate gameplay events. The API reference is organized as discovery, creation, section management, section linking, segments, slot tracks, blend settings and branching points.

A few practical notes are recorded. The list_montages filters must be passed as empty strings rather than None, since an FString argument cannot be null. There is no playback-rate method, so the montage's RateScale property is set directly on the loaded asset and the asset is saved. A scripts folder holds a create_montage.txt example. The skill also says that if an unreal-engine-skills-manager MCP tool exists in the session, the agent may load an animation-system skill from it for domain knowledge, and should skip that step otherwise.

When your agent uses it

  • Creating a montage from an animation or as an empty asset
  • Adding sections and linking them for combo or flow control
  • Setting up slot tracks and animation segments
  • Adding branching points or adjusting blend in and out timing

Example prompts

  • “Create a montage from the sword attack animation and add a windup section and a strike section.”
  • “Link the first combo section to the second one in this montage.”
  • “Set a cubic blend in on the dodge montage.”

Requirements

  • Unreal Engine with the AnimMontageService Python API available

What it can do on your machine

Read from SKILL.md and the folder at commit dc051be. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/, which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Unreal Animation Montage loads about 3.6k tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 504 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~84
When it runs · the whole SKILL.md, loaded when a task matches
~3.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from kevinpbuckley/VibeUE at commit dc051be, republished under its MIT licence (© kevinpbuckley). 504 words, ~3,631 tokens.

Download SKILL.mdSave it as .claude/skills/animation-montage/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
animation-montage
description
Create and manipulate Animation Montages — sections, slots, segments, branching points, notifies, and blend settings (AnimMontageService). Use when the user asks to create a montage (from an animation or empty), add or link montage sections, set up slots/segments, add branching points, or adjust montage blend timing.
display_name
Animation Montages
vibeue_classes
AnimMontageService
unreal_classes
AnimMontage, AnimNotify, AnimNotifyState
keywords
montage, animation, section, slot, segment, branching point, blend, combo, attack, root motion, notify

🧠 Brains complement: IF an unreal-engine-skills-manager tool (external MCP) exists in this session, call it with {action: "load", skill: "animation-system"} for UE domain knowledge on this topic — correct APIs, architecture, best practices — and treat it as the rubric for any review / "best practices" question. If no such tool is available (e.g. running under Claude Code or Codex without that MCP), skip this line entirely and proceed with this skill alone — do NOT attempt the call.

Animation Montage Skill

Use AnimMontageService for animation montage operations.

Quick Reference - Python API

Discovery Methods

⚠️ list_montages filters are strings, not None (issue #461) — pass "" for "no filter", never None (an FString arg can't be null and raises a TypeError). Playback rate: there is no set_playback_rate_scale method; set the montage's RateScale directly — unreal.load_asset(montage_path).set_editor_property("RateScale", 1.5) then unreal.EditorAssetLibrary.save_asset(montage_path).

python
# List all montages in a path (use "" for no skeleton filter, NOT None)
montages = AnimMontageService.list_montages(search_path, skeleton_filter) -> Array[MontageInfo]

# Get detailed montage info
info = AnimMontageService.get_montage_info(montage_path) -> MontageInfo

# Find montages for a skeleton
montages = AnimMontageService.find_montages_for_skeleton(skeleton_path) -> Array[MontageInfo]

# Find montages using a specific animation
montages = AnimMontageService.find_montages_using_animation(anim_path) -> Array[MontageInfo]
Creation Methods
python
# Create montage from an animation sequence
path = AnimMontageService.create_montage_from_animation(anim_path, dest_path, name) -> str

# Create empty montage for a skeleton
path = AnimMontageService.create_empty_montage(skeleton_path, dest_path, name) -> str

# Duplicate existing montage
path = AnimMontageService.duplicate_montage(source_path, dest_path, new_name) -> str
Section Management (CRITICAL for gameplay!)
python
# List all sections
sections = AnimMontageService.list_sections(montage_path) -> Array[MontageSectionInfo]

# Add new section
AnimMontageService.add_section(montage_path, section_name, start_time) -> bool

# Remove section
AnimMontageService.remove_section(montage_path, section_name) -> bool

# Rename section
AnimMontageService.rename_section(montage_path, old_name, new_name) -> bool

# Move section to new time
AnimMontageService.set_section_start_time(montage_path, section_name, new_time) -> bool

# Get section at time
name = AnimMontageService.get_section_name_at_time(montage_path, time) -> str
Section Linking (Combo/Flow Control)
python
# Link sections: Section1 -> Section2
AnimMontageService.set_next_section(montage_path, from_section, to_section) -> bool

# Set section to loop
AnimMontageService.set_section_loop(montage_path, section_name, loop=True) -> bool

# Clear link (section ends montage)
AnimMontageService.clear_section_link(montage_path, section_name) -> bool

# Get all section links for flow visualization
links = AnimMontageService.get_all_section_links(montage_path) -> Array[SectionLink]
Animation Segments (Multiple Animations in One Montage)
python
# List segments in a slot track
segments = AnimMontageService.list_anim_segments(montage_path, track_index) -> Array[AnimSegmentInfo]

# Add animation at specific time
index = AnimMontageService.add_anim_segment(montage_path, track_index, anim_path, start_time, play_rate) -> int

# Remove segment
AnimMontageService.remove_anim_segment(montage_path, track_index, segment_index) -> bool

# Modify segment timing
AnimMontageService.set_segment_start_time(montage_path, track_index, segment_index, time) -> bool
AnimMontageService.set_segment_play_rate(montage_path, track_index, segment_index, rate) -> bool
AnimMontageService.set_segment_loop_count(montage_path, track_index, segment_index, count) -> bool
Slot Tracks
python
# List slot tracks
tracks = AnimMontageService.list_slot_tracks(montage_path) -> Array[SlotTrackInfo]

# Add new slot track
index = AnimMontageService.add_slot_track(montage_path, slot_name) -> int

# Change slot name
AnimMontageService.set_slot_name(montage_path, track_index, new_slot_name) -> bool

# Remove slot track
AnimMontageService.remove_slot_track(montage_path, track_index) -> bool
Blend Settings
python
# Set blend in (options: Linear, Cubic, HermiteCubic, Sinusoidal, etc.)
AnimMontageService.set_blend_in(montage_path, time, option) -> bool

# Set blend out
AnimMontageService.set_blend_out(montage_path, time, option) -> bool

# Set blend out trigger time (-1 = auto)
AnimMontageService.set_blend_out_trigger_time(montage_path, time) -> bool

# Get all blend settings
settings = AnimMontageService.get_blend_settings(montage_path) -> MontageBlendSettings
Branching Points (Frame-Accurate Gameplay Events)
python
# List all branching points
points = AnimMontageService.list_branching_points(montage_path) -> Array[BranchingPointInfo]

# Add branching point for combo input window
index = AnimMontageService.add_branching_point(montage_path, name, trigger_time) -> int

# Remove branching point
AnimMontageService.remove_branching_point(montage_path, index) -> bool
Root Motion
python
# Enable/disable root motion translation
AnimMontageService.set_enable_root_motion_translation(montage_path, enable) -> bool

# Enable/disable root motion rotation
AnimMontageService.set_enable_root_motion_rotation(montage_path, enable) -> bool
Editor Methods
python
# Open montage in Animation Editor
AnimMontageService.open_montage_editor(montage_path) -> bool

# Refresh editor UI: call this ONCE, AFTER all edits are done (see crash warning below)
AnimMontageService.refresh_montage_editor(montage_path) -> bool

# Jump to section in preview
AnimMontageService.jump_to_section(montage_path, section_name) -> bool

# Play preview
AnimMontageService.play_preview(montage_path, start_section) -> bool

⚠️ CRASH WARNING — never structurally edit a montage while its editor is open. Adding/removing sections, slot tracks, segments, notifies, or branching points reallocates the montage's internal arrays. If the montage editor (Persona) is open, its live preview holds pointers into those arrays and the next tick will dereference freed memory → the editor hard-crashes. Rule: do ALL structural edits FIRST, then refresh_montage_editor() / open_montage_editor() exactly once at the very end. Do NOT call refresh_montage_editor() between edits. (The service now also auto-closes the editor before each structural edit as a safety net, but you should still batch edits and open last so the editor isn't opening and closing repeatedly.)

IMPORTANT: Asset Path Format

All montage_path parameters require the FULL asset path (package_name), NOT the folder path.

python
# CORRECT: Full asset path
montage_path = "/Game/Montages/AM_Attack"

# WRONG: Folder path
montage_path = "/Game/Montages"  # This is a folder, not an asset!
Show full SKILL.md (222 more words)Show less

IMPORTANT: Return Struct Field Names (read before printing results)

These methods return UStruct objects. Access fields with the exact snake_case names below — guessing (skeleton_display_name, segment end_time, name, path) raises AttributeError. Each struct field is read-only data already populated; just read it.

MontageInfo (from get_montage_info / list_montages / find_montages_for_skeleton): montage_path, montage_name, skeleton_path, duration, section_count, slot_track_count, notify_count, branching_point_count, blend_in_time, blend_out_time, blend_out_trigger_time, enable_root_motion_translation, enable_root_motion_rotation, slot_names (Array[str]). (No skeleton_display_name — use skeleton_path. No skeleton object — it's a path string.)

MontageSectionInfo (from list_sections): section_name, section_index, start_time, end_time, duration, next_section_name, loops, segment_count.

AnimSegmentInfo (from list_anim_segments / get_anim_segment_info): segment_index, anim_sequence_path, anim_name, start_time, duration, play_rate, anim_start_pos, anim_end_pos, loop_count, loops. (Segments have NO end_time — that field exists only on sections. Compute segment end as start_time + duration. Source-clip range is anim_start_pos → anim_end_pos.)

SlotTrackInfo (from list_slot_tracks): track_index, slot_name, segment_count, total_duration.

SectionLink (from get_all_section_links): from_section, to_section, is_loop.

BranchingPointInfo (from list_branching_points): index, notify_name, trigger_time, section_name.

Tip: when unsure, call discover_python_class('unreal.MontageInfo, unreal.AnimSegmentInfo, unreal.MontageSectionInfo') — the Editor Properties block lists every valid field name. Cheaper than a crash-and-retry loop.

Key Workflows

Create Multi-Animation Montage with Sections
python
import unreal

# 1. Create empty montage
path = unreal.AnimMontageService.create_empty_montage(
    "/Game/Characters/SK_Mannequin",
    "/Game/Montages",
    "AM_ComboAttack"
)

# 2. Add animation segments sequentially (track 0)
unreal.AnimMontageService.add_anim_segment(path, 0, "/Game/Animations/Attack1", 0.0)
unreal.AnimMontageService.add_anim_segment(path, 0, "/Game/Animations/Attack2", 1.0)  
unreal.AnimMontageService.add_anim_segment(path, 0, "/Game/Animations/Attack3", 2.0)

# 3. Add sections at animation boundaries
unreal.AnimMontageService.add_section(path, "Attack1", 0.0)
unreal.AnimMontageService.add_section(path, "Attack2", 1.0)
unreal.AnimMontageService.add_section(path, "Attack3", 2.0)

# 4. Link sections for combo flow
unreal.AnimMontageService.set_next_section(path, "Attack1", "Attack2")
unreal.AnimMontageService.set_next_section(path, "Attack2", "Attack3")
# Attack3 has no next section - ends the montage

# 5. Add branching points for input windows
unreal.AnimMontageService.add_branching_point(path, "Combo1Window", 0.7)
unreal.AnimMontageService.add_branching_point(path, "Combo2Window", 1.7)

# 6. Configure blend settings
unreal.AnimMontageService.set_blend_in(path, 0.15, "Cubic")
unreal.AnimMontageService.set_blend_out(path, 0.2, "Linear")

# 7. Save FIRST, while no editor is open
unreal.EditorAssetLibrary.save_asset(path)

# 8. THEN refresh/open the editor exactly once — never between the edits above
#    (refreshing mid-edit can crash the editor; see CRASH WARNING)
unreal.AnimMontageService.refresh_montage_editor(path)
Create Layered Upper Body Montage
python
import unreal

# 1. Create montage from animation
path = unreal.AnimMontageService.create_montage_from_animation(
    "/Game/Animations/Reload",
    "/Game/Montages",
    "AM_Reload_UpperBody"
)

# 2. Change slot to UpperBody for layered blending
unreal.AnimMontageService.set_slot_name(path, 0, "UpperBody")

# 3. Configure blend
unreal.AnimMontageService.set_blend_in(path, 0.1, "Linear")
unreal.AnimMontageService.set_blend_out(path, 0.15, "Linear")

# 4. Disable root motion for upper body action
unreal.AnimMontageService.set_enable_root_motion_translation(path, False)
unreal.AnimMontageService.set_enable_root_motion_rotation(path, False)

# 5. Save
unreal.EditorAssetLibrary.save_asset(path)
Set Up Looping Idle Section
python
import unreal

montage_path = "/Game/Montages/AM_Combat"

# Add sections
unreal.AnimMontageService.add_section(montage_path, "Idle", 0.0)
unreal.AnimMontageService.add_section(montage_path, "Attack", 2.0)

# Make Idle loop until gameplay interrupts
unreal.AnimMontageService.set_section_loop(montage_path, "Idle", True)

# Attack ends the montage (no next section)
unreal.AnimMontageService.clear_section_link(montage_path, "Attack")

COMMON_MISTAKES

Wrong: Using folder path instead of asset path
python
# WRONG
montages = AnimMontageService.list_sections("/Game/Montages")

# CORRECT
sections = AnimMontageService.list_sections("/Game/Montages/AM_Attack")
Wrong: Refreshing the editor between structural edits (can CRASH the editor)
python
# WRONG - opening/refreshing the editor mid-edit, then editing more, can hard-crash
# the editor (live preview holds dangling pointers into reallocated montage arrays)
AnimMontageService.add_section(path, "Attack", 0.5)
AnimMontageService.refresh_montage_editor(path)   # editor now open
AnimMontageService.add_anim_segment(path, 0, anim, 1.0)  # mutates arrays under live preview -> CRASH risk

# CORRECT - do ALL structural edits first, save, THEN refresh/open exactly once at the end
AnimMontageService.add_section(path, "Attack", 0.5)
AnimMontageService.add_anim_segment(path, 0, anim, 1.0)
unreal.EditorAssetLibrary.save_asset(path)
AnimMontageService.refresh_montage_editor(path)   # single refresh at the very end
Wrong: Adding sections beyond montage duration
python
# WRONG - Section time must be within montage length
# If montage is 3.0s, this fails:
AnimMontageService.add_section(path, "Late", 5.0)  # Beyond duration

# CORRECT - Add segments first to extend duration, then add sections
AnimMontageService.add_anim_segment(path, 0, anim_path, 3.0)  # Extends montage
AnimMontageService.add_section(path, "Late", 3.5)  # Now within range
Wrong: Forgetting to save
python
# WRONG - Changes lost on editor restart
AnimMontageService.add_section(path, "Attack", 0.5)

# CORRECT - Always save after changes
AnimMontageService.add_section(path, "Attack", 0.5)
unreal.EditorAssetLibrary.save_asset(path)

Sample scripts (run via execute_python_code)

  • scripts/create_montage.txt — create a montage from an animation and add named sections.

© kevinpbuckley, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (scripts) in Content/Skills/animation-montage of kevinpbuckley/VibeUE.

  • SKILL.md
  • scripts/create_montage.txt

Open the folder on GitHubat commit dc051be

Compare with similar skills

Unreal Animation Montage next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Unreal Animation Montage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Unreal Animation Montage this skillkevinpbuckley/VibeUE730—~3.6kAutomated safety check: PassMIT
Unreal BridgeTornLux/UnrealBridge306—~8.4kAutomated safety check: NotesMIT
Scenario Unreal Cinematicsscenario-labs/skills946—~5.1kAutomated safety check: PassMIT
Scenario Unreal Pipeline Automationscenario-labs/skills946—~5kAutomated safety check: PassMIT
Scenario Unreal Expertscenario-labs/skills946—~6.4kAutomated safety check: PassMIT
Scenario Unreal Gameplayscenario-labs/skills946—~5.2kAutomated safety check: PassMIT

Similar skills

  • Unreal Bridge

    TornLux/UnrealBridge

    Execute Python scripts inside a running Unreal Engine 5.3+ editor via TCP bridge.

    306 GitHub stars~8.4k tokensUpdated 10 days ago
    Game DevelopmentAuto-check: notes
  • Scenario Unreal Cinematics

    scenario-labs/skills

    A skill your agent uses when making a trailer, cutscene, cinematic or short film in Unreal Engine 5.8 with Sequencer: shot lists, master and shot sequences, cameras, lenses, depth of field, camera…

    946 GitHub stars~5.1k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • A skill your agent uses when importing FBX, USD, OBJ or glTF from Maya, ZBrush or Blender into Unreal Engine 5.8 in bulk or reimporting changed files, writing Editor Python tools, Interchange…

    946 GitHub stars~5k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Scenario Unreal Expert

    scenario-labs/skills

    A skill your agent uses when an agent drives Unreal Engine 5.8 on a Mac for any task: Editor Python (the unreal module), headless UnrealEditor-Cmd -run=pythonscript jobs, Epic's Unreal MCP server…

    946 GitHub stars~6.4k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Scenario Unreal Gameplay

    scenario-labs/skills

    A skill your agent uses when building or debugging UE5 gameplay: a character with double jump or dash, abilities with cooldowns, enemy AI that patrols, chases and attacks, a health bar or HUD…

    946 GitHub stars~5.2k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • 2D Map and Scene Generator

    0x0funky/agent-sprite-forge

    Plans and builds 2D game maps and scenes, from tilemaps and parallax backgrounds to HD-2D plates, with collision checks, a playable HTML preview and Tiled, Godot or LDtk export.

    4.4k GitHub stars~2.9k tokensUpdated 4 days ago
    Game DevelopmentAuto-check passed

More from kevinpbuckley/VibeUE

All 39 skills in this repo
  • Unreal Animation Bone Editor

    kevinpbuckley/VibeUE

    Previews, validates and bakes bone-rotation edits on Unreal Engine AnimSequences, enforcing a coordinate space and a constraint-checked preview-validate-bake loop.

    730 GitHub stars~1.3k tokensUpdated 3 days ago
    Auto-check passed
  • Unreal AnimSequence Editor

    kevinpbuckley/VibeUE

    Creates and edits AnimSequence keyframes and bone tracks in Unreal Engine through AnimSequenceService, following an inspect, preview, validate and bake workflow with correct bone-space handling.

    730 GitHub stars~3.2k tokensUpdated 3 days ago
    Auto-check passed
  • Unreal Asset Import and Export

    kevinpbuckley/VibeUE

    Imports files into Unreal Engine, exports textures, reads the Content Browser selection and checks open assets via VibeUE, plus mesh reimport material fixes.

    730 GitHub stars~6.5k tokensUpdated 3 days ago
    Auto-check passed
  • Unreal Engine Settings Control

    kevinpbuckley/VibeUE

    Changes Unreal Engine console variables, scalability levels and raw INI values through VibeUE's Python API, now that registered settings moved to the engine's own toolset.

    730 GitHub stars~1.3k tokensUpdated 3 days ago
    Auto-check passed
  • Unreal Enhanced Input Setup

    kevinpbuckley/VibeUE

    Creates and wires Unreal Engine Enhanced Input assets through VibeUE's InputService: Input Actions, Mapping Contexts, key bindings, triggers and modifiers.

    730 GitHub stars~2.4k tokensUpdated 3 days ago
    Auto-check passed
  • Unreal Enum and Struct Editor

    kevinpbuckley/VibeUE

    Creates, edits and inspects Unreal Engine UserDefinedEnums and UserDefinedStructs through Python, including adding values or members and reading internal versus display names.

    730 GitHub stars~2.3k tokensUpdated 3 days ago
    Auto-check passed

Questions about Unreal Animation Montage

What does Unreal Animation Montage do?

Creates and edits Unreal Engine Animation Montages through AnimMontageService: sections, slots, segments, branching points, notifies and blend settings. This skill covers creating and editing Unreal Engine Animation Montages through the AnimMontageService Python API: making a montage from an animation or as an empty asset, managing sections and linking them for combos and flow control, slot tracks and animation segments, notifies, blend in and out settings, and branching points for frame-accurate gameplay events. The API reference is organized as discovery, creation, section management, section linking, segments, slot tracks, blend settings and branching points.

When should I use Unreal Animation Montage?

Unreal Animation Montage fits situations like: creating a montage from an animation or as an empty asset; adding sections and linking them for combo or flow control; setting up slot tracks and animation segments; adding branching points or adjusting blend in and out timing.

How do I install Unreal Animation Montage in Claude Code?

Run `npx skills add kevinpbuckley/VibeUE --skill animation-montage -a claude-code`. Or copy the skill folder (Content/Skills/animation-montage in kevinpbuckley/VibeUE) into .claude/skills/animation-montage in your project. Claude Code loads it when a task matches its description.

How do I install Unreal Animation Montage in Codex?

Run `npx skills add kevinpbuckley/VibeUE --skill animation-montage -a codex`. Or copy the skill folder (Content/Skills/animation-montage in kevinpbuckley/VibeUE) into .agents/skills/animation-montage in your project. Codex loads it when a task matches its description.

Can I use Unreal Animation Montage in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kevinpbuckley/VibeUE --skill animation-montage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/animation-montage, .gemini/skills/animation-montage, .github/skills/animation-montage and .opencode/skills/animation-montage in your project.

What does Unreal Animation Montage need to run?

SKILL.md names no scripts, command-line tools or credentials: Unreal Animation Montage is instructions for the agent only. Our summary lists: Unreal Engine with the AnimMontageService Python API available.

Does Unreal Animation Montage access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Unreal Animation Montage safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Unreal Animation Montage use?

Unreal Animation Montage is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Unreal Animation Montage use?

About 3.6k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Unreal Animation Montage?

Skills that share tags, products or a category with Unreal Animation Montage: Unreal Bridge (TornLux/UnrealBridge, 306 stars), Scenario Unreal Cinematics (scenario-labs/skills, 946 stars), Scenario Unreal Pipeline Automation (scenario-labs/skills, 946 stars) and Scenario Unreal Expert (scenario-labs/skills, 946 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Unreal Animation Montage?

kevinpbuckley (a GitHub user) maintains it in kevinpbuckley/VibeUE, which has 730 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 7, 2026.

Source: kevinpbuckley/VibeUE on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.