热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:Threejs:PropertyBinding:无法解析trackName:.bones[]。position

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Threejs:PropertyBinding:无法解析trackName:.bones[]。position相关的知识,希望对你有一定的参考

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Threejs:PropertyBinding:无法解析trackName:.bones []。position相关的知识,希望对你有一定的参考价值。



版本:THREE.WebGLRenderer 91dev

我试图获得一个简单的动画胸部开口在three.js工作,但我在尝试创建一个动作时不断收到以下错误。



PropertyBinding:无法解析trackName:.bones []。position


完整版的动画JSON对象位于pastebin:Full JSON String上。简短摘要如下:

{
"name": null,
"fps": 30,
"length": 0.5333333333333333,
"hierarchy": [{
"parent": -1,
"keys": [{
"time": 0,
"rot": [
0,
0,
0,
1
],
"scl": [
1,
1,
1
],
"pos": [
0,
0,
0
]
},

我使用以下命令创建一个动画片段。

var clip = THREE.AnimationClip.parseAnimation(animation, armSkeleton.bones);
geometry.animations.push(clip);

clip的值如下:

duration: 0.6
name: "default"
tracks: […]
0: Object {
name: ".bones[].position",
times: […],
values: […],

}
1: Object {
name: ".bones[].quaternion",
times: […],
values: […],

}
2: Object {
name: ".bones[].scale",
times: […],
values: […],

}
3: Object {
name: ".bones[].position",
times: […],
values: […],

}
4: Object {
name: ".bones[].quaternion",
times: […],
values: […],

}
5: Object {
name: ".bones[].scale",
times: […],
values: […],

}
length: 6
__proto__: Array[]
uuid: "3E37E10B-74D0-4421-92AF-7A366CF3804F"

问题是当我尝试使用剪辑时:

mixer = new THREE.AnimationMixer(mesh);
mixer.clipAction(mesh.geometry.animations[0]).play();

我得到的错误是threejs无法解析trackname“.bones.position”,即使这是parseAnimation函数返回的名称?如果有人能指出我正在做的蠢事,我会非常困惑,我会很感激。


答案

在解决了问题后,我发现错误的原因是因为AnimationClip期望命名骨骼。因此,在将每个骨骼传递给THREE.AnimationClip.parseAnimation之前,只需给每个骨骼一个唯一的名称,就可以避免这个错误消失。



推荐阅读
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 普通树(每个节点可以有任意数量的子节点)级序遍历 ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • 本文介绍了如何处理在Xcode构建过程中出现的多个命令生成相同文件的问题,特别是当这些文件与Info.plist无关时。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 本文详细介绍了Java反射机制的基本概念、获取Class对象的方法、反射的主要功能及其在实际开发中的应用。通过具体示例,帮助读者更好地理解和使用Java反射。 ... [详细]
  • 本文介绍了如何在 Vue 3 组合 API 中正确设置 setup() 函数的 TypeScript 类型,以避免隐式 any 类型的问题。 ... [详细]
  • Spark与HBase结合处理大规模流量数据结构设计
    本文将详细介绍如何利用Spark和HBase进行大规模流量数据的分析与处理,包括数据结构的设计和优化方法。 ... [详细]
  • 重要知识点有:函数参数默许值、盈余参数、扩大运算符、new.target属性、块级函数、箭头函数以及尾挪用优化《深切明白ES6》笔记目次函数的默许参数在ES5中,我们给函数传参数, ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 在处理大规模数据数组时,优化分页组件对于提高页面加载速度和用户体验至关重要。本文探讨了如何通过高效的分页策略,减少数据渲染的负担,提升应用性能。具体方法包括懒加载、虚拟滚动和数据预取等技术,这些技术能够显著降低内存占用和提升响应速度。通过实际案例分析,展示了这些优化措施的有效性和可行性。 ... [详细]
author-avatar
彼岸花2011的冬天_290
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有