[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門


3樓貓 發佈時間:2024-05-06 00:22:10 作者:RedstoneT Language

嗨,五一假期接近尾聲,大家有什麼收穫嗎~

上一期內容我們講了從解包到提取live2D的曲折經歷,這一期Live2D的內容我簡單的講一講這幾天入門Live2DViewerEX實現遊戲效果的經歷,從模仿到創新的過程~我的經驗希望可以幫到想要DIY桌寵的XD們!

這一期是還原篇!主要是為了還原遊戲中的功能而生~

在開始介紹軟件之前我們簡單的回顧一下《不雙x就去世》遊戲本體內桌寵的效果

1.待機文本:顧名思義,就是沒有觸摸互動時桌寵自然說的文本,示例如下

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第0張

待機文本

2.觸摸互動:也很好理解,就是點擊特定區域時角色做出的動作、文本、表情、語音等等,在本遊戲中只有動作和文本。

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第1張

觸摸文本

3.回答互動文本:有一些文本可以互動選項作答,如下

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第2張

選擇母文本

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

選擇子文本

OK!既然瞭解到一共有三種類型需要還原,那我們不妨轉步Live2DViewerEX,點擊啟動會得到以下畫面~

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

steam啟動選項

Live2DViewerEX:軟件主程序,可以瀏覽創意工坊下載喜歡的桌寵等等,這一部分我們不使用這一模塊。

EX工作室:本期的主要程序,用於編輯和發佈桌寵,功能還是比較強大的,並且易於上手~

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

以上便是EX工作室的UI畫面,我們這一次使用的是Live2DCubism製作的模型,所以選擇【Live2D編輯器】~

有如下提示,導入MOC或Json文件/選擇模型文件夾

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

到了這一步我們不妨簡單的分析一下Live2D文件夾中出現的那些文件格式的含義。


[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

.moc3

.moc3:這是我們上一期花了九牛二虎之力獲得的主模型文件,地位相當於建模中的模型本身。


[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

.model3.json文件部分預覽


.model3.json:用於說明其餘部分的相對路徑,相當於要找一個電腦中的文件,必須要知道路徑,比如Steam.exe位於D:/STEAM/steam.exe,只要告訴別人這個路徑別人就可以找到這個文件,而這個原生的.model3.json就相當於讓“讀取器”知道那些關鍵的部件都在什麼地方。


[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張
[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

.physics.json:用於賦予模型部件物理效果,比如小仙姑的頭髮、衣服、絲帶、穗子等等就應該適當隨風飄動,顯然這是還原效果非常關鍵的一個部分。

.cdi3.json:用於分層後部件分塊、分組、分區方便後續管理與編輯

除此之外還可能有.pose3.json.exp3.json等文件,根據字面意思分別指的是姿勢、表情文件,《雙修》遊戲模型比較簡單,其內沒有這些文件,所以暫時不做贅述。

——————————————————————

說完這些,我們回到EX界面,現在便明白了,若讀取.moc3本質上讀取的是模型本身,讀取model3.json讀取的是路徑指示的所有文件,而文件夾顧名思義就是讀取文件夾所有的程序,但是比較蠢有時候讀取不出畫面

所以我在這裡建議大家直接讀取.model3.json文件並且在其上面修改,可以省去選擇掛載程序的過程。

讀取後我得到了以下畫面

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

左邊的意義都很顯然,值得一提的是Ctrl+拖動可以移動模型,但僅限於EX內編輯,在桌面上是不可以的!

關鍵的是右邊部分,點擊motion文件便可以預覽動畫~

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

摸頭動畫~

摸完之後變成了遊戲內默認的待機動作

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

於此,我遇到了編輯中的第一個問題

可為什麼剛進入讀取的時候並不是這個姿勢呢?

經過之後的學習我得到的答案是:這個模型並沒有設置”Start動作“,我猜想製作人設計上的互動都是在Unity開發中賦予的,而並非集成在Live2D的(至少我並沒有找到類似包含motion分配的.json),關於Start動作我會在後文細細解釋。

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

目前情況的GIF動畫

   (上圖是一個GIF文件,如果看不到可以點擊查看原圖~)

  就此我由發現了一個問題,我如今的模型是如圖所示的,遊戲中的模型是這樣的,細心的你是否發現了區別呢?

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

遊戲中的效果

   沒錯差距正是手臂衣服四肢部件的擺動~

   而到這就不得不開始配置.json文件了,我們點擊右邊的“配置文件”,再點擊“編輯”,由此我們進入了這麼一個界面

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

  選擇【控制器】一欄,得到如下畫面,我用紅框框出了我要細說的幾個部分

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

Controller面板

鼠標追蹤:默認打開 涉及鼠標視線跟隨,很多模型都有把頭朝向鼠標的設計,打開後便可以實現,但是Live2DViewerEX默認情況下是[點擊跟隨]而非一直跟隨。 【建議開啟】

眨眼:默認打開 首先要確定原模型的待機動作是否包含眨眼,之後再決定是否要打開眨眼。但根據我的經驗,打開後可以讓眨眼更加自然,比方說打開後我選取了眨眼間隔的樣本,分別大約是4s,7s,6s,這樣無規則的交錯我認為可以讓模型更加寫實一些,不過偶爾會遇到眨眼兩下的現象。【按需開啟】

自動呼吸:默認打開 讓身體各部件出現起伏,模仿呼吸的起伏。 【建議開啟】

小幅度動作:默認打開 使得模型身體幾乎不起伏,髮絲飄帶等等都不會飄動。 【建議關閉】

修改後模型的動作就和遊戲中待機一模一樣了!問題解決!終於可以開始還原互動了~

最重要的一部分來了!

點擊動作一欄:

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

【動作組】相當於動作的一個集合,相當於文件夾;

【動作】相當於其中的文件;

這兩個都很重要,先來講講動作組,點擊加號-預設,會看到以下幾類預設種類:

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

分別是Idle、Tap、TapArea、Start、Shake、Tick、Leave;

官方對此的描述是這樣的:

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

提醒一件事:預設不可以改名!不可以改名!不可以改名!改名就會失去功能!除非是表內的格式

根據上手體驗下來最重要的三個預設是Start(啟動動畫)、Idle(待機動畫)和Tick(定時播片),我們先創造一個Start動作組,可以看到下面有一個“層級”

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

什麼是“層級”?

不妨我們把其理解為”時間“,解釋為”同一個時間下不能發生兩個事情“,如果想同時發生兩件事,要把事件AB分開在不同時間激活。或許這個比喻並非特別準確,但可以協助理解。本篇中我們不會用到這個層級來做分層操作。

我們新建了一個待機動作,並將其與stand1動作綁定起來,這樣在打開模型的時候就會運行這個動作

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

但是!如果你沒有勾選【動作循環】,那麼當這個動作播放完之後會停格在最後一幀(所以不會回到那個叉腰的模型動作)

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

有心的讀者可能會想,只要勾選start循環就能實現待機動畫,那麼Idle預設存在的意義是什麼呢?

答案是Idle中的文件會自動銜接在任何動作結束之後;而start只是在開啟時不斷循環,當動作結束後便不會再運行,會停格在那個動作的最後一幀。

(Q.Start、Idle如果使用的是同一個動作,Start動作組是否有必要存在? A.就我個人認為,沒必要

接下來我們講一下”Tick預設“,本質上是一個到時間就播放動畫的預設,默認間隔是1分鐘,可以通過TickX(tick_x)的辦法修改這個間隔。比如Tick6就是六分鐘一播。

(官方的描述是”X處填寫數字,範圍1-60對於同時符合條件的(如第2分鐘的Tick1和Tick2)隨機選擇一個事件進行觸發“,所以我們可以通過新建兩個X不同的tick動作組來實現不規則時間的說話,可以讓角色的說話更加自然)(我的設想中兩組的X為質數就可以讓隨機度達到最高,比如3/5,具體的可以開動腦筋自己研究)

顯然,可以用這個預設來實現角色待機時的自言自語,

嗎?

不知道大家是否想過,遊戲中待機是會出現不同文本的,因此我們我們新建三個對應待機動作STAND1、2、3作為事件。

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

位於Tick動作組下的動作會【隨機】挑選一個播放,但我們有沒有辦法增加某一個動作出現的頻率呢?容我向你介紹【比重】功能

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

我個人更願意將其理解為”權重“,但是無傷大雅,這個數字可以在1-999中修改,比如待機1的比重為1、待機2的比重為2、待機3的比重為3,那麼三者的概率分別為1/6、2/6、3/6,還是很好理解的,如果你更偏向於想看到某一個動畫,不妨將其比重拉高,提高其出現的概率。

我個人選擇不修改比重,讓其隨機生成。

那麼該如何還原遊戲中那些文本呢?我們只需要在文本框內填入想說的話,他就會在執行動作的時候播放這句話(可以用鼠標拖拽這個文本框的位置,值得一提的是桌面上的這個文本框出現的位置是絕對位置,不會隨著模型的移動而移動)

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

到這裡我們就已經完成第一步”待機文本“的還原了~咱們趁熱打鐵完成觸摸反饋!

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

製作人已經預設了幾個觸摸區域,我們回到動作組界面選擇TapArea

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

為什麼沒有可選的點擊區域???

因為點擊區域必須有命名,在上上張圖就有寫到 ”名稱【必須】“,只有給了名字這個點擊區域才能被引用,才能生效。

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張
[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

按照上面的辦法,這樣就可以實現點擊文本+動畫了!

【值得一提的是,如果文本很長但是持續時間很短,可以修改文本時長,文本時長(文本持續時長)的單位是毫秒(1秒=1000毫秒)】

同樣的有一種辦法,也可以實現點擊互動,並且我更建議大家使用我接下來說的辦法。

建立一個【沒有預設】的動作組,加入你想要的觸摸動畫+文本

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張
[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

”TapArea“辦法只要觸摸就會反饋,而”點擊時動作-無預設動作組"並不會受限於點擊某個區域才發生,比如你想要點擊不同區域但想前往同動作組,這樣就可以省下很多功夫,而且只要選擇整個動作組的效果是和前者一模一樣的,唯一的問題是如果修改了動作組的名字要重新綁定。(當然仁者見仁智者見智,每個人的思考邏輯不同,只要結果相同就是對的。)

最後就是文本互動了!

遊戲內有這樣的互動按鈕,要你選擇一個選項給出不同的結果。

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

比如我選擇遊戲中一個最複雜的互動,我用流程圖給各位寫一下

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

其中粉紅色為小仙姑的臺詞,綠色的是主角的臺詞

於是我們要開始調用【選擇項】,看圖就可以理解

[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張
[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張
[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

我們在這裡引入一個【優先度】的概念,數值為2-9,注意是2-9,就算輸入0、1都會變成默認的2,低優先度的行為不能打斷,舉個例子,

默認情況下idle為2,觸摸也為2,觸摸動作的開始打斷了正在進行的待機動畫。

一般情況下選擇按鈕都可以立刻中斷當下動作,前往選擇按鈕指示的動作,但是當母事件的優先度大於選擇事件時,選擇將無法打斷,就算勾選了【可被中斷】也會繼續。

什麼情況下需要勾選可被打斷呢?

我認為是觸摸動作和文本,觸摸一次後要看完動畫才能再點讓人覺得有點遲鈍,當然具體情況具體分析~

(一般情況下如果想縮短動作持續時間可以修改【動作時長】來實現)

什麼情況下不能勾選可被打斷呢?

優先度相同的特定互動事件發生的情況下

根據實驗:

當事件A優先度小於B時,不論B是否勾選,A都無法打斷B;

當事件A優先度等於B時,B只有勾選【可被打斷】,A才可以打斷B;

當事件A優先度大於B時,不論B是否勾選,A都可以打斷B

在A是B的選項的情況下:

當事件A優先度小於B時,不論B是否勾選,A都可以打斷B;

當事件A優先度等於B時,不論B是否勾選,A都可以打斷B;

當事件A優先度大於B時,不論B是否勾選,A都可以打斷B;

得知如下信息:

1.是否勾選【可被打斷】隻影響{同}優先度的事件(優先度9除外);

2.選擇項優先度永遠最高,且不受任何影響,點擊即切換

(筆者編寫本篇的時候剛巧碰見一個問題,所有互動全部失靈,只有調到優先9才可以用,觸摸後又可以使用了,這就不得不提到我自己的架構了,當時沒有采用idle做待機,而是start循環,並且把所有事件的下一項都改成了start,莫名的調試之後得到了解決,我將這個問題歸於錯誤的架構邏輯和濫用優先度,所以請不要濫用優先度,有可能導致意想不到的後果。)


礙於篇幅,這一篇只能講這麼多了,都是一些入門難度的瞭解和寶貴(?)的經驗,但是讀到這裡你就可以還原遊戲內90%效果,並且可以自己創新加入要素,包括我V1.2錄入的109支籤也是通過以上流程完成的。

下一篇開始要把(稍微有點)難的端上來了!包括if/elif的實現、浮點變量實戰、引入布爾變量的思路、用流程圖和Python語法優化自己的編程思路,主要是一些思路優化和深入使用,還是比較需要腦子和精力的,期待一下吧!


最後簡單提一下我對live2D領域探索的體驗,我認為其入門簡單(不包括美術部分),稍微學習就可以上手創造很多東西,很有成就感,有點類似於我學Python和blender,非常鼓勵大家當作樂趣入坑哇~


[硬核]教你給桌寵融入自己的想法!Live2DViewerEX零基礎入門-第3張

本期封面

都看到這了點個贊吧~


© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com