كيف يصنع الصوت لواقع آخر

نواصل سلسلة المقالات حول Windows Mixed Reality ونطور من الصفر تطبيق Unity Mixed Reality بتنسيق عمل المختبر. يمكنك بنفسك ، بالتوازي مع نشر المقالات ، إنشاء مثل هذا التطبيق. سنتحدث اليوم عن الصوت المكاني وكيف ننمي الشعور بأن نكون في واقع مختلف.



يتكون الدليل بالكامل من 5 أجزاء. سيتم تجديده كل أسبوع. أدناه يمكنك الذهاب إلى الجزء الذي تحتاجه.

الجزء 1: تصدير تطبيق UWP لـ Windows Mixed Reality from Unity ؛
الجزء 2: إعداد البيئة (VR) ؛
الجزء 3: وحدات التحكم ؛
الجزء 4: الصوت المكاني .
الجزء 5: HoloLens والرسومات .

صوت مكاني


مكبر الصوت جاهز ، حاول الآن بدء تشغيل الصوت المكاني وإيقافه. في هذا القسم ، سنضيف مصدر صوت وعناصر تحكم في تشغيل الصوت.

نظرًا لأن بعض المهام التي تواجهنا مماثلة لتلك التي تم إنجازها في وقت سابق ، فسنعطي تعليمات على شكل قوائم لتسريع العملية.

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

إضافة مصدر صوت


لتشغيل صوت من مكبر صوت ، تحتاج إلى إضافة مكون Unity AudioSource إليه.

  1. حدد كائن مكبر الصوت في المشهد وانقر فوق إضافة مكون -> صوت -> مصدر الصوت.
  2. انقر فوق رمز التقاطع الصغير الموجود على يمين خاصية مقطع الصوت لمكون مصدر الصوت وحدد Chill Blue Lagoon.
  3. قم بإلغاء تحديد مربع الاختيار Play On Awake ، حيث سنتحكم في التشغيل باستخدام الأزرار. سنقوم بتغيير إعدادات دعم الصوت المكاني لاحقًا.



إضافة عناصر التحكم في التشغيل إلى السماعة


لإضافة زر تشغيل إلى السماعة ، اتبع الخطوات التالية:

1. في لوحة Project ، ابحث عن CircleButton الجاهزة في Assets -> HoloToolkit -> UX -> Prefabs -> Buttons folder (Resources -> HoloToolkit -> UX -> Prefabs -> Buttons) واسحبه إلى لوحة Hierarchy بإضافة هذا الإعداد المسبق إلى المشهد كطفل لكائن مكبر الصوت.

2. أعط الزر المضاف اسم PlayButton.



3. زيادة حجم PlayButton عن طريق تعيين خاصية مقياس التحويل إلى (90 ، 90 ، 90).

4. بعد تحديد كائن PlayButton ، انقر فوق إضافة مكون -> حدث -> مشغل الحدث (إضافة مكون -> حدث -> مشغل الحدث).

5. انقر فوق إضافة نوع حدث جديد -> النقر فوق المؤشر.

6. انقر فوق الزر + في أسفل قائمة الأحداث الفارغة.

7. اسحب كائن مكبر الصوت من لوحة التسلسل الهرمي إلى الحقل لتجاهل الأحداث المسماة بلا (كائن).

8. في القائمة المنسدلة No Function ، حدد AudioSource-> Play ().



لإضافة زر إيقاف مؤقت إلى مكبر الصوت ، اتبع الخطوات التالية:

1. قم بتكرار PlayButton بالضغط على Ctrl + D أو النقر بزر الماوس الأيمن على مورد في لوحة Hierarchy وتحديد Duplicate ، ثم إعادة تسميته إلى PauseButton.

2. بالنسبة لوظيفة مشغل الحدث للكائن PauseButton ، قم بتعيين القيمة إلى AudioSource-> Pause ().



الآن يجب أن تعمل هذه الأزرار ، ولكن من الصعب استخدامها ، لأنها تتداخل مع بعضها البعض. مشكلة أخرى - لا يراها المستخدم عندما يتم تحويل مكبر الصوت إلى الجانب. لحل هذه المشكلة ، قم بما يلي:

1. قم بتعيين خاصية "موضع التحويل" في PlayButton إلى (-6 ، 18 ، 0).

2. بالنسبة لخاصية موضع التحويل للزر PauseButton ، قم بتعيين القيم (6 ، 18 ، 0).

