下载Live2dSDK
以下是链接
1
| https://www.live2d.com/zh-CHS/sdk/download/unity/
|
然后选择同意软件使用授权协议以及隐私政策,选择下载最新版。(网络肯能会有点卡,建议开加速器)
下载完成后就可以导入unity使用了(记得导入后重启unity编辑器,很多人就是因为不重启unity编辑器导致各种问题)
准备一个live2d模型(可以从这个网站下载)
1
| https://www.aplaybox.com/model/model
|
直接拖入unity中,SDK会自动生成预制件,然后就可以拖到场景中进行使用了。
基本使用
在组件中可以看到很多的属性可以通过控制组件来使模型动起来
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| using Live2D.Cubism.Core; using UnityEngine;
public class Live2DModelController : MonoBehaviour { private CubismModel Model; private CubismParameter ParamAngleX; private CubismParameter ParamAngleY; private CubismParameter ParamEyeLOpen; private CubismParameter ParamEyeROpen; private CubismParameter ParamMouthOpenY;
private void Start() { Model = GetComponent<CubismModel>(); if (Model == null) { return; }
ParamAngleX = Model.Parameters.FindById("ParamAngleX"); ParamAngleY = Model.Parameters.FindById("ParamAngleY"); ParamEyeLOpen = Model.Parameters.FindById("ParamEyeLOpen"); ParamEyeROpen = Model.Parameters.FindById("ParamEyeROpen"); ParamMouthOpenY = Model.Parameters.FindById("ParamMouthOpenY"); }
private void Update() { if (Model == null) { return; }
float horizontal = Input.GetAxis("Mouse X") * 30f; float vertical = Input.GetAxis("Mouse Y") * 30f;
SetParameterValue(ParamAngleX, horizontal); SetParameterValue(ParamAngleY, vertical); SetParameterValue(ParamMouthOpenY, Mathf.Abs(Mathf.Sin(Time.time * 3f)));
float blink = Mathf.PingPong(Time.time * 2f, 1f) > 0.95f ? 0f : 1f; SetParameterValue(ParamEyeLOpen, blink); SetParameterValue(ParamEyeROpen, blink); }
public void SetPartOpacity(string partId, float opacity) { if (Model == null) { return; }
CubismPart part = Model.Parts.FindById(partId); if (part != null) { part.Opacity = opacity; } }
public void SetParameterValueById(string parameterId, float value) { if (Model == null) { return; }
CubismParameter parameter = Model.Parameters.FindById(parameterId); if (parameter != null) { parameter.Value = value; } }
private void SetParameterValue(CubismParameter parameter, float value) { if (parameter != null) { parameter.Value = value; } } }
|