文章目錄
- 一、前言
- 二、本文最終效果
- 三、MAST工具基本操作
- 1、工具下載:Modular Asset Staging Tool(MAST)
- 2、匯入工具:Import
- 3、創建場景:Scene
- 4、方塊網格:Mesh
- 5、貼圖圖片:Texture
- 6、制作材質球:Material
- 7、制作預設:Prefab
- 8、打開MAST視窗
- 9、載入預設
- 10、預設批量掛MASTPrefabSettings腳本
- 11、鉛筆:繪制單個方塊
- 12、刷子:連續繪制方塊
- 13、油漆桶:區域大片繪制方塊
- 14、骰子:隨機屬性
- 15、橡皮擦:擦除方塊
- 16、旋轉
- 17、翻轉
- 18、材質繪制
- 19、還原材質
- 20、設定層高
- 四、正片開始
- 1、準備素材
- 2、鋪方塊
- 3、加點細節
- 4、導航烘焙
- 5、添加天空盒
- 6、添加主角
- 7、添加搖桿控制
- 8、運行效果
- 五、體素資源推薦
- 1、資源一
- 2、資源二
- 3、資源三
- 4、資源四
- 5、資源五
- 6、資源六
- 7、資源七
- 六、結束語
一、前言
嗨,大家好,我是新發,
之前我寫了一篇Unity使用2D Tilemap制作經典2D橫版游戲關卡場景地圖的文章:《[Unity 2D] 重溫紅白機經典FC游戲,順便教你快速搭建2D游戲關卡(Tilemap | 場景 | 地圖)》

又寫了一篇Unity使用HexTiles制作廣州地鐵3D地圖的文章:《[原創] 用Unity等比例制作廣州地鐵,廣州加油,早日戰勝疫情(Unity | 地鐵地圖 | 第三人稱視角)》

這兩篇文章的點贊、收藏量都蠻高的,今天,我再寫一篇3D體素(voxel)場景地圖制作的文章吧~
二、本文最終效果
本文最終運行效果:


本工程原始碼已上傳到CodeChina,感興趣的同學可自行下載學習,
地址:https://codechina.csdn.net/linxinfa/UnityTile3D
注:我使用的Unity版本:Unity 2021.1.7f1c1 (64-bit),

三、MAST工具基本操作
1、工具下載:Modular Asset Staging Tool(MAST)
本文使用到的體素地圖編輯器是MAST,全稱Modular Asset Staging Tool,可以在Unity AssetStore上免費下載使用,新發良心推薦,建議收藏~
下載地址:https://assetstore.unity.com/packages/tools/level-design/mast-modular-asset-staging-tool-154939

2、匯入工具:Import
在Unity的Package Manager中下載完成后,點擊Import按鈕,將工具匯入到工程中,

匯入成功后,可以打開它給我們做好的Demo場景MAST Demo Scene,

如下:

下面,我們拋開它的Demo場景,從零開始做一個自己的場景,我會在制作程序中講解工具的使用方法和涉及到的一些知識點~
3、創建場景:Scene
在Project視圖中右鍵滑鼠,點擊選單Create Scene,創建一個新的場景,

命名為MyScene,如下:


4、方塊網格:Mesh
最簡單的體素場景是由一個個3D的方塊組成的,對應的網格如下,

當然,還可以是其他的形狀的網格,

不過我們先以最簡單的3D的方塊網格為例,
5、貼圖圖片:Texture
一個3D方塊有6個面:上下前后左右,所以貼圖也需要畫6個面,

它的貼圖如下,分別對應上下前后左右6個面,

準備一些我們需要的貼圖,比如草地、泥土、墻、水:


注意,注意圖片的格式設定如下:

其中Filter Mode設定為Point (no filter),意思就是紋理在通過 3D變換拉伸時以最靠近的采樣點的顏色為準,效果圖片呈現色塊狀,我們可以對比下Filter Mode為Bilinear (雙線性)和Point (no filter)的效果,