3. في لوحة Hierarchy ، انقر بزر الماوس الأيمن على كائن مكبر الصوت وحدد Create Empty لإنشاء كائن تابع فارغ. إعادة تسمية GameObject المضافة إلى ButtonBillboard. لإعادة تسمية كائن ، انقر بزر الماوس الأيمن عليه وحدد إعادة تسمية.

4. اسحب الزرين إلى كائن ButtonBillboard ، مما يجعلهما كائنين فرعيين لهذا الكائن.

5. مع تحديد كائن ButtonBillboard في المفتش ، انقر فوق إضافة مكون -> لوحة. يمكن العثور على مكون لوحة باستخدام شريط البحث. يجعل البرنامج النصي Billboard من Mixed Reality Toolkit الكائن يواجه الكاميرا باستمرار وغالبًا ما يُستخدم لعناصر واجهة المستخدم.

6. تحتاج إلى الحصول على الهيكل التالي للوحة الإعلانات:



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

1. مع تحديد PlayButton ، قم بالتمرير لأسفل المفتش إلى مكون رمز الزر المركب.

2. حدد خانة الاختيار "تجاوز الرمز".

3. اسحب الرموز المتحركة ابدأ من مجلد الأصول -> الأنسجة إلى خاصية تجاوز الرمز لمكون رمز الزر المركب.

4. كرر هذه الخطوات لكائن PauseButton باستخدام التوقف المؤقت.



مضيفا الصوت المحيطي


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

في Unity ، يتم تنفيذ الصوت المكاني باستخدام المكوّن الإضافي Spatializer. تعد ملفات المكونات الإضافية جزءًا من Unity ، لذا من السهل تنفيذ الصوت المكاني.

1. انتقل إلى تحرير -> إعدادات المشروع -> قسم الصوت (تحرير -> إعدادات المشروع -> الصوت).

2. بالنسبة لمعلمة البرنامج المساعد Spatializer ، قم بتغيير القيمة من بلا إلى MS HRTF Spatializer.

نظرًا لأن نظام الصوت المحيطي من Microsoft يدعم حاليًا معدل أخذ عينات يبلغ 48000 هرتز فقط ، فيجب أيضًا تعيين معدل عينة النظام على 48000 (إذا لم يتم إجراؤه بالفعل) لمنع HRTF من الفشل.



الآن تحتاج إلى ضبط الإعدادات لمقطع الصوت نفسه.

1. في لوحة Hierarchy ، حدد كائن السماعة.

2. قم بالتمرير إلى مكون مصدر الصوت بلوحة المفتش وحدد خانة الاختيار Spatialize.

3. بالنسبة لمعلمة Spatial Blend ، حدد 3D (القيمة العددية هي 1).

4. قم بتوسيع قائمة إعدادات الصوت ثلاثي الأبعاد.

5. لتعيين الإعدادات الصوتية المثلى ثلاثية الأبعاد لتطبيقنا ، اضبط قيمة Logarithmic Rolloff لمعلمة Volume Rolloff ، واضبط معلمة Min Distance على 3.

6. مع تحديد مكبر الصوت ، انقر فوق إضافة مكون -> باعث الصوت. هذه فئة في مجموعة أدوات الحقيقة المختلطة التي تستخدم مكون مصدر الصوت المتصل والمجموعة الفرعية لمرشح صوت الوحدة لتطبيق المؤثرات الصوتية والتحكم فيها ، مثل الامتصاص.



حفظ وتشغيل


الآن المتحدث لدينا جاهز تمامًا. دعنا نحوله إلى الجاهزة.

1. اسحب كائن مكبر الصوت إلى الأصول -> المجلد Prefabs لتحويله إلى الإعداد المسبق.

بتحويل مكبر الصوت إلى سابق الإعداد ، سنقوم بعمل كائن منه يمكن إعادة استخدامه. بعد ذلك ، سنكون قادرين على إنشاء أي عدد من مثيلات المتحدث لمشهدنا أو مشاهد أخرى من هذا المشروع.

الآن دعونا نحفظ المشهد (بالضغط على Ctrl + S) ونشغله لرؤية نتائج عملنا.

الآن يمكننا القيام بالكثير من الأشياء المثيرة للاهتمام:

  • لعب وإيقاف الصوت ؛
  • تقريب مكبر الصوت من نفسك ، مع ملاحظة أن الصوت يزداد صوتًا وأكثر وضوحًا ؛
  • أبعد السماعة بعيدًا عنك ، مع ملاحظة انخفاض مستوى الصوت.

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

الأصل
المؤلف: إريك أهلستروم ، cbarkerms ، ماديسون هايت

Source: https://habr.com/ru/post/ar418663/


All Articles