Anyone know of an easy way to make an actor fall slower?

I have a very simple actor subclass. I want to launch it in a random upward direction and have it come down slowly. Right now, I set its velocity and set its physics to Phys_Falling. That gets it to launch upwards and fall down. I just want it to fall a little slower.

How about

image

Thanks for the response. I’m actually trying to do this in UE3. You might have pointed me in the right direction though. I created a PhysicalMaterial in the Content Browser, and set that in my actor’s DefaultProperties.

Begin Object Class=CylinderComponent Name=CollisionCylinder
		CollisionRadius=+0010.000000
		CollisionHeight=+0020.000000
		BlockNonZeroExtent=true
		BlockZeroExtent=true
		BlockActors=false
		CollideActors=true
		PhysMaterialOverride=PhysicalMaterial'SRVContent.PhysicalMaterials.IncreasedDamping'
	End Object
	CollisionComponent=CollisionCylinder
	Components.Add(CollisionCylinder)

But for LinearDamping values between 0.01 (the default) and 1000 (which is 100,000x greater than the default), I’m not seeing any difference. Maybe that setting only works if the physical material is applied to a volume, and it slows down other actors travelling through it.

Any other UE3/UDK devs have experience with slowing down the gravity or fall speed of just one actor?

Change its mass?

I see this in UDKpawn.uc:

var float CustomGravityScaling; // scaling factor for this pawn’s gravity - reset when pawn lands/changes physics modes

Id just go and make it phys flying and make it go slower and falling all time… You know what I mean.

Thanks for the suggestions everyone. Unfortunately CustomGravityScaling seems to be used only in native code, so there’s no way for me to figure out how that works. I was however able to get everything working another way.

The actor must be a subclass of KActor.
Set the KActor’s mesh to something, give that mesh a material, give the material a physical material, and set the physical material’s linear damping.
Leave the KActor’s physics as Phys_RigidBody.
Instead of setting the velocity directly, try ApplyImpulse().

I now have some things I can toss into the air, and they fall slowly to the ground.

And with customtimedilation variable?

I have tested it with a pawn and it works. You can modify only when is falling.