使用开源工具玩虚拟乐高

开源虚拟乐高让您能够构建任何您能想象的东西。
111 位读者喜欢这篇文章。
Open Lego CAD
图片来源:CC BY-SA 4.0 Klaatu Einzelgänger

我的童年大约由 20% 的《龙与地下城》(D&D) 和 80% 的乐高组成,两者之间有很强的交叉。出于各种原因,我不被允许真正玩 D&D,但通过一些堪比 15 级盗贼的精神杂技,我确定构建 AD&D 角色不算作玩游戏,并且以乐高形式重现龙枪编年史是对游戏的一个很好的近似。

因此,我最喜欢的乐高系列之一是城堡,我花费了无数个小时为我的迷你人偶设计类似挑战迷宫的地牢。为了跟踪我的创作,并且因为我看到朋友们在学校绘制地牢地图,我在方格纸上绘制了我的乐高创作。我还试图跟踪我的创作是如何构建的,使用方格纸似乎是主要基于矩形积木的媒介的逻辑选择,但是对等距插图缺乏理解最终让我感到困惑。

现在我长大了,我对乐高的热爱并没有减少,虽然我对自己的任何创作(或互联网积木建造者行话中的“MOC”)并不自豪,但我最近觉得我有责任学习如何记录我构建的东西。因为我的手绘插图技巧一直不是很好,所以我决定使用技术来解决这个问题。

简易乐高

开始使用虚拟乐高积木的最简单快捷的方法是下载一个包含积木和构建应用程序的一体化软件包。

无论您使用的是 Linux、Windows 还是 macOS,您都可以通过 LeoCAD 获得所需的一切。使用 LeoCAD,您可以构建有趣的模型,拍摄您的作品快照,甚至将您的作品分解为步骤以创建您自己的说明手册。

leoCAD

(Seth Kenlon, CC BY-SA)

它易于使用:选择一种颜色,然后将积木拖到构建空间中。积木“吸附”在一起以帮助您找到正确的位置,并且每个积木在您单击它时都有手柄,以便您可以移动它们。完成后,您可以渲染模型图像。

没有比这更简单的了。下载一个出色的 开源 应用程序,即可享受无尽的时间(几天?几年?)的乐趣。

但是,如果您对这一切如何运作、积木如何定义以及模型如何渲染感兴趣,请继续阅读!

乐高 CAD

我有几年的虚拟 3D 空间工作经验(在实际 3D 空间中的时间更长,如果这有意义的话)。我对 3D 应用程序感到很自在,但我用过的所有应用程序都特定于运动图形和电影制作。它们就像电影本身一样,通常只是为了展示。如何构建东西不如东西看起来是否好看重要。如果您必须“作弊”物理上可能的事情以确保某些东西看起来很酷,那也没关系,因为您正在构建的东西只存在于虚拟空间中。

计算机辅助设计 (CAD) 是不同的。CAD 软件取代了旧式的制图,在旧式制图中,创建规范是为了演示如何在现实世界中构建一次或 100 次某物。人们期望精确和真实。

因为乐高迷很多,所以有一个多产的建造者社区在使用 CAD 创建乐高模型。优点是显而易见的——您可以记录您需要的零件以及构建模型必须采取的步骤。除非您比乐高更喜欢 CAD,否则这不能替代真正的乐高积木,但它是您爱好的绝佳补充。

要构建虚拟乐高模型,您需要两个组件

  • 虚拟乐高积木
  • CAD 应用程序

有几种方法可以满足每个要求,但我发现我更喜欢开源的模块化方法。

虚拟乐高积木

您可以从开源 LDraw 项目中获得几乎所有曾经创造过的乐高零件。LDraw 是 乐高 CAD 的开放标准,其中包括一致的测量和相对尺寸,以及积木如何定向的简单语言。作为 LDraw 定义积木工作的一部分,社区还提供了每个积木的 3D 模型。这意味着您可以 下载数千个积木定义,下载量相对较小(大约 42 MB)。

安装您的积木

虚拟积木很像网站上的图像或计算机上的字体——只要使用这些文件的应用程序知道在哪里可以找到它们,您就可以将它们放在任何地方。在 Linux 上,通常将积木放在 /usr/share/LDRAW 中。在 Windows 上,它们通常安装到 C:\Users\Public\Documents\LDraw

LDraw 下载仅提供每个积木的规范。以下是一个 1x1 积木的原始形式

0 ~Brick  1 x  1 without Front Face
0 Name: s\3005s01.dat
0 Author: John Riley [jriley]
0 !LDRAW_ORG Subpart UPDATE 2004-01
0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt

