ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Blender处理MMD模型与VMD动作:烘焙动画并导出FBX实战

2026/10/2 14:31:16 拓冰建站 浏览量
Blender处理MMD模型与VMD动作:烘焙动画并导出FBX实战 手上拿到一个MMD模型和配套的VMD动作想丢进Unity或者UE里做游戏、做交互、做数字人展示最通用的一条路就是在Blender里过一手把模型整理干净把动作烘焙成纯关键帧再导出FBX。听起来就三步——导入、烘焙、导出可真上手做的时候模型变成二十米高的巨人、动作在引擎里原地抽搐、贴图进了Cocos就报错、导出按钮一按直接蹦红字这些坑基本每个人都得踩一遍。这篇就把我在Blender里处理MMD模型、烘焙动画、导出FBX这整条链路里的做法和教训摊开讲内容偏向实操工具用到的是Blender加MMD Tools插件适合已经会用Blender基本操作、但卡在MMD转FBX这一步的朋友也适合做二次元角色、虚拟主播、游戏道具的技术美术同学当流程参考。1. 为什么MMD模型非要绕Blender再导出FBX1.1 MMD格式和通用引擎之间的那道墙MMD用的PMX/PMD模型格式是给MikuMikuDance这个软件量身定做的里面塞了一大堆自家才认的东西日文骨骼名、IK约束、刚体加关节的物理、Toon材质、球面贴图SPH/SPA、顶点变形和材质变形。Unity、UE、Cocos这些引擎一概不认PMX它们吃的是FBX、glTF这类通用格式。FBX本身是个骨架蒙皮动画曲线材质的容器它能表达骨骼动画、能表达形态键BlendShape、能表达基础的PBR材质参数但它表达不了MMD的IK、表达不了物理刚体、也表达不了那种卡通描边的Toon材质。所以问题的本质不是怎么转格式而是怎么把MMD里那些引擎不认的东西翻译成引擎认的东西。IK要变成逐帧的骨骼旋转物理算出来的骨头位移要变成关键帧Toon材质要拆成基础色加贴图球面贴图要丢掉或者手动合并进基础色。这一整套翻译工作Blender加上MMD Tools插件是目前最成熟的方案。1.2 Blender在这一环的不可替代性替代方案也有比如MMD自带的导出、某些在线转换工具、或者专门的小工具。我自己试过的几个问题都差不多要么丢骨骼要么丢表情要么动作只导出一小段要么材质全糊成一片。核心原因在于MMD的IK和物理是运行时计算的转换工具如果只是照搬关键帧导出到引擎里骨头就会僵住不动。Blender的价值在于它有完整的姿态系统和烘焙机制。你可以先把MMD的IK约束、物理刚体全部在Blender里跑一遍算出每一帧每根骨头实际的位置和旋转再把这些结果拍成关键帧写死进动画曲线。这时候骨骼动画就是一堆纯粹的数字任何引擎都能原样播放。这个过程叫烘焙Bake是整条链路里最不能省的一步。1.3 烘焙动画到底在烘什么说人话烘焙就是把算出来的结果记下来。打个比方IK骨骼就像遥控器你按一下抬脚实际动的是大腿小腿脚踝三根骨头它们怎么配合是解算出来的物理骨骼就像挂在身上的流苏你晃一下身子它自己甩起来甩成什么样得现场模拟才知道。这些解算结果和模拟结果都是临时的一进FBX就没了。烘焙做的事就是把这些临时结果逐帧记成关键帧让骨头死在每一帧的正确位置上这样换到任何引擎里不需要重新解算也能一模一样地动。所以你会发现同一套动作没烘焙的FBX拖进Unity可能一动不动或者乱动烘焙过的就完全正常。这也是为什么很多人第一次导出FBX发现动作丢失、动作变形八成就是漏了烘焙。2. 开工前的环境准备版本、插件与场景设置2.1 Blender版本和MMD Tools的搭配选择这一步很多人翻车。MMD Tools是个社区插件更新节奏跟着Blender走但不是所有版本都能通吃。普遍的搭配规律是Blender 3.6 LTS配mmd_tools 2.x系列比较稳Blender 4.x之后要用对应的新分支老版本插件在4.x上装上去可能直接报错或者面板不出来。网上流传的2.10.3这个版本号属于2.x线上比较后期的一版如果用的是Blender 3.6它能干如果你已经升到4.2、4.5那就得找适配的分支别硬装。提示插件来源优先选官方发布页或者可信的镜像仓库装之前先看清支持的Blender版本区间装错了卸载重装比硬修快得多。我自己的习惯是给MMD流程单独留一个Blender版本比如一台机器上同时装3.6和4.x3.6专门跑MMD导入导出4.x跑别的建模渲染。这样互不干扰出问题也好回退。毕竟动捕数据、老模型这些东西往往在旧版本上兼容性更好没必要为了版本号硬上。2.2 插件安装与常见安装失败安装路径是编辑 → 偏好设置 → 插件 → 从磁盘安装选中插件的压缩包然后在列表里搜mmd勾选启用。这个流程本身不难难的是装完找不到、或者勾选时报模块错误。装完找不到多半是插件没有正确解压到版本目录或者是zip里的目录结构和Blender期望的不一样。解决方法是去偏好设置的插件目录看一眼正常情况下应该有个叫mmd_tools的文件夹躺在那里。勾选时报模块错误通常是依赖缺失或者版本不匹配这种情况别在控制台里硬修直接换成匹配的版本更省事。还有一类问题是插件装好了、面板也出来了但导入模型时报找不到某个模块。这类基本都是Python依赖的问题插件文档里一般会写清楚需要哪些包。实在搞不定用官方的安装脚本或者release包比手动解压稳。2.3 三个必须先改的工程设置在导入任何东西之前有三件事先做了能省掉后面一堆麻烦。第一场景帧率。MMD的动作标准是30帧每秒而Blender新建工程默认是24帧每秒。你要是不改导入的VMD动作在时间轴上会被拉长原本2秒的动作变成2.5秒动作慢半拍跟音频完全对不上。改法是输出属性面板里把帧率设成30这一步花10秒能省你一小时的调试。第二场景单位。Blender默认单位是米缩放是1.0。MMD里的1个单位换算过来大约是0.08米一个正常身高的MMD模型大概20个单位高也就是20米。你要是不做缩放处理导进去就是一个20米的巨人摄像机得拉到很远才看得全。第三坐标系。MMD是Y轴向上、Z轴朝屏幕里的左手系Blender是Z轴向上、Y轴朝屏幕里的右手系。这个差异MMD Tools在导入时会自动处理会给你加一个旋转让模型在Blender里正立。但导出FBX的时候还得再转一次这个后面导出章节细说。这里只需要知道整个流程里坐标轴会被转两次每次都要盯着转错了模型就会躺下或者倒立。3. MMD模型导入后的清理与修复3.1 缩放与朝向别让模型变成20米巨人导入PMX的入口是文件 → 导入 → MMD Model选中.pmx文件。导入面板里有一堆选项和缩放、朝向相关的有两三个版本之间名字略有差异但意思差不多一个是整体缩放系数一个是是否自动旋转到Z轴向上还有是否导入刚体和关节。缩放我一般直接给0.08。这个数字不是拍脑袋来的是从MMD单位到米的换算来的MMD里1单位约等于8厘米0.08米的系数正好对上。导入完在N面板看一眼模型实际高度正常人形角色1.5到1.7米之间就对了。如果导入时漏了缩放事后在物体模式下按S缩放到合适大小然后CtrlA应用缩放。提示缩放尽量在骨架对象上做并且导出前一定应用掉。带着非1的缩放导出很多引擎会给你算出一堆莫名其妙的位移或者骨骼和网格对不上。朝向这块导入后模型应该正立、面朝视图前方。如果它躺平了或者朝侧面说明导入时的旋转选项没处理对撤销重导比手动转回来靠谱。手动转会破坏骨骼和网格的相对关系后面动画会歪。3.2 材质、法线和贴图路径的处理MMD的材质是Toon风格通常由基础贴图、球面贴图SPH/SPA、描边组成。导入Blender后MMD Tools会尽量还原成Principled BSDF节点基础色接对了但球面贴图一般是挂在自发光上一个额外的贴图节点引擎里完全看不懂这个结构。导FBX之前要不要清理材质看你的目标引擎。如果只是要模型和动作材质进引擎后要重做的那Blender里保持能看清就行重点是别让描边网格跟着一起导出。MMD模型的描边本质是一层法线翻转的壳导出后会让面数翻倍还会出现奇怪的黑色边缘。处理办法是找到描边材质把它对应的网格删掉或者在材质层面关掉。透明问题也常见。睫毛、头发这类贴图带Alpha的材质在Blender里要设成Alpha Blend混合模式不然会有一圈黑边。反过来如果所有材质都被设成透明模型看起来会像蒙了一层灰。我的做法是逐个检查带Alpha通道的贴图只给需要的材质开透明混合。法线方面MMD模型带自定义拆分法线导入后Blender会保留。Blender 4.1之后自定义法线系统有变化如果发现模型表面出现奇怪的硬边或者黑面先检查是不是法线被动了。导出FBX时几何体选项卡里选面平滑或者按边平滑配合模型的原始法线一般不会出问题。贴图路径这块要单独提醒。导入时如果贴图是绝对路径一旦文件挪位置就全断。导出FBX时路径模式选复制Blender会把贴图拷到FBX同级的textures目录里相对路径引用这样整个文件夹一起搬到引擎工程里就不会丢图。3.3 骨骼命名、层级与IK的预处理MMD骨骼名是日文比如センター、上半身、左腕。这些名字在Blender里能正常显示进引擎后可能变成问号或者方块功能上不影响但维护起来很蛋疼。要不要改名看项目需求如果要做大量动画绑定和状态机建议改成有意义的英文名。改名的坑在于Blender里重命名骨骼不会自动同步改顶点组名字。你改完骨骼名顶点组还挂着旧名字蒙皮就失效了。要改就骨骼和顶点组一起改用脚本一次性处理最稳import bpy name_map { センター: center, 上半身: upper_body, 下半身: lower_body, 左腕: arm_L, 右腕: arm_R, } arm_obj bpy.data.objects[Armature] # 先改骨骼 for bone in arm_obj.data.bones: if bone.name in name_map: bone.name name_map[bone.name] # 再同步顶点组 for mesh_obj in [o for o in bpy.data.objects if o.type MESH]: for vg in mesh_obj.vertex_groups: if vg.name in name_map: vg.name name_map[vg.name]IK是另一件必须提前处理的事。MMD的脚部、腿部大量依赖IK骨骼导入Blender后这些IK约束还挂着。导出FBX之前有两个选择要么用MMD Tools面板里的清除骨骼约束把IK解算成FK关键帧要么走后面的烘焙流程用视觉关键帧直接拍下来。两条路殊途同归都是要把IK化掉。区别是前者逐骨骼处理后者一次性全烘我个人更倾向于后者因为动作、约束、物理可以一次性搞定。还有个小细节MMD里有些末端骨骼长度是0导出后某些引擎会直接忽略它们。MMD Tools在导入时可以给这些零长度骨骼一个默认长度避免丢失。如果你发现某个手指尖或者头发末端的动画丢了回头查这里。4. 动画烘焙把VMD动作变成引擎认的关键帧4.1 VMD导入与时间轴对齐VMD动作的导入入口在MMD Tools面板里选中骨架对象再点导入动作选.vmd文件。这里有个前提必须先选中骨架否则插件不知道该把动作挂给谁直接报错。导入前确认帧率是30这个前面说过。导入后检查一下时间轴长度正常一个舞蹈动作几十秒到几分钟换算成帧数是几千到上万帧。如果VMD里有多个动作层比如相机动作、表情动作、骨骼动作混在一起导入面板里可以选只导骨骼动作避免把相机动画也带进来。导入完先播放一遍看动作对不对。常见的两个问题一是动作整体偏了一截人物在地上滑着走这多半是根骨骼センター的位移没对上检查动作是不是从第0帧开始二是动作能播但速度不对回头查帧率。4.2 IK和约束的烘焙Bake Action参数逐项说这是整篇最核心的一步。操作路径是选中骨架切到姿态模式全选所有骨骼A键然后姿态菜单 → 动画 → 烘焙动作Bake Action。弹出的面板里几个参数决定了烘焙的质量。参数建议值作用与原因起始帧 / 结束帧按动作实际范围只烘你需要的区间别把整条时间轴都烘了步长1逐帧烘焙最精确。设成2会抽帧动作可能卡顿仅选中骨骼勾选避免把不该动的辅助物体也烘进去视觉关键帧必须勾把IK、约束解算后的真实姿态写进关键帧这一项不勾等于白烘清除约束视情况勾烘完顺手删掉IK约束避免引擎里重复计算清除父级一般不勾勾了会把骨骼的父子关系信息混进关键帧容易出偏移覆盖当前动作勾选直接在原动作上覆盖省得管理一堆新动作视觉关键帧这个选项是重点它的意思是看着我眼睛看到的姿态去记录而不是记录控制器自己的数值。IK骨骼的控制器数值可能一动没动但实际姿态在变靠的就是这个选项把真实结果拍下来。我第一次做的时候没勾它导出的动作整个人僵住排查了两个小时才发现是这个开关。烘完之后姿态上会多出一大堆关键帧时间轴上密得像梳子。这时候再播放一遍动作应该和烘焙前一模一样。如果烘焙后动作变了多半是有约束没被正确解算回头检查是不是漏选了某根骨头。注意烘焙前先把动作的关键帧范围确认清楚尤其是循环动作。烘到一半发现要改范围得重新来一遍比较费时间。4.3 头发裙摆的物理模拟与烘焙MMD的头发、裙子、丝带都是刚体加关节的物理在Blender里播放时会自动模拟。但物理模拟有个特点它是跑出来的不是存着的。时间轴往回拖物理状态不会回退所以你不能靠拖时间轴去看物理效果得从头播。导出FBX之前物理必须烘成骨骼关键帧否则引擎里这些骨头就是死的。做法是先把场景帧率、时间轴范围设好然后从第0帧开始播放让物理算一遍。这里有个经验物理有稳定期前几帧头发会抖动或者乱甩最好多播几遍或者从负帧开始播等它稳定了再正式烘。如果MMD Tools带物理烘焙功能直接用它的烘焙刚体/关节到骨骼最省事它会把物理结果写成骨骼关键帧并自动处理关系。要是走通用的Bake Action路径逻辑一样确保物理已经算好、停在正确姿态全选骨骼烘焙动作勾视觉关键帧。烘完之后物理刚体那些辅助物可以直接删掉或者隐藏反正FBX里也没它们的位置。物理烘焙的质量直接决定成品观感。头发抖、裙子穿模、丝带乱飞基本都是稳定性没做好。我的做法是先把物理参数重力、阻尼、关节刚度在Blender里调舒服再烘。物理这层东西一旦烘成关键帧就改不动了得重头来所以调参要在烘焙之前做。4.4 曲线精简别让FBX变成几十兆逐帧烘焙的代价是文件巨大。一个上万帧的动作几百根骨头每根骨头每帧都有旋转和位移曲线导出来的FBX轻松上百兆。移动端或者网页端根本扛不住。精简的关键在导出面板里的简化参数Simplify Factor。它的原理是自动剔除那些再怎么插值结果都差不多的关键帧把直线段和缓变段压缩掉。一般设个0.5到1.0之间的值文件能缩到原来的一半甚至更小肉眼看不出差别。这个参数设太大会出现动作发飘、卡顿所以别贪。另一个手段是只保留变形骨骼。FBX导出有个仅变形骨骼的选项勾上之后只导出有顶点组权重的骨头那些纯控制用的辅助骨骼会被剔除。这招对减体积很有效但风险是如果某些骨骼是拿来驱动其他骨骼的剔掉之后动画就断了。所以用之前先在引擎里测一遍。还有个更狠的做法是在Blender里手动清理曲线进曲线编辑器选中所有关键帧用精简曲线或者清理关键帧功能去掉重复的、共线的关键帧。这步费点时间但对大动作很值。5. FBX导出参数逐项拆解5.1 几何与变换选项卡导出入口是文件 → 导出 → FBX。面板分好几大块先看几何体和变换这两块。几何体这边平滑方式按面选能保住MMD模型原始的硬表面。如果模型带切线空间法线勾上切线空间法线贴图才能正常工作。三角化按需有些引擎自己会三角化但提前在Blender里三角化能避免引擎端出现破面。变换这边是坐标系转换的重头戏。目标是Unity的话前向选-Z、上向选Y、缩放1.0这是Unity的标准坐标系。目标是UE的话前向X、上向Z。选错了模型会躺下或者转身180度这是最常见的导出翻车点。缩放这块如果模型导入时已经缩放到真实尺寸1.6米左右这里就保持1.0如果没缩这里可以设个系数一次性解决。应用变换这个选项如果你的骨架对象上带着旋转或者缩放勾上它能把这些变换烘进数据里避免引擎里出现偏移。前面导入时MMD Tools给模型加的那个旋转就在这里被消化掉。勾之前确认一下对象变换别把需要的旋转也给应用没了。5.2 动画选项卡动画这块的第一要义就是烘焙动画必须勾上。不勾你的IK、约束、物理全白做导出去的动作是残缺的。勾上之后Blender会把动画的每一帧都采样写进FBX引擎拿到的就是纯数据。动作来源有三种模式全部动作All Actions、当前动作Active Action、NLA轨迹NLA Tracks。如果你只想导一个动作用当前动作最干净。如果一个角色要带多个动作用全部动作每个动作会作为一个独立的动画片段导进去。用NLA的话需要先把动作排成NLA轨道适合多段动作拼接的复杂场景。采样率1.0对应逐帧采样最精确。采样率2.0会隔帧采样动作可能变卡。文件大小和精度就在这里权衡。一般来说预渲染的展示用逐帧没问题如果是移动端游戏配合简化参数用隔帧采样更划算。强制开始/结束关键帧这个选项建议勾上保证动画首尾都有帧避免引擎播放时出现头尾缺失。增加叶骨骼看引擎Unity的Humanoid重定向有时候需要它纯骨骼动画不需要勾了反而多出一堆末端骨头占体积。5.3 形态键与表情的处理MMD的表情是顶点变形Morph导入Blender后变成形态键Shape Keys。FBX是支持形态键的导出时会作为BlendShape一起出去引擎里可以直接调。这个链路本身是通的不用额外操作。要注意的是MMD的变形分好几种顶点变形、UV变形、材质变形、骨骼变形、组变形。Blender的形态键只对应顶点变形UV变形和材质变形比如换色、换贴图是导不出来的。如果你做的角色依赖这些效果得提前规划要么在引擎里用别的方式实现要么改材质方案。另一个坑是形态键和GPU蒙皮的兼容性。某些引擎里一个网格既有大量形态键又有蒙皮性能会掉得很厉害甚至出现渲染错误。做移动端项目的话形态键数量要控制能用骨骼驱动做的表情比如眨眼、张嘴就别用形态键。5.4 一段可复用的导出脚本如果你经常要做批量把多个模型导出FBX这种事手动点面板效率太低。用脚本走一遍参数固定下来还能避免手抖点错。下面这段是基础框架参数名在不同Blender版本里可能有出入以你界面上看到的为准import bpy import os out_dir /path/to/output os.makedirs(out_dir, exist_okTrue) # 只处理骨架对象 armatures [o for o in bpy.data.objects if o.type ARMATURE] for arm in armatures: bpy.ops.object.select_all(actionDESELECT) arm.select_set(True) # 把骨架的子物体网格一起选上 for child in arm.children_recursive: child.select_set(True) bpy.context.view_layer.objects.active arm bpy.ops.export_scene.fbx( filepathos.path.join(out_dir, arm.name .fbx), use_selectionTrue, axis_forward-Z, axis_upY, global_scale1.0, apply_scale_optionsFBX_SCALE_ALL, mesh_smooth_typeFACE, use_tspaceTrue, bake_animTrue, bake_anim_use_all_actionsFalse, bake_anim_use_nla_stripsTrue, bake_anim_force_startend_keyingTrue, bake_anim_step1.0, bake_anim_simplify_factor0.5, add_leaf_bonesFalse, )脚本的意义不在于省那几次点击而在于参数一致。团队协作里每个人的Blender设置不一样导出来的东西五花八门有个固定脚本能省掉大量为什么你导的能用我导的不能用的扯皮。6. 常见问题排查实录6.1 导出就报错的那几种情况最烦人的是模型都弄好了导出按钮一按直接弹红字。我遇到过的几类第一类是文件路径问题。导出路径里带中文、日文或者特殊符号某些系统环境下会直接失败报could not convert the .blend file to fbx file这类信息。解决办法很土但很有效把导出路径换成纯英文放在盘符根目录下的简单目录里避开各种同步盘比如云盘同步目录、长路径的中文文件夹。第二类是磁盘空间或者权限问题。这种报错信息通常不明显表现是导出到一半失败文件大小是0或者不完整。检查一下目标目录的写入权限和剩余空间。第三类是场景里存在损坏的对象。比如导入失败留下的空物体、丢失贴图的旧材质、循环引用的父级关系。这种时候新建一个干净工程把需要的模型、骨架、动作单独导进去再导出FBX往往就好了。我一般把这招叫洗一遍把问题隔离掉再处理。6.2 引擎里骨骼错位、动画不动导出没报错拖进引擎一看模型站得挺好播放动画一动不动或者骨头全散架了。按下面这个顺序排查。现象可能原因处理模型正常动画完全不动导出时没勾烘焙动画回Blender重导勾上烘焙动画骨头位置全乱导出坐标系选错检查前向/上向Unity用-Z/Y动画能动但抖动/卡顿采样率太高或简化过度采样率改成1.0简化因子调小部分骨头不动约束没烘焙或辅助骨骼被剔除确认勾了视觉关键帧关闭仅变形骨骼根骨骼带位移模型乱跑根骨骼的位移关键帧没处理检查センター的位移或在引擎里做根运动处理模型尺度不对巨大或极小导入或导出时缩放没应用导出前CtrlA应用缩放这里面最常见的是第一条和第二条。第一条的原因是FBX里只有骨骼的关键帧数据如果没烘焙IK约束不会传过去骨头自然不动。第二条纯粹是坐标系搞错模型躺下、倒立、背对镜头都可能是它。还有个隐蔽的坑如果骨架对象本身带着旋转比如导入时加的-90度导出时没应用引擎里整个骨架会多一个旋转动画看起来就歪了。检查方法是选中骨架看N面板里的旋转值是不是0。6.3 贴图在Blender正常、进引擎就报错这个现象特别常见尤其是在Cocos这类引擎里。Blender里渲染得好好的一进引擎就提示贴图加载失败或者贴图显示成纯色。根因基本在贴图路径和格式上。第一导出FBX时路径模式没选复制FBX里存的是绝对路径引擎在别的机器上自然找不到图。第二贴图文件名里带中文或日文某些引擎的资源管线处理不了会报错。第三贴图格式是MMD专用的球面贴图SPH/SPA或者别的非标准格式引擎不认。第四材质结构太复杂用了Blender特有的节点引擎解析不了。解决思路是导出前把贴图统一成通用格式PNG/JPG文件名改成纯英文用复制模式让贴图跟着FBX走。球面贴图这种MMD特有的东西进引擎后重做材质把它跟基础色合到一起别指望自动转换。材质结构尽量简化能用基础色加一张贴图就别堆节点。提示导出前把FBX连同textures文件夹一起打包当作一个整体交付给别人这样路径才能保持相对一致。7. 提高效率的几个私房技巧7.1 建立自己的模板工程每次从头弄一遍太累。我的做法是准备一个模板.blend文件里面已经设好帧率30、单位、MMD Tools面板、常用的导出预设甚至预置了几个空骨架和常用材质。开工时复制一份改名字直接往里导入模型和动作。这招能省掉一堆重复设置也避免了这次忘了改帧率这种低级错误。模板里还可以放一段预先写好的导出脚本把坐标系、烘焙、简化参数都固定下来每次导出点一下脚本就完事。团队里把模板分发给每个人导出来的东西风格统一后续接引擎的人就轻松了。7.2 分批处理与版本留存动作长、骨头多的项目一口气全部处理很容易崩。我的习惯是分两段先烘骨骼和IK检查没问题了保存一版再单独处理物理再保存一版。这样出问题时能快速定位是骨骼环节还是物理环节。另外每完成一个阶段就另存一个编号版本别在一个文件上反复覆盖。MMD模型和动作数据版权情况比较复杂涉及二次创作和商用的边界自己用没问题投入到正式项目之前一定要确认授权范围。这个坑不涉及技术但踩了很麻烦。7.3 顺手考虑其他导出目标做完FBX这套流程很多细节是可以复用的比如模型清理、坐标系校准、动作烘焙。如果项目需要Web端展示用glTF/GLB格式Blender的导出逻辑和FBX类似前面整理的模型直接导就行。如果是三维地图场景把静态模型转成3DTiles也是类似思路先在Blender里把模型整理干净、坐标系对齐到地理坐标再用对应工具切片。核心心法是一样的——先把数据洗干净再谈格式转换。我个人在实际操作中的体会是MMD转FBX这条链路80%的时间花在前期排查和后期测试上真正点导出那一秒反而最简单。模型能不能用不看导出成不成功看的是丢到目标引擎里动起来对不对。所以每做完一个模型别急着交付先在自己的测试工程里跑一遍走一步、跳一下、转个身把该暴露的问题都暴露出来再拿去用。踩过的坑基本都集中在缩放过、坐标系、烘焙选项这三件事上把这三件事盯死剩下的就都是耐心活了。