【逐幀分析】《黑神話:悟空》gameplay相關的技術和調整細節整理
- 視角是戰鬥策劃,稍微懂一點客戶端的視角,有些問題會帶著說一下,因為是黑盒所以估計有些東西會有誤判,但原理應該差不離;
- 幀數的描述基於30幀/秒;
- 沒經歷過深度的開荒ue4專案,所以裡面的很多經驗是基於unity說的,實際有可能不一樣;
- 都是白話,不糾結融合混合transitionblend過渡這些字眼,結合上下文
- 裡面所有基於事實和目的的推測都有可能只是人家出bug了沒修好,策劃:設計如此
按官方公佈視訊的時間軸來寫:
[00:00-01:35]純播片不說了,原畫和場景炫技,布料做得很棒,不過應該是特殊做的。
[01:35-01:40]正常推進的場景攝像機突然因為飛進來的金蟬而被帶動焦點,但行進路線沒有發生改變,應該是場景攝像機沿設定好的路徑和速度進行推進,並設定一個時間點將視焦點轉移到角色身上,金蟬是K的固定動畫,差不多01:39的位置金蟬有一次不和諧的速度變換,猜測是在附近交給控制端,並將攝像機切進追背視角的。
[02:13]這裡見到第一個小boss,停下後同樣的鏡頭拉近佐證了之前的鏡頭變換,變身狀態停下時相機會逐漸追上角色拉到最近端,向遠離鏡頭的方向行走時拉遠到我們看到的“常規”距離。
這裡變身逐幀看下來,在空中出現時是背對敵人的,從空中順時針旋轉180°落地,還特意做了向右側的緩衝卸力表現。本以為是根據敵方單位與自身面向夾角適配不同落地動作,但根據後面的第二次解除變身是完全相同的動作來看,應該是故意做成了背對敵人下落以增加動感。
[02:15]這裡捉個蟲,落地動作結束後回到idle的時候抖了一下,因為兩個動作root沒對...齊...我覺得也不大可能,不過有一幀武器整個脫手了且角色整體被強制轉向了敵人。回想了一下,之前遇到這種情況好像是動作過渡時吞掉了一部分旋轉角度所致,不清楚是不是這個原因。頭部明顯加了IK保證一定角度內一直注視敵人。
前一幀
後一幀
[02:16]第一次基於敵人後退,這裡能看出來戰鬥的基礎移動是前半圓(似乎比180°大,200°左右)用直線跑步動作靠程式插值轉向,後半圓用後退動作的blendtree的形式,轉向細節比較少沒看到做側傾動作融合的痕跡,後退blendtree大概是2-3個動作組成,並且沒有前後半圓的過渡動作(強行transition,約4幀左右的過渡時間)。這種做法會導致超過臨界的大轉向過渡非常快,稍微有些生硬(見圖中連續兩幀的腿部差別,已經算是跳變了),但同時響應操作的速度也能拉滿,比較契合這種硬核的動作遊戲戰鬥。
然後說一下對面怪物,攻擊有點拿不準,似乎滑步了又似乎沒滑步,蓄力過程似乎插值旋轉了又似乎只是腳步緩動,但攻擊又明顯有追蹤效果,我覺得是有這些可能的:
- 追蹤(角度插值)玩家位置
- blendtree做多個特定攻擊角度動作的混合
- 多段拆分的混合做法
判斷具體是怎麼做的需要事實佐證,那麼我們來看看頭兩刀都有哪些細節:
- 特效整體較平滑,但有幾個節點的角度會突然不均勻,比如第二刀前段出現了一個明顯彎折
- 他的攻擊是按照角色翻滾之後所在的位置進行修正的
- 動作從開始揮擊開始就比較流暢了,可以認為是一個動作
[02:17]第一次翻滾為右後向,第二次是左前向(02:21這裡的後翻滾確認了前面這個是左向的,而緊接著與第一次映象的左側翻滾,證明了側滾偏前和偏後分成了兩個不同動作)。這裡有個細節,第一次翻滾落地結束後,猴子立刻面向敵人站了起來。動作是在地面躺平剛開始起身的時候就在做轉向了,看起來不是用起身轉向動作做的拼接,我傾向於認為這裡是專門考慮了鎖定狀態下,位移造成的視角變化做的側向翻滾動作。這種做法會導致非鎖定狀態下的側向翻滾帶一點轉向,不過帶一點帶一點吧反正後來好像也沒用過非鎖定。
[02:19]全視訊第一次主動攻擊,武器打擊盒判定、擊中位置按武器行進軌跡播放受擊特效、打擊自帶2-3幀頓幀,頭一幀是不是做了過渡太模糊了看不清,打擊盒判定擊中位置的通病“想打的位置和打到的位置不一樣”這個問題沒解決掉,圖中可以看到第三擊橫掃是想打腰或軀幹的,但受擊特效播在膝蓋,因為你不知道打擊盒會不會剛剛好卡在一個奇葩的位置打中膠囊體。這種問題交給我的話可能會選擇對特定攻擊的hit加帶規則限定的自定義offset,比如我大概知道這一擊希望打在什麼地方,就限定一個高度值範圍,不夠的往範圍內帶帶就行。不過另一個常見問題“攻擊切線因為打擊位置不確定可能偏離打擊軌跡”沒出現挺棒的,我除了手配還真沒想到什麼好辦法。
[02:26]開頭耍的花棍是蓄力的開始,仔細看蓄力特效即可確認。不知道輕攻擊是ButtonDown響應還是ButtonUp響應,雖然從型別分析大概率是ButtonUp,但這個動作跟前面攻擊的起手似乎沒有相關性,沒看到滿足蓄力判定後的動作切換,拿不到實錘。
[02:29]繼續看前後幀對比,想要做頓幀的話,受擊特效就必須是快進慢出,否則頓的一瞬間什麼效果都沒顯示出來,只會造成卡頓不流暢的感覺。
以及受擊動作明顯是瞬切,看一下被埋沒在光效中的影子就知道了。
[02:32]這時候的猴子起跑階段有滑步,說明跑步狀態和idle是分開的,通過transition過渡,如果想去掉這個滑步(雖然擱我是懶得搞的),可以學習尼爾在起跑時加一個起跑動作作為中轉。另一種成熟方案是將idle-walk-run組成一個blendtree,這種方案的優勢是起步會有一個比較明顯的從靜到動的過程,也基本不太會出現融合過程的額外位移,但中間狀態的轉換和辨認都比較困難,我目前專案接手時就這樣了沒得改,也被這個問題搞的很毛,以後肯定不會優先選就是了。
[02:34-02:35]投擲物比較難確認,找不到接管跟交還武器位移的點在哪,飛行路徑的規則樣本也太少了判斷不了,不過這正說明了動畫做的天衣無縫質量非常高,不知道未來可以擴充套件到什麼地步~
[02:40-02:44]真好看啊,這特效貼合程度說沒一幀幀比著做我是不信的,上下半身的配合也非常完美。唯一可惜是看不到這一招打人的樣子,沒辦法判定打擊盒的繪製精度和判定時機,要這兩樣也貼準了那調教是真的很用心了。箭被打飛的特效看起來是隨機的,看起來像是一個帶物理效果的特殊模型,但這其中還有被打斷成兩截的,這個效果要是特意做的還則罷了,假如彈飛的還是原本射出來的子彈,通用當前世界的物理規則的話,那就真的很驚豔了。
狼那邊會在射箭的同時緩緩後退,簡單的做法是固定動畫,將後退當做後坐力也說得通。另一種可能是AI根據當前角色靠近的行為作出下半身後退的判斷,這個匹配就複雜多了,射箭本身就會涉及非常多的上下半身狀態遷移,想做單做後退效果好是不大可能的,要把整套四向走的動作遷移都解釋清楚才行。
[02:49-02:50]這裡從疾跑回到普通跑的過程右腳出現了捯腳的情況,沒猜錯的話run和rush過渡時是沒有按照幀數百分比進行匹配的,看起來迴圈動作起始幀應該是右腳向後蹬,可以的話做個同步讓他們按照相同的比例進行過渡會比較好。
[02:53]這裡攝像機發生了一次視角變化,角色在走過去停住前也有一幀跳變(點頭),估計是為了接管角色操作和同步位置?剩下的都是播片沒啥可說的
[03:09]看見這個特效折角了嗎,說明特效是真的掛在武器上隨動的,遊戲動作和真實世界不同,是一幀一幀出現的,而且有些動作並不是順勢而為,而是要強行克服慣性,這些折角未必每一幀都好看,想要解決要不就做成假特效片(如圖2),要不就只能寄希望於取樣平滑。
[03:15]這裡的彈反和後續打靈虛子效果對比可以確認應該是根據攻擊的屬性,會反饋不同的反彈特效。比如這裡是火屬性攻擊,就會反彈爆燃的火焰,如果是水屬性攻擊,就會濺起奔湧的浪花,如果是雷電...雷電奉還!
[03:23]破碎效果不錯,是用的chaos嗎?官方老哥要是能看見可以講講效率如何麼,以後萬一要用也有個參考。
[03:53]受擊瞬間的站立姿勢,這時候觸發頓幀可太尷尬了,起碼做個後仰
[03:55]看第二次受擊,這就是打擊盒判斷受擊位置和方向的不可控部分,至少目前我認為沒辦法杜絕,要不忍,要不手調
[04:02]一次性把人扯過去同步位置,老頑皮狗了
[04:09]這裡沒看懂,向右跑看起來是有起跑動作的,但前向我怎麼都看不出來有,如果只有需要有轉向的情況下才會加起跑,又不該這麼早做旋轉插值
[04:10-04:15]腳步聲根據地面材質不同會有變化,但戰鬥時完全聽不到,一種可能是戰鬥跑步特意獨立了一套動作沒配,還有一種是加了動態音訊弱化在戰鬥時只會徒增干擾的腳步聲音,無論哪個都做到位了。
[06:48-06:55]四連砸地東西蠻多的,每個敵人在不同位置的受擊動作都不一樣,包括有些人是被擊倒狀態的二次擊飛表現也不同(雖然沒看到側向的動作,只做了前後兩向?)。我比較好奇如果這場戰鬥發生在其他材質的地面上(比如淺水),小兵擊飛落地的煙塵和飛濺的石頭會不會有改變?期待5年後能看到令人驚豔的結果。
[07:41-07:43]震屏很細緻,特意跟狗子拍地的位置對應
[08:00]這裡居然拍完地面抖了抖手,是固定動畫還是特意對標彈反??
剩下5分鐘下週再寫。
作者:什麼叫戰術後仰啊
來源:GAD
地址:https://gameinstitute.qq.com/community/detail/133509
相關文章
- 黑神話:悟空 通關感言
- 使用FModel提取《黑神話:悟空》的資產
- 《黑神話:悟空》今日全球同步上線
- 敢問路在何方——淺談黑神話悟空的關卡設計
- 寫在《黑神話:悟空》通關後:三界四洲
- 黑神話悟空-前所未有的團結
- 黑神話首支紀錄片獨家首播: 路在腳下|對話楊奇:《黑神話:悟空》的美術開發之路
- 為什麼遊戲科學的《黑神話:悟空》總能引發熱議和關注?遊戲
- 遊戲科學:這項技術讓《黑神話:悟空》解決了很多動作難題遊戲
- 黑神話悟空:放棄,決斷與未來
- 微服務框架相關技術整理微服務框架
- 重走西遊 《黑神話:悟空》今日全球正式釋出
- 《黑神話·悟空》是用什麼程式語言開發的?
- 如何看待《黑神話:悟空》對中國遊戲行業的意義?遊戲行業
- 《黑神話:悟空》158分鐘CG完整劇情合集 4K120幀最高畫質
- 《黑神話:悟空》深度解析:背後故事與劇情猜想
- 國產遊戲的崛起不僅僅只差一個《黑神話:悟空》遊戲
- IPv6 相關技術調研
- 《黑神話:悟空》爆火的背後:傳統文化與遊戲的交融遊戲
- Newzoo:《黑神話:悟空》歐美PC端季度收入高居第一
- Easysearch x 《黑神話悟空》有獎徵文獲獎結果公示
- c++ 相關的技術資源整理歸類C++
- 從黑神話悟空測試程式談顯示卡引數和最佳化辦法
- oracle 記憶體引數調整優化相關傾力整理Oracle記憶體優化
- 關於 webpack 你可能忽略的細節(附原始碼分析)| 掘金技術徵文Web原始碼
- 《黑神話:悟空》神話再現,虛幻引擎與Unity/C#誰更強?UnityC#
- 《黑神話:悟空》爆紅之後,我走進了遊戲科學遊戲
- oracle記憶體調整相關Oracle記憶體
- IGN:《黑神話:悟空》以85.2%的支援率領先於年度遊戲排名遊戲
- 網路拓撲調整和PIX相關問題
- oracle 記憶體引數調整最佳化相關傾力整理Oracle記憶體
- oracle之 調整 I/O 相關的等待Oracle
- 一個小的技術細節
- CodePen的CSS技術細節CSS
- 《黑神話:悟空》爆火之前,還有哪些國產西遊單機遊戲能“打”?遊戲
- 騰訊投資《黑神話:悟空》開發商遊戲科學,獲5%股權遊戲
- 給大家拜早年,遊戲科學公佈《黑神話:悟空》賀歲演示遊戲
- 《黑神話:悟空》WeGame預購開啟,可獲專屬紀念卡GAM