6、制作材質球:Material
我們要把貼圖貼到模型上,需要通過材質球,所以我們先創建材質球,
以草地材質球為例,創建一個Material,重命名為grass,

設定材質球的shader為Standard,設定Albedo為我們的草地貼圖,設定Rendering Mode為Opaque (不透明的),將Metallic (金屬度)和Smoothness (光滑度)都設定為0,如下:

這樣,我們得到一個草地材質球啦~

同理制作其他的材質球,

7、制作預設:Prefab
接下來,我們要把上面的素材整合包裝成預設,以草地方塊預設為例,
在Hierarchy視圖空白處右鍵滑鼠,點擊選單Create Empty,創建一個空物體,

重命名為grass,

再在它的子節點下創建一個空物體,重命名為mesh,

給mesh節點添加MeshFilter、MeshRenderer和MeshCollider組件,

給MeshFilter組件的Mesh賦值方塊Mesh,給MeshRenderer組件的Material賦值草的材質球grass,如下:

此時效果如下:

將其保存為預設,放在Prefabs目錄中,

同理制作其他方塊預設,如下:

8、打開MAST視窗
點擊選單Tools / MAST / Open MAST Window,打開MAST視窗,

界面如下:

界面的按鈕不少,不要著急,下面我會根據操作程序進行介紹,
9、載入預設
點擊這個檔案夾按鈕,

選擇我們剛剛預設保存的目錄,即Assets/Prefabs,點擊選擇檔案夾按鈕,

此時視窗中就會列出目錄中的預設縮略圖,

事實上,它是先在我們預設所在的目錄中生成了縮略圖然后展示在MAST視窗中的,

10、預設批量掛MASTPrefabSettings腳本
在開始刷體素方塊之前,我們需要先給我們做的方塊預設統一掛上MASTPrefabSettings腳本,點擊Tools按鈕,點擊Add MAST Script to Prefabs按鈕,

選擇我們的預設所在的檔案夾,即Assets/Prefabs,點擊選擇檔案夾按鈕,

此時,我們的預設就批量掛上MASTPrefabSettings腳本了,

11、鉛筆:繪制單個方塊
先點擊鉛筆按鈕,再選擇要繪制的方塊,

然后在Scene視圖中點擊即可繪制出一個方塊,如下:

12、刷子:連續繪制方塊
先點擊刷子按鈕,再選擇要繪制的方塊,

然后在Scene視圖中按住滑鼠拖動即可連續繪制方塊,如下:

13、油漆桶:區域大片繪制方塊
先點擊油漆桶按鈕,再選擇要繪制的方塊,

然后在Scene視圖中按住滑鼠框選一個區域,即可在這個區域直接繪制大片方塊,如下:

14、骰子:隨機屬性
要使用隨機屬性,需要在預設上勾選Use Randomizer,

你可以設定隨機的引數范圍,可以隨機旋轉角度、縮放、對稱、坐標等引數,

接著,回到MAST視窗,先點擊骰子按鈕,再選擇要繪制的方塊,

然后在Scene視圖中點擊滑鼠即可隨機繪制方塊,如下:

15、橡皮擦:擦除方塊
點擊橡皮擦按鈕,

然后在Scene視圖中點擊滑鼠(或按住滑鼠拖動)即可擦除方塊,如下:

16、旋轉
為了演示旋轉,我先繪制一個比較有特征的物體,

先確定要繞著哪根軸旋轉,接著選中要旋轉的物體,最后點擊旋轉按鈕即可,

每次旋轉的角度由預設的MASTPrefabSettings組件的Rotation Step決定的,

17、翻轉
翻轉同理,先選擇要翻轉的軸,然后選擇要翻轉的物件,最后點擊翻轉按鈕即可,如下:

18、材質繪制
我們可以給場景中已經繪制的方塊替換材質,
點擊Paint按鈕,在點擊檔案夾按鈕,

選擇我們的材質球所在的檔案夾,如Assets/Materials,點擊選擇檔案夾按鈕,

