Re: [請益]Unity或UE4是否適合(有效率)寫擬真性賽車

作者: Eric0605 (我還有點餓)   2015-10-25 18:36:14
我先說結論: 可以用Unity/UE4作出接近真實世界的物理原則
有運動定律,重力,抓地,碰撞等等
為何我這麼篤定說可以..因為我曾身為國內極少數開發競速類
遊戲的團隊成員超過四年.並且已經用Ogre/unity等成功上市過超過4款賽車/摩托車遊戲
不過我不是實作車輛物件的神手(神手另有他人) 我就從旁觀察後
提供一點看法. 我已經離開好幾年 如果記憶有謬誤還請見諒.說不定
有神人組員要踢我館(掩面) 那我也算拋磚引玉了.
先說早期沒有Unity的年代,我們開發一輛車子的Component大部分只能自己來
效能耗最多的是在碰撞和貼地. 引擎/變速箱/轉向等車輛物理
所耗的效能其實還好,現在電腦運算能力都很強,跑回圈跟本不是問題
效能大部分是耗在碰撞偵測(含把車子貼在地形上).
想想要把幾十輛車子和物件等放在龐大的地形上
這個資料結構和演算法必須做得很好,否則會造成Search/運算時間過長
可喜可賀這現在Unity/UE都已經代勞了.
因此碰撞效能耗費這點已經不是問題.如果一個競速遊戲效能耗費是100%
的話,物理所佔效能幾乎都低於10%. 到最後你會發現效能只會跟場景物件
的三角形面數有絕對相關.因此到底遊戲順不順暢 就看美術功力如何了
怎樣可以場景好看面數又用的少...不過這是題外話.
在來車輛可破壞物件的部分, 你看到多數遊戲一撞就掉一堆東西
但那些大部分都對車輛實際物理沒有太大的影響 就是演給你看而以
我們在車輛(殼)本身預設幾個結點,碰撞過程根據撞擊點記錄傷害 超過之後就
把該吸附在主體車架上的東西丟掉. 該物件跟車子的物理並無太大關係.
因此到底有哪些東西可以被碰掉都是預設好的. 至於撞凹那些只是車子
的美術外殼換掉. 你會想說 啊這樣不太真實啦, 應該是輪胎撞破 輪圈撞壞
撞擊後從小料件開始影響車的性能...如果這樣就沒完沒了了. 基本上這類
撞擊對遊戲來說 都算是插曲 主要還是會把重心放在車子駕駛/遊玩性能上.
回歸車子本身,想要做出比較擬真或是可玩性的賽車遊戲,
還是要好好的根據物理公式來作車輛的各個零件,否則玩起來只會像是軌道車
各大賽車遊戲或多或少都有寫自己的車輛物理物件 差別只是在物理簡化程度而以
但攤開程式物理都是說的通的. 這個部分非常專業 我本身資工背景對車輛機械
所知有限. 不過我可以講的是 你至少需要考慮的大概有下列東西
車子的行為"看起來"才會比較真實(這裡先不討論你要用什麼component來作)
1.引擎- 引擎的轉速(含怠速,超轉),引擎慣量
引擎扭力曲線: 幾轉對應的扭力
齒輪箱: 手/自排換檔,換檔油門,齒輪比等
2.轉向/加速- 縱向滑移率(Force/Slip Ratio)
輪胎滑移率(Slip Ratio/Force Ratio)-在這邊可以實作出前驅後驅車
轉向物理量- 前後軸距/重心/質心高度/慣量等
轉向輔助系統-TCS
Steer Angle(VR/Angle)
轉向角
側滑(車身/輪胎)
3.懸吊- 彈簧懸吊阻尼等常數
4.碰撞- 基本上只要設定好長寬高,質量,外型等,Unity都會幫你作,但如果
想自行控制碰撞後反應就很難調了,這個部份我們有自己寫碰撞反應,
沒有用內建的.
5.其他- 可能會用的其他系統,如Boost/跟隨前車汽流/力回饋方向盤等
後話:
這麼多東西到底要作多久啊?根據以前經驗,配合2~3個神手(我不是..)
2~3個月就可以有滿像樣的汽車物理. 不過後續難/麻煩的地方反而在
參數調整. 你的客群是誰,你的遊戲想要玩什麼, 基本上越真實的東西
玩家就越少. 但他們也會更忠實(反向來說是挑剔). 而且所謂真實
你其實也很難驗證. 遊戲製作成本有限(包含時間跟資金) 根本不可能去搞台
真車來驗他的各向參數.(當然你是跑車浪漫旅的遊戲製作團隊例外)
也很少人去開過真實的各種跑車. 你所謂真實的感覺 很多時候也只是玩過那些
號稱比較真實的遊戲產生的錯覺. 何況如果要體驗更接近真實的遊戲駕駛
你還得買專業的遊戲車架 方向盤等等. 因此看來看去 能作出號稱真實性很高的
賽車遊戲真的很少了. 現今多半的競速遊戲很多時候也都是有點唬爛..
但這也是理想與現實之間一種妥協的結果...扯遠了,
如果是學生時代當然可以儘管時做看看好像滿真實的車輛物理,
至少很多人都曾經用過這類的遊戲引擎作出來過了,絕對不是幻想.
※ 引述《oas (電動吉他手)》之銘言:
: 問題:如題
: 定義:適合:有效率
: 擬真性:遊戲內物件運行接近真實世界物理原則
: 物件:輪胎 車軸 車架 車殼 引擎 變速箱...等賽車組成原件
: 物理原則:運動定律 重力 抓地力 碰撞 變形 風阻 氣流 熱力 天氣...等
: 前提:1)先求有物理性 後求畫面
: 2)單純探討Unity、UE4或其他類似...等免費工具 有效率 之可行性
: 執行內容:龐大 遊戲物理公式建立和車輛特性數據參數取得
: 對象:喜愛擬真性賽車玩家
: 聲明:1)討論目的非否定現有遊戲引擎 能夠充分利用、發揮工具才是關鍵
: 2)擬真性為一賽車遊戲類別 非排斥或不玩其他非擬真性之賽車遊戲
: 參考:IndyCar Racing 2 (1995) https://goo.gl/d1dazZ
: Richard Burns Rally (RBR)(2004) https://goo.gl/1aPvAO
: https://goo.gl/Nnj2ZB
: rFactor 1 (2005) https://goo.gl/nCnShL https://goo.gl/M6NHh5
: rFactor 2 (2013) https://goo.gl/h5g2su https://goo.gl/SThDsN
: https://goo.gl/6kJUVp https://goo.gl/93vWyU
: Raceroom (2013) https://goo.gl/pKfSy3 https://goo.gl/5rSC5o
: iRacing (2008) https://goo.gl/lUwJEm https://goo.gl/h2BViN
: 另外車體損害模型 BeamNG.drive (2015) https://goo.gl/0LxJn4
: Next Car Game (2014) https://goo.gl/K776fh
: 少數模擬變形地面與彈性車體 Spintires (2014) https://goo.gl/5t3ut2
: 想法:非要爭論甚麼 只是希望討論這個題目
: 感謝各位!
: 以下為 #UNITY飛機不會飛# 原文之下的 推文討論
: ==============================================================================
: 推 oas: 借題問一下 如果會寫程式碼 是否也可用unity也寫出近真實的 10/20 17:21
: 推 oas: 物理模擬(如賽車物理) 而做出擬真的賽車遊戲如RBR rFactor? 10/20 17:23
: 推 bantime: 理論上可以,不論效能狀況下 10/20 18:58
: 推 oas: 喔~ 對 還有效能問題~ 原來... 那是哪些因素會影響效能? 10/20 20:09
: → bantime: = = 很多因素啊 這要我怎麼講 10/22 00:16
: 推 gino0717: 隨便講一個,如果你那個賽車的model做得很漂亮,他會跑得 10/22 01:05
: → gino0717: 很慢很慢 10/22 01:05
: 推 osanaosana: 應該說是model的面數太高,光影特效太多之類... 10/22 01:41
: 推 oas: 那unity是不利於這種製作(高面數,特效)嗎? 另外 我想的是 10/22 08:38
: → oas: 車輛物理性第一(輪胎摩擦力.車輛慣性.車體剛性.等) 畫面其次 10/22 08:42
: → oas: 任何引擎都可做嗎? 如Unity UE4...等 還是說會有各位說的效能 10/22 08:44
: 推 oas: 問題? 其不過我看各強調賽車物理性的遊戲都用自家開發的引擎 10/22 08:51
: → oas: 居多 rfactor,raceroom,iRacing,RBR,近期Asseto Corsa, P.Car 10/22 08:54
: → dreamnook: 比較特定領域導向的話Unity可能不太適合(個人認為) 10/22 08:56
: → oas: 應該都是~ 我原以為效能問題是在說處理這些物理運算的部分~ 10/22 08:57
: → dreamnook: 但你可以先試試看 unity有standard assets可以下載 10/22 08:58
: → dreamnook: 裡面有賽車的prototype可以用 10/22 08:58
: → dreamnook: 我現在轉純indie的關係暫時不會用到太細緻的物理效果 10/22 08:59
: → dreamnook: 或許unity有辦法 只是還沒有團隊弄出來而已 10/22 08:59
: → dreamnook: 目前物理運算最誇張的我覺得應該是next car game 10/22 09:00→ dreamnook: 不過這家也是自己寫引擎就是... 10/22 09:00
: 推 oas: 對對 正要提到next car game跟BeamNG.drive這兩家的車體剛性 10/22 09:03
: → oas: 不過這兩家在車輛操控的動態 感覺還不到擬真(模擬器)的階段 10/22 09:07
: 推 Eric0605: unity當然可以做賽車 他本身就有demo是賽車了 10/22 19:03
: → Eric0605: 車輛物理用的效能不高啦 10/22 19:03
: → Eric0605: 還有國內有公司遊戲團隊早就用unity再做了 10/22 19:04
: → Eric0605: 遊戲都商業化至少三年了 而且手機也有很多賽車遊戲用 10/22 19:05
: → dreamnook: 如果要走到細緻的話應該不會拿手機考慮… 10/22 20:03
: 推 oas: unity的賽車Demo有下載玩過 不過跟擬真物理還差~~~~~~蠻遠的~ 10/22 21:47
: 推 oas: 還有 "車輛物理用的效能不高" 是甚麼意思? 程式碼很少 還是? 10/22 21:51
: 推 lzainside: 回一下賽車的,要有真實扭力拉力加速度大概都不是問題 10/23 02:38
: → lzainside: ,只是要去不斷嘗試抓到真實感吧,畢竟是遊戲,真實感 10/23 02:38
: → lzainside: 是創造出來的,不見得就是按照真實世界的公式或法則, 10/23 02:38
: → lzainside: 再來是效能是根據你要發布的平台,pc當然就能比較揮霍 10/23 02:38
: → lzainside: ,行動裝置就必須斤斤計較,影響效能的地方很多,像是 10/23 02:38
: → lzainside: 過於浪費的粒子系統,過多的點光源,沒有在camera但也 10/23 02:38
: → lzainside: 同步運算的資源,過高三角面的模型等等諸如此類原因都 10/23 02:38
: → lzainside: 會影響,有些可以透過良好的程式碼或是概念,技術去避 10/23 02:38
: → lzainside: 免,例如靠uv貼圖繪製出立體感取代高模等等 10/23 02:38
: → dreamnook: 創造真實感 一台車要7000萬(x) 10/23 07:41
: 推 gino0717: 運算都放在錢包物理上惹 10/23 08:14
: → Eric0605: 真實車輛物理碰到東西就停下來 甩尾馬上降速怎麼玩? 10/23 10:53
: → Eric0605: 車輛物理公式和碰撞大部分都經過某種程度的簡化 10/23 10:53
: 推 oas: 錢包物理 XD d大也很幽默~ 我的前提是 目標:成品是模擬器 10/23 15:45
: → oas: 問題:免費的引擎如unity,ue4 可否做成(有效率)擬真賽車遊戲( 10/23 15:48
: → oas: 近真實物理)? 以目前看來多是打造自有引擎為多 所以想問問看 10/23 15:50
: → oas: 以目前大大回答是:不是問題, 我的理解:要會寫code+輸入近真實 10/23 15:54
: → oas: 物理公式。喔對還有 平台是PC。我有說過畫面可以先不是優先 10/23 15:59
: → oas: 以目前現況 畫面都不錯了 可是車輛動態擬真性就有高有低 10/23 16:02
: → oas: 再來要說的是 遊戲擬不擬真沒有問題 模擬器也沒比較好、高級 10/23 16:05
: → oas: 是要看玩家喜好跟遊戲客群~ 我兩種都喜歡 在此前提下 為何好 10/23 16:08
: → oas: 玩不可加擬真? 是否可透過unity,ue4+程式功力達成? 我想市面 10/23 16:12
: 推 oas: 上較少擬真是:研發擬真=$$和市場小。還有賽車vs.模擬汽車 10/23 16:17
: → oas: 以現實中物理不像是 "碰到東西就停下來 甩尾馬上降速" 這樣 10/23 16:18
: → oas: 所以 如果遊戲可以擬真近似真實 應該不會有不可玩的問題 10/23 16:19
: → oas: 世界上任何一賽車賽事沒有碰到東西就停下來(致命撞牆除外) 10/23 16:21
: 推 oas: 然後甩尾是駕駛手法是一種物理現象 在低速灣沒有降速問題(因 10/23 16:24
: → oas: 本來就低速)但透過後輪鎖死+車尾慣性讓車輛可以快速轉向 所以 10/23 16:26
: → oas: 拉力賽事會用 另一種專門甩尾的賽事D1 也可以看看 這些都擬真 10/23 16:27
: → oas: 的話應該沒有怎麼玩的問題 只是客群方向的問題~ 10/23 16:30
: → oas: 我沒有冒犯和挑戰的意思 或許我的問題是理想化或說不清楚 10/23 16:32
: 推 oas: 我對做賽車模擬器的理解是:如果把物理定律寫成程式碼 建構出 10/23 16:38
: 推 oas: 模擬世界物體物理運作的規則來建構一個遊戲引擎。(多打了如果 10/23 16:43
: 推 oas: 譬如:牛頓運動定律跟自由落體寫入遊戲引擎 撇除做遊戲來說 10/23 16:50
: → oas: 在程式測試上 如果有考慮到重力 空氣阻力等參數 結果應該可以 10/23 16:51
: → oas: 近現實數據吧? 如果這樣的話 應該要調整的地方不多吧? 10/23 16:56
: → oas: 不過 要全面模擬一輛車的話 或許如大大講的上千萬或上億~ 10/23 17:03
: 推 oas: 畢竟 要取得數據的零件太多了~ 10/23 17:09
: 推 xx1234561: 我覺得你可以開一串討論 不然這篇太長了.. 10/23 19:18
: → dreamnook: 所以我才說你可以先做看看XDDDDDDD 10/23 19:48
: 推 oas: 好的 感謝以上各位!!! 10/23 22:21
: 推 Eric0605: oas你討論的東西已經偏向企劃了,遊戲擬真當然可以玩 10/24 00:29
: → Eric0605: 但是擬真的東西就是沒那麼好玩 競速遊戲講就"速度" 10/24 00:30
: → Eric0605: 輕輕擦到牆 撞到東西 過彎 真實世界中都會/要大減速 10/24 00:30
: → Eric0605: 當然有很多賽車遊戲就是這麼擬真 例如GT系列 10/24 00:33
: → Eric0605: 對應的玩家就需要很hardcore 一般玩家很難輕易上手 10/24 00:34
: → Eric0605: 老實說 要作真實的東西說不定還比較簡單 10/24 00:35
: → Eric0605: 物理公式就擺在那邊 按照一個一個component開發出來 10/24 00:35
: → Eric0605: 不會遙不可及, unity絕對寫得出來 10/24 00:36
: → Eric0605: 但後續參數調整的地方才是困難之處 10/24 00:36
: → Eric0605: 你的目標客群玩家是什麼 如何把車輛調成他們喜歡的樣子 10/24 00:37
: 推 Eric0605: 另如果要模擬真實世界 調整的參數才多了 10/24 00:39
: → Eric0605: 拿碰撞來說 你車子長寬高質量重心硬度等都影響碰撞反應 10/24 00:40
: → Eric0605: 引擎內部齒輪箱 扭力曲線 車輛懸吊 輪胎摩擦 TCS ABS.. 10/24 00:42
: → Eric0605: GT系列如果接上方向盤還可以模擬力回饋 10/24 00:43
: → Eric0605: 你車輛是後驅 前驅 四驅 轉向能力 空氣阻力 10/24 00:45
: → Eric0605: 如果跟隨前車 前車車輛汽流可以幫你加速 10/24 00:45
: → Eric0605: 等等 不勝枚舉 10/24 00:46
: → Eric0605: 專業的賽車遊戲開發團隊通常都會為了調整另外開發TOOL 10/24 00:47
: → Eric0605: 所以 千萬別再說 調整模擬真實世界中的車輛參數很少了 10/24 00:48
: → dreamnook: Eric從這邊一坨推文來看我覺得你對car game很熱衷 10/24 01:24
: → dreamnook: 但讓oas他/他們去硬幹其實是沒什麼關係的 10/24 01:24
: → dreamnook: 在開發過程中會遭遇到很多發想時沒注意的東西 10/24 01:25
: → dreamnook: 要嘛突破, 要嘛拐灣, 要嘛跳過 但總是做了會比較好XD 10/24 01:26
: → dreamnook: 從程式方面考慮 我會覺得在Unity用Component寫物理.. 10/24 01:27
: → dreamnook: 好像有一點浪費PhyX...= =||| 10/24 01:31
: 推 oas: 哇 e大沒錯 你說的參數就是我所了解的擬真賽車遊戲 而且也讓 10/24 01:33
: 推 oas: 我知道一般遊戲引擎就可寫~ 這些參數我都知道 所以我才說要 10/24 01:36
: → oas: 取得數據的零件太多~ 我所說的要調整的參數不多是指 物理公式 10/24 01:38
: → oas: 寫成程式輸入後 把測試參數輸入後 所得的結果應該跟現實世界 10/24 01:40
: → oas: 測出來的數據會差不多 所以公式本身就不用在程式碼上多做調整 10/24 01:42
: → oas: 而不是做擬真賽車遊戲本身不用很多參數~ 就是要模擬的物件 10/24 01:45
: → oas: 之多 才在想是否那些遊戲是否用自有引擎(工具)才辦得到~ 10/24 01:47
: 推 oas: 另外 擬真好不好玩 真的要看客群 但客群真的很小 (=>我) 10/24 01:50
: → oas: 你可以看看 RBR 2004出來的拉力賽車 現在還有人辦賽事聯盟 10/24 01:53
: → oas: 也是至今公認最擬真的拉力賽車遊戲 http://goo.gl/rRdyNI 10/24 01:56
: 推 oas: 這是他們開發引擎損害的概念~ 然後iRacing也有幾萬的訂閱 10/24 02:03
: → oas: 我另外開一篇好了 真的感謝各位大大~ 10/24 02:05
作者: oas (GTr)   2015-10-25 18:56:00
天哪 太屌了 只能先推了~ 所以說工具是看人、看目的的~追根究柢還是要看"擬真"的物理要涉入多深 來選擇開發方式~
作者: dreamnook (亞龍)   2015-10-26 10:09:00
先做下去吧XD 很快就會知道問題在哪裡
作者: LayerZ (無法如願)   2015-10-26 11:35:00
客群那邊真的是金玉良言..
作者: FukadaKyoko (小毛哥)   2015-10-26 18:53:00
這篇有點殺XD

Links booklink

Contact Us: admin [ a t ] ucptt.com