javascript - 如何从搅拌机 GLTF 形状键更新 threejs 变形目标
问题描述
我有一个带有几个形状键的搅拌机文件。当我将搅拌机中的滑块拖动到 0 和 1 之间时,我可以操纵形状键。
(截图): https ://share.getcloudapp.com/bLuw8L0W
我正在导出 GLTF 并将其导入到 threejs 中。
如果我console.log
是来自 GLTF 的网格,我可以在 中看到来自搅拌机的形状键morphTargetDictionary
,并且我已经设置了一个 GUI 来更新morphTargetInfluences
每个形状键的形状键:
https://share.getcloudapp.com/6quP71l7
folder
.add(params, "influence2", 0, 1)
.step(0.01)
.onChange(function (value) {
console.log(dodec.morphTargetInfluences[1]);
dodec.morphTargetInfluences[1] = value;
//dodec.updateMorphTargets();
});
但更新这些 morphTargetInfluences 似乎没有任何影响。如何设置它,以便通过移动每个形状键的滑块,我可以在 Three.js 中实现与在搅拌机中相同的效果?
更新
这是我目前拥有的代码笔:
解决方案
您要定位的对象是网格,即dodec = scene.getObjectByName("Solid_0");
. 检查是什么dodec
,直到你找到一个网格将引导你到这里。
GLTF 导出嵌套组,因此您的网格通常可能在一个组中。
您还需要在您的材质上设置 morphTargets: true :
const material = new THREE.MeshStandardMaterial({
color: 0xffa400,
emissive: 0xbb5a5a,
side: THREE.DoubleSide,
flatShading: true,
morphTargets: true, // you need this
});
推荐阅读
- c# - IIndex 什么时候出现
实例化其解析的组件? - powershell - 使用 Select-String 搜索文件数组
- css - 一个组件的 css 是否适用于 React 中的其他组件
- websocket - 如何让 tsung-recorder 捕获 websocket 消息?
- c# - Core 2.0 导航栏横幅覆盖移动设备上的页面内容
- android - AlarmManager - 任务队列(PendingIntent 队列)
- android - 带有过渡动画的 Android 视图寻呼机
- xamarin - 在 Xamarin Forms App 中拖放标签
- python - 在 python 上解析站点时如何修复错误 403?
- python - 列表的单行输入