You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#编辑Blender生成的FBX文件或用记事本无乱码打开FBX

FBX文件乱码及C#读取编辑解决方案

记事本打开FBX乱码的原因与解决方法

FBX格式分为两种存储类型,你遇到的乱码是二进制格式FBX的正常表现:
用记事本打开FBX文件

  • 二进制FBX:Blender默认导出为此格式,体积小、存储效率高,属于非明文结构,用文本编辑器打开必然显示乱码
  • ASCII明文FBX:FBX的明文存储版本,可直接用文本编辑器打开查看、编辑

解决文本编辑器打开乱码的方法:在Blender导出FBX的设置面板中,找到「格式」选项,将默认的「二进制」修改为「ASCII」后重新导出即可。

C#读取编辑FBX的可行方案

Assimp.NET对FBX的支持基于反向工程实现,对部分新版FBX特性、自定义属性的兼容性较差,达不到预期属于正常情况,可采用以下更稳定的方案:

方案1:Autodesk官方FBX SDK C#封装

这是目前兼容性最好、功能最完整的方案,同时支持二进制、ASCII格式FBX的读写,可处理网格、材质、动画、骨骼、自定义属性等所有FBX支持的内容。
基础读写示例代码:

using Autodesk.Fbx;

// 初始化FBX管理器
var fbxManager = FbxManager.Create();
var ioSettings = FbxIOSettings.Create(fbxManager, Globals.IOSROOT);
fbxManager.SetIOSettings(ioSettings);

// 加载本地FBX文件
var importer = FbxImporter.Create(fbxManager, "");
bool loadSuccess = importer.Initialize(@"C:\你的文件路径\test.fbx", -1, fbxManager.GetIOSettings());
if (!loadSuccess)
{
    // 自定义加载失败处理逻辑
    return;
}

var scene = FbxScene.Create(fbxManager, "TargetScene");
importer.Import(scene);
importer.Destroy();

// 此处添加读取、修改scene中各节点的业务逻辑

// 编辑完成后导出FBX
var exporter = FbxExporter.Create(fbxManager, "");
bool exportSuccess = exporter.Initialize(@"C:\导出路径\modified.fbx", -1, fbxManager.GetIOSettings());
if (exportSuccess)
{
    exporter.Export(scene);
}
exporter.Destroy();
fbxManager.Destroy();

方案2:轻量开源FBX处理库

如果不需要用到FBX的全量特性,可以选择更轻量的开源库如FbxSharp,无需依赖官方FBX运行时,部署更简单,适合处理基础的网格、动画等数据。

方案3:手动解析ASCII格式FBX

如果需求非常简单,也可以直接导出ASCII格式的FBX,按照FBX明文节点的结构自行实现解析逻辑,无需依赖第三方库,但该方案容错率低,不适合处理复杂FBX文件。

内容的提问来源于stack exchange,提问作者Kaan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:09:01