Three.js的人物动画与交互

程序员的很多工作是在数据处理和优化以及交互上,这种人物动画的数据是由专业的三维模型人员用三维软件做好了的,不是程序员做的。就是人物的模型和动作都是事先做好了的,程序员做的是载入场景并且能够满足交换需求。这里讲一个three.js自带的案例,机器人动画,稍稍修改了下为了下面的几节做铺垫。![在这里插入图片描述](https://img-blog.csdnimg.cn/20210207102845993.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5na..
摘要由CSDN通过智能技术生成

程序员的很多工作是在数据处理和优化以及交互上,这种人物动画的数据是由专业的三维模型人员用三维软件做好了的,不是程序员做的。就是人物的模型和动作都是事先做好了的,程序员做的是载入场景并且能够调用某一动作达到交互要求。这里讲一个three.js自带的案例,机器人动画,稍稍修改了下为了下面的几节做铺垫。运行效果:http://www.b2bdmp.com/examples/robotannimate.html在这里插入图片描述

这里,事先做好了机器人的模型,以及几个动画,格式为glb,我们做了交互,按某键时调用机器人某一动作。
我们一般会用到three.js提供三个类,AnimationMixer,AnimationClip,AnimationAction几个类。第一个类是动画混合器,控制所有动画的更新,并且绑定一个对象,这里绑定了机器人,对他的动画进行管理。第二个类是存储了某一个动画的数据,动画帧数据,叫可重用的关键帧轨道集,这里机器人有几个动作就有几个clip。第三个类是用来调度存储在AnimationClips中的动画,比如播放,还有停止等,还有切换动画时淡入淡出的效果,是用来切换每一个clip时的效果。
在初始化时,加载了机器人模型,并且把他的动画数据保存起来,这里用的GLTFLoader类来加载glb模型。然后调用了createAnimation函数将动画数据保存在变量animations中,就是clip动画帧数据的数组,代码如下:

const loader = new GLTFLoader();
				loader.load( 'models/gltf/RobotExpressive/RobotExpressive.glb', function ( gltf ) {
   

					model = gltf.scene;
					animations = 
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值