Mô hình truyền tín hiệu âm thanh

Một phần của tài liệu Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game (Trang 49 - 52)

5 Thiết kế mô hình nhận thức thính giác (auditory perception) cho NPC

5.2.1Mô hình truyền tín hiệu âm thanh

Mô hình truyền tín hiệu âm thanh chịu trách nhiệm về việc truyền các tin nhắn (tín hiệu âm thanh) từ nguồn phát (Emitter) đến người nghe (Listener). Cách thức giao tiếp giữa Emitter và Listener được định nghĩa trong mô hình này và mô hình cũng cung cấp một cấu trúc để mô tả một tín hiệu âm thanh. Mô hình này có thể được mô tả tổng quát trong lược đồ hình 31.

Hình 31: Lược đồ phân lớp mô tả mô hình truyền tín hiệu âm thanh.

5.2.1.a Biểu diễn tín hiệu âm thanh

Khi nào có một âm thanh được phát ra bởi Emitter, một mô tả âm thanh tương ứng sẽ được tạo ra dưới dạng Message. Mô tả âm thanh này chứa những thuộc tính cần thiết cho việc xử lý sau này:

• transcript: mô tả nội dung của âm thanh hay loại âm thanh, ví dụ như tiếng bước chân, tiếng hét, tiếng súng...

• emitterID: một con số đại diện để định danh Emitter, mỗi (loại) Emitter sẽ có một số riêng biệt.

• emitterPosition: tọa độ 3D của Emitter khi phát ra âm thanh, dùng để giúp NPC xác định nguồn âm thanh.

• intensity: độ lớn của âm thanh khi được phát ra, đơn vị dB.

• frequency: tần số của âm thanh được phát ra, đơn vị Hz.

• isNoise: dùng để xác định xem âm thanh được phát ra có phải là tiếng ồn từ môi trường không. Những tín hiệu âm thanh được xem là tiếng ồn sẽ không được xử lý bởi các Listener mà chỉ làm ảnh hưởng đến sự nhận thức của NPC đối với các tín hiệu âm thanh khác. Ví dụ trong trường hợp NPC đứng cạnh một động cơ phát điện thì NPC này sẽ khó nghe tiếng bước chân của người chơi hơn.

5.2.1.b Emitter

Một Emitter có khả năng phát ra các tín hiệu âm thanh, là người chịu trách nhiệm về việc tạo và phát ra các mô tả âm thanh. Emitter sẽ mô tả nội dung và thuộc tính của tín hiệu âm thanh, đồng thời nó phải xác định danh tính và vị trí khi mô tả âm thanh được tạo. Khi một Emitter được tạo ra, nó sẽ được liên kết với một Broadcaster và thông qua Broadcaster này để truyền tín hiệu âm thanh của nó đến những Listener tiềm năng.

5.2.1.c Broadcaster

Vai trò của Broadcaster là nhận tín hiệu âm thanh từ Emitter và gửi nó đến các Listener đã đăng ký với nó. Mặc định trong mô hình này, Broadcaster sẽ gửi thông điệp âm thanh đến tất cả các Listener đã đăng ký với nó. Hành vi này có thể dễ dàng thay thế bằng cách tích hợp RSM (xem phần 2.3.1) hoặc FEMSM (xem phần 2.3.2), do đó chỉ gửi tín hiệu cho các Listener đáp ứng tiêu chí nhất định. Những tiêu chí có thể dựa trên khoảng cách giữa Emitter và Listener, đồng thời xem xét sự suy giảm âm thanh do chướng ngại vật gây ra trên đường đi. Một phương pháp khác mô phỏng sự truyền âm thanh bằng cách sử dụng Navigation Mesh (sẽ được nói rõ hơn trong các phần sau) cũng có thể được sử dụng, theo cách này, đường truyền của âm thanh không phải là một đường thẳng nữa. Trong các ví dụ trên, nếu khoảng cách di chuyển làm giảm cường độ âm thanh đến mức không thể nghe thấy được nữa thì lúc này Broadcaster không cần phải truyền tín hiệu âm thanh tới Listener nữa.

5.2.1.d Listener

Mỗi Listener có một hàng đợi các âm thanh đã nhận được. Khi nó nhận được tín hiệu âm thanh từ Broadcaster, nó sẽ đặt tín hiệu đó trong hàng đợi. Cứ sau 100ms tất cả các tín hiệu âm thanh trong hàng đợi sẽ được xử lý bởi các Filter và sau đó sẽ tìm ra âm thanh có cường độ lớn nhất và sau 160ms (thời gian phản ứng trung bình của một thanh niên khi nghe thấy âm thanh) (Welford, 1980) gửi đến mô đun Nhận thức (Cognition Module) để tiến hành thay đổi trạng thái của NPC.

