目标
我很久前就想学习Houdini中怎么导出带骨骼的Fbx模型,但是苦于没有范例。
在Houdini的18.5版本中有了 KineFX。虽然我对其的理解还很浅,但是我发现其相关的一些节点可以完成我的目标(而且步骤简单)。
因此,今天我花时间综合了一些官方文档以及论坛中一些人的讨论,做了测试,目标是:
- 从零开始创建一个最简单的模型、最简单的骨骼、最简单的权重绑定方式,并最后导出成FBX格式。
步骤
1. 创建模型
创建一个Tube节点,调节成一个长条形状:
添加一个Subdivide节点对其做一些细分,以方便之后根据骨骼做形变:
2. 创建骨骼
创建一个Line节点,其中的顶点将之后作为骨骼关节点。
创建Skeleton节点(kinefx::skeleton
),此将原本的顶点转变为骨骼的关节
3. 创建绑定(顶点权重)
创建 Bone Capture Proximity 节点(captureproximity
)
这个节点将基于模型的顶点到骨骼的距离,来计算出顶点对于骨骼的权重。
4. 导出FBX
在导出之前需要添加Name节点(否则后续会出问题,见文末)
创建ROP FBX Character Output 节点(kinefx::fbxcharacteroutput
)来完成导出操作。
指定路径
然后点击Save to Disk按钮
测试
在各种软件中测试fbx的骨骼与绑定是否正确:
问题解决
导出时没有name
如果没有name,则导出时会报错:
注意skeleton节点会缓冲输入
skeleton节点会缓冲输入,因此记住如果改变了输入,需要再点一下Stash Input按钮才能响应变化。