如何使用 Viktor Ferenczi 的 Godot Voxel 插件?

问题描述 投票:0回答:1

这是插件

这似乎是唯一可以使我的项目长期运行的体素插件,但我不明白如何使用它。

据我了解,我必须在存储库中使用这个 python 工具将 MagicaVoxel 模型转换为插件可用的一些 .png。 它有以下评论:

使用方法:

  • 将 Vox 导出为切片格式,然后将 PNG 文件重命名为 *Slice.png

  • 将 Vox 导出为 obj 格式,然后将生成的 PNG 文件重命名为 *Palette.png

  • 运行此脚本(通过不带参数运行来查看用法)

因此,通过 MagicaVoxel 导出为这些格式,我可以获得这两个文件。问题是...

这是该 python 工具的示例用法:

Example: {sys.argv[0]} Vox/Slice.png Vox/Palette.png Texture/Voxel.png Texture/Model.png 64 80 48

它还需要 Voxel.png 和 Model.png 文件。我怎样才能得到这些?

不仅如此,我还尝试将占位符图像输入到工具中,以便满足所有参数,并且我之前导出的 Slice.png 文件在第二个断言语句中失败了:

slices: np.ndarray = cv2.imread(slices_path, cv2.IMREAD_UNCHANGED)
assert slices is not None, f"Failed to load slices: {slices_path}"
assert slices.shape == (height * depth, width, 4)

我相信这意味着我的 Slice.png 不能被 16 整除?因为我认为该工具要求您的模型的尺寸可以被 16 整除。但是我的模型的尺寸可以被 16 整除。

python godot voxel godot4
1个回答
0
投票

从阅读代码来看...忽略注释和输出,它们都是错误的。

命令行参数在此处读取:

slices_path, palette_path, voxels_path, model_path, width, height, depth = sys.argv[1:]

我将用它作为参考来解释参数是什么:

  • slices_path
    :输入切片图像的路径(例如Slice.png)。
  • palette_path
    :输入调色板图像的路径(例如Palette.png)。
  • voxels_path
    :输出体素图像的保存路径(例如Voxel.png)。
  • model_path
    :输出模型图像的保存路径(例如Model.png)。
  • width
    :体素数据的宽度。
  • height
    :体素数据的高度。
  • depth
    :体素数据的深度。

我将继续更详细地解释它们:

slices_path
的大小必须为
height * depth
width
,并且具有4个通道(RGBA)。这是用这个断言检查的:

    assert slices.shape == (height * depth, width, 4)

同时

palette_path
必须是由
1
组成的
256
像素带,并且具有 3 个通道 (RGB):

    assert palette.shape == (1, 256, 3)

重申

voxels_path
model_path
是输出。如果一切顺利,程序应该创建这些文件。

最后

width
height
depth
必须是 16 的倍数。用以下几行检查:

    assert width % 16 == 0
    assert height % 16 == 0
    assert depth % 16 == 0

因此,典型的用法应该如下所示:

vox_to_images.py Slices.png Palette.png Voxels.png Model.png 64 80 48
© www.soinside.com 2019 - 2024. All rights reserved.