UniVRM/Assets/VRM10/Runtime/Components/VrmAnimationInstance/VrmAnimationInstance.cs
2023-06-14 16:45:42 +09:00

31 lines
1011 B
C#

using UniHumanoid;
using UnityEngine;
namespace UniVRM10
{
public class VrmAnimationInstance : MonoBehaviour
{
public SkinnedMeshRenderer BoxMan;
public (INormalizedPoseProvider, ITPoseProvider) ControlRig;
public void Initialize()
{
var humanoid = gameObject.AddComponent<Humanoid>();
if (humanoid.AssignBonesFromAnimator())
{
// require: transform is T-Pose
var provider = new InitRotationPoseProvider(transform, humanoid);
ControlRig = (provider, provider);
// create SkinnedMesh for bone visualize
var animator = GetComponent<Animator>();
BoxMan = SkeletonMeshUtility.CreateRenderer(animator);
var material = new Material(Shader.Find("Standard"));
BoxMan.sharedMaterial = material;
var mesh = BoxMan.sharedMesh;
mesh.name = "box-man";
}
}
}
}