直入主题:

1、实验材料

两个模型,虽然缺胳膊少腿的,但是能用!!!

2、条件

两个模型在制作时是基于同一套骨骼,导出模型部位时连着该部位的骨骼一起导出,这样导入到Unity的模型就带有SkinnedMeshRenderer组件。

3、目标及实现

目标:将右侧的衣服换给左侧的模型

代码:

public SkinnedMeshRenderer HeroSMR;    //左侧模型衣服部位的SkinnedMeshRenderer
public SkinnedMeshRenderer TargetSMR;  //右侧模型衣服部位的SkinnedMeshRenderer

void Start()
{

HeroSMR.sharedMesh = TargetSMR.sharedMesh;
HeroSMR.materials = TargetSMR.sharedMaterials;
}

So Easy 是不是!!

4、效果

新Mesh也能很好的适应原先骨骼的变形,反正就是皮换骨不换。

5、结论

蒙过皮带有骨骼的模型导入u3d后会自动生成SkinnedMeshRenderer组件,存储了骨骼和Mesh的信息,比如权重边界什么的。

但Mesh和骨骼对应的信息,比如哪个点受哪根骨骼的影响,这个我觉得是导入骨骼模型后存在了Mesh里(猜测)。

因为根据我做的实验,同样的衣服模型,分别导入带骨骼的和不带骨骼的,带骨骼的如上所示,能正常更换上去,不带骨骼的代码如下:

public SkinnedMeshRenderer HeroSMR;

public MeshFilter TargetMF;

public MeshRenderer TargetMR;

void Start()
{

HeroSMR.sharedMesh = TargetMF.sharedMesh;
HeroSMR.materials = TargetMR.sharedMaterials; 
}

这样操作后虽然衣服是换成了,但是位置信息完全错误,也就是Mesh没和骨骼对应上,所以我猜测Mesh和骨骼对应的信息是存在Mesh里的,

仅仅是猜测,不喜勿骂~~~

最新文章

  1. Android APP 读取 AndroidManifest.xml 中的版本信息详解
  2. adroid 目录
  3. kylin1.5新特性 new aggregation group
  4. C#字符补位
  5. 二十一、contextMap中放的常用数据
  6. everything搜索工具小技巧
  7. 设置ISE/vivado中默认文本编辑器为gvim
  8. LeetCode OJ学习
  9. 如何安装windows7系统
  10. WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇]
  11. JAVA内容回顾(一)——基本语法
  12. Linux安装JDK、MySQL和Tomcat
  13. Linux块设备加密之dm-crypt分析
  14. ubuntu设置ssh登录
  15. 【K8S】client-go、python-k8sclient开发K8S
  16. Data Science With R In Visual Studio
  17. Hbase建表时遇到的问题This could be a sign that the server has too many connections
  18. Google Bazel简介
  19. cget cmake 包管理工具
  20. ECMAScript 6 Promise 对象

热门文章

  1. Java-集合第五篇Map集合
  2. 嵌入式软件工程师C语言经典笔试1
  3. 从ES6重新认识JavaScript设计模式: 装饰器模式
  4. Springboot(java)程序部署到k8s
  5. 一台电脑关联多个git账号
  6. ASP.NET MVC @html帮助类
  7. SQL SERVER SP命令及实现跨数据库查询
  8. 【学习总结】java数据结构和算法-第三章-稀疏数组和队列
  9. Route的exact属性
  10. xxPay搭建步骤