mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-08-23 11:05:29 -05:00
RotateParticleSpringboneRuntime
This commit is contained in:
@@ -549,18 +549,6 @@ namespace UniVRM10.Cloth.Viewer
|
||||
}
|
||||
}
|
||||
|
||||
static IMaterialDescriptorGenerator GetMaterialDescriptorGenerator(bool useUrp)
|
||||
{
|
||||
if (useUrp)
|
||||
{
|
||||
return new UrpGltfMaterialDescriptorGenerator();
|
||||
}
|
||||
else
|
||||
{
|
||||
return new BuiltInGltfMaterialDescriptorGenerator();
|
||||
}
|
||||
}
|
||||
|
||||
async void LoadModel(string path)
|
||||
{
|
||||
// cleanup
|
||||
@@ -578,7 +566,12 @@ namespace UniVRM10.Cloth.Viewer
|
||||
showMeshes: false,
|
||||
awaitCaller: m_useAsync.enabled ? (IAwaitCaller)new RuntimeOnlyAwaitCaller() : (IAwaitCaller)new ImmediateCaller(),
|
||||
materialGenerator: GetVrmMaterialDescriptorGenerator(true),
|
||||
vrmMetaInformationCallback: m_texts.UpdateMeta);
|
||||
vrmMetaInformationCallback: m_texts.UpdateMeta,
|
||||
springboneRuntime: new RotateParticle.RotateParticleSpringboneRuntime((instance) =>
|
||||
{
|
||||
var autoSetup = instance.transform.gameObject.AddComponent<RotateParticle.HumanoidAutoSetup>();
|
||||
autoSetup.Reset();
|
||||
}));
|
||||
if (cancellationToken.IsCancellationRequested)
|
||||
{
|
||||
UnityObjectDestroyer.DestroyRuntimeOrEditor(vrm10Instance.gameObject);
|
||||
@@ -591,18 +584,6 @@ namespace UniVRM10.Cloth.Viewer
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// RotateParticle.HumanoidAutoSetup
|
||||
//
|
||||
|
||||
// clear
|
||||
vrm10Instance.SpringBone = new Vrm10InstanceSpringBone();
|
||||
|
||||
var autoSetup = vrm10Instance.transform.gameObject.AddComponent<RotateParticle.HumanoidAutoSetup>();
|
||||
autoSetup.Reset();
|
||||
var system = vrm10Instance.GetComponent<RotateParticle.RotateParticleSystem>();
|
||||
system.Initialize();
|
||||
|
||||
var instance = vrm10Instance.GetComponent<RuntimeGltfInstance>();
|
||||
instance.ShowMeshes();
|
||||
instance.EnableUpdateWhenOffscreen();
|
||||
|
||||
@@ -2,7 +2,10 @@
|
||||
"name": "RotateParticle",
|
||||
"rootNamespace": "",
|
||||
"references": [
|
||||
"GUID:0138a2c7639266f45b948ea162125de5"
|
||||
"GUID:0138a2c7639266f45b948ea162125de5",
|
||||
"GUID:3e5d614bc16b50d41bd94c8d7444ca46",
|
||||
"GUID:e47c917724578cc43b5506c17a27e9a0",
|
||||
"GUID:8d76e605759c3f64a957d63ef96ada7c"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using UniGLTF;
|
||||
using UniGLTF.SpringBoneJobs.Blittables;
|
||||
using UnityEngine;
|
||||
using UniVRM10;
|
||||
|
||||
namespace RotateParticle
|
||||
{
|
||||
/// <summary>
|
||||
/// SpcriptedImporter 経由の import 向け。
|
||||
/// NativeArray の確保や DontDestroyOnLoad を回避。
|
||||
/// </summary>
|
||||
public class RotateParticleSpringboneRuntime : IVrm10SpringBoneRuntime
|
||||
{
|
||||
Action<Vrm10Instance> _setup;
|
||||
|
||||
public RotateParticleSpringboneRuntime(Action<Vrm10Instance> setup)
|
||||
{
|
||||
_setup = setup;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
|
||||
public Task InitializeAsync(Vrm10Instance instance, IAwaitCaller awaitCaller)
|
||||
{
|
||||
if (_setup != null)
|
||||
{
|
||||
_setup(instance);
|
||||
}
|
||||
var system = instance.GetComponent<RotateParticleSystem>();
|
||||
system.Initialize();
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public void Process()
|
||||
{
|
||||
}
|
||||
|
||||
public bool ReconstructSpringBone()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public void RestoreInitialTransform()
|
||||
{
|
||||
}
|
||||
|
||||
public void SetJointLevel(Transform joint, BlittableJointMutable jointSettings)
|
||||
{
|
||||
}
|
||||
|
||||
public void SetModelLevel(Transform modelRoot, BlittableModelLevel modelSettings)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: edc50c3e3f828de469f8ae6af569c174
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user