No announcement yet.

That sinking feeling

  • Filter
  • Time
  • Show
Clear All
new posts

    That sinking feeling

    Hi there,
    when i try to subclass certain objects in the game the static mesh i assign to them goes 'soft' for no apparent reason. This is only to vehicles mind you players and bots on foot seem to collide fine with them. But vehicles sink into the meshes round about up to their wheel axels and then get stuck.But if you side swipe the meshes with a vehicle they bounce off nicley.
    Im as sure as i can be that the collision hulls are set ok on the meshs.
    For example if you subclass actor and assign it a static mesh turn all the collision flags on you get a 'soft mesh' ?
    - FatalOverdose.

    If you subclass actor, turn collisions on, and assign it a mesh, you get an object that does absolutely nothing, but stays exactly where you put it. It can't move, how is it "soft?" If you place it, and it appears to stick in the ground where you put it, it is because of the pivot point of your mesh. Meshes align at their pivot point. Actors use this pivot point as their location (since meshes are aligned at their pivot point), and so if your mesh appears in the ground, try lowering the pivot point so that when you place it (the actor gets placed with its pivot point where you say "place here"), it will appear above the ground.


      Well as another example, ive made a few modifications to the power nodes in onslaught and have given them a new static mesh. What ever static mesh i assign to them seems to lose its collision hulls and go soft.


        Well my experience has been that Per-Polygon collision is horribly broken for static meshes when Vehicles (or other Karma objects) are colliding with them. I believe that this is what you are talking about. They still have collision right? but it's some kind of horrible soft gooey collision. Right?

        Ok, well, this is the reason why per-poly tree static meshes are sticky.

        The solution is turn off per-poly collision for Karma. Go to the static mesh in the S.M. browser and make sure that "Use Simple Karma Collision" is set to true. Then make sure you have a nice collision model around the static mesh that has some space at the top.

        Try that and see how it works out.


          Thanks tha seems straight forward enough. What do you mean by turn off per-poly collision? Do you mean switch the collision off in the properties in unrealed and swith on the collision in the static mesh browser?



            The collision properties for instances in the map USE the static mesh collision settings, EXCEPT for when:

            1) bUseCollisionCylinder = true. In this case, CollisionHeight and CollisionRadius are used to form a virtual cylinder around the instance instead.
            2) bCollideActors = true (for disabling collision *and* blocking) or bBlockActors = true (for disabling blocking)

            or any other similar variables.

            Collide with Actor > Blocking Actors > Blocking a Specific Type of Actor (Karma, etc).

            THere is also the collision with hit scan traces.

            At any rate, set the static mesh browser settings correctly, and then in your instance, turn on collision and blocking, and turn off collision cylinder useage. These are already at their defaults when you add the instance, so you should not even need to do it.

            The "Use Simple Collision" settings in the static mesh brower actually means "use the collision model shown in the S.M. browser for this type of collision" when turned on, and "use per-polygon collision" when turned off.

            In some cases you might actually find that BlockingVolumes around instances are easier to set up and modify than using the collision models on a static-mesh-wide basis. If the shapes are complicated, prefer Blocking Volumes. You can even used more than one simple-shaped BlockingVolume to approximate your instances. In this case, you should turn off the appropriate collision type of the instance (often, you want to leave the hitscan collision of the instance turned ON, with the S.M. browser setting UseSimpleZeroExtentsCollision set to false, and the BlockingVolume a class blocker with the class set to Actor or some more specific class type).