關(guān)于如何教盲人使用 Wwise 的實(shí)踐

向遠(yuǎn)程學(xué)員教授游戲音頻并不容易,對(duì)于失明的遠(yuǎn)程學(xué)員來說就更難了。Full Sail University?音頻制作和錄音藝術(shù)學(xué)士學(xué)位課程的游戲音頻講師便面臨著這樣的挑戰(zhàn)。最近,我們成功向首位完全失明的遠(yuǎn)程學(xué)生教授了如何在 Mac 上使用 Wwise。這要感謝幾位講師的共同努力以及相關(guān)人員創(chuàng)建的一些定制輔助工具。下面就來聽聽我們到底是怎么做到的吧。
現(xiàn)實(shí)挑戰(zhàn)
就讀于 Full Sail University 音頻制作遠(yuǎn)程學(xué)士學(xué)位課程的學(xué)生要學(xué)習(xí)各種音頻相關(guān)課程。其中有四門課涉及到為游戲設(shè)計(jì)聲音并使用 Wwise 整合音頻。在音頻制作學(xué)科主任布萊恩?史密瑟斯 (Brian Smithers) 最初告訴我們要招收完全失明的學(xué)生安德烈?伍茲 (Andre Woods) 時(shí),我們這些教授游戲音頻課程的人多少有些擔(dān)心??偟膩碚f,教安德烈如何對(duì)音樂實(shí)施混音還算比較簡(jiǎn)單。然而,教他為游戲設(shè)計(jì)聲音并使用 Wwise 整合音頻完全是另一碼事。
更難辦的是安德烈要在 Mac 上學(xué)習(xí),而 Wwise 的大部分界面都無法通過 Mac 的 VoiceOver 無障礙工具來誦讀。這樣的話,像安德烈這樣的學(xué)生根本沒法進(jìn)行操作。為此,我們花了幾周時(shí)間試圖構(gòu)建一套對(duì)應(yīng)的解決方案。當(dāng)時(shí)大家提出了各種想法,包括調(diào)整課程學(xué)習(xí)方式、直接在引擎中整合、利用 MIDI 控制器進(jìn)行交互模擬、通過腳本整合音頻等等。似乎每種想法都有無法克服的難題,但有時(shí)最好的解決方案就擺在面前。
解決方案
最后,我們發(fā)現(xiàn)安德烈裝了一款名為 Flo Tools 的無障礙工具來協(xié)助其學(xué)習(xí) Pro Tools 課程。Flo Tools 包含一套用 Keyboard Maestro Mac 自動(dòng)化工具創(chuàng)建的自定義無障礙功能宏。我們琢磨著,既然能用 Keyboard Maestro 為 Pro Tools 增添無障礙功能,那是不是也可以把同樣的做法用到 Wwise 上呢?于是,我們就開始為 Wwise 構(gòu)建類似于 Flo Tools 的專用工具(內(nèi)部暫定名稱為 Wweyes)。
為此,我們專門在日常教學(xué)之余花了大約 2 個(gè)月的時(shí)間進(jìn)行開發(fā)和測(cè)試。當(dāng)時(shí)大家因?yàn)橐咔檗D(zhuǎn)成了居家辦公,無法在各自電腦之外對(duì)宏展開測(cè)試。這當(dāng)中最大的挑戰(zhàn)是讓視力正常的講師設(shè)想真正適用于盲人的工作流程。比方說,安德烈會(huì)如何在軟件內(nèi)進(jìn)行導(dǎo)航?他要怎樣獲取聽覺反饋來獲知何時(shí)成功完成了處理?完成每項(xiàng)學(xué)習(xí)任務(wù)都需要哪些關(guān)鍵的功能?我們要在有限的時(shí)間內(nèi)把這些全都搞清楚。要知道這個(gè)方案是在一月下旬才制定的,四月安德烈就要學(xué)習(xí)第一門游戲音頻課程。
宏
導(dǎo)航
首先,我們要弄清楚安德烈會(huì)如何在 Wwise 中進(jìn)行導(dǎo)航。遺憾的是,VoiceOver 只能誦讀 Wwise 中的主窗口標(biāo)題。不過,我們知道他會(huì)把大部分時(shí)間花在 Audio 或 Events 選項(xiàng)卡中。對(duì)此,教授錄音藝術(shù)在校學(xué)位游戲音頻作品集課程的系主任托馬斯?歐文 (Thomas Owen) 建議我們以這兩個(gè)區(qū)域?yàn)橹饕獏⒄拯c(diǎn)來綁定簡(jiǎn)單的命令。比如,按下 CMD+1 來打開 Audio 選項(xiàng)卡,按下 CMD+2 來打開 Events 選項(xiàng)卡。
而且,我們知道安德烈主要會(huì)在 Actor-Mixer Hierarchy 下的 Default Work Unit 中執(zhí)行操作。為此,我們創(chuàng)建了第一個(gè)宏來自動(dòng)選中 Audio 選項(xiàng)卡,之后依次選中 Actor-Mixer Hierarchy 和 Default Work Unit。該宏還要自動(dòng)展開所有下級(jí)對(duì)象來揭示層級(jí)結(jié)構(gòu)中的隱藏元素。對(duì)此,會(huì)先掃描屏幕來識(shí)別 Audio 選項(xiàng)卡的目標(biāo)圖像。若識(shí)別成功,將執(zhí)行附加功能并要求安德烈進(jìn)行確認(rèn)。在這個(gè)過程中,會(huì)通過系統(tǒng)音效和語音合成來提供聽覺反饋。


