http://www.cnblogs.com/dosomething/archive/2012/04/15/2450526.html

1、角色模型制作

  unity3d支持Skin动画  但是不支持Physique动画  会发现Physique动画在unity里严重变形

  因此在模型的骨骼动画的制作上面  要用Skin

  当然也可以做成Physique  然后用插件转换一下  3dsmax的插件PhyToSkin

  3dsmax中转换之前  为了避免出错  先隐藏骨骼   然后对绑定了骨骼的模型进行单独转换  因为批量也会出错

  转换以后在修改面板中加入可编辑网格  同时为了避免出错  检查一下uv是否贴反了

2、角色模型导出

  确保导出的模型是已经绑定了骨骼的  在导出设置中根据需要选择是否导出Animation

  以及3dsmax和unity3d中的单位关系

3、官方CharacterCustomization中的模型

  从官方换装demo中会发现他的一个角色模型里包含了要换装的多个模型  比如有两个衣服模型、三个头发模型等

  那我们在美术制作的过程中是不是也要这样进行“模型叠加”呢   其实没必要

  demo这样的目的是为了使得模型公用一套骨骼  那么我们在角色模型的制作过程中  就确保模型使用的是同一套骨骼

  比如男性角色使用一套  女性角色使用另一套  当进入创建角色场景后  根据玩家选择角色的性别  显示不同的动画即可

4、角色模型打包技巧

  前面提到  官方demo里换装的实现  原因是因为公用了一套骨骼

  那么我们在打包的时候  就将骨骼和模型分离  将模型各个部件(比如头发、手臂等)分开打包

  比如一个男性的角色  将他的基础骨骼打进一个包   再将身体各个部分的模型分别打包

  如果一个模型由头、脸、身体、手臂、脚五个部分组成  那么打包后将会有六个资源包  分别是基础骨骼、头、脸、身体、手臂、脚

  这样游戏的创建角色过程中  就可以单独地对模型的身体部位进行切换

  打包的过程和官方demo的打包大同小异  只不过这里作者在打包时捎带生成了换装的配置表

6、角色模型的加载

  unity3d中使用www进行资源的加载  如果将资源放在了http服务器上的话(包括本机的IIS)  则需要一个crossdomain的xml配置  本地则不需要

  加载时应该首先去加载基础骨骼  加载完以后再去加载要显示的默认角色模型  比如新手模型

  在加载完以后  则要提取各个模型中所记录的骨骼信息  根据这些信息将模型挂到对应的骨骼上

  为了避免模型之间出现缝隙  应当进行模型网格的合并

  完成以上工作以后模型的加载就已经实现了

7、角色模型的换装

  回到角色模型打包的话题

  设想一个男性角色有10套服装用来更换  而公用的骨骼是一套

  因此在打包时仍然将这一套骨骼单独打包  然后再将其他所有的模型打包

  一句话总结就是   一套骨骼对应N个模型  这N个模型都公用这一套骨骼

  换装的实现实际上就是将相应的身体部分进行更换

  比如要换一个手臂  则将新的手臂与身体上除了手臂以外的模型再进行一次网格合并

  换句话说  要更换身体某一个部位  实际上就是更新了整个角色模型

  这里需要注意的一点是  基础的骨骼不用再去更新

  设想一下  换装时候  一般角色都会有个“站立”或者“呼吸”的动作在播放  那么如果同时去更新了一遍基础骨骼  那么结果势必会让本来连贯的动作有“一闪”的现象

  这是因为  之前的动画还没播放完  然后就更新了骨骼  那么动画又重头开始播  这之间没有过渡  肯定会有点问题

  

测试截图如下:(注:作者这里用的两套模型只有头盔、手臂和脚不一样)

第一套:

另一套:

分类: unity3d

