WEBVTT

00:00.000 --> 00:03.384
Blender 4.2 发布了，有一些东西

00:03.385 --> 00:07.240
使用几何节点建立互动式工具的新功能。

00:08.340 --> 00:12.234
现在您可以精确控制

00:12.235 --> 00:16.000
按一下该工具即可在 3D 视窗中生效。

00:16.620 --> 00:21.100
如果您前往 Blender.org 上的「发布节点」页面并向下卷动到

00:21.101 --> 00:24.920
几何节点部分，您可以看到一个小演示文件，我在其中演示如何

00:24.921 --> 00:34.180
你可以创建这种类型 在这个影片中，我将向你展示如何使用新的

00:34.181 --> 00:37.360
Blender 4.2 中的节点用于建立此修改器。

00:38.600 --> 00:42.200
我还建议您观看我制作的有关新产品的其他视频

00:42.201 --> 00:45.560
矩阵插座，因为这是我们将在本影片中使用的东西。

00:46.200 --> 00:50.100
我还在 Blender YouTube 频道上制作了一个关于 Node Tools 的视频，您应该

00:50.101 --> 00:52.362
在此之前查看以开始使用

00:52.363 --> 00:54.600
如何在 Blender 中建立节点工具的基础知识。

00:55.220 --> 00:56.200
那么就让我们开始吧。

00:56.201 --> 00:59.732
Blender 中的节点工具有一些新功能

00:59.733 --> 01:03.300
4.2 使其能够与 3D 视窗进行互动。

01:03.900 --> 01:09.420
其中一个方面是在调用该工具时等待滑鼠单击的功能。

01:09.720 --> 01:14.700
这可以结合滑鼠位置和视口的信息

01:14.701 --> 01:18.840
变换以准确点击您希望操作发生的位置。

01:19.420 --> 01:22.820
在本影片中，我将向您展示如何进行设定。

01:22.821 --> 01:26.386
我们将在两个节点组就位的情况下开始此设置

01:26.387 --> 01:29.720
您可以从范例文件的下载中取得该文件。

01:30.200 --> 01:34.080
一是冲击断裂节点，它将执行实际的几何图形

01:34.081 --> 01:39.180
我们想要透过围绕中心重复切割网格来完成的操作

01:39.181 --> 01:43.920
点，然后我们将在其上使用另一个点来创建一些变化

01:43.921 --> 01:47.960
并分解我们切割的各个部分以使其更明显。

01:48.600 --> 01:52.500
我们不会从头开始创建它们，而是从演示中使用它们

01:52.501 --> 01:54.781
文件以节省一些时间并专注于需要处理的事情

01:54.782 --> 01:58.280
对于 Blender 4.2 中的新功能确实很重要。

01:58.720 --> 02:00.320
那么让我们来看看这些新节点。

02:00.600 --> 02:05.820
我们加入Mouse Position节点，可以看到有滑鼠X和Y

02:05.821 --> 02:10.460
位置（以像素为单位）以及区域、宽度和高度。

02:10.860 --> 02:13.671
两者都与该地区有关

02:13.672 --> 02:16.360
您正在从中执行该工具的视窗。

02:16.361 --> 02:22.140
如果我只是将其中一个连接到群组输出，然后执行该工具

02:22.141 --> 02:26.500
编辑模式下，当我将滑鼠悬停在输出上时，您可以看到各个值。

02:28.520 --> 02:31.614
例如，您可以使用它来计算

02:31.615 --> 02:34.200
滑鼠在该区域中的相对位置。

02:34.600 --> 02:36.560
这是我们稍后需要的东西。

02:37.020 --> 02:41.926
因此，让我们使用组合将滑鼠位置转换为向量

02:41.927 --> 02:45.080
X、Y、Z 节点并对区域大小执行相同的操作。

02:47.420 --> 02:52.240
然后我们需要将一个除以另一个并将其映射到不同的范围。

02:53.560 --> 02:57.389
因此除以区域大小将确保

02:57.390 --> 03:01.840
现在这些值不再是像素，而是从 0 到 1。

03:02.460 --> 03:06.240
我们可以透过将其连接到输出来检查，以确保这是

03:06.241 --> 03:09.099
进行评估，然后当我们运行该工具时，

03:09.100 --> 03:12.561
您可以看到滑鼠的相对位置。

