前言

主要参考资料是 VAT 3 | Soft Body | Unreal。不过在效果的复杂度上做了简化,只保留VAT相关的最基本操作。

0. 创建测试用动画

这里我的动画很简单。

首先创建一个Sphere。将 Primitive Type 改为Polygon,将 Frequency 改为10——以便将顶点增多些。

然后创建一个 Attribute Wrangle 节点,vex代码为:

@P+=@N*flownoise(@P,0.1*@Frame);

其功能就是使用 flownoise 这个噪声函数将每个顶点向着法线方向移动一个噪声长度。这个函数的第二个参数范围为 0.0~1.0 ,所以我这里的0.1*@Frame将会使动画在1~10帧间循环。

效果如下:

1. 渲染VAT(Vertex Animation Texture)

注意:
渲染VAT需要用到SideFX Labs中的节点(安装方式可参考之前的博客)。

/out下创建一个 Labs Vertex Animation Textures 节点:

之后有些参数需要设置:

其中:

Mode / Target Engine(模式/目标引擎):
Mode 有四种:

  • Soft-Body Deformation (Soft): the surfaces have consistent topologies; they simply deform.(表面有不变的拓扑结构,只是变形)
  • Rigid-Body Dynamics (Rigid): packed pieces with RBD simulation data.(将碎片打包到刚体模拟数据中)
  • Dynamic Remeshing (Fluid): the surfaces are potentially remeshed every frame with dynamic topologies.(表面每一帧都有潜在的remesh可能性,拓扑结构是动态的)
  • Particle Sprites (Sprite): points with particle simulation data.(代表粒子模拟数据的点)

这里,我的表面虽然在变化,但是拓扑结构没有变(即顶点没有增删且连接关系不变)。所以我选择Soft-Body Deformation (Soft)

Start/End(开始与结束帧):
正如之前所说,我的动画是1~10帧循环,所以我这里是1和10。

Input Geometry(输入几何体):
选择之前创建的动画的几何体节点。

Target Texture Width(目标贴图尺寸):
关于VAT的的原理可以参考这个官方视频:VAT 1 | What are Vertex Animation Textures。

在当前我的例子中,我的几何体顶点数目是 1002 个。总共有 10 帧,所以总共需要 1002×10=10020 个像素。所以我选择了贴图宽度为128,因为 128×128=16384 个像素,可以容纳下我的数据,再大的尺寸会造成浪费。(后续发现:精确计算似乎不是必须的,因为贴图的长度会自动进行调整,比如这里的贴图最终尺寸为128×80)


以上都设置好了之后,就可以准备导出了,转到Export分页:

其中:
Export Path是导出的文件的路径。
Asset Name是导出的文件的前缀。
Include是导出的数据文件包括哪些。这里我只需要几何体以及顶点的位置,所以我选择 Geometry, Position(s) 。

最后,点击 Render All

将会在路径的 geotex 文件夹下分别生成几何体和贴图。

2. 将资源导入进UE

将上一步中产出的模型与贴图导入到UE中:

(注意:在原教程中,关于资源的设置还有些讲究。但是在我这个简单的测试中,我的设置保留默认的情况下并没有出现问题。如果以后发现问题应仔细研究下)

3. 建立UE材质

接下来,需要较为复杂的一系列材质节点才能正确读取VAT中的信息。SideFX自然提供了配套的UE材质节点来协助这部分工作,这些材质节点在 “SideFX Labs 插件”中。点击 Labs Vertex Animation Textures 节点中Real-Time Shaders 下的 Unreal Engine Content Plugin and Guides 就可跳转到存放插件的目录了,里面有对应的UE版本:

按照原教程,是先安装这个插件的,详细操作可见 VAT 2 | Install VAT | Unreal。

不过我这里图方便选择直接将所需的材质拷贝到项目中了。我需要MF_VAT_SoftBodyDeformation这个材质函数(在 SideFX_Labs\Content\Materials\MaterialFunctions 下),于是我直接将这一uasset拷贝到了我的项目中。

然后,建立一个材质,加入这个材质函数并将 World Position Offset 相连接。

然后,为这一材质建立材质实例,设置其 Position Ttexture

最后,将YaksueTest模型拖入场景中,指定上材质实例,就可以看到顶点动画了:

