最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

開(kāi)發(fā)ReaWwise | 第一部分 - 預(yù)生產(chǎn)

2022-11-11 11:46 作者:Wwise官方  | 我要投稿

ReaWwise現(xiàn)在已經(jīng)發(fā)布了,我們認(rèn)為這是一個(gè)絕佳的時(shí)機(jī)來(lái)分享打造這款REAPER擴(kuò)展程序的經(jīng)過(guò)。本文是一個(gè)由兩部分組成的博客系列的第一篇;我將主要對(duì)ReaWwise項(xiàng)目的預(yù)生產(chǎn)過(guò)程進(jìn)行分享,而第二篇?jiǎng)t會(huì)聚焦于ReaWwise具體的開(kāi)發(fā)過(guò)程。

我們?yōu)槭裁催x擇REAPER

游戲音頻行業(yè)對(duì)DAW向來(lái)有很高的期望和相當(dāng)特殊的需求。在絕大多數(shù)的DAW中,工作流程都是圍繞著時(shí)間軸展開(kāi)的。但基于時(shí)間線 (Timeline) 的工作流程真的能非常好的應(yīng)對(duì)交互式音頻設(shè)計(jì)嗎?

這里有幾個(gè)要素可以使DAW在游戲音頻工作流程中取得成功:

  • 能夠分批輸出各種形式的內(nèi)容

  • 可定制的界面和工作流程

  • 可擴(kuò)展性

  • 自動(dòng)化或腳本化的便利性

  • 快速、輕便、便攜

REAPER滿足了所有這些條件,其背后的公司Cockos一直在傾聽(tīng)社區(qū)的聲音。這可能就是REAPER成為滿足游戲音頻需求的”新星DAW“的原因之一。

一切的開(kāi)始

我們產(chǎn)生做REAPER集成的想法已經(jīng)有一段時(shí)間了。它首先始于Karl Davis(@karltechno)幾年前的作品——Reaper-Waapi-Transfer(https://github.com/karltechno/Reaper-Waapi-Transfer)。這個(gè)項(xiàng)目表明存在一種流暢地將音頻文件從REAPER傳送到Wwise的工作流程。我們想要進(jìn)一步推動(dòng)他的想法,并使其更容易被接受。

WAAPI Transfer

了解到REAPER在游戲音頻社區(qū)的影響力越來(lái)越大,我們也預(yù)料到早晚有一天我們必須采取行動(dòng),但在那之前,我們需要了解社區(qū)里的人們是如何使用REAPER的。

了解使用案例

我們進(jìn)行了一系列研究,采訪了幾個(gè)工作室的聲音設(shè)計(jì)師,了解他們的工作流程——他們?nèi)绾谓M織他們的內(nèi)容,以及他們?nèi)绾味ㄖ芌EAPER。以下是我們的一些觀察:

自定義用戶界面:雖然REAPER極其靈活、開(kāi)箱即用,但它并沒(méi)有為游戲音頻提供優(yōu)化的工作流程。工作室依然需要花時(shí)間定制用戶界面和工作流程,才能使REAPER有家的感覺(jué)。

時(shí)間線 (Timeline) 作為畫布:大多數(shù)用戶把時(shí)間線 (Timeline) 作為聲音設(shè)計(jì)的大畫布。REAPER使導(dǎo)入、勾畫和重新安排時(shí)間線 (Timeline) 上的片段變得容易。REAPER允許無(wú)摩擦和自由形式的聲音設(shè)計(jì)。

區(qū)域(Regions):區(qū)域通常用于劃分時(shí)間線 (Timeline) 中的各個(gè)區(qū)域。它們通常對(duì)應(yīng)于出口的邊界。區(qū)域也被用來(lái)存儲(chǔ)元數(shù)據(jù)。REAPER項(xiàng)目通常包含幾十個(gè)區(qū)域,甚至幾百個(gè)。命名慣例也用于區(qū)域名稱,因?yàn)閰^(qū)域名稱可能會(huì)在渲染設(shè)置中使用。區(qū)域可以用來(lái)識(shí)別不同的變化、不同的版本、或不同的狀態(tài)/開(kāi)關(guān)。例如,在一個(gè)腳步聲項(xiàng)目中,區(qū)域可能包含多種變化和多種表面(混凝土、草地、巖石等)。

軌道:人們不僅將水平空間作為畫布,還將垂直空間用于組織。軌道可以用來(lái)組織數(shù)據(jù)。它們不只是用來(lái)在播放時(shí)混合音頻。我們?cè)?jiàn)過(guò)有數(shù)百個(gè)音軌的項(xiàng)目,其中的靜音和獨(dú)奏按鈕被用來(lái)集中在項(xiàng)目的某些部分。

