美文网首页Unity3DunityUnity技术分享
【在unity中极限压缩MMD4Mecanim转换的模型和动作数

【在unity中极限压缩MMD4Mecanim转换的模型和动作数

作者: superowner | 来源:发表于2016-12-15 00:03 被阅读825次

看了本文你可以实现对pmx或pmd转换的fbx模型和动画极限压缩

首先,我们需要搞清楚,fbx分为Binary和ASCII编码形式,前者为二进制,后者为文本形式,后者体积比较大,大的不止一点点!而MMD4Mecanim转化pmx/pmd得到的fbx文件就是ascii编码的!

本文使用工具:Autodesk FBX Converter 2013、Unity3D5.5.0f3x64、MMD4Mecanim20161206,系统win8.1x64

第一步

我们用mmd插件对模型单独转化为fbx;同样,对pmx+vmd合起来转化为带动画的fbx。然后用mmd插件识别pmx生成的那个asset文件(你用来转换pmx的那个文件,藏青色的图标)来选择(拖曳fbx进去)刚刚生成带动画的fbx,分离出*.anim文件,这个就是动画数据,然后删除这个带动画的fbx文件。

PS:这里为什么我们要转化两个fbx呢?因为如果你用带动画的fbx那么它的姿势一定是动画的第0帧或第一帧,不利于在unity里面加碰撞体等

第二步

把没有动画的fbx压缩,下载Autodesk FBX Converter 2013,导入转化为二进制(b开头的那个单词:binary)格式的fbx,ok搞定,另存为新文件夹

http://www.xdowns.com/soft/softdown.asp?softid=96396

第三步

导入场景,加上MMD4MecanimBone.cs脚本,把model,vertex,index文件拖曳进去,这三个文件是必须的,没有的话,MMD4Mecanim脚本的物理无法演算

第四步

你以为就上面结束了,那么大错特错了,上面只是准备工作,等我整理好在写,处理完以上几个步骤我们已经缩减了78.7%的体积,这里我们已经不能再对fbx数据瘦身了,此时fbx数据体积仅仅比pmx体积大0.99M,pmx体积是2.66M(仅供参考),进行后面的重采样,我们可以进一步缩小动作数据体积,这样我们就可以看到动作和模型分离的好处了

目前,我们的vmd数据是wavefile_full_miku_v2.vmd,体积是4.05M,我们的.anim文件是7.55M,体积其实已经够小了,但是,我们可以进一步瘦身!

经过测试,重采样的效果不是很好,可能还会增大数据,于是这里提供一种方法,就是制作unity支持的AssetBundle包,后缀可以改成任何名字,其实后缀对于unity来说没有多大意义,仅仅是一种识别关键词,其内容主要的无非是两种情况,二进制和文本,二进制就是非明文,你可以用16进制查看器检测;文本就是你可以用记事本打开看到规则有一定秩序的文本。具体打包方法可以官网搜索AssetBundle查看,因为各个版本api有出入我就不说了5.3和5.4就有很大出路。打包为ab包可以减小一定体积,但是远远比不上用7z来压缩vmd的体积变化率

第4.5步

进一步压缩->删无用帧

这个其实腾讯GDA那边有,动画压缩,说了一些原理,懒得搬,有空把代码分享一下,可以到我的Git关注一下,同一个ID

教程尽情期待。。

相关文章

  • 【在unity中极限压缩MMD4Mecanim转换的模型和动作数

    看了本文你可以实现对pmx或pmd转换的fbx模型和动画极限压缩 首先,我们需要搞清楚,fbx分为Binary和A...

  • PMX To VRM 研究进展

    左MMD4Mecanim转换的fbx,右是我转换的pmx模型,比例是一致的,好像是pmx缩放到0.08,体验一致,...

  • Clip Space、NDC、Screen Space

    Unity3D - Shader - 模型、世界、观察、裁剪空间坐标转换Unity3D Shaders中Loacl...

  • Unity3D中Shader光照模型基础

    在讲Unity光照模型之前,先介绍图形学中的两个基础光照模型原理,将会更利于我们理解和使用Unity中的光照模型。...

  • beego的model

    模型定义 复杂的模型定义不是必须的,此功能用作数据库数据转换和自动建表 默认的表名规则,使用驼峰转蛇形: 除了开头...

  • laravel 小技巧

    1.禁止操作数据表之后更新created_at和updated_at字段,在相应的模型中定义 2.设置模型中自动维...

  • MMD模型导入Unity的解决方案

    前言   学了Unity后,总是感觉缺少资源,包括人物、物品模型、动作数据、贴图、特效,各种插件,还被骗去学了几天...

  • Unity Shader 矩阵转换

    在unity中,一个点或者物体要从模型空间绘制到屏幕空间上,需要经过以下空间转换(小白,用词表达可能不准确) 首先...

  • Unity3D中的地形转成模型

    Unity3D中的地形转成模型 起因 为什么要把地形转成模型呢?在Unity3D中创建地形很方便,用它自带的地形编...

  • GLSL in Unity 系列文章(五):Phong与Blin

    今天用GLSL在unity中实现一下Phong光照模型和Blinn-Phong光照模型,效果如下: 关于Phong...

网友评论

  • 仿佛兮:?
    superowner:@雨落随风 有啊,腾讯GDA那边有,动画压缩,说了一些原理,懒得搬,有空试一下代码
    雨落随风: @仿佛兮 没有后话了吗?

本文标题:【在unity中极限压缩MMD4Mecanim转换的模型和动作数

本文链接:https://www.haomeiwen.com/subject/kvywmttx.html