<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.frictionalgames.com/page?action=history&amp;feed=atom&amp;title=HPL3%2FEntities%2FWorking_with_Physics_Bodies</id>
	<title>HPL3/Entities/Working with Physics Bodies - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.frictionalgames.com/page?action=history&amp;feed=atom&amp;title=HPL3%2FEntities%2FWorking_with_Physics_Bodies"/>
	<link rel="alternate" type="text/html" href="https://wiki.frictionalgames.com/page?title=HPL3/Entities/Working_with_Physics_Bodies&amp;action=history"/>
	<updated>2026-10-04T08:27:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://wiki.frictionalgames.com/page?title=HPL3/Entities/Working_with_Physics_Bodies&amp;diff=7344&amp;oldid=prev</id>
		<title>TiMan: Create shared HPL3 physics-body workflow from installed editor labels and shipped SOMA, Rebirth, and Bunker entity data</title>
		<link rel="alternate" type="text/html" href="https://wiki.frictionalgames.com/page?title=HPL3/Entities/Working_with_Physics_Bodies&amp;diff=7344&amp;oldid=prev"/>
		<updated>2026-10-02T17:34:22Z</updated>

		<summary type="html">&lt;p&gt;Create shared HPL3 physics-body workflow from installed editor labels and shipped SOMA, Rebirth, and Bunker entity data&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;A '''physics body''' groups one or more collision shapes and gives them shared physical, collision, and surface settings. The Model Editors and shipped entities for SOMA, Amnesia: Rebirth, and Amnesia: The Bunker use the same core body structure.&lt;br /&gt;
&lt;br /&gt;
== Bodies, shapes, and children ==&lt;br /&gt;
&lt;br /&gt;
Collision geometry is stored as shapes. The common shape types are '''Box''', '''Cylinder''', '''Sphere''', and '''Capsule'''. A body references its member shapes by ID; it can also reference child objects such as submeshes.&lt;br /&gt;
&lt;br /&gt;
For example, this shortened structure contains one box shape, one attached child, and one body:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Shapes&amp;gt;&lt;br /&gt;
    &amp;lt;Shape ID=&amp;quot;1&amp;quot; Name=&amp;quot;Shape_1&amp;quot; ShapeType=&amp;quot;Box&amp;quot; ... /&amp;gt;&lt;br /&gt;
&amp;lt;/Shapes&amp;gt;&lt;br /&gt;
&amp;lt;Bodies&amp;gt;&lt;br /&gt;
    &amp;lt;Body ID=&amp;quot;2&amp;quot; Name=&amp;quot;Body_1&amp;quot; Mass=&amp;quot;0&amp;quot; Material=&amp;quot;Default&amp;quot; ...&amp;gt;&lt;br /&gt;
        &amp;lt;Children&amp;gt;&lt;br /&gt;
            &amp;lt;Child ID=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Children&amp;gt;&lt;br /&gt;
        &amp;lt;Shape ID=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Body&amp;gt;&lt;br /&gt;
