mirror of
https://github.com/maxartz15/VertexAnimation.git
synced 2025-06-13 06:46:17 +02:00
ModelBaker Test
MeshCombiner, combine SkinnedMeshRenderers and MeshRenderers into one. AnimationBaker, bake SkinnedMeshRenderer with of animations into vertex animations. Test shader, flipped Y compared to previvious version, it now starts at 0,0 and goes into the positive direciton.
This commit is contained in:
8
Editor/Scripts/Editor/ModelBaker.meta
Normal file
8
Editor/Scripts/Editor/ModelBaker.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: afa9933157fe17b40be247abddb0b2ee
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Editor/Scripts/Editor/ModelBaker/Editor.meta
Normal file
8
Editor/Scripts/Editor/ModelBaker/Editor.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5fb7e85d011f3c6419742e766fc11aeb
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
109
Editor/Scripts/Editor/ModelBaker/Editor/VA_ModelBakerEditor.cs
Normal file
109
Editor/Scripts/Editor/ModelBaker/Editor/VA_ModelBakerEditor.cs
Normal file
@ -0,0 +1,109 @@
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
namespace TAO.VertexAnimation.Editor
|
||||
{
|
||||
[CustomEditor(typeof(VA_ModelBaker))]
|
||||
public class VA_ModelBakerEditor : UnityEditor.Editor
|
||||
{
|
||||
private VA_ModelBaker modelBaker = null;
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
modelBaker = target as VA_ModelBaker;
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
serializedObject.Update();
|
||||
|
||||
InputGUI();
|
||||
BakeGUI();
|
||||
OutputGUI();
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
|
||||
private void InputGUI()
|
||||
{
|
||||
//public GameObject model;
|
||||
//public AnimationClip[] animationClips;
|
||||
//public int fps = 24;
|
||||
//public int textureWidth = 512;
|
||||
//public bool saveBakedDataToAsset = true;
|
||||
//public bool generateAnimationBook = false;
|
||||
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("model"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("animationClips"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("fps"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("textureWidth"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("saveBakedDataToAsset"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("generateAnimationBook"));
|
||||
}
|
||||
|
||||
private void BakeGUI()
|
||||
{
|
||||
if (GUILayout.Button("Bake"))
|
||||
{
|
||||
ClearBakedData();
|
||||
|
||||
modelBaker.Bake();
|
||||
|
||||
if (modelBaker.saveBakedDataToAsset)
|
||||
{
|
||||
SaveBakedData();
|
||||
}
|
||||
}
|
||||
|
||||
using (new EditorGUILayout.HorizontalScope())
|
||||
{
|
||||
if (GUILayout.Button("SaveBakedData", EditorStyles.miniButtonLeft))
|
||||
{
|
||||
SaveBakedData();
|
||||
}
|
||||
|
||||
if (GUILayout.Button("ClearBakedData", EditorStyles.miniButtonRight))
|
||||
{
|
||||
ClearBakedData();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OutputGUI()
|
||||
{
|
||||
using (new EditorGUI.DisabledGroupScope(true))
|
||||
{
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("bakedData"));
|
||||
}
|
||||
}
|
||||
|
||||
private void SaveBakedData()
|
||||
{
|
||||
AssetDatabase.AddObjectToAsset(modelBaker.BakedData.mesh, modelBaker);
|
||||
|
||||
foreach (var pm in modelBaker.BakedData.positionMaps)
|
||||
{
|
||||
AssetDatabase.AddObjectToAsset(pm, modelBaker);
|
||||
}
|
||||
|
||||
AssetDatabase.SaveAssets();
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
|
||||
private void ClearBakedData()
|
||||
{
|
||||
var assets = AssetDatabase.LoadAllAssetsAtPath(AssetDatabase.GetAssetPath(modelBaker));
|
||||
|
||||
foreach (var a in assets)
|
||||
{
|
||||
if (a != modelBaker)
|
||||
{
|
||||
AssetDatabase.RemoveObjectFromAsset(a);
|
||||
}
|
||||
}
|
||||
|
||||
AssetDatabase.SaveAssets();
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3a3231c3c369f0c4ab95f98b979d0530
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
12
Editor/Scripts/VA_AssetConverter.cs
Normal file
12
Editor/Scripts/VA_AssetConverter.cs
Normal file
@ -0,0 +1,12 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace TAO.VertexAnimation.Editor
|
||||
{
|
||||
[CreateAssetMenu(fileName = "new AssetConverter", menuName = "VA_Animation/AssetConverter", order = 400)]
|
||||
public class VA_AssetConverter : ScriptableObject
|
||||
{
|
||||
|
||||
}
|
||||
}
|
11
Editor/Scripts/VA_AssetConverter.cs.meta
Normal file
11
Editor/Scripts/VA_AssetConverter.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 55b196764521c964c84e8f2edd5c8da5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Reference in New Issue
Block a user