Description

The processing related to WindDirection in AnimDynamics( in FAnimNode_AnimDynamics::PreUpdate ) does not consider other than ComponentSpace.

// Setup wind data
Body->bWindEnabled = true;
Scene->GetWindParameters_GameThread(SkelComp->GetComponentTransform().TransformPosition(Body->Pose.Position), Body->WindData.WindDirection, Body->WindData.WindSpeed, WindMinGust, WindMaxGust);
Body->WindData.WindDirection = SkelComp->GetComponentTransform().Inverse().TransformVector(Body->WindData.WindDirection);
Body->WindData.WindAdaption = FMath::FRandRange(0.0f, 2.0f);
Body->WindData.BodyWindScale = WindScale;

For example, in the case of WorldSpace, the above WindDirection conversion process is unnecessary.

Steps to Reproduce
  1. Place a SkeletalMesh that uses AnimDynamics with Simulation Spece set to something other than Component(ex.World) and Wind enabled.
  2. Place WindDirectionSource
  3. PIE

expect : AnimDynamics  reflect Wind direction
result : AnimDynamics does not accurately reflect the wind direction.For example, changing the orientation of the actor makes it easier to understand.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-79683 in the post.

2
Login to Vote

Won't Fix
ComponentUE - Simulation - Physics
Affects Versions4.22.3
CreatedSep 3, 2019
ResolvedAug 27, 2021
UpdatedAug 27, 2021