渲染設(shè)置:雖然REAPER的渲染設(shè)置一開(kāi)始可能有點(diǎn)嚇人,但渲染引擎是REAPER的一個(gè)與眾不同的特點(diǎn)。通配符系統(tǒng)使渲染引擎非常強(qiáng)大。通配符被廣泛用于遵循命名規(guī)則和一次性批量輸出數(shù)百個(gè)WAV文件。

區(qū)域渲染矩陣(Region Render Matrix):同樣令人生畏,區(qū)域渲染矩陣允許你設(shè)置哪些軌道和哪些區(qū)域被渲染。該矩陣允許你指定項(xiàng)目的哪些部分在渲染時(shí)被混合下來(lái)。

子項(xiàng)目:我們已經(jīng)看到一些工作室使用子項(xiàng)目作為管理大型數(shù)據(jù)的方法。子項(xiàng)目可以用于內(nèi)容的抽象和組織。子項(xiàng)目在大型團(tuán)隊(duì)中也很有用,可以分工合作,盡量減少源控制的沖突。

自定義腳本:雖然各種各樣的腳本通過(guò)ReaPack和其他分發(fā)系統(tǒng)公開(kāi)可用,但許多用戶實(shí)際上已經(jīng)開(kāi)發(fā)了自己的腳本。ReaScript可能需要一點(diǎn)編程知識(shí)才能開(kāi)始,但它仍然是一個(gè)可用于定制REAPER的系統(tǒng)。

第一個(gè)原型

在我們對(duì)人們使用REAPER的情況以及他們?nèi)绾问褂肦EAPER有了更好的了解之后,我們開(kāi)始宏觀地定義這個(gè)集成應(yīng)該能夠做什么。我們確定了以下兩個(gè)主要目標(biāo):

  • 將渲染好的WAV文件導(dǎo)入到Wwise。

  • 創(chuàng)建一個(gè)Wwise對(duì)象結(jié)構(gòu)和渲染的文件。

我們也有一些用戶體驗(yàn)的目標(biāo):

  • 一次設(shè)置,快速迭代。

  • 對(duì)命名規(guī)則的有力控制。

在第一個(gè)演示中,我們有一個(gè)名為 "FS "的REAPER項(xiàng)目,其中包含兩個(gè)區(qū)域和幾個(gè)軌道。

一個(gè)名為FS的REAPER項(xiàng)目的時(shí)間線 (Timeline)

假設(shè)我們想創(chuàng)建兩個(gè)WAV文件,每個(gè)區(qū)域一個(gè),并使用以下通配符:

  • $project。解析為REAPER項(xiàng)目名稱,"FS"。

  • $regionnumber: 解析為區(qū)域編號(hào),"1 "和 "2"。

REAPER的渲染設(shè)置

現(xiàn)在,為了將WAV文件導(dǎo)入Wwise,顯然會(huì)涉及到WAAPI,我們將利用ak.wwise.core.audio.import函數(shù)(https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_audio_import.html)。這個(gè)函數(shù)與Tab Delimited Text Import(https://www.audiokinetic.com/library/edge/?source=Help&id=importing_media_files_from_tab_delimited_text_file)的核心代碼相同。

為了演示,這里有一個(gè)以制表符分隔的導(dǎo)入文件的例子,它定義了一個(gè)隨機(jī)容器和兩個(gè)聲音,這也可以在WAAPI中完成。

這創(chuàng)建了以下層次結(jié)構(gòu):

在Wwise中創(chuàng)建的層次結(jié)構(gòu)

然后,如果REAPER允許我們使用通配符系統(tǒng)來(lái)命名WAV文件,那么我們很自然的想到應(yīng)該嘗試使用類似的機(jī)制來(lái)命名將出現(xiàn)在Project Explorer中的Wwise對(duì)象。因?yàn)樽罱K,它們應(yīng)該以某種方式相互聯(lián)系起來(lái)。用戶應(yīng)該能夠控制WAV文件和Wwise對(duì)象的命名規(guī)則。

因此,生成對(duì)象路徑列的通配符”配方“將是:

\Actor-Mixer Hierarchy\Default Work Unit<Random Container>$project<Sound SFX>SFX$project$regionnumber

因此,我們探索了ReaScript所能提供的東西。我們想看看是否有可能要求REAPER在任意字符串上解析自己的通配符,也就是說(shuō),不僅是Render設(shè)置。然后意識(shí)到走不通。所以我們嘗試了一個(gè)非常粗糙的測(cè)試:

\1. 從Render設(shè)置中備份文件名字段的值。
\2. 在渲染設(shè)置的文件名字段中設(shè)置要求的Wwise對(duì)象路徑。
\3. 查詢經(jīng)過(guò)渲染的文件的名稱(不再是文件名,而是解析的對(duì)象路徑)。
\4. 恢復(fù)渲染設(shè)置中以前的文件名。

TADA!它成功了!我們能夠解決原先包含多個(gè)REAPER通配符的對(duì)象路徑。然而,這并不是一個(gè)干凈的解決。REAPER用戶界面在閃動(dòng),它犧牲了Render設(shè)置的可靠性。?

