
你是否曾在玩《我的小马驹》系列游戏时想过:“要是能把我自己的原创小马形象做成小塑料模型放进游戏里一起玩,那肯定会更有趣,感觉就像自己真的置身游戏中一样!” 其实这说起来容易做起来难。不过我已经帮你搞定了。我仅使用各种开源软件(不懂的人可以理解为“免费”软件),为自己和几个朋友制作了定制的小马模型,这样我们就能在《桌面模拟器》中用最棒的工具玩《小马宝莉:小马国物语》了。在遇到几个问题后,我逐一解决了它们,并且随着时间的推移,我简化了流程,现在只需10个简单步骤就能完成。现在我就把这个方法分享给你。 所需工具 《桌面模拟器》(这是必须的) PonyLumen的3D小马创建器[ponylumen.net] Blender[www.blender.org] GIMP(GNU图像处理程序)[www.gimp.org] dupeGuru[dupeguru.voltaicideas.net](可选,但没有的话会变得不必要地繁琐) 7-zip[www.7-zip.org](同样可选,但推荐使用) 步骤0:创建你的小马 首先,你需要设计你的小马。 使用PonyLumen的3D小马创建器来创建你的小马。[ponylumen.net]

你可以按照自己喜欢的方式进行自定义。尽情享受吧。不过需要注意,自定义可爱标记功能暂不支持导出,因此添加该标记并无实际意义。但我们后续可能会添加此功能,所以目前你可以从下拉列表中选择一个临时的可爱标记使用。

完成后,请下载小马存档文件,并将其保存到新文件夹中,以防日后想要添加内容。相信我,你会用得上的。

你需要在一个新文件夹中进行操作,因为我们要处理的文件会很多,你肯定不希望它们和其他大量文件混在一起。现在,完成这一步后,你就可以准备导出了。但首先,你需要考虑你的小马要摆出哪些姿势。

小马创建器内置了三种姿势,这是个不错的起点。点击“默认”(务必点击“默认”,不要想当然地认为它已经处于默认状态,一定要点击),然后返回保存/加载选项卡,点击“下载3D模型(.obj)”。

将其保存到放置小马存档文件的同一文件夹中,并为其命名一个独特的名称,例如“站立小马.zip”。对另外两个姿势执行相同操作,并使用合适的名称保存,例如“坐姿小马”和“蹄击小马”。如果你的小马有翅膀,你还需要保存每个姿势翅膀张开和闭合的版本。

之后,如果你还想添加其他姿势或面部表情,尽管尽情尝试。但需要注意,无法保证它们都能正确导出。不知为何,小马创建器在导出闭眼等特定效果的OBJ文件时表现不佳。不过你可以多做尝试,看看哪些能成功导出,也许你会比我运气好。如果你制作了自定义姿势,记得同时下载对应的小马存档。 完成这一步后,你将得到3到6个(也可能更多)压缩文件,每个文件包含大约24个文件。不过不用担心,我们很快就会整理好这些文件。 步骤0.5:提取并清理导出文件 选中所有压缩文件,右键点击,使用7-zip,点击“解压到当前文件夹”来提取所有文件。

如果使用Windows 11系统,你需要先点击“显示更多选项”。 如果未安装7-zip,你需要右键点击每个文件单独进行解压。 解压完成后,会生成与压缩文件数量相同的文件夹,其中包含大量png和obj文件。这些文件中有许多是重复的。 为了精简文件,运行dupeGuru[dupeguru.voltaicideas.net],将文件夹拖放到程序中即可。

接下来,点击“更多选项”,并确保程序不忽略任何内容。

点击“确定”,然后点击“扫描”。在结果界面,你会看到许多文件。选择优先使用的姿势。以我为例,我选择了“闭合站姿”。

如果内容未以蓝色高亮显示,请选择正确的内容并按下Ctrl+空格。

如果发现没有合适的选项,只需选择最接近的那个即可。

在大多数情况下,所有文件名都是相同的,但并非总是如此。遇到这种情况时,只需选择其中一个作为优先项即可。