0 BFC CERTIFY CCW

0 BFC INVERTNEXT
1 16 0 24 0 0 0 6 0 -20 0 -6 0 0 box5.dat
4 16 10 24 -10 6 24 -6 6 24 6 10 24 10
4 16 10 24 10 6 24 6 -6 24 6 -10 24 10
4 16 -10 24 10 -6 24 6 -6 24 -6 -10 24 -10
4 16 -10 24 -10 -6 24 -6 6 24 -6 10 24 -10
1 16 0 24 0 10 0 0 0 -24 0 0 0 10 box4t.dat
1 16 0 0 0 0 0 1 0 1 0 -1 0 0 stud.dat
0

为了以更熟悉的形式查看您的作品,您需要一个积木查看器。

用于乐高渲染的 LDView

应用程序 LDView 是一个 3D 渲染器,很像 POVray 或 Blender 的 Cycles。它专门用于渲染 .ldr 文件,这些文件是使用 LDraw 零件定义的 CAD 文件。

如果您使用的是 Linux,那么 LDView 可能在您的软件存储库中可用,如果不可用,您可以从项目网站下载安装程序。如果您使用的是 Mac 或 Windows,请从项目网站下载安装程序。

查看单个积木

开始使用乐高 CAD 的最简单方法是尝试查看单个积木。

首先,打开您最喜欢的文本编辑器。它可以是任何文本编辑器,但它必须能够以纯文本格式保存。有些文本编辑器对于它们自身来说太有帮助了,并且试图以臃肿的文件格式(如 .rtf 或 .docx)保存您的文本。有很多 优秀的跨平台文本编辑器。为此,我推荐相对简约的 Geany 编辑器。

创建一个名为 1brick.ldr 的新文件,并将以下文本输入其中

0 Name: 1brick.ldr
0 Author: Seth Kenlon

0 clr  x y z  a b c  d e f   g h i <file>
1   1  0 0 0  0 0 1  0 1 0  -1 0 0 3001.dat

查看您简陋的作品

$ LDView 1brick.ldr

one blue brick

您刚刚创建了一个简单的 CAD 文件,定义了一个单独的积木(零件号 3001),颜色索引为 1(蓝色),位于 X 轴上的坐标 0、Y 轴上的坐标 0 和 Z 轴上的坐标 0。积木的旋转由矩阵变换控制,这当然不是完全微不足道的数学。但是,任意旋转在乐高中相对罕见,因为大多数积木必须根据凸粒网格相互配合。

任何以 0 开头的行都表示注释或元数据。以 1 开头的行表示添加积木。

您可以通过添加到您的 CAD 文件中来练习在空间中重新定位和旋转积木。一个普通的积木高 24 个 LDraw 单位 (LDU)。因此,您可以通过将 Y 轴位置调整 24 个单位来“堆叠”积木。您可以通过执行矩阵变换来旋转积木。

试试这个

0 Name: 1brick.ldr
0 Author: Seth Kenlon

0 clr  x y z  a b c  d e f   g h i  file
1   1  0 0 0  0 0 1  0 1 0  -1 0 0  3001.dat
1   2 0 24 0 -1 0 0  0 1 0   0 0 -1 3001.dat

在 LDView 中查看它,并尝试在窗口中单击并拖动以从不同的角度查看它。请注意,我已将第二个积木的颜色从 1(蓝色)更改为 2(绿色)。

one blue and one green brick

当然,您可以沿任何轴移动积木。LDraw 规范规定 1x1 积木的宽度为 20 LDU,长度为 20 LDU,因此您可以沿 X 轴调整您的 2 积木设计,增量为 20。

0 Name: 1brick.ldr
0 Author: Seth Kenlon

0 clr  x y z  a b c  d e f   g h i  file
1   1  0 0 0  0 0 1  0 1 0  -1 0 0  3001.dat
1   2 0 24 0 -1 0 0  0 1 0   0 0 -1 3001.dat

blue and green bricks linked

积木序列

LDraw 最常见的用途是演示如何构建模型。这意味着一系列步骤,LDraw 使用 STEP 元命令表示这些步骤。

要在您的说明中引入步骤,请添加此行

0 STEP

在您简单的 2 积木示例文件中,您可以在两个积木之间添加一个步骤

0 Name: 1brick.ldr
0 Author: Seth Kenlon

0 clr  x y z  a b c  d e f   g h i  file
1   1  0 0 0  0 0 1  0 1 0  -1 0 0  3001.dat

0 STEP

