Mars3d的gltf零部件控制(运载火箭)示例关于gltf内部的animations说明

示例链地址:

1.功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技

问题:

1.火箭模型gltf内部的animations好像获取不到,在示例的学习过程中,示例中控制的只是构件信息 articulations。

2.Cesium是这种写法,在思考怎么在Mars3d中实现转换成graphic添加,以此来控制模型内部的动画效果

Mars3d的gltf零部件控制(运载火箭)示例关于gltf内部的animations说明_第1张图片

3.通过原始的写法尝试后,发现加载后没有动画效果,应该是代码的使用问题

Mars3d的gltf零部件控制(运载火箭)示例关于gltf内部的animations说明_第2张图片

解决方案:

1.通过学习示例关于addDemoGraphic2,来手动控制获取gltf模型内部的动画后的操作。

相关示例地址:

功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技

相关示例代码:

function addDemoGraphic2(graphicLayer) {

  const graphic = new mars3d.graphic.ModelPrimitive({

    name: "风机",

    position: [116.35104, 30.86225, 374.4],

    style: {

      url: "//data.mars3d.cn/gltf/mars/fengche.gltf",

      colorBlendMode: Cesium.ColorBlendMode.MIX,

      heading: 270,

      scale: 30,

      minimumPixelSize: 100,

      runAnimations: false, // 关闭启动动画

      distanceDisplayCondition: true,

      distanceDisplayCondition_near: 0,

      distanceDisplayCondition_far: 9000,

      distanceDisplayBillboard: {

        // 当视角距离超过一定距离(distanceDisplayCondition_far定义的) 后显示为图标对象的样式

        image: "img/marker/square.png",

        scale: 1

      },

      // 高亮时的样式(默认为鼠标移入,也可以指定type:'click'单击高亮),构造后也可以openHighlight、closeHighlight方法来手动调用

      highlight: {

        silhouette: true,

        silhouetteColor: "#00ffff",

        silhouetteSize: 3

      }

    },

    attr: { remark: "示例2" }

  })

  graphicLayer.addGraphic(graphic) // 还可以另外一种写法: graphic.addTo(graphicLayer)

  // 手动按需启动动画

  graphic.on(mars3d.EventType.load, function (event) {

    console.log("风机 模型加载完成", event)

    const model = event.model

    // 参考API: http://mars3d.cn/api/cesium/ModelAnimationCollection.html

    model.activeAnimations.addAll({

      multiplier: 0.5, // Play at half-speed

      loop: Cesium.ModelAnimationLoop.REPEAT // Loop the animations

    })

    // let animation = model.activeAnimations.add({

    //   index: 0, //第一个叶子

    //   multiplier: 0.5, // Play at double speed

    //   loop: Cesium.ModelAnimationLoop.REPEAT, // Loop the animation

    // });

    // animation.start.addEventListener(function (model, animation) {

    //   console.log("Animation started: " + animation.name);

    // });

    // animation.update.addEventListener(function (model, animation, time) {

    //   console.log("Animation updated: " + animation.name + ". glTF animation time: " + time);

    // });

    // animation.stop.addEventListener(function (model, animation) {

    //   console.log("Animation stopped: " + animation.name);

    // });

  })

}

Mars3d的gltf零部件控制(运载火箭)示例关于gltf内部的animations说明_第3张图片

Mars3d的gltf零部件控制(运载火箭)示例关于gltf内部的animations说明_第4张图片

你可能感兴趣的:(Mars3d,vue,html,前端,vue.js)