• 在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帧了...

  • 相关阅读:
    领域驱动设计(Domain Driven Design)
    程序员的梦想:意图编程
    怎样才算是好的软件可维护性设计?
    微软的patternshare.org初步体验
    转:JDepend:管理代码依赖性
    MAB, 专用的amazon浏览器,有点意思!
    宾夕法尼亚大学沃顿商学院:沃顿知识在线
    我的笔记本的鼠标又乱跑了!寻求帮助!
    能否让博客园对Firefox支持得好一些!
    交互设计:《About Face 2.0》中译本精彩节选
  • 原文地址:https://www.cnblogs.com/Swallowtail/p/6514421.html
Copyright © 2020-2023  润新知