feat(hero): facade rework — inscription, medallions, motto band, banner lettering #39
No files matched your search
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -313,6 +313,25 @@ void AGigLineVehicle::Tick(float DeltaSeconds)
|
||||
}
|
||||
}
|
||||
|
||||
// If the Chaos vehicle never came into existence (no wheels), its movement component has no
|
||||
// valid state to drive, and continuing to tick it writes whatever is in that empty state back
|
||||
// onto the actor - which is the only explanation that fits a still body and a moving actor.
|
||||
if (!bMoverStopped && SettleElapsed > 2.5f)
|
||||
{
|
||||
bMoverStopped = true;
|
||||
if (const UChaosWheeledVehicleMovementComponent* WheelComp =
|
||||
Cast<UChaosWheeledVehicleMovementComponent>(GetVehicleMovementComponent()))
|
||||
{
|
||||
UE_LOG(LogTemp, Warning,
|
||||
TEXT("GigLine vehicle: stopping the mover - wheels=%d at Z %.0f"),
|
||||
WheelComp->Wheels.Num(), GetActorLocation().Z);
|
||||
}
|
||||
if (UMovementComponent* Mover = GetVehicleMovementComponent())
|
||||
{
|
||||
Mover->SetComponentTickEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
// One-shot diagnostic: why zero wheels. Wheels are built in CreateVehicle(), which runs only
|
||||
// when the physics state produced a vehicle, so the useful facts are whether the mesh is
|
||||
// simulating and whether it carries a physics asset at all.
|
||||
@@ -349,6 +368,36 @@ void AGigLineVehicle::Tick(float DeltaSeconds)
|
||||
Vel.X, Vel.Y, Vel.Z, Angular.X, Angular.Y, Angular.Z, Body->GetMass(),
|
||||
Body->IsSimulatingPhysics() ? 1 : 0, Body->IsAnySimulatingPhysics() ? 1 : 0);
|
||||
}
|
||||
if (Body && Body->GetSkeletalMeshAsset())
|
||||
{
|
||||
// Do the wheel setups name bones the mesh actually has? If not, CreateVehicle()
|
||||
// bails before it ever builds a wheel.
|
||||
TArray<FName> Bones;
|
||||
Body->GetBoneNames(Bones);
|
||||
FString BoneList;
|
||||
for (int32 i = 0; i < Bones.Num() && i < 20; ++i)
|
||||
{
|
||||
BoneList += Bones[i].ToString() + TEXT(" ");
|
||||
}
|
||||
FString SetupList;
|
||||
if (const UChaosWheeledVehicleMovementComponent* WheelComp =
|
||||
Cast<UChaosWheeledVehicleMovementComponent>(GetVehicleMovementComponent()))
|
||||
{
|
||||
for (const FChaosWheelSetup& S : WheelComp->WheelSetups)
|
||||
{
|
||||
SetupList += S.BoneName.ToString() + TEXT(" ");
|
||||
}
|
||||
}
|
||||
UE_LOG(LogTemp, Warning, TEXT("GigLine vehicle bones: %d [%s] | setups [%s]"),
|
||||
Bones.Num(), *BoneList, *SetupList);
|
||||
if (const UMovementComponent* Mover = GetVehicleMovementComponent())
|
||||
{
|
||||
UE_LOG(LogTemp, Warning,
|
||||
TEXT("GigLine vehicle mover: updated=%s ticking=%d"),
|
||||
Mover->UpdatedComponent ? *Mover->UpdatedComponent->GetName() : TEXT("none"),
|
||||
Mover->IsComponentTickEnabled() ? 1 : 0);
|
||||
}
|
||||
}
|
||||
{
|
||||
const USkeletalMesh* Asset = Body ? Body->GetSkeletalMeshAsset() : nullptr;
|
||||
UE_LOG(LogTemp, Warning, TEXT("GigLine vehicle mesh asset: %s"),
|
||||
|
||||
@@ -83,5 +83,6 @@ private:
|
||||
|
||||
float SettleElapsed = 0.f;
|
||||
bool bMassSet = false;
|
||||
bool bMoverStopped = false;
|
||||
bool bSettleReported = false;
|
||||
};
|
||||
@@ -32,6 +32,18 @@ GigLine vehicle diag: mesh=1 simulating=1 physasset=yes setups=4 wheels=0
|
||||
- **Gravity** - `global_gravity_z = 0.0` and the character falls normally, so the world pulls down.
|
||||
- **Mass** - the 1500 kg override applies (logged), and the body still does not rise.
|
||||
|
||||
### Measured after the transform finding
|
||||
|
||||
```
|
||||
bones: 6 [VehicleRig root Wheel_FL Wheel_FR Wheel_RL Wheel_RR]
|
||||
setups: [Wheel_FL Wheel_FR Wheel_RL Wheel_RR] -> names match, suspect 3 is gone
|
||||
mover: updated=VehicleMesh ticking=1
|
||||
stop: mover tick disabled at 2.5 s (Z 2001); at 3.0 s the actor is still at Z 2258
|
||||
terrain: CTF_USE_COMPLEX_AS_SIMPLE, 0 box elements -> no invisible lid to be ejected from
|
||||
```
|
||||
|
||||
So the wheel bones match, the terrain has no proxy lid, and stopping the mover did not stop the climb - meaning either the stop does not take effect (something else re-enables or writes the transform every frame) or a second writer exists.
|
||||
|
||||
### Suspects, in order
|
||||
|
||||
1. **Component hierarchy**: a pawn whose root is the mesh while the physics state belongs to another component behaves exactly like this - correct box, correct mass, near-zero velocity, moving actor, 1 cm bounds.
|
||||
|
||||
Reference in new issue
Block a user