[程式] 問題,物件的地形移動與框選

作者: gmking (帝王之心)   2014-02-23 00:48:29
大家好,目前HOE團隊已經開始實作部分,以下是我們第一階段想要實作的系統
https://drive.google.com/file/d/0B_BC8XSz8r3tZzRuZHFLbVBORUE/edit?usp=sharing
目前還缺少對於unity有開發經驗的程式
會處理物件移動或者是讀取系統時間進行數值計算,還有製作動畫等
美術部分缺少會製作「地形模組」的高手~~
====================================================================
廣告結束,下面是問題......
因為我們經驗還不夠,目前有幾個問題想要請教一下大家
1.物件移動,因應地形改變移動速度問題
不知道您之前是怎麼做地形的?
因為我們想要做到單位移動可以因應不同地形而改變速度。unity可以內建地型模組但是
不好用(因為之後地圖很大很大,用他的內建程式沒辦法模組化),所以我們想要自己建模

但是不知道是直接定義物件的高度然後計算斜率,還是把地形模轉成矩陣之後利用高度差
來求斜率呢?
2.框選物件問題
因為我們想要製作RTS,利用滑鼠左鍵框選來選擇單位,右鍵點擊地面來移動,請問要如
何製作這種框選功能呢?利用UI?可是這是動態UI.....
====================================================================
問這種問題應該不會被打吧 囧
作者: GoalBased (Artificail Intelligence)   2014-02-23 01:00:00
很開心看到你們已經開始實做了 先推再來看系統
作者: azureblaze (AzureBlaze)   2014-02-23 01:28:00
2. http://ppt.cc/jY2d1.地圖資訊和地圖模組分開 模組只是顯示用的然後我覺得以要做的東西的難度,你們應該學習自行找答案以2.來說 http://ppt.cc/ObXZ
作者: GoalBased (Artificail Intelligence)   2014-02-23 01:44:00
你都PO聞了 卻只有文字..既然有展品就放上來吧
作者: gmking (帝王之心)   2014-02-23 01:46:00
謝謝您的回答!那個是功能展示品(PPT做的XD) 但還不完全真的要等我們功能做完再傳= =
作者: Ansaga (奈燦)   2014-02-23 01:56:00
地型的話要不要參考看看banished用的那個套件http://www.axisgamefactory.com/同事試用了一下感覺滿好玩的
作者: cjcat2266 (CJ Cat)   2014-02-23 04:06:00
幾個ray cast同時往下探測地形高度,用得到的資料算斜率
作者: gmking (帝王之心)   2014-02-23 09:27:00
感謝樓上XD這方法昨天晚上我們有想到看來真的就那幾個方法...剩下是pathfinding的問題了雖然A*有些瑕疵 不過應該會先用這個演算法謝謝A大的提供 這應該可以省不少時間= =(我們美術不會地形.
作者: Killercat (殺人貓™)   2014-02-23 12:39:00
erh, 我個人是有個比較不討喜的建議 就是圖像面先用2D來做Prototype,再用地圖的Alpha channel來模擬高度這樣可以先聚焦在遊戲的邏輯面 而高度部分一樣可以得到然後又不需要複雜的3D系統也可以做出prototype缺點的話大概就是高度會僅僅只有256階 但是系統會簡單非常多 也暫時不用接觸複雜的ray cast問題說比較明顯的缺點的話呢 就是這個沒辦法用A*很常搭配的導航網格做A* 但是普通柵狀的A*一樣能做 也一樣能及時filter掉不能走的框框 其實不會差太多人力是很有限的 很難一邊做3D引擎一邊做遊戲邏輯同時解決兩個毫不相干的問題 我會建議先盡可能簡單化遊戲邏輯以外的部分,專新先prototype遊戲邏輯會比較好另外我說真的 幾乎所有的PF演算法都是based on A*....最多最多就是heuristic function寫的好不好而已所以不會存在什麼「A*有些瑕疵但是還是暫時得用」這問題
作者: y3k (激流を制するは静水)   2014-02-23 17:25:00
1.我建議你們先用2D做... 2.物件可以常駐在場 只差顯示不顯示
作者: gmking (帝王之心)   2014-02-23 23:10:00
詢問許多人意見後,問題已經解答,謝謝大家
作者: dreamnook (亞龍)   2014-02-24 11:27:00
喔喔有實際進度了嗎? 推
作者: LayerZ (無法如願)   2014-02-24 22:29:00
第一個問題...我沒做過手機開發,以下回答有錯請指正1.你確定你要在遊戲中"即時"運算?地圖去掉Z軸後也只是2D,地圖固定的話,很多資訊都是可以在設計過程中預先算出來,以純資料方式載入
作者: gmking (帝王之心)   2014-02-25 08:12:00
sry沒說清楚我們後來的方法導致誤會,會先用矩陣存起來
作者: Killercat (殺人貓™)   2014-02-26 13:16:00
3D的做法通常分兩種 一種是打前後左右四個點ray cast出z以後可以算出四方向斜率 二的話則是拿這個mesh的三個點套公式也可以得到斜率(也可以額外參考相鄰三角)兩種做法其實各有好處 預算也可以,只是你要花點心思去存這些東西,索引時間不見得會比算的划算2d就簡單了 直接拿附近八個像素的alpha channel就好
作者: LayerZ (無法如願)   2014-02-26 15:26:00
我沒想到索引成本..那真的不一定比較划算@@
作者: Killercat (殺人貓™)   2014-02-26 16:56:00
因為斜率可以用GPU在shader算 這一定是最快的 XD不過普通CPU來講的話 大概就是多吃一塊記憶體 快慢難講這部分有個比較妙的解法 就是在算導航的時候一定會算導航格 再最後一步把路徑拼接起來的時候算沿路的斜率這做法有很多意想不到的好處,以前前公司這樣做過這樣你就可以在每段導航路徑順便加入速度資訊重點是這樣計算會快很多
作者: y3k (激流を制するは静水)   2014-02-27 11:22:00
我真的建議你們先用2D概念去做 不會浪費太多時間在這種細節上
作者: azureblaze (AzureBlaze)   2014-02-27 11:26:00
先能在平地上走再來考慮這種問題
作者: StupidGaGa (笨嘎嘎)   2014-03-12 17:22:00
推樓上,這句話是重點,也是基礎我第一次寫遊戲時,前輩就是給這句前輩:「你先會走,再來跟我談其他的」另外,你上面說依照不同地形決定移動速度,又說到高度你是想讓角色爬山的變慢,還是走過泥濘地的時候變慢?如果你是鳥瞰視角的話,建議你直接做2D不少遊戲程式都是以2D再寫,但是看起來3D2D就不用算斜率,只要把「斜坡」本身當成一種地形就好

Links booklink

Contact Us: admin [ a t ] ucptt.com