逆战动作组 physX Clothing 的制作

发表于2015-05-03
评论2 2k浏览

想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏美术行业精英群

167422913

UE3解算插件:physX Clothing制作说明

软件官网:https://developer.nvidia.com/apex-clothing

physX Clothing是nvidia公司研发的一款基于绑定物体进行布料解算的UE3布料插件,目前,逆战项目客户端正在进行相关入测试,现在我们简单来这款插件是如何应用的:

 

在MAX里安装后,会出现新的菜单及活动工具条:

http://km.oa.com/files/post_photo/314/215314/d1ad868b3fd63ee24a8bdaba5263bc4f.gif

 

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image002.gif

 

第一步:分好角色模型的材质ID

 

physX Clothing是根据材质ID来对模型的布料数据进行对应匹配的,如,裙子的ID是3,那么做好的解算数据包就以ID3为分配识别,导进UE3后,解算数据会直接赋予材质ID为3的模型

如图的例子,

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image003.gif

我们需要解算裙子及领带,于是先把裙子与领带分离出来(如果只解算一种布料效果,也可以不用分离物体),然后分配ID如下:

身体与头为同一物体,因为贴图不同,ID分为身体ID:1、头ID:2:

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image004.gif

然后领带ID:3、裙子ID:4

 

注意:如果有LOD的话,每级LOD的ID分配都要严格一致。

 

第二步:建立解算节点,进行布料设置

 

选择需要解算的第一种布料,这里选裙子:

然后点选浮动菜单 http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image005.gif

或主菜单

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image006.gif

 

这时,Modifier菜单会出现Apex Clothing 节点及布料参数面板:

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image007.gif

因为此插件的布料是基于绑定物体的,所以物体先按正常进行绑点,再使用此插件对绑点进行有限距离的解算模拟,于是第一步我们先应用Pain Attributes,进行模型上点的最大可活动距离的设置,此操作类似刷权重:

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image008.gifhttp://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image009.gif

 

此例子,可以先把ChannelValue设为0,用Flood统一刷,然后,改变ChannelValue,从最大值到最小值,刷点的距离分布,如下图:

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image010.gif

裙摆会动的比较大,接近盆骨,距离变小到0,具体距离,需根据布料效果来设。

 

 

然后按http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image011.gif 来解算测试一下:

 

 

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image012.gif

 

可以看到已经有布料效果了,但现在会直接穿到其他模型里,这时我们要先离开Apex Clothing 编辑,进入下一步:设置碰撞物体

 

另外,还有一个需要注意的地方,就是如果我们的物体模型是带有厚度的,那么很可能会出现里面的面穿出外面,或外面的面穿进里面(此例的裙子是单面的,不涉及此情况),解决方法是通过把里面的面刷上Latch to Nearest(锁定到最近):

 

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image013.gif

 

注意:此操作需要确保模型内外的边对齐,包括三角边

 

 

第三步:设置碰撞物体:

碰撞有2种方式,一是设置阻挡面位移,另一方式是设置碰撞物体。

先简单看看第一种方式:

我们要选择

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image014.gif

 

刷上‘阻挡面位移’来解决问题,阻挡面是蒙皮网络在数学上的近似表达,作用是防止模拟点穿透相应的蒙皮位置。

 

关闭:Special...,先设值为0:http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image015.gif,就可以刷了,没刷的是杨红色的:http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image016.gif刷了就成:http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image017.gif

 

接着调整顶点半径,http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image018.gif,先调大一点,它可以调整蒙皮顶点下对应的球体半径,让模拟运动时无法逾越蒙皮顶点,channel值设好,开始涂刷,并看效果进行修改。

 

这个例子我们用第二种方式:设置碰撞物体

 

选择:http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image019.gif

 

建立Ragdoll,碰撞体:

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image020.gif

点选新建的小人图标,可以进入碰撞体设置面板,在Setup面板里,加入需要添加碰撞体的肢体骨骼,如上图,加好后,相应的骨骼上会出现黄色碰撞体,接着,我们要调整碰撞体大小,来包裹需要碰撞的身体,选择相应的骨骼,会出现碰撞体修改面板:

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image021.gif

如上图,选择Mesh Transform,可以通过移动、旋转,进行位置修改,另外可以通过

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image022.gif  修改大小

 

