這是開源軟體系列Blender子類的又一篇。相信看了本文標題,了解這款軟體的朋友大概知道要講的模塊,當然也會心生疑竇。之所以會有這個感覺,因為大家都知道,要在Blender中製作3D遊戲,似乎只有2.79以前的版本裡可以做。的確,到了2.8以後,Blender似乎面目全非一樣,簡直「脫胎換骨」像是換了一個軟體一樣。
所以我們先談下Blender在2.79以前的版本裡怎麼製作遊戲,再說Blender2.8中製作3D遊戲的方法。因為這是系列文章,有一些東西在以前的系列文章裡已經講過,以後還會一步步拓展涉及其他東西。所以有些內容會選擇忽略或者一筆帶過,單篇看並不算完整,比較適合結合看。
學習Blender2.79版本的3D遊戲製作就是如此,畢竟以前的文章也略微涉及過。在Blender2.79以及以前的版本裡,有內置的遊戲引擎。這是官方自帶的,所以只要從默認的渲染點擊切換到遊戲引擎即可。
而要製作3D遊戲呢,除了要建立3D模型以及場景外,不能忽略的就是邏輯控制代碼部分了。這個需要在切換到Blender遊戲引擎的情況下在相應板塊切換到邏輯編輯器的界面。建模3D模型的用戶視圖一人客就不談那麼多了,畢竟我們大多工作都是在用戶視圖中建模型的,需要注意的是,我們製作遊戲,往往需要物理模擬,比如添加剛體。
而在邏輯編輯器的界面裡,有觸發器設置,控制器設置和促動器設置三大選項。觸發器,是添加傳感器,比如鍵盤,可以通過按鍵控制3D模型,而控制器,則是多個邏輯表達式:and,or,xor等,學過編程的都會知道。其實這裡就是通過觸發器控制模型來執行任務。而促動器,則正好是選擇的物體要執行的任務動作。
3D建模視圖區,邏輯編輯器區,這是兩個特別重要的製作區域。當然還有另一個屬性區。我們切換到Blender遊戲的時候,屬性區就和3D建模渲染的屬性區不太一樣了。在3D遊戲的屬性區,我們可以添加播放器,調節動畫幀等參數。最後製作好遊戲呢,也可以生成輸出遊戲。不同的平臺可以生成不同的遊戲,可以說是跨平臺的。
以上這是Blender2.79以前的版本製作遊戲的方法。而到了Blender2.8版本以後,官方把遊戲引擎去掉了。我們無法直接做3D遊戲了,而且在插件裡也找不到game插件。不過這並不代表Blender2.8不能做3D遊戲。要在Blender2.8版製作遊戲,我們需要獨立的第三方引擎來製作。
當然,很多人第一想到的就是unity。當然Blender加unity的確很搭配,不過那個顯得太重量級了。我們的Blender是開源軟體,輕量級,所以一人客覺得還是比較適合用別的,當然不反對你的自由選擇。Godot也是不錯的考慮,也有其他選擇,不過在2.79版本中我們習慣了以內置的方式來用Blender,那麼我們也適合用插件式的遊戲引擎。其中Armory3d就是一個不錯的選擇。
對於Blender2.8版本,要製作3D遊戲,就可以選擇Armory3d,它也是開源的,是以插件的形式安裝到Blender2.8中的,我們在製作3D遊戲的時候,就是在Blender一個軟體中獨立完成的。當然,Armory3d也是跨平臺的,我們不僅可以生成網頁遊戲、Windows和蘋果的電腦執行軟體,還可以發布成手機端遊戲。
當把Armory3d安裝到Blender中以後,我們使用它,依舊有點像Blender2.79製作3D遊戲那樣方便。同樣的邏輯編輯器,同樣需要建模。需要注意的是,Blender2.8版本完全節點化了,我們大多數操作都需要操作節點。所以用Armory3d插件遊戲引擎製作3D遊戲的時候,也是需要用節點的。