【Unity3D插件】Alembic插件分享《abc动画文件导入Unity》

推荐阅读

  • CSDN主页
  • GitHub开源地址
  • Unity3D插件分享
  • 简书地址
  • 我的个人博客
  • QQ群:1040082875

文章目录

    • 一、前言
    • 二、参考网站及下载
    • 三、正文
      • abc文件导入
      • abc导入Unity之后的格式
      • AlembicStreamPlayer组件
      • AlembicExporter组件

一、前言

今天分享一下Alembic插件的使用教程,这个插件的主要作用就是将.abc文件导入到Unity,然后进行播放。
.abc文件主要是影像业界使用的数据格式,用于存储巨大的顶点缓存数据。
Alembic插件就是转化这些影像资料和动力学等的模拟结果转换为顶点缓存数据为Unity可以使用的文件。
在这里插入图片描述
abc文件转化为Unity可以识别的Prefabs文件
在这里插入图片描述

二、参考网站及下载

参考网站:
Alembic官方网站
Github地址:
https://github.com/Unity-Technologies/AlembicForUnity
UnityPackge包下载链接:
https://download.csdn.net/download/q764424567/12333549

三、正文

abc文件导入

首先我们要把这个包导入到场景中:
在这里插入图片描述
然后我们将.abc动画文件导入到Unity的Assets任意文件夹中,会发现文件导入之后就变成了Unity可识别的prefabs文件:
在这里插入图片描述
在StreamingAssets文件夹中会同步生成一个abc格式的文件:
在这里插入图片描述
这是因为为了从文件中流传送数据,即使是build后也需要保留abc文件。

abc导入Unity之后的格式

接着我们看一下导入的abc文件格式:
在这里插入图片描述

  • Normals :是使用.abc文件的法线,这是根据顶点位置来设定计算。默认的“Compute If Missing”是.abc文件如果有法线就使用,没有的话就计算,大部分情况下这样应该没有问题。
  • Tangents:是计算切线的设定。因为abc文件没有切线,所以是计算还是不计算有两种选择。但是,切线的计算需要法线和UV,如果欠缺这些,“Tangents”和“Compute”也不能进行计算。
    虽然默认是有效的,但是切线的计算是麻烦的过程,不需要的情况下可以设置成Compute可以更加高效
  • Camera Aspect Ratio:设置相机的纵横比。是使用abc文件的相机参数,还是使用Unity侧画面的纵横比。
  • Scale Factor:缩放因子,模型的等比例缩放
  • Swap Handedness:将X方向反转,并且四边形分割成三角形时,三角形的排列也会反转。
  • Interpolate Samples:是进行动画片的插值运算的设定。如果这是有效的,Transform、Camera和顶点不变化(=顶点数和索引不变)的Mesh就会得到动画的插值。

如果Interpolate Samples有效,或者如果abc文件中包含velocity数据,可以将velocity数据传递给着色器。
Alembic/Standard着色器是在普通的Standard着色器的基础上添加基于上述velocity的motion vector生成的着色器。
在需要motion vector的情况下会有帮助,比如后期效果的MotionBlur。

如果你想在自己的整形器中添加motion vector生成功能,可以修改SubShader中usepass " hidden/alembi/c/motionvectors motionvectors "这一行的代码。
内部的想知道详细情况,请参照alembicmotionvectors.cginc。(因为向第4个UV传递velocity数据,以此为基础计算出1帧前的顶点位置)

左边是未加工的,右边是输出motion vector并加上Post Processing Stack的MotionBlur的状态。
在这里插入图片描述

AlembicStreamPlayer组件

由插件生成的prefab有一个叫做AlembicStreamPlayer的组件,它负责播放。
移动Time参数可以确认Mesh的移动。
控制Timeline播放动画。
Vertex Motion Scale是计算velocity时的倍率。
越大的velocity越大,在后效果MotionBlur中会出现激烈的模糊。
在这里插入图片描述
在这里插入图片描述
代码:

using UnityEngine;
using UTJ.Alembic;public class Test_ABC : MonoBehaviour
{public GameObject m_AbcObjcect;AlembicStreamPlayer m_AlembicSP;float m_TempTime = 0;void Start(){m_AlembicSP = m_AbcObjcect.GetComponent<AlembicStreamPlayer>();   }void Update(){m_TempTime += Time.deltaTime;m_AlembicSP.currentTime = m_TempTime;if (m_TempTime>3){m_TempTime = 0;}}
}

AlembicExporter组件

