UniVRM/Assets/VRM10/Tests/ExpressionTests.cs
ousttrue a82dfd4611 Vrm10RuntimeControlRig は、正規化されたTPoseを受け取る責務に特化して単純化する。
初期回転を持つポーズの受付は、Vrm10BoneInitialRotation を使う別クラスに委譲する。
(次で作ります)
2023-02-20 13:54:12 +09:00

63 lines
1.9 KiB
C#

using System.Linq;
using NUnit.Framework;
using UnityEngine;
namespace UniVRM10.Test
{
public class ExpressionTests
{
[Test]
public void DuplicatedMaterialColorBindings()
{
var controller = TestAsset.LoadAlicia();
var src = controller.Vrm.Expression.Aa.MaterialColorBindings.ToList();
var renderers = controller.GetComponentsInChildren<Renderer>();
var name = renderers[0].sharedMaterials[0].name;
// add duplicate key
src.Add(new MaterialColorBinding
{
BindType = UniGLTF.Extensions.VRMC_vrm.MaterialColorType.color,
MaterialName = name,
TargetValue = default,
});
src.Add(new MaterialColorBinding
{
BindType = UniGLTF.Extensions.VRMC_vrm.MaterialColorType.color,
MaterialName = name,
TargetValue = default,
});
controller.Vrm.Expression.Aa.MaterialColorBindings = src.ToArray();
// ok if no exception
var r = new Vrm10Runtime(controller, useControlRig: false);
}
[Test]
public void DuplicatedMaterialUVBindings()
{
var controller = TestAsset.LoadAlicia();
var renderers = controller.GetComponentsInChildren<Renderer>();
var name = renderers[0].sharedMaterials[0].name;
// add duplicate key
var src = controller.Vrm.Expression.Aa.MaterialUVBindings.ToList();
src.Add(new MaterialUVBinding
{
MaterialName = name,
});
src.Add(new MaterialUVBinding
{
MaterialName = name,
});
controller.Vrm.Expression.Aa.MaterialUVBindings = src.ToArray();
// ok if no exception
var r = new Vrm10Runtime(controller, useControlRig: false);
}
}
}