Difference between revisions of "Arcane University:Mesh Collisions"

The Beyond Skyrim Wiki — Hosted by UESP
Jump to: navigation, search
(Created page with "Adding collision to an exported mesh is necessary so it would not fall through the ground or walls or ignore other objects in worldspace on interaction. This is usually done b...")
 
Line 1: Line 1:
Adding collision to an exported mesh is necessary so it would not fall through the ground or walls or ignore other objects in worldspace on interaction. This is usually done by utilizing [[Niftools/Chunkmerge]]
+
'''Collision''' is necessary to make objects solid in the Creation Engine. When an object has collision, it cannot be walked through, fall through the ground or walls, and also determines what parts of the object are interactable. This article will cover the different types of collision shapes and their uses, as well as the physics settings that affect how the object moves in the world.
  
[[Category:Arcane University-3D Art| ]] [[Category:Arcane University-Method| ]]
+
==Common Shapes==
 +
[[File:WRjaildoor.png|350px|thumb|right|The Whiterun jail door uses a box primitive.]]
 +
There are three main types of collision meshes: '''Primitives''', '''Convex Shapes''', and '''Compressed MOPP Shapes'''. Primitives are the simplest, and MOPP shapes are the most complex. The CPU usage required to simulate physics, therefore, is lowest for primitives, slightly higher for convex shapes, and much higher for MOPP shapes. For this reason, primitives and convex shapes are preferred, and are the only viable option for moving objects (weapons, clutter that you can pick up, etc.). MOPP shapes are reserved for static objects only (architecture, furniture, etc.).
 +
 
 +
===Primitives===
 +
Primitives can be boxes (rectangular prisms--they do not have to be cubes), spheres, or capsules. These can be made in [[Arcane University:Nifskope for Skyrim|NifSkope]], and are commonly used for doors and chests that are roughly box-shaped, like the Whiterun jail door, seen at right. The dimensions of primitives are adjustable in the settings of the shape block. To translate the shape within the nif, use a bhkTransformShape between the bhkRigidBody and the primitive, or the translation settings in a bhkRigidBodyT.
 +
 
 +
===Convex Shapes===
 +
Convex shapes are the easiest to create, and are extremely common for clutter items and simple furniture. Simply right-click the mesh in NifSkope, and select ''Havok > Create Convex Shape''. Adjust the roundoff error value if you need more or fewer vertices. The collision radius is an invisible shell around the collision shape, and may need to be adjusted later after testing. Smaller values result in a thinner shell. Generally, if the object is very small, it will likely need a smaller radius.
 +
 
 +
