Skip to content

🦇 三維 BOIDs 群飛、飛行限高與轉向數學 ​

📌 代碼倉庫原始碼免責聲明:本維基文件反映了倉庫當前的原始碼狀態,可能包含領先於 CurseForge 與 Modrinth 上公開發布版本的最新開發提交或未發布功能。

Math ParameterSymbolValue / FormulaDescription
Separation Radius$r_{\text{sep}$1.5 blocksMinimum distance before repulsion force triggers
Neighbor Radius$r_{\text{nbr}$8.0 blocksBounding sphere for cohesion and alignment
Cohesion Weight$W_{\text{coh}$0.02Force pulling towards average flock centroid
Alignment Weight$W_{\text{ali}$0.05Force matching average velocity vector of neighbors
Separation Weight$W_{\text{sep}$0.08Force pushing away from overlapping bats
Max Acceleration$a_{\text{max}$0.05 blocks/tick²Maximum steering delta applied per tick

🧮 三維 BOIDs 演算法公式 ​

The composite steering force applied to each bat per tick is governed by the classic Reynolds BOIDs vector equation:

$$\vec{F}{\text{steer} = W{\text{coh}\vec{F}{\text{cohesion} + W{\text{ali}\vec{F}{\text{alignment} + W{\text{sep}\vec{F}_{\text{separation}$$

Where each component vector is evaluated against the set of $N$ visible flock neighbors:

$$\vec{F}{\text{cohesion} = \frac{1}{N}\sum^N (\vec{P}i - \vec{P}{\text{self})$$ $$\vec{F}{\text{alignment} = \frac{1}{N}\sum^N \vec{V}i - \vec{V}{\text{self}$$ $$\vec{F}{\text{separation} = \sum^M \frac{\vec{P}_{\text{self} - \vec{P}j}{|\vec{P}{\text{self} - \vec{P}_j|^2}$$

☕ 獨立開發者寄語:如果你喜歡蝙蝠逼真的三維群飛和鳥糞為莊稼施肥的生態體驗,歡迎在 Ko-fi 上支持我的獨立開發!


📈 地表飛行限高計算 ​

To prevent bats from soaring into upper atmospheric void or despawn ceilings, BatFlightHelper samples the terrain height $Y_{\text{surface}$ directly below the bat and applies a downward restoration force when $Y > Y_{\text{surface} + 12$:

$$F_y = -0.04 \times \frac{Y - (Y_{\text{surface} + 12)}{4.0}$$


Next: 趨光性與夜間燈火巡飛 | 害蟲防治與俯衝戰鬥

Official documentation & web portal for Dasik Igaijinn mods.