Skip to content

مرجع صيغة الحلقة ​

كل مفاتيح episode.yaml، مولّدة من الـ schema الذي يتحقق منها (episodeJsonSchema() في packages/core/src/jsonschema.ts). الكائنات صارمة: أي مفتاح غير معروف يعطي الخطأ V-1 مع اقتراح «did you mean». ويكتب الأمر reelforge schema الـ schema نفسه بصيغة JSON للإكمال التلقائي في المحرر.

النوع time هو تعبير زمن: 12.5s وl7 وl7.end وl7:'word' وl7:'word'#2 وl7.3 و@scene و@scene.end، مع إزاحة اختيارية مثل +0.4. راجع كتابة الحلقات للأمثلة ومرجع المكوّنات لخصائص props.

ملاحظة: هذه الصفحة مولّدة من الكود. العناوين والشرح بالعربية، أما الأوصاف داخل الجداول فتُقرأ من الكود وتبقى بالإنجليزية.

هوية الحلقة: meta ​

المفتاحالنوعالافتراضيإلزاميالقيودالوصف
metaobjectنعمهوية الحلقة ونصوص النشر
meta.idstringنعمpattern ^[a-z0-9][a-z0-9_-]*$معرّف الحلقة (اسم المجلد)
meta.seriesstring""اسم السلسلة الظاهر في الترويسة
meta.titlestring""عنوان الحلقة
meta.episodeinteger1≥ 1رقم الحلقة في الترويسة
meta.presetstring"tiktok"تخطيط المنصة: tiktok أو reels أو shorts أو preset خاص بك
meta.themestring"default"اسم ثيم في themes/ أو مسار نسبي
meta.langstring"ar-EG"لغة التعليق الصوتي، مثل en-US (من اليسار إلى اليمين) أو ar-EG (من اليمين إلى اليسار)
meta.publishobjectنصوص تُكتب في out/publish.md
meta.publish.coverstringنص الغلاف القصير
meta.publish.captionstringنص المنشور
meta.publish.hashtagsstring[][]الوسوم
meta.publish.pinnedstringالتعليق المثبّت

الصوت: audio ​

المفتاحالنوعالافتراضيإلزاميالقيودالوصف
audioobject{}الصوت والمؤثرات والمعالجة
audio.voicestring"voice.wav"ملف التسجيل الصوتي نسبةً إلى مجلد الحلقة
audio.sfxauto | none | manual"auto"auto: تشغّل المكوّنات أصواتها الافتراضية؛ manual: الأصوات المذكورة صراحةً فقط
audio.sfx_gain_dbnumber-16≥ -60, ≤ 12مستوى المؤثرات بالديسيبل
audio.duckbooleantrueخفض المؤثرات تحت الصوت
audio.denoisebooleanfalseإزالة الضجيج من التسجيل (RNNoise)
audio.extraobject[][]أصوات إضافية في أزمنة محددة
audio.extra[].attimeنعم
audio.extra[].soundwhoosh | hit | ding | err | glitch | tick | tap | typingنعم
audio.extra[].gain_dbnumber

النص: script ​

المفتاحالنوعالافتراضيإلزاميالقيودالوصف
scriptobject[]نعمmin 1 itemsالأسطر المنطوقة؛ المعرّفات الافتراضية l1 وl2…
script[].idstringpattern ^[A-Za-z_][A-Za-z0-9_]*$معرّف السطر في تعابير الزمن
script[].textstringنعمما تقوله، جملة واحدة
script[].captionstring"auto"auto أو none أو نص مخصص للترجمة النصية
script[].breakstring[][]فرض سطر جديد في الترجمة النصية قبل هذه الكلمات

الفصول: chapters ​

المفتاحالنوعالافتراضيإلزاميالقيودالوصف
chaptersobject[][]عناوين الفصول في شريط التقدم وpublish.md
chapters[].attimeنعم
chapters[].labelstringنعم

المشاهد: scenes ​

