故事工程學(xué):人工智能和交互式敘事_第1頁
故事工程學(xué):人工智能和交互式敘事_第2頁
故事工程學(xué):人工智能和交互式敘事_第3頁
故事工程學(xué):人工智能和交互式敘事_第4頁
故事工程學(xué):人工智能和交互式敘事_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

故事工程學(xué):人工智能和交互式敘事交互式敘事(InteractiveStorytelling)意指在敘事過程中,故事線的展開并不是固定的,而會(huì)根據(jù)觀眾對(duì)敘事系統(tǒng)的輸入而發(fā)生變化,如此在傳達(dá)故事作者的主旨的同時(shí),讓觀眾產(chǎn)生親身參與到故事之中的感覺。電子游戲作為一種以交互性機(jī)制和多媒體作為媒介的藝術(shù)形式,很自然地成為交互式敘事的平臺(tái)。交互式敘事在游戲中的運(yùn)用在現(xiàn)今的大部分游戲中,從文字冒險(xiǎn)中的故事分支到RPG中NPC面對(duì)玩家不同的行為產(chǎn)生的不同反應(yīng),我們多少都能看到一定程度的交互式敘事。交互式敘事的目的也多種多樣——有的游戲希望借此提升玩家的代入感而獲得更好的娛樂體驗(yàn)(例如許多出產(chǎn)自大公司的RPG有的游戲則是希望向玩家呈現(xiàn)一個(gè)線性敘事難以完整表達(dá)的龐大而立體的故事,而不得不要求玩家去通過不同的與故事進(jìn)行交互的方式來探索故事的不同角度。后者的例子包括很多世界觀復(fù)雜側(cè)重于劇情的游戲,比較典型的例子有Chunsoft出品的428:被封鎖的澀谷,其中作者希望玩家去了解的是發(fā)生在整個(gè)澀谷、牽涉到眾多人物的一個(gè)龐大的故事,同時(shí)又希望帶給玩家從一個(gè)特定人物的視角看到的這整個(gè)故事的某個(gè)局部的體驗(yàn),因此交互式敘事就成為順理成章的設(shè)計(jì)策略。勇者斗惡龍6中游戲開始后的一個(gè)對(duì)話選項(xiàng),對(duì)游戲進(jìn)程并沒有實(shí)際影響著名文字冒險(xiǎn)游戲428:被封鎖的澀谷,多條故事線及故事線相互間的影響是它的一個(gè)重要特色也有的游戲采用交互式敘事,是希望玩家通過他的親身參與來更加親密地進(jìn)入到作者希望傳達(dá)的體驗(yàn),例如著名的獨(dú)立游戲StanleyParable及其精神續(xù)作TheBeginner’sGuide。在這兩個(gè)游戲中,作者直接與玩家對(duì)話,玩家在反抗或者認(rèn)同作者的選擇之中感受到故事的張力和身臨其境的情緒體驗(yàn),從而深入地走進(jìn)作者的精神世界。著名交互式敘事游戲StanleyParable,以游戲作者直接與玩家對(duì)話著稱人工智能:一些可用于交互式敘事的新興技術(shù)雖然交互式敘事在電子游戲中如此普遍地出現(xiàn),但現(xiàn)今不成熟的技術(shù)卻制約著它以更加高級(jí)的方式出現(xiàn)——對(duì)玩家每個(gè)動(dòng)作的反應(yīng),幾乎都必須人為地一一列舉清楚。這就導(dǎo)致玩家在敘事上與游戲的交互方式通常都非常的有限,對(duì)游戲中的故事要素的影響也非常有限。另一方面,即使我們擁有足夠成熟的技術(shù)來毫不費(fèi)力地處理成千上萬的玩家動(dòng)作輸入,也仍然存在一個(gè)設(shè)計(jì)上的問題:過多的玩家自由度與故事主旨表達(dá)之間的矛盾。一個(gè)故事想要說什么,很大程度是由在這個(gè)故事中作者引導(dǎo)觀眾去觀看的那個(gè)特定的角度所呈現(xiàn)出來的。如果玩家擁有過于強(qiáng)大的視角選擇權(quán),作者又怎么引導(dǎo)玩家去走進(jìn)這個(gè)故事呢。如果一個(gè)故事講述的是英雄救世,玩家卻沉迷于跟街上的路人扯淡,這顯然也不是作者想要的。因此,就還存在平衡玩家自由度和傳達(dá)故事主旨的問題。對(duì)于一個(gè)電子游戲而言,解決這兩個(gè)問題,從某種意義上說需要的是同一種技術(shù)——人工智能。對(duì)于提高玩家自由度的問題,我們需要的是一個(gè)能夠高效產(chǎn)生敘事內(nèi)容來應(yīng)對(duì)玩家輸入的人工智能系統(tǒng);對(duì)于平衡玩家自由度和傳達(dá)故事主旨的問題,我們需要的是一個(gè)能夠根據(jù)玩家的行為,智能地調(diào)整故事中其他元素(例如NPC)的行動(dòng)來將故事發(fā)展重新引導(dǎo)回重點(diǎn)的“實(shí)時(shí)導(dǎo)演”?,F(xiàn)今的人工智能技術(shù)雖然還遠(yuǎn)遠(yuǎn)沒有發(fā)展到能夠完美解決這兩個(gè)問題的程度,但至少有一些前沿的研究向我們展示了一些看起來有前途的新方法。下面我就為大家介紹幾種這些新方法,希望能夠?qū)Ω魑华?dú)立游戲開發(fā)者帶來啟發(fā)。極限脫出:善人死亡的故事流程分支首先,我們來討論有關(guān)高效產(chǎn)生敘事內(nèi)容來應(yīng)對(duì)玩家交互輸入的問題。在現(xiàn)今大部分的游戲中,敘事內(nèi)容往往都是人為提前安排好的(Predefined)——作者提前定義好玩家可能作出的動(dòng)作(例如文字冒險(xiǎn)游戲中的文字選擇支),然后將每個(gè)動(dòng)作發(fā)生后的敘事內(nèi)容(例如文字冒險(xiǎn)游戲中的故事分支)定義好。這種產(chǎn)生敘事內(nèi)容的方式就像是給一個(gè)三維立方體的每個(gè)可能被觀察的角度都拍一張二維照片,然后給定觀察的角度輸出對(duì)應(yīng)的那張照片,以此來創(chuàng)造觀察者觀察的是一個(gè)三維物體的錯(cuò)覺。這種方法顯然是非常低效的,并且因此只能支持很有限的觀察角度(玩家動(dòng)作)。一種真正可行的方法,很顯然是保存三維立方體的數(shù)據(jù)本身,而不是它每個(gè)角度的投影。這個(gè)三維立方體的數(shù)據(jù)本身能夠比它各個(gè)角度的投影精練得多地定義它在各個(gè)角度如何呈現(xiàn)它自身。然而在講故事這個(gè)上下文中,什么才是對(duì)應(yīng)于“三維立方體本身的數(shù)據(jù)”的內(nèi)容呢?如何定義一個(gè)故事?維基百科上的解釋是這樣的:“Anarrativeorstoryisanyreportofconnectedevents,realorimaginary,presentedinasequenceofwrittenorspokenwords,and/orstillormovingimages.”譯文:一個(gè)敘事或故事是指對(duì)一組真實(shí)的或想象的關(guān)聯(lián)著的事件的報(bào)告,它的表達(dá)形式可以是口頭或書寫的文字序列,或者靜態(tài)/動(dòng)態(tài)的圖片序列。由此我們看出,一個(gè)文字或圖片的序列僅僅是故事的表達(dá)形式,它的核心在于一組關(guān)聯(lián)著的事件。而這組關(guān)聯(lián)著的事件在故事中以何種順序出現(xiàn),各自以何種形式出現(xiàn),很多時(shí)候可以說并不是故事本質(zhì)性的屬性,它們是可以根據(jù)玩家的動(dòng)作而變化從而產(chǎn)生觀眾參與性(audienceagency)的。一個(gè)故事本質(zhì)性的屬性,僅僅是那組關(guān)聯(lián)著的事件以及它們?nèi)绾侮P(guān)聯(lián)。事件間關(guān)聯(lián)的方式可能會(huì)對(duì)事件出現(xiàn)的順序和方式有所限制(例如壞人必須先作惡,英雄才能去救世但大多時(shí)候這些限制不會(huì)嚴(yán)格到讓故事只能以一種序列出現(xiàn)件的順序之外,許多事件也可以以很多不同的形式出現(xiàn)而并不會(huì)影響故事的發(fā)是路人A還是路人B其實(shí)無關(guān)緊要。因此我們發(fā)現(xiàn),要定義一個(gè)故事,只需要定義這個(gè)故事中發(fā)生的事件和這些事件相互關(guān)聯(lián)的方式。在有了這個(gè)相當(dāng)于“三維立方體本身”的故事定義之后,我們就可以根據(jù)玩家的行動(dòng)去動(dòng)態(tài)地生成從他的那個(gè)特定角度看到的故事發(fā)展序列。例如,惡人先殺人還是先放火可以由玩家先去殺人的現(xiàn)場還是先去放火的現(xiàn)場決定;惡人是擄走路人A還是擄走路人B可以由這兩個(gè)路人對(duì)玩家的好感度決定(誰好感度高就擄走誰,以此來刺激玩家的情感投入)。那么在實(shí)際的游戲開發(fā)中,我們?nèi)绾芜@樣來定義故事呢?為了敘事系統(tǒng)的靈活性,事件的粒度(GrainSize)必須足夠?。粸榱讼到y(tǒng)能夠?qū)崟r(shí)計(jì)算敘事內(nèi)容,事件對(duì)于整個(gè)故事發(fā)展的影響必須定義清楚;事件最好還能具有一定重用性以降低人力需求(Reusability)。事件之間要盡可能解藕(Decouple)以實(shí)現(xiàn)模塊化的自由組合;事件與它的呈現(xiàn)方式之間要解藕以方便呈現(xiàn)方式的豐富度和日后的擴(kuò)展;事件呈現(xiàn)方式與其描述最好也能夠解藕,這樣我們甚至能請(qǐng)不同風(fēng)格的作家來模塊化地寫故事(想象未來的某個(gè)文字冒險(xiǎn)游戲甚至可以在選項(xiàng)中配置敘事是類似于編程的活動(dòng),因?yàn)榇藭r(shí)我們的故事已經(jīng)不是一段扁平的文字序列,而是一個(gè)立體、有機(jī)的系統(tǒng)。我們這種意義上的寫故事也不再是一個(gè)純粹的文學(xué)創(chuàng)作活動(dòng),而變得充滿了工程學(xué)。ABL語言為了能夠進(jìn)行這種工程學(xué)式的寫故事,其實(shí)已經(jīng)有很多類似于編程語言的“故事編寫語言”被開發(fā)出來,這里我來介紹其中的一種:ABL(ABehaviorLanguage,讀作“able”)[1]。這個(gè)語言的語法類似于JAVA,它也有用JAVA編寫的編譯器,能夠被編譯成可以在游戲中指揮三維模型動(dòng)作和游戲變量變化等的控制程序。ABL中的基本單位被稱作Behaviour,一個(gè)Behaviour代表一個(gè)敘事目標(biāo),其內(nèi)容則是一個(gè)不可分割的動(dòng)作序列,代表要完成這個(gè)敘事目標(biāo)需要執(zhí)行的步驟。實(shí)現(xiàn)目標(biāo)需要的執(zhí)行的步驟可抽象可具體,可以具體到一個(gè)玩家能看到的游戲中的事件,也可以是另一個(gè)子目標(biāo)。如果一個(gè)Behavior下的所有步驟都成功執(zhí)行,系統(tǒng)就認(rèn)為這個(gè)Behaviour所代表的敘事目標(biāo)已經(jīng)達(dá)成。在Behaviour的生命中我們也可以定義一個(gè)步驟成功或失敗情況下的操作。通過定義不同層次的Behaviour,我們就能夠?qū)崿F(xiàn)不同層次的事件極其呈現(xiàn)方式的定義。ABL這個(gè)語言被應(yīng)用在了一個(gè)試驗(yàn)性交互式敘事游戲Fa?ade[2]中,有興趣的讀者可以訪問鏈接:/。1.sequentialbehaviorAnswerTheDoor(){2.WMEw;3.with(success_test{w=(KnockWME)})wait;4.actsigh();5.subgoalOpenDoor();6.subgoalGreetGuest();7.mental_act{deleteWME(w);}復(fù)制代碼上面所介紹的這種方法,最終還是得由人來描寫具體的文字描述(或CG等其它類型的描述)。其實(shí)即使在這個(gè)方面也仍然有提高效率的余地。當(dāng)我們的敘事基本模塊粒度變得足夠小以后,我們就可以實(shí)現(xiàn)“模塊化的寫作”,這意味著我們可以用很多人來分工進(jìn)行寫作。如果模塊之間接口定義得足夠好,每個(gè)人甚至都不需要了解其他人寫的那部分故事。甚至我們還可以考慮群眾外包式的寫作(Crowdsourcing)。事實(shí)上也已經(jīng)有人在嘗試這樣的創(chuàng)作模式。另一種可能性則是借助現(xiàn)在熱門的深度學(xué)習(xí)(DeepLearning)??紤]一個(gè)架構(gòu)類似于谷歌自動(dòng)翻譯機(jī)(或者谷歌最新的Sequence2Sequence技術(shù))原理的神經(jīng)網(wǎng)絡(luò),構(gòu)建這樣一個(gè)訓(xùn)練數(shù)據(jù)集:它的輸入是使用類似于ABL這樣的語言定義的一組事件,輸出則是一種特定文學(xué)風(fēng)格的對(duì)這組事件的文字描述。如果神經(jīng)網(wǎng)絡(luò)的模型合適并且訓(xùn)練數(shù)據(jù)集足夠龐大,這個(gè)神經(jīng)網(wǎng)絡(luò)也許就能學(xué)會(huì)使用這種敘事風(fēng)格來將ABL腳本渲染成文字。在有了定義故事本質(zhì)的事件和事件間的關(guān)聯(lián)之后,剩下的問題就是如何結(jié)合玩家的實(shí)時(shí)動(dòng)作輸入來生成敘事內(nèi)容:給定玩家對(duì)系統(tǒng)的輸入,我們需要選擇下一個(gè)發(fā)生的事件,并確定這個(gè)事件的呈現(xiàn)方式;而做選擇的原則則是盡可能同時(shí)最大化玩家的參與感和故事的精彩程度——我們發(fā)現(xiàn),這實(shí)際上是個(gè)人工智能領(lǐng)域經(jīng)典的規(guī)劃問題(PlanningProblem)。故事的精彩程度取決于很多要素,其中很重要的一個(gè)要素是玩家看到的事件于故事主題的相關(guān)性。因此只要我們明確定義了每個(gè)事件對(duì)于故事發(fā)展的作用,就能夠通過現(xiàn)有的技術(shù)計(jì)算出對(duì)故事發(fā)展貢獻(xiàn)最大的事件。前面所介紹的內(nèi)容,很大程度上已經(jīng)解決了這個(gè)問題。而玩家的參與感則又跟游戲系統(tǒng)中某些局部的要素對(duì)他/她的反饋相關(guān),其中非常重要的是NPC對(duì)玩家的反應(yīng)。在傳統(tǒng)的游戲中,雖然NPC與玩家之間能夠有互動(dòng),但在這些互動(dòng)中NPC做出反應(yīng)的依據(jù)往往只有玩家在當(dāng)前互動(dòng)中的那幾個(gè)動(dòng)作——NPC對(duì)玩家遠(yuǎn)遠(yuǎn)沒有一個(gè)完整的認(rèn)知。例如在某個(gè)劇情事件中,NPC可能會(huì)問玩家是選擇戰(zhàn)斗方式解決還是和平解決,根據(jù)玩家的那一個(gè)選擇,NPC對(duì)此再作出反應(yīng)。這種處理方式很可能造成NPC的態(tài)度上的不一致,也常常暴露出NPC對(duì)玩家的無知——玩家可能在這個(gè)事件之前剛剛進(jìn)行過瘋狂的殺戮,然而就因?yàn)樵谶@個(gè)選項(xiàng)中選擇了和平解決,就受到NPC“愛好和平”的稱贊。更加成熟一些的做法是使用某些數(shù)值來判定玩家的行為類型,例如在UnderTale中,游戲會(huì)存儲(chǔ)玩家殺死的怪物數(shù)量來判定玩家的暴力程度。但這種方法畢竟無法處理更加復(fù)雜的玩家信息。在理想的情況下,我們希望能建立一個(gè)代表玩家的數(shù)學(xué)模型,隨著游戲的進(jìn)行更新這個(gè)模型讓它越來貼近玩家在游戲中表現(xiàn)出的方方面面的個(gè)性。由這個(gè)模型來決定NPC的態(tài)度,而不是讓玩家簡單地通過幾個(gè)文字選項(xiàng)就讓NPC相信他/她是怎樣的人。關(guān)于如何進(jìn)行這種

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論