mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-06-03 06:24:46 -05:00
UniGTLF/Runtime/SpringBoneJobs from VRM10/Runtime/FastSpringBone
This commit is contained in:
parent
d526ac8323
commit
9c8c98a567
8
Assets/UniGLTF/Runtime/SpringBoneJobs.meta
Normal file
8
Assets/UniGLTF/Runtime/SpringBoneJobs.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e65343205e21bc24b98dbdb05ee56f01
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,8 +1,7 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace UniVRM10.FastSpringBones.Blittables
|
||||
namespace UniGLTF.SpringBoneJobs.Blittables
|
||||
{
|
||||
/// <summary>
|
||||
/// Blittableなコライダ
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
namespace UniVRM10.FastSpringBones.Blittables
|
||||
namespace UniGLTF.SpringBoneJobs.Blittables
|
||||
{
|
||||
public enum BlittableColliderType
|
||||
{
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
using UnityEngine;
|
||||
|
||||
namespace UniVRM10.FastSpringBones.Blittables
|
||||
namespace UniGLTF.SpringBoneJobs.Blittables
|
||||
{
|
||||
/// <summary>
|
||||
/// 外力等の毎フレーム更新されうる外部から与えられる情報
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace UniVRM10.FastSpringBones.Blittables
|
||||
namespace UniGLTF.SpringBoneJobs.Blittables
|
||||
{
|
||||
/// <summary>
|
||||
/// SpringBoneの各関節を表すデータ型
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace UniVRM10.FastSpringBones.Blittables
|
||||
namespace UniGLTF.SpringBoneJobs.Blittables
|
||||
{
|
||||
/// <summary>
|
||||
/// SpringBoneの各関節に紐付いた計算情報を表すデータ型
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
using System;
|
||||
|
||||
namespace UniVRM10.FastSpringBones.Blittables
|
||||
namespace UniGLTF.SpringBoneJobs.Blittables
|
||||
{
|
||||
[Serializable]
|
||||
public struct BlittableSpan
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
using System;
|
||||
|
||||
namespace UniVRM10.FastSpringBones.Blittables
|
||||
namespace UniGLTF.SpringBoneJobs.Blittables
|
||||
{
|
||||
/// <summary>
|
||||
/// 1本の毛束を表すデータ型
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace UniVRM10.FastSpringBones.Blittables
|
||||
namespace UniGLTF.SpringBoneJobs.Blittables
|
||||
{
|
||||
/// <summary>
|
||||
/// Transformの必要な機能だけを絞り、Blittableに対応させたクラス
|
||||
|
|
@ -6,12 +6,13 @@ using Unity.Jobs;
|
|||
using UnityEngine;
|
||||
using UnityEngine.Jobs;
|
||||
using UnityEngine.Profiling;
|
||||
using UniVRM10.FastSpringBones.Blittables;
|
||||
using UniGLTF.SpringBoneJobs.Blittables;
|
||||
using UniGLTF.SpringBoneJobs.InputPorts;
|
||||
#if ENABLE_SPRINGBONE_BURST
|
||||
using Unity.Burst;
|
||||
#endif
|
||||
|
||||
namespace UniVRM10.FastSpringBones.System
|
||||
namespace UniGLTF.SpringBoneJobs
|
||||
{
|
||||
/// <summary>
|
||||
/// FastSpringBoneの処理に利用するバッファを全て結合して持つクラス
|
||||
|
|
@ -5,9 +5,9 @@ using Unity.Collections;
|
|||
using Unity.Collections.LowLevel.Unsafe;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Profiling;
|
||||
using UniVRM10.FastSpringBones.Blittables;
|
||||
using UniGLTF.SpringBoneJobs.Blittables;
|
||||
|
||||
namespace UniVRM10.FastSpringBones.System
|
||||
namespace UniGLTF.SpringBoneJobs.InputPorts
|
||||
{
|
||||
/// <summary>
|
||||
/// ひとつのVRMに紐づくFastSpringBoneに関連したバッファを保持するクラス
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
using UniVRM10.FastSpringBones.Blittables;
|
||||
using UniGLTF.SpringBoneJobs.Blittables;
|
||||
|
||||
namespace UniVRM10.FastSpringBones.System
|
||||
namespace UniGLTF.SpringBoneJobs.InputPorts
|
||||
{
|
||||
[Serializable]
|
||||
public struct FastSpringBoneCollider
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
using UniVRM10.FastSpringBones.Blittables;
|
||||
using UniGLTF.SpringBoneJobs.Blittables;
|
||||
|
||||
namespace UniVRM10.FastSpringBones.System
|
||||
namespace UniGLTF.SpringBoneJobs.InputPorts
|
||||
{
|
||||
[Serializable]
|
||||
public struct FastSpringBoneJoint
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace UniVRM10.FastSpringBones.System
|
||||
namespace UniGLTF.SpringBoneJobs.InputPorts
|
||||
{
|
||||
[Serializable]
|
||||
public struct FastSpringBoneSpring
|
||||
33
Assets/UniGLTF/Runtime/SpringBoneJobs/PullTransformJob.cs
Normal file
33
Assets/UniGLTF/Runtime/SpringBoneJobs/PullTransformJob.cs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
using Unity.Collections;
|
||||
using UnityEngine.Jobs;
|
||||
using UniGLTF.SpringBoneJobs.Blittables;
|
||||
#if ENABLE_SPRINGBONE_BURST
|
||||
using Unity.Burst;
|
||||
#endif
|
||||
|
||||
namespace UniGLTF.SpringBoneJobs
|
||||
{
|
||||
|
||||
#if ENABLE_SPRINGBONE_BURST
|
||||
[BurstCompile]
|
||||
#endif
|
||||
public struct PullTransformJob : IJobParallelForTransform
|
||||
{
|
||||
[WriteOnly] public NativeArray<BlittableTransform> Transforms;
|
||||
|
||||
public void Execute(int index, TransformAccess transform)
|
||||
{
|
||||
Transforms[index] = new BlittableTransform
|
||||
{
|
||||
position = transform.position,
|
||||
rotation = transform.rotation,
|
||||
localPosition = transform.localPosition,
|
||||
localRotation = transform.localRotation,
|
||||
localScale = transform.localScale,
|
||||
localToWorldMatrix = transform.localToWorldMatrix,
|
||||
worldToLocalMatrix = transform.worldToLocalMatrix
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b9fd53b4431b41909c1b1d882a2d446b
|
||||
timeCreated: 1633072084
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
using Unity.Collections;
|
||||
using UnityEngine.Jobs;
|
||||
using UniVRM10.FastSpringBones.Blittables;
|
||||
using UniGLTF.SpringBoneJobs.Blittables;
|
||||
#if ENABLE_SPRINGBONE_BURST
|
||||
using Unity.Burst;
|
||||
#endif
|
||||
|
||||
namespace UniVRM10.FastSpringBones.System
|
||||
namespace UniGLTF.SpringBoneJobs
|
||||
{
|
||||
#if ENABLE_SPRINGBONE_BURST
|
||||
[BurstCompile]
|
||||
14
Assets/UniGLTF/Runtime/SpringBoneJobs/SpringBoneJobs.asmdef
Normal file
14
Assets/UniGLTF/Runtime/SpringBoneJobs/SpringBoneJobs.asmdef
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"name": "SpringBoneJobs",
|
||||
"rootNamespace": "",
|
||||
"references": [],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": true,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 3e5d614bc16b50d41bd94c8d7444ca46
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -2,12 +2,12 @@ using System;
|
|||
using Unity.Collections;
|
||||
using Unity.Jobs;
|
||||
using UnityEngine;
|
||||
using UniVRM10.FastSpringBones.Blittables;
|
||||
using UniGLTF.SpringBoneJobs.Blittables;
|
||||
#if ENABLE_SPRINGBONE_BURST
|
||||
using Unity.Burst;
|
||||
#endif
|
||||
|
||||
namespace UniVRM10.FastSpringBones.System
|
||||
namespace UniGLTF.SpringBoneJobs
|
||||
{
|
||||
#if ENABLE_SPRINGBONE_BURST
|
||||
[BurstCompile]
|
||||
|
|
@ -4,8 +4,8 @@ using System.Linq;
|
|||
using UniGLTF;
|
||||
using UniGLTF.Utils;
|
||||
using UnityEngine;
|
||||
using UniVRM10.FastSpringBones.Blittables;
|
||||
using UniVRM10.FastSpringBones.System;
|
||||
using UniGLTF.SpringBoneJobs.Blittables;
|
||||
using UniGLTF.SpringBoneJobs.InputPorts;
|
||||
|
||||
namespace UniVRM10
|
||||
{
|
||||
|
|
@ -13,7 +13,7 @@ namespace UniVRM10
|
|||
{
|
||||
private readonly Vrm10Instance m_instance;
|
||||
private readonly IReadOnlyDictionary<Transform, TransformState> m_defaultTransformStates;
|
||||
private readonly FastSpringBoneService m_fastSpringBoneService;
|
||||
private readonly FastSpringBones.FastSpringBoneService m_fastSpringBoneService;
|
||||
private FastSpringBoneSpring[] m_springs;
|
||||
private Quaternion[] m_initialLocalRotations;
|
||||
private FastSpringBoneBuffer m_fastSpringBoneBuffer;
|
||||
|
|
@ -47,7 +47,7 @@ namespace UniVRM10
|
|||
// NOTE: FastSpringBoneService は UnitTest などでは動作しない
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
m_fastSpringBoneService = FastSpringBoneService.Instance;
|
||||
m_fastSpringBoneService = FastSpringBones.FastSpringBoneService.Instance;
|
||||
ReconstructSpringBone();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
{
|
||||
"name": "FastSpringBone10",
|
||||
"rootNamespace": "",
|
||||
"references": [
|
||||
"GUID:2665a8d13d1b3f18800f46e256720795"
|
||||
"GUID:2665a8d13d1b3f18800f46e256720795",
|
||||
"GUID:3e5d614bc16b50d41bd94c8d7444ca46"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
using System;
|
||||
using UniGLTF.SpringBoneJobs;
|
||||
using Unity.Jobs;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Jobs;
|
||||
|
||||
namespace UniVRM10.FastSpringBones.System
|
||||
namespace UniVRM10.FastSpringBones
|
||||
{
|
||||
public sealed class FastSpringBoneScheduler : IDisposable
|
||||
{
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
using UniGLTF.SpringBoneJobs;
|
||||
using UnityEngine;
|
||||
|
||||
namespace UniVRM10.FastSpringBones.System
|
||||
namespace UniVRM10.FastSpringBones
|
||||
{
|
||||
[DefaultExecutionOrder(11010)]
|
||||
/// <summary>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
using Unity.Collections;
|
||||
using UnityEngine.Jobs;
|
||||
using UniVRM10.FastSpringBones.Blittables;
|
||||
using UniGLTF.SpringBoneJobs.Blittables;
|
||||
#if ENABLE_SPRINGBONE_BURST
|
||||
using Unity.Burst;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,3 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b9fd53b4431b41909c1b1d882a2d446b
|
||||
timeCreated: 1633072084
|
||||
fileFormatVersion: 2
|
||||
guid: 6cbbe7ad561feca4fb8f91f999755d9e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
|
|||
|
|
@ -4,13 +4,12 @@
|
|||
"references": [
|
||||
"GUID:2ef84b520212e174a94668c7a0862d3b",
|
||||
"GUID:8d76e605759c3f64a957d63ef96ada7c",
|
||||
"GUID:da3e51d19d51a544fa14d43fee843098",
|
||||
"GUID:bce005214fa49654d93927908c15b1f2",
|
||||
"GUID:0aaf403bd13871a44b7127aef2695ff8",
|
||||
"GUID:b7aa47b240b57de44a4b2021c143c9bf",
|
||||
"GUID:f2ca1407928ebdc4bbe7765cc278be44",
|
||||
"GUID:2665a8d13d1b3f18800f46e256720795",
|
||||
"GUID:1cd941934d098654fa21a13f28346412"
|
||||
"GUID:1cd941934d098654fa21a13f28346412",
|
||||
"GUID:3e5d614bc16b50d41bd94c8d7444ca46"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user