ue4 怎么修改骨骼动画_使用Ornatrix来制作Ue4头发流程学习笔记(二)——引导曲线头发...

c768b3976873620660148de9d85103fd.png

前言

4.24出了头发渲染与模拟功能,这真是一件令人兴奋的事,所以我稍微花了点时间进行测试,在此分享一些经验。

使用步骤

使用步骤大致如下,具体的可以参考文档:

https://docs.unrealengine.com/en-US/Engine/HairRendering/QuickStart/index.html​docs.unrealengine.com
  1. 首先在项目设置启用Support Compute Skincache,并禁用Tick Animation on Skeletal Mesh Init。
  2. 启用Alembic Groom Importer与Groom插件,之后重启引擎。(此时大概会编译大概5000多的Shader)

4ee2841ca2958b2a3f4c728a52021827.png

3.导入带有Groom信息的abc缓存文件。

34d5f0c22467c92fab03d83c1de92c82.png

4.设置Groom Asset属性。(主要是设置头发宽度)

设置Groom材质。(ShadingModel需要设置hair,Groom对象的材质有两种设置方式:1、从ContentBrowser中设置GroomAsset的属性 2、在场景中设置Groom对象的属性)

a2c452797ef27858bb86a17bef51e174.png

6.将GroomAsset拖入场景中并且attach到场景中的骨骼模型上,并调整位置。(直接放入蓝图的骨骼模型引擎会崩溃)

6098702b563f1ab3878a91783a369526.png

7.设置场景中的Groom物体属性,给它挂载Niagara Particle System,并且设置GroomAssetSystem。

873194e3d8c18de93e0804cdbd7bd738.png

c32d1c97c97b6da9fd7337d81983e1b3.png

8.设置Niagara物理参数。

最终结果:

1a760b7291d5cea5e8d6711c98307009.gif

关于头发对齐问题与Bind Groom to Skeletal Mesh选项 我是复制了头皮模型,并以此为基础制作头发的。所以理论上头发是不需要对齐。但导入后头发还是需要手动位移(在dcc中对齐头发貌似是无效的,你需要计算head骨骼与头发的相对距离,之后在dcc或者ue4中手动对齐,我测试了设置导出轴向,貌似没有一个对的)

Bind Groom to Skeletal Mesh这个选项应该让Groom根据蒙皮数据进行运动,但我用下来,感觉这个选项没什么卵用(如有正确思路还请告知),而且头发会发生错误的位移。然后在你勾选这个选项后,将GroomAsset清空或者将Groom对象从骨骼物体上解除Attacked,都会触发一个LOD的断言,从而导致引擎直接关闭。这明显是因为容错逻辑没有写完所造成的的,但也可以理解毕竟4.24.1出的时候都要过年了。

Hair to Guide Density 导入的头发与Groom和Ornatrix渲染的头发量(Hair From Guides中的Render Count)有关,和Ornatrix的引导曲线无关。因为本人没有看过源代码,所以以下是个人的无责任猜测: Ue4在导入头发时(abc里的数据还是类似曲线一样的东西),会根据头发分布重新生成"引导曲线",以此来进行物理模拟。因为我在进行测试的时候发现,3000个引导线与9000个引导线,在静态环境下渲染结果与帧数都是相同。而在设置Niagara Particle System与GroomAssetSystem时,会耗费较长的时间。

所以Hair to Guide Density的默认参数0.1,这个就不要更改了。

49c0f11f5f60778cdf5a40c0952c1750.png

从这个图中,可以看出一些靠近边缘的区域需要增加头发密度,不然就有可能出现图中这种25岁程序员的头发。

Ornatrix导出abc

3661e42e318225774cf06e52be02b156.png

导出abc的时候需要在Ornatrix的大纲视图选中最上面的节点,实际上就是选中Ornatrix的形状节点,你可以Maya的关系编辑器中通过查看上下游节点进行查看。

之后点击“导出当前选择”,选择OrnatrixAlembic文件类型。勾选 文件类型特定选项-Export Components-Unreal Engine Export选项,之后就可以导出了。

Groom ID

Ornatrix中可以通过StandGroup对头发进行分组编辑。Ue4会通过这些StandGroup作为Groom ID数据。你可以对Groom ID的头发使用不同的参数。这样可以实现一个GroomAsset(abc文件)存储头发、睫毛、眉毛多种类型毛发(不同的宽度与材质)。

Strand Groups一般是通过Edit Guides节点进行指定的。指定步骤如下:

  1. 在Edit Guides,点击Edit Stands按钮进行编辑Stands模式。
  2. 选中需要添加组的头发。
  3. 之后在StandsGroups选项卡中,勾选Use Stands Groups,并在调整Stands Group Index后点击Assign。
  4. 此时取消头发选择,如果之前选中过的头发变色了,就代表分组已经成功。

Ornatrix导出文档:

Exporting Hair to Alembic​ephere.com
2d79b5709f320bfd7dae7c373dc4b602.png

Strand Groups文档:

Strand Groups​ephere.com
2d79b5709f320bfd7dae7c373dc4b602.png

个人评价

因为本人电脑存在问题,打开一个测试场景帧数都是不稳定的(不知道是显卡还是固态机械混用的关系),所以本人没有进行性能方面的测试。但是我感觉目前渲染效率还不错(帧数没有下降特别多)。目前存在问题,容易崩。再过几个版本迭代就可以直接拿来做项目了吧。

因为我目前还没学过Niagara,所以无法测试使用解算的缓存来驱动hair。如果可以,那影视方向的企业以后就可以使用这个头发系统来做片了。

官方文档中所说的限制

  1. 帧数受Groom大小、分辨率与硬件影响。
  2. 目前不支持多屏显示与VR。

分享以下我制作的ABC

因为花的时间不多,效果仅供参考。

https://pan.baidu.com/s/14daaue7On6xsnGkjVmLFVA pjct
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值