• Unity MegaFiers 顶点动画


        使用 MegaFiers 插件,能够使得Unity支持顶点动画的播放。
    官方视频教程例如以下:


    在这里简单測试使用下,环境例如以下:
    • Blender 2.72
    • Unity 4.5.4
    • MegaFiers 2.74

    创建物体和动画

    首先打开Blender,默认会含有一个立方体,以下对这个立方体制作一个简单动画,让其在1~100帧做旋转,101~250帧做缩放,制作方法可參考教程【牛刀小试简单动画】。
    1. 确认立方体处于桔黄色外框包围的“被选中”状态;
    2. 用鼠标把绿色的当前帧指示线拖到第1帧;
    3. 在“用户视图”中按下键盘 I 键,运行插入关键帧命令;
    4. 在弹出的菜单中选择第二项“旋转”;
    5. 用鼠标把绿色的当前帧指示线拖到第100帧(能够看到刚才第1帧附近多了一条黄色的竖线);
    6. 在“用户视图”中按下键盘 R 键,运行旋转命令,出现了一条虚线连接着变成双箭头的鼠标;
    7. 紧接着按下键盘 Z 键,出现一条垂直竖线,限定立方体仅仅能沿着Z轴旋转;
    8. 紧接着键盘输入 180 回车,完毕了把Cube立方体沿着Z轴旋转180度的操作;
    9. 在“用户视图”中下键盘 I 键,再次运行插入关键帧命令;
    10. 在弹出的菜单中仍是选择“旋转”;
    11. 能够看到刚才第100帧附近也多了一条黄色的竖线;
    12. 如今用鼠标左键点击并按着屏幕下方的播放键(或者按下键盘的 Alt+A);
    13. 能够看到立方体旋转,整个动画从第1帧到第100帧完毕,往后的动画则是继续保持最后的状态不变;
    14. 接着按上面的类似步骤,完毕第101帧到第250帧的缩放动画,插入关键帧菜单选择“缩放比例”,运行的缩放命令为SZ3;
    15. 保存为“cube.blend”文件;
    16. 导出为.mdd文件(须要先在“用户设置...”→“导入-导出”里勾选mdd格式)。
    动画完毕例如以下类似:

    导入物体和动画

    接着要在Unity中实现顶点动画,打开Unity,装上MegaFiers插件,新建一个场景,将cube.blend”文件放入Assets目录中。然后将导入完毕的cube预制拖动到场景中,效果例如以下所看到的:

    通过菜单“Component”→“Modifiers”→“Point Cache”来加入顶点缓存组件。
    (这些參数的描写叙述可參见官网【Point Cache】)
    点击“Import MDD”导入刚才的mdd文件,导入完毕会自己主动设置动画的循环时间“Loop Time”。接着更改循环模式“Loop Mode”为“Loop”,混合模式“Blend Mode”为“Replace”,拖动“Time”的值,就可以在编辑器模式下观看此时的动画帧,例如以下图所看到的:

    最后勾选“Animated”,执行游戏,就可以自己主动播放动画,效果例如以下图所看到的:

    控制动画播放

    接下来控制播放指定的动画片段,让其默认一直播放旋转动画,button点击控制播放缩放动画。选中立方体物体,通过菜单“Component”→“Modifiers”→“Point Cache Animator”来加入顶点缓存动画组件。
    (这些參数的描写叙述可參见官网【Point Cache Animator】)
    点击“Add Clip”,加入2个剪辑,分别为RotationScale,帧数分别为0~99100~249,速度都是1,循环方式为Loop,例如以下图所看到的:

    如今执行游戏,能够发现立方体一直在做旋转动画。新建一个脚本挂在立方体上面,代码例如以下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    using UnityEngine;
    using System.Collections;

    public class test : MonoBehaviour {

        public MegaPointCacheAnimator anim;
        
        void OnGUI()
        {
            if (GUI.Button(new Rect(Screen.width - 5005050), "缩放"))
            {
                if (anim == null)
                {
                    anim = GetComponent<MegaPointCacheAnimator>();
                }
                anim.PlayClip("Scale");
            }
        }
    }
    点击button,能够切换到播放缩放动画。效果例如以下图所看到的:


    备注:
    第一次尝试使用此插件,可能存在使用错误或者不当等等,还请指出,以免误导。

    參考资料:
    2.官网 Point Cache 介绍 http://www.west-racing.com/mf/?page_id=1335
    3.官网 Point Cache Animator 介绍 http://www.west-racing.com/mf/?page_id=1802
  • 相关阅读:
    在Ubuntu系统上手动安装GCC环境
    linux查看操作系统版本信息
    (已解决)Public Key Retrieval is not allowed异常
    idea中terminal的配置
    IDE提交Git出现husky>precommit错误
    【IntelliJ IDEA】idea支持vue文件,设置对vue的支持
    Vue3 计算属性
    Vue3 组件
    Vue.js 循环语句
    Vue3 监听属性
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4333495.html
Copyright © 2020-2023  润新知