我们所用到的是unity2018 和Live2d
unity和live2d可以到官网下载
live2d可以在下边的网盘里下载
链接:https://pan.baidu.com/s/1s6hhoWUt_BVK2NXgBUpyKQ
提取码:1234
下载安装后点击进入选择第四个
首先我们创建一个新的项目
然后我们需要导入三个文件(我发到网盘里了叫live2D-SDK)
找到framework , lib , tool
把这三个文件拖入unity(如果失败了可以删掉重新导入)
然后我们下载模型
我们可以在官网下载也可以用我网盘里的
这里我们使用的就是 Epsilon
下载好后把Epsilon文件拖入unity
我们先创一个文件夹Scripts用来保存我们的代码
然后在Scripts文件夹中创建一个c#脚本我们给脚本起名为live2dModel
我们先创建一个空物体
然后起名为Live2dModel
之后把脚本拉入空物体
然后我们在unity里打开Epsilon里面的runtime文件夹
在文件夹的空白处右键点击选中Show in explorer就会出现一个文件夹
然后我们点击里面的runtime文件夹进入选中我们的模型文件Epsilon.moc文件
复制粘贴一份然后给复制后的文件加上后缀bytes并且删掉副本二字
然后我们就可以读取文件了
之后我们为了显示我们的女主角所以就开始写代码吧
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using live2d;
public class live2Dmodel : MonoBehaviour {
public TextAsset modelFile;
// Use this for initialization
void Start () {
//初始化
Live2D.init();
//读取模型(二进制)
TextAsset mocFile = Resources.Load<TextAsset>("Epsilon/runtime/Epsilon.moc");
Live2DModelUnity.loadModel(modelFile.bytes);
}
// Update is called once per frame
void Update () {
}
}
读取完之后我们就可以注释掉TextAsset 的那一行代码了
然后我们与贴图建立联系和指定显示尺寸
最终的代码是这样的
在这里插入代码片using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using live2d;
public class live2dModel : MonoBehaviour {
public TextAsset modelFile;
public Texture2D[] textures;
private Live2DModelUnity live2DModel;
private Matrix4x4 live2DCanvasPos;
// Use this for initialization
void Start () {
//初始化
Live2D.init();
//读取模型
//TextAsset modelFile = Resources.Load<TextAsset>("Epsilon/runtime/Epsilon.moc");
live2DModel = Live2DModelUnity.loadModel(modelFile.bytes);
//与贴图建立联系
Live2DModelUnity.loadModel(modelFile.bytes);
for (int i = 0; i < textures.Length; i++)
{
live2DModel.setTexture(i, textures[i]);
}
//指定显示位置与尺寸(实用正交矩阵与相关API显示图像,再由游戏物体的位置和摄像机的size调整到合适的位置)
float modelWidth = live2DModel.getCanvasWidth();
live2DCanvasPos = Matrix4x4.Ortho(0, modelWidth, modelWidth, 0, -50, 50);
}
// Update is called once per frame
void Update () {
//模型位置(矩阵形式的局部坐标转换成世界坐标)
live2DModel.setMatrix(transform.localToWorldMatrix * live2DCanvasPos);
//更新模型定点等
live2DModel.update();
}
private void OnRenderObject()
{
live2DModel.draw();
}
}
然后我们调整一下相机和把一些东西拉入我们空物体挂的代码里
然后运行我们的女主角就可以显示出来了
我们的第一步就做好了
之后的部分我会慢慢更新
喜欢的可以一键三联(求求你们啦!这对我真的很重要!)