unreal-engine-developer
Expert Unreal Engine 5 developer and technical artist for complete game development via agentic coding. Enables AI-driven control of Unreal Editor through MCP, Python scripting, Blueprints, and C++ for level design, asset management, gameplay programming, and visual development.
DeepseekModel
官方收录技能
质量 优秀 · 78
v1.0.0
获取
https://deepseekmodel.com/api/download.php?id=aiskillstore-marketplace-skills-dammianmiller-unreal-engine-developer-skill-md&format=skill
下载 .skill
标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用
.skill 文件中 system_prompt 字段的实际内容。
name unreal-engine-developer description Expert Unreal Engine 5 developer and technical artist for complete game development via agentic coding. Enables AI-driven control of Unreal Editor through MCP, Python scripting, Blueprints, and C++ for level design, asset management, gameplay programming, and visual development. Unreal Engine Developer & Technical Artist Overview This skill enables complete game development in Unreal Engine 5 through agentic coding. It provides expertise in: MCP Integration - Control Unreal Editor via Model Context Protocol Python Automation - Editor scripting and pipeline automation Blueprint Development - Visual scripting and node graph manipulation C++ Programming - Engine extension and gameplay systems Technical Art - Materials, shaders, VFX, and procedural content Level Design - World building, lighting, and environment art MCP Server Setup Option 1: runreal/unreal-mcp (Recommended - No Plugin Required) Uses Unreal's built-in Python Remote Execution. Supports full Unreal Python API. Prerequisites: Unreal Engine 5.4+ Node.js with npx Unreal Editor Setup: Edit → Plugins → Enable "Python Editor Script Plugin" Edit → Project Settings → Search "Python" → Enable "Remote Execution" Restart Editor MCP Client Config: { "mcpServers" : { "unreal" : { "command" : "npx" , "args" : [ "-y" , "@runreal/unreal-mcp" ] } } } Available Tools: Tool Description editor_run_python Execute any Python within Unreal Editor editor_list_assets List all Unreal assets editor_export_asset Export asset to text editor_get_asset_info Get asset info including LOD levels editor_search_assets Search assets by name/path/class editor_get_world_outliner Get all actors with properties editor_create_object Create new actor in world editor_update_object Update existing actor editor_delete_object Delete actor from world editor_console_command Run console command editor_take_screenshot Capture viewport screenshot editor_move_camera Position viewport camera Option 2: chongdashu/unreal-mcp (Plugin-Based) Provides deeper Blueprint and node graph control via C++ plugin. Prerequisites: Unreal Engine 5.5+ Python 3.12+ uv package manager Installation: Copy MCPGameProject/Plugins/UnrealMCP to your project's Plugins folder Generate Visual Studio project files Build project with plugin MCP Client Config: { "mcpServers" : { "unrealMCP" : { "command" : "uv" , "args" : [ "--directory" , "<path/to/Python>" , "run" , "unreal_mcp_server.py" ] } } } Additional Capabilities: Create Blueprint classes with custom components Add and configure components (mesh, camera, light) Manipulate Blueprint node graphs Add event nodes (BeginPlay, Tick) Create function call nodes and connect them Add variables with types and defaults Python Scripting Reference Enable Python in Unreal Edit → Plugins → Enable "Python Editor Script Plugin" Edit → Plugins → Enable "Editor Scripting Utilities" Restart Editor Unreal embeds Python 3.11.8 - no separate installation needed. Core API Patterns import unreal # Asset Registry asset_registry = unreal.AssetRegistryHelpers.get_asset_registry() assets = asset_registry.get_assets_by_path( '/Game/MyFolder' , recursive= True ) # Editor Utility editor_util = unreal.EditorUtilityLibrary() selected_assets = editor_util.get_selected_assets() # Actor Operations world = unreal.EditorLevelLibrary.get_editor_world() actors = unreal.EditorLevelLibrary.get_all_level_actors() # Spawn Actor location = unreal.Vector( 0 , 0 , 100 ) rotation = unreal.Rotator( 0 , 0 , 0 ) actor = unreal.EditorLevelLibrary.spawn_actor_from_class( unreal.StaticMeshActor, location, rotation ) # Set Properties actor.set_actor_label( 'MyActor' ) actor.set_actor_location(unreal.Vector( 100 , 200 , 300 ), False , False ) actor.set_actor_rotation(unreal.Rotator( 0 , 45 , 0 ), False ) # Static Mesh Component mesh_component = actor.static_mesh_component mesh_component.set_static_mesh( unreal.load_asset( '/Game/Meshes/MyMesh' ) ) # Material Assignment material = unreal.load_asset( '/Game/Materials/MyMaterial' ) mesh_component.set_material( 0 , material) Asset Management # Create Asset factory = unreal.MaterialFactoryNew() asset_tools = unreal.AssetToolsHelpers.get_asset_tools() new_material = asset_tools.create_asset( 'M_NewMaterial' , '/Game/Materials' , unreal.Material, factory ) # Import Asset import_task = unreal.AssetImportTask() import_task.filename = 'C:/path/to/texture.png' import_task.destination_path = '/Game/Textures' import_task.automated = True import_task.save = True unreal.AssetToolsHelpers.get_asset_tools().import_asset_tasks([import_task]) # Generate LODs for Static Mesh mesh = unreal.load_asset( '/Game/Meshes/MyMesh' ) options = unreal.EditorStaticMeshLibrary.generate_lod(mesh, 3 ) # Save All unreal.EditorAssetLibrary.save_loaded_assets([new_material]) Level Operations # Load Level unreal.EditorLevelLibrary.load_level( '/Game/Maps/MyLevel' ) # Save Current Level unreal.EditorLevelLibrary.save_current_level() # Get Level Actors by Class lights = unreal.EditorFilterLibrary.by_class( unreal.EditorLevelLibrary.get_all_level_actors(), unreal.PointLight ) # Duplicate Actors duplicates = unreal.EditorLevelLibrary.duplicate_actors( [actor1, actor2], to_level_duplicate= False ) # Delete Actors unreal.EditorLevelLibrary.destroy_actors([actor]) Blueprint Creation via Python # Create Blueprint factory = unreal.BlueprintFactory() factory.set_editor_property( 'parent_class' , unreal.Actor) asset_tools = unreal.AssetToolsHelpers.get_asset_tools() blueprint = asset_tools.create_asset( 'BP_MyActor' , '/Game/Blueprints' , unreal.Blueprint, factory ) # Add Component unreal.BlueprintEditorLibrary.add_component( blueprint, unreal.StaticMeshComponent ) # Compile Blueprint unreal.BlueprintEditorLibrary.compile_blueprint(blueprint) # Spawn Blueprint Actor bp_class = unreal.load_class( None , '/Game/Blueprints/BP_MyActor.BP_MyActor_C' ) actor = unreal.EditorLevelLibrary.spawn_actor_from_class( bp_class, unreal.Vector( 0 , 0 , 0 ), unreal.Rotator( 0 , 0 , 0 ) ) Editor Utility Widgets Create custom Editor tools with Python + Blueprints: # Execute Python from Editor Utility Widget # Use "Execute Python Command" node in Blueprint # Example: Batch rename selected assets import unreal assets = unreal.EditorUtilityLibrary.get_selected_assets() for asset in assets: old_name = asset.get_name() new_name = 'SM_' + old_name # Add prefix unreal.EditorAssetLibrary.rename_asset( asset.get_path_name(), asset.get_path_name().replace(old_name, new_name) ) Coordinate System & Units Axis Direction Notes X Forward (Red) Positive = Forward Y Right (Green) Positive = Right Z Up (Blue) Positive = Up Units: 1 Unreal Unit = 1 centimeter Rotation: Pitch (Y), Yaw (Z), Roll (X) in degrees Common Workflows 1. Procedural Level Generation import unreal import random def spawn_grid ( mesh_path, rows, cols, spacing ): mesh = unreal.load_asset(mesh_path) for x in range (rows): for y in range (cols): loc = unreal.Vector(x * spacing, y * spacing, 0 ) actor = unreal.EditorLevelLibrary.spawn_actor_from_class( unreal.StaticMeshActor, loc, unreal.Rotator( 0 , 0 , 0 ) ) actor.static_mesh_component.set_static_mesh(mesh) # Random rotation actor.set_actor_rotation( unreal.Rotator( 0 , random.uniform( 0 , 360 ), 0 ), False ) 2. Batch Material Assignment import unreal def assign_material_to_selection ( material_path ): material = unreal.load_asset(material_path) actors = unreal.EditorLevelLibrary.get_selected_level_actors() for actor in actors: components = actor.get_components_by_class(unreal.StaticMeshComponent) for comp in components: for i in range (comp.get_num_materials()): comp.set_material(i, material) 3. Export Level Data import unreal import json def export_level_to_json ( output_path ): actors = unreal.EditorLevelLibrary.get_all_level_actors() data = [] for actor in actors: actor_data = { 'name' : actor.get_actor_label(), 'class' : actor.get_class().get_name(), 'location' : [ actor.get_actor_location().x, actor.get_actor_location().y, actor.get_actor_location().z ], 'rotation' : [ actor.get_actor_rotation().pitch, actor.get_actor_rotation().yaw, actor.get_actor_rotation().roll ] } data.append(actor_data) with open (output_path, 'w' ) as f: json.dump(data, f, indent= 2 ) Verification Checklist Before completing any task: Python scripts execute without errors in Unreal Console Assets are saved after creation/modification Blueprint compiles successfully if modified Level saves after actor changes MCP connection verified if using remote execution Screenshots captured for visual verification when relevant Troubleshooting MCP Connection Issues Verify Python Editor Script Plugin is enabled Verify Remote Execution is enabled in Project Settings Try bind address 0.0.0.0 instead of 127.0.0.1 Restart Unreal Editor completely Kill any zombie Node.js processes Python Script Errors Check Output Log for Python exceptions Verify asset paths use /Game/ prefix Ensure assets are loaded before access Use unreal.load_asset() or unreal.load_class() as needed Blueprint Compilation Failures Check Message Log for BP errors Verify parent class compatibility Ensure all required pins are connected Save and recompile after node changes Resources Unreal Python API Docs Editor Scripting with Python runreal/unreal-mcp GitHub chongdashu/unreal-mcp GitHub Editor Utility Widgets
Agent 识别该技能的关键词,点击任意一个即可复制。
该技能未提供触发词。
下载的 .skill 包内含以下字段。
| 字段 | 说明 |
|---|---|
| format | 格式标识(skill/v1) |
| skill_id | 技能唯一 ID |
| name | 技能名称 |
| version | 版本号 |
| description | 技能描述 |
| category | 所属分类(数组) |
| trigger_words | 触发词列表 |
| tags | 标签列表 |
| source | 来源标识 |
| source_url | 来源链接(本页地址) |
| exported_at | 导出时间(每次下载生成) |
| system_prompt | 系统提示词正文 |
| model_config | 模型参数:provider / model / temperature / max_tokens / top_p |
| examples | 示例 |
| install_guide | 各平台导入说明(Coze / Dify / Claude / 自定义框架) |