此時視窗中就會列出檔案夾中的材質球,

點擊毛筆按鈕,在點擊材質球,

接著在Scene場景中即可替換方塊的材質了,如下:

19、還原材質
點擊刷子按鈕,

然后在Scene視圖中點擊剛剛被替換材質的方塊,即可還原對應的材質,

20、設定層高
我們上面都是在一個平面層上刷方塊,如果我們想要在不同的平面層刷方塊,可以調整層高,

四、正片開始
工具基本操作講完了,接下來是正片(此處應有背景音樂),
1、準備素材
注:不知道哪里找體素資源的同學,我文章末尾貼了資源下載地址~
網格:

貼圖:

包裝成預設:

2、鋪方塊
開始鋪方塊,

鋪啊鋪,

3、加點細節
再加點細節,水、橋、機關、星星、生成點等等,

差不多這樣子,

4、導航烘焙
把所有方塊(除了水的方塊)設定為Static,

點擊選單Window / AI / Navigation,打開Navigation視窗,

點擊Bake標簽頁,設定一下Agent引數,最后點擊Bake,

烘焙成功,可以看到路面出現藍色的網格,

5、添加天空盒
現在天空太單調了,

我們加個天空盒,我上一篇文章《Unity實戰篇,小島城堡里的常春藤,聽新發剖析Unity案例知識點》中用到了一個天空盒,我很喜歡這個天空盒,

我們把它弄過來,天空盒貼圖如下,分別是前后左右下上6張圖:

對應的材質球如下,注意材質球使用的shader為Skybox/6 Sided,貼圖分別賦值6張貼圖:

把選單Window / Rendering / Lighting,

在Lighting視窗中點擊Environment標簽頁,賦值Skybox Material為我們的天空盒材質球,

效果如下,是不是超級治愈呢~


6、添加主角
主角依然使用我最喜歡的宇航員吧~

喜歡這個宇航員模型的同學可以自行從這里下載:https://assetstore.unity.com/packages/3d/characters/humanoids/sci-fi/stylized-astronaut-114298
將模型下載匯入Unity中,

把主角拖入場景中,調整一下主角的縮放和坐標,如下:

7、添加搖桿控制
在我之前那篇文章《[原創] 用Unity等比例制作廣州地鐵,廣州加油,早日戰勝疫情(Unity | 地鐵地圖 | 第三人稱視角)》里面我做了一個雙搖桿控制主角移動和控制攝像頭的功能,也安排進來,
注:因為雙搖桿我在上面這篇文章中已經講了制作程序,所以這里就不贅述啦~

8、運行效果
最后運行效果如下:


五、體素資源推薦
末了,找不到體素資源的同學,我推薦幾個吧~
1、資源一
下載地址:https://assetstore.unity.com/packages/3d/environments/fantasy/voxel-environments-1-152920


2、資源二
下載地址:https://assetstore.unity.com/packages/3d/environments/dungeons/voxel-dungeon-environment-set-1-57394

3、資源三
下載地址:https://assetstore.unity.com/packages/3d/vegetation/trees/free-low-poly-boxy-stylized-trees-0-67258

4、資源四
下載地址:https://assetstore.unity.com/packages/3d/environments/3d-blocks-3-0-195023

5、資源五
https://assetstore.unity.com/packages/3d/characters/animals/mammals/voxel-animals-pack-1-151257

6、資源六
下載地址:https://assetstore.unity.com/packages/3d/environments/fantasy/isometric-pack-3d-62262

7、資源七
下載地址:https://assetstore.unity.com/packages/3d/environments/cube-world-proto-series-144159


六、結束語
好了,就先寫這么多吧~
我是新發,喜歡的記得點贊、收藏、關注,有什么技術上的問題,歡迎留言或私信~
拜拜~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/287475.html
標籤:其他
上一篇:貪吃蛇-雙緩沖Debug版
下一篇:反賭科普宣傳——賭徒的謬誤