在这里插入图片描述

  • Output Path:指定输出路径。
  • Archive Type:指定Archive的格式,一般使用Ogawa就可以
  • Xform Type:选择单独记录对象的位置、旋转、标度(TRS)还是矩阵记录(Matrix)。TRS应该没什么问题。
  • Time Sampling Type:指定捕获的间隔。Alembic一帧间隔总是恒定的(1 / Frame Rate秒)。如果设置为Uniform那么就可以在Fix DeltaTime开始俘获,改写Time. maxdeltatime Unity方面也固定Delta时间。
    在不影像制作的情况下,这应该是可取的行为,但是如果是独自管理Time.maxDeltaTime的话,就需要注意了。在Acyclic的情况下,Unity侧的delta时间就那样变成Alembic侧的帧间间隔。当然间隔不是一定的,但是对游戏进行的影响是最小的。主要是设想游戏的3d录像的模式。Start Time是Alembic一侧的开始时间。Frame Rate是Time Sampling类型为Uniform时的Alembic侧的帧间间隔。
  • Swap Handedness:使之有效的话,夹入右手坐标系/左手坐标系改变的处理。很多DCC工具都是与Unity相反的坐标系,所以大部分都是有效的。
  • Swap Faces:反转面的正反面。
  • Scale Factor:缩放因子,缩放模型的比例
  • Scope:捕捉场景内可捕捉的全部对象。目前的Branch只捕获带有Alembic Exporter组件的GameObject以下的树。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/70106.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity角色动画之面部动画——SALSA插件

目录 概述组件LipSyncEmoteREyes 2D面部动画搭建2D模型添加SALSA 2D组件添加RandomEyes2D组件运行效果 3D面部动画添加SALSA 3D组件添加RandomEyes3D组件运行效果 概述 SALSA&#xff08;简单自动唇形同步近似&#xff09;是一种实时系统&#xff0c;用于从音频输入创建唇形同…

家里两个孩子,你们会一个跟爸姓,一个跟妈姓吗?

生老大的时候&#xff0c;刚开始不知道男女&#xff0c;就取了好几个名字&#xff0c;四个月四维查出男孩&#xff0c;就确定了一个&#xff0c;把剩下的名字分给以后的弟弟或妹妹&#xff01;后来意外二胎&#xff0c;没有查男女&#xff0c;老公就说要不二胎跟我姓吧&#xf…

Mother and child 妈妈与孩子

我拿起那条链子。她用双手接过它&#xff0c;向前探了探身&#xff0c;在我的脖子后把简易的项链钩系好。然后她向后退了几步&#xff0c;好像在看看是否合适。我低下头看着闪闪发亮的玻璃珠和已失去光泽的金色链子&#xff0c;然后抬起头望着她。我很认真地轻声说道&#xff1…

怎样要一个儿子和女儿

[转] 女人的最佳生育年限 及怎样要一个儿子和女儿 2011.11.30 阅读(4) 返回日志列表 转载(10.62万)分享评论复制地址更多 教你如何生一个漂亮宝宝&#xff0c;怕以后找不到&#xff0c;先收藏了1.教你如何生一个漂亮宝宝 2.男人的最佳生育年限 及怎样要一个儿子 3.受用一生的维…

Surrogate mother是代孕妈妈,那么,Surrogate parent呢?

文 / 王不留&#xff08;微信公众号&#xff1a;王不留&#xff09; 上午有位同学找我探讨了一个问题。 2021年3月20号刊《经济学人》有一篇文章《Panic Womb》&#xff08;恐慌的子宫&#xff09;。引言中有一段话“Conservatives fret that surrogate parents may be gay or …

Android开发之向桌面添加快捷方式

Android开发之向桌面添加快捷方式 对于一个希望拥有更多用户的应用来说&#xff0c;用户桌面可以说是所有软件的必争之地&#xff0c;如果用户在手机桌面上建立了该软件的快捷方式&#xff0c;用户将会更频繁地使用该软件。因此&#xff0c;所有 Android程序都应该允许用户把软…

如何为Android App 添加快捷方式

