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
再見！
