Files
BallanceBlenderHelper/docs/docs/zh-cn/import-export-virtools.md

9.5 KiB
Raw Blame History

导入导出Virtools文档

!!! warning "这是实验性内容" 原生导入导出Virtools文档是BBP插件的试验性内容它可能存在许多问题请参阅报告问题章节来了解更多。当遇到问题时请及时汇报。BBP插件的作者不对因BBP插件问题导致的任何后果负责。

导入Virtools文档

点击File - Import - Virtools File可以导入Virtools文档。导入支持CMOVMONMO文件。点击后会弹出文件打开界面并在侧边栏展示导入设置。首先你需要选择导入的Virtools文档然后在侧边栏配置导入设置配置完导入设置后即可点击导入开始导入并等待Blender下方提示导入完成即可。

冲突解决选项

Conflict Options冲突解决选项章节指示了当导入器遇到物体名称重复的情况时该如何处理。分为4个等级分别针对Object物体Light灯光Mesh网格Material材质Texture贴图。处理方式则有2种Rename重命名和Use Current使用当前。选择重命名后当遇到重复名称时将会自动为其添加名称后缀使其名称唯一化。而选择使用当前则会忽略从文件中导入此项转而使用Blender文档中已经存在的同名的项目。

!!! info "与Virtools冲突解决的不同" 相比较于在Virtools的冲突解决对话框BBP插件提供的冲突解决选项不支持替换功能同时其粒度也不支持精细到单个实例只能针对一整个类型进行设定。因此你无法单独为每一个冲突的实例设置不同的冲突解决方案。但目前这种设置已经能满足绝大对数的使用场景了。

冲突解决选项章节里的选项的默认值是通常导入时会选择的解决方案。当然针对特殊导入情况需要特殊设置,例如正在从外部导入一个从原版中导出的机关模型,则可能连材质选项都可以选择使用当前,而无需复制一份。正确使用冲突解决选项是制图经验所给予的,本手册不会对此进行教学。

Virtools参数

众所周知Virtools使用基于系统的多字节字符编码来处理文档因而很容易出现所谓乱码问题。Blender本身不会出现乱码问题然而如果我们不能以正确的编码读取Virtools文档则当Virtools文档被导入Blender时其中存储的字符仍然可能会呈现乱码状态。Virtools ParamsVirtools参数章节的Encodings编码属性用于指定读取Virtools文档的编码。可以指定多个编码越靠上的编码越优先使用当无法解码时才会使用下一级编码。下面列出一些常用的编码

  • cp1252Ballance所用的西欧编码
  • gbk中文Windows系统默认编码

编码属性非常重要如果设置了错误的编码导入Blender的各类物体的名称会出现不可认知的情况又或者会导致程序出错。

!!! info "有哪些编码可以使用?" 自BBP 4.1版本后我们使用编码的名字基本上就是照抄Python的编码名。大多数Python中常用的编码名都有映射只有一些特别罕见的编码没有支持对于具体支持的编码则需要查看源码。有关Python支持的编码请查看Python相关文档。编码名不区分大小写。

!!! warning "从旧版本迁移的警告" 自BBP 4.1版本开始BBP的Virtools文档导入模块使用的底层库LibCmo版本号提升为0.2。在此版本前编码属性是一个平台相关的设定。在Windows下这里需要填写的是Windows代码页数字。而在其它操作系统下LibCmo使用iconv进行字符编码解码因此需要使用合法的iconv编码标识符

这一切在LibCmo 0.2后发生了改变从这个版本开始LibCmo采用了类似Python的统一编码名。它是平台无关的你不再需要检查你正在使用的操作系统是Windows还是Linux所有平台的编码字符均为相同的字符串。这也就意味着如果您之前自定义过编码设置你需要注意将他们转换到新的统一编码名因为旧的编码名可能在统一编码名下没有对应映射例如之前在Windows上指定的`1252`,在新的统一编码名下应当被书写为`cp1252`,原编码在新系统下无法被正确识别。

导出Virtools文档

点击File - Export - Virtools File可以导出Virtools文档。点击后会弹出文件打开界面并在侧边栏展示导出设置。首先你需要选择导出的Virtools文档的位置然后在侧边栏配置导出设置配置完导出设置后即可点击导出开始导出并等待Blender下方提示导出完成即可。

