Unity

Simple Crowd Simulation System – 簡易人群模擬系統

遊戲玩家走在路上,遇到迎面而來的人群,每個人物都有著自己的走路姿勢、路徑、反應,上述的景象在許多大規模遊戲中,如俠盜獵車手、看門狗、人中之龍…等都有出現。
當開發者醉心於遊戲世界中的主要系統、構思遊戲主要玩法與體驗的同時,這些旁支系統也是提升遊戲體驗的一劑強心針。

Continue reading “Simple Crowd Simulation System – 簡易人群模擬系統”

Unity

Unity DOTS – A Case Study of Brick Breaker

DOTS (Data-Oriented Technology Stack) 是 Unity 近年來主打的核心功能之一,充分利用多核、多線程處理讓遊戲的運行速度更快、更高效,讓預設環境下開發的效能有飛躍性地提升。

由於 DOTS 目前還屬於開發中的架構,導致架構內容不斷的變化,此篇會先比較過往版本中的 DOTS 與 2019.3 版本有何種差異。
並在 2019.3 版本的基礎上,完整開發出一個擁有基本功能的打磚塊遊戲,實作內容包含:定義碰撞範圍玩家輸入移動物件碰撞偵測刪除物件

Continue reading “Unity DOTS – A Case Study of Brick Breaker”

Physics · Unity

Verlet Integration – A Case Study of Simple Dynamic Bone

Dynamic BoneUnity Asset Store 中的一套動態骨骼系統,開發者不需要任何的程式基礎也能夠快速上手並使用動態骨骼功能,透過簡易的設定就能夠快速的進行物理模擬,讓腳色的頭髮、衣服、胸部…等物體進行更加真實的物理移動。

在先前的文章 Verlet Integration 韋爾萊積分法 – 以邊緣檢測與繩索模擬為例 中,在韋爾萊積分法的基礎上實作了邊緣檢測,並加入長度約束藉此模擬繩索擺動。

Dynamic Bone 則是在韋爾萊積分法的基礎上額外加入了重力外力慣性阻力彈性剛性碰撞長度約束等因素,模擬出更真實的物理移動。

此篇文章將重點放在如何在韋爾萊積分法的基礎上加入慣性阻力彈性剛性長度約束,藉此變化出簡化版的動態骨骼,不但有效的優化了原版動態骨骼的效能,還會解釋動態骨骼中的韋爾萊積分法及每個步驟的物理模擬是如何計算的。

Continue reading “Verlet Integration – A Case Study of Simple Dynamic Bone”

Physics · Unity

Verlet Integration – A Case Study of Boundary and Rope Simulator

一般而言在實作物體移動時會使用Kinematic Equation 運動方程式
由於運動方程式需要速度
加速度等資訊才能夠有效運算
Verlet Integration 韋爾萊積分法則是另一種運動方程式的解決方案
能夠在不需要速度的前提下
只依靠物體的當前位置、前一幀位置就模擬出結果

Continue reading “Verlet Integration – A Case Study of Boundary and Rope Simulator”