Cubism SDK‎ > ‎入門‎ > ‎

04. 與其它系統的連結

(※藍色部分為2013/10/03的主要追加條目)

如需使用Live2D與其它公司的系統(遊戲引擎等)做連結使用,本頁面記載應最先確認的重點內容。
SDK已對應了Unitycocos2d-x,此處所載內容則整理了上述環境以外的相關資訊
        此外,如果Live2D是在各平台的標準作業環境下進行使用,亦可略過此處內容。
             倘若以下的操作、繪圖能在其他系統實現的話連結成功的可能性會較高。

Live2D初始化與釋放記憶體

執行Live2D::init( )可以幫Live2D初始化。
  執行Live2D::dispose()來釋放記憶體並卸載函式庫。(通常遊戲途中不需要卸載)


記憶體管理

為了節省Live2D所使用的記憶體(CPUGPU),請由外部定義記憶體配置並於Live2D初始化時(Live2D::init())進行登錄。
        Live2D  的記憶體管理員會要求至少4K以上的記憶體。


模型、貼圖的讀取與初始化

Live2D僅提供繪圖功能,並不進行資源管理。在設計上,資源管理是由外部程式碼或遊戲引擎進行。
  • 模型獨立的資料將由Live2D的外部進行檔案讀取。將bite列轉到函式庫後初始化。
  • 至於貼圖,請於Live2D外先將貼圖初始化,再登錄進Live2D。

開啟動作、表情等

運用點擊等事件呼叫Live2D的動畫、表情變化命令。
        Live2D內不會處理執行緒安全,故請不要多線程同時更新模型資料與繪圖。


模型每一的更新與繪圖

每一透過上述的初始化後可對各模型發布以下命令。
  • 設定模型的各項參數、動畫資料的開始、停止等
  • 模型update()處理(主要為CPU演算)
  • 模型draw()處理(主要為多邊形繪圖)詳述於後


繪圖的細節

有別於一般的3D運算(使用depth buffer的繪圖法)Live2D是運用平面多邊形(含半透明貼圖)從背面按順序重疊的混合繪圖的方式來表現。(好比Photoshop的圖層表現用在3D樣子)

具體的繪圖設定、內容如下
  • Depth Test預設關閉(多邊形可個別更改Z值來繪圖)
  • Shade基本上只處裡貼圖Alpha合成
  • 運用頂點排列、UV排列、目錄排列繪製附有貼圖的多邊形

各種繪圖命令將於OpenGL等各平台的3D命令中途由Live2D模型draw()呼叫來執行,繪圖命令將於Live2D函式庫中加密呼繪圖部分的原始碼雖然沒有開放。但如有需要,可簽訂特別契約另行提供。詳情請洽技術支援。

・・・
如果想要把物件與3D直接描繪在同一個畫面時,處理方式與先用Live2D螢幕外緩衝區(Off-screen Buffer)繪圖後再描繪到畫面上有些不同;想將Live2D的角色變成半透明狀態時,採用下述2螢幕外緩衝區是必要的

    1.於畫面上直接用Live2D繪圖

先繪製不透明的3D多邊形後再執行Live2D的繪圖命令。Live2D上使用一般的深度緩衝(Depth Buffer)製作被前後3D物件夾住的狀態是有難度的。需要相當熟練的技術。2D的遊戲上,如不需要將角色用半透明的方式表示,通常可以使用此方法。

    2.螢幕外緩衝區中用Live2D繪圖的方式

先在Frame Buffer Object(FBO)螢幕外緩衝區中用Live2D繪圖,再描繪到畫面中。下列程序操作,以FBO為例說明:

2-1 在透明的FBO中用Live2D繪圖
2-2 FBO在畫面中繪圖(等同於描繪一般帶透明的貼圖)
先在FBO中用Live2D繪圖後,再將FBO調成半透明在畫面中繪圖,就可以將Live2D的模型半透明化。(如果採取直接在一個畫面上繪製的方式,設定成半透明時,會滲透到各層。例如臉變成半透明而看到後面頭髮的現象。)

螢幕外緩衝區,貼圖未經過預增值處理 (premultiplied,事先把透明度alpha值乘上RGB色碼的儲存形式)1. 顏色會有若干差異。2. 角色周圍會有些許的雜色現象。

コメント