يستخدم اللاعبون بالفعل لقطات الشاشة لتخليد اللحظات الممتعة في التجارب. تتيح وحدة SelfieMode وحدة المطور للاعبين التقاط ذكرى أنظف لتلك اللحظة بدون نافذة الدردشة أو قائمة اللاعبين، مع دعم تأثيرات الفلتر، وإخفاء الشخصيات الأخرى، والتقاط الصور.
استخدام الوحدة
التثبيت
لاستخدام وحدة SelfieMode في تجربة:
من قائمة Window في الاستوديو أو شريط أدوات التبويب Home، افتح Toolbox واختر تبويب Creator Store.

تأكد من اختيار فرز Models، ثم انقر على زر See All ل Categories.

حدد موقع وانقر على بلاط Packages.
حدد موقع وحدة Selfie Mode وانقر عليها، أو اسحبها وأفلتها في العرض ثلاثي الأبعاد.

في نافذة Explorer، انقل حزمة SelfieMode بالكامل إلى ReplicatedStorage. عند تشغيل التجربة، ستبدأ الوحدة في العمل.
التكوين
تم إعداد الوحدة مسبقًا لتعمل مع معظم حالات الاستخدام، ولكن يمكنك تخصيصها بسهولة من خلال وظيفة configure.
في StarterPlayerScripts، أنشئ LocalScript جديدًا وأعد تسميته إلى ConfigureSelfieMode.
ألصق الكود التالي في السكربت الجديد.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
حركة الشخصية
قد يكون من المفيد منع شخصية اللاعب من الحركة أثناء وضع السيلفي. يمكنك تحقيق ذلك عن طريق ضبط disableCharacterMovement على true في استدعاء configure.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
إجراءات وضع السيلفي
تأتي SelfieMode مع إجراءات التالية، كل منها يمكنك استخدامه مع الوظائف activateAction، deactivateAction، وtoggleAction، أو اكتشافه من خلال الأحداث actionActivated وactionDeactivated.
عمق الميدان
بشكل افتراضي، تعرض SelfieMode تأثير العمق-الميداني العام (تشويش خفيف للخلفية) عندما يقوم اللاعب بالتبديل إلى الإجراء.

لتغيير تأثير العمق-الميداني الافتراضي، قم بضبط depthOfFieldEffect على مثالك الخاص من نوع DepthOfFieldEffect في استدعاء configure.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local customDepthOfField = Instance.new("DepthOfFieldEffect")customDepthOfField.NearIntensity = 0customDepthOfField.FarIntensity = 1customDepthOfField.FocusDistance = 5customDepthOfField.InFocusRadius = 5SelfieMode.configure({depthOfFieldEffect = customDepthOfField})
تثبيت النظرة
يتسبب مفتاح تثبيت النظرة في جعل شخصية اللاعب تنظر إلى الكاميرا أثناء إعداد وضع السيلفي، ضمن نطاق واقعي لمدى دوران رقبتها.
إخفاء الآخرين
بشكل افتراضي، تكون الشخصيات الأخرى مرئية بجانب شخصية اللاعب. يمكن للاعبين الحصول على لقطة مثالية بمفردهم من خلال النقر على زر إخفاء الآخرين. عند تفعيلها، تتلاشى الشخصيات الأخرى من العرض وتبقى غير مرئية حتى يتم إيقاف الإجراء.
فلتر
يتيح إجراء الفلتر للاعب تطبيق فلتر مسبق من الخيارات Pop، Soft، Antique، Cute، Dramatic، وMonochrome.

وضع
يتيح إجراء الوضع للاعب اختيار وضع مسبق من الخيارات Cheer، Clapping، Dolphin، Flossing، Guitar، Jump Wave، Louder، Top Rock، Twirl، وWave.

