制作炮弹飞行的动画教学|Youtube官网(@电脑教室)频道



哈啰,大家好
今天我们要接续上一集的骨架设定教学
来制作炮弹飞行的动画
而今天我们会谈到的主题
则包含了以下这些工具的基础操作方式
说到 3ds Max 的动画设定
我们必须先来了解一下
在 3ds Max 中的两种动画模式
分别为 Auto Key
以及 Set Key
我利用一个简单的范例
来说明这两者的差别
我首先在一个空白的场景中建立一个 Box
在介面的底端
我们可以看到 3ds Max 的时间轴
它的单位是 Frame(影格)
而目前的影格速率是 30 fps
也就是动画在一秒内会跑 30 个影格
因此以目前总影格数为 100 来计算的话
播放时大约 3 秒多就可以跑完这些影格了
如果我们要更改底下时间轴的总影格度
其中一个方式
是按住键盘的 Ctrl 和 Alt 键不放
再按住滑鼠右键来拖曳时间轴
而第二个方式是在介面的底部
打开 Time Configuration(时间配置) 的对话框
然后在 End Time 栏位中
输入你所需要的影格数就可以了
OK,我们先来看第一种
Auto Key 的动画模式
假设今天我想要制做一个
像这样子的动画
也就是 Box 利用了一秒的时间
向前移动同时自转的话
那么我们的第一个步骤
就是先到右下角启用 Auto Key
接着将时间轴的播放头移到影格 30
也就是第一秒的位置
最后再使用移动工具将 Box 推移到目的地
此时你会发现
在时间轴上多出了两个红色的方块
在 3ds Max 中我们称它们为 key
也就是在动画软体中常听到「关键影格」
红色方块所代表的是「移动」类型的资讯
而如果我进一步去旋转 Box
则时间轴会多出了一个绿色方块
也就是用来记录「旋转」资讯的 Key
最后,如果我将 Box 放大
那么时间轴又会多出一个
用来记录「缩放」资讯的蓝色方块
也就是说在 Auto Key 模式中
只要 3ds Max 侦测到物体有任何的动作
它都会自动产生 Key 来记录这些资讯
同时在两个 Key 之间产生渐变的动画效果
OK,我将播放头拉回到影格 0
同时在时间轴内将这两个 Key 框选起来
按下键盘的 Delete 键将它们删除
如此 Box 就会恢复成一个静态的模型
如果我今天改变了主意
在动画开始之后
我希望 Box 先在原地停留个一秒
一秒过后再用另一秒向前移动到目的地
那么这样我们又该如何设定呢?

