الأدلةشرح عملي8 دقيقة للقراءة

جهّز أي نموذج ثلاثي الأبعاد للتحريك تلقائيًا داخل Unity: جاهز بإعداد Humanoid ومعه مقاطع حركته

اختر نموذجًا في نافذة Project وانقر Rig. وبعد دقيقة يكون بجواره ملف FBX مجهّز للتحريك، مضبوط بإعداد Humanoid، وكل حركة فيه مقطع مستقل.

Window › AFK AI

AFK AI

Signed in as you@example.comSign out

Model

Hero.fbx

Body typehuman

All animationsRig only

FacingAuto

Adding the animations...

Stop waiting
Project › Assets/Characters
  • Hero.fbx
  • Hero_rigged.fbxHumanoid
  • └Idle_ALoop Time ✓
  • └WalkLoop Time ✓
  • └Jump_Startonce
  • └Sword_Attackonce
  • └…
  • └Hero_riggedAvatarAvatar
رسم مستوحى من الإضافة، لا لقطة شاشة: نافذة AFK AI في أثناء تجهيز Hero.fbx، ثم نافذة Project بعد ذلك، وفيها Hero_rigged.fbx بإعداد Humanoid ومقاطعه المتكررة مميّزة.

الطريقة المعتادة لتحريك شخصية في Unity تمرّ عبر Mixamo. تصدّر ملف FBX، وترفعه، وتضع علامات على الذقن والمعصمين والمرفقين والركبتين، وتنزّل كل حركة على حدة، ثم تضبط كل ملف على Humanoid وتفعّل Loop Time في كل مقطع. وكل هذا لا يصلح إلا للشخصيات الشبيهة بالبشر.

أما حزمة AFK AI فتفعل ذلك من نافذة داخل محرّر Unity. اختر النموذج في نافذة Project وانقر Rig. وبعد دقيقة تقريبًا يكون Hero_rigged.fbx بجوار Hero.fbx، مضبوطًا مسبقًا بإعداد Humanoid، وكل حركة فيه مقطع مستقل، وحركات المشي والوقوف مضبوطة على التكرار.

Mixamo أم AFK AI في Unity

Mixamo مجاني وفيه مكتبة كبيرة من الحركات للشخصيات الشبيهة بالبشر. أما AFK AI فيوفّر عليك الذهاب والإياب بين الموقع والمحرّر، ويجهّز الحيوانات وعناصر المشهد أيضًا، ويجلب للنموذج الشبيه بالبشر ما يصل إلى 593 حركة في ملف واحد. يحصل الحساب المجاني على الحركات المجانية، وتضيف الباقة البقية.

MixamoAFK AI في Unity
أينموقع ويب: ارفع، وجهّز، ونزّلنافذة في محرّر Unity
ما تفعلهتضع علامات على الذقن والمعصمين والمرفقين والركبتين وأصل الفخذينتختار نوع الجسم، وتنقر Rig
الأجسامالشبيهة بالبشر فقطالشبيهة بالبشر و 14 نوعًا آخر من الأجسام
الحركاتتُنزَّل واحدة واحدةكل حركات نوع الجسم، في ملف FBX واحد
الإعداد في Unityيدويًا: Humanoid، ثم Loop Time في كل مقطعجاهز: Humanoid، ومقطع لكل حركة، والتكرار مفعّل
تسجيل الدخولحساب Adobeحساب على afk.ai، عبر Google

ثبّت الحزمة

  1. نزّل الحزمة من صفحة إضافة Unity: ملف .tgz واحد. احتفظ به في مكان خارج مشروعك يمكن أن يبقى فيه، لأن Unity يقرأ الحزمة من ذلك الملف.
  2. في Unity، افتح Window > Package Manager، وانقر ⁦+⁩ في أعلى اليسار، واختر ⁦Add package from tarball...⁩.
  3. حدّد ملف .tgz الذي نزّلته. ولا تفكّ ضغطه.
  4. افتح Window > AFK AI. وثبّت النافذة حيث تشاء.

تعمل في Unity 2021.3 أو أحدث، بما فيه Unity 6، مع مسارات العرض Built-in و URP و HDRP على حد سواء: فالإضافة لا تمسّ إلا استيراد النموذج. وكل كودها للمحرّر فقط، فلا ينتهي شيء منه في لعبتك.

سجّل الدخول

  1. في نافذة AFK AI، انقر Sign in. يفتح متصفحك صفحة تسجيل الدخول في afk.ai؛ سجّل الدخول باستخدام Google.
  2. يعرض المتصفح «You're signed in». أغلق التبويب وعُد إلى Unity: تعرض النافذة بريدك الإلكتروني وعدد عمليات إعداد الـrig المتبقية لك هذا الشهر.

