头图

一、前言

在从一个模型到,完成贴图,完成蒙皮(骨骼绑定)后,已经算是一阶段的任务完成了,因为这样既可以拿去做 Mod,也可以直接导入动作源完成动画。

但是对于独立游戏,为了差异化,有些动作还是要自己制作的,所以就有了下面的这个 3D 模型的动画制作过程,最后也会演示一下如何导入 CocosCreator 等游戏引擎中。
图片

二、动画制作

1. 打开时间线

记得是在姿势模式下,然后在 Blender 底部把 “时间线” 拉高一点,折叠的 “汇总” 也点击展开来。
图片

2. 开始 K 帧

 点亮 “自动插帧” 按钮,将关键帧放到 0 帧位置,开始对某个骨骼进行变换,旋转,移动等,然后再移动到指定关键帧位置再变换,播放一下就可以看到动画了。
图片

三、多组动画

在游戏引擎中导入模型时,一个模型往往会制作多组动画,比如待机、攻击、死亡、大招等不同的动作,开发只需要在开发时添加控制器,不同的时候播放对应的动画即可。

1. 动画摄影表

从 “时间线” 切换到 “动画摄影表”,然后再选择 “动作编辑器”,点击 “新建动作”,然后还是和前面一样,在指定帧数位置做变换。
图片

2. 切换动作

 在编辑了多组动作后,大纲里只会显示一个动作,要想查看需要切换,为了好记,在新建动作时可以重命名,然后在 “浏览要关联的动作” 的地方进行切换。
图片

四、游戏引擎

中使用我这里为了方便,就没用这个机械臂了,直接拿之前已经导进去的 Fbx 做示例了。

1. 导入 CocosCreator

首先将有动画的模型导出为 Fbx,然后将其复制到 CocosCreator 项目的 assets 下的某个位置。

2. 拖入模型

在游戏场景下,先创建一个空节点,然后把已经放到项目资源目录下的 Fbx,拖入在该节点下。
图片

3. 创建脚本

 给新建的空节点绑定一个脚本,脚本接收一个 SkeletalAnimation 属性,也就是带动画的 Fbx,就是空节点下的整个目录拖入。

import { _decorator, Component, SkeletalAnimation, input, Input, EventMouse, Vec3 } from 'cc';

const { ccclass, property } = _decorator;

@ccclass('MyPlayController')
export class PlayController extends Component {

    @property({ type: SkeletalAnimation })
    public CocosAnim: SkeletalAnimation | null = null;

    start() {
        this.CocosAnim.play();
    }

    onMouseMove(event: EventMouse) {
        console.log(event);
    }

    update(deltaTime: number) {
        
    }

    onStartButtonClicked() {
        this.CocosAnim.play();
    }

    onStopButtonClicked() {
        this.CocosAnim.stop();
    }

}

4. 开始运行

这个只要是启动就自动播放,而且 Fbx 只有一个时间线的默认动画,没有多动作组,其实也差不多,就只是对指定动作进行播放。
图片

五、写在后面

如果只是制作游戏,到这里就完全够用了,但如果是影视后期的话,还有渲染部分,因为在制作完模型还要放到实拍场景中,目前这个我也还不会,等后面学习了我再总结一下了。
图片


北桥苏
21 声望0 粉丝