diff --git a/docs/docs/imgs/export-virtools.png b/docs/docs/imgs/export-virtools.png new file mode 100644 index 0000000..4cafa44 Binary files /dev/null and b/docs/docs/imgs/export-virtools.png differ diff --git a/docs/docs/imgs/game-camera.png b/docs/docs/imgs/game-camera.png index c4df24d..5137383 100644 Binary files a/docs/docs/imgs/game-camera.png and b/docs/docs/imgs/game-camera.png differ diff --git a/docs/docs/imgs/import-virtools.png b/docs/docs/imgs/import-virtools.png new file mode 100644 index 0000000..dcd4d51 Binary files /dev/null and b/docs/docs/imgs/import-virtools.png differ diff --git a/docs/docs/imgs/virtools-camera.png b/docs/docs/imgs/virtools-camera.png new file mode 100644 index 0000000..406a694 Binary files /dev/null and b/docs/docs/imgs/virtools-camera.png differ diff --git a/docs/docs/zh-cn/compile-distribute-plugin.md b/docs/docs/zh-cn/compile-distribute-plugin.md index 3d7e7b4..85e60b1 100644 --- a/docs/docs/zh-cn/compile-distribute-plugin.md +++ b/docs/docs/zh-cn/compile-distribute-plugin.md @@ -6,7 +6,7 @@ BBP的Virtools文件原生导入导出功能依赖BMap以及其Python绑定pybmap来实现。为了分发插件,我们需要首先编译BMap及其前置LibCmo。而在编译前,你需要先确认你需要的BMap版本。因为BBP并不总是使用最新的BMap,例如你正在编译一个旧版的BBP,其显然不可能依赖最新的BMap。BMap也在不断升级中,其提供的功能也在不断变化,不同版本的BMap是不兼容的。BBP通常会在发布时写明其所用的BMap版本,如果BBP没有指出,你可能需要寻找与BBP发布时最近的BMap版本来编译。 -在明确版本后,你需要访问[LibCmo位于GitHub的存储库](https://github.com/yyc12345/libcmo21)。然后克隆项目,使用Git命令转到对应版本(或者直接下载对应版本的源码)。然后按照LibCmo的编译手册编译得到BMap。在Windows上,你通常会得到`BMap.dll`和`BMap.pdb`这两个文件。而在Linux上,则会是`BMap.so`。 +在明确版本后,你需要访问[LibCmo位于GitHub的存储库](https://github.com/yyc12345/libcmo21)。然后克隆项目,使用Git命令转到对应版本(或者直接下载对应版本的源码)。然后按照LibCmo的编译手册编译得到BMap。在Windows上,你通常会得到`BMap.dll`文件。而在Linux上,则会是`BMap.so`。 然后我们需要配置pybmap。pybmap是随LibCmo一起提供的。请按照pybmap的手册,将编译得到的二进制BMap库,和pybmap结合在一起。即完成pybmap配置。 diff --git a/docs/docs/zh-cn/import-export-virtools.md b/docs/docs/zh-cn/import-export-virtools.md index 376cd12..25d551b 100644 --- a/docs/docs/zh-cn/import-export-virtools.md +++ b/docs/docs/zh-cn/import-export-virtools.md @@ -5,11 +5,13 @@ ## 导入Virtools文档 -点击`File - Import - Virtools File`可以导入Virtools文档。导入支持CMO,VMO,NMO文件。点击后会弹出文件打开界面,并在侧边栏展示导入设置。首先你需要选择导入的Virtools文档,然后在侧边栏配置导入设置,配置完导入设置后即可点击导入开始导入,并等待Blender下方提示导入完成即可。 +点击`File - Import - Virtools File`可以导入Virtools文档。导入支持CMO,VMO,NMO文件。点击后会弹出文件打开界面,并在侧边栏展示导入设置,如下图所示。首先你需要选择导入的Virtools文档,然后在侧边栏配置导入设置,配置完导入设置后即可点击导入开始导入,并等待Blender下方提示导入完成即可。 + +![](../imgs/import-virtools.png) ### 冲突解决选项 -Conflict Options(冲突解决选项)章节指示了当导入器遇到物体名称重复的情况时,该如何处理。分为5个等级,分别针对Object(物体),Light(灯光),Mesh(网格),Material(材质),Texture(贴图)。处理方式则有2种:Rename(重命名)和Use Current(使用当前)。选择重命名后,当遇到重复名称时,将会自动为其添加名称后缀使其名称唯一化。而选择使用当前,则会忽略从文件中导入此项,转而使用Blender文档中已经存在的同名的项目。 +Conflict Options(冲突解决选项)章节指示了当导入器遇到物体名称重复的情况时,该如何处理。分为5个等级,分别针对Object(物体),Light(灯光),Camera(摄像机),Mesh(网格),Material(材质),Texture(贴图)。处理方式则有2种:Rename(重命名)和Use Current(使用当前)。选择重命名后,当遇到重复名称时,将会自动为其添加名称后缀使其名称唯一化。而选择使用当前,则会忽略从文件中导入此项,转而使用Blender文档中已经存在的同名的项目。 !!! info "与Virtools冲突解决的不同" 相比较于在Virtools的冲突解决对话框,BBP插件提供的冲突解决选项不支持替换功能,同时其粒度也不支持精细到单个实例,只能针对一整个类型进行设定。因此你无法单独为每一个冲突的实例设置不同的冲突解决方案。但目前这种设置已经能满足绝大对数的使用场景了。 @@ -35,7 +37,9 @@ Conflict Options(冲突解决选项)章节指示了当导入器遇到物体 ## 导出Virtools文档 -点击`File - Export - Virtools File`可以导出Virtools文档。点击后会弹出文件打开界面,并在侧边栏展示导出设置。首先你需要选择导出的Virtools文档的位置,然后在侧边栏配置导出设置,配置完导出设置后即可点击导出开始导出,并等待Blender下方提示导出完成即可。 +点击`File - Export - Virtools File`可以导出Virtools文档。点击后会弹出文件打开界面,并在侧边栏展示导出设置,如下图所示。首先你需要选择导出的Virtools文档的位置,然后在侧边栏配置导出设置,配置完导出设置后即可点击导出开始导出,并等待Blender下方提示导出完成即可。 + +![](../imgs/export-virtools.png) ### 导出目标 @@ -46,6 +50,11 @@ Export Target(导出目标)章节用于决定你需要将哪写物体导出 * Selected Objects:导出选择的物体。你需要在导出前选择好需要导出的物体。 * All Objects:导出该文档中的所有物体。该选项慎用,因为它是粗暴地遍历文档中的物体列表来进行导出,很可能会导出许多你不需要的物体。 +!!! warning "可导出目标与修改器" + 自BBP 4.4版本开始,BBP不仅支持导出Mesh类型物体,还开始支持导出所有可转换为Mesh类型的物体,包括:Curve(曲线),Surface(表面),Font(字体)和Meta Ball(融球)。此前BBP仅支持Mesh类型物体的导出。通过该功能,用户不再需要将各类物体转换为网格之后再进行地图导出和测试,例如使用曲线放样得到花式钢轨的工作,现在可以直接在曲线状态进行导出,然后在游戏中进行可通关性的测试,测试完毕后再将其固化为网格,并添加相应材质。凭借该功能可大幅加速地图制作和调整速度。 + + 额外的,自BBP 4.4版本开始,导出时也不再需要给物体应用修改器了。BBP在导出时会在一个类似“临时物体”的东西上应用所有修改器后再导出(你可以这么近似理解,实际实现并非如此)。该功能可为之后使用几何节点等修改器赋能Ballance地图快速创作打下坚实基础。 + ### Virtools参数 Virtools Params(Virtools参数)章节与导入Virtools文档中的类似。Encodings(编码)属性决定了导出Virtools文档时所用的编码。 diff --git a/docs/docs/zh-cn/virtools-properties.md b/docs/docs/zh-cn/virtools-properties.md index 7748848..9735382 100644 --- a/docs/docs/zh-cn/virtools-properties.md +++ b/docs/docs/zh-cn/virtools-properties.md @@ -10,7 +10,7 @@ BBP插件为每一个Blender物体添加了新的属性,被称为Virtools Grou BBP还在Blender的其它菜单提供了对Virtools组的访问,具体内容请参阅[按组操作](./group-operations.md)。 -需要注意的是,Virtools组仅对网格物体生效,当你在其它物体上打开Virtools组面板时,你会在面板中看到一条警告消息,提示你Virtools组在该物体上无效。在非网格物体上设置的Virtools组数据尽管会被Blender承认和存储,但不会在导出时保存到Virtools文件中。 +需要注意的是,Virtools组仅对网格物体和可转换为网格的物体生效,具体支持的物体可参考[导入导出Virtools文档](./import-export-virtools.md)页面的导出Virtools文档章节。当你在不支持的物体上打开Virtools组面板时,你会在面板中看到一条警告消息,提示你Virtools组在该物体上无效。在不支持的物体上设置的Virtools组数据尽管会被Blender承认和存储,但不会在导出时保存到Virtools文件中。 ## Virtools材质 @@ -67,3 +67,18 @@ BBP插件为所有Blender灯光添加了新的属性,称为Virtools Light。 ![](../imgs/virtools-light.png) 与Virtools材质类似,Virtools的灯光系统与Blender的灯光系统差距较大,Virtools灯光相当于一个桥梁,它可以准确地反映Virtools的设置,使得其可以完美地存储于Blender文件中,并在导入导出时提供必要的数据。同时该面板并提供一个应用按钮,用以将Virtools灯光设置应用到Blender灯光中。 + +## Virtools摄像机 + +BBP插件为所有Blender摄像机添加了新的属性,称为Virtools Camera。转到`Data`属性面板,即可以找到`Virtools Camera`面板。 + +![](../imgs/virtools-camera.png) + +与Virtools灯光类似,Virtools的摄像机系统与Blender的摄像机系统差距较大,Virtools摄像机相当于一个桥梁,它可以准确地反映Virtools的设置,使得其可以完美地存储于Blender文件中,并在导入导出时提供必要的数据。 + +然而与Virtools灯光不同的是,Virtools摄像机与Blender摄像机系统还有一个巨大的差异。每一个Virtools摄像机均可持有一个不同的分辨率比例,例如4:3,16:9等;而对于Blender摄像机系统,Blender摄像机不持有这些数据,而转而将他们存储在场景的渲染设置中,该位置只能填写唯一的数值。为了解决该问题,该面板提供的应用按钮仅将除了Aspect Ratio以外的属性精准地映射到Blender摄像机之上;而对于Aspect Ratio,单独提供了一个名为Apply Resolution的按钮,用于将其反映到场景的渲染设置中的分辨率数值。当你想要义当前摄像机作为查看时,点击该按钮,应用分辨率后,再进入摄像机视角,就可以看到符合Aspect Ratio的摄像机结果了。 + +!!! tip "应用分辨率时的具体数值" + 在应用分辨率时,我们没有提供具体指定某一边像素个数的功能,我们转而使用全自动的算法来计算出一个合适的分辨率。具体而言是:首先取得Aspect Ratio的最小公倍数,然后找到第一个大于1000,且是其整数倍的数,作为短边的像素数,然后再以比例计算长边。该算法可保证计算出来的分辨率一定是整数。 + + 选取1000是因为1000是一个较为适中的分辨率大小。然而这种随机选定的固定值也决定了其最终分辨率可能并不是用户想要的,用户可酌情根据自身需要,按比率增减分辨率。 diff --git a/docs/docs/zh-cn/zzq-features.md b/docs/docs/zh-cn/zzq-features.md index 92830a9..6bafc0d 100644 --- a/docs/docs/zh-cn/zzq-features.md +++ b/docs/docs/zh-cn/zzq-features.md @@ -34,4 +34,6 @@ 然后是选择摄像机的旋转角度。我们提供了8种游戏内预设角度,分别对应90度和45度的各4种。此外如果这些预设角度不能满足你的需求,你还可以设置自定义角度。 -最后是选择摄像机视角,分为Ordinary(常规视角),Lift(按住空格键的视角)和Easter Egg(彩蛋视角)三种。 +接着是选择摄像机视角,分为Ordinary(常规视角),Lift(按住空格键的视角)和Easter Egg(彩蛋视角)三种。 + +最后是分辨率选项,可以在Normal(正常游戏视角)和Wide Screen(加入宽屏补丁后的视角)之间进行选择。通常来说,选择正常游戏视角即可,无需针对宽屏进行特殊配置。此外如果不勾选分辨率这个选项,则不会修改当前选择摄像机的分辨率,由于Blender与Virtools摄像机的实现差异,也因此不会修改Blender渲染窗口的大小。有关该行为可参考[Virtools属性](./virtools-properties.md)页面的的Virtools摄像机章节。