学习在Houdini中导出VAT(Vertex Animation Texture)给UE相关推荐

  1. VAT (Vertex Animation Texture) on Unity HDRP examples

    VAT (Vertex Animation Texture) on Unity HDRP examples VAT 使用Houdini 和SideFX Labs. 实现. https://github ...

  2. 虚幻引擎图文笔记:使用VAT(Vertex Aniamtion Texture)制作破碎特效(Houdini,UE4/UE5)上 Houdini端

    免责声明: Houdini小白,现学现卖,纯笔记.如有误导不负任何责任.本文参考了Houdini官方的<Lightning Strike FX>教程 文章目录 效果演示(UE4/5) 什么 ...

  3. 3dmax顶点动画导入unity_Mesh Vertex Animation In Unity | Unity中顶点动画

    最后的效果,左为顶点shader,右为蒙皮 10根骨骼 有些远景动画.小动画,用骨骼蒙皮来做太费了.一个好的办法是用顶点动画.比如在顽皮狗GDC的分享Technical Art Techniques ...

  4. 学习从USGS中下载真实世界高度图并导入Houdini

    目标 参考 Downloading Digital Elevation Data (SRTM) from USGS EarthExplorer - YouTube 学习从USGS上下载真实世界高度图数 ...

  5. 总结Houdini中各方面数据的传递方式

    Houdini中"数据"的"传递" 在我看来,Houdini中有多处存在着"数据",并且他们可以相互"传递". 明面上的 ...

  6. 手把手教你如何用Python从PDF文件中导出数据(附链接)

    作者:Mike Driscoll :翻译:季洋:校对:丁楠雅 本文约4000字,建议阅读10分钟. 本文介绍了在提取出想要的数据之后,如何将数据导出成其他格式的方法. 有很多时候你会想用Python从 ...

  7. 每天学习一个Android中的常用框架——0.目录

    文章目录 1.前言 2.环境 3.目录 3.1 持久化 3.1.1 Litepal 3.1.2 GreenDao 3.1.3 Realm 3.1.4 DBFlow 3.2 网络传输 3.2.1 OkH ...

  8. java web中的导出excel_JAVA语言之怎么在JavaWeb中导出Excel

    本文主要向大家介绍了JAVA语言之怎么在JavaWeb中导出Excel,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 怎么在JavaWeb中导出Excel? 代码自解释 1,依赖包 ...

  9. svga插件_【SVGA扩展】在AE或Animate中导出SVGA文件的设计师工具(mac+win)及安装教程...

    SVGA扩展 – 在AE或Animate中导出SVGA文件的设计师工具 什么是SVGA SVGA 是一种全新的古文字体歌曲音乐swf转换,华为ipad华为ipad手机手机省电模式古风字体播放体验,SV ...

最新文章

  1. 每日一皮:在同一个项目上工作2年的样子...
  2. ubuntu 18.04 设置中文输入法
  3. 读书笔记《高性能网站建设指南:前端工程师技能精髓》
  4. 【51nod】1227 平均最小公倍数
  5. 解决Jquery Kendo.xxx is not a function 的方法
  6. 药大保研计算机要求,药物分析专业保研经验贴
  7. Apache Kafka + Spark Streaming Integration
  8. css单行文本和多行文本溢出实现省略号显示
  9. Keil软件的汇编使用
  10. Could not find artifact com.oracle:ojdbc7:pom:12.1.0.2 in central (https://r......的解决方案
  11. 如何在S函数中对变量或者输入信号进行求导
  12. 6.0 增加京东支付
  13. BugkuCTF –备份是个好习惯
  14. 【Redis笔记】一起学习Redis | 如何利用Redis实现一个分布式锁?
  15. php整型的最大值,php整型(Integer)
  16. 安卓逆向007之安卓系统架构
  17. Oracle 使用DBMS_JOB和DBMS_SCHEDULER 创建定时任务 创建管理job示例
  18. 2022嵌入式工程师面经(2023年1月更新)
  19. 一个女孩主动加你微信,不说话也不打招呼是因为啥呢?
  20. C99:C标准库接口的头文件集和功能定义参考

热门文章

  1. 老是自动弹出输入iTunes store 的apple ID 账号密码的窗口 解决
  2. linux解析主机域名失败,centos无法解析主机域名
  3. Unity C# using用法
  4. 三款国产宝藏级别软件,个个功能强大且好用,能让你的电脑黑科技感拉满
  5. 兰兰酱日常分享小妙招~~CSDN消除水印
  6. django中间件和auth模块
  7. 最好的个人品牌策略是什么样的
  8. 虫虫帝国----世界观和剧情
  9. 转:SAP存货分析报表
  10. Logbook HTTP日志框架