إذا تعذّر على المتصفح العودة إلى Unity (فبعض برامج الحماية تمنع ذلك)، يعرض afk.ai رمز تسجيل دخول بدلًا من ذلك. افتح I have a sign-in code في نافذة AFK AI، والصق الرمز، وانقر Use code.

يُحفظ تسجيل دخولك في إعدادات Unity الخاصة بمستخدمك على هذا الحاسوب، لا في المشروع أبدًا، فلا يُشارَك حين تشارك المشروع أو ترفعه إلى مستودع (commit).

جهّز نموذجًا للتحريك

  1. في نافذة Project، حدّد النموذج: ملف .fbx أو .glb أو .gltf حتى 50 MB. ويصلح أيضًا نموذج وضعته في المشهد: إذ ترسل الإضافة الملف الذي جاء منه. لا يعرض Unity ملفات .glb كنماذج إلا إذا كان مستورد glTF مثبّتًا، لكن الإضافة ترسلها في الحالتين.
  2. في نافذة AFK AI، اضبط Body type: human للبشر وكل ما يمشي على ساقين، أو نوع الحيوان أو المخلوق.
  3. اترك All animations مفعّلًا، أو اختر Rig only للهيكل العظمي وحده. واترك Facing على Auto.
  4. انقر Rig. تعرض النافذة مراحل التقدّم: الرفع، والانتظار، وإعداد الـrig، وإضافة الحركات، والتنزيل. ويمكنك مواصلة العمل، وإغلاق النافذة لا يوقف العملية.

وعند الانتهاء، يُحفظ Hero_rigged.fbx بجوار Hero.fbx، محدّدًا ومميّزًا في نافذة Project. ولا يُمسّ الملف الأصلي.

ما الذي يحصل عليه Unity

  • Humanoid: يصل الإنسان بوصفه rig من نوع Humanoid مع Avatar خاص به (Hero_riggedAvatar)، فيتبادل الحركات مع أي شخصية Humanoid أخرى، في الاتجاهين. ويطابق Unity العظام مع خانات Humanoid بنفسه، بما فيها الأصابع.
  • Generic: كل نوع جسم آخر، من الثعلب إلى التنين، يصل بوصفه rig من نوع Generic.
  • المقاطع: كل حركة مقطع مستقل، باسمها نفسه على afk.ai: Idle_A و Walk و Jog و Sprint و Jump_Start و Sword_Attack وغيرها.
  • التكرار: المقاطع التي تدل أسماؤها على التكرار (idle و walk و run و fly و swim وما شابهها) مفعّل فيها Loop Time. والمقاطع التي تُؤدّى مرة واحدة، مثل Jump_Start أو Sword_Attack أو Death_A، تُشغَّل مرة واحدة.
  • Root motion: المقاطع التي تنتهي أسماؤها بـ _RM (مثل Roll_RM و Dodge_left_RM) تدفع الشخصية إلى الأمام بنفسها؛ أما البقية فتُشغَّل في مكانها.

إذا لم يستطع Unity مطابقة هيكل عظمي مع عظام Humanoid، تضبط الإضافة النموذج بإعداد Generic بدلًا من ذلك وتخبرك بالسبب. وتظل الحركات تعمل، لكن لا يمكن مشاركتها مع شخصيات Humanoid الأخرى.

شخصية الأنمي في وضعية T، والمفاصل التي وضعها afk.ai ظاهرة كنقاط، حتى الأصابع
anime-girl.glb · skeleton
root  └ pelvis    └ spine_01      └ spine_02        └ spine_03          └ neck_01            └ head          └ clavicle_l            └ upperarm_l              └ lowerarm_l                └ hand_l                  └ thumb_01_l  thumb_02_l  thumb_03_l                  └ index_01_l  index_02_l  index_03_l                  └ middle_01_l  middle_02_l  middle_03_l                  └ ring_01_l  ring_02_l  ring_03_l                  └ pinky_01_l  pinky_02_l  pinky_03_l          └ clavicle_r ... (وبالمثل على اليمين)    └ thigh_l      └ calf_l        └ foot_l          └ ball_l    └ thigh_r ... (وبالمثل على اليمين)
الهيكل العظمي البشري الذي يحصل عليه كل ريغ من afk.ai: 66 عظمة، بثلاثة مفاصل في كل إصبع وفي الإبهام، وبالأسماء نفسها التي يستخدمها mannequin في Unreal Engine.

اضبط Animator