從REAPER團(tuán)隊(duì)獲得幫助?

于是我們聯(lián)系了Cockos團(tuán)隊(duì),請(qǐng)求他們幫助我們實(shí)現(xiàn)目標(biāo)。問(wèn)題是:

你能不能在ReaScript中公開(kāi)一個(gè)函數(shù),能夠?yàn)槊總€(gè)渲染的文件解析一個(gè)包含REAPER通配符的任意字符串?

你猜怎么著?他們的反應(yīng)非常積極并很快就提供了一個(gè)具有這個(gè)功能的版本。我們馬上進(jìn)行了測(cè)試,確認(rèn)了它真的管用!而接下來(lái)的REAPER版本也都包括了這個(gè)新功能。我需要向來(lái)自Cockos的John Schwartz和Justin Frankel致以崇高的敬意!你們真了不起!

下面是一個(gè)早期的原型,顯示了另一個(gè)被解析為對(duì)象路徑的包含通配符的導(dǎo)入表達(dá)式:

ReaWwise的一個(gè)早期原型

導(dǎo)入后,Wwise中便創(chuàng)建了以下結(jié)構(gòu):

一個(gè)由ReaWwise創(chuàng)建的Wwise層次結(jié)構(gòu)

所以,在這一點(diǎn)上,我們有信心可以達(dá)到我們的目標(biāo)。接下來(lái),我們要做的就是在未來(lái)的擴(kuò)展的用戶體驗(yàn)方面下功夫。

用戶體驗(yàn)

然后,我們便開(kāi)始著手對(duì)于用戶體驗(yàn)的迭代。就像早期的原型一樣,這并不會(huì)發(fā)生在代碼中,而是使用靜態(tài)的模擬小樣(MockUp)。之所以使用模擬小樣是因?yàn)樗试S我們進(jìn)展得更快。針對(duì)用戶界面的設(shè)計(jì),我們讓不同的利益相關(guān)者參與了討論,整個(gè)設(shè)計(jì)的迭代過(guò)程持續(xù)了數(shù)周。

下面是一個(gè)早期的拼貼模擬小樣,展示了我們迭代的成果。

開(kāi)發(fā)期間制作的ReaWwise模擬圖

在某些時(shí)候,我們會(huì)返回到代碼中來(lái)驗(yàn)證更多的假設(shè),并且用實(shí)際的REAPER項(xiàng)目來(lái)測(cè)試我們的一些想法。此時(shí),新的原型是直接在WAAPI-Transfer代碼的基礎(chǔ)上制作的,它已經(jīng)實(shí)現(xiàn)了相當(dāng)多的東西,比如Visual C++設(shè)置、Win32窗口初始化、REAPER握手機(jī)制、WAAPI通信,等等。

ReaWwise的另一個(gè)原型

然后,這個(gè)原型被反復(fù)迭代、用于演示,并在內(nèi)部被分享。這使得我們對(duì)于方向有了更大的信心。此時(shí)我們必須找到一個(gè)團(tuán)隊(duì)來(lái)實(shí)現(xiàn)這個(gè)項(xiàng)目,并安排這個(gè)產(chǎn)品的發(fā)布日期!

待續(xù)

本博客系列的下一部分,也是最后一部分,將關(guān)注擴(kuò)展的具體開(kāi)發(fā)。你會(huì)了解到在原型被確定之后都發(fā)生了什么。而這一部分將由ReaWwise的主要開(kāi)發(fā)者Andrew Costa負(fù)責(zé)為大家分享。

伯納德 羅德里格 (BERNARD RODRIGUE)

開(kāi)發(fā)總監(jiān)

Audiokinetic

Bernard Rodrigue 是 Audiokinetic 的開(kāi)發(fā)總監(jiān)。他自 2005 年加入 Audiokinetic 后,一直積極參與 Wwise 的基礎(chǔ)研發(fā)。現(xiàn)在,Bernard 仍在帶領(lǐng)團(tuán)隊(duì)從事 Wwise 的提升和擴(kuò)展研發(fā),比如 Interactive Music 等等。


開(kāi)發(fā)ReaWwise | 第一部分 - 預(yù)生產(chǎn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
临朐县| 高淳县| 郧西县| 视频| 广河县| 达日县| 南溪县| 中江县| 嘉禾县| 大田县| 平陆县| 嘉黎县| 项城市| 定兴县| 沙坪坝区| 将乐县| 江津市| 台南市| 安阳县| 中超| 巴东县| 新乐市| 屏山县| 囊谦县| 泰兴市| 西畴县| 徐汇区| 南投县| 瑞昌市| 萨迦县| 台东县| 丰都县| 屏山县| 连山| 兴国县| 嘉义县| 肥乡县| 崇州市| 巴彦淖尔市| 娄底市| 轮台县|