【问题标题】:THREE.js - morphTargetInfluences on an imported JSON mesh not getting resultsTHREE.js - morphTargetInfluences 对导入的 JSON 网格的影响没有得到结果
【发布时间】:2016-12-18 17:51:38
【问题描述】:

我有一个基本的 three.js 场景,我在其中尝试从 Blender 导出对象(作为带有嵌入式变形的 JSON 文件)以使用用户输入来运行和更新它们的形状。

这是一个测试场景 http://onthez.com/temphosting/three-js-morph-test/morph-test.html

通过简单地缩放一个盒子来调整平板的大小而没有变形,这工作得很好。

顶部的小纪念碑我一定错过了一些基本的东西。它有 3 个变形(宽度、深度、高度),旨在允许它调整大小。

我正在使用此代码来实现基于用户 dat.gui 输入的变形。

folder1.add( params, 'width', 12, 100 ).step(1).name("Width").onChange( function () {
  updateFoundation();
  building.morphTargetInfluences['width'] = params.width/100;
  roofL.morphTargetInfluences['width'] = params.width/100;
  roofR.morphTargetInfluences['width'] = params.width/100;
  building.updateMorphs();
});

建筑、roofL 和roofR 的材质都将morphTargets 设置为true。 我已经在这里查看了three.js 示例: http://threejs.org/examples/?q=morph#webgl_morphtargets_human 以及#webgl_morphtargets 和#webgl_morphtargets_horse

任何想法或意见将不胜感激!

【问题讨论】:

    标签: json three.js blender


    【解决方案1】:

    我相信我已经为我的问题找到了解决方案,我的印象是 JSON 加载器保留了要使用的 morph 目标名称来代替带有 morphTargetInfluences 的索引号

    类似 morphTargetInfluences['myMorphTargetName'] 但是,在控制台中仔细检查后,似乎应该用数字来引用它们,比如 morphTargetInfluences[0]

    不是最直观的,但我可以使用它。

    【讨论】:

    • 为了进一步解释这一点,我注意到 morphTargetDictionary[] 可以通过将每个变形目标的名称与其分配的索引相关联来帮助解决这个问题。使用 myObject.morphTargetInfluences[myObject.morphTargetDictionary['myMorphTargetName']] = 1;获取正确的变形目标并应用该值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多