mirror of
				https://github.com/maxartz15/VertexAnimation.git
				synced 2025-11-04 10:25:44 +01:00 
			
		
		
		
	Fixed for Entities 1.0
This commit is contained in:
		@@ -14,25 +14,25 @@ namespace TAO.VertexAnimation.Editor
 | 
			
		||||
				parent = PrefabUtility.LoadPrefabContents(path);
 | 
			
		||||
 | 
			
		||||
				// Check setup.
 | 
			
		||||
				if (!parent.TryGetComponent(out LODGroup _))
 | 
			
		||||
				{
 | 
			
		||||
					parent.AddComponent<LODGroup>();
 | 
			
		||||
				}
 | 
			
		||||
				//if (!parent.TryGetComponent(out LODGroup _))
 | 
			
		||||
				//{
 | 
			
		||||
				//	parent.AddComponent<LODGroup>();
 | 
			
		||||
				//}
 | 
			
		||||
 | 
			
		||||
				if (!parent.TryGetComponent(out VA_AnimatorComponentAuthoring _))
 | 
			
		||||
				{
 | 
			
		||||
					parent.AddComponent<VA_AnimatorComponentAuthoring>();
 | 
			
		||||
				}
 | 
			
		||||
				//if (!parent.TryGetComponent(out VA_AnimatorComponentAuthoring _))
 | 
			
		||||
				//{
 | 
			
		||||
				//	parent.AddComponent<VA_AnimatorComponentAuthoring>();
 | 
			
		||||
				//}
 | 
			
		||||
 | 
			
		||||
				if (!parent.TryGetComponent(out Unity.Entities.ConvertToEntity _))
 | 
			
		||||
				{
 | 
			
		||||
					parent.AddComponent<Unity.Entities.ConvertToEntity>();
 | 
			
		||||
				}
 | 
			
		||||
				//if (!parent.TryGetComponent(out Unity.Entities.ConvertToEntity _))
 | 
			
		||||
				//{
 | 
			
		||||
				//	parent.AddComponent<Unity.Entities.ConvertToEntity>();
 | 
			
		||||
				//}
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				// Create parent.
 | 
			
		||||
				parent = new GameObject(name, typeof(LODGroup), typeof(VA_AnimatorComponentAuthoring), typeof(Unity.Entities.ConvertToEntity));
 | 
			
		||||
				parent = new GameObject(name);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Create all LODs.
 | 
			
		||||
@@ -66,16 +66,16 @@ namespace TAO.VertexAnimation.Editor
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				child.transform.SetParent(parent.transform);
 | 
			
		||||
				lods[i] = new LOD(lodTransitions[i], new Renderer[1] { mr });
 | 
			
		||||
				//lods[i] = new LOD(lodTransitions[i], new Renderer[1] { mr });
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			var lodGroup = parent.GetComponent<LODGroup>();
 | 
			
		||||
			lodGroup.SetLODs(lods);
 | 
			
		||||
			lodGroup.RecalculateBounds();
 | 
			
		||||
			//var lodGroup = parent.GetComponent<LODGroup>();
 | 
			
		||||
			//lodGroup.SetLODs(lods);
 | 
			
		||||
			//lodGroup.RecalculateBounds();
 | 
			
		||||
 | 
			
		||||
			// Create prefab.
 | 
			
		||||
			GameObject prefab = PrefabUtility.SaveAsPrefabAssetAndConnect(parent, path, InteractionMode.AutomatedAction);
 | 
			
		||||
			GameObject.DestroyImmediate(parent);
 | 
			
		||||
			//GameObject.DestroyImmediate(parent);
 | 
			
		||||
 | 
			
		||||
			return prefab;
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using UnityEditor;
 | 
			
		||||
using UnityEngine.Experimental.Rendering;
 | 
			
		||||
 | 
			
		||||