由于这个动画总共花了两秒
因此我们可以先将播放头移到影格 60
也就是第二秒的位置
然后再将 Box 推移到目的地
此时 Auto Key 同样会为我们
自动设好两个关键影格
一个在影格 0,一个在影格 60
不过这样设置的结果
会导致 Box 在动画一开始就向前移动
而没有照着剧本
在动画的开头先停留个一秒
要修正这个问题非常的简单
我们只要到时间轴内
将位于影格 0 的 Key 选取起来
然后拖曳到影格 30
如此当我们在播放动画时
Box 就会在原地停留到影格 30 之后
才会启程前往目的地喔
相对于 Auto Key 的「自动」设定关键影格
3ds Max 的第二种动画模式 Set Key
则将设定关键影格的时机
交由我们自己来决定
使用 Set Key 模式时
我们必须先决定
要针对物体的那几个属性来设定 Key
我到右下角开启 Key Filters(关键影格筛选器)
如果今天我们要制作的动画
只会更动到物体的 Position (位置)
和 Rotation (角度)
那么我们就可以
将这两个属性以外的选项取消打勾
使 Set Key 功能所记录的动画资讯
能够更为精简
接着,我打开 Set Key 的功能
由于动画的开头 Box 在原地停留了一秒
因此我将播放头移动到影格 30 之后
手动按一下 + 号来新增关键影格
然后我再将播放头移到影格 60
并且将 Box 向前推移到目的地
同时做一些角度的旋转
你也可以尝试使用
缩放工具来将 Box 放大
然后再按下 + 号
此时,如果我们来测试动画
Box 可以顺利地照着剧本完美演出
然而由于当初我们在设定筛选器时
并未指定要记录物体的缩放
因此刚才针对 Box 的放大动作
并未被 Set Key 功能记录下来
OK,当我们对 Auto Key 和 Set Key
这两个功能有了基本概念之后
我们就可以开启下载好的练习档
来进入今天的主题
在上一集的影片
我们已经设定好炮弹的骨架
不过我们炮弹的身体
还没有附着到中间的骨干
因此我将炮弹身体选取之后
按住 Ctrl 键加选身体两旁的手环
然后到工具列启用「连结」工具
从炮弹的身体拖曳到中间的骨头
如此当我们移动这节骨头时
身体就会跟着移动啰
一般在进行动画设定时
将「关键影格」设定在模型或骨头上
并不是一个理想的做法
通常我们会为了保持模型本身的干净
而另外建立一个控制器
用来记录动画的资讯
OK,所以我到右侧的建立面板
切换到 Helpers 的标签
并且在场景内建立一个 Point 物件
物件的外观我修改为 Box
然后我利用「对齐」的功能
将这个 Box 对齐到炮弹的身体
在对话框内我将 XYZ 三个轴向全部勾选起来
并且以 Box 的中央
对齐至炮弹的中央
再按下 OK
既然我们打算以这个 Box
做为动画的主控制器
我们就可以进一步的将炮弹的脊椎骨
以及手部的两个子控制器
同样利用「连结」工具附着到 Box 上面
甚至我们也可以将后面的炮弹参考图
一同连结到 Box 身上
如此当我们需要调整炮弹手部的弯曲时
后面还有一个可供参考的依据
这个 Box 我除了打算利用它
来设定炮弹的移动和旋转之外
我同时也计划
把它当做一个手臂伸缩的控制器
在这之前
炮弹的手臂伸缩
是透过模型上面的 Morpher 修改器
不过我们可以运用 3ds Max 的几个小工具
将 Box 改造为一个控制中心
使它能够以遥控的方式来伸缩炮弹的手臂
OK,我首先调整 Morpher 的数值
将炮弹的手臂收回到身体之内
然后我切换到「显示」面板
来暂时隐藏所有的「骨头」物件
我点选炮弹身上的 Box
在修改面板内
新增一个名为 Attribute Holder 的修改器
这个工具提供了一个空间
方便我们放置一些控制介面
而要新增这些介面内容
我们可以到上面的 Animation (动画)选单
开启 Parameter Editor (参数编辑器)
这个编辑器可以让我们设定介面的类型
像是「滑杆」或是一般的数值栏位
在底下我们可以指定
这个介面数值的「最小值」和「最大值」
在此我将最小值保持为 0 不变
最大值修改为 10
然后我将这个介面命名为「手臂控制」
并且到上面把「新增预设值选项」的功能关闭
再按下 Add(新增)按钮
如此我们在右侧的面板内
就多了一个「手臂控制」的栏位
而之后如果你不再需要这个栏位
你也可以随时透过「编辑/删除」的功能
来移除这个参数喔
不过,目前这个「手臂控制」的栏位
仅徒有外观
它还没有办法实际去控制炮弹的手臂
因此,我们必须另外再利用一个
叫做 Reaction Manager (反应管理器)的功能
来串连起这个控制面板和炮弹的手臂
Reaction Manager 这个指令
同样是位于 Animation 这个选单里面
而这个工具的运作方式
就是我们必须指定所谓的 Master (主人)
和 Slave (奴隶)
主人所代表的是「控制」的一方
而奴隶则代表了「被控制」的一方
以目前这个情境来说
扮演主人的
就是我们右手边的「手臂控制」面板
而它所控制的对象
就是位于炮弹手臂 Morpher 修改器
弄清楚这两者的关系之后
我们就可以到左上角
按下绿色的 + 号先来指定「主人」
我在场景内点击 Box
此时会弹出一个选单
列出了 Box 所有可供指定的参数
我循着对话框内的指令
点击 Modified Object(修改物件)
选择 Attribute Holder 修改器
并且在修改器内
找到了「手臂控制」这个栏位
指定好主人之后
我们再按下隔壁灰色的 + 号
来指定 Slave (奴隶)
这里要被控制的 Morpher 修改器
是附着在炮弹的手臂
而手臂我们刚才已经将它
内缩到炮弹身体内了
因此我按一下键盘的 F3
切换到外框模式
将画面拉近后使用滑鼠点击手臂的模型
然后同样选择 Modified Object(修改物件)
Morpher 修改器
再点击「手臂」就可以啰
OK,此时我们就可以进一步
告诉 Reaction Manager
当我把「手臂控制」这个栏位
调到最大值时
炮弹手臂会产生什么样的变化
我在左边的介面中
按下 Create Mode(建立模式)
接着,我把「手臂控制」的数值调到最大
而当这个栏位达到最大值时
我希望手臂也能藉由 Morpher 修改器
完整地向外伸展
调整完毕之后
我在介面内按下 Create State
来记录这个动作
同时在左手边关闭建立模式
如此,当我们打开 Box 控制中心时
就可以很方便地利用右边的控制面板
来调整手臂的伸缩
而不需要再到炮弹的手臂内
去寻找 Morpher 修改器啰
OK,影片的最后
我们来设定炮弹的飞行动画
我到工具列内打开「场景浏览器」
来将「炮台」和「炮管」恢复为显示的状态
接着,我将炮弹的手臂收合起来
并且将炮弹放到炮管里面
在设定关键影格之前
我们不妨先拟定一个简单的动画目标
譬如这个动画的总长度为 100 个影格
我希望在影格 20 的时候
炮弹从炮管里发射出来
而在影格 40 到 50 之间
炮弹伸出了手臂
接着在影格 50 到 60 之间
手臂向前弯曲
拟好了初步的计画
我们就可以到右下角打开 Auto Key 的模式
我首先将时间轴的播放头拉到最后
并且让炮弹直线冲往目的地
来产生首、尾的两个关键影格
在预设的情况之下
3ds Max 的移动动画
在开头和结束时
都会带有「加速」和「减速」的效果
然而以炮弹来说
发射时如果炮弹缓慢的加速
会使整个动画显得不是很自然
因此我到上面的 Graph Editors 选单
叫出 Curve Editor(曲线编辑器)
针对炮弹飞行的 X 轴
我把 Auto Key 所产生的两个关键影格框选起来
然后到工具列套用 Linear(线性)
使炮弹能以「等速」的方式飞行
最后,我再依照剧本
将影格 0 的 Key 搬移到影格 20
使炮弹在动画开始时先停留少许的时间
第二阶段则是炮弹手臂伸展的动画
我将播放头移动到影格 40 的位置
手臂将会在这个时间点向外伸出
因此我按住键盘的 Shift 键不放
对着「手臂控制」栏
按下滑鼠右键来设定一个 Key
如此在栏位箭头的周围会显示一个红框
接着,我再将播放头移到影格 50 的位置
然后将手臂伸展出来
而 Auto Key 也会自动记录这个动作
如此第二阶段的动画也设定成功啰
至于第三阶段的手臂弯曲动画
我打算改以 Set Key 的方式来制作
我到右下角关闭 Auto Key 的功能
并且按下 Key Filters
来将 Set Key 的对象限定在「移动」和「旋转」