03:12.700 --> 03:15.415
现在为了获得更多控制权，让我们转到

03:15.416 --> 03:18.280
此处的选项选单并开启等待点击功能。

03:19.180 --> 03:23.800
这将确保节点树的评估仅实际发生

03:23.801 --> 03:26.860
每当我们执行该工具后单击。

03:27.600 --> 03:32.640
因此，如果我单击此处的工具名称，我们会得到一个不同的图标

03:32.641 --> 03:37.540
游标和实际工具仅在我再次单击时才会执行。

03:38.000 --> 03:42.920
因此，现在您可以在执行工具后看到我们单击的任何位置的值。

03:42.921 --> 03:45.792
使滑鼠相对位置稍微变小一点

03:45.793 --> 03:48.660
更有用的是，我想将它映射到不同的范围。

03:49.220 --> 03:53.419
所以让我们使用地图范围节点，然后而不是去

03:53.420 --> 03:57.400
从0到1，我想将其映射到从负1到1。

03:57.640 --> 04:00.699
但我们要确保将所有 Z 归零

04:00.700 --> 04:04.901
因为我们处理的是 2D 向量。

04:05.040 --> 04:07.207
现在让我们再次执行该工具，单击

04:07.208 --> 04:09.961
在视窗中间的某个地方。

04:10.340 --> 04:14.720
然后这给了我们一个 0 左右的值，这正是我们想要的。

04:15.600 --> 04:18.240
这就是我们需要的滑鼠相对位置。

04:18.680 --> 04:22.500
接下来让我们了解一些有关我们正在查看的 3D 视窗的资讯。

04:22.780 --> 04:24.920
因此，让我们新增视口变换节点。

04:26.300 --> 04:29.480
这个为我们提供了两个矩阵和一个布林输入。

04:29.800 --> 04:33.780
矩阵可协助您进行视窗的空间变换。

04:33.920 --> 04:36.616
一个用于相机投影，另一个用于

04:36.617 --> 04:39.821
一种用于视口的变换。

04:39.920 --> 04:43.600
这个布林值只是告诉你相机的投影是否是正交的。

04:43.960 --> 04:49.140
现在让我们简单地使用视图变换矩阵来找出

04:49.141 --> 04:51.580
作为观众，我们实际上在看什么点。

04:52.060 --> 04:55.142
在这里我不打算详细讨论数学或

04:55.143 --> 04:57.821
不同的预测和转换如何发挥作用。

04:57.920 --> 05:00.960
我将向您展示如何实现这种特定效果。

05:01.200 --> 05:03.541
网路上有大量的学习资源可供参考

05:03.542 --> 05:06.120
如果您愿意，可以了解更多有关此类概念的资讯。

05:06.121 --> 05:10.500
视图变换矩阵为我们提供了到相机空间的变换。

05:10.780 --> 05:17.161
因此，为了获得相机在物体空间中的位置，我们需要反转矩阵。

05:17.480 --> 05:21.380
由此我们可以分离出各个变换组件。

05:23.160 --> 05:27.880
现在这个翻译给了我们视点的确切位置。

05:28.340 --> 05:34.440
因此，无论我们从哪个角度看这个立方体，都会是这里的翻译。

05:34.441 --> 05:38.360
让我透过添加网格线节点来向您证明这一点。

05:38.600 --> 05:42.440
将其设为端点并将翻译连接到两者。

05:43.080 --> 05:46.400
让我们用这个几何图形来取代工具的输出。

05:46.780 --> 05:49.576
现在无论我们刚刚计算出的这个位置

05:49.577 --> 05:52.241
也就是说，该工具将创建一堆点。

05:54.340 --> 05:55.700
那么让我们来运行该工具吧。

05:56.080 --> 05:57.080
点击。

05:57.880 --> 06:00.410
现在如果我缩小你可以看到

06:00.411 --> 06:04.221
点正是我所看到的地方。

06:04.500 --> 06:05.780
再试一次。

06:08.300 --> 06:09.300
就这样吧。

06:09.800 --> 06:13.880
让我们恢复立方体，然后添加更多节点。

06:15.280 --> 06:17.460
这将是我们的观点。

06:18.660 --> 06:24.120
此设定的目标是从视点创建光线投射，因此从哪里

