1. 首页
  2. three.js

three.js在导出的GLTF中,包含两个动画片段的场景合并为一个“动画动作”

three.jsn我可以在相应的两个对象上导出两个旋转动画。n但是,GLTF文件中创建的实际上是两个动画部分,分别称为“action1”和“action2”。n我需要的只是最后一个“action”,因为我希望我的两个动画同时启动。n我知道GLTF可以做到这一点,因为我已经设法操纵导出的GLTF文件,以便将我的两个动画正确地合并为一个“动作”。n这是三个(仅动画部分)的GLTF:n\”animations\”: [{\”name\”: \”Action1\”,\”samplers\”: [{\”input\”: 8,\”output\”: 9,\”interpolation\”: \”LINEAR\”}],\”channels\”: [{\”sampler\”: 0,\”target\”: {\”node\”: 0,\”path\”: \”rotation\”}}]},{\”name\”: \”Action2\”,\”samplers\”: [{\”input\”: 10,\”output\”: 11,\”interpolation\”: \”LINEAR\”}],\”channels\”: [{\”sampler\”: 0,\”target\”: {\”node\”: 1,\”path\”: \”rotation\”}}]}]/pre>n这是我操纵的动画部分:nn因此没有两个单独的采样器频道它们已连接。我怎么能在三分钟内做到这一点?nCodePen此处由donmccurdy在第3篇文章中解决要导出为单个glTF动画,您需要将两个关键帧轨迹放入单个动画剪辑中。为此,每个轨迹必须指定其目标对象,而不是依赖.quaternion轨迹名称作为混合器的根对象。例如,名称是五角大楼…n请帮助?n要导出为单个glTF动画,您需要将两个KeyframeTrack放入单个AnimationClip。n为此,每个轨迹必须指定其目标对象,而不是依赖.quaternion轨迹名称隐式地作为混合器的根对象。因此,例如,名称将改为pentagon1.quaternion,混合器根将是这两个对象的任何公共父对象。n谢谢,这非常有用!然而,我最后遇到了一个新问题,那就是我的五边形没有以相同的速度旋转,但是有一个剪辑,它们需要有相同的长度,以避免它们停止旋转。我将尝试用关键帧来解决这个问题n Scene with 2 animation clips to merge into one “animation action” in the exported GLTFn

three.js在导出的GLTF中,包含两个动画片段的场景合并为一个“动画动作” 为WP2原创文章,链接:https://www.wp2.cn/three-js/three-js%e5%9c%a8%e5%af%bc%e5%87%ba%e7%9a%84gltf%e4%b8%ad%ef%bc%8c%e5%8c%85%e5%90%ab%e4%b8%a4%e4%b8%aa%e5%8a%a8%e7%94%bb%e7%89%87%e6%ae%b5%e7%9a%84%e5%9c%ba%e6%99%af%e5%90%88%e5%b9%b6%e4%b8%ba/