本文正在参加「金石计划 . 瓜分6万现金大奖」
前言
今天,我们将创建一个带图像纹理的立方体动画,一开始看起来无序,当所有的立方体掉落和分散在地面上时成为有序。当然,这在现实中是很难实现的,因为事物不会自发地变得比之前更有序,所以我们将从结尾开始,然后 反向 进行。
工欲善其事必先利其器,我将使用 Blender 的 3.0 版本 并将使用来自 Pixabay 的 OpenClipart-Vectors 图像:
但你可以用任何喜欢的图片。
下面是这些立方体落地前的样子:
在它撞击地面 之前 不久,你只能看到大立方体的一部分,因为它将从屏幕顶部附近开始,并在一段时间后才进入视野。你可以看到图像的碎片 随机地 (或者看起来是这样)附着在立方体的表面上。
以下是动画完成后的它们样子。
你可以在这里看到动画:
让我们开始吧。以下是你需要遵循的 11 个步骤 :
步骤1 - 为默认立方体添加物理属性
这次我们将使用默认的立方体。实际上,我们将使用 Array 修改器 创建许多立方体,但在此之前,让我们向原始的立方体添加 物理,以便我们在之后所有创建的立方体上拥有它。转到 Physics 选项卡(A),并选择 Rigid Body(B)。我们希望立方体与其他对象交互。将 Shape 设置为 Box (C),在 Surface Response 下拖动 Friction 一直到 1 (D)。
步骤 2 - 创建更多立方体
现在转到 Modifier 选项卡,添加一个 Array 修改器。我们将总共创建8000 个立方体。首先,为了创建一个包含 20 个立方体的行,将 Count 设置为 20 (A),为了在它们之间添加一些空间,将 Factor X 设置为 1.1 (B)。
接下来,将鼠标光标悬停在修改器面板上,并按 Shift + D 复制 Array 修改器。你可以点击第一个修改器的箭头将其折叠(A)。在第二个修改器中保留 Count 为 20 ,但将 Factor X 改为 0 ,并将 Factor Y 设置为 1.1 (B)。现在我们有 20 行,每行有 20 个立方体。
再次复制 Array 修改器,保留 Count 为 20 ,将 Factor Y 设置为0,将 Factor Z 设置为 1.1 。这将创建 20 层,每层有 400 个立方体,总共 8000 个立方体。
现在我们可以 应用 上述的修改器了。点击它们中的向下箭头(A)并选择 Apply (B)。
现在它看起来有 8000 个立方体,但如果你看 Outline,只有一个立方体对象。所以我们需要把小立方体分开。进入 编辑 模式,点击 P 并选择 By Loose Parts 。我们之前在立方体之间添加了一些偏移,所以它们是松散的部分。
现在您应该可以在 Outliner 中看到所有的新立方体。
回到 物体 模式。原点 现在都在 同一个位置 ,和第一个立方体(A) 的位置相同,我们来改变它。在 Object 菜单中选择 Set Origin,并选择 Origin to Geometry(B)。
现在你会看到各个分离的立方体的原点在它们应该在的地方。
旋转立方体,使大立方体的一个角指向下方,沿着 Y 轴旋转立方体(R + Y),直到最底部的立方体接近世界中心,然后沿着 X 轴移动立方体( G + X),直到接近这个视图的中心,点击 G+Z 50,将立方体向上移动 50 个单位。
步骤 3 - 创建地面
我们需要立方体掉下来会撞向的东西。我们来画一个平面。按 Shift + A,在 Mesh 下选择 Plane。按 S 120 来缩放它。
我们希望平面与立方体碰撞,所以去 Physics 选项卡并选择 Rigid Body (A)。设置 Type 为 Passive (B),因为它不会撞向其他物体,而是一个被撞到的物体。
步骤 4 - 测试动画
让我们测试一下动画,看看是否一切正常。要做到这一点,点击播放动画按钮。你会看到箱子掉下来,散落在地上。不过,这可能需要一些时间。
如果一些立方体会从平面的边缘脱落,我们可以把平面放大,但让它保持原样。我们仍然会有足够的立方体。
这是动画的最后一帧(默认是 250 帧)。
步骤 5 - 烘焙动画
正如我刚才提到的,现在有 250 帧。但这意味着,一旦动画播放完毕,我们将没有太多时间观看结果。我们设为 500 帧。所以,转到 Scene 选项卡(A),在 Rigid Body World 下的 Cache 下,设置 Simulation Start 为第 1 帧,模拟 End 帧为第 500 帧(B)。在时间轴中设置结束帧为 500 帧,以匹配(C)。然后保存文件并点击 Bake 按钮(D)来烘焙模拟。这需要一些时间。
步骤 6 - 设置摄像头
让我们选择相机并对齐到视图。要做到这一点,转到 View 菜单,在 Align View 下选择 Align Active Camera to View。
现在你应该看到相机能看到的东西,但也很可能你什么也看不到。这是因为 默认情况 下相机只能看到一定距离,比如 100 个单位。为了解决这个问题,转到 Object Data 选项卡(A),并设置 Clip End 为 1000 (B)。现在相机可以看到多达 1000 个单位,这对我们的目的是足够的。
看最后一帧。现在相机应该看到以下内容:
现在将 Focal Length (焦距)更改为 70 。
接下来,点击 N 打开侧边栏。转到 View 选项卡(A),选中 Lock Camera to View 。然后,在视口中点击 R + X 并旋转相机,直到它再也看不到地面以外的任何东西。我们现在应该得到我们想要的。这就是摄像机将要看到的。
取消勾选 Uncheck Lock Camera to View ,并按 N 隐藏侧边栏。
步骤 7 - UV 展开
我们现在暂时不需要地面。让我们把它藏起来。要做到这一点,选择地面并点击 H 或点击 Outliner 中的 眼睛 图标。
在我们继续之前,让我们稍微清理一下层次结构。为此,我们将为所有立方体创建一个新的集合。右键单击 Outliner 中的 Scene Collection 并选择 New Collection。将集合重命名为 “cubes”。然后选择第一个立方体,向下滚动到最后一个立方体,按住 Shift 并选择最后一个立方体。这将选择所有的立方体。然后将它们拖到 cubes 集合中。此时,立方体们仍应被选中,但如果取消选中,只需右键单击 cubes 集合并单击 Select Objects。
现在,我们可以打开 展开 UV 了。确保你在第 500 帧(A),也就是最后一个。然后在左边打开一个新窗口,设置它的编辑器类型为 UV editor (B)。进入 编辑 模式(C)。
选择所有并确保你在相机视图中。现在转到 UV 菜单,从视图中选择 Project from View(Blender 3.2 经测试,需要提前全选面 [A],再 UV -> Unwrap,)。
这是你应该在 UV 编辑器 中看到的:
步骤 8 - 添加图像
转到 Material 选项卡,设置 Base Color 为 Image Texture ,并单击 打开 按钮。选择要显示在立方体上的图像打开它(A)。它应该会自动在 UV 编辑器 中打开,但如果没有,只需从下拉列表中选择它即可(B)。
在 3D 视口中切换到 渲染着色(A),并暂时关闭 显示叠加 按钮(B)。现在你可以看到图像(C)。
你现在可以切换回 Show Overlays 按钮。我们可以在 UV 编辑器 中调整 UV 来调整立方体上的图像成我们喜欢的样子,但目前让我们保持原样。
步骤 9 - 设置灯光
我们的图像看起来相当昏暗。我们让这里有更多的光吧。取消所有选择,进入 对象 模式并选择光。同时你也可以关闭 UV 编辑器 (右键点击选择 Close Area 菜单),因为我们不再需要它了。转到前视图,按 G + Z 50 向上移动灯。
回到相机视图(小键盘 0).选择光,到 Object Data 选项卡,设置 光类型 为 Sun (A)和 Strength 为 10 (B). 如果你想要达到不同的效果,你也可以旋转光,但我不打算这样做。
这就是动画结束时的图像。
步骤 10 - 在地面上添加一个材质
点击 眼睛 图标(A)来显示地面。选择它并转到 Material 选项卡。添加一个新的材质,并设置其Base Color 为白色(B)。
步骤 11 - 渲染动画
我们已经准备好渲染动画。在开始之前保存文件,以防出现任何问题。选择 Output 选项卡(A),选择你想要保存动画的文件夹(B)。设置 File Format 为 FFmpeg Video(C),在 Encoding 下设置 Container 为 MPEG-4 (D)。
让我们做一个测试渲染。转到 Render 菜单,选择 Render Image 。
这就是你应该得到的图像:
以上我们的测试证明渲染是好的,上图是最后一帧拍摄的图像。现在再次转到 Render 菜单并选择 Render Animation 。过一段时间你就能享受你的动画了。
本文正在参加「金石计划 . 瓜分6万现金大奖」