Three.js中文网 Three.js中文网
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
Web3D系统课程视频
  • 1. 数学几何计算基础

  • 2.位移、速度、加速度(向量)

  • 3.向量点乘、叉乘

  • 4.四元数、欧拉角(角度姿态)

  • 5.矩阵

  • 6.射线

  • 7.包围盒

  • 8.第一、三人称漫游

    • 1. 键盘WASD按键状态记录
    • 2. W键控制角色模型运动
    • 3. 加速度(按键给玩家加速)
    • 4. 阻尼(玩家角色逐渐减速停止)
    • 5. 按键S退后运动
    • 6. 相机跟着玩家走(第三人称漫游)
    • 7. 鼠标左右拖动改变玩家视角
    • 8. 获取玩家(相机)正前方方向
    • 9. 鼠标上下移动只改变相机视角
    • 10. 玩家角色左右运动(叉乘)
    • 11. 鼠标滑动改变视角(指针锁定模式)
    • 12. 快捷键切换第一、第三人称
      • 13. 骨骼动画与运动状态关联
    • 9.漫游-八叉树碰撞检测

    • 10.CannonJS物理引擎

    • Three.js进阶教程
    • 8.第一、三人称漫游
    郭隆邦
    2023-09-03
    目录

    12. 快捷键切换第一、第三人称

    # 快捷键切换第一、第三人称

    你可以先复习下前面8.6.相机跟着玩家走(第三人称漫游)在学习本节课内容。

    # 知识回顾:第三人称

    第三人称漫游相机位置

    注意一点透视投影相机fov视野的角度 (opens new window)值会影响,相机与人距离的设置。

    const camera = new THREE.PerspectiveCamera(30,...);
    //玩家角色后面一点  对应fov 30度
    camera.position.set(0, 1.6, -5.5);
    

    根据透视投影相机规律,fov变大,能够看到的视野范围角度更大。

    const camera = new THREE.PerspectiveCamera(70,...);
    //玩家角色后面一点  对应fov 70度
    camera.position.set(0, 1.6, -2.3);
    

    # 第一人称

    第一人称,简单点说,就是看不到玩家角色的模型,相当于把相机放在人的前面。

    // camera.position.set(0, 1.6, -2.3);//第三人称
    // camera.lookAt(0, 1.6, 0);
    camera.position.set(0, 1.6, 1);//第一人称
    camera.lookAt(0, 1.6, 2);//目标观察点注意在相机位置前面一点
    

    如果lookAt后面执行第一人称代码,不重新执行camera.lookAt,视线方向还是原来的。

    // z距离人远近具体值,可以根据模型尺寸去测试调节
    camera.position.set(0, 1.6, -2.3);//第三人称
    camera.lookAt(0, 1.6, 0);
    camera.position.set(0, 1.6, 1);//第一人称
    

    第一人称漫游相机位置

    # 第一、第三人称切换

    第一、第三人称,快捷键v切换的完整代码。

    let viewBool = true;//true表示第三人称,false表示第一人称
    document.addEventListener('keydown', (event) => {
        if (event.code === 'KeyV') {
            if (viewBool) {
                // 切换到第一人称
                camera.position.z = 1;//相机在人前面一点 看不到人模型即可
            } else {
                // 切换到第三人称
                camera.position.z = -2.3;//相机在人后面一点
            }
            viewBool = !viewBool;
        }
    });
    
    11. 鼠标滑动改变视角(指针锁定模式)
    13. 骨骼动画与运动状态关联

    ← 11. 鼠标滑动改变视角(指针锁定模式) 13. 骨骼动画与运动状态关联→

    Theme by Vdoing | Copyright © 2016-2025 豫ICP备16004767号-2
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式