Dialogue System for Unity製作劇情,我們需要一個什麼樣的需求

我們先看下改版的Dialogue System for Unity要完成我們仙劍demo的效果。




好了,忙忙活活,看到效果了吧,如果對效果不滿意,想要考慮做一個電視劇級別的劇情繫統,那麼建議在製作過程中,招聘一名專業的分鏡師,這就不在我們討論的範圍內了,以上這個東西是怎麼實現的呢,就是我們前面用得到東西,我已經把整個需要的東西寫好了做成預製件了,想使用,只要拖預製件進場景,然後改模型,設計劇情就可以了,另外,這幾天玩了下新劍俠傳奇這款遊戲,爲比較下當下的過場遊戲劇情繫統,新劍俠傳奇用的在同一場景觸發模式來完成劇情,就是在同一場景中設置很多開關(bool變量),當進入這個劇情時,這個開關開啓,然後,當化身進入碰撞區域時觸發劇情,當完成劇情,開關關閉,這種模式有個好處,就是劇情觸發不需要加載多餘的資源,不用場景轉換,缺點嗎,同一場景添加過多的開關真的好嗎?另外因爲劇情中除了劇情中必要的人物之外,有大量不需要的物品人物存在,可能造成測試的工作量加大,因爲不可控因素可能增加,我舉個例子,比如街道上要觸發一個劇情,但開始街道上有一個自動尋路的路人,當劇情觸發時,如果這個路人恰好走到對話的幾個人中間,那就對我們需要的劇情產生了遮擋,這個雖然我們在測試中會發現改動,比如控制npc活動路線等等,但人爲的加大工作量,我覺得,沒有必要,不過如果遊戲一定需要這樣,那麼說一下怎麼製作,首先在場景中放一個空預製件,在這個預製件上面綁一個觸發器(一會我會講什麼東西),然後把預製件拉到預製件文件夾,刪除場景中的,在需要的地方做一個觸發器(碰撞檢測),當觸發時,instance這個預製件。

前面寫了12篇文章講來講去都是這個劇情繫統,他到底是怎麼做的,我們現在開始講解,首先看下,secne窗口是什麼樣的


我們從上圖中可以看到,場景中一共有菱紗和紫英兩個人物模型,hierarchy窗口中的heyangcheng和night water,directional light是場景環境,燈光,我們不考慮

我們點private hart看看紫英什麼樣字一個身上包裹着兩個球體,裏面的是膠囊碰撞體,外面的是幹什麼呢,我們看下屬性面板在紫英身上綁定了一個名爲ai的預製件,我們看下

上面綁的這些腳本都是幹什麼用的,具體參數,我們一會看,我們看下韓菱紗

setenabled ondialogue event是我們的觸發器trigger,是我們的觸發類型,其他類型還有bark,sequence等等,我們這裏是conversation,這個觸發器如何作用的呢紫英ai上面綁的

很直觀,事件發起者,接受者,在場景開始的時候觸發,因爲,我們劇情過程中,兩人交互是沒有停止的,所以好需要一個在劇情中的觸發器,其他的3個腳本是角色行爲控制,我們這裏只貼下我們回到菱紗身上幫了一個攝像機位置預製件over the shoulder

人物這樣我們就設計好了,怎麼讓兩個人物動起來呢,這裏我們要先添加場景控制器它上面掛在了一個Plademo1的datebase文件,也就是我們要設計的劇情腳本文件,我們就是靠他來完成對場景中模型身上綁定腳本的控制的,有朋友說我爲什麼沒有給模型改名,這個就是圖省事,可以在這個datebase裏面的選項中設定場景中需要的人物名稱,我們看下它裏面都有什麼如果需要修改,就在這改,其他的我們先跳過,直接看我們的劇情腳本很簡單,並不複雜,我講講具體條目中都寫了什麼首先看第一個條目,這是腳本的入口,什麼都沒有,可以考到只有一個函數none()第二個條目,是控制韓菱紗移動,,我們可以看到動畫控制函數animator和moveto兩個方法的套用,具體參數什麼意思,請參照我前一篇的api講解,其實就是韓菱紗開場就開始行走動作,第2秒開始走向gameaudio這個場景中的位置,持續8秒鐘,在第十秒的時候,停下來,動作改爲idle之後我們看到鏡頭切換給了紫英,紫英不同的是,有了對話另外方法中,有一個audio方法,這個方法就是我們的語音同步,當顯示上面的字幕時,紫英也會發出正常的說話聲音,因爲模型沒有面部骨骼綁定,所以口型同步沒有加,如果有模型,同樣可以實現表情同步,之後的對話其實都是依據這個模式,


好了我們看下場景中的gameaudio是什麼東西其實他就是場景中的一個空的gameobject,上面綁了一個audiosource組件,小夥伴要問了爲什麼不在韓菱紗和紫英身上幫這個呢,這是因爲,我們的對話是設定爲,當點擊鼠標左鍵在字幕上的時候跳過當前對話,如果在兩個人身上都綁定的話,要註銷上一個聲音控制,然後啓動下一個,這個在實際應用中很麻煩,在場景中儘量只用一個聲音的好處就是不會出混聲,比如,菱紗沒說完話,玩家點了跳過,結果紫英說話了, 這時有可能出現兩個聲音,要規避,需要寫格外的代碼,所以我們直接使用這種單一聲音來源,來解決

最後這個東西是官方提供的一個預製件,不過我做了修改,因爲修改的地方挺多,沒辦法貼出來,這個等全部的文章發完之後,我會放出源碼和工程文件,到時候大家自己研究,或者直接拖拽使用,好了這篇就到這裏。劇情結束之後,我們下一步講講換裝和武器穿戴,以及場景光線探測,shader的基礎東西,當然,還有些關於網絡的。




發佈了66 篇原創文章 · 獲贊 57 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章