容器
在進(jìn)入 Actor-Mixer Hierarchy 后,安德烈需要?jiǎng)?chuàng)建文件夾、容器和對(duì)象。雖然 Wwise 中存在與這些功能對(duì)應(yīng)的內(nèi)置鍵盤快捷方式,但其并不能提供聽覺反饋。我們的解決方案是創(chuàng)建自定義快捷方式來點(diǎn)擊相應(yīng)的工具欄圖標(biāo),然后在完成時(shí)通過語音合成提供聽覺反饋。??

現(xiàn)在,容器創(chuàng)建的問題解決了。接下來,要想辦法誦讀按鍵操作以及容器的名稱和類型。
要想把每項(xiàng)按鍵操作都誦讀出來,必須為每個(gè)字母和數(shù)字按鍵創(chuàng)建單獨(dú)的語音合成宏。這樣的話,安德烈才能在鍵入時(shí)收到反饋,以確保容器的正確命名和拼寫。

為了識(shí)別所選容器的名稱,安德烈需要將名稱作為文本復(fù)制到剪貼板。之后,便可通過 Keyboard Meastro 中的語音合成功能來誦讀剪貼板內(nèi)容。?

為了區(qū)分容器類型,系統(tǒng)會(huì)掃描屏幕來確定活躍選區(qū)的左端,然后利用一系列條件語句來識(shí)別與容器對(duì)應(yīng)的圖標(biāo)。在識(shí)別圖標(biāo)后,會(huì)將其名稱復(fù)誦給安德烈。這樣的話,他就能利用 OPTION+COMMAND+I 命令來識(shí)別所選容器類型了。


導(dǎo)入音頻文件
我們保留了用于導(dǎo)入音頻文件的內(nèi)置快捷方式 SHIFT+I,同時(shí)借助 VoiceOver 來誦讀 Audio File Importer 窗口標(biāo)題。據(jù)此,我們?yōu)榘驳铝抑贫讼鄳?yīng)的工作流程:首先創(chuàng)建容器,然后將音頻文件作為子對(duì)象導(dǎo)入。在這種情況下,先選中層級(jí)結(jié)構(gòu)中的一組 Sound SFX 對(duì)象再創(chuàng)建父容器并不現(xiàn)實(shí)。
在 Audio File Importer 窗口中,我們使用了字符串命令來添加并導(dǎo)入文件。鑒于總共需要的命令數(shù)量有很多,不可能只靠修飾符熱鍵進(jìn)行操作。在層級(jí)結(jié)構(gòu)之外,我們使用了以“W W”為開頭的字符串命令。在本例中,按下“W W A D D”來添加文件,按下“W W I M P”來導(dǎo)入文件。在選擇添加文件后,安德烈可使用 VoiceOver 打開 Finder 來瀏覽并選擇所需文件。在導(dǎo)入后,會(huì)自動(dòng)展開所有下級(jí)對(duì)象以將其顯示在層級(jí)結(jié)構(gòu)中。?


配置容器
要想配置容器設(shè)置,必須創(chuàng)建額外的宏。對(duì)此,學(xué)生需要針對(duì)工程來調(diào)整 Play Mode 和 Transitions 設(shè)置。在選中 Random Container 后,安德烈可按下 OPTION+COMMAND+C 來將 Play Mode 設(shè)為 Continuous,按下 OPTION+COMMAND+L 來切換 Loop 模式,按下 SHIFT+COMMAND+D 來將 Transitions 的 Type 設(shè)為 Delay。隨后,系統(tǒng)會(huì)通過聽覺反饋來提示輸入 Duration(以秒為單位)。