06:24.121 --> 06:27.300
我们正在向游标的方向看。

06:27.920 --> 06:31.817
所以当我们看著立方体时我们想要投射一条光线

06:31.818 --> 06:35.640
从我们观点的来源到我们所指向的地方。

06:36.400 --> 06:40.388
作为我们已经拥有的来源的观点，

06:40.389 --> 06:44.000
以及滑鼠在视窗中的相对位置。

06:44.300 --> 06:48.340
剩下要做的就是弄清楚我们指向的方向。

06:49.460 --> 06:52.307
为此，我们可以使用相对滑鼠位置

06:52.308 --> 06:55.320
结合一点矩阵数学。

06:56.360 --> 06:59.800
在这里我将再次应用数学，而不提供太多背景知识。

07:00.020 --> 07:03.565
但本质上我们需要同时转换

07:03.566 --> 07:07.880
以及座标到视图空间的投影。

07:08.340 --> 07:14.880
因此，我们使用乘法矩阵节点来组合这两个矩阵，然后求逆

07:14.881 --> 07:17.420
结果得到相反的变换。

07:18.060 --> 07:24.180
我们可以用它来从视图空间投影相对滑鼠位置

07:24.181 --> 07:28.360
使用专案点节点进入物件空间。

07:29.140 --> 07:31.847
并插入之前的转换，这

07:31.848 --> 07:35.420
为我们提供了在 3D 中点击的点。

07:35.840 --> 07:40.349
那么让我用之前的网格线设定来证明一下

07:40.350 --> 07:43.160
看起来像是通过将其连接到最终位置。

07:43.960 --> 07:49.155
如果我运行该工具，您可以看到我们如何获得短线

07:49.156 --> 07:52.540
这正是我们点击的方向。

07:54.700 --> 07:56.622
事情会变得更多一点

07:56.623 --> 07:59.161
一旦我们真正进行了光线投射，就清楚了。

07:59.380 --> 08:00.560
那么接下来我们就这样做吧。

08:02.000 --> 08:03.540
让我们加入一个光线投射节点。

08:04.680 --> 08:08.480
作为目标几何体，我们将使用我们的群组输入。

08:09.460 --> 08:13.800
然后对于光线投射的来源位置，我们可以简单地使用视点。

08:15.420 --> 08:17.939
对于方向，我们需要计算

08:17.940 --> 08:20.500
我们刚刚得到的两点之间的差异。

08:20.501 --> 08:23.295
因此使用减法节点，然后减去

08:23.296 --> 08:26.641
从我们点击的点开始看。

08:26.920 --> 08:28.320
这就是光线方向。

08:29.960 --> 08:34.340
为了可视化此光线投射的结果，我们仍然使用网格线。

08:34.700 --> 08:40.861
我们只需要用该光线投射的命中位置替换结束位置。

08:40.960 --> 08:46.300
让我们将网格线的结果与立方体连接起来并尝试一下。

08:47.440 --> 08:48.380
就这样吧。

08:48.381 --> 08:55.320
一个很好的简单设置，可以准确地从该点获得光线投射的线

08:55.321 --> 08:59.300
您正在查看从我们在 3D 视窗中点击的点开始的位置。

08:59.620 --> 09:01.260
将其光线投射到我们的几何体上。

09:01.840 --> 09:04.281
这是光线投射的基本设置

09:04.282 --> 09:06.921
现在您可以在各种情况下使用它。

09:07.080 --> 09:11.580
使用视窗方向和您的讯息

09:11.581 --> 09:14.600
滑鼠的位置使工具更具互动性。

09:15.240 --> 09:17.654
现在我们已经拥有了所需的所有信息

09:17.655 --> 09:20.180
我们来连接一下压裂的操作。

09:20.181 --> 09:23.260
让我们摆脱这个网格线设置，因为我们不再需要它了。

09:23.440 --> 09:26.380
而是放入冲击骨折节点。

09:27.380 --> 09:31.120
对于中心点，我们可以简单地插入我们的命中位置。

09:32.040 --> 09:35.780
对于方向，我们可以采取光线投射的方向。

09:37.060 --> 09:41.980
让我们将迭代次数增加到 20 次左右，看看是否有效。

09:42.680 --> 09:44.900
是的，这已经很有效了。

09:45.160 --> 09:48.535
但现在有一件事是它运作得不好