如果是对称的肢体,可以先做完一边,然后用镜像,可以添加完另一边:

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image023.gif

 

现在再看看解算结果:

 

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image024.gif

 

 

第四步,我们回到布料参数面板,调整布料的物理属性

在Physical Material栏下:

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image025.gif

 

Gravity Scale 相当于密度,或重量

Friction 摩擦力

Bendiness 柔软度  值越大,越柔软,皱褶越清晰

Damping 弹性

stretchiness延展性

Anti_stretch 反伸展性  防止模拟时产生拉伸,当点数较少时不需要打开

 

参数需要反复调试,可先调入角色动作,然后用

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image011.gif 或后面绿色的按钮(解算模拟窗) 进行解算模拟检验

 

另外,Simulation栏

 

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image026.gif

 

此栏还有一些布料模拟的参数,如常用的Thickness,模拟布料厚度,SelfCollision,自碰撞开关,Wind风的设置等

 

 

第五步,设置LOD,此插件可以给同一物体不同面数的几个LOD模型共用相同的设定好的布料参数。

 

先把同一物体不同面数的几个LOD模型命名规范一下,如LOD0、LOD1、LOD2,liandai_LOD0,liandai_LOD1,liandai_LOD2,如此类推

 

然后选择刚设置好的LOD0的模型,进入APEX Clothing设置面板,找到Level of Detail栏

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image027.gif

 

点击Add,加入其他LOD,如此例添加了裙子的一级LOD:LOD1

接着,选择LOD1模型

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image028.gif

可以看到,LOD1模型多了APEX Clothing LOD的编辑面板

 

Paint Attributes 涂刷距离面板和LOD0的涂刷距离面板一致,也需要手工再设置一次,方法与之前说的一致,这里就不再重复

 

弄好后,可以打开模拟按钮,在

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image029.gif里选择需要模拟的LOD进行查看

第六步,导出数据

 

先把模型导出,注意模型及其LOD的ID设置正确,导出方法请参考UE3导出教程

 

然后,导出需要解算的布料数据,可以什么都不选择,这样会自动导出所有的布料数据,每一种布料会自动根据对应物体的名称,生成一个数据包,也可以选择解算物体,单独导出对应的布料数据包

 

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image030.gif

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image031.gif

这时出现导出面板:

布料数据格式,一般按这里截图的选项

 

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image032.gifhttp://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image033.gif

需不需要导出PhysX场景,什么格式,此例不需要

 

 

生成文件夹及名称,需不需要同时导出FBX文件,此例不需要

 

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image032.gifhttp://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image034.gifhttp://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image034.gifhttp://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image035.gifhttp://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image036.gif

导出后,会生成:.apx文件,每一种布料一个,还有一个总的PxProj文件,

如此例:

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image037.gif

.apx文件就是需要导入UE3的数据包

 

第七步,导入UE3

前提,UE3已合成此插件

 

先导入好模型、LOD、及相应的材质,然后导入APEX数据包:

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image038.gif

然后打开UE3模型编辑面板:

设置好各ID的材质,并填入对应的解算数据包:

 

http://avocado.oa.com/fconv/files/201409/88e5934d00ecb35c5c0e27bff36e8f81.files/image039.gif

 

注意:各LOD模型的材质ID必须排列一样,不然就会出错

 

ClothingAssets里填入APEX数据包,一般这里的顺序需要对应上面的材质ID,因为此例,ID1和ID2模型无需解算,但也要先按顺序填满4个栏,然后再删掉前面2栏,才会正常,有时需要多试几次,所以,以后最好安排需要解算的物体ID排在最前面,可以省点事。

 

最后在Clothing lod map 里填入对应的材质ID。

 

这样,在角色展示窗里就可以看到解算的效果了,可以调入角色动作,检查解算的效果,需要修改,就直接在MAX里修改,再导出并替换APEX数据就行。

 

此插件简单介绍到此,下面另附有2个视频,可以看看,添加解算前后的区别,另外网上还有很多视频教程,可以参考,需要可以自行搜索观看,谢谢。

视频地址:  http://baike.oa.com/v2/art/show/2454

http://top.oa.com/pictures/201409/1411372636_41.jpg 

 

 

 

 

 

 

 

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

游戏学院公众号二维码
腾讯游戏学院
微信公众号

提供更专业的游戏知识学习平台