三个JS编辑器动画面板未显示

时间:2019-02-05 12:11:22

标签: javascript css three.js virtual-reality

我目前正在与Three JS Editor for VR合作,只是为了好玩。我发现它相当完整,而且结构也很好,但是我在编辑器的侧边栏中缺少动画功能。

使用编辑器的脚本选项卡,我可以使用以下脚本制作GLB对象(GLB_Zorro.glb)的动画:

const mixers = [];
const clock = new THREE.Clock();
let mixer;

const loader = new THREE.GLTFLoader();
loader.load('3D/GBL_Zorro.glb', function (gltf) 
{
    const model = gltf.scene.children[ 0 ];

    const position = new THREE.Vector3( 0, 0, 0 );
    model.position.copy( position );

    const animation = gltf.animations[ 0 ];

    const mixer = new THREE.AnimationMixer( model );
    mixers.push( mixer );

    const action = mixer.clipAction( animation );
    action.play();

    scene.add( model );
});

function update() 
{
  const delta = clock.getDelta();
  mixers.forEach( ( mixer ) => { mixer.update( delta ); } ); 
}

将脚本添加到模型中时,动画可以正常播放,但是最有效的方法是应该有一个选项卡,您可以在其中选择应该在对象中播放的动画,而不是手动创建新脚本并附加它到GLB对象。我认为应该以一种简单的方式在编辑器的边栏中实现此功能。

对Threesjs编辑器代码的进一步研究表明,Sidebar.js文件上有一行(第30-36行)代码,看来他们添加了此功能,如以下代码所示。

var scene = new UI.Span().add(
    new Sidebar.Scene( editor ),
    new Sidebar.Properties( editor ),
    new Sidebar.Animation( editor ),
    new Sidebar.Script( editor )
);
container.add( scene );

上面Sidebar.js上的代码显示,它们将动画添加到侧边栏,但仅添加了场景,属性和脚本。除动画外,所有内容均显示。

任何人都可以帮助我找到为什么动画选项卡未添加到侧边栏吗?

Threejs编辑器的master分支如下:

https://github.com/mrdoob/three.js/  

如果有的话,我会分享解决方案的。

致以问候

0 个答案:

没有答案