完成后,按下Ctrl+A,然后按下Ctrl+D。接着选择直接删除文件,并点击“继续”。

现在你已经精简掉多余部分,是时候进入下一步了。 步骤1:拼接纹理文件 下载的小马模型被打包成多个文件。这是个问题,因为《Tabletop Simulator》每个物体只能接受一个纹理文件。所以我们需要将众多纹理文件合并成一个单独的文件。另一种方法是把小马模型拆分成多个物体制作,但这绝不可行。 打开GIMP[www.gimp.org],然后创建一个新文件。

将文件尺寸设为4096×4096像素,然后点击确定。你可能会收到一条提示文件大小超出限制的消息,只需忽略它并点击确定即可。

该文件已包含一个背景图层,请将其删除。

前往你在上一步选择的优先姿势文件夹。所有的png文件都应在那里。全选这些文件并将它们拖入GIMP的主界面。

这将把所有文件添加为图层。

现在是时候设置网格了,这样能让元素的布局变得更加简单。 点击“视图”->“显示网格”以及“视图”->“吸附到网格”。

然后点击图像 -> 配置网格。

将垂直和水平间距设置为512×512。

接下来,开始将图层重新排列到网格中。许多图层会占据多个位置。有些图层则完全不会填满空间,但你可以随意放置它们。

你可能会忍不住裁剪多余的空间,但请不要这样做。除非你想从每侧精确裁剪一半,使其保持正方形。否则任何其他操作都会让后续步骤变得更加复杂。相反,你最好填充多余的空间。 对于较小的项目,在图层查看器中右键点击它们,然后点击“缩放图层”。

在这种情况下,我们有足够的空间将所有较小的项目放大到1024×1024。所以我们就这么做。你选择多大尺寸无关紧要,但要确保不要缩小任何图层,所以我们选择的只是一个最小尺寸,并且高度和宽度相等且为2的幂。你还需要将插值设置为“无”。

对所有小物件执行此操作,并在网格中重新排列它们。

再次提醒,如果你发现当前内容只占用了可用空间的四分之一,可以通过点击“图像”->“画布大小”来缩小画布。

但要确保每边都精确缩小一半,也就是2048×2048的尺寸。保持所有尺寸为2的幂次方会让后续操作简单很多。保存文件,并将其导出为PNG格式,取一个巧妙的文件名。


纹理已完成。务必保存xcf文件,之后可能会用到。 步骤2:合并网格 下一步是创建一个包含你的小马所有部件的单个文件。 打开Blender[www.blender.org]。你将从一个仅包含一个立方体、一个相机和一盏灯光的新文件开始。

选中右侧框中的全部三个,然后按删除键。接着,你需要开始导入obj文件。操作步骤为:文件 -> 导入 -> Wavefront(.obj)

浏览至您之前解压ZIP文件的位置。您或许可以在左下角的“最近使用”中找到该文件夹。如果找不到,则需要手动查找。

我们将从我们认为的优先姿势开始。这可能会有点乏味。

你需要逐个打开这些文件。Blender 没有批量打开它们的功能,所以这是唯一的方法。 双击第一个文件。然后回到“文件”->“导入”->“Wavefront (.obj)”,由于应该仍在同一个文件夹中,双击第二个文件。继续此操作,直到导入整个文件夹。

接下来,是时候考虑其他姿势了。 你应该已经知道,在删除重复文件时,哪些姿势足够相似,这样你就可以避免重复导入相同的内容。在我们的例子中,我们已经知道闭合站立和开放站立基本相同,只是翅膀有所不同。 返回“文件”->“导入”->“Wavefront(.obj)”,然后浏览到下一个我们已知相似的姿势。

接下来导入那些文件。然后是闭合式“兄弟蹄”姿势,它也很相似,唯一的区别在于右前蹄的位置。

也导入那些文件。你可能会注意到有些文件夹是空的。

这是因为那个姿势已经被其他姿势包含了。我们不需要担心它。这样一来,我们就拥有了导入该姿势所需的所有文件。

