[Serie Foolish Old Man] Temas de Three.js en agosto de 2023 - Animación


prefacio

La animación es una técnica en la que las imágenes se reproducen en rápida sucesión para crear una ilusión de movimiento y cambio. Esto generalmente se hace creando una serie de imágenes fijas y reproduciéndolas en sucesión para crear el efecto de movimiento. La animación se usa comúnmente en cine, televisión, publicidad, juegos y educación para crear personajes y escenas en diversas formas que brindan placer visual y valor educativo. Los tipos de animación comunes incluyen animación dibujada a mano, animación digital, animación 3D, etc.

1. Animación

1. Uso básico de tween.js

tween.js es una biblioteca para Tween Animation en JavaScript que nos permite crear animaciones fluidas de forma rápida y sencilla.

Los pasos básicos para usar tween.js son los siguientes:

  1. Introduzca la biblioteca tween.js en el archivo HTML, que se puede obtener descargando el archivo tween.js o desde el CDN.
<script src="https://cdnjs.cloudflare.com/ajax/libs/tween.js/18.6.4/tween.min.js"></script>
  1. Cree un objeto Tween en JavaScript. La creación de un objeto Tween requiere la especificación de tres parámetros: valor inicial, valor objetivo y duración de la animación.
var tween = new TWEEN.Tween({
    
    x: 0}) // 起始值为 { x: 0 }
  .to({
    
    x: 100}, 1000) // 结束值为 { x: 100 },动画持续时间为 1000 ms
  1. Añadir efectos de animación. Con los métodos proporcionados por el objeto Tween, puede agregar varios efectos de animación, como movimiento lineal, aparición y desaparición gradual, etc.
tween.easing(TWEEN.Easing.Quadratic.InOut) // 缓动效果为二次缓入缓出
  1. Inicie la animación. Inicie la animación utilizando el método start() del objeto Tween.
tween.start()
  1. Renderizar efectos de animación. Utilice el método update() proporcionado por la biblioteca TWEEN para actualizar los efectos de animación en tiempo real.
function animate() {
    
    
  requestAnimationFrame(animate);
  TWEEN.update();
}
animate();

Los anteriores son los pasos básicos de uso de la biblioteca tween.js. Para obtener más detalles sobre el uso y la configuración de parámetros, consulte la documentación oficial de tween.js.

2. Caso de animación de Three.js

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    *{
      
      
      margin: 0;
      padding: 0;
    }
  </style>
  <script src="../lib/three/three.js"></script>
  <script src="../lib/three/tween.min.js"></script>
</head>
<body>

</body>
</html>

<script>
  // 创建一个场景
  const scene = new THREE.Scene();

  // 创建一个相机 视点
  const camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000);
  // 设置相机的位置
  camera.position.set(0,0,20);

  // 创建一个渲染器
  const renderer = new THREE.WebGLRenderer();
  // 设置渲染器尺寸
  renderer.setSize(window.innerWidth, window.innerHeight);

  document.body.appendChild(renderer.domElement);

  // 添加一个立方体
  // 定义了一个立方体的对象
  const cubeGeometry = new THREE.BoxGeometry(3, 3, 3);

  // 创建材质

  const lambert = new THREE.MeshLambertMaterial({
      
       color: 0xff0000 })
  const basic = new THREE.MeshBasicMaterial({
      
       wireframe: true })

  const cube = THREE.SceneUtils.createMultiMaterialObject(cubeGeometry, [
    lambert,
    basic
  ])

  // 添加到场景里
  scene.add(cube);

  // 添加灯光
  const spotLight = new THREE.SpotLight(0xffffff);
  spotLight.position.set(-10,10,90);
  scene.add(spotLight);

  new TWEEN.Tween(cube.rotation).to({
      
      
    x: cube.rotation.x + 2,
    y: cube.rotation.y + 2,
    z: cube.rotation.z + 2,
  }, 2000).start().repeat(Infinity);

  const animation = () => {
      
      
    TWEEN.update();
    // 渲染
    renderer.render(scene, camera);

    requestAnimationFrame(animation);
  }
  animation()
</script>

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/aa2528877987/article/details/132209033
Recomendado
Clasificación