ThreeJs学习-加载外部三维模型gltf格式

2024-08-26 14:36

本文主要是介绍ThreeJs学习-加载外部三维模型gltf格式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

import * as THREE from 'three';
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';const loader = new GLTFLoader();
const group = new THREE.Group();loader.load('./guntong.glb', function (gltf) {const scene = gltf.scene;// scene.translateZ(10)// 返回的场景对象gltf.scene插入到threejs场景中group.add(scene);
})loader.load('./Soldier.glb', (gltf) => {console.log(gltf.scene)gltf.scene.rotateY(Math.PI)// 返回的场景对象gltf.scene插入到threejs场景中const mixer = new THREE.AnimationMixer(gltf.scene);// const clipAction = mixer.clipAction(gltf.animations[0]);// clipAction.play(); //播放动画const ResetAction = mixer.clipAction(gltf.animations[0]);const RunAction = mixer.clipAction(gltf.animations[1]);const StopAction = mixer.clipAction(gltf.animations[2]);const WalkAction = mixer.clipAction(gltf.animations[3]);ResetAction.play();RunAction.play();StopAction.play();WalkAction.play();// gltf.animations[0]休息// gltf.animations[1]跑步// gltf.animations[2]静止展开// gltf.animations[3]走路// 跑步和走路动画对人影响程度为0,人处于休闲状态ResetAction.weight = 1.0;RunAction.weight = 0.0;StopAction.weight = 0.0;WalkAction.weight = 0.0;const clock = new THREE.Clock();let ActionState = ResetAction;//当前处于播放状态的动画动作对象document.getElementById('run').addEventListener('click', function () {ActionState.weight = 0.0;//播放状态动画权重设置为0RunAction.weight = 1.0;ActionState = RunAction;})document.getElementById('stop').addEventListener('click', function () {ActionState.weight = 0.0;//播放状态动画权重设置为0StopAction.weight = 1.0;ActionState = StopAction;})document.getElementById('walk').addEventListener('click', function () {ActionState.weight = 0.0;//播放状态动画权重设置为0WalkAction.weight = 1.0;ActionState = WalkAction;})document.getElementById('reset').addEventListener('click', function () {ActionState.weight = 0.0;//播放状态动画权重设置为0ResetAction.weight = 1.0;ActionState = ResetAction;})// 骨骼辅助显示const skeletonHelper = new THREE.SkeletonHelper(gltf.scene);group.add(skeletonHelper);function loop() {requestAnimationFrame(loop);//clock.getDelta()方法获得loop()两次执行时间间隔const frameT = clock.getDelta();// 更新播放器相关的时间mixer.update(frameT);}loop();group.add(gltf.scene);})export default group

这篇关于ThreeJs学习-加载外部三维模型gltf格式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108842

相关文章

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co