不过还有其他姿势。坐姿将与站姿和蹄击姿势毫无相似之处,因为所有部位的位置都不同。 右键点击顶部的“场景集合”,然后创建一个新集合。

选择新合集。

现在是时候进行导入了。重复之前的步骤,但这次是针对坐姿。

现在,所有文件都已导入,你已经完成了可能是最繁琐的部分。 在进行下一部分之前,请保存。 步骤3:重新配置UV映射 UV映射用于将2D纹理匹配到3D对象上。目前,文件中的每个网格(网格基本上就是我们导入的每个3D对象)都映射到了整个纹理。但我们希望每个网格都映射到纹理的特定部分。所以现在是时候修复这个问题了。 点击屏幕顶部的“UV编辑”。

现在你会看到窗口分为3个窗格。在左侧窗格的顶部,点击“打开”。

选择你在步骤1中创建的纹理文件。确保中央面板处于对象模式。

接下来,查看纹理文件,并考虑每个组件的大小。在我们的案例中,除小马身体纹理外,所有纹理的尺寸均相同,每个纹理占整体图像高度和宽度的四分之一。现在我们需要选择所有具有相同纹理尺寸的网格。按住“Ctrl”键可以同时选择多个对象。先点击第一个对象,然后按住Ctrl键,依次点击其他对象。

接下来,在你之前切换到物体模式的位置,切换到编辑模式。

你应该会看到列表中每个网格旁边出现一个特殊图标。

这表示这是我们想要编辑的网格,并且我们希望同时编辑所有这些网格。点击中间面板的空白区域,然后按“A”键全选。

现在,点击最右侧面板并按“A”键全选。

这些是那些网格物体的UV贴图。我们需要调整它们的大小以适配新的纹理文件。在最左侧,点击缩放工具。

你会在屏幕的某个位置看到这个符号。

用它来调整地图大小。调整多少都没关系,因为这只是暂时的,我们这么做只是为了激活工具。在左下角,你会看到一个标有“调整大小”的小方框。

点击它以展开工具。

这里是我们输入所需数字的地方。现在,我们需要新的高度和宽度为整体图像高度和宽度的四分之一,而四分之一就是0.25。所以,在X和Z框中输入0.25,在Y框中输入-0.25,以翻转地图。

由于某些原因,3D小马编辑器中提供的纹理的UV贴图是垂直翻转的。本操作旨在修正此问题。或者,你也可以直接垂直翻转纹理,但就个人而言,我更喜欢这种方法,因为它能保持眼睛纹理的正确朝向。现在它们的尺寸都正确了,但位置完全不对。

目前,我们先不管它,专注于调整其余组件的大小。在我们的案例中,就是小马的主体部分,它占据了一半的高度和一半的宽度。调整过程完全相同,只是我们要将其高度和宽度缩小到0.5倍。

根据你制作纹理的复杂程度,可能还需要进行更多操作。你可能会发现自己的纹理中存在三到四种不同尺寸的组件。例如:在这个案例中,最小的纹理仅放大到256像素,每个占高度和宽度的八分之一。然后是占四分之一的主体纹理,其余部分则占二分之一。

不过调整大小的操作已经完成了。接下来,我们需要移动地图。 为了简化操作,我们不用在对象模式和编辑模式之间切换。保持在编辑模式,然后在右侧的列表中,点击列表中第一个网格物体旁边的圆点。

然后,按住Ctrl键,点击其他所有同名网格体。

选中中间窗格中的所有内容,然后选中左侧窗格中的所有内容。

选择最左侧的移动工具。

按住Ctrl键,同时拖动网格至纹理中其所需放置的大致位置。

它不会完美对齐,但目前还不需要。使用鼠标滚轮放大。

然后,再次按住Ctrl键,尽量使其与纹理文件对齐。你也可以按住Shift键进行更精细的移动。