接着我启用 Set Key 功能
并且确认目前播放头的位置是在影格 50
然后我选取炮弹两臂的控制器
设定一个关键影格
来记录它们目前的位置和角度
此时,我再将播放头移动到影格 60
并且切换到上侧视角来将两臂向前弯曲
然后再切换到 Front 前侧视角
在此我们可以将炮弹的身体
按下快速键 Alt +X 切换到半透明模式
并且依据后面的参考图来调整手部的高度
调整完毕后
我同样针对两臂的控制器
再新增一个关键影格来记录目前的姿势
然后关闭 Set Key 模式
如此,我们辛苦设定的炮弹飞行动画
就大功告成啰
最后,我这边仍必须提及
这个动画可能会出现的一个小问题
就是当我们把目前的档案存档
关闭
之后又重新开启的话
有可能会发现手臂在弯曲时
模型被扯破的情形
修正这个问题有几个不同的方式
而比较彻底的解决方法
是将播放头移到影格 50 的位置
然后选取炮弹的手臂
再到右侧的面板内
开启 Skin 修改器的编辑功能
你会发现当我选取手部的骨头时
模型上有一些点
并没有正确地依附在骨头之上
因此我将这些手部的点选取之后
到右侧面板内打开「权重工具」
并且将这些点套用 1
也就是 100% 的权重
使整个拳头都能呈现红色的色彩
完毕后我再针对另一只手重复相同的操作
如此这个模型扭曲的情形
就不会再发生啰
OK,那今天的影片我们就先聊到这里
下一回我们来谈谈场景灯光的设定,拜拜