User Tools

Site Tools


attach_points

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
attach_points [2020/09/27 12:00] justinattach_points [2022/05/09 15:06] justin
Line 28: Line 28:
 Once you've set up any necessary attach points for your [[object|objects]] and the models to which they will be attached, you can use the [[Attach Object]] scripting function to trigger an [[object]] to be attached to a target [[entity]] in-game, for example to attach a torch to a wall tile when the player interacts with it. Once you've set up any necessary attach points for your [[object|objects]] and the models to which they will be attached, you can use the [[Attach Object]] scripting function to trigger an [[object]] to be attached to a target [[entity]] in-game, for example to attach a torch to a wall tile when the player interacts with it.
  
 +The example below will attach the "sword" [[object]] model's "handle" attach point to the player's "right_hand" attach point.
 <code bauxite> <code bauxite>
-attach_object("sword", player, "handle", "right_hand")+attach_object("sword", player, "handle", "right_hand");
 </code> </code>
  
 +Alternately, you can create attach points for the sword [[object]] and player [[character]] using the same ID (e.g. "hand") and leave out the function's fourth parameter.
 <code bauxite> <code bauxite>
-attach_object("sword", player, "hand")+attach_object("sword", player, "hand");
 </code> </code>
  
 To detach a previously attached [[object]], you can use the [[Detach Object]] scripting function, for example to remove a book from a table when the player interacts with the table. To detach a previously attached [[object]], you can use the [[Detach Object]] scripting function, for example to remove a book from a table when the player interacts with the table.
  
 +The example below will detach the [[object]] currently attached to the player's "right_hand" attach point.
 <code bauxite> <code bauxite>
-detach_object(player, "right_hand")+detach_object(player, "right_hand")
 +</code> 
 + 
 +You can reference the [[object]] that's currently attached to an attach point using the "attachment" property with the desired attach point ID. In the example below, the "glow" animation will be played for the [[object]] attached to the player's "right_hand" attach point. 
 +<code bauxite> 
 +play_animation(player.attachment["right_hand"], "glow");
 </code> </code>
  
Line 45: Line 53:
 Although most of the equipment system is yet to be implemented, there is some experimental functionality that can be used to automatically attach models to a character whenever an item is equipped. The steps below can be followed to create an equippable item with a corresponding [[object]] model. Although most of the equipment system is yet to be implemented, there is some experimental functionality that can be used to automatically attach models to a character whenever an item is equipped. The steps below can be followed to create an equippable item with a corresponding [[object]] model.
  
-Toggle "Equippable" to "On" for the item in the Item Editor+1) Toggle the "Equippable" setting to "On" for the [[item]] in the [[Item Editor]].
  
-Assign an "Object Model" to the item in the Item Editor+2) Assign an [[object]] model to the [[item]] in the [[Item Editor]].
  
-Create an attach point for both the character and object that match the equipment slot ID (e.g. "right_hand")+3) Create an attach point for both the [[character]] and [[object]] that matches the equipment slot ID (e.g. "right_hand").
  
-Call "equip_item" scripting function to equip the item to the appropriate slot (e.g. "right_hand") and object will automatically be attached to the corresponding attach point+4) Call the [[Equip Item]] scripting function to equip the [[item]] to the appropriate slot (e.g. "right_hand") and the [[object]] will automatically be attached to the corresponding attach point.
  
 <code bauxite> <code bauxite>
-equip_item(player, "right_hand", "ITEM_0001")+equip_item(player, "right_hand", "ITEM_0001");
 </code> </code>
 +
 +With this setup, calling the [[Unequip Item]] scripting function will automatically detach the [[object]] model associated with the [[item]] that is unequipped.
 +
 +<code bauxite>
 +unequip_item(player, "right_hand");
 +</code>
 +
 ~~NOTOC~~ ~~NOTOC~~
attach_points.txt · Last modified: 2022/05/09 15:06 by justin