如果需要,请继续放大。你可能会忍不住想放弃使用Ctrl键,直接移动而不进行吸附。对于少数情况来说这或许没问题,但如果你要对齐眼睛纹理等特定内容,这可能会导致错位,所以除非你确实有必要,否则我不建议这么做。 对所有纹理组件重复此操作。 你很可能会忘记哪个纹理组件对应哪个网格。记住,你仍然可以打开我们在GIMP中制作的xcf文件,该文件的所有图层仍会以其原始文件命名。

当然,如果你还记得的话,我们在清理重复文件时,有些网格文件关联到了完全相同的纹理文件,这些我们已经过滤掉了。这种情况下,最好同时处理它们。在我们的案例中,这些文件就是左眼和右眼,以及左翼和右翼。

当所有地图都归位后,就该进入流程的下一阶段了,接下来的事情会简单很多。

继续前请务必保存。 步骤4:缩小至合适尺寸 由于《桌面模拟器》的运行机制,如果我们直接将当前内容导入游戏,模型会占据整个桌面的空间。即便我们将其缩放到最小,尺寸依然会非常庞大。我们需要对此进行调整,使其大小更合理一些。 返回布局界面,并确保我们处于对象模式。

点击主工作区中间的空白区域,然后按“A”键全选。

接下来,点击缩放工具。

就像上次调整尺寸时那样,我们要输入数值。稍微调整一下尺寸,让这个方框打开。

在三个输入框中均输入0.03125(顺便说一下,这等于1/32)。或者直接复制粘贴这个数字,这样可能更好。

你会发现整个东西都消失了。

好吧,显然没成功。使用鼠标滚轮滚动到网格中心。

现在,你已经完成了。这个模型现在的大小适合导入《Tabletop Simulator》(TTS)。 继续操作前请保存。 步骤5:降低以对齐 为了创建一个稳定的模型,它需要一个稳定的底座。这主要在碰撞层中进行,但我们需要在这里打下基础。幸运的是,这非常简单。 我们将一次处理一个姿势。 在右侧的列表中,每个集合旁边都有一个复选框。

确保只选中第一个。接下来,你会在主工作区的右上角看到一个类似罗盘玫瑰的图标。

点击带有大X的红色圆圈。这会让所有东西都有点像2D效果。

点击空白区域,按“A”键全选。然后选择移动工具。

放大底部的马蹄。按住 Ctrl + Shift 的同时,将图形略微向下拖动,使马蹄底部略低于 X-Y 平面。

基本上,这会为模型创建一个稳定的站立底座。没有它,模型可能会晃动。切换到另一个集合,然后重复操作。但在摆出这个姿势时,你可能还需要从不同角度观察它。

基本上,你需要让每个蹄子的一部分位于线条下方。默认的坐姿有点别扭,所以你可能会想稍微旋转一下,不过我个人觉得没必要,这完全取决于个人喜好。

当两个姿势都降至稳定位置后,操作即完成。保存并进入下一步。 步骤5.5:最终调整与配饰 此时,你可能需要进行一些最后的调整。以我为例,我习惯将眼镜的镜片移除,主要是因为导出时镜片看起来会像实心的。

左侧镜头可能有点问题,但只需点击中心位置,按下“删除”键,再点击“顶点”就能轻松移除。这个操作需要重复几次。

还可以进行其他添加,比如在头发上添加一根羽毛。如果你想这样做,可以在SketchFab上找到模型,将其导入Blender,然后旋转并移动到合适位置。

有时这些模型可能会有些问题,因此最好确保已正确进行三角化处理。切换到编辑模式,然后点击“面”->“三角化面”。

接下来,需要回到纹理文件并将新对象添加到文件中。在这种情况下,这只是一个简单的渐变,我通过先复制其他图层中的一个,将其移动到适当位置,然后用新纹理覆盖它来制作。

导出纹理,用新纹理覆盖旧纹理。然后回到Blender中,你需要调整UV映射。按照之前的方法操作即可,只是这次无需垂直翻转。

当然,这只是针对一个姿势。既然你已经完成了一个姿势的制作,那就使用复制粘贴功能复制网格,这样我们就能将其移动到另一个姿势的位置上。