شجرة مزج (blend tree) تنتقل من الوقوف إلى المشي ثم الهرولة ثم العدو كلما زادت سرعة الشخصية، وهجوم بالسيف على زر:

  1. اسحب Hero_rigged.fbx إلى المشهد. فيه مسبقًا Animator مع الـAvatar الخاص به. أضف إليه Character Controller، وعطّل Apply Root Motion في الـAnimator (فالسكربت هو الذي يحرّكه).
  2. في نافذة Project، اختر Create > Animator Controller (وفي Unity 6: Create > Animation > Animator Controller)، وسمّه Hero، واسحبه إلى حقل Controller في الـAnimator.
  3. افتحه (Window > Animation > Animator). وفي Parameters، أضف Float باسم Speed و Trigger باسم Attack.
  4. انقر بزر الفأرة الأيمن على المخطط واختر Create State > From New Blend Tree. انقر عليها نقرًا مزدوجًا، واضبط معاملها على Speed، وأضف أربع حركات: Idle_A و Walk و Jog و Sprint من Hero_rigged.fbx (انقر سهمه في نافذة Project لترى المقاطع). عطّل Automate Thresholds واضبط العتبات على السرعات التي تتحرك بها شخصيتك، مثل 0 و 1.5 و 3.5 و 6.
  5. عُد إلى Base Layer واسحب مقطع Sword_Attack إليها. أنشئ انتقالًا من شجرة المزج إليه بالشرط Attack مع تعطيل Has Exit Time، ليبدأ فورًا، وانتقالًا آخر عائدًا إلى شجرة المزج مع تفعيل Has Exit Time.
  6. أضف هذا السكربت إلى الشخصية:
using UnityEngine;

// Moves the character and tells its Animator how fast it's going.
[RequireComponent(typeof(Animator), typeof(CharacterController))]
public class HeroAnimation : MonoBehaviour
{
    static readonly int Speed = Animator.StringToHash("Speed");
    static readonly int Attack = Animator.StringToHash("Attack");

    [SerializeField] float runSpeed = 6f;
    Animator animator;
    CharacterController controller;

    void Awake()
    {
        animator = GetComponent<Animator>();
        controller = GetComponent<CharacterController>();
    }

    void Update()
    {
        // The Input Manager's axes. With only the Input System package, read your Move action here instead.
        var input = new Vector3(Input.GetAxis("Horizontal"), 0f, Input.GetAxis("Vertical"));
        var move = Vector3.ClampMagnitude(input, 1f) * runSpeed;
        controller.SimpleMove(move);
        if (move.sqrMagnitude > 0.01f) transform.rotation = Quaternion.LookRotation(move);

        animator.SetFloat(Speed, move.magnitude, 0.1f, Time.deltaTime); // eased, so the blend doesn't snap
        if (Input.GetButtonDown("Fire1")) animator.SetTrigger(Attack);
    }
}

اضغط Play: تقف الشخصية وتمشي وتهرول وتعدو بعصا التحكم أو بمفاتيح الأسهم، وتلوّح بسيفها عند النقر.

EntryLocomotionBlend Tree · Idle_A, Walk, Jog, Sprint↓ Attack↑ Has Exit TimeSword_Attack
رسم توضيحي: الـAnimator Controller. تنتقل شجرة المزج Locomotion من Idle_A إلى Sprint بحسب Speed؛ ويشغّل المُطلِق Attack حركة Sword_Attack، التي تعود عند انتهائها.

شارك الحركات مع شخصيات أخرى

لأن الإنسان المجهّز من نوع Humanoid، يتولى Unity نقل الحركات إلى هيكل آخر (retargeting) نيابةً عنك. أسقط عليه أي مقطع Humanoid، من Asset Store أو من مكتبتك الخاصة، فيعمل. والعكس صحيح: تعمل مقاطعه على أي شخصية Humanoid لديك؛ اسحب مقطع Sprint من Hero_rigged.fbx إلى Animator Controller لشخصية أخرى فتعدو.

أما الحيوانات والمخلوقات فهي من نوع Generic، لذا تعمل مقاطعها على هيكلها العظمي الخاص. ومع ذلك، يحصل كل نموذج يجهّزه AFK AI بنوع الجسم نفسه على أسماء العظام والحركات نفسها، فيمكن لـ Animator Controller ثعلب واحد أن يحرّك أي ثعلب آخر تجهّزه.

الحيوانات والمخلوقات وعناصر المشهد

اختر نوع الجسم في النافذة قبل أن تنقر Rig: fox للكلاب والقطط والذئاب، و horse لكل ذي حوافر، و bird، و dragon، و kaiju للديناصورات، و spider، و insect، و snake، و fish، و kangaroo، و frog، و turtle، و ghost، أو object لعناصر المشهد التي ترتدّ وتدور وتهتز. يحصل كل منها على هيكل عظمي مصمّم لجسمه وحركات مصمّمة لذلك الهيكل، ويصل بوصفه rig من نوع Generic مع ضبط المقاطع والتكرار بالطريقة نفسها. ويسرد دليل الحيوانات ما يأتي مع كل نوع.

  • تنين
  • رباعي الأرجل
  • ذو حوافر
  • ديناصور
  • عنكبوت
  • سمكة
