بمجرد أن تكون قد أنشأت رسوم متحركة، تحتاج إلى استخدام النصوص لإدراجها في لعبتك. يمكنك إما تشغيل الرسوم المتحركة يدويًا من النصوص أو استبدال الرسوم المتحركة الافتراضية لشخصيات اللاعبين.
تشغيل الرسوم المتحركة من النصوص
في بعض الحالات، ستحتاج إلى تشغيل رسوم متحركة مباشرة من داخل نص، مثل عندما يضغط المستخدم على مفتاح معين أو يلتقط عنصرًا خاصًا.
الكائنات الشبيهة بالبشر
لتشغيل رسوم متحركة على هيكل يحتوي على كائن من Humanoid، مثل الشخصيات القابلة للعب النموذجية، اتبع هذا النمط الأساسي:
- أنشئ مثيلًا جديدًا من Animation مع المعرف المناسب لـ AnimationId.
- قم بتحميل الرسوم المتحركة عبر Animator:LoadAnimation() لإنشاء AnimationTrack.
- قم بتشغيل المسار باستخدام AnimationTrack:Play().
على سبيل المثال، يكون النص LocalScript التالي، عندما يتم وضعه في StarterPlayerScripts، يقوم بتحميل رسوم متحركة "ركلة" على شخصية اللاعب وتشغيلها. يستخدم النص أيضًا أسلوب GetMarkerReachedSignal() لاكتشاف متى يحدث حدث رسوم متحركة معينة animation event.
LocalScript - تشغيل رسوم متحركة مخصصة على شخصية اللاعب
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- تأكد من أن الشبح الخاص بالشخصية يحتوي على كائن "Animator"
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- أنشئ مثيل جديد "Animation" وكلف معرف الأصل للرسوم المتحركة
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- قم بتحميل الرسوم المتحركة على المحاكي
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- إذا تم تعريف حدث مسمى للرسوم المتحركة، قم بتوصيله بـ "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- تشغيل مسار الرسوم المتحركة
kickAnimationTrack:Play()
الكائنات غير الشبيهة بالبشر
لتشغيل الرسوم المتحركة على الهياكل التي لا تحتوي على Humanoid، يجب عليك إنشاء AnimationController مع طفل Animator. على سبيل المثال، النص Script التالي (يفترض أن يكون طفلاً مباشرًا للهيكل) يقوم بتحميل رسوم متحركة "ركلة" وتشغيلها.
Script - تشغيل رسوم متحركة مخصصة على هيكل الشخصية
local rig = script.Parent
-- أنشئ مثيل جديد "Animation" وكلف معرف الأصل للرسوم المتحركة
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- أنشئ "AnimationController" جديد و "Animator"
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- قم بتحميل الرسوم المتحركة على المحاكي
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- إذا تم تعريف حدث مسمى للرسوم المتحركة، قم بتوصيله بـ "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- تشغيل مسار الرسوم المتحركة
kickAnimationTrack:Play()
استبدال الرسوم المتحركة الافتراضية
بشكل افتراضي، تتضمن شخصيات اللاعبين في روبلوكس رسوم متحركة شائعة مثل الجري، التسلق، السباحة، والقفز. يمكنك استبدال هذه الرسوم المتحركة الافتراضية برسوم متحركة من الفهرس أو برسوم متحركة مخصصة لديك.
احصل على معرف الأصل للرسوم المتحركة الجديدة كما يلي:
- بالنسبة للرسوم المتحركة المخصصة التي تم إنشاؤها باستخدام محرر الرسوم المتحركة، اتبع تعليمات التصدير.
- انسخ معرفًا مناسبًا من مرجع الرسوم المتحركة في الفهرس أدناه. على سبيل المثال، لاستبدال رسوم متحركة الجري الافتراضية مع النسخة نينجا رن، استخدم 656118852.
في النص الجديد، الصق الشيفرة التالية:
Script - استبدال الرسوم المتحركة الافتراضية للشخصيةlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- الحصول على المحاكي داخل الكائن الشبيه بالبشرlocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- إيقاف جميع مسارات الرسوم المتحركةfor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")--animateScript.run.RunAnim.AnimationId = "rbxassetid://"--animateScript.walk.WalkAnim.AnimationId = "rbxassetid://"--animateScript.jump.JumpAnim.AnimationId = "rbxassetid://"--animateScript.idle.Animation1.AnimationId = "rbxassetid://"--animateScript.idle.Animation2.AnimationId = "rbxassetid://"--animateScript.fall.FallAnim.AnimationId = "rbxassetid://"--animateScript.swim.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.climb.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)لكل سطر يشير إلى رسوم متحركة افتراضية للشخصية، قم بإلغاء تعليقها والصق معرف الاستبدال بعد rbxassetid://. على سبيل المثال، لتغيير رسوم متحركة الجري الافتراضية إلى النسخة نينجا رن:
Script - استبدال الرسوم المتحركة الافتراضية للشخصيةlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- الحصول على المحاكي داخل الكائن الشبيه بالبشرlocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- إيقاف جميع مسارات الرسوم المتحركةfor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")animateScript.run.RunAnim.AnimationId = "rbxassetid://656118852"--animateScript.walk.WalkAnim.AnimationId = "rbxassetid://"--animateScript.jump.JumpAnim.AnimationId = "rbxassetid://"--animateScript.idle.Animation1.AnimationId = "rbxassetid://"--animateScript.idle.Animation2.AnimationId = "rbxassetid://"--animateScript.fall.FallAnim.AnimationId = "rbxassetid://"--animateScript.swim.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.climb.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
تعيين أوزان الرسوم المتحركة
يمكنك استخدام رسوم متحركة متعددة لنفس الإجراء. على سبيل المثال، هناك نسختان من idle في عينة الشيفرة الخاصة بـ استبدال الرسوم المتحركة الافتراضية.
عندما توجد رسوم متحركة متعددة لحالة الشخصية، فإن النص Animate يختار عشوائيًا أي واحدة يتم تشغيلها، ولكن يمكنك التأثير على النتيجة عن طريق تعيين قيمة Weight الخاصة بالرسوم المتحركة تحت المعادلة التالية:
- وزن الرسوم المتحركة / الوزن الإجمالي لجميع الرسوم المتحركة في الحالة
في المثال التالي، سيتم تشغيل idle.Animation1 بمعدل ⅓ عندما تكون الشخصية غير نشطة، بينما سيشغل idle.Animation2 بمعدل ⅔.
Script - استبدال الرسوم المتحركة الافتراضية للشخصيةanimateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"animateScript.idle.Animation1.Weight.Value = 5animateScript.idle.Animation2.Weight.Value = 10
مراجع الرسوم المتحركة
الرسوم المتحركة الافتراضية للشخصيات
تحتوي الجدول التالي على جميع الرسوم المتحركة الافتراضية للشخصيات التي يمكنك استبدالها برسوم متحركة من الفهرس أو رسوم متحركة مخصصة لديك. لاحظ أن Idle لها نسختان يمكنك تعيين وزنها لتشغيلها بشكل أكثر أو أقل تكرارًا.
| إجراء الشخصية | مرجع نص التشغيل |
| الجري | animateScript.run.RunAnim.AnimationId |
| المشي | animateScript.walk.WalkAnim.AnimationId |
| القفز | animateScript.jump.JumpAnim.AnimationId |
| الهدوء | animateScript.idle.Animation1.AnimationId |
| السقوط | animateScript.fall.FallAnim.AnimationId |
| السباحة | animateScript.swim.Swim.AnimationId |
| سباحة (هدوء) | animateScript.swimidle.SwimIdle.AnimationId |
| التسلق | animateScript.climb.ClimbAnim.AnimationId |
الرسوم المتحركة في الفهرس
عند استخدام حزم الرسوم المتحركة للشخصيات لاستبدال الرسوم المتحركة الافتراضية، استخدم المراجع التالية لمعرفات الأصول المعنية. على سبيل المثال، إذا كنت ترغب في تطبيق الرسوم المتحركة نينجا جمب، استخدم 656117878. لاحظ أن Idle لها نسخ متعددة.
| رجل الفضاء | الجري 891636393 المشي 891636393 القفز 891627522 الهدوء 891621366, 891633237, 1047759695 السقوط 891617961 السباحة 891639666 سباحة (هدوء) 891663592 التسلق 891609353 |
| تفاعلي | الجري 910025107 المشي 910034870 القفز 910016857 الهدوء 910004836, 910009958, 1018536639 السقوط 910001910 السباحة 910028158 سباحة (هدوء) 910030921 التسلق 909997997 |
| كرتوني | الجري 742638842 المشي 742640026 القفز 742637942 الهدوء 742637544, 742638445, 885477856 السقوط 742637151 السباحة 742639220 سباحة (هدوء) 742639812 التسلق 742636889 |
| عجوز | الجري 845386501 المشي 845403856 القفز 845398858 الهدوء 845397899, 845400520, 901160519 السقوط 845396048 السباحة 845401742 سباحة (هدوء) 845403127 التسلق 845392038 |
| فارس | الجري 657564596 المشي 657552124 القفز 658409194 الهدوء 657595757, 657568135, 885499184 السقوط 657600338 السباحة 657560551 سباحة (هدوء) 657557095 التسلق 658360781 |
| تعويم | الجري 616010382 المشي 616013216 القفز 616008936 الهدوء 616006778, 616008087, 886862142 السقوط 616005863 السباحة 616011509 سباحة (هدوء) 616012453 التسلق 616003713 |
| ساحر | الجري 707861613 المشي 707897309 القفز 707853694 الهدوء 707742142, 707855907, 885508740 السقوط 707829716 السباحة 707876443 سباحة (هدوء) 707894699 التسلق 707826056 |
| نينجا | الجري 656118852 المشي 656121766 القفز 656117878 الهدوء 656117400, 656118341, 886742569 السقوط 656115606 السباحة 656119721 سباحة (هدوء) 656121397 التسلق 656114359 |
| قرصان | الجري 750783738 المشي 750785693 القفز 750782230 الهدوء 750781874, 750782770, 885515365 السقوط 750780242 السباحة 750784579 سباحة (هدوء) 750785176 التسلق 750779899 |
| روبوت | الجري 616091570 المشي 616095330 القفز 616090535 الهدوء 616088211, 616089559, 885531463 السقوط 616087089 السباحة 616092998 سباحة (هدوء) 616094091 التسلق 616086039 |
| Rthro | الجري 2510198475 المشي 2510202577 القفز 2510197830 الهدوء 2510197257, 2510196951, 3711062489 السقوط 2510195892 السباحة 2510199791 سباحة (هدوء) 2510201162 التسلق 2510192778 |
| الأنيق | الجري 616140816 المشي 616146177 القفز 616139451 الهدوء 616136790, 616138447, 886888594 السقوط 616134815 السباحة 616143378 سباحة (هدوء) 616144772 التسلق 616133594 |
| بطل خارق | الجري 616117076 المشي 616122287 القفز 616115533 الهدوء 616111295, 616113536, 885535855 السقوط 616108001 السباحة 616119360 سباحة (هدوء) 616120861 التسلق 616104706 |
| لعبه | الجري 782842708 المشي 782843345 القفز 782847020 الهدوء 782841498, 782845736, 980952228 السقوط 782846423 السباحة 782844582 سباحة (هدوء) 782845186 التسلق 782843869 |
| مصاص الدماء | الجري 1083462077 المشي 1083473930 القفز 1083455352 الهدوء 1083445855, 1083450166, 1088037547 السقوط 1083443587 السباحة 1083464683 سباحة (هدوء) 1083467779 التسلق 1083439238 |
| ذئب | الجري 1083216690 المشي 1083178339 القفز 1083218792 الهدوء 1083195517, 1083214717, 1099492820 السقوط 1083189019 السباحة 1083222527 سباحة (هدوء) 1083225406 التسلق 1083182000 |
| زومبي | الجري 616163682 المشي 616168032 القفز 616161997 الهدوء 616158929, 616160636, 885545458 السقوط 616157476 السباحة 616165109 سباحة (هدوء) 616166655 التسلق 616156119 |