VR開發的煩惱 範圍限制

2021-07-16 19:49:56 字數 875 閱讀 4164

在vr的開發中,特別是需要通過玩家真實移動來進行遊戲的遊戲。目前遇到了乙個惱人的問題,

就是玩家的移動和物體碰撞。

乙個是要求開放,自由自在;乙個要求要在範圍內,不要出圈啊!!

這樣就造成,要是新增碰撞,玩家遇到牆,遊戲中的牆就會在物理的作用下,迅速的抖動。你們都知道,抖動是vr的死敵。(說到這裡,多說兩句,策劃居然要求在遊戲中開槍的時候,要求抖動鏡頭——被反駁回了,我們為了讓鏡頭靜止付出的各種努力你居然無視,還要新增認為抖動。最後妥協了乙個其他方法,沒有那麼暈,但是還是不要嘗試,所以就不寫出來了)

那還要有碰撞,還要有自由。怎麼辦呢?

在玩家定位的過程中,遊戲中有牆體,實際中的牆體也存在。玩家容易撞牆,但是還容易卡在牆的中間。玩家若強制被復位,這時候在物理位置就會造成偏移。要是玩家在乙個場景中,肯定會造成在開始的時候還可以玩,一旦時間久了或資料準確性下降,就會產生玩家根本到達不了虛擬的指定地點,完不成遊戲!!

太尷尬了!!

那怎麼辦呢?

就跟steam的遊戲一樣,使用虛擬的網格作為類似牆體,來提示玩家的你已經出了識別區域或活動區域。

這個的好處是就是相對容易實現,新增**,在**裡面做做判斷玩家位置或相對起始點的移動距離,來顯示虛擬網格。

不足能就是打斷遊戲的連貫性,這個容易打破vr的沉浸感,正爽呢,出來個玩意嚇人,出戲。真是惹人惱啊!!

還有那就是不要碰撞了。

沒有碰撞,玩家穿牆明顯,體驗詭異。能不能就是可以穿牆的遊戲,作為樂趣呢?這個就是遊戲設計的意義了。要是設計乙個***的遊戲,那用這個穿牆術也可能會點意思啊!!

再有就是現在大多數的處理方式,不要設計這種實體的牆體之類的碰撞包圍盒子,用乙個平台或限制活動範圍來處理,這當然也需要根據遊戲和實際需求來做。

目前就想到了這幾個,想法就這樣。

通過限制變數的範圍

請注意,在巢狀塊變數可以有名稱的變數的內外塊。當這種情況發生時,巢狀 變數 隱藏 的外部變數 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 intmain nested nvalue destroyed nvalue now refers to the outer bloc...

限制RICHTEXTBOX的輸入的範圍

region 設定 和 獲得游標所在的行號 要在本類中初始化 richtextbox1 this private int em lineindex 0x00bb private int em linefromchar 0x00c9 system.runtime.interopservices.dll...

限制QLineEdit的數值輸入範圍

在使用qlineedit輸入數值時,經常遇到限制其範圍的需要,比如角太陽高度角範圍為 90,90 經度值範圍 180,180 方位角範圍 0,360 qt提供了qintvalidator和qdoublevalidator可以限定數值輸入範圍,如使用qintvalidator限制整數的數值範圍 例1 ...