анимация от первого лица в three.js - PullRequest
0 голосов
/ 12 сентября 2018

Я делаю игру от первого лица в three.js.я хочу показать какое-то движение в оружии, когда игрок двигается или стреляет.Я чрезвычайно новичок в three.js и абсолютно ничего не знаю об анимации в three.js с помощью animationmixer.в настоящее время я делаю это самым примитивным способом.я просто добавляю переменную кадров к оружию и увеличиваю ее в каждом новом обновлении игры.основываясь на обновлении, я просто использую синус, чтобы изменить y-позицию игры и дать ей некоторые движения.

этот метод хорош, когда анимация сортируется и не требует продвинутых вещей, таких как отдача и взятие какого-либо предмета.Как справиться с такого рода анимацией в three.js?

1 Ответ

0 голосов
/ 12 сентября 2018

Если вам нужны более продвинутые анимации, вы можете загрузить модели с анимацией, например, этот пистолет https://sketchfab.com/models/26adfd631730494ab0fc80c806eada77,, а затем загрузить его с помощью загрузчика GLTF (вы можете найти его в three.js / examples / js / loaders)

var loaderGLTF = new THREE.GLTFLoader();
loaderGLTF.load('gun.gltf', function (gltf) {
  gltf.scene.traverse(function (child) {
    var animations = gltf.animations;
    if (animations && animations.length) {
      mixer = new THREE.AnimationMixer(gltf.scene); // mixer is a global variable
      animation = mixer.clipAction(animations[0]));
      animation.play();
    }
  });
  scene.add(gltf.scene);
}, (xhr) => xhr, (e) => console.error(e));

Только не забудьте обновить микшер в цикле рендеринга, clock = THREE.Clock () в функции init.

if (mixer) mixer.update(clock.getDelta());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...