楼主:
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