一个基于Niagara的程序化鸟类集群运动系统,通过顶点动画纹理 (VAT) 动画驱动静态网格,并使用多种力和Neighbor Grid 3D模块控制行为及个体间距。
静态网格的顶点动画
- 转换:使用Unreal的AnimToTexture插件将骨骼动画转换为顶点动画纹理 (VAT);动画数据存储在纹理中,并通过自定义材质应用于静态网格。通过VAT减少绘制调用,并利用实例化技术提高性能。
- 翅膀拍动随机化:动态材质参数AnimationTimeOffset为每个粒子分配随机起始帧,避免动画同步,呈现更自然的效果。
Niagara系统
- 鸟群行为模拟
- Vortex Force增加旋转运动,模拟动态的鸟群飞行模式。
-
Drag Force模拟空气阻力,保持运动的平稳性与控制感。
-
Repulsion and Attraction确保鸟群维持队形,同时避免碰撞。
- Curl Noise引入随机混乱的运动,增强自然感。
-
维持粒子间距:
使用 Neighbor Grid 3D 模块跟踪每只鸟与其邻居的距离,维持合理的间距。
- 网格初始化:设置每个网格单元的最大邻居数量限制。
- 填充网格 (Fill Grid):将粒子分布到网格单元中。
- 查询网格 (Query Grid):计算粒子间的距离,并调整速度以实现逼真的分离效果。
- 调试:使用立方体网格和文本可视化网格及邻居计数,辅助优化鸟群行为。