<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wolfire.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Constance</id>
	<title>Wolfire Games Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wolfire.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Constance"/>
	<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Special:Contributions/Constance"/>
	<updated>2026-05-04T19:08:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6297</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6297"/>
		<updated>2024-01-09T23:30:19Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Event Keyframes */ Corrected typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: Blender 4.0+ is NOT compatible with the 2.93 scripts!&#039;&#039;&#039; You will get an error while exporting .anm files.&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|239px|right|How to find the animation controls for exported frame data (Click to animate!)]]&lt;br /&gt;
[[File:Start_end_frames.png|thumb|340px|right|How to set the animation duration]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values.&lt;br /&gt;
While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
If your animation duration is too short or too long, your animation might last too long, or it might get cut off.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|439px|right|Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used for special keyframes.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the &#039;&#039;&#039;Bone Properties&#039;&#039;&#039; tab within the Properties window.&lt;br /&gt;
&lt;br /&gt;
All event keyframes work regardless of what value you assign to them (0.0, 1.0, inbetween); What matters is their placement.&lt;br /&gt;
Some other keyframes require a range from 0.0 to 1.0 to work properly. These are noted in this table when applicable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Triggers the actual impact while attacking a character. Works on any DEF bone&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Specifies the latest time at which the attack is still blockable, which is also the latest time that it can be canceled as a “feint” by pressing right-click&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked|| Dictates when an attack is blocked in a blocked attack&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Triggers footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Triggers footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Triggers footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Triggers footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into an active ragdoll state. Used in throw attacks&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem|| Grabs the nearest pickupable item within 90cm of the hand&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_leftweaponrelease||As above, but for the left hand. Is not included in the animation rig by default; Has to be added&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut|| Slits opponent&#039;s throat. Only works with &amp;quot;tethered&amp;quot; characters, like when choking&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_l||Switches weapon to left hand.&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_r||Switches weapon to right hand.&lt;br /&gt;
|-&lt;br /&gt;
|ik||Switches from FK (0.0) to IK (1.0). Mostly affects animation interpolation&lt;br /&gt;
|-&lt;br /&gt;
|shape_fist||Ranges from fist closed (0.0) to wide open (1.0).&lt;br /&gt;
|-&lt;br /&gt;
|status_cancel||Specifies when the remainder of the animation can be skipped when the player tries to move. Used for &amp;quot;optional&amp;quot; ending bits of attacks. &#039;&#039;&#039;TODO: Is this from a 0.0 to 1.0 range?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|status_escape||Ranges from 0 to 1. When this is 1, the thrown character can escape from the throw&lt;br /&gt;
|-&lt;br /&gt;
|status_groundconform||TODO: Might be related to the rolling animation when on slopes. How does this work?&lt;br /&gt;
|-&lt;br /&gt;
|status_rightarm_blend||Controls how closely the right arm follows the animation. Ranges from 0.0 (default, &amp;quot;floppy&amp;quot;) to 1.0 (stiff and exact).&lt;br /&gt;
|-&lt;br /&gt;
|status_leftarm_blend||^^^, but for the left arm.&lt;br /&gt;
|}&lt;br /&gt;
If you find properties not listed here, they are most likely used for character rigging or Blender animation (not read by the game).&lt;br /&gt;
&lt;br /&gt;
===Adding an Event Keyframe to your animation===&lt;br /&gt;
# Make sure DEF bones are revealed (see Bone layers)&lt;br /&gt;
# Select the appropriate DEF bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe in the dopesheet from its parent, select it from the parent&#039;s dropdown menu (so the event keyframe&#039;s name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
===Bone Influence===&lt;br /&gt;
Certain animations have Influence keyframes. Usually, it&#039;s something like &amp;quot;Influence (DEF-toe.L : left_leg)&amp;quot;. These are to make sure the bone stays on the ground while the animation plays. &#039;&#039;&#039;TODO: How else can Influence be used?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To add Influence keyframes like this, select the desired bone (usually DEF-toe) and look at the Bone Constraints menu in your Properties. Find the desired bone constraint, right click the value field and click Insert Keyframe.&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6296</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6296"/>
		<updated>2023-12-03T04:49:24Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Overview */ Included note about Blender 4.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: Blender 4.0+ is NOT compatible with the 2.93 scripts!&#039;&#039;&#039; You will get an error while exporting .anm files.&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|239px|right|How to find the animation controls for exported frame data (Click to animate!)]]&lt;br /&gt;
[[File:Start_end_frames.png|thumb|340px|right|How to set the animation duration]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values.&lt;br /&gt;
While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
If your animation duration is too short or too long, your animation might last too long, or it might get cut off.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|439px|right|Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used for special keyframes.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the &#039;&#039;&#039;Bone Properties&#039;&#039;&#039; tab within the Properties window.&lt;br /&gt;
&lt;br /&gt;
All event keyframes work regardless of what value you assign to them (0.0, 1.0, inbetween); What matters is their placement.&lt;br /&gt;
Some other keyframes require a range from 0.0 to 1.0 to work properly. These are noted in this table when applicable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Triggers the actual impact while attacking a character. Works on any DEF bone&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Specifies the latest time at which the attack is still blockable, which is also the latest time that it can be canceled as a “feint” by pressing right-click&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked|| Dictates when an attack is blocked in a blocked att I&#039;ve tried copying the kack animation&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Triggers footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Triggers footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Triggers footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Triggers footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into an active ragdoll state. Used in throw attacks&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem|| Grabs the nearest pickupable item within 90cm of the hand&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_leftweaponrelease||As above, but for the left hand. Is not included in the animation rig by default; Has to be added&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut|| Slits opponent&#039;s throat. Only works with &amp;quot;tethered&amp;quot; characters, like when choking&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_l||Switches weapon to left hand.&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_r||Switches weapon to right hand.&lt;br /&gt;
|-&lt;br /&gt;
|ik||Switches from FK (0.0) to IK (1.0). Mostly affects animation interpolation&lt;br /&gt;
|-&lt;br /&gt;
|shape_fist||Ranges from fist closed (0.0) to wide open (1.0).&lt;br /&gt;
|-&lt;br /&gt;
|status_cancel||Specifies when the remainder of the animation can be skipped when the player tries to move. Used for &amp;quot;optional&amp;quot; ending bits of attacks. &#039;&#039;&#039;TODO: Is this from a 0.0 to 1.0 range?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|status_escape||Ranges from 0 to 1. When this is 1, the thrown character can escape from the throw&lt;br /&gt;
|-&lt;br /&gt;
|status_groundconform||TODO: Might be related to the rolling animation when on slopes. How does this work?&lt;br /&gt;
|-&lt;br /&gt;
|status_rightarm_blend||Controls how closely the right arm follows the animation. Ranges from 0.0 (default, &amp;quot;floppy&amp;quot;) to 1.0 (stiff and exact).&lt;br /&gt;
|-&lt;br /&gt;
|status_leftarm_blend||^^^, but for the left arm.&lt;br /&gt;
|}&lt;br /&gt;
If you find properties not listed here, they are most likely used for character rigging or Blender animation (not read by the game).&lt;br /&gt;
&lt;br /&gt;
===Adding an Event Keyframe to your animation===&lt;br /&gt;
# Make sure DEF bones are revealed (see Bone layers)&lt;br /&gt;
# Select the appropriate DEF bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe in the dopesheet from its parent, select it from the parent&#039;s dropdown menu (so the event keyframe&#039;s name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
===Bone Influence===&lt;br /&gt;
Certain animations have Influence keyframes. Usually, it&#039;s something like &amp;quot;Influence (DEF-toe.L : left_leg)&amp;quot;. These are to make sure the bone stays on the ground while the animation plays. &#039;&#039;&#039;TODO: How else can Influence be used?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To add Influence keyframes like this, select the desired bone (usually DEF-toe) and look at the Bone Constraints menu in your Properties. Find the desired bone constraint, right click the value field and click Insert Keyframe.&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6295</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6295"/>
		<updated>2023-12-03T04:47:26Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Bone layers */ Corrected bone layer text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|239px|right|How to find the animation controls for exported frame data (Click to animate!)]]&lt;br /&gt;
[[File:Start_end_frames.png|thumb|340px|right|How to set the animation duration]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values.&lt;br /&gt;
While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
If your animation duration is too short or too long, your animation might last too long, or it might get cut off.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|439px|right|Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used for special keyframes.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the &#039;&#039;&#039;Bone Properties&#039;&#039;&#039; tab within the Properties window.&lt;br /&gt;
&lt;br /&gt;
All event keyframes work regardless of what value you assign to them (0.0, 1.0, inbetween); What matters is their placement.&lt;br /&gt;
Some other keyframes require a range from 0.0 to 1.0 to work properly. These are noted in this table when applicable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Triggers the actual impact while attacking a character. Works on any DEF bone&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Specifies the latest time at which the attack is still blockable, which is also the latest time that it can be canceled as a “feint” by pressing right-click&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked|| Dictates when an attack is blocked in a blocked att I&#039;ve tried copying the kack animation&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Triggers footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Triggers footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Triggers footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Triggers footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into an active ragdoll state. Used in throw attacks&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem|| Grabs the nearest pickupable item within 90cm of the hand&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_leftweaponrelease||As above, but for the left hand. Is not included in the animation rig by default; Has to be added&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut|| Slits opponent&#039;s throat. Only works with &amp;quot;tethered&amp;quot; characters, like when choking&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_l||Switches weapon to left hand.&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_r||Switches weapon to right hand.&lt;br /&gt;
|-&lt;br /&gt;
|ik||Switches from FK (0.0) to IK (1.0). Mostly affects animation interpolation&lt;br /&gt;
|-&lt;br /&gt;
|shape_fist||Ranges from fist closed (0.0) to wide open (1.0).&lt;br /&gt;
|-&lt;br /&gt;
|status_cancel||Specifies when the remainder of the animation can be skipped when the player tries to move. Used for &amp;quot;optional&amp;quot; ending bits of attacks. &#039;&#039;&#039;TODO: Is this from a 0.0 to 1.0 range?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|status_escape||Ranges from 0 to 1. When this is 1, the thrown character can escape from the throw&lt;br /&gt;
|-&lt;br /&gt;
|status_groundconform||TODO: Might be related to the rolling animation when on slopes. How does this work?&lt;br /&gt;
|-&lt;br /&gt;
|status_rightarm_blend||Controls how closely the right arm follows the animation. Ranges from 0.0 (default, &amp;quot;floppy&amp;quot;) to 1.0 (stiff and exact).&lt;br /&gt;
|-&lt;br /&gt;
|status_leftarm_blend||^^^, but for the left arm.&lt;br /&gt;
|}&lt;br /&gt;
If you find properties not listed here, they are most likely used for character rigging or Blender animation (not read by the game).&lt;br /&gt;
&lt;br /&gt;
===Adding an Event Keyframe to your animation===&lt;br /&gt;
# Make sure DEF bones are revealed (see Bone layers)&lt;br /&gt;
# Select the appropriate DEF bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe in the dopesheet from its parent, select it from the parent&#039;s dropdown menu (so the event keyframe&#039;s name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
===Bone Influence===&lt;br /&gt;
Certain animations have Influence keyframes. Usually, it&#039;s something like &amp;quot;Influence (DEF-toe.L : left_leg)&amp;quot;. These are to make sure the bone stays on the ground while the animation plays. &#039;&#039;&#039;TODO: How else can Influence be used?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To add Influence keyframes like this, select the desired bone (usually DEF-toe) and look at the Bone Constraints menu in your Properties. Find the desired bone constraint, right click the value field and click Insert Keyframe.&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=File:Animation_rig_layers.png&amp;diff=6294</id>
		<title>File:Animation rig layers.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=File:Animation_rig_layers.png&amp;diff=6294"/>
		<updated>2023-12-03T04:46:38Z</updated>

		<summary type="html">&lt;p&gt;Constance: Constance uploaded a new version of File:Animation rig layers.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cyan text is only for character rigging.&lt;br /&gt;
White text is only for animation.&lt;br /&gt;
Green text is only for DEF bones, which are used in animation.&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6293</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6293"/>
		<updated>2023-12-03T04:19:41Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Bone Influence */ Fixed spacing.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|239px|right|How to find the animation controls for exported frame data (Click to animate!)]]&lt;br /&gt;
[[File:Start_end_frames.png|thumb|340px|right|How to set the animation duration]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values.&lt;br /&gt;
While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
If your animation duration is too short or too long, your animation might last too long, or it might get cut off.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|242px|right|**Pre-Blender 4.0 interface: Past 4.0, bone collections no longer work, as far as I know.** Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the &#039;&#039;&#039;Bone Properties&#039;&#039;&#039; tab within the Properties window.&lt;br /&gt;
&lt;br /&gt;
All event keyframes work regardless of what value you assign to them (0.0, 1.0, inbetween); What matters is their placement.&lt;br /&gt;
Some other keyframes require a range from 0.0 to 1.0 to work properly. These are noted in this table when applicable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Triggers the actual impact while attacking a character. Works on any DEF bone&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Specifies the latest time at which the attack is still blockable, which is also the latest time that it can be canceled as a “feint” by pressing right-click&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked|| Dictates when an attack is blocked in a blocked att I&#039;ve tried copying the kack animation&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Triggers footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Triggers footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Triggers footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Triggers footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into an active ragdoll state. Used in throw attacks&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem|| Grabs the nearest pickupable item within 90cm of the hand&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_leftweaponrelease||As above, but for the left hand. Is not included in the animation rig by default; Has to be added&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut|| Slits opponent&#039;s throat. Only works with &amp;quot;tethered&amp;quot; characters, like when choking&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_l||Switches weapon to left hand.&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_r||Switches weapon to right hand.&lt;br /&gt;
|-&lt;br /&gt;
|ik||Switches from FK (0.0) to IK (1.0). Mostly affects animation interpolation&lt;br /&gt;
|-&lt;br /&gt;
|shape_fist||Ranges from fist closed (0.0) to wide open (1.0).&lt;br /&gt;
|-&lt;br /&gt;
|status_cancel||Specifies when the remainder of the animation can be skipped when the player tries to move. Used for &amp;quot;optional&amp;quot; ending bits of attacks. &#039;&#039;&#039;TODO: Is this from a 0.0 to 1.0 range?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|status_escape||Ranges from 0 to 1. When this is 1, the thrown character can escape from the throw&lt;br /&gt;
|-&lt;br /&gt;
|status_groundconform||TODO: Might be related to the rolling animation when on slopes. How does this work?&lt;br /&gt;
|-&lt;br /&gt;
|status_rightarm_blend||Controls how closely the right arm follows the animation. Ranges from 0.0 (default, &amp;quot;floppy&amp;quot;) to 1.0 (stiff and exact).&lt;br /&gt;
|-&lt;br /&gt;
|status_leftarm_blend||^^^, but for the left arm.&lt;br /&gt;
|}&lt;br /&gt;
If you find properties not listed here, they are most likely used for character rigging or Blender animation (not read by the game).&lt;br /&gt;
&lt;br /&gt;
===Adding an Event Keyframe to your animation===&lt;br /&gt;
# Make sure DEF bones are revealed (see Bone layers)&lt;br /&gt;
# Select the appropriate DEF bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe in the dopesheet from its parent, select it from the parent&#039;s dropdown menu (so the event keyframe&#039;s name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
===Bone Influence===&lt;br /&gt;
Certain animations have Influence keyframes. Usually, it&#039;s something like &amp;quot;Influence (DEF-toe.L : left_leg)&amp;quot;. These are to make sure the bone stays on the ground while the animation plays. &#039;&#039;&#039;TODO: How else can Influence be used?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To add Influence keyframes like this, select the desired bone (usually DEF-toe) and look at the Bone Constraints menu in your Properties. Find the desired bone constraint, right click the value field and click Insert Keyframe.&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6292</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6292"/>
		<updated>2023-12-03T04:19:18Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Event Keyframes */ Added bone influence section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|239px|right|How to find the animation controls for exported frame data (Click to animate!)]]&lt;br /&gt;
[[File:Start_end_frames.png|thumb|340px|right|How to set the animation duration]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values.&lt;br /&gt;
While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
If your animation duration is too short or too long, your animation might last too long, or it might get cut off.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|242px|right|**Pre-Blender 4.0 interface: Past 4.0, bone collections no longer work, as far as I know.** Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the &#039;&#039;&#039;Bone Properties&#039;&#039;&#039; tab within the Properties window.&lt;br /&gt;
&lt;br /&gt;
All event keyframes work regardless of what value you assign to them (0.0, 1.0, inbetween); What matters is their placement.&lt;br /&gt;
Some other keyframes require a range from 0.0 to 1.0 to work properly. These are noted in this table when applicable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Triggers the actual impact while attacking a character. Works on any DEF bone&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Specifies the latest time at which the attack is still blockable, which is also the latest time that it can be canceled as a “feint” by pressing right-click&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked|| Dictates when an attack is blocked in a blocked att I&#039;ve tried copying the kack animation&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Triggers footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Triggers footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Triggers footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Triggers footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into an active ragdoll state. Used in throw attacks&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem|| Grabs the nearest pickupable item within 90cm of the hand&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_leftweaponrelease||As above, but for the left hand. Is not included in the animation rig by default; Has to be added&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut|| Slits opponent&#039;s throat. Only works with &amp;quot;tethered&amp;quot; characters, like when choking&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_l||Switches weapon to left hand.&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_r||Switches weapon to right hand.&lt;br /&gt;
|-&lt;br /&gt;
|ik||Switches from FK (0.0) to IK (1.0). Mostly affects animation interpolation&lt;br /&gt;
|-&lt;br /&gt;
|shape_fist||Ranges from fist closed (0.0) to wide open (1.0).&lt;br /&gt;
|-&lt;br /&gt;
|status_cancel||Specifies when the remainder of the animation can be skipped when the player tries to move. Used for &amp;quot;optional&amp;quot; ending bits of attacks. &#039;&#039;&#039;TODO: Is this from a 0.0 to 1.0 range?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|status_escape||Ranges from 0 to 1. When this is 1, the thrown character can escape from the throw&lt;br /&gt;
|-&lt;br /&gt;
|status_groundconform||TODO: Might be related to the rolling animation when on slopes. How does this work?&lt;br /&gt;
|-&lt;br /&gt;
|status_rightarm_blend||Controls how closely the right arm follows the animation. Ranges from 0.0 (default, &amp;quot;floppy&amp;quot;) to 1.0 (stiff and exact).&lt;br /&gt;
|-&lt;br /&gt;
|status_leftarm_blend||^^^, but for the left arm.&lt;br /&gt;
|}&lt;br /&gt;
If you find properties not listed here, they are most likely used for character rigging or Blender animation (not read by the game).&lt;br /&gt;
&lt;br /&gt;
===Adding an Event Keyframe to your animation===&lt;br /&gt;
# Make sure DEF bones are revealed (see Bone layers)&lt;br /&gt;
# Select the appropriate DEF bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe in the dopesheet from its parent, select it from the parent&#039;s dropdown menu (so the event keyframe&#039;s name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
===Bone Influence===&lt;br /&gt;
Certain animations have Influence keyframes. Usually, it&#039;s something like &amp;quot;Influence (DEF-toe.L : left_leg)&amp;quot;. These are to make sure the bone stays on the ground while the animation plays. &#039;&#039;&#039;TODO: How else can Influence be used?&#039;&#039;&#039;&lt;br /&gt;
To add Influence keyframes like this, select the desired bone (usually DEF-toe) and look at the Bone Constraints menu in your Properties. Find the desired bone constraint, right click the value field and click Insert Keyframe.&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6291</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6291"/>
		<updated>2023-11-27T23:16:05Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Event Keyframes */ Bolded&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|239px|right|How to find the animation controls for exported frame data (Click to animate!)]]&lt;br /&gt;
[[File:Start_end_frames.png|thumb|340px|right|How to set the animation duration]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values.&lt;br /&gt;
While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
If your animation duration is too short or too long, your animation might last too long, or it might get cut off.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|242px|right|**Pre-Blender 4.0 interface: Past 4.0, bone collections no longer work, as far as I know.** Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the &#039;&#039;&#039;Bone Properties&#039;&#039;&#039; tab within the Properties window.&lt;br /&gt;
&lt;br /&gt;
All event keyframes work regardless of what value you assign to them (0.0, 1.0, inbetween); What matters is their placement.&lt;br /&gt;
Some other keyframes require a range from 0.0 to 1.0 to work properly. These are noted in this table when applicable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Triggers the actual impact while attacking a character. Works on any DEF bone&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Specifies the latest time at which the attack is still blockable, which is also the latest time that it can be canceled as a “feint” by pressing right-click&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked|| Dictates when an attack is blocked in a blocked attack animation&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Triggers footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Triggers footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Triggers footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Triggers footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into an active ragdoll state. Used in throw attacks&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem|| Grabs the nearest pickupable item within 90cm of the hand&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_leftweaponrelease||As above, but for the left hand. Is not included in the animation rig by default; Has to be added&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut|| Slits opponent&#039;s throat. Only works with &amp;quot;tethered&amp;quot; characters, like when choking&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_l||Switches weapon to left hand.&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_r||Switches weapon to right hand.&lt;br /&gt;
|-&lt;br /&gt;
|ik||Switches from FK (0.0) to IK (1.0). Mostly affects animation interpolation&lt;br /&gt;
|-&lt;br /&gt;
|shape_fist||Ranges from fist closed (0.0) to wide open (1.0).&lt;br /&gt;
|-&lt;br /&gt;
|status_cancel||Specifies when the remainder of the animation can be skipped when the player tries to move. Used for &amp;quot;optional&amp;quot; ending bits of attacks. TODO: Is this from a 0.0 to 1.0 range?&lt;br /&gt;
|-&lt;br /&gt;
|status_escape||Ranges from 0 to 1. When this is 1, the thrown character can escape from the throw&lt;br /&gt;
|-&lt;br /&gt;
|status_groundconform||TODO: Might be related to the rolling animation when on slopes. How does this work?&lt;br /&gt;
|-&lt;br /&gt;
|status_rightarm_blend||Controls how closely the right arm follows the animation. Ranges from 0.0 (default, &amp;quot;floppy&amp;quot;) to 1.0 (stiff and exact).&lt;br /&gt;
|-&lt;br /&gt;
|status_leftarm_blend||^^^, but for the left arm.&lt;br /&gt;
|}&lt;br /&gt;
If you find properties not listed here, they are most likely used for character rigging or Blender animation (not read by the game).&lt;br /&gt;
&lt;br /&gt;
===Adding an Event Keyframe to your animation===&lt;br /&gt;
# Make sure DEF bones are revealed (see Bone layers)&lt;br /&gt;
# Select the appropriate DEF bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe in the dopesheet from its parent, select it from the parent&#039;s dropdown menu (so the event keyframe&#039;s name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6290</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6290"/>
		<updated>2023-11-27T23:14:25Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Bone layers */ Reduced size of the outdated bone layers image.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|239px|right|How to find the animation controls for exported frame data (Click to animate!)]]&lt;br /&gt;
[[File:Start_end_frames.png|thumb|340px|right|How to set the animation duration]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values.&lt;br /&gt;
While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
If your animation duration is too short or too long, your animation might last too long, or it might get cut off.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|242px|right|**Pre-Blender 4.0 interface: Past 4.0, bone collections no longer work, as far as I know.** Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
&lt;br /&gt;
All event keyframes work regardless of what value you assign to them (0.0, 1.0, inbetween); What matters is their placement.&lt;br /&gt;
Some other keyframes require a range from 0.0 to 1.0 to work properly. These are noted in this table when applicable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Triggers the actual impact while attacking a character. Works on any DEF bone&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Specifies the latest time at which the attack is still blockable, which is also the latest time that it can be canceled as a “feint” by pressing right-click&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked|| Dictates when an attack is blocked in a blocked attack animation&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Triggers footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Triggers footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Triggers footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Triggers footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into an active ragdoll state. Used in throw attacks&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem|| Grabs the nearest pickupable item within 90cm of the hand&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_leftweaponrelease||As above, but for the left hand. Is not included in the animation rig by default; Has to be added&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut|| Slits opponent&#039;s throat. Only works with &amp;quot;tethered&amp;quot; characters, like when choking&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_l||Switches weapon to left hand.&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_r||Switches weapon to right hand.&lt;br /&gt;
|-&lt;br /&gt;
|ik||Switches from FK (0.0) to IK (1.0). Mostly affects animation interpolation&lt;br /&gt;
|-&lt;br /&gt;
|shape_fist||Ranges from fist closed (0.0) to wide open (1.0).&lt;br /&gt;
|-&lt;br /&gt;
|status_cancel||Specifies when the remainder of the animation can be skipped when the player tries to move. Used for &amp;quot;optional&amp;quot; ending bits of attacks. TODO: Is this from a 0.0 to 1.0 range?&lt;br /&gt;
|-&lt;br /&gt;
|status_escape||Ranges from 0 to 1. When this is 1, the thrown character can escape from the throw&lt;br /&gt;
|-&lt;br /&gt;
|status_groundconform||TODO: Might be related to the rolling animation when on slopes. How does this work?&lt;br /&gt;
|-&lt;br /&gt;
|status_rightarm_blend||Controls how closely the right arm follows the animation. Ranges from 0.0 (default, &amp;quot;floppy&amp;quot;) to 1.0 (stiff and exact).&lt;br /&gt;
|-&lt;br /&gt;
|status_leftarm_blend||^^^, but for the left arm.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you find properties not listed here, they are most likely used for character rigging or Blender animation (not read by the game).&lt;br /&gt;
&lt;br /&gt;
===Adding an Event Keyframe to your animation===&lt;br /&gt;
# Make sure DEF bones are revealed (see Bone layers)&lt;br /&gt;
# Select the appropriate DEF bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe in the dopesheet from its parent, select it from the parent&#039;s dropdown menu (so the event keyframe&#039;s name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6289</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6289"/>
		<updated>2023-11-27T23:13:05Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Adding an Event Keyframe to your animation */ Keyframe ungrouping note clarified&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|239px|right|How to find the animation controls for exported frame data (Click to animate!)]]&lt;br /&gt;
[[File:Start_end_frames.png|thumb|340px|right|How to set the animation duration]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values.&lt;br /&gt;
While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
If your animation duration is too short or too long, your animation might last too long, or it might get cut off.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|**Pre-Blender 4.0 interface: Past 4.0, bone collections no longer work, as far as I know.** Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
&lt;br /&gt;
All event keyframes work regardless of what value you assign to them (0.0, 1.0, inbetween); What matters is their placement.&lt;br /&gt;
Some other keyframes require a range from 0.0 to 1.0 to work properly. These are noted in this table when applicable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Triggers the actual impact while attacking a character. Works on any DEF bone&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Specifies the latest time at which the attack is still blockable, which is also the latest time that it can be canceled as a “feint” by pressing right-click&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked|| Dictates when an attack is blocked in a blocked attack animation&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Triggers footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Triggers footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Triggers footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Triggers footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into an active ragdoll state. Used in throw attacks&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem|| Grabs the nearest pickupable item within 90cm of the hand&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_leftweaponrelease||As above, but for the left hand. Is not included in the animation rig by default; Has to be added&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut|| Slits opponent&#039;s throat. Only works with &amp;quot;tethered&amp;quot; characters, like when choking&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_l||Switches weapon to left hand.&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_r||Switches weapon to right hand.&lt;br /&gt;
|-&lt;br /&gt;
|ik||Switches from FK (0.0) to IK (1.0). Mostly affects animation interpolation&lt;br /&gt;
|-&lt;br /&gt;
|shape_fist||Ranges from fist closed (0.0) to wide open (1.0).&lt;br /&gt;
|-&lt;br /&gt;
|status_cancel||Specifies when the remainder of the animation can be skipped when the player tries to move. Used for &amp;quot;optional&amp;quot; ending bits of attacks. TODO: Is this from a 0.0 to 1.0 range?&lt;br /&gt;
|-&lt;br /&gt;
|status_escape||Ranges from 0 to 1. When this is 1, the thrown character can escape from the throw&lt;br /&gt;
|-&lt;br /&gt;
|status_groundconform||TODO: Might be related to the rolling animation when on slopes. How does this work?&lt;br /&gt;
|-&lt;br /&gt;
|status_rightarm_blend||Controls how closely the right arm follows the animation. Ranges from 0.0 (default, &amp;quot;floppy&amp;quot;) to 1.0 (stiff and exact).&lt;br /&gt;
|-&lt;br /&gt;
|status_leftarm_blend||^^^, but for the left arm.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you find properties not listed here, they are most likely used for character rigging or Blender animation (not read by the game).&lt;br /&gt;
&lt;br /&gt;
===Adding an Event Keyframe to your animation===&lt;br /&gt;
# Make sure DEF bones are revealed (see Bone layers)&lt;br /&gt;
# Select the appropriate DEF bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe in the dopesheet from its parent, select it from the parent&#039;s dropdown menu (so the event keyframe&#039;s name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6288</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6288"/>
		<updated>2023-11-27T23:11:57Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Event Keyframes */ Minor correction&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|239px|right|How to find the animation controls for exported frame data (Click to animate!)]]&lt;br /&gt;
[[File:Start_end_frames.png|thumb|340px|right|How to set the animation duration]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values.&lt;br /&gt;
While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
If your animation duration is too short or too long, your animation might last too long, or it might get cut off.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|**Pre-Blender 4.0 interface: Past 4.0, bone collections no longer work, as far as I know.** Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
&lt;br /&gt;
All event keyframes work regardless of what value you assign to them (0.0, 1.0, inbetween); What matters is their placement.&lt;br /&gt;
Some other keyframes require a range from 0.0 to 1.0 to work properly. These are noted in this table when applicable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Triggers the actual impact while attacking a character. Works on any DEF bone&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Specifies the latest time at which the attack is still blockable, which is also the latest time that it can be canceled as a “feint” by pressing right-click&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked|| Dictates when an attack is blocked in a blocked attack animation&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Triggers footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Triggers footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Triggers footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Triggers footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into an active ragdoll state. Used in throw attacks&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem|| Grabs the nearest pickupable item within 90cm of the hand&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_leftweaponrelease||As above, but for the left hand. Is not included in the animation rig by default; Has to be added&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut|| Slits opponent&#039;s throat. Only works with &amp;quot;tethered&amp;quot; characters, like when choking&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_l||Switches weapon to left hand.&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_r||Switches weapon to right hand.&lt;br /&gt;
|-&lt;br /&gt;
|ik||Switches from FK (0.0) to IK (1.0). Mostly affects animation interpolation&lt;br /&gt;
|-&lt;br /&gt;
|shape_fist||Ranges from fist closed (0.0) to wide open (1.0).&lt;br /&gt;
|-&lt;br /&gt;
|status_cancel||Specifies when the remainder of the animation can be skipped when the player tries to move. Used for &amp;quot;optional&amp;quot; ending bits of attacks. TODO: Is this from a 0.0 to 1.0 range?&lt;br /&gt;
|-&lt;br /&gt;
|status_escape||Ranges from 0 to 1. When this is 1, the thrown character can escape from the throw&lt;br /&gt;
|-&lt;br /&gt;
|status_groundconform||TODO: Might be related to the rolling animation when on slopes. How does this work?&lt;br /&gt;
|-&lt;br /&gt;
|status_rightarm_blend||Controls how closely the right arm follows the animation. Ranges from 0.0 (default, &amp;quot;floppy&amp;quot;) to 1.0 (stiff and exact).&lt;br /&gt;
|-&lt;br /&gt;
|status_leftarm_blend||^^^, but for the left arm.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you find properties not listed here, they are most likely used for character rigging or Blender animation (not read by the game).&lt;br /&gt;
&lt;br /&gt;
===Adding an Event Keyframe to your animation===&lt;br /&gt;
# Make sure DEF bones are revealed (see Bone layers)&lt;br /&gt;
# Select the appropriate DEF bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe in the dopesheet, select it (so its name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6287</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6287"/>
		<updated>2023-11-27T23:11:11Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Event Keyframes */ Event keyframe documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|239px|right|How to find the animation controls for exported frame data (Click to animate!)]]&lt;br /&gt;
[[File:Start_end_frames.png|thumb|340px|right|How to set the animation duration]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values.&lt;br /&gt;
While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
If your animation duration is too short or too long, your animation might last too long, or it might get cut off.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|**Pre-Blender 4.0 interface: Past 4.0, bone collections no longer work, as far as I know.** Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
&lt;br /&gt;
All event keyframes work regardless of what value you assign to them (0, 1, inbetween); What matters is their placement.&lt;br /&gt;
Some other keyframes require a range from 0 to 1  to work properly. These are noted in this table when applicable.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Triggers the actual impact while attacking a character. Works on any DEF bone&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Specifies the latest time at which the attack is still blockable, which is also the latest time that it can be canceled as a “feint” by pressing right-click&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked|| Dictates when an attack is blocked in a blocked attack animation&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Triggers footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Triggers footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Triggers footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Triggers footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into an active ragdoll state. Used in throw attacks&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem|| Grabs the nearest pickupable item within 90cm of the hand&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_leftweaponrelease||As above, but for the left hand. Is not included in the animation rig by default; Has to be added&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut|| Slits opponent&#039;s throat. Only works with &amp;quot;tethered&amp;quot; characters, like when choking&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_l||Switches weapon to left hand.&lt;br /&gt;
|-&lt;br /&gt;
|weap_to_hand_r||Switches weapon to right hand.&lt;br /&gt;
|-&lt;br /&gt;
|ik||Switches from FK (0.0) to IK (1.0). Mostly affects animation interpolation&lt;br /&gt;
|-&lt;br /&gt;
|shape_fist||Ranges from fist closed (0.0) to wide open (1.0).&lt;br /&gt;
|-&lt;br /&gt;
|status_cancel||Specifies when the remainder of the animation can be skipped when the player tries to move. Used for &amp;quot;optional&amp;quot; ending bits of attacks. TODO: Is this from a 0.0 to 1.0 range?&lt;br /&gt;
|-&lt;br /&gt;
|status_escape||Ranges from 0 to 1. When this is 1, the thrown character can escape from the throw&lt;br /&gt;
|-&lt;br /&gt;
|status_groundconform||TODO: Might be related to the rolling animation when on slopes. How does this work?&lt;br /&gt;
|-&lt;br /&gt;
|status_rightarm_blend||Controls how closely the right arm follows the animation. Ranges from 0.0 (default, &amp;quot;floppy&amp;quot;) to 1.0 (stiff and exact).&lt;br /&gt;
|-&lt;br /&gt;
|status_leftarm_blend||^^^, but for the left arm.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you find properties not listed here, they are most likely used for character rigging or Blender animation (not read by the game).&lt;br /&gt;
&lt;br /&gt;
===Adding an Event Keyframe to your animation===&lt;br /&gt;
# Make sure DEF bones are revealed (see Bone layers)&lt;br /&gt;
# Select the appropriate DEF bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe in the dopesheet, select it (so its name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6286</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6286"/>
		<updated>2023-11-27T22:56:03Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Changing the start &amp;amp; end frames */ Included duration note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|239px|right|How to find the animation controls for exported frame data (Click to animate!)]]&lt;br /&gt;
[[File:Start_end_frames.png|thumb|340px|right|How to set the animation duration]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values.&lt;br /&gt;
While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
If your animation duration is too short or too long, your animation might last too long, or it might get cut off.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|**Pre-Blender 4.0 interface: Past 4.0, bone collections no longer work, as far as I know.** Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when AI characters should block. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Make sure DEF bones are revealed (see Bone layers)&lt;br /&gt;
# Select the appropriate DEF bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe in the dopesheet, select it (so its name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6285</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6285"/>
		<updated>2023-11-27T22:50:10Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Changing the start &amp;amp; end frames */ Edited image sizes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|239px|right|How to find the animation controls for exported frame data (Click to animate!)]]&lt;br /&gt;
[[File:Start_end_frames.png|thumb|340px|right|How to set the animation duration]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values.&lt;br /&gt;
While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|**Pre-Blender 4.0 interface: Past 4.0, bone collections no longer work, as far as I know.** Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when AI characters should block. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Make sure DEF bones are revealed (see Bone layers)&lt;br /&gt;
# Select the appropriate DEF bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe in the dopesheet, select it (so its name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6284</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6284"/>
		<updated>2023-11-27T22:49:06Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Changing the start &amp;amp; end frames */ Included instructions on how to set animation duration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|439px|right|How to find the animation controls for exported frame data]]&lt;br /&gt;
[[File:Start_end_frames.png|thumb|439px|right|How to set the animation duration]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values.&lt;br /&gt;
While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|**Pre-Blender 4.0 interface: Past 4.0, bone collections no longer work, as far as I know.** Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when AI characters should block. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Make sure DEF bones are revealed (see Bone layers)&lt;br /&gt;
# Select the appropriate DEF bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe in the dopesheet, select it (so its name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=File:Start_end_frames.png&amp;diff=6283</id>
		<title>File:Start end frames.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=File:Start_end_frames.png&amp;diff=6283"/>
		<updated>2023-11-27T22:47:42Z</updated>

		<summary type="html">&lt;p&gt;Constance: The start &amp;amp; end frames in an animation rig.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The start &amp;amp; end frames in an animation rig.&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6282</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6282"/>
		<updated>2023-11-27T22:45:13Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Adding an event Keyframe to your animation */ Revised instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|439px|right|How to find the animation controls for exported frame data]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values. While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|**Pre-Blender 4.0 interface: Past 4.0, bone collections no longer work, as far as I know.** Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when AI characters should block. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Make sure DEF bones are revealed (see Bone layers)&lt;br /&gt;
# Select the appropriate DEF bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe in the dopesheet, select it (so its name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6281</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6281"/>
		<updated>2023-11-27T22:12:09Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Overview */ Revised download locations for 2.93+ scripts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 2.93&#039;&#039;&#039; and above are located at [https://github.com/WolfireGames/overgrowth/tree/main/Data/BlenderScript/2.93 Overgrowth&#039;s Github repository, here.] Download bone_io.zip and io_anm.rar and follow the Readme instructions. You can also check videos.rar for tutorial videos on how to install these scripts, if you need.&lt;br /&gt;
These same scripts can also be found in the Overgrowth Modding channel on the Wolfire Discord, under the pinned messages.&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|439px|right|How to find the animation controls for exported frame data]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values. While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|**Pre-Blender 4.0 interface: Past 4.0, bone collections no longer work, as far as I know.** Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when AI characters should block. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right, as shown in the Bone Layers section&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe, select it (so its name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6280</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6280"/>
		<updated>2023-11-27T22:01:09Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Bone layers */ Added bone layer image note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 3.4&#039;&#039;&#039; and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z (instructions on how to install are included).&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|439px|right|How to find the animation controls for exported frame data]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values. While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|**Pre-Blender 4.0 interface: Past 4.0, bone collections no longer work, as far as I know.** Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when AI characters should block. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right, as shown in the Bone Layers section&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe, select it (so its name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6279</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6279"/>
		<updated>2023-11-27T21:59:00Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Bone layers */ Revised bone reveal instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 3.4&#039;&#039;&#039; and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z (instructions on how to install are included).&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|439px|right|How to find the animation controls for exported frame data]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values. While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
&lt;br /&gt;
After revealing everything, you might find the rig is a bit cluttered with unnecessary bones, like ORG and MCH bones. These are only used for rigging, and not for animation. Select these and press H to hide them individually.&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when AI characters should block. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right, as shown in the Bone Layers section&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe, select it (so its name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6278</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6278"/>
		<updated>2023-11-27T21:50:25Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Bone layers */ Corrected DEF bones revealing instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 3.4&#039;&#039;&#039; and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z (instructions on how to install are included).&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|439px|right|How to find the animation controls for exported frame data]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values. While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Press A to select everything&lt;br /&gt;
# Press ALT + H to reveal everything, including the DEF bones&lt;br /&gt;
# Toggle the rig layers back to normal: The DEF bones are located in the 3rd of the rig&#039;s layers from the bottom right &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when AI characters should block. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right, as shown in the Bone Layers section&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe, select it (so its name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=3D_Objects&amp;diff=6138</id>
		<title>3D Objects</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=3D_Objects&amp;diff=6138"/>
		<updated>2023-07-16T22:12:43Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Shaders */ Added PBR shader info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Phoenix uses .xml files to store information about what textures a certain model should use as well as other information such as what shader it should use. This is the file you choose when loading an object. Here is an example object .xml file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Object&amp;gt;&lt;br /&gt;
	&amp;lt;Model&amp;gt;Data/Mods/example_mod/Data/Models/SimpleObject.obj&amp;lt;/Model&amp;gt;&lt;br /&gt;
	&amp;lt;ColorMap&amp;gt;Data/Mods/example_mod/Data/Textures/SimpleObject_Color.tga&amp;lt;/ColorMap&amp;gt;&lt;br /&gt;
	&amp;lt;NormalMap&amp;gt;Data/Mods/example_mod/Data/Textures/Blank_Norm.tga&amp;lt;/NormalMap&amp;gt;&lt;br /&gt;
  	&amp;lt;ShaderName&amp;gt;envobject #TANGENT&amp;lt;/ShaderName&amp;gt;&lt;br /&gt;
	&amp;lt;MaterialPath&amp;gt;Data/Materials/default.xml&amp;lt;/MaterialPath&amp;gt;&lt;br /&gt;
&amp;lt;/Object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All object .xml files that ship with the game are located in ../Overgrowth/Data/Objects/.&lt;br /&gt;
&lt;br /&gt;
=== Model and Texture Requirements ===&lt;br /&gt;
* Only triangles in models&lt;br /&gt;
* Models use the Wavefront .obj format&lt;br /&gt;
* Textures need to be square&lt;br /&gt;
* Texture resolution need to be a power of two (32x32, 64x64, 128x128 and so on)&lt;br /&gt;
* The .tga format is recommended for textures, but .png and .tif work also.&lt;br /&gt;
&lt;br /&gt;
==== Converting normal maps ====&lt;br /&gt;
[[File:Convert_normals_tutorial.mp4|400px|thumb|right|Video tutorial on how to convert normal maps in GIMP]]&lt;br /&gt;
The normal maps that you get from some applications might not be instantly usable in the Phoenix engine without some edits. For instance, if you are using an object space normal map from Substance Designer you need to do this:&lt;br /&gt;
&lt;br /&gt;
# Invert the blue channel&lt;br /&gt;
# Swap blue and green channels&lt;br /&gt;
&lt;br /&gt;
You can do this in Photoshop, Substance Designer, or GIMP. Note that Gimp does not work well with alpha channels. On the right is a tutorial on how to convert object space normal maps into tangent space using GIMP.&lt;br /&gt;
&lt;br /&gt;
== Object .xml File ==&lt;br /&gt;
The object .xml files contain all information about a single object (model) that can be spawned in the engine. This aims to be a full reference over all tags and flags that can be used in an object .xml.&lt;br /&gt;
&lt;br /&gt;
=== Tags ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Example use !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;Model&amp;gt;Data/Models/MyModel.obj&amp;lt;/Model&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| path to the model file (.obj)&lt;br /&gt;
|-&lt;br /&gt;
! ColorMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;ColorMap&amp;gt;Data/Textures/MyColorMap.tga&amp;lt;/ColorMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| path to the color texture file (.tga, .tif or .png)&lt;br /&gt;
|-&lt;br /&gt;
! NormalMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;NormalMap&amp;gt;Data/Textures/MyNormalMap.tga&amp;lt;/NormalMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to the normal map texture file (.tga, .tif or .png)&lt;br /&gt;
|-&lt;br /&gt;
! ShaderName&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;ShaderName&amp;gt;envobject #TANGENT #KEEP_SPEC&amp;lt;/ShaderName&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| What shader to use, see [[#Shaders|shaders]] for more information&lt;br /&gt;
|-&lt;br /&gt;
! MaterialPath&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;MaterialPath&amp;gt;Data/Materials/DirtyRock.xml&amp;lt;/MaterialPath&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to the material to use, see [[#Materials|materials]] for more information.&lt;br /&gt;
|-&lt;br /&gt;
! WeightMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;WeightMap&amp;gt;Data/Textures/Environments/Rocks/granite_vine_rocks/granite_vine_boulder_overgrown_w.tga&amp;lt;/WeightMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to a black and white texture used for determining where each detail texture should be used. Required when using the detailmap4 [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! TranslucencyMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;TranslucencyMap&amp;gt;Data/Textures/Environments/cat_props/banner_t.tga&amp;lt;/TranslucencyMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to a color texture used for translucency, meaning light that shines through the object. Adds its color to the surface multiplied by the amount of light it receives, this effect ignores the normal of the surface, so if one side receives light from for instance the sun, the other side will also get the color added. If unspecified it defaults to 0.0 (no translucency) across the entire surface. Optional when using the plant [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! WindMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;WindMap&amp;gt;Data/Textures/Environments/cat_props/banner_w.tga&amp;lt;/WindMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to a black and white texture used to define the intensity of a vertex wind effect. If unspecified it defaults to 1.0 (active) across the entire surface. Optional when using the plant [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! DetailMaps&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;DetailMaps&amp;gt;&lt;br /&gt;
    &amp;lt;DetailMap colorpath=&amp;quot;Data/Textures/Terrain/DetailTextures/gray_rock.tga&amp;quot; normalpath=&amp;quot;Data/Textures/Terrain/DetailTextures/gray_rock_normal.tga&amp;quot; materialpath=&amp;quot;Data/Materials/rocks.xml&amp;quot; /&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/DetailMaps&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Contains exactly 4 &amp;lt;DetailMap&amp;gt; tags describing textures and materials that will be tiled across the model using the &amp;lt;WeightMap&amp;gt; tag&#039;s texture. Required when using the detailmap4 [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! DetailObjects&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;DetailObjects&amp;gt;&lt;br /&gt;
    &amp;lt;DetailObject obj_path=&amp;quot;Data/Objects/Plants/Groundcover/Groundcover1.xml&amp;quot; weight_path=&amp;quot;Data/Textures/Environments/Rocks/granite_vine_rocks/granite_vine_boulder_overgrown_vine_mask.tga&amp;quot; normal_conform=&amp;quot;0.9&amp;quot; density=&amp;quot;10&amp;quot; min_embed=&amp;quot;0&amp;quot; max_embed=&amp;quot;0.4&amp;quot; min_scale=&amp;quot;0.7&amp;quot; max_scale=&amp;quot;2&amp;quot; view_distance=&amp;quot;40&amp;quot; jitter_degrees=&amp;quot;10&amp;quot; overbright=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/DetailObjects&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Contains one or more &amp;lt;DetailObject&amp;gt; tags, each describing how to randomly distribute some object across the surface. Can be used for grass, small rocks etc.&lt;br /&gt;
|-&lt;br /&gt;
! flags&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;flags no_collision=true double_sided=true/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Used to set boolean values on the object (see [[#Flags|flags]])&lt;br /&gt;
|-&lt;br /&gt;
! GroundOffset&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;GroundOffset&amp;gt;0.5&amp;lt;/GroundOffset&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Moves the object up/down by the set amount when the object is created&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Deprecated tags ====&lt;br /&gt;
These tags are deprecated and should not be used.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Example use !! Description&lt;br /&gt;
|-&lt;br /&gt;
! ShaderPath&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;ShaderPath&amp;gt;Data/GLSL/cubemapobj&amp;lt;/ShaderPath&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| path to the shader to use (.frag &amp;amp; .vert), replaced by ShaderName&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Materials ====&lt;br /&gt;
These are the materials that can be assigned to objects using the &amp;lt;code&amp;gt;&amp;lt;MaterialPath&amp;gt;&amp;lt;/code&amp;gt; [[#Tags|tag]]. You can find the materials in &amp;lt;code&amp;gt;../Overgrowth/Data/Materials/&amp;lt;/code&amp;gt;. The material affects what particles spawn when a character runs on the surface, what sound footsteps make on the surface, how easily weapons stick in the surface, and more.&lt;br /&gt;
&lt;br /&gt;
* default&lt;br /&gt;
* dirt&lt;br /&gt;
* dirtytock&lt;br /&gt;
* drygrass&lt;br /&gt;
* grass&lt;br /&gt;
* gravel&lt;br /&gt;
* ice&lt;br /&gt;
* rock&lt;br /&gt;
* rocks&lt;br /&gt;
* sand&lt;br /&gt;
* snow&lt;br /&gt;
* wood&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
Flags are entered as boolean attributes (&amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;) in a [[#Tags|tag]] called &amp;quot;flags&amp;quot; under the &amp;quot;Object&amp;quot; tag. All flags have a default value of false.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
! no_collision&lt;br /&gt;
| Disables physics collisions with this object.&lt;br /&gt;
|-&lt;br /&gt;
! double_sided&lt;br /&gt;
| The backsides of the object gets rendered as well.&lt;br /&gt;
|-&lt;br /&gt;
! bush_collision&lt;br /&gt;
| Makes the object give some resistance when passed through while the object wobbles a bit and generates leaf particles.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Collision/Physics Objects==&lt;br /&gt;
The engine automatically generates a simplified physics object from your model but this can be overridden by providing an alternative .OBJ file. The file is placed in the same folder and shares the same name as the original .OBJ file with a suffix:&lt;br /&gt;
&lt;br /&gt;
===Suffixes===&lt;br /&gt;
[[Image:PhysicsObject.jpg|thumb|Physics mesh should be in the same place as the render mesh]]&lt;br /&gt;
[[Image:HullObject.jpg|thumb|Hull mesh should be in the same place as the render mesh]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Suffix !! Description&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;span style=&amp;quot;color: gray&amp;quot;&amp;gt;YourObject&amp;lt;/span&amp;gt;_COL.obj&lt;br /&gt;
| Contains simplified geometry for physics calculations.&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;span style=&amp;quot;color: gray&amp;quot;&amp;gt;YourObject&amp;lt;/span&amp;gt;HULL.obj&lt;br /&gt;
| Same as _COL but has extra info, used for weapons.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that HULL doesn’t have an underscore to separate it from the file name!&lt;br /&gt;
&lt;br /&gt;
===Physics objects (_COL)=== &lt;br /&gt;
Simplified geometry such as boxes and cylinders which are used for collision detection, they are aligned to your object based on “relative position” in your 3D program so you should place the physics mesh on top of your render mesh upon export.&lt;br /&gt;
&lt;br /&gt;
===Hull objects (HULL)=== &lt;br /&gt;
They are very similar to physics objects but are used for items and weapons, the only difference is that they contain a free-floating triangle which defines the object’s center of gravity.&lt;br /&gt;
&lt;br /&gt;
== Shaders ==&lt;br /&gt;
Overgrowth uses an &amp;quot;uber shader&amp;quot; approach to shader management, which means that there is one huge shader that almost everything in the game uses. So instead of choosing a shader for your object, you can set &amp;quot;flags&amp;quot; with your object that the game will use to change how it&#039;s rendered.&lt;br /&gt;
&lt;br /&gt;
The flags are put in the &amp;lt;ShaderName&amp;gt; tag after the shader name. Here is an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;ShaderName&amp;gt;envobject #TANGENT #KEEP_SPEC&amp;lt;/ShaderName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;#TANGENT&amp;quot; and &amp;quot;#KEEP_SPEC&amp;quot; in this example are flags.&lt;br /&gt;
&lt;br /&gt;
There are two texture maps that are required for an object to be loaded in the engine. Those are the &#039;&#039;&#039;ColorMap&#039;&#039;&#039; and the &#039;&#039;&#039;NormalMap&#039;&#039;&#039; textures. Some flags allow you to use more than these two required textures, and some flags change how the required textures are used. &#039;&#039;&#039;TODO:&#039;&#039;&#039; Are there any default textures that can be used and what are they?&lt;br /&gt;
&lt;br /&gt;
Here is the channel designations of the ColorMap and NormalMap textures:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;ColorMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Color&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Reflectivity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;NormalMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Normal&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Color tint mask&lt;br /&gt;
&lt;br /&gt;
Any deviation from these designations or new textures caused by any flag in the table below can be seen in the &#039;&#039;Channel/Texture Changes&#039;&#039; column.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Channel/Texture Changes !! Description&lt;br /&gt;
|-&lt;br /&gt;
! #TANGENT&lt;br /&gt;
|&lt;br /&gt;
|| The normal map is used as an object space normal map by default, with this flag it&#039;s used as a tangent space normal map instead.&lt;br /&gt;
|-&lt;br /&gt;
! #KEEP_SPEC&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;NormalMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Smoothness&lt;br /&gt;
|| Instead of using the alpha channel of the normal map as a color tint mask, as is the default, that channel is used as a smoothness map. The object can still be tinted, you just can&#039;t control what parts get tinted.&lt;br /&gt;
|-&lt;br /&gt;
! #DETAILMAP4&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;WeightMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;R&#039;&#039;&#039; - The first detail texture&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;G&#039;&#039;&#039; - The second detail texture&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;B&#039;&#039;&#039; - The third detail texture&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;DetailMap colorpath&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Color&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;DetailMap normalpath&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Normal&lt;br /&gt;
|| Allows for repeating up to 4 different textures over a model so it looks more detailed up close. This also means you can scale the model up or down with less obvious texture stretching.&lt;br /&gt;
&lt;br /&gt;
* The WeightMap is used to decide which DetailMap texture to put where on the object&lt;br /&gt;
* Each DetailMap has its own color texture, normal texture and material&lt;br /&gt;
* See the [[#Tags|tags]] heading for information about how to specify the DetailMaps&lt;br /&gt;
|-&lt;br /&gt;
! #BASE_TANGENT&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #AXIS_UV&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #AXIS_BLEND&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #NO_DECALS&lt;br /&gt;
|&lt;br /&gt;
|| No decals shows up on this object.&lt;br /&gt;
|-&lt;br /&gt;
! #WHY_DOES_THIS_WORK&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #INVISIBLE&lt;br /&gt;
|&lt;br /&gt;
|| This object will not be rendered.&lt;br /&gt;
|-&lt;br /&gt;
! #ALPHA&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;ColorMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Transparency&lt;br /&gt;
|| [[Image:CubemapAlpha.jpg|thumb|#ALPHA flag in action]]&lt;br /&gt;
Makes the alpha channel of the ColorMap work as transparency instead of reflectivity&lt;br /&gt;
|-&lt;br /&gt;
! #PLANT&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;ColorMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A (reflectivity)&#039;&#039;&#039; - No effect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;NormalMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A (color tint mask)&#039;&#039;&#039; - No effect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;WindMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;R&#039;&#039;&#039; - Wind intensity&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;TranslucencyMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Translucency color&amp;lt;br /&amp;gt;&lt;br /&gt;
|| [[Image:Translucency.jpg|thumb|#PLANT flag in action together with the #ALPHA flag]]&lt;br /&gt;
* Enables use of a WindMap which makes the object move in the wind&lt;br /&gt;
* Enables use of a TranslucencyMap which makes it look like light can shine through the surface&lt;br /&gt;
* Disables reflectivity&lt;br /&gt;
* Disables color tint mask&lt;br /&gt;
|-&lt;br /&gt;
! #WATER&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #METALNESS_PBR&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Colormap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Metalness&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Normalmap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Roughness&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|| With this shader tag, you can make PBR objects in Overgrowth!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Color Tint Mask ===&lt;br /&gt;
This mask is located in the alpha channel of the normal map, and determines what parts of the object should be tinted when using the [[Editor_Interface#Color_Picker|color picker]]. Black parts are not affected, the brighter the texel the more it is affected by tinting.&lt;br /&gt;
&lt;br /&gt;
== See also==&lt;br /&gt;
* [[Custom Characters]]&lt;br /&gt;
* [[Custom Weapons &amp;amp; Items]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Configuring_Overgrowth&amp;diff=6137</id>
		<title>Configuring Overgrowth</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Configuring_Overgrowth&amp;diff=6137"/>
		<updated>2023-07-09T23:48:43Z</updated>

		<summary type="html">&lt;p&gt;Constance: Removed SUMLauncher note, as the tool is outdated.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can edit most settings by pressing the Settings button on the main menu or on the pause menu. There are even more settings available from the &amp;quot;Settings&amp;quot; top menu bar on the main menu.&lt;br /&gt;
&lt;br /&gt;
If you need to edit the config without starting the game, you can change your configuration by modifying your &#039;&#039;&#039;config.txt&#039;&#039;&#039;. Just below you can see the location of this file on each operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Config File Location==&lt;br /&gt;
&lt;br /&gt;
The configuration file is created when Overgrowth is started for the first time.&lt;br /&gt;
&lt;br /&gt;
To view or edit your config file, find your operating system in the list below and follow the shown path.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;My Documents\Wolfire\Overgrowth\Data\config.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note:&#039;&#039; NOT Program Files\Wolfire\Overgrowth\Data!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mac&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Macintosh HD/Users/~/Library/Application Support/Overgrowth/Data/config.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where ~ is your username.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note:&#039;&#039; If you are using Lion, your library folder is hidden by default... in the finder, click the &amp;quot;Go&amp;quot; menu, then Press Option, and Library will appear in the list.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;~/.local/share/Overgrowth/Data/config.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
&lt;br /&gt;
===General Settings===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Setting !! Default Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
! screenwidth&lt;br /&gt;
| 800 || The game&#039;s horizontal resolution.&lt;br /&gt;
|-&lt;br /&gt;
! screenheight&lt;br /&gt;
| 600 || The game&#039;s vertical resolution.&lt;br /&gt;
|-&lt;br /&gt;
! fullscreen&lt;br /&gt;
| false || Determines whether to run in full screen or windowed mode.&lt;br /&gt;
|-&lt;br /&gt;
! vsync&lt;br /&gt;
| false || Limits the framerate to match the user&#039;s monitor refresh rate (smooths out the framerate).&lt;br /&gt;
|-&lt;br /&gt;
! simple_shadows&lt;br /&gt;
| 1 || Disables dynamic shadows if set to 1.&lt;br /&gt;
|-&lt;br /&gt;
! blood&lt;br /&gt;
|1 || Disable or enable blood&lt;br /&gt;
|-&lt;br /&gt;
! blood_color&lt;br /&gt;
| 0.4 0 0 || The color of blood in the game in R, G, B. Each value should be between 0 and 1.&lt;br /&gt;
|-&lt;br /&gt;
! multisample&lt;br /&gt;
| 0 || Determines the level of anti-aliasing (smooths out jagged edges). Should be 1, 2, 4 or 8.&lt;br /&gt;
|-&lt;br /&gt;
! anisotropy&lt;br /&gt;
| 0 || Determines the level of anisotropic filtering (increases the quality of textures drawn far away and at an angle). Should be 1, 2, 4 or 8.&lt;br /&gt;
|-&lt;br /&gt;
! motion_blur_amount&lt;br /&gt;
| 0 || How much motion blur to apply, should be between 0 and 1.&lt;br /&gt;
|-&lt;br /&gt;
! post_effects&lt;br /&gt;
| true || Determines whether to use post effects.&lt;br /&gt;
|-&lt;br /&gt;
! shaders&lt;br /&gt;
| true || Determines whether to use shaders.&lt;br /&gt;
|-&lt;br /&gt;
! texture_reduce&lt;br /&gt;
| 0 || Determines the level to which the texture resolutions should be reduced (higher numbers means lower resolution).&lt;br /&gt;
|-&lt;br /&gt;
! texture_minimize_ram&lt;br /&gt;
| 1 || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! full_level_unload&lt;br /&gt;
| true || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! gamma_correct&lt;br /&gt;
| true || Determines whether to use gamma correction.&lt;br /&gt;
|-&lt;br /&gt;
! fps_label&lt;br /&gt;
| false || Determines whether to display the current fps (frames per second) on screen.&lt;br /&gt;
|-&lt;br /&gt;
! sound_label&lt;br /&gt;
| false || Determines whether to display all active sounds on screen.&lt;br /&gt;
|-&lt;br /&gt;
! visible_raycasts&lt;br /&gt;
| false || Determines whether to display lines representing all AIs&#039; visibility.&lt;br /&gt;
|-&lt;br /&gt;
! visible_sound_spheres&lt;br /&gt;
| false || Determines whether to display spheres representing the distance sounds travel (such as running).&lt;br /&gt;
|-&lt;br /&gt;
! editor_mode&lt;br /&gt;
| false || Determines whether to start the game in play mode (false) or editor mode (true).&lt;br /&gt;
|-&lt;br /&gt;
! invert_y_mouse_look&lt;br /&gt;
| false || Determines whether to invert the y-axis controls (looking up/down).&lt;br /&gt;
|-&lt;br /&gt;
! use_raw_input&lt;br /&gt;
| true || Use raw mouse input, solves mouse issues for some people.&lt;br /&gt;
|-&lt;br /&gt;
! invert_y_gamepad_look&lt;br /&gt;
| false || Determines whether to invert the y-axis controls (looking up/down).&lt;br /&gt;
|-&lt;br /&gt;
! tet_mesh_lighting&lt;br /&gt;
| 0 || If set to 1, use the pre-baked tetrahedral mesh global illumination. &#039;&#039;&#039;TODO: Does this work?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! light_volume_lighting&lt;br /&gt;
| false || Use ambient light volume lighting if available.&lt;br /&gt;
|-&lt;br /&gt;
! global_time_scale_mult&lt;br /&gt;
| 1.0 || How fast the game should run. Can be set to above and below the min./max. values of the ingame settings. &#039;&#039;&#039;TODO: Hardcoded min/max values?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! game_difficulty&lt;br /&gt;
| 1.0 || How hard the game should be, higher is harder.&lt;br /&gt;
|-&lt;br /&gt;
! tutorials&lt;br /&gt;
| true || Helpful messages are displayed in the game.&lt;br /&gt;
|-&lt;br /&gt;
! difficulty_set&lt;br /&gt;
| false || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! volume_shadows&lt;br /&gt;
| false || Use experimental volume shadow graphics tech.&lt;br /&gt;
|-&lt;br /&gt;
! ssao&lt;br /&gt;
| false || Use experimental screen space ambient occlusion graphics tech.&lt;br /&gt;
|-&lt;br /&gt;
! auto_ledge_grab&lt;br /&gt;
| true || The player character will automatically grab ledges when they can. If false you need to hold right click to grab ledges.&lt;br /&gt;
|-&lt;br /&gt;
! particle_field&lt;br /&gt;
| true || Show particle fields in the game. &#039;&#039;&#039;TODO: Does this affect CPU particle fields, GPU particle fields, or both?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! custom_level_shaders&lt;br /&gt;
| true || Use shaders made for specific levels to add things like snow, wetness near water etc.&lt;br /&gt;
|-&lt;br /&gt;
! disable_fog&lt;br /&gt;
| false || Disables atmoshperic fog.&lt;br /&gt;
|-&lt;br /&gt;
! simple_fog&lt;br /&gt;
| false || Extra simple fog calculations for low-end graphics cards.&lt;br /&gt;
|-&lt;br /&gt;
! no_auto_nav_mesh&lt;br /&gt;
| false || Disables automatic nav mesh generation. &#039;&#039;&#039;TODO: Verify that this is what it does&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! no_texture_convert&lt;br /&gt;
| false || Skip converting textures to .dds format to save VRAM. &#039;&#039;&#039;TODO: Verify that this is what it does&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! gl_load_s3tc&lt;br /&gt;
| true || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! skip_loading_pause&lt;br /&gt;
| false || You don&#039;t have to press left click to start the level after it has been loaded.&lt;br /&gt;
|-&lt;br /&gt;
! brightness&lt;br /&gt;
| 1 || Increase or decrease the brightness of the game.&lt;br /&gt;
|-&lt;br /&gt;
! use_soundtrack_limiter&lt;br /&gt;
| true || Better handling of music volume when transitioning between tracks.&lt;br /&gt;
|-&lt;br /&gt;
! master_volume&lt;br /&gt;
| 0.8 || Overall loudness of all game audio.&lt;br /&gt;
|-&lt;br /&gt;
! music_volume&lt;br /&gt;
| 0.4 || Loudness of game music.&lt;br /&gt;
|-&lt;br /&gt;
! media_mode&lt;br /&gt;
| false || Determines whether to disable the in-game interface.&lt;br /&gt;
|-&lt;br /&gt;
! baked_shadows&lt;br /&gt;
| true || (Deprecated) Determines whether to use the pre-baked shadows (true) or cascaded shadow maps (false).&lt;br /&gt;
|-&lt;br /&gt;
! debug_key_presses&lt;br /&gt;
| false || &#039;&#039;&#039;TODO: What does this do? How are key presses debugged when this is on?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! block_cheating_progress&lt;br /&gt;
| true || Disables unlocking levels when cheats are active, like when in the editor.&lt;br /&gt;
|-&lt;br /&gt;
! auto_camera&lt;br /&gt;
| false || Determines whether to have the camera automatically return to a position behind the player. Only affects the player controlled with keyboard and mouse in local multiplayer with splitscreen, will be true for the other players.&lt;br /&gt;
|-&lt;br /&gt;
! split_screen&lt;br /&gt;
| false || Determines if the game view should be split or not when there is more than one player.&lt;br /&gt;
|-&lt;br /&gt;
! chase_camera_fov&lt;br /&gt;
| 90.0 || The field of view of the camera when playing the game.&lt;br /&gt;
|-&lt;br /&gt;
! editor_camera_fov&lt;br /&gt;
| 90.0 || The default field of view of the camera when in the editor.&lt;br /&gt;
|-&lt;br /&gt;
! report_case_errors&lt;br /&gt;
| false || Reports capitalization errors in the log when they are found. &#039;&#039;&#039;TODO: Does this work?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! background_process_pool&lt;br /&gt;
| false || Use background processes for things like calculating the nav mesh. &#039;&#039;&#039;TODO: Is this accurate?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! main_menu&lt;br /&gt;
| true || Show main menu when starting the game. If false it will load the level at the path in the debug_load_level setting.&lt;br /&gt;
|-&lt;br /&gt;
! debug_load_level&lt;br /&gt;
| Project60/16_red_desert.xml || If main_menu is set to false, the level at this path will load when the game is started.&lt;br /&gt;
|-&lt;br /&gt;
! mouse_sensitivity&lt;br /&gt;
| 0.5 || Determines how far the camera in the game rotates when the mouse moves.&lt;br /&gt;
|-&lt;br /&gt;
! gpu_skinning&lt;br /&gt;
| false || Use the graphics card to skin characters. This should be false to avoid any issues.&lt;br /&gt;
|-&lt;br /&gt;
! detail_objects&lt;br /&gt;
| 1 || Determines if 3D grass models, small rocks etc. are displayed on the terrain.&lt;br /&gt;
|-&lt;br /&gt;
! seamless_cubemaps&lt;br /&gt;
| true || Make cubemaps display seamlessly. &#039;&#039;&#039;TODO: When is this useful?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! debug_keys&lt;br /&gt;
| true || Enables use of debug keys, such as F for laser eyes. &#039;&#039;&#039;TODO: Does this still work?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! shader_dir_path&lt;br /&gt;
| Data/GLSL/ || Where the game looks for shaders. &#039;&#039;&#039;TODO: Does this work?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! debug_show_ai_state&lt;br /&gt;
| false || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! debug_show_ai_path&lt;br /&gt;
| false || Show lines to every NPC&#039;s destination.&lt;br /&gt;
|-&lt;br /&gt;
! debug_draw_window&lt;br /&gt;
| false || Show debug window in the top left.&lt;br /&gt;
|-&lt;br /&gt;
! albedo_only&lt;br /&gt;
| false || Display only color of objects, without any lighting etc.&lt;br /&gt;
|-&lt;br /&gt;
! no_decals&lt;br /&gt;
| false || Disable rendering of decals.&lt;br /&gt;
|-&lt;br /&gt;
! single_pass_shadow_cascade&lt;br /&gt;
| false || Render all real-time shadows in a single pass. &#039;&#039;&#039;TODO: Does this still work?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! shader_debug&lt;br /&gt;
| false || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! opengl_callback_errors&lt;br /&gt;
| true || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! opengl_callback_error_dialog&lt;br /&gt;
| false || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! occlusion_query&lt;br /&gt;
| true || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! dump_include_scripts&lt;br /&gt;
| false || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! allow_game_dir_save&lt;br /&gt;
| false || If true, the editor encourages you to save in the working directory instead of the game directory.&lt;br /&gt;
|-&lt;br /&gt;
! level_backup_count&lt;br /&gt;
| 10 || The maximum number of backups to save for each level. Backups can be found in working_dir/Overgrowth/Data/Levels/backups/.&lt;br /&gt;
|-&lt;br /&gt;
! no_reflection_capture&lt;br /&gt;
| 0 || If set to 1, all reflections are disabled.&lt;br /&gt;
|-&lt;br /&gt;
! has_detected_settings&lt;br /&gt;
| false || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! save_as_crunch&lt;br /&gt;
| false || Use the crunch library to convert textures. &#039;&#039;&#039;TODO: Does this do anything?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! check_for_workshop_membership&lt;br /&gt;
| true || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! enable_live_update&lt;br /&gt;
| true || Enables automatic texture and script reloading when a change is detected.&lt;br /&gt;
|-&lt;br /&gt;
! level_load_stress&lt;br /&gt;
| false || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! detail_object_decals&lt;br /&gt;
| 1 || Apply decals to detail objects such as grass, small rocks etc.&lt;br /&gt;
|-&lt;br /&gt;
! asdebugger_enabled&lt;br /&gt;
| 0 || Activate the AngelScript debugger. &#039;&#039;&#039;TODO: What does this do more exactly?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! asdebugger_break_on_script_change&lt;br /&gt;
| 0 || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! menu_show_asdebugger_contexts&lt;br /&gt;
| 0 || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! extra_data_path&lt;br /&gt;
| || Path to a directory containing a second Data folder that you want the game to use.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Keyboard and Mouse===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! key[quit]&lt;br /&gt;
| esc || Exits from player mode into editor mode, and opens a menu allowing the user to return to the main menu.&lt;br /&gt;
|-&lt;br /&gt;
! key[slow]&lt;br /&gt;
| tab || Toggles slow motion.&lt;br /&gt;
|-&lt;br /&gt;
! key[fast]&lt;br /&gt;
| \ || &#039;&#039;&#039;TODO: Does this do anything?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! key[crouch]&lt;br /&gt;
| lshift || Causes the player to crouch.&lt;br /&gt;
|-&lt;br /&gt;
! key[jump]&lt;br /&gt;
| space || Causes the player to jump.&lt;br /&gt;
|-&lt;br /&gt;
! key[show_timing]&lt;br /&gt;
| f2 || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! key[screenshot]&lt;br /&gt;
| f7 || Captures a screenshot (saved in &#039;&#039;/Data/Screenshots/&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
! key[transparent_screenshot]&lt;br /&gt;
| f8 || Captures a screenshot in .png format where the sky and terrain is transparent.&lt;br /&gt;
|-&lt;br /&gt;
! key[console]&lt;br /&gt;
| ` || Deprecated, it pauses the game. But that doesn&#039;t have anything to do with the console.&lt;br /&gt;
|-&lt;br /&gt;
! key[left]&lt;br /&gt;
| a || Causes the player to move to the left.&lt;br /&gt;
|-&lt;br /&gt;
! key[right]&lt;br /&gt;
| d || Causes the player to move to the right.&lt;br /&gt;
|-&lt;br /&gt;
! key[up]&lt;br /&gt;
| w || Causes the player to move forward.&lt;br /&gt;
|-&lt;br /&gt;
! key[down]&lt;br /&gt;
| s || Causes the player to move backward.&lt;br /&gt;
|-&lt;br /&gt;
! key[item]&lt;br /&gt;
| e || Causes the player to sheathe or unsheathe a weapon.&lt;br /&gt;
|-&lt;br /&gt;
! key[drop]&lt;br /&gt;
| q || Causes the player to pick up a weapon. Holding left shift, looking down and pressing Q drops the held weapon.&lt;br /&gt;
|-&lt;br /&gt;
! key[skip_dialogue]&lt;br /&gt;
| return || Skips the currently active dialogue.&lt;br /&gt;
|-&lt;br /&gt;
! key[rclick]&lt;br /&gt;
| rshift || Alternate key used for &amp;quot;right clicking&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox controller ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! xbox_look_sensitivity&lt;br /&gt;
| 1.5 || Supposed to be the sensitivity of an attached Xbox controller, however it does nothing.&lt;br /&gt;
|-&lt;br /&gt;
! xbox[lookx]&lt;br /&gt;
| R_STICK_X || Xbox axis mapped for looking along the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
! xbox[looky]&lt;br /&gt;
| R_STICK_Y || Xbox axis mapped for looking along the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
! xbox[movex]&lt;br /&gt;
| R_STICK_X || Xbox axis mapped for movement along the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
! xbox[movey]&lt;br /&gt;
| R_STICK_Y || Xbox axis mapped for movement along the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
! xbox[jump]&lt;br /&gt;
| RB || Xbox jump button.&lt;br /&gt;
|-&lt;br /&gt;
! xbox[crouch]&lt;br /&gt;
| LB || Xbox crouch button.&lt;br /&gt;
|-&lt;br /&gt;
! xbox[attack]&lt;br /&gt;
| RT || Xbox attack button.&lt;br /&gt;
|-&lt;br /&gt;
! xbox[grab]&lt;br /&gt;
| LT || Xbox grab button.&lt;br /&gt;
|-&lt;br /&gt;
! xbox[item]&lt;br /&gt;
| A || Xbox item button.&lt;br /&gt;
|-&lt;br /&gt;
! xbox[drop]&lt;br /&gt;
| X || Xbox drop button.&lt;br /&gt;
|-&lt;br /&gt;
! xbox[skip_dialogue]&lt;br /&gt;
| START || Xbox skip currently acive dialogue.&lt;br /&gt;
|-&lt;br /&gt;
! xbox[quit]&lt;br /&gt;
| BACK || Xbox bring up menu or go back in menu.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Generic Controller===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! controller[movex]&lt;br /&gt;
| axis1 || Controller axis mapped for movement along the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
! controller[movey]&lt;br /&gt;
| axis2 || Controller axis mapped for movement along the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
! controller[lookx]&lt;br /&gt;
| axis3 || Controller axis mapped for looking along the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
! controller[looky]&lt;br /&gt;
| axis4 || Controller axis mapped for looking along the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
! controller[jump]&lt;br /&gt;
| button11 || Controller jump button.&lt;br /&gt;
|-&lt;br /&gt;
! controller[crouch]&lt;br /&gt;
| button10 || Controller crouch button.&lt;br /&gt;
|-&lt;br /&gt;
! controller[item]&lt;br /&gt;
| button1 || Controller item button.&lt;br /&gt;
|-&lt;br /&gt;
! controller[drop]&lt;br /&gt;
| button3 || Controller drop button.&lt;br /&gt;
|-&lt;br /&gt;
! controller[attack]&lt;br /&gt;
| axis6&amp;gt;0.5 || Controller attack &amp;quot;button&amp;quot; (default mapping is set to an axis being less than half full in a negative direction).&lt;br /&gt;
|-&lt;br /&gt;
! controller[grab]&lt;br /&gt;
| axis5&amp;gt;0.5 || Controller grab &amp;quot;button&amp;quot; (default mapping is set to an axis being greater than half full in a positive direction).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Editor Hotkeys===&lt;br /&gt;
&lt;br /&gt;
These keys only work when the editor is active. To activate the editor, press F1 when any level is loaded.&lt;br /&gt;
&lt;br /&gt;
For more in-depth information on how to use the editor, read the [[Editor Interface]] article.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! bind[pause]&lt;br /&gt;
| ` || Toggles freezing the time.&lt;br /&gt;
|-&lt;br /&gt;
! bind_win[quit]&lt;br /&gt;
| alt+f4 || Turns off the game.&lt;br /&gt;
|-&lt;br /&gt;
! bind_unix[quit]&lt;br /&gt;
| cmd+q || Turns off the game on Linux.&lt;br /&gt;
|-&lt;br /&gt;
! bind[back]&lt;br /&gt;
| esc || Opens or closes the menu, goes back in menu if it can.&lt;br /&gt;
|-&lt;br /&gt;
! bind[clone_transform]&lt;br /&gt;
| alt || Hold to clone an object when you transform (move, rotate or scale) it.&lt;br /&gt;
|-&lt;br /&gt;
! bind[snap_transform]&lt;br /&gt;
| ctrl || Hold to snap transformations to certain increments.&lt;br /&gt;
|-&lt;br /&gt;
! bind[force_rotate]&lt;br /&gt;
| r || Hold to activate the rotate tool.&lt;br /&gt;
|-&lt;br /&gt;
! bind[force_scale]&lt;br /&gt;
| e || Hold to activate the scale tool.&lt;br /&gt;
|-&lt;br /&gt;
! bind[force_translate]&lt;br /&gt;
| t || Hold to activate the move tool.&lt;br /&gt;
|-&lt;br /&gt;
! bind[normal_transform]&lt;br /&gt;
| shift || Hold to rotate/scale/translate on alternate axies.&lt;br /&gt;
|-&lt;br /&gt;
! bind[edit_script_params]&lt;br /&gt;
| u || Toggles showing the &#039;&#039;Selected&#039;&#039; window.&lt;br /&gt;
|-&lt;br /&gt;
! bind[single_selected]&lt;br /&gt;
| i || Toggles showing the &#039;&#039;Single Selected&#039;&#039; window.&lt;br /&gt;
|-&lt;br /&gt;
! bind[edit_color]&lt;br /&gt;
| cmd+p || Toggles the &#039;&#039;Color Picker&#039;&#039; window.&lt;br /&gt;
|-&lt;br /&gt;
! bind[search_scenegraph]&lt;br /&gt;
| cmd+f || Opens the &#039;&#039;Scenegraph&#039;&#039; window and focuses its search field.&lt;br /&gt;
|-&lt;br /&gt;
! bind[scenegraph]&lt;br /&gt;
| y || Opens the &#039;&#039;Scenegraph&#039;&#039; window.&lt;br /&gt;
|-&lt;br /&gt;
! bind[toggle_player]&lt;br /&gt;
| cmd+shift+p || Toggles whether the selected spawn points are player controlled or NPCs.&lt;br /&gt;
|-&lt;br /&gt;
! bind[toggle_object_editing]&lt;br /&gt;
| cmd+1 || Toggles whether you can edit static meshes.&lt;br /&gt;
|-&lt;br /&gt;
! bind[toggle_decal_editing]&lt;br /&gt;
| cmd+2 || Toggles whether you can edit decals.&lt;br /&gt;
|-&lt;br /&gt;
! bind[toggle_hotspot_editing]&lt;br /&gt;
| cmd+3 || Toggles whether you can edit gameplay objects.&lt;br /&gt;
|-&lt;br /&gt;
! bind[open_spawner]&lt;br /&gt;
| cmd+l || Deprecated, does nothing.&lt;br /&gt;
|-&lt;br /&gt;
! bind[save_level]&lt;br /&gt;
| cmd+s || Saves the level.&lt;br /&gt;
|-&lt;br /&gt;
! bind[save_selected_items]&lt;br /&gt;
| cmd+shift+s || Saves the selected items as a [[Prefabs|prefab]].&lt;br /&gt;
|-&lt;br /&gt;
! bind[cut]&lt;br /&gt;
| cmd+x || Saves the selected objects to the clipboard and then removes them.&lt;br /&gt;
|-&lt;br /&gt;
! bind[paste]&lt;br /&gt;
| cmd+v || Pastes whatever objects are in the clipboard on the mouse location.&lt;br /&gt;
|-&lt;br /&gt;
! bind[copy]&lt;br /&gt;
| cmd+c || Saves the selected objects to the clipboard.&lt;br /&gt;
|-&lt;br /&gt;
! bind[undo]&lt;br /&gt;
| cmd+z || Reverts the most recent edit.&lt;br /&gt;
|-&lt;br /&gt;
! bind[redo]&lt;br /&gt;
| cmd+shift+z || Reverts the most recently undo.&lt;br /&gt;
|-&lt;br /&gt;
! bind[enable_imposter]&lt;br /&gt;
| cmd+i || Deprecated, does nothing. &#039;&#039;&#039;TODO: Is this accurate?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! bind[disable_imposter]&lt;br /&gt;
| cmd+shift+i || Deprecated, does nothing. &#039;&#039;&#039;TODO: Is this accurate?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! bind[connect]&lt;br /&gt;
| alt || Hold and left click to connect the selected object to the clicked object. Is used for &#039;&#039;nav connection&#039;&#039; hotspots, &#039;&#039;Path Point&#039;&#039; hotspots, weapons etc.&lt;br /&gt;
|-&lt;br /&gt;
! bind[disconnect]&lt;br /&gt;
| shift+alt || Hold and left click to break an existing connection between the selected object and the clicked object.&lt;br /&gt;
|-&lt;br /&gt;
! bind[group]&lt;br /&gt;
| cmd+g || Groups the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! bind[ungroup]&lt;br /&gt;
| cmd+shift+g || Ungroups the selected group.&lt;br /&gt;
|-&lt;br /&gt;
! bind[box_select]&lt;br /&gt;
| b || Hold and left click and drag to create a selection box. When you release left click, all objects in the box are selected.&lt;br /&gt;
|-&lt;br /&gt;
! bind[deselect_all]&lt;br /&gt;
| q || Deselects any selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! bind[select_all]&lt;br /&gt;
| cmd+a || Select all objects in the level.&lt;br /&gt;
|-&lt;br /&gt;
! bind[select_similar]&lt;br /&gt;
| cmd+shift+a || Select all objects that are similar to the selected object.&lt;br /&gt;
|-&lt;br /&gt;
! bind[add_to_selection]&lt;br /&gt;
| shift || Hold while selecting objects to add them to the selection.&lt;br /&gt;
|-&lt;br /&gt;
! bind[bake_gi]&lt;br /&gt;
| cmd+j || Deprecated, does nothing.&lt;br /&gt;
|-&lt;br /&gt;
! bind[kill_selected]&lt;br /&gt;
| cmd+k || Kill the selected character and instantly save its ragdoll position. Press the button combination again once the character has fallen to save the resting pose.&lt;br /&gt;
|-&lt;br /&gt;
! bind[print_objects]&lt;br /&gt;
| f11 || Print the selected objects to the log. &#039;&#039;&#039;TODO: Is this accurate?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! bind[toggle_level_load_stress]&lt;br /&gt;
| f10 || &#039;&#039;&#039;TODO: Is this used? Maybe used in conjunction with the &#039;&#039;level_load_stress&#039;&#039; config setting?&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! bind[new_level]&lt;br /&gt;
| cmd+n || Does nothing.&lt;br /&gt;
|-&lt;br /&gt;
! bind[open_level]&lt;br /&gt;
| cmd+o || Does nothing.&lt;br /&gt;
|-&lt;br /&gt;
! bind[frame_selected]&lt;br /&gt;
| f || Frames the selected object so it&#039;s visible in the camera. Hold this button and rotate the camera to orbit around the object.&lt;br /&gt;
|-&lt;br /&gt;
! bind[frame_selected_force]&lt;br /&gt;
| shift+f || Same as frame_selected, but puts the camera closer.&lt;br /&gt;
|-&lt;br /&gt;
! bind[refresh]&lt;br /&gt;
| f5 || &#039;&#039;&#039;TODO: What does this do?&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
&lt;br /&gt;
==Controller Setup==&lt;br /&gt;
&lt;br /&gt;
Most common controllers should work out of the box for Overgrowth. The control scheme is different from most games, but works well for Overgrowth&#039;s gameplay. If you want to change the controls you need to edit the config file. First make sure the game is turned off. Then find and open your [[#Config_File_Location|config file]], then edit the bindings in that file for [[#Xbox_controller|Xbox controller]] if you use that, otherwise [[#Generic_Controller|generic controller]].&lt;br /&gt;
&lt;br /&gt;
After making your desired changes, save the file and open the game.&lt;br /&gt;
&lt;br /&gt;
If you have problems with your controller on Mac, check out [http://forums.wolfire.com/viewtopic.php?f=13&amp;amp;t=12631 Anton&#039;s guide].&lt;br /&gt;
&lt;br /&gt;
===Advanced Controller Setup===&lt;br /&gt;
&lt;br /&gt;
If for some reason your controller isn&#039;t working properly with the game, here are some instructions for Windows 7 that might help you out:&lt;br /&gt;
&lt;br /&gt;
First, make sure your controller is plugged in to your computer.&lt;br /&gt;
&lt;br /&gt;
Next, open the start menu and click on &#039;&#039;Control Panel&#039;&#039; (located on the right side). Once opened, make sure the view is set to &#039;&#039;Large Icons&#039;&#039; (switchable in the upper right corner). Select &#039;&#039;Devices and Printers&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
You should see your controller listed under &#039;&#039;Devices&#039;&#039;. Right click it, and select &#039;&#039;Game Controller Settings&#039;&#039;. The &#039;&#039;Game Controllers&#039;&#039; window will appear. Make sure your controller is selected, then click on &#039;&#039;Properties&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Once again, a new window should appear - make sure that the view is set to the &#039;&#039;Test&#039;&#039; tab. In this view, you will be able to determine which physical button is mapped to each virtual button. Play around with your controller to confirm that everything is working properly, and take note of the button mappings.&lt;br /&gt;
&lt;br /&gt;
Now navigate to and open up your &#039;&#039;&#039;config.txt&#039;&#039;&#039; file (as described above). Rearrange the mappings in the file to match your desired controller setup.&lt;br /&gt;
&lt;br /&gt;
Once you have everything modified, save the &#039;&#039;&#039;config.txt&#039;&#039;&#039; file and launch Overgrowth in order to test the new configuration.&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Editor_Interface&amp;diff=6136</id>
		<title>Editor Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Editor_Interface&amp;diff=6136"/>
		<updated>2023-05-18T03:33:31Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Object Selection */ Added select similar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor_Overview.png|right|600px|thumb|caption|The Overgrowth level editor]]&lt;br /&gt;
This page details all the interface elements and actions in the Overgrowth level editor.&lt;br /&gt;
&lt;br /&gt;
The level editor lets you create new levels or even whole campaigns. This is the same editor we used to make the Overgrowth and Lugaru stories.&lt;br /&gt;
&lt;br /&gt;
You can use the level editor to edit any existing level in the game.&lt;br /&gt;
&lt;br /&gt;
== Activating the editor ==&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|eS3RujmDQ2M&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Level editor basics&lt;br /&gt;
|frame&lt;br /&gt;
|start=15&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== To activate the editor: ====&lt;br /&gt;
* Create a new level (&#039;&#039;&#039;File&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;New&#039;&#039;&#039;)&lt;br /&gt;
* Open an existing level and press &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the editor is active while playing a level, you can open up the editor window again by pressing the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;Esc&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; key.&lt;br /&gt;
&lt;br /&gt;
You can deactivate the editor by hitting &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; a second time.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting: ====&lt;br /&gt;
If you can&#039;t get the editor to activate, there are a few things you can try:&lt;br /&gt;
* If you have a laptop, try holding the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;fn&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; key while pressing &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;&lt;br /&gt;
* Mash all the modifier keys a few times to make sure they&#039;re not stuck down - &amp;lt;kbd&amp;gt;&#039;&#039;&#039;ctrl&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;alt&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;shift&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;command&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, etc&lt;br /&gt;
* Make sure you have all other programs closed, in case one of them is conflicting with the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; hotkey&lt;br /&gt;
* If some &amp;quot;Help&amp;quot; program comes up when you hit &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; (such as &amp;quot;HP Help&amp;quot;), edit its settings to disable the hotkey.&amp;lt;br&amp;gt;Or just &#039;&#039;uninstall it&#039;&#039; (because it is bloatware)&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Camera Movement ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! W&lt;br /&gt;
| Moves camera forward&lt;br /&gt;
|-&lt;br /&gt;
! S&lt;br /&gt;
| Moves camera backward&lt;br /&gt;
|-&lt;br /&gt;
! A&lt;br /&gt;
| Moves camera left&lt;br /&gt;
|-&lt;br /&gt;
! D&lt;br /&gt;
| Moves camera right&lt;br /&gt;
|-&lt;br /&gt;
! Shift + W&lt;br /&gt;
| Moves camera up&lt;br /&gt;
|-&lt;br /&gt;
! Shift + S&lt;br /&gt;
| Moves camera down&lt;br /&gt;
|-&lt;br /&gt;
! Left click and drag&lt;br /&gt;
| Rotates the camera&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Object Selection ==&lt;br /&gt;
&lt;br /&gt;
Here are the different ways you can select objects.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Select single object&lt;br /&gt;
| double-left-click on object || Selects clicked on object and deselects all other objects. If the object is part of a group, the whole group is selected. A box around the object indicates that it is selected.&lt;br /&gt;
|-&lt;br /&gt;
! Toggle-select objects&lt;br /&gt;
| shift + double-left-click on objects || Toggles selection of clicked on object. Preserves existing selections.&lt;br /&gt;
|-&lt;br /&gt;
! Box select objects&lt;br /&gt;
| left-click + right-click + drag, or left-click + &#039;b&#039; + drag || Selects all objects whose centers lie within box drawn on screen. Deselects all other objects.&lt;br /&gt;
|-&lt;br /&gt;
! Box add to selection&lt;br /&gt;
| shift + left-click + right-click + drag, or shift + left-click + &#039;b&#039; + drag || Adds all objects whose centers lie within the drawn box to the selection. Preserves existing selection.&lt;br /&gt;
|-&lt;br /&gt;
! Select decal or object that is under another decal&lt;br /&gt;
| mouse wheel up/down || When you have 2 or more objects or decals on top of each other, you can select at least 1 decal or object, put your mouse cursor on top of the one you want to select, then use the scroll wheel to switch your selection between the objects.&lt;br /&gt;
|-&lt;br /&gt;
! Select all&lt;br /&gt;
| cmd-a || Selects all objects.&lt;br /&gt;
|-&lt;br /&gt;
! Select similar&lt;br /&gt;
| cmd + shift + a || Selects objects of the same type as the currently selected object.&lt;br /&gt;
|-&lt;br /&gt;
! Deselect all&lt;br /&gt;
| double-left-click away from all objects, or press Q || Deselects all objects.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-selection-debug-info.png|right|thumb|caption|Debug window]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: &#039;&#039;&#039; If the Debug window is open (&#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Debug Window&#039;&#039;&#039;), then when you select an object some useful information will appear. It shows you what xml file the object is created from, its unique object id, and what type of object it is.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transformations ==&lt;br /&gt;
&lt;br /&gt;
For all transformations:&lt;br /&gt;
&lt;br /&gt;
* In order to transform an object you must first select it.&lt;br /&gt;
* Hold ctrl to make movements snap to half-meter increments.&lt;br /&gt;
* Hold alt to clone and transform the selected objects, leaving the original objects behind.&lt;br /&gt;
* Left-click transforms objects on all axis. Right-click transforms on the two axis that are perpendicular to the side of the bounding box you click on. Holding shift and right click locks the transformation to the axis parallel to the bounding box face you click on.&lt;br /&gt;
* Groups are transformed around the group center. Ungrouped objects, even if multiple are selected and transformed at once, are transformed around their own individual centers.&lt;br /&gt;
&lt;br /&gt;
=== Translation ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse over central region of a bounding box&#039; face, or hold &#039;t&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Camera relative&lt;br /&gt;
| left-click + drag || Translates clicked on object along plane parallel to the screen.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to plane&lt;br /&gt;
| right-click + drag || Translates clicked on object along plane of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to line&lt;br /&gt;
| shift + right-click + drag || Translates clicked on object along normal of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! force decal(s) to map only one object/group&lt;br /&gt;
| hold i || selected decal will only map with that object that is directly underneath your mouse&lt;br /&gt;
|-&lt;br /&gt;
! force decal(s) to project only on selected objects&lt;br /&gt;
| press o || selected decal will only map with that object that is directly underneath your mouse&lt;br /&gt;
|-&lt;br /&gt;
! projection box/angle&lt;br /&gt;
| press p || to make projection box for decal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Scale ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse near bounding box corners, or hold &#039;e&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! All dimensions&lt;br /&gt;
| left-click + drag || Scales clicked on object in all dimensions (x, y, and z) at once.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to plane&lt;br /&gt;
| right-click + drag || Extends clicked on object along plane of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to line&lt;br /&gt;
| shift + right-click + drag || Extrudes clicked on object along normal of clicked on face.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mirror ===&lt;br /&gt;
&lt;br /&gt;
Just use the right-click scale tool, and scale down the object until it flips and its mirror image begins scaling up!&lt;br /&gt;
&lt;br /&gt;
=== Rotation ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse near bounding box edges but away from the corners, or hold &#039;r&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Free&lt;br /&gt;
| left-click + drag || Rotates clicked on object as if you are pushing the surface of a ball.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to axis&lt;br /&gt;
| right-click + drag || Rotates clicked on object about normal of clicked on face.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Editor/Debug Keys==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Toggle editor mode&lt;br /&gt;
| F1 || Enables level editor. Press again to exit.&lt;br /&gt;
|-&lt;br /&gt;
! Activate play mode&lt;br /&gt;
| 8 || Spawns you in the level so you can play it. If there already is a player character you will control that, otherwise a player character spawn is created on the editor camera automatically.&lt;br /&gt;
|-&lt;br /&gt;
! Restore characters&lt;br /&gt;
| X || Restores all characters on the level to full health, wakes up any &amp;quot;unconscious&amp;quot; ones, and removes all blood from the environment.&lt;br /&gt;
|-&lt;br /&gt;
! Reload level&lt;br /&gt;
| L || Restarts the current level.&lt;br /&gt;
|-&lt;br /&gt;
! Change character&lt;br /&gt;
| 1-7 || Changes the playable character into one of seven possible characters. 1 cycles through rabbit guard, bandit, and turner models, 2 cycles through civilian rabbit models, 3 cycles through cat models, 4 cycles through rat models, 5 cycles through wolves, 6 through dogs, and the seventh is Rabbot 2.0.&lt;br /&gt;
|-&lt;br /&gt;
! Active ragdoll&lt;br /&gt;
| Z || Puts player character into active ragdoll mode where they will try to protect themselves as they fall. Is active as long as you hold the button.&lt;br /&gt;
|-&lt;br /&gt;
! Pain ragdoll&lt;br /&gt;
| N || Makes the player fall to the ground in agony, until you let go of the button.&lt;br /&gt;
|-&lt;br /&gt;
! Floppy ragdoll&lt;br /&gt;
| M || Makes the player fall to the ground, limp, until the button is released.&lt;br /&gt;
|-&lt;br /&gt;
! Voice Test&lt;br /&gt;
| V || Plays a test voice.&lt;br /&gt;
|-&lt;br /&gt;
! Toggle combat AI&lt;br /&gt;
| C || Toggles whether the characters in the level will attack each other if they are on different teams.&lt;br /&gt;
|-&lt;br /&gt;
! Slit throat&lt;br /&gt;
| , || The controlled character suffers a neck wound with blood gushing from it.&lt;br /&gt;
|-&lt;br /&gt;
! Slow time&lt;br /&gt;
| Tab || Slows down the whole game.&lt;br /&gt;
|-&lt;br /&gt;
! Freeze time&lt;br /&gt;
| ` || Freezes the game. This is useful for posing characters for item placement. &#039;&#039;&#039;Note&#039;&#039;&#039;: The game must be unfrozen to change between controlling the player and editor mode. &lt;br /&gt;
|-&lt;br /&gt;
! Insta-kill&lt;br /&gt;
| F || Instantly kills and knocks back nearby NPC&#039;s with a death ray.&lt;br /&gt;
|-&lt;br /&gt;
! Experimental Key&lt;br /&gt;
| B || Makes you invisible.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debug Window ==&lt;br /&gt;
[[Image:Editor-selection-debug-info.png|right|thumb|caption|Debug window]]&lt;br /&gt;
Just below the top bar menu, on the left side, is a space for debug information.&lt;br /&gt;
&lt;br /&gt;
This window is only visible if you have the Debug Window enabled (&#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Debug Window&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
It will tell you information about the selected object, checkpoint progress (if checkpoints are enabled in this level), and a warning if the nav mesh needs to be updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Editor menu ==&lt;br /&gt;
The bar across the top of the window is the editor menu. Many editor functions can be found here, but some functions can only be reached via hotkeys for now.&lt;br /&gt;
&lt;br /&gt;
&#039;Cmd&#039; refers to the &#039;⌘&#039; key on Macs, and the &#039;ctrl&#039; key on PCs.&lt;br /&gt;
&lt;br /&gt;
=== File menu ===&lt;br /&gt;
Contains file operations for loading and saving levels.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-file-menu.png|right|thumb|caption|The editor &amp;quot;file&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! New Level&lt;br /&gt;
| - || Opens a new empty level in the editor.&lt;br /&gt;
|-&lt;br /&gt;
! Open Level...&lt;br /&gt;
| - || Opens a file browser where you can pick what level to load (starts in Data/Levels directory).&lt;br /&gt;
|-&lt;br /&gt;
! Open Local Level...&lt;br /&gt;
| - || Opens a file browser where you can pick what level to load (starts in last used directory).&lt;br /&gt;
|-&lt;br /&gt;
! Open Recent&lt;br /&gt;
| - || Re-open one of the most recently opened levels in the editor.&lt;br /&gt;
|-&lt;br /&gt;
! Open Campaign Level&lt;br /&gt;
| - || Open one of the levels from the main Overgrowth story mode.&lt;br /&gt;
|-&lt;br /&gt;
! Save Level&lt;br /&gt;
| cmd+s || Overwrites the currently opened level file with any changes you made.&lt;br /&gt;
|-&lt;br /&gt;
! Save As...&lt;br /&gt;
| - || Opens a file browser where you can pick a new or existing file to save the level to.&lt;br /&gt;
|-&lt;br /&gt;
! Back to main menu&lt;br /&gt;
| - || Leave the editor and return to the main menu.&lt;br /&gt;
|-&lt;br /&gt;
! Quit&lt;br /&gt;
| alt+f4 || Quit the game.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Edit menu ===&lt;br /&gt;
Contains basic editing functions. Also contains properties for the level.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-edit-menu.png|right|thumb|caption|The editor &amp;quot;edit&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Undo&lt;br /&gt;
| cmd+z || Undo the most recent action.&lt;br /&gt;
|-&lt;br /&gt;
! Redo&lt;br /&gt;
| cmd+shift+z || Redo the most recent action.&lt;br /&gt;
|-&lt;br /&gt;
! Cut&lt;br /&gt;
| cmd+x || Puts the selection into the clipboard and removes the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Copy&lt;br /&gt;
| cmd+c || Puts the selection into the clipboard.&lt;br /&gt;
|-&lt;br /&gt;
! Paste&lt;br /&gt;
| cmd+v || Pastes the clipboard on the cursor position.&lt;br /&gt;
|-&lt;br /&gt;
! Select All&lt;br /&gt;
| cmd+a || Select all of the objects in the level.&lt;br /&gt;
|-&lt;br /&gt;
! Deselect All&lt;br /&gt;
| q || Clear the current selection.&lt;br /&gt;
|-&lt;br /&gt;
! Reload All Prefabs&lt;br /&gt;
| - || Force a reload of all prefab objects in the level.&lt;br /&gt;
|-&lt;br /&gt;
! Set Level Params...&lt;br /&gt;
| - || Set global level parameters (sun settings, sky, fog, HDR, etc).&lt;br /&gt;
|-&lt;br /&gt;
! Set Level Script...&lt;br /&gt;
| - || Select what script to use for this level.&lt;br /&gt;
|-&lt;br /&gt;
! Set Sky Texture...&lt;br /&gt;
| - || Opens a file browser where you can pick what sky texture to use.&lt;br /&gt;
|-&lt;br /&gt;
! Edit static meshes&lt;br /&gt;
| cmd+1 || Toggle ability to select non-moving objects (rocks, etc).&lt;br /&gt;
|-&lt;br /&gt;
! Edit decals&lt;br /&gt;
| cmd+2 || Toggle ability to select decals.&lt;br /&gt;
|-&lt;br /&gt;
! Edit gameplay objects&lt;br /&gt;
| cmd+3 || Toggle ability to select characters, hotspots, etc.&lt;br /&gt;
|-&lt;br /&gt;
! Edit lighting&lt;br /&gt;
| - || Toggle ability to select lights.&lt;br /&gt;
|-&lt;br /&gt;
! Play level&lt;br /&gt;
| 8 || Enter play mode.&lt;br /&gt;
|-&lt;br /&gt;
! Media mode&lt;br /&gt;
| - || Enter a disembodied camera mode, for taking screenshots and videos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Selected menu ===&lt;br /&gt;
Contains operations for working with the current selected objects.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-selected-menu.png|right|thumb|caption|The editor &amp;quot;selected&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Go To Selected&lt;br /&gt;
| f || Move the camera to frame the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Delete&lt;br /&gt;
| backspace || Delete the selected objects from the level.&lt;br /&gt;
|-&lt;br /&gt;
! Group&lt;br /&gt;
| cmd+g || Merge the selected objects into a group.&lt;br /&gt;
|-&lt;br /&gt;
! Ungroup&lt;br /&gt;
| cmd+shift+g || Break up all groups that are selected.&lt;br /&gt;
|-&lt;br /&gt;
! Set Selection Script Params...&lt;br /&gt;
| - || Open up the selected object window, and expand the &amp;quot;Script Params&amp;quot; section for the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Save Selection...&lt;br /&gt;
| cmd+shift+s || Open up the file browser to save the selection as an object template.&lt;br /&gt;
Object templates can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a template, it won&#039;t be updated in any level it is placed in.&lt;br /&gt;
|-&lt;br /&gt;
! Prefab Save&lt;br /&gt;
| - || Save any changes to the selected prefab to a file, or create a new prefab file from the selection.&lt;br /&gt;
Object prefabs can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a prefab, it will automatically be updated in all levels it is placed in.&lt;br /&gt;
|-&lt;br /&gt;
! Prefab Save As...&lt;br /&gt;
| - || Open a file browser to save the selection as a new prefab file.&lt;br /&gt;
Object prefabs can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a prefab, it will automatically be updated in all levels it is placed in.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Load menu ===&lt;br /&gt;
Contains operations for loading and spawning objects into the level.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-load-menu.png|right|thumb|caption|The editor &amp;quot;load&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Load item...&lt;br /&gt;
| - || Open a file browser to pick an item to spawn in. After loading, click in the level to spawn the object.&lt;br /&gt;
|-&lt;br /&gt;
! Open recent...&lt;br /&gt;
| - || Pick an item you&#039;ve recently spawned to spawn another instance. After loading, click in the level to spawn the object.&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;Rest of menu&amp;gt;&lt;br /&gt;
| - || Search or click on an item from a list to spawn in. After loading, click in the level to spawn the object.&lt;br /&gt;
Hover over an item to see a thumbnail preview of the item.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nav Mesh menu ===&lt;br /&gt;
Tools for nav mesh generation, loading, saving and viewing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-navmesh-menu.png|right|thumb|caption|The editor &amp;quot;nav mesh&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Create&lt;br /&gt;
| - || Generates a new navigation mesh.&lt;br /&gt;
|-&lt;br /&gt;
! Save&lt;br /&gt;
| - || Save the current nav mesh to disk.&lt;br /&gt;
|-&lt;br /&gt;
! Load&lt;br /&gt;
| - || Load a previously saved nav mesh from disk.&lt;br /&gt;
|-&lt;br /&gt;
! View mesh&lt;br /&gt;
| - || Toggle preview render of the nav mesh.&lt;br /&gt;
|-&lt;br /&gt;
! View collision&lt;br /&gt;
| - || Toggle preview render of the collision mesh the nav mesh is based on.&lt;br /&gt;
|-&lt;br /&gt;
! View hints&lt;br /&gt;
| - || Toggle preview render of navmesh_hint objects (which are collision that is only visible to the nav mesh generator).&lt;br /&gt;
|-&lt;br /&gt;
! View region&lt;br /&gt;
| - || Toggle preview render of navmesh_region objects (which restricts mesh generation to within its volume).&lt;br /&gt;
|-&lt;br /&gt;
! View jump nodes&lt;br /&gt;
| - || Toggle preview render of navmesh_connection objects (jump nodes).&lt;br /&gt;
|-&lt;br /&gt;
! Cell Size&lt;br /&gt;
| - || Change the width of cells in the nav mesh&lt;br /&gt;
smaller: handles smaller gaps, slower to build.&lt;br /&gt;
|-&lt;br /&gt;
! Cell Height&lt;br /&gt;
| - || Change the height of cells in the nav mesh&lt;br /&gt;
smaller: finer control on ramps, slower to build.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Height&lt;br /&gt;
| - || Change the height of fake player used to create nav mesh&lt;br /&gt;
smaller: handles lower overhangs, more likely to be unreachable by real characters.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Radius&lt;br /&gt;
| - || Change the width of fake player used to create nav mesh&lt;br /&gt;
smaller: handles smaller gaps, more likely to be unreachable by real characters.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Max Climb&lt;br /&gt;
| - || Change the max height of blocks that fake player will climb to create nav mesh&lt;br /&gt;
too high: real characters can&#039;t climb it.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Max Slope&lt;br /&gt;
| - || Change the max angle of ramps that fake player will walk up to create nav mesh&lt;br /&gt;
too high: real characters will go up steep hills.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dialogue menu ===&lt;br /&gt;
Tools for [[dialogue]] editing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-dialogue-menu.png|right|thumb|caption|The editor &amp;quot;dialogue&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Edit Selected&lt;br /&gt;
| o || Start editing the selected dialogue (make sure you select it first!).&lt;br /&gt;
|-&lt;br /&gt;
! Load Dialogue&lt;br /&gt;
| - || Load a previously saved dialogue text file.&lt;br /&gt;
|-&lt;br /&gt;
! New Dialogue&lt;br /&gt;
| - || Create a new dialogue object (click this, then click to place it in the level).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Windows menu ===&lt;br /&gt;
Launch various editor windows, color picker, and debug windows.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-windows-menu.png|right|thumb|caption|The editor &amp;quot;windows&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Scenegraph&lt;br /&gt;
| y || Open level properties, and a searchable list of items in the level.&lt;br /&gt;
Hint: Click items in the list to select/deselect them, and hit F to view the selected items.&lt;br /&gt;
|-&lt;br /&gt;
! Selected&lt;br /&gt;
| u || Open the properties for the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Color_Picker|Color Picker]]&lt;br /&gt;
| cmd+p || Open the Color Picker to let you tint objects.&lt;br /&gt;
|-&lt;br /&gt;
! [[Collision Painting|Collision Paint]]&lt;br /&gt;
| - || Open the Collision Paint menu to let you edit physics properties on objects or individual surfaces.&lt;br /&gt;
|-&lt;br /&gt;
! Performance&lt;br /&gt;
| - || Open a window to monitor performance, and view a list of loaded file assets/loaded textures, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Save&lt;br /&gt;
| - || Open a window to view data in the save file, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! State&lt;br /&gt;
| - || Open a window to view a hierarchy of loaded script contexts, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Sound&lt;br /&gt;
| - || Open a window to view a list of loaded sounds, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Debug Window&lt;br /&gt;
| - || Open a window to view debug text (shows various game and editor state).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Functions Without Buttons ==&lt;br /&gt;
Some functions are only reachable via hotkeys, here are a list of those.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Make player-controlled&lt;br /&gt;
| Shift+Cmd+P || Toggles whether a character is controlled by a human or by AI. A human-controlled character&#039;s spawn box has a green outline, an AI-controlled character&#039;s box has white outlines. If two characters are set to be human-controlled Overgrowth will start in split-screen mode the next time game-play is resumed from editor mode. The second player will be controllable via a USB controller.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Spawn_Dead|Spawn Dead]]&lt;br /&gt;
| Cmd+K or Ctrl+K (with character spawn selected) || Makes selected characters spawn dead. It will spawn at the point it went into ragdoll mode (which may cause it to spawn &amp;quot;dead&amp;quot; while standing up). If you want to update the pose for the dead body then move the body, select the spawn point, and hit the hotkey again to save its new position.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Spawn_Alive|Spawn Alive]]&lt;br /&gt;
| K (with character spawn selected) || Makes selected characters spawn alive.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
Every object as well as the level itself has several parameters. The most basic ones that all objects have are &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;Translation&#039;&#039;&#039;, &#039;&#039;&#039;Scale&#039;&#039;&#039; and &#039;&#039;&#039;Rotation&#039;&#039;&#039;. Other parameters you might find on an object are color tints and [[Script Parameters]].&lt;br /&gt;
&lt;br /&gt;
There are several ways to edit these parameters for an object. The fastest and easiest way to do it for a single object is by using the &#039;&#039;&#039;Single Selected&#039;&#039;&#039; window (press I to open it), which shows all of the parameters for the most recently selected object.&lt;br /&gt;
&lt;br /&gt;
If you want to view or edit the parameters of several specific objects you can use the [[#Selected Window|Selected Window]].&lt;br /&gt;
&lt;br /&gt;
To view and edit parameters for all the objects in the level, as well as the parameters for the level itself, use the [[#Scenegraph Window|Scenegraph Window]].&lt;br /&gt;
&lt;br /&gt;
== Selected Window ==&lt;br /&gt;
[[Image:Editor-selection-windows.png|right|thumb|caption|Selected Window (object parameters)]]&lt;br /&gt;
&lt;br /&gt;
The Selected Window (or parameter editor) lets you change different parameters depending on which objects you have selected.&lt;br /&gt;
&lt;br /&gt;
You can bring up the parameter editor for an object (or set of objects) by selecting them and pressing the U key, or clicking Top Bar -&amp;gt; Windows -&amp;gt; Selected.&lt;br /&gt;
&lt;br /&gt;
Here is a description of what each parameter does:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
| Give an object a custom name, so you can find it in the scenegraph window (see below), or let a custom script find those objects so they can do special things to them.&lt;br /&gt;
|-&lt;br /&gt;
! Transform&lt;br /&gt;
| Adjust the position, rotation, and scale of the objects manually. There is also a button to reset the rotation (which is useful when creating object prefabs).&lt;br /&gt;
|-&lt;br /&gt;
! Color Palette&lt;br /&gt;
| Tint objects, or make them super bright. If the character provides a mutli-part color palette, set different colors on different parts.&lt;br /&gt;
|-&lt;br /&gt;
! Script Params&lt;br /&gt;
| Custom parameters used by scripts. Each different object type can define their own script params. See [[Script Parameters]] page for descriptions of all parameters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scenegraph Window ==&lt;br /&gt;
[[Image:Editor-scenegraph-window.png|right|thumb|caption|Scenegraph Window (level parameters)]]&lt;br /&gt;
&lt;br /&gt;
The Scenegraph Window (or parameter editor) lets you change global level parameters, as well as find objects in the level.&lt;br /&gt;
&lt;br /&gt;
Open up the Scenegraph for the current level by pressing the Y key, or clicking Top Bar -&amp;gt; Windows -&amp;gt; Scenegraph. Let&#039;s go through each part of the Scenegraph window from top to bottom.&lt;br /&gt;
&lt;br /&gt;
=== Level ===&lt;br /&gt;
If you expand the &#039;&#039;&#039;Level&#039;&#039;&#039; entry at the very top of the window you will find some parameters that can be changed:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Loading Screen Image&lt;br /&gt;
| A path to an image that&#039;s shown while loading the level&lt;br /&gt;
|-&lt;br /&gt;
! Sun Position&lt;br /&gt;
| The position of the sun in the sky&lt;br /&gt;
|-&lt;br /&gt;
! Sun Color&lt;br /&gt;
| Tints the color of the sun, useful for sunrises and sunsets&lt;br /&gt;
|-&lt;br /&gt;
! Sun Intensity&lt;br /&gt;
| Controls how dark the shadows are&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For a description of the level script parameters, see the [[Script Parameters]] page.&lt;br /&gt;
&lt;br /&gt;
=== Search field ===&lt;br /&gt;
Below the &#039;&#039;&#039;Level&#039;&#039;&#039; entry at the very top there is a search field. Write in this field to search for objects in the level. This searches in many of the objects&#039; fields. You can for instance search for something written in the &#039;&#039;&#039;Name&#039;&#039;&#039; parameter of an object, object IDs, object paths, types and more.&lt;br /&gt;
&lt;br /&gt;
=== Flat ===&lt;br /&gt;
The &#039;&#039;&#039;Flat&#039;&#039;&#039; checkbox controls how the Scenegraph list is displayed.&lt;br /&gt;
&lt;br /&gt;
If it&#039;s not checked you can expand groups to see the relations between objects in the graph.&lt;br /&gt;
&lt;br /&gt;
If it&#039;s checked you can no longer see group relationships, but you can instead expand each individual object to change any parameters associated with it.&lt;br /&gt;
&lt;br /&gt;
=== Named Only ===&lt;br /&gt;
If this is checked the Scenegraph list with only display objects that have been named. You can name an object by selecting it, bringing up the &#039;&#039;&#039;Single Selected&#039;&#039;&#039; window by pressing I, and then writing something in the &#039;&#039;&#039;Name&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
== Color Picker ==&lt;br /&gt;
[[Image:Editor-new-color-picker.png|right|thumb|caption|A crete block with its color altered by the color picker.]]&lt;br /&gt;
The Color Picker is used to tint the color of selected objects.&lt;br /&gt;
&lt;br /&gt;
It is opened by pressing cmd+p, or Top Bar -&amp;gt; Windows -&amp;gt; ColorPicker.&lt;br /&gt;
&lt;br /&gt;
The color picker consists of a color-gradient box, a rainbow slider, the RGB values, and an overbrightness slider. Increasing overbrightness makes the color brighter, and makes it glow in the dark.&lt;br /&gt;
&lt;br /&gt;
For characters, the color picker will let you set the color of different parts of the character. This is only available if the character was built to support a multi-color palette (not all of them do).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039;: Update screenshot on the right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sun Editor ==&lt;br /&gt;
[[Image:Sun_editor.jpg|right|thumb|caption|The sun editor]]&lt;br /&gt;
&lt;br /&gt;
The sun allows you to cast dynamic, single-directional light throughout a level.&amp;lt;br&amp;gt;&lt;br /&gt;
You can use it to simulate either a sun (more direct light) or a moon (more ambient light)&lt;br /&gt;
&lt;br /&gt;
See [[Lighting#Sunlight|the documentation on the lighting page]] for more information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dialogue Editor ==&lt;br /&gt;
&lt;br /&gt;
The [[Dialogue Editor]] is used to create scenes with different camera angles, text and poses. It is commonly used to give context and progress the story in a level.&lt;br /&gt;
&lt;br /&gt;
This is a big enough subject to warrant its own article, which can be found [[Dialogue Editor|here]].&lt;br /&gt;
&lt;br /&gt;
== Spawn Corpse ==&lt;br /&gt;
Sometimes you want to have a dead character in your level. The obvious solution would be to export a new model of a dead character and place it in the level. However, that&#039;s a lot of work, and the character wouldn&#039;t be dynamic, and it would take a lot of work to make changes to it.&lt;br /&gt;
&lt;br /&gt;
Luckily there is a system in the engine for making any character spawn as a corpse. Here are instructions for how to use that system:&lt;br /&gt;
&lt;br /&gt;
[[Image:spawn_corpse.jpg|right|thumb|caption|Making a corpse]]&lt;br /&gt;
# Spawn the character you want to spawn as a corpse.&lt;br /&gt;
# Select its spawn box and press cmd or ctrl + K to make it spawn as a corpse, which will kill it. At this point the corpse will spawn standing up when you restart the level with L, we&#039;ll fix that in the following steps.&lt;br /&gt;
# Enter play mode by pressing 8, go close to the corpse and hold right click to drag it around until you&#039;re satisfied with the pose.&lt;br /&gt;
# Now exit play mode by pressing escape, select the character&#039;s spawn box and press cmd+K again to update the pose of the corpse.&lt;br /&gt;
# Press L to restart the level and verify that it worked.&lt;br /&gt;
&lt;br /&gt;
If you want to make a corpse to spawn alive again, select its spawn point and press K.&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Editor_Interface&amp;diff=6135</id>
		<title>Editor Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Editor_Interface&amp;diff=6135"/>
		<updated>2023-05-18T03:31:12Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Dialogue menu */ Made hotkey lowercase&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor_Overview.png|right|600px|thumb|caption|The Overgrowth level editor]]&lt;br /&gt;
This page details all the interface elements and actions in the Overgrowth level editor.&lt;br /&gt;
&lt;br /&gt;
The level editor lets you create new levels or even whole campaigns. This is the same editor we used to make the Overgrowth and Lugaru stories.&lt;br /&gt;
&lt;br /&gt;
You can use the level editor to edit any existing level in the game.&lt;br /&gt;
&lt;br /&gt;
== Activating the editor ==&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|eS3RujmDQ2M&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Level editor basics&lt;br /&gt;
|frame&lt;br /&gt;
|start=15&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== To activate the editor: ====&lt;br /&gt;
* Create a new level (&#039;&#039;&#039;File&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;New&#039;&#039;&#039;)&lt;br /&gt;
* Open an existing level and press &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the editor is active while playing a level, you can open up the editor window again by pressing the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;Esc&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; key.&lt;br /&gt;
&lt;br /&gt;
You can deactivate the editor by hitting &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; a second time.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting: ====&lt;br /&gt;
If you can&#039;t get the editor to activate, there are a few things you can try:&lt;br /&gt;
* If you have a laptop, try holding the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;fn&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; key while pressing &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;&lt;br /&gt;
* Mash all the modifier keys a few times to make sure they&#039;re not stuck down - &amp;lt;kbd&amp;gt;&#039;&#039;&#039;ctrl&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;alt&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;shift&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;command&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, etc&lt;br /&gt;
* Make sure you have all other programs closed, in case one of them is conflicting with the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; hotkey&lt;br /&gt;
* If some &amp;quot;Help&amp;quot; program comes up when you hit &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; (such as &amp;quot;HP Help&amp;quot;), edit its settings to disable the hotkey.&amp;lt;br&amp;gt;Or just &#039;&#039;uninstall it&#039;&#039; (because it is bloatware)&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Camera Movement ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! W&lt;br /&gt;
| Moves camera forward&lt;br /&gt;
|-&lt;br /&gt;
! S&lt;br /&gt;
| Moves camera backward&lt;br /&gt;
|-&lt;br /&gt;
! A&lt;br /&gt;
| Moves camera left&lt;br /&gt;
|-&lt;br /&gt;
! D&lt;br /&gt;
| Moves camera right&lt;br /&gt;
|-&lt;br /&gt;
! Shift + W&lt;br /&gt;
| Moves camera up&lt;br /&gt;
|-&lt;br /&gt;
! Shift + S&lt;br /&gt;
| Moves camera down&lt;br /&gt;
|-&lt;br /&gt;
! Left click and drag&lt;br /&gt;
| Rotates the camera&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Object Selection ==&lt;br /&gt;
&lt;br /&gt;
Here are the different ways you can select objects.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Select single object&lt;br /&gt;
| double-left-click on object || Selects clicked on object and deselects all other objects. If the object is part of a group, the whole group is selected. A box around the object indicates that it is selected.&lt;br /&gt;
|-&lt;br /&gt;
! Toggle-select objects&lt;br /&gt;
| shift + double-left-click on objects || Toggles selection of clicked on object. Preserves existing selections.&lt;br /&gt;
|-&lt;br /&gt;
! Box select objects&lt;br /&gt;
| left-click + right-click + drag, or left-click + &#039;b&#039; + drag || Selects all objects whose centers lie within box drawn on screen. Deselects all other objects.&lt;br /&gt;
|-&lt;br /&gt;
! Box add to selection&lt;br /&gt;
| shift + left-click + right-click + drag, or shift + left-click + &#039;b&#039; + drag || Adds all objects whose centers lie within the drawn box to the selection. Preserves existing selection.&lt;br /&gt;
|-&lt;br /&gt;
! Select decal or object that is under another decal&lt;br /&gt;
| mouse wheel up/down || When you have 2 or more objects or decals on top of each other, you can select at least 1 decal or object, put your mouse cursor on top of the one you want to select, then use the scroll wheel to switch your selection between the objects.&lt;br /&gt;
|-&lt;br /&gt;
! Select all&lt;br /&gt;
| cmd-a || Selects all objects.&lt;br /&gt;
|-&lt;br /&gt;
! Deselect all&lt;br /&gt;
| double-left-click away from all objects, or press Q || Deselects all objects.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-selection-debug-info.png|right|thumb|caption|Debug window]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: &#039;&#039;&#039; If the Debug window is open (&#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Debug Window&#039;&#039;&#039;), then when you select an object some useful information will appear. It shows you what xml file the object is created from, its unique object id, and what type of object it is.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transformations ==&lt;br /&gt;
&lt;br /&gt;
For all transformations:&lt;br /&gt;
&lt;br /&gt;
* In order to transform an object you must first select it.&lt;br /&gt;
* Hold ctrl to make movements snap to half-meter increments.&lt;br /&gt;
* Hold alt to clone and transform the selected objects, leaving the original objects behind.&lt;br /&gt;
* Left-click transforms objects on all axis. Right-click transforms on the two axis that are perpendicular to the side of the bounding box you click on. Holding shift and right click locks the transformation to the axis parallel to the bounding box face you click on.&lt;br /&gt;
* Groups are transformed around the group center. Ungrouped objects, even if multiple are selected and transformed at once, are transformed around their own individual centers.&lt;br /&gt;
&lt;br /&gt;
=== Translation ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse over central region of a bounding box&#039; face, or hold &#039;t&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Camera relative&lt;br /&gt;
| left-click + drag || Translates clicked on object along plane parallel to the screen.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to plane&lt;br /&gt;
| right-click + drag || Translates clicked on object along plane of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to line&lt;br /&gt;
| shift + right-click + drag || Translates clicked on object along normal of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! force decal(s) to map only one object/group&lt;br /&gt;
| hold i || selected decal will only map with that object that is directly underneath your mouse&lt;br /&gt;
|-&lt;br /&gt;
! force decal(s) to project only on selected objects&lt;br /&gt;
| press o || selected decal will only map with that object that is directly underneath your mouse&lt;br /&gt;
|-&lt;br /&gt;
! projection box/angle&lt;br /&gt;
| press p || to make projection box for decal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Scale ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse near bounding box corners, or hold &#039;e&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! All dimensions&lt;br /&gt;
| left-click + drag || Scales clicked on object in all dimensions (x, y, and z) at once.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to plane&lt;br /&gt;
| right-click + drag || Extends clicked on object along plane of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to line&lt;br /&gt;
| shift + right-click + drag || Extrudes clicked on object along normal of clicked on face.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mirror ===&lt;br /&gt;
&lt;br /&gt;
Just use the right-click scale tool, and scale down the object until it flips and its mirror image begins scaling up!&lt;br /&gt;
&lt;br /&gt;
=== Rotation ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse near bounding box edges but away from the corners, or hold &#039;r&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Free&lt;br /&gt;
| left-click + drag || Rotates clicked on object as if you are pushing the surface of a ball.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to axis&lt;br /&gt;
| right-click + drag || Rotates clicked on object about normal of clicked on face.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Editor/Debug Keys==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Toggle editor mode&lt;br /&gt;
| F1 || Enables level editor. Press again to exit.&lt;br /&gt;
|-&lt;br /&gt;
! Activate play mode&lt;br /&gt;
| 8 || Spawns you in the level so you can play it. If there already is a player character you will control that, otherwise a player character spawn is created on the editor camera automatically.&lt;br /&gt;
|-&lt;br /&gt;
! Restore characters&lt;br /&gt;
| X || Restores all characters on the level to full health, wakes up any &amp;quot;unconscious&amp;quot; ones, and removes all blood from the environment.&lt;br /&gt;
|-&lt;br /&gt;
! Reload level&lt;br /&gt;
| L || Restarts the current level.&lt;br /&gt;
|-&lt;br /&gt;
! Change character&lt;br /&gt;
| 1-7 || Changes the playable character into one of seven possible characters. 1 cycles through rabbit guard, bandit, and turner models, 2 cycles through civilian rabbit models, 3 cycles through cat models, 4 cycles through rat models, 5 cycles through wolves, 6 through dogs, and the seventh is Rabbot 2.0.&lt;br /&gt;
|-&lt;br /&gt;
! Active ragdoll&lt;br /&gt;
| Z || Puts player character into active ragdoll mode where they will try to protect themselves as they fall. Is active as long as you hold the button.&lt;br /&gt;
|-&lt;br /&gt;
! Pain ragdoll&lt;br /&gt;
| N || Makes the player fall to the ground in agony, until you let go of the button.&lt;br /&gt;
|-&lt;br /&gt;
! Floppy ragdoll&lt;br /&gt;
| M || Makes the player fall to the ground, limp, until the button is released.&lt;br /&gt;
|-&lt;br /&gt;
! Voice Test&lt;br /&gt;
| V || Plays a test voice.&lt;br /&gt;
|-&lt;br /&gt;
! Toggle combat AI&lt;br /&gt;
| C || Toggles whether the characters in the level will attack each other if they are on different teams.&lt;br /&gt;
|-&lt;br /&gt;
! Slit throat&lt;br /&gt;
| , || The controlled character suffers a neck wound with blood gushing from it.&lt;br /&gt;
|-&lt;br /&gt;
! Slow time&lt;br /&gt;
| Tab || Slows down the whole game.&lt;br /&gt;
|-&lt;br /&gt;
! Freeze time&lt;br /&gt;
| ` || Freezes the game. This is useful for posing characters for item placement. &#039;&#039;&#039;Note&#039;&#039;&#039;: The game must be unfrozen to change between controlling the player and editor mode. &lt;br /&gt;
|-&lt;br /&gt;
! Insta-kill&lt;br /&gt;
| F || Instantly kills and knocks back nearby NPC&#039;s with a death ray.&lt;br /&gt;
|-&lt;br /&gt;
! Experimental Key&lt;br /&gt;
| B || Makes you invisible.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debug Window ==&lt;br /&gt;
[[Image:Editor-selection-debug-info.png|right|thumb|caption|Debug window]]&lt;br /&gt;
Just below the top bar menu, on the left side, is a space for debug information.&lt;br /&gt;
&lt;br /&gt;
This window is only visible if you have the Debug Window enabled (&#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Debug Window&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
It will tell you information about the selected object, checkpoint progress (if checkpoints are enabled in this level), and a warning if the nav mesh needs to be updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Editor menu ==&lt;br /&gt;
The bar across the top of the window is the editor menu. Many editor functions can be found here, but some functions can only be reached via hotkeys for now.&lt;br /&gt;
&lt;br /&gt;
&#039;Cmd&#039; refers to the &#039;⌘&#039; key on Macs, and the &#039;ctrl&#039; key on PCs.&lt;br /&gt;
&lt;br /&gt;
=== File menu ===&lt;br /&gt;
Contains file operations for loading and saving levels.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-file-menu.png|right|thumb|caption|The editor &amp;quot;file&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! New Level&lt;br /&gt;
| - || Opens a new empty level in the editor.&lt;br /&gt;
|-&lt;br /&gt;
! Open Level...&lt;br /&gt;
| - || Opens a file browser where you can pick what level to load (starts in Data/Levels directory).&lt;br /&gt;
|-&lt;br /&gt;
! Open Local Level...&lt;br /&gt;
| - || Opens a file browser where you can pick what level to load (starts in last used directory).&lt;br /&gt;
|-&lt;br /&gt;
! Open Recent&lt;br /&gt;
| - || Re-open one of the most recently opened levels in the editor.&lt;br /&gt;
|-&lt;br /&gt;
! Open Campaign Level&lt;br /&gt;
| - || Open one of the levels from the main Overgrowth story mode.&lt;br /&gt;
|-&lt;br /&gt;
! Save Level&lt;br /&gt;
| cmd+s || Overwrites the currently opened level file with any changes you made.&lt;br /&gt;
|-&lt;br /&gt;
! Save As...&lt;br /&gt;
| - || Opens a file browser where you can pick a new or existing file to save the level to.&lt;br /&gt;
|-&lt;br /&gt;
! Back to main menu&lt;br /&gt;
| - || Leave the editor and return to the main menu.&lt;br /&gt;
|-&lt;br /&gt;
! Quit&lt;br /&gt;
| alt+f4 || Quit the game.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Edit menu ===&lt;br /&gt;
Contains basic editing functions. Also contains properties for the level.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-edit-menu.png|right|thumb|caption|The editor &amp;quot;edit&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Undo&lt;br /&gt;
| cmd+z || Undo the most recent action.&lt;br /&gt;
|-&lt;br /&gt;
! Redo&lt;br /&gt;
| cmd+shift+z || Redo the most recent action.&lt;br /&gt;
|-&lt;br /&gt;
! Cut&lt;br /&gt;
| cmd+x || Puts the selection into the clipboard and removes the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Copy&lt;br /&gt;
| cmd+c || Puts the selection into the clipboard.&lt;br /&gt;
|-&lt;br /&gt;
! Paste&lt;br /&gt;
| cmd+v || Pastes the clipboard on the cursor position.&lt;br /&gt;
|-&lt;br /&gt;
! Select All&lt;br /&gt;
| cmd+a || Select all of the objects in the level.&lt;br /&gt;
|-&lt;br /&gt;
! Deselect All&lt;br /&gt;
| q || Clear the current selection.&lt;br /&gt;
|-&lt;br /&gt;
! Reload All Prefabs&lt;br /&gt;
| - || Force a reload of all prefab objects in the level.&lt;br /&gt;
|-&lt;br /&gt;
! Set Level Params...&lt;br /&gt;
| - || Set global level parameters (sun settings, sky, fog, HDR, etc).&lt;br /&gt;
|-&lt;br /&gt;
! Set Level Script...&lt;br /&gt;
| - || Select what script to use for this level.&lt;br /&gt;
|-&lt;br /&gt;
! Set Sky Texture...&lt;br /&gt;
| - || Opens a file browser where you can pick what sky texture to use.&lt;br /&gt;
|-&lt;br /&gt;
! Edit static meshes&lt;br /&gt;
| cmd+1 || Toggle ability to select non-moving objects (rocks, etc).&lt;br /&gt;
|-&lt;br /&gt;
! Edit decals&lt;br /&gt;
| cmd+2 || Toggle ability to select decals.&lt;br /&gt;
|-&lt;br /&gt;
! Edit gameplay objects&lt;br /&gt;
| cmd+3 || Toggle ability to select characters, hotspots, etc.&lt;br /&gt;
|-&lt;br /&gt;
! Edit lighting&lt;br /&gt;
| - || Toggle ability to select lights.&lt;br /&gt;
|-&lt;br /&gt;
! Play level&lt;br /&gt;
| 8 || Enter play mode.&lt;br /&gt;
|-&lt;br /&gt;
! Media mode&lt;br /&gt;
| - || Enter a disembodied camera mode, for taking screenshots and videos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Selected menu ===&lt;br /&gt;
Contains operations for working with the current selected objects.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-selected-menu.png|right|thumb|caption|The editor &amp;quot;selected&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Go To Selected&lt;br /&gt;
| f || Move the camera to frame the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Delete&lt;br /&gt;
| backspace || Delete the selected objects from the level.&lt;br /&gt;
|-&lt;br /&gt;
! Group&lt;br /&gt;
| cmd+g || Merge the selected objects into a group.&lt;br /&gt;
|-&lt;br /&gt;
! Ungroup&lt;br /&gt;
| cmd+shift+g || Break up all groups that are selected.&lt;br /&gt;
|-&lt;br /&gt;
! Set Selection Script Params...&lt;br /&gt;
| - || Open up the selected object window, and expand the &amp;quot;Script Params&amp;quot; section for the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Save Selection...&lt;br /&gt;
| cmd+shift+s || Open up the file browser to save the selection as an object template.&lt;br /&gt;
Object templates can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a template, it won&#039;t be updated in any level it is placed in.&lt;br /&gt;
|-&lt;br /&gt;
! Prefab Save&lt;br /&gt;
| - || Save any changes to the selected prefab to a file, or create a new prefab file from the selection.&lt;br /&gt;
Object prefabs can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a prefab, it will automatically be updated in all levels it is placed in.&lt;br /&gt;
|-&lt;br /&gt;
! Prefab Save As...&lt;br /&gt;
| - || Open a file browser to save the selection as a new prefab file.&lt;br /&gt;
Object prefabs can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a prefab, it will automatically be updated in all levels it is placed in.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Load menu ===&lt;br /&gt;
Contains operations for loading and spawning objects into the level.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-load-menu.png|right|thumb|caption|The editor &amp;quot;load&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Load item...&lt;br /&gt;
| - || Open a file browser to pick an item to spawn in. After loading, click in the level to spawn the object.&lt;br /&gt;
|-&lt;br /&gt;
! Open recent...&lt;br /&gt;
| - || Pick an item you&#039;ve recently spawned to spawn another instance. After loading, click in the level to spawn the object.&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;Rest of menu&amp;gt;&lt;br /&gt;
| - || Search or click on an item from a list to spawn in. After loading, click in the level to spawn the object.&lt;br /&gt;
Hover over an item to see a thumbnail preview of the item.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nav Mesh menu ===&lt;br /&gt;
Tools for nav mesh generation, loading, saving and viewing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-navmesh-menu.png|right|thumb|caption|The editor &amp;quot;nav mesh&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Create&lt;br /&gt;
| - || Generates a new navigation mesh.&lt;br /&gt;
|-&lt;br /&gt;
! Save&lt;br /&gt;
| - || Save the current nav mesh to disk.&lt;br /&gt;
|-&lt;br /&gt;
! Load&lt;br /&gt;
| - || Load a previously saved nav mesh from disk.&lt;br /&gt;
|-&lt;br /&gt;
! View mesh&lt;br /&gt;
| - || Toggle preview render of the nav mesh.&lt;br /&gt;
|-&lt;br /&gt;
! View collision&lt;br /&gt;
| - || Toggle preview render of the collision mesh the nav mesh is based on.&lt;br /&gt;
|-&lt;br /&gt;
! View hints&lt;br /&gt;
| - || Toggle preview render of navmesh_hint objects (which are collision that is only visible to the nav mesh generator).&lt;br /&gt;
|-&lt;br /&gt;
! View region&lt;br /&gt;
| - || Toggle preview render of navmesh_region objects (which restricts mesh generation to within its volume).&lt;br /&gt;
|-&lt;br /&gt;
! View jump nodes&lt;br /&gt;
| - || Toggle preview render of navmesh_connection objects (jump nodes).&lt;br /&gt;
|-&lt;br /&gt;
! Cell Size&lt;br /&gt;
| - || Change the width of cells in the nav mesh&lt;br /&gt;
smaller: handles smaller gaps, slower to build.&lt;br /&gt;
|-&lt;br /&gt;
! Cell Height&lt;br /&gt;
| - || Change the height of cells in the nav mesh&lt;br /&gt;
smaller: finer control on ramps, slower to build.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Height&lt;br /&gt;
| - || Change the height of fake player used to create nav mesh&lt;br /&gt;
smaller: handles lower overhangs, more likely to be unreachable by real characters.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Radius&lt;br /&gt;
| - || Change the width of fake player used to create nav mesh&lt;br /&gt;
smaller: handles smaller gaps, more likely to be unreachable by real characters.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Max Climb&lt;br /&gt;
| - || Change the max height of blocks that fake player will climb to create nav mesh&lt;br /&gt;
too high: real characters can&#039;t climb it.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Max Slope&lt;br /&gt;
| - || Change the max angle of ramps that fake player will walk up to create nav mesh&lt;br /&gt;
too high: real characters will go up steep hills.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dialogue menu ===&lt;br /&gt;
Tools for [[dialogue]] editing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-dialogue-menu.png|right|thumb|caption|The editor &amp;quot;dialogue&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Edit Selected&lt;br /&gt;
| o || Start editing the selected dialogue (make sure you select it first!).&lt;br /&gt;
|-&lt;br /&gt;
! Load Dialogue&lt;br /&gt;
| - || Load a previously saved dialogue text file.&lt;br /&gt;
|-&lt;br /&gt;
! New Dialogue&lt;br /&gt;
| - || Create a new dialogue object (click this, then click to place it in the level).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Windows menu ===&lt;br /&gt;
Launch various editor windows, color picker, and debug windows.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-windows-menu.png|right|thumb|caption|The editor &amp;quot;windows&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Scenegraph&lt;br /&gt;
| y || Open level properties, and a searchable list of items in the level.&lt;br /&gt;
Hint: Click items in the list to select/deselect them, and hit F to view the selected items.&lt;br /&gt;
|-&lt;br /&gt;
! Selected&lt;br /&gt;
| u || Open the properties for the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Color_Picker|Color Picker]]&lt;br /&gt;
| cmd+p || Open the Color Picker to let you tint objects.&lt;br /&gt;
|-&lt;br /&gt;
! [[Collision Painting|Collision Paint]]&lt;br /&gt;
| - || Open the Collision Paint menu to let you edit physics properties on objects or individual surfaces.&lt;br /&gt;
|-&lt;br /&gt;
! Performance&lt;br /&gt;
| - || Open a window to monitor performance, and view a list of loaded file assets/loaded textures, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Save&lt;br /&gt;
| - || Open a window to view data in the save file, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! State&lt;br /&gt;
| - || Open a window to view a hierarchy of loaded script contexts, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Sound&lt;br /&gt;
| - || Open a window to view a list of loaded sounds, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Debug Window&lt;br /&gt;
| - || Open a window to view debug text (shows various game and editor state).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Functions Without Buttons ==&lt;br /&gt;
Some functions are only reachable via hotkeys, here are a list of those.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Make player-controlled&lt;br /&gt;
| Shift+Cmd+P || Toggles whether a character is controlled by a human or by AI. A human-controlled character&#039;s spawn box has a green outline, an AI-controlled character&#039;s box has white outlines. If two characters are set to be human-controlled Overgrowth will start in split-screen mode the next time game-play is resumed from editor mode. The second player will be controllable via a USB controller.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Spawn_Dead|Spawn Dead]]&lt;br /&gt;
| Cmd+K or Ctrl+K (with character spawn selected) || Makes selected characters spawn dead. It will spawn at the point it went into ragdoll mode (which may cause it to spawn &amp;quot;dead&amp;quot; while standing up). If you want to update the pose for the dead body then move the body, select the spawn point, and hit the hotkey again to save its new position.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Spawn_Alive|Spawn Alive]]&lt;br /&gt;
| K (with character spawn selected) || Makes selected characters spawn alive.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
Every object as well as the level itself has several parameters. The most basic ones that all objects have are &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;Translation&#039;&#039;&#039;, &#039;&#039;&#039;Scale&#039;&#039;&#039; and &#039;&#039;&#039;Rotation&#039;&#039;&#039;. Other parameters you might find on an object are color tints and [[Script Parameters]].&lt;br /&gt;
&lt;br /&gt;
There are several ways to edit these parameters for an object. The fastest and easiest way to do it for a single object is by using the &#039;&#039;&#039;Single Selected&#039;&#039;&#039; window (press I to open it), which shows all of the parameters for the most recently selected object.&lt;br /&gt;
&lt;br /&gt;
If you want to view or edit the parameters of several specific objects you can use the [[#Selected Window|Selected Window]].&lt;br /&gt;
&lt;br /&gt;
To view and edit parameters for all the objects in the level, as well as the parameters for the level itself, use the [[#Scenegraph Window|Scenegraph Window]].&lt;br /&gt;
&lt;br /&gt;
== Selected Window ==&lt;br /&gt;
[[Image:Editor-selection-windows.png|right|thumb|caption|Selected Window (object parameters)]]&lt;br /&gt;
&lt;br /&gt;
The Selected Window (or parameter editor) lets you change different parameters depending on which objects you have selected.&lt;br /&gt;
&lt;br /&gt;
You can bring up the parameter editor for an object (or set of objects) by selecting them and pressing the U key, or clicking Top Bar -&amp;gt; Windows -&amp;gt; Selected.&lt;br /&gt;
&lt;br /&gt;
Here is a description of what each parameter does:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
| Give an object a custom name, so you can find it in the scenegraph window (see below), or let a custom script find those objects so they can do special things to them.&lt;br /&gt;
|-&lt;br /&gt;
! Transform&lt;br /&gt;
| Adjust the position, rotation, and scale of the objects manually. There is also a button to reset the rotation (which is useful when creating object prefabs).&lt;br /&gt;
|-&lt;br /&gt;
! Color Palette&lt;br /&gt;
| Tint objects, or make them super bright. If the character provides a mutli-part color palette, set different colors on different parts.&lt;br /&gt;
|-&lt;br /&gt;
! Script Params&lt;br /&gt;
| Custom parameters used by scripts. Each different object type can define their own script params. See [[Script Parameters]] page for descriptions of all parameters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scenegraph Window ==&lt;br /&gt;
[[Image:Editor-scenegraph-window.png|right|thumb|caption|Scenegraph Window (level parameters)]]&lt;br /&gt;
&lt;br /&gt;
The Scenegraph Window (or parameter editor) lets you change global level parameters, as well as find objects in the level.&lt;br /&gt;
&lt;br /&gt;
Open up the Scenegraph for the current level by pressing the Y key, or clicking Top Bar -&amp;gt; Windows -&amp;gt; Scenegraph. Let&#039;s go through each part of the Scenegraph window from top to bottom.&lt;br /&gt;
&lt;br /&gt;
=== Level ===&lt;br /&gt;
If you expand the &#039;&#039;&#039;Level&#039;&#039;&#039; entry at the very top of the window you will find some parameters that can be changed:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Loading Screen Image&lt;br /&gt;
| A path to an image that&#039;s shown while loading the level&lt;br /&gt;
|-&lt;br /&gt;
! Sun Position&lt;br /&gt;
| The position of the sun in the sky&lt;br /&gt;
|-&lt;br /&gt;
! Sun Color&lt;br /&gt;
| Tints the color of the sun, useful for sunrises and sunsets&lt;br /&gt;
|-&lt;br /&gt;
! Sun Intensity&lt;br /&gt;
| Controls how dark the shadows are&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For a description of the level script parameters, see the [[Script Parameters]] page.&lt;br /&gt;
&lt;br /&gt;
=== Search field ===&lt;br /&gt;
Below the &#039;&#039;&#039;Level&#039;&#039;&#039; entry at the very top there is a search field. Write in this field to search for objects in the level. This searches in many of the objects&#039; fields. You can for instance search for something written in the &#039;&#039;&#039;Name&#039;&#039;&#039; parameter of an object, object IDs, object paths, types and more.&lt;br /&gt;
&lt;br /&gt;
=== Flat ===&lt;br /&gt;
The &#039;&#039;&#039;Flat&#039;&#039;&#039; checkbox controls how the Scenegraph list is displayed.&lt;br /&gt;
&lt;br /&gt;
If it&#039;s not checked you can expand groups to see the relations between objects in the graph.&lt;br /&gt;
&lt;br /&gt;
If it&#039;s checked you can no longer see group relationships, but you can instead expand each individual object to change any parameters associated with it.&lt;br /&gt;
&lt;br /&gt;
=== Named Only ===&lt;br /&gt;
If this is checked the Scenegraph list with only display objects that have been named. You can name an object by selecting it, bringing up the &#039;&#039;&#039;Single Selected&#039;&#039;&#039; window by pressing I, and then writing something in the &#039;&#039;&#039;Name&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
== Color Picker ==&lt;br /&gt;
[[Image:Editor-new-color-picker.png|right|thumb|caption|A crete block with its color altered by the color picker.]]&lt;br /&gt;
The Color Picker is used to tint the color of selected objects.&lt;br /&gt;
&lt;br /&gt;
It is opened by pressing cmd+p, or Top Bar -&amp;gt; Windows -&amp;gt; ColorPicker.&lt;br /&gt;
&lt;br /&gt;
The color picker consists of a color-gradient box, a rainbow slider, the RGB values, and an overbrightness slider. Increasing overbrightness makes the color brighter, and makes it glow in the dark.&lt;br /&gt;
&lt;br /&gt;
For characters, the color picker will let you set the color of different parts of the character. This is only available if the character was built to support a multi-color palette (not all of them do).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039;: Update screenshot on the right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sun Editor ==&lt;br /&gt;
[[Image:Sun_editor.jpg|right|thumb|caption|The sun editor]]&lt;br /&gt;
&lt;br /&gt;
The sun allows you to cast dynamic, single-directional light throughout a level.&amp;lt;br&amp;gt;&lt;br /&gt;
You can use it to simulate either a sun (more direct light) or a moon (more ambient light)&lt;br /&gt;
&lt;br /&gt;
See [[Lighting#Sunlight|the documentation on the lighting page]] for more information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dialogue Editor ==&lt;br /&gt;
&lt;br /&gt;
The [[Dialogue Editor]] is used to create scenes with different camera angles, text and poses. It is commonly used to give context and progress the story in a level.&lt;br /&gt;
&lt;br /&gt;
This is a big enough subject to warrant its own article, which can be found [[Dialogue Editor|here]].&lt;br /&gt;
&lt;br /&gt;
== Spawn Corpse ==&lt;br /&gt;
Sometimes you want to have a dead character in your level. The obvious solution would be to export a new model of a dead character and place it in the level. However, that&#039;s a lot of work, and the character wouldn&#039;t be dynamic, and it would take a lot of work to make changes to it.&lt;br /&gt;
&lt;br /&gt;
Luckily there is a system in the engine for making any character spawn as a corpse. Here are instructions for how to use that system:&lt;br /&gt;
&lt;br /&gt;
[[Image:spawn_corpse.jpg|right|thumb|caption|Making a corpse]]&lt;br /&gt;
# Spawn the character you want to spawn as a corpse.&lt;br /&gt;
# Select its spawn box and press cmd or ctrl + K to make it spawn as a corpse, which will kill it. At this point the corpse will spawn standing up when you restart the level with L, we&#039;ll fix that in the following steps.&lt;br /&gt;
# Enter play mode by pressing 8, go close to the corpse and hold right click to drag it around until you&#039;re satisfied with the pose.&lt;br /&gt;
# Now exit play mode by pressing escape, select the character&#039;s spawn box and press cmd+K again to update the pose of the corpse.&lt;br /&gt;
# Press L to restart the level and verify that it worked.&lt;br /&gt;
&lt;br /&gt;
If you want to make a corpse to spawn alive again, select its spawn point and press K.&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Editor_Interface&amp;diff=6134</id>
		<title>Editor Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Editor_Interface&amp;diff=6134"/>
		<updated>2023-05-18T03:30:36Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Windows menu */ Removed unused single selected bind&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor_Overview.png|right|600px|thumb|caption|The Overgrowth level editor]]&lt;br /&gt;
This page details all the interface elements and actions in the Overgrowth level editor.&lt;br /&gt;
&lt;br /&gt;
The level editor lets you create new levels or even whole campaigns. This is the same editor we used to make the Overgrowth and Lugaru stories.&lt;br /&gt;
&lt;br /&gt;
You can use the level editor to edit any existing level in the game.&lt;br /&gt;
&lt;br /&gt;
== Activating the editor ==&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|eS3RujmDQ2M&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Level editor basics&lt;br /&gt;
|frame&lt;br /&gt;
|start=15&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== To activate the editor: ====&lt;br /&gt;
* Create a new level (&#039;&#039;&#039;File&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;New&#039;&#039;&#039;)&lt;br /&gt;
* Open an existing level and press &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the editor is active while playing a level, you can open up the editor window again by pressing the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;Esc&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; key.&lt;br /&gt;
&lt;br /&gt;
You can deactivate the editor by hitting &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; a second time.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting: ====&lt;br /&gt;
If you can&#039;t get the editor to activate, there are a few things you can try:&lt;br /&gt;
* If you have a laptop, try holding the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;fn&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; key while pressing &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;&lt;br /&gt;
* Mash all the modifier keys a few times to make sure they&#039;re not stuck down - &amp;lt;kbd&amp;gt;&#039;&#039;&#039;ctrl&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;alt&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;shift&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;command&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, etc&lt;br /&gt;
* Make sure you have all other programs closed, in case one of them is conflicting with the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; hotkey&lt;br /&gt;
* If some &amp;quot;Help&amp;quot; program comes up when you hit &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; (such as &amp;quot;HP Help&amp;quot;), edit its settings to disable the hotkey.&amp;lt;br&amp;gt;Or just &#039;&#039;uninstall it&#039;&#039; (because it is bloatware)&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Camera Movement ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! W&lt;br /&gt;
| Moves camera forward&lt;br /&gt;
|-&lt;br /&gt;
! S&lt;br /&gt;
| Moves camera backward&lt;br /&gt;
|-&lt;br /&gt;
! A&lt;br /&gt;
| Moves camera left&lt;br /&gt;
|-&lt;br /&gt;
! D&lt;br /&gt;
| Moves camera right&lt;br /&gt;
|-&lt;br /&gt;
! Shift + W&lt;br /&gt;
| Moves camera up&lt;br /&gt;
|-&lt;br /&gt;
! Shift + S&lt;br /&gt;
| Moves camera down&lt;br /&gt;
|-&lt;br /&gt;
! Left click and drag&lt;br /&gt;
| Rotates the camera&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Object Selection ==&lt;br /&gt;
&lt;br /&gt;
Here are the different ways you can select objects.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Select single object&lt;br /&gt;
| double-left-click on object || Selects clicked on object and deselects all other objects. If the object is part of a group, the whole group is selected. A box around the object indicates that it is selected.&lt;br /&gt;
|-&lt;br /&gt;
! Toggle-select objects&lt;br /&gt;
| shift + double-left-click on objects || Toggles selection of clicked on object. Preserves existing selections.&lt;br /&gt;
|-&lt;br /&gt;
! Box select objects&lt;br /&gt;
| left-click + right-click + drag, or left-click + &#039;b&#039; + drag || Selects all objects whose centers lie within box drawn on screen. Deselects all other objects.&lt;br /&gt;
|-&lt;br /&gt;
! Box add to selection&lt;br /&gt;
| shift + left-click + right-click + drag, or shift + left-click + &#039;b&#039; + drag || Adds all objects whose centers lie within the drawn box to the selection. Preserves existing selection.&lt;br /&gt;
|-&lt;br /&gt;
! Select decal or object that is under another decal&lt;br /&gt;
| mouse wheel up/down || When you have 2 or more objects or decals on top of each other, you can select at least 1 decal or object, put your mouse cursor on top of the one you want to select, then use the scroll wheel to switch your selection between the objects.&lt;br /&gt;
|-&lt;br /&gt;
! Select all&lt;br /&gt;
| cmd-a || Selects all objects.&lt;br /&gt;
|-&lt;br /&gt;
! Deselect all&lt;br /&gt;
| double-left-click away from all objects, or press Q || Deselects all objects.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-selection-debug-info.png|right|thumb|caption|Debug window]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: &#039;&#039;&#039; If the Debug window is open (&#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Debug Window&#039;&#039;&#039;), then when you select an object some useful information will appear. It shows you what xml file the object is created from, its unique object id, and what type of object it is.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transformations ==&lt;br /&gt;
&lt;br /&gt;
For all transformations:&lt;br /&gt;
&lt;br /&gt;
* In order to transform an object you must first select it.&lt;br /&gt;
* Hold ctrl to make movements snap to half-meter increments.&lt;br /&gt;
* Hold alt to clone and transform the selected objects, leaving the original objects behind.&lt;br /&gt;
* Left-click transforms objects on all axis. Right-click transforms on the two axis that are perpendicular to the side of the bounding box you click on. Holding shift and right click locks the transformation to the axis parallel to the bounding box face you click on.&lt;br /&gt;
* Groups are transformed around the group center. Ungrouped objects, even if multiple are selected and transformed at once, are transformed around their own individual centers.&lt;br /&gt;
&lt;br /&gt;
=== Translation ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse over central region of a bounding box&#039; face, or hold &#039;t&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Camera relative&lt;br /&gt;
| left-click + drag || Translates clicked on object along plane parallel to the screen.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to plane&lt;br /&gt;
| right-click + drag || Translates clicked on object along plane of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to line&lt;br /&gt;
| shift + right-click + drag || Translates clicked on object along normal of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! force decal(s) to map only one object/group&lt;br /&gt;
| hold i || selected decal will only map with that object that is directly underneath your mouse&lt;br /&gt;
|-&lt;br /&gt;
! force decal(s) to project only on selected objects&lt;br /&gt;
| press o || selected decal will only map with that object that is directly underneath your mouse&lt;br /&gt;
|-&lt;br /&gt;
! projection box/angle&lt;br /&gt;
| press p || to make projection box for decal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Scale ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse near bounding box corners, or hold &#039;e&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! All dimensions&lt;br /&gt;
| left-click + drag || Scales clicked on object in all dimensions (x, y, and z) at once.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to plane&lt;br /&gt;
| right-click + drag || Extends clicked on object along plane of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to line&lt;br /&gt;
| shift + right-click + drag || Extrudes clicked on object along normal of clicked on face.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mirror ===&lt;br /&gt;
&lt;br /&gt;
Just use the right-click scale tool, and scale down the object until it flips and its mirror image begins scaling up!&lt;br /&gt;
&lt;br /&gt;
=== Rotation ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse near bounding box edges but away from the corners, or hold &#039;r&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Free&lt;br /&gt;
| left-click + drag || Rotates clicked on object as if you are pushing the surface of a ball.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to axis&lt;br /&gt;
| right-click + drag || Rotates clicked on object about normal of clicked on face.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Editor/Debug Keys==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Toggle editor mode&lt;br /&gt;
| F1 || Enables level editor. Press again to exit.&lt;br /&gt;
|-&lt;br /&gt;
! Activate play mode&lt;br /&gt;
| 8 || Spawns you in the level so you can play it. If there already is a player character you will control that, otherwise a player character spawn is created on the editor camera automatically.&lt;br /&gt;
|-&lt;br /&gt;
! Restore characters&lt;br /&gt;
| X || Restores all characters on the level to full health, wakes up any &amp;quot;unconscious&amp;quot; ones, and removes all blood from the environment.&lt;br /&gt;
|-&lt;br /&gt;
! Reload level&lt;br /&gt;
| L || Restarts the current level.&lt;br /&gt;
|-&lt;br /&gt;
! Change character&lt;br /&gt;
| 1-7 || Changes the playable character into one of seven possible characters. 1 cycles through rabbit guard, bandit, and turner models, 2 cycles through civilian rabbit models, 3 cycles through cat models, 4 cycles through rat models, 5 cycles through wolves, 6 through dogs, and the seventh is Rabbot 2.0.&lt;br /&gt;
|-&lt;br /&gt;
! Active ragdoll&lt;br /&gt;
| Z || Puts player character into active ragdoll mode where they will try to protect themselves as they fall. Is active as long as you hold the button.&lt;br /&gt;
|-&lt;br /&gt;
! Pain ragdoll&lt;br /&gt;
| N || Makes the player fall to the ground in agony, until you let go of the button.&lt;br /&gt;
|-&lt;br /&gt;
! Floppy ragdoll&lt;br /&gt;
| M || Makes the player fall to the ground, limp, until the button is released.&lt;br /&gt;
|-&lt;br /&gt;
! Voice Test&lt;br /&gt;
| V || Plays a test voice.&lt;br /&gt;
|-&lt;br /&gt;
! Toggle combat AI&lt;br /&gt;
| C || Toggles whether the characters in the level will attack each other if they are on different teams.&lt;br /&gt;
|-&lt;br /&gt;
! Slit throat&lt;br /&gt;
| , || The controlled character suffers a neck wound with blood gushing from it.&lt;br /&gt;
|-&lt;br /&gt;
! Slow time&lt;br /&gt;
| Tab || Slows down the whole game.&lt;br /&gt;
|-&lt;br /&gt;
! Freeze time&lt;br /&gt;
| ` || Freezes the game. This is useful for posing characters for item placement. &#039;&#039;&#039;Note&#039;&#039;&#039;: The game must be unfrozen to change between controlling the player and editor mode. &lt;br /&gt;
|-&lt;br /&gt;
! Insta-kill&lt;br /&gt;
| F || Instantly kills and knocks back nearby NPC&#039;s with a death ray.&lt;br /&gt;
|-&lt;br /&gt;
! Experimental Key&lt;br /&gt;
| B || Makes you invisible.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debug Window ==&lt;br /&gt;
[[Image:Editor-selection-debug-info.png|right|thumb|caption|Debug window]]&lt;br /&gt;
Just below the top bar menu, on the left side, is a space for debug information.&lt;br /&gt;
&lt;br /&gt;
This window is only visible if you have the Debug Window enabled (&#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Debug Window&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
It will tell you information about the selected object, checkpoint progress (if checkpoints are enabled in this level), and a warning if the nav mesh needs to be updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Editor menu ==&lt;br /&gt;
The bar across the top of the window is the editor menu. Many editor functions can be found here, but some functions can only be reached via hotkeys for now.&lt;br /&gt;
&lt;br /&gt;
&#039;Cmd&#039; refers to the &#039;⌘&#039; key on Macs, and the &#039;ctrl&#039; key on PCs.&lt;br /&gt;
&lt;br /&gt;
=== File menu ===&lt;br /&gt;
Contains file operations for loading and saving levels.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-file-menu.png|right|thumb|caption|The editor &amp;quot;file&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! New Level&lt;br /&gt;
| - || Opens a new empty level in the editor.&lt;br /&gt;
|-&lt;br /&gt;
! Open Level...&lt;br /&gt;
| - || Opens a file browser where you can pick what level to load (starts in Data/Levels directory).&lt;br /&gt;
|-&lt;br /&gt;
! Open Local Level...&lt;br /&gt;
| - || Opens a file browser where you can pick what level to load (starts in last used directory).&lt;br /&gt;
|-&lt;br /&gt;
! Open Recent&lt;br /&gt;
| - || Re-open one of the most recently opened levels in the editor.&lt;br /&gt;
|-&lt;br /&gt;
! Open Campaign Level&lt;br /&gt;
| - || Open one of the levels from the main Overgrowth story mode.&lt;br /&gt;
|-&lt;br /&gt;
! Save Level&lt;br /&gt;
| cmd+s || Overwrites the currently opened level file with any changes you made.&lt;br /&gt;
|-&lt;br /&gt;
! Save As...&lt;br /&gt;
| - || Opens a file browser where you can pick a new or existing file to save the level to.&lt;br /&gt;
|-&lt;br /&gt;
! Back to main menu&lt;br /&gt;
| - || Leave the editor and return to the main menu.&lt;br /&gt;
|-&lt;br /&gt;
! Quit&lt;br /&gt;
| alt+f4 || Quit the game.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Edit menu ===&lt;br /&gt;
Contains basic editing functions. Also contains properties for the level.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-edit-menu.png|right|thumb|caption|The editor &amp;quot;edit&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Undo&lt;br /&gt;
| cmd+z || Undo the most recent action.&lt;br /&gt;
|-&lt;br /&gt;
! Redo&lt;br /&gt;
| cmd+shift+z || Redo the most recent action.&lt;br /&gt;
|-&lt;br /&gt;
! Cut&lt;br /&gt;
| cmd+x || Puts the selection into the clipboard and removes the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Copy&lt;br /&gt;
| cmd+c || Puts the selection into the clipboard.&lt;br /&gt;
|-&lt;br /&gt;
! Paste&lt;br /&gt;
| cmd+v || Pastes the clipboard on the cursor position.&lt;br /&gt;
|-&lt;br /&gt;
! Select All&lt;br /&gt;
| cmd+a || Select all of the objects in the level.&lt;br /&gt;
|-&lt;br /&gt;
! Deselect All&lt;br /&gt;
| q || Clear the current selection.&lt;br /&gt;
|-&lt;br /&gt;
! Reload All Prefabs&lt;br /&gt;
| - || Force a reload of all prefab objects in the level.&lt;br /&gt;
|-&lt;br /&gt;
! Set Level Params...&lt;br /&gt;
| - || Set global level parameters (sun settings, sky, fog, HDR, etc).&lt;br /&gt;
|-&lt;br /&gt;
! Set Level Script...&lt;br /&gt;
| - || Select what script to use for this level.&lt;br /&gt;
|-&lt;br /&gt;
! Set Sky Texture...&lt;br /&gt;
| - || Opens a file browser where you can pick what sky texture to use.&lt;br /&gt;
|-&lt;br /&gt;
! Edit static meshes&lt;br /&gt;
| cmd+1 || Toggle ability to select non-moving objects (rocks, etc).&lt;br /&gt;
|-&lt;br /&gt;
! Edit decals&lt;br /&gt;
| cmd+2 || Toggle ability to select decals.&lt;br /&gt;
|-&lt;br /&gt;
! Edit gameplay objects&lt;br /&gt;
| cmd+3 || Toggle ability to select characters, hotspots, etc.&lt;br /&gt;
|-&lt;br /&gt;
! Edit lighting&lt;br /&gt;
| - || Toggle ability to select lights.&lt;br /&gt;
|-&lt;br /&gt;
! Play level&lt;br /&gt;
| 8 || Enter play mode.&lt;br /&gt;
|-&lt;br /&gt;
! Media mode&lt;br /&gt;
| - || Enter a disembodied camera mode, for taking screenshots and videos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Selected menu ===&lt;br /&gt;
Contains operations for working with the current selected objects.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-selected-menu.png|right|thumb|caption|The editor &amp;quot;selected&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Go To Selected&lt;br /&gt;
| f || Move the camera to frame the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Delete&lt;br /&gt;
| backspace || Delete the selected objects from the level.&lt;br /&gt;
|-&lt;br /&gt;
! Group&lt;br /&gt;
| cmd+g || Merge the selected objects into a group.&lt;br /&gt;
|-&lt;br /&gt;
! Ungroup&lt;br /&gt;
| cmd+shift+g || Break up all groups that are selected.&lt;br /&gt;
|-&lt;br /&gt;
! Set Selection Script Params...&lt;br /&gt;
| - || Open up the selected object window, and expand the &amp;quot;Script Params&amp;quot; section for the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Save Selection...&lt;br /&gt;
| cmd+shift+s || Open up the file browser to save the selection as an object template.&lt;br /&gt;
Object templates can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a template, it won&#039;t be updated in any level it is placed in.&lt;br /&gt;
|-&lt;br /&gt;
! Prefab Save&lt;br /&gt;
| - || Save any changes to the selected prefab to a file, or create a new prefab file from the selection.&lt;br /&gt;
Object prefabs can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a prefab, it will automatically be updated in all levels it is placed in.&lt;br /&gt;
|-&lt;br /&gt;
! Prefab Save As...&lt;br /&gt;
| - || Open a file browser to save the selection as a new prefab file.&lt;br /&gt;
Object prefabs can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a prefab, it will automatically be updated in all levels it is placed in.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Load menu ===&lt;br /&gt;
Contains operations for loading and spawning objects into the level.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-load-menu.png|right|thumb|caption|The editor &amp;quot;load&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Load item...&lt;br /&gt;
| - || Open a file browser to pick an item to spawn in. After loading, click in the level to spawn the object.&lt;br /&gt;
|-&lt;br /&gt;
! Open recent...&lt;br /&gt;
| - || Pick an item you&#039;ve recently spawned to spawn another instance. After loading, click in the level to spawn the object.&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;Rest of menu&amp;gt;&lt;br /&gt;
| - || Search or click on an item from a list to spawn in. After loading, click in the level to spawn the object.&lt;br /&gt;
Hover over an item to see a thumbnail preview of the item.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nav Mesh menu ===&lt;br /&gt;
Tools for nav mesh generation, loading, saving and viewing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-navmesh-menu.png|right|thumb|caption|The editor &amp;quot;nav mesh&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Create&lt;br /&gt;
| - || Generates a new navigation mesh.&lt;br /&gt;
|-&lt;br /&gt;
! Save&lt;br /&gt;
| - || Save the current nav mesh to disk.&lt;br /&gt;
|-&lt;br /&gt;
! Load&lt;br /&gt;
| - || Load a previously saved nav mesh from disk.&lt;br /&gt;
|-&lt;br /&gt;
! View mesh&lt;br /&gt;
| - || Toggle preview render of the nav mesh.&lt;br /&gt;
|-&lt;br /&gt;
! View collision&lt;br /&gt;
| - || Toggle preview render of the collision mesh the nav mesh is based on.&lt;br /&gt;
|-&lt;br /&gt;
! View hints&lt;br /&gt;
| - || Toggle preview render of navmesh_hint objects (which are collision that is only visible to the nav mesh generator).&lt;br /&gt;
|-&lt;br /&gt;
! View region&lt;br /&gt;
| - || Toggle preview render of navmesh_region objects (which restricts mesh generation to within its volume).&lt;br /&gt;
|-&lt;br /&gt;
! View jump nodes&lt;br /&gt;
| - || Toggle preview render of navmesh_connection objects (jump nodes).&lt;br /&gt;
|-&lt;br /&gt;
! Cell Size&lt;br /&gt;
| - || Change the width of cells in the nav mesh&lt;br /&gt;
smaller: handles smaller gaps, slower to build.&lt;br /&gt;
|-&lt;br /&gt;
! Cell Height&lt;br /&gt;
| - || Change the height of cells in the nav mesh&lt;br /&gt;
smaller: finer control on ramps, slower to build.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Height&lt;br /&gt;
| - || Change the height of fake player used to create nav mesh&lt;br /&gt;
smaller: handles lower overhangs, more likely to be unreachable by real characters.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Radius&lt;br /&gt;
| - || Change the width of fake player used to create nav mesh&lt;br /&gt;
smaller: handles smaller gaps, more likely to be unreachable by real characters.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Max Climb&lt;br /&gt;
| - || Change the max height of blocks that fake player will climb to create nav mesh&lt;br /&gt;
too high: real characters can&#039;t climb it.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Max Slope&lt;br /&gt;
| - || Change the max angle of ramps that fake player will walk up to create nav mesh&lt;br /&gt;
too high: real characters will go up steep hills.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dialogue menu ===&lt;br /&gt;
Tools for [[dialogue]] editing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-dialogue-menu.png|right|thumb|caption|The editor &amp;quot;dialogue&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Edit Selected&lt;br /&gt;
| O || Start editing the selected dialogue (make sure you select it first!).&lt;br /&gt;
|-&lt;br /&gt;
! Load Dialogue&lt;br /&gt;
| - || Load a previously saved dialogue text file.&lt;br /&gt;
|-&lt;br /&gt;
! New Dialogue&lt;br /&gt;
| - || Create a new dialogue object (click this, then click to place it in the level).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Windows menu ===&lt;br /&gt;
Launch various editor windows, color picker, and debug windows.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-windows-menu.png|right|thumb|caption|The editor &amp;quot;windows&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Scenegraph&lt;br /&gt;
| y || Open level properties, and a searchable list of items in the level.&lt;br /&gt;
Hint: Click items in the list to select/deselect them, and hit F to view the selected items.&lt;br /&gt;
|-&lt;br /&gt;
! Selected&lt;br /&gt;
| u || Open the properties for the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Color_Picker|Color Picker]]&lt;br /&gt;
| cmd+p || Open the Color Picker to let you tint objects.&lt;br /&gt;
|-&lt;br /&gt;
! [[Collision Painting|Collision Paint]]&lt;br /&gt;
| - || Open the Collision Paint menu to let you edit physics properties on objects or individual surfaces.&lt;br /&gt;
|-&lt;br /&gt;
! Performance&lt;br /&gt;
| - || Open a window to monitor performance, and view a list of loaded file assets/loaded textures, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Save&lt;br /&gt;
| - || Open a window to view data in the save file, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! State&lt;br /&gt;
| - || Open a window to view a hierarchy of loaded script contexts, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Sound&lt;br /&gt;
| - || Open a window to view a list of loaded sounds, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Debug Window&lt;br /&gt;
| - || Open a window to view debug text (shows various game and editor state).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Functions Without Buttons ==&lt;br /&gt;
Some functions are only reachable via hotkeys, here are a list of those.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Make player-controlled&lt;br /&gt;
| Shift+Cmd+P || Toggles whether a character is controlled by a human or by AI. A human-controlled character&#039;s spawn box has a green outline, an AI-controlled character&#039;s box has white outlines. If two characters are set to be human-controlled Overgrowth will start in split-screen mode the next time game-play is resumed from editor mode. The second player will be controllable via a USB controller.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Spawn_Dead|Spawn Dead]]&lt;br /&gt;
| Cmd+K or Ctrl+K (with character spawn selected) || Makes selected characters spawn dead. It will spawn at the point it went into ragdoll mode (which may cause it to spawn &amp;quot;dead&amp;quot; while standing up). If you want to update the pose for the dead body then move the body, select the spawn point, and hit the hotkey again to save its new position.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Spawn_Alive|Spawn Alive]]&lt;br /&gt;
| K (with character spawn selected) || Makes selected characters spawn alive.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
Every object as well as the level itself has several parameters. The most basic ones that all objects have are &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;Translation&#039;&#039;&#039;, &#039;&#039;&#039;Scale&#039;&#039;&#039; and &#039;&#039;&#039;Rotation&#039;&#039;&#039;. Other parameters you might find on an object are color tints and [[Script Parameters]].&lt;br /&gt;
&lt;br /&gt;
There are several ways to edit these parameters for an object. The fastest and easiest way to do it for a single object is by using the &#039;&#039;&#039;Single Selected&#039;&#039;&#039; window (press I to open it), which shows all of the parameters for the most recently selected object.&lt;br /&gt;
&lt;br /&gt;
If you want to view or edit the parameters of several specific objects you can use the [[#Selected Window|Selected Window]].&lt;br /&gt;
&lt;br /&gt;
To view and edit parameters for all the objects in the level, as well as the parameters for the level itself, use the [[#Scenegraph Window|Scenegraph Window]].&lt;br /&gt;
&lt;br /&gt;
== Selected Window ==&lt;br /&gt;
[[Image:Editor-selection-windows.png|right|thumb|caption|Selected Window (object parameters)]]&lt;br /&gt;
&lt;br /&gt;
The Selected Window (or parameter editor) lets you change different parameters depending on which objects you have selected.&lt;br /&gt;
&lt;br /&gt;
You can bring up the parameter editor for an object (or set of objects) by selecting them and pressing the U key, or clicking Top Bar -&amp;gt; Windows -&amp;gt; Selected.&lt;br /&gt;
&lt;br /&gt;
Here is a description of what each parameter does:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
| Give an object a custom name, so you can find it in the scenegraph window (see below), or let a custom script find those objects so they can do special things to them.&lt;br /&gt;
|-&lt;br /&gt;
! Transform&lt;br /&gt;
| Adjust the position, rotation, and scale of the objects manually. There is also a button to reset the rotation (which is useful when creating object prefabs).&lt;br /&gt;
|-&lt;br /&gt;
! Color Palette&lt;br /&gt;
| Tint objects, or make them super bright. If the character provides a mutli-part color palette, set different colors on different parts.&lt;br /&gt;
|-&lt;br /&gt;
! Script Params&lt;br /&gt;
| Custom parameters used by scripts. Each different object type can define their own script params. See [[Script Parameters]] page for descriptions of all parameters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scenegraph Window ==&lt;br /&gt;
[[Image:Editor-scenegraph-window.png|right|thumb|caption|Scenegraph Window (level parameters)]]&lt;br /&gt;
&lt;br /&gt;
The Scenegraph Window (or parameter editor) lets you change global level parameters, as well as find objects in the level.&lt;br /&gt;
&lt;br /&gt;
Open up the Scenegraph for the current level by pressing the Y key, or clicking Top Bar -&amp;gt; Windows -&amp;gt; Scenegraph. Let&#039;s go through each part of the Scenegraph window from top to bottom.&lt;br /&gt;
&lt;br /&gt;
=== Level ===&lt;br /&gt;
If you expand the &#039;&#039;&#039;Level&#039;&#039;&#039; entry at the very top of the window you will find some parameters that can be changed:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Loading Screen Image&lt;br /&gt;
| A path to an image that&#039;s shown while loading the level&lt;br /&gt;
|-&lt;br /&gt;
! Sun Position&lt;br /&gt;
| The position of the sun in the sky&lt;br /&gt;
|-&lt;br /&gt;
! Sun Color&lt;br /&gt;
| Tints the color of the sun, useful for sunrises and sunsets&lt;br /&gt;
|-&lt;br /&gt;
! Sun Intensity&lt;br /&gt;
| Controls how dark the shadows are&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For a description of the level script parameters, see the [[Script Parameters]] page.&lt;br /&gt;
&lt;br /&gt;
=== Search field ===&lt;br /&gt;
Below the &#039;&#039;&#039;Level&#039;&#039;&#039; entry at the very top there is a search field. Write in this field to search for objects in the level. This searches in many of the objects&#039; fields. You can for instance search for something written in the &#039;&#039;&#039;Name&#039;&#039;&#039; parameter of an object, object IDs, object paths, types and more.&lt;br /&gt;
&lt;br /&gt;
=== Flat ===&lt;br /&gt;
The &#039;&#039;&#039;Flat&#039;&#039;&#039; checkbox controls how the Scenegraph list is displayed.&lt;br /&gt;
&lt;br /&gt;
If it&#039;s not checked you can expand groups to see the relations between objects in the graph.&lt;br /&gt;
&lt;br /&gt;
If it&#039;s checked you can no longer see group relationships, but you can instead expand each individual object to change any parameters associated with it.&lt;br /&gt;
&lt;br /&gt;
=== Named Only ===&lt;br /&gt;
If this is checked the Scenegraph list with only display objects that have been named. You can name an object by selecting it, bringing up the &#039;&#039;&#039;Single Selected&#039;&#039;&#039; window by pressing I, and then writing something in the &#039;&#039;&#039;Name&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
== Color Picker ==&lt;br /&gt;
[[Image:Editor-new-color-picker.png|right|thumb|caption|A crete block with its color altered by the color picker.]]&lt;br /&gt;
The Color Picker is used to tint the color of selected objects.&lt;br /&gt;
&lt;br /&gt;
It is opened by pressing cmd+p, or Top Bar -&amp;gt; Windows -&amp;gt; ColorPicker.&lt;br /&gt;
&lt;br /&gt;
The color picker consists of a color-gradient box, a rainbow slider, the RGB values, and an overbrightness slider. Increasing overbrightness makes the color brighter, and makes it glow in the dark.&lt;br /&gt;
&lt;br /&gt;
For characters, the color picker will let you set the color of different parts of the character. This is only available if the character was built to support a multi-color palette (not all of them do).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039;: Update screenshot on the right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sun Editor ==&lt;br /&gt;
[[Image:Sun_editor.jpg|right|thumb|caption|The sun editor]]&lt;br /&gt;
&lt;br /&gt;
The sun allows you to cast dynamic, single-directional light throughout a level.&amp;lt;br&amp;gt;&lt;br /&gt;
You can use it to simulate either a sun (more direct light) or a moon (more ambient light)&lt;br /&gt;
&lt;br /&gt;
See [[Lighting#Sunlight|the documentation on the lighting page]] for more information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dialogue Editor ==&lt;br /&gt;
&lt;br /&gt;
The [[Dialogue Editor]] is used to create scenes with different camera angles, text and poses. It is commonly used to give context and progress the story in a level.&lt;br /&gt;
&lt;br /&gt;
This is a big enough subject to warrant its own article, which can be found [[Dialogue Editor|here]].&lt;br /&gt;
&lt;br /&gt;
== Spawn Corpse ==&lt;br /&gt;
Sometimes you want to have a dead character in your level. The obvious solution would be to export a new model of a dead character and place it in the level. However, that&#039;s a lot of work, and the character wouldn&#039;t be dynamic, and it would take a lot of work to make changes to it.&lt;br /&gt;
&lt;br /&gt;
Luckily there is a system in the engine for making any character spawn as a corpse. Here are instructions for how to use that system:&lt;br /&gt;
&lt;br /&gt;
[[Image:spawn_corpse.jpg|right|thumb|caption|Making a corpse]]&lt;br /&gt;
# Spawn the character you want to spawn as a corpse.&lt;br /&gt;
# Select its spawn box and press cmd or ctrl + K to make it spawn as a corpse, which will kill it. At this point the corpse will spawn standing up when you restart the level with L, we&#039;ll fix that in the following steps.&lt;br /&gt;
# Enter play mode by pressing 8, go close to the corpse and hold right click to drag it around until you&#039;re satisfied with the pose.&lt;br /&gt;
# Now exit play mode by pressing escape, select the character&#039;s spawn box and press cmd+K again to update the pose of the corpse.&lt;br /&gt;
# Press L to restart the level and verify that it worked.&lt;br /&gt;
&lt;br /&gt;
If you want to make a corpse to spawn alive again, select its spawn point and press K.&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Editor_Interface&amp;diff=6133</id>
		<title>Editor Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Editor_Interface&amp;diff=6133"/>
		<updated>2023-05-18T03:27:02Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Dialogue menu */ Included edit selected hotkey&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor_Overview.png|right|600px|thumb|caption|The Overgrowth level editor]]&lt;br /&gt;
This page details all the interface elements and actions in the Overgrowth level editor.&lt;br /&gt;
&lt;br /&gt;
The level editor lets you create new levels or even whole campaigns. This is the same editor we used to make the Overgrowth and Lugaru stories.&lt;br /&gt;
&lt;br /&gt;
You can use the level editor to edit any existing level in the game.&lt;br /&gt;
&lt;br /&gt;
== Activating the editor ==&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|eS3RujmDQ2M&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Level editor basics&lt;br /&gt;
|frame&lt;br /&gt;
|start=15&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== To activate the editor: ====&lt;br /&gt;
* Create a new level (&#039;&#039;&#039;File&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;New&#039;&#039;&#039;)&lt;br /&gt;
* Open an existing level and press &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the editor is active while playing a level, you can open up the editor window again by pressing the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;Esc&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; key.&lt;br /&gt;
&lt;br /&gt;
You can deactivate the editor by hitting &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; a second time.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting: ====&lt;br /&gt;
If you can&#039;t get the editor to activate, there are a few things you can try:&lt;br /&gt;
* If you have a laptop, try holding the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;fn&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; key while pressing &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;&lt;br /&gt;
* Mash all the modifier keys a few times to make sure they&#039;re not stuck down - &amp;lt;kbd&amp;gt;&#039;&#039;&#039;ctrl&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;alt&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;shift&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;command&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, etc&lt;br /&gt;
* Make sure you have all other programs closed, in case one of them is conflicting with the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; hotkey&lt;br /&gt;
* If some &amp;quot;Help&amp;quot; program comes up when you hit &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; (such as &amp;quot;HP Help&amp;quot;), edit its settings to disable the hotkey.&amp;lt;br&amp;gt;Or just &#039;&#039;uninstall it&#039;&#039; (because it is bloatware)&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Camera Movement ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! W&lt;br /&gt;
| Moves camera forward&lt;br /&gt;
|-&lt;br /&gt;
! S&lt;br /&gt;
| Moves camera backward&lt;br /&gt;
|-&lt;br /&gt;
! A&lt;br /&gt;
| Moves camera left&lt;br /&gt;
|-&lt;br /&gt;
! D&lt;br /&gt;
| Moves camera right&lt;br /&gt;
|-&lt;br /&gt;
! Shift + W&lt;br /&gt;
| Moves camera up&lt;br /&gt;
|-&lt;br /&gt;
! Shift + S&lt;br /&gt;
| Moves camera down&lt;br /&gt;
|-&lt;br /&gt;
! Left click and drag&lt;br /&gt;
| Rotates the camera&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Object Selection ==&lt;br /&gt;
&lt;br /&gt;
Here are the different ways you can select objects.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Select single object&lt;br /&gt;
| double-left-click on object || Selects clicked on object and deselects all other objects. If the object is part of a group, the whole group is selected. A box around the object indicates that it is selected.&lt;br /&gt;
|-&lt;br /&gt;
! Toggle-select objects&lt;br /&gt;
| shift + double-left-click on objects || Toggles selection of clicked on object. Preserves existing selections.&lt;br /&gt;
|-&lt;br /&gt;
! Box select objects&lt;br /&gt;
| left-click + right-click + drag, or left-click + &#039;b&#039; + drag || Selects all objects whose centers lie within box drawn on screen. Deselects all other objects.&lt;br /&gt;
|-&lt;br /&gt;
! Box add to selection&lt;br /&gt;
| shift + left-click + right-click + drag, or shift + left-click + &#039;b&#039; + drag || Adds all objects whose centers lie within the drawn box to the selection. Preserves existing selection.&lt;br /&gt;
|-&lt;br /&gt;
! Select decal or object that is under another decal&lt;br /&gt;
| mouse wheel up/down || When you have 2 or more objects or decals on top of each other, you can select at least 1 decal or object, put your mouse cursor on top of the one you want to select, then use the scroll wheel to switch your selection between the objects.&lt;br /&gt;
|-&lt;br /&gt;
! Select all&lt;br /&gt;
| cmd-a || Selects all objects.&lt;br /&gt;
|-&lt;br /&gt;
! Deselect all&lt;br /&gt;
| double-left-click away from all objects, or press Q || Deselects all objects.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-selection-debug-info.png|right|thumb|caption|Debug window]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: &#039;&#039;&#039; If the Debug window is open (&#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Debug Window&#039;&#039;&#039;), then when you select an object some useful information will appear. It shows you what xml file the object is created from, its unique object id, and what type of object it is.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transformations ==&lt;br /&gt;
&lt;br /&gt;
For all transformations:&lt;br /&gt;
&lt;br /&gt;
* In order to transform an object you must first select it.&lt;br /&gt;
* Hold ctrl to make movements snap to half-meter increments.&lt;br /&gt;
* Hold alt to clone and transform the selected objects, leaving the original objects behind.&lt;br /&gt;
* Left-click transforms objects on all axis. Right-click transforms on the two axis that are perpendicular to the side of the bounding box you click on. Holding shift and right click locks the transformation to the axis parallel to the bounding box face you click on.&lt;br /&gt;
* Groups are transformed around the group center. Ungrouped objects, even if multiple are selected and transformed at once, are transformed around their own individual centers.&lt;br /&gt;
&lt;br /&gt;
=== Translation ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse over central region of a bounding box&#039; face, or hold &#039;t&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Camera relative&lt;br /&gt;
| left-click + drag || Translates clicked on object along plane parallel to the screen.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to plane&lt;br /&gt;
| right-click + drag || Translates clicked on object along plane of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to line&lt;br /&gt;
| shift + right-click + drag || Translates clicked on object along normal of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! force decal(s) to map only one object/group&lt;br /&gt;
| hold i || selected decal will only map with that object that is directly underneath your mouse&lt;br /&gt;
|-&lt;br /&gt;
! force decal(s) to project only on selected objects&lt;br /&gt;
| press o || selected decal will only map with that object that is directly underneath your mouse&lt;br /&gt;
|-&lt;br /&gt;
! projection box/angle&lt;br /&gt;
| press p || to make projection box for decal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Scale ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse near bounding box corners, or hold &#039;e&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! All dimensions&lt;br /&gt;
| left-click + drag || Scales clicked on object in all dimensions (x, y, and z) at once.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to plane&lt;br /&gt;
| right-click + drag || Extends clicked on object along plane of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to line&lt;br /&gt;
| shift + right-click + drag || Extrudes clicked on object along normal of clicked on face.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mirror ===&lt;br /&gt;
&lt;br /&gt;
Just use the right-click scale tool, and scale down the object until it flips and its mirror image begins scaling up!&lt;br /&gt;
&lt;br /&gt;
=== Rotation ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse near bounding box edges but away from the corners, or hold &#039;r&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Free&lt;br /&gt;
| left-click + drag || Rotates clicked on object as if you are pushing the surface of a ball.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to axis&lt;br /&gt;
| right-click + drag || Rotates clicked on object about normal of clicked on face.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Editor/Debug Keys==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Toggle editor mode&lt;br /&gt;
| F1 || Enables level editor. Press again to exit.&lt;br /&gt;
|-&lt;br /&gt;
! Activate play mode&lt;br /&gt;
| 8 || Spawns you in the level so you can play it. If there already is a player character you will control that, otherwise a player character spawn is created on the editor camera automatically.&lt;br /&gt;
|-&lt;br /&gt;
! Restore characters&lt;br /&gt;
| X || Restores all characters on the level to full health, wakes up any &amp;quot;unconscious&amp;quot; ones, and removes all blood from the environment.&lt;br /&gt;
|-&lt;br /&gt;
! Reload level&lt;br /&gt;
| L || Restarts the current level.&lt;br /&gt;
|-&lt;br /&gt;
! Change character&lt;br /&gt;
| 1-7 || Changes the playable character into one of seven possible characters. 1 cycles through rabbit guard, bandit, and turner models, 2 cycles through civilian rabbit models, 3 cycles through cat models, 4 cycles through rat models, 5 cycles through wolves, 6 through dogs, and the seventh is Rabbot 2.0.&lt;br /&gt;
|-&lt;br /&gt;
! Active ragdoll&lt;br /&gt;
| Z || Puts player character into active ragdoll mode where they will try to protect themselves as they fall. Is active as long as you hold the button.&lt;br /&gt;
|-&lt;br /&gt;
! Pain ragdoll&lt;br /&gt;
| N || Makes the player fall to the ground in agony, until you let go of the button.&lt;br /&gt;
|-&lt;br /&gt;
! Floppy ragdoll&lt;br /&gt;
| M || Makes the player fall to the ground, limp, until the button is released.&lt;br /&gt;
|-&lt;br /&gt;
! Voice Test&lt;br /&gt;
| V || Plays a test voice.&lt;br /&gt;
|-&lt;br /&gt;
! Toggle combat AI&lt;br /&gt;
| C || Toggles whether the characters in the level will attack each other if they are on different teams.&lt;br /&gt;
|-&lt;br /&gt;
! Slit throat&lt;br /&gt;
| , || The controlled character suffers a neck wound with blood gushing from it.&lt;br /&gt;
|-&lt;br /&gt;
! Slow time&lt;br /&gt;
| Tab || Slows down the whole game.&lt;br /&gt;
|-&lt;br /&gt;
! Freeze time&lt;br /&gt;
| ` || Freezes the game. This is useful for posing characters for item placement. &#039;&#039;&#039;Note&#039;&#039;&#039;: The game must be unfrozen to change between controlling the player and editor mode. &lt;br /&gt;
|-&lt;br /&gt;
! Insta-kill&lt;br /&gt;
| F || Instantly kills and knocks back nearby NPC&#039;s with a death ray.&lt;br /&gt;
|-&lt;br /&gt;
! Experimental Key&lt;br /&gt;
| B || Makes you invisible.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debug Window ==&lt;br /&gt;
[[Image:Editor-selection-debug-info.png|right|thumb|caption|Debug window]]&lt;br /&gt;
Just below the top bar menu, on the left side, is a space for debug information.&lt;br /&gt;
&lt;br /&gt;
This window is only visible if you have the Debug Window enabled (&#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Debug Window&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
It will tell you information about the selected object, checkpoint progress (if checkpoints are enabled in this level), and a warning if the nav mesh needs to be updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Editor menu ==&lt;br /&gt;
The bar across the top of the window is the editor menu. Many editor functions can be found here, but some functions can only be reached via hotkeys for now.&lt;br /&gt;
&lt;br /&gt;
&#039;Cmd&#039; refers to the &#039;⌘&#039; key on Macs, and the &#039;ctrl&#039; key on PCs.&lt;br /&gt;
&lt;br /&gt;
=== File menu ===&lt;br /&gt;
Contains file operations for loading and saving levels.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-file-menu.png|right|thumb|caption|The editor &amp;quot;file&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! New Level&lt;br /&gt;
| - || Opens a new empty level in the editor.&lt;br /&gt;
|-&lt;br /&gt;
! Open Level...&lt;br /&gt;
| - || Opens a file browser where you can pick what level to load (starts in Data/Levels directory).&lt;br /&gt;
|-&lt;br /&gt;
! Open Local Level...&lt;br /&gt;
| - || Opens a file browser where you can pick what level to load (starts in last used directory).&lt;br /&gt;
|-&lt;br /&gt;
! Open Recent&lt;br /&gt;
| - || Re-open one of the most recently opened levels in the editor.&lt;br /&gt;
|-&lt;br /&gt;
! Open Campaign Level&lt;br /&gt;
| - || Open one of the levels from the main Overgrowth story mode.&lt;br /&gt;
|-&lt;br /&gt;
! Save Level&lt;br /&gt;
| cmd+s || Overwrites the currently opened level file with any changes you made.&lt;br /&gt;
|-&lt;br /&gt;
! Save As...&lt;br /&gt;
| - || Opens a file browser where you can pick a new or existing file to save the level to.&lt;br /&gt;
|-&lt;br /&gt;
! Back to main menu&lt;br /&gt;
| - || Leave the editor and return to the main menu.&lt;br /&gt;
|-&lt;br /&gt;
! Quit&lt;br /&gt;
| alt+f4 || Quit the game.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Edit menu ===&lt;br /&gt;
Contains basic editing functions. Also contains properties for the level.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-edit-menu.png|right|thumb|caption|The editor &amp;quot;edit&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Undo&lt;br /&gt;
| cmd+z || Undo the most recent action.&lt;br /&gt;
|-&lt;br /&gt;
! Redo&lt;br /&gt;
| cmd+shift+z || Redo the most recent action.&lt;br /&gt;
|-&lt;br /&gt;
! Cut&lt;br /&gt;
| cmd+x || Puts the selection into the clipboard and removes the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Copy&lt;br /&gt;
| cmd+c || Puts the selection into the clipboard.&lt;br /&gt;
|-&lt;br /&gt;
! Paste&lt;br /&gt;
| cmd+v || Pastes the clipboard on the cursor position.&lt;br /&gt;
|-&lt;br /&gt;
! Select All&lt;br /&gt;
| cmd+a || Select all of the objects in the level.&lt;br /&gt;
|-&lt;br /&gt;
! Deselect All&lt;br /&gt;
| q || Clear the current selection.&lt;br /&gt;
|-&lt;br /&gt;
! Reload All Prefabs&lt;br /&gt;
| - || Force a reload of all prefab objects in the level.&lt;br /&gt;
|-&lt;br /&gt;
! Set Level Params...&lt;br /&gt;
| - || Set global level parameters (sun settings, sky, fog, HDR, etc).&lt;br /&gt;
|-&lt;br /&gt;
! Set Level Script...&lt;br /&gt;
| - || Select what script to use for this level.&lt;br /&gt;
|-&lt;br /&gt;
! Set Sky Texture...&lt;br /&gt;
| - || Opens a file browser where you can pick what sky texture to use.&lt;br /&gt;
|-&lt;br /&gt;
! Edit static meshes&lt;br /&gt;
| cmd+1 || Toggle ability to select non-moving objects (rocks, etc).&lt;br /&gt;
|-&lt;br /&gt;
! Edit decals&lt;br /&gt;
| cmd+2 || Toggle ability to select decals.&lt;br /&gt;
|-&lt;br /&gt;
! Edit gameplay objects&lt;br /&gt;
| cmd+3 || Toggle ability to select characters, hotspots, etc.&lt;br /&gt;
|-&lt;br /&gt;
! Edit lighting&lt;br /&gt;
| - || Toggle ability to select lights.&lt;br /&gt;
|-&lt;br /&gt;
! Play level&lt;br /&gt;
| 8 || Enter play mode.&lt;br /&gt;
|-&lt;br /&gt;
! Media mode&lt;br /&gt;
| - || Enter a disembodied camera mode, for taking screenshots and videos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Selected menu ===&lt;br /&gt;
Contains operations for working with the current selected objects.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-selected-menu.png|right|thumb|caption|The editor &amp;quot;selected&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Go To Selected&lt;br /&gt;
| f || Move the camera to frame the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Delete&lt;br /&gt;
| backspace || Delete the selected objects from the level.&lt;br /&gt;
|-&lt;br /&gt;
! Group&lt;br /&gt;
| cmd+g || Merge the selected objects into a group.&lt;br /&gt;
|-&lt;br /&gt;
! Ungroup&lt;br /&gt;
| cmd+shift+g || Break up all groups that are selected.&lt;br /&gt;
|-&lt;br /&gt;
! Set Selection Script Params...&lt;br /&gt;
| - || Open up the selected object window, and expand the &amp;quot;Script Params&amp;quot; section for the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Save Selection...&lt;br /&gt;
| cmd+shift+s || Open up the file browser to save the selection as an object template.&lt;br /&gt;
Object templates can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a template, it won&#039;t be updated in any level it is placed in.&lt;br /&gt;
|-&lt;br /&gt;
! Prefab Save&lt;br /&gt;
| - || Save any changes to the selected prefab to a file, or create a new prefab file from the selection.&lt;br /&gt;
Object prefabs can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a prefab, it will automatically be updated in all levels it is placed in.&lt;br /&gt;
|-&lt;br /&gt;
! Prefab Save As...&lt;br /&gt;
| - || Open a file browser to save the selection as a new prefab file.&lt;br /&gt;
Object prefabs can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a prefab, it will automatically be updated in all levels it is placed in.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Load menu ===&lt;br /&gt;
Contains operations for loading and spawning objects into the level.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-load-menu.png|right|thumb|caption|The editor &amp;quot;load&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Load item...&lt;br /&gt;
| - || Open a file browser to pick an item to spawn in. After loading, click in the level to spawn the object.&lt;br /&gt;
|-&lt;br /&gt;
! Open recent...&lt;br /&gt;
| - || Pick an item you&#039;ve recently spawned to spawn another instance. After loading, click in the level to spawn the object.&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;Rest of menu&amp;gt;&lt;br /&gt;
| - || Search or click on an item from a list to spawn in. After loading, click in the level to spawn the object.&lt;br /&gt;
Hover over an item to see a thumbnail preview of the item.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nav Mesh menu ===&lt;br /&gt;
Tools for nav mesh generation, loading, saving and viewing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-navmesh-menu.png|right|thumb|caption|The editor &amp;quot;nav mesh&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Create&lt;br /&gt;
| - || Generates a new navigation mesh.&lt;br /&gt;
|-&lt;br /&gt;
! Save&lt;br /&gt;
| - || Save the current nav mesh to disk.&lt;br /&gt;
|-&lt;br /&gt;
! Load&lt;br /&gt;
| - || Load a previously saved nav mesh from disk.&lt;br /&gt;
|-&lt;br /&gt;
! View mesh&lt;br /&gt;
| - || Toggle preview render of the nav mesh.&lt;br /&gt;
|-&lt;br /&gt;
! View collision&lt;br /&gt;
| - || Toggle preview render of the collision mesh the nav mesh is based on.&lt;br /&gt;
|-&lt;br /&gt;
! View hints&lt;br /&gt;
| - || Toggle preview render of navmesh_hint objects (which are collision that is only visible to the nav mesh generator).&lt;br /&gt;
|-&lt;br /&gt;
! View region&lt;br /&gt;
| - || Toggle preview render of navmesh_region objects (which restricts mesh generation to within its volume).&lt;br /&gt;
|-&lt;br /&gt;
! View jump nodes&lt;br /&gt;
| - || Toggle preview render of navmesh_connection objects (jump nodes).&lt;br /&gt;
|-&lt;br /&gt;
! Cell Size&lt;br /&gt;
| - || Change the width of cells in the nav mesh&lt;br /&gt;
smaller: handles smaller gaps, slower to build.&lt;br /&gt;
|-&lt;br /&gt;
! Cell Height&lt;br /&gt;
| - || Change the height of cells in the nav mesh&lt;br /&gt;
smaller: finer control on ramps, slower to build.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Height&lt;br /&gt;
| - || Change the height of fake player used to create nav mesh&lt;br /&gt;
smaller: handles lower overhangs, more likely to be unreachable by real characters.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Radius&lt;br /&gt;
| - || Change the width of fake player used to create nav mesh&lt;br /&gt;
smaller: handles smaller gaps, more likely to be unreachable by real characters.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Max Climb&lt;br /&gt;
| - || Change the max height of blocks that fake player will climb to create nav mesh&lt;br /&gt;
too high: real characters can&#039;t climb it.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Max Slope&lt;br /&gt;
| - || Change the max angle of ramps that fake player will walk up to create nav mesh&lt;br /&gt;
too high: real characters will go up steep hills.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dialogue menu ===&lt;br /&gt;
Tools for [[dialogue]] editing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-dialogue-menu.png|right|thumb|caption|The editor &amp;quot;dialogue&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Edit Selected&lt;br /&gt;
| O || Start editing the selected dialogue (make sure you select it first!).&lt;br /&gt;
|-&lt;br /&gt;
! Load Dialogue&lt;br /&gt;
| - || Load a previously saved dialogue text file.&lt;br /&gt;
|-&lt;br /&gt;
! New Dialogue&lt;br /&gt;
| - || Create a new dialogue object (click this, then click to place it in the level).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Windows menu ===&lt;br /&gt;
Launch various editor windows, color picker, and debug windows.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-windows-menu.png|right|thumb|caption|The editor &amp;quot;windows&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Scenegraph&lt;br /&gt;
| y || Open level properties, and a searchable list of items in the level.&lt;br /&gt;
Hint: Click items in the list to select/deselect them, and hit F to view the selected items.&lt;br /&gt;
|-&lt;br /&gt;
! Selected&lt;br /&gt;
| u || Open the properties for the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Single Selected&lt;br /&gt;
| i || Open the properties for a single selected object. This menu doesn&#039;t require you to drill down to edit properties.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Color_Picker|Color Picker]]&lt;br /&gt;
| cmd+p || Open the Color Picker to let you tint objects.&lt;br /&gt;
|-&lt;br /&gt;
! [[Collision Painting|Collision Paint]]&lt;br /&gt;
| - || Open the Collision Paint menu to let you edit physics properties on objects or individual surfaces.&lt;br /&gt;
|-&lt;br /&gt;
! Performance&lt;br /&gt;
| - || Open a window to monitor performance, and view a list of loaded file assets/loaded textures, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Save&lt;br /&gt;
| - || Open a window to view data in the save file, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! State&lt;br /&gt;
| - || Open a window to view a hierarchy of loaded script contexts, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Sound&lt;br /&gt;
| - || Open a window to view a list of loaded sounds, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Debug Window&lt;br /&gt;
| - || Open a window to view debug text (shows various game and editor state).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Functions Without Buttons ==&lt;br /&gt;
Some functions are only reachable via hotkeys, here are a list of those.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Make player-controlled&lt;br /&gt;
| Shift+Cmd+P || Toggles whether a character is controlled by a human or by AI. A human-controlled character&#039;s spawn box has a green outline, an AI-controlled character&#039;s box has white outlines. If two characters are set to be human-controlled Overgrowth will start in split-screen mode the next time game-play is resumed from editor mode. The second player will be controllable via a USB controller.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Spawn_Dead|Spawn Dead]]&lt;br /&gt;
| Cmd+K or Ctrl+K (with character spawn selected) || Makes selected characters spawn dead. It will spawn at the point it went into ragdoll mode (which may cause it to spawn &amp;quot;dead&amp;quot; while standing up). If you want to update the pose for the dead body then move the body, select the spawn point, and hit the hotkey again to save its new position.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Spawn_Alive|Spawn Alive]]&lt;br /&gt;
| K (with character spawn selected) || Makes selected characters spawn alive.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
Every object as well as the level itself has several parameters. The most basic ones that all objects have are &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;Translation&#039;&#039;&#039;, &#039;&#039;&#039;Scale&#039;&#039;&#039; and &#039;&#039;&#039;Rotation&#039;&#039;&#039;. Other parameters you might find on an object are color tints and [[Script Parameters]].&lt;br /&gt;
&lt;br /&gt;
There are several ways to edit these parameters for an object. The fastest and easiest way to do it for a single object is by using the &#039;&#039;&#039;Single Selected&#039;&#039;&#039; window (press I to open it), which shows all of the parameters for the most recently selected object.&lt;br /&gt;
&lt;br /&gt;
If you want to view or edit the parameters of several specific objects you can use the [[#Selected Window|Selected Window]].&lt;br /&gt;
&lt;br /&gt;
To view and edit parameters for all the objects in the level, as well as the parameters for the level itself, use the [[#Scenegraph Window|Scenegraph Window]].&lt;br /&gt;
&lt;br /&gt;
== Selected Window ==&lt;br /&gt;
[[Image:Editor-selection-windows.png|right|thumb|caption|Selected Window (object parameters)]]&lt;br /&gt;
&lt;br /&gt;
The Selected Window (or parameter editor) lets you change different parameters depending on which objects you have selected.&lt;br /&gt;
&lt;br /&gt;
You can bring up the parameter editor for an object (or set of objects) by selecting them and pressing the U key, or clicking Top Bar -&amp;gt; Windows -&amp;gt; Selected.&lt;br /&gt;
&lt;br /&gt;
Here is a description of what each parameter does:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
| Give an object a custom name, so you can find it in the scenegraph window (see below), or let a custom script find those objects so they can do special things to them.&lt;br /&gt;
|-&lt;br /&gt;
! Transform&lt;br /&gt;
| Adjust the position, rotation, and scale of the objects manually. There is also a button to reset the rotation (which is useful when creating object prefabs).&lt;br /&gt;
|-&lt;br /&gt;
! Color Palette&lt;br /&gt;
| Tint objects, or make them super bright. If the character provides a mutli-part color palette, set different colors on different parts.&lt;br /&gt;
|-&lt;br /&gt;
! Script Params&lt;br /&gt;
| Custom parameters used by scripts. Each different object type can define their own script params. See [[Script Parameters]] page for descriptions of all parameters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scenegraph Window ==&lt;br /&gt;
[[Image:Editor-scenegraph-window.png|right|thumb|caption|Scenegraph Window (level parameters)]]&lt;br /&gt;
&lt;br /&gt;
The Scenegraph Window (or parameter editor) lets you change global level parameters, as well as find objects in the level.&lt;br /&gt;
&lt;br /&gt;
Open up the Scenegraph for the current level by pressing the Y key, or clicking Top Bar -&amp;gt; Windows -&amp;gt; Scenegraph. Let&#039;s go through each part of the Scenegraph window from top to bottom.&lt;br /&gt;
&lt;br /&gt;
=== Level ===&lt;br /&gt;
If you expand the &#039;&#039;&#039;Level&#039;&#039;&#039; entry at the very top of the window you will find some parameters that can be changed:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Loading Screen Image&lt;br /&gt;
| A path to an image that&#039;s shown while loading the level&lt;br /&gt;
|-&lt;br /&gt;
! Sun Position&lt;br /&gt;
| The position of the sun in the sky&lt;br /&gt;
|-&lt;br /&gt;
! Sun Color&lt;br /&gt;
| Tints the color of the sun, useful for sunrises and sunsets&lt;br /&gt;
|-&lt;br /&gt;
! Sun Intensity&lt;br /&gt;
| Controls how dark the shadows are&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For a description of the level script parameters, see the [[Script Parameters]] page.&lt;br /&gt;
&lt;br /&gt;
=== Search field ===&lt;br /&gt;
Below the &#039;&#039;&#039;Level&#039;&#039;&#039; entry at the very top there is a search field. Write in this field to search for objects in the level. This searches in many of the objects&#039; fields. You can for instance search for something written in the &#039;&#039;&#039;Name&#039;&#039;&#039; parameter of an object, object IDs, object paths, types and more.&lt;br /&gt;
&lt;br /&gt;
=== Flat ===&lt;br /&gt;
The &#039;&#039;&#039;Flat&#039;&#039;&#039; checkbox controls how the Scenegraph list is displayed.&lt;br /&gt;
&lt;br /&gt;
If it&#039;s not checked you can expand groups to see the relations between objects in the graph.&lt;br /&gt;
&lt;br /&gt;
If it&#039;s checked you can no longer see group relationships, but you can instead expand each individual object to change any parameters associated with it.&lt;br /&gt;
&lt;br /&gt;
=== Named Only ===&lt;br /&gt;
If this is checked the Scenegraph list with only display objects that have been named. You can name an object by selecting it, bringing up the &#039;&#039;&#039;Single Selected&#039;&#039;&#039; window by pressing I, and then writing something in the &#039;&#039;&#039;Name&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
== Color Picker ==&lt;br /&gt;
[[Image:Editor-new-color-picker.png|right|thumb|caption|A crete block with its color altered by the color picker.]]&lt;br /&gt;
The Color Picker is used to tint the color of selected objects.&lt;br /&gt;
&lt;br /&gt;
It is opened by pressing cmd+p, or Top Bar -&amp;gt; Windows -&amp;gt; ColorPicker.&lt;br /&gt;
&lt;br /&gt;
The color picker consists of a color-gradient box, a rainbow slider, the RGB values, and an overbrightness slider. Increasing overbrightness makes the color brighter, and makes it glow in the dark.&lt;br /&gt;
&lt;br /&gt;
For characters, the color picker will let you set the color of different parts of the character. This is only available if the character was built to support a multi-color palette (not all of them do).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039;: Update screenshot on the right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sun Editor ==&lt;br /&gt;
[[Image:Sun_editor.jpg|right|thumb|caption|The sun editor]]&lt;br /&gt;
&lt;br /&gt;
The sun allows you to cast dynamic, single-directional light throughout a level.&amp;lt;br&amp;gt;&lt;br /&gt;
You can use it to simulate either a sun (more direct light) or a moon (more ambient light)&lt;br /&gt;
&lt;br /&gt;
See [[Lighting#Sunlight|the documentation on the lighting page]] for more information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dialogue Editor ==&lt;br /&gt;
&lt;br /&gt;
The [[Dialogue Editor]] is used to create scenes with different camera angles, text and poses. It is commonly used to give context and progress the story in a level.&lt;br /&gt;
&lt;br /&gt;
This is a big enough subject to warrant its own article, which can be found [[Dialogue Editor|here]].&lt;br /&gt;
&lt;br /&gt;
== Spawn Corpse ==&lt;br /&gt;
Sometimes you want to have a dead character in your level. The obvious solution would be to export a new model of a dead character and place it in the level. However, that&#039;s a lot of work, and the character wouldn&#039;t be dynamic, and it would take a lot of work to make changes to it.&lt;br /&gt;
&lt;br /&gt;
Luckily there is a system in the engine for making any character spawn as a corpse. Here are instructions for how to use that system:&lt;br /&gt;
&lt;br /&gt;
[[Image:spawn_corpse.jpg|right|thumb|caption|Making a corpse]]&lt;br /&gt;
# Spawn the character you want to spawn as a corpse.&lt;br /&gt;
# Select its spawn box and press cmd or ctrl + K to make it spawn as a corpse, which will kill it. At this point the corpse will spawn standing up when you restart the level with L, we&#039;ll fix that in the following steps.&lt;br /&gt;
# Enter play mode by pressing 8, go close to the corpse and hold right click to drag it around until you&#039;re satisfied with the pose.&lt;br /&gt;
# Now exit play mode by pressing escape, select the character&#039;s spawn box and press cmd+K again to update the pose of the corpse.&lt;br /&gt;
# Press L to restart the level and verify that it worked.&lt;br /&gt;
&lt;br /&gt;
If you want to make a corpse to spawn alive again, select its spawn point and press K.&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Editor_Interface&amp;diff=6132</id>
		<title>Editor Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Editor_Interface&amp;diff=6132"/>
		<updated>2023-05-18T03:25:06Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Object Selection */ Included Q bind&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor_Overview.png|right|600px|thumb|caption|The Overgrowth level editor]]&lt;br /&gt;
This page details all the interface elements and actions in the Overgrowth level editor.&lt;br /&gt;
&lt;br /&gt;
The level editor lets you create new levels or even whole campaigns. This is the same editor we used to make the Overgrowth and Lugaru stories.&lt;br /&gt;
&lt;br /&gt;
You can use the level editor to edit any existing level in the game.&lt;br /&gt;
&lt;br /&gt;
== Activating the editor ==&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|eS3RujmDQ2M&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Level editor basics&lt;br /&gt;
|frame&lt;br /&gt;
|start=15&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== To activate the editor: ====&lt;br /&gt;
* Create a new level (&#039;&#039;&#039;File&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;New&#039;&#039;&#039;)&lt;br /&gt;
* Open an existing level and press &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the editor is active while playing a level, you can open up the editor window again by pressing the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;Esc&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; key.&lt;br /&gt;
&lt;br /&gt;
You can deactivate the editor by hitting &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; a second time.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting: ====&lt;br /&gt;
If you can&#039;t get the editor to activate, there are a few things you can try:&lt;br /&gt;
* If you have a laptop, try holding the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;fn&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; key while pressing &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;&lt;br /&gt;
* Mash all the modifier keys a few times to make sure they&#039;re not stuck down - &amp;lt;kbd&amp;gt;&#039;&#039;&#039;ctrl&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;alt&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;shift&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;&#039;&#039;&#039;command&#039;&#039;&#039;&amp;lt;/kbd&amp;gt;, etc&lt;br /&gt;
* Make sure you have all other programs closed, in case one of them is conflicting with the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; hotkey&lt;br /&gt;
* If some &amp;quot;Help&amp;quot; program comes up when you hit &amp;lt;kbd&amp;gt;&#039;&#039;&#039;F1&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; (such as &amp;quot;HP Help&amp;quot;), edit its settings to disable the hotkey.&amp;lt;br&amp;gt;Or just &#039;&#039;uninstall it&#039;&#039; (because it is bloatware)&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Camera Movement ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! W&lt;br /&gt;
| Moves camera forward&lt;br /&gt;
|-&lt;br /&gt;
! S&lt;br /&gt;
| Moves camera backward&lt;br /&gt;
|-&lt;br /&gt;
! A&lt;br /&gt;
| Moves camera left&lt;br /&gt;
|-&lt;br /&gt;
! D&lt;br /&gt;
| Moves camera right&lt;br /&gt;
|-&lt;br /&gt;
! Shift + W&lt;br /&gt;
| Moves camera up&lt;br /&gt;
|-&lt;br /&gt;
! Shift + S&lt;br /&gt;
| Moves camera down&lt;br /&gt;
|-&lt;br /&gt;
! Left click and drag&lt;br /&gt;
| Rotates the camera&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Object Selection ==&lt;br /&gt;
&lt;br /&gt;
Here are the different ways you can select objects.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Select single object&lt;br /&gt;
| double-left-click on object || Selects clicked on object and deselects all other objects. If the object is part of a group, the whole group is selected. A box around the object indicates that it is selected.&lt;br /&gt;
|-&lt;br /&gt;
! Toggle-select objects&lt;br /&gt;
| shift + double-left-click on objects || Toggles selection of clicked on object. Preserves existing selections.&lt;br /&gt;
|-&lt;br /&gt;
! Box select objects&lt;br /&gt;
| left-click + right-click + drag, or left-click + &#039;b&#039; + drag || Selects all objects whose centers lie within box drawn on screen. Deselects all other objects.&lt;br /&gt;
|-&lt;br /&gt;
! Box add to selection&lt;br /&gt;
| shift + left-click + right-click + drag, or shift + left-click + &#039;b&#039; + drag || Adds all objects whose centers lie within the drawn box to the selection. Preserves existing selection.&lt;br /&gt;
|-&lt;br /&gt;
! Select decal or object that is under another decal&lt;br /&gt;
| mouse wheel up/down || When you have 2 or more objects or decals on top of each other, you can select at least 1 decal or object, put your mouse cursor on top of the one you want to select, then use the scroll wheel to switch your selection between the objects.&lt;br /&gt;
|-&lt;br /&gt;
! Select all&lt;br /&gt;
| cmd-a || Selects all objects.&lt;br /&gt;
|-&lt;br /&gt;
! Deselect all&lt;br /&gt;
| double-left-click away from all objects, or press Q || Deselects all objects.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-selection-debug-info.png|right|thumb|caption|Debug window]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: &#039;&#039;&#039; If the Debug window is open (&#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Debug Window&#039;&#039;&#039;), then when you select an object some useful information will appear. It shows you what xml file the object is created from, its unique object id, and what type of object it is.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transformations ==&lt;br /&gt;
&lt;br /&gt;
For all transformations:&lt;br /&gt;
&lt;br /&gt;
* In order to transform an object you must first select it.&lt;br /&gt;
* Hold ctrl to make movements snap to half-meter increments.&lt;br /&gt;
* Hold alt to clone and transform the selected objects, leaving the original objects behind.&lt;br /&gt;
* Left-click transforms objects on all axis. Right-click transforms on the two axis that are perpendicular to the side of the bounding box you click on. Holding shift and right click locks the transformation to the axis parallel to the bounding box face you click on.&lt;br /&gt;
* Groups are transformed around the group center. Ungrouped objects, even if multiple are selected and transformed at once, are transformed around their own individual centers.&lt;br /&gt;
&lt;br /&gt;
=== Translation ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse over central region of a bounding box&#039; face, or hold &#039;t&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Camera relative&lt;br /&gt;
| left-click + drag || Translates clicked on object along plane parallel to the screen.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to plane&lt;br /&gt;
| right-click + drag || Translates clicked on object along plane of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to line&lt;br /&gt;
| shift + right-click + drag || Translates clicked on object along normal of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! force decal(s) to map only one object/group&lt;br /&gt;
| hold i || selected decal will only map with that object that is directly underneath your mouse&lt;br /&gt;
|-&lt;br /&gt;
! force decal(s) to project only on selected objects&lt;br /&gt;
| press o || selected decal will only map with that object that is directly underneath your mouse&lt;br /&gt;
|-&lt;br /&gt;
! projection box/angle&lt;br /&gt;
| press p || to make projection box for decal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Scale ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse near bounding box corners, or hold &#039;e&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! All dimensions&lt;br /&gt;
| left-click + drag || Scales clicked on object in all dimensions (x, y, and z) at once.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to plane&lt;br /&gt;
| right-click + drag || Extends clicked on object along plane of clicked on face.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to line&lt;br /&gt;
| shift + right-click + drag || Extrudes clicked on object along normal of clicked on face.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mirror ===&lt;br /&gt;
&lt;br /&gt;
Just use the right-click scale tool, and scale down the object until it flips and its mirror image begins scaling up!&lt;br /&gt;
&lt;br /&gt;
=== Rotation ===&lt;br /&gt;
&lt;br /&gt;
Hover mouse near bounding box edges but away from the corners, or hold &#039;r&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Free&lt;br /&gt;
| left-click + drag || Rotates clicked on object as if you are pushing the surface of a ball.&lt;br /&gt;
|-&lt;br /&gt;
! Locked to axis&lt;br /&gt;
| right-click + drag || Rotates clicked on object about normal of clicked on face.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Editor/Debug Keys==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Toggle editor mode&lt;br /&gt;
| F1 || Enables level editor. Press again to exit.&lt;br /&gt;
|-&lt;br /&gt;
! Activate play mode&lt;br /&gt;
| 8 || Spawns you in the level so you can play it. If there already is a player character you will control that, otherwise a player character spawn is created on the editor camera automatically.&lt;br /&gt;
|-&lt;br /&gt;
! Restore characters&lt;br /&gt;
| X || Restores all characters on the level to full health, wakes up any &amp;quot;unconscious&amp;quot; ones, and removes all blood from the environment.&lt;br /&gt;
|-&lt;br /&gt;
! Reload level&lt;br /&gt;
| L || Restarts the current level.&lt;br /&gt;
|-&lt;br /&gt;
! Change character&lt;br /&gt;
| 1-7 || Changes the playable character into one of seven possible characters. 1 cycles through rabbit guard, bandit, and turner models, 2 cycles through civilian rabbit models, 3 cycles through cat models, 4 cycles through rat models, 5 cycles through wolves, 6 through dogs, and the seventh is Rabbot 2.0.&lt;br /&gt;
|-&lt;br /&gt;
! Active ragdoll&lt;br /&gt;
| Z || Puts player character into active ragdoll mode where they will try to protect themselves as they fall. Is active as long as you hold the button.&lt;br /&gt;
|-&lt;br /&gt;
! Pain ragdoll&lt;br /&gt;
| N || Makes the player fall to the ground in agony, until you let go of the button.&lt;br /&gt;
|-&lt;br /&gt;
! Floppy ragdoll&lt;br /&gt;
| M || Makes the player fall to the ground, limp, until the button is released.&lt;br /&gt;
|-&lt;br /&gt;
! Voice Test&lt;br /&gt;
| V || Plays a test voice.&lt;br /&gt;
|-&lt;br /&gt;
! Toggle combat AI&lt;br /&gt;
| C || Toggles whether the characters in the level will attack each other if they are on different teams.&lt;br /&gt;
|-&lt;br /&gt;
! Slit throat&lt;br /&gt;
| , || The controlled character suffers a neck wound with blood gushing from it.&lt;br /&gt;
|-&lt;br /&gt;
! Slow time&lt;br /&gt;
| Tab || Slows down the whole game.&lt;br /&gt;
|-&lt;br /&gt;
! Freeze time&lt;br /&gt;
| ` || Freezes the game. This is useful for posing characters for item placement. &#039;&#039;&#039;Note&#039;&#039;&#039;: The game must be unfrozen to change between controlling the player and editor mode. &lt;br /&gt;
|-&lt;br /&gt;
! Insta-kill&lt;br /&gt;
| F || Instantly kills and knocks back nearby NPC&#039;s with a death ray.&lt;br /&gt;
|-&lt;br /&gt;
! Experimental Key&lt;br /&gt;
| B || Makes you invisible.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debug Window ==&lt;br /&gt;
[[Image:Editor-selection-debug-info.png|right|thumb|caption|Debug window]]&lt;br /&gt;
Just below the top bar menu, on the left side, is a space for debug information.&lt;br /&gt;
&lt;br /&gt;
This window is only visible if you have the Debug Window enabled (&#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Windows&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Debug Window&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
It will tell you information about the selected object, checkpoint progress (if checkpoints are enabled in this level), and a warning if the nav mesh needs to be updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Editor menu ==&lt;br /&gt;
The bar across the top of the window is the editor menu. Many editor functions can be found here, but some functions can only be reached via hotkeys for now.&lt;br /&gt;
&lt;br /&gt;
&#039;Cmd&#039; refers to the &#039;⌘&#039; key on Macs, and the &#039;ctrl&#039; key on PCs.&lt;br /&gt;
&lt;br /&gt;
=== File menu ===&lt;br /&gt;
Contains file operations for loading and saving levels.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-file-menu.png|right|thumb|caption|The editor &amp;quot;file&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! New Level&lt;br /&gt;
| - || Opens a new empty level in the editor.&lt;br /&gt;
|-&lt;br /&gt;
! Open Level...&lt;br /&gt;
| - || Opens a file browser where you can pick what level to load (starts in Data/Levels directory).&lt;br /&gt;
|-&lt;br /&gt;
! Open Local Level...&lt;br /&gt;
| - || Opens a file browser where you can pick what level to load (starts in last used directory).&lt;br /&gt;
|-&lt;br /&gt;
! Open Recent&lt;br /&gt;
| - || Re-open one of the most recently opened levels in the editor.&lt;br /&gt;
|-&lt;br /&gt;
! Open Campaign Level&lt;br /&gt;
| - || Open one of the levels from the main Overgrowth story mode.&lt;br /&gt;
|-&lt;br /&gt;
! Save Level&lt;br /&gt;
| cmd+s || Overwrites the currently opened level file with any changes you made.&lt;br /&gt;
|-&lt;br /&gt;
! Save As...&lt;br /&gt;
| - || Opens a file browser where you can pick a new or existing file to save the level to.&lt;br /&gt;
|-&lt;br /&gt;
! Back to main menu&lt;br /&gt;
| - || Leave the editor and return to the main menu.&lt;br /&gt;
|-&lt;br /&gt;
! Quit&lt;br /&gt;
| alt+f4 || Quit the game.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Edit menu ===&lt;br /&gt;
Contains basic editing functions. Also contains properties for the level.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-edit-menu.png|right|thumb|caption|The editor &amp;quot;edit&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Undo&lt;br /&gt;
| cmd+z || Undo the most recent action.&lt;br /&gt;
|-&lt;br /&gt;
! Redo&lt;br /&gt;
| cmd+shift+z || Redo the most recent action.&lt;br /&gt;
|-&lt;br /&gt;
! Cut&lt;br /&gt;
| cmd+x || Puts the selection into the clipboard and removes the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Copy&lt;br /&gt;
| cmd+c || Puts the selection into the clipboard.&lt;br /&gt;
|-&lt;br /&gt;
! Paste&lt;br /&gt;
| cmd+v || Pastes the clipboard on the cursor position.&lt;br /&gt;
|-&lt;br /&gt;
! Select All&lt;br /&gt;
| cmd+a || Select all of the objects in the level.&lt;br /&gt;
|-&lt;br /&gt;
! Deselect All&lt;br /&gt;
| q || Clear the current selection.&lt;br /&gt;
|-&lt;br /&gt;
! Reload All Prefabs&lt;br /&gt;
| - || Force a reload of all prefab objects in the level.&lt;br /&gt;
|-&lt;br /&gt;
! Set Level Params...&lt;br /&gt;
| - || Set global level parameters (sun settings, sky, fog, HDR, etc).&lt;br /&gt;
|-&lt;br /&gt;
! Set Level Script...&lt;br /&gt;
| - || Select what script to use for this level.&lt;br /&gt;
|-&lt;br /&gt;
! Set Sky Texture...&lt;br /&gt;
| - || Opens a file browser where you can pick what sky texture to use.&lt;br /&gt;
|-&lt;br /&gt;
! Edit static meshes&lt;br /&gt;
| cmd+1 || Toggle ability to select non-moving objects (rocks, etc).&lt;br /&gt;
|-&lt;br /&gt;
! Edit decals&lt;br /&gt;
| cmd+2 || Toggle ability to select decals.&lt;br /&gt;
|-&lt;br /&gt;
! Edit gameplay objects&lt;br /&gt;
| cmd+3 || Toggle ability to select characters, hotspots, etc.&lt;br /&gt;
|-&lt;br /&gt;
! Edit lighting&lt;br /&gt;
| - || Toggle ability to select lights.&lt;br /&gt;
|-&lt;br /&gt;
! Play level&lt;br /&gt;
| 8 || Enter play mode.&lt;br /&gt;
|-&lt;br /&gt;
! Media mode&lt;br /&gt;
| - || Enter a disembodied camera mode, for taking screenshots and videos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Selected menu ===&lt;br /&gt;
Contains operations for working with the current selected objects.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-selected-menu.png|right|thumb|caption|The editor &amp;quot;selected&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Go To Selected&lt;br /&gt;
| f || Move the camera to frame the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Delete&lt;br /&gt;
| backspace || Delete the selected objects from the level.&lt;br /&gt;
|-&lt;br /&gt;
! Group&lt;br /&gt;
| cmd+g || Merge the selected objects into a group.&lt;br /&gt;
|-&lt;br /&gt;
! Ungroup&lt;br /&gt;
| cmd+shift+g || Break up all groups that are selected.&lt;br /&gt;
|-&lt;br /&gt;
! Set Selection Script Params...&lt;br /&gt;
| - || Open up the selected object window, and expand the &amp;quot;Script Params&amp;quot; section for the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Save Selection...&lt;br /&gt;
| cmd+shift+s || Open up the file browser to save the selection as an object template.&lt;br /&gt;
Object templates can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a template, it won&#039;t be updated in any level it is placed in.&lt;br /&gt;
|-&lt;br /&gt;
! Prefab Save&lt;br /&gt;
| - || Save any changes to the selected prefab to a file, or create a new prefab file from the selection.&lt;br /&gt;
Object prefabs can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a prefab, it will automatically be updated in all levels it is placed in.&lt;br /&gt;
|-&lt;br /&gt;
! Prefab Save As...&lt;br /&gt;
| - || Open a file browser to save the selection as a new prefab file.&lt;br /&gt;
Object prefabs can be loaded like any other object. Script params, transform, and connections are saved.&lt;br /&gt;
If you save over a prefab, it will automatically be updated in all levels it is placed in.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Load menu ===&lt;br /&gt;
Contains operations for loading and spawning objects into the level.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-load-menu.png|right|thumb|caption|The editor &amp;quot;load&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Load item...&lt;br /&gt;
| - || Open a file browser to pick an item to spawn in. After loading, click in the level to spawn the object.&lt;br /&gt;
|-&lt;br /&gt;
! Open recent...&lt;br /&gt;
| - || Pick an item you&#039;ve recently spawned to spawn another instance. After loading, click in the level to spawn the object.&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;Rest of menu&amp;gt;&lt;br /&gt;
| - || Search or click on an item from a list to spawn in. After loading, click in the level to spawn the object.&lt;br /&gt;
Hover over an item to see a thumbnail preview of the item.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nav Mesh menu ===&lt;br /&gt;
Tools for nav mesh generation, loading, saving and viewing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-navmesh-menu.png|right|thumb|caption|The editor &amp;quot;nav mesh&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Create&lt;br /&gt;
| - || Generates a new navigation mesh.&lt;br /&gt;
|-&lt;br /&gt;
! Save&lt;br /&gt;
| - || Save the current nav mesh to disk.&lt;br /&gt;
|-&lt;br /&gt;
! Load&lt;br /&gt;
| - || Load a previously saved nav mesh from disk.&lt;br /&gt;
|-&lt;br /&gt;
! View mesh&lt;br /&gt;
| - || Toggle preview render of the nav mesh.&lt;br /&gt;
|-&lt;br /&gt;
! View collision&lt;br /&gt;
| - || Toggle preview render of the collision mesh the nav mesh is based on.&lt;br /&gt;
|-&lt;br /&gt;
! View hints&lt;br /&gt;
| - || Toggle preview render of navmesh_hint objects (which are collision that is only visible to the nav mesh generator).&lt;br /&gt;
|-&lt;br /&gt;
! View region&lt;br /&gt;
| - || Toggle preview render of navmesh_region objects (which restricts mesh generation to within its volume).&lt;br /&gt;
|-&lt;br /&gt;
! View jump nodes&lt;br /&gt;
| - || Toggle preview render of navmesh_connection objects (jump nodes).&lt;br /&gt;
|-&lt;br /&gt;
! Cell Size&lt;br /&gt;
| - || Change the width of cells in the nav mesh&lt;br /&gt;
smaller: handles smaller gaps, slower to build.&lt;br /&gt;
|-&lt;br /&gt;
! Cell Height&lt;br /&gt;
| - || Change the height of cells in the nav mesh&lt;br /&gt;
smaller: finer control on ramps, slower to build.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Height&lt;br /&gt;
| - || Change the height of fake player used to create nav mesh&lt;br /&gt;
smaller: handles lower overhangs, more likely to be unreachable by real characters.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Radius&lt;br /&gt;
| - || Change the width of fake player used to create nav mesh&lt;br /&gt;
smaller: handles smaller gaps, more likely to be unreachable by real characters.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Max Climb&lt;br /&gt;
| - || Change the max height of blocks that fake player will climb to create nav mesh&lt;br /&gt;
too high: real characters can&#039;t climb it.&lt;br /&gt;
|-&lt;br /&gt;
! Agent Max Slope&lt;br /&gt;
| - || Change the max angle of ramps that fake player will walk up to create nav mesh&lt;br /&gt;
too high: real characters will go up steep hills.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dialogue menu ===&lt;br /&gt;
Tools for [[dialogue]] editing.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-dialogue-menu.png|right|thumb|caption|The editor &amp;quot;dialogue&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Edit Selected&lt;br /&gt;
| - || Start editing the selected dialogue (make sure you select it first!).&lt;br /&gt;
|-&lt;br /&gt;
! Load Dialogue&lt;br /&gt;
| - || Load a previously saved dialogue text file.&lt;br /&gt;
|-&lt;br /&gt;
! New Dialogue&lt;br /&gt;
| - || Create a new dialogue object (click this, then click to place it in the level).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Windows menu ===&lt;br /&gt;
Launch various editor windows, color picker, and debug windows.&lt;br /&gt;
&lt;br /&gt;
[[Image:Editor-windows-menu.png|right|thumb|caption|The editor &amp;quot;windows&amp;quot; menu]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Button !! Hotkey !! Effect&lt;br /&gt;
|-&lt;br /&gt;
! Scenegraph&lt;br /&gt;
| y || Open level properties, and a searchable list of items in the level.&lt;br /&gt;
Hint: Click items in the list to select/deselect them, and hit F to view the selected items.&lt;br /&gt;
|-&lt;br /&gt;
! Selected&lt;br /&gt;
| u || Open the properties for the selected objects.&lt;br /&gt;
|-&lt;br /&gt;
! Single Selected&lt;br /&gt;
| i || Open the properties for a single selected object. This menu doesn&#039;t require you to drill down to edit properties.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Color_Picker|Color Picker]]&lt;br /&gt;
| cmd+p || Open the Color Picker to let you tint objects.&lt;br /&gt;
|-&lt;br /&gt;
! [[Collision Painting|Collision Paint]]&lt;br /&gt;
| - || Open the Collision Paint menu to let you edit physics properties on objects or individual surfaces.&lt;br /&gt;
|-&lt;br /&gt;
! Performance&lt;br /&gt;
| - || Open a window to monitor performance, and view a list of loaded file assets/loaded textures, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Save&lt;br /&gt;
| - || Open a window to view data in the save file, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! State&lt;br /&gt;
| - || Open a window to view a hierarchy of loaded script contexts, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Sound&lt;br /&gt;
| - || Open a window to view a list of loaded sounds, for debugging.&lt;br /&gt;
|-&lt;br /&gt;
! Debug Window&lt;br /&gt;
| - || Open a window to view debug text (shows various game and editor state).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Functions Without Buttons ==&lt;br /&gt;
Some functions are only reachable via hotkeys, here are a list of those.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action !! Control !! Behavior&lt;br /&gt;
|-&lt;br /&gt;
! Make player-controlled&lt;br /&gt;
| Shift+Cmd+P || Toggles whether a character is controlled by a human or by AI. A human-controlled character&#039;s spawn box has a green outline, an AI-controlled character&#039;s box has white outlines. If two characters are set to be human-controlled Overgrowth will start in split-screen mode the next time game-play is resumed from editor mode. The second player will be controllable via a USB controller.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Spawn_Dead|Spawn Dead]]&lt;br /&gt;
| Cmd+K or Ctrl+K (with character spawn selected) || Makes selected characters spawn dead. It will spawn at the point it went into ragdoll mode (which may cause it to spawn &amp;quot;dead&amp;quot; while standing up). If you want to update the pose for the dead body then move the body, select the spawn point, and hit the hotkey again to save its new position.&lt;br /&gt;
|-&lt;br /&gt;
! [[#Spawn_Alive|Spawn Alive]]&lt;br /&gt;
| K (with character spawn selected) || Makes selected characters spawn alive.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
Every object as well as the level itself has several parameters. The most basic ones that all objects have are &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;Translation&#039;&#039;&#039;, &#039;&#039;&#039;Scale&#039;&#039;&#039; and &#039;&#039;&#039;Rotation&#039;&#039;&#039;. Other parameters you might find on an object are color tints and [[Script Parameters]].&lt;br /&gt;
&lt;br /&gt;
There are several ways to edit these parameters for an object. The fastest and easiest way to do it for a single object is by using the &#039;&#039;&#039;Single Selected&#039;&#039;&#039; window (press I to open it), which shows all of the parameters for the most recently selected object.&lt;br /&gt;
&lt;br /&gt;
If you want to view or edit the parameters of several specific objects you can use the [[#Selected Window|Selected Window]].&lt;br /&gt;
&lt;br /&gt;
To view and edit parameters for all the objects in the level, as well as the parameters for the level itself, use the [[#Scenegraph Window|Scenegraph Window]].&lt;br /&gt;
&lt;br /&gt;
== Selected Window ==&lt;br /&gt;
[[Image:Editor-selection-windows.png|right|thumb|caption|Selected Window (object parameters)]]&lt;br /&gt;
&lt;br /&gt;
The Selected Window (or parameter editor) lets you change different parameters depending on which objects you have selected.&lt;br /&gt;
&lt;br /&gt;
You can bring up the parameter editor for an object (or set of objects) by selecting them and pressing the U key, or clicking Top Bar -&amp;gt; Windows -&amp;gt; Selected.&lt;br /&gt;
&lt;br /&gt;
Here is a description of what each parameter does:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
| Give an object a custom name, so you can find it in the scenegraph window (see below), or let a custom script find those objects so they can do special things to them.&lt;br /&gt;
|-&lt;br /&gt;
! Transform&lt;br /&gt;
| Adjust the position, rotation, and scale of the objects manually. There is also a button to reset the rotation (which is useful when creating object prefabs).&lt;br /&gt;
|-&lt;br /&gt;
! Color Palette&lt;br /&gt;
| Tint objects, or make them super bright. If the character provides a mutli-part color palette, set different colors on different parts.&lt;br /&gt;
|-&lt;br /&gt;
! Script Params&lt;br /&gt;
| Custom parameters used by scripts. Each different object type can define their own script params. See [[Script Parameters]] page for descriptions of all parameters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scenegraph Window ==&lt;br /&gt;
[[Image:Editor-scenegraph-window.png|right|thumb|caption|Scenegraph Window (level parameters)]]&lt;br /&gt;
&lt;br /&gt;
The Scenegraph Window (or parameter editor) lets you change global level parameters, as well as find objects in the level.&lt;br /&gt;
&lt;br /&gt;
Open up the Scenegraph for the current level by pressing the Y key, or clicking Top Bar -&amp;gt; Windows -&amp;gt; Scenegraph. Let&#039;s go through each part of the Scenegraph window from top to bottom.&lt;br /&gt;
&lt;br /&gt;
=== Level ===&lt;br /&gt;
If you expand the &#039;&#039;&#039;Level&#039;&#039;&#039; entry at the very top of the window you will find some parameters that can be changed:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Loading Screen Image&lt;br /&gt;
| A path to an image that&#039;s shown while loading the level&lt;br /&gt;
|-&lt;br /&gt;
! Sun Position&lt;br /&gt;
| The position of the sun in the sky&lt;br /&gt;
|-&lt;br /&gt;
! Sun Color&lt;br /&gt;
| Tints the color of the sun, useful for sunrises and sunsets&lt;br /&gt;
|-&lt;br /&gt;
! Sun Intensity&lt;br /&gt;
| Controls how dark the shadows are&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For a description of the level script parameters, see the [[Script Parameters]] page.&lt;br /&gt;
&lt;br /&gt;
=== Search field ===&lt;br /&gt;
Below the &#039;&#039;&#039;Level&#039;&#039;&#039; entry at the very top there is a search field. Write in this field to search for objects in the level. This searches in many of the objects&#039; fields. You can for instance search for something written in the &#039;&#039;&#039;Name&#039;&#039;&#039; parameter of an object, object IDs, object paths, types and more.&lt;br /&gt;
&lt;br /&gt;
=== Flat ===&lt;br /&gt;
The &#039;&#039;&#039;Flat&#039;&#039;&#039; checkbox controls how the Scenegraph list is displayed.&lt;br /&gt;
&lt;br /&gt;
If it&#039;s not checked you can expand groups to see the relations between objects in the graph.&lt;br /&gt;
&lt;br /&gt;
If it&#039;s checked you can no longer see group relationships, but you can instead expand each individual object to change any parameters associated with it.&lt;br /&gt;
&lt;br /&gt;
=== Named Only ===&lt;br /&gt;
If this is checked the Scenegraph list with only display objects that have been named. You can name an object by selecting it, bringing up the &#039;&#039;&#039;Single Selected&#039;&#039;&#039; window by pressing I, and then writing something in the &#039;&#039;&#039;Name&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
== Color Picker ==&lt;br /&gt;
[[Image:Editor-new-color-picker.png|right|thumb|caption|A crete block with its color altered by the color picker.]]&lt;br /&gt;
The Color Picker is used to tint the color of selected objects.&lt;br /&gt;
&lt;br /&gt;
It is opened by pressing cmd+p, or Top Bar -&amp;gt; Windows -&amp;gt; ColorPicker.&lt;br /&gt;
&lt;br /&gt;
The color picker consists of a color-gradient box, a rainbow slider, the RGB values, and an overbrightness slider. Increasing overbrightness makes the color brighter, and makes it glow in the dark.&lt;br /&gt;
&lt;br /&gt;
For characters, the color picker will let you set the color of different parts of the character. This is only available if the character was built to support a multi-color palette (not all of them do).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039;: Update screenshot on the right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sun Editor ==&lt;br /&gt;
[[Image:Sun_editor.jpg|right|thumb|caption|The sun editor]]&lt;br /&gt;
&lt;br /&gt;
The sun allows you to cast dynamic, single-directional light throughout a level.&amp;lt;br&amp;gt;&lt;br /&gt;
You can use it to simulate either a sun (more direct light) or a moon (more ambient light)&lt;br /&gt;
&lt;br /&gt;
See [[Lighting#Sunlight|the documentation on the lighting page]] for more information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dialogue Editor ==&lt;br /&gt;
&lt;br /&gt;
The [[Dialogue Editor]] is used to create scenes with different camera angles, text and poses. It is commonly used to give context and progress the story in a level.&lt;br /&gt;
&lt;br /&gt;
This is a big enough subject to warrant its own article, which can be found [[Dialogue Editor|here]].&lt;br /&gt;
&lt;br /&gt;
== Spawn Corpse ==&lt;br /&gt;
Sometimes you want to have a dead character in your level. The obvious solution would be to export a new model of a dead character and place it in the level. However, that&#039;s a lot of work, and the character wouldn&#039;t be dynamic, and it would take a lot of work to make changes to it.&lt;br /&gt;
&lt;br /&gt;
Luckily there is a system in the engine for making any character spawn as a corpse. Here are instructions for how to use that system:&lt;br /&gt;
&lt;br /&gt;
[[Image:spawn_corpse.jpg|right|thumb|caption|Making a corpse]]&lt;br /&gt;
# Spawn the character you want to spawn as a corpse.&lt;br /&gt;
# Select its spawn box and press cmd or ctrl + K to make it spawn as a corpse, which will kill it. At this point the corpse will spawn standing up when you restart the level with L, we&#039;ll fix that in the following steps.&lt;br /&gt;
# Enter play mode by pressing 8, go close to the corpse and hold right click to drag it around until you&#039;re satisfied with the pose.&lt;br /&gt;
# Now exit play mode by pressing escape, select the character&#039;s spawn box and press cmd+K again to update the pose of the corpse.&lt;br /&gt;
# Press L to restart the level and verify that it worked.&lt;br /&gt;
&lt;br /&gt;
If you want to make a corpse to spawn alive again, select its spawn point and press K.&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=User:Constance&amp;diff=6131</id>
		<title>User:Constance</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=User:Constance&amp;diff=6131"/>
		<updated>2023-05-18T03:07:11Z</updated>

		<summary type="html">&lt;p&gt;Constance: defeated the curse of the red text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My name is Constance.&lt;br /&gt;
&lt;br /&gt;
I&#039;m a developer for Overgrowth at Wolfire Games. I made Therium-2, and other such things.&lt;br /&gt;
&lt;br /&gt;
Let me know if there&#039;s any documentation you especially want me to cover, and I&#039;ll do my best.&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=3D_Objects&amp;diff=6130</id>
		<title>3D Objects</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=3D_Objects&amp;diff=6130"/>
		<updated>2023-05-18T03:03:08Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Converting normal maps */ Increased video size&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Phoenix uses .xml files to store information about what textures a certain model should use as well as other information such as what shader it should use. This is the file you choose when loading an object. Here is an example object .xml file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Object&amp;gt;&lt;br /&gt;
	&amp;lt;Model&amp;gt;Data/Mods/example_mod/Data/Models/SimpleObject.obj&amp;lt;/Model&amp;gt;&lt;br /&gt;
	&amp;lt;ColorMap&amp;gt;Data/Mods/example_mod/Data/Textures/SimpleObject_Color.tga&amp;lt;/ColorMap&amp;gt;&lt;br /&gt;
	&amp;lt;NormalMap&amp;gt;Data/Mods/example_mod/Data/Textures/Blank_Norm.tga&amp;lt;/NormalMap&amp;gt;&lt;br /&gt;
  	&amp;lt;ShaderName&amp;gt;envobject #TANGENT&amp;lt;/ShaderName&amp;gt;&lt;br /&gt;
	&amp;lt;MaterialPath&amp;gt;Data/Materials/default.xml&amp;lt;/MaterialPath&amp;gt;&lt;br /&gt;
&amp;lt;/Object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All object .xml files that ship with the game are located in ../Overgrowth/Data/Objects/.&lt;br /&gt;
&lt;br /&gt;
=== Model and Texture Requirements ===&lt;br /&gt;
* Only triangles in models&lt;br /&gt;
* Models use the Wavefront .obj format&lt;br /&gt;
* Textures need to be square&lt;br /&gt;
* Texture resolution need to be a power of two (32x32, 64x64, 128x128 and so on)&lt;br /&gt;
* The .tga format is recommended for textures, but .png and .tif work also.&lt;br /&gt;
&lt;br /&gt;
==== Converting normal maps ====&lt;br /&gt;
[[File:Convert_normals_tutorial.mp4|400px|thumb|right|Video tutorial on how to convert normal maps in GIMP]]&lt;br /&gt;
The normal maps that you get from some applications might not be instantly usable in the Phoenix engine without some edits. For instance, if you are using an object space normal map from Substance Designer you need to do this:&lt;br /&gt;
&lt;br /&gt;
# Invert the blue channel&lt;br /&gt;
# Swap blue and green channels&lt;br /&gt;
&lt;br /&gt;
You can do this in Photoshop, Substance Designer, or GIMP. Note that Gimp does not work well with alpha channels. On the right is a tutorial on how to convert object space normal maps into tangent space using GIMP.&lt;br /&gt;
&lt;br /&gt;
== Object .xml File ==&lt;br /&gt;
The object .xml files contain all information about a single object (model) that can be spawned in the engine. This aims to be a full reference over all tags and flags that can be used in an object .xml.&lt;br /&gt;
&lt;br /&gt;
=== Tags ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Example use !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;Model&amp;gt;Data/Models/MyModel.obj&amp;lt;/Model&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| path to the model file (.obj)&lt;br /&gt;
|-&lt;br /&gt;
! ColorMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;ColorMap&amp;gt;Data/Textures/MyColorMap.tga&amp;lt;/ColorMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| path to the color texture file (.tga, .tif or .png)&lt;br /&gt;
|-&lt;br /&gt;
! NormalMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;NormalMap&amp;gt;Data/Textures/MyNormalMap.tga&amp;lt;/NormalMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to the normal map texture file (.tga, .tif or .png)&lt;br /&gt;
|-&lt;br /&gt;
! ShaderName&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;ShaderName&amp;gt;envobject #TANGENT #KEEP_SPEC&amp;lt;/ShaderName&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| What shader to use, see [[#Shaders|shaders]] for more information&lt;br /&gt;
|-&lt;br /&gt;
! MaterialPath&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;MaterialPath&amp;gt;Data/Materials/DirtyRock.xml&amp;lt;/MaterialPath&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to the material to use, see [[#Materials|materials]] for more information.&lt;br /&gt;
|-&lt;br /&gt;
! WeightMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;WeightMap&amp;gt;Data/Textures/Environments/Rocks/granite_vine_rocks/granite_vine_boulder_overgrown_w.tga&amp;lt;/WeightMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to a black and white texture used for determining where each detail texture should be used. Required when using the detailmap4 [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! TranslucencyMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;TranslucencyMap&amp;gt;Data/Textures/Environments/cat_props/banner_t.tga&amp;lt;/TranslucencyMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to a color texture used for translucency, meaning light that shines through the object. Adds its color to the surface multiplied by the amount of light it receives, this effect ignores the normal of the surface, so if one side receives light from for instance the sun, the other side will also get the color added. If unspecified it defaults to 0.0 (no translucency) across the entire surface. Optional when using the plant [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! WindMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;WindMap&amp;gt;Data/Textures/Environments/cat_props/banner_w.tga&amp;lt;/WindMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to a black and white texture used to define the intensity of a vertex wind effect. If unspecified it defaults to 1.0 (active) across the entire surface. Optional when using the plant [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! DetailMaps&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;DetailMaps&amp;gt;&lt;br /&gt;
    &amp;lt;DetailMap colorpath=&amp;quot;Data/Textures/Terrain/DetailTextures/gray_rock.tga&amp;quot; normalpath=&amp;quot;Data/Textures/Terrain/DetailTextures/gray_rock_normal.tga&amp;quot; materialpath=&amp;quot;Data/Materials/rocks.xml&amp;quot; /&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/DetailMaps&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Contains exactly 4 &amp;lt;DetailMap&amp;gt; tags describing textures and materials that will be tiled across the model using the &amp;lt;WeightMap&amp;gt; tag&#039;s texture. Required when using the detailmap4 [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! DetailObjects&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;DetailObjects&amp;gt;&lt;br /&gt;
    &amp;lt;DetailObject obj_path=&amp;quot;Data/Objects/Plants/Groundcover/Groundcover1.xml&amp;quot; weight_path=&amp;quot;Data/Textures/Environments/Rocks/granite_vine_rocks/granite_vine_boulder_overgrown_vine_mask.tga&amp;quot; normal_conform=&amp;quot;0.9&amp;quot; density=&amp;quot;10&amp;quot; min_embed=&amp;quot;0&amp;quot; max_embed=&amp;quot;0.4&amp;quot; min_scale=&amp;quot;0.7&amp;quot; max_scale=&amp;quot;2&amp;quot; view_distance=&amp;quot;40&amp;quot; jitter_degrees=&amp;quot;10&amp;quot; overbright=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/DetailObjects&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Contains one or more &amp;lt;DetailObject&amp;gt; tags, each describing how to randomly distribute some object across the surface. Can be used for grass, small rocks etc.&lt;br /&gt;
|-&lt;br /&gt;
! flags&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;flags no_collision=true double_sided=true/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Used to set boolean values on the object (see [[#Flags|flags]])&lt;br /&gt;
|-&lt;br /&gt;
! GroundOffset&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;GroundOffset&amp;gt;0.5&amp;lt;/GroundOffset&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Moves the object up/down by the set amount when the object is created&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Deprecated tags ====&lt;br /&gt;
These tags are deprecated and should not be used.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Example use !! Description&lt;br /&gt;
|-&lt;br /&gt;
! ShaderPath&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;ShaderPath&amp;gt;Data/GLSL/cubemapobj&amp;lt;/ShaderPath&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| path to the shader to use (.frag &amp;amp; .vert), replaced by ShaderName&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Materials ====&lt;br /&gt;
These are the materials that can be assigned to objects using the &amp;lt;code&amp;gt;&amp;lt;MaterialPath&amp;gt;&amp;lt;/code&amp;gt; [[#Tags|tag]]. You can find the materials in &amp;lt;code&amp;gt;../Overgrowth/Data/Materials/&amp;lt;/code&amp;gt;. The material affects what particles spawn when a character runs on the surface, what sound footsteps make on the surface, how easily weapons stick in the surface, and more.&lt;br /&gt;
&lt;br /&gt;
* default&lt;br /&gt;
* dirt&lt;br /&gt;
* dirtytock&lt;br /&gt;
* drygrass&lt;br /&gt;
* grass&lt;br /&gt;
* gravel&lt;br /&gt;
* ice&lt;br /&gt;
* rock&lt;br /&gt;
* rocks&lt;br /&gt;
* sand&lt;br /&gt;
* snow&lt;br /&gt;
* wood&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
Flags are entered as boolean attributes (&amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;) in a [[#Tags|tag]] called &amp;quot;flags&amp;quot; under the &amp;quot;Object&amp;quot; tag. All flags have a default value of false.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
! no_collision&lt;br /&gt;
| Disables physics collisions with this object.&lt;br /&gt;
|-&lt;br /&gt;
! double_sided&lt;br /&gt;
| The backsides of the object gets rendered as well.&lt;br /&gt;
|-&lt;br /&gt;
! bush_collision&lt;br /&gt;
| Makes the object give some resistance when passed through while the object wobbles a bit and generates leaf particles.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Collision/Physics Objects==&lt;br /&gt;
The engine automatically generates a simplified physics object from your model but this can be overridden by providing an alternative .OBJ file. The file is placed in the same folder and shares the same name as the original .OBJ file with a suffix:&lt;br /&gt;
&lt;br /&gt;
===Suffixes===&lt;br /&gt;
[[Image:PhysicsObject.jpg|thumb|Physics mesh should be in the same place as the render mesh]]&lt;br /&gt;
[[Image:HullObject.jpg|thumb|Hull mesh should be in the same place as the render mesh]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Suffix !! Description&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;span style=&amp;quot;color: gray&amp;quot;&amp;gt;YourObject&amp;lt;/span&amp;gt;_COL.obj&lt;br /&gt;
| Contains simplified geometry for physics calculations.&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;span style=&amp;quot;color: gray&amp;quot;&amp;gt;YourObject&amp;lt;/span&amp;gt;HULL.obj&lt;br /&gt;
| Same as _COL but has extra info, used for weapons.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that HULL doesn’t have an underscore to separate it from the file name!&lt;br /&gt;
&lt;br /&gt;
===Physics objects (_COL)=== &lt;br /&gt;
Simplified geometry such as boxes and cylinders which are used for collision detection, they are aligned to your object based on “relative position” in your 3D program so you should place the physics mesh on top of your render mesh upon export.&lt;br /&gt;
&lt;br /&gt;
===Hull objects (HULL)=== &lt;br /&gt;
They are very similar to physics objects but are used for items and weapons, the only difference is that they contain a free-floating triangle which defines the object’s center of gravity.&lt;br /&gt;
&lt;br /&gt;
== Shaders ==&lt;br /&gt;
Overgrowth uses an &amp;quot;uber shader&amp;quot; approach to shader management, which means that there is one huge shader that almost everything in the game uses. So instead of choosing a shader for your object, you can set &amp;quot;flags&amp;quot; with your object that the game will use to change how it&#039;s rendered.&lt;br /&gt;
&lt;br /&gt;
The flags are put in the &amp;lt;ShaderName&amp;gt; tag after the shader name. Here is an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;ShaderName&amp;gt;envobject #TANGENT #KEEP_SPEC&amp;lt;/ShaderName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;#TANGENT&amp;quot; and &amp;quot;#KEEP_SPEC&amp;quot; in this example are flags.&lt;br /&gt;
&lt;br /&gt;
There are two texture maps that are required for an object to be loaded in the engine. Those are the &#039;&#039;&#039;ColorMap&#039;&#039;&#039; and the &#039;&#039;&#039;NormalMap&#039;&#039;&#039; textures. Some flags allow you to use more than these two required textures, and some flags change how the required textures are used. &#039;&#039;&#039;TODO:&#039;&#039;&#039; Are there any default textures that can be used and what are they?&lt;br /&gt;
&lt;br /&gt;
Here is the channel designations of the ColorMap and NormalMap textures:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;ColorMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Color&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Reflectivity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;NormalMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Normal&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Color tint mask&lt;br /&gt;
&lt;br /&gt;
Any deviation from these designations or new textures caused by any flag in the table below can be seen in the &#039;&#039;Channel/Texture Changes&#039;&#039; column.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Channel/Texture Changes !! Description&lt;br /&gt;
|-&lt;br /&gt;
! #TANGENT&lt;br /&gt;
|&lt;br /&gt;
|| The normal map is used as an object space normal map by default, with this flag it&#039;s used as a tangent space normal map instead.&lt;br /&gt;
|-&lt;br /&gt;
! #KEEP_SPEC&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;NormalMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Smoothness&lt;br /&gt;
|| Instead of using the alpha channel of the normal map as a color tint mask, as is the default, that channel is used as a smoothness map. The object can still be tinted, you just can&#039;t control what parts get tinted.&lt;br /&gt;
|-&lt;br /&gt;
! #DETAILMAP4&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;WeightMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;R&#039;&#039;&#039; - The first detail texture&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;G&#039;&#039;&#039; - The second detail texture&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;B&#039;&#039;&#039; - The third detail texture&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;DetailMap colorpath&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Color&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;DetailMap normalpath&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Normal&lt;br /&gt;
|| Allows for repeating up to 4 different textures over a model so it looks more detailed up close. This also means you can scale the model up or down with less obvious texture stretching.&lt;br /&gt;
&lt;br /&gt;
* The WeightMap is used to decide which DetailMap texture to put where on the object&lt;br /&gt;
* Each DetailMap has its own color texture, normal texture and material&lt;br /&gt;
* See the [[#Tags|tags]] heading for information about how to specify the DetailMaps&lt;br /&gt;
|-&lt;br /&gt;
! #BASE_TANGENT&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #AXIS_UV&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #AXIS_BLEND&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #NO_DECALS&lt;br /&gt;
|&lt;br /&gt;
|| No decals shows up on this object.&lt;br /&gt;
|-&lt;br /&gt;
! #WHY_DOES_THIS_WORK&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #INVISIBLE&lt;br /&gt;
|&lt;br /&gt;
|| This object will not be rendered.&lt;br /&gt;
|-&lt;br /&gt;
! #ALPHA&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;ColorMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Transparency&lt;br /&gt;
|| [[Image:CubemapAlpha.jpg|thumb|#ALPHA flag in action]]&lt;br /&gt;
Makes the alpha channel of the ColorMap work as transparency instead of reflectivity&lt;br /&gt;
|-&lt;br /&gt;
! #PLANT&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;ColorMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A (reflectivity)&#039;&#039;&#039; - No effect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;NormalMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A (color tint mask)&#039;&#039;&#039; - No effect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;WindMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;R&#039;&#039;&#039; - Wind intensity&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;TranslucencyMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Translucency color&amp;lt;br /&amp;gt;&lt;br /&gt;
|| [[Image:Translucency.jpg|thumb|#PLANT flag in action together with the #ALPHA flag]]&lt;br /&gt;
* Enables use of a WindMap which makes the object move in the wind&lt;br /&gt;
* Enables use of a TranslucencyMap which makes it look like light can shine through the surface&lt;br /&gt;
* Disables reflectivity&lt;br /&gt;
* Disables color tint mask&lt;br /&gt;
|-&lt;br /&gt;
! #WATER&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Color Tint Mask ===&lt;br /&gt;
This mask is located in the alpha channel of the normal map, and determines what parts of the object should be tinted when using the [[Editor_Interface#Color_Picker|color picker]]. Black parts are not affected, the brighter the texel the more it is affected by tinting.&lt;br /&gt;
&lt;br /&gt;
== See also==&lt;br /&gt;
* [[Custom Characters]]&lt;br /&gt;
* [[Custom Weapons &amp;amp; Items]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=3D_Objects&amp;diff=6129</id>
		<title>3D Objects</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=3D_Objects&amp;diff=6129"/>
		<updated>2023-05-18T03:02:46Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Converting normal maps */ Corrected video position&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Phoenix uses .xml files to store information about what textures a certain model should use as well as other information such as what shader it should use. This is the file you choose when loading an object. Here is an example object .xml file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Object&amp;gt;&lt;br /&gt;
	&amp;lt;Model&amp;gt;Data/Mods/example_mod/Data/Models/SimpleObject.obj&amp;lt;/Model&amp;gt;&lt;br /&gt;
	&amp;lt;ColorMap&amp;gt;Data/Mods/example_mod/Data/Textures/SimpleObject_Color.tga&amp;lt;/ColorMap&amp;gt;&lt;br /&gt;
	&amp;lt;NormalMap&amp;gt;Data/Mods/example_mod/Data/Textures/Blank_Norm.tga&amp;lt;/NormalMap&amp;gt;&lt;br /&gt;
  	&amp;lt;ShaderName&amp;gt;envobject #TANGENT&amp;lt;/ShaderName&amp;gt;&lt;br /&gt;
	&amp;lt;MaterialPath&amp;gt;Data/Materials/default.xml&amp;lt;/MaterialPath&amp;gt;&lt;br /&gt;
&amp;lt;/Object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All object .xml files that ship with the game are located in ../Overgrowth/Data/Objects/.&lt;br /&gt;
&lt;br /&gt;
=== Model and Texture Requirements ===&lt;br /&gt;
* Only triangles in models&lt;br /&gt;
* Models use the Wavefront .obj format&lt;br /&gt;
* Textures need to be square&lt;br /&gt;
* Texture resolution need to be a power of two (32x32, 64x64, 128x128 and so on)&lt;br /&gt;
* The .tga format is recommended for textures, but .png and .tif work also.&lt;br /&gt;
&lt;br /&gt;
==== Converting normal maps ====&lt;br /&gt;
[[File:Convert_normals_tutorial.mp4|200px|thumb|right|Video tutorial on how to convert normal maps in GIMP]]&lt;br /&gt;
The normal maps that you get from some applications might not be instantly usable in the Phoenix engine without some edits. For instance, if you are using an object space normal map from Substance Designer you need to do this:&lt;br /&gt;
&lt;br /&gt;
# Invert the blue channel&lt;br /&gt;
# Swap blue and green channels&lt;br /&gt;
&lt;br /&gt;
You can do this in Photoshop, Substance Designer, or GIMP. Note that Gimp does not work well with alpha channels. On the right is a tutorial on how to convert object space normal maps into tangent space using GIMP.&lt;br /&gt;
&lt;br /&gt;
== Object .xml File ==&lt;br /&gt;
The object .xml files contain all information about a single object (model) that can be spawned in the engine. This aims to be a full reference over all tags and flags that can be used in an object .xml.&lt;br /&gt;
&lt;br /&gt;
=== Tags ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Example use !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;Model&amp;gt;Data/Models/MyModel.obj&amp;lt;/Model&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| path to the model file (.obj)&lt;br /&gt;
|-&lt;br /&gt;
! ColorMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;ColorMap&amp;gt;Data/Textures/MyColorMap.tga&amp;lt;/ColorMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| path to the color texture file (.tga, .tif or .png)&lt;br /&gt;
|-&lt;br /&gt;
! NormalMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;NormalMap&amp;gt;Data/Textures/MyNormalMap.tga&amp;lt;/NormalMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to the normal map texture file (.tga, .tif or .png)&lt;br /&gt;
|-&lt;br /&gt;
! ShaderName&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;ShaderName&amp;gt;envobject #TANGENT #KEEP_SPEC&amp;lt;/ShaderName&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| What shader to use, see [[#Shaders|shaders]] for more information&lt;br /&gt;
|-&lt;br /&gt;
! MaterialPath&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;MaterialPath&amp;gt;Data/Materials/DirtyRock.xml&amp;lt;/MaterialPath&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to the material to use, see [[#Materials|materials]] for more information.&lt;br /&gt;
|-&lt;br /&gt;
! WeightMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;WeightMap&amp;gt;Data/Textures/Environments/Rocks/granite_vine_rocks/granite_vine_boulder_overgrown_w.tga&amp;lt;/WeightMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to a black and white texture used for determining where each detail texture should be used. Required when using the detailmap4 [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! TranslucencyMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;TranslucencyMap&amp;gt;Data/Textures/Environments/cat_props/banner_t.tga&amp;lt;/TranslucencyMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to a color texture used for translucency, meaning light that shines through the object. Adds its color to the surface multiplied by the amount of light it receives, this effect ignores the normal of the surface, so if one side receives light from for instance the sun, the other side will also get the color added. If unspecified it defaults to 0.0 (no translucency) across the entire surface. Optional when using the plant [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! WindMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;WindMap&amp;gt;Data/Textures/Environments/cat_props/banner_w.tga&amp;lt;/WindMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to a black and white texture used to define the intensity of a vertex wind effect. If unspecified it defaults to 1.0 (active) across the entire surface. Optional when using the plant [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! DetailMaps&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;DetailMaps&amp;gt;&lt;br /&gt;
    &amp;lt;DetailMap colorpath=&amp;quot;Data/Textures/Terrain/DetailTextures/gray_rock.tga&amp;quot; normalpath=&amp;quot;Data/Textures/Terrain/DetailTextures/gray_rock_normal.tga&amp;quot; materialpath=&amp;quot;Data/Materials/rocks.xml&amp;quot; /&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/DetailMaps&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Contains exactly 4 &amp;lt;DetailMap&amp;gt; tags describing textures and materials that will be tiled across the model using the &amp;lt;WeightMap&amp;gt; tag&#039;s texture. Required when using the detailmap4 [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! DetailObjects&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;DetailObjects&amp;gt;&lt;br /&gt;
    &amp;lt;DetailObject obj_path=&amp;quot;Data/Objects/Plants/Groundcover/Groundcover1.xml&amp;quot; weight_path=&amp;quot;Data/Textures/Environments/Rocks/granite_vine_rocks/granite_vine_boulder_overgrown_vine_mask.tga&amp;quot; normal_conform=&amp;quot;0.9&amp;quot; density=&amp;quot;10&amp;quot; min_embed=&amp;quot;0&amp;quot; max_embed=&amp;quot;0.4&amp;quot; min_scale=&amp;quot;0.7&amp;quot; max_scale=&amp;quot;2&amp;quot; view_distance=&amp;quot;40&amp;quot; jitter_degrees=&amp;quot;10&amp;quot; overbright=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/DetailObjects&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Contains one or more &amp;lt;DetailObject&amp;gt; tags, each describing how to randomly distribute some object across the surface. Can be used for grass, small rocks etc.&lt;br /&gt;
|-&lt;br /&gt;
! flags&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;flags no_collision=true double_sided=true/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Used to set boolean values on the object (see [[#Flags|flags]])&lt;br /&gt;
|-&lt;br /&gt;
! GroundOffset&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;GroundOffset&amp;gt;0.5&amp;lt;/GroundOffset&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Moves the object up/down by the set amount when the object is created&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Deprecated tags ====&lt;br /&gt;
These tags are deprecated and should not be used.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Example use !! Description&lt;br /&gt;
|-&lt;br /&gt;
! ShaderPath&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;ShaderPath&amp;gt;Data/GLSL/cubemapobj&amp;lt;/ShaderPath&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| path to the shader to use (.frag &amp;amp; .vert), replaced by ShaderName&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Materials ====&lt;br /&gt;
These are the materials that can be assigned to objects using the &amp;lt;code&amp;gt;&amp;lt;MaterialPath&amp;gt;&amp;lt;/code&amp;gt; [[#Tags|tag]]. You can find the materials in &amp;lt;code&amp;gt;../Overgrowth/Data/Materials/&amp;lt;/code&amp;gt;. The material affects what particles spawn when a character runs on the surface, what sound footsteps make on the surface, how easily weapons stick in the surface, and more.&lt;br /&gt;
&lt;br /&gt;
* default&lt;br /&gt;
* dirt&lt;br /&gt;
* dirtytock&lt;br /&gt;
* drygrass&lt;br /&gt;
* grass&lt;br /&gt;
* gravel&lt;br /&gt;
* ice&lt;br /&gt;
* rock&lt;br /&gt;
* rocks&lt;br /&gt;
* sand&lt;br /&gt;
* snow&lt;br /&gt;
* wood&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
Flags are entered as boolean attributes (&amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;) in a [[#Tags|tag]] called &amp;quot;flags&amp;quot; under the &amp;quot;Object&amp;quot; tag. All flags have a default value of false.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
! no_collision&lt;br /&gt;
| Disables physics collisions with this object.&lt;br /&gt;
|-&lt;br /&gt;
! double_sided&lt;br /&gt;
| The backsides of the object gets rendered as well.&lt;br /&gt;
|-&lt;br /&gt;
! bush_collision&lt;br /&gt;
| Makes the object give some resistance when passed through while the object wobbles a bit and generates leaf particles.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Collision/Physics Objects==&lt;br /&gt;
The engine automatically generates a simplified physics object from your model but this can be overridden by providing an alternative .OBJ file. The file is placed in the same folder and shares the same name as the original .OBJ file with a suffix:&lt;br /&gt;
&lt;br /&gt;
===Suffixes===&lt;br /&gt;
[[Image:PhysicsObject.jpg|thumb|Physics mesh should be in the same place as the render mesh]]&lt;br /&gt;
[[Image:HullObject.jpg|thumb|Hull mesh should be in the same place as the render mesh]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Suffix !! Description&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;span style=&amp;quot;color: gray&amp;quot;&amp;gt;YourObject&amp;lt;/span&amp;gt;_COL.obj&lt;br /&gt;
| Contains simplified geometry for physics calculations.&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;span style=&amp;quot;color: gray&amp;quot;&amp;gt;YourObject&amp;lt;/span&amp;gt;HULL.obj&lt;br /&gt;
| Same as _COL but has extra info, used for weapons.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that HULL doesn’t have an underscore to separate it from the file name!&lt;br /&gt;
&lt;br /&gt;
===Physics objects (_COL)=== &lt;br /&gt;
Simplified geometry such as boxes and cylinders which are used for collision detection, they are aligned to your object based on “relative position” in your 3D program so you should place the physics mesh on top of your render mesh upon export.&lt;br /&gt;
&lt;br /&gt;
===Hull objects (HULL)=== &lt;br /&gt;
They are very similar to physics objects but are used for items and weapons, the only difference is that they contain a free-floating triangle which defines the object’s center of gravity.&lt;br /&gt;
&lt;br /&gt;
== Shaders ==&lt;br /&gt;
Overgrowth uses an &amp;quot;uber shader&amp;quot; approach to shader management, which means that there is one huge shader that almost everything in the game uses. So instead of choosing a shader for your object, you can set &amp;quot;flags&amp;quot; with your object that the game will use to change how it&#039;s rendered.&lt;br /&gt;
&lt;br /&gt;
The flags are put in the &amp;lt;ShaderName&amp;gt; tag after the shader name. Here is an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;ShaderName&amp;gt;envobject #TANGENT #KEEP_SPEC&amp;lt;/ShaderName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;#TANGENT&amp;quot; and &amp;quot;#KEEP_SPEC&amp;quot; in this example are flags.&lt;br /&gt;
&lt;br /&gt;
There are two texture maps that are required for an object to be loaded in the engine. Those are the &#039;&#039;&#039;ColorMap&#039;&#039;&#039; and the &#039;&#039;&#039;NormalMap&#039;&#039;&#039; textures. Some flags allow you to use more than these two required textures, and some flags change how the required textures are used. &#039;&#039;&#039;TODO:&#039;&#039;&#039; Are there any default textures that can be used and what are they?&lt;br /&gt;
&lt;br /&gt;
Here is the channel designations of the ColorMap and NormalMap textures:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;ColorMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Color&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Reflectivity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;NormalMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Normal&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Color tint mask&lt;br /&gt;
&lt;br /&gt;
Any deviation from these designations or new textures caused by any flag in the table below can be seen in the &#039;&#039;Channel/Texture Changes&#039;&#039; column.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Channel/Texture Changes !! Description&lt;br /&gt;
|-&lt;br /&gt;
! #TANGENT&lt;br /&gt;
|&lt;br /&gt;
|| The normal map is used as an object space normal map by default, with this flag it&#039;s used as a tangent space normal map instead.&lt;br /&gt;
|-&lt;br /&gt;
! #KEEP_SPEC&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;NormalMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Smoothness&lt;br /&gt;
|| Instead of using the alpha channel of the normal map as a color tint mask, as is the default, that channel is used as a smoothness map. The object can still be tinted, you just can&#039;t control what parts get tinted.&lt;br /&gt;
|-&lt;br /&gt;
! #DETAILMAP4&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;WeightMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;R&#039;&#039;&#039; - The first detail texture&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;G&#039;&#039;&#039; - The second detail texture&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;B&#039;&#039;&#039; - The third detail texture&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;DetailMap colorpath&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Color&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;DetailMap normalpath&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Normal&lt;br /&gt;
|| Allows for repeating up to 4 different textures over a model so it looks more detailed up close. This also means you can scale the model up or down with less obvious texture stretching.&lt;br /&gt;
&lt;br /&gt;
* The WeightMap is used to decide which DetailMap texture to put where on the object&lt;br /&gt;
* Each DetailMap has its own color texture, normal texture and material&lt;br /&gt;
* See the [[#Tags|tags]] heading for information about how to specify the DetailMaps&lt;br /&gt;
|-&lt;br /&gt;
! #BASE_TANGENT&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #AXIS_UV&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #AXIS_BLEND&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #NO_DECALS&lt;br /&gt;
|&lt;br /&gt;
|| No decals shows up on this object.&lt;br /&gt;
|-&lt;br /&gt;
! #WHY_DOES_THIS_WORK&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #INVISIBLE&lt;br /&gt;
|&lt;br /&gt;
|| This object will not be rendered.&lt;br /&gt;
|-&lt;br /&gt;
! #ALPHA&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;ColorMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Transparency&lt;br /&gt;
|| [[Image:CubemapAlpha.jpg|thumb|#ALPHA flag in action]]&lt;br /&gt;
Makes the alpha channel of the ColorMap work as transparency instead of reflectivity&lt;br /&gt;
|-&lt;br /&gt;
! #PLANT&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;ColorMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A (reflectivity)&#039;&#039;&#039; - No effect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;NormalMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A (color tint mask)&#039;&#039;&#039; - No effect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;WindMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;R&#039;&#039;&#039; - Wind intensity&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;TranslucencyMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Translucency color&amp;lt;br /&amp;gt;&lt;br /&gt;
|| [[Image:Translucency.jpg|thumb|#PLANT flag in action together with the #ALPHA flag]]&lt;br /&gt;
* Enables use of a WindMap which makes the object move in the wind&lt;br /&gt;
* Enables use of a TranslucencyMap which makes it look like light can shine through the surface&lt;br /&gt;
* Disables reflectivity&lt;br /&gt;
* Disables color tint mask&lt;br /&gt;
|-&lt;br /&gt;
! #WATER&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Color Tint Mask ===&lt;br /&gt;
This mask is located in the alpha channel of the normal map, and determines what parts of the object should be tinted when using the [[Editor_Interface#Color_Picker|color picker]]. Black parts are not affected, the brighter the texel the more it is affected by tinting.&lt;br /&gt;
&lt;br /&gt;
== See also==&lt;br /&gt;
* [[Custom Characters]]&lt;br /&gt;
* [[Custom Weapons &amp;amp; Items]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=3D_Objects&amp;diff=6128</id>
		<title>3D Objects</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=3D_Objects&amp;diff=6128"/>
		<updated>2023-05-18T03:02:34Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Converting normal maps */ Included normal map conversion tutorial video&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Phoenix uses .xml files to store information about what textures a certain model should use as well as other information such as what shader it should use. This is the file you choose when loading an object. Here is an example object .xml file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Object&amp;gt;&lt;br /&gt;
	&amp;lt;Model&amp;gt;Data/Mods/example_mod/Data/Models/SimpleObject.obj&amp;lt;/Model&amp;gt;&lt;br /&gt;
	&amp;lt;ColorMap&amp;gt;Data/Mods/example_mod/Data/Textures/SimpleObject_Color.tga&amp;lt;/ColorMap&amp;gt;&lt;br /&gt;
	&amp;lt;NormalMap&amp;gt;Data/Mods/example_mod/Data/Textures/Blank_Norm.tga&amp;lt;/NormalMap&amp;gt;&lt;br /&gt;
  	&amp;lt;ShaderName&amp;gt;envobject #TANGENT&amp;lt;/ShaderName&amp;gt;&lt;br /&gt;
	&amp;lt;MaterialPath&amp;gt;Data/Materials/default.xml&amp;lt;/MaterialPath&amp;gt;&lt;br /&gt;
&amp;lt;/Object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All object .xml files that ship with the game are located in ../Overgrowth/Data/Objects/.&lt;br /&gt;
&lt;br /&gt;
=== Model and Texture Requirements ===&lt;br /&gt;
* Only triangles in models&lt;br /&gt;
* Models use the Wavefront .obj format&lt;br /&gt;
* Textures need to be square&lt;br /&gt;
* Texture resolution need to be a power of two (32x32, 64x64, 128x128 and so on)&lt;br /&gt;
* The .tga format is recommended for textures, but .png and .tif work also.&lt;br /&gt;
&lt;br /&gt;
==== Converting normal maps ====&lt;br /&gt;
[[File:Convert_normals_tutorial.mp4|200px|thumb|left|Video tutorial on how to convert normal maps in GIMP]]&lt;br /&gt;
The normal maps that you get from some applications might not be instantly usable in the Phoenix engine without some edits. For instance, if you are using an object space normal map from Substance Designer you need to do this:&lt;br /&gt;
&lt;br /&gt;
# Invert the blue channel&lt;br /&gt;
# Swap blue and green channels&lt;br /&gt;
&lt;br /&gt;
You can do this in Photoshop, Substance Designer, or GIMP. Note that Gimp does not work well with alpha channels. On the right is a tutorial on how to convert object space normal maps into tangent space using GIMP.&lt;br /&gt;
&lt;br /&gt;
== Object .xml File ==&lt;br /&gt;
The object .xml files contain all information about a single object (model) that can be spawned in the engine. This aims to be a full reference over all tags and flags that can be used in an object .xml.&lt;br /&gt;
&lt;br /&gt;
=== Tags ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Example use !! Description&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;Model&amp;gt;Data/Models/MyModel.obj&amp;lt;/Model&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| path to the model file (.obj)&lt;br /&gt;
|-&lt;br /&gt;
! ColorMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;ColorMap&amp;gt;Data/Textures/MyColorMap.tga&amp;lt;/ColorMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| path to the color texture file (.tga, .tif or .png)&lt;br /&gt;
|-&lt;br /&gt;
! NormalMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;NormalMap&amp;gt;Data/Textures/MyNormalMap.tga&amp;lt;/NormalMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to the normal map texture file (.tga, .tif or .png)&lt;br /&gt;
|-&lt;br /&gt;
! ShaderName&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;ShaderName&amp;gt;envobject #TANGENT #KEEP_SPEC&amp;lt;/ShaderName&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| What shader to use, see [[#Shaders|shaders]] for more information&lt;br /&gt;
|-&lt;br /&gt;
! MaterialPath&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;MaterialPath&amp;gt;Data/Materials/DirtyRock.xml&amp;lt;/MaterialPath&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to the material to use, see [[#Materials|materials]] for more information.&lt;br /&gt;
|-&lt;br /&gt;
! WeightMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;WeightMap&amp;gt;Data/Textures/Environments/Rocks/granite_vine_rocks/granite_vine_boulder_overgrown_w.tga&amp;lt;/WeightMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to a black and white texture used for determining where each detail texture should be used. Required when using the detailmap4 [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! TranslucencyMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;TranslucencyMap&amp;gt;Data/Textures/Environments/cat_props/banner_t.tga&amp;lt;/TranslucencyMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to a color texture used for translucency, meaning light that shines through the object. Adds its color to the surface multiplied by the amount of light it receives, this effect ignores the normal of the surface, so if one side receives light from for instance the sun, the other side will also get the color added. If unspecified it defaults to 0.0 (no translucency) across the entire surface. Optional when using the plant [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! WindMap&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;WindMap&amp;gt;Data/Textures/Environments/cat_props/banner_w.tga&amp;lt;/WindMap&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Path to a black and white texture used to define the intensity of a vertex wind effect. If unspecified it defaults to 1.0 (active) across the entire surface. Optional when using the plant [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! DetailMaps&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;DetailMaps&amp;gt;&lt;br /&gt;
    &amp;lt;DetailMap colorpath=&amp;quot;Data/Textures/Terrain/DetailTextures/gray_rock.tga&amp;quot; normalpath=&amp;quot;Data/Textures/Terrain/DetailTextures/gray_rock_normal.tga&amp;quot; materialpath=&amp;quot;Data/Materials/rocks.xml&amp;quot; /&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/DetailMaps&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Contains exactly 4 &amp;lt;DetailMap&amp;gt; tags describing textures and materials that will be tiled across the model using the &amp;lt;WeightMap&amp;gt; tag&#039;s texture. Required when using the detailmap4 [[#Shaders|shader]].&lt;br /&gt;
|-&lt;br /&gt;
! DetailObjects&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;DetailObjects&amp;gt;&lt;br /&gt;
    &amp;lt;DetailObject obj_path=&amp;quot;Data/Objects/Plants/Groundcover/Groundcover1.xml&amp;quot; weight_path=&amp;quot;Data/Textures/Environments/Rocks/granite_vine_rocks/granite_vine_boulder_overgrown_vine_mask.tga&amp;quot; normal_conform=&amp;quot;0.9&amp;quot; density=&amp;quot;10&amp;quot; min_embed=&amp;quot;0&amp;quot; max_embed=&amp;quot;0.4&amp;quot; min_scale=&amp;quot;0.7&amp;quot; max_scale=&amp;quot;2&amp;quot; view_distance=&amp;quot;40&amp;quot; jitter_degrees=&amp;quot;10&amp;quot; overbright=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/DetailObjects&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Contains one or more &amp;lt;DetailObject&amp;gt; tags, each describing how to randomly distribute some object across the surface. Can be used for grass, small rocks etc.&lt;br /&gt;
|-&lt;br /&gt;
! flags&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;flags no_collision=true double_sided=true/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Used to set boolean values on the object (see [[#Flags|flags]])&lt;br /&gt;
|-&lt;br /&gt;
! GroundOffset&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;GroundOffset&amp;gt;0.5&amp;lt;/GroundOffset&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| Moves the object up/down by the set amount when the object is created&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Deprecated tags ====&lt;br /&gt;
These tags are deprecated and should not be used.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Example use !! Description&lt;br /&gt;
|-&lt;br /&gt;
! ShaderPath&lt;br /&gt;
| &amp;lt;pre&amp;gt;&amp;lt;ShaderPath&amp;gt;Data/GLSL/cubemapobj&amp;lt;/ShaderPath&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
|| path to the shader to use (.frag &amp;amp; .vert), replaced by ShaderName&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Materials ====&lt;br /&gt;
These are the materials that can be assigned to objects using the &amp;lt;code&amp;gt;&amp;lt;MaterialPath&amp;gt;&amp;lt;/code&amp;gt; [[#Tags|tag]]. You can find the materials in &amp;lt;code&amp;gt;../Overgrowth/Data/Materials/&amp;lt;/code&amp;gt;. The material affects what particles spawn when a character runs on the surface, what sound footsteps make on the surface, how easily weapons stick in the surface, and more.&lt;br /&gt;
&lt;br /&gt;
* default&lt;br /&gt;
* dirt&lt;br /&gt;
* dirtytock&lt;br /&gt;
* drygrass&lt;br /&gt;
* grass&lt;br /&gt;
* gravel&lt;br /&gt;
* ice&lt;br /&gt;
* rock&lt;br /&gt;
* rocks&lt;br /&gt;
* sand&lt;br /&gt;
* snow&lt;br /&gt;
* wood&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
Flags are entered as boolean attributes (&amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;) in a [[#Tags|tag]] called &amp;quot;flags&amp;quot; under the &amp;quot;Object&amp;quot; tag. All flags have a default value of false.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
! no_collision&lt;br /&gt;
| Disables physics collisions with this object.&lt;br /&gt;
|-&lt;br /&gt;
! double_sided&lt;br /&gt;
| The backsides of the object gets rendered as well.&lt;br /&gt;
|-&lt;br /&gt;
! bush_collision&lt;br /&gt;
| Makes the object give some resistance when passed through while the object wobbles a bit and generates leaf particles.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Collision/Physics Objects==&lt;br /&gt;
The engine automatically generates a simplified physics object from your model but this can be overridden by providing an alternative .OBJ file. The file is placed in the same folder and shares the same name as the original .OBJ file with a suffix:&lt;br /&gt;
&lt;br /&gt;
===Suffixes===&lt;br /&gt;
[[Image:PhysicsObject.jpg|thumb|Physics mesh should be in the same place as the render mesh]]&lt;br /&gt;
[[Image:HullObject.jpg|thumb|Hull mesh should be in the same place as the render mesh]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Suffix !! Description&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;span style=&amp;quot;color: gray&amp;quot;&amp;gt;YourObject&amp;lt;/span&amp;gt;_COL.obj&lt;br /&gt;
| Contains simplified geometry for physics calculations.&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;span style=&amp;quot;color: gray&amp;quot;&amp;gt;YourObject&amp;lt;/span&amp;gt;HULL.obj&lt;br /&gt;
| Same as _COL but has extra info, used for weapons.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that HULL doesn’t have an underscore to separate it from the file name!&lt;br /&gt;
&lt;br /&gt;
===Physics objects (_COL)=== &lt;br /&gt;
Simplified geometry such as boxes and cylinders which are used for collision detection, they are aligned to your object based on “relative position” in your 3D program so you should place the physics mesh on top of your render mesh upon export.&lt;br /&gt;
&lt;br /&gt;
===Hull objects (HULL)=== &lt;br /&gt;
They are very similar to physics objects but are used for items and weapons, the only difference is that they contain a free-floating triangle which defines the object’s center of gravity.&lt;br /&gt;
&lt;br /&gt;
== Shaders ==&lt;br /&gt;
Overgrowth uses an &amp;quot;uber shader&amp;quot; approach to shader management, which means that there is one huge shader that almost everything in the game uses. So instead of choosing a shader for your object, you can set &amp;quot;flags&amp;quot; with your object that the game will use to change how it&#039;s rendered.&lt;br /&gt;
&lt;br /&gt;
The flags are put in the &amp;lt;ShaderName&amp;gt; tag after the shader name. Here is an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;ShaderName&amp;gt;envobject #TANGENT #KEEP_SPEC&amp;lt;/ShaderName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;#TANGENT&amp;quot; and &amp;quot;#KEEP_SPEC&amp;quot; in this example are flags.&lt;br /&gt;
&lt;br /&gt;
There are two texture maps that are required for an object to be loaded in the engine. Those are the &#039;&#039;&#039;ColorMap&#039;&#039;&#039; and the &#039;&#039;&#039;NormalMap&#039;&#039;&#039; textures. Some flags allow you to use more than these two required textures, and some flags change how the required textures are used. &#039;&#039;&#039;TODO:&#039;&#039;&#039; Are there any default textures that can be used and what are they?&lt;br /&gt;
&lt;br /&gt;
Here is the channel designations of the ColorMap and NormalMap textures:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;ColorMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Color&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Reflectivity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;NormalMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Normal&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Color tint mask&lt;br /&gt;
&lt;br /&gt;
Any deviation from these designations or new textures caused by any flag in the table below can be seen in the &#039;&#039;Channel/Texture Changes&#039;&#039; column.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Channel/Texture Changes !! Description&lt;br /&gt;
|-&lt;br /&gt;
! #TANGENT&lt;br /&gt;
|&lt;br /&gt;
|| The normal map is used as an object space normal map by default, with this flag it&#039;s used as a tangent space normal map instead.&lt;br /&gt;
|-&lt;br /&gt;
! #KEEP_SPEC&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;NormalMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Smoothness&lt;br /&gt;
|| Instead of using the alpha channel of the normal map as a color tint mask, as is the default, that channel is used as a smoothness map. The object can still be tinted, you just can&#039;t control what parts get tinted.&lt;br /&gt;
|-&lt;br /&gt;
! #DETAILMAP4&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;WeightMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;R&#039;&#039;&#039; - The first detail texture&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;G&#039;&#039;&#039; - The second detail texture&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;B&#039;&#039;&#039; - The third detail texture&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;DetailMap colorpath&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Color&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;DetailMap normalpath&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Normal&lt;br /&gt;
|| Allows for repeating up to 4 different textures over a model so it looks more detailed up close. This also means you can scale the model up or down with less obvious texture stretching.&lt;br /&gt;
&lt;br /&gt;
* The WeightMap is used to decide which DetailMap texture to put where on the object&lt;br /&gt;
* Each DetailMap has its own color texture, normal texture and material&lt;br /&gt;
* See the [[#Tags|tags]] heading for information about how to specify the DetailMaps&lt;br /&gt;
|-&lt;br /&gt;
! #BASE_TANGENT&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #AXIS_UV&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #AXIS_BLEND&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #NO_DECALS&lt;br /&gt;
|&lt;br /&gt;
|| No decals shows up on this object.&lt;br /&gt;
|-&lt;br /&gt;
! #WHY_DOES_THIS_WORK&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|-&lt;br /&gt;
! #INVISIBLE&lt;br /&gt;
|&lt;br /&gt;
|| This object will not be rendered.&lt;br /&gt;
|-&lt;br /&gt;
! #ALPHA&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;ColorMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A&#039;&#039;&#039; - Transparency&lt;br /&gt;
|| [[Image:CubemapAlpha.jpg|thumb|#ALPHA flag in action]]&lt;br /&gt;
Makes the alpha channel of the ColorMap work as transparency instead of reflectivity&lt;br /&gt;
|-&lt;br /&gt;
! #PLANT&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;ColorMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A (reflectivity)&#039;&#039;&#039; - No effect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;NormalMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A (color tint mask)&#039;&#039;&#039; - No effect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;WindMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;R&#039;&#039;&#039; - Wind intensity&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;TranslucencyMap&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;RGB&#039;&#039;&#039; - Translucency color&amp;lt;br /&amp;gt;&lt;br /&gt;
|| [[Image:Translucency.jpg|thumb|#PLANT flag in action together with the #ALPHA flag]]&lt;br /&gt;
* Enables use of a WindMap which makes the object move in the wind&lt;br /&gt;
* Enables use of a TranslucencyMap which makes it look like light can shine through the surface&lt;br /&gt;
* Disables reflectivity&lt;br /&gt;
* Disables color tint mask&lt;br /&gt;
|-&lt;br /&gt;
! #WATER&lt;br /&gt;
|&lt;br /&gt;
|| &#039;&#039;&#039;TODO:&#039;&#039;&#039; What does this do?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Color Tint Mask ===&lt;br /&gt;
This mask is located in the alpha channel of the normal map, and determines what parts of the object should be tinted when using the [[Editor_Interface#Color_Picker|color picker]]. Black parts are not affected, the brighter the texel the more it is affected by tinting.&lt;br /&gt;
&lt;br /&gt;
== See also==&lt;br /&gt;
* [[Custom Characters]]&lt;br /&gt;
* [[Custom Weapons &amp;amp; Items]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=File:Convert_normals_tutorial.mp4&amp;diff=6127</id>
		<title>File:Convert normals tutorial.mp4</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=File:Convert_normals_tutorial.mp4&amp;diff=6127"/>
		<updated>2023-05-18T03:00:35Z</updated>

		<summary type="html">&lt;p&gt;Constance: How to convert normal maps into tangent space for objects in Overgrowth.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to convert normal maps into tangent space for objects in Overgrowth.&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6126</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6126"/>
		<updated>2023-05-17T04:26:37Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Adding an event Keyframe to your animation */ Included ungrouping note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 3.4&#039;&#039;&#039; and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z (instructions on how to install are included).&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|439px|right|How to find the animation controls for exported frame data]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values. While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Go to the Object Data Properties tab (the one that looks like a character) in the Properties window&lt;br /&gt;
# Hold down SHIFT and toggle the third layer from the bottom right&lt;br /&gt;
# Once you&#039;re done, move your mouse to the 3D Viewport and press A to select everything&lt;br /&gt;
# Press ALT + H to unhide everything&lt;br /&gt;
# Toggle the rig layers back to normal: The DEF bones are located in the 3rd of the rig&#039;s layers from the bottom right &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when AI characters should block. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right, as shown in the Bone Layers section&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
To ungroup a keyframe, select it (so its name lights up) and press CTRL + ALT + G. Now the keyframe should be sent to the bottom, for easier editing!&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6125</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6125"/>
		<updated>2023-05-17T04:22:28Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Selecting different poses */ Changed image size&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 3.4&#039;&#039;&#039; and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z (instructions on how to install are included).&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|260px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|439px|right|How to find the animation controls for exported frame data]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values. While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Go to the Object Data Properties tab (the one that looks like a character) in the Properties window&lt;br /&gt;
# Hold down SHIFT and toggle the third layer from the bottom right&lt;br /&gt;
# Once you&#039;re done, move your mouse to the 3D Viewport and press A to select everything&lt;br /&gt;
# Press ALT + H to unhide everything&lt;br /&gt;
# Toggle the rig layers back to normal: The DEF bones are located in the 3rd of the rig&#039;s layers from the bottom right &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when AI characters should block. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right, as shown in the Bone Layers section&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6124</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6124"/>
		<updated>2023-05-17T04:17:07Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Overview */ Hid the 2.55 tutorial in its own link, by the 2.55 download.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here]. [https://youtu.be/CuFKEvTyYRw You can find a tutorial on how to animate in this version here.]&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 3.4&#039;&#039;&#039; and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z (instructions on how to install are included).&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|496px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|439px|right|How to find the animation controls for exported frame data]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values. While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Go to the Object Data Properties tab (the one that looks like a character) in the Properties window&lt;br /&gt;
# Hold down SHIFT and toggle the third layer from the bottom right&lt;br /&gt;
# Once you&#039;re done, move your mouse to the 3D Viewport and press A to select everything&lt;br /&gt;
# Press ALT + H to unhide everything&lt;br /&gt;
# Toggle the rig layers back to normal: The DEF bones are located in the 3rd of the rig&#039;s layers from the bottom right &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when AI characters should block. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right, as shown in the Bone Layers section&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6123</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6123"/>
		<updated>2023-05-17T04:15:39Z</updated>

		<summary type="html">&lt;p&gt;Constance: Moved Bone Layers section upwards&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|CuFKEvTyYRw&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Constance&#039;s animation tutorial for Blender 2.55&lt;br /&gt;
|frame&lt;br /&gt;
|start=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here].&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 3.4&#039;&#039;&#039; and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z (instructions on how to install are included).&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|496px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|439px|right|How to find the animation controls for exported frame data]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values. While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Go to the Object Data Properties tab (the one that looks like a character) in the Properties window&lt;br /&gt;
# Hold down SHIFT and toggle the third layer from the bottom right&lt;br /&gt;
# Once you&#039;re done, move your mouse to the 3D Viewport and press A to select everything&lt;br /&gt;
# Press ALT + H to unhide everything&lt;br /&gt;
# Toggle the rig layers back to normal: The DEF bones are located in the 3rd of the rig&#039;s layers from the bottom right &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when AI characters should block. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right, as shown in the Bone Layers section&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6122</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6122"/>
		<updated>2023-05-17T04:14:24Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Unhiding DEF Bones */ Corrected error and included note about IK &amp;amp; FK&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|CuFKEvTyYRw&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Constance&#039;s animation tutorial for Blender 2.55&lt;br /&gt;
|frame&lt;br /&gt;
|start=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here].&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 3.4&#039;&#039;&#039; and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z (instructions on how to install are included).&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|496px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|439px|right|How to find the animation controls for exported frame data]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values. While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when AI characters should block. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right.&#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039; The bones should be named &amp;lt;code&amp;gt;DEF-&amp;lt;Bonename&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
=== Bone layers ===&lt;br /&gt;
[[File:Animation_rig_layers.png|thumb|485px|right|Cyan text is only for character rigging. White text is only for animation. Green text is only for DEF bones, which are used in animation.]]&lt;br /&gt;
Sets of bones within the animation rig are hidden underneath several different layers. Each layer contains different bones; By hiding and unhiding specific layers, you can fine tune your available bones as pictured right.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FK&#039;&#039;&#039; stands for &#039;&#039;&#039;Fixed Kinematics&#039;&#039;&#039;, where each limb&#039;s position is manually set and is best used for dynamic animations with lots of movement (like attacks).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IK&#039;&#039;&#039; stands for &#039;&#039;&#039;Inverse Kinematics&#039;&#039;&#039;, where paws are placed and limbs follow.&lt;br /&gt;
&lt;br /&gt;
To switch between the two modes of animation, you must set the IK property keyframe to 0 (for FK) or 1 (for IK). You can only set this property keyframe on IK bones.&lt;br /&gt;
&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the animation rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Go to the Object Data Properties tab (the one that looks like a character) in the Properties window&lt;br /&gt;
# Hold down SHIFT and toggle the third layer from the bottom right&lt;br /&gt;
# Once you&#039;re done, move your mouse to the 3D Viewport and press A to select everything&lt;br /&gt;
# Press ALT + H to unhide everything&lt;br /&gt;
# Toggle the rig layers back to normal: The DEF bones are located in the 3rd of the rig&#039;s layers from the bottom right &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6121</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6121"/>
		<updated>2023-05-17T04:04:17Z</updated>

		<summary type="html">&lt;p&gt;Constance: Facelifted page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|CuFKEvTyYRw&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Constance&#039;s animation tutorial for Blender 2.55&lt;br /&gt;
|frame&lt;br /&gt;
|start=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here].&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 3.4&#039;&#039;&#039; and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z (instructions on how to install are included).&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its default interface. &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to Select&lt;br /&gt;
# Right click to Manipulate&lt;br /&gt;
# Scroll wheel click to Orbit camera&lt;br /&gt;
# G to Translate selected (or rotate fixed bones)&lt;br /&gt;
# R to Rotate selected&lt;br /&gt;
# ESC to Cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
[[File:Dopesheet_pose_select.png|thumb|496px|right|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
[[File:Rig_params.gif|thumb|439px|right|How to find the animation controls for exported frame data]]&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values. While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured below&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when AI characters should block. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right.&#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039; The bones should be named &amp;lt;code&amp;gt;DEF-&amp;lt;Bonename&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
=== Unhiding DEF Bones ===&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Go to the Object Data Properties tab (the one that looks like a character)&lt;br /&gt;
# Hold down SHIFT and toggle every layer on (to be safe)&lt;br /&gt;
# Once you&#039;re done, move your mouse to the 3D Viewport and press A to select everything&lt;br /&gt;
# Press ALT + H to unhide everything&lt;br /&gt;
# Toggle the rig layers back to normal: The DEF bones are located in the 3rd of the rig&#039;s layers from the bottom right &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6120</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6120"/>
		<updated>2023-05-17T03:48:27Z</updated>

		<summary type="html">&lt;p&gt;Constance: Added 3.4 documentation and tutorial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|CuFKEvTyYRw&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Constance&#039;s animation tutorial for Blender 2.55&lt;br /&gt;
|frame&lt;br /&gt;
|start=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here].&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 3.4&#039;&#039;&#039; and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z&lt;br /&gt;
&lt;br /&gt;
The best rig for making animations is rabbit_rig.blend -- This wiki page will assume you are using its interface &#039;&#039;&#039;TODO: How to switch to different species models?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Creating an animation ==&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar. This dopesheet contains a timeline of every keyframe defined for the animation.&lt;br /&gt;
&lt;br /&gt;
In order to pose a character and make new keyframes, you must first select Pose Mode in the 3D Viewport&#039;s toolbar (located by default on its bottom). Then, you can select a bone and change it around. I recommend enabling Object Gizmos in the 3D Viewport&#039;s toolbar. Here&#039;s a quick reference for Blender 3.4&#039;s default interface controls:&lt;br /&gt;
&lt;br /&gt;
# Left click to select&lt;br /&gt;
# Right click to manipulate&lt;br /&gt;
# Middle click to orbit camera&lt;br /&gt;
# G to translate selected (or rotate fixed bones)&lt;br /&gt;
# R to rotate selected&lt;br /&gt;
# ESC to cancel current change&lt;br /&gt;
&lt;br /&gt;
Each keyframe contains data for a bone. Its position on the dopesheet dictates when the bone will conform to the pose. If you set the dopesheet&#039;s timeline over a keyframe, your changes to the bone will overwrite the current keyframe&#039;s data. You can change this behavior by checking the Record button&#039;s options on the timeline at the very bottom.&lt;br /&gt;
&lt;br /&gt;
===Selecting different poses===&lt;br /&gt;
&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039; [[File:Dopesheet_pose_select.png|left|The button found on the dopesheet toolbar for selecting different poses]]&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Changing the start &amp;amp; end frames===&lt;br /&gt;
&lt;br /&gt;
How long your animation lasts depends on the values specified in Blender&#039;s Timeline window. In its top right, you can find the Start and End values. While the Use Preview Range button is toggled, the From Timeline button in the rig parameters will affect your exported animation&#039;s frame data.&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the sidebar of the 3D Viewport, as pictured [[File:Rig_params.gif|left|How to find the animation controls]]&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039; &#039;&#039;&#039;Note: Make sure not to have any IK bones selected while in Pose Mode, or else the script may crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when to block to AI characters. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s handedness&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the right hand&#039;s currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the right hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the right hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the left hip&#039;s item into the right hand&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the right hip&#039;s item into the right hand&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right.&#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039; The bones should be named &amp;lt;code&amp;gt;DEF-&amp;lt;Bonename&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
=== Unhiding DEF Bones ===&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Go to the Object Data Properties tab (the one that looks like a character)&lt;br /&gt;
# Hold down SHIFT and toggle every layer on (to be safe)&lt;br /&gt;
# Once you&#039;re done, move your mouse to the 3D Viewport and press A to select everything&lt;br /&gt;
# Press ALT + H to unhide everything&lt;br /&gt;
# Toggle the rig layers back to normal: The DEF bones are located in the 3rd of the rig&#039;s layers from the bottom right &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=File:Dopesheet_pose_select.png&amp;diff=6119</id>
		<title>File:Dopesheet pose select.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=File:Dopesheet_pose_select.png&amp;diff=6119"/>
		<updated>2023-05-17T03:36:59Z</updated>

		<summary type="html">&lt;p&gt;Constance: How to select a pose in the dopesheet.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to select a pose in the dopesheet.&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=File:Rig_params.gif&amp;diff=6118</id>
		<title>File:Rig params.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=File:Rig_params.gif&amp;diff=6118"/>
		<updated>2023-05-17T03:35:55Z</updated>

		<summary type="html">&lt;p&gt;Constance: How to access the skeleton parameters for custom properties and timeline data.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to access the skeleton parameters for custom properties and timeline data.&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=File:Animation_rig_layers.png&amp;diff=6117</id>
		<title>File:Animation rig layers.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=File:Animation_rig_layers.png&amp;diff=6117"/>
		<updated>2023-05-17T03:08:42Z</updated>

		<summary type="html">&lt;p&gt;Constance: Cyan text is only for character rigging.
White text is only for animation.
Green text is only for DEF bones, which are used in animation.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cyan text is only for character rigging.&lt;br /&gt;
White text is only for animation.&lt;br /&gt;
Green text is only for DEF bones, which are used in animation.&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6116</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6116"/>
		<updated>2023-05-17T03:00:02Z</updated>

		<summary type="html">&lt;p&gt;Constance: Added unhiding DEF bones section, added Selecting a Pose section, labelled event keyframes (possibly incorrectly)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|CuFKEvTyYRw&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Constance&#039;s animation tutorial for Blender 2.55&lt;br /&gt;
|frame&lt;br /&gt;
|start=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here].&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 3.4&#039;&#039;&#039; and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z&lt;br /&gt;
&lt;br /&gt;
===Selecting a pose===&lt;br /&gt;
&lt;br /&gt;
On the left hand side of your Blender character rig, you&#039;ll see a &#039;&#039;&#039;Dopesheet&#039;&#039;&#039;. If it&#039;s too small, you can drag it out and expand the border to see the full toolbar.&lt;br /&gt;
&lt;br /&gt;
Click the button pictured on the Dopesheet&#039;s toolbar to browse and select the poses included in the character rig. Any rig has a maximum pose limit, which when reached will start recycling old poses. &#039;&#039;&#039;Todo: How large is this limit?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can make a new pose by clicking the New Action button next to the pose name. Make sure not to overwrite any useful poses you may have in the rig!&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the properties sidebar of the skeleton &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game. Access these custom properties by clicking on the Bone Properties tab within the Properties window.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
|event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_blockprepare || Signals when to block to AI characters. These keyframes are usually placed two frames before the impact&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||Will trigger footstep sounds for sneaking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstep sounds for running, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||Will trigger footstep sounds for walking, emits AI sound and creates particles while on terrain&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||Will trigger footstep sounds for wall running and emits AI sound&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||Causes the character to ragdoll into a static pose&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||Causes the character to switch the currently held item&#039;s hand&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||Causes the character to let go of the currently held item&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||Sheathes the dominant hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||Sheathes the dominant hand&#039;s item to the right hip&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||Unsheathes the dominant hand&#039;s item to the left hip&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||Unsheathes the dominant hand&#039;s item to the right hip&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right.&#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039; The bones should be named &amp;lt;code&amp;gt;DEF-&amp;lt;Bonename&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
=== Unhiding DEF Bones ===&lt;br /&gt;
In order to add event keyframes, you must first select a DEF bone. In the rigs that are shipped with the game, these bones are hidden. In order to unhide them, you must first:&lt;br /&gt;
# Enter Pose Mode in the 3D Viewport&lt;br /&gt;
# Go to the Object Data Properties tab (the one that looks like a character)&lt;br /&gt;
# Hold down SHIFT and toggle every layer on (to be safe)&lt;br /&gt;
# Once you&#039;re done, move your mouse to the 3D Viewport and press A to select everything&lt;br /&gt;
# Press ALT + H to unhide everything&lt;br /&gt;
# Toggle the rig layers back to normal: The DEF bones are located in the 3rd of the rig&#039;s layers from the bottom right &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6115</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6115"/>
		<updated>2023-05-17T02:03:05Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Overview */ Additional line break.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|CuFKEvTyYRw&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Constance&#039;s animation tutorial&lt;br /&gt;
|frame&lt;br /&gt;
|start=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here].&lt;br /&gt;
&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 3.4&#039;&#039;&#039; and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the properties sidebar of the skeleton &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstepsound, particles and IK ?&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right.&#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039; The bones should be named &amp;lt;code&amp;gt;DEF-&amp;lt;Bonename&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6114</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6114"/>
		<updated>2023-05-17T02:02:40Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Overview */ I swear it&amp;#039;s bold this time.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|CuFKEvTyYRw&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Constance&#039;s animation tutorial&lt;br /&gt;
|frame&lt;br /&gt;
|start=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;&#039;Blender 2.55&#039;&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here].&lt;br /&gt;
The scripts needed for using &#039;&#039;&#039;Blender 3.4&#039;&#039;&#039; and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the properties sidebar of the skeleton &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstepsound, particles and IK ?&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right.&#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039; The bones should be named &amp;lt;code&amp;gt;DEF-&amp;lt;Bonename&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6113</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6113"/>
		<updated>2023-05-17T02:02:12Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Overview */ Actually fixed bold text.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|CuFKEvTyYRw&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Constance&#039;s animation tutorial&lt;br /&gt;
|frame&lt;br /&gt;
|start=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of &#039;&#039;Blender 2.55&#039;&#039; for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here].&lt;br /&gt;
The scripts needed for using &#039;&#039;Blender 3.4&#039;&#039; and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the properties sidebar of the skeleton &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstepsound, particles and IK ?&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right.&#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039; The bones should be named &amp;lt;code&amp;gt;DEF-&amp;lt;Bonename&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6112</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6112"/>
		<updated>2023-05-17T02:01:48Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Overview */ Fixed bold text.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|CuFKEvTyYRw&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Constance&#039;s animation tutorial&lt;br /&gt;
|frame&lt;br /&gt;
|start=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of *Blender 2.55* for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here].&lt;br /&gt;
The scripts needed for using *Blender 3.4* and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the properties sidebar of the skeleton &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstepsound, particles and IK ?&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right.&#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039; The bones should be named &amp;lt;code&amp;gt;DEF-&amp;lt;Bonename&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6111</id>
		<title>Custom Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Custom_Animations&amp;diff=6111"/>
		<updated>2023-05-17T02:01:20Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Overview */ Added note about 2.93 Blender scripts.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|CuFKEvTyYRw&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Constance&#039;s animation tutorial&lt;br /&gt;
|frame&lt;br /&gt;
|start=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Animations for rigged objects in Overgrowth are stored with one of the Phoenix Engine&#039;s custom [[Binary_File_Formats|binary file formats]], namely the [[Binary_File_Formats#PHXANM|PHXANM (Phoenix Animation) format]]. To export an animation to a PHXANM (File mask: .anm) file you need to use Wolfire&#039;s custom export addon for Blender.&lt;br /&gt;
&lt;br /&gt;
A repackaged version of **Blender 2.55** for Windows with the export addon and with the UI set up for this task can be downloaded [https://cdn.wolfire.com/techsupport/Blender-Overgrowth-Win.zip here].&lt;br /&gt;
The scripts needed for using **Blender 3.4** and above are in the [https://discord.com/invite/wolfire Wolfire Discord&#039;s] #overgrowth_modding channel, in the pinned messages. Look for a file named phoenixblenderscripts.7z&lt;br /&gt;
&lt;br /&gt;
===Exporting an animation===&lt;br /&gt;
&lt;br /&gt;
# Create your custom animation in Blender&lt;br /&gt;
# Set the metadata for your animation in the properties sidebar of the skeleton &#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039;&lt;br /&gt;
#* Click the &#039;&#039;&#039;From Timeline&#039;&#039;&#039; button to set the timeline&#039;s start &amp;amp; end frames as the start &amp;amp; end points of your animation; &#039;&#039;&#039;Note:&#039;&#039;&#039; Keyframes outside of this time frame won&#039;t be exported.&lt;br /&gt;
#* Set the &#039;&#039;&#039;Looping&#039;&#039;&#039; value to 0 if you don&#039;t want your animation to loop. Set it to 1 if you want it to loop. &#039;&#039;&#039;Todo: If the value is higher, will it do sth different, like play the animation n times?&#039;&#039;&#039;&lt;br /&gt;
# With the skeleton selected, press &#039;&#039;&#039;File &amp;gt; Export &amp;gt; Phoenix Animation (.anm)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Event Keyframes==&lt;br /&gt;
Event keyframes are used to tell the game at which moment of an animation an event is going to happen. This is used to trigger attack impacts and footstep sounds among other things.&lt;br /&gt;
An event is saved as a &#039;&#039;Custom Property&#039;&#039; of a bone in the Blender files shipped with the game.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| event_attackimpact || Will trigger the actual impact while attacking a character&lt;br /&gt;
|-&lt;br /&gt;
|event_attackblocked||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightcrouchwalkstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightrunstep||Will trigger footstepsound, particles and IK ?&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwalkstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightwallstep||&lt;br /&gt;
|-&lt;br /&gt;
|event_golimp||&lt;br /&gt;
|-&lt;br /&gt;
|event_grabitem||&lt;br /&gt;
|-&lt;br /&gt;
|event_heldweaponswap||&lt;br /&gt;
|-&lt;br /&gt;
|event_rightweaponrelease||&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandlefthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_sheatherighthandrighthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_throatcut||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandlefthip||&lt;br /&gt;
|-&lt;br /&gt;
|event_unsheatherighthandrighthi||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Adding an event Keyframe to your animation===&lt;br /&gt;
# Select the 3rd of the rig&#039;s layers from the bottom right.&#039;&#039;&#039;TODO: ADD IMAGE&#039;&#039;&#039; The bones should be named &amp;lt;code&amp;gt;DEF-&amp;lt;Bonename&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Select the appropriate bone for the event you want to trigger while being in pose mode&lt;br /&gt;
# Set the playhead in the timeline to the moment you want the event to happen&lt;br /&gt;
# In the &#039;&#039;&#039;Properties&#039;&#039;&#039; editor, press &#039;&#039;&#039;Bone&#039;&#039;&#039; and scroll down to &#039;&#039;&#039;Custom Properties&#039;&#039;&#039;&lt;br /&gt;
# Hover over the property that corresponds to the event you want to trigger and press &#039;&#039;&#039;I&#039;&#039;&#039; to add a keyframe. (Value doesn&#039;t matter)&lt;br /&gt;
&lt;br /&gt;
==Animating Morph Targets==&lt;br /&gt;
&#039;&#039;&#039;Todo: Add this section&#039;&#039;&#039;&lt;br /&gt;
[[Category: Overgrowth]]&lt;br /&gt;
[[Category: Modding]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Particle_Effects&amp;diff=6110</id>
		<title>Particle Effects</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Particle_Effects&amp;diff=6110"/>
		<updated>2022-07-12T21:32:50Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* OGV-Based */ Added note declaring .ogv to be deprecated.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There isn&#039;t much information released about Overgrowth&#039;s particle system. Running or jumping on the ground creates small dust clouds at the characters&#039; feet, and particle streams were added in [http://blog.wolfire.com/2011/04/Overgrowth-a128-video-changelog A128] along with blood dripping. Particles are controlled through scripts, examples below.&lt;br /&gt;
&lt;br /&gt;
==Simple Particle Example==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MakeParticle(&amp;quot;Data/Particles/impactfast.xml&amp;quot;,pos,vec3(0.0f));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Particle Stream Example==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float blood_force = sin(time*_spurt_frequency)*0.5f+0.5f;&lt;br /&gt;
uint32 id = MakeParticle(&amp;quot;Data/Particles/blooddrop.xml&amp;quot;,bleed_pos,(head_transform*vec3(0.0f,blood_amount*blood_force,0.0f)+this_mo.velocity));&lt;br /&gt;
if(last_blood_particle_id != 0){&lt;br /&gt;
   ConnectParticles(last_blood_particle_id, id);&lt;br /&gt;
}&lt;br /&gt;
last_blood_particle_id = id;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==File Structure==&lt;br /&gt;
There appear to be two different kinds of particles. Both are defined by an .xml file, however, one version is based on a video file, while the other is based on a static texture.&lt;br /&gt;
&lt;br /&gt;
===OGV-Based===&lt;br /&gt;
One Particle Effect is based on .ogv files found under Data/Textures/anims/ (though they are not referenced as .ogv but as .xml files in the Particle XML)&lt;br /&gt;
&lt;br /&gt;
This format is deprecated and no longer works.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--bigexplosion.xml--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;particle&amp;gt;&lt;br /&gt;
    &amp;lt;textures animation_effect = &amp;quot;Data/Textures/anims/bigexplosion.xml&amp;quot;&lt;br /&gt;
              shader = &amp;quot;theorabluescreen&amp;quot;&lt;br /&gt;
              soft_shader = &amp;quot;theorabluescreensoft&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;size val=&amp;quot;40.0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;color red =   &amp;quot;1.0&amp;quot;&lt;br /&gt;
           green = &amp;quot;1.0&amp;quot;&lt;br /&gt;
           blue =  &amp;quot;1.0&amp;quot;&lt;br /&gt;
           alpha = &amp;quot;1.0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;behavior inertia=&amp;quot;1.0&amp;quot; gravity=&amp;quot;0.0&amp;quot; wind=&amp;quot;0.0&amp;quot; size_decay_rate=&amp;quot;0.0&amp;quot; opacity_decay_rate=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;no_rotation /&amp;gt;&lt;br /&gt;
&amp;lt;/particle&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;textures/&amp;gt;&#039;&#039;&#039; - This tag has 3 attributes.&lt;br /&gt;
* animation_effect - this is the only attribute specific to ogv-based particles and references the file path, starting from the Data folder, to a video file. &#039;&#039;NOTE: for some reason, as of a209, the files referenced are xml format, however all files under Data/Textures/anims/ are ogv format. Is the reference is a typo?&#039;&#039;&lt;br /&gt;
* shader - the name (not including file extension, typically .frag) of the shader in folder Data/GLSL/&lt;br /&gt;
* soft_shader - The shader used when soft particles are on, usually just the name of the shader with the word &amp;quot;soft&amp;quot; appended to the end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;size/&amp;gt;&#039;&#039;&#039; - This tag uses the attribute &amp;quot;val&amp;quot; (floating point number) to specify the size of the particle. Can also be defined by &amp;quot;min&amp;quot; and &amp;quot;max&amp;quot; attributes, see Texture-Based Particle below &#039;&#039;NOTE: Units are unknown&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;color/&amp;gt;&#039;&#039;&#039; - This tag has a varying number of attributes, one for each channel (RGB + Alpha), while the Alpha Channel may be defined as a range, requiring two attributes, alpha_min and alpha_max &#039;&#039;Range? perhaps floating point values from 0.0 to 1.0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;behavior/&amp;gt;&#039;&#039;&#039; - This tag has 5 attributes.&lt;br /&gt;
* inertia - If this is 1.0 the particle retains all speed, the lower the value the more the particle slows down over time&lt;br /&gt;
* gravity - Degree with which a downwards gravitational force acts upon the particle&lt;br /&gt;
* wind - Degree with which wind effects the particle vector&lt;br /&gt;
* size_decay_rate - Rate at which the size of the particle decreases per second.&lt;br /&gt;
* opacity_decay_rate - Rate at which the alpha channel values of the particle decreases in seconds.&lt;br /&gt;
&lt;br /&gt;
===Texture-Based===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--bloodcloud.xml--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;particle&amp;gt;&lt;br /&gt;
    &amp;lt;textures color_map = &amp;quot;Data/Textures/smoke.tga&amp;quot; &lt;br /&gt;
              normal_map = &amp;quot;Data/Textures/smoke_normal.tga&amp;quot;&lt;br /&gt;
              shader = &amp;quot;litsprite&amp;quot;&lt;br /&gt;
              soft_shader = &amp;quot;litspritesoft&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;size min = &amp;quot;0.4&amp;quot; max = &amp;quot;0.7&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;color red =   &amp;quot;0.5&amp;quot;&lt;br /&gt;
           green = &amp;quot;0.5&amp;quot;&lt;br /&gt;
           blue =  &amp;quot;0.5&amp;quot;&lt;br /&gt;
           alpha_min = &amp;quot;0.5&amp;quot; alpha_max = &amp;quot;1.0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;behavior inertia=&amp;quot;0.9&amp;quot; gravity=&amp;quot;0.0&amp;quot; wind=&amp;quot;1.0&amp;quot; size_decay_rate=&amp;quot;0.0&amp;quot; opacity_decay_rate=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;quadratic_expansion speed=&amp;quot;4.0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;quadratic_dispersion persistence=&amp;quot;1.0&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/particle&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;textures/&amp;gt;&#039;&#039;&#039; - With texture-based particles, the &amp;quot;animation_effect&amp;quot; attribute has been replaced by two different ones&lt;br /&gt;
* color_map - Path to a file in .tga format. &#039;&#039;Note: Constraints? Do textures need to be square, does their size need to be a power of two?&lt;br /&gt;
* normal_map - Path to a file in .tga format.&lt;br /&gt;
&lt;br /&gt;
= Relevant blog posts =&lt;br /&gt;
&lt;br /&gt;
[http://blog.wolfire.com/2010/12/Overgrowth-graphics-overview A summary] of most blog posts explaining Overgrowth&#039;s graphical features, focusing on more technical details. There are additional links below, some of which are not mentioned in the summary.&lt;br /&gt;
&lt;br /&gt;
http://blog.wolfire.com/2008/12/object-lighting-part-1/&lt;br /&gt;
http://blog.wolfire.com/2010/02/Gamma-correct-lighting&lt;br /&gt;
&lt;br /&gt;
http://blog.wolfire.com/2009/09/character-rim-lighting/&lt;br /&gt;
http://blog.wolfire.com/2009/10/character-normal-maps/&lt;br /&gt;
http://blog.wolfire.com/2009/09/soft-normal-maps-for-fur/&lt;br /&gt;
&lt;br /&gt;
http://blog.wolfire.com/2009/09/trees-in-the-breeze/&lt;br /&gt;
http://blog.wolfire.com/2010/10/Imposters&lt;br /&gt;
&lt;br /&gt;
http://blog.wolfire.com/2009/05/decals-editor-part-one/&lt;br /&gt;
http://blog.wolfire.com/2009/05/decals-editor-part-two/&lt;br /&gt;
http://blog.wolfire.com/2009/06/decals-editor-part-three/&lt;br /&gt;
&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
	<entry>
		<id>https://wiki.wolfire.com/index.php?title=Lighting&amp;diff=6109</id>
		<title>Lighting</title>
		<link rel="alternate" type="text/html" href="https://wiki.wolfire.com/index.php?title=Lighting&amp;diff=6109"/>
		<updated>2022-07-12T21:24:52Z</updated>

		<summary type="html">&lt;p&gt;Constance: /* Gotchas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039;: Cover other level parameters, such as HDR points, saturation, and sky brightness. These parameters are covered in the [[Script Parameters]] page, so might want to take care to not duplicate too much of the information and maybe include a link to that page&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TODO&#039;&#039;&#039;: Expand sun section to say how to get a &amp;quot;sun&amp;quot; and a &amp;quot;moon&amp;quot; effect&lt;br /&gt;
&lt;br /&gt;
== Sunlight ==&lt;br /&gt;
The sun allows you to cast dynamic, single-directional light throughout a level.&amp;lt;br&amp;gt;&lt;br /&gt;
You can use it to simulate either a sun (more direct light) or a moon (more ambient light)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
[[Image:Sun_editor.jpg|left|thumb|The sun editor]]&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|DUaBoNEUcVI&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Editing the sun and sky&lt;br /&gt;
|frame&lt;br /&gt;
|start=267&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
=== How to adjust the sun ===&lt;br /&gt;
* Select the sun in the sky (double click it)&lt;br /&gt;
* Move it by clicking on the middle and dragging it around&lt;br /&gt;
* Change the color by dragging the dot around the outer ring&lt;br /&gt;
* Change the intensity by clicking &#039;&#039;just&#039;&#039; outside the outer ring and dragging it&lt;br /&gt;
&lt;br /&gt;
To deselect the sun, double click well outside of the sun editor (&#039;&#039;&#039;Note&#039;&#039;&#039;: the normal Q for &amp;quot;deselect all&amp;quot; isn&#039;t working right now)&lt;br /&gt;
&lt;br /&gt;
=== How to edit the parameters directly ===&lt;br /&gt;
If you have problems clicking it, or would prefer a numeric editor:&lt;br /&gt;
* Press the &amp;lt;kbd&amp;gt;&#039;&#039;&#039;Y&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; key to open the Scenegraph&lt;br /&gt;
* Expand &#039;&#039;&#039;level&#039;&#039;&#039; to find the Sun parameters&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reflection Capture ==&lt;br /&gt;
&lt;br /&gt;
Reflection capture objects are used for ambient lighting, reflections, and the color of the fog in each direction.&lt;br /&gt;
&lt;br /&gt;
There are two kinds of reflection capture objects, &#039;&#039;Global Reflection&#039;&#039; and &#039;&#039;Local Reflection&#039;&#039;. Both can be found under &#039;&#039;&#039;Load&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Lighting&#039;&#039;&#039;. A global reflection capture can be turned into a local one and vice versa by setting its &#039;&#039;Global&#039;&#039; script parameter to 1 or not.&lt;br /&gt;
&lt;br /&gt;
=== Gotchas ===&lt;br /&gt;
Reflection captures are updated when moved, and each new result builds on the results of the previous reflection capture. This can be used to achieve some desired effect, but can also make it harder to get what you want sometimes. Try playing around with changing the brightness of the sky, amount of fog etc. to get different effects.&lt;br /&gt;
&lt;br /&gt;
Certain [[Shader_And_Weather_Effects|level shaders]] will cause an issue where the sky will increase in brightness. To avoid this, disable the level shader temporarily. If the shader is important to include in the reflection capture, you can update it a single time by adjusting its position slightly within the Selected window.&lt;br /&gt;
&lt;br /&gt;
=== Global reflection ===&lt;br /&gt;
Global reflection captures are used for the entire level, and each level should have exactly one. Since it affects the entire level it is often placed in a location that represents some sort of &amp;quot;average&amp;quot; lighting for the level.&lt;br /&gt;
&lt;br /&gt;
=== Local reflection ===&lt;br /&gt;
Local reflection captures are used to change what the reflections look like in a specific region of the level. These are useful if there are caves or other types of areas where the ambient lighting changes significantly from the rest of the level. Move, rotate and scale the object to decide what part of the level should be affected.&lt;br /&gt;
&lt;br /&gt;
== Point lights ==&lt;br /&gt;
Point lights allow you to cast omni-directional light from a point in the level.&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|wOL0LJBRcas&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Adding and editing point lights&lt;br /&gt;
|frame&lt;br /&gt;
|start=64&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Adding a dynamic light: ===&lt;br /&gt;
* &#039;&#039;&#039;Top Bar&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Load&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Lighting&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Dynamic Light&#039;&#039;&#039;&lt;br /&gt;
* The cursor will turn into a plus symbol&lt;br /&gt;
* Click in level to place the dynamic light&lt;br /&gt;
&lt;br /&gt;
=== Changing the size of a dynamic light ===&lt;br /&gt;
* Select the light - &amp;lt;code&amp;gt;&#039;&#039;&#039;double click&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Hold &amp;lt;code&amp;gt;&#039;&#039;&#039;E&#039;&#039;&#039;&amp;lt;/code&amp;gt; while clicking and dragging on its bounding box.&lt;br /&gt;
&lt;br /&gt;
Note that this only changes the light&#039;s area of influence, not how much light it outputs.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Making a dynamic light brighter ===&lt;br /&gt;
* Select the light - &amp;lt;code&amp;gt;&#039;&#039;&#039;double click&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Open the color picker - &amp;lt;code&amp;gt;&#039;&#039;&#039;Ctrl + P&#039;&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;&#039;&#039;&#039;Command + P&#039;&#039;&#039;&amp;lt;/code&amp;gt; on mac)&lt;br /&gt;
* Change the &amp;lt;code&amp;gt;&#039;&#039;&#039;Overbright&#039;&#039;&#039;&amp;lt;/code&amp;gt; setting&lt;br /&gt;
&lt;br /&gt;
=== Adjusting dynamic light color: ===&lt;br /&gt;
* Select the light&lt;br /&gt;
* Hit &amp;lt;code&amp;gt;&#039;&#039;&#039;CTRL + P&#039;&#039;&#039;&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;&#039;&#039;&#039;command + P&#039;&#039;&#039;&amp;lt;/code&amp;gt; on mac) to open the &#039;&#039;&#039;Color Picker&#039;&#039;&#039;.&lt;br /&gt;
* Adjust the color with the color selector, or &#039;&#039;&#039;RGB&#039;&#039;&#039; at the bottom.&lt;br /&gt;
&lt;br /&gt;
=== Shaping the dynamic light ===&lt;br /&gt;
Dynamic lights are always spherical right now.&lt;br /&gt;
If you need an &amp;quot;area light&amp;quot; effect that isn&#039;t a sphere, there are a few options:&lt;br /&gt;
* Use [[Lighting#Shadow_decals|Shadow Decals]] to shape the light (you have to enable this in the level first. See [[Lighting#Dynamic_lights_and_shadows|this section below]])&lt;br /&gt;
* Place multiple dynamic light objects&lt;br /&gt;
* Some combination of both of the above&lt;br /&gt;
&lt;br /&gt;
Be careful to both look at how the lights affect static objects in the scene, and how they affect characters that walk through them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Shadow decals ==&lt;br /&gt;
Shadows from sunlight are taken care of automatically.&lt;br /&gt;
&lt;br /&gt;
However this only allows one level of shadowing. This doesn&#039;t handle ambient occlusion (shadowing of indirect light reflections).&lt;br /&gt;
&lt;br /&gt;
Shadow [[Custom Decals|decals]] (&amp;quot;Ambient Shadows&amp;quot;) allow you to manually place decals which simulate this ambient occlusion effect.&amp;lt;br&amp;gt;&lt;br /&gt;
This can help you visually anchor objects more realistically in the scene, and replicate effects like darkening around corners, and inside cubbyholes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
{{#ev:youtube&lt;br /&gt;
|wOL0LJBRcas&lt;br /&gt;
|&lt;br /&gt;
|right&lt;br /&gt;
|Adding and editing ambient shadows&lt;br /&gt;
|frame&lt;br /&gt;
|start=15&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[File:Ambient shadow decals.png|600px|Ambient Shadow Decals&#039;s effect on light]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
=== Adding a shadow decal: ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Top Bar -&amp;gt; Load -&amp;gt; Lighting -&amp;gt; Ambient Shadow&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
* The cursor will turn into a plus symbol.&amp;lt;br&amp;gt;&lt;br /&gt;
* Now click in level to place the ambient shadow decal.&lt;br /&gt;
&lt;br /&gt;
=== Resizing a shadow decal: ===&lt;br /&gt;
&lt;br /&gt;
Double click the ambient shadow decal, and hold E while clicking and dragging on its bounding box (or while shift + right-clicking and dragging on a side to only stretch in that direction).&amp;lt;br&amp;gt;&lt;br /&gt;
This will let you increase the spread of its effect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Ambient shadow decals will not create shadows if they in direct light. This is because they&#039;re for simulating indirect shadowing. Direct shadowing is already handled by placing objects in the world.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dynamic lights and shadows ==&lt;br /&gt;
&lt;br /&gt;
By default, no objects cast shadows from dynamic point lights (besides the sun). This is for performance reasons.&lt;br /&gt;
&lt;br /&gt;
Normally ambient shadow decals also will not create shadow from dynamic point lights, because that would be shading direct light, and they don&#039;t work that way.&lt;br /&gt;
&lt;br /&gt;
However you can use the &amp;lt;code&amp;gt;&#039;&#039;&#039;#SHADOW_POINT_LIGHTS&#039;&#039;&#039;&amp;lt;/code&amp;gt; level Custom Shader to make it so shadow decals can shape point lights, so you can manually simulate this shadowing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
[[File:Shadow point lights shader disabled.png|400px|without #SHADOW_POINT_LIGHTS]]&lt;br /&gt;
[[File:Shadow_point_lights_shader.png|400px|#SHADOW_POINT_LIGHTS Custom Shader setting]]&lt;br /&gt;
[[File:Shadow_point_lights_shader_enabled.png|400px|with #SHADOW_POINT_LIGHTS]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
=== Making shadow decals affect dynamic lights: ===&lt;br /&gt;
&lt;br /&gt;
* Hit &amp;lt;kbd&amp;gt;&#039;&#039;&#039;Y&#039;&#039;&#039;&amp;lt;/kbd&amp;gt; to open the level&#039;s scenegraph&lt;br /&gt;
* Expand Script Params&lt;br /&gt;
* Add a &amp;lt;code&amp;gt;&#039;&#039;&#039;Custom Shader&#039;&#039;&#039;&amp;lt;/code&amp;gt; param&lt;br /&gt;
* Hit &amp;lt;code&amp;gt;Enter&amp;lt;/code&amp;gt; (not &amp;lt;code&amp;gt;tab&amp;lt;/code&amp;gt;!)&lt;br /&gt;
* Type &amp;lt;code&amp;gt;&#039;&#039;&#039;#SHADOW_POINT_LIGHTS&#039;&#039;&#039;&amp;lt;/code&amp;gt; in the value column and hit enter&lt;br /&gt;
&lt;br /&gt;
This will make ambient shadows affect the direct light from dynamic lights, an let you sculpt the light they cast, or let you create manual shadows.&lt;br /&gt;
&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Modding]]&lt;br /&gt;
[[Category: Overgrowth]]&lt;/div&gt;</summary>
		<author><name>Constance</name></author>
	</entry>
</feed>