Convex shapes necessarily can not have concave areas, or "indents." For an object that needs this, use either a MOPP shape (if it's a static) or a [[#List Shapes|list shape]], if it is dynamic.
 +
 
 +
===MOPP Shapes===
 +
MOPP shapes are created in 3D software such as Blender, 3ds Max, or Maya. They are typically much simpler than the visible mesh, and can contain multiple collision materials. They can be exported to nif format using either [[Arcane University:CK-CMD for Skyrim#Including Collision Mesh|ck-cmd]] or [[Arcane University:Niftools/Chunkmerge for Skyrim|ChunkMerge]].
 +
 
 +
==Special Cases==
 +
[[File:Bowl.png|thumb|right|placeholder]]
 +
[[File:Axe.png|thumb|right|placeholder]]
 +
===List Shapes===
 +
 
 +
List shapes are collections of convex shapes or primitives. They are often used for bowls, that need to have dynamic collision, but cannot use convex shapes, as well as many weapons. These are most easily made in NifSkope by copying a bhkCollisionObject from a similar nif and adjusting it to fit, or making the list shape by hand in NifSkope.
 +
 
 +
===Constraints===
 +
{{main|[[Arcane University:Nifskope Hinge Constraints|NifSkope Hinge Constraints]]}}
 +
 
 +
Some objects, like books and necklaces, or hanging shop signs, may use constraints so that they swing on a hinge.
 +
 
 +
===Animated Collision===
 +
 
 +
==Physics Settings==
 +
Physics settings are contained in the bhkRigidBody or bhkRigidBodyT.
 +
 
 +
*Layer
 +
*Process Contact Callback
 +
*Collision Response
 +
*Translation
 +
*Rotation
 +
*Inertia Tensors
 +
*Center
 +
*Mass
 +
*Linear Damping
 +
*Angular Damping
 +
*Friction
 +
*Restitution
 +
*Penetration Depth
 +
*Motion System
 +
*Enable Deactivation
 +
*Solver Deactivation
 +
*Quality Type
 +
 
 +
[[Category:Arcane University-3D Art]] [[Category:Arcane University-Method]]

Revision as of 20:55, 23 April 2021

Collision is necessary to make objects solid in the Creation Engine. When an object has collision, it cannot be walked through, fall through the ground or walls, and also determines what parts of the object are interactable. This article will cover the different types of collision shapes and their uses, as well as the physics settings that affect how the object moves in the world.

Common Shapes

The Whiterun jail door uses a box primitive.

There are three main types of collision meshes: Primitives, Convex Shapes, and Compressed MOPP Shapes. Primitives are the simplest, and MOPP shapes are the most complex. The CPU usage required to simulate physics, therefore, is lowest for primitives, slightly higher for convex shapes, and much higher for MOPP shapes. For this reason, primitives and convex shapes are preferred, and are the only viable option for moving objects (weapons, clutter that you can pick up, etc.). MOPP shapes are reserved for static objects only (architecture, furniture, etc.).

Primitives

Primitives can be boxes (rectangular prisms--they do not have to be cubes), spheres, or capsules. These can be made in NifSkope, and are commonly used for doors and chests that are roughly box-shaped, like the Whiterun jail door, seen at right. The dimensions of primitives are adjustable in the settings of the shape block. To translate the shape within the nif, use a bhkTransformShape between the bhkRigidBody and the primitive, or the translation settings in a bhkRigidBodyT.

Convex Shapes

Convex shapes are the easiest to create, and are extremely common for clutter items and simple furniture. Simply right-click the mesh in NifSkope, and select Havok > Create Convex Shape. Adjust the roundoff error value if you need more or fewer vertices. The collision radius is an invisible shell around the collision shape, and may need to be adjusted later after testing. Smaller values result in a thinner shell. Generally, if the object is very small, it will likely need a smaller radius.

Convex shapes necessarily can not have concave areas, or "indents." For an object that needs this, use either a MOPP shape (if it's a static) or a list shape, if it is dynamic.

MOPP Shapes

MOPP shapes are created in 3D software such as Blender, 3ds Max, or Maya. They are typically much simpler than the visible mesh, and can contain multiple collision materials. They can be exported to nif format using either ck-cmd or ChunkMerge.

Special Cases

File:Bowl.png
placeholder
File:Axe.png
placeholder

List Shapes

List shapes are collections of convex shapes or primitives. They are often used for bowls, that need to have dynamic collision, but cannot use convex shapes, as well as many weapons. These are most easily made in NifSkope by copying a bhkCollisionObject from a similar nif and adjusting it to fit, or making the list shape by hand in NifSkope.

Constraints

Main article: NifSkope Hinge Constraints

Some objects, like books and necklaces, or hanging shop signs, may use constraints so that they swing on a hinge.

Animated Collision

Physics Settings

Physics settings are contained in the bhkRigidBody or bhkRigidBodyT.

  • Layer
  • Process Contact Callback
  • Collision Response
  • Translation
  • Rotation
  • Inertia Tensors
  • Center
  • Mass
  • Linear Damping
  • Angular Damping
  • Friction
  • Restitution
  • Penetration Depth
  • Motion System
  • Enable Deactivation
  • Solver Deactivation
  • Quality Type