&amp;lt;/Bodies&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The body and shape transforms are stored independently. Use the editor rather than manually changing IDs: joints, attachments, and other entity data can refer to those IDs.&lt;br /&gt;
&lt;br /&gt;
== Creating a body ==&lt;br /&gt;
&lt;br /&gt;
# Create and position one or more collision shapes around the model.&lt;br /&gt;
# Select the shape or shapes that should behave as one unit.&lt;br /&gt;
# Press '''Create Body'''. Multiple selected shapes produce one body containing multiple shape references.&lt;br /&gt;
# Select the new body and give it a clear, unique name.&lt;br /&gt;
# Set its material, mass, damping, speed limits, and collision flags.&lt;br /&gt;
# Attach only the meshes, bones, lights, sounds, particle systems, or other supported components that should follow that body.&lt;br /&gt;
# Save the entity and inspect the result in Entity Preview and in a small test map.&lt;br /&gt;
&lt;br /&gt;
'''Detach from Body''' removes a selected shape from its body. It does not delete the shape. If the shape should be part of a different body, detach it and then create or assign the intended grouping in the editor.&lt;br /&gt;
&lt;br /&gt;
== Core body properties ==&lt;br /&gt;
&lt;br /&gt;
The following properties are serialized by shipped entities in all three games:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Editor property !! Stored attribute !! Role&lt;br /&gt;
|-&lt;br /&gt;
| Body Material || &amp;lt;code&amp;gt;Material&amp;lt;/code&amp;gt; || Selects the physics/surface material name.&lt;br /&gt;
|-&lt;br /&gt;
| Mass || &amp;lt;code&amp;gt;Mass&amp;lt;/code&amp;gt; || Sets the body's mass value. Shipped entities use both zero and positive values; choose a value appropriate to the entity type and intended motion.&lt;br /&gt;
|-&lt;br /&gt;
| Angular Damping / Linear Damping || &amp;lt;code&amp;gt;AngularDamping&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;LinearDamping&amp;lt;/code&amp;gt; || Reduce rotational and translational motion over time.&lt;br /&gt;
|-&lt;br /&gt;
| Max Angular Speed / Max Linear Speed || &amp;lt;code&amp;gt;MaxAngularSpeed&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;MaxLinearSpeed&amp;lt;/code&amp;gt; || Limit rotational and translational speed.&lt;br /&gt;
|-&lt;br /&gt;
| Buoyancy density mul || &amp;lt;code&amp;gt;BuoyancyDensityMul&amp;lt;/code&amp;gt; || Multiplies the body's buoyancy-density value.&lt;br /&gt;
|-&lt;br /&gt;
| Blocks sound / Blocks light || &amp;lt;code&amp;gt;BlocksSound&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;BlocksLight&amp;lt;/code&amp;gt; || Control whether the body participates in sound or light blocking.&lt;br /&gt;
|-&lt;br /&gt;
| Continuous collision || &amp;lt;code&amp;gt;ContinuousCollision&amp;lt;/code&amp;gt; || Enables continuous-collision handling for the body.&lt;br /&gt;
|-&lt;br /&gt;
| Can attach character / Pushed by character gravity || &amp;lt;code&amp;gt;CanAttachCharacter&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;PushedByCharacterGravity&amp;lt;/code&amp;gt; || Control character interaction with the body.&lt;br /&gt;
|-&lt;br /&gt;
| Collide character / Collide non character || &amp;lt;code&amp;gt;CollideCharacter&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;CollideNonCharacter&amp;lt;/code&amp;gt; || Select the broad collision groups the body responds to.&lt;br /&gt;
|-&lt;br /&gt;
| Volatile || &amp;lt;code&amp;gt;Volatile&amp;lt;/code&amp;gt; || Marks the body with the engine's volatile-body flag.&lt;br /&gt;
|-&lt;br /&gt;
| Use surface effects || &amp;lt;code&amp;gt;UseSurfaceEffects&amp;lt;/code&amp;gt; || Enables effects associated with the selected surface material.&lt;br /&gt;
|-&lt;br /&gt;
| Has gravity || &amp;lt;code&amp;gt;HasGravity&amp;lt;/code&amp;gt; || Controls whether gravity is applied.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Amnesia: Rebirth entities may additionally serialize &amp;lt;code&amp;gt;Active&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Tag&amp;lt;/code&amp;gt; on bodies. Do not rely on those additions for an entity intended to remain portable across all three editors.&lt;br /&gt;
&lt;br /&gt;
== Attachments ==&lt;br /&gt;
&lt;br /&gt;
The '''Attachments''' tab filters which object types can be selected. Press '''Attach''', then click eligible objects to add or remove them from the pending attachment set. Press '''Done''' or finish the tool to commit the set. '''Clear attachments''' removes the body's current child-object references.&lt;br /&gt;
&lt;br /&gt;
An attachment is not a collision shape. Shapes define the body's collision geometry; attached child objects follow the body. A common rigid prop therefore has one or more shapes and one or more attached submeshes, all referenced by the same body.&lt;br /&gt;
&lt;br /&gt;
== Verification and troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
Before considering a body finished:&lt;br /&gt;
&lt;br /&gt;
* inspect the entity from several orthographic views so the shapes actually enclose the intended collision volume;&lt;br /&gt;
* verify that every shape belongs to the intended body and that no unwanted shape was included in a multi-selection;&lt;br /&gt;
* check that visual parts which should move are attached to the correct body;&lt;br /&gt;
* use a physics material name available in the active game or mod configuration;&lt;br /&gt;
* check character and non-character collision independently;&lt;br /&gt;
* test gravity, surface effects, and continuous collision under the speeds the entity will encounter; and&lt;br /&gt;
* if joints are present, verify their parent and child body assignments after renaming or rebuilding bodies.&lt;br /&gt;
&lt;br /&gt;
The Model Editor and engine can fall back to a default physics material when a named material cannot be loaded, so an entity appearing to collide is not proof that its requested material resolved correctly. Check &amp;lt;code&amp;gt;ModelEditor.log&amp;lt;/code&amp;gt; and the game log for material-loading errors.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[HPL3/Entities/Working with Shapes|Working with Shapes]]&lt;br /&gt;
* [[HPL3/Entities/Physics Body Properties|Physics Body Properties]]&lt;br /&gt;
* [[HPL3/SOMA/Entities/Working with Joints|Working with Joints]]&lt;br /&gt;
&lt;br /&gt;
[[Category:English]]&lt;/div&gt;</summary>
		<author><name>TiMan</name></author>
		
	</entry>
</feed>