要想配置 Sequence Container,安德烈需先按下 COMMAND+E 來轉(zhuǎn)到 Contents Editor。該宏會(huì)自動(dòng)選擇 Contents Editor 中的第一個(gè)條目。隨后,他需要按下 COMMAND+C 來誦讀當(dāng)前所選條目的名稱。這樣不僅可以識(shí)別所選條目,還會(huì)將其復(fù)制到剪貼板以便粘貼到播放列表中。若接著按下 OPTION+COMMAND+P,會(huì)自動(dòng)單擊播放列表區(qū)域,并按照縱向降序順序粘貼復(fù)制的條目。在此之后,安德烈必須返回 Contents Editor,然后針對(duì)添加到播放列表的每個(gè)條目重復(fù)該流程。


創(chuàng)建 Event 并為其設(shè)定目標(biāo)
要想創(chuàng)建新的 Event,安德烈需先按下 COMMAND+2 來轉(zhuǎn)到 Events 選項(xiàng)卡。該宏會(huì)自動(dòng)選中 Events 選項(xiàng)卡中的 Default Work Unit。若接著按下 OPTION+COMMAND+E,會(huì)單擊工具欄中的 Create New Event 按鈕,同時(shí)提供聽覺反饋。
在創(chuàng)建 Event 之后,需要為其設(shè)定目標(biāo)。若按下 SHIFT+COMMAND+P,會(huì)單擊 Add 按鈕并選擇 Play 動(dòng)作。若鍵入字符串“W W B F T”,可選擇 Events Editor 中的動(dòng)作,然后單擊 Browse 按鈕。在 Project Explorer 窗口打開后,VoiceOver 會(huì)誦讀窗口標(biāo)題。為了確保展開層級(jí)結(jié)構(gòu)下的內(nèi)容,宏會(huì)自動(dòng)右鍵單擊最上面的箭頭并選擇 Expand All。之后,安德烈可使用向上鍵和向下鍵來瀏覽層級(jí)結(jié)構(gòu),按下 COMMAND+C 來誦讀當(dāng)前選定項(xiàng)的名稱,并在找到正確的目標(biāo)后鍵入“W W O K”。??


SoundCaster
在創(chuàng)建并配置容器、導(dǎo)入音頻文件、創(chuàng)建 Event 并為其設(shè)定目標(biāo)后,安德烈需要將 Event 添加到 SoundCaster Session 中。雖然已經(jīng)存在用于打開 SoundCaster 的內(nèi)置快捷方式 SHIFT+S,但我們還是選擇了使用字符串“W W O S C”,因?yàn)樵摵甑淖饔貌⒉恢皇谴蜷_ SoundCaster。它還會(huì)調(diào)整窗口大小并重新定位到屏幕左上角部分以便精準(zhǔn)設(shè)定目標(biāo)。
在窗口打開后,必須創(chuàng)建新的 SoundCaster Session。通過鍵入字符串“W W N S C”,可執(zhí)行宏來單擊并創(chuàng)建新的 SoundCaster Session。之后,安德烈需要輸入 SoundCaster Session 的名稱。然后,可通過鍵入“W W E S C”來將 Event 移到 SoundCaster 中。該宏會(huì)在 Event Viewer 中單擊并選中所有 Event,然后單擊分組并將其拖到目標(biāo) SoundCaster 窗口中。


若要播放 SoundCaster Event,可鍵入字符串“W W P S C”。該宏會(huì)針對(duì) SoundCaster 中當(dāng)前高亮顯示的 Event 單擊“播放”按鈕。若要停止播放,可鍵入字符串“W W S S C”。該宏會(huì)單擊 SoundCaster 的全局停止按鈕。?
SoundBank
要想操作 SoundBank,安德烈需先在 Wwise 中更改布局。為此,可鍵入字符串“W W 2”(按下“W W 1”會(huì)恢復(fù)到 Designer 布局)。此字符串會(huì)執(zhí)行相應(yīng)的操作并提供聽覺反饋。在進(jìn)入 SoundBank 布局后,可通過按下 COMMAND+3 來轉(zhuǎn)到 SoundBanks 選項(xiàng)卡(按下 COMMAND+2 轉(zhuǎn)到 Events 選項(xiàng)卡,按下 COMMAND+1 轉(zhuǎn)到 Audio 選項(xiàng)卡)。該宏會(huì)自動(dòng)選中 SoundBanks 選項(xiàng)卡中的 Default Work Unit。之后,可按下 CONTROL+B 來創(chuàng)建新的 SoundBank。該宏會(huì)自動(dòng)單擊 Create New SoundBank 工具欄條目。
在創(chuàng)建 SoundBank 后,還需將其設(shè)為啟用狀態(tài)。為此,可鍵入字符串“W W E S B”。該宏會(huì)自動(dòng)選中給定 SoundBank、Mac 平臺(tái)和 English 語言。?

