حروف عربية ناقصة: حل نقص المحارف في الخطوط العربية

 تصميم تجارب وواجهات الألعاب يعتبر من الخطوات المفصلية في تطوير الألعاب، فمهما كانت الواجهة بسيطة، فهي تتطلب على الأقل نصوصًا وأزرار. لكن نظرًا لانعدام دعم اللغة العربية في محرك Unity، ومحدودية الخطوط المتاحة للعربية، من الشائع استثقال إضافة ألعاب باللغة العربية. في اثنين من ألعابنا، وجدنا خطًا مثاليًا للعبة، خطًا ثنائي اللغة (عربي وإنجليزي)، واضحًا، متعدد الأوزان، ومجانيًا للاستخدام الشخصي والتجاري، ممتاز. لكن واجهنا مشكلة حروف عربية ناقصة. أو بالأحرى، محارف عربية ناقصة.

مررنا بالمشاكل التالية: (1) بعض أوزان الخط تفتقر لبعض المحارف، (2) أخبرَنا Unity عن افتقار الخط لما يقارب المئتي محرف، وأعطانا قائمة مفصلة بها، ورغم كفاءة الخط وعمله في برامج أخرى، لكن علينا تصديقه فيما يقول.

بعد إصرار مصممينا على الخطوط، توصلنا لتعويض حروف عربية ناقصة إن وجدت، وهاهنا نعرضه عليكم.

بعض الملاحظات:
  • استخدمنا رسالة محرك Unity للتعرف على المحارف أو الحروف العربية الناقصة، قد تختلف صيغة أو طريقة التعرف عليها بناءً على مشروعك.
  • تأكد أن رخصة الخط الذي تستخدمه تسمح لك بتعديل الخط (modification).
  • هنا نستخدم برنامج FontForge لتعديل الخط، اضغط على الرابط للوصول إلى صفحته.
  • جرب وتعلم، وتذكر أن تحفظ نسخة احتياطية في حال لم تنجح تجربتك.
  • المقالة تتطرق إلى حل مشاكل معينة، وليس شرحًا مفصلًا عن أحد البرامج المذكورة.

الخطوة الأولى: تشخيص المحارف الناقصة

ما المشكلة التي واجهتك؟ وكيف علمت بها؟ وهل جربت أكثر من برنامج؟

على سبيل المثال، جربنا الخط في “Microsoft Word”، و “Adobe Illustrator”، و “Figma”، و “Unity”. المثير للاهتمام أن الأول عمل بمثالية، ويبدو أنه مزود بتقنية تعوض عن نقص بعض المحارف البسيطة.

في الثاني والثالث، لاحظنا مشكلة في المحارف (ـج) (ـح) (ـخ)، وهي أنها موجودة في الوزن العادي للخط، وفي الأوزان الأخرى يستخدم الوزن العادي لهذه المحارف.

أما في الرابع، حصلنا على قائمة ملخصها أن معظم المحارف العربية مفقودة، غريب، لكن يبدو أنه خطأ يمكن تداركه بما أن المحارف العربية موجودة بشكل شبه كامل في البرامج الأخرى.

مقطع من القائمة المقدمة من Unity:

Pasted Graphic.png
[صورة (1): قائمة المحارف الناقصة من Unity Engine، تم فتحها ببرنامج TextEdit]

تفيدنا القائمة في معرفة رموز وأرقام تعريف المحارف الناقصة، ويمكنك البحث عن الرموز والأرقام في محركات البحث لو لم تكن واضحة.

الخطوة الثانية: تحديد موقع المحارف الناقصة

افتح الخط في برنامج FontForge. ستجد شبكة من المحارف، الآلاف منها، وهنا يكمن دور أرقام التعريف (ID)، في الصورة السابقة نجد أن أرقام تعريف المحارف تقع في مدى 64000، هذا يعني أنها تقع آخر الشبكة، انزل للأسفل حتى تصل إليها.

لمعرفة أرقام ورموز المحارف في الشبكة، انقر على المحرف مرة واحدة، وانظر للجزء الأعلى الأيسر من النافذة.

Pasted Graphic 2.png
[صورة (2): المحرف (1573) في واجهة FontForge]

الرقم الأول من اليسار هو (ID)، وهو في العادة ما نعتمد عليه لأن Unity يعطينا إياه. نلاحظ أيضًا أن FontForge يرينا شكل المحرف، وبذلك يمكنك معرفة ماهية المحرف بطريقة مرئية سهلة.

بذلك عرفنا مواقع وهويات المحارف الناقصة أو المختلة، كيف نحلها؟

الخطوة الثالثة: تعويض المحارف الناقصة

سنشرح ثلاثة حلول لثلاث مشاكل.

المشكلة الأولى: محرف موجود، لكنه في غير محله

