vtobjplugin/zh

来自Ballance Wiki
Yyc12345讨论 | 贡献2024年7月21日 (日) 16:49的版本 (更新到3.0版本的说明)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
Ambox-AuthorEdition.png 参与者编辑的条目
这个条目已经被作者或条目相关人物进行了巡查或编辑,因而内容可信度很高。
vtobjplugin
Vtobjplugin.png
vtobjplugin v1.1的导出设置界面(v1.2已经修复此截图中拼写错误)
基本信息
作者 yyc12345
适用于 Virtools 3.0/3.5/4.0/5.0
依赖
发布时间 2020年5月31日
最终版本 v3.0 (2024年7月21日)
稳定版: v2.2 (2022年12月26日)
项目地址 GitHub仓库
开发状态 活跃开发中

vtobjpugin是由yyc12345开发的,一款复刻vt2obj的,能够实现更多导出选项的OBJ文件导出插件,适用于Virtools 3.0,3.5,4.0和5.0版本。

特性

优点

  • 可以选择忽略物体变换(即保持物体原点。较于vt2obj更优。忽略物体变换将保留物体原点,但会消除物体的平移、旋转和缩放)。
  • 支持Blender和3ds Max的重定位脚本,方便复位(在使用忽略物体变换后,方便在在3D软件中将每个物体按其原始变换重新放置到其正确状态)
  • 支持更好的左右手坐标转换(从翻转Z轴改为交换YZ轴,更加符合Blender和3ds Max的轴向)。
  • 增加更多材质导出选项。
  • 与vt2obj相比,支持更多Virtools版本。便于Ballance和其他游戏导出3D物体。
  • 支持 一个物体一个文件,非常适合素材导出。

缺点

  • 左右手翻转只能支持YZ轴翻转。
  • 平滑组没有考虑。
  • 只能导出3D物体,不能导出线等二维结构

操作方法

  1. 将下载好的插件放置到Virtools的InterfacePlugins文件夹中。
  2. 启动Virtools,加载需要导出的文档。
  3. 点击菜单栏Wavefront OBJ - 导出物体
  4. 在弹出窗口中配置好导出参数,点击即可导出。

导出设置说明

常规设置

  • 导出模式:一个物体一个组选定物体全部。对于一个物体一个组,需要再点击下面的下拉框选择需要导出的物体或组。
  • 文件模式:所有物体一个文件每个物体一个文件。前者文件名将命名为all,后者文件名为物体名称。此选项仅影响OBJ和MTL文件的个数。
  • 导出目录:需要是一个已经存在的文件夹。导出中如若碰到同名文件会直接覆盖,需要注意。

物体设置

  • 拆分物体方式:决定是使用 g(组语句)还是 o(物体语句)来划分物体。
  • 忽略物体空间变换:议勾选。此选项仅仅是为了提供向vt2obj兼容的功能而存在。
  • 转换到右手坐标系:转为右手坐标系,特指Blender和3ds Max类型的右手坐标系。
  • 添加名称前缀:添加唯一的名称前缀,以尽量避免可能的名称冲突。
  • 移除非ASCII字符:移除导出文件中的所有非ASCII字符,包括对象名称和纹理文件。在一些OBJ导入器不能够正确处理编码的场合可能会有用。

重新放置设置

如果你没有勾选忽略物体空间变换转换到右手坐标系,那么下述两项将不可用。

重新放置意味着恢复物体的原始变换,包括平移、旋转和缩放。

  • 生成3ds Max重新放置脚本(3dsmax.ms)
  • 生成Blender重新放置脚本(blender.py)

