ColladaLoader:无法找到皮肤的骨架

时间:2013-02-05 08:19:43

标签: three.js

我试图渲染我在3dsmax中制作的原始角色,但似乎导出的DAE文件出现了问题,或者只是ColladaLoader无法正确处理它。

场景包含一个动画两足动物骨架,使用Physique修改器的简单装配角色,一个静态框和一个动画角色。

这是我的代码:

<script src="three.js" type="text/javascript"></script>
<script src="ColladaLoader.js" type="text/javascript"></script>
<script type="text/javascript">
  var size_width = window.innerWidth;
  var size_height = window.innerHeight;
  var player;
  var scene = new THREE.Scene();
  var camera = new THREE.PerspectiveCamera(75, size_width/size_height, 0.1, 1000);
  var renderer = new THREE.WebGLRenderer();
  renderer.setSize(size_width, size_height);
  document.body.appendChild(renderer.domElement);

  camera.position.x = 100;
  camera.position.y = -50;
  camera.position.z = 7;

  camera.rotation.x = 1.4;

  var player_loader = new THREE.ColladaLoader();

  player_loader.load( "running_babe.dae", function(collada) {
    player = collada.scene;
    init();
  });

  function init() {
    scene.add(player);
    render();
  }

  function render() {
    requestAnimationFrame(render);
    renderer.render(scene, camera);
  }
</script>

但我得到的只是那两个盒子而且是一个错误:

ColladaLoader: Could not find the skeleton for the skin.

这是我使用的导出的DAE文件 - http://touhou.ru/upload/ff72eb0b40adf5c97286a1bcb164e1f0.DAE

有什么建议吗?


更新:使用皮肤修饰符绑定角色后,我得出了相同的结果 - 无法找到皮肤的骨架。

以下是导出的dae与皮肤修饰符的链接 - http://touhou.ru/upload/af6ba52b7bff5fa2b0f6ba3f704a3b77.dae

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,并且在我开始阅读threejs colladaloader来源之前花了几天玩导出器设置并想出来了。所以如果你还没有解决它,这就是你要做的事情:

首先:当您从max导出模型时,请确保场景中没有任何元素与文件名相同(或者您的几何图形不会显示,这与DAE文件中生成的ID有关)< / p>

现在,3DSMax忽略了导出节点,所以你必须手动添加:

  1. 在文本编辑器中打开running_babe.dae文件
  2. 寻找&lt; instance_controller url =“....”/&gt;节点并将其重写为:
  3. <instance_controller url="....">
        <skeleton>#xxxxx</skeleton>
    </instance_controller>
    

    其中'xxxxx'是id((3dsmax中的元素/骨骼名称),它是骨架层次结构的根元素。并且不要忘记开头的'哈希'! :)

    希望能为你解决这个问题。我还没有尝试动画,但我现在会告诉你,如果这个解决方案有什么遗漏的话,请告诉你。

      

    编辑:没关系,显然我只是划伤了尖端的表面   一个巨大的冰山冰山..似乎得到了collada(来自3dsmax   2013)+剥皮动画工作很痛苦......我会看一下写一个新的json导出器。   格式似乎很直接,并且有很好的文档记录,另外,还有旧的.ms文件   从github开始。祝你好运!如果你找到了什么,那就发帖了   你的方法在这里,对吗? :)

答案 1 :(得分:2)

3ds max附带的默认插件不起作用。您需要使用OpenCollada插件。然后,您可以按照collada loader示例进行操作。你得到骨头,动画和所有!