文章目录 概述效果好处 添加方式静态添加动态添加 概述 效果 好处 可以方便用户直接在桌面跳到目标页面可以让你的App显得更加专业(不过切忌添加过多&#xff0c;1-3个就够了) 添加方式 静态添加 在资源文件中添加 xml 目录&#xff0c;并在里面创建 shortcuts.xml 文件 …

Android之添加固定图标到桌面

我的QQ群 1 需求 Android之添加固定图标到桌面 2 部分实现 在AndroidManifest.xml里面添加如下权限 <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /><uses-permission android:name="com.android.launcher.perm…

Android中程序向桌面和Launcher添加快捷方式【安卓进化三十二】

最近感觉这个添加快捷方式挺有趣的&#xff0c;就查资料自己写了个demo---简单的例子&#xff0c;这个例子就是有两个按钮&#xff0c;点击“将此程序添加到快捷方式”&#xff0c;则手机桌面增加一个快捷方式&#xff0c;同时launcher中也多了一个快捷方式&#xff0c;点击退出…

Android 在Launcher桌面添加应用快捷图标(适用于Android 7.0(API24) 及以下)

Launcher为了应用程序能够定制自己的快捷图标&#xff0c;就注册了一个 BroadcastReceiver 专门接收其他应用程序发来的快捷图标定制信息。所以只需要根据该BroadcastReceiver构造出相对应的Intent并装入我们的定制信息&#xff0c;最后调用 sendBroadcast 方法就可以创建一个快…

Android 桌面工具,安卓怎样添加桌面工具

桌面工具(Widget)是Android系统的一大特色&#xff0c;通过桌面工具可以快速得到所需的信息&#xff0c;不必打开程序即可了解最新的内容。Android系统自带了一些常用的桌面工具&#xff0c;其他一些经过定制的系统也带有具有特色的桌面工具&#xff0c;同时&#xff0c;有很多…

【答辩问题】计算机专业本科毕业设计答辩技巧

下面是总结的一些答辩期间的问题&#xff08;结合论文中出现过的整理&#xff09; 1、MVC设计模式是指什么&#xff0c;其优缺点&#xff0c;怎样用到在你的程序里 2、SSM/SSH框架是指什么&#xff0c;其优缺点&#xff0c;怎样用到在你的程序里 3、前端用到了什么技术&…

基于SSM的毕业论文答辩系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

计算机专业毕业答辩问代码吗,计算机专业毕业论文答辩技巧

在做计算机毕业设计的整个过程中&#xff0c;一般有三个答辩&#xff0c;即开始答辩、中期答辩和最终答辩。有些学校简化为两个&#xff0c;即开题答辩和期末答辩。还有的学校将直接保留了最终答辩&#xff0c;省略了开始答辩和中期答辩。 当然不管你要参加几次答辩&#xff0c…

计算机专业毕业设计论文答辩PPT模板,10套计算机毕业设计答辩PPT模板

计算机专业毕业设计论文答辩PPT模板,10套计算机毕业设计答辩PPT模板 完整PPT模板包下载地址&#xff1a;计算机专业毕业设计论文答辩PPT模板 PPT模板预览 完整PPT模板包下载地址&#xff1a;10套计算机毕业设计答辩PPT模板

【答辩问题】计算机专业本科毕业设计答辩自述

各位老师,你们好!我叫XXX,来自计算机XX,我的论文题目是《在线考试系统》,论文是在XXX老师的指点下完成的,在这里我向X老师表示深深的谢意,向参加我的论文答辩各位老师表示衷心的感谢,并对我三年来的各位授课老师表示由衷的敬意。下面我将本论文设计的目的和主要内容向各位老师作…

outlook服务器邮件满了怎么办,Outlook邮箱不能接收邮件提示邮件箱已满的解决方法...

Outlook是一款很多用户都会用来收发邮件的邮箱工具&#xff0c;但是有时候邮件多了&#xff0c;可能会遇到不能接收邮件并提示邮箱已满的情况&#xff0c;该如何解决呢&#xff0c;为此这就给大家带来Outlook邮箱不能接收邮件提示邮件箱已满的解决方法吧。 存储的电子邮件数量有…

群晖端口转发 路由器配置

控制面板 - 外部访问 - 路由器配置 点击新增&#xff0c;可以增加内置的&#xff0c;或者自定义的转发机制 本机端口表示的是内部开启的端口号&#xff0c;比如ssh的端口22 外部端口表示外网可以访问的端口号&#xff0c;比如设置为8787 那么此时&#xff0c;如果你在外网需要…

群晖|你可能并不知道的群晖反向代理

最近在内网弄了台后台服务器来开发小程序&#xff0c;小程序呢是一定要走https的&#xff0c;所以就申请了SSL证书&#xff0c;本想通过nginx来进行https反向代理&#xff0c;但忘记nginx配置怎么写了。以前玩群晖的时候貌似见过哪儿有反向代理&#xff0c;一番研究&#xff0c…

分享免端口访问群晖的方法,可以顶级域名

文章目录 废话篇前言二、前提具备的条件三、群晖设置1、设置DDNS动态解析2、利用DDNS的主机域名来访问群晖3、设置套件为不同的别名 四、域名跳转1、借用第三方跳转工具2、具体操作 五、套件的跳转 废话篇 本篇文章为原创文章&#xff0c;可以保证在不出现大变化的前提下&…