在unity項目中使用live2D,以及Render Texture的簡單使用。


  ===注意===

  這篇文章說的是老版本的live2d,新版本的尚在研究中

  ==========

 

  好久沒有寫博客了,前段時間找到了一個二次元手游開發的工作,職位是客戶端主程(雖然工資不高就是了),作為個unity新人現在想想還是有點后怕,不過車到山前必有路嘛。

  言歸正傳,這次的項目中用到了live2d,總的來說導入的很順利,也沒碰上什么坑~

  首先這里有對應的教程和sdk下載(需翻牆):

  http://www.live2d.com/usermanual/cubism2_cn/lets-do-it/my-first-lapp.html

  SDK里包括了幾個demo,不要一口氣把里面的東西全部拖到unity工程里,會報錯,sample文件夾下面的每個文件夾都是單獨的工程,每次選一個就行了。

  官網里提供了兩種繪制live2d模型的方式,分別是L2D_RENDER_DRAW_MESH和L2D_RENDER_DRAW_MESH_NOW。看了一下文檔是比較推薦第二種的,這種方式用sdk里提供的方式在OnRenderObject方法中進行繪制,同時官方文檔也提到了這種方法的缺點在於不能在live2d上繪制其他物體。

  當然在項目中肯定不能愣愣的把live2d放在最上層,好在unity提供了一個叫做Render Texture的東西。這個東西簡單的理解就是一張圖片資源,但里面的東西是動態的,可以把相機接受到的畫面放在上面。(你想到了什么?對,很多游戲的小地圖就是用一個高空相機,再把畫面用RenderTexture轉換到GUI里面)

  那么首先在自己的Resources目錄下新建一個RenderTexture,隨后在場景中新建一個相機和一個放live2d腳本的空物體。

  相機上的設置如下:

  

  空物體設置:

  

  然后運行,發現RenderTexture里沒顯示東西。

  怎么回事呢?原因在於改變物體的Layer不能改變Live2D影像的Layer,而是要在代碼里加一句

  live2DModel.setLayer(int layer);

  這樣才能設置live2d影像的layer。

  最后就可以把設置好的RenderTexture當做普通圖片那樣來顯示影像了,也可以很簡單的做層級管理。

  最后附上實現圖,可以看到圖像很好的嵌入到UI的層級中了,嘿嘿~

  

話說回來,這玩意還挺吃資源的。。本來項目能跑1000幀的,加上去就只能跑300幀了...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM