基于Vue与Three.js构建人物奔跑场景:人物加载GLTF骨骼动画原地循环跑步,巨型草坪平面持续向后平移,营造无限奔跑错觉,并添加线性白雾增强空间层次,代码工程化实现。

先来看看最终效果,心里有个底:
长期稳定更新的攒劲资源: >>>点此立即查看<<<
复制代码<template>
<div class="three-container" ref="content" id="three">div>
template>
复制代码
复制代码.three-container {
width: 100%;
height: 100%;
position: relative;
overflow: hidden;
}
原理说穿了其实很简单,无非是骨骼动画、相对运动和雾化这几个老套路,但组合起来效果出奇的好。
先用 GLTFLoader 把模型文件拉进来,然后通过 THREE.AnimationMixer 这个动画混合器,去解析模型内部自带的那些动画片段。接着用 clipAction() 方法把跑步动作单独拎出来,调用 play() 让它循环播放。人物坐标全程固定不动,所以看起来就是原地跑动,非常自然。
核心思路其实特别简单:人物不动,地面一直往后移。人的眼睛很容易被这种相对运动骗过去,以为自己在向前跑。
position.z,让它向后偏移。-500 的时候,直接把它位置重置回 0,这样无缝循环,就实现了无限跑道的感觉。RepeatWrapping 重复平铺,保证那么大一片地面纹理不会拉伸变形。通过 THREE.Fog 给场景加上一层线性白雾,效果立竿见影。
new THREE.Fog(雾颜色, 近裁剪距离, 远裁剪距离)。本文演示所用的 3D 模型来源于网络,版权归原作者所有。本文仅做 Three.js 前端技术学习演示,并未对模型本身做任何修改。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述