如何避免和解決 3D 遊戲中因視角而導致穿越貼圖的問題?

情況1)因為視角的原因。比如人物過於貼近牆壁或是整個場景邊緣,而因為轉動鏡頭而導致玩家看到了本不應該看到的地圖外內容。

情況2)比如生化危機,端著槍的槍管,如果人物貼近牆壁。會導致槍管穿越牆壁的不真實感。

諸如此類的問題,如何避免和解決?


問題1, 一般場景都會有環境Collision, 在Camera上進行碰撞檢測即可。問題的核心在於,如果Camera檢測到了牆壁的Collision,那麼它的行為將會發生怎樣的變化,從而杜絕穿牆的發生。做到不難,做好不易。這是第三人稱3D遊戲的一個普遍難題。

問題2,這不是一個問題,而是一個選擇。性能,製作成本和最終效果之間取捨的結果。槍管穿牆的不真實感比起複雜的Collision檢測和相應複雜化的動畫和AI問題,顯然是完全可以犧牲的。正如我們常常說的,沒有做不到的,只是時間和錢的問題。遊戲開發往往就是在一堆選擇中曲折前進。

我們來仔細想一下,假設人物端著槍行走,角色和槍都有獨立的碰撞檢測。槍在身前,槍碰到了牆,但是角色尚能進一步上前,那麼人物就應該變換姿勢,比方說抬起槍,視覺上避免穿牆發生。這就導致了新的動畫的產生,如果角色有6種行走奔跑的姿勢,那麼就要增加相應的動畫。再比方,角色緊緊靠著牆,做抬起槍口瞄準的動畫,比方說兩手平伸,但是空間不夠,那麼就要做相應的處理,要麼新增加靠牆瞄準動畫,要麼後退一步再瞄準。現實中會出現層出不窮的各種問題。這些都是需要撲人力物力上去解決。性價比太低,所以被犧牲掉了。事實上,在Uncharted 3中你可以到人物有大量的動畫,都是針對環境作出的。比方說,行走的時候靠近牆壁,手就在牆上扶一下,路過其他角色,側身讓一下。這的確看起來真實了一點點(對,一點點,你每次扶牆動作都一樣么?),但背後是巨大的動畫庫和血淋淋的開發成本。


碰撞體改成帶體積的而不是用點或線


離牆一定距離放置阻擋,這樣不能靠近邊緣。

或者修改碰撞演算法,增加物理引擎,將靠近的牆壁的槍管與牆壁走物理碰撞,這樣就不會穿牆。

但這兩個都是增大工作量但不帶了顯著提示的活。。


推薦閱讀:

如何評價煉金工作室系列?
如何評價任天堂粉絲因為VGTIME給了異度神劍2和神舞幻想同樣的8分而人身攻擊其網站小編?
如何評價PS3的E3破解版?
switch卡帶和數字版優缺點?

TAG:遊戲 | 遊戲設計 | 遊戲開發 |