Physical Materials
From RoboBlitz Editor Wiki
Contents |
Adjusting the way a Rigid Body Behaves
The easiest way to make an object heavier is to make it bigger with the DrawScale field in the Display section of the object's properties. Of course, most of the time you want a heavier object, you don't want it to be any larger, so usually the easiest way is to use a Physics Override material.
In the Collision Component there is a field called PhysMaterialOverride. The default value is none, but setting this to a Physical Material will override the default physics properties of the mesh. To do this, open the Generic Browser and select Physical Material in the Resource Type filters. Now fully load MISC_PostDefaultLoad. You should see a list of Physical Materials which were used in the construction of RoboBlitz.
Note that a Physical Material doesn't change the way an object is rendered, it will still look exactly the same after you set the PhysMaterialOverride. Physical Materials only change the way a material is handled in the physics simulation.
Here are some useful materials:
- LighterThanLightSteel
- The lighest material around.
- LightSteel
- Probably the most useful light material available. If you want a strong and easy to lift material, this might be a good choice.
- PhysMat_Aluminum
- Slightly heavier than light steel, this is a good middle of the road for liftable objects.
- RollingTurretBodyPhysMat
- A pretty hefty metal, Blitz might be dragging this one along the floor if it's too large.
- HeavyMetal
- Hard to lift, and enjoyable to listen to. A golf ball made of this stuff might break your toe if you drop it.
An Example
I wanted a big Blitz ball that I could drag around. I grabbed RollingTurretBodyPhysMat from MISC_PostDefaultLoad and applied it to the PhysMaterialOverride in the Physics subsection of the CollisionComponent in the Collision section. This was a lucky guess, I liked the feel, but the ball flew too far when it was hit. I tried the PhysMat_StickyWheel and I think I found my match. The StickyWheel has lots of friction which means it's not too heavy, but it resists movement, so when it was struck it wouldn't fly to far.
A new material
To create a new material select File->New in the Generic Browser. Select Physical Material from the Factory pulldown and save the new material to a package. Double click the material to edit it's properties.
- Angular Damping
- This slows the balls rotation (pitch, roll, yaw). 0 is no damping, higher numbers are more damping. Negative numbers break physics on the object.
- Anisotropic Friction
- See Next section
- Density
- Determines how dense an object is, an objects Density and size determine it's weight. A negative or 0 density breaks an objects physics. Higher values make a material more dense, and make an object which is made of that material more heavy.
- DirectionOFAnisotropy
- See Next section
- Friction
- How much friction is applied to an object when it's rubbing against something. 0 is no friction, higher numbers are more friction, negative creates slightly strange perpetual motion machines (or is the same as 0?).
- LinearDamping
- This slows an objects movement in any direction. 0 is no damping, higher numbers are more damping, negative numbers breaks physics on the object.
- MagneticResponse
- How the material responds to magnets. Unfortunately there are no magnets implimented. :-(
- Parent
- A material from which this material inherits properties.
Unimplimened fields:
These fields don't do anything. The field's type is in parathesis.
- ImpactEffect (ParticleEffect)
- ImpactReFireDelay (Number)
- ImpactSound (SoundCue)
- ImpactThreshold (Number)
- PhysicalMaterialProperty
- SlideEffect (ParticleEffect)
- SlideReFireDelay (Number)
- SlideSound (SoundCue)
- Slidethreshold (Number)
- WindResponse (Number)
Perhaps WindResponse works, but there's no wind implimented...
Anisotropic Friction
Some objects cause more friction when moved in a certain direction. One example of this is a snake's scales. If you pet a snake from side to side your hand will move smoothly over the snakes scales. When you pet a snake from it's tail to it's head your fingers will catch on the scales and move much slower. Anisotropic friction is a good way to simulate this.
You can turn Anisotropic Friction on by setting the DirectionOfAnisotropy field. This specifies the angle which uses the AnisotropicFriction value. The Friction value is used along the direction perpendicular to the DirectionofAnisotropy.
