I love the smell of UnrealEd crashing in the morning. – tarquin


From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
UnrealEngine2 Runtime :: ... >> Actor >> KRepulsor


KRepulsor is the class UT2004 hovering vehicles use to force the vehicle to hover above ground. Also, wheels in UT2004 are basically KRepulsors too, except they have a whole lot more parameters for applying a more realistic force to the main vehicle mesh.

KRepulsors are similar to constraints from UT2003 in that they are permanantly attached to object(s) and affect their location and rotation, by manipulating their physics parameters.



bool bEnableRepulsion 
Turns the repulsor on/off.
Repulsor is currently contacting something.
vector CheckDir 
This is the direction of the repulsor. You could constantly set CheckDir each tick to aim relational to the rotation of your vehicle, but you should know that a non-vertical direction will force your vehicle along some sort of horizontal direction. To make the vehicle more stable, you could use CheckDir={0,0,-1} and bKStayUpright=true (which is what the UnrealEngine2Runtime does). Body-roll still works quite well and there should be no chance of the vehicle rolling over and going upside down.
float CheckDist 
This is the repulsor trace distance in Unreal Units.
float Softness 
Softness changes alot between 0-1, but can also go alot higher than 1. This is like KStiffness combined with a bit of KDamping from UT2003 constraints. When this is zero, it will be like KStiffness is very high so that the amount of flexibility <CheckDir is very minimal (the amount of force applied is higher at lower % of Checkdir). Also when zero, it would be like KDamping is very high (when the repulsor hits <= CheckDir, it will not 'ricochet' off). When Softness==1, KStiffness is lower (and often will not contain enough force to lift the object all the way up to CheckDir) and KDamping may also be lower (but KDamping will always be present to absorb up-force and stop the repulsor from endless 'bouncing' +/- CheckDir).
float PenScale 
Looking at wheel PenScale, I assume this means the penetration scale or 'bounciness' of the Repulsor when bRepulsorInContact. A value such as 100 will repel the object more than a value below 1 (which is the default). If this value is 0, it will have 0 bounciness and the object wont be repelled.
float PenOffset 
Not sure about this one either, but I guess it would offset the point at which penetration occurs along the repulsor line in Unreal Units.
transient const pointer KContact 
Used internally for Karma stuff - DO NOT CHANGE! But I guess you can if you want ;).