换装demo随手记

1 修补demo错误,使VirtualWorldExample可正常运行


CharacterGenerator.AssetbundleBaseURL 做如下修改


public static string AssetbundleBaseURL{
   get{ return "file:///" + Application.dataPath + "/assetbundles/";}
}


2 场景中隐藏Gameobject ,RandomMale ,RandomFemale,排除干扰项,重点研究SpecailFemal


Character.js


CharacterGenerator.ReadyToUse里面读取了CharacterElementDatabase.assetbundle
并拿到了所有role的所有部位的CharacterElement


generator = CharacterGenerator.CreateWithConfig(character + "|" + config);
读取配置,这个在场景中写的 character=roleName     config是部位和具体用哪个资源的组合




generator.ConfigReady等待所有元素加载完毕




go = generator.Generate();加载完毕后的组装过程




CharacterGenerator.Generate(Gameobject root) 这里的root是基本骨骼






-------------------------------------------------------------------------------------


导入多出的依赖资源和bonenames是怎么回事研究下




依赖已经弄清
是Texture2d图片和法线图片
方法为输出object.Type


至于多出的bonenames
根据原始demo的到处方法,暂时认为多出bonenames是正确的
-----------------------------------
组装的一些关键问题
组装与Materails合并问题
mesh合并问题
bone的处理貌似是最简单的
关于changeEq一闪的问题


其实问题主要在于材质
Q1:一个part3个材质,怎么决定用哪个
怎么对材质赋值?这个材质和模型都有问题
实际是通过
materialRequest = WWW.assetBundle.LoadAsync(name, typeof(Material));
里面这个name决定的,虽然一个partAB中包含多个materail
但是每个materail名字是唯一的




Q2:一个part只对自己合并materail还是针对整个avater进行materail合并?
关于合并貌似originalDemo只做了mesh,没做materail(因为除了法线就只有一个固定名字的materail,不需要合并了)
而且mesh的合并是对整个身体所有skinRender的合并


Q3:法线图竟然是作为依赖资源被加入到AB的,这个需要解释?
暂时不知道


Q4:OriginalDemo中所有材质都堆一起了,貌似是合并了,这个具体要怎么做要考虑下
demo的做法是materail和mesh统一都合并到了最上级,只有一个skinRender
然后里面就只有bone Transform


这种做法缺点
http://blog.csdn.net/onafioo/article/details/50705833


优点就是合并了mesh和material,
缺点是部位材质和skinRender数量必须相同,而且每次都要重建所有部位(这个就很难接受了)
所以需要为每个部位单独建立一个新的Gameobject(貌似就是不合并mesh)






-----------------------------------

原文地址:https://www.cnblogs.com/nafio/p/9137405.html