Unity Game Engine: إضافة تأثيرات صوتية إلى اللعبة
Unity 3D
يعد الصوت مفهومًا مثيرًا للاهتمام يجب تغطيته ، ليس فقط في تصميم اللعبة
ولكن عند دراسة طبيعته بشكل عام. تعتمد طريقة إدراكها على الكثير من العوامل ،
والتي يجب أن تؤخذ في الاعتبار عندما تحاول التحكم فيها أو استخدامها.
يتضمن إدراك الصوت عمومًا موضع المصدر ومدى سرعة تحركه
إذا كان يتحرك على الإطلاق (إذا درست الفيزياء ، فقد تكون على دراية بتأثير دوبلر).
في Unity ، يعد تحديد موضع مصدر الصوت أمرًا مهمًا لتوصيف مصدره.
على سبيل المثال ، نحتاج إلى التأكد من أن كائن gameObject يلعب صوت
شلال يتطابق مع كائن لعبة شلال حقيقي ، وأن إدراك اللاعب لهذا الصوت يبدو حقيقيًا.
يزداد الصوت مع اقتراب اللاعب ، مع التأكد من اختلاف تحريك الصوت مع تغير
الموضع النسبي للشلال فيما يتعلق بالمشغل ، وما إلى ذلك.
نحن نتعامل مع مكونين رئيسيين يتعلقان بـ Audio in Unity ، وهما:
- مستمع الصوت
- مصدر الصوت
دعونا نلقي نظرة على هذه المكونات.
مستمع الصوت
هذا مكون يتم توصيله تلقائيًا بالكاميرا الرئيسية في كل مرة تقوم فيها بإنشاء مشهد.
ليس لها أي خصائص ، لأن وظيفتها الوحيدة هي أن تكون بمثابة نقطة الإدراك .
يوصى بترك مستمع الصوت كما هو.
مصدر الصوت
هذا هو المكون المسؤول فعليًا عن تشغيل الصوت.
في ممارسة التطوير الشائعة ، من الجيد عمومًا إنشاء لعبة فارغة ككائن
يعمل كمصدر صوتي وجعله طفلاً عندما تتعامل مع هياكل كبيرة ومعقدة ،
لذلك لديك فكرة واضحة عن مكان مصدر الصوت.
يحتوي مكون مصدر الصوت على عدد غير قليل من الخصائص التي يمكننا تعديلها.
ويشمل ذلك على أرض الملعب ، بالغسل ، مزج المكاني (سوف نصل الى ذلك لاحقا)،
وإذا قمت بفتح إعدادات الصوت 3D ، وسوف تجد خيارات لإضافة دوبلر الآثار و rolloffs حجم .
ومع ذلك ، فإن أكثر ما يثير اهتمامنا هنا هو فتحة AudioClip .
هذا هو المكان الذي يذهب فيه المؤثر الصوتي الذي سيتم تشغيله تدعم Unity
عددًا غير قليل من تنسيقات الصوت الشائعة ، بما في ذلك .mp3 وما إلى ذلك .ogg.
إضافة المؤثرات الصوتية الخاصة بك على Unity
حتى يتم دعم المستندات الداعمة للصوت ، سيتعين علينا إنشاء المؤثرات الصوتية الخاصة بنا.
لقد صنعنا حزمة من زوج من المؤثرات الصوتية الصغيرة .
دعنا نستورد هذه المؤثرات الصوتية إلى مشروعنا عن طريق إنشاء مجلد جديد
للمؤثرات الصوتية وإضافة الأصوات إليه.
الآن ، نظرًا لأن الكاميرا الرئيسية بها بالفعل مستمع صوت ،
فكل ما يتعين علينا القيام به هو إضافة مصادر صوتية إلى كائنات gameObject ذات الصلة.
Unity 3D: إضافة مصدر صوتي
أولاً ، سيكون لدينا تأثير صوتي يتم تشغيله عندما تطلق شخصيتنا كرة نارية.
لذلك ، سنقوم ببساطة بإرفاق مصدر صوتي بجسم لعبة إطلاق النار الخاصة بشخصيتنا.
انتقل إلى إضافة مكون ← صوت ← مصدر صوت .
في فتحة AudioClip ، اسحب المؤثر الصوتي الذي تريد استخدامه.
إذا قمت بتنزيل حزمة الصوت ، فاسحب fire1.mp3 . الآن ، قم بإلغاء تحديد Play on Awake .
هذا يضمن عدم تشغيل هذا الصوت بمجرد تنبيه كائن gameObject ،
وهو في حالتنا بمجرد بدء اللعبة.
في المقال التعليمي Prefab Instantiation وجعلها تتحرك ،
أنشأنا فصلًا Shooter كان ينشئ كرة نارية جديدة في كل مرة يتم فيها ضرب Spacebar ،
فلنضيف صوتًا عند إطلاق كرة نارية جديدة.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Shooter : MonoBehaviour
{
public GameObject fireball;
private AudioSource source;
void Start()
{
source = GetComponent<AudioSource>();
}
void Update()
{
// When spacebar is hit
if(Input.GetKeyDown(KeyCode.Space))
{
// instantiate the fireball object
Instantiate(fireball,
new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, 0),
new Quaternion(0, 0, 0, 0));
// play the sound
source.Play();
}
}
}
إلى جانب الإعلان عن متغير AudioSource في البداية ،
يحدث السحر عندما نتصل ()source.Play
يجعل هذا السطر من التعليمات البرمجية مصدر الصوت المشار إليه
يقوم بتشغيل مقطع الصوت الذي تم تحميله في الفتحة الخاصة به.
لديها طريقة (متغيرة) محملة بشكل زائد بالإضافة إلى
تشغيل المؤثرات الصوتية بعد تأخير معين محدد.
الآن ، احفظ هذا البرنامج النصي ، وقم ببساطة بملء الفتحة الموجودة في
فتحة AudioSource الخاصة بالمشغل بتأثير الصوت الخاص بك.
(استخدم fire1.mp3 إذا كنت تستخدم حزمة الصوت والتي قمت بتنزيلها للتو.)
وبالمثل ، بالنسبة للهدف ، سنقوم بتحديث البرنامج النصي للفئة
TargetBehaviour المستخدمة في المقال التعليمي
Detecting Collisions وإرفاق مصدر صوتي به ،
ثم استخدم البرنامج النصي:
public class TargetBehaviour : MonoBehaviour
{
private AudioSource source;
void Start()
{
source = GetComponent<AudioSource>();
}
void onCollisionEnter2D(Collision2D col)
{
// When target is hit
if(col.gameObject.tag == "Bullet")
{
Debug.Log("Target was Hit!");
// calling AddScore method
ScoreBehaviour.AddScore();
// play sound
source.Play();
Destroy(col.gameObject);
Destroy(gameObject);
}
}
}
واملأ فتحة AudioClip بتأثير الصوت الخاص بك عندما يتم تدمير الهدف
( dead3.mp3 إذا كنت تستخدم حزمة الصوت الخاصة بالطلق الناري).
العب اللعبة ، ويمكنك سماع المؤثرات الصوتية عندما يطلق اللاعب كرة نارية وعندما تصطدم بالهدف!
Unity 3D: إضافة ملخص المؤثرات الصوتية
بشكل عام ، عليك القيام بالأمور التالية لإضافة مقطع صوتي إلى لعبتك:
1- إضافة AudioSource المكون لـ gameObject الخاص بك،
مثل قمت بإضافة جسم جاسئ أو BoxCollider المكون.
2- في النص المرفق مع gameObject ، قم بتهيئة متغير من النوع AudioSource
3- في ()Start الطريقة ، استخدم GetComponent لتعيين AudioSource
المكون إلى AudioSource المتغير.
4- عندما تريد تشغيل الصوت ، اتصل ()Play بالطريقة.