Blender给一个对象添加多个动画

最近在做一个类似元宇宙的项目,需要使用3D建模软件来给3D模型添加动画,3D建模软件选择Blender(因为开源免费...),版本: V3.5

遇到的需求是同一个对象要添加多个动画,然后在代码里根据需要调取动画来执行。本人讲述在Blender里如何操作。


操作步骤

添加第一个动画

打开Blender,这里以默认的立方体为例,

把底部窗口网上拉一点,然后选择Dope Sheet,

变成如下这样,

接着点击右侧的下拉菜单,选择Action Editor,

此时就变成了动作编辑的窗口,然后选中立方体,接着点击New来创建新的动作,

点击后会默认给个名字叫"Action",这里改成"Action1",改完后要按下回车,

此刻处于第一帧,立方体位置是(x:0, y:0, z:0),然后把鼠标放在立方体所在的窗口里,接着按下"i"键,在弹出窗口里选择Location,这样帧1位置插入了一帧,

接着把帧拖到第60帧,

然后在右侧窗口把立方体的位置改为(x:3, y:0, z:0),

此时再按下"i"来插入一帧,这样第一个动画就做好了,

拖动时间线可以看到动画效果,

添加第二个动画

首先观察一下对象和动画的关系,如下图,2者联系在一起了,

在Action1右侧有三个按钮,第一个像盾牌,叫Fake User,第二个叫New Action,第三个叫Unlink Action

三个按钮的意思是:

  • Faker User: 给动画添加一个虚假用户,Blender里如果动画没有和任何对象连接,那么重启后该动画就会被删除,虚假用户可以保证动画在重启Blender后不会被删除掉
  • New Action: 创建新动画
  • Unlink Action: 断开动画和对象的连接

点击第二个按钮来给立方体创建第二个动画,取名Action2,

Action2创建后,会默认使用Action1的帧,这里可以自行修改。

此时观察Cube的动画关系图,如下,

Action2处于当前动画位置,Action1则是被放到NLA Tracks里暂存起来了。此时如果导出立方体模型,然后在网页里使用threejs来解析,可以看到有2个动画,

但是如果把Action1选为当前动画,然后再次检查,发现只有一个动画Action1,

导入到网页里也只打印出一个动画。

那么该咋办呢?

首先把Action2选为当前动画(因为Action1已结暂存好了),然后在左侧发现有2个按钮Push Down和Stash,

含义如下:

  • Push Down: Push action down on to the NLA track as a new strip
  • Stash: Store this action in the NLA track as a non-contributing strip for later use

这里使用Push Down,点击之后再观察,可以看到立方体的NLA Tracks里包含了2个动画,

然后用threejs打印,可以看到也是有2个动画,

经过测试,Stash也可以达到同样效果,

这样就实现了在一个对象里添加多个动画的效果。

简单优化

可以在创建完第一个动画后,直接点击Push Down,然后再新建第二个动画,弄好帧之后再点击Push Down,以此类推...

相关推荐
峥嵘life1 分钟前
Andorid 打开热点,关闭有线网,ifconfig卡死分析解决
java·服务器·网络
三84419 分钟前
基本Linux命令总结
linux·运维·服务器
隔壁阿布都22 分钟前
ClickHouse完整指南
服务器·数据库·clickhouse
她叫我大水龙29 分钟前
nginx 编译指南:静态编译 + 动态编译
运维·nginx
hehelm1 小时前
AI 大模型接入 SDK —项目概述
linux·服务器·网络·数据库·c++
Icoolkj2 小时前
ICOOLKJ 前后端分离项目完整部署文档(MySQL8.4+Redis+JDK21+Nginx+HTTPS+自动同步演示库)
redis·nginx·https
facaixxx20242 小时前
雨云游戏服务器MCSM面板指南:低延迟BGP线路(一键开服)
运维·服务器·游戏
焦点链创研究所2 小时前
算力核心机器人将于 7 月 18 日发布
运维·服务器·机器人
土星云SaturnCloud3 小时前
智慧港口边缘计算:基于土星云边缘计算设备的三级架构设计与实战
服务器·人工智能·ai·边缘计算
funnycoffee1233 小时前
华为USG防火墙端口有收光,无法UP故障
服务器·网络·华为