Cal3D 是一个用于动画和角色建模的开源框架,文件包含CAF(Cal3D Animation File)、CMF(Cal3D Mesh File)、CRF(Cal3D Materal File)、CSF(Cal3D Skeleton File)分别记录动画、模型、材质、骨骼,可以通过cfg文件配置这四类文件来实现相同骨骼模型的多个不同动画,使用时可以动态切换骨骼动画。它是通过 Cal3D 工具链创建和处理的,可以用于在游戏和动画制作中加载和渲染角色模型。
3dmax骨骼动画导出cal3d格式的目的是在配置目录里添加cal3d格式的骨骼动画,可以在osg中解析该骨骼动画,可以使用一套骨骼模型实现多个不同动画的预览以及在场景中根据状态动态切换。通过两天查找和验证,安装3dmax导出插件Cal3DExp1.7.4Install_x64来实现cal3d文件导出,参照cal3dviewer里的示例数据配置了相应的cfg文件,实现了cal3d文件的导出和预览,过程中也踩了一些坑,导出流程也在此记录一下。
- 双击Cal3DExp1.7.4Install_x64.exe运行,给3dmax安装导出cal3d插件,支持max2009-2020,本文采用max2016测试;
- 安装插件后重启3d max,打开带有骨骼动画的max文件,点击左上角max图标按钮及导出菜单,弹出导出对话框,导出类型里就有了cal3d格式的类型,cal3d数据格式主要分为四类分别为Cal3D Animation File、Cal3D Mesh File、Cal3D Materal File、Cal3D Skeleton File,每类又有两种格式C开头的二进制文件(默认格式),X开头的是xml格式的文本文件(查看问题时可使用这种格式);
- 导出cal3d格式时需要注意,需要先导出Cal3D Skeleton File,导出其他格式需要选择之前导出的.csf文件,导出Cal3D Skeleton File时需注意,不要导出无关的节点如camera及scene root,否则导出其他格式时会提示.csf文件不匹配,如下图勾掉无关节点,完成导出即可;
- 依次导出Cal3D Animation File、Cal3D Mesh File、Cal3D Materal File文件,同一份骨骼模型有不同的骨骼动画时,只需一份骨骼模型文件,只需再导出动画文件即可(Cal3D Animation File);
- 导出材质这一块通过查看源码,发现需修改材质名称保证材质名称包含“[数字]”,插件从材质名称里解析对应的材质序号,例如:该骨骼动画包含hair和body两个材质,需要修改材质名称为hair[0],body[1],然后再分别导出这两个材质为hair.crf和body.crf,配置.cfg文件时也要注意顺序保持一致,并且当材质里有纹理贴图时需要将纹理贴图拷贝到crf对应的文件夹,当然为了便于查看材质可以将材质文件导出为文本格式的xrf文件。
- 根据导出的文件构建.cfg文件,文件夹文件如下图,构建完成后打开people.cfg文件即可。
- 插件放百度网盘了,自行下载。通过网盘分享的文件:cal3d
链接: https://pan.baidu.com/s/1MmSsaCBqGbP53PvR8yfwyg?pwd=f6fr 提取码: f6fr