namespace TAO.VertexAnimation.Editor
 | 
			
		||||
{
 | 
			
		||||
@@ -155,6 +156,9 @@ namespace TAO.VertexAnimation.Editor
 | 
			
		||||
			// Get info.
 | 
			
		||||
			NamingConventionUtils.PositionMapInfo info = bakedData.GetPositionMap.name.GetTextureInfo();
 | 
			
		||||
 | 
			
		||||
			bakedData.mesh.SetTriangles( bakedData.mesh.triangles, 0 );
 | 
			
		||||
			meshes = new[] { bakedData.mesh };
 | 
			
		||||
			
 | 
			
		||||
			// Generate Material
 | 
			
		||||
			if (!AssetDatabaseUtils.HasChildAsset(this, material))
 | 
			
		||||
			{
 | 
			
		||||
 
 | 
			
		||||
@@ -5,9 +5,103 @@
 | 
			
		||||
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using UnityEditor;
 | 
			
		||||
using UnityEngine.Rendering;
 | 
			
		||||
 | 
			
		||||
namespace TAO.VertexAnimation
 | 
			
		||||
{
 | 
			
		||||
public static class SkinnedMeshCombiner
 | 
			
		||||
{
 | 
			
		||||
	public static GameObject Combine(this SkinnedMeshRenderer target, List<SkinnedMeshRenderer> skinnedMeshRenderers, string name, Vector3 position, Quaternion rotation, Vector3 scale)
 | 
			
		||||
	{
 | 
			
		||||
 | 
			
		||||
		List<BoneWeight> boneWeights = new List<BoneWeight>();
 | 
			
		||||
		List<Transform> bones = new List<Transform>();
 | 
			
		||||
		List<CombineInstance> combineInstances = new List<CombineInstance>();
 | 
			
		||||
		Material sharedMaterial = skinnedMeshRenderers[0].sharedMaterial;
 | 
			
		||||
		Bounds newBounds = skinnedMeshRenderers[0].bounds;
 | 
			
		||||
		int num = 0;
 | 
			
		||||
		for( int i = 0; i < skinnedMeshRenderers.Count; ++i )
 | 
			
		||||
		{
 | 
			
		||||
			SkinnedMeshRenderer skinnedMeshRenderer = skinnedMeshRenderers[i];
 | 
			
		||||
			BoneWeight[] bws = skinnedMeshRenderer.sharedMesh.boneWeights;
 | 
			
		||||
			Transform[] bs = skinnedMeshRenderer.bones;
 | 
			
		||||
 | 
			
		||||
			for( int bwIndex = 0; bwIndex < bws.Length; ++bwIndex )
 | 
			
		||||
			{
 | 
			
		||||
				BoneWeight boneWeight = bws[bwIndex];
 | 
			
		||||
				boneWeight.boneIndex0 += num;
 | 
			
		||||
				boneWeight.boneIndex1 += num;
 | 
			
		||||
				boneWeight.boneIndex2 += num;
 | 
			
		||||
				boneWeight.boneIndex3 += num;
 | 
			
		||||
 | 
			
		||||
				boneWeights.Add( boneWeight );
 | 
			
		||||
			}
 | 
			
		||||
			num += bs.Length;
 | 
			
		||||
 | 
			
		||||
			for( int boneIndex = 0; boneIndex < bs.Length; ++boneIndex )
 | 
			
		||||
			{
 | 
			
		||||
				bones.Add( bs[boneIndex] );
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			CombineInstance combineInstance = new CombineInstance()
 | 
			
		||||
			{
 | 
			
		||||
				mesh = skinnedMeshRenderer.sharedMesh,
 | 
			
		||||
				transform = skinnedMeshRenderer.transform.localToWorldMatrix
 | 
			
		||||
			};
 | 
			
		||||
			combineInstances.Add( combineInstance );
 | 
			
		||||
 | 
			
		||||
			if ( i > 0 )
 | 
			
		||||
			{
 | 
			
		||||
				newBounds.Encapsulate( skinnedMeshRenderers[i].bounds );
 | 
			
		||||
			}
 | 
			
		||||
			//skinnedMeshRenderer.enabled = false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		List<Matrix4x4> bindposes = new List<Matrix4x4>();
 | 
			
		||||
		for( int i = 0; i < bones.Count; ++i )
 | 
			
		||||
		{
 | 
			
		||||
			Transform bone = bones[i];
 | 
			
		||||
			bindposes.Add( bone.worldToLocalMatrix * target.transform.worldToLocalMatrix );
 | 
			
		||||
			
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		SkinnedMeshRenderer combinedSkinnedMeshRenderer = target;
 | 
			
		||||
		combinedSkinnedMeshRenderer.updateWhenOffscreen = false;
 | 
			
		||||
 | 
			
		||||
		combinedSkinnedMeshRenderer.sharedMesh = new Mesh();
 | 
			
		||||
		combinedSkinnedMeshRenderer.sharedMesh.indexFormat = IndexFormat.UInt32;
 | 
			
		||||
 | 
			
		||||
		if ( combineInstances.Count == 1 )
 | 
			
		||||
		{
 | 
			
		||||
			combinedSkinnedMeshRenderer.sharedMesh = combineInstances[0].mesh;
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			combinedSkinnedMeshRenderer.sharedMesh.CombineMeshes( combineInstances.ToArray(), true, true );
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		foreach ( CombineInstance combineInstance in combineInstances )
 | 
			
		||||
		{
 | 
			
		||||
			combinedSkinnedMeshRenderer.sharedMesh.subMeshCount += combineInstance.mesh.subMeshCount;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		combinedSkinnedMeshRenderer.sharedMaterials = new Material[combinedSkinnedMeshRenderer.sharedMesh.subMeshCount];
 | 
			
		||||
		for ( int i = 0; i < combinedSkinnedMeshRenderer.sharedMesh.subMeshCount; i++ )
 | 
			
		||||
		{
 | 
			
		||||
			combinedSkinnedMeshRenderer.sharedMaterials[i] = sharedMaterial;
 | 
			
		||||
		}
 | 
			
		||||
		//combinedSkinnedMeshRenderer.sharedMaterial = sharedMaterial;
 | 
			
		||||
		combinedSkinnedMeshRenderer.bones = bones.ToArray();
 | 
			
		||||
		combinedSkinnedMeshRenderer.sharedMesh.boneWeights = boneWeights.ToArray();
 | 
			
		||||
		combinedSkinnedMeshRenderer.sharedMesh.bindposes = bindposes.ToArray();
 | 
			
		||||
		combinedSkinnedMeshRenderer.sharedMesh.RecalculateBounds();
 | 
			
		||||
		//combinedSkinnedMeshRenderer.localBounds = new Bounds( new Vector3( 0.0f, 1.0f, 0.0f ), new Vector3( 0.5f, 1.0f, 0.5f ) );
 | 
			
		||||
		//AssetDatabase.CreateAsset( combinedSkinnedMeshRenderer.sharedMesh, $"Assets/CombinedSkinnedMeshRendererPrefabs/{name}(Mesh{System.DateTime.Now:MM_dd_yyyy-H_mm}).asset" );
 | 
			
		||||
		//AssetDatabase.SaveAssets();
 | 
			
		||||
		return target.gameObject;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
	public static class MeshCombiner
 | 
			
		||||
	{
 | 
			
		||||
		private struct MaterialMeshGroup
 | 
			
		||||
@@ -262,7 +356,7 @@ namespace TAO.VertexAnimation
 | 
			
		||||
 | 
			
		||||
			// Add target mesh.
 | 
			
		||||
			SkinnedMeshRenderer target = gameObject.AddComponent<SkinnedMeshRenderer>();
 | 
			
		||||
			target.Combine(skinnedMeshes, meshes);
 | 
			
		||||
			target.Combine(skinnedMeshes, gameObject.name, gameObject.transform.position, gameObject.transform.rotation, gameObject.transform.localScale);
 | 
			
		||||
		}
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
fileFormatVersion: 2
 | 
			
		||||
guid: f43224daff50a5042a182c6fb12440a8
 | 
			
		||||
guid: e9d4c3f791214a29ac7c1238c9381900
 | 
			
		||||
MonoImporter:
 | 
			
		||||
  externalObjects: {}
 | 
			
		||||
  serializedVersion: 2
 | 
			
		||||
 
 | 
			
		||||
@@ -16,13 +16,13 @@ namespace TAO.VertexAnimation
 | 
			
		||||
		public VA_AnimationData GetData()
 | 
			
		||||
		{
 | 
			
		||||
			// TODO: Fix data name, FixedString32 doesn't transfer from editor?
 | 
			
		||||
			Data.name = new FixedString64(name);
 | 
			
		||||
			Data.name = new FixedString64Bytes(name);
 | 
			
		||||
			return Data;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public FixedString64 GetName()
 | 
			
		||||
		public FixedString64Bytes GetName()
 | 
			
		||||
		{
 | 
			
		||||
			return new FixedString64(this.name);
 | 
			
		||||
			return new FixedString64Bytes(this.name);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								Runtime/Scripts/VA_AnimationDataComponentAuthoring.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								Runtime/Scripts/VA_AnimationDataComponentAuthoring.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
using Unity.Entities;
 | 
			
		||||
using Unity.Mathematics;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
 | 
			
		||||
namespace TAO.VertexAnimation
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
public class VA_AnimationDataComponentAuthoring : MonoBehaviour
 | 
			
		||||
{
 | 
			
		||||
    public float4 Color;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
public class VA_AnimationDataBaker : Baker < VA_AnimationDataComponentAuthoring >
 | 
			
		||||
{
 | 
			
		||||
    public override void Bake( VA_AnimationDataComponentAuthoring authoring )
 | 
			
		||||
    {
 | 
			
		||||
        //Entity parent = GetEntity( authoring.RootParent );
 | 
			
		||||
        AddComponent( new VaAnimationDataComponent{ Value = authoring.Color} );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,3 @@
 | 
			
		||||
fileFormatVersion: 2
 | 
			
		||||
guid: 4fed86d3fa104b829db2922ca534f704
 | 
			
		||||
timeCreated: 1670034530
 | 
			
		||||
@@ -1,64 +1,100 @@
 | 
			
		||||
using Unity.Entities;
 | 
			
		||||
using Unity.Collections;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using Hash128 = Unity.Entities.Hash128;
 | 
			
		||||
 | 
			
		||||
namespace TAO.VertexAnimation
 | 
			
		||||
{
 | 
			
		||||
	[UnityEngine.RequireComponent(typeof(ConvertToEntity))]
 | 
			
		||||
	[UnityEngine.DisallowMultipleComponent]
 | 
			
		||||
[UnityEngine.DisallowMultipleComponent]
 | 
			
		||||
	public class VA_AnimationLibraryComponentAuthoring : UnityEngine.MonoBehaviour
 | 
			
		||||
	{
 | 
			
		||||
		public VA_AnimationLibrary animationLibrary;
 | 
			
		||||
		public bool debugMode = false;
 | 
			
		||||
		public VA_AnimationLibrary AnimationLibrary;
 | 
			
		||||
		public bool DebugMode = false;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public class VA_AnimationLibraryConversionSystem : GameObjectConversionSystem
 | 
			
		||||
internal struct SkinnedMeshEntity : IBufferElementData
 | 
			
		||||
{
 | 
			
		||||
	public Entity Value;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
public struct VA_AnimationLibraryComponent : IComponentData
 | 
			
		||||
{
 | 
			
		||||
	public BlobAssetReference<VA_AnimationLibraryData> AnimLibAssetRef;
 | 
			
		||||
	public BlobAssetStore BlobAssetStore;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
public class VA_AnimationLibraryComponentBaker : Baker < VA_AnimationLibraryComponentAuthoring >
 | 
			
		||||
{
 | 
			
		||||
	public override void Bake( VA_AnimationLibraryComponentAuthoring authoring )
 | 
			
		||||
	{
 | 
			
		||||
		// Static because of multi scene setup.
 | 
			
		||||
		public static BlobAssetReference<VA_AnimationLibraryData> animLibAssetRef;
 | 
			
		||||
 | 
			
		||||
		protected override void OnUpdate()
 | 
			
		||||
		authoring.AnimationLibrary.Init();
 | 
			
		||||
		VA_AnimationLibraryComponent animationLibrary = new VA_AnimationLibraryComponent();
 | 
			
		||||
		using (BlobBuilder blobBuilder = new BlobBuilder(Allocator.Temp))
 | 
			
		||||
		{
 | 
			
		||||
			Entities.ForEach((VA_AnimationLibraryComponentAuthoring animationLib) =>
 | 
			
		||||
			// Construct the root.
 | 
			
		||||
			ref VA_AnimationLibraryData animationDataBlobAsset = ref blobBuilder.ConstructRoot<VA_AnimationLibraryData>();
 | 
			
		||||
 | 
			
		||||
			// Set all the data.
 | 
			
		||||
			BlobBuilderArray<VA_AnimationData> animationDataArray = blobBuilder.Allocate(ref animationDataBlobAsset.animations, authoring.AnimationLibrary.animationData.Count);
 | 
			
		||||
 | 
			
		||||
			for (int i = 0; i < animationDataArray.Length; i++)
 | 
			
		||||
			{
 | 
			
		||||
				animationLib.animationLibrary.Init();
 | 
			
		||||
				// Copy data.
 | 
			
		||||
				animationDataArray[i] = authoring.AnimationLibrary.animationData[i];
 | 
			
		||||
 | 
			
		||||
				// Blob builder to build.
 | 
			
		||||
				using (BlobBuilder blobBuilder = new BlobBuilder(Allocator.Temp))
 | 
			
		||||
				if (authoring.DebugMode)
 | 
			
		||||
				{
 | 
			
		||||
					// Construct the root.
 | 
			
		||||
					ref VA_AnimationLibraryData animationDataBlobAsset = ref blobBuilder.ConstructRoot<VA_AnimationLibraryData>();
 | 
			
		||||
 | 
			
		||||
					// Set all the data.
 | 
			
		||||
					BlobBuilderArray<VA_AnimationData> animationDataArray = blobBuilder.Allocate(ref animationDataBlobAsset.animations, animationLib.animationLibrary.animationData.Count);
 | 
			
		||||
 | 
			
		||||
					for (int i = 0; i < animationDataArray.Length; i++)
 | 
			
		||||
					{
 | 
			
		||||
						// Copy data.
 | 
			
		||||
						animationDataArray[i] = animationLib.animationLibrary.animationData[i];
 | 
			
		||||
 | 
			
		||||
						if (animationLib.debugMode)
 | 
			
		||||
						{
 | 
			
		||||
							UnityEngine.Debug.Log("VA_AnimationLibrary added " + animationDataArray[i].name.ToString());
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					// Construct blob asset reference.
 | 
			
		||||
					//BlobAssetReference<VA_AnimationLibraryData> animLibAssetRef = blobBuilder.CreateBlobAssetReference<VA_AnimationLibraryData>(Allocator.Persistent);
 | 
			
		||||
					// Static because of multi scene setup.
 | 
			
		||||
					animLibAssetRef = blobBuilder.CreateBlobAssetReference<VA_AnimationLibraryData>(Allocator.Persistent);
 | 
			
		||||
 | 
			
		||||
					// Add it to the asset store.
 | 
			
		||||
					BlobAssetStore.TryAdd(new Hash128(VA_AnimationLibraryUtils.AnimationLibraryAssetStoreName), animLibAssetRef);
 | 
			
		||||
 | 
			
		||||
					if (animationLib.debugMode)
 | 
			
		||||
					{
 | 
			
		||||
						UnityEngine.Debug.Log("VA_AnimationLibrary has " + animLibAssetRef.Value.animations.Length.ToString() + " animations.");
 | 
			
		||||
					}
 | 
			
		||||
					UnityEngine.Debug.Log("VA_AnimationLibrary added " + animationDataArray[i].name.ToString());
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
				// Remove the entity since we don't need it anymore.
 | 
			
		||||
				DstEntityManager.DestroyEntity(GetPrimaryEntity(animationLib));
 | 
			
		||||
			});
 | 
			
		||||
			// Construct blob asset reference.
 | 
			
		||||
			//BlobAssetReference<VA_AnimationLibraryData> animLibAssetRef = blobBuilder.CreateBlobAssetReference<VA_AnimationLibraryData>(Allocator.Persistent);
 | 
			
		||||
			// Static because of multi scene setup.
 | 
			
		||||
			animationLibrary.AnimLibAssetRef = blobBuilder.CreateBlobAssetReference<VA_AnimationLibraryData>(Allocator.Persistent);
 | 
			
		||||
			Hash128 hash128 = new Hash128( VA_AnimationLibraryUtils.AnimationLibraryAssetStoreName );
 | 
			
		||||
			// Add it to the asset store.
 | 
			
		||||
			animationLibrary.BlobAssetStore = new BlobAssetStore( 50);
 | 
			
		||||
			animationLibrary.BlobAssetStore.TryAdd(hash128, ref animationLibrary.AnimLibAssetRef);
 | 
			
		||||
 | 
			
		||||
			if (authoring.DebugMode)
 | 
			
		||||
			{
 | 
			
		||||
				UnityEngine.Debug.Log("VA_AnimationLibrary has " + animationLibrary.AnimLibAssetRef.Value.animations.Length.ToString() + " animations.");
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		AddComponent( animationLibrary );
 | 
			
		||||
		
 | 
			
		||||
		BlobAssetReference<VA_AnimationLibraryData> animLib = animationLibrary.AnimLibAssetRef;
 | 
			
		||||
 | 
			
		||||
		// Add animator to 'parent'.
 | 
			
		||||
		VA_AnimatorComponent animatorComponent = new VA_AnimatorComponent
 | 
			
		||||
		{
 | 
			
		||||
			animationIndex = 0,
 | 
			
		||||
			animationIndexNext = -1,
 | 
			
		||||
			animationTime = 0,
 | 
			
		||||
			animationLibrary = animLib
 | 
			
		||||
		};
 | 
			
		||||
		AddComponent(animatorComponent);
 | 
			
		||||
		var boneEntityArray = AddBuffer<SkinnedMeshEntity>();
 | 
			
		||||
 | 
			
		||||
		MeshRenderer[] skinnedMeshRenderers =
 | 
			
		||||
			authoring.transform.GetComponentsInChildren < MeshRenderer >();
 | 
			
		||||
		boneEntityArray.ResizeUninitialized(skinnedMeshRenderers.Length);
 | 
			
		||||
 | 
			
		||||
		for (int boneIndex = 0; boneIndex < skinnedMeshRenderers.Length; ++boneIndex)
 | 
			
		||||
		{
 | 
			
		||||
			var boneEntity = GetEntity(skinnedMeshRenderers[boneIndex]);
 | 
			
		||||
			boneEntityArray[boneIndex] = new SkinnedMeshEntity {Value = boneEntity};
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//[GenerateAuthoringComponent]
 | 
			
		||||
public struct VA_AnimatorComponent : IComponentData
 | 
			
		||||
{
 | 
			
		||||
	public int animationIndex;
 | 
			
		||||
	public int animationIndexNext;
 | 
			
		||||
	public float animationTime;
 | 
			
		||||
	public BlobAssetReference<VA_AnimationLibraryData> animationLibrary;
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
@@ -6,7 +6,7 @@ namespace TAO.VertexAnimation
 | 
			
		||||
	[System.Serializable]
 | 
			
		||||
	public struct VA_AnimationData
 | 
			
		||||
	{
 | 
			
		||||
		public VA_AnimationData(FixedString64 a_name, int a_frames, int a_maxFrames, int a_fps, int a_positionMapIndex, int a_colorMapIndex = -1)
 | 
			
		||||
		public VA_AnimationData(FixedString64Bytes a_name, int a_frames, int a_maxFrames, int a_fps, int a_positionMapIndex, int a_colorMapIndex = -1)
 | 
			
		||||
		{
 | 
			
		||||
			name = a_name;
 | 
			
		||||
			frames = a_frames;
 | 
			
		||||
@@ -18,7 +18,7 @@ namespace TAO.VertexAnimation
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// The name of the animation.
 | 
			
		||||
		public FixedString64 name;
 | 
			
		||||
		public FixedString64Bytes name;
 | 
			
		||||
		// The frames in this animation.
 | 
			
		||||
		public int frames;
 | 
			
		||||
		// The maximum of frames the texture holds.
 | 
			
		||||
@@ -42,7 +42,7 @@ namespace TAO.VertexAnimation
 | 
			
		||||
	{
 | 
			
		||||
		public const string AnimationLibraryAssetStoreName = "VA_AnimationLibrary";
 | 
			
		||||
 | 
			
		||||
		public static int GetAnimation(ref VA_AnimationLibraryData animationsRef, FixedString64 animationName)
 | 
			
		||||
		public static int GetAnimation(ref VA_AnimationLibraryData animationsRef, FixedString64Bytes animationName)
 | 
			
		||||
		{
 | 
			
		||||
			for (int i = 0; i < animationsRef.animations.Length; i++)
 | 
			
		||||
			{
 | 
			
		||||
 
 | 
			
		||||
@@ -5,54 +5,5 @@ using UnityEngine;
 | 
			
		||||
 | 
			
		||||
namespace TAO.VertexAnimation
 | 
			
		||||
{
 | 
			
		||||
	[DisallowMultipleComponent]
 | 
			
		||||
	public class VA_AnimatorComponentAuthoring : MonoBehaviour
 | 
			
		||||
	{
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//[GenerateAuthoringComponent]
 | 
			
		||||
	public struct VA_AnimatorComponent : IComponentData
 | 
			
		||||
	{
 | 
			
		||||
		public int animationIndex;
 | 
			
		||||
		public int animationIndexNext;
 | 
			
		||||
		public float animationTime;
 | 
			
		||||
		public BlobAssetReference<VA_AnimationLibraryData> animationLibrary;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	[UpdateAfter(typeof(VA_AnimationLibraryConversionSystem))]
 | 
			
		||||
	public class VA_AnimatorConversionSystem : GameObjectConversionSystem
 | 
			
		||||
	{
 | 
			
		||||
		protected override void OnUpdate()
 | 
			
		||||
		{
 | 
			
		||||
			//BlobAssetStore.TryGet(new Unity.Entities.Hash128(VA_AnimationLibraryUtils.AnimationLibraryAssetStoreName), out BlobAssetReference<VA_AnimationLibraryData> animLib);
 | 
			
		||||
			// Static because of multi scene setup.
 | 
			
		||||
			BlobAssetReference<VA_AnimationLibraryData> animLib = VA_AnimationLibraryConversionSystem.animLibAssetRef;
 | 
			
		||||
 | 
			
		||||
			Entities.ForEach((VA_AnimatorComponentAuthoring animator) =>
 | 
			
		||||
			{
 | 
			
		||||
				Entity entity = GetPrimaryEntity(animator);
 | 
			
		||||
 | 
			
		||||
				// Add animator to 'parent'.
 | 
			
		||||
				VA_AnimatorComponent animatorComponent = new VA_AnimatorComponent
 | 
			
		||||
				{
 | 
			
		||||
					animationIndex = 0,
 | 
			
		||||
					animationIndexNext = -1,
 | 
			
		||||
					animationTime = 0,
 | 
			
		||||
					animationLibrary = animLib
 | 
			
		||||
				};
 | 
			
		||||
				DstEntityManager.AddComponentData(entity, animatorComponent);
 | 
			
		||||
 | 
			
		||||
				// Add the Material data to the children.
 | 
			
		||||
				var children = animator.GetComponentsInChildren<MeshRenderer>();
 | 
			
		||||
				for (int i = 0; i < children.Length; i++)
 | 
			
		||||
				{
 | 
			
		||||
					Entity ent = GetPrimaryEntity(children[i]);
 | 
			
		||||
				
 | 
			
		||||
					VA_AnimationDataComponent animationData = new VA_AnimationDataComponent();
 | 
			
		||||
					DstEntityManager.AddComponentData(ent, animationData);
 | 
			
		||||
				}
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,58 +1,52 @@
 | 
			
		||||
using Unity.Entities;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using Unity.Entities;
 | 
			
		||||
using Unity.Transforms;
 | 
			
		||||
using Unity.Mathematics;
 | 
			
		||||
 | 
			
		||||
namespace TAO.VertexAnimation
 | 
			
		||||
{
 | 
			
		||||
	// System to update all the animations.
 | 
			
		||||
	public class VA_AnimatorSystem : SystemBase
 | 
			
		||||
	public partial class VA_AnimatorSystem : SystemBase
 | 
			
		||||
	{
 | 
			
		||||
		protected override void OnUpdate()
 | 
			
		||||
		{
 | 
			
		||||
			var animationData = GetComponentDataFromEntity<VA_AnimationDataComponent>(false);
 | 
			
		||||
 | 
			
		||||
			Entities.ForEach((ref VA_AnimatorComponent ac, in DynamicBuffer<Child> children) =>
 | 
			
		||||
			{
 | 
			
		||||
				for (int i = 0; i < children.Length; i++)
 | 
			
		||||
			// This is only executed if we have a valid skinning setup
 | 
			
		||||
			Entities
 | 
			
		||||
				.ForEach((VA_AnimatorComponent animator, in DynamicBuffer<SkinnedMeshEntity> bones) =>
 | 
			
		||||
				{
 | 
			
		||||
					// Get child.
 | 
			
		||||
					Entity child = children[i].Value;
 | 
			
		||||
 | 
			
		||||
					// Get the animation lib data.
 | 
			
		||||
					ref VA_AnimationLibraryData animationsRef = ref ac.animationLibrary.Value;
 | 
			
		||||
					ref VA_AnimationLibraryData animationsRef = ref animator.animationLibrary.Value;
 | 
			
		||||
 | 
			
		||||
					// Lerp animations.
 | 
			
		||||
					// Set animation for lerp.
 | 
			
		||||
					int animationIndexNext = ac.animationIndexNext;
 | 
			
		||||
					if (ac.animationIndexNext < 0)
 | 
			
		||||
					int animationIndexNext = animator.animationIndexNext;
 | 
			
		||||
					if (animator.animationIndexNext < 0)
 | 
			
		||||
					{
 | 
			
		||||
						animationIndexNext = ac.animationIndex;
 | 
			
		||||
						animationIndexNext = animator.animationIndex;
 | 
			
		||||
						//animator.animationIndexNext = animationIndexNext + 1;
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					// Calculate next frame time for lerp.
 | 
			
		||||
					float animationTimeNext = ac.animationTime + (1.0f / animationsRef.animations[animationIndexNext].maxFrames);
 | 
			
		||||
					float animationTimeNext = animator.animationTime + (1.0f / animationsRef.animations[animationIndexNext].maxFrames);
 | 
			
		||||
					if (animationTimeNext > animationsRef.animations[animationIndexNext].duration)
 | 
			
		||||
					{
 | 
			
		||||
						// Set time. Using the difference to smooth out animations when looping.
 | 
			
		||||
						animationTimeNext -= ac.animationTime;
 | 
			
		||||
						animationTimeNext -= animator.animationTime;
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					// Set material data.
 | 
			
		||||
					animationData[child] = new VA_AnimationDataComponent
 | 
			
		||||
					for ( int i = 0; i < bones.Length; i++ )
 | 
			
		||||
					{
 | 
			
		||||
						Value = new float4
 | 
			
		||||
						VaAnimationDataComponent vaAnimationDataComponent = new VaAnimationDataComponent();
 | 
			
		||||
						vaAnimationDataComponent.Value = new float4
 | 
			
		||||
						{
 | 
			
		||||
							x = ac.animationTime,
 | 
			
		||||
							y = VA_AnimationLibraryUtils.GetAnimationMapIndex(ref animationsRef, ac.animationIndex),
 | 
			
		||||
							x = animator.animationTime,
 | 
			
		||||
							y = VA_AnimationLibraryUtils.GetAnimationMapIndex( ref animationsRef, animator.animationIndex ),
 | 
			
		||||
							z = animationTimeNext,
 | 
			
		||||
							w = VA_AnimationLibraryUtils.GetAnimationMapIndex(ref animationsRef, animationIndexNext)
 | 
			
		||||
						}
 | 
			
		||||
					};
 | 
			
		||||
				}
 | 
			
		||||
			})
 | 
			
		||||
			.WithNativeDisableContainerSafetyRestriction(animationData)
 | 
			
		||||
			.WithName("VA_AnimatorSystem")
 | 
			
		||||
			.ScheduleParallel();
 | 
			
		||||
							w = VA_AnimationLibraryUtils.GetAnimationMapIndex( ref animationsRef, animationIndexNext )
 | 
			
		||||
						};
 | 
			
		||||
						SystemAPI.SetComponent<VaAnimationDataComponent>( bones[i].Value, vaAnimationDataComponent );
 | 
			
		||||
					}
 | 
			
		||||
				}).Run();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -4,10 +4,12 @@ using Unity.Rendering;
 | 
			
		||||
 | 
			
		||||
namespace TAO.VertexAnimation
 | 
			
		||||
{
 | 
			
		||||
	[MaterialProperty("_AnimationData", MaterialPropertyFormat.Float4)]
 | 
			
		||||
	public struct VA_AnimationDataComponent : IComponentData
 | 
			
		||||
	{
 | 
			
		||||
		// animationTime, animationIndex, colorIndex, nan.
 | 
			
		||||
		public float4 Value;
 | 
			
		||||
	}
 | 
			
		||||
[MaterialProperty("_AnimationData")] //, MaterialPropertyFormat.Float4
 | 
			
		||||
public struct VaAnimationDataComponent : IComponentData
 | 
			
		||||
{
 | 
			
		||||
	// animationTime, animationIndex, colorIndex, nan.
 | 
			
		||||
	public float4 Value;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -2,9 +2,25 @@
 | 
			
		||||
#ifndef VERTEXANIMATIONUTILS_INCLUDED
 | 
			
		||||
#define VERTEX_ANIMATION_INCLUDED
 | 
			
		||||
 | 
			
		||||
#include "VectorEncodingDecoding.hlsl"
 | 
			
		||||
 | 
			
		||||
#include "SampleTexture2DArrayLOD.hlsl"
 | 
			
		||||
 | 
			
		||||
void CALC_VA_UV_float(float2 uv, int maxFrames, float time, out float2 uvPosition)
 | 
			
		||||
{
 | 
			
		||||
	float timeInFrames = frac(time);
 | 
			
		||||
	timeInFrames = ceil(timeInFrames * maxFrames);
 | 
			
		||||
	timeInFrames /= maxFrames;
 | 
			
		||||
	timeInFrames += round(1.0f / maxFrames);
 | 
			
		||||
 | 
			
		||||
	uvPosition.x = uv.x;
 | 
			
		||||
 | 
			
		||||
	#ifdef VA_FLIP_UVS_ON
 | 
			
		||||
	uvPosition.y = (1.0f - (timeInFrames)) + (1.0f - (1.0f - uv.y));
 | 
			
		||||
	#else
 | 
			
		||||
	uvPosition.y = (1.0f - (1.0f - uv.y) - (1.0f - (timeInFrames)));
 | 
			
		||||
	#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
float2 VA_UV_float(float2 uv, int maxFrames, float time)
 | 
			
		||||
{
 | 
			
		||||
	float2 uvPosition;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
    "m_SGVersion": 2,
 | 
			
		||||
    "m_SGVersion": 3,
 | 
			
		||||
    "m_Type": "UnityEditor.ShaderGraph.GraphData",
 | 
			
		||||
    "m_ObjectId": "144dcb1a2d15470a91360080bc9bd989",
 | 
			
		||||
    "m_Properties": [
 | 
			
		||||
@@ -23,6 +23,12 @@
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "m_Keywords": [],
 | 
			
		||||
    "m_Dropdowns": [],
 | 
			
		||||
    "m_CategoryData": [
 | 
			
		||||
        {
 | 
			
		||||
            "m_Id": "7b54f901e6934a3f86974515753934c1"
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "m_Nodes": [
 | 
			
		||||
        {
 | 
			
		||||
            "m_Id": "031d019a3f114a639fed0a731159883c"
 | 
			
		||||
@@ -183,10 +189,12 @@
 | 
			
		||||
        "serializedMesh": {
 | 
			
		||||
            "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}",
 | 
			
		||||
            "m_Guid": ""
 | 
			
		||||
        }
 | 
			
		||||
        },
 | 
			
		||||
        "preventRotation": false
 | 
			
		||||
    },
 | 
			
		||||
    "m_Path": "Sub Graphs",
 | 
			
		||||
    "m_ConcretePrecision": 0,
 | 
			
		||||
    "m_GraphPrecision": 0,
 | 
			
		||||
    "m_PreviewMode": 2,
 | 
			
		||||
    "m_OutputNode": {
 | 
			
		||||
        "m_Id": "031d019a3f114a639fed0a731159883c"
 | 
			
		||||
    },
 | 
			
		||||
@@ -222,6 +230,8 @@
 | 
			
		||||
    "synonyms": [],
 | 
			
		||||
    "m_Precision": 0,
 | 
			
		||||
    "m_PreviewExpanded": true,
 | 
			
		||||
    "m_DismissedVersion": 0,
 | 
			
		||||
    "m_PreviewMode": 0,
 | 
			
		||||
    "m_CustomColors": {
 | 
			
		||||
        "m_SerializableColors": []
 | 
			
		||||
    },
 | 
			
		||||
@@ -254,7 +264,8 @@
 | 
			
		||||
    "m_SlotType": 0,
 | 
			
		||||
    "m_Hidden": false,
 | 
			
		||||
    "m_ShaderOutputName": "texSampler",
 | 
			
		||||
    "m_StageCapability": 3
 | 
			
		||||
    "m_StageCapability": 3,
 | 
			
		||||
    "m_BareResource": true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
@@ -283,6 +294,8 @@
 | 
			
		||||
    "synonyms": [],
 | 
			
		||||
    "m_Precision": 0,
 | 
			
		||||
    "m_PreviewExpanded": true,
 | 
			
		||||
    "m_DismissedVersion": 0,
 | 
			
		||||
    "m_PreviewMode": 0,
 | 
			
		||||
    "m_CustomColors": {
 | 
			
		||||
        "m_SerializableColors": []
 | 
			
		||||
    },
 | 
			
		||||
@@ -317,6 +330,8 @@
 | 
			
		||||
    "synonyms": [],
 | 
			
		||||
    "m_Precision": 0,
 | 
			
		||||
    "m_PreviewExpanded": true,
 | 
			
		||||
    "m_DismissedVersion": 0,
 | 
			
		||||
    "m_PreviewMode": 0,
 | 
			
		||||
    "m_CustomColors": {
 | 
			
		||||
        "m_SerializableColors": []
 | 
			
		||||
    },
 | 
			
		||||
@@ -334,7 +349,8 @@
 | 
			
		||||
    "m_SlotType": 1,
 | 
			
		||||
    "m_Hidden": false,
 | 
			
		||||
    "m_ShaderOutputName": "Out",
 | 
			
		||||
    "m_StageCapability": 3
 | 
			
		||||
    "m_StageCapability": 3,
 | 
			
		||||
    "m_BareResource": false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
@@ -369,6 +385,33 @@
 | 
			
		||||
    "m_Labels": []
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    "m_SGVersion": 0,
 | 
			
		||||
    "m_Type": "UnityEditor.ShaderGraph.CategoryData",
 | 
			
		||||
    "m_ObjectId": "7b54f901e6934a3f86974515753934c1",
 | 
			
		||||
    "m_Name": "",
 | 
			
		||||
    "m_ChildObjectList": [
 | 
			
		||||
        {
 | 
			
		||||
            "m_Id": "c333595616b942739573e272a2bcc553"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "m_Id": "a09a6ce7e08545d99b5bda70586f4e79"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "m_Id": "975a04061f8d4786bce18d1574108732"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "m_Id": "f9b649ed28584dca8a522f3fb582f350"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "m_Id": "967e0c2bcb6e48c2b85b82c6d4c734a4"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "m_Id": "cc4eba55004546408c4665cdb22d3111"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    "m_SGVersion": 0,
 | 
			
		||||
    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
 | 
			
		||||
@@ -409,21 +452,21 @@
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    "m_SGVersion": 0,
 | 
			
		||||
    "m_SGVersion": 1,
 | 
			
		||||
    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
 | 
			
		||||
    "m_ObjectId": "83aca69ecbd845e888867dea88a660f1",
 | 
			
		||||
    "m_Group": {
 | 
			
		||||
        "m_Id": ""
 | 
			
		||||
    },
 | 
			
		||||
    "m_Name": "Custom Function",
 | 
			
		||||
    "m_Name": "VA_ARRAY (Custom Function)",
 | 
			
		||||
    "m_DrawState": {
 | 
			
		||||
        "m_Expanded": true,
 | 
			
		||||
        "m_Position": {
 | 
			
		||||
            "serializedVersion": "2",
 | 
			
		||||
            "x": -405.0,
 | 
			
		||||
            "y": -144.0,
 | 
			
		||||
            "width": 237.99998474121095,
 | 
			
		||||
            "height": 494.0
 | 
			
		||||
            "x": -402.66668701171877,
 | 
			
		||||
            "y": -148.0,
 | 
			
		||||
            "width": 237.33331298828126,
 | 
			
		||||
            "height": 399.9999694824219
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    "m_Slots": [
 | 
			
		||||
@@ -455,6 +498,8 @@
 | 
			
		||||
    "synonyms": [],
 | 
			
		||||
    "m_Precision": 0,
 | 
			
		||||
    "m_PreviewExpanded": true,
 | 
			
		||||
    "m_DismissedVersion": 0,
 | 
			
		||||
    "m_PreviewMode": 0,
 | 
			
		||||
    "m_CustomColors": {
 | 
			
		||||
        "m_SerializableColors": []
 | 
			
		||||
    },
 | 
			
		||||
@@ -496,12 +541,17 @@
 | 
			
		||||
        "m_GuidSerialized": "26e53708-434a-4d58-b8b2-d8fb8005d644"
 | 
			
		||||
    },
 | 
			
		||||
    "m_Name": "MaxFrames",
 | 
			
		||||
    "m_DefaultRefNameVersion": 0,
 | 
			
		||||
    "m_RefNameGeneratedByDisplayName": "",
 | 
			
		||||
    "m_DefaultReferenceName": "Vector1_967e0c2bcb6e48c2b85b82c6d4c734a4",
 | 
			
		||||
    "m_OverrideReferenceName": "",
 | 
			
		||||
    "m_GeneratePropertyBlock": true,
 | 
			
		||||
    "m_UseCustomSlotLabel": false,
 | 
			
		||||
    "m_CustomSlotLabel": "",
 | 
			
		||||
    "m_DismissedVersion": 0,
 | 
			
		||||
    "m_Precision": 0,
 | 
			
		||||
    "overrideHLSLDeclaration": false,
 | 
			
		||||
    "hlslDeclarationOverride": 0,
 | 
			
		||||
    "overrideHLSLDeclaration": true,
 | 
			
		||||
    "hlslDeclarationOverride": 2,
 | 
			
		||||
    "m_Hidden": false,
 | 
			
		||||
    "m_Value": 0.0,
 | 
			
		||||
    "m_FloatType": 0,
 | 
			
		||||
@@ -512,23 +562,29 @@
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    "m_SGVersion": 0,
 | 
			
		||||
    "m_SGVersion": 1,
 | 
			
		||||
    "m_Type": "UnityEditor.ShaderGraph.SamplerStateShaderProperty",
 | 
			
		||||
    "m_ObjectId": "975a04061f8d4786bce18d1574108732",
 | 
			
		||||
    "m_Guid": {
 | 
			
		||||
        "m_GuidSerialized": "374e9a5f-1ef4-43a2-9ff2-6108a1976ab0"
 | 
			
		||||
    },
 | 
			
		||||
    "m_Name": "SamplerState",
 | 
			
		||||
    "m_DefaultReferenceName": "",
 | 
			
		||||
    "m_OverrideReferenceName": "SamplerState_Linear_Repeat",
 | 
			
		||||
    "m_DefaultRefNameVersion": 0,
 | 
			
		||||
    "m_RefNameGeneratedByDisplayName": "",
 | 
			
		||||
    "m_DefaultReferenceName": "SamplerState_975a04061f8d4786bce18d1574108732",
 | 
			
		||||
    "m_OverrideReferenceName": "",
 | 
			
		||||
    "m_GeneratePropertyBlock": true,
 | 
			
		||||
    "m_UseCustomSlotLabel": false,
 | 
			
		||||
    "m_CustomSlotLabel": "",
 | 
			
		||||
    "m_DismissedVersion": 0,
 | 
			
		||||
    "m_Precision": 0,
 | 
			
		||||
    "overrideHLSLDeclaration": false,
 | 
			
		||||
    "hlslDeclarationOverride": 0,
 | 
			
		||||
    "m_Hidden": false,
 | 
			
		||||
    "m_Value": {
 | 
			
		||||
        "m_filter": 0,
 | 
			
		||||
        "m_wrap": 0
 | 
			
		||||
        "m_wrap": 0,
 | 
			
		||||
        "m_anisotropic": 0
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -540,12 +596,17 @@
 | 
			
		||||
        "m_GuidSerialized": "96fb959c-8624-4642-9ac6-6b405b5a6dd4"
 | 
			
		||||
    },
 | 
			
		||||
    "m_Name": "UV",
 | 
			
		||||
    "m_DefaultRefNameVersion": 0,
 | 
			
		||||
    "m_RefNameGeneratedByDisplayName": "",
 | 
			
		||||
    "m_DefaultReferenceName": "Vector2_a09a6ce7e08545d99b5bda70586f4e79",
 | 
			
		||||
    "m_OverrideReferenceName": "",
 | 
			
		||||
    "m_GeneratePropertyBlock": true,
 | 
			
		||||
    "m_UseCustomSlotLabel": false,
 | 
			
		||||
    "m_CustomSlotLabel": "",
 | 
			
		||||
    "m_DismissedVersion": 0,
 | 
			
		||||
    "m_Precision": 0,
 | 
			
		||||
    "overrideHLSLDeclaration": false,
 | 
			
		||||
    "hlslDeclarationOverride": 0,
 | 
			
		||||
    "hlslDeclarationOverride": 2,
 | 
			
		||||
    "m_Hidden": false,
 | 
			
		||||
    "m_Value": {
 | 
			
		||||
        "x": 0.0,
 | 
			
		||||
@@ -642,6 +703,8 @@
 | 
			
		||||
    "synonyms": [],
 | 
			
		||||
    "m_Precision": 0,
 | 
			
		||||
    "m_PreviewExpanded": true,
 | 
			
		||||
    "m_DismissedVersion": 0,
 | 
			
		||||
    "m_PreviewMode": 0,
 | 
			
		||||
    "m_CustomColors": {
 | 
			
		||||
        "m_SerializableColors": []
 | 
			
		||||
    },
 | 
			
		||||
@@ -660,6 +723,7 @@
 | 
			
		||||
    "m_Hidden": false,
 | 
			
		||||
    "m_ShaderOutputName": "positionMap",
 | 
			
		||||
    "m_StageCapability": 3,
 | 
			
		||||
    "m_BareResource": true,
 | 
			
		||||
    "m_TextureArray": {
 | 
			
		||||
        "m_SerializedTexture": "{\"textureArray\":{\"instanceID\":0}}",
 | 
			
		||||
        "m_Guid": ""
 | 
			
		||||
@@ -718,15 +782,20 @@
 | 
			
		||||
        "m_GuidSerialized": "484a186e-c3de-457f-80e1-65e0ac649faf"
 | 
			
		||||
    },
 | 
			
		||||
    "m_Name": "PositionMap",
 | 
			
		||||
    "m_DefaultRefNameVersion": 0,
 | 
			
		||||
    "m_RefNameGeneratedByDisplayName": "",
 | 
			
		||||
    "m_DefaultReferenceName": "Texture2DArray_c333595616b942739573e272a2bcc553",
 | 
			
		||||
    "m_OverrideReferenceName": "",
 | 
			
		||||
    "m_GeneratePropertyBlock": true,
 | 
			
		||||
    "m_UseCustomSlotLabel": false,
 | 
			
		||||
    "m_CustomSlotLabel": "",
 | 
			
		||||
    "m_DismissedVersion": 0,
 | 
			
		||||
    "m_Precision": 0,
 | 
			
		||||
    "overrideHLSLDeclaration": false,
 | 
			
		||||
    "hlslDeclarationOverride": 0,
 | 
			
		||||
    "m_Hidden": false,
 | 
			
		||||
    "m_Value": {
 | 
			
		||||
        "m_SerializedTexture": "{\"textureArray\":{\"instanceID\":0}}",
 | 
			
		||||
        "m_SerializedTexture": "{\"textureArray\":{\"fileID\":3909434844059189716,\"guid\":\"7211d85b1ff94194f9be9f44b460b472\",\"type\":2}}",
 | 
			
		||||
        "m_Guid": ""
 | 
			
		||||
    },
 | 
			
		||||
    "m_Modifiable": true
 | 
			
		||||
@@ -758,6 +827,8 @@
 | 
			
		||||
    "synonyms": [],
 | 
			
		||||
    "m_Precision": 0,
 | 
			
		||||
    "m_PreviewExpanded": true,
 | 
			
		||||
    "m_DismissedVersion": 0,
 | 
			
		||||
    "m_PreviewMode": 0,
 | 
			
		||||
    "m_CustomColors": {
 | 
			
		||||
        "m_SerializableColors": []
 | 
			
		||||
    },
 | 
			
		||||
@@ -774,12 +845,17 @@
 | 
			
		||||
        "m_GuidSerialized": "3f779194-c6e4-40be-9134-677bb0c69785"
 | 
			
		||||
    },
 | 
			
		||||
    "m_Name": "PositionMapIndex",
 | 
			
		||||
    "m_DefaultRefNameVersion": 0,
 | 
			
		||||
    "m_RefNameGeneratedByDisplayName": "",
 | 
			
		||||
    "m_DefaultReferenceName": "Vector1_cc4eba55004546408c4665cdb22d3111",
 | 
			
		||||
    "m_OverrideReferenceName": "",
 | 
			
		||||
    "m_GeneratePropertyBlock": true,
 | 
			
		||||
    "m_UseCustomSlotLabel": false,
 | 
			
		||||
    "m_CustomSlotLabel": "",
 | 
			
		||||
    "m_DismissedVersion": 0,
 | 
			
		||||
    "m_Precision": 0,
 | 
			
		||||
    "overrideHLSLDeclaration": true,
 | 
			
		||||
    "hlslDeclarationOverride": 3,
 | 
			
		||||
    "hlslDeclarationOverride": 2,
 | 
			
		||||
    "m_Hidden": false,
 | 
			
		||||
    "m_Value": 0.0,
 | 
			
		||||
    "m_FloatType": 0,
 | 
			
		||||
@@ -798,7 +874,8 @@
 | 
			
		||||
    "m_SlotType": 1,
 | 
			
		||||
    "m_Hidden": false,
 | 
			
		||||
    "m_ShaderOutputName": "Out",
 | 
			
		||||
    "m_StageCapability": 3
 | 
			
		||||
    "m_StageCapability": 3,
 | 
			
		||||
    "m_BareResource": false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
@@ -827,6 +904,8 @@
 | 
			
		||||
    "synonyms": [],
 | 
			
		||||
    "m_Precision": 0,
 | 
			
		||||
    "m_PreviewExpanded": true,
 | 
			
		||||
    "m_DismissedVersion": 0,
 | 
			
		||||
    "m_PreviewMode": 0,
 | 
			
		||||
    "m_CustomColors": {
 | 
			
		||||
        "m_SerializableColors": []
 | 
			
		||||
    },
 | 
			
		||||
@@ -878,6 +957,8 @@
 | 
			
		||||
    "synonyms": [],
 | 
			
		||||
    "m_Precision": 0,
 | 
			
		||||
    "m_PreviewExpanded": true,
 | 
			
		||||
    "m_DismissedVersion": 0,
 | 
			
		||||
    "m_PreviewMode": 0,
 | 
			
		||||
    "m_CustomColors": {
 | 
			
		||||
        "m_SerializableColors": []
 | 
			
		||||
    },
 | 
			
		||||
@@ -894,12 +975,17 @@
 | 
			
		||||
        "m_GuidSerialized": "07478aa4-3d18-4430-bf12-24688db601b8"
 | 
			
		||||
    },
 | 
			
		||||
    "m_Name": "Time",
 | 
			
		||||
    "m_DefaultRefNameVersion": 0,
 | 
			
		||||
    "m_RefNameGeneratedByDisplayName": "",
 | 
			
		||||
    "m_DefaultReferenceName": "Vector1_f9b649ed28584dca8a522f3fb582f350",
 | 
			
		||||
    "m_OverrideReferenceName": "",
 | 
			
		||||
    "m_GeneratePropertyBlock": true,
 | 
			
		||||
    "m_UseCustomSlotLabel": false,
 | 
			
		||||
    "m_CustomSlotLabel": "",
 | 
			
		||||
    "m_DismissedVersion": 0,
 | 
			
		||||
    "m_Precision": 0,
 | 
			
		||||
    "overrideHLSLDeclaration": false,
 | 
			
		||||
    "hlslDeclarationOverride": 0,
 | 
			
		||||
    "overrideHLSLDeclaration": true,
 | 
			
		||||
    "hlslDeclarationOverride": 2,
 | 
			
		||||
    "m_Hidden": false,
 | 
			
		||||
    "m_Value": 0.0,
 | 
			
		||||
    "m_FloatType": 0,
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,8 @@
 | 
			
		||||
        "GUID:7a450cf7ca9694b5a8bfa3fd83ec635a",
 | 
			
		||||
        "GUID:a5baed0c9693541a5bd947d336ec7659",
 | 
			
		||||
        "GUID:d8b63aba1907145bea998dd612889d6b",
 | 
			
		||||
        "GUID:e0cd26848372d4e5c891c569017e11f1"
 | 
			
		||||
        "GUID:e0cd26848372d4e5c891c569017e11f1",
 | 
			
		||||
        "GUID:c6266fb6386056f4b9e71740697607ca"
 | 
			
		||||
    ],
 | 
			
		||||
    "includePlatforms": [],
 | 
			
		||||
    "excludePlatforms": [],
 | 
			
		||||
 
 | 
			
		||||
@@ -36,9 +36,7 @@
 | 
			
		||||
  ],
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "com.unity.entities": "0.16.0-preview.21",
 | 
			
		||||
    "com.unity.render-pipelines.universal": "10.2.2",
 | 
			
		||||
    "com.unity.shadergraph": "10.2.2",
 | 
			
		||||
    "com.unity.rendering.hybrid": "0.10.0-preview.21"
 | 
			
		||||
    "com.unity.shadergraph": "10.2.2"
 | 
			
		||||
  },
 | 
			
		||||
  "hideInEditor": false
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user