Live2D学习
是一种使用一系列连续的2d图像让图像看起像3d风格的绘图渲染技术。
在MyChild中的主人公就使用了该技术来实现一系列动作。非常适合需要不同方法与主角互动的游戏。
游戏中主人公的玩耍,吃饭 ,睡觉一系列动作以及鼠标点击主角和跟随鼠标转动等互动操作。
Live2DSDK环境配置:
Live2D.init(); //初始化(只在最初调用一次)
//Live2D.dispose(); //释放live2d占用的资源
加载模型:
1.直接加载模型
Live2DModelUnity.loadModel(Application.dataPath + "/Resources/Model/Epsilon/runtime/Epsilon.moc");//读取模型(加载moc文件后缀moc一定要)
2.通过二进制文件加载
将moc文件复制一份并将后缀上加上.bytes
TextAsset mocFile = R
esources.Load<TextAsset>("Model/Epsilon/runtime/Epsilon.moc");
Live2DModelUnity.loadModel(mocFile.bytes);
加载贴图:
和加载模型同理加载贴图。
live2dModel.setTexture("贴图索引" , ”贴图资源“);
显示模型:
private Matrix4x4 live2DCanvasPos; //可理解为画布位置 指定显示位置和尺寸(使用正交矩阵与相关API显示图像,在由游戏物体的位置和摄像机的size调整图像到合适的位置) float modelWidth = live2dModel.getCanvasWidth(); //正交投影矩阵 live2DCanvasPos = Matrix4x4.Ortho(0, modelWidth, modelWidth, 0, -50, 50);
之后就是在update中设置模型显示位置
//设置模型显示位置 live2dModel.setMatrix(transform.localToWorldMatrix * live2DCanvasPos); live2dModel.update();//更新模型可以更新的任何信息
最后
private void OnRenderObject() { live2dModel.draw(); //显示模型 }
模型贴图加载之后,就是让它动起来。
加载动作源文件:
可public出去直接拖上去,也可以代码加载。
将动作源文件加载成Live2DMotion类型的动作。
public TextAsset[] motionFiles; //动作源文件 private Live2DMotion[] motions; //加载源文件之后的动作 motions = new Live2DMotion[motionFiles.Length]; //通过加载源文件来加载动作 for (int i = 0; i < motions.Length; i++) { motions[i] = Live2DMotion.loadMotion(motion