Unity 带骨骼的人体模型换装
直入主题:
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里的,
仅仅是猜测,不喜勿骂~~~
Unity 带骨骼的人体模型换装的更多相关文章
- cocos2d下,优秀骨骼spine的换装思路
语文老师说,文章要有个好开头!!! 最近正在引入spine骨骼代替dragon bone骨骼,既然要替代,那么原先在dragon bone上的一些额外需求,不管dragon bone上能不能实现,都应 ...
- Unity3d 3d角色换装实现原理及步骤
http://www.cnblogs.com/dosomething/archive/2012/04/15/2450526.html 1.角色模型制作 unity3d支持Skin动画 但是不支持Ph ...
- 【Unity3d】3d角色换装实现原理及步骤
http://www.cnblogs.com/dosomething/archive/2012/04/15/2450526.html 1.角色模型制作 unity3d支持Skin动画 但是不支持Ph ...
- Unity3D教程:换装方法
http://www.manew.com/4136.html 游戏内的角色,能够像纸娃娃换装那样子让玩家可以为自己的角色改变外观,一直是相当受欢迎的功能:一般而言,我们建好的 3D 模型,如果要将其中 ...
- 浅谈角色换装功能--Unity简单例子实现
在前置篇中,基本上梳理了一下换装功能背后涉及到的美术工作流.但程序员嘛,功能终归是要落到代码上的.本文中会结合Unity提供的API及之前提到的内容来实现一个简单的换装功能.效果如下: (图1:最终效 ...
- Unity动态换装之Spine换装
注:转载请注明转载,并附原链接 http://www.cnblogs.com/liaoguipeng/p/5867510.html 燕双飞情侣 一.动态换装原理 换装,无非就是对模型的网格,或者贴图进 ...
- Unity 之 人物换装
http://www.cnblogs.com/mcwind/archive/2011/02/18/1957453.html 原理 一. SkinedMeshRender:该对象负责网格绘制.主要数据 ...
- unity 角色换装
unity角色换装的关键是更改角色部位上的物体的SkinnedMeshRenderer组件的属性: 更改mesh:mesh决定了部位的物体的外形,是主要的数据. 刷新骨骼:同一个部位下,不同的mesh ...
- Unity3d 换装Avatar系统
原理就是用新造的部件和角色的骨骼进行重新对接. demo的使用方法: PartIdx设置要换那个部件[0,4],一共5个部件 EquipIdx设置要更换部件的装备索引[0,1],具体看我的Change ...
随机推荐
- 通过FSDataOutputStream向HDFS上写数据
FSDataOutputStream,这个类重载了很多write方法,用于写入很多类型的数据:比如字节数组,long,int,char等等. 像FSDataInputStream一样,要获得FSDat ...
- spring注解之@Scope
转自:https://blog.51cto.com/4247649/2118351 作者:知了123 主要从以下几方面来介绍一下@Scope注解 @Scope注解是什么 @Scope注解怎么使用 @S ...
- [Luogu P3825] [NOI2017] 游戏 (2-SAT)
[Luogu P3825] [NOI2017] 游戏 (2-SAT) 题面 题面较长,略 分析 看到这些约束,应该想到这是类似2-SAT的问题.但是x地图很麻烦,因为k-SAT问题在k>2的时候 ...
- Codeforces 916E(思维+dfs序+线段树+LCA)
题面 传送门 题目大意:给定初始根节点为1的树,有3种操作 1.把根节点更换为r 2.将包含u,v的节点的最小子树(即lca(u,v)的子树)所有节点的值+x 3.查询v及其子树的值之和 分析 看到批 ...
- Vue.js状态管理模式 Vuex
vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 安装.使用 vuex 首先我们在 vue. ...
- POJ3321[苹果树] 树状数组/线段树 + dfs序
Apple Tree Time Limit: 2000MS Memory Limit: 65536K Total Submissions:39452 Accepted: 11694 Descr ...
- MVC中easyui的easyui-combobox的使用
一,如下代码,赋值 @{string json = ""; foreach (var dic in EnumCouponDic) //EnumCouponDic是一个字典类型Dic ...
- HBase HA分布式集群搭建
HBase HA分布式集群搭建部署———集群架构 搭建之前建议先学习好HBase基本构架原理:https://www.cnblogs.com/lyywj170403/p/9203012.html 集群 ...
- css设置不允许复制文本内容
之前做一个网上答题的页面时,考虑到要防止考生利用复制粘贴来提高作弊的可能性,就设计了不允许复制.方法也很简单,通过设置CSS 的 user-select就可以达到目的: -moz-user-selec ...
- fullpage.js版本3.0.5报错问题(licenseKey)
在文件里搜索licenseKey,删除!不会对程序造成任何影响