好了,完成了。保存并进入下一步。 步骤6:导出主要网格 现在可见部分已处理完毕,是时候导出了。 保持在对象模式下,点击右侧列表中的眼睛图标,确保只有你实际想要用于姿势的部分是可见的。

点击主工作区的空白处,然后按“A”键全选。点击文件->导出->Wavefront(.obj)

使用能识别小马和姿势的名称,并确保勾选“仅选择项”,取消勾选“材质导出”。

导出它,然后对剩余的姿势重复此过程。最后,每个姿势都会生成一个OBJ文件。

保存Blender文件,然后点击“另存为”创建副本,并为其命名一个略有不同的名称。

接下来,我们将处理碰撞层。 步骤7:减少多边形数量 现在是创建碰撞层的时候了。 理论上,我们可以直接使用上一步创建的主网格,但如果这样做,游戏可能会开始卡顿,尤其是在低配置电脑上。 不过幸运的是,有一个简单的解决方法,那就是减少多边形数量。因为目前模型有超过10000个多边形需要物理引擎处理。减少多边形数量将显著提高帧率。 Blender有一个工具可以轻松实现这一点,即简化工具。 选择列表中的第一个网格,然后点击下方面板中的扳手图标,接着点击“添加修改器”。

在这里,你会看到多个工具。选择“简化(Decimate)”。

将比例设为0.1。

至少对于这个网格,你已经完成了。Blender没有办法批量为多个网格设置此工具,所以必须逐个进行操作。不过,有些网格完全可以跳过。舌头和牙齿都位于小马的嘴部内部,因此不需要成为碰撞层的一部分。

所以你可以删除那些。 之后你可能会注意到一些网格看起来相当破旧,比如翅膀或头发。

这不是可见图层,所以其实不算问题。但如果觉得困扰,你可以选择0.2或0.3的比例,没问题。尽量保持较低数值就好。

应用“简化”工具后,你应该会在列表中的每个网格旁边看到一个蓝色扳手图标。

而且所有的网格看起来都会非常低多边形。

完成此操作后,保存并进入下一步。 步骤7.5:添加支撑网格 下一步的目的非常明确,即确保物体不会倾倒。

具体来说,“蹄击”姿势要求模型仅用三只蹄站立。因此,模型会处于不平衡状态。我们可以通过为模型添加一些不可见的支撑来解决这个问题。你可以用任何方式来实现,但我更倾向于使用简单的圆柱体网格。在物体模式下,点击“添加”->“网格”->“圆柱体”。

一个圆柱体将立即生成。

这对我们来说有点太大了。在左下角,你会看到用于编辑圆柱体的控制选项。

具体位置由你决定,但我喜欢将其放在小马的腿如果没有向前伸时本该在的位置,同时将顶点数减少到16个。

重要的是确保底部部分穿过 X-Y 平面。

确保气缸放置在正确的收集位置。

好了,我们完成了。是时候保存一下,然后进入下一步了。 步骤8:创建平整底部 这一步非常简单。我们需要切除所有在XY平面下方的部分。这就是为什么我们在之前的步骤中要将所有东西都与XY平面对齐。 但唯一的问题是,我们在步骤7中使用的简化工具(Decimate)可能会对此造成干扰。 因此,在所有网格都设置为可见的情况下,选择所有与XY平面交叉的网格。

在右侧,你会看到哪些网格发生了交叉,其中包括小马网格以及坐姿中的尾巴网格。还有圆柱体,但我们不需要担心那个。

点击它们中的每一个,你会看到“简化工具”的控制选项。你需要应用该工具,以防止它干扰我们即将进行的操作。点击“简化”旁边的向下箭头,然后点击“应用”。

对我们刚才查看的每个网格都执行此操作。完成后,你应该会看到它们旁边都没有蓝色扳手图标了。

点击主工作区的空白处,按“A”键全选,然后切换到编辑模式。

再次点击空白区域,然后按“A”键重新全选。

在左侧工具栏中,找到“刀工具”。你可能需要向下滚动才能找到它。点击并按住该工具,然后选择“分割”。

