Unity Spine转GPU动画

这两年小游戏割草狂火,3D游戏的角色已经有多个GPU动画插件,这里讲一下spine的优化。
1、Spine要想实现GPU动画,首先就需要转成蒙皮动画,这个是Spiine官方自带的功能。找到一个Spine的SkeletonData文件,点击右上角的三个小点,如下截图:
点击这里
然后弹出:
在这里插入图片描述
点击下面的Bake就能将Spine格式的动画文件转成Unity的蒙皮动画。关于2D的层级问题,我在SkeletonBaker文件 中添加了一下处理:


```csharp
    //////////// 利用自身的Layer转换成Mesh顶点的Z值//////////////////////////
				Renderer[] renderers = prefabRoot.GetComponentsInChildren<Renderer>(true);
				foreach (var item in renderers)
				{
					int layer = item.sortingOrder;
					Debug.LogError("层级  " + layer + "  节点  " + item.gameObject.name);
					var sm = item.gameObject.GetComponent<SkinnedMeshRenderer>();
					var mr = item.gameObject.GetComponent<MeshRenderer>();
					Mesh mesh;
					if(sm != null)
					{
						mesh = sm.sharedMesh;
					}
					else
					{
						mesh = item.gameObject.GetComponent<MeshFilter>().sharedMesh;
					}

					Vector3[] verticles = mesh.vertices;
					for (int i = 0; i < verticles.Length; i++)
					{
						verticles[i] = new Vector3(verticles[i].x, verticles[i].y, -(float)(layer));
					}


					mesh.SetVertices(verticles);
					mesh.RecalculateBounds();
					mesh.RecalculateNormals();
				}
				AssetDatabase.SaveAssets();
				AssetDatabase.Refresh();
				Debug.LogError(prefabRoot.name + "  转换完毕!!!!");
				GameObject.DestroyImmediate(prefabRoot);
				//////////////////////////////////////////////////////////

添加位置在这里插入图片描述

2、去找个MeshBaker插件,烘焙一下Mesh文件。
3、网上拔一个2D GPU动画烘焙插件,烘焙一下就可以使用了。
这几个步骤只是将Spine转成了GPU动画,工程最终使用还是看自己修改。需要看例子的可以看我上传的资源。没完全没问题,纯属研究玩的。
CSDN有点搞笑了,自己传的资源还需要VIP下载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值