هنا تكمن المشكلة في وجود المحرف في غير محله، لكن المفرح في الأمر هنا أننا عند البحث في الملف، سنجد المحرف تحت رقم تعريفي آخر، وهذا يعني أن الحل هو نسخ ولصق المحرف دون أي مشاكل.

فلنأخذ مثالًا بسيطًا، في قائمة المحارف الناقصة سنأخذ المحرف رقم (65159)، وهو (إ):

Pasted Graphic 3.png
[صورة (3): المحرف (65159) من قائمة المحارف الناقصة من Unity Engine، تم فتحها ببرنامج TextEdit]

عند النظر إلى محل هذا المحرف في FontForge، نجده فارغًا:

Pasted Graphic 4.png
[صورة (4): المحرف (65159) في واجهة FontForge]

لكن لحسن حظنا، عند البحث في الملف نجده تحت رقم تعريفي آخر، وهو (1573):

Pasted Graphic 5.png
[صورة (5): المحرف (1573) في واجهة FontForge]

بكل بساطة، سنضغط على محرف (1573)، ننسخه عن طريق قائمة الزر الأيمن أو [Ctrl+C] [Cmd+C] ثم نذهب إلى (65159) ونلصقه عن طريق قائمة الزر الأيمن أو [Ctrl+V] [Cmd+V].

ملاحظة: لتسهيل عملية النسخ واللصق، افتح الملف في نافذتين للتنقل أسرع بين الحروف الموجودة والناقصة.

المشكلة الثانية: محرف ناقص، لكن مكوناته موجودة

كما ذكرنا بدايةً، افتقرنا إلى محارف (ـج) (ـح) (ـخ) في جميع الأوزان عدا العادي:

Pasted Graphic 6.png
[صورة (6): محارف (ـج) (ﭻ) (ـح) (ـخ) في واجهة FontForge]

ما معنى أن تكون المكونات موجودة؟ فلنفتح أحد هذه المحارف، (ـح):

Pasted Graphic 7.png
[صورة (7): محرف (ـح) في واجهة FontForge]

يتكون المحرف من مكونين رئيسيين، الأول هو جزء الوصل، والثاني هو الحرف المنعزل. كلا المكونان موجودان في المحارف المتوفرة، الأول موجود في بداية محرف (ـحـ)، والثاني هو (ح).

Pasted_Image_07_12_2023__00_16.png
[صورة (8): محرف (ـحـ) في واجهة FontForge]
Pasted Graphic 8.png
[صورة (9): محرف (ح) في واجهة FontForge]

ملاحظة: تأكد أنك تنسخ المكونات المطلوبة بمفردها دون نقاط الارتكاز (النجوم الزرقاء)، ودون تغيير موقع خط الطول الأيمن. في محرف (ـح)، خط الطول يقع في النقطة (658)، يجب ألا يتغير، تأكد منه أكثر من مرة.

المشكلة الثالثة: محرف ناقص، ومكوناته غير موجودة

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

قد يكون الحل بسيطًا كتحليل المحرف وتركيب مكونات من محارف موجودة، أو معقدًا حيث تحتاج مصممًا ليرسم لك المحرف أو أجزاءً ناقصةً منه. هنا تكمن أهمية انتقاء الخط ومصدره، فالخطوط ذات الجودة العالية والمعتمدة، توفر لك العديد من المحارف المعقدة التي يمكنك استخدامها بطريقة أو بأخرى لسد الخلل إن وجد.

ملاحظة: تأكد من حفظ الملف لألا يضيع عملك.

الخطوة الرابعة: تصدير الخط

لتصدير الخط واستعماله، اتبع هذه الخطوات:

  1. من قائمة [File]، اختر [Generate Fonts].
  2. اختر المجلد المراد حفظه فيه، وسمِّ الملف.
  3. من قائمة الصيغ، اختر [TrueType] (انظر للصورة أدناه).
  4. اضغط على [Generate].
  5. جرب الخط على Unity (أو البرنامج الذي تستخدمه).

ملاحظة: قد تظهر نوافذ منبثقة عن مشاكل في التصدير، جرب تجاوزها ثم جرب استخدام الخط مبدئيًا للتأكد من عمله بطريقة سليمة.

Pasted_Image_07_12_2023__15_30.png
[صورة (10): نافذة تصدير الخط في واجهة FontForge]

خاتمة

انعدام، أو قلة، دعم الخطوط العربية تؤدي لاستثقال إضافة اللغة العربية، ويبدو أن من أبرزها هي وجود حروف عربية ناقصة في العديد من الخطوط. نتمنى أن تكون هذه المقالة سببًا في حل جزءٍ من هذه المشاكل. ولو كنت مهتمًا في معرفة المزيد عن تطوير الألعاب وأدوار المطورين المختلفة، يمكنك التعرف على بعضها في مقالنا عن الأدوار المختلفة والمتنوعة في عملية تطوير الألعاب الإلكترونية.