Creating Brush Entities: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (bad nav)
(unfloated all images + other minor cleaning)
Line 1: Line 1:
__NOTOC__
{{otherlang2
{| style="float:right"
| ru = Creating Primitives:ru
|- valign="bottom"
| fr = Creating Primitives:fr
| [[Image:Hammer_primitive_crate.png|thumb|center|Properly-sized cube with 32x32 texture.]] || {{first room menu}}
| zh-cn = Creating Primitives:zh-cn}} {{first room menu}}
|}
In Hammer, a [[Primitives|Primitive]] is a relatively simple brush object.  Primitives can be world geometry or interactive entities subject to physics & damage. In this example, we will create an interactive primitive, subject to physics & damage in the map: specifically, a 32 unit [http://www.oldmanmurray.com/features/39.html crate].


# Select the [[Hammer Block Tool|Block Tool]] [[Image:hammer_block.png|28px]] and create a cube in your map.
In Hammer, a [[Primitives|Primitive]] is a relatively simple [[brush]] object.  Primitives can be world geometry or interactive entities subject to physics & damage. In this example, we will create an interactive primitive that can be destroyed by the player: specifically, a 32-[[unit]] [http://www.oldmanmurray.com/features/39.html crate].
 
[[File:Hammer primitive crate.png|thumb|none|Properly-sized cube with 32x32 texture.]]
 
# Select the {{hammer block}} and create a cube in your map.
# Open the [[Hammer_Texture_Browser|Texture Browser]] and [[Hammer_Texture_Browser#Filter|filter]] for '''dev crate'''.  '''Dev/dev_measurecrate02''' should be a 32x32 crate texture.
# Open the [[Hammer_Texture_Browser|Texture Browser]] and [[Hammer_Texture_Browser#Filter|filter]] for '''dev crate'''.  '''Dev/dev_measurecrate02''' should be a 32x32 crate texture.
# Apply the '''dev/dev_measurecrate02''' texture to your cube. {{Note|If the grid on your 2D views is too large to get down to 32 units, press the <code>[</code> key or click the '''Smaller Grid''' button [[Image:Hammer_SmallerGrid.png]] to create smaller objects on the grid.}}
# Apply the '''dev/dev_measurecrate02''' texture to your cube. {{tip|If the grid on your 2D views is too large to get down to 32 units, press the {{key|[}} or click the '''Smaller Grid''' button [[Image:Hammer_SmallerGrid.png]] to create smaller objects on the grid.}}
# Resize your cube using the [[Hammer Selection Tool|Selection Tool]] [[Image:hammer_select.png|28px]] until the texture fits properly on the cube. {{Note|To this point, creating primitives for world geometry and for interactive objects is the same.  In order to specify whether our crate is, indeed, world geometry or an interactive object, we must select it and move it either [[Hammer_New_Objects_Toolbar#toWorld_.3CCtrl.2BShift.2BW.3E|toWorld]] or [[Hammer_New_Objects_Toolbar#toEntity_.3CCtrl.2BT.3E|toEntity]].}}[[Image:hammer_toEntityButton.png|right|thumb|150px|'''toEntity''' button ('''Ctrl+T''')]]
# Resize your cube using the {{hammer select}} until the texture fits properly on the cube.
# Select the crate using the [[Hammer Selection Tool|Selection Tool]].
# So far, creating primitives for world geometry and for interactive objects is the same.  In order to specify whether our crate is, indeed, world geometry or an interactive object, we must now select it and move it either [[Hammer_New_Objects_Toolbar#toWorld_.3CCtrl.2BShift.2BW.3E|toWorld]] or [[Hammer_New_Objects_Toolbar#toEntity_.3CCtrl.2BT.3E|toEntity]]:[[File:hammer_toEntityButton.png|none|frame|'''toEntity''' button ('''Ctrl+T''')]]
[[Image:Hammer_object_properties.png|right|thumb|300px|func_breakable object properties]]
# With the crate selected, click the [[Hammer_New_Objects_Toolbar#toEntity_.3CCtrl.2BT.3E|toEntity]] button to tie a [[List_of_entities#Function_.28brush.29_entities|function]] to the primitive. This will bring up the [[Hammer_Object_Properties_Dialog|Object Properties]] dialog box: [[File:Hammer object properties.png|none|thumb|func_breakable object properties]]
# Click the [[Hammer_New_Objects_Toolbar#toEntity_.3CCtrl.2BT.3E|toEntity]] button to tie a [[List_of_entities#Function_.28brush.29_entities|function]] to the primitive. This will bring up the [[Hammer_Object_Properties_Dialog|Object Properties]] dialog box.
# Select [[Func_breakable|func_breakable]] from the '''Class:''' drop-down menu.
# Select [[Func_breakable|func_breakable]] from the '''Class:''' drop-down menu.
# Under '''Keyvalues''', select '''Name''' and name your crate something descriptive.  
# Under '''Keyvalues''', select '''Name''' and name your crate something descriptive.  
Line 19: Line 20:
# Under '''Keyvalues''', select '''Physics Impact Damage Scale'''. This scales damage energy when the object is hit by a physics object. {{Note|A value of '''0''' means this feature is disabled. Set to 1.0 for materials as strong as flesh, smaller numbers indicate stronger materials.}}
# Under '''Keyvalues''', select '''Physics Impact Damage Scale'''. This scales damage energy when the object is hit by a physics object. {{Note|A value of '''0''' means this feature is disabled. Set to 1.0 for materials as strong as flesh, smaller numbers indicate stronger materials.}}
# Click '''Apply''' and close the Object Properties dialog box.
# Click '''Apply''' and close the Object Properties dialog box.
<br style="clear:both">


==Crate Texture==
==Crate Texture==
[[Image:Hammer_primitive_crate2.png|thumb|315px|left|Textured functional crate]]
 
Once our crate is correctly sized, we can apply a proper texture to it using the same technique we used previously.
Once our crate is correctly sized, we can apply a proper texture to it using the same technique we used previously.
# Open the [[Hammer_Texture_Browser|Texture Browser]] and [[Hammer_Texture_Browser#Filter|filter]] for '''crate'''.
# Select '''props/woodcrate001a''' and apply it to your cube.  You may have to use the Face Edit Sheet to fit the texture to the cube. {{Note|Ensure that the texture is aligned to '''Face'''.}}


# Open the [[Hammer Texture Browser|Texture Browser]] and [[Hammer Texture Browser#Filter|filter]] for '''crate'''.
# Select '''props/woodcrate001a''' and apply it to your cube.  You may have to use the Face Edit Sheet to fit the texture to the cube. {{note|Ensure that the texture is aligned to '''Face'''.}}
And with that, we're done:
[[File:Hammer_primitive_crate2.png|thumb|315px|none|A textured, functional crate]]


<br style="clear:both">
==External Links==
*[http://www.vadear.com/koko/?p=194 Creating Basic Primitives. On Vadear.com]
{{Navbar|Applying_Textures|Your First Map|Adding Entities}}
{{Navbar|Applying_Textures|Your First Map|Adding Entities}}
{{otherlang:en}}
{{otherlang:en:ru|Creating Primitives:ru}},
{{otherlang:en:fr|Creating Primitives:fr}},
{{otherlang:en:zh-cn|Creating Primitives:zh-cn}}


[[Category:Level Design Tutorials]]
[[Category:Level Design Tutorials]]

Revision as of 03:02, 28 August 2009

Template:Otherlang2

In Hammer, a Primitive is a relatively simple brush object. Primitives can be world geometry or interactive entities subject to physics & damage. In this example, we will create an interactive primitive that can be destroyed by the player: specifically, a 32-unit crate.

Properly-sized cube with 32x32 texture.
  1. Select the Block tool Hammer block.png and create a cube in your map.
  2. Open the Texture Browser and filter for dev crate. Dev/dev_measurecrate02 should be a 32x32 crate texture.
  3. Apply the dev/dev_measurecrate02 texture to your cube.
    Tip.pngTip:If the grid on your 2D views is too large to get down to 32 units, press the [ or click the Smaller Grid button Hammer SmallerGrid.png to create smaller objects on the grid.
  4. Resize your cube using the Selection tool Hammer select.png until the texture fits properly on the cube.
  5. So far, creating primitives for world geometry and for interactive objects is the same. In order to specify whether our crate is, indeed, world geometry or an interactive object, we must now select it and move it either toWorld or toEntity:
    toEntity button (Ctrl+T)
  6. With the crate selected, click the toEntity button to tie a function to the primitive. This will bring up the Object Properties dialog box:
    func_breakable object properties
  7. Select func_breakable from the Class: drop-down menu.
  8. Under Keyvalues, select Name and name your crate something descriptive.
  9. Under Keyvalues, select Strength. The Strength value specifies how much damage the crate can take before breaking. Set the value to 1.
  10. Under Keyvalues, select Material Type. The material type specifies the sounds the crate will make and also what type of gibs it will break into. Select Wood from the drop-down menu.
  11. Under Keyvalues, select Physics Impact Damage Scale. This scales damage energy when the object is hit by a physics object.
    Note.pngNote:A value of 0 means this feature is disabled. Set to 1.0 for materials as strong as flesh, smaller numbers indicate stronger materials.
  12. Click Apply and close the Object Properties dialog box.

Crate Texture

Once our crate is correctly sized, we can apply a proper texture to it using the same technique we used previously.

  1. Open the Texture Browser and filter for crate.
  2. Select props/woodcrate001a and apply it to your cube. You may have to use the Face Edit Sheet to fit the texture to the cube.
    Note.pngNote:Ensure that the texture is aligned to Face.

And with that, we're done:

A textured, functional crate