Tần số (kHz) a 0.125 0.00120 0.25 0.00120 0.5 0.00124 1 0.00128 1.5 0.00132 2 0.00145 3 0.00160 4 0.00220 6 0.00240 8 0.00300 10 0.00380 12 0.00490

Bảng 1: Hệ số suy giảm âm thanh dựa trên tần số.

5.2.1.e Filter

Một Listener có thể có hoặc không, có một hoặc nhiều các Filter. Filter mô phỏng các đặc điểm về tâm sinh lý của các Listener. Các Filter này nếu được áp dụng vào một Message bất kỳ sẽ góp phần làm giảm cường độ của Message đó. Nếu Message sau khi được xử lý bởi các Filter, Message có cường độ bé hơn ngưỡng nghe của NPC thì nó được xem như là không cảm nhận được bởi Listener và do đó bị bỏ qua trong việc tìm kiếm tín hiệu âm thanh với cường độ lớn nhất.

Dưới đây là một số các Filter đã được em định nghĩa, tùy theo yêu cầu của game mà chúng ta vẫn có khả năng tự định nghĩa các Filter mới.

• Filter suy giảm khả năng nghe theo độ tuổi (Hearing loss filter). Mục đích của Filter này là để mô phỏng sự suy giảm khả năng nghe gây ra bởi sự lão hóa. Hiện tượng này được gọi là Presbyacusis và theo Robinson và các cộng sự của mình, sự suy giảm khả năng nghe có thể được mô tả thông qua một phương trình (Robinson et al, 1979). Sự suy giảm khả năng nghe theo độ tuổi có thể được mô hình hóa bằng phương trình:

H=a(N−18)2

Trong đó H là độ giảm độ lớn âm thanh (%), N là tuổi của Listener và a là hệ số phụ thuộc trực tiếp vào tần số âm thanh phát ra. Các giá trị cho a có thể được tham khảo trong bảng 1 (được tham khảo từ bảng hệ số do Robinson và các cộng sự cung cấp).

• Filter tiếng ồn (Noise filter). Filter này mô phỏng sự ảnh hưởng của tiếng ồn xung quanh đối với khả năng nghe của Listener. Như đã đề cập ở phần trước mỗi Listener sẽ có một biến để lưu tín hiệu âm thanh được gán nhãn là tiếng ồn. Khi môi trường có nhiều tiếng ồn cùng một lúc thì, tiếng ồn nào có độ lớn cao nhất sẽ được lưu vào biến này. Sự suy giảm độ lớn âm thanh đến tai Listener có thể được mô phỏng với công thức

Độ tập trung Độ suy giảm (%) 1 0 2 25 3 50 4 75 5 100

Bảng 2: Mức độ suy giảm âm thanh theo các mức độ tập trung.

sau:

P= I

I+N

Trong đó, P là phần trăm độ lớn còn lại sau khi đã áp dụng filter tiếng ồn, I là độ lớn (dB) của âm thanh đến tai Listener và N là độ lớn (dB) âm thanh của tiếng ồn. Công thức trên sẽ trả về 1 khi độ lớn tiếng ồn bằng 0, tức là âm thanh sẽ không bị suy giảm khi không có tiếng ồn và sẽ tiến dần về 0 khi độ lớn tiếng ồn càng tăng. (adsbygoogle = window.adsbygoogle || []).push({});

• Filter độ tập trung (Focus filter). Khi chúng ta tập trung làm một công việc, mặc dù âm thanh vẫn đến tai chúng ta nhưng ta vẫn không nhận ra sự tồn tại của nó. Filter này dùng để mô phỏng điều đó. Nhưng thay vì xem xét âm thanh có được nhận ra bởi Listener với một độ tập trung nhất định hay không thì Filter sẽ góp phần làm giảm độ lớn của âm thanh khi đến tai người nghe và làm giảm cơ hội của âm thanh đó để được cảm nhận (perceive) bởi Listener. Độ tập trung sẽ được mô hình hóa với 5 cấp độ, với cấp 1 phản ánh sự cảnh giác cao độ (alert) với môi trường tức là sẵn sàng tiếp nhận mọi âm thanh và 5 đại diện cho sự tập trung cao độ vào công việc đang thực hiện. Sự giảm cường độ âm thanh theo độ tập trung có thể được mô tả như bảng 2.

Một phần của tài liệu Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game (Trang 49 - 52)