Unity3d 3d角色换装实现原理及步骤的更多相关文章

  1. 【Unity3d】3d角色换装实现原理及步骤

    http://www.cnblogs.com/dosomething/archive/2012/04/15/2450526.html 1.角色模型制作 unity3d支持Skin动画  但是不支持Ph ...

  2. 【Unity3D】3D角色换装++ Advance

    http://www.cnblogs.com/dosomething/archive/2012/12/15/2818897.html 本文在之前的文章Unity3D角色换装的原理 基础上做一个补充 给 ...

  3. unity 角色换装

    unity角色换装的关键是更改角色部位上的物体的SkinnedMeshRenderer组件的属性: 更改mesh:mesh决定了部位的物体的外形,是主要的数据. 刷新骨骼:同一个部位下,不同的mesh ...

  4. Unity3D教程:换装方法

    http://www.manew.com/4136.html 游戏内的角色,能够像纸娃娃换装那样子让玩家可以为自己的角色改变外观,一直是相当受欢迎的功能:一般而言,我们建好的 3D 模型,如果要将其中 ...

  5. 浅谈角色换装功能--Unity简单例子实现

    在前置篇中,基本上梳理了一下换装功能背后涉及到的美术工作流.但程序员嘛,功能终归是要落到代码上的.本文中会结合Unity提供的API及之前提到的内容来实现一个简单的换装功能.效果如下: (图1:最终效 ...

  6. 3D游戏中人物换装解决方案

    换装基本上是每个网游都必须有的一个功能,每种网游的做法都各有不同,有些是换掉整个模型,有些则是通过可以换掉模型的一个部分完成.前者属于整体换,相对简单些:后者则是通过部分替换实现,目前用的比较多,本文 ...

  7. Unity动态换装之Spine换装

    注:转载请注明转载,并附原链接 http://www.cnblogs.com/liaoguipeng/p/5867510.html 燕双飞情侣 一.动态换装原理 换装,无非就是对模型的网格,或者贴图进 ...

  8. Blender建模与游戏换装(转载文)

    本文转载自https://my.oschina.net/huliqing/blog/880113?hmsr=toutiao.io 如果本文涉及侵权行为,请原作者联系博主邮箱,我将及时进行删除处理 博主 ...

  9. Unity3d 换装Avatar系统

    原理就是用新造的部件和角色的骨骼进行重新对接. demo的使用方法: PartIdx设置要换那个部件[0,4],一共5个部件 EquipIdx设置要更换部件的装备索引[0,1],具体看我的Change ...

随机推荐

  1. Mvc Autofac构造器注入

    新建MVC项目,添加程序集引用 定义接口ILog public interface ILog { string Save(string message); } 类TxtLog实现接口ILog publ ...

  2. 腾讯云服务器申请免费SSL证书,实现Https。

    1.首先在腾讯云的SSL证书管理中申请免费的SSL.审核速度还是挺快的... 2.按照步骤申请后,就可以下载主流web服务器的证书了.如图: 3.这里我使用的web服务器是nginx,把nginx下的 ...

  3. php高级技巧总结

    通过对<深入理解PHP:高级技巧.面向对象与核心技术>这本书的学习,总结出常用的php高级技巧,也方便自己以后查阅;我认为该书是php高级教程的葵花宝典,哈哈.里面的内容很实用,尤其是在项 ...

  4. Java诊断工具Arthas

    Java诊断工具Arthas 1. Arthas简介 Arthas是阿里开源的一个线上java诊断工具,发现阿里还是挺喜欢开源一些技术的,造福人类.昨天试用了一下,发现真是强大,解决了我工作两年的很多 ...

  5. Linux升级安装GCC G++ 6.2

    使用yum安装是不可能了,各大仓库也没有,只能自己编译安装了. 系统为CentOS 6.5,gcc为4.4.7 1 下载源代码包 当前最新版为6.2: wget http://ftp.gnu.org/ ...

  6. Ubuntu下安装Android studio【转】

    本文转载自:http://blog.csdn.net/walleit/article/details/65696712 版权声明:本文为博主原创文章,未经博主允许不得转载. 一,软件准备 1. Lin ...

  7. hihocoder #1062 : 最近公共祖先·一(小数据量 map+set模拟+标记检查 *【模板】思路 )

    #1062 : 最近公共祖先·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho最近发现了一个神奇的网站!虽然还不够像58同城那样神奇,但这个网站仍然让小Ho乐在 ...

  8. ansible 文件模块,很实用

    摘自: http://blog.csdn.net/kellyseeme/article/details/50545521

  9. hadoop 添加,删除节点

    http://www.cnblogs.com/tommyli/p/3418273.html

  10. C语言中的排序算法--冒泡排序,选择排序,希尔排序

    冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没 ...