在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 ...