Skip to content

Commit 4e3ccca

Browse files
committedFeb 3, 2024
Add MMD blend shape pass smoke test
1 parent dfccf40 commit 4e3ccca

File tree

4 files changed

+88
-0
lines changed

4 files changed

+88
-0
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using enitimeago.NonDestructiveMMD;
2+
using NUnit.Framework;
3+
4+
public class MakeBlendShapesPassTests : TestBase
5+
{
6+
// TODO: This is just a smoke test for now.
7+
[Test]
8+
public void RunPlugin_WithBasicAvatar()
9+
{
10+
var pass = new MakeBlendShapesPass();
11+
var avatar = CreateAvatarWithExpectedFaceName();
12+
13+
pass.Execute(avatar);
14+
}
15+
}

‎Packages/enitimeago.non-destructive-mmd/Tests/MakeBlendShapesPassTests.cs.meta

+11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
using System.Collections.Generic;
2+
using System.Linq;
3+
using enitimeago.NonDestructiveMMD;
4+
using nadena.dev.ndmf;
5+
using nadena.dev.ndmf.ui;
6+
using NUnit.Framework;
7+
using UnityEditor;
8+
using UnityEngine;
9+
using VRC.SDK3.Avatars.Components;
10+
11+
public class TestBase
12+
{
13+
private const string CoolBananaFbxGuid = "e8dbc158ea7fccf409d337796c179e11";
14+
15+
[SetUp]
16+
public virtual void Setup()
17+
{
18+
ErrorReport.Clear();
19+
ErrorReportWindow.DISABLE_WINDOW = true;
20+
}
21+
22+
[TearDown]
23+
public virtual void Teardown()
24+
{
25+
ErrorReportWindow.DISABLE_WINDOW = false;
26+
}
27+
28+
protected GameObject CreateAvatar()
29+
{
30+
string path = AssetDatabase.GUIDToAssetPath(CoolBananaFbxGuid);
31+
var avatarRootObject = Object.Instantiate(AssetDatabase.LoadAssetAtPath<GameObject>(path));
32+
var faceMeshRenderer = avatarRootObject.GetComponentInChildren<SkinnedMeshRenderer>();
33+
34+
var vrcAvatarDescriptor = avatarRootObject.AddComponent<VRCAvatarDescriptor>();
35+
vrcAvatarDescriptor.VisemeSkinnedMesh = faceMeshRenderer;
36+
37+
var mmdObject = new GameObject();
38+
mmdObject.transform.parent = avatarRootObject.transform;
39+
mmdObject.AddComponent<BlendShapeMappings>();
40+
41+
return avatarRootObject;
42+
}
43+
44+
protected GameObject CreateAvatarWithExpectedFaceName()
45+
{
46+
var avatarRootObject = CreateAvatar();
47+
var vrcAvatarDescriptor = avatarRootObject.GetComponent<VRCAvatarDescriptor>();
48+
vrcAvatarDescriptor.VisemeSkinnedMesh.gameObject.name = "Body";
49+
return avatarRootObject;
50+
}
51+
}

‎Packages/enitimeago.non-destructive-mmd/Tests/TestBase.cs.meta

+11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)