Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

使用 MultiMeshInstance3D

前言

在一般情況下,你會使用 MeshInstance3D 節點來顯示 3D 網格(例如主角的人物模型),但有時你可能需要在場景中建立多個相同網格的實例。你*可以*多次複製同一個節點並手動調整轉換,但這個過程繁瑣,結果也可能顯得很制式。而且這種做法不利於快速迭代。MultiMeshInstance3D 就是解決這個問題的一種方案。

MultiMeshInstance3D 顧名思義,可以在指定網格表面上產生多個 MeshInstance 副本。舉例來說,你可以利用樹木網格,在地形網格表面隨機擺放不同比例和方向的樹。

設定節點

基本設定需要三個節點:MultiMeshInstance3D 節點,以及兩個 MeshInstance3D 節點。

其中一個節點作為目標,也就是你希望放置多個網格的表面網格。在樹木的例子中,這就是地形。

另一個節點作為來源,也就是你想要複製的網格。在樹木的例子中,就是樹本身。

在這個範例中,我們會以 Node3D 作為場景的根節點。你的場景樹會長這樣:

../../_images/multimesh_scene_tree.png

備註

為了簡單起見,本教學採用內建的基本幾何體。

現在一切都準備好了。選取 MultiMeshInstance3D 節點,並查看工具列,你應該會在 View 旁看到一個 MultiMesh 按鈕。點擊它,然後在下拉選單中選擇 Populate surface*(填充表面)。這時會跳出一個名為 *Populate MultiMesh 的新視窗。

../../_images/multimesh_toolbar.png ../../_images/multimesh_settings.png

MultiMesh 設定

以下是各個選項的說明。

目標表面

用來放置源網格副本的目標表面的網格.

源網格

你希望在目標表面上複製的網格。

網格上軸

指定作為來源網格「上方」的軸。

隨機旋轉

隨機化來源網格在上軸方向的旋轉。

隨機傾斜

隨機化來源網格的整體旋轉。

隨機縮放

隨機化來源網格的縮放比例。

縮放

放置在目標表面上的來源網格縮放比例。

數量

在目標表面上放置的網格實例數量。

選擇目標表面。在樹木的例子裡,這應該是地形節點,來源網格則是樹的節點。根據你的需求調整其他參數,然後按下 Populate,來源網格就會被複製到目標網格表面。如果你對結果滿意,可以刪除作為來源網格的 MeshInstance 節點。

最終結果應該會長這樣:

../../_images/multimesh_result.png

若要變更結果,只需以不同參數重複前述步驟即可。