ستة من أنواع الأجسام الأخرى، مزوّدة بالريغ على afk.ai/rig وتؤدي حركاتها الخاصة.

ما الذي يُحتسب عملية إعداد rig

كل نقرة على Rig يقبلها AFK AI تُخصم من عمليات هذا الشهر، كما في إعداد الـrig على afk.ai/rig أو في أي إضافة أخرى من AFK AI. ولا تُحتسب العملية التي تفشل. يوقف Stop waiting الانتظار في Unity، لكن إعداد الـrig يستمر ويظل محتسبًا. وإذا انقطع الاتصال، يستأنف Try again العملية نفسها، ولا تُحتسب مرتين أبدًا. وعند نفاد عملياتك، تعرض النافذة See plans، الذي يفتح باقات afk.ai.

إذا حدث خطأ

لا يصل المتصفح إلى الصفحة بعد تسجيل الدخول
استخدم I have a sign-in code.
Couldn't reach AFK AI
تحقّق من اتصالك، ثم انقر Try again. فهو يستأنف العملية نفسها.
النموذج كبير جدًا
يقبل AFK AI النماذج حتى 50 MB. صدّر نموذجًا أخف، بمضلعات أقل أو خرائط خامات أصغر.
«keeps its data in separate files»
ملف .gltf بجواره ملف .bin. صدّر ملف .glb بدلًا منه.
مقطع يتكرر وما كان ينبغي له
حدّد Hero_rigged.fbx، وافتح تبويب Animation في Inspector، واختر المقطع، وغيّر Loop Time، ثم انقر Apply.
لا يحدث شيء عند النقر على Rig
حدّد ملف .fbx أو .glb أو .gltf في نافذة Project أولًا. وتخبرك النافذة بما ينقص.

الأسئلة الشائعة

هل ما زلت أحتاج إلى Mixamo؟

لا. تجهّز الإضافة النموذج للتحريك وتجلب حركاته في خطوة واحدة، مضبوطًا بإعداد Humanoid. ويمكنك مع ذلك استخدام حركات Mixamo عليه: نزّلها لأي شخصية Humanoid، واضبطها على Humanoid، فتعمل على شخصيتك.

هل تدخل حزمة AFK AI في نسخة لعبتي (build)؟

لا. كل كودها في assembly مخصّص للمحرّر فقط. وما يبقى في مشروعك هو ملف FBX المجهّز، وهو أصل نموذج عادي.

هل تعمل في Unity 6؟

نعم. تعمل في Unity 2021.3 وكل إصدار بعده، بما فيه Unity 6.

هل يمكنني تجهيز نموذج .glb أو .gltf في Unity؟

نعم. ترسل الإضافة الملف كما هو، حتى إن لم يكن في Unity مستورد glTF يعرضه كنموذج. وما يعود هو ملف FBX، يستورده Unity دون أي إضافات. ويجب أن يكون كل شيء مضمّنًا في ملف .gltf؛ وإلا فصدّر ملف .glb.

هل يصلح الـrig لأفاتار VRChat؟

نعم. الإنسان المجهّز من نوع Humanoid، مع كل أصابعه، وهذا ما يحتاج إليه VRChat. ويغطي دليل VRChat بقية الإعداد.

ماذا لو كانت الشخصية تواجه الاتجاه الخاطئ؟

أعد إعداد الـrig بعد ضبط Facing على الزاوية التي تدور بها (90° أو 180° أو 270°). ويكتشف Auto الاتجاه في معظم النماذج.

هل يمكنني تجهيز النماذج من سكربت، لمجلد كامل؟

تجهّز الإضافة نموذجًا واحدًا في كل مرة. وللدفعات وخطوط البناء، استخدم API إعداد الـrig، من سطر الأوامر أو من كودك.

هل توجد إضافة لـ Unreal أو Godot أو Blender أيضًا؟

نعم: لكل من Unreal Engine و Godot و Blender دليل خاص به، ويغطي العرض الشامل لكل إضافات AFK AI التطبيقات التسعة كلها.

اعمل ريغ لنموذجك وحرّكه

يعمل له الذكاء الاصطناعي الريغ في متصفحك، ثم تعمل عليه مئات الحركات. نزّل ملف GLB واحدًا لأي محرك.

اعمل ريغ لنموذج

المزيد من الأدلة