09:48.536 --> 09:51.440
每当我们有多个网格岛已经破裂时。

09:51.860 --> 09:55.842
我想做的是只应用骨折手术

09:55.843 --> 09:59.020
在我点击的网格岛或单元格上。

09:59.420 --> 10:01.700
因此，让我们将该机制包含在设定中。

10:02.180 --> 10:05.240
为此，我们可以使用现有的光线投射操作。

10:06.300 --> 10:10.880
让我们将资料类型变更为整数并新增一个网格岛节点。

10:12.080 --> 10:14.807
在这里我们可以对岛屿指数进行采样

10:14.808 --> 10:17.560
我们用光线投射击中的几何体。

10:17.760 --> 10:21.420
这样我们就知道我们实际上点击的是哪个网格岛。

10:22.740 --> 10:26.400
我们可以使用这些资讯来分离几何图形。

10:27.280 --> 10:33.680
我们可以将岛屿索引与光线投射的结果进行比较。

10:35.580 --> 10:40.020
这样我们就可以将点击的网格岛的几何形状与其余部分分开。

10:40.021 --> 10:44.793
所以我们只在选择上创建断裂

10:44.794 --> 10:48.620
然后将其与剩余的几何体连接起来。

10:49.780 --> 10:51.280
让我们看看它是如何工作的。

10:52.060 --> 10:53.060
就这样吧。

10:54.380 --> 10:57.040
现在只剩下几件事要做了。

10:57.460 --> 11:03.321
让我们重置我们的立方体，然后我也想控制这个工具的选择。

11:03.820 --> 11:07.711
让我们在加入几何体后设定选择

11:07.712 --> 11:10.440
回到骨折的选择。

11:11.060 --> 11:14.820
这样我们只选择网格中新断裂的部分。

11:17.000 --> 11:21.640
除此之外，作为最后一部分，我只想添加随机操作。

11:23.920 --> 11:27.780
透过打破形状，这将创造出更有趣的结果。

11:28.360 --> 11:32.200
让我们透过公开一些参数来让这个工具更有用一点。

11:32.740 --> 11:38.460
只需使用这些节点组中的现有输入并拖放一些输入。

11:40.360 --> 11:44.280
我们也可以将种子重复用于随机岛屿操作。

11:45.300 --> 11:47.240
然后我们也曝光这两个人。

11:48.800 --> 11:51.640
所以现在我们在工具设定中有一些额外的控制。

11:52.780 --> 11:56.060
我想做的最后一件事是添加一些额外的随机化。

11:56.500 --> 11:59.573
现在，每当我们执行该工具时，它都会准确地显示

11:59.574 --> 12:02.840
相同的种子，所以我们得到相同的破裂模式。

12:03.080 --> 12:04.940
除非我们手动更改种子。

12:05.220 --> 12:08.520
但我想使用一个新节点来应用一个小技巧。

12:09.500 --> 12:14.260
由于我们可能不会再次单击完全相同的位置，因此我们可以

12:14.261 --> 12:17.920
使用滑鼠位置为我们提供随机输入。

12:18.640 --> 12:22.000
因此，我们可以在种子之上添加一个随机值。

12:23.760 --> 12:24.760
一个随机整数。

12:25.560 --> 12:29.500
假设在负一万到正一万之间。

12:29.820 --> 12:35.520
我们从滑鼠 X 和滑鼠 Y 建立作为 ID 和种子。

12:36.320 --> 12:39.280
这就是我们用来做种子的东西。

12:40.040 --> 12:45.580
所以我们都有一个手动种子，我们可以将其与随机种子结合起来选择。

12:46.020 --> 12:47.420
取决于我们的滑鼠位置。

12:51.000 --> 12:55.180
我们还可以将其与用于岛屿随机化的种子交换。

12:56.920 --> 12:58.240
让我们给自己一个新的立方体。

12:59.960 --> 13:00.960
就这样吧。

13:01.420 --> 13:03.100
这样压裂工具就完成了。

13:04.720 --> 13:05.400
就是这样。

13:05.560 --> 13:08.279
这应该能让你加快创造更多的速度

13:08.280 --> 13:11.660
适用于 Blender 4.2 及更高版本的互动式自订工具。

13:12.300 --> 13:13.300
再见！
