PolyObjects are a new type of actor that are functionally similar to Unreal's Movers but have many unique properties. The player can break them, and you can have a bunch animating in the player's view with better performance than you'd get with Movers. The fundamental difference is that PolyObjects are Actors, and Movers are calculated with geometry. Therefore PolyObjects don't occlude. So if you look at a PolyObject door that is closed, the engine is still calculating geometry behind that door - so Movers are best for non-breakable doors.
InitialState: There are some new intialStates, but the most important of them is Destructible. This is not mutually exclusive; you can set up a PolyObject which has key frames and is TriggerToggleable/etc., but can still have it be breakable by setting PolyObjectDestroyable->bDestructible to TRUE.
PolyObjects, and now Movers also, can have 16 key frames instead of the original 8. This was infinite for a while, but implementing that in the Property interface could have been quite unwieldy, so 16 it is. More important, though, is that at each key frame a separate InterpolateEvent can be called. For daisy-chaining realistic crashes and such, this is invaluable, as it gives you a ton of Event slots to work with; if the third key frame of a falling boulder is located right where the boulder, in mid-flight, is to "hit" a wood beam and set that flying, you just call the wood beam Polyobject/Mover at that boulder key frame, and you've got yourself a nice realistic-looking interaction of the two.
Destructible PolyObjects: Under DamageThreshold you can set the amount of damage that the PolyObject can withstand before blowing up. The other settings for this are under the category PolyObjectDestroyable:
Debris will spawn out from the PolyObject's vertex position when it blows up, and can be tweaked with these settings:
DebrisSpawnRadius: dictates the overall size of the debris how far from its origin. Larger PolyObjects by default will create larger debris than smaller PolyObjects, as well.
DebrisTexture: you can highlight a texture and insert its name here, and the debris will have that texture. Good for visual consistency.
DebrisType: Under Classes->Effects->Debris you'll find different types of debris that behave according to what their 'material is'.
Matter: You can choose between pre-definite matter types that also affect how the debris behaves.
Under Sounds, you'll find a DestroySound slot. You can insert a suitable sound here that will play when the PolyObject is destroyed.
To make a PolyObject, you do as you would with a mover. Make sure that you "Transform Permanently" the active brush before adding it as a PolyObject, or you'll get some very apparent nasty side effects. Also, changing the location of a PolyObject's vertex position after it has been made will sometimes alter your texture alignment on the PolyObject, so you need to be careful there.
There are two ways to add a PolyObject, both of which require clicking on the new PolyObject icon located on the left side of the screen under the old Mover icon. It looks like three little stacked boxes cruising along.
If you just press that button alone, you'll get a "PolyObject". It has no default sounds and does not have a "DestroySound" slot.
Under Classes->Brush->PolyObject, you'll find "RunePolyObject". If you highlight this first in the Classes list and then click on the PolyObject button to add it to the world, you'll get a "RunePolyObject". It's identical to a "PolyObject", except that it has default sounds for things like doors and has a sound slot for when the PolyObject is destroyed. If you want to override those default sounds, you'll need to place the "Silence01" sound in those slots; it's a special sound located in the OtherSounds.uax package that is silent.
Finally, you can make an AttachPolyObject by highlighting "AttachPolyObj" in the Classes menu before clicking on the "add PolyObject" icon.
[ Click here for printable version ]