المفتاحالنوعالافتراضيإلزاميالقيودالوصف
scenesobject[]نعمmin 1 itemsالمشاهد بالترتيب؛ يبدأ كل مشهد عند زمن وينتهي حيث يبدأ التالي
scenes[].idstringنعمpattern ^[A-Za-z_][A-Za-z0-9_]*$
scenes[].attimeنعمزمن البداية (غالباً سطر مثل l3)
scenes[].endtimeزمن النهاية (افتراضياً بداية المشهد التالي)
scenes[].glowstring | object[]لون التوهج في الخلفية أو قائمة ألوان بأزمنة
scenes[].glow[].attimeنعم
scenes[].glow[].colorstringنعم
scenes[].transitioncrossfade | cut | slide-up | zoom | push | blur"crossfade"كيف يحل المشهد محل سابقه
scenes[].camerastill | drift | push-in | pull-out"still"حركة كاميرا بطيئة واحدة طوال المشهد
scenes[].layoutstage | full"stage"stage (بين الترويسة والترجمة النصية) أو full (الإطار كاملاً)
scenes[].rowobjectترتيب العناصر أفقياً
scenes[].row.gapinteger≥ 0
scenes[].row.alignstart | center | end
scenes[].row.xinteger
scenes[].row.yinteger
scenes[].row.winteger> 0
scenes[].row.hinteger> 0
scenes[].columnobjectترتيب العناصر عمودياً
scenes[].column.gapinteger≥ 0
scenes[].column.alignstart | center | end
scenes[].column.xinteger
scenes[].column.yinteger
scenes[].column.winteger> 0
scenes[].column.hinteger> 0
scenes[].columnsinteger≥ 1, ≤ 6تقسيم المسرح إلى أعمدة (يختار العنصر عموده بـ col)
scenes[].gutterinteger≥ 0

العناصر: scenes[].elements ​

المفتاحالنوعالافتراضيإلزاميالقيودالوصف
scenes[].elementsobject[][]المكوّنات المعروضة في المشهد
scenes[].elements[].usestringنعماسم المكوّن (راجع مرجع المكوّنات)
scenes[].elements[].idstringpattern ^[A-Za-z_][A-Za-z0-9_-]*$معرّف العنصر (للأسهم والحالات والمحرر)
scenes[].elements[].propsmap{}خصائص المكوّن؛ صارمة لكل مكوّن
scenes[].elements[].placeobjectالصندوق بإحداثيات المسرح (1080 × 1000)
scenes[].elements[].place.xinteger
scenes[].elements[].place.yinteger
scenes[].elements[].place.winteger> 0
scenes[].elements[].place.hinteger> 0
scenes[].elements[].place.centerboolean
scenes[].elements[].place.anchortop | bottom | center | left | right
scenes[].elements[].place.margininteger
scenes[].elements[].sizeobjectالحجم داخل row أو column
scenes[].elements[].size.winteger> 0
scenes[].elements[].size.hinteger> 0
scenes[].elements[].colinteger≥ 0
scenes[].elements[].layerbase | overlayالطبقة overlay تُرسم فوق كل شيء وتُستثنى من قاعدة التداخل (V-8)
scenes[].elements[].zinteger
scenes[].elements[].enterobjectمتى وكيف يظهر العنصر
scenes[].elements[].enter.attimeزمن الدخول، والأفضل على كلمة: "l3:'bucket'"
scenes[].elements[].enter.animpop | rise | slide-l | slide-r | fade | draw | type | count | flip | glitch | stamp | zoom | blur | wipe | spring | drop | reveal | noneحركة الدخول
scenes[].elements[].enter.durnumber> 0
scenes[].elements[].enter.easesmooth | snappy | gentle | linearمنحنى التسارع
scenes[].elements[].enter.s0number
scenes[].elements[].enter.dynumber
scenes[].elements[].enter.distnumber
scenes[].elements[].enter.cpsnumber> 0
scenes[].elements[].enter.caretboolean
scenes[].elements[].enter.rotnumber
scenes[].elements[].enter.ampnumber
scenes[].elements[].exitobjectمتى وكيف يختفي العنصر
scenes[].elements[].exit.attimeنعم
scenes[].elements[].exit.animfade | pop | rise | sink | slide-l | slide-r | zoom | blur | wipe | none
scenes[].elements[].exit.durnumber> 0
scenes[].elements[].statesobject[][]تغييرات الخصائص عبر الزمن
scenes[].elements[].states[].attimeنعم
scenes[].elements[].states[].setmapنعم
scenes[].elements[].fxobject[][]مؤثرات: اهتزاز، وميض، تشويش، نبض، ارتداد
scenes[].elements[].fx[].attimeنعم
scenes[].elements[].fx[].doshake | flash | glitch | pulse | bumpنعم
scenes[].elements[].fx[].ampnumber
scenes[].elements[].fx[].durnumber> 0
scenes[].elements[].fx[].colorstring
scenes[].elements[].fx[].ratenumber> 0
scenes[].elements[].fx[].targetself | camera
scenes[].elements[].fx[].soundwhoosh | hit | ding | err | glitch | tick | tap | typing | none
scenes[].elements[].sfxauto | none | object[]"auto"none أو قائمة أصوات بأزمنة
scenes[].elements[].sfx[].attimeنعم
scenes[].elements[].sfx[].soundwhoosh | hit | ding | err | glitch | tick | tap | typingنعم
scenes[].elements[].sfx[].gain_dbnumber