材质设置

  • 导出材质:是否导出MTL文件。如果不勾选,下述所有选项将被禁用。
  • 导出贴图:是否在MTL文件中包含贴图。如果不勾选,物体的所有纹理将被移除,只保留其颜色属性,如环境光、漫反射等,并且下述所有选项将被禁用。
  • 复制贴图文件:将导出的材质复制到输出目录,如果你已有材质文件列表,可以关闭此选项以节省空间和不必要的IO操作。
  • 自定义贴图格式:如果勾选此选项并输入新的扩展名,所有材质都将更改为您指定的新扩展名。不需要输入扩展名开头的点(.)。

编码设置

  • 文档编码(又名:代码页)
    • 系统:使用系统的编码,选择此项即保持与1.x版本的导出器相同的行为。在文档没有出现乱码的情况下,也可以选择此项。
    • 自定义:给予用户一个让导出器正确读取物体名称的机会。Virtools使用依赖于系统的多字节编码。因此当Virtools文档的作者与阅读者(你)的系统编码不相同,且作者恰好在文档中使用了非ASCII字符,那么文档将会出现乱码。例如,Ballance使用西欧编码编码了A01_Geländer_01,那么在一些其它编码下则会出现乱码,此时若选择此项并填入28591Windows代码页)则可以正确读取字符并输出正确的文件。
  • 在物体和材质文件中使用UTF8:在OBJ和MTL文件中使用UTF8编码,而不是本机编码。此项与下一项通常与文档编码的自定义选项一起使用。
  • 在脚本文件中使用UTF8:在重新定位脚本文件中使用UTF8编码。

导出导入技巧

由于导出选项的编码部分比较复杂,并且导出的模型主要用于3ds Max以及Blender内的导入,因此在此处分别介绍适用于两个软件的导出设置中的编码部分的设置。

导出

此处的设置是基于默认设置(可以单击对话框中的重置为默认按钮来获取它)的修改,如果没有陈述,则保持默认设置,除非你知道你正在做什么。

Blender

  • 设置文档编码,如果需要需要的话
  • 勾选在物体和材质文件中使用UTF8
  • 勾选在脚本文件中使用UTF8
  • 勾选生成Blender重新放置脚本(blender.py)

Blender本身和Blender的OBJ导出插件默认物体文件和脚本文件是以UTF8进行呈现的。因此需要以UTF8模式输出文本,同时不需要消除非ASCII字符,因为Blender可以正确处理这些字符。

3ds Max

  • 设置文档编码,如果需要需要的话
  • 在脚本文件中使用UTF8请根据情况勾选,详见之后的注释
  • 勾选移除非ASCII字符
  • 勾选生成3ds Max重新放置脚本(3dsmax.ms)

3ds Max的默认OBJ导入器不能识别非ASCII字符,会将其转换为下划线。所以导致生成的脚本和模型文件名内部物体的名称不匹配,进而在执行脚本时出错。因此我们需要在导出时就消除非ASCII字符。同时旧版本的3ds Max的脚本执行器只能识别带有BOM的UTF8文档并正确显示多语言文本,因此需要使用UTF8输出脚本文件。

3ds Max的两个MAXScript执行方法具有不同的文件读取策略。如果您想使用 MAXScript-运行脚本 执行脚本,那么您不可以勾选在脚本文件中使用UTF8。如果您想使用先 MAXScript-打开脚本,然后在窗口中使用 工具-计算所有 来运行脚本,则可以勾选这个选项。

导入

以下提示适用于在建议的导出设置(之前介绍的设置)下导出的OBJ和MTL文件。

Blender

  • 坐标轴选择Y forward, Z up(即与Blender默认坐标轴设置一致)
  • 根据你之前选择的物体分割模式,勾选Split by GroupSplit by Object

对于重定位脚本,在Scripting界面加载blender.py并执行即可

3ds Max

  • 不要 勾选翻转YZ轴
  • 法线从文件导入
  • 勾选导入材质

重定位在菜单栏选择 MAXScript-运行脚本,选择3dsmax.ms并执行即可,或先 MAXScript-打开脚本,然后在窗口中使用 工具-计算所有。根据您之前在导出提示中做出的决定进行选择。