اضبط خادم Unreal MCP ليتمكّن Claude من إنشاء Blueprints وتوليد الفاعلات (actors) وتعديل الأصول داخل محرر Unreal Engine 5 أثناء تشغيله. اختر الخادم، وفعّل الإضافات، واكتب إعداد Claude Code أو Claude Desktop، وأصلح أخطاء الاتصال الشائعة.
تكتب جملة واحدة في نافذة الدردشة، فيظهر أصل Blueprint في متصفح المحتوى (Content Browser) لديك. هذا هو الوعد الذي يقدّمه خادم Unreal MCP: برنامج جسر صغير يتيح لعميل Claude التواصل مع محرر Unreal Engine قيد التشغيل عبر بروتوكول سياق النماذج (Model Context Protocol). الوعد حقيقي، لكن الإعداد يحمل مطبات كثيرة. ستتعامل مع إضافتين للمحرر، ومنفذ أو اثنين، وملف JSON، وعدد من القيود التي لا يذكرها أحد حتى تصطدم بها. يستعرض هذا المقال السلسلة كاملة، من تفعيل الإضافات الصحيحة إلى كتابة أوامر نصية تنتج Blueprints نظيفة، ويكون صريحًا بشأن ما لا يستطيع Claude فعله داخل مخطط Blueprint حتى الآن.
ماذا يفعل خادم Unreal MCP؟
خادم MCP هو برنامج يعرض أدوات على عميل ذكاء اصطناعي. يرى Claude قائمة مثل "إنشاء Blueprint" أو "توليد فاعل" أو "تشغيل نص برمجي للمحرر"، ويختار منها كلما احتاج أمرك إلى إجراء داخل المحرك. الجانب الخاص بـ Unreal بسيط، لأن المحرر يأتي أصلًا بطرق لقبول الأوامر الخارجية. يحوّل الخادم استدعاءات Claude للأدوات إلى تلك الأوامر، ويعيد رد المحرر إلى Claude.
المكوّنات الثلاثة
لكل إعداد القطع الثلاث نفسها، أيًّا كان الخادم الذي تختاره:
القطعة
ما هي
مكان التشغيل
عميل Claude
Claude Code أو Claude Desktop
جهازك
خادم MCP
جسر مكتوب بـ Python أو Node
جهازك، يشغّله العميل
محرر Unreal
إضافة Python مع التنفيذ عن بُعد أو Remote Control API
جهازك، مع فتح مشروع
يشغّل العميل الخادم كعملية فرعية، ويتواصل معه عبر الإدخال والإخراج القياسيين. ثم يصل الخادم إلى المحرر عبر localhost. لا يغادر شيء جهازك إلا الأوامر النصية التي ترسلها إلى Claude نفسه.
لماذا لا تلصق الشيفرة يدويًا؟
بدون جسر، تطلب من Claude سكربت Python، وتنسخه وتلصقه في وحدة Python للمحرر، وتقرأ الخطأ وتنسخه مرة أخرى إلى الدردشة. ومع الخادم، يشغّل Claude السكربت بنفسه، ويقرأ رد المحرر، ويصحح أخطاءه بنفسه. تكتمل الحلقة دون أن تتدخل في منتصفها.
يرى Claude النتيجة الفعلية، فيُصحَّح مسار الأصل الخاطئ فورًا
تتحول المهام المتكررة، مثل إعادة تسمية 200 أصل، إلى أمر نصي واحد
تبقى يداك داخل المحرر بينما تتولى الدردشة أعمال الإعداد
تذهب أفضل الخوادم أبعد بكثير من مهام الأصول. تقول صفحة UEMCP إن Claude يستطيع توليد الفاعلات، وبناء المواد، وتأليف Blueprints، وإدارة الأصول، وتحريك كاميرا منفذ العرض، وأخذ لقطات الشاشة، كل ذلك من خلال المحادثة. لقطات الشاشة أهم مما تبدو: عندما يدعم عميلك نتائج الصور، يستطيع Claude أن ينظر إلى منفذ العرض بعد أي تغيير، ويقارن النتيجة بطلبك، بدلًا من الاكتفاء برسالة النجاح.
اختر الخادم الصحيح أولًا
توجد عدة خوادم مفتوحة المصدر، وتصل إلى المحرك بثلاث طرق مختلفة. اختر حسب طريقة عملك، لا حسب الشهرة.
خوادم التنفيذ عن بُعد بـ Python
UEMCP هو المثال الأوضح. يتحدث بروتوكول التنفيذ عن بُعد المدمج في المحرك بـ Python، أي البحث عبر الإرسال المتعدد (multicast) وقناة الأوامر TCP نفسها التي تأتي مع Unreal. تسرد صفحته على PyPI دعم Unreal Engine 5.0 حتى 5.6 وPython 3.10 أو أحدث، وتعرض أدوات Blueprint لإنشاء Blueprint وإضافة مكوّن وضبط خاصية افتراضية. لا يحتاج إلى تجميع.
خوادم Remote Control API
unreal-engine-mcp يسلك طريق HTTP. يجمع بين Remote Control API وPython داخل المحرر، ويستمع على المنفذ 30010 افتراضيًا، وتسرد صفحته 162 أداة، من بينها استيراد الأصول، وإنشاء المستويات، ومخططات المواد، وتوليد فئات C++، والتغليف. تذكر الصفحة أنه جُرّب على Unreal Engine 5.8. ولا يحتاج هو أيضًا إلى تجميع.
خوادم إضافات C++
بعض المشاريع تأتي بإضافة C++ تفتح مقبسًا (socket) داخل المحرر، ويتصل بها خادم Python. تحصل على وصول أعمق، لأن شيفرة الإضافة تصل إلى الأجزاء الداخلية للمحرر التي لا تصل إليها Python. الثمن هو بناء منفصل لكل إصدار من المحرك. تعمل إضافة UnrealMCP بهذه الطريقة: تضعها في مجلد Plugins بمشروعك، وتشغّل سكربت الإعداد الخاص بها، وتوجّه Claude Desktop إلى سكربت التشغيل الخاص بها.
المسار
يحتاج تجميعًا
الاتصال
الأنسب لـ
التنفيذ عن بُعد بـ Python
لا
بحث UDP عبر الإرسال المتعدد، ثم TCP
إعداد سريع، مهام الأصول
Remote Control API
لا
HTTP على المنفذ 30010
قوائم أدوات طويلة، بناء المستويات
إضافة C++
نعم
مقبس TCP مخصص
وصول عميق إلى المحرر
💡 الاختيار السريع: إذا لم تستخدم خادم MCP من قبل، فاسلك طريق التنفيذ عن بُعد بـ Python. يحتاج إلى أمر واحد في Claude Code ولا يحتاج إلى مترجم. انتقل إلى إضافة C++ فقط عندما تصطدم بحاجز لا تتجاوزه Python.
جهّز محرر Unreal
يعتمد المساران اللذان لا يحتاجان إلى تجميع على إضافات تأتي مع المحرك. فعّلها مرة واحدة لكل مشروع. تحقق من إصدار المحرك مقابل المدى المدعوم للخادم قبل أي شيء آخر: يسرد UEMCP الإصدارات من 5.0 حتى 5.6، بينما يذكر خادم Remote Control أنه جُرّب على 5.8. على إصدار خارج القائمة، توقّع أن تتصرف بعض استدعاءات Python API بشكل مختلف.
💡 استخدم مشروعًا تجريبيًا: شغّل جلستك الأولى على مشروع فارغ بالإصدار نفسه من المحرك. مستوى مؤقت لا يكلّفك شيئًا، وأي مفاجأة تبقى بعيدة عن أصولك الحقيقية.
تفعيل الإضافات
افتح Edit ▸ Plugins في المحرر.
ابحث عن Python Editor Script Plugin وفعّله.
في مسار Remote Control، ابحث أيضًا عن Remote Control API وفعّله.
أعد تشغيل المحرر عندما يطلب ذلك.
افتح Edit ▸ Project Settings، وابحث عن "remote execution"، ثم فعّل Enable Remote Execution.
يُحفظ الإعداد في ملف تكوين مشروعك، لذا تفعله مرة واحدة فقط. أودِع تغيير التكوين في نظام التحكم بالإصدارات حتى يرثه زملاؤك.
تشغيل خادم الويب
يحتاج مسار Remote Control إلى تشغيل خادم HTTP الخاص به. افتح الوحدة الطرفية (console) في Output Log وشغّل:
WebControl.StartServer
يرد الخادم على المنفذ 30010 ما لم تغيّره. أبقِ المحرر مفتوحًا وخاملًا أثناء الاختبار، لأن الأوامر تُنفَّذ داخل المحرر، فالمحرر المشغول بتجميع المظللات (shaders) يرد ببطء. مهلة UEMCP الافتراضية 120 ثانية لكل أمر، وهي سخية لكنها ليست لا نهائية.
اربط Claude بالمحرر
بعد جاهزية المحرر، سجّل الخادم لدى عميل Claude لديك. اختر العميل الذي تستخدمه أصلًا.
Claude Code بأمر واحد
لمسار التنفيذ عن بُعد بـ Python:
claude mcp add unreal -- uvx uemcp
لمسار Remote Control:
claude mcp add unreal-mcp -- python -m unreal_mcp.server
يحتاج الأمر الأول إلى تثبيت uv، لأن uvx يشغّل الحزمة دون تثبيت يدوي. شغّل claude mcp list للتأكد من تسجيل الخادم، أو اكتب /mcp داخل جلسة لرؤية حالة اتصاله.
ملف JSON لإعداد Claude Desktop
افتح Settings ▸ Developer ▸ Edit Config. على Windows يقع الملف في %APPDATA%\Claude\claude_desktop_config.json. أضف مدخلًا تحت mcpServers:
أغلق Claude Desktop بالكامل، لا النافذة فقط، ثم أعد فتحه.
💡 انتبه إلى الفواصل: فاصلة زائدة في النهاية أو قوس ناقص تجعل الملف كله غير صالح، ولن يظهر الخادم أبدًا دون أي رسالة. الصق الملف في أي أداة للتحقق من JSON قبل إعادة التشغيل.
اختبر بأمر نصي بسيط
افتح مشروعًا في المحرر أولًا، ثم اسأل:
اعرض الفاعلات في المستوى الحالي، وأخبرني كم عددها من نوع الإضاءة.
إذا رد Claude بأسماء تطابق World Outliner لديك، فالسلسلة تعمل. وإذا قال إنه لا يملك أدوات Unreal، فهذا يعني أن العميل لم يحمّل الخادم، فراجع الإعداد قبل أن تلمس المحرر.
ابنِ Blueprints من الدردشة
بعد ثبات الاتصال يبدأ العمل المفيد. الـ Blueprint فئة (class)، وإنشاء فئة بمكوّنات وقيم افتراضية هو بالضبط نوع المهمة المنظمة التي يتعامل معها Claude جيدًا عبر استدعاءات الأدوات.
ما الذي يستطيع Claude بناءه اليوم؟
عبر الخوادم المعتمدة على Python، تشمل المهام الموثوقة:
إنشاء فئة Blueprint من أب مثل Actor أو Pawn أو Character
توليد نسخ Blueprint في المستوى المفتوح عند مواضع دقيقة
إنشاء المواد وأصول البيانات ثم حفظها
هذا أمر نصي يختبر معظم تلك القائمة:
Create an Actor Blueprint at /Game/Blueprints/BP_Pickup.
Add a StaticMesh component named PickupMesh using the engine Sphere mesh,
and a SphereCollision component named PickupTrigger with radius 120.
Set PickupMesh scale to 0.5 on every axis.
Then spawn three instances in the open level, 400 units apart along X.
Report the asset path and actor names when you are done.
يقسم Claude هذا الطلب إلى عدة استدعاءات أدوات، ويتحقق من رد كل منها، ويعيد المحاولة عندما يعيد المحرر خطأ. وأنت تشاهد الأصول تظهر في متصفح المحتوى أثناء ذلك.
تتكون الجلسة الأولى الجيدة من أربع خطوات:
اطلب تقريرًا للقراءة فقط، مثل "اعرض كل Blueprint في /Game/Blueprints".
اطلب Blueprint جديدًا واحدًا بمكوّنين.
افتحه في المحرر وقارنه بما أبلغ عنه Claude.
اطلب تعديلًا صغيرًا، مثل زيادة نصف قطر الكرة، وتأكد من القيمة في لوحة Details.
إذا نجحت الخطوات الأربع، فأنت تعرف أن المسار يقرأ ويكتب ويتحقق. عندئذ فقط اطلب مهام أكبر، مثل تزيين غرفة كاملة بالدعائم.
أين تتوقف مخططات Blueprint؟
هذا هو القيد الذي تتجاهله معظم الدروس. تذكر وثائق أحد الخوادم بوضوح أنه لا يمكن تأليف مخططات عُقد Blueprint من Python. المكوّنات والقيم الافتراضية والمتغيرات لا بأس بها. أما توصيل عقد Event Graph عقدةً عقدةً فليس موثوقًا على ذلك المسار.
الحل البديل هو تقسيم عمل واضح. يكتب Claude المنطق في فئة أب بلغة C++، ويعرضه باستخدام UFUNCTION(BlueprintCallable) وBlueprintImplementableEvent. تقوم أنت بالتجميع. ثم ينشئ Claude فئة Blueprint ابنة، ويضبط قيمها الافتراضية، ويضعها في المستوى. يبقى المخطط صغيرًا لأن المنطق الحقيقي يعيش في C++.
المهمة
مسار Python فقط
مع فئة أب بلغة C++
إضافة المكوّنات
موثوق
موثوق
ضبط القيم الافتراضية
موثوق
موثوق
توصيل عقد Event Graph
غير موثوق
يستدعي دوال C++ بدلًا من ذلك
المنطق القابل لإعادة الاستخدام
صعب المشاركة
يعيش في فئة واحدة
تعلن خوادم أحدث قراءة مخططات Blueprint وتعديلها مباشرة على إصدارات محرك حديثة. تعامل مع ذلك كوعد واعد، واختبره على نسخة من مشروعك قبل أن تأمنه على عمل حقيقي.
أوامر نصية تنجح في Unreal
الخادم يتولى الكتابة. أما الأمر النصي فما زال يحدد النتيجة. هذه العادات تقلل معدل إعادة المحاولة بشكل ملحوظ:
سمِّ كل أصل ومساره. "BP_Pickup في /Game/Blueprints" أفضل من "شيء للالتقاط".
اطلب تغييرًا واحدًا في كل مرة. الخطوات الصغيرة سهلة التحقق وسهلة التراجع.
اختم بطلب تقرير. "اعرض ما غيّرته" يمنحك قائمة تحقق تقارنها بالمحرر.
اذكر إصدار المحرك. تتغير أسماء Python API بين الإصدارات، لذا قل "Unreal 5.6" في البداية.
أجّل الحفظ. اطلب من Claude أن ينتظر قبل حفظ كل الأصول حتى تراجع النتيجة.
ثبّت الحالة أولًا. استخدم Git مع LFS أو Perforce، وثبّت التغييرات قبل كل جلسة حتى تكون التجربة الفاشلة على بُعد تراجع واحد.
أمر نصي غامض
أمر نصي أفضل
"اصنع بابًا"
"أنشئ BP_Door في /Game/Props مع مكوّن شبكة ثابتة اسمه DoorMesh ومشغّل صندوقي عرضه 200 وحدة. أبلغ عن المسار."
"أصلح الإضاءة"
"اعرض كل ضوء في المستوى مع شدته وقابلية حركته. لا تغيّر شيئًا بعد."
"نظّف الأصول"
"اعرض الأنسجة في /Game/Textures التي تتجاوز 4096 بكسل. لا تحذف أي شيء."
💡 قالب من أربعة أسطر: الهدف، ومسار الأصل، والقيود، وما يجب الإبلاغ عنه. استخدمه دائمًا لتبقى أوامرك قصيرة ودقيقة.
تنحرف الجلسات الطويلة مع الوقت. بعد 20 أو 30 استدعاء أداة، قد يفقد Claude تتبع الأصول الموجودة، ويبدأ بتخمين المسارات. عندما يحدث ذلك، افتح دردشة جديدة والصق ملخصًا قصيرًا للحالة الحالية: المجلدات المستخدمة، وأسماء Blueprints، وقاعدة التسمية. ملخص من عشرة أسطر أفضل من تاريخ محادثة مدته ساعتين.
أصلح مشاكل الاتصال بسرعة
تقع معظم الأعطال ضمن عدد قليل من الأنماط:
العَرَض
السبب المرجّح
الحل
الخادم غير موجود في Claude
JSON غير صالح، أو uvx وpython غير موجودين في PATH
تحقق من JSON، وشغّل uvx --version، وأعد تشغيل العميل
لا يوجد رد HTTP
خادم الويب غير قيد التشغيل
شغّل WebControl.StartServer في وحدة المحرر الطرفية
الأوامر مرفوضة
التنفيذ عن بُعد مغلق
تأكد من Enable Remote Execution وأعد تشغيل المحرر
انتهاء المهلة
المحرر مشغول بالمظللات أو بتحميل مستوى
انتظر حتى يصبح المحرر خاملًا، ثم أعد المحاولة
المنفذ مستخدم بالفعل
تطبيق آخر يستخدم 30010
غيّر UE_MCP_PORT ومنفذ Remote Control ليتطابقا
المحرر غير مكتشف
جدار الحماية أو VPN يحجب الإرسال المتعدد
اسمح بـ UDP على 239.0.0.1:6766 أو أوقف VPN
عند حدوث عطل، اقرأ Output Log في المحرر أولًا. تُطبع أخطاء Python الناتجة عن الأوامر البعيدة هناك، وغالبًا يحتاج Claude إلى هذا النص بالضبط ليصلح المشكلة. إذا لم يمرّر عميلك الخطأ، فالصقه في الدردشة بنفسك.
تشير وثائق أحد الخوادم أيضًا إلى bEnableRemotePythonExecution=True في DefaultRemoteControl.ini عندما يبقى التنفيذ عن بُعد محجوبًا، فتحقق من هذا الملف إذا لم تحل القائمة أعلاه المشكلة.
أحكم تأمين الاتصال
تحذّر صفحة UEMCP نفسها من أن بروتوكول التنفيذ عن بُعد لا يملك مصادقة. أي شخص يستطيع الوصول إلى المنفذ يستطيع تشغيل Python داخل محررك. أبقِ الاتصال على localhost، ولا تعرّض المنافذ أبدًا على شبكة Wi-Fi مشتركة في المكتب، وأضف قاعدة في جدار الحماية إذا كان جهازك على شبكة لا تتحكم فيها. كما يطلب Claude Code الإذن قبل استدعاءات الأدوات، فاقرأ أي طلب يشغّل شيفرة Python اعتباطية قبل أن توافق عليه.
جرّبه مع PicassoIA
يحتاج مشروع Unreal إلى أكثر من Blueprints. يحتاج إلى مواصفات تصميم، وملخصات للمستويات، وصور مرجعية، ويتولى PicassoIA هذا الجانب في المتصفح.
استخدم Claude Sonnet 5 على PicassoIA
خطّط للنظام على PicassoIA أولًا، ثم انقل النتيجة المرتبة إلى جلسة Unreal لديك. إليك الروتين مع Claude Sonnet 5:
افتح صفحة Claude Sonnet 5 على PicassoIA.
صف الهدف بكلمات بسيطة: "فاعل التقاط يدور، ويشغّل صوتًا، ويدمّر نفسه عند التداخل. Unreal 5.6."
اطلب إعادة كتابة كل سطر من المواصفات كأمر نصي مستقل ينتهي بـ "أبلغ عمّا غيّرته".
الصق هذه الأوامر، واحدًا تلو الآخر، في جلسة Claude Code المتصلة بخادم Unreal MCP.
نصيحتان للمعاملات: اجعل الطلب لنظام واحد في كل تشغيل، واذكر إصدار المحرك في الجملة الأولى. لنظام لعب أكبر، جرّب Claude Fable 5 أو Claude Opus 4.7، وللمسودات السريعة لرؤوس C++، يُعد Gemini 3.5 Flash سريعًا.
قبل أن تطلب من Claude بناء فناء أو داخلية سفينة أو فسحة في غابة، امنح الجميع الصورة نفسها للحالة المزاجية المستهدفة. تحوّل نماذج الصور على PicassoIA مثل Seedream 5 Pro وGPT Image 2 وFlux 2 Pro الجملة إلى إطار مرجعي واقعي كالصورة الفوتوغرافية خلال ثوانٍ. وهي تنتج صورًا ثنائية الأبعاد، لذا استخدمها كموجز بصري للإضاءة والمواد وتزيين الموقع، ثم اطلب من Claude بناء المستوى ليطابقها.
اختر مشهدًا واحدًا من مشروع Unreal الحالي، واكتب وصفًا من فقرة واحدة له. افتح PicassoIA، وولّد ثلاث صور مرجعية من تلك الفقرة، واحتفظ بالصورة التي تبدو مناسبة. ألصق وصفها في أمرك النصي التالي لـ Claude، ولاحظ مدى اقتراب المحاولة الأولى من المطلوب. يصبح سير عملك أسرع في اللحظة التي تتوافق فيها الأوامر النصية مع الصور.