之后,需要將 Event 添加到 SoundBank 中。為此,可鍵入字符串“W W E T S”。該宏會(huì)在 Event Viewer 中單擊選中所有 Event,然后將其拖到目標(biāo) SoundBank Editor 區(qū)域。

安德烈可以鍵入“W W G E N”來生成 SoundBank。該宏會(huì)單擊 Generate All 按鈕來完成工程。?

學(xué)生反映
“盡管很有挑戰(zhàn)性,但我認(rèn)為學(xué)習(xí)如何使用 Wwise 還是非常值得的。而且,我覺得這將給盲人和存在視力障礙的音頻專業(yè)人員打開方便之門。要知道,這在創(chuàng)建這些宏之前是無法做到的。宏的設(shè)計(jì)非常巧妙,使用起來毫無障礙。我對(duì) Wwise 和 Audiokinetic 產(chǎn)品很有信心,希望今后能學(xué)會(huì)使用它們完成更多操作?!报C 安德烈?伍茲
工程示例
以下截圖展示了安德烈在前兩門游戲音頻課程中完成的 Wwise 工程。
這個(gè)是 Sound Design for Games 課程當(dāng)中的第二個(gè)工程。學(xué)生要為在 Unreal 中制作的科幻堡壘工程設(shè)計(jì)并整合各種循環(huán)和一次性音頻素材。在學(xué)習(xí)中,安德烈成功地展示了自己對(duì) Actor-Mixer、Blend Container、Random Container 和 Sequence Container 的正確使用。??

這個(gè)是 Sound Design for Games 課程當(dāng)中的最后一個(gè)工程。在學(xué)習(xí)中,安德烈成功創(chuàng)建了 Virtual Folder、循環(huán) Sound SFX、Random Container,創(chuàng)建 "Play" 和 "Stop" Event 并為其設(shè)定了目標(biāo),還將其添加到了 SoundCaster Session 中。

這個(gè)是 Project and Portfolio II: Audio Production 課程當(dāng)中的鬧鬼墓地工程。為了構(gòu)建這個(gè) Unity 工程,安德烈需要?jiǎng)?chuàng)建并配置 Event 以及 Random Container 和 Blend Container。

這個(gè)是 Project and Portfolio II: Audio Production 課程當(dāng)中的科幻設(shè)施工程。為了構(gòu)建這個(gè) Unity 工程,安德烈需要?jiǎng)?chuàng)建并配置 Sequence Container、Blend Container 和 Random Container,然后創(chuàng)建 Event 并為其設(shè)定目標(biāo)。

結(jié)語
最終,我們的無障礙實(shí)踐成功了。借助 Wwise 宏,安德烈成功完成了前兩門游戲音頻課程。為此,我們總共創(chuàng)建了將近 200 個(gè)宏。不過,最后證實(shí)只有大概一半是完成課程所必需的。我們希望將來使用這一系統(tǒng)來教授更多存在視力障礙的學(xué)生,同時(shí)也會(huì)繼續(xù)對(duì)其進(jìn)行完善和改進(jìn)。
這些宏是根據(jù)特定課程要求創(chuàng)建的,所以未必對(duì)所有 Wwise 用戶都適用。不過,我們會(huì)繼續(xù)研究如何將這種系統(tǒng)應(yīng)用到課程之外。雖然近年來大家對(duì)游戲可訪問性的關(guān)注越來越多,但對(duì)游戲開發(fā)者的無障礙操作的討論卻比較少。希望我們的實(shí)踐能夠促進(jìn)進(jìn)一步的交流,確保所有想打造游戲的人都能如愿以償。
致謝
感謝安德烈?伍茲在第一次使用宏時(shí)表現(xiàn)出的耐心和細(xì)心。即便事情沒有完全按照預(yù)期進(jìn)行也從未灰心,而且在整個(gè)過程中還會(huì)設(shè)法提供有用的反饋。感謝實(shí)驗(yàn)室專員卡洛斯?馬克斯 (Carlos Marquez) 教安德烈如何使用宏工具。感謝課程主任戴爾?斯坦普 (Dale Stump) 和馬克?平斯基 (Marc Pinsky) 在課堂上給安德烈的指導(dǎo)和講解。同時(shí),也感謝系主任托馬斯?歐文的建議、指點(diǎn)和反饋。另外,還要感謝學(xué)科主任布萊恩?史密瑟斯。如果沒有他,也就不會(huì)有今天的成果。

埃里克?貝爾津什 (ERIC BERZINS)
Project and Portfolio VI: Audio Production 課程主任 | Full Sail University
埃里克?貝爾津什 (Eric Berzins) 主要從事聲音設(shè)計(jì)的研究與教學(xué),目前在佛羅里達(dá)州溫特帕克市 Full Sail University 教授音頻制作。