在屏幕上绘制以激活工具,并打开控制窗口。

你需要使用的设置很简单。平面点应设为(0,0,0),平面法线应设为(0,0,-1)。你还需要勾选“填充”和“清除外部”,但不要勾选“清除内部”。

再次点击空白区域。最终结果是X-Y平面下方的所有内容都将被移除,为模型提供一个良好、平整且稳定的放置底座。

是时候保存并进入下一步了。 步骤9:导出碰撞层 现在,再次进行导出操作。导出步骤与导出主网格体时完全相同,导出的文件数量也一样。唯一的区别是确保同时包含辅助网格体,并在文件名中注明这是碰撞层。

这样,我们就拥有了所需的全部OBJ文件。每个姿势对应两个文件。

现在,是时候保存了,完成后关闭Blender。 步骤10:在《桌面模拟器》中创建模型 现在所有文件都已创建完毕,是时候将它们导入《桌面模拟器》了。 打开《桌面模拟器》,创建一个新的单人游戏。

关闭启动的游戏界面,然后点击“对象...”

...çťäťś...

自定义

...模型。

点击游戏区域,然后右键点击开始进行设置。

使用每个项目旁边的文件夹图标浏览至相应文件。目前,只需选择一个姿势进行导入。 模型/网格是我们在步骤6中导出的主要网格。 漫反射/图像是我们在步骤1中创建的纹理文件。 法线/凹凸应留空。 碰撞体是我们在步骤9中创建的碰撞层。 你可能会收到建议上传至云端的提示。如果你计划将这些文件上传至非Steam云的其他服务,现在就应上传这些文件,并使用这些文件的URL。 但如果你想使用Steam云,建议现在只需点击“本地”。

将类型设置为手办。

接下来点击“材质”,将“高光强度”设置为0.05。这样可以避免模型过于光亮。最后,点击“导入”。

这样,模型就完成了。

在继续之前,你可能想给它起个名字。显然,你会想用给这个角色起的名字来命名它。右键点击它,然后在菜单底部输入名字。

但现在,我们也需要为其他姿势创建模型,为了节省时间,我们只需复制现有的模型。右键点击模型,然后选择“克隆”。

然后为每个姿势创建一个额外的模型。

暂时将左侧保持原状。右键点击下一个,然后点击“自定义”。

返回“模型”选项卡,将“模型/网格”和“碰撞体”的文件更改为下一个姿势,然后点击“导入”。

会弹出一个提示框,告知你可以一次性更新所有模型。但我们明确不希望这样做,所以请点击“取消”。

对所有模型重复此操作。

接下来,进行最终检查。假设一切正常,就该上传到Steam云了。点击“模组”,“云管理器”。

在窗口顶部,你会看到一个向上的箭头。点击它即可将所有文件上传至Steam云。

创建一个新文件夹来上传所有内容。然后点击“上传”。

上传按钮周围会出现一个旋转的加载图标。

完成后,你会看到新文件夹。

它将包含我们刚刚创建的所有文件。

所有模型都将使用新的文件名。

不过拥有三到五个不同的模型并不是很有用,所以现在是时候将它们合并了。 同时选中所有模型,然后右键点击第一个模型并选择“创建状态”。

它们现在将全部合并为一个模型。

每个姿势对应一个状态。

它们将按照游戏内对象最初创建的顺序进行编号。请注意,你必须一次性完成所有操作,之后无法再添加更多内容,除非覆盖除一个姿势外的所有姿势。添加更多姿势的唯一方法是为每个姿势复制此模型,将它们分别设置为不同的姿势,然后选择所有模型(包括你要添加的任何额外姿势),再次点击“创建状态”。右键点击并选择“保存对象”。

然后点击保存。

这样就完成了。你可以通过点击“物体”,然后点击“已保存物体”,将该模型导入到任何你想要的游戏中。

你可能需要让房主提升你的权限才能执行此操作,如果你已经是房主,那就更好了。

冲啊!!!
2026-02-13 09:03:34 发布在
Tabletop Simulator
说点好听的...
收藏
0
0
