与二次元老婆邂逅的游戏的创建过程(一)

我们所用到的是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();
    }
}

在这里插入图片描述
然后我们调整一下相机和把一些东西拉入我们空物体挂的代码里
在这里插入图片描述
然后运行我们的女主角就可以显示出来了
在这里插入图片描述

我们的第一步就做好了
之后的部分我会慢慢更新
喜欢的可以一键三联(求求你们啦!这对我真的很重要!)

  • 24
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值