zoukankan      html  css  js  c++  java
  • 在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帧了...

  • 相关阅读:
    robots.txt
    procdump和mimikatz工具配合破解windows账户口令
    通过vbs脚本控制方向盘按键
    批处理删除文件或文件夹代码
    彩色线条雨特效html代码
    secureCRT
    chrome 更新flash插件
    python命令行下安装redis客户端
    FastJson使用
    Redis 学习(二)
  • 原文地址:https://www.cnblogs.com/Swallowtail/p/6514421.html
Copyright © 2011-2022 走看看