IVrm10SpringBoneRuntimeProvider

This commit is contained in:
ousttrue 2024-09-25 13:36:19 +09:00
parent 3bc6a672ec
commit 02c5224795
7 changed files with 78 additions and 3 deletions

View File

@ -119,9 +119,16 @@ namespace UniVRM10
{
if (m_springBoneRuntime == null)
{
// deafult に fallback
// TODO: scene に配置した prefab に SpringRuntime をカスタムする手段
m_springBoneRuntime = new Vrm10FastSpringboneRuntime();
var provider = GetComponent<IVrm10SpringBoneRuntimeProvider>();
if (provider != null)
{
m_springBoneRuntime = provider.CreateSpringBoneRuntime();
}
else
{
// deafult に fallback
m_springBoneRuntime = new Vrm10FastSpringboneRuntime();
}
m_springBoneRuntime.InitializeAsync(this, new ImmediateCaller());
}
return new Vrm10Runtime(this, useControlRig, m_springBoneRuntime);

View File

@ -0,0 +1,12 @@
using UnityEngine;
namespace UniVRM10
{
public class Vrm10FastSpringboneRuntimeProvider : MonoBehaviour, IVrm10SpringBoneRuntimeProvider
{
public IVrm10SpringBoneRuntime CreateSpringBoneRuntime()
{
return new Vrm10FastSpringboneRuntime();
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 78eaac730c64cbe419d42f7421340f9c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,12 @@
using UnityEngine;
namespace UniVRM10
{
public class Vrm10FastSpringboneRuntimeStandaloneProvider : MonoBehaviour, IVrm10SpringBoneRuntimeProvider
{
public IVrm10SpringBoneRuntime CreateSpringBoneRuntime()
{
return new Vrm10FastSpringboneRuntimeStandalone();
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: da3bdbc4223e46742876deeb0f5ee937
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,11 @@
namespace UniVRM10
{
/// <summary>
/// This is an interface to customize springboneruntime of VRM-1.0 placed in the scene.
/// see Vrm10Instance.MakeRuntime.
/// </summary>
public interface IVrm10SpringBoneRuntimeProvider
{
IVrm10SpringBoneRuntime CreateSpringBoneRuntime();
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 55c91a26d0d2f4a4291dca89268c729d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: