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

相关文章

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Spring Boot项目如何使用外部application.yml配置文件启动JAR包

《SpringBoot项目如何使用外部application.yml配置文件启动JAR包》文章介绍了SpringBoot项目通过指定外部application.yml配置文件启动JAR包的方法,包括... 目录Spring Boot项目中使用外部application.yml配置文件启动JAR包一、基本原理

SpringBoot加载profile全面解析

《SpringBoot加载profile全面解析》SpringBoot的Profile机制通过多配置文件和注解实现环境隔离,支持开发、测试、生产等不同环境的灵活配置切换,无需修改代码,关键点包括配置文... 目录题目详细答案什么是 Profile配置 Profile使用application-{profil

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

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

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

Android ClassLoader加载机制详解

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