unity调用live2d模型

Star Dust Lv1

下载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;
}
}
}
  • 标题: unity调用live2d模型
  • 作者: Star Dust
  • 创建于 : 2025-11-28 22:40:55
  • 更新于 : 2026-04-25 11:20:15
  • 链接: https://starblog.qzz.io/2025/11/28/unity调用live2d模型/
  • 版权声明: 版权所有 © Star Dust,禁止转载。
评论
目录
unity调用live2d模型