當前位置:
首頁 > 遊戲 > 結合《水果忍者》淺談遊戲中的物理設計

結合《水果忍者》淺談遊戲中的物理設計

真實世界物理規律無窮無盡,如果每個遊戲的設計都要運用物理知識,那豈不是大大延長了遊戲製作周期和開發難度?雖然現在遊戲開發工具五花八門,大多數的物理行為都已經被寫在了工具的模板中,隨時可以直接調用進行模擬。但是,我始終認為,作為一個認真的遊戲設計者來說,一定要「知其然」更要「知其所以然」,因為只有這樣才可以真正了解自己所做的設計,並且真正會運用它們在每一個細節中,就算出現了錯誤或者BUG,也可以迅速定位到問題,並且懂得原理,知道如何來修復和優化。

本文想要寫一下另外一個很常見的物理行為「切割」。

基礎原理

「切割」行為,也可以叫做「分裂」行為,簡單描述就是:一個質量為A、體積為V的物體,被外力(或內力)作用,分解成2個或多個部分:A1,A2…(體積V1,V2…)。並且滿足:

∑An=A

∑Vn?V(體積之和不一定等於原來的V)

簡單用示意圖表示則如下圖:

結合《水果忍者》淺談遊戲中的物理設計

根據質量守恆定律,物體的質量是無論如何都不會發生變化的。物體的體積,則會由很多因素(表面積、溫度等)所決定,可能造成分裂出來的多個物體體積大於(或小於)原物體的體積。

質量和體積,是分析的物體行為的兩個主要參數,除此之外,還需要計算出分裂後物體的重心(根據物體的密度分布和形狀所計算出來)

物體在被切割以後,分裂為多個物體,那麼每個物體的運動狀態可能都會各自不同,發生改變。然而要計算出每個物體的運動狀態,主要根據就是上述的三個參數:

質量(用於計運算元物體的密度、計運算元物體的初始慣性狀態,計運算元物體的受力)

體積(用於計算物體的密度、分析物體的形狀相關參數)

重心(計算重力,計算物體的翻轉行為)

在真實世界中,一個物體的切割行為,往往涉及到很多周邊計算,例如:一個木頭被切割成兩塊,然後分別向多個方向倒下。這個過程就會涉及到:摩擦產生的質量損耗,碰撞產生的動量轉移,空氣阻力,重心變化,內能變化(燃燒和熱),等等。

因此要在遊戲中做到100%模擬真實物理,幾乎是不可能的(也沒有必要),所以遊戲中的設計會在真實事件的基礎上,刪去一些影響比重較小的成分和參數(例如摩擦力和空氣阻力),進行最大程度的簡化,僅僅保留一個基本的物理數值模型,也就足夠了。

計算模型舉例

其實《水果忍者》這款遊戲,嚴格意義上來說,並不算一個物理的模擬遊戲,雖然在最基本的操作中,僅僅為一種手指操作的「切割」,但是實際的計算過程中,並未根據玩家即時的操作行為,產生與之真實對應的物理反饋,而是一切切割行為都已經預先設計好,計算好,在玩家操作的時候進行選擇性觸發而已。

舉個例子:一個西瓜飛行在空中時,若玩家用手滑動,想要將西瓜切割成體積1:5的兩個部分,但是實際操作的時候玩家會發現,無論自己真實如何操作,西瓜分裂成的兩個部分都是預先已經被設定好的。

但是在切割類的遊戲中,毫無疑問的《水果忍者》這款遊戲應該是最廣為人知並且最受歡迎的。簡單的剖析一下,水果忍者主要的物理原理構成很簡單,分為兩個部分:

重力作用:完全不計算空氣阻力,只考慮一個初始速度與重力加速度,每一個水果從飛行到落下的整個過程中,經歷的狀態變化為(如下圖):

結合《水果忍者》淺談遊戲中的物理設計

狀態1:初始速度V0向上

狀態2:V0逐漸減少(減速運動)

狀態3:V0減為0(物體短暫靜止)

狀態4:物體開始向下運動(加速運動)

狀態5:物體離開屏幕

在這個最基本的重力作用的過程當中,參數是非常好設定的,因為他與物體的質量無關(只有加速度影響),因此只有2個可控參數:

1。物體的初始速度V0

2。物體的初始拋射角度a

結合《水果忍者》淺談遊戲中的物理設計

通過給不同的水果品種,配置不同的上述2個參數,則可以在遊戲中看到各種各樣的水果,以不同的角度和速度飛入遊戲界面中,玩家在一種眼花繚亂中緊張地進行著「切水果」的操作,獲得快樂。配置表隨便舉例如下圖(僅為舉例參考,請無視具體數據):

結合《水果忍者》淺談遊戲中的物理設計

所有的計算公式,只有一個:理想狀態下的拋物線公式。(感興趣的朋友可以參閱我的本系列第二篇文章)。這個過程的計算還是很便捷的。

切割作用:

在《水果忍者》的切割設計中,將最核心的行為進行了簡化:所有水果的切割,不是真實進行模擬的,而僅僅是一種預先設定的觸發而已。

