268.社長真乃神人也!
章節報錯
“先別說不可能完成。”
青智源趕緊打住,“赤西桑,你也是程式總監,pokeni的元老,你要是一開始就打退堂鼓的話,以後其他同事們也沒法做事情了。”
“好,好的社長。”赤西健苦著個臉回應到。
“我們一個一個問題來解決。”青智源說,“先大地圖吧。”
“1000*1000對於程式來說,可能確實是有點大,載入效率慢可以理解,但是我們可以先做分塊載入嘛。”
“你先切割成4塊,實在不行就切割成16塊,25塊,都可以。只要能滿足流暢載入的需求就行。”
“中間過渡的時候有卡頓什麼的,都是很正常的。”
青智源說。
“但是,看起來過渡的時候會很彆扭呢。”赤西健說,“可能我在這個小塊兒上面看的所有東西都是清晰的,但是就隔了一米遠,結果前面這個地圖塊兒沒被載入出來,就全是空。”
“預載入。”青智源說著站了起來,在白板上面畫了一個圖示:
先畫了一個方塊,然後在方塊的四條邊上面又各自畫了一個方塊。
“伱看,”青智源指著中心的方塊說,“我從這個區域跑到這個東邊的區域,這個時候你別等我走到了你再把右邊的方塊給載入出來,而是我在走的過程當中,你就應該要載入右邊的這個方塊了。”
“然後呢,當我走到最右邊的這個方塊的時候,最左邊那個不是已經超出我的視野範圍了嗎?這個時候你就把它給刪掉就行了。
相當於我們同一時間只載入了2到3個塊兒,在程式開銷上面就可以得到最大程度的節約。”
而且,為了滿足這一點青智源決定在第一代《怪物獵人》當中,不投放坐騎系統。
玩家們的跑步速度也要做個上限限制才行。
“但是,哪怕是這樣,可能在怪物模型面數上面還是有困難。”赤西健繼續看著文件說,“草食龍,一種群居類怪物,經常會成群結隊出現,大概在4到6只左右。
我們現在對模型面數的支援,就沒有那麼多。”
“而且一個大場景當中,可不是隻有一種怪物會出現,會同時載入好多不同的怪物進來,也就是說,有可能在視野當中,會同時出現10多隻怪物,一旦發生這種情況,就會卡頓,甚至會導致系統崩潰。”
emmmm……
青智源託著下巴思考著。
赤西健說的問題是客觀存在的,畢竟現在的硬體水平就放在這裡,還沒有到達前世隨便揮霍的程度。
在2023年的時候,大概只有在手機上面才要節約資源,節約記憶體,在端游上面幾乎不存在這個問題。
你想想看,一個遊戲可以做到幾百G的大小,誰會在意這麼一點點的開銷?
手機是記憶體受限沒有辦法。
也就是說,現在的遊戲得按照手遊的開發標準來制定才行,能壓縮的儘量壓縮,能節省的儘量節省。
啊~
青智源不由得感嘆,還是太慢了,時代還是太慢了再發展迅速一些就好了。
“這個問題其實也好解決。”青智源拿起記號筆在白板上面寫了三個大字——
“LOD。”
“LOD?”
赤西健和小池一臉懵逼。
“分層顯示技術。”青智源用人話再說了一遍。
“什麼意思呢?”
“你看哈,”
青智源先在白板上面畫了一匹特別寫實的馬,然後再在旁邊畫了一匹馬賽克馬,再後面是一個不知道是什麼鬼的特別抽象的馬,大概也就只有幾根線條而已。
“我們製作不同的精度的模型。”
“近距離範圍內,按照優先順序最高,載入實際面數多的這個模型出來。”
“如果離得遠,沒有戰鬥需求和互動需求,但是又在可見範圍內的話,就可以使用粗糙一點的,面數少的這個。”
“再遠一點,勉強可見的話,可以只載入這個特別特別粗糙的模型,甚至不載入都行,只載入地形就行了。”
“除此之外,給地形、材質、不同的物體模型上打一個優先順序的標籤,這樣方便程式來進行判斷。”
“比如地形是最重要的,那麼在預載入的過程當中,就會先把地給載入進來,之後再是一些環境當中的重要元素,什麼大石頭啊,懸崖,河流……
就按照這個模式去做就行了。”
“哦哦,懂了懂了。”赤西健和小池點頭如搗蒜。
社長真是太可怕了。
居然能想到這種方式。
按照赤西健原來的設想,一個場景當中載入那麼多的東西進來,起碼得有幾萬面了,這程式消耗怎麼可能吃得消。
但是青智源一說分層級載入,預載入,突然一下子就把幾萬面給幹到了只有幾百面了,簡直可怕。
這其實還有一個好處,就是可以模擬真實的人眼。
人看東西,也是近處的圓形範圍內,越靠近焦點的越清楚,越遠離的就越模糊。
LOD做出來之後,其實也是這樣的一個效果。
離得越遠,載入的模型就越粗糙,面數越少,自然就越模糊。
不但不會因為面數減少而導致玩家們覺得不舒服。
反而顯得更加真實。
不過就像青智源說的那樣,你得將玩家的移動速度控制在一定的範圍內才行。
不然的話,當你的移動速度超過了預載入的速度,那就很容易穿幫了。
比如說旁邊這塊地板還沒載入出來,你就直接開著摩托車過去了,有可能一下子就陷入地板下面。
這也是很多遊戲當中常常存在的bug。
但是實際上就是因為預載入沒能匹配上的問題導致的。
……
“除此之外呢,程式那邊還需要做一件事情。”青智源說。
“嗯?”赤西健疑惑地抬起頭來。
“你們知道拓撲運算吧?”
“知,知道吧……”赤西健有點猶豫。
倒不是自己的程式水平不夠,主要是社長那副盛氣凌人的樣子,就好像是在課堂上面講課的老師一樣,突然提問學生,你一下子心裡面多少會有點兒慌。
“那就好辦了。”青智源說著,將一個粉筆盒放到了桌子上,然後再掏出一根粉筆來放到它的後面,只露出半截腦袋。
“在3D領域當中,物體之間其實是有遮擋關係的。”
“比如說,這根粉筆,有半截藏在後面,那麼它從你們的視角來看,其實就只有一半可見。”
“在這種情況下,按照一般的程式邏輯,不管後半部分可不可見,是不是也會被載入出來呢?”
“嗯,”赤西健點點頭,“那是肯定的。”
“但是實際上,我們並不需要載入後面的部分對不對,因為對於玩家們來說,藏在盒子後面的半截粉筆是個無效資訊,那麼就應該將後邊這個部分給裁掉。”
“而且,就粉筆盒而言,能被玩家們看到的也就只有三個面而已,在後面和底下的面也是多餘的,將這些面都給裁掉的話,記憶體開銷一下子就釋放出來了。”
納尼?!
赤西健和小池兩個人都驚呆了。
短短的一個教學,立刻就讓他們見識到了社長的程式功底有多麼的強大。
甚至你都不知道這算是程式範疇還是數學範疇內的東西。
“但是,它是個整體,沒法做切割啊。”
“這不就來了嗎,用拓撲演算法計算一下,將後面不可見的部分給裁掉就行了。”
“那不就得要求一個實時運算嗎?這個運算導致的開銷似乎也不小。”
唔……青智源託著下巴,赤西健說得好像有點道理啊。
差點兒忘記了時代限制。
現在的算力可能真的不夠支撐。
面數載入是少了,可是帶來的實時運算量增加了,究竟哪一種更加合算,還真的不太好說。
“那就這樣,”青智源說,“靜態的物體構成,比如說這些東西不會動,並且遮擋關係都是固定的,那麼就按照我說的,在美術製作完成之後就由程式來做第一次的剪裁合併工作。”
“如果是會變化移動的,這樣的遮擋關係,你們就想辦法做最佳化,哪怕現在不行,未來肯定可以。”
呃……
赤西健狠狠皺了皺眉。
感覺工作量無形中又增加了不少。
前面說的東西是一個滿足基本需求,到這裡變成最佳化內容了。
眾所周知,程式最佳化是最難也最花費時間的。
……
“AI方面也很難做到吧?”赤西健難受地說。
他幾乎已經找不到任何可以刁難社長的問題了,只能透過最後一搏來死死掙扎。
如果這樣還不行的話——
我們就要開始動工去攻克這些可怕的難題了呢。
雖然說在青智源已經給出明確方案的情況下,倒也不算難,但是這都是工作量啊。
沒有思考的工作量,更加沒有成就感。
有的只是作為一個工具人的疲勞而已。
現在赤西健有些後悔了,不該這麼早來找社長的,應該自己拉著小弟們商量一遍,看看能不能找到解決方法,實在不行才去找社長,這樣才對。
赤西健再一次被社長的可怕的解決問題的能力給驚呆了。
還是太年輕,還是太單純了,低估了社長的實力。
想想也對,既然這兩個遊戲都是社長親自提出來的,他心裡面肯定有數,知道這玩意兒肯定能實現才讓開發的。
如果沒有想好方案,沒法實現的玩意兒,青社長估計連提都不會提。
“這麼多的怪物,各自都有自己的行為習慣,在面臨不同的情況時,還要做出不同的反應,不太容易解決呢。”
赤西健打出了自己的最後一張底牌。
“你們就做好行為樹的工具,然後交給策劃們自己去設計就行了。”青智源說,“AI智不智慧,做到什麼程度,你們就別管了。”
這玩意兒,幸好是交給神谷來做。
換成宮崎英高的話——
你想想,一個會讀指令的雌火龍有多麼可怕?
宮崎英高現在還沒有提出讀指令的概念,所以一切都還在可控範圍之內。
獵魔人2再難也是數值上的難,還沒有到機制上面的可怕程度。
等過幾年就不是這個樣子了。
……
可惡!
赤西健被碾壓得體無完膚,社長一句輕飄飄的【程式猿做好自己的事情就行】,相當於轟出了一對王炸,將他炸得欲仙欲死。
輸了,完全輸了……
赤西健心想這兩個遊戲看來是非做不可了!
果然,一切的努力都是徒勞的嗎?
青智源果然是不可戰勝的嗎?
社長果然是深不見底的啊!!
“我有個問題。”
美術總監坂田泰治弱弱地舉起了手。
“《蟲師》和《怪物獵人》當中,這些怪物和角色,其實都要用到大量的動作,這個工作量對於美術們來說有點太大了,我害怕吃不消。”
幹得漂亮啊坂田!
赤西健給他投去一個讚賞的目光。
這樣一來,這兩個專案就可以拖入長跑當中了,至少得做個3年5年的吧,平攤下來的話,程式這邊的平均工作量就自然而然減少了呢。
而且未來隨著硬體的發展,搞不好有些工作在硬體上就解決掉了。
“哦,對。”青智源這才想了起來,坂田泰治提了一個很重要的問題。
之前的3D遊戲,裡面的動作都是美術來進行繪製和調整的,其實是一個比較笨的辦法。
都已經進入3D時代了,就該拋棄一些落後的製作方式了呢。
“是時候引入骨骼動畫了。”
“骨骼動畫?!”坂田泰治和赤西健雙雙震驚。
“對。”
青智源站起身來,“你們都玩過一些有關節的玩偶吧?”
“當我們擺動娃娃的手的時候,它裡面的骨骼就會跟著一起轉動,然後將玩偶的動作給固定住。”
他自己做了一個示範,“學美術的都知道,我們人體運動,都是透過肌肉的舒張和收縮來實現的,比如說屈肘,會運用到我們的肱二頭肌。
相當於我們的肌肉帶動了骨骼進行運動。
但是呢,我們現在做3D動作的話,就要反過來。”
“反過來?”
“對,反過來。”
“這一次,我們需要做的是讓骨骼來帶動肌肉,帶動不同的部位進行運動。”
青智源先是畫了個人,然後在裡面畫了一個骨骼框架。
“我們可以給模型定義好自己的骨骼,其實相當於在模型上面做了許多個連線點,這些點連線起來之後就形成了一個骨骼框架。”
“在之後呢,只要骨骼進行運動,比如說屈肘,那麼骨骼動畫播放的時候,模型就會被帶動起來。
以此來匹配美術們想要的運動效果就行。”
“程式這邊提供骨骼動畫支援,然後由美術們來自己調整。”
“……”
赤西健和坂田泰治兩個人都聽傻了。
尤其是赤西健。
好傢伙,明明是美術們就能解決的問題,結果怎麼稀裡糊塗的就變成了程式的工作了呢?
坂田泰治這邊想的卻是:
納尼?
整個美術的製作流程和方式都發生了改變。
聽起來好厲害的樣子,但是實際上做起來如何,他是心裡面一點兒底都沒有。
赤西健有些痛苦地捂住了臉。
我到底是為什麼要坐在這裡?
青智源表示,這才哪到哪啊。
骨骼動畫是3D遊戲當中的標配了,能夠節省美術們大量的時間,你只要調整好動作,按照一定的規律做好,之後放到遊戲當中就由程式來完成執行就行。
以後為了讓遊戲當中的角色有更好的動作效果,還得做動作捕捉器呢。
未來有了動捕技術之後,還需要再做AI適配,AI換臉,甚至是AI生成……
到那個時候,就不用人來進行調整了,只需要錄入,然後AI自動生成就完了。
道路還很長,同志們還要努力啊!
……
程式猿和美術們,在會議室當中就自己關心的問題一個個都討論了一遍。
新來的神谷英樹都看傻了。
這一幕似曾相識——
就像是看三國演義裡面諸葛亮舌戰群儒一樣。
(不用懷疑,三國演義很早就引入了霓虹,並且大受歡迎,很多霓虹人特別喜歡三國,甚至熟讀裡面的每一個細節。
好多經典的故事可以說是信手拈來。
前年三國演義電視劇以每集1.5萬美金的價格引入霓虹,成為熱播電視劇,霓虹人對此是特別狂熱的,甚至還一度帶動了相關的遊戲的火爆。)
此時此刻,青智源在神谷英樹的眼中就像是諸葛亮的化身一樣。
看到神谷英樹眼中的震驚,三上真司在旁邊笑著拍了拍他的手背。
“這都是正常操作,你以後會習慣的。”
“納尼?”
這居然是正常操作?
神谷英樹心裡面那個震驚啊,社長的知識儲備量和解決問題的能力也太強了吧,簡直可以用深不見底來形容。
太可怕了。
社長真的是太可怕了。
每問必答。
只要回答了,一定能讓程式猿和美術們心服口服。
瞬間就找到了製作的方向和解決問題的方法。
可是……
赤西健和坂田泰治並不需要!
他們巴不得社長也沒法解決,這樣就可以讓身上的擔子沒那麼重了。
越是討論,兩個人心裡面也越是慌張,怎麼工作量越聊越多了呢?
到最後,已經問無可問。
坂田泰治不時地給赤西健送去眼神:你可閉嘴吧你!
……
經過長達5個小時的討論,最後大家已經沒有了什麼可以問的了,方案什麼的也在會議上過了一遍。
走出會議室。
赤西健感覺腦子嗡嗡的。
可惡!
所有的問題又被社長給解決掉了!!!
……
……
————————————————————————
晚上還有一章
(本章完)