1   2 0 24 0 -1 0 0  0 1 0   0 0 -1 3001.dat

您的设计现在包含两个步骤;第一个步骤显示一个积木,第二个步骤显示一个额外的积木。您可以通过单击顶部工具栏中“步骤”标签旁边的箭头在 LDView 中逐步浏览您的说明。

Steps menu in terminal

您不必在每个积木上都创建一个新步骤。与官方乐高套装的说明一样,您可以将几个额外的积木组合到一个步骤中,只要它们的放置足够明显即可。

LDraw 中还有其他命令类型,例如绘制线条以澄清积木放置位置的能力等等。这些都在规范中有所记录。

查找积木零件号

我过去常常将我的乐高收藏品放在渔具箱中,这样我可以快速找到任何套装中的任何零件。然而,随着我的收藏不断增长,我对容器的需求也随之增加,我在查找积木的效率方面有所下降。

拥有超过 11,000 个独特的零件,查找数字乐高积木同样麻烦。每个官方乐高积木都有一个零件号。例如,示例 CAD 文件中使用的 2x4 积木是 3001。如果您知道零件号,则可以在 CAD 文件中使用它,并且积木就会出现。

LDraw 发行版包括 parts.lst 文件,您可以 grep 搜索特定的积木。但是,语法并不总是统一的,并且关键字(积木是“弯曲的”还是“倾斜的”还是“成角度的”?)有时很难预测。

但是,有一些在线资源可能很有用

  • Lugnet 是一个在线乐高用户组,其零件参考数据库是从 LDraw 构建的。
  • BrickLink 是一个有用的积木目录。
  • Rebrickable 也提供在线积木目录。

其他渲染器

一旦您创建了您的杰作,LDView 就可以导出您的模型,以便您可以获得它的高质量渲染图。POVray 是一个流行的开源照片级真实感渲染器,因此您可以获得非常漂亮的您的作品图像。您可以在您的 Linux 发行版的存储库中找到 POVray,或者从 POVray 网站下载它。

$ povray +I1brick.pov +Q11 +W4196 +H2160 +O1brick-high.png

POVray blue and green brick render

对于专用于教学布局的渲染器,请尝试开源 LPub3D 项目,该项目显示带有说明的说明,并为每个步骤提供积木列表。

LPub 3d blue and green brick render

探索乐高

用乐高积木搭建很有趣,制作您自己的模型是它激发创造力的重要组成部分。但是,您自己的模型设计不必再是短暂的了。您可以通过创建自己的说明手册来保存它们。

此外,玩数字乐高积木可以让您使用任何可用的零件创建虚拟乐高模型和场景,无论您是否已经拥有该零件。您可以使用数字乐高积木制作您自己的动画、您自己的复杂套装照片,甚至设计您自己的积木。有几个在线社区,其中许多社区(如 BrickHub.org)发布精美的渲染图,并附带 LDraw 文件。

无论您喜欢以数字方式构建模型、设计您自己的积木,还是做一些完全独特的事情,数字乐高场景都是一个有趣且富有创造力的地方。立即开始吧!


本文最初于 2020 年 6 月发布,并已由作者更新了最新信息。

接下来阅读
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,有时同时从事这两个行业。

6 条评论

太棒了!!!(尤其是考虑到乐高现在的价格 哈哈哈)我将尝试在我的树莓派上做这个!=)

很有趣,但是乐高的复数形式是 Lego,末尾没有 s。乐高集团对此非常讲究。

郑重声明,我撰写这篇文章时使用的是 “Lego” 而不是 “Legos”,但它在文案编辑中被更改了。关于谁是正确的似乎存在一场激烈的辩论:乐高集团还是大众。我不是语言学家或人类学家,所以我将置身事外。

回复 ,作者 drajt

别忘了 ldraw (ldraw.org)

来自他们的网站

LDraw™ 是 LEGO CAD 程序的开放标准,允许用户创建虚拟乐高模型和场景。您可以使用它来记录您实际构建的模型,创建像乐高一样的构建说明,渲染虚拟模型的 3D 照片级真实图像,甚至制作动画。可能性是无限的。与真实乐高积木受零件和颜色数量的限制不同,在 LDraw 中,一切皆有可能。

没错!这正是本文的主题:LDraw 和 LDView,并简要提到了用于渲染的 LPub3D 和 Povray。本文将引导您完成下载 LDraw 资源、使用这些资源编写 CAD 文件,然后渲染结果的步骤。

回复 ,作者 Tom Tucker

谢谢!

Creative Commons 许可本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.