threejs相机动画
threejs相机动画
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import * as dat from "dat.gui" ; import { GUI } from "../../utils/lil-gui.module.min.js" ; import TWEEN from "@tweenjs/tween.js" ; const gui = new GUI(); gui.domElement.style.right = "0px" ; gui.domElement.style.width = "300px" ; const cameratween = { camerachange: () => { const endPos = new THREE.Vector3(0, 160, 40); const endTarget = new THREE.Vector3(0, 160, 0); this .createCameraTween(endPos, endTarget); }, camerareturnchange: () => { const endPos = new THREE.Vector3(0, 120, 300); let obj = this .scene.getObjectByName( "mergeBones" ); const endTarget = obj; this .createCameraTween(endPos, endTarget); }, }; gui.add(cameratween, "camerachange" ).name( "贴近" ); gui.add(cameratween, "camerareturnchange" ).name( "返回" ); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | /** *相机动画函数,从A点飞行到B点,A点表示相机当前所处状态 * @param {三维向量,表示动画结束相机位置} endPos * @param {三维向量,表示相机动画结束lookAt指向的目标观察点} endTarget */ createCameraTween(endPos, endTarget) { const cameradata = this .camera; const orbitControlsdata = this .orbitControls; new TWEEN.Tween({ // 不管相机此刻处于什么状态,直接读取当前的位置和目标观察点 x: this .camera.position.x, y: this .camera.position.y, z: this .camera.position.z, tx: this .orbitControls.target.x, ty: this .orbitControls.target.y, tz: this .orbitControls.target.z, }) .to( { // 动画结束相机位置坐标 x: endPos.x, y: endPos.y, z: endPos.z, // 动画结束相机指向的目标观察点 tx: endTarget.x, ty: endTarget.y, tz: endTarget.z, }, 2000 ) .delay(500) .easing(TWEEN.Easing.Quartic.InOut) .start() // define delay, easing .onUpdate( function (obj) { console.log(cameradata); // 动态改变相机位置 cameradata.position.set(obj.x, obj.y, obj.z); // 动态计算相机视线 // camera.lookAt(obj.tx, obj.ty, obj.tz); orbitControlsdata.target.set(obj.tx, obj.ty, obj.tz); orbitControlsdata.update(); //内部会执行.lookAt() }); //.start(); }, |
最后
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!