问题描述
我一直在努力寻找一种在现有骨架上添加/删除衣物的方法(服装网格和身体网格应该共享骨架),但是我总是最终得到有趣/奇怪的结果。
我希望附加到共享骨架上的所有服装都已导出到具有相同骨架的Blender中,它们都具有相同的骨骼名称和结构,我认为这是相同的会非常简单。
我在Native iOS SceneKit上使用了这些相同的3D文件,实际上我所做的只是clothing.skeleton = body.skeleton
但是正如我所说,在Three.JS上似乎并不那么简单。
我尝试过类似的东西
clothingMesh.bind(bodySkeleton,clothingMesh.worldMatrix);
也尝试过:
clothingMesh.skeleton = bodySkeleton;
bodySkeleton.update();
但是总是以奇怪的结果结束。我已经看过一些使用“目标定位”功能的代码,但我相信这些仅在骨骼名称不匹配时才使用,这不是我的情况。
JSfiddle游乐场
我一直在通过JSfiddle https://jsfiddle.net/cabada/sxv4kbnm/ 进行尝试,这里有完整的代码试图构建这个概念。
修复骨骼绑定的另一个目标是能够从其他来源复制骨骼动画,因此我可以即时下载它们并将其动态应用于我的角色。但是,再次得到奇怪的结果,动画骨骼也共享与要进行动画处理的目标骨骼相同的骨骼名称和结构。
我在网上找到与该主题相关的资源和示例
https://raw.githack.com/funwithtriangles/three.js/dev/examples/webgl_animation_sharedskeleton.html
https://rawcdn.githack.com/mrdoob/three.js/r105/examples/webgl_loader_sea3d_bvh_retarget.html
https://jsfiddle.net/satori99/pay0oqcd/
https://github.com/mrdoob/three.js/pull/16608
目标是能够在服装上添加/删除衣服,使每个角色的所有网格都使用一个骨架(以达到良好的性能),并能够添加/删除来自其他来源的动画。
>解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)