這種設計是有遊戲的主邏輯所決定的:因為《水果忍者》的得分與過關方式中,與水果是如何切割分裂,切割後的部分如何落下並沒有關係,玩家只需要簡單的將水果切割掉,就可以得到對應的分數。在一種直接而快速的滑動操作中,得到酣暢淋漓的遊戲操作快感。

因此這種簡化設計是非常適合這款遊戲的。

《水果忍者》的每一種水果,都被預先設計好:

切割後分裂成哪幾個部分(絕大多數都被簡化為2個,無論切割幾刀)

分裂後的子部分,以何種方式向兩邊分開落下。

甚至可以想像得到,遊戲很可能使用了同一套公式和係數去計算所有的水果切割分裂後的飛行狀態。意思就是,為了計算的簡便,無論哪一種水果(無論體積大小),被切割後都是同樣狀態的兩個子部分(在同一套公式下計算)飛行而落下。

假設(不考慮是否有意義),要適當增加這款遊戲的一些物理真實性的話,可以複雜一下演算法。可以加入玩家真實切割操作的反饋,並且對應這種反饋對應計算。那麼在這種設計下,每個水果的屬性配置表,就會相對要複雜一些了,除去上文中的重力相關參數欄位,其他的配置屬性可能如下表:(僅為個人設計,可能還有更多屬性,僅供參考)

結合《水果忍者》淺談遊戲中的物理設計

需要用到的公式:

重心計算公式:只需計算2維幾何重心即可。(通過分割後的幾何形狀、體積、質量計算得出位置,)在此就不再列舉出具體公式的計算過程了,百度即可。因為後面的旋轉計算中,需要用到「重心」這個參數。(舉例:如果切割掉香蕉的某個部位,真實情況下,很可能一部分的香蕉自身旋轉著落下)。注意:重心可能在物體上,也可能在物體外哦。

受力分析公式:假設玩家的「切割」操作,是一種外力,那麼可以賦予所有這種操作一個固定的外力值F,由於力的矢量性,因此可以根據玩家在不同角度划過屏幕的時候,做出不同的受力分析(玩家不同方向的切割,對水果的分裂狀態變化也是不同的)。水果在分裂瞬間僅僅受力為兩個:切割力F,重力mg。因此受力分析也是比較簡單的,使用同一個公式即可實現

物體的自身旋轉公式:玩家在切割的瞬間,水果具體分裂成哪兩個(或多個)部分,是由玩家切割的位置和方向所決定的(可能1/2和1/2,也可能1/10和9/10)。兩個分裂的部分,在受力的瞬間,都會受到一個「角速度加速度」,讓物體發生自身的旋轉(這個也是在真實世界中存在的現象,物體會圍繞自己的重心進行旋轉),物體的旋轉角速度計算公式也是需要的。

在上述固定公式下,配合所有種類的水果的各項屬性,基本可以較為真實的模擬出在「切水果」的過程中,被切割的每個水果會做出類似真實世界中的一些物理反饋。雖然對遊戲本身的計算和輸贏沒有什麼影響,但是至少會讓玩家感覺更加真實一些。

結束語

這篇文章(還有之前的兩篇同系列文章),筆者都儘力結合自身的遊戲設計經歷給大家提供一些思路,或許有幫助或許幫助不大,但是我最想要表達的想法其實可以用一句話去概括:無論遊戲設計的工具如何便捷如何智能,作為一個遊戲設計者,應當永遠保持一顆探究所有設計原理的初衷。

我覺得這樣才可以將玩家的用戶體驗分析到細微處,在完成遊戲的製作後,也會得到一種莫大的成就感。這種成就感,是當今模板化、IP化、快餐化遊戲行業中所彌足珍貴的。

from:GAD

97973手游網聲明:97973手游網登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 97973手游網 的精彩文章:

我的世界:粘液球作用詳細介紹
我的世界:怎麼騎動物 鞍有什麼用
仙劍奇俠傳online:職業選擇攻略-豪俠
仙劍奇俠傳online:職業選擇攻略-劍仙
《豬來了》怎麼加好友 豬來了加好友方法介紹

TAG:97973手游網 |

您可能感興趣

做符合遊戲機制的好謎題!淺談遊戲當中的謎題設計
宮崎英高與上田文人的基調演講:淺談遊戲設計理念與入行理由
談談遊戲坑的心理
談談遊戲策劃和劇情
淺談遊戲設計模式分析
《星戰絕地:墮落秩序》製作人談遊戲劇情設計
淺談遊戲故事背景在遊戲中的地位和意義
遊戲廠商讓人看不懂的操作 談談遊戲界的臨時工
談談遊戲與我
淺談遊戲手機發展史
《只狼影逝二度》劇情解析:淺談遊戲的故事背景
《爐石傳說》創意總監談遊戲內錦標賽擱置開發的原因
《迸發2》製作人談遊戲細節:角色創建與遠程作戰等
簡談遊戲主機
《魔獸世界》經典舊世設計師重談遊戲
陰陽師:今兒談談遊戲里的物價體系,每一件物品都有它的價格
淺談遊戲本購買
在虛擬世界如何建立人際關係?漫談遊戲社交的利與弊
幽林怪談遊戲人物大全 幽林怪談季姜人物介紹
爆炸、撕裂、肉汁四溢!淺談遊戲中的暴力美學