使用 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】)
点击“,循环方式为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 (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

Unity MegaFiers 顶点动画的更多相关文章

  1. Unity插件 - MeshEditor(五) 网格顶点动画(变形动画)

    源码已上传至github,并持续更新,链接请看底部.(本帖跟随github持续更新) 网格顶点动画(变形动画)是针对于物体的形状可以随意变换并记录为关键帧的动画,虽然模型的顶点数据还是应该交给GPU绘 ...

  2. unity 对Animator动画系统的研究

    unity的新动画系统叫Mecanim,使用Animator来取代旧系统Animation,按Unity文档的惯例:知识点主要分2部分:unity manual和unity script,读者可以边看 ...

  3. 关于Unity中Mecanim动画的动画状态代码控制与代码生成动画控制器

    对于多量的.复杂的.有规律的控制器使用代码生成 动画状态代码控制 1:每个动画状态,比如进入状态,离开状态, 等都有可能需要代码来参与和处理,比如,进入这个动画单元后做哪些事情,来开这个动画单元后做哪 ...

  4. Unity Shader序列帧动画学习笔记

    Unity Shader序列帧动画学习笔记 关于无限播放序列帧动画的一点问题 在学shader的序列帧动画时,书上写了这样一段代码: fixed4 frag(v2f i){ // 获得整数时间 flo ...

  5. unity代码添加动画,并传参数

    测试界面 button一个 sprite一个 测试代码 public class BgObject : MonoBehaviour { void Start() { List<string> ...

  6. unity shader序列帧动画代码,顺便吐槽一下unity shader系统

    一.看到UNITY论坛里有些人求unity shader序列帧动画,写shader我擅长啊,就顺势写了个CG的shader.代码很简单,就是变换UV采样序列帧贴图,美术配置行数列数以及变换速度. Sh ...

  7. 基于ShaderX5的顶点动画

    关于顶点动画,ShaderX5里有篇专门来讲,在虚幻3引擎里也有一个更加丰富的实现.使用了一个Pivot Painter的3dmax脚本.其实自己灵活用vertex color可以避开使用Pivot ...

  8. unity中的动画制作方法

    Unity中的动画制作方法 1.DOTween DoTween在5.0版本中已经用到了,到官网下载好插件之后,然后通过在项目中导入头using DG.Tweening;即可. 一些常用的API函数 D ...

  9. 关于Unity中顶点片元Shader实例

    补充 float4 fixed4 _Time 1: float4是内置向量 (x, y, z, w); float4 a; 访问单独成员a.x, a.y, a.z, a.w;2: fixed4 是内置 ...

随机推荐

  1. <context-param>与<init-param>的区别与作用(转)

    <context-param>的作用:web.xml的配置中<context-param>配置作用1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件we ...

  2. ASM丢失disk header导致ORA-15032、ORA-15040、ORA-15042 Diskgroup无法mount

    SQL> select * from v$version; BANNER --------------------------– Oracle Database 11g Enterprise E ...

  3. Axure自动备份功能!让意外不在可怕!

    忘记保存了......... 电脑意外重启了............... 不小心删除了.......................... 每次做axure的时候,多有了太多的意外了! 萧何今天在微 ...

  4. 九度OJ 1065 输出梯形 (模拟)

    题目1065:输出梯形 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3745 解决:2043 题目描写叙述: 输入一个高度h.输出一个高为h.上底边为h的梯形. 输入: 一个整数h(1& ...

  5. RobotFramework 自定义Library

    RobotFramework 主要使用Python,这里简单自定义Library,以扩充RobotFramework的功能 新建一个python类,自定义需要的方法 例如: 保存成TestLibrar ...

  6. Python Base64转码解码

    Python Base64 提供了好几种方法例如: encode, decode, encodestring, decodestring, b64encode, b64decode, standard ...

  7. Boost::Asio::Error的用法浅析

    一般而言我们创建用于接收error的类型大多声明如下: boost::system::error_code error 我们用这个类型去接受在函数中产生的错误 如 socket.connect( en ...

  8. Windows 7如何建立一个FTP的快捷方式

    原来,使用Windows XP的时候,在IE6的地址栏里输入FTP服务器的地址,就可以打开一个资源管理器的界面来管理文件.但是,随着IE的版本的提升或是装了Windows 7,原来的这种方法就不能用了 ...

  9. Swift - 启动时的向导页(新手引导)的制作

    在很多iOS产品或者一些应用版本的升级中,新手指导都是一个常用的功能,通过说明页的左右滑动,可以很清晰的展示系统的一些功能特性.制作思路如下: 1,如何检测应用是第一次登陆启动 我们可以使用NSUse ...

  10. Codeforces Round #218 (Div. 2)

    500pt, 题目链接:http://codeforces.com/problemset/problem/371/A 分析:k-periodic说明每一段长度为k,整个数组被分成这样长度为k的片段,要 ...