construct2 ajax,Construct2/3
我們常在游戲中見到各種各樣的劇情對(duì)話,電子游戲從最早的RPG類對(duì)話框演變至今,已經(jīng)產(chǎn)生了無(wú)數(shù)種解決方案。但總的來(lái)說(shuō),常見的對(duì)話分為兩類:
最常見的galgame對(duì)話,可以看到較大的立繪圖表現(xiàn)人物的表情動(dòng)態(tài)(甚至動(dòng)畫),以及標(biāo)記角色的名字和對(duì)話內(nèi)容。
或者也有一些游戲使用pop的懸浮對(duì)話窗口直接表現(xiàn),對(duì)話框與角色位置匹配,同時(shí)不干擾游戲環(huán)境的演出效果(例如可以一邊行走戰(zhàn)斗,pop框還依然出現(xiàn))
分析制作方案,有2個(gè)要素:
1 資源
2 配置
由于各個(gè)游戲的需求不同所以我們先從最低需求的資源和配置來(lái)講。
對(duì)話框資源,我們最低限度需要有一個(gè)框體和一個(gè)對(duì)話文本框。框體用來(lái)做文本的背景,文本框顯示對(duì)話內(nèi)容。然后再根據(jù)游戲需求的不同添加立繪用的圖片加載框,角色名文本框等。
如果是pop類型的對(duì)話,也可能需要添加箭頭資源(也可能需要區(qū)分對(duì)話和思考的箭頭和泡泡)
配置部分則比較復(fù)雜,首先我們需要先理解對(duì)話的最基本結(jié)構(gòu)。
這部分很好理解,對(duì)話就是一句一句的文本,說(shuō)完一句進(jìn)入下一句,所以我們可以將對(duì)話的配置設(shè)計(jì)為一連串的對(duì)話ID,比如ID 1000代表第一句話,這句完了就說(shuō)ID為1001的那句:
(請(qǐng)暫時(shí)忽略文本里奇怪的標(biāo)簽)
很好,這樣只要將這一串ID里的文本順序播放,一句完畢顯示下一句,最基礎(chǔ)的對(duì)話框配置就做好了。
接下來(lái),我們需要添加一個(gè)標(biāo)記,表示1014這句話是這段對(duì)話的最后一句,這樣程序當(dāng)識(shí)別到這個(gè)標(biāo)記就會(huì)在這段對(duì)話結(jié)束的時(shí)候關(guān)閉對(duì)話框,例如next標(biāo)記0表示這是段落的最后一句話:
在添加了文本后,我們也需要區(qū)分對(duì)話是誰(shuí)說(shuō)的。所以還需要添加名字和立繪的配置列:
如圖role標(biāo)識(shí)立繪用圖的名字
side標(biāo)識(shí)立繪在對(duì)話框的左側(cè)還是右側(cè),在制作的時(shí)候會(huì)自動(dòng)反轉(zhuǎn)立繪
name標(biāo)識(shí)說(shuō)話的角色名字,顯示在對(duì)話前面
關(guān)于文本打字效果:
文本打字效果是對(duì)話框的常用效果,可以有效的控制閱讀節(jié)奏,同時(shí)在單調(diào)的對(duì)話中有限的制造一些演出效果。
打字效果可以控制打字速度,并且可以在每個(gè)字出現(xiàn)的時(shí)候產(chǎn)生各種效果(參考逆轉(zhuǎn)裁判里的經(jīng)典用法)
基于打字效果產(chǎn)生的更多的細(xì)節(jié):
speed標(biāo)記打字速度,0.5表示0.5秒打一個(gè)字
audio標(biāo)記打字音效,即每個(gè)字出現(xiàn)時(shí)播放的音效
shake標(biāo)記打字震屏效果,填寫的數(shù)值表示震屏強(qiáng)度
auto標(biāo)記文本是否自動(dòng)下一句話(可以參考逆轉(zhuǎn)裁判中犯人崩潰的橋段),一旦標(biāo)記為auto則不需要按鍵也會(huì)自動(dòng)進(jìn)入下一句
size標(biāo)記文本的字號(hào)
以下是最終效果(不過(guò)聽不到聲音啦)
更多擴(kuò)展:flash 閃屏
bg 改變背景圖
bgm 改變背景音樂(lè)
posXY 改變立繪坐標(biāo)使之偏移
effect 產(chǎn)生某個(gè)特定的特效
pop類對(duì)話看起來(lái)比固定對(duì)話框要簡(jiǎn)單,不需要顯示名字,沒有立繪,受限于pop的尺寸文本也不可能做很多。但實(shí)際上,pop類對(duì)話比固定對(duì)話復(fù)雜很多:pop框的尺寸需要和文本量匹配
需要與說(shuō)話的角色位置對(duì)應(yīng),甚至跟隨移動(dòng)
pop對(duì)話的時(shí)候,可能需要與角色行為產(chǎn)生關(guān)系(例如更換動(dòng)畫)
pop對(duì)話也許根本不會(huì)暫停游戲
POP框體的制作
在講述pop的制作方法前,需要普及一下pop的資源制作方法和在UI中的使用類型。
在UI控件中有一類名為9patch的控件。和普通的精靈圖片不同,9patch可以將一個(gè)圖片按井字分隔為9個(gè)格子,如下圖:
如果是普通的精靈圖片,在縮放的時(shí)候就會(huì)產(chǎn)生形變和模糊
而9patch控件可以將保證4個(gè)角不變的情況下自由拉伸并且不會(huì)模糊,實(shí)現(xiàn)固定倒角的隨意縮放的圓角矩形:
一旦基礎(chǔ)的pop對(duì)話框資源搞定以后,后面的事情就會(huì)簡(jiǎn)單很多:
當(dāng)對(duì)話框彈出后將pop框體+箭頭+文本創(chuàng)建在指定的角色上方(固定的點(diǎn))
與上次講的固定框體一樣使用打字的方法講文本一個(gè)一個(gè)打出來(lái)
限制文本框的寬度,超過(guò)一定寬度(或有主動(dòng)的文本回車)自動(dòng)換行
將pop框的尺寸與文本框的尺寸匹配(當(dāng)然四周需要留一些空間)
控制好框體的坐標(biāo)(匹配對(duì)話框箭頭的位置,如果變大需要向上“長(zhǎng)”)
對(duì)話框縮放的效果(目前GIF幀率低看不出來(lái),其實(shí)框體的變化是更有“彈性”)
上圖是完成的效果,因?yàn)橥祽?#xff0c;所以pop框采用了和固定框不一樣的創(chuàng)建方式。每說(shuō)一句話都會(huì)刪掉當(dāng)前框體,下句話重新創(chuàng)建pop框體并從最小尺寸開始。
對(duì)話與角色匹配
由于pop對(duì)話的方案需要讓框體出現(xiàn)在指定的角色頭上,所以需要為對(duì)話配置對(duì)應(yīng)角色的字符(比如特定的名字),由程序邏輯找到那個(gè)角色并創(chuàng)建對(duì)話框(例如場(chǎng)景中有5個(gè)一樣的NPC,我們只想讓第二個(gè)NPC說(shuō)話,這種時(shí)候就需要為他配置特殊的標(biāo)記才能找到他)
角色是否受控?游戲是否暫停?
根據(jù)情況,可以將角色置為不受控狀態(tài),或干脆暫停游戲播放固定的對(duì)話或演繹動(dòng)畫劇情。但也有非劇情對(duì)話的情況(比如敵人或NPC的隨機(jī)喊話),需要區(qū)分處理。
對(duì)話鏡頭
可以配置對(duì)話出現(xiàn)時(shí)鏡頭拉到說(shuō)話角色的位置,用于跟蹤對(duì)話主體或跨屏演出效果
劇情段落
除了NPC或敵人不受控制的自言自語(yǔ)外(程序設(shè)置的某種規(guī)律的隨機(jī)說(shuō)話),大部分的對(duì)話都是受劇情控制的綜合演出效果,這種時(shí)候往往只依靠對(duì)話表不太夠用。
實(shí)際上當(dāng)游戲中對(duì)話文本過(guò)多的時(shí)候,可能還需要再高一個(gè)層級(jí)的配置,用來(lái)更方便的管理對(duì)話的開始和結(jié)束,對(duì)話的類型方案等等。如果對(duì)話叫做talk的話,這個(gè)配置可以稱之為story。
在story中最基本的配置除了ID外便是talk的開始ID和結(jié)束ID。還可以配置這段對(duì)話是固定對(duì)話框還是pop對(duì)話框,甚至產(chǎn)生某些混合方案,例如控制劇情之間的銜接關(guān)系。
演出效果的相關(guān)內(nèi)容:對(duì)話
動(dòng)畫控制
鏡頭控制
行為控制(例如移動(dòng)或跳到某處)
功能控制(例如某些開關(guān)自動(dòng)開啟)
效果(特效,音樂(lè)音效)
其實(shí)大部分我還沒做,慢慢實(shí)現(xiàn)吧……orz
所以先這樣吧……
總結(jié)
以上是生活随笔為你收集整理的construct2 ajax,Construct2/3的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 幻兽天下修复版java_宠物天下四-幻兽
- 下一篇: 乱入的'\0'