【问题标题】:Selecting Collada groups and children by name按名称选择 Collada 组和子项
【发布时间】:2012-06-22 14:46:05
【问题描述】:

我正在将 Cinema4D 生成的 Collada 文件加载到 Three.js 中。我从其他帖子中了解到,您可以使用dae.children[i]; 选择和修改单个孩子,但是有没有办法按他们的名字选择他们?

此外,您可以在 Cinema4D 中对儿童进行分组。有没有办法按名称选择这些组?

【问题讨论】:

    标签: three.js


    【解决方案1】:

    Object3DgetChildByName 方法可能就是您所追求的。 http://mrdoob.github.com/three.js/docs/49/#Object3D

    【讨论】:

    • 当我尝试使用dae.getChildByName( 'Cube', true ) 时,我有可能使用错了,我知道它是未定义的。当我查看 collada 文件时,有一个名为“Cube”的孩子。我上传了示例给你看,但现在看来它只能通过 Firefox 在我的本地工作。 216.36.114.20/3d/index.html我应该将此作为单独的问题发布吗?
    • 啊,是的!看起来我们的服务器需要添加 .dae MIME 类型。该文件现在可以正确加载。我正在使用语法dae.getChildByName( 'Cube', true ).material.visible=false;。有错吗?
    • 当我尝试alert(dae.getChildByName('Cube', true)) 它返回未定义。我检查了我的 collada 文件,它看起来有 <node id="ID50" name="Cube"> 我猜是指定名称的位置。我可以做些什么来检查场景中有哪些孩子可用?或者我可以通过其他方式解决此问题?
    • 尝试在 Chrome 中执行 console.log(dae) 并打开控制台 :)
    • 打开了一个全新的世界……细节!非常感谢,很棒的图书馆!似乎.getChildByName id 从节点中提取 ID 而不是 Cincema4D 中给出的名称。很高兴知道! :)
    【解决方案2】:
    dae.getChildByName( 'ID50', true ) 
    

    正在工作。

    【讨论】:

    • 是的,我希望我可以通过使用 Cinema4D 中的对象名称来获得孩子。 ID50 ID 似乎是自动生成的。
    猜你喜欢
    • 2021-01-11
    • 1970-01-01
    • 2013-08-11
    • 2017-05-01
    • 2012-04-28
    • 2021-12-15
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多