مرجع API
الأنواع
الإجراء
يمثل كل إجراء قاموسًا مع أزواج المفاتيح والقيم التالية:
| المفتاح | النوع | الوصف |
|---|---|---|
| name | string | اسم الإجراء، يظهر أولاً في النصوص التوضيحية. |
| description | string | وصف الإجراء، يظهر بعد name في النصوص التوضيحية. |
| icon | string | ID المورد لأيقونة الإجراء. |
| activeIcon | string | ID المورد لأيقونة الإجراء في حالة "نشطة". يمكن استخدامه فقط على الإجراءات الأصلية، وليس الإجراءات الفرعية. |
| actions | table | قائمة فرعية اختيارية من الإجراءات. يتيح لك ذلك إنشاء قوائم فرعية من إجراءات أخرى مختلفة. |
| parent | Action | الأصل الخاص بالإجراء؛ هذا ينطبق فقط على إجراء فرعي ويشير إلى الإجراء الذي يحتوي عليه. |
| onActivated | function | وظيفة استدعاء اختيارية تعمل عندما ينشط اللاعب إجراء أو إجراء فرعي. عادةً، إذا كان الإجراء يحتوي على إجراءات فرعية، فسيتعين على هذه الأخيرة فقط تعريف استدعاء كوسيلة لمعرفة أن اللاعب قد فعل الإجراء الفرعي ولم يقتصر الأمر على "توسيع" الإجراء الأصلي. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)
الأنماط
SelfieMode.Action
تأتي SelfieMode مع عدة إجراءات. يمكنك استخدام هذا النمط مع الوظائف activateAction، deactivateAction، وtoggleAction.
| الاسم | الملخص |
|---|---|
| DepthOfField | مرجع إلى الإجراء Depth‑of‑Field. |
| LockGaze | مرجع إلى الإجراء Lock Gaze. |
| HideOthers | مرجع إلى الإجراء Hide Others. |
| Filter | مرجع إلى الإجراء Filter. |
| Pose | مرجع إلى الإجراء Pose. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- تفعيل إجراء "فلتر"SelfieMode.activateAction(SelfieMode.Action.Filter)
الوظائف
configure
configure(config: table)
يتجاوز خيارات التكوين الافتراضية من خلال المفاتيح/القيم التالية في جدول config. لا يمكن استدعاء هذه الوظيفة إلا من LocalScript.
| المفتاح | الوصف | الافتراضي |
|---|---|---|
| disableCharacterMovement | إذا كان true، يمنع الشخصية من الحركة أثناء فتح وضع السيلفي. | false |
| depthOfFieldEffect | مثيل اختيارى مخصص من DepthOfFieldEffect يظهر عندما يقوم اللاعب بالتبديل إلى إجراء Depth of Field. |
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
openSelfieMode
openSelfieMode()
عادةً ما يفتح اللاعب وضع السيلفي من خلال زر "الكاميرا" على الجانب الأيمن من الشاشة، ولكن هذه الوظيفة تتيح لك فتحه من خلال الكود. عند تنفيذ زر مخصص كما هو موضح أدناه، يجب عليك تعطيل الزر الافتراضي من خلال setHudButtonEnabled. لا يمكن استدعاء هذه الوظيفة إلا من LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- إزالة الزر الافتراضي
SelfieMode.setHudButtonEnabled(false)
-- توصيل الزر المخصص
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
closeSelfieMode
closeSelfieMode()
عادةً ما يغلق اللاعب وضع السيلفي من خلال زر ⊗ في أسفل الشاشة، ولكن هذه الوظيفة تتيح لك إغلاقه من خلال الكود. لا يمكن استدعاؤها إلا من LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.closeSelfieMode()
isSelfieModeOpen
isSelfieModeOpen(): boolean
يعيد true إذا كان وضع السيلفي مفتوحًا نتيجة لإجراء اللاعب أو من خلال openSelfieMode. لا يمكن استدعاؤها إلا من LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.openSelfieMode()print(SelfieMode.isSelfieModeOpen())
setHudButtonEnabled
setHudButtonEnabled()
يحدد ما إذا كان الزر الافتراضي للدخول إلى وضع السيلفي ظاهرًا. مفيد عند تنفيذ openSelfieMode من خلال زر واجهة مستخدم مخصص. لا يمكن استدعاؤها إلا من LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- إزالة الزر الافتراضي
SelfieMode.setHudButtonEnabled(false)
-- توصيل الزر المخصص
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
getAction
getAction(action: SelfieMode.Action): Action
يحصل على نوع Action من خلال SelfieMode.Action enum.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)
activateAction
activateAction(action: SelfieMode.Action)
ينشط برمجيًا أحد الإجراءات الافتراضية الأعمال. هذا هو نفس الحالة عندما يقوم اللاعب بتبديل الإجراء من شريط الإجراءات. لا يمكن استدعاؤها إلا من LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- تفعيل إجراء "فلتر"SelfieMode.activateAction(SelfieMode.Action.Filter)
deactivateAction
deactivateAction(action: SelfieMode.Action)
يقوم بإلغاء تنشيط أحد الإجراءات الافتراضية الأعمال برمجيًا. هذا هو نفس الحالة عندما يقوم اللاعب بإيقاف الإجراء من شريط الإجراءات. لا يمكن استدعاؤها إلا من LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- إلغاء تفعيل إجراء "فلتر"SelfieMode.deactivateAction(SelfieMode.Action.Filter)
toggleAction
toggleAction(action: SelfieMode.Action): boolean
يقوم بتبديل إجراء على إذا كان مطفأ، أو يقوم بإيقاف تشغيله إذا كان قيد التشغيل. هذا هو نفس الحالة عندما ينقر اللاعب على الإجراء من شريط الإجراءات. يعيد الحالة الجديدة "يتم تبديله على" كقيمة منطقية. لا يمكن استدعاؤها إلا من LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)local isEnabled = SelfieMode.toggleAction(lockGazeAction)if isEnabled thenprint("تم التنشيط", lockGazeAction.name)elseprint("تم إلغاء التنشيط", lockGazeAction.name)end
setTheme
setTheme(theme: table)
يقوم بتكوين موضوع وضع السيلفي، بما في ذلك حجم النص، الخط، ألوان الزر/النص التوضيحي، والمزيد. لا يمكن استدعاؤها إلا من LocalScript.
| المفتاح | الوصف | الافتراضي |
|---|---|---|
| textSize | حجم جميع النصوص. | 16 |
| font | الخط المستخدم عبر جميع واجهة المستخدم (Enum.Font). | GothamMedium |
| padding | الحشوة الأساسية المستخدمة لترتيب عناصر واجهة المستخدم (UDim). | (0, 12) |
| paddingSmall | حشوة أصغر تستخدم لتطبيق هوامش خفيفة بين العناصر (UDim). | (0, 6) |
| paddingScreen | الحشوة المستخدمة حول حواف الشاشة لمنح وضع السيلفي بعض مساحة التنفس (UDim). | (0, 24) |
| backgroundColor | لون الخلفية المستخدم للشريط الذي يعرض الإجراءات (Color3). | [0, 0, 0] |
| scrollBarColor | لون شريط التمرير المستخدم في عناصر ScrollingFrame الخاصة بالوحدة (Color3). | [255, 255, 255] |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.setTheme({textSize = 20,font = Enum.Font.Michroma,backgroundColor = Color3.fromRGB(0, 40, 75),})
setEnabled
setEnabled(isEnabled: boolean)
يحدد ما إذا كان وضع السيلفي مفعلًا أم لا. عند التعطيل، تتم إزالة جميع واجهات المستخدم للوحدة ويتم فصل جميع الأحداث. لا يمكن استدعاؤها إلا من LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.setEnabled(false)
الأحداث
selfieModeOpened
يتم إطلاقه عندما يفتح اللاعب وضع السيلفي أو عندما يتم استدعاء openSelfieMode. لا يمكن توصيل هذا الحدث إلا في LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeOpened:Connect(function()
print("وضع السيلفي مفتوح")
end)
selfieModeClosed
يتم إطلاقه عندما يغلق اللاعب وضع السيلفي أو عندما يتم استدعاء closeSelfieMode. لا يمكن توصيل هذا الحدث إلا في LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeClosed:Connect(function()
print("وضع السيلفي مغلق")
end)
actionActivated
| المعلمات | |
|---|---|
| action: SelfieMode.Action | الإجراء الذي تم تفعيله Action. |
يتم إطلاقه عندما يتم تفعيل إجراء؛ قد يكون هذا أحد الإجراءات الرئيسية مثل Depth of Field، Lock Gaze، أو Hide Others؛ بدلاً من ذلك، قد يكون إجراء فرعي مثل فلتر أو وضع. تتلقى الوظيفة المتصلة الإجراء المActivated Action. لا يمكن توصيل هذا الحدث إلا في LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "تم تفعيله")
end)
actionDeactivated
| المعلمات | |
|---|---|
| action: SelfieMode.Action | الإجراء الذي تم إلغاء تفعيله Action. |
يتم إطلاقه عندما يتم إلغاء تنشيط إجراء رئيسي أو فرعي. تتلقى الوظيفة المتصلة الإجراء المActivated Action. لا يمكن توصيل هذا الحدث إلا في LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "تم إلغاء تفعيله")
end)
filterChanged
يتم إطلاقه عندما يتم تطبيق فلتر أو إزالته. تتلقى الوظيفة المتصلة اسم الفلتر الجديد واسم الفلتر القديم. لا يمكن توصيل هذا الحدث إلا في LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("تم تغيير الفلتر من", oldFilter, "إلى", newFilter)
end)
poseChanged
يتم إطلاقه عندما يتم تطبيق وضع أو إزالته. تتلقى الوظيفة المتصلة اسم الوضع الجديد واسم الوضع القديم. لا يمكن توصيل هذا الحدث إلا في LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("تم تغيير الوضع من", oldPose, "إلى", newPose)
end)