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
このスキルを起動するキーワード。クリックでコピーできます。
このスキルにはトリガーワードがありません。
ダウンロードした .skill に含まれるフィールド。
| フィールド | 説明 |
|---|---|
| format | フォーマット識別子(skill/v1) |
| skill_id | スキル固有 ID |
| name | スキル名 |
| version | バージョン |
| description | 説明 |
| category | カテゴリ(配列) |
| trigger_words | トリガーワード |
| tags | タグ |
| source | ソース |
| source_url | ソース URL(本ページ) |
| exported_at | エクスポート日時(ダウンロード毎) |
| system_prompt | システムプロンプト本文 |
| model_config | モデル設定:provider / model / temperature / max_tokens / top_p |
| examples | サンプル |
| install_guide | 各プラットフォームの導入説明(Coze / Dify / Claude / カスタム) |