导出目标

Export Target导出目标章节用于决定你需要将哪写物体导出到Virtools文档中。你可以在四种模式中选择其一来决定需要导出的内容

  • Object导出单个物体。选择后需要在下面选择需要导出的物体。
  • Collection导出单个集合这是最常用的选项。选择后需要在下面选择需要导出的集合。值得注意的是,该选项支持嵌套集合导出,即选择集合的时候,会将集合中的集合的物体也一起导出。
  • Selected Objects导出选择的物体。你需要在导出前选择好需要导出的物体。
  • All Objects导出该文档中的所有物体。该选项慎用因为它是粗暴地遍历文档中的物体列表来进行导出很可能会导出许多你不需要的物体。

Virtools参数

Virtools ParamsVirtools参数章节与导入Virtools文档中的类似。Encodings编码属性决定了导出Virtools文档时所用的编码。

Global Texture Save Option全局贴图保存选项决定了那些设置了Use Global使用全局设定的贴图的真实保存方式。通常而言设置为Raw Data原始数据则可以100%保证保存的Virtools文档可以包含正确贴图但是其体积也可能会变大设置为External外部数据则可以尽可能减少文件大小但可能会出现导出的文档找不到贴图文件的问题。我们建议你在进行材质设置时就对每个材质单独指定应该如何保存而不是依赖全局选项来设置。这个选项是给那些依赖全局贴图保存选项的旧地图的再编辑来使用的。还需要注意的是尽管这个选项里有Use Global选项但请 不要 选择,否则会导致错误,因为显然你不能让一个全局选项再去使用全局选项的设置。

Use Compress使用压缩属性指定保存的文档是否压缩存储。压缩可以显著减少文档体积且在现代计算机平台上压缩所造成的性能损失几乎可以忽略不计。当选择使用压缩后一个额外的Compress Level压缩等级属性将会显示用于指定压缩的级别数值越高压缩率越大文件越小。

Ballance参数

Ballance ParamsBallance参数章节包含针对Ballance特有内容对导出过程进行优化的参数。

Successive Sector小节连续是一个解决导出小节组时出现的Bug的选项。由于某些原因如果一个小节中没有任何机关实际上是某小节组中没有归入任何物体导出插件会认为该小节组不存在因而遗漏导出。且由于Ballance对最终小节即飞船出现小节的判定是从1开始递增寻找最后一个存在的小节组所以二者叠加会导致Ballance错误地认定地图的小节数从而在错误的小节显示飞船这也就是导出Bug。当勾选此选项后导出文档时会预先按照当前Blender文件中Ballance地图信息中指定的小节数预先创建所有小节组然后再进行导出这样就不会遗漏创建某些小节组飞船也会在正确的小节显示。

这个选项通常在导出可游玩的地图时选中,如果你只是想导出一些模型,那么需要关闭此选项,否则会在最终文件中产生许多无用的小节组。

无法导入导出

通常而言在你正确按照之前介绍的步骤安装和配置插件后你理论上就可以使用Virtools文档的导入导出功能了。但难免有意外发生。这里说的无法导入导出指的是导入和导出Virtools文档的按钮是灰色的不可点击的。你需要按照下述步骤检查。如果你所指的是在导入导出过程中出错了请参考本页页首的警告信息。

首先检查你是否已经在配置插件章节正确配置了插件的External Texture Folder设置项。如果你没有配置则自然无法导入导出Virtools文件。因为导入导出Virtools文件需要依赖Ballance原版关卡数据。请按教程认真配置这一设置项。

如果你确定你已经设置了正确的贴图路径,你可以尝试点击菜单Window - Toggle System Console来打开控制台。在控制台中可能会有一些相关的错误信息输出在其中例如加载底层BMap库时失败等。加载底层BMap库失败通常只发生在一些罕见架构的机器上例如使用Snapdragon处理器的Windows系统等因为我们打包的插件中并未包含支持这些平台的Virtools文件底层读取库BMap。在面对这种情况时你有两个选择一是汇报给开发者等待开发者主动支持二是自行编译该库仅建议有丰富计算机知识的人这样做