一个组件。无限有机运动。
数秒内为任意Actor或摄像机添加平滑、有机的程序化运动——漂浮、悬停、待机摇摆、环境漫游、漂移碎片以及微妙的手持摄像机抖动——全部可在Sequencer中打关键帧,并配有完整的蓝图API。
在底层,布朗运动是一个SceneComponent,对场景中的任意Actor应用Ornstein-Uhlenbeck均值回归噪声。与随机噪声或正弦波不同,OU噪声具有记忆性——它会有机地漫游,但始终被拉回中心。其结果是自然、不可预测的运动,绝不会失控。
将其拖放到网格体上。点击播放。漂浮碎片、漂移摄像机、环境待机运动——完成。
为何使用OU噪声而非随机噪声?
随机噪声会抖动。Perlin噪声会平铺。正弦波会重复。Ornstein-Uhlenbeck噪声则不同:它的行为如同悬浮在流体中的物理粒子。它朝一个方向漂移,然后逐渐反向。它在中心附近徘徊,但偶尔会漫游到其范围的边缘。运动看起来充满生命力,因为其背后的数学建模的是一个真实的物理过程。
这与量化金融中用于建模利率、物理学中用于建模粒子扩散、生物学中用于建模生物体运动的随机过程相同。现在,它驱动着您的UE5 Actor。
真正有效的碰撞规避
打开一个开关,每个漫游者都会感知周围的世界。该组件会向六个方向进行球体扫描,并在接触发生前将路径弯离墙壁、地板和道具——是排斥力,而非二元阻挡。半径会根据Actor的网格体边界自动调整尺寸,重叠逃逸系统可恢复起始于几何体内部的对象,诊断API(PenetrationFailureCount、IsCurrentlyPenetrating)可证明规避有效。调试可视化可在视口中实时显示碰撞球与检测球。
两种使用方式
-
父级模式(推荐):将组件添加到Actor并将网格体作为其子级。子级会自动继承运动。
-
影响父级模式:将组件拖放到任意现有Actor上并启用Affect Parent。组件将移动Actor的根节点——无需更改层级结构。
您将获得
-
Ornstein-Uhlenbeck噪声引擎,具备均值回归强度、速度和幅度控制
-
碰撞规避 – 六方向球体扫描、自动尺寸调整、重叠逃逸
-
临界阻尼弹簧平滑 – 通过单个滑块从原始抖动到丝滑漂移
-
分形细节层 – Voss-McCartney 1/f粉红噪声添加多尺度有机复杂度
-
独立逐轴控制 – 可启用/禁用X、Y、Z,并为每轴设置独立范围限制
-
旋转噪声 – 独立的OU过程用于程序化旋转,具备逐轴幅度
-
平滑淡入/淡出 – 通过可配置的混合时长平滑激活与停用运动
-
锚点偏置 – 将静止位置偏移至范围的任意角落
-
确定性种子 – 相同种子每次产生相同运动,或使用0表示非确定性
-
编辑器预览 – 无需进入PIE即可在视口中查看运动
-
完整Sequencer集成 – 所有运动参数均带有Interp标记以支持关键帧;独立Sequencer轨道含Speed、Amplitude、RangeMin、RangeMax通道
-
自定义Sequencer轨道编辑器 – 无需组件即可直接在Sequencer时间线上为任意Actor添加布朗运动轨道(使用确定性Perlin噪声以实现拖动安全的求值)
-
蓝图API – Reset、SetOrigin、ActivateMotion、DeactivateMotion、GetCurrentOffset、GetBlendWeight,以及诊断获取器
-
43项无头自动化测试,涵盖轴隔离、范围覆盖、混合时序、确定性、碰撞边缘情况、平滑度验证和性能基准
-
RT安全的死区过滤 – 在启用硬件光线追踪且存在大量布朗Actor时,抑制TLAS重建风暴
使用场景
-
漂浮碎片、灰尘和粒子
-
摄像机漂移与手持抖动
-
环境物体运动(灯笼、浮标、悬挂招牌)
-
程序化待机动画
-
大气环境运动(雾体积、光源)
-
带自然摄像机漫游的影视序列
文档、问题与支持:GitHub上的ue-BrownianMotion
免费示例项目(媒体中展示的可漫游功能画廊):下载BrownianShowcase(UE 5.8)
相同数学的免费TouchDesigner版本:GitHub上的td-BrownianMotion
REMrepo的其他作品:属性记录器(免费 – 将实时Actor更改记录为Sequencer关键帧)
©版权声明:本站除原创作品外的资源均收集于网络,只做学习和交流使用,版权归原作者所有,若作商业用途,请购买正版。


评论0