ThreeJs-083D动画系统详解
一.动画原理和应用
three的动画大概就是通过不同时间的关键帧来实现
加载一个手机模型

在这个对象里面,注意后期都是直接通过可视化软件Blender编辑好关键帧就能实现动画,这也是个已经编辑好的动画模型,在这个对象里面有一个animations就是动画集,也就是这个物体可以有很多个动画
其中animationclip表示剪辑动画,duration表示动画时长,tracks轨道表示各种关键帧,比如第一个关键帧里面,name什么group1 2 3等等都是一个部位,最后position表示这个关键帧是移动了位置,times表示时间,values是顶点,三维向量,一个时间对应values三个向量也就是一个顶点,表示这个时间段0.03999999910593033秒,第一个点移动到了-0.009195199236273766, -0.021173708140850067, -0.05099957436323166这个位置,所以times x3 等于values

当然你要看物体也可以在children属性里面看到

编辑好后拿到模型此时是静态的,还需要将动画播放起来

此时还要注意,我们要不断更新动画,那就在animate函数里面,并且创建一个时间,作为参数,要让动画知道时间是什么


1.1 代码实现keyframme关键帧动画
简单创建一个立方体


1.2 四元数与欧拉角转换设置关键帧
主要就是旋转动画,刚才是位移动画,旋转动画就要用到QuaternionKeyframeTrack
四元数就是利用一系列公式算出角度可以避免旋转过程中轴心偏向的问题
当然这个three已经帮我们处理好了,我们不用去算直接用她的一个数学库来解决



除此之外,四元数还支持欧拉角的方式来设置角度,三个参数分别表示x轴角度y轴z轴

1.3 布尔关键帧动画
就是控制显示隐藏,类似于星星闪烁效果


如果要对模型使用,注意模型的名字可以通过children属性查找里面的name


1.4 颜色关键帧
可以根据时间设置不同的颜色
注意颜色支持rgb但是是0-1的写法
而且是对材质设置


4.5 数值关键帧
就是想对这个3D物体某些属性进行数值上的单独修改可以用这个
比如透明度
注意要找到模型的材质,可以一直往这个gltf.scene的children下面找,找到最后一级会有mesh此时就带有材质


二.混合器
混合器就是可以对动画进行一些设置,比如时间多少,快慢,暂停启动等


三.人物多动作丝滑切换
加载模型进来,可以看到这是一个已经做好动画的模型


随便取几个代表性的动画出来

注意:这些动画不能一股脑一次性播放不然会变得很鬼畜

首先来一个站着不动呼吸的动画
其他效果类似


ThreeJs-083D动画系统详解的更多相关文章
- iOS:核心动画的详解介绍:CAAnimation(抽象类)及其子类
核心动画的详解介绍:CAAnimation(抽象类) 1.核心动画基本概念 Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍! 使用它 ...
- Bootstrap栅格系统详解,响应式布局
Bootstrap栅格系统详解 栅格系统介绍 Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列. 栅格系统用于通 ...
- java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET
java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET 亲,“社区之星”已经一周岁了! 社区福利快来领取免费参加MDCC大会机会哦 Tag功能介绍—我们 ...
- Android Animations 视图动画使用详解!!!
转自:http://www.open-open.com/lib/view/open1335777066015.html Android Animations 视图动画使用详解 一.动画类型 Andro ...
- CSS3图片翻转动画技术详解
CSS动画非常的有趣:这种技术的美就在于,通过使用很多简单的属性,你能创建出漂亮的消隐效果.其中代表性的一种就是CSS图片翻转效果,能让你看到一张卡片的正反两面上的内容.本文就是要用最简单的方法向大家 ...
- Vmware12安装centos系统详解
vmware12安装centos7系统详解 用虚拟机12安装centos7系统详细安装过程,后附centos7下载地址. 工具/原料 虚拟机12 centos7系统镜像 方法/步骤 1 1.百度搜索c ...
- centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解
centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解 操作系统:centos 7.2 x86_64 安装walle系统服务端 1.以下安装,均在宿主机( ...
- syslog之一:Linux syslog日志系统详解
目录: <syslog之一:Linux syslog日志系统详解> <syslog之二:syslog协议及rsyslog服务全解析> <syslog之三:建立Window ...
- POPSpring动画参数详解
POPSpring动画参数详解 效果 源码 https://github.com/YouXianMing/Animations // // POPSpringParameterController.m ...
- Unity3D NGUI UIPlayTween(原UIButtonTween)动画事件详解
http://blog.csdn.net/asd237241291/article/details/8507817 原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 Unity3D引擎技术 ...
随机推荐
- 介绍this指向问题
this是js底层定义的变量,代表了代码的指向环境 a 函数的this是window b 方法的this是调用的对象 c 构造函数和原型对象上的方法的this指向实例化对象 d 箭头函数不会自己创建t ...
- 解决 -Code 安装似乎损坏。请重新安装
问题: 1. 安装插件 fix VSCode Checksums 2. ctrl+shift+P打开命令面板 3. 输入 Fix Checksums: Apply 4. 重新启动VSCode
- C#轻松实现Modbus通信
1.前言 大家好!我是付工.前面给大家介绍了一系列关于RS485与Modbus的知识. 终于有人把RS485说清楚了终于有人把Modbus说明白了通透!终于把ModbusRTU弄明白了这样看来,Mod ...
- [Dest0g3 520迎新赛]funny_upload
打开靶机抓包发现过滤代码 发现.htaccess能上传后传入图片马 发现内容对<?进行过滤 我们换一种方式写后门代码 <script language="php"> ...
- 云原生爱好者周刊:你听过 DevOps 元素周期表吗?
云原生一周动态要闻: HashiCorp 的云战略状况调查结果公布 Gloo Mesh 1.1 和 Gloo Mesh Gateway 1.0 发布 GKE 增加了 OIDC 身份提供商和 gVNIC ...
- synchronized锁的内容
synchronized锁的内容 import java.util.concurrent.TimeUnit; class Test1 { public static void main(String[ ...
- Java和Python的区别
Java和Python区别 二者的区别有以下几点:1.Java必须显式声明变量名,而动态类型的Python不需要声明变量.2.Python虚拟机没有Java强,Java虚拟机是Java的核心,Pyth ...
- DP 详解
DP 概述 DP(Dynamic programming,全称动态规划),是一种基于分治,将原问题分解为简单子问题求解复杂问题的方法. 动态规划的耗时往往远少于朴素(爆搜)解法. 动态规划 and 递 ...
- 批处理-- 查询进程,杀进程,启动pythond程序,任务计划程序
@echo off wmic process where caption="python.exe" get processid,commandline | findstr &quo ...
- Java面试真题之中级进阶(线程,进程,序列化,IO流,NIO)
前言 本来想着给自己放松一下,刷刷博客,慕然回首,线程.程序.进程?Java 序列化?Java 中 IO 流? Java IO与 NIO的区别(补充)?